diff --git a/Lecture_DataScience_dotfiles/Chapter8_data/python_handling_test.csv b/Lecture_DataScience_dotfiles/Chapter8_data/python_handling_test.csv deleted file mode 100644 index c4ab5347..00000000 --- a/Lecture_DataScience_dotfiles/Chapter8_data/python_handling_test.csv +++ /dev/null @@ -1,2001 +0,0 @@ -"タイムスタンプ","性別","国語が","数学が","英語が","社会が","理科が" -"2020/09/09 12:59:25 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 12:59:27 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 12:59:29 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 12:59:31 午後 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 12:59:34 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 12:59:36 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 12:59:38 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 12:59:40 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 12:59:42 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 12:59:44 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 12:59:46 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 12:59:48 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 12:59:50 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 12:59:52 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 12:59:54 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 12:59:56 午後 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 12:59:58 午後 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:00:00 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:00:02 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:00:04 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:00:06 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:00:08 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:00:10 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:00:12 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:00:15 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:00:17 午後 GMT+9","女","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:00:19 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:00:21 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:00:23 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:00:25 午後 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:00:27 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/09 1:00:29 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:00:32 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:00:34 午後 GMT+9","男","+2 得意","-2 苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:00:36 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:00:38 午後 GMT+9","女","+2 得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:00:40 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:00:42 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:00:44 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:00:46 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:00:48 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:00:50 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:00:52 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:00:54 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:00:56 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:00:58 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+2 得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:01:00 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:01:02 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:01:04 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:01:07 午後 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:01:09 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:01:11 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:01:13 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:01:14 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:01:16 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:01:18 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:01:20 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:01:23 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:01:25 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:01:27 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:01:29 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:01:31 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:01:33 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:01:35 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:01:37 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:01:39 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:01:41 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:01:43 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:01:45 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:01:47 午後 GMT+9","女","+2 得意","-2 苦手","+2 得意","+2 得意","-2 苦手" -"2020/09/09 1:01:49 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:01:51 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:01:53 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:01:55 午後 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:01:57 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:01:59 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:02:01 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:02:03 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:02:05 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:02:07 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:02:09 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:02:11 午後 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:02:13 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:02:15 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:02:17 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:02:20 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:02:22 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:02:24 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:02:26 午後 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:02:28 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:02:30 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:02:32 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+2 得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:02:34 午後 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:02:36 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:02:39 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:02:41 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:02:43 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:02:45 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-2 苦手","-2 苦手","-2 苦手" -"2020/09/09 1:02:47 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:02:49 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:02:51 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:02:53 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:02:55 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:02:57 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手" -"2020/09/09 1:02:59 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:03:01 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:03:03 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:03:05 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:03:07 午後 GMT+9","女","+2 得意","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:03:09 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:03:12 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:03:14 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/09 1:03:16 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:03:18 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:03:20 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:03:22 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:03:24 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:03:26 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:03:27 午後 GMT+9","男","+2 得意","-2 苦手","+2 得意","+2 得意","-2 苦手" -"2020/09/09 1:03:29 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:03:31 午後 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:03:33 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:03:35 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:03:37 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+2 得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:03:39 午後 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:03:41 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:03:43 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:03:45 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:03:47 午後 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:03:49 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:03:51 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:03:53 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:03:55 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:03:57 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:03:59 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:04:02 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:04:04 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:04:06 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:04:08 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:04:10 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:04:12 午後 GMT+9","女","+2 得意","-2 苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:04:14 午後 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:04:16 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:04:18 午後 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:04:20 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:04:22 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:04:24 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:04:26 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:04:28 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:04:30 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:04:32 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:04:34 午後 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:04:36 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:04:38 午後 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:04:40 午後 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:04:42 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:04:44 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:04:46 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:04:48 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:04:50 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:04:52 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:04:54 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:04:56 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-2 苦手","-2 苦手","-2 苦手" -"2020/09/09 1:04:58 午後 GMT+9","女","+2 得意","-2 苦手","+0 どちらでもない","+2 得意","+0 どちらでもない" -"2020/09/09 1:05:00 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:05:02 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:05:04 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:05:07 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:05:09 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:05:11 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:05:13 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:05:15 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:05:17 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:05:20 午後 GMT+9","男","-2 苦手","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手" -"2020/09/09 1:05:22 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:05:24 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:05:26 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:05:28 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:05:30 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:05:32 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:05:34 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:05:36 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:05:38 午後 GMT+9","女","+2 得意","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:05:40 午後 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:05:42 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:05:44 午後 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:05:46 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:05:48 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:05:50 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:05:52 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:05:54 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:05:56 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:05:58 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:06:00 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:06:02 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:06:05 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:06:07 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:06:09 午後 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:06:11 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:06:13 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:06:15 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+2 得意","+0 どちらでもない" -"2020/09/09 1:06:17 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:06:19 午後 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/09 1:06:21 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:06:23 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:06:25 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:06:27 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:06:29 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:06:31 午後 GMT+9","女","-2 苦手","-2 苦手","-2 苦手","+0 どちらでもない","-2 苦手" -"2020/09/09 1:06:33 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:06:35 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:06:37 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:06:39 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:06:41 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:06:43 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:06:45 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:06:47 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:06:49 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:06:51 午後 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:06:53 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:06:55 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:06:57 午後 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手" -"2020/09/09 1:06:59 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:07:02 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:07:04 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:07:06 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:07:08 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:07:10 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:07:12 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:07:14 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:07:16 午後 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:07:18 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:07:20 午後 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:07:22 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:07:24 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:07:26 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:07:28 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:07:30 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:07:32 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:07:34 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:07:36 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:07:38 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:07:40 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:07:42 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:07:44 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:07:46 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:07:48 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:07:50 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:07:52 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:07:54 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:07:56 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:07:58 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:08:00 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:08:03 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:08:05 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:08:07 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:08:09 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:08:11 午後 GMT+9","女","+2 得意","-2 苦手","+2 得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:08:13 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:08:15 午後 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:08:17 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:08:19 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:08:21 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:08:23 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:08:25 午後 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:08:27 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:08:29 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:08:32 午後 GMT+9","男","+2 得意","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:08:34 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:08:36 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:08:38 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:08:40 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:08:42 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:08:44 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:08:46 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:08:48 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:08:50 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:08:52 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:08:54 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:08:56 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:08:58 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:09:00 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:09:02 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:09:04 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:09:06 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:09:08 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:09:11 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:09:13 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:09:15 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:09:17 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:09:19 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:09:21 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:09:23 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:09:25 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手" -"2020/09/09 1:09:27 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:09:29 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:09:31 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:09:33 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:09:35 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:09:37 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:09:39 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:09:41 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:09:43 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:09:45 午後 GMT+9","男","+2 得意","-2 苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:09:47 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:09:49 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:09:51 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:09:53 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/09 1:09:55 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:09:57 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:09:59 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:10:02 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:10:04 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:10:06 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:10:08 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:10:10 午後 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:10:12 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:10:14 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:10:16 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:10:18 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:10:20 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:10:22 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:10:24 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:10:26 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:10:28 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:10:30 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:10:32 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:10:34 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:10:36 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:10:38 午後 GMT+9","女","+2 得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:10:41 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:10:43 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:10:45 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:10:47 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:10:49 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:10:51 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:10:53 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:10:55 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:10:57 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:10:59 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:11:01 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:11:03 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:11:05 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:11:07 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:11:09 午後 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:11:11 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:11:13 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:11:15 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:11:17 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:11:19 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:11:21 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:11:23 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:11:25 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:11:27 午後 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:11:29 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:11:31 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:11:33 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:11:35 午後 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:11:37 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:11:39 午後 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:11:41 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:11:43 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:11:45 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:11:47 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:11:49 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:11:51 午後 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:11:53 午後 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:11:55 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:11:57 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:11:59 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:12:01 午後 GMT+9","男","+2 得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:12:04 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:12:06 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:12:08 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:12:10 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:12:12 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:12:14 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:12:16 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:12:18 午後 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:12:20 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:12:22 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:12:24 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:12:26 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:12:28 午後 GMT+9","女","-2 苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:12:30 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:12:32 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:12:34 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:12:36 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:12:38 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:12:40 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:12:42 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:12:44 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:12:46 午後 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:12:48 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:12:50 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:12:52 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:12:54 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:12:56 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:12:58 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:13:00 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:13:03 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:13:05 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:13:07 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:13:09 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:13:11 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:13:13 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:13:15 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:13:17 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:13:19 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:13:21 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:13:23 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:13:25 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:13:27 午後 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:13:28 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:13:30 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:13:32 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:13:35 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:13:37 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:13:39 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:13:41 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:13:42 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:13:45 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:13:47 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:13:49 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:13:50 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:13:52 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:13:54 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:13:56 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:13:58 午後 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手" -"2020/09/09 1:14:01 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:14:03 午後 GMT+9","女","-2 苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:14:05 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:14:07 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:14:09 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:14:11 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:14:13 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:14:15 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:14:17 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:14:19 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:14:21 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:14:24 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:14:25 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:14:27 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:14:29 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:14:31 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:14:33 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:14:35 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:14:37 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:14:39 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:14:41 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:14:43 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:14:45 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:14:47 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:14:49 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:14:51 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:14:53 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:14:55 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:14:57 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:14:59 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:15:02 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:15:04 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:15:05 午後 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:15:08 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:15:09 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:15:11 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:15:13 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:15:15 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:15:17 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:15:19 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:15:21 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:15:23 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:15:25 午後 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:15:27 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:15:29 午後 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:15:31 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:15:33 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:15:35 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:15:37 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:15:39 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:15:41 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:15:43 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:15:45 午後 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:15:47 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:15:49 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:15:51 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:15:53 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:15:55 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:15:57 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:16:00 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:16:02 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:16:04 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:16:06 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:16:08 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:16:10 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:16:12 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:16:14 午後 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:16:16 午後 GMT+9","女","+2 得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:16:18 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:16:20 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:16:21 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:16:24 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:16:26 午後 GMT+9","女","+2 得意","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:16:27 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:16:30 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:16:32 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:16:34 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:16:36 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:16:38 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:16:40 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:16:42 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:16:44 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:16:46 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:16:48 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:16:50 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:16:52 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:16:54 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:16:56 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:16:57 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:17:00 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:17:02 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:17:04 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:17:06 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:17:08 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:17:10 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:17:12 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:17:14 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:17:16 午後 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:17:18 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:17:20 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:17:22 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:17:24 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:17:26 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:17:28 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:17:30 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:17:32 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:17:34 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:17:36 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:17:38 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:17:40 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:17:42 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:17:44 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:17:46 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:17:48 午後 GMT+9","男","-2 苦手","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:17:50 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:17:52 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:17:54 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:17:56 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:17:58 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:18:00 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:18:02 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:18:04 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:18:06 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:18:08 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:18:10 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","-2 苦手","-2 苦手" -"2020/09/09 1:18:12 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:18:14 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:18:16 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:18:18 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:18:20 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:18:22 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:18:24 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:18:26 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:18:28 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:18:30 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:18:32 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:18:34 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:18:36 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:18:38 午後 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:18:40 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:18:42 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:18:44 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:18:46 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:18:48 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:18:50 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:18:52 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:18:54 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:18:56 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:18:58 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:19:00 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:19:02 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手" -"2020/09/09 1:19:04 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:19:06 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:19:08 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:19:10 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:19:12 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:19:14 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:19:16 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:19:18 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:19:20 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:19:22 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:19:24 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:19:26 午後 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/09 1:19:28 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:19:30 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:19:32 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:19:34 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:19:36 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:19:38 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:19:40 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:19:42 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/09 1:19:44 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:19:46 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:19:48 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:19:50 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:19:52 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:19:54 午後 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:19:56 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:19:58 午後 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:20:00 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:20:03 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:20:05 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:20:07 午後 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:20:09 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:20:10 午後 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:20:12 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:20:14 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:20:16 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:20:18 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:20:20 午後 GMT+9","女","+2 得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:20:22 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:20:24 午後 GMT+9","女","+2 得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:20:26 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:20:28 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:20:30 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:20:32 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:20:34 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:20:36 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:20:38 午後 GMT+9","女","+2 得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:20:40 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:20:42 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:20:44 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:20:46 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:20:48 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:20:50 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:20:52 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:20:54 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:20:56 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:20:58 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:21:00 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:21:02 午後 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:21:04 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:21:06 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:21:08 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:21:10 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:21:12 午後 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:21:14 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:21:16 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:21:18 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:21:20 午後 GMT+9","男","+2 得意","-2 苦手","+2 得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:21:22 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:21:24 午後 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:21:26 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:21:28 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:21:30 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:21:32 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:21:34 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:21:36 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:21:38 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:21:40 午後 GMT+9","女","+2 得意","-2 苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:21:42 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:21:44 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:21:46 午後 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:21:48 午後 GMT+9","男","+2 得意","-2 苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/09 1:21:50 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:21:52 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:21:54 午後 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:21:57 午後 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:21:59 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+2 得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:22:01 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:22:03 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/09 1:22:05 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:22:07 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:22:09 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:22:11 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:22:13 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:22:15 午後 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:22:17 午後 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/09 1:22:18 午後 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:22:20 午後 GMT+9","男","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:22:22 午後 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:22:24 午後 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:22:26 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:22:28 午後 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:22:30 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:22:32 午後 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/09 1:22:34 午後 GMT+9","女","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/09 1:22:36 午後 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/09 1:22:38 午後 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:22:40 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:22:42 午後 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手" -"2020/09/09 1:22:44 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:22:46 午後 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:22:48 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:22:50 午後 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:22:52 午後 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/09 1:22:54 午後 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:22:56 午後 GMT+9","女","+2 得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:22:58 午後 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:23:00 午後 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/09 1:23:03 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:23:05 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:23:07 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:23:09 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:23:11 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:23:12 午後 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:23:14 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:23:16 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:23:18 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:23:20 午後 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:23:22 午後 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:23:24 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:23:26 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:23:28 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:23:30 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:23:32 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:23:34 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:23:36 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:23:38 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:23:40 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:23:42 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:23:44 午後 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:23:46 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:23:48 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:23:50 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:23:52 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:23:54 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:23:56 午後 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:23:58 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:24:00 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:24:02 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:24:04 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:24:06 午後 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:24:08 午後 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:24:10 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:24:13 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:24:14 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:24:16 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:24:18 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:24:20 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:24:22 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/09 1:24:24 午後 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:24:26 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:24:28 午後 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:24:30 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:24:33 午後 GMT+9","女","-2 苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:24:35 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:24:37 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:24:39 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:24:41 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:24:43 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:24:45 午後 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:24:47 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:24:49 午後 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:24:51 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/09 1:24:53 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/09 1:24:55 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:24:56 午後 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:24:58 午後 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:25:01 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:25:03 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:25:05 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:25:07 午後 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:25:09 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:25:11 午後 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:25:13 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:25:15 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:25:17 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:25:19 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:25:21 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:25:23 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:25:25 午後 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:25:27 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/09 1:25:29 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:25:30 午後 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:25:32 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:25:34 午後 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:25:36 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","-2 苦手","+0 どちらでもない" -"2020/09/09 1:25:38 午後 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:25:40 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","-2 苦手","+0 どちらでもない" -"2020/09/09 1:25:42 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:25:44 午後 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:25:46 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:25:48 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+2 得意" -"2020/09/09 1:25:50 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:25:52 午後 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:25:54 午後 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:25:56 午後 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:25:58 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:26:00 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:26:03 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:26:05 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:26:07 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:26:09 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:26:11 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:26:13 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:26:15 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:26:17 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:26:19 午後 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:26:21 午後 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:26:23 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:26:25 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:26:27 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:26:29 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:26:31 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:26:33 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:26:35 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:26:37 午後 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:26:39 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:26:41 午後 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:26:43 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:26:45 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:26:47 午後 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:26:49 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:26:52 午後 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:26:54 午後 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:26:56 午後 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:26:58 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:27:00 午後 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:27:02 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-2 苦手","+2 得意" -"2020/09/09 1:27:04 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手","+0 どちらでもない" -"2020/09/09 1:27:07 午後 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:27:09 午後 GMT+9","女","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:27:11 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-2 苦手","+2 得意" -"2020/09/09 1:27:13 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:27:15 午後 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:27:17 午後 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:27:19 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:27:21 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:27:23 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:27:25 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:27:27 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:27:29 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:27:31 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/09 1:27:33 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:27:35 午後 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:27:37 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:27:39 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:27:41 午後 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:27:43 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:27:45 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:27:47 午後 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:27:49 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:27:51 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:27:53 午後 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:27:56 午後 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:27:58 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:28:00 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:28:02 午後 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:28:04 午後 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:28:06 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:28:09 午後 GMT+9","男","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:28:11 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:28:13 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:28:15 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/09 1:28:17 午後 GMT+9","女","-2 苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:28:19 午後 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:28:21 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:28:23 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:28:25 午後 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:28:27 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:28:29 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:28:31 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:28:33 午後 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:28:35 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:28:37 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:28:39 午後 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:28:41 午後 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:28:43 午後 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:28:45 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:28:47 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:28:49 午後 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:28:51 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:28:53 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:28:55 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:28:57 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:28:59 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:29:01 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:29:03 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:29:05 午後 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:29:07 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:29:09 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:29:11 午後 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:29:13 午後 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:29:15 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/09 1:29:17 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:29:20 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:29:22 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:29:24 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:29:26 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/09 1:29:28 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:29:30 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:29:32 午後 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:29:34 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:29:36 午後 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:29:37 午後 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:29:39 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:29:41 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:29:43 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:29:45 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:29:47 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:29:49 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:29:51 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:29:53 午後 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:29:55 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:29:57 午後 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:29:59 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:30:01 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/09 1:30:04 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:30:06 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:30:08 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:30:10 午後 GMT+9","男","-2 苦手","-2 苦手","-2 苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:30:12 午後 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+2 得意" -"2020/09/09 1:30:14 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:30:16 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:30:18 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:30:20 午後 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:30:22 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/09 1:30:24 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:30:26 午後 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:30:28 午後 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:30:30 午後 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:30:32 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:30:34 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:30:36 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:30:38 午後 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:30:40 午後 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:30:42 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:30:44 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:30:46 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:30:48 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:30:51 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:30:53 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:30:55 午後 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:30:57 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-2 苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:30:59 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:31:01 午後 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:31:03 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:31:05 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:31:07 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:31:09 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:31:11 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:31:13 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:31:15 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:31:17 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/09 1:31:19 午後 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:31:21 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:31:23 午後 GMT+9","男","-2 苦手","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:31:25 午後 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:31:27 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:31:30 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:31:32 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:31:33 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:31:35 午後 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:31:37 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:31:39 午後 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:31:41 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:31:43 午後 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/09 1:31:45 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:31:47 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:31:50 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:31:52 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:31:54 午後 GMT+9","男","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:31:56 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:31:58 午後 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:32:00 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:32:02 午後 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:32:04 午後 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:32:06 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:32:08 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:32:10 午後 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:32:13 午後 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:32:15 午後 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:32:17 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:32:19 午後 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/09 1:32:21 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:32:23 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:32:25 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:32:27 午後 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:32:29 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:32:31 午後 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:32:33 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:32:35 午後 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:32:37 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/09 1:32:39 午後 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/09 1:32:41 午後 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:32:43 午後 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/09 1:32:45 午後 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/09 1:32:47 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/09 1:32:49 午後 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/09 1:32:51 午後 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:32:53 午後 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/09 1:32:55 午後 GMT+9","女","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:32:57 午後 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/09 1:32:59 午後 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/09 1:33:01 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:33:03 午後 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:33:05 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/09 1:33:07 午後 GMT+9","女","-2 苦手","+2 得意","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意" -"2020/09/09 1:33:09 午後 GMT+9","男","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/09 1:33:11 午後 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:02:12 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:02:14 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:02:16 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:02:18 午前 GMT+9","女","+2 得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/10 3:02:20 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:02:22 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:02:24 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:02:26 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:02:28 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:02:30 午前 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手" -"2020/09/10 3:02:32 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:02:34 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:02:36 午前 GMT+9","女","+2 得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:02:38 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:02:40 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:02:42 午前 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:02:44 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:02:46 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:02:48 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:02:50 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:02:52 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:02:54 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:02:56 午前 GMT+9","男","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:02:58 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:03:00 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:03:03 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:03:05 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:03:07 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-2 苦手" -"2020/09/10 3:03:08 午前 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:03:10 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:03:13 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:03:15 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:03:17 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:03:19 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:03:21 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:03:23 午前 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:03:25 午前 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:03:27 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:03:29 午前 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:03:31 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:03:33 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:03:35 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:03:38 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:03:40 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:03:42 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:03:44 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:03:46 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:03:48 午前 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:03:50 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:03:52 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/10 3:03:54 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:03:56 午前 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:03:58 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:04:00 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:04:02 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:04:04 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:04:06 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:04:08 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:04:10 午前 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:04:12 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:04:14 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:04:17 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:04:19 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:04:21 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:04:23 午前 GMT+9","男","+2 得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:04:25 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:04:27 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:04:29 午前 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:04:31 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:04:33 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:04:35 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:04:37 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:04:39 午前 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手" -"2020/09/10 3:04:41 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:04:43 午前 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手" -"2020/09/10 3:04:45 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:04:47 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:04:49 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:04:51 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:04:53 午前 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:04:55 午前 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:04:57 午前 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:04:59 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:05:01 午前 GMT+9","女","+2 得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:05:03 午前 GMT+9","女","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:05:05 午前 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:05:07 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:05:09 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:05:11 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:05:13 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:05:15 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:05:17 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:05:19 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:05:21 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:05:23 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:05:25 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:05:27 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:05:29 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/10 3:05:31 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:05:33 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:05:35 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:05:37 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:05:39 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:05:41 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:05:43 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:05:45 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:05:48 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:05:49 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:05:51 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:05:53 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:05:55 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:05:57 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:05:59 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:06:01 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/10 3:06:03 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:06:05 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:06:07 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:06:09 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:06:11 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:06:14 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:06:16 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:06:18 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:06:19 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:06:22 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:06:24 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手" -"2020/09/10 3:06:25 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:06:28 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:06:29 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:06:31 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:06:33 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:06:35 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:06:37 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:06:39 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:06:41 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:06:43 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:06:45 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:06:47 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:06:49 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:06:51 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:06:53 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:06:55 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:06:57 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:06:59 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:07:02 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:07:04 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:07:06 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:07:08 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:07:10 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:07:12 午前 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:07:14 午前 GMT+9","男","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:07:16 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:07:18 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:07:20 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:07:22 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:07:24 午前 GMT+9","女","+2 得意","-2 苦手","+2 得意","+0 どちらでもない","-2 苦手" -"2020/09/10 3:07:26 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:07:28 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:07:30 午前 GMT+9","男","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/10 3:07:32 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:07:35 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:07:37 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:07:39 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:07:41 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:07:43 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:07:45 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:07:47 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:07:49 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:07:51 午前 GMT+9","男","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:07:53 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:07:55 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:07:57 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:07:59 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:08:01 午前 GMT+9","男","-2 苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:08:03 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/10 3:08:05 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:08:07 午前 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:08:09 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:08:11 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:08:13 午前 GMT+9","女","+2 得意","-2 苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/10 3:08:15 午前 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:08:17 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:08:19 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:08:21 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-2 苦手" -"2020/09/10 3:08:23 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:08:24 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:08:27 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:08:29 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:08:31 午前 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:08:33 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:08:35 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:08:37 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:08:39 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:08:41 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:08:43 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:08:45 午前 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:08:47 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:08:49 午前 GMT+9","男","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手" -"2020/09/10 3:08:51 午前 GMT+9","男","+2 得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:08:53 午前 GMT+9","女","+2 得意","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:08:55 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:08:57 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:08:59 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:09:01 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:09:03 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:09:05 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:09:07 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:09:09 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手" -"2020/09/10 3:09:11 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-2 苦手" -"2020/09/10 3:09:13 午前 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:09:16 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:09:17 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:09:20 午前 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:09:21 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:09:24 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:09:26 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:09:28 午前 GMT+9","女","+2 得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:09:30 午前 GMT+9","女","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:09:32 午前 GMT+9","女","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:09:34 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:09:36 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:09:38 午前 GMT+9","男","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:09:40 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:09:42 午前 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:09:44 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:09:46 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:09:48 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:09:50 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:09:52 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:09:54 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:09:56 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:09:58 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:10:00 午前 GMT+9","女","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:10:02 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手" -"2020/09/10 3:10:04 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:10:06 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:10:08 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:10:10 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:10:12 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:10:14 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:10:17 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:10:19 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:10:21 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:10:23 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:10:25 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:10:27 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:10:29 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:10:31 午前 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:10:33 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+2 得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:10:35 午前 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:10:37 午前 GMT+9","女","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:10:39 午前 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:10:41 午前 GMT+9","女","+2 得意","-2 苦手","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手" -"2020/09/10 3:10:42 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:10:45 午前 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:10:46 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:10:48 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:10:50 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:10:52 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:10:54 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:10:56 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:10:58 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:11:01 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:11:03 午前 GMT+9","女","+2 得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/10 3:11:05 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:11:07 午前 GMT+9","女","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:11:09 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:11:11 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:11:13 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:11:15 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:11:18 午前 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:11:20 午前 GMT+9","男","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:11:22 午前 GMT+9","女","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/10 3:11:24 午前 GMT+9","男","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:11:26 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:11:28 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:11:30 午前 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:11:32 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:11:34 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手" -"2020/09/10 3:11:35 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:11:38 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:11:40 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:11:41 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない" -"2020/09/10 3:11:43 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:11:45 午前 GMT+9","男","+0 どちらでもない","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:11:47 午前 GMT+9","男","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:11:49 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:11:51 午前 GMT+9","男","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:11:53 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:11:55 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:11:57 午前 GMT+9","女","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-2 苦手" -"2020/09/10 3:11:59 午前 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:12:02 午前 GMT+9","男","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:12:04 午前 GMT+9","女","+2 得意","-2 苦手","+2 得意","+1 どちらかというと得意","-2 苦手" -"2020/09/10 3:12:06 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:12:08 午前 GMT+9","女","+2 得意","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手" -"2020/09/10 3:12:10 午前 GMT+9","女","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:12:11 午前 GMT+9","男","+2 得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:12:14 午前 GMT+9","女","+2 得意","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:12:16 午前 GMT+9","男","+1 どちらかというと得意","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:12:18 午前 GMT+9","女","+0 どちらでもない","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手" -"2020/09/10 3:12:20 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:12:22 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:12:24 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:12:26 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:12:28 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:12:30 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:12:32 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:12:34 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:12:36 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:12:38 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:12:40 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:12:42 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:12:44 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:12:46 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:12:48 午前 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:12:50 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:12:52 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:12:54 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:12:56 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:12:58 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:13:00 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:13:02 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:13:04 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:13:06 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:13:08 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:13:10 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:13:12 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:13:14 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:13:16 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:13:18 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:13:20 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:13:22 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:13:25 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:13:26 午前 GMT+9","男","-2 苦手","+2 得意","-1 どちらかというと苦手","-2 苦手","+2 得意" -"2020/09/10 3:13:31 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:13:33 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:13:35 午前 GMT+9","男","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:13:37 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:13:39 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:13:41 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:13:43 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:13:44 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:13:46 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:13:48 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:13:50 午前 GMT+9","男","-2 苦手","-2 苦手","-2 苦手","-2 苦手","-2 苦手" -"2020/09/10 3:13:52 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:13:54 午前 GMT+9","男","+2 得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:13:56 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:13:58 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:14:00 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:14:02 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:14:04 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:14:06 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:14:09 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:14:11 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:14:13 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:14:15 午前 GMT+9","女","-2 苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/10 3:14:17 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:14:19 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:14:21 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:14:23 午前 GMT+9","女","-2 苦手","+2 得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:14:25 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:14:27 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:14:29 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:14:31 午前 GMT+9","女","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:14:33 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意" -"2020/09/10 3:14:35 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:14:37 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:14:39 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:14:41 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:14:43 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:14:45 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:14:47 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:14:49 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:14:51 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:14:53 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:14:55 午前 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:14:57 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:14:59 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:15:01 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:15:03 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:15:05 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:15:07 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:15:09 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:15:12 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:15:14 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:15:16 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:15:18 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:15:20 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:15:21 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:15:23 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:15:25 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:15:27 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:15:29 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:15:31 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/10 3:15:33 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:15:35 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:15:37 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:15:40 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:15:42 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:15:44 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:15:46 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:15:48 午前 GMT+9","男","+0 どちらでもない","+2 得意","+0 どちらでもない","-2 苦手","+2 得意" -"2020/09/10 3:15:50 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:15:52 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:15:54 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:15:56 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:15:58 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:16:00 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:16:02 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:16:04 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:16:06 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:16:09 午前 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:16:11 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:16:13 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:16:15 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:16:17 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:16:19 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:16:21 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:16:23 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:16:25 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:16:27 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:16:29 午前 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:16:31 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:16:33 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:16:35 午前 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:16:37 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:16:39 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:16:41 午前 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:16:43 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:16:45 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:16:48 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:16:50 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:16:52 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:16:54 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:16:56 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:16:58 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:17:00 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:17:02 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:17:04 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:17:06 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:17:08 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:17:10 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:17:12 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:17:14 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:17:17 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:17:19 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:17:21 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:17:23 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-2 苦手","+2 得意" -"2020/09/10 3:17:25 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:17:27 午前 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:17:29 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:17:31 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:17:33 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:17:35 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:17:37 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:17:39 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:17:41 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:17:43 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:17:45 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:17:47 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:17:49 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:17:51 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:17:53 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:17:55 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:17:57 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:17:59 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:18:01 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:18:03 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:18:05 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:18:07 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:18:09 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:18:11 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:18:13 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:18:15 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-2 苦手","+2 得意" -"2020/09/10 3:18:17 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:18:19 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:18:21 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:18:24 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:18:26 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:18:27 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:18:29 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:18:31 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:18:33 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:18:35 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:18:37 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:18:39 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:18:42 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:18:44 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:18:46 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:18:48 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:18:50 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:18:52 午前 GMT+9","男","-2 苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:18:54 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:18:56 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:18:58 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:19:00 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:19:02 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:19:04 午前 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:19:06 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:19:08 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+2 得意" -"2020/09/10 3:19:10 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:19:12 午前 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-2 苦手","+2 得意" -"2020/09/10 3:19:14 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:19:16 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:19:18 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","-2 苦手","+0 どちらでもない" -"2020/09/10 3:19:21 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:19:23 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:19:25 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:19:27 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:19:29 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:19:31 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:19:33 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:19:34 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:19:37 午前 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:19:38 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:19:40 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:19:42 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:19:45 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:19:47 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:19:49 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:19:51 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:19:53 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:19:55 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:19:57 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:19:58 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:20:01 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:20:03 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:20:05 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:20:07 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:20:09 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:20:11 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:20:13 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:20:15 午前 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:20:17 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:20:19 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:20:21 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:20:23 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:20:25 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:20:27 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+2 得意","+2 得意" -"2020/09/10 3:20:29 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:20:31 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:20:33 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:20:35 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:20:37 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:20:39 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:20:41 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:20:43 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:20:45 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:20:47 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:20:49 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:20:51 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:20:54 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:20:55 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:20:58 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:21:00 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:21:01 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:21:03 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:21:05 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:21:07 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:21:09 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:21:11 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:21:13 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:21:15 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:21:17 午前 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:21:19 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:21:22 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:21:23 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:21:25 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:21:27 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:21:29 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:21:31 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:21:33 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:21:35 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:21:37 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:21:39 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:21:41 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:21:43 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:21:45 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:21:47 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:21:49 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:21:51 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:21:53 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:21:55 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:21:57 午前 GMT+9","男","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:21:59 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:22:01 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:22:04 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:22:06 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:22:08 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:22:10 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:22:12 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:22:14 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:22:16 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:22:18 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:22:20 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:22:22 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:22:24 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:22:26 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:22:28 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:22:30 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:22:32 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:22:34 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:22:36 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:22:38 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:22:40 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:22:42 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:22:44 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:22:46 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:22:48 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:22:50 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:22:52 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:22:54 午前 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:22:56 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:22:58 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:23:00 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:23:02 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:23:04 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:23:06 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:23:08 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:23:10 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+2 得意" -"2020/09/10 3:23:12 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:23:14 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:23:16 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:23:18 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:23:20 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:23:22 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:23:24 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:23:26 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:23:28 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:23:30 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:23:32 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:23:34 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:23:36 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:23:38 午前 GMT+9","男","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:23:40 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:23:42 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:23:45 午前 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:23:46 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:23:49 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:23:51 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:23:52 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:23:54 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:23:56 午前 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:23:58 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:24:01 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:24:03 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:24:05 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:24:07 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:24:09 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:24:11 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:24:13 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:24:15 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:24:17 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:24:19 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:24:21 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:24:23 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:24:25 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:24:27 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:24:29 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:24:31 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:24:33 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:24:35 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:24:37 午前 GMT+9","男","-2 苦手","+2 得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:24:39 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:24:41 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:24:43 午前 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:24:45 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:24:47 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:24:49 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:24:51 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:24:53 午前 GMT+9","男","-2 苦手","+2 得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:24:55 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:24:57 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:24:59 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:25:01 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:25:03 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:25:05 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:25:07 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:25:09 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:25:11 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:25:13 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:25:15 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:25:17 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:25:19 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:25:21 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:25:23 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:25:25 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:25:27 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:25:29 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:25:31 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:25:33 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:25:35 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:25:37 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:25:40 午前 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:25:42 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:25:43 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:25:45 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:25:47 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:25:49 午前 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-2 苦手","+2 得意" -"2020/09/10 3:25:51 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:25:53 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:25:55 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:25:57 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:25:59 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:26:02 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:26:04 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:26:06 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:26:08 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:26:10 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:26:12 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:26:14 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:26:16 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:26:18 午前 GMT+9","女","-2 苦手","+2 得意","-1 どちらかというと苦手","-2 苦手","+2 得意" -"2020/09/10 3:26:20 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:26:22 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:26:24 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:26:26 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:26:28 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:26:30 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+2 得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:26:32 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:26:34 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:26:36 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:26:38 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:26:40 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:26:42 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:26:44 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:26:46 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:26:48 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:26:50 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:26:52 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:26:54 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:26:56 午前 GMT+9","女","-2 苦手","+2 得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:26:58 午前 GMT+9","男","+0 どちらでもない","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:27:00 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:27:02 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:27:04 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:27:06 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:27:08 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-2 苦手","+0 どちらでもない" -"2020/09/10 3:27:11 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:27:13 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:27:14 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:27:16 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:27:18 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:27:20 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:27:22 午前 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:27:24 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:27:26 午前 GMT+9","女","-2 苦手","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:27:29 午前 GMT+9","男","+2 得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:27:31 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+2 得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:27:33 午前 GMT+9","男","-2 苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/10 3:27:35 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:27:37 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:27:38 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:27:41 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:27:42 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:27:45 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:27:46 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:27:48 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:27:50 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:27:52 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:27:54 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:27:56 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:27:58 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:28:01 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:28:03 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:28:05 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:28:07 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:28:09 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:28:11 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:28:13 午前 GMT+9","女","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:28:15 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:28:17 午前 GMT+9","女","-2 苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:28:19 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:28:21 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:28:23 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:28:25 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:28:27 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:28:29 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:28:31 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:28:33 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:28:35 午前 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","-2 苦手","+2 得意" -"2020/09/10 3:28:38 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:28:40 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:28:42 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:28:44 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:28:46 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:28:48 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:28:50 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:28:52 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:28:53 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:28:56 午前 GMT+9","女","+2 得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:28:57 午前 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","-2 苦手","+2 得意" -"2020/09/10 3:28:59 午前 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:29:02 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:29:04 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:29:05 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:29:08 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:29:10 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:29:12 午前 GMT+9","男","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手" -"2020/09/10 3:29:14 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:29:16 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:29:18 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:29:20 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:29:22 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:29:24 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:29:26 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:29:28 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:29:30 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:29:32 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:29:34 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない","+2 得意" -"2020/09/10 3:29:36 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:29:38 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:29:40 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:29:42 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:29:44 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:29:45 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:29:47 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:29:49 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:29:51 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:29:53 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:29:55 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:29:57 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:29:59 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:30:02 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:30:04 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:30:06 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:30:08 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:30:10 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:30:12 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:30:14 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:30:16 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:30:18 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:30:20 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:30:22 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:30:24 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:30:26 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:30:28 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:30:30 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:30:32 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:30:34 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:30:36 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:30:38 午前 GMT+9","男","-2 苦手","-2 苦手","-1 どちらかというと苦手","-2 苦手","-2 苦手" -"2020/09/10 3:30:40 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:30:42 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:30:44 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:30:46 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:30:48 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:30:50 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:30:52 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:30:55 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:30:57 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:30:59 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:31:01 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:31:03 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:31:05 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:31:07 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:31:09 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:31:11 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:31:13 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:31:15 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:31:17 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:31:19 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:31:21 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:31:23 午前 GMT+9","男","-2 苦手","+2 得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:31:25 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:31:27 午前 GMT+9","女","+0 どちらでもない","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:31:29 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:31:31 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:31:34 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:31:36 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:31:38 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:31:40 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:31:42 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:31:43 午前 GMT+9","女","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:31:45 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:31:47 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:31:50 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:31:52 午前 GMT+9","男","+1 どちらかというと得意","+2 得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:31:54 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:31:56 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:31:58 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:32:00 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:32:02 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:32:04 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:32:06 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:32:08 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意" -"2020/09/10 3:32:10 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:32:12 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:32:14 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:32:16 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:32:18 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:32:21 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:32:22 午前 GMT+9","女","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:32:25 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:32:27 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:32:29 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:32:31 午前 GMT+9","女","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:32:33 午前 GMT+9","男","-2 苦手","-1 どちらかというと苦手","-1 どちらかというと苦手","-2 苦手","-1 どちらかというと苦手" -"2020/09/10 3:32:35 午前 GMT+9","女","-2 苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:32:37 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:32:39 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:32:41 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:32:43 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:32:46 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:32:48 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:32:50 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+2 得意","+2 得意" -"2020/09/10 3:32:52 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:32:54 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:32:56 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:32:58 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:00 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:33:02 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:33:04 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:33:06 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-2 苦手","+0 どちらでもない" -"2020/09/10 3:33:08 午前 GMT+9","男","+0 どちらでもない","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:10 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:33:12 午前 GMT+9","女","+1 どちらかというと得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:33:14 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:33:16 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:33:18 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:33:20 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:22 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:24 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:26 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:33:29 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:30 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:33:32 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:33:34 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:33:36 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:33:39 午前 GMT+9","女","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:33:41 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:33:43 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:44 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:46 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:33:48 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:51 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:33:53 午前 GMT+9","男","-2 苦手","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:33:55 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+2 得意" -"2020/09/10 3:33:56 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:33:58 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:34:01 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:34:03 午前 GMT+9","男","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:34:05 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:34:07 午前 GMT+9","女","-2 苦手","+0 どちらでもない","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:34:09 午前 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:34:11 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:34:13 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:34:15 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:34:18 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:34:20 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:34:22 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:34:24 午前 GMT+9","女","-1 どちらかというと苦手","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:34:26 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:34:28 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:34:30 午前 GMT+9","男","-2 苦手","+2 得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:34:32 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:34:34 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:34:36 午前 GMT+9","男","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:34:38 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:34:40 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:34:42 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:34:44 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:34:46 午前 GMT+9","女","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:34:48 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:34:50 午前 GMT+9","女","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない","-1 どちらかというと苦手","-2 苦手" -"2020/09/10 3:34:52 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:34:54 午前 GMT+9","男","-1 どちらかというと苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:34:56 午前 GMT+9","女","+2 得意","+2 得意","+2 得意","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:34:58 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:35:00 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:35:02 午前 GMT+9","男","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:35:04 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:35:06 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:35:08 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:35:10 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:35:12 午前 GMT+9","男","-1 どちらかというと苦手","+2 得意","+1 どちらかというと得意","-2 苦手","+1 どちらかというと得意" -"2020/09/10 3:35:14 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:35:17 午前 GMT+9","女","+0 どちらでもない","+2 得意","+1 どちらかというと得意","+0 どちらでもない","+2 得意" -"2020/09/10 3:35:19 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない","+2 得意" -"2020/09/10 3:35:21 午前 GMT+9","女","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","-1 どちらかというと苦手","+0 どちらでもない" -"2020/09/10 3:35:23 午前 GMT+9","男","+0 どちらでもない","+0 どちらでもない","+1 どちらかというと得意","+0 どちらでもない","+0 どちらでもない" -"2020/09/10 3:35:25 午前 GMT+9","女","-2 苦手","+0 どちらでもない","-2 苦手","-2 苦手","+0 どちらでもない" -"2020/09/10 3:35:27 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","-1 どちらかというと苦手","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:35:29 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:35:31 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:35:33 午前 GMT+9","女","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:35:35 午前 GMT+9","女","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+1 どちらかというと得意" -"2020/09/10 3:35:37 午前 GMT+9","男","-1 どちらかというと苦手","-1 どちらかというと苦手","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:35:39 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない","+1 どちらかというと得意" -"2020/09/10 3:35:41 午前 GMT+9","男","-2 苦手","+0 どちらでもない","+0 どちらでもない","-1 どちらかというと苦手","-1 どちらかというと苦手" -"2020/09/10 3:35:43 午前 GMT+9","男","-2 苦手","+2 得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:35:45 午前 GMT+9","女","-1 どちらかというと苦手","+0 どちらでもない","+1 どちらかというと得意","+1 どちらかというと得意","+0 どちらでもない" -"2020/09/10 3:35:47 午前 GMT+9","女","+0 どちらでもない","+2 得意","+2 得意","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:35:49 午前 GMT+9","男","-2 苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+0 どちらでもない" -"2020/09/10 3:35:51 午前 GMT+9","男","+0 どちらでもない","+2 得意","+0 どちらでもない","+1 どちらかというと得意","+2 得意" -"2020/09/10 3:35:53 午前 GMT+9","男","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意","+1 どちらかというと得意" -"2020/09/10 3:35:55 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:35:57 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-1 どちらかというと苦手","+2 得意" -"2020/09/10 3:35:59 午前 GMT+9","男","-1 どちらかというと苦手","+1 どちらかというと得意","+0 どちらでもない","-2 苦手","+1 どちらかというと得意" \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/Chapter8_data/test.txt b/Lecture_DataScience_dotfiles/Chapter8_data/test.txt deleted file mode 100644 index 19da24da..00000000 --- a/Lecture_DataScience_dotfiles/Chapter8_data/test.txt +++ /dev/null @@ -1,10 +0,0 @@ -これは講義用のテキストファイルです。 -書かれていることには特に意味はないですが、 -ファイル操作に慣れていきましょう。 -### data -1, 2, 3, 4, 5, 6 -11, 12, 13, 14, 15, 16 -21, 22, 23, 24, 25, 26 -Aさん: 180cm 65kg A型 -Bさん: 165cm 56kg B型 -Zさん: 150cm 50kg AB型 diff --git a/Lecture_DataScience_dotfiles/README.md b/Lecture_DataScience_dotfiles/README.md deleted file mode 100644 index 47253143..00000000 --- a/Lecture_DataScience_dotfiles/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# 実践データサイエンス - -本レポジトリでは、宇都宮大学の基盤教育科目**実践データサイエンス**用の資料などをまとめています。 - -[資料はこちらから閲覧してください](https://sotayoshida.github.io/Lecture_DataScience/) - -- 都度内容が度変更される場合があります. -- 古い年度のものはブランチが残っていれば閲覧できますが、更新の予定はありません。通告なくブランチを削除する場合もあります. - ---- -Copyright (C) 2020-2023 Sota Yoshida - -ノートブック内の文章と手書きの絵等は[クリエイティブ・コモンズ 4.0 表示](https://creativecommons.org/licenses/by/4.0/deed.ja) [(CC-BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.en)で提供する。 -Text and pictures in the notebooks are licensed under a Creative Commons Attribution 4.0 International License. -ソースコード(notebook内含む)は(原則)、[MITライセンス](https://opensource.org/licenses/MIT)で提供します。 -The source codes (including ones in Jupyter notebooks) are licensed under [the MIT License](https://opensource.org/licenses/MIT) (unless otherwise mentioned). - -なお、使用されているデータ等の著作権等には配慮していますが、万が一お気づきの点等があればお知らせください。 diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/environment.pickle b/Lecture_DataScience_dotfiles/_build/.doctrees/environment.pickle deleted file mode 100644 index 42379569..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/environment.pickle and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/glue_cache.json b/Lecture_DataScience_dotfiles/_build/.doctrees/glue_cache.json deleted file mode 100644 index 9e26dfee..00000000 --- a/Lecture_DataScience_dotfiles/_build/.doctrees/glue_cache.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/index.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/index.doctree deleted file mode 100644 index 8a1aa2a0..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/index.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter0_HowToUse.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter0_HowToUse.doctree deleted file mode 100644 index c7a0551e..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter0_HowToUse.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter1_Introduction.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter1_Introduction.doctree deleted file mode 100644 index 5dc1f03a..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter1_Introduction.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter2_ListLoop.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter2_ListLoop.doctree deleted file mode 100644 index 71726361..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter2_ListLoop.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter3_Function.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter3_Function.doctree deleted file mode 100644 index e7900e49..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter3_Function.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter4_Matplotlib.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter4_Matplotlib.doctree deleted file mode 100644 index da735c5c..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter4_Matplotlib.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter5_Probability.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter5_Probability.doctree deleted file mode 100644 index c4a4dc25..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter5_Probability.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter6_Regression.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter6_Regression.doctree deleted file mode 100644 index c3f3a454..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter6_Regression.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter7_Optimization.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter7_Optimization.doctree deleted file mode 100644 index 8aa7b715..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter7_Optimization.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter8_handling_files.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter8_handling_files.doctree deleted file mode 100644 index f9835b8a..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter8_handling_files.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_ArtificialNeuralNetwork.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_ArtificialNeuralNetwork.doctree deleted file mode 100644 index f0aad1dd..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_ArtificialNeuralNetwork.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_BayesianOptimization.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_BayesianOptimization.doctree deleted file mode 100644 index 316d7073..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_BayesianOptimization.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_Bayesian_linear_regression.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_Bayesian_linear_regression.doctree deleted file mode 100644 index fdf44e4d..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_Bayesian_linear_regression.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_WebScraping.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_WebScraping.doctree deleted file mode 100644 index 9ae3d4d3..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_chapter_WebScraping.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_Error.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_Error.doctree deleted file mode 100644 index 0b122def..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_Error.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_NewtonsMethod.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_NewtonsMethod.doctree deleted file mode 100644 index 697a0730..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_NewtonsMethod.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_ODE.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_ODE.doctree deleted file mode 100644 index 8d5422a0..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_ODE.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_PCA.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_PCA.doctree deleted file mode 100644 index a689e36c..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_PCA.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_Pandas.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_Pandas.doctree deleted file mode 100644 index ebe6b9fd..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_Pandas.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_SingularValueDecomposition.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_SingularValueDecomposition.doctree deleted file mode 100644 index ecf9acd7..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_SingularValueDecomposition.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_StyleGAN3.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_StyleGAN3.doctree deleted file mode 100644 index 41dec4eb..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_StyleGAN3.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_VScode.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_VScode.doctree deleted file mode 100644 index 9bfeaabe..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_VScode.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_numpy.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_numpy.doctree deleted file mode 100644 index 5db27d9d..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_numpy.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_python_env_forWin11.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_python_env_forWin11.doctree deleted file mode 100644 index 7363229f..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_python_env_forWin11.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_python_environment.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_python_environment.doctree deleted file mode 100644 index 45449cb4..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_misc_python_environment.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_practice.doctree b/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_practice.doctree deleted file mode 100644 index 835e064f..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/.doctrees/notebooks/Python_practice.doctree and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/.buildinfo b/Lecture_DataScience_dotfiles/_build/html/.buildinfo deleted file mode 100644 index 2312aea4..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 900be80317adbfd57b0f00af63d029e9 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_35_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_35_0.png deleted file mode 100644 index 20a06b7d..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_35_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_35_1.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_35_1.png deleted file mode 100644 index 881e9ab2..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_35_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_41_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_41_0.png deleted file mode 100644 index 6777a5e1..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_41_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_43_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_43_0.png deleted file mode 100644 index 0c00da9c..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_43_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_46_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_46_0.png deleted file mode 100644 index ebc664ae..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter4_Matplotlib_46_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_11_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_11_0.png deleted file mode 100644 index c37ae696..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_11_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_14_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_14_0.png deleted file mode 100644 index d7c3a2b2..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_14_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_30_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_30_0.png deleted file mode 100644 index 39c41ca6..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_30_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_32_1.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_32_1.png deleted file mode 100644 index db441164..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_32_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_43_1.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_43_1.png deleted file mode 100644 index a6b39389..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_43_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_50_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_50_0.png deleted file mode 100644 index 3c4d26b4..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_50_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_59_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_59_0.png deleted file mode 100644 index d8e66115..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_59_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_62_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_62_0.png deleted file mode 100644 index 9e021c3f..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_62_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_68_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_68_0.png deleted file mode 100644 index 9f5844a6..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_68_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_70_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_70_0.png deleted file mode 100644 index c52cdba0..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_70_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_76_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_76_0.png deleted file mode 100644 index 269030aa..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_76_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_81_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_81_0.png deleted file mode 100644 index f4618175..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter5_Probability_81_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter7_Optimization_33_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter7_Optimization_33_0.png deleted file mode 100644 index 9224f516..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter7_Optimization_33_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter7_Optimization_36_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter7_Optimization_36_0.png deleted file mode 100644 index d4b783e9..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter7_Optimization_36_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_22_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_22_0.png deleted file mode 100644 index c0f00e22..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_22_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_37_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_37_0.png deleted file mode 100644 index a6d0a13d..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_37_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_48_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_48_0.png deleted file mode 100644 index d95f4ac2..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_48_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_4_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_4_0.png deleted file mode 100644 index ca1aa320..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_4_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_52_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_52_0.png deleted file mode 100644 index 038a0c9e..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_52_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_54_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_54_0.png deleted file mode 100644 index 4d76a944..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_ArtificialNeuralNetwork_54_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_21_1.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_21_1.png deleted file mode 100644 index aec7daef..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_21_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_4_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_4_0.png deleted file mode 100644 index d0b0c7d9..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_4_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_0.png deleted file mode 100644 index 7f2dc7ef..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_10.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_10.png deleted file mode 100644 index 438dd3b4..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_10.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_12.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_12.png deleted file mode 100644 index 89eab660..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_12.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_14.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_14.png deleted file mode 100644 index d19c439a..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_14.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_16.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_16.png deleted file mode 100644 index 702c438d..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_16.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_18.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_18.png deleted file mode 100644 index 3e1d867c..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_18.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_2.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_2.png deleted file mode 100644 index 8fea86aa..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_2.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_4.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_4.png deleted file mode 100644 index 64cc9015..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_4.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_6.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_6.png deleted file mode 100644 index 7dd56f77..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_6.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_8.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_8.png deleted file mode 100644 index 0fcb748b..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_BayesianOptimization_6_8.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_Bayesian_linear_regression_12_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_Bayesian_linear_regression_12_0.png deleted file mode 100644 index 3ceb23d2..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_Bayesian_linear_regression_12_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_Bayesian_linear_regression_4_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_Bayesian_linear_regression_4_0.png deleted file mode 100644 index 5ff14830..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_Bayesian_linear_regression_4_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_Bayesian_linear_regression_6_1.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_Bayesian_linear_regression_6_1.png deleted file mode 100644 index f2bc89b0..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_Bayesian_linear_regression_6_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_WebScraping_18_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_WebScraping_18_0.png deleted file mode 100644 index 1087dc26..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_WebScraping_18_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_WebScraping_48_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_WebScraping_48_0.png deleted file mode 100644 index 3194bbe1..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_chapter_WebScraping_48_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_NewtonsMethod_6_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_NewtonsMethod_6_0.png deleted file mode 100644 index db35f69c..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_NewtonsMethod_6_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_14_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_14_0.png deleted file mode 100644 index 775659cb..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_14_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_16_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_16_0.png deleted file mode 100644 index ded1e78b..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_16_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_19_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_19_0.png deleted file mode 100644 index 2fb88c31..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_19_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_27_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_27_0.png deleted file mode 100644 index dd667d42..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_27_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_32_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_32_0.png deleted file mode 100644 index 056b2065..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_ODE_32_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_17_1.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_17_1.png deleted file mode 100644 index 20c72c4f..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_17_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_17_2.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_17_2.png deleted file mode 100644 index 651db5cd..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_17_2.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_33_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_33_0.png deleted file mode 100644 index df9d7013..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_33_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_35_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_35_0.png deleted file mode 100644 index e9b13c08..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_35_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_41_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_41_0.png deleted file mode 100644 index e8e81e00..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_41_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_6_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_6_0.png deleted file mode 100644 index b7545bfd..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_PCA_6_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_8_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_8_0.png deleted file mode 100644 index 6f8260f6..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_8_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_1.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_1.png deleted file mode 100644 index b732f944..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_3.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_3.png deleted file mode 100644 index 47d2b120..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_3.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_5.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_5.png deleted file mode 100644 index fac56b39..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_5.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_7.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_7.png deleted file mode 100644 index dd1145bf..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_7.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_9.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_9.png deleted file mode 100644 index 76eb3225..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_SingularValueDecomposition_9_9.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_VScode_4_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_VScode_4_0.png deleted file mode 100644 index b4b38579..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_VScode_4_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_VScode_6_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_VScode_6_0.png deleted file mode 100644 index c9bc0a97..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_VScode_6_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_numpy_47_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_numpy_47_0.png deleted file mode 100644 index 678780ac..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/Python_misc_numpy_47_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/pic_0_0.png b/Lecture_DataScience_dotfiles/_build/html/_images/pic_0_0.png deleted file mode 100644 index f7dbfb53..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/pic_0_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/pic_0_1.png b/Lecture_DataScience_dotfiles/_build/html/_images/pic_0_1.png deleted file mode 100644 index b2121c5c..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/pic_0_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_images/pic_0_2.png b/Lecture_DataScience_dotfiles/_build/html/_images/pic_0_2.png deleted file mode 100644 index a8696758..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_images/pic_0_2.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css b/Lecture_DataScience_dotfiles/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css deleted file mode 100644 index fc14abc8..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css +++ /dev/null @@ -1 +0,0 @@ -details.dropdown .summary-title{padding-right:3em !important;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}details.dropdown:hover{cursor:pointer}details.dropdown .summary-content{cursor:default}details.dropdown summary{list-style:none;padding:1em}details.dropdown summary .octicon.no-title{vertical-align:middle}details.dropdown[open] summary .octicon.no-title{visibility:hidden}details.dropdown summary::-webkit-details-marker{display:none}details.dropdown summary:focus{outline:none}details.dropdown summary:hover .summary-up svg,details.dropdown summary:hover .summary-down svg{opacity:1}details.dropdown .summary-up svg,details.dropdown .summary-down svg{display:block;opacity:.6}details.dropdown .summary-up,details.dropdown .summary-down{pointer-events:none;position:absolute;right:1em;top:.75em}details.dropdown[open] .summary-down{visibility:hidden}details.dropdown:not([open]) .summary-up{visibility:hidden}details.dropdown.fade-in[open] summary~*{-moz-animation:panels-fade-in .5s ease-in-out;-webkit-animation:panels-fade-in .5s ease-in-out;animation:panels-fade-in .5s ease-in-out}details.dropdown.fade-in-slide-down[open] summary~*{-moz-animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out;-webkit-animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out;animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out}@keyframes panels-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes panels-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.octicon{display:inline-block;fill:currentColor;vertical-align:text-top}.tabbed-content{box-shadow:0 -.0625rem var(--tabs-color-overline),0 .0625rem var(--tabs-color-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.tabbed-content>:first-child{margin-top:0 !important}.tabbed-content>:last-child{margin-bottom:0 !important}.tabbed-content>.tabbed-set{margin:0}.tabbed-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.tabbed-set>input{opacity:0;position:absolute}.tabbed-set>input:checked+label{border-color:var(--tabs-color-label-active);color:var(--tabs-color-label-active)}.tabbed-set>input:checked+label+.tabbed-content{display:block}.tabbed-set>input:focus+label{outline-style:auto}.tabbed-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.tabbed-set>label{border-bottom:.125rem solid transparent;color:var(--tabs-color-label-inactive);cursor:pointer;font-size:var(--tabs-size-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .tabbed-set>label:hover{color:var(--tabs-color-label-active)} diff --git a/Lecture_DataScience_dotfiles/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css b/Lecture_DataScience_dotfiles/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css deleted file mode 100644 index adc61662..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css +++ /dev/null @@ -1,7 +0,0 @@ -:root { ---tabs-color-label-active: hsla(231, 99%, 66%, 1); ---tabs-color-label-inactive: rgba(178, 206, 245, 0.62); ---tabs-color-overline: rgb(207, 236, 238); ---tabs-color-underline: rgb(207, 236, 238); ---tabs-size-label: 1rem; -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/index.md b/Lecture_DataScience_dotfiles/_build/html/_sources/index.md deleted file mode 100644 index 72f8ec0e..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/index.md +++ /dev/null @@ -1,38 +0,0 @@ -# 資料:実践データサイエンス - -本コンテンツは宇都宮大学の基盤科目「実践データサイエンス」の授業資料です。 - -## 資料の使い方 - -本講義では資料(≒ファイル形式)や利用する外部サービス等が幾つかある。 -慣れないうちは混同するかと思うので、ここに資料自体の説明と各種アプリケーションやサービスの説明をまとめておく。 - -### ブック -:::{margin} -概要を理解したり復習する際にはこちらのブックを閲覧してください -::: -本資料は[Jupyter Notebook](https://github.com/jupyter/notebook)形式で作成されたソースファイルを[Jupyter Book](https://jupyterbook.org/en/stable/intro.html)を用いて変換することで作成されたコンテンツになっている。この形式の資料を授業内では**ブック**ないし**Book**と表記・呼称する。 - -### ノートブック - -[Jupyter Notebook](https://github.com/jupyter/notebook)とは、Markdownテキスト・数式・図などを含んだドキュメント作成とPythonなどのプログラミング実行を提供する環境で、授業資料は`.ipynb`という拡張子のJupyterNotebook用ファイルとして作成されている。授業ではこれを**ノートブック**や**Notebook**などと表記・呼称する。 - -`.ipynb`形式のソースファイルの管理と共有には、GitHubと呼ばれる環境を利用していて、ソースファイルは[こちら](https://github.com/SotaYoshida/Lecture_DataScience)からも閲覧できる(この授業を受講したりプログラムを実行するのに皆さんがGitHubのアカウントを取得したりこのリンクを開いたりする必要は特段ありません)。 -Jupyter Notebookを編集・実行するための環境はいくつかあるが、本授業では環境構築やそれにかかるトラブルシューティングを最小化するために、Google Colaboratoryというサービスを利用して**Googleのクラウド環境上でJupyter Nootebookを編集・実行する方式**を採用している。 - -:::{note} -**授業に先立ってGoogleのアカウントの新規取得をお願いします** -::: - -**ブック**は概要をとらえたり復習をするときには見やすくて便利だが、実際に自身でコードを実行したりプログラムを書く場合には**Google Colaboratory上でJupyter Notebookを開く**ことになる。 -Google Colab.上でノートブックを開くには、各章の冒頭に用意された"Open in Colab"というボタンをクリックするか、上のロケットの形をしたボタンにマウスオーバーして"Colab"から開く。左の"Google Colaboratoryの使い方"や第1章のノートブックで試してみよう。参考: -![](notebooks/pic_for_notebook/pic_0_0.png) - - -## 不具合報告または問い合わせ - -本講義資料に関する不具合(リンク切れなど)の報告や問い合わせについては下記のフォームよりお願いします。 -授業受講者からの不具合報告関しては授業やCL等で返答します。授業外の問い合わせについては、お答え出来ない場合もありますので予めご了承ください。 - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter0_HowToUse.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter0_HowToUse.ipynb deleted file mode 100644 index 17542e2c..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter0_HowToUse.ipynb +++ /dev/null @@ -1,179 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Google Colaboratoryの使い方\n", - "\n", - ":::{note}\n", - "以下の内容は、Google Colaboratoryや関連サービスのアップデートに伴い、数ヶ月経つとところどころ文言が変更されている場合があります。適宜対応するものに置き換えて読んでいただけると助かります。\n", - ":::\n", - ":::{note}\n", - "Macユーザーの人は適宜下記のコントロールキー`Ctrl`を`command`(`⌘`)キーに読み替えてください。\n", - ":::\n", - "\n", - "Google Colaboratory上でノートブックを開くと、下記のような画面が開く。(上のOpen in ColabまたはロケットマークからColabを開いてみよう!)\n", - "\n", - "![](pic_for_notebook/pic_0_1.png)\n", - "\n", - "\n", - "この画面が開いたときに、右上にお使いのGoogleのアカウントのアイコンが表示されている人はそのまま以下へ、\"ログイン\"というボタンが表示されている人はまずそちらからご自身のアカウントにログインしてください。 \n", - "授業ではプログラミングの強力さを体感してもらうために、**Google Driveの中に入っているcsv/excelファイルを読み出して自動で作画をするプログラム**を書いたりする。\n", - "その際、教員やTAと受講者間でdriveを見ながら相談することもあり得る。プライベートなアカウントとは別に、**大学の授業で使う専用のアカウントを新規作成する**のを強く推奨します。\n", - "\n", - "\n", - "Google Colaboratory(あるいはJupyterNotebook)環境ではユーザーは\n", - "- **テキストセル**\n", - "- **コードセル**\n", - "\n", - "の2つを駆使して、自分だけのノートブックを作成したり、他者が作成した`.ipynb`形式のファイルを開いて編集したりプログラムを実行することができる。\n", - "\n", - "\n", - "## テキストセル\n", - "[+テキスト]というボタンを押すとテキストセルを追加することができます。\n", - "\n", - "\n", - "### テキスト部分への数式の挿入\n", - "\n", - "Jupyter Nootebookでは$\\LaTeX$形式の数式をサポートしていて、ドルマークで囲むと数式を表示させることもできます。 \n", - "$f(x) = \\frac{1}{2}\\exp{(-2x^2 + 3x + 5)}$\n", - "\n", - "\n", - "## コードセル\n", - "[+コード]というボタンを押すか、特定のショートカット`Ctrl + M B`でコードセルを追加することができる。\n", - "\n", - "コードセルに記述したPythonコードは、コードセルにマウスオーバーした際に現れる再生ボタンのようなアイコンをクリックするか、セル内で`Ctrl+Enter`を押すことで実行ができる。\n", - "実行のたびにいちいちマウスに手をやるのは面倒なので、是非ショートカットを使おう。\n", - "この例に限らず、手の移動を最小限にすることで作業を楽にしたり押し間違いを防ぐこともできる。\n", - "アプリケーションにあまり依らない共通のショートカット(`Ctrl+S`(`⌘+S`)は保存,`Ctrl+W`(`⌘+W`)はタブを閉じる, などなど)ので少しずつショートカットを覚えるようにしよう。\n", - "\n", - "\n", - "**コードセルにはコメントを除いて、全角文字は使わない**ように意識しよう。\n", - "**全角スペースなどが気づかずに混入して、エラーの原因になること**がよくある。\n", - "\n", - "## 重要な注\n", - "\n", - "ブックから開いたノートブック\n", - "```{margin}\n", - "ノートブックの実体(ソースファイル)は[GitHub上](https://github.com/SotaYoshida/Lecture_DataScience)にあります\n", - "```\n", - "は、皆さんがコピーをするなどしない限り、実行はできても保存はできません。\n", - "```{warning}\n", - "**必ず、[ドライブにコピーを保存]ボタンか、[ファイル]->[ドライブにコピーを保存]を押し、\"ご自身のファイル\"を編集・保存するようにしてください**\n", - "![](pic_for_notebook/pic_0_2.png)\n", - "```\n", - "\n", - "上の画像のように、ノートブックのファイル名の横にGitHubのロゴ(タコ足猫)が表示されている場合、\n", - "皆さんが開いているのはGitHubからインポートされたノートブックであって、皆さん自身のファイルではありません。 \n", - "途中でうっかりタブやブラウザを閉じてしまうと作業内容が消えてしまいます。\n", - "\n", - "私も一連の講義資料作成時にGitHubから開いたノートブックを直接編集して数時間分の作業内容を消してしまったことが何度もあります...。辛いです。\n", - "\n", - "コピーを編集している場合は、左上のノートブック名の隣がGoogle driveのロゴになっているはず。 \n", - "この場合、編集されたものはGoogle Driveに一定時間で自動でバックアップされるので安心ですし、いつでもどの端末からでも開いて作業を再開することができます。 \n", - "![](https://drive.google.com/uc?export=view&id=1IibFQS1TVq6xDhG62AP9yG2Sy0c89Zut)\n", - "\n", - "\n", - "```{margin}\n", - "MS Officeなど、他の多くのソフトでも共通のショートカットなので、こまめに保存する手クセを付けておきましょう。\n", - "保存!保存!!保存!!!\n", - "```\n", - "Windowsなら`Ctrl+ S`, Macなら`Command + S`を押すことで随時Google Driveにバックアップを保存することができます。 \n", - "誤った内容に編集してしまった場合もGoogle Colaboratoryの\"最終編集: X月Y日\"といったところやGoogle Drive上でファイルの上で右クリック→\"版を管理\"から復元することができます。\n", - "\n", - "## なんか挙動が変だな、と思ったら。\n", - "\n", - "複数のセルにまたがるコードを実行していくうちに変数に意図しないものが入っていたりなんか変だな、挙動が怪しいな、と思ったら[ランタイム]や[編集]などから下記の操作を行ってみましょう。\n", - "\n", - "* セルの実行を停止したい場合: [ランタイム]→[実行の中断]で中断 (or [セッションの管理]から不要なセッションを削除する)\n", - "* 再起動したい場合: [ランタイム]→[ランタイムを再起動]\n", - "* 出力をいったん全部消したい: [編集]→[出力をすべて消去]\n", - "\n", - "## Google Driveからファイルのインポート\n", - "\n", - "Google Colaboratoryでは、Google Driveに保存されたファイルの内容を読み込んだり、逆にコードでテキストファイル,エクセルファイルや画像,音声などを作成しGoogle Driveに保存することができます。\n", - "\n", - "お使いのアカウントのDriveをGoogle colab.から操作する方法は主に2通りあります。\n", - "\n", - "1つめ: \n", - "以下を実行し、出てくるURLに遷移 \n", - "authorization codeをコピーし枠内に貼り付けてEnterを押す \n", - "(Google colabからgoogle driveのファイルにアクセスできるようになります)\n", - "\n", - "```Python\n", - "from google.colab import drive\n", - "drive.mount('/content/drive/') ##google driveを/content/という場所にマウント (2番めと整合するようにパスを選びましたが、マウントする場所は自由に選べます)\n", - "```\n", - "\n", - "たとえばgoogle drive直下にあるXXX.pngというファイルを指定したい場合は\n", - "```Python\n", - "filename = \"/content/drive/My Drive/XXX.png\"\n", - "```\n", - "とすれば良い。\n", - "\n", - "2つめ: \n", - "Google Colabの左側にあるフォルダマークをクリックし、(「ファイルのブラウジングを有効にするには、ランタイムに接続してください。」と出る場合は、少し待ってください) \n", - "次に、Google driveのロゴがついたフォルダをクリックする(画像の、[ファイル]というところの右下にある、driveのロゴがついたグレーがかったフォルダマーク) \n", - "![](https://drive.google.com/uc?export=view&id=1RMjCaZN7emkVBqlYF-gFMcG8FRnw-9Xv)\n", - "\n", - "この場合は自動で```/content/drive```という場所にマウントされるので(仕様が変更になる可能性あり) \n", - "google drive直下にあるXXX.pngというファイルを指定したい場合はやはり\n", - "```Python\n", - "filename = \"/content/drive/My Drive/XXX.png\"\n", - "```\n", - "などとすれば良い。 \n", - "また、driveを一度マウントした後でパスがわからなくなったときには左の[ファイル]からdriveに相当するフォルダにマウスオーバーして縦3点$\\vdots$から[パスをコピー]で、パスをクリップボードにコピーすることができます。\n", - "\n", - "\n", - "## シェルコマンドとドライブ内のファイルのパス\n", - "\n", - "Google Colab.では先頭にエクスクラメーションマークをつけることで\n", - "* ls (リスト,ファイル等表示)\n", - "* mkdir (ディレクトリ作成)\n", - "\n", - "などのLinux/Unixで用いられるコマンドを実行することもできる。 \n", - "たとえばGoogle Driveをマウントした後にマイドライブ直下にあるpng画像のリストを表示させたければ\n", - "```bash\n", - "!ls /content/drive/MyDrive/*.png \n", - "```\n", - "とすればよい。\n", - "なお、半角のアスタリスクはワイルドカード記号「対象を任意に」という命令になっている。\n", - "\n", - "\n", - "\n" - ] - } - ], - "metadata": { - "colab": { - "include_colab_link": true, - "name": "Python_chapter0_HowToUse.ipynb", - "provenance": [] - }, - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter1_Introduction.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter1_Introduction.ipynb deleted file mode 100644 index 6b040732..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter1_Introduction.ipynb +++ /dev/null @@ -1,1010 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rk52fX27r7hj" - }, - "source": [ - "# Pythonの基本 その1:\n", - "\n", - "授業の冒頭で説明するように、プログラミングによるデータ分析は、複雑なデータの取り扱いを簡単にしてくれたり、系統的な作業を可能にしミス(精度)をコントロールすることが出来たりと利点が多い。しかし、その恩恵を受けるためには基本的な事項をまず学修しなくてはならない。\n", - "\n", - ":::{margin}\n", - "さらにいうと英語で検索できればウェブ上で収集できる情報は何倍にも膨れ上がる.\n", - ":::\n", - "この授業で重視するのは**Pythonの文法や作法、テクニックではない**。というのも、自分が実現したい操作・作業をきちんと**言語化**することさえできれば、授業で扱う程度の内容であればググればだいたいのことは解決できるし、インターフェース(見た目)が違ったとしても別のプログラミング言語やデータ解析ツールにも応用が効く。 \n", - "\n", - "したがって、以降では「いったいなんのためにホニャララなんてものを導入(定義)するのか?」を意識しながら学習していくことにしよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9f041YDhyHKb" - }, - "source": [ - "## 変数の定義と簡単な演算\n", - "\n", - "**「\"値\"に固有の名前(識別子)を付したもの」** を**変数**と定義する。\n", - "\n", - "どのようなものが\"値\"として扱えるかは後で見ていくことにして、まずは代表的な値である**実数値**,**整数**を変数として定義してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_emEY3U-SGBk" - }, - "outputs": [], - "source": [ - "a = 2.0 \n", - "b = 5" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CUJ8eEf8x2bs" - }, - "source": [ - "これで変数```a```と変数```b```に値が代入され\"定義\"された。 \n", - "プログラムでは通常、等号記号(`=`)は代入に使用される。値の代入は、等号の左に変数(値を入れたいものの名前)、等号の右に値を書くことで行う。\n", - "\n", - "注: よく書籍などでは変数を箱と見立てて箱の中に数値や文字列を入れる説明もよく見られるが、変数は値が保管されるメモリ上の住所を示すものというのが正確。関連した話題としては、次の章の**リスト操作の注意点**を参照.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kSahHBeguqRX" - }, - "source": [ - "## 簡単な演算\n", - "次に、上で定義された変数を使って四則演算をしてみよう。\n", - "\n", - "足し算" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "PLwBPo2OyCvc", - "outputId": "e803fa31-9566-4d87-a253-a3a99ee33753" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "7.0" - ] - }, - "execution_count": 6, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "a+b " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1ntUEuJWyBoC" - }, - "source": [ - "引き算" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "1IpzKL9TyW2k", - "outputId": "08807a99-86e7-40a3-f556-bd67d6cf2338" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "-3.0" - ] - }, - "execution_count": 7, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "a-b" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S4-CasuLyiJM" - }, - "source": [ - "掛け算 掛け算記号は`*`(アスタリスク)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "ZQCmuN-IyiZQ", - "outputId": "80bc16fe-5012-4c2e-db6a-001609a5d640" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "10.0" - ] - }, - "execution_count": 8, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "a*b" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "割り算" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a/b" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uYolSMVnyiiz" - }, - "source": [ - "演算した結果を別の変数`c`として定義したり代入して保存しておくこともできる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "8Z5Q-TN0yirc" - }, - "outputs": [], - "source": [ - "c=a*b " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_eyM3WdUyiyP" - }, - "source": [ - "`c`の値が後で知りたいと思ったときは、以下のように`print`関数というものを使う" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "dS6W58sfyi8w", - "outputId": "0b78e406-7d9d-4f8c-d584-4cd1195f3680" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "10.0\n" - ] - } - ], - "source": [ - "print(c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SvfvgAEu2hAq" - }, - "source": [ - "変数の値を確認することは、プログラムが正しく動いているかを確認する最も単純かつ強力な方法である。 \n", - "慣れないうちは「値はなんだっけな?」「何かおかしい、意図した動きと違うな」と思ったら`print`してみよう。\n", - "\n", - "またコード部分に`#`(半角シャープ記号)をつけるとその行の`#`以降に書かれたことは無視されるのでコメント(注釈)を書いたりすることができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MArtGR067qrB" - }, - "outputs": [], - "source": [ - "print(\"Hello\") # Helloとプリントする(ここは読まれない)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "なれないうちは**どういった計算をするのか**、**その行をいつ編集したのか**などコメントを逐一書いておくのも良い。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "uNWje7ZmSPQh" - }, - "outputs": [], - "source": [ - "## 10月1日に編集\n", - "print(b//a) # 切り捨て除算 \n", - "print(b%a) # bをaで割った余り\n", - "print(a**b) # aのb乗" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "上の例で、`#`を忘れると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 135 - }, - "id": "CVrAtuQS7zqd", - "outputId": "a02ec808-9b4b-4ce3-cbd6-5d75b0561b7f" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(\"Hello\") Helloとプリントする\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "print(\"Hello\") Helloとプリントする" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "F5KhEPy9ngiO" - }, - "source": [ - "構文エラー(SyntaxError)が発生する。\n", - "基本的に`SyntaxError:`は**あなたの書いたコードがPythonの文法上許されない書き方になっている**ことを意味している。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(\"Hello\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "は一見問題ないように見えるが、`print`関数の右側の括弧`(`が全角になっているため、これもSyntaxErrorとなる。\n", - "細かな文法やエラーの原因の特定については、一緒に少しずつ慣れていこう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qYviUyHp50-g" - }, - "source": [ - "一度定義した変数は、値を更新することもできる。\n", - "\n", - "```a = a + 2```は、\"aに2を加えた値\"でaを再定義することを表し、```a += 2 ```と書いても同じ結果が得られる。(`+=` を用いた書き方のほうがシンプルなので、今後多用します)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "kShmmBdw6Bfg" - }, - "outputs": [], - "source": [ - "a = 2.0 \n", - "a += 4.0; print(\"2行目\", a) \n", - "a -= 3.0; print(\"3行目\", a)\n", - "a *= 3.0; print(\"4行目\", a)\n", - "a /= 3.0; print(\"5行目\", a)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "上では、セミコロン(`;`)で、複数のコードを1行に書くことができる機能を用いた。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ksTr3vgORMth" - }, - "source": [ - "## 変数名に関する約束\n", - "\n", - "この授業では**変数名に全角文字(ひらがな・カタカナ・漢字)は使わず、文字列かコメントにのみ使う**と約束をしよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lHrhJ0kP3sqB" - }, - "outputs": [], - "source": [ - "#非推奨\n", - "あ=1.0\n", - "print(あ)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "e7-sDw8n3Vnh" - }, - "source": [ - "上記のように、変数名にひらがな等を使用すること自体は可能で、Google Colaboratoryでも何も特別なことをしなくてもひらがなが使える。また、最近の多くのプログラミング言語は全角文字をサポートしている。\n", - "ただファイルの互換性などを考慮すると、一般にはひらがなや漢字など全角文字を変数に指定することは避けたほうが無難である。\n", - "\n", - "また、変数名などにひらがなを使うことに由来して起こりがちなバグとしては「括弧()を間違って全角にしてしまってそれに気が付かない」といったことがある。コードを編集する際に日本語の変数などを利用していると、半角・全角の切り替え忘れなどが生じうるので、コードセルではなるべく半角英数字のみを使うというのが、ミスを防ぐための一つの方法にもなっている。\n", - "\n", - "以降ではこの慣例にならって、変数名に全角文字は使わない。変数名は基本的に半角英数字, アンダースコア`_`のみで定義しよう。\n", - "```+-%/=```などの記号も使うことができない。たとえば```-```は既に引き算という演算を表すのに使用されているので、```a-b``` という名前の変数を定義しようとしても、コンピュータにとっては変数ではなく[a マイナス b]という演算だと認識されてしまう。\n", - "また変数の頭に数字を使うこともできない。 例: ```2a```\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "9nJInAMR8xBc" - }, - "outputs": [], - "source": [ - "a=5.0\n", - "a2 = a*2.0 #これはOK" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "-AQ_v6oN80VD", - "outputId": "8341c2a7-9ebb-4730-d47a-1b1ce7f2ac1b" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 2a = a*2.0 #これは構文エラー(SyntaxError)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "2a = a*2.0 #これは構文エラー(SyntaxError)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "67WnrlQFvGzc" - }, - "source": [ - "その他、よくあるエラーについては[こちら](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_misc_Error.html)を参照" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Xzh2hrEGQyoh" - }, - "source": [ - "## Pythonでの文字列操作\n", - "\n", - "Pythonでは、数値はもちろん文字列も**値**として扱うことができる。文字列は`\"\"`(ダブルクォーテーション)か`''`(シングルクォーテーション)で囲むことで定義することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Uf5RoETJQf9T" - }, - "outputs": [], - "source": [ - "text = \"私の名前はXXXです\" ## XXXのところを自分の名前にしてみましょう。\n", - "print(text)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vu7JQswcQima" - }, - "source": [ - "文字列には、足し算や整数値との掛け算が適用できる。たとえば\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1KfLiGbXSGtu" - }, - "outputs": [], - "source": [ - "text1 = \"ティッシュ配りの\"\n", - "text2 = \"バイトを監視する\"\n", - "print(text1 + text2) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gapLeKPbSS9X" - }, - "source": [ - "とすれば、`text1`と`text2`にそれぞれ代入した2つの文字列を連結した一つの文字列を表示することができる。\n", - "また、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lkPrilk0Smn1" - }, - "outputs": [], - "source": [ - "a = 2\n", - "print(str(a)+\"人の\"+text1+ text2 * 5 +\"正社員\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SXWbu7hERxhk" - }, - "source": [ - "とすれば、`text2`部分を5回繰り返して他の文字列とつなぎ合わせた長い文字列を作ることもできる。\n", - "\n", - "1点注意点としては、整数値を代入した`a`を文字列として他の文字列と結合したいときは、\n", - "`str()`関数(`str`はstringの略)を使って、文字列に変換してやらなくてはならない。\n", - "これに関連して、後ほど変数の**型**というものを勉強する。\n", - "\n", - "また足し算と掛け算は定義できるが、文字列に対して引き算や割り算を行おうとするとエラーを吐く。\n", - "\n", - "**※もう少し詳細な文字列操作**\n", - "`replace`関数,`split`関数,`strip`関数なども便利ですが、この章では省略します。以降の\"ファイル・文字列操作\"の章で扱います。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cA-K0W0gdUVm" - }, - "source": [ - "## プログラムの実行順 \n", - "\n", - "基本的にプログラミングでは、上から処理が実行される。 \n", - "(ループや関数が導入されると少し事情が異なり、ブロックと呼ばれる処理単位でまとめて実行されることもあるが、この点については、2・3章以降で追々見ていくことにしましょう)\n", - "\n", - "以下の2行のコードは、実行するとエラーが出る。 \n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "Nxtzf6oydyPo", - "outputId": "7928123b-07af-4bbb-c159-969ac7098e58" - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mnum\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'num' is not defined" - ] - } - ], - "source": [ - "print(num)\n", - "num=2" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pDZNSdGSXLLS" - }, - "source": [ - "理由は、エラーメッセージを読むと分かるように、```num```という変数が定義されていない(not defined/undefined)のに、その値を`print`しようとしたからである。\n", - "\n", - "\n", - "\n", - "もちろん```num=2```の代入部分を含むコードを実行した後ならエラーはでない。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "iGbewJx35Cv-", - "outputId": "39440ce3-4345-42f7-c5f9-ef3d405a7cdc" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2\n" - ] - } - ], - "source": [ - "num=2\n", - "print(num)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "diGHO3vHByMP" - }, - "source": [ - "とくにGoogle Colab(Jupyter Notebook)環境では、**セルをまたいでコードを実行することがあるので、意図した変数の値がきちんと引き継がれているか注意が必要**になる。また**変数のスコープ**という概念にも注意が必要となる(関数を扱う第3章で解説します).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nvVmV3T2eNNg" - }, - "source": [ - "Jupyter Notebook環境では、セルのコードを逐次実行した場合**コードセルの左側に表示される括弧[ ]内の整数でコードの実行順を確認することができる**。コードやノートが複雑になってくると、正しい順番で実行しないとエラーが出たり、エラーは出ないけれど意図した出力にならないといった事が起こりえるので、注意が必要。慣れないうちは、処理(プログラム)をあまりバラバラのセルに書かず、一つにまとめて書くのがオススメ\n", - "\n", - "**良い例**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "i04YCgvREx3D" - }, - "outputs": [], - "source": [ - "a = 2\n", - "f = a**2 + 3*a + 1\n", - "print(f)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "M9wpT6pdE94M" - }, - "source": [ - "**悪い例**\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NZz13R9wE5d-" - }, - "outputs": [], - "source": [ - "a = 5" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "tSEolkA1FBIb" - }, - "outputs": [], - "source": [ - "f = a**2 + 3*a + 1\n", - "print(f)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QWdmQhl7FOdy" - }, - "source": [ - "このようにコードを分けてしまうと、```f```では最後に```a```に代入された値を用いて計算が行われるので、```a=5```のセルを実行し忘れると、意図した値にならない。(あるいは未定義ならエラーとなる)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iZWBifqG1hiM" - }, - "source": [ - "## 変数の型   \n", - "プログラムの中で扱う変数には様々な\"型\"(`type`, タイプ)が存する。\n", - "代表的なものとしては、 \n", - "- `float`: 浮動小数点数(≒実数の有限桁内の近似)\n", - "- `int`: 整数 \n", - "- `str`: 文字列 (stringの略) \n", - "- `bool`: 真偽値 (下で説明します) \n", - "\n", - "が挙げられ、この他にも様々な型が存在している。 \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CiI90I_KBFp4" - }, - "source": [ - "たとえば以下のように変数の型は```type()```という関数を使うことで調べることができる。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lk5U6eRixEmS" - }, - "outputs": [], - "source": [ - "a=2\n", - "b=2.0\n", - "print( type(a), type(b))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SeEQBeHX_Ajq" - }, - "source": [ - "```{margin} 浮動小数点\n", - "いい加減な理解としては、\"実数値\"に近い概念だと思ってください。\n", - "\"いい加減な理解\"というのは\"厳密には違う\"という意味で、それについては後で説明します。\n", - "```\n", - "`a=2`は`int`(整数)型で、`b`(=2.0)は`float`、つまり浮動小数点(floating point)。\n", - "\n", - "Pythonでは特定の型同士のみに許された特殊な演算等もある。変数の型が調べたくなったときは```type```関数を使ってみよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ju30-9Eg_mkm" - }, - "source": [ - "### プログラムでの実数の取り扱い" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uV441Uk-5U6g" - }, - "source": [ - "整数としての2(つまり`int`型の2)は理想的な整数2であるのに対して、`float`型の2.0というのは、 \n", - "「コンピュータが扱える有限の精度のもとで十分2.0とみなせる値」という意味しか持たない。\n", - "\n", - "変数`a`に以下の値を代入して`print`してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_bHmWs7-70G_" - }, - "outputs": [], - "source": [ - "a = 2.00000000000000000000055511151231257827021181583404541015625\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Cil16n_8jY5E" - }, - "source": [ - "コンピュータで実数値を表現する際、小数点以下の桁数を無限桁考慮するのは、機械にとっても大変なので、ある程度の精度で打ち切ることが必要になる。\n", - "\n", - "Pythonで扱う実数値は、現在の世界標準である[IEEE 754](https://ja.wikipedia.org/wiki/IEEE_754)という規格のもとで、十進数に換算して16桁程度の精度(倍精度実数の場合)の近似となっている、とザックリ理解しておけば当面は問題ないでしょう。\n", - "\n", - "たとえば、`0.3`と`0.1+0.1+0.1`は、コンピュータが無限の精度を持っていれば(つまり0.3や0.1のあとに無限に0が続く数を扱うことができれば)等しい数になるべきだが、有限の精度を採用している都合上\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "guk4yu1W-ceA", - "outputId": "997d7dab-636b-4a3b-8602-8c7105b5f980" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-5.551115123125783e-17\n" - ] - } - ], - "source": [ - "print(0.3 - (0.1+0.1+0.1))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "fVklyhDm-0do" - }, - "source": [ - "というように差をとると極小の値だけずれている事が分かる。\n", - "\n", - "授業で扱う対象の場合は、この有限精度が実用上のトラブルを起こすことは無いはず。\n", - "一方で(研究等で)いわゆる数値計算を行う場合は、このようなごく小さな誤差が掛け算によって増幅され無視できない影響を引き起こすことがしばしばあるので、工夫や適切な処理が必要になることもある。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9pzeE-C812cT" - }, - "source": [ - "$\\clubsuit$ さらに進んだ注\n", - "\n", - "コンピューターでは、0か1の二値を取るビット(bit)を最小単位として数値など各種の情報を表現して扱います。\n", - "たとえば整数値は、ビットを用いた表現と1対1対応させることができます。ビットが2つ使えるとするならば、[00]が1, [01]が2,[10]が3,[11]が4といった具合です。\n", - "\n", - "一方で実数は、いくらでも小さく分割できるため集合としては非可算無限(それぞれの値に、1対1対応する\"番号\"をつけることができない)となり、これをコンピューターで扱おうとすると、必ず何らかの\"近似\"が必要になります。\n", - "この近似の方法として通常用いられるのが、**浮動小数点**という考え方でありその標準を定めたものが前述のIEEE754となります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0rTMkwwu542w" - }, - "source": [ - "## 予約語\n", - "\n", - "Pythonには、あらかじめ役割が与えられている言葉(**予約語**)があり変数名として使う事はできません。 \n", - "\n", - "実際にコード用のセルにこれらの語句を入力すると下記のように黒ではなく別の色で表示されます。このような場合は**変数に別の名前をつける**ようにしましょう。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NZupgRYXzOqc" - }, - "outputs": [], - "source": [ - "# 予約語は色で分かる\n", - "False, None, True, and, as, assert, break, \n", - "class, continue, def, del, elif, else, except, \n", - "finally, for, from, global, if, import, in, is, \n", - "lambda, nonlocal,not, or, pass, raise, return, \n", - "try, while, with, yield" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "予約語の役割については登場したその都度説明します。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2clzBTJo47u2" - }, - "source": [ - "## ブール(bool)\n", - "真偽値(`bool`,ブール)は`True`(真)と`False`(偽)の二値を取る型です。たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ft3Id7uO5VtR" - }, - "outputs": [], - "source": [ - "a=2.0; b = 5.0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "v3Dkiheo5ZE7" - }, - "source": [ - " のとき、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jlQpKJu6xTv-" - }, - "outputs": [], - "source": [ - "print(a < b) # aがbより小さいかどうか" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "e6CjUOwrxcgH" - }, - "outputs": [], - "source": [ - "print(a == b) # aがbと等しいかどうか プログラムでの等号は=ではなく==です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GjZXvoth5lZv" - }, - "source": [ - "これを考えるとなにが嬉しいかというと、ある条件をみたす(みたさない)ときだけ特定の作業をするプログラムを書くことが出来ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "wHr_li34xe8s" - }, - "outputs": [], - "source": [ - "if a==b: \n", - " print(\"aとbが一緒だよ!!やったぜ!!!\")\n", - "else:\n", - " print(\"aとbが違うじゃないか!!!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xyNnie55N77B" - }, - "source": [ - "このような**条件分岐**の具体例については次の章で見ることにしましょう。 " - ] - } - ], - "metadata": { - "colab": { - "include_colab_link": true, - "name": "Python_chapter1_Introduction.ipynb", - "provenance": [] - }, - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.10" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter2_ListLoop.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter2_ListLoop.ipynb deleted file mode 100644 index 59a0e9b0..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter2_ListLoop.ipynb +++ /dev/null @@ -1,2025 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9f041YDhyHKb" - }, - "source": [ - "# Pythonの基本 その2: \n", - "\n", - "\n", - "[この章の目的]\n", - "プログラミングで非常に重要な概念である配列や繰り返し処理について学ぶ。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FxEjmIHu3StG" - }, - "source": [ - "## リスト\n", - "\n", - "実際にいろんなデータを扱う際には、値や変数をまとめて処理したくなります。\n", - "こうしたときに必要になるのが以下で扱う**リスト**型を始めとする**配列**です。\n", - "\n", - "リストは、値や変数などを括弧[ ]で括り、カンマで区切ることで作ることができます。\n", - "例: ```[1.0, 2.0, 3.0]``` \n", - "また好きな名前の変数にリストを代入する(リストに名前を割り振る)こともできます" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "dxpkCjfvjsDD" - }, - "outputs": [], - "source": [ - "heights=[178.0, 180.0, 153.0]\n", - "\n", - "# 変数heightsをprint\n", - "print(heights)\n", - "\n", - "# 変数heightsの型をprint\n", - "print(\"変数aの型(type)は\", type(heights)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CI7AqILkzWYY" - }, - "source": [ - "リストの要素にできるのは数値だけではなく、文字列のリストも作ることができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "a7c5bw5O36CC" - }, - "outputs": [], - "source": [ - "names = [ \"Aさん\", \"Bさん\", \"宇大太郎さん\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SkfATN0Jj_Oo" - }, - "source": [ - "リストに入っている要素の数は、`len()`関数(lengthの略)で見ることができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "nexyb9lAkJC0" - }, - "outputs": [], - "source": [ - "print(\"リストnamesは\", names)\n", - "print(\"長さは\", len(names))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7NWIj0tWzxGa" - }, - "source": [ - "当然、長さに名前をつけて適当な変数として定義することもできます。\n", - "**関数の出力の結果を何度も後で再利用する場合**などは、このように変数に代入しておくと便利です。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "yQWDGLFCmszW" - }, - "outputs": [], - "source": [ - "ln_a = len(names)\n", - "print(\"リストaの長さは\", len(names), \"で、型は\", type(ln_a)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gjwXE2cJz05q" - }, - "source": [ - "文字列と値を組み合わせたようなリストも作ることができます。 \n", - "例:名前、身長、体重 => ```[\"Aさん\", 178, 66]```\n", - "\n", - "また、これを拡張して、入れ子に(リストのリストを作成)することもできます。\n", - "``` [ [\"Aさん\", 178,66], [\"Bさん\", 180, 70] ]```" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8kVQe42tkK-D" - }, - "source": [ - "### リストの要素にアクセスする, インデックス(index)\n", - "\n", - "リストの中の要素にアクセスするときは、半角括弧を使って[整数]といった形で\"番地\"を指定します。 \n", - "このときの番地(あるいは座標といっても良いですが)を指定する整数のことをインデックス(index)と呼びます。\n", - "\n", - "**【重要】Pythonでは要素にアクセスするためのインデックスは1からではなく、0からカウントします!**\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "kRMlRuwhj2Rc" - }, - "outputs": [], - "source": [ - "a = [\"Aさん\", 178, 66]\n", - "print(a[0])\n", - "print(a[1])\n", - "print(a[2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ci65y6MBoSvU" - }, - "source": [ - "ですので、`a[3]`にアクセスしようとすると、\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mkON3qP1occT" - }, - "outputs": [], - "source": [ - "print(a[3])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zHlSjTaJn9UU" - }, - "source": [ - "list index out of range (リストのインデックスが用意された範囲(range)を逸脱している)というエラーが出ます。 \n", - "慣れないうちは0からカウントするのを変に思うかもしれませんが、これはプログラミング言語の仕様によるもので、Pythonの他にもC/C++なども0からカウントします。(ちなみにFORTRAN, Juliaなどは1からカウントします。)\n", - "\n", - "こうした0-based indexingと呼ばれる言語の利点はいくつかありますが、代表的なものは負のインデックスが自然に使えることでしょうか?\n", - "\n", - "理工系分野では、教科書などで行列やベクトルの要素を指定するのに1-based indexingを使うことも多いため、混乱するかもしれません。慣れるまでは注意が必要です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "D_hxwmblo4GK" - }, - "outputs": [], - "source": [ - "a = [\"Aさん\", 178, 66]\n", - "print(a)\n", - "print(a[-1])\n", - "print(a[-2])\n", - "print(a[-3])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "--1OHCHKo9An" - }, - "source": [ - "`[-1]`でアクセスすれば末尾の要素に、`[-2]`番目の要素は後ろから二番目といった具合です。\n", - "\n", - "長いリストを作って「えっとこれ前から何番目の要素だったっけ...?」というときに、 \n", - "後ろからX番目の要素といったように、サクッと取得できるのが便利なときもあります。\n", - "\n", - "入れ子にしたリストの要素を見たり、使いたいときには、少々慣れが必要です。 \n", - "```a = [ [[1,2], [3,4]], 5, 6]``` \n", - "このような場合では、一番外側の括弧から数えて、 \n", - "何番目の階層になっているかを考えることが必要になります。 \n", - "練習してみましょう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_yXPKxkk1XYh" - }, - "source": [ - "**練習**\n", - "\n", - ":::{margin} 変数名の規則\n", - "授業の資料のように、一時的な変数を使う場合は`a`や`tmp`といった意味のない変数名で十分なのですが\n", - "自身でいろんなコードを書くときは**後で自分や他人が見たときになんの変数のつもりか分かる**ような変数名にしましょう。\n", - "5日後の自分も他人のようなものです。\n", - ":::\n", - "1. [+コード]でセルを以下に追加し、下のリストを作成する \n", - " ```tmp = [ [\"Aさん\", 178,66], [\"Bさん\", 180, 70] ]```\n", - "2. ```tmp[i][j]```のi,jに可能な整数を入れて、Aさんの身長、Bさんの体重などをprint関数で表示してみましょう。\n", - "3. 2.と同じことを、負のインデックスを駆使してやってみましょう。\n", - "4. ```a = [ [[1,2], [3,4]], 5, 6]```を作成して、\n", - " len(a[0]) #0番目の要素の数をprintしてみましょう。\n", - "5. ```print(a[0][0][1])```を実行してみましょう。\n", - "6. 4.5.の挙動から推測して、aのリストの中から4を取り出したい場合どうすればいいのかprint関数を使いながら考えてみましょう。\n", - "\n", - "\n", - ":::{note}\n", - "テキストセルの内容をコードセルなどにコピー&ペーストしたければ、対象をドラッグして、`Ctrl+C`でコピー,`Ctrl+V`でペースト出来ます(Macの場合は`Ctrl`を`⌘`に置き換えてください)\n", - ":::" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZB9epIx_VAQ6" - }, - "source": [ - "### リストの結合\n", - "\n", - "2つのリストを結合することもできます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "YUsuP81s3_BG" - }, - "outputs": [], - "source": [ - "a=[1,3]\n", - "b=[2,4]\n", - "c= a+b\n", - "print(c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hfEDbcvd6bFE" - }, - "source": [ - "\n", - "上のリストを\"座標\"だと思えば、要素ごとの和になってほしいような気もしますが、リストの足し算は要素ごとの和ではなく\"リストの結合\"を意味します。\n", - "\n", - "> 補足: 要素ごとの和のような、数学などで必要な演算は以降で扱う```numpy```というモジュールを使って`ndarray`型と呼ばれるものにすれば簡単に実行できます\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CDhimmq_0x-q" - }, - "source": [ - "長さや階層の異なる2つのリストでも可能です." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "b3DFZtE602hP" - }, - "outputs": [], - "source": [ - "c=[1,2,\"Aさん\"]\n", - "d=[[5,6],[7,8]]\n", - "c+d" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ovAjU_321ROI" - }, - "source": [ - "### リストに要素を加える" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s568X9r-4c6J" - }, - "source": [ - "リストにあとから要素を加えたくなるときもあります. \n", - "そんなときは ```append```関数か```+=```を使います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "b_1nWHpd4ptJ" - }, - "outputs": [], - "source": [ - "A = [\"Aさん\", 178,66] \n", - "A.append(\"O型\")\n", - "print(\"A\", A)\n", - "\n", - "B = [ \"Bさん\", 180,70] \n", - "B += [\"A型\"]\n", - "print(B)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qpkIcDzA8S4X" - }, - "source": [ - "厳密には両者は違うのですが、この授業では見た目がスッキリするので後者をよく使います。 \n", - "入れ子のリストを作るときは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lqfalNz788Rx" - }, - "outputs": [], - "source": [ - "data = [ ]\n", - "data += [ [\"Aさん\",178,66] ]\n", - "data += [ [\"Bさん\",180,70] ]\n", - "print(\"data\", data)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wT8k9-LB9Y74" - }, - "source": [ - "などとする。空リストに既存(新規)のリストを追加したいときに、上のように`[ ]`が二重に必要な理由はリスト同士の和の演算が結合となることから理解できる。\n", - "実際に1重の括弧で試してみよう:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "GRI40dgS1U-u" - }, - "outputs": [], - "source": [ - "data2 = [ ]\n", - "data2 += [\"Aさん\", 178,66] # 1重カッコ これだと右辺のリストを空リストに結合することになる\n", - "data2 += [ \"Bさん\",180,70] # これも同様\n", - "print(data2)\n", - "print(\"data2\", data2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "u3Q7Qi8mnE4l" - }, - "source": [ - "こうしてしまう(リスト同士の単なる結合)と、人ごとにデータが区切られていないので扱うのに不便となる。\n", - "\n", - "リストに格納する情報に血液型を加えたりする際は以下のようにすればよい" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_l9GJWZ98srB" - }, - "outputs": [], - "source": [ - "### 名前,身長,体重,血液型,住んでる市区町村のリストを\n", - "a = [ \"Aさん\", 178, 66, \"A型\"]\n", - "print(a)\n", - "a += [\"宇都宮市\"]\n", - "print(\"住所追加後\", a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cdCiouyW2oqJ" - }, - "source": [ - "リストの要素は後から更新することもできます.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "XIATihMK9Lh6" - }, - "outputs": [], - "source": [ - "data = [ [\"Aさん\", 178,66],[\"Bさん\",180,70] ]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vdRIu-li9Oqe" - }, - "source": [ - "というリストがあったとして、Aさんの体重を修正したければ、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "fZ0mjwjn2uXd" - }, - "outputs": [], - "source": [ - "data[0][2] = 58 #Aさんの体重を更新\n", - "print(data) #リストを表示" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "血液型を追加したければ以下のようにすればよい。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "data[0] += [ \"A型\"]\n", - "data[1] += [ \"B型\"]\n", - "\n", - "print(data)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "a0gQkWzeUqgj" - }, - "source": [ - "### インデックスの取得" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V_MaDugdUs2T" - }, - "source": [ - "\n", - "```index```関数を使ってリスト内の、[興味のある要素]のインデックスを取得することができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DsvZFrmmU4iz" - }, - "outputs": [], - "source": [ - "tlist = [ \"いちご\", \"りんご\", \"ぶどう\"]\n", - "tlist.index(\"りんご\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZIyt7579U7bR" - }, - "source": [ - "重複する要素がある場合、初めにヒットしたインデックスを返します。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WD1qkBNvU8fH" - }, - "outputs": [], - "source": [ - "tlist2 = [ \"いちご\", \"りんご\", \"ぶどう\",\"メロン\",\"りんご\"]\n", - "tlist2.index(\"りんご\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "97rfD_PvVKU2" - }, - "source": [ - "複雑なデータを扱う際に「あれ、あの要素ってどこの番地にあるんだっけ?」といった状況に便利な関数です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rYMz3ClOhp9D" - }, - "source": [ - "### スライスを用いた部分リストの取得" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GSRzB_IPiPCO" - }, - "source": [ - "以下の```a```のようなリストがあったとき、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mkyfjA4ZiPtu" - }, - "outputs": [], - "source": [ - "a= [ \"years\", 1990, 1995, 2000, 2005, 2010, 2015, 2020]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0WmC8_qwiZPi" - }, - "source": [ - "始点,コロン(`:`),終点でインデックスの範囲を指定して、部分的に取り出すことが出来ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "z2fish5zixSf" - }, - "outputs": [], - "source": [ - "a[2:5]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "COx3lOQZjCFo" - }, - "source": [ - "終点のインデックスに相当する要素は取り出されないことに注意しましょう。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "XasfLIqRjHbe" - }, - "outputs": [], - "source": [ - "a[1:]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sG4YvJTQjIE0" - }, - "source": [ - "とすると、最後の要素まで含まれます。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LWya_HtMjKXw" - }, - "source": [ - "負のインデックスを使用することもできます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MKJ5-cJPi_xy" - }, - "outputs": [], - "source": [ - "a[1:-1]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BsLWAvmb3JDd" - }, - "source": [ - "### $\\clubsuit$ リスト操作の注意点 \n", - "\n", - "授業で扱う程度の内容のプログラミングに関する疑問は、ググれば自分でだいたい解決することができます。 \n", - "ただしこの項目で述べることは(初学者にとって)「直感に反するのだけど、どこがおかしいのか分からないので**そもそもどうググっていいかが分からない**」という点で、少し事情が異なります。 \n", - "\n", - "例を見せるために、以下の2種類のリストを用意します.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "IUJ1-lAY3T0n" - }, - "outputs": [], - "source": [ - "data1 = [[ \"Aさん\", 178,66], [ \"Bさん\",180,70] ]\n", - "tmp = [\"Aさん\", 178,66]\n", - "data2 =[ tmp, tmp] \n", - "\n", - "print(\"data1\", data1)\n", - "print(\"data2\", data2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "t2FS4d0U3-rq" - }, - "source": [ - "`data2`のようにまず雛形のリスト`tmp`を作って人数分の長さを持つリストを作ってから中身を編集しようと考えた場合、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w-uX1Alb4OOi" - }, - "outputs": [], - "source": [ - "data2[1][0]=\"Bさん\"\n", - "data2[1][1]=180\n", - "data2[1][2]=70" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iQwPT_WN4WG_" - }, - "source": [ - "という操作を思いつきます。このとき、`data2`の2つ目(0から数えて1番目)の要素だけを編集したつもりでも`data2`を`print`すると\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rkK0uOpz4huX" - }, - "outputs": [], - "source": [ - "print(data2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rVVjGsPu4jhj" - }, - "source": [ - "data2の最初の要素(Aさんのままであってほしいリスト)まで上書きされてしまっています。 \n", - "これは直感に反しているという点で、初学者が陥りやすい落とし穴です。\n", - "\n", - "※C言語などを学習していれば、参照渡し(ポインタ渡し)などである程度馴染みがあるかもしれません。\n", - "\n", - "「値を格納する箱というよりは値が保管される住所を示すもの」と1章の[変数の定義と簡単な演算]のところで書きました。 \n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xt1Q_B0f5QYL" - }, - "outputs": [], - "source": [ - "tmp = [\"Aさん\", 178,66]\n", - "data2 =[ tmp, tmp] \n", - "print(id(data2[0]), id(data2[1])) #それぞれのidを調べてprint\n", - "print(\"idが等しいか\", id(data2[0])== id(data2[1])) #id()は変数のidを確認する関数" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HktuZ7f85_FY" - }, - "source": [ - "今の場合、`data2`を最初に作ったときには0番目と1番目の要素(リスト)は同一の`id`を持つ`tmp`というリストです。 \n", - "したがって`tmp`の中身を書き換える操作(`data2[1][0]=\"Bさん\"`)は、`tmp`の更新を通して`data2`の要素いずれもに影響します。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LU95twWnrFGG" - }, - "source": [ - "このように、(特に)リストを入れ子にする際には、注意が必要です。なんかへんだな?と思ったときは要素の`id`に気を配ってみるのも重要です. \n", - "上のコードで、意図したものと違う挙動を起こした原因は、リスト`tmp`を参照する形で`data2`を作ったことでした。 \n", - "これは`copy`モジュールの`copy`関数を用いて配列のコピーを作成することで回避できます。(モジュールについては4章で説明します)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Bor6WGZzrIXO" - }, - "outputs": [], - "source": [ - "import copy #copyというモジュールをインポートする\n", - "tmp=[\"Aさん\",178,66]\n", - "data2 = [ copy.copy(tmp), copy.copy(tmp)]\n", - "print(id(data2[0]) == id(data2[1])) # ← data2の0番目と1番目のidが同じ(参照元が同じ)だと困るのでFalseであってほしい" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EZQPPyoaryQS" - }, - "source": [ - " また、リストのリスト(ネストされたリストといったりします)それ自体をcopyしたいときは、\n", - "```copy.deepcopy()```を使います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WkRQ4_klncVY" - }, - "outputs": [], - "source": [ - "import copy\n", - "data = [[ \"Aさん\", 178,66], [\"Bさん\",180,70] ]\n", - "\n", - "copydata = copy.copy(data)\n", - "deepcopydata = copy.deepcopy(data)\n", - "\n", - "\n", - "print(id(data), id(copydata),id(deepcopydata))\n", - "print(id(data[0]), id(copydata[0]), id(deepcopydata[0]))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "di-HvKQhpV4c" - }, - "source": [ - "上を見ると```data```というリストと```copydata```という\"リスト同士\"が異なるidを持っていても、それぞれの0番目の要素のidを見てみると、同じものを参照していることがわかります。 \n", - "このように、ネストされたリストをコピーして別々に扱いたい場合は特に注意が必要で、```deepcopy```のような作業が必要となります。(私も初めてプログラミングで配列を使ったときに、この点に気が付かずに時間をかなり溶かしました)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "66r8pzgrfwOi" - }, - "source": [ - "## 条件分岐 (if文)\n", - "\n", - "`if`文では、書かれた条件が成立した場合、後に続くブロックを実行します。 \n", - "`if`文を使って命題の真偽を判定することで、条件分岐を表現することができます。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "JOz7cyvQf2NX" - }, - "outputs": [], - "source": [ - "a=3.0; b =-0.3\n", - "if a > b: \n", - " print(\"aはbよりも大きい\")\n", - "if b > a:\n", - " print(\"bはaよりも大きい\") ##これは呼び出されない" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QF6tLC7agluM" - }, - "source": [ - "条件を満たすときはA,満たさないときはBをしたい、という場合には```else```を使う。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SacEU4f0gsmv" - }, - "outputs": [], - "source": [ - "if a< b:\n", - " print(\"aはbよりも小さい\")\n", - "else:\n", - " print(\"a>=b\") " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "t0pZV6Ghg31K" - }, - "source": [ - "```elif```(else ifの略)を用いれば、もう少し複雑な条件を表現することができる。\n", - "\n", - "たとえば、もし条件1が満たされればAを実行、条件1は満たされないが条件2が満たされればBを、さらに1も2も満たされない場合はCを実行するという場合は下記のようなコードになる:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "a68DTqL-hak5" - }, - "outputs": [], - "source": [ - "if a < b: #条件1\n", - " print(\"ab\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "fOvfCVFUiL1d" - }, - "source": [ - "if文は入れ子構造にすることもできる。その際はインデントを使ってブロックを表現する。\n", - "\n", - "たとえば`a`が偶数の場合は値をそのまま表示して、`a`が奇数の場合は3の倍数かそうでないかで処理を変える事を考えると、以下のようになる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ioNZB5iAiM_d" - }, - "outputs": [], - "source": [ - "if a % 2 == 0 :\n", - " print(a)\n", - "else:\n", - " if a % 3 == 0 :\n", - " print(str(a)+\"は3の倍数です\")\n", - " else:\n", - " print(str(a)+\"は3の倍数ではありません\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5qWPQPGMii74" - }, - "source": [ - "`if`文を使って条件分岐を作るときは**条件分岐にモレがないか**注意が必要です。例えば、変数`a`の値によって処理を行う場合" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Tv3MJC6ukVIM" - }, - "source": [ - "```py\n", - "if a > 0:\n", - " ## なんらかの処理1\n", - "if a < 0:\n", - " ## なんらかの処理2\n", - "```\n", - "\n", - "と書いてしまうと、`a=0`の場合、`if`文を2つともすり抜けてしまい、バグの原因になることがあります。はじめのうちは少々面倒でも```else```を使って、意図しないすり抜けがないかチェックするのが良いでしょう。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2oZ3vaYb3s1t" - }, - "outputs": [], - "source": [ - "a = 0 #aをいろんな値に変えて実行してみてください\n", - "if a > 0: #aが0より大きい場合\n", - " print(\"処理1:a+2=\", a+2)\n", - "elif a<0: \n", - " print(\"処理2:a*2=\", a*2) \n", - "else:\n", - " print(\"ゼロだよ?なんにもしなくていいの?\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1ecruqL3pHA4" - }, - "source": [ - "## ループ処理\n", - "\n", - "ループ処理は、プログラミングの中で**最も重要な概念の一つ**です。 \n", - "ループ処理を使うことで、同じ処理を繰り返し行うことができます。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cQKuOTIcJxYE" - }, - "source": [ - "### for文" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-hI7Tnwf79LU" - }, - "source": [ - "まず以下のコードを実行してみましょう:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "VgjXia0upIya" - }, - "outputs": [], - "source": [ - "for i in range(5):\n", - " print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vLdv2seGpj7Z" - }, - "source": [ - "上のコードは、\n", - ">iを0から4まで変化させながらiをprintする作業を繰り返しなさい\n", - "\n", - "という処理になっています。順番に見ていきましょう: \n", - "まず`range()`関数は、`range`型のオブジェクトを生成する関数で、`range(5)`は0から整数を5つ(0,1,2,3,4)を生成する関数です。やはり0始まりで、5が含まれないことに注意です。 \n", - "なお`range`関数の引数を`range(始点,終点,間隔)`と3つにすると、より複雑な整数の集合を作ることもできます。 \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HJ_Q30y-qNZv" - }, - "outputs": [], - "source": [ - "for i in range(0,6,2):\n", - " print(i) #やはり6は含まれないことに注意" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YMq8UkMY1UVt" - }, - "source": [ - "```in```(予約語なので色が変わってますね)は、`i`に`range()`で指定した数値の範囲(リストみたいなもの)を順番に突っ込んでいく関数と理解しておけばひとまずOKです。\n", - "\n", - "次に、リストの中身を順番に表示させてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DosIH6zO1aeW" - }, - "outputs": [], - "source": [ - "kudamono = [\"いちご\", \"りんご\",\"ぶどう\",\"メロン\"] #リストを定義\n", - "for tmp in kudamono:\n", - " print(tmp)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Mi49kwOX1iJ0" - }, - "source": [ - "上のコードでは、`tmp`という変数に`kudamono`というリストの中身が順番に当てはめられている事がわかります。 \n", - "ループを用いてリストの中身にアクセスする方法は主に2通りで、\n", - "\n", - "1. インデックスのループを回してリストにアクセスする\n", - "2. リストの要素に順番にアクセスする\n", - "\n", - "で、上のコードは2.に相当します。上の例で、1.の方法を採る場合は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SnMf5IBXAtuY" - }, - "outputs": [], - "source": [ - "for i in range( len(kudamono) ) :\n", - " print( kudamono[i] )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QbiNRP3tAwgD" - }, - "source": [ - "とすればよいです。\n", - "\n", - "インデックスと要素を同時に取得して使いたいときには```enumerate```関数を使って" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1sBjeAU3A8CJ" - }, - "outputs": [], - "source": [ - "for i, tmp in enumerate(kudamono):\n", - " print(i, tmp)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_iaSPpKgBBha" - }, - "source": [ - "とします。これによって○泉○次郎構文を作ることもできます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "3tNkMDDMBLi0" - }, - "outputs": [], - "source": [ - "for i, tmp in enumerate(kudamono):\n", - " print(tmp,\"は\"+str(i)+\"番目です\",str(i)+\"番目というのは0から数えて\"+str(i)+\"番だということです。\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s_IqtFV6rvKv" - }, - "source": [ - "### ブロックとインデント" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FE1LiUrVqrbU" - }, - "source": [ - "さて、上の`for`文のコードには、関数の前に半角スペースが4つあるのに気がついたでしょうか? \n", - "Pythonでは、`for`文を始め様々な処理の際に一連の作業\"ブロック\"を、**半角スペース4つ分**インデントを下げることで表現します。\n", - "\n", - "下のように、`for`文を使っているにも関わらず正しくインデントされていない場合はエラーが出ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ItpayRhWyBIZ" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - "print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "z1T_hDMgyCHI" - }, - "source": [ - "さて簡単な例でブロックごとの処理の挙動を確認しておきましょう。 \n", - "\n", - "**練習問題** \n", - "\n", - "以下のコードを実行すると、何回数字がprintされるでしょうか? \n", - "コードを実行する前に、三択で答えてみてください。 \n", - "\n", - "A. 8回\n", - "\n", - "B. 11回\n", - "\n", - "C. 13回" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "qM5QYdcJs5O-" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - " print(i) \n", - " for j in range(5):\n", - " print(i,j)\n", - "print(i,j)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tZxftTZBszWq" - }, - "source": [ - "`i`に関する繰り返し(ループとも呼びます)は、i=0,1の2回で、インデントが1ブロック下げられた操作を実行しますので、\n", - "`print(i)`を2回と、`j`に関するループを2回繰り返します。`j`はj=0,1,2,3,4をとり、`j`のループでは```print(i,j)```は合計2×5=10回呼ばれます。最後の行にある```print(i,j)```はどのループ(ブロック)の中にも入っていませんから、実行されるのは1回だけです。 \n", - "ということで、答えはC.の13回でした。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "llWzeLsx2kDq" - }, - "source": [ - "慣れないうちは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "VAgzCZ6K2lUI" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - " print(i)\n", - " for j in range(5):\n", - " print(i,j)\n", - " ## End j loop\n", - "## End i loop" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1geoDWVC2sjM" - }, - "source": [ - "などのように、どこでループを閉じるのかをコメントしておくと良いかもしれません。 \n", - "コードを編集しているうちに" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "USOd9Zdp2zaU" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - " print(i)\n", - "for j in range(5):\n", - " print(i,j)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jWjLB9Dy243B" - }, - "source": [ - "といったように意図しないインデントになってしまって、 \n", - "正しい答えを与えない(バグを作ってしまう)可能性があります。\n", - "\n", - "> 細かい注) Pythonでは通常インデント幅は4つの半角スペースで指定されます。 \n", - "Google Colab. では、 [ツール]→[設定]→[エディタ]から変更できますので、幅2が使いやすければ変更してください。 \n", - "また、プログラムファイルを編集する際、Tabキーを使ってインデントを指定するのと、スペースキーを用いてインデントを指定するのとで、どちらを好むかは、[タブ/スペース論争]として知られています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_r-xOslCuYQt" - }, - "source": [ - "**練習**\n", - "\n", - "リスト\n", - "```data = [ [\"Aさん\", 178,66] , [\"Bさん\",180,70], [\"Cさん\", 165,55]]```を用意し、 \n", - "[体重を二乗して身長にかけ合わせた量]の総和を計算するコードを作ってみましょう。\n", - "\n", - "ヒント1: 身長は入れ子になっているリストの[1]番目,体重は[2]番目 \n", - "ヒント2: total=0.0を定義して、体重の二乗×身長をfor文を使ってどんどん足していく。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "FJpla_3Fvbjw" - }, - "outputs": [], - "source": [ - "###以下は、不完全なコードです。これにあと3行ほど書き足してみましょう。 \n", - "###ちなみに答えは 2156493です.\n", - "data = [ [\"Aさん\", 178,66] , [\"Bさん\",180,70], [\"Cさん\", 165,55]]\n", - "total = 0.0\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Uf275kXcK-JN" - }, - "source": [ - "さて、ループ(for文)の使い方がなんとなく分かったでしょうか? \n", - "どんどん使ってみて、なれておいてください。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qucZen5vJ9PE" - }, - "source": [ - "他にも、たとえば、 1, 10, 100, 1000, 10000,...というループを回したい時、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "o7dH6aHKKP4i" - }, - "outputs": [], - "source": [ - "for i in [1,10,100,1000,10000]:\n", - " print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JTg8PfD3KW5U" - }, - "source": [ - "と書くのではなく、べき乗に対するループを回す" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Lwz3s8taKcvF" - }, - "outputs": [], - "source": [ - "for p in range(5):\n", - " print(10**p)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8qLiZx-VKhh-" - }, - "source": [ - "など、考えたい値を直接ループで扱うのではなく間接的な値(今の場合`p`)を扱うなどの考え方も、コードをスッキリさせる上で重要です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gPHPdQWAvKxc" - }, - "source": [ - "### リスト内包表記\n", - "\n", - "`for`文の別の使い方として、リスト内包表記と呼ばれる書き方があります。 \n", - "これを使うと、要素がたくさんのリストを簡単につくることができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oNiE_0IHwpUm" - }, - "outputs": [], - "source": [ - "a = [ i for i in range(1,1000,2) ] ## i を1から999まで2ずつ変えていったときの値を詰めたリストを作成\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2NxxShOxNFCH" - }, - "source": [ - "### break ループ処理を途中で抜けたい場合\n", - "\n", - "`break`は`for`文を途中で抜け出すのに使います。用途としては**目的を果たしたのでもうループを繰り返す必要がないとき**や**予期せぬ事が起きた場合にループ処理を終わらせてプログラムを終了するとき**などに使います.\n", - "\n", - "以下のような状況を考えてみましょう\n", - "\n", - "> Aさんは100万円を手にカジノにやってきて、 \n", - "掛け金が20万かつ50%の確率で勝ったり負けたりするギャンブルに目をつけました。 \n", - "\n", - "このAさんが [最大10回ゲームをやるが1回でも負ければ即座に賭けをやめたい]という状況をコードで表現する場合、以下のようなコードになります:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HPC5NF3FNUo3" - }, - "outputs": [], - "source": [ - "import random #これがなにかはとりあえず気にしない\n", - "\n", - "# 最初の手持ち金を定義\n", - "money = 1000000\n", - "\n", - "# ゲームを開始, 最大10回まで繰り返すことをfor文で表現\n", - "for i in range(10): \n", - " result = random.choice([True,False])\n", - " if result: # result==True, つまり勝った場合\n", - " money += 200000\n", - " print(\"勝った!!\")\n", - " else :\n", - " money -= 200000\n", - " print(\"負けたので帰ります\")\n", - " break\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`random.choice([True,False])`は1/2の確率で`True`か`False`を与える処理になっている。\n", - "True/Falseをそれぞれ勝ち負けに対応させられるので、その結果に応じて処理を分岐させていることが分かる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EGUKtqjeeyk9" - }, - "source": [ - "### $\\clubsuit$While文\n", - "\n", - "`for`に似たものとして`while`もよく用いられる。 \n", - "\n", - "`while`文は、原理的には`for`文と`break`を組み合わせたコードでも実装可能なので発展的な内容($\\clubsuit$マーク)として授業ではスキップするかも...\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "snmJfYawx-7u" - }, - "source": [ - "\n", - "プログラムを書いていくうちに、繰り返しの数が前もってわからないケースに遭遇することがある。たとえば\n", - "\n", - "* 連続で6が5回でるまでサイコロをふる\n", - "* 利益がある値を超えるまで株の売買をくりかえす\n", - "\n", - "といったイメージ。この様な場合は、何回処理を繰り返せば良いか予め知ることはほとんど不可能となる。\n", - "\n", - "サイコロの例の場合だと、たとえば5回ふっただけで6が連続で出る奇跡的な状況も有りえますし、1000回ふっても100万回降っても連続で5回は出ないかもしれません。(某漫画の地下チンチロ編のようなイカサマサイコロを使用するとグッと確率はあがります)このような処理を実装したい場合には`while`文を使います.\n", - "\n", - "さっきのAさんとカジノのギャンブルを例に\n", - "> 手持ち100万からゲームを開始して\n", - ">「手持ちが50万以上150未満ある限り賭けを続けるコード」\n", - "\n", - "を作ってみましょう\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "IDmdI51Mx-Tp" - }, - "outputs": [], - "source": [ - "import random #ランダムに勝ち負けを決めるためrandomというライブラリを使います\n", - "\n", - "money = 1000000\n", - "\n", - "#手元に50万以上-150万未満ある限り賭け続けることをwhile文で表現\n", - "while 500000 <= money < 1500000: \n", - " ## choice([True,False])でTrue(勝ち)とFalse(負け)をランダムに生成 \n", - " result = random.choice([True,False])\n", - " if result: # 勝ちの場合\n", - " money += 200000 \n", - " print(\"勝った!!\")\n", - " else : #負けの場合 20万失う\n", - " money -= 200000\n", - " print(\"負けた..\")\n", - "\n", - "# 500000 <= money < 1500000部分が\"False\"、つまりお金が50万以下か150万以上になったら\n", - "# while文が終わり、以下のprint文が読まれる\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "b9q7gVgWATh0" - }, - "source": [ - "といった具合です. 使用例が思い浮かばなければ「`while`なんてのがある」とだけ覚えておけば当面はOKです. \n", - "ちなみに上のコードは`random`モジュールの(疑似)乱数を用いているので、実行ごとに買ったり負けたり結果が変わります。何度か実行してみてください。\n", - "\n", - ">余談 これを応用すると↓のようなものを作って遊ぶこともできます(作者は私ではありません)。 \n", - "十亀vs松田シミュレータ https://mattz.xii.jp/yakiu/yakiu.html \n", - "(十亀選手(ライオンズ)と松田選手(ホークス)の驚異的な相性を元に作られた対戦シミュレータ)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iwv7BiM8NG47" - }, - "source": [ - "### $\\clubsuit$ continue\n", - "`continue`文は、`for`や`while`文の中で[以降の処理を無視する]のに使います. \n", - "具体的な用途としては[特定の条件を満たす場合にのみ適用する処理を書きたい]場合などがあります.再びカジノの例で考えてみましょう.\n", - "\n", - "まず、Aさんに勝負のたびに所持金を叫ばせるコードは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "eWE2Z2jVObxz" - }, - "outputs": [], - "source": [ - "import random\n", - "money = 1000000\n", - "while 500000 <= money < 1500000:\n", - " result = random.choice([True,False])\n", - " if result:\n", - " money += 200000 \n", - " else :\n", - " money -= 200000\n", - " print(\"今の所持金は...\"+str(money)+\"円だ\")\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eMPfQSziPEOP" - }, - "source": [ - "となります。これに少しずつ、より複雑な条件を加えていくことにしましょう. \n", - "\n", - "最初の掛け金を一旦5万円にすることにして[連続で勝った場合、コインを投げて表が出たら掛け金を2倍にする]という条件をいれてみましょう。これをプログラムで表現するのには以下のような実装が考えられます.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "M1F8_JYdPJFI" - }, - "outputs": [], - "source": [ - "import random\n", - "money = 1000000\n", - "\n", - "# 連続勝数を記録する変数hitを定義\n", - "hit = 0 \n", - "# 掛け金をセット\n", - "bet = 50000 \n", - "\n", - "# メイン部分のコード\n", - "while 500000 <= money < 1500000:\n", - " result = random.choice([True,False])\n", - " if result :\n", - " money += bet \n", - " hit +=1 #勝ったら連勝数をプラス1する\n", - " else :\n", - " money -= bet\n", - " hit = 0 #負けたら連続勝ち数を0にリセット\n", - " print(\"今の所持金は...\"+str(money)+\"円だ\")\n", - "\n", - " # コインの表裏を決める\n", - " coin = random.choice([True,False])\n", - " if hit >= 2 and coin: \n", - " bet = bet * 2\n", - " print(\"掛け金をレイズ!\",\"次は\"+str(bet)+\"円を賭けるぞ!!\")\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "A8XHg35QQtD0" - }, - "source": [ - "さらに**掛け金をレイズするかどうか悩んで、コインを投げて決めるのは、所持金が80万以上のときだけ**という、\n", - "より複雑な条件を実装するのに`continue`を使ってみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "5AgDgp8fQ3He" - }, - "outputs": [], - "source": [ - "import random\n", - "money = 1000000\n", - "\n", - "#連続勝数と掛け金を設定する\n", - "hit = 0 \n", - "bet = 50000 \n", - "while 500000 < money < 1500000:\n", - " result = random.choice([True,False])\n", - " if result:\n", - " money += bet \n", - " hit +=1 \n", - " else :\n", - " money -= bet\n", - " hit = 0 \n", - " print(\"今の所持金は...\"+str(money)+\"円だ\") \n", - "\n", - " # ここから下が追加された部分\n", - " if money < 800000:\n", - " continue # もし所持金が80万未満ならcontinue(以下の処理は実行しない)\n", - "\n", - " coin = random.choice([True,False])\n", - " if hit >= 2 and coin :\n", - " bet = bet * 2\n", - " print(\"掛け金をレイズ!\",\"次は\"+str(bet)+\"円を賭けるぞ!!\")\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p_ZvXiuc2ece" - }, - "source": [ - "### 例外処理" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6hnBZUQ1XpUW" - }, - "source": [ - "以下の処理は[ある値から都度10を引いていって平方根を取った値を表示する]というコードです\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "dWDJaf9G2hPi" - }, - "outputs": [], - "source": [ - "import math #sqrt(square root)関数を使うための1行\n", - "s = 124\n", - "#for i in range(20):\n", - "while True:\n", - " s -= 10\n", - " print(math.sqrt(s)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZX5FTHyOYdcF" - }, - "source": [ - "しかし、あるところでsの値が負になってしまい、sqrtが計算できなくなってしまいます(虚数を導入すれば定義できますが、`math`の`sqrt()`関数は非負の引数に対して定義されていますのでエラーが出ます)\n", - "\n", - "エラーが出る(≒予期しないことが起こる)とプログラムはそこで止まってしまいます。 \n", - "通常はそれで良い(問題があればエラーが起きないと対処しようがない)のですが、複雑な状況になると「エラーを無視してとにかくプログラムを最後まで実行させたい」「エラーが起こるときにエラーを回避するような仕組みをプログラム自体に実装したい」といった状況も起こりえます.\n", - "\n", - "上の例でいうと「`s`の値が正なら平方根を表示して、負の場合はエラーメッセージだけを表示してエラーが起きた回数をカウントする」という作業が必要な場合は以下のように \n", - "- ```try:``` 試行したい処理のブロック \n", - "- ```except:``` 例外(エラー)が起こった場合の処理のブロック \n", - "という2つの操作(`try`,`except`ともに予約語)を駆使することで、最後までプログラムを実行させることができます." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "7nhzIqnHZDRJ" - }, - "outputs": [], - "source": [ - "import math\n", - "s = 124\n", - "hit = 0 \n", - "for i in range(20):\n", - " s -= 10\n", - " try:\n", - " print(math.sqrt(s)) \n", - " except : \n", - " print(\"sの値が\"+str(s)+\"になったのでsqrtが計算できません\")\n", - " hit += 1\n", - "print(str(hit)+\"回 sqrtの計算でエラーがありました\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vcWhB2ld2EjT" - }, - "source": [ - "このノートブックでは説明しませんがexceptの後に具体的な例外を指定して例外の種類に応じた操作を行うことも出来ます。https://docs.python.org/ja/3/library/exceptions.html" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N7bZPiJyEpx-" - }, - "source": [ - "## $\\clubsuit$ タプル・辞書型\n", - "\n", - "発展的な内容です。 \n", - "以下のタプル・辞書型は使いこなせれば便利ですが、授業では必ずしも必要ではない(リストで代用できる)ので、興味に応じて学習してください。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5JH8ZSsU2lL8" - }, - "source": [ - "### タプル(tuple)型, 丸括弧\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FYc9ztofGU8M" - }, - "source": [ - "リストに似た型としてタプルと辞書があります。 \n", - "タプルは\"immutable\"(要素が変更不可)なリストと覚えておけばよいでしょう。\n", - "リストは要素を`[]`で囲むことで作ることができました。タプルは丸括弧`()`で囲むことで作ることができます" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4CNAqWljyjS1" - }, - "outputs": [], - "source": [ - "a = (1.0, 2.0, 3.0)\n", - "print(a, type(a))\n", - "\n", - "print(a[0]) ##要素にアクセスするときはタプルのときでもやはり角括弧を使う" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "I1IILsgUyk4T" - }, - "source": [ - "値をリストのように格納しておきたい、という状況下かつ、リストの値を後で変更することがないなら\n", - "タプルを使うのも一つの手です. \n", - "タプルを使うメリットとしては以下の通りです: \n", - "* (予期せず)値を更新しようとするとエラーを吐いて教えてくれる\n", - "* (場合によりけりですが)リストよりも早く処理が実行される(ことがある)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "d-wmV-24zIa9" - }, - "outputs": [], - "source": [ - "##たとえば...\n", - "a = (1.0, 2.0, 3.0)\n", - "##たとえば...2つ目の2.0を4.0に変更しようとすると....\n", - "a[1] = 4.0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Xp-zrOGUzclF" - }, - "source": [ - "↑エラーがでたかと思います。\n", - "\n", - "次に中身が同じ(1から5000までの整数)リストとタプルを用意して、1万回要素の和を計算するという計算をしてみましょう.\n", - "この計算自体に意味はありません。 \n", - "`time`というライブラリを使って2つの作業に係る時間を調べてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "RNRVJHBvzrRR" - }, - "outputs": [], - "source": [ - "import time #時間を計測するためのライブラリをインポート\n", - "itnum=10000 #繰り返す回数を設定\n", - "\n", - "#リストを使った計算\n", - "t0= time.time() \n", - "a = [ i for i in range(1,5001) ] #リストを定義\n", - "for i in range(itnum):\n", - " sum(a)\n", - "t1 = time.time()\n", - "\n", - "#タプルを使った計算\n", - "t2= time.time() \n", - "b = ( i for i in range(1,5001)) #タプルを定義\n", - "for i in range(itnum):\n", - " sum(b)\n", - "t3 = time.time()\n", - "\n", - "print(\"リストの処理にかかった時間\", t1-t0)\n", - "print(\"タプルの処理にかかった時間\", t3-t2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_DFBdeB61zTN" - }, - "source": [ - "タプルの方が実行時間が短い事がわかります. \n", - "今の例では差は人間にとっては気にならない程度の差ですが、複雑な処理になってコードがなかなか計算を完了しないときには、リストをタプルにするなど、コードのパフォーマンスを改善する作業が必要となります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "X69TUPNt2nfh" - }, - "source": [ - "### 辞書型, 波括弧\n", - "\n", - "辞書型は、キーと値の2つの要素をあわせ持つ型です. \n", - "リストにいれたものをいっぺんに扱うときに、毎回番地を指定したりループで要素を回して、望むものを持ってくるのは面倒です。\n", - "\n", - "たとえば以下の名前と年齢のリスト\n", - "```\n", - "data=[[ \"Aさん\",25],[\"Bさん\",21],[\"Cさん\",18]]\n", - "```\n", - "\n", - "があったとき、これまで習った方法だけを駆使してBさんの年齢を取得するには例えば以下のようなコードになります" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oWV6iYr520v5" - }, - "outputs": [], - "source": [ - "data=[[ \"Aさん\",25],[\"Bさん\",21],[\"Cさん\",18]]\n", - "\n", - "for person in data:\n", - " if person[0] == \"Bさん\" :\n", - " print(\"Bさんの年齢=\", person[1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QfC_TsDD3mYh" - }, - "source": [ - "このようなfor文とif文などを組み合わせた要素の探索が面倒なら、予め名前と年齢という2つの関係のある量を辞書として定義してしまえばよいのです。\n", - "\n", - "辞書型は波括弧`{}`で囲むことで構成できます.\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "GgnqzQYq4XbS" - }, - "outputs": [], - "source": [ - "Dict_age = {'Aさん' : 25, 'Bさん': 21, 'Cさん': 18}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n25YgOic5Gnp" - }, - "source": [ - "Bさんの値(今は年齢)を知りたければ以下のように一行で取得可能です." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "bHh_DVUZ5KTH" - }, - "outputs": [], - "source": [ - "Dict_age[\"Bさん\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HP-pNfHg4Y5e" - }, - "source": [ - "辞書を作る際には、 要素を取り出すためのキー(key)と値(value)の組み合わせで指定します.\n", - "その際\n", - "```\n", - "{\"key\" : value}\n", - "```\n", - "と`key`と`value`をコロン:をつかって区切り、複数要素を入れる際はカンマで区切ります. \n", - "`key`は文字列や数字(たとえば小中学校の出席番号とか)を使用することができ`value`は様々な型が使えます。\n", - "\n", - "値(`value`)として、リストを保持することもできます.次のように年齢と出身県のリストを値にもつ辞書にしてみましょう.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "PWzZQh4p5lqC" - }, - "outputs": [], - "source": [ - "Dict = {'Aさん' : [25,\"栃木県\"], 'Bさん': [21,\"茨城県\"], 'Cさん': [18,\"群馬県\"]}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cDz_Xk0I6D1k" - }, - "source": [ - "Cさんの個人情報にアクセスする際は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "gqsBmc4o6Rkn" - }, - "outputs": [], - "source": [ - "Dict[\"Cさん\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "E9fJ-WT76ROd" - }, - "source": [ - "とすればいいことがわかります.\n", - "\n", - "慣れないうちはタプルや辞書を使わずリストだけ覚えておけば問題ないのですが(私も簡単なコードだと、面倒だからリストでやっちゃう)複雑な処理になると(タプルにしないと)パフォーマンス差が顕著になったり(辞書にしないと)コードの可読性が低くなったりミスの原因になるので、タプルや辞書型もうまく組み合わせながら使えると良いです。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter2_ListLoop.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter3_Function.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter3_Function.ipynb deleted file mode 100644 index 9a0140ea..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter3_Function.ipynb +++ /dev/null @@ -1,661 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7Id5T1JiYLyY" - }, - "source": [ - "# 関数\n", - "\n", - "[この章の目的]プログラム内での関数と戻り値,スコープの概念を獲得する。\n", - "\n", - "ここでは、Pythonにおける関数の定義と関数が返す値[戻り値(返り値とも呼ぶ)]、ややテクニカルですが重要な点である変数のスコープについて説明します。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "39hwOTPKHdBK" - }, - "source": [ - "## 関数の定義" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8YqBoNnXHjDe" - }, - "source": [ - "既に現れた```print```や```len```などはPythonに備え付けられた\"組み込み関数\"と呼ばれるものの一種です。以下に示すように、組み込み関数とは別にユーザーが独自の関数を定義することができます。\n", - "\n", - "たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oeG9EoBPYflr" - }, - "outputs": [], - "source": [ - "p1 = [2.0, 4.0, -5.0]\n", - "p2 = [1.0, 3.0, -4.0]\n", - "#...中略\n", - "p100 = [5.5,-2.0, 3.0]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "f-1OoOC3ZFfW" - }, - "source": [ - "といったようなリスト(ある点の$x,y,z$座標だと思ってください)がたくさん(たとえば100個)あったときに、任意の2つの点の距離を求める操作が必要だったとします。\n", - "そんなとき${}_{100}C_2=4950$通りに対して毎回" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lrWeMpk5ZGy6" - }, - "outputs": [], - "source": [ - "d_1_2 = ( (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2 ) ** 0.5\n", - "d_1_100 = ( (p1[0] - p100[0])**2 + (p1[1] - p100[1])**2 + (p1[2] - p100[2])**2 ) ** 0.5" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lyuVwV40Ytk8" - }, - "source": [ - "などと書くのは面倒です。このように、何回も必要になる処理は、**関数**として定義しておけば呼び出して簡単に使うことができます。 \n", - "\n", - "例として「任意の長さが3の数値リストに対して3次元空間での距離を計算する関数」を自作してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "f0iYOWb5Zfcp", - "outputId": "b42f1ff6-dd82-4cb7-e8a3-4f4a29676c14" - }, - "outputs": [], - "source": [ - "def calc_d(l1,l2): \n", - " return ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5\n", - "\n", - "t = calc_d(p1,p2) \n", - "print(\"点1\",p1, \"と点2\", p2, \"の距離は\", t, \"です\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "r6JbFf61Zv3l" - }, - "source": [ - "`calc_d`は自作した関数の名前で、関数名の後ろのカッコには**引数**(ひきすう)を指定します。\n", - "\n", - "リスト(```l1```)とリスト(```l2```)を突っ込んだときに距離を計算して```return```する(返す)という一連の操作を```def```(defineの略)した、というのが上のコードで行っていることです。\n", - "コロン`:`は「以下で関数の中身を記述するブロックが開始する」ことを意味していて、インデントによってどこまでが関数のブロックかわかるようになっています。(ブロックについては```if```や```for```を思い出してください)\n", - "\n", - "定義した関数を使用する際には、この関数```calc_d()```に必要な引数(変数,今の場合リスト)```l1,l2```を代入して使います。\n", - "関数に入れる引数は代名詞のようなもので、関数に入れるものを`l1`,`l2`という名前にあわせて定義しておく必要はありません。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "vfn_uW7jsk1x", - "outputId": "fdbad61a-ab09-423b-daae-9dca5c621215" - }, - "outputs": [], - "source": [ - "print(calc_d(p1,p100)) #←これでも使えるし\n", - "print(calc_d([20.0, 1.0,-5.0], [-2.0, 3.0,5.5])) #←などとして名前をつけなくても使える" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JYEIUOkRx34k" - }, - "source": [ - "上の例のように100個の点の3次元座標に対応するリストがある場合,\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rQeQdGnqytj6", - "outputId": "57e68e0c-4e6c-49c9-de91-51e56a20adea" - }, - "outputs": [], - "source": [ - "import random \n", - "lists = [ [ random.gauss(0,1) for n in range(3)] for i in range(100)] #3次元の座標点をランダムに100個作っている n,iはダミー変数(特に使ってない)\n", - "hit = 0\n", - "for j in range(100):\n", - " for i in range(j+1,100): # i>j\n", - " distance = calc_d( lists[j], lists[i])\n", - " #print(j,i, distance) # 4950回文の計算結果をprintすると邪魔なのでコメントアウトした\n", - " hit += 1 \n", - "print(hit) #回数だけ表示しよう\n", - "#上のjのループ内で、iはj+1から99までを回る。 j+1= 100つまり j=99のとき range(j+1,100)はちゃんと空になる\n", - "#つまり、長さ100のリストにindex=100でアクセス(範囲外参照)したりすることはない。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YsUvuSp0hHta" - }, - "source": [ - "などとすれば、全組み合わせ(${}_{100}C_2$)に対して距離を計算することが出来る。 \n", - "上で使われているインデックス($j,i$)の模式図: \n", - "\n", - "\n", - "引数は通常関数の中で行う操作に必要な変数を指定します。上の例では2つのリストを引数としました。\n", - "\n", - "関数内の操作に関数外からの情報(インプット)が必要ない場合は引数なしの関数でも構いませんし、関数の外に値を渡す(アウトプット)必要がなければreturn文を明示的に書かなくても大丈夫です。`return`文がない場合は```None```(値なし)が返されます。\n", - "\n", - "幾つか例を作って、挙動を理解してみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "hKXXnar5huWZ", - "outputId": "654717fd-5230-412a-f84d-9fd88761d9aa" - }, - "outputs": [], - "source": [ - "def name(): #引数なしで、ただ以下の文字列を表示する関数\n", - " print(\"私は田中です\")\n", - "\n", - "def myname(namae): #引数namaeを使って、以下の文字列を表示する関数\n", - " print(\"私は\"+str(namae)+\"です\")\n", - "\n", - "def myname_return(namae): # myname()で表示させた文字列自体を返す関数\n", - " return \"私は\"+str(namae)+\"です\"\n", - "\n", - "print(\"name()の実行→\", name()) ## name()が実行されたあとにココのprint文が実行される。\n", - "\n", - "print(\"myname()の返り値→\", myname(\"吉田\"))\n", - "\n", - "print(\"myname_return()の返り値→\", myname_return(\"吉田\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KfNDxdUVaxhm" - }, - "source": [ - "戻り値```return```は単一の値や文字列に限らず、複数の値でも可能ですし、リストを返すことも出来ます。\n", - "\n", - "先程の自作関数```calc_d```の場合、戻り値は`float`(実数値)ですが" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_6vSVbsia69R", - "outputId": "c951d169-b3bf-4f2d-c5f8-3bbcb2caa21a" - }, - "outputs": [], - "source": [ - "def calc_d_print(l1,l2):\n", - " return \"距離は\"+str( ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5 )+\"です\"\n", - "\n", - "def zahyo_and_d(l1,l2):\n", - " d = calc_d(l1,l2) #関数の中で、先程の自作関数を呼んでいる\n", - " return [l1,l2],d #座標を結合したリストと距離を返す\n", - "\n", - "ret = calc_d_print(p1,p2)\n", - "print(\"関数calc_d_print→\", ret,type(ret))\n", - "\n", - "\n", - "ret = zahyo_and_d(p1,p2)\n", - "print(\"関数zahyo→ \", ret,type(ret))\n", - "print(\"座標の結合リスト\",ret[0],\"距離\",ret[1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "oVUqT1cDbijH" - }, - "source": [ - "といったように、様々な返り値を持つ関数を定義できます。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gwbplPrRy35O" - }, - "source": [ - "関数を定義するときに、引数にデフォルト値(とくに値を指定しなければこの値が選ばれる)を設定することも出来ます。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "EGy5tiLSzKHq", - "outputId": "1c4fc107-7cf3-43d8-b6be-1f7e296db0d2" - }, - "outputs": [], - "source": [ - "#数値リストの要素のp乗和を計算する関数\n", - "def sump(tmp,p=2): \n", - " return sum([tmp[i]**p for i in range(len(tmp))])\n", - "\n", - "list1 = [10.0,20.0,30.0,40.0]\n", - "print(\"default\", sump(list1)) #pを指定しなければp=2が選ばれる\n", - "print(\"p=1\", sump(list1,p=1))\n", - "print(\"p=2\", sump(list1,2))\n", - "print(\"p=3\", sump(list1,3))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hOiz1XSGKDyx" - }, - "source": [ - "上の場合、引数を指定する際に`p=`などは書いても書かなくてもなくてもOKですが、デフォルト値が複数設定されている関数を作った場合には、どの変数を指定しているのかを明示的にするため、`p=3`などと引数に入力します。\n", - "関数を定義することで作業を*パッケージ化*し、コードを簡略化することができます。「繰り返しの操作は関数にする」ことを心がけましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Hi4Bw-xWK3d5" - }, - "source": [ - "## 変数のスコープについて\n", - "\n", - "以下の内容は、これまで学習したfor文や関数のインデントとも関連した話題です。非常に重要な反面、初学者がつまづきやすい点でもあります。\n", - "\n", - "一般に、プログラミングでは[グローバル変数]と[ローカル変数]と呼ばれるものがあります。その名(global/local)が示すとおりグローバル変数とはどこからでも参照できる変数で、ローカル変数とは、ある有効範囲(たとえば関数内)のみで参照できる変数です。\n", - "例を見ながら理解していきましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SDXBYARcMssS" - }, - "outputs": [], - "source": [ - "a = 2\n", - "list1 = [10.0,20.0,30.0,40.0]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Hz1s_N4CM5GE" - }, - "source": [ - "のように、関数内での代入などではない場合、変数はグローバル変数として定義されます。 \n", - "そのため、一度定義されれば関数に引数として渡さなくても参照することができます" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "lqCI3oOSNCWs", - "outputId": "681dbaae-556a-457c-d82e-32a9291921c6" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " print(a)\n", - "\n", - "a = 2\n", - "testfunc()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sXaRD7zMO7gq" - }, - "source": [ - "一方、関数の中で定義(代入)されるローカル変数は、関数の外で参照することはできません。 \n", - "(注: あとで説明するように関数内でglobal変数であることを宣言すれば関数の外でも参照できます)\n", - "\n", - "以下のコードを実行して,関数の中で定義された変数`abcd`を`print`しようとしてもエラーが起こってしまいます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 202 - }, - "id": "0C7YGdYCPGZ0", - "outputId": "4f82d90c-791e-4946-f384-526d3178cb72" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " abcd = 1.000\n", - "testfunc()\n", - "print(abcd)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Skv7X7b3N2vc" - }, - "source": [ - "では、次のコードを実行すると、最後に表示される`a`の値はどうなるでしょうか? \n", - "2でしょうか?それとも5でしょうか?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "MRy8oApxN8em", - "outputId": "321ced5c-3002-4eee-e298-7a172cf3effc" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " a = 5\n", - "a= 2\n", - "testfunc()\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wNbcnDiiOPqV" - }, - "source": [ - "となり`a`の値は更新されません。これは`testfunc`の中で定義されている`a`は、関数の内部で定義(代入)される変数であるため、ローカル変数とみなされて処理が行われるためです。\n", - "実際`id`を`print`させてみると、関数の内と外とで`id`が異なることも分かります。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "feLgu_e4OPcc", - "outputId": "6e647e2f-2a1c-411a-ef4b-365e61e9e906" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " a = 5\n", - " print(\"関数の内部\", a, id(a))\n", - " \n", - "a= 2 \n", - "print(\"関数の実行前\", a, id(a))\n", - "testfunc()\n", - "print(\"関数の実行後\", a, id(a)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-y5mwt3OPiFY" - }, - "source": [ - "一方で、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "csjHT3p_Pl3D", - "outputId": "6a5ad181-d94e-4f56-da8c-aa85f4a3c604" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " global abc, a #global変数の宣言\n", - " abc = 5\n", - " a += 2\n", - "\n", - "a=2\n", - "print(\"実行前\")\n", - "print(\"a\",a , id(a))\n", - "testfunc()\n", - "print(\"実行後\")\n", - "print(\"a\", a, id(a)) #別の変数として再定義されていることが分かる\n", - "print(\"abc\", abc)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qctKvajGMmO9" - }, - "source": [ - ":::{margin} プログラミング言語とスコープ\n", - "Pythonでは、インデントでブロックを定義したりすることで短いコードを書くことができますが、一方で変数のスコープが分かりづらいことがしばしばあります。たとえば関数内で、定義されていない変数を用いたコードがあればPythonでは「global変数で定義されているのでは?」と解釈され実行が試行されますが、このことを「気が利いている」と感じる人もいれば「意図しない参照が起きて余計なバグの温床になる」と、見る人によって違う捉え方になったりします。\n", - ":::\n", - "\n", - "といったように、関数の中で使う変数をグローバル変数として宣言すれば、関数の外でもその変数を使うことができます。\n", - "`global`変数の宣言を使うべき場合としては...コードの中で一度計算して、二度と変更する必要が無いような値にのみ使うようにしましょう。\n", - "\n", - "ただし、このようなコードの書き方は、処理が複雑化してくるとどこでその変数が定義されたり更新されたりしているかがわかりづらく、予期しない挙動の原因にもなりますのであまりオススメしません。\n", - "[関数には引数として変数を渡して、必要な戻り値を取得する]というコードを書くのがあくまで基本です。\n", - "\n", - "また、関数を用いる際に、変数のスコープに関して混乱を避ける手助けとなる方法は...メインプログラムと関数内とで変数の命名規則を区別しておく: \n", - "たとえば...メインコード(global変数)で使うリストの名前の区別には数字を使う、関数の引数にはアルファベットを使うなどの工夫(ルール作り)がオススメです。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "RKaOuz0HQsVh" - }, - "outputs": [], - "source": [ - "def func_join(listA,listB): #特殊なリストの結合をして返す関数\n", - " return listA + 2 * listB \n", - "\n", - "list1 = [ 2.0,30.0,18.0]\n", - "list2 = [ 9.0,4.0,8.0]\n", - "nlist = func_join(list1,list2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6TUuABHM4ei0" - }, - "source": [ - "### $\\clubsuit$ 関数内でのリスト更新\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vRetz7vT4iyg" - }, - "source": [ - "上では、数値(float)と関数を例に説明しましたが、リストの場合はもう少し挙動が複雑です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5rZLX1Vh4p2f", - "outputId": "ca13440a-d6b6-44c9-8521-f6ea3ce39efe" - }, - "outputs": [], - "source": [ - "def func_update_list(in_list):\n", - " in_list[0] = \"AAA\"\n", - "\n", - "tmp = [ \"SS\", 1,2,3]\n", - "print(\"実行前\", tmp, id(tmp), id(tmp[0]))\n", - "func_update_list(tmp)\n", - "print(\"実行後\", tmp,id(tmp),id(tmp[0])) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5w-Zo7Pw5YyA" - }, - "source": [ - "リストオブジェクト自体のidは引き継がれていて、リスト内要素(0番目)の更新が反映されていることがわかります。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "OgGkbM7u-k15", - "outputId": "8283c13a-5d99-48cc-b879-ea53284581a3" - }, - "outputs": [], - "source": [ - "def func_update_list(in_list):\n", - " in_list[0] = \"AAA\" \n", - " in_list = [\"BBB\", 0,1,2] ##ココはローカル変数扱い\n", - " return in_list\n", - "\n", - "tmp = [ \"SS\", 1,2,3]\n", - "print(\"実行前\", tmp, id(tmp), id(tmp[0]))\n", - "ret = func_update_list(tmp)\n", - "print(\"実行後\", tmp,id(tmp),id(tmp[0])) \n", - "print(\"ret\", ret,id(ret),id(ret[0])) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 関数とメソッド\n", - "\n", - "これまで登場してきた`print`や`len`などの関数は、Pythonに組み込まれている関数で、`関数()`という自作関数と同じ方法で呼び出せた。\n", - "\n", - "一方で、リストや文字列などのオブジェクトに対して、`オブジェクト.関数()`という形で呼び出せる関数がある。\n", - "これらは**メソッド**と呼ばれ、オブジェクト(正確にはクラス)に対して定義された関数になっている。\n", - "\n", - "たとえば、リストに対して`append`というメソッドを呼び出すと、リストの末尾に要素を追加することができた" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = [1,2,3]\n", - "a.append(4)\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "関数もメソッドも、引数を取り何らかの操作をするという点では同じだが、両者はその設計思想が異なるため、混乱しないように注意する必要がある。\n", - "大雑把に言えば、**関数は引数を取り、何らかの操作を行い、戻り値を返す**という設計思想であるのに対し、**メソッドはオブジェクトに対して何らかの操作を行う**という設計思想である。\n", - "\n", - "この授業では、クラスについての説明を行わないため、自分でクラスないしメソッドを定義することはないとは思うが、\n", - "ライブラリ等で用意されているクラス・メソッドを用いることも多いため、混乱した場合はこの違いを意識するようにすると良い。" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyM6vO7bZgJuLDdF+5NjdpNA", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter3_Function.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "file_extension": ".jl", - "mimetype": "application/julia", - "name": "python", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter4_Matplotlib.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter4_Matplotlib.ipynb deleted file mode 100644 index 8b5dd68a..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter4_Matplotlib.ipynb +++ /dev/null @@ -1,1277 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OCa-xyVjiadQ" - }, - "source": [ - "# ライブラリ/パッケージ/モジュールとデータの可視化(Matplotlib)\n", - "\n", - "[この章の目的]\n", - "* [ライブラリ]という概念の獲得\n", - "* Pythonを用いた各種グラフの描画\n", - "\n", - "\n", - ":::{margin} ライブラリ/パッケージ/モジュール\n", - "授業では呼び方が混在しているかと思います。正確な定義としてはライブラリ/パッケージ/モジュールの順に、より上位の集合を指しますが境界はあいまいな印象です。\n", - ":::\n", - "Pythonでは(他のプログラミング言語と同様)特定の作業がパッケージ化されたプログラム群が用意されていてこれらをライブラリ/パッケージ/モジュールなどと呼ぶ\n", - "Pythonのライブラリ/パッケージの多くはGitHub上で開発・公開されていて、簡単にインストールしたりインポートして使うことができる。 \n", - "\n", - "データ分析, AI・機械学習, エクセル等の操作, Webスクレイピングなど、非常に多岐にわたるライブラリが存在していて誰でも気軽に使うことができますし、幾つかのライブラリ/モジュールは標準で組み込まれているため、インストール作業をすることなく、以下のように簡単にインポートして使うことができます。\n", - "\n", - "たとえば`math`という名前のモジュールをインポートする際には\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "hGBW_qTNkvRq" - }, - "outputs": [], - "source": [ - "import math" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "It2WtKEtkwNT" - }, - "source": [ - "とします。簡単ですね。\n", - " \n", - "上のコードを実行し`math`モジュールを一度`import`してやれば、数学で多用される円周率```pi```,対数関数```log(),log10()```,指数関数```exp```,三角関数```sin,cos```などを使うことができます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KbRzvsm95XU_" - }, - "source": [ - "モジュール内に用意されている関数を利用するときは通常 \n", - "```モジュール名.関数```や```モジュール名.関数(引数)```といった形で使います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "9BbEO3a8k0VH" - }, - "outputs": [], - "source": [ - "print(math.log(2.0)) #自然対数 \n", - "print(math.log10(2.0)) #常用(底が10)対数\n", - "print(math.exp(2.0)) #指数関数\n", - "print(math.pi) #円周率pi (引数なし)\n", - "print(math.sin(math.pi)) # sin(pi)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cGKN5FijmR8v" - }, - "source": [ - "注:sin(π)は厳密に0になるべきですが1章で述べたように実数が有限の精度なので微小な量0からずれています" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "69y4fMDWSB11" - }, - "source": [ - "## Numpy" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FIsrOtnTR4qZ" - }, - "source": [ - "データ分析などで非常によく使われるNumpyというライブラリがあります。 \n", - "Numpyの大きな特徴に、数値を要素に持つ配列の計算・演算を高速に行うことが可能という点があります。\n", - "\n", - "簡単な作業ならリストでも代用できるので必須ではありませんが、コードを大幅に簡略化することもできるため、今後ノートブックでもたびたびNumpyが用いられます。\n", - "詳しくは[こちらのノートブック](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/main/notebooks/Python_misc_numpy.ipynb)を参照してください." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_RjUF-6603dn" - }, - "outputs": [], - "source": [ - "#先程のmathもnumpyで置き換え可\n", - "import numpy as np #numpyをnpという名前で使う\n", - "print(np.log(2.0))\n", - "print(np.log10(2.0))\n", - "print(np.exp(2.0))\n", - "print(np.pi)\n", - "print(np.sin(np.pi))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "以降、数値を要素に持つリストを使って演算やグラフを描画するときは、`numpy`の`ndarray`型というものに変更して使う事が多いです。 \n", - "リストを`ndarray`型に変換するには、numpyの`array`関数を用います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "list_a = [ 1.23, 9341.22, -32.33] \n", - "list_a = np.array(list_a)\n", - "print(list_a, type(list_a))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "XD-dP853zCmO" - }, - "source": [ - "## Matplotlibを用いた作図\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SGAFbBQJnplQ" - }, - "source": [ - "\n", - "以降ではMatplotlibと呼ばれるライブラリを使って、各種のグラフを作成する方法を見ていきましょう.\n", - "\n", - "Matplotlibは様々なグラフが描ける一方で少々テクニカルな部分が多いので**細かい部分は分からなくても心配は不要です** \n", - "「こういうおまじないを唱える(書くと)こうなる」というざっくりとした理解でまずは大丈夫です。 \n", - "\n", - ":::{margin} ライブラリの使い方を調べる\n", - "Pythonのライブラリの細かな使い方を調べる時、真っ先に思いつくのが**ググる**ことだ。\n", - "最近だと日本語で書かれた情報に気軽にアクセスできるのは良いことだが、(この授業資料同様)不正確な記述が含まれていてかえって理解を遠ざける危険性もある。\n", - "なにか困ったときに一番頼りになるのは大元のライブラリの公式ドキュメント以外ありえない。なぜなら開発者が作ってんだから。\n", - ":::\n", - "はじめはネットに転がっている誰かが書いたコードを少しずつ流用し、自分の目的のためにどうすれば良いか類推しながら改良していって、 \n", - "自分の描きたいグラフに近づけていくのが良いでしょう。(私もよく過去の自分が作成したコードを流用して作図しています)\n", - "\n", - "慣れてくるといろんな図を作ったり、細かいところにこだわったりしたくなります。 そんなときは以下のチートシートが役に立ちます. \n", - "https://github.com/matplotlib/cheatsheets \n", - "\n", - "\n", - "まず、以下のコードを実行して、`matplotlib`内の`pyplot`モジュールをインポートします. \n", - "`matplot.pyplot`だと名前が長いので```plt```という名前で使えるように```import XXX as YY``` などとします.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "oevjB6tvA97n" - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt \n", - "\n", - "from matplotlib import pyplot as plt #でも同じ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-KUcnUBIg2W2" - }, - "source": [ - "いくつかのライブラリにはディレクトリのように\n", - "```\n", - "LibraryA \n", - "├ module1.py \n", - "│ └─ sub_module1_1.py \n", - "│ └─ sub_module1_2.py \n", - "├ module2.py \n", - "︙ \n", - "```\n", - "という階層構造があり\"子\"はピリオドで指定します. \n", - "上の```matplotlib.pyplot```はその一例です." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ycksu5i7BsWp" - }, - "source": [ - "次に、Matplotlibは標準だと日本語が文字化けして豆腐のように表示されてしまうので、 \n", - "日本語フォントを使うためのライブラリをGoogleのサーバにインストールします" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Qwb9pJyCAcfC", - "outputId": "29634cc6-f768-4511-fd59-4ebc352de8dd" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting japanize-matplotlib\n", - " Downloading japanize-matplotlib-1.1.3.tar.gz (4.1 MB)\n", - "\u001b[K |████████████████████████████████| 4.1 MB 5.1 MB/s \n", - "\u001b[?25hRequirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from japanize-matplotlib) (3.2.2)\n", - "Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.19.5)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.4.7)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (0.10.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.8.2)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.3.2)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from cycler>=0.10->matplotlib->japanize-matplotlib) (1.15.0)\n", - "Building wheels for collected packages: japanize-matplotlib\n", - " Building wheel for japanize-matplotlib (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for japanize-matplotlib: filename=japanize_matplotlib-1.1.3-py3-none-any.whl size=4120274 sha256=f4b79909d06560d80efbd01142270456e2403c260cad143b4647081c91d3a36c\n", - " Stored in directory: /root/.cache/pip/wheels/83/97/6b/e9e0cde099cc40f972b8dd23367308f7705ae06cd6d4714658\n", - "Successfully built japanize-matplotlib\n", - "Installing collected packages: japanize-matplotlib\n", - "Successfully installed japanize-matplotlib-1.1.3\n" - ] - } - ], - "source": [ - "!pip install japanize-matplotlib #!から始めることでLinuxコマンドを使うことができる。\n", - "import japanize_matplotlib\n", - "import numpy as np #ついでにコレもインポート" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QPB383yO9SFq" - }, - "source": [ - "Pythonでグラフを作る際の基本は、**データ(描画したいもの)が入ったリストを作ること**です。\n", - "\n", - "リストに対して、線や棒、いろんな形のシンボルを描いたりして、どんどんグラフを構成する要素を足しながら、 \n", - "それらの色や線種、透過度や太さ,背景色などを変えつつ徐々に望むようなグラフにしていきます。\n", - "\n", - "以下では代表的なグラフを例に、Matplotlibを使った作画を試してみましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "88mhl_c22S4-" - }, - "source": [ - "### 棒グラフ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "j98rkXdk03-h" - }, - "source": [ - "Aさんの共通テストの得点をリスト(括弧[ ]内に、数字カンマで区切る)に格納します。 \n", - "順番(各科目の名前(ラベル))は、国語,英語,数IA,数IIB,化学,物理,世界史として... " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WWBmSr7L0_6s" - }, - "outputs": [], - "source": [ - "data = [152, 170, 82, 85, 79, 92, 88]\n", - "label = [\"国語\",\"英語\", \"数IA\", \"数IIB\", \"化学\", \"物理\", \"世界史\"]\n", - "total = sum(data)\n", - "#print(\"合計得点は\", total, \"点で、得点率は\"+str(total/900)+\"%です\")\n", - "print(\"合計得点は\", total, \"点で、得点率は\"+str(\"%6.1f\" % (100* total/900))+\"%です\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4gaNmr3CefUn" - }, - "source": [ - "Aさん優秀ですね。これを棒グラフにでもしてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "S0rBmtTL3YsB" - }, - "outputs": [], - "source": [ - "plt.figure( figsize=(10,2) ) \n", - "plt.bar(label,data,align='center',width=0.5,color=\"red\") \n", - "plt.xlabel(\"各科目\"); plt.ylabel(\"Aさんの得点\") \n", - "plt.show() \n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4SV4bCn9nxqV" - }, - "source": [ - "棒グラフが描けたでしょうか。それぞれの行の意味を順に説明します。 \n", - "\n", - "* 1行目: \n", - "```plt.figure(figsize=(10,2)) ``` \n", - "ここでは、`matplotlib.pyplot`内の`figure`という関数を読んでいます。 \n", - "上で`matplotlib`モジュール内の`pyplot`というモジュールを \n", - "`plt`という名前でインポートしたので`plt.figure`というのは、 \n", - "`pyplot`内の`figure`という関数を使うことを意味します。 \n", - "役割としては、図を描くキャンバスを用意しているようなイメージです。 \n", - "ここでは```figsize=(10,2)```という引数を指定しました。 \n", - "(指定しなければ自動で図のサイズが決まります) \n", - "figsize=(横,縦)で大きさが指定できます、figsizeを変えて試してみましょう \n", - "\n", - "* 2行目: \n", - "```plt.bar(label,data,align='center',width=0.5,color=\"red\")``` \n", - "`pyplot`内の`bar`という関数(棒グラフを描く関数)を使っています。 \n", - "1つめの引数はx軸上の値で、2つめはy軸に対応する値です。 \n", - "x軸用のリストが数値以外のときは整数値を割り当ててプロットしてくれます \n", - "(7個データがあれば、x=0,1,...,6に割り当てられる)\n", - "\n", - "* 3行目: \n", - "```plt.xlabel(\"各科目\"); plt.ylabel(\"Aさんの得点\") ``` \n", - "ここではx軸とy軸のデータの種類(ラベル/labelと呼ぶ)を指定しています。 \n", - "\n", - "* 4行目: \n", - "```plt.show()``` \n", - "それまでに指定した条件で絵を描いて表示する\n", - "\n", - "* 5行目: \n", - "```plt.close() ```キャンバスを閉じる。 \n", - "とくに一つのプログラムで複数絵を描くときはこれを書きましょう。 \n", - "(closeしないと、どこまでがどのグラフのための指示かわからず \n", - "意図しない絵になることがあります)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QJU3ua-h6JS0" - }, - "source": [ - "#### **練習** \n", - "国語と英語の得点を100点満点に換算し、 \n", - "いくつかの得点や棒グラフの色を変えてプロットしてみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "nmcYXrZACP4n" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EJpfw2KwCPdV" - }, - "source": [ - "\n", - "\n", - "---\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BzWX1S4I3ERW" - }, - "source": [ - "### 円グラフ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lH6qwevuz3Wo" - }, - "source": [ - "世の中には多くの円グラフの誤用が溢れています。 \n", - "ワイドショーなどで総和が100%になっていなかったり、 \n", - "円に対して占める割合が明らかに間違っていたりと、ひどい有様です。 \n", - "\n", - "他にも、奥行方向に傾いた円グラフも誤った印象を与えます。 \n", - "このように、円グラフというのは作成する際に注意が必要ですし、 \n", - "作成した円グラフがおかしいと「私は教養のない人です」 \n", - "と言っているようなもので大変恥ずかしい思いをします。 \n", - "\n", - "そもそも円グラフにしなきゃいけないデータってあるんでしょうか? \n", - "帯グラフなどのほうがよっぽど量の比較にも向いています。\n", - "\n", - "あれ...無くない?ということで円グラフはオマケとします。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "onNa3DTcgq-y" - }, - "outputs": [], - "source": [ - "#どうしても円グラフが描きたい方へ (下のコードを適当にいじって遊んでみてください)\n", - "tlabels = [\"Aと答えた人\",\"Bと答えた人\",\"Cと答えた人\"]\n", - "ratio = [513,142, 249]\n", - "\n", - "plt.figure(figsize=(4,4)) \n", - "plt.pie(ratio,labels=tlabels,counterclock=False, startangle=90,autopct=\"%.1f%%\")\n", - "plt.show()\n", - "plt.close() \n", - "# labels=tlabelsは、 pie()関数の中のlabelsという引数にtlabelsを突っ込むという意味\n", - "# label(ラベル)とは、凡例(legend)のこと。それぞれのオブジェクトが何を指すのか\n", - "# counterclockは反時計回りのオプションをFalse(偽)とするのでつまり時計回り(回りくどいな...)\n", - "# startangleは円グラフの始点を、x軸から見て何度のところにとるかで、今は90度(つまり12時の方向)と設定.\n", - "# autopctは「値を%表記に直せ」というオプションで、 %.1f%%は小数点以下1桁まで出力しなさいという命令." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "efNzOCmBlOyj" - }, - "outputs": [], - "source": [ - "tlabels = [\"Aと答えた人\",\"Bと答えた人\",\"Cと答えた人\"]\n", - "ratio = [513,142, 249]\n", - "\n", - "plt.figure(figsize=(10,3)) \n", - "plt.ylim([-1,1]) #plt.ylim(-1,1)でも可\n", - "xs = 0.0\n", - "for i in range(len(tlabels)):\n", - " tx = ratio[i]\n", - " ty = 0.0\n", - " plt.barh([ty],width=tx,left=xs,label=tlabels[i]+\"(\"+str(ratio[i])+\"人, \"+str(\"%4.1f\" % (100*ratio[i]/sum(ratio)))+\"%)\")\n", - " xs += ratio[i]\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Bvlp1LLbpLut" - }, - "source": [ - "こっちの棒グラフのほうが良い気がする" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6iN_Tl4millJ" - }, - "source": [ - "### plot: 線の描画\n", - "\n", - "説明変数$x$と目的変数$y$があって、 \n", - "とくに**$x$に対する$y$の振る舞い**に興味がある場合には```plot```を使います。\n", - "\n", - "たとえば、日付($x$)に対するコロナウイルス感染者($y$)の推移をプロットしてみましょう。\n", - "日付は、WHOのSituation Reportが初めて発表された2019年1月20日を起点(ゼロ)とする経過日数として表すことにして...\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 539 - }, - "id": "N0LR-xQii7b3", - "outputId": "0254ee47-8280-4fec-fb06-81463204cafc" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtIAAAEFCAYAAADOuQCgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZyN5f/H8dc1GGMf2yBMtCJZMkWlGkXZSX0lSkTSQouKtl/afC2JRIsv0TcVlexblsbyrcgyoey7CUmDLGNmzPX74zpzZoYZxjTmnuX9fDzux7nPdd/nzOeMY+Y917nu6zLWWkRERERE5MIEeF2AiIiIiEhOpCAtIiIiIpIBCtIiIiIiIhmgIC0iIiIikgEK0iIiIiIiGZDf6wIyqkyZMrZKlSpelyEiIiIiudiqVav+tNaWTe1Yjg3SVapUYeXKlV6XISIiIiK5mDFmV1rHNLRDRERERCQDFKRFRERERDJAQVpEREREJANy7Bjp1MTFxbF3715iYmK8LkUkTwoKCqJSpUoUKFDA61JEREQuulwVpPfu3UuxYsWoUqUKxhivyxHJU6y1HDp0iL1791K1alWvyxEREbnoctXQjpiYGEqXLq0QLeIBYwylS5fWJ0IiIpJn5KogDShEi3hI//9ERCQvyXVBOq+y1npdgoiIiOQVp0/D99/Dm296XYmnFKQvgmPHjgHwyiuv+BeNadq0qf/41KlTqVatGuHh4Vx99dXUqlWL8PBwrrjiCiIiIs56vvj4eO68806aNWvGqVOnUv2a99xzDwcPHvQ//8iRI9NVa1xcHLt372bPnj0X8hL93nnnHZYtWwbAxo0b+fLLL3nzzTcZOnSoP9y3adOGkJAQbr75ZipWrMjo0aP9j2nbtm2Gvu6FioyM5IEHHjjvef379+ebb75J9/OuWLGC2bNnp3n85MmT/Pzzz+l+voSEhPOe079/fyIjI3nqqadSvB9++uknJkyY4L9/7733nve5WrZs6d+PiIhgzZo1/vvDhw9nzJgxTJ8+nWHDhnH69Gm6dOmSzlciIiK5TkIC/O9/0Ls3VKoEt98OgwbBH394XZlnctXFhtlFy5YtUw3EybVo0YImTZowb948ypQpQ7169Zg6dWqq5z733HM89dRTlChRgvvuu4///ve/FC9e3H/8yJEjHD9+nLJlU129EnCBeejQoezdu5fo6GiCgoLYunUra9eu5Y477qBTp05UrlzZf/7x48cZMWIEP//8M9HR0YSEhPDwww9z1113AS5A3n333YSGhjJ+/HgKFizItddeS6dOnWjVqhVFixb1P9e0adPo0KEDI0eOpH///vTo0YO2bdvSsGHDFDWuWrWKRx99NNX6ly5dSqFChQDYvHkzHTt2TPW8zz77jOrVq6f5fchM27Zto1u3bkybNu2sY19//TXHjh2jUaNGvP7668ycOfOsc44ePcodd9yBMQZjDAEBAezcuZPZs2dTt25d/3lt2rTh0KFD/vt//fUXEydOpHz58tx1110MHz6cWrVqkZCQQOHChVm4cCFvvvkmv/76K/Xq1eP+++/nueee8z8+MjKSp59+GoB169YRHh5OYGAgxYsX54svvvCfd+TIEeLj4/njjz+oVasWW7Zs4eDBg/7XUrduXSpWrPjPv5EiIpJ9WQurVsGkSW7bswcKFoQWLaBDB3dbuLDXVXom9wbpp5+GyMjMfc46dWD48DQPz5kzh6FDh/LLL7/QuHFjtm3bxvz58ylWrBiRkZE0btyYPn36AFCgQAGCgoLInz9/iv3kYmJiePbZZ7npppto0aIF4IZwNGvWjFdeeYVmzZoB8PnnnxMeHk6HDh3Yv38/GzZsICYmxt+z+sEHH1CjRg2uv/567r//fkJDQ5k2bRpz5sxh2rRpREdHs2TJEv/XjY6O5r777uP555+nRo0abN68mSeeeILnnnuOzZs306tXL+rUqcNLL71EpUqVWLp0KV27dmXIkCFUrFiRw4cPc/jwYYoVK8a2bdsYMWIEy5cvp1evXkRGRtK3b99Uv3/16tVLddn38PBwTp8+7b9/4sQJatasyfjx41Oc16VLF44fP+6/f9NNN3HixAnA9QwfPHiQOnXqAHDJJZf4e5JnzpxJz549qVSpEgBz587lnXfeYffu3cyePdv/mORWr15N586dmTRpEpdddtlZxw8fPkxcXFyqrzNR8eLFU/RWnzhxgvr161OjRo0U550+fZrXXnuNTZs2AVC+fHmWLVvGlVdeyY033kidOnWIi4tj2rRp3HTTTZQvX57p06fTs2dPnn32WSIiIjh8+DDBwcEcOXKE4OBg//euW7du9OvXj9dff51XX32VtWvXUrlyZZYuXcr333/PmjVrCA0N5bvvvqNx48aUKVOGRYsWsXr1akaNGqUgLSKSG1kL69e74DxxImzbBgUKwF13wYAB0Lo1JOvQy8tyb5D2QLNmzWjWrBnh4eEsWLCAV155hbZt2xIWFkbTpk2ZO3cu4IZeTJ06lZ9++ol9+/ZRsGBBZs+ezd69e/0fx69atYr+/ftTr149xo8fz9tvv03+/PkpV64cHTp0YNq0acTGxnLbbbfx1ltv8eyzzzJx4kSOHj3KjTfeyKlTpxgxYgS1atXy13fHHXcA8OeffzJq1CjmzZvH4cOH6du3L1WrVuXAgQOUK1eOF154gTfeeIMGDRowYMAAateuTeHChXn//fepVasWPXv25KeffiI6Opq5c+dSsWJFpkyZwsmTJ5kyZQorVqzgkksuoX379jRq1IiBAwfSp08f3nvvPfr378+gQYOyZEjHDz/84N9funQpX375JR988EGq53bv3p3+/funaGvSpAklSpRI0ZaQkMCwYcP4+uuvKVOmDNdcc02qz3f8+HFKlSp1Vvvff/9NsWLFUn3M+++/zyOPPELBggXPOrZhwwa++OILTpw4wYgRI9i+fTs7duyge/fugPvD7JlnnuGpp56iW7duDBs2jGeffZaAgAD279/P448/zpAhQ4iKivL/0RQTE8O2bdtYsGAB3bt3Z9u2bQAUKlSI1q1bs3nzZkJCQoiLi6NRo0bMmTOHvn37Ehsby1VXXZXmaxcRkRxq82YXnCdNgt9+g4AAuOMOePFFuPtuSOX3Wl6Xe4P0OXqOvda2bVuqVKnCoEGD+O6770hISKBr167069eP8PBwAGrVqsXUqVPJly8fAB999BHBwcF06NAhxXNNmDCBxx57zH9/yJAhtGnThqJFi/LSSy8xefLks4LZnDlzaNWqFQEBAZQqVYonnniCSpUqUa5cOQB+/fVXGjRoAMCiRYv8wy3y5ctHmTJl/ENDFixYQFRUFFFRUWzZsoVy5crRp08fPvroI+rUqeN/LY8//jg9e/ZMUcNbb73FyJEj+f333zPnm3oe27dvJzQ0NN3nnzp1in379qWYD3nWrFm89dZb3HvvvXz77bdpDi8BiIqKombNmina4uPjadu2LSNGjDgrhK5YsYKPP/6YzZs3n/Vcx48fJzY2lubNm7N7927i4+MpU6YMhw4dYuzYsVx55ZU0adKEoUOHMnjwYLZv3+4f3nLNNddQuXJlrrvuOipWrEjFihUJCwtj8uTJvPDCC1hrWb58OcuXL6dQoULMmTMHcOOlmzRpQnR0NF26dKFw4cJERkaycOFCSpUq5X9/iIhIDrdzZ9KwjTVrwBi45Rb44AO45x4ICfG6wmwt9wbpbOLRRx+lWLFi/P3334D7+P6DDz5g+fLlXHfddQQGBgJQv359Zs2axVdffcWrr75K1apV+eWXX/xDQaKiosifPz9jxowBXGCuW7cuDzzwABEREaxcuZLp06ezefNmunbtys6dO3nwwQdp06YNU6ZM8Y8vBjde+siRI/77t912W4qaE1el27VrF4UKFaJ06dL+x0VFRVG2bFlCQkKYM2cONWrU4KmnnuKhhx6ibdu2BAUFnfU9ePLJJ7n99tsB90fEqlWrqFChAkWKFOH111/PlO/z+UyYMIHBgweneqx58+YpLgYFGDNmzFm95pdffjmzZ8+mZMmS7N+//5xf7/vvv+ell17yf59jY2Pp0aMH7dq1OytEr1q1iueff54HHniAtm3b8tlnn1GyZEkAfvzxR0JDQ6lZsyYhISEkJCQwZcoUGjRowDXXXMOrr77K1KlT+e6771izZg3dunUjLi6OJUuWYIzhlltu8f97lilTBmstH374IeXKlaN9+/Z07drVX8fjjz/u3//9998ZNGgQJ06cYN68ecTGxjJx4kR/b3jiGGsREcmBoqLg669d7/Py5a6tfn0YNgz+9S/QsL10U5C+iB566CFeeOEFihcvzqpVqwB3cVflypV57rnnaNasGS+++CLgxukuWLCAVatW+ccD165dmwULFgBp90gnioqK4r///S+tWrWib9++nDp1ihYtWnDjjTeycuVKbrnlFv+5zZs355ZbbuHWW289K0QDhISEsGrVKoYMGULv3r0BFwSffvppOnXq5J8ruF+/ftSvX59JkyYRFxeX5kIce/fupXHjxv46CxQoQIjvL9zOnTv7z5s9ezYvvfTSWY/funXrWW0zZ84kLCwsRdvOnTt58sknU7QlJCTwf//3f4SGhqa4gC+5gIAAAgKSJrCZM2cOY8eOZfHixSnOq1atWqqPP9OoUaO45ZZbKFmyJEeOHGH//v3ccccd3HvvvTzxxBP+8+Lj4xk9ejTjxo1j+vTpVKhQgW+//ZZGjRoxY8YMKleuTFhYGI888gihoaH+oR0APXr04Msvv+T999+n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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsUAAAEFCAYAAAALy5oxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZzNZf/H8dc1dtmXsc+MUknIMmiTGUuiLMktUrJEWkmi5e53a6GkxS2lRLRoUbKVpTCD6s7aRLJFyIQQYzfDXL8/rjlzzmzWmTkzc97Px+M8zpzv+Z5zruEY77nO5/pcxlqLiIiIiEggC/L3AERERERE/E2hWEREREQCnkKxiIiIiAQ8hWIRERERCXgKxSIiIiIS8PL7ewAA5cqVs2FhYf4ehoiIiIjkcatWrdpnrS2f+niOCMVhYWGsXLnS38MQERERkTzOGLM9veN+LZ8wxrQzxoyPi4vz5zBEREREJMD5NRRba2dba/uVLFnSn8MQERERkQCnhXYiIiIiEvByRE1xehISEti5cycnTpzw91BEAlLhwoWpWrUqBQoU8PdQREREslyODcU7d+6kePHihIWFYYzx93BEAoq1lv3797Nz506qV6/u7+GIiIhkuRy70O7EiROULVtWgVjED4wxlC1bVp/UiIgEgldegaiolMeiotzxAJKjF9opEIv4j/79iYgEiEaNoEsXbzCOinK3GzXy77iyWY4tnwh01lqFEhERkUD1yisulEZGeo9FRcGKFTBkyPk/X2IiHD0Khw/DoUPu2vfSvTu0awe33w7z5sHUqSlfOwDkje4TWTztf+TIEQD+/e9/J28ycssttyTfP2PGDGrWrElERARXXnkldevWJSIigho1ahAdHZ3m+U6dOsXNN99MmzZtOHnyZLqveccdd7B3797k5x87duw5jTUhIYEdO3bw559/ns+3mOzVV1/l+++/B2DDhg18+umnvPDCC7z22mtYawHo0KEDwcHB3HDDDVSpUoXx48cnP6Zjx44X9LrnKyYmhrvvvvus5w0bNowvv/zynJ93+fLlzJkzJ8P7jx8/zooVK875+RITE896zrBhw4iJiWHAgAEp3g8//fQTH3/8cfLtzp07n/W5brvttuSvo6Oj+fnnn5Nvjx49mgkTJjBr1izeeOMNTp8+Tc+ePc/xOxERkWzlmb397jvYvh0mToROndx9X3wB778P//0vvPgiDB0KDzwAd98NHTpA8+bu8TVrQuXKULw45MsHJUpAlSpw1VXQuDG0aAEdO8I997jnOnoUPv7YPVeABWLIKzPFnjeO57caz7T/1KmZ8vS33XZbuuHW16233kqrVq2YP38+5cqVo2HDhsyYMSPdcwcPHsyAAQMoWbIkd955Jx9++CElSpRIvj8uLo6jR49SvnyaHQiTJSQk8Nprr7Fz504OHDhA4cKF+f3331mzZg0tWrSge/fuVKtWLfn8o0ePMmbMGFasWMGBAwcIDg6md+/etG7dGnBh8PbbbyckJITJkydTqFAh6tSpQ/fu3WnXrh3FihVLfq6ZM2fStWtXxo4dy7Bhw+jXrx8dO3bkxhtvTDHGVatWcf/996c7/qVLl1KkSBEANm3axF133ZXueR999BFXXXVVhn8OmWnLli306dOHmTNnprnviy++4MiRI0RGRvLcc8/x9ddfpznn0KFDtGjRAmMMxhiCgoLYtm0bc+bMoX79+snndejQgf379yff/ueff/jss8+oWLEirVu3ZvTo0dStW5fExESKFi3KwoULeeGFF1i3bh0NGzakW7duDB48OPnxMTExDBw4EIC1a9cSERFBwYIFKVGiBJ988knyeXFxcZw6dYq///6bunXrsnnzZvbu3Zv8vdSvX58qVapc/B+kiIicH2vh779h40bYtMldb9wIhQvDzTenPHfo0LSPL1TIBd8SJdx18eJQvjxcemnKY55L6mMlSsAvv0D//u4ybpzLUwEWjHNHKB44EGJiznxO5crQujVUqgS7drnfgp57zl3SU68ejB59xqecO3cur732Gr/88gstW7Zky5YtfPfddxQvXpyYmBhatmzJ448/DkCBAgUoXLgw+fPnT/G1rxMnTjBo0CCuv/56br31VsCVSbRp04Z///vftGnTBoApU6YQERFB165d2b17N+vXr+fEiRPJM55vv/02tWrVolGjRnTr1o2QkBBmzpzJ3LlzmTlzJgcOHGDJkiXJr3vgwAHuvPNOnnjiCWrVqsWmTZt46KGHGDx4MJs2beKRRx6hXr16PP3001StWpWlS5fSq1cvRo0aRZUqVTh48CAHDx6kePHibNmyhTFjxrBs2TIeeeQRYmJiGJreP1CgYcOG6W7fHRERwenTp5NvHzt2jNq1azN58uQU5/Xs2ZOjR48m377++us5duwY4GZs9+7dS7169QCoXLly8gzv119/Tf/+/alatSoA8+bN49VXX2XHjh3MmTMn+TG+Vq9eTY8ePfj888+59NJL09x/8OBBEhIS0v0+PUqUKJFiFvnYsWM0adKEWrVqpTjv9OnT/Oc//2Hjxo0AVKxYke+//57LL7+c6667jnr16pGQkMDMmTO5/vrrqVixIrNmzaJ///4MGjSI6OhoDh48SKlSpYiLi6NUqVLJf3Z9+vThySef5LnnnuPZZ59lzZo1VKtWjaVLlxIVFcXPP/9MSEgI3377LS1btqRcuXIsWrSI1atX89ZbbykUi4hkpePHYfNmb+j1DcC+TQcKFYLLL4cmTSA0FH74Ae64A/r2TT/YXmzrzKgoF4Y9k4vNm6ecbAwQuSMUn4vSpV0g3rEDQkLc7YvUpk0b2rRpQ0REBAsWLODf//43HTt2JDw8nFtuuYV58+YBrrxhxowZ/PTTT+zatYtChQoxZ84cdu7cmfyR96pVqxg2bBgNGzZk8uTJDB8+nPz581OhQgW6du3KzJkziY+Pp1mzZrz44osMGjSIzz77jEOHDnHddddx8uRJxowZQ926dZPH16JFCwD27dvHW2+9xfz58zl48CBDhw6levXq7NmzhwoVKjBkyBCef/55rr32WkaMGME111xD0aJFefPNN6lbty79+/fnp59+4sCBA8ybN48qVaowffp0jh8/zvTp01m+fDmVK1emS5cuREZG8vLLL/P444/z3//+l2HDhjFy5MhsKZv48ccfk79eunQpn376KW+//Xa65953330MGzYsxbFWrVqRelFnYmIib7zxBl988QXlypXj6quvTvf5jh49SpkyZdIcP3z4MMWLF0/3MW+++SZ9+/alUKFCae5bv349n3zyCceOHWPMmDFs3bqVP/74g/vuuw9wv2Q99thjDBgwgD59+vDGG28waNAggoKC2L17Nw8++CCjRo0iNjY2+RegEydOsGXLFhYsWMB9993Hli1bAChSpAjt27dn06ZNBAcHk5CQQGRkJHPnzmXo0KHEx8dzxRVXZPi9i4iIj7PV+iYmws6d3rDrG4B37HCzwh5Vq8KVV7p63iuvdJcrrnA5Jl8+7yffzz7rZm8fegiuvz7zv6cVK1IG4MhId3vFCoXi7GKMaQe0q1GjxplPPMuMLpD2jfOf/2TbX2THjh0JCwtj5MiRfPvttyQmJtKrVy+efPJJIiIiAKhbty4zZswgX758ALzzzjuUKlWKrl27pniujz/+mAceeCD59qhRo+jQoQPFihXj6aefZtq0aWlC1ty5c2nXrh1BQUGUKVOGhx56iKpVq1KhQgUA1q1bx7XXXgvAokWLkksa8uXLR7ly5ZLLLxYsWEBsbCyxsbFs3ryZChUq8Pjjj/POO+9Qr1695O/lwQcfpH///inG8OKLLzJ27Fj++uuvzPlDPYutW7cSEhJyzuefPHmSXbt2pei5+8033/Diiy/SuXNnvvrqqwxLOABiY2OpXbt2imOnTp2iY8eOjBkzJk2gXL58Oe+++y6bNm1K81xHjx4lPj6etm3bsmPHDk6dOkW5cuXYv38/EydO5PLLL6dVq1a89tprvPLKK2zdujW5hOTqq6+mWrVqNGjQgCpVqlClShXCw8OZNm0aQ4YMwVrLsmXLWLZsGUWKFGHu3LmAqy9u1aoVBw4coGfPnhQtWpSYmBgWLlxImTJlkt8fIiJyFp6Szffec/W506e7etxGjWDKFDcTfPy49/zixV3YvfFGF3g94ffyy+GSSzJ+Hd9SUE8pQ1bN3qa3cE/lE9nLWjsbmB0eHt73op4oG984999/P8WLF+fw4cOA+4j87bffZtmyZTRo0ICCBQsC0KRJE7755humTp3Ks88+S/Xq1fnll1+Syy1iY2PJnz8/EyZMAFz4rV+/PnfffTfR0dGsXLmSWbNmsWnTJnr16sW2bdu455576NChA9OnT0+uxwVXX+zb67lZs2YpxuzZkWz79u0UKVKEsmXLJj8uNjaW8uXLExwczNy5c6lVqxYDBgzg3nvvpWPHjhQuXDjNn8HDDz9M8+bNAfcLwapVq6hUqRKXXHIJz2VUrpLJPv74Y17JYCFl27ZtUyyEBJgwYUKa2ezLLruMOXPmULp0aXbv3n3G14uKiuLpp59O/nOOj4+nX79+dOrUKU0gXrVqFU888QR33303HTt25KOPPqJ00icX//vf/wgJCaF27doEBweTmJjI9OnTufbaa7n66qt59tlnmTFjBt9++y0///wzffr0ISEhgSVLlmCMoWnTpsl/n+XKlcNay7hx46hQoQJdunShV69eyeN48MEHk7/+66+/GDlyJMeOHWP+/PnEx8fz2WefJc9Se2qSRURypYvt1BAfD/v2wd693mvfS+pj+/e7Lg0eQUEQG+vCbsuW3hnfK6+EihXhQrpJafY22+WN8olseuPce++9DBkyhBIlSrBq1SrALWyqVq0agwcPpk2bNjz11FOAq2tdsGABq1atSq6fveaaa1iwYAGQ8UyxR2xsLB9++CHt2rVj6NChnDx5kltvvZXrrruOlStX0rRp0+Rz27ZtS9OmTbnpppvSBGKA4OBgVq1axahRo3j00UcBF+oGDhxI9+7dk1u/PfnkkzRp0oTPP/+chISEDDdu2LlzJy1btkweZ4ECBQgODgagR48eyefNmTOHp59+Os3jf//99zTHvv76a8LDw1Mc27ZtGw8//HCKY4mJifzf//0fISEhKRav+QoKCiIoyNtYZe7cuUycOJHFixenOK9mzZrpPj61t956i6ZNm1K6dGni4uLYvXs3LVq0oHPnzjz00EPJ5506dYrx48czadIkZs2aRaVKlfjqq6+IjIxk9uzZVKtWjfDwcPr27UtISEhy+QRAv379+PTTT3nzzTcpUaIEN998MzfffDNxcXHcdddd9O7dm/Lly7N582bGjBmTXPt78uRJWrduTXR0NJMmTeLXX39NHo9vPfZdd93Fd999R7t27Vi9ejVdu3aldu3aNG7cmEmTJhEfH59umYeISK7gu+A+IgLmznUdFV58EebMyTjceo6ls4kY4MJs2bJu0Vr58m69UtOm7usVK2D+fNepYfRoSJoUyzSavc12eSMUZ/EbJyYmJrl0ILXo6GiaNGnCunXrKFWqVJr7GzZseEGvWaVKFX788UeKFStGo0aN2LlzZ5qA6FGxYkWmT5/OM888Q8+ePbn77rt54YUXku9//fXX6devH61atUpeHLho0aLkxXcAn332GYULF+bGG28kPDycAwcOpOhe4atHjx7J4fedd96hXLly6bYLa9u2LW3btk1z/PXXX0+e7QQoU6YMI0aMoF+/finOGz9+fPKstseUKVM4cuQI48aNS3dsvn777TdGjhzJn3/+yfz58zOs/T2TNWvWMH/+fKYmdTIpXbo05cqVY8SIETRo0CDFuT169CAsLIwlS5Ykz+R36tSJoKAgxo4dy8iRIylQoACvv/46I0aMYOHChcybN48vvviCNWvWcPDgQR599FHef/99KlWqxKRJk/jggw94+eWX2bRpE6VKlaJPnz707t2b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+DDMneuC8DffuJ3lSpaE9u1dEL755rSzwb60qYaIiEhg82soNsa0A9rVqFHDn8OQXOqff2D2bLer3Lffurrg4GC46y4XhCMj1T9YREREzo1fa4qttbOttf1K+n6WLZIkvQ01du1yGxC2auUCcM+erotE//5u6+W//oJ334XWrRWIRURE5NypfEJypNQbamzfDj16uA4SAJdfDk88AXfcAQ0bgjH+G6uIiIjkfgrFkiM980zKHebABeKSJeGHH6BWLQVhERERyTwKxZIj7diR/vFDh+Dqq7N3LCIiIpL3qU+x5ChHjriewhntPq4NNURERCQrKBRLjrF4MdStC++843oKFymS8n5tqCEiIiJZRaFY/O7YMRg4ECIiXKeJJUtgzhx47z0IDXW1w6GhMH68egmLiIhI1lBNsfjVDz+4tmq//w6PPAIvvQSXXOLu04YaIiIikl00Uyx+cfw4DB4MTZvCqVMQFQVjxngDsYiIiEh20kyxZLtly9zs8IYNbtONV16B4sX9PSoREREJZJoplmxz8iQ8/TRcfz0cPeq2Zh43ToFYRERE/E8zxZItVq2Ce++FdeugTx947TW3EYeIiIhITqCZYslS8fHwn/9AkyZw4IDrKjFhggKxiIiI5CyaKZYs88svrnY4JgZ69IDRo6F0aX+PSkRERCQtzRRLpktIgBdfhEaNYNcumDEDPvhAgVhERERyLs0US6Zat87VDq9aBV27wtixULasv0clIiIicmaZPlNsjClujJlkjHnHGHNvZj+/5EynTsHIkdCgAWzfDl98AZ9+qkAsIiIiuUNWlE/UAd6w1vYHWmXB80sOs3Ej3HgjPPkktGvnZos7d/b3qERERETO3TmFYmNMZ2PMVGPMjlTHuxhjlhtjVhljXgOw1v5orV1jjKkHHM+CMYufTZkCYWEQFARlykDt2rB5s5sZ/uILCA729whFREREzs+5zhTvBR4ECnoOGGNCgRdws8HhQFVjzB1J910PDAAGZvSExph+xpiVxpiVe/fuvcDhS3abMgX69XMlEta6NmvWwgsvuBpiY/w9QhEREZHzd06h2Fq72Fq7L9XhW4Bp1to4a60F3gU6GmOCge5AH2vt0TM853hrbbi1Nrx8+fIXOn7JZs88A8eOpTx2+rTbqllEREQkt7qYmuKywG6f27uAYKAXUAkYb4wZdxHPLznQjh3n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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# 感染者数と重傷者数\n", - "y= [282,314,None,581,846,1320,2014,2798,4593, 6065,7818,9826,11953,14557,17391,20630,\n", - " 24554,28276,31481,34886, 37558.40554,43103,45171] #2019年2月13日までのデータ\n", - "\n", - "y_sev=[51,51,None,96,177,237,324,461,976,1239,\n", - " 1370,1527,1795,2110,2296,2788,3219,3859,4821,6101,6188,6484,7333,8304]\n", - "\n", - "plt.figure(figsize=(12,4)) \n", - "plt.xlabel(\"2019年1月20日以降の経過日数\")\n", - "plt.plot(range(len(y)),y, label=\"世界全体での新型コロナウイルス感染者数\",color=\"red\")\n", - "#x軸が0から始まる整数値(0,1,...)で良い場合は、x軸のデータを指定しなくてもplotしてくれる\n", - "plt.plot(y_sev, label=\"重傷者数\",color=\"blue\") \n", - "plt.legend() ##凡例(線や点等の説明)を描画する\n", - "plt.show()\n", - "plt.close() \n", - "\n", - "plt.figure(figsize=(12,4)) \n", - "plt.xlabel(\"1月20日以降の経過日数\")\n", - "plt.yscale(\"log\") ## y軸を対数スケールに変換\n", - "plt.plot(range(len(y)), y, marker=\"x\",label=\"世界全体での新型コロナウイルス感染者数\",color=\"red\") ## markerの値を指定すれば、線だけじゃなく点を描くことも出来る。\n", - "plt.plot(y_sev, label=\"重傷者数\",marker=\"o\",color=\"blue\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5Hbzfjw0pqhu" - }, - "source": [ - "下のグラフはy軸の対数スケールをとってみました。 \n", - "*データが無い日の値は0ではなくNone(値なし)にすることに注意しましょう*" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AP4eGtKElufB" - }, - "source": [ - "**注意** \n", - "当然ですが、x軸とy軸方向でデータの数が合っていないとエラーを起こします。 \n", - "\n", - "「一緒にしているつもりなのにエラーが出る...」と言う場合は \n", - "len()関数などを実行してリストの長さ/要素の数をチェックしてみましょう。 \n", - "カンマがピリオドになるなどして、意図しないリストになっているかもしれません。 \n", - "\n", - "例: \n", - "(意図したリスト) [2,3,5] ←長さ3のリスト \n", - "(間違えて作ったリスト) [2.3, 5] ←カンマがピリオドになっていて、長さ2のリストになっている \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EiGt8E4VoWEI" - }, - "source": [ - "\n", - "\n", - "**練習**: \n", - "「matplotlib marker」でWeb検索してみて、どんな形状のmarkerが使えるか調べてみましょう。 \n", - "その中から\"x\"(バツ印)以外の好きなシンボルを選んで上のグラフの二番目をプロットしてみましょう。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Oy34IWVsCLZv" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H15gDDnkmz5p" - }, - "source": [ - "### scatter: 散布図の描画\n", - "\n", - "$x$と$y$、2つの量があって、どちらにも興味がある、 \n", - "あるいは両者の間の相関に興味がある場合、散布図を描くと、見通しやすくなることが多いです。\n", - "\n", - "以下では、2017年の宇都宮の平均気温とアイスクリームの消費量の相関を見てみましょう。 \n", - "気温・アイスクリームの消費量ともに、1月から12月に順番にリストに入れていくことにします。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 304 - }, - "id": "ZpNvApJ-nVKv", - "outputId": "377c58ab-36c5-4194-e701-9be33e08a4a0" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]\n", - "\n", - "plt.figure(figsize=(4,4)) \n", - "plt.title(\"宇都宮市\") ## 図にはタイトルをつけることができます\n", - "plt.xlabel(\"平均気温 (℃)\") #軸ラベルの指定\n", - "plt.ylabel(\"世帯あたりのアイスクリーム・シャーベットの消費金額 (円)\")\n", - "plt.scatter(x,y)\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B-535rGQpYsg" - }, - "source": [ - "相関係数などの情報を含んだもう少しかっこいい図を作ってみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 348 - }, - "id": "bOGBYPK7pgJZ", - "outputId": "05eba7a2-d3a0-4e48-afa4-416483f3b606" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]\n", - "\n", - "r = np.corrcoef(x,y) ## x,yの配列間の相関行列を計算します \n", - "corrcoef=r[0,1] ## 行列の非対角要素が相関係数です。 r[0,1], 0行目1列の値\n", - "\n", - "def seasoncolor(month): #季節ごとに適当に色を塗ってみましょう\n", - " if month <= 2 or month ==12:\n", - " return \"blue\"\n", - " elif 3 <= month <=5:\n", - " return \"green\"\n", - " elif 6 <= month <=8:\n", - " return \"red\"\n", - " elif 9<= month <=11:\n", - " return \"orange\"\n", - " else:\n", - " print(\"month\",month, \" is not supported\")\n", - "\n", - "fig = plt.figure(figsize=(5,5))\n", - "ax = fig.add_subplot(111) ## 注2\n", - "ax.set_facecolor(\"#D3DEF1\")\n", - "ax.set_title(\"宇都宮市\")\n", - "ax.set_xlabel(\"平均気温 (℃)\")\n", - "ax.set_ylabel(\"世帯あたりのアイスクリーム・シャーベットの消費金額 (円)\")\n", - "ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - "for i in range(len(x)):\n", - " tcol=seasoncolor(i+1)\n", - " ax.scatter(x[i],y[i],marker=\"o\",s=10,color=tcol,zorder=20000,alpha=0.7)\n", - " ax.text(x[i],y[i],str(i+1)+\"月\",color=\"k\",fontsize=8)\n", - "ax.text(0.1,0.9, \"r=\"+str(\"%5.2f\" % corrcoef), transform=ax.transAxes,fontsize=12)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WTDhlmHY7r2p" - }, - "source": [ - "### $\\clubsuit$ ```ax (matplotlib.axes) ```" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qQHLqX9ntOur" - }, - "source": [ - "\n", - "上では、axという見慣れないものが導入されました。\n", - "\n", - "キャンバスの上に小さな作業領域```axes```を指定するための```add_subplot```や```add_axes```といった関数があります。\n", - "```ax```はこれらの関数で生成される作業領域に慣例的に用いる変数です。\n", - "\n", - "たとえばキャンバスを四分割して、似たようなグラフを4つ同時に描いたりするのに便利です。\n", - "\n", - "```axes```を使いこなすのは少々テクニカルな点も多いので、よくわからない部分はとりあえず飛ばし読みで構いません。 \n", - "慣れてくると、その便利さに気がつくはずです。 \n", - "細かい図の書き方は追々、一緒に勉強していきましょう。\n", - "\n", - "axに関しては、日本語で書かれた以下の記事もおすすめです \n", - "https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 319 - }, - "id": "5btbwRL4YCJq", - "outputId": "252c4ae4-b687-4c45-ff80-62e92db6ede9" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "data = [152, 170, 82,85,79,92,88]\n", - "label = [\"国語\",\"英語\", \"数IA\", \"数IIB\", \"化学\", \"物理\", \"世界史\"]\n", - "\n", - "fig = plt.figure(figsize=(10,5))\n", - "axTL= fig.add_subplot(2,2,1) #TL: Top Leftのつもり\n", - "axTR = fig.add_subplot(2,2,2) #TR: Top Rightのつもり \n", - "axBL = fig.add_subplot(2,2,3) #BL: Bottom Leftのつもり\n", - "axBR = fig.add_subplot(2,2,4) #BR: Bottom rightのつもり\n", - "axTL.plot(y_sev)\n", - "axTR.scatter(x,y)\n", - "axBL.bar(label,data,align='center',width=0.5,color=\"red\") \n", - "axBR.text(0.5,0.4,\"右下だよ\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "161cPa6nrVJG" - }, - "source": [ - "### Google Driveのマウントと、Google Colab.上で作ったグラフの保存\n", - "\n", - "プログラムを実行して絵を描けるようになったら、次にそれを保存して、レポートに貼り付けたり、 \n", - "誰かに送ったりする必要が出てくると思います。 \n", - "\n", - "Google Colab.では、同じGoogleのサービスであるGoogle drive上にファイルを保存したり(無料版で15GBまで) \n", - "保存したファイルを他人と共有することができます。\n", - "\n", - "皆さんのアカウントのGoogle DriveにあるファイルにGoogle Colab.からアクセスするためにはマウントという作業が必要です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Cr7sAeT37OSo" - }, - "outputs": [], - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive') # ←のマウントする際の名前は好きに決められる。drive.mount('gdrive')とかでもOK" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "fKJKV7iQj_kt" - }, - "source": [ - "上のコードを実行し(複数アカウントを所持している方はアカウントの選択をして)\n", - "ポップアップ等の指示に従い操作を行います。成功すると、Mounted at ほにゃららというメッセージが出ます。\n", - "\n", - "上のコードは「google driveをdriveという名前でマウントする」という操作を表しています。 \n", - "マウントできていれば、以下のコードを実行すると、 \n", - "皆さんのアカウントのマイドライブ直下のファイル一覧が表示されます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "6CyxsW43aDh0" - }, - "outputs": [], - "source": [ - "!ls ./drive/MyDrive" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Mem3umDTc21A" - }, - "source": [ - "Google Colab.からは、!マークをつけることでLinuxやMac(Unix)同様のコマンドが使えます。 \n", - "上のlsというコマンドは(List Segmentsの略で)ファイルやディレクトリの情報を表示するコマンドです。\n", - "\n", - "半角のスラッシュ```/```はディレクトリ階層を意味していて、windowsで言うところの¥に相当します。\n", - "\n", - "コンピュータでディレクトリやパスを指定するときは通常このような**パス**と呼ばれるものを指定して扱います。 \n", - "※パスについてはファイル操作のノートに詳しい記述があります。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tWWrxd0N_z4k" - }, - "source": [ - "次に、GoogleDriveに、図を保存する用のフォルダを作っておきましょう. \n", - "\n", - "mkdir(make directoryの略)コマンドで、マイドライブ直下に```Colab_pic```というディレクトリを作ることにします." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ou5uXl-U_zV9" - }, - "outputs": [], - "source": [ - "!mkdir './drive/MyDrive/Colab_pic' " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "t3G421FJjMMG" - }, - "source": [ - "上のコードを実行後にエラーが出ていなければGoogle driveを開くとColab_picというディレクトリが作成されているかと思います。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dlHHaqPA_8we" - }, - "source": [ - "一度フォルダを作ってしまうと、2回目以降は上のコードを実行しても「既にフォルダありますよ!!」というメッセージがでますので \n", - "ノートを開くたびに実行する必要はありません。 \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "enGmvm6gAVoE" - }, - "source": [ - "これで準備ができました。試しに以下のコードを実行して図を保存してみましょう。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "PHW-hUepA0dD" - }, - "outputs": [], - "source": [ - "### 先程の図\n", - "fig = plt.figure(figsize=(6,6))\n", - "ax = fig.add_subplot(1,1,1) \n", - "ax.set_facecolor(\"#D3DEF1\")\n", - "ax.set_title(\"宇都宮市\")\n", - "ax.set_xlabel(\"平均気温 (℃)\")\n", - "ax.set_ylabel(\"世帯あたりのアイスクリム・シャーベットの消費金額 (円)\")\n", - "ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - "for i in range(len(x)):\n", - " tcol=seasoncolor(i+1)\n", - " ax.scatter(x[i],y[i],marker=\"o\",s=10,color=tcol,zorder=20000,alpha=0.7)\n", - " ax.text(x[i],y[i],str(i+1)+\"月\",color=\"k\",fontsize=8)\n", - "ax.text(0.1,0.9, \"r=\"+str(\"%5.2f\" % corrcoef), transform=ax.transAxes,fontsize=12)\n", - "plt.savefig(\"./drive/My Drive/Colab_pic/scatter_Utsunomiya_ice.pdf\") ##### ここがさっきと違います! \n", - "#plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LdmUlNpQjwEL" - }, - "source": [ - "Google drive上の指定したフォルダに、ファイルが作られたでしょうか? \n", - "matplotlibはファイル名を変えるだけで指定した拡張子で描画してくれるので色々試してみましょう \n", - "(.jpg,.pdf,.eps,.pngなど)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uICk2RZ5uFwD" - }, - "source": [ - "**余談** \n", - "プレゼンのスライドに載せる画像は可能な限り、ラスタ形式ではなくベクタ形式(pdfやepsなど)がおすすめです。 \n", - "(それか、高解像度でjpegやpngを作ってスライドで使って、誰かにスライドを渡すときは軽量化する) \n", - "プレゼンで図が滲んでいるスライドを見せていると「あぁ配慮が足りないんだな」と思われて損をしてしまうかもしれません。 \n", - "論文でラスタ画像を使う場合は「トンデモ論文だと思われて誰にも読まれない危険性」を理解して使いましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WHPD2iPs0JlX" - }, - "source": [ - "**練習**\n", - "これまでの(棒グラフ,円グラフ,1次元図,散布図)のグラフを描画したコード部分で、 \n", - "データを自由に足してみながら、plt.show()を書き換えてファイルに出力してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "IOyDWeNzUzou" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FS7A2eX6daYK" - }, - "source": [ - "### gifアニメーションの作成" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "u5BC24cadfQH" - }, - "source": [ - "「なんだこの程度のグラフならExcelでも簡単にできるじゃん...」と思った皆さんのために、もう少し凝ったことをやってみましょう。 \n", - "gifアニメーション(パラパラ漫画)を作ってみます。 \n", - "\n", - "以下のリンクに、x軸をGDP,y軸を24歳から35歳の平均就学年数の女性/男性比(%)としたグラフを画像ファイル(png)にしたものを公開しました。 \n", - "(もともとのデータはFACTFULNESSから来ているのでライセンスフリーです) \n", - "https://drive.google.com/drive/folders/1kD0Sk8EL-JSDJv-V8Bim3UytNSlofc6s?usp=sharing\n", - "\n", - "1. まずこれをダウンロードしてください。\n", - "2. ZIP形式で保存されるので、それを解凍してください\n", - "3. 解凍したフォルダを自身のGoogle Driveの好きな場所にアップロードしてください \n", - "※以下のコードをそのまま使いたければ```AdDS```というディレクトリを作ってその下にアップロード\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qH7GKz_yfRhO" - }, - "source": [ - "たとえば私のようにGoogle Driveのマイドライブ直下のAdDSというフォルダの下に \n", - "GDPvsWomenInSchoolというフォルダを置いたとします\n", - "\n", - "参考スクリーンショット(ディレクトリ名が古い(AdDS2021)ので注意): \n", - "![](https://drive.google.com/uc?export=view&id=12v-XLgCHTpOehkJ2pmJIZ7zcaGIH4OZv) \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "C79BzM_hhBT3" - }, - "source": [ - "年代ごとに別々になったたくさんのグラフを、1つのパラパラ漫画にまとめてみましょう\n", - "\n", - "先程のグラフがgoogle driveに保存されているかどうかは、以下のコマンドで確認できます(アップロードして直後はファイルが見つからないことがあります)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "uFfxkEk-hGsO" - }, - "outputs": [], - "source": [ - "!ls ./drive/MyDrive/AdDS/GDPvsWomenInSchool/*.png" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8k2AXhuTfqJF" - }, - "source": [ - "AdDS/GDPvsWomenInSchool/の部分は皆さんのフォルダ名に適宜変更してください.\n", - "\n", - "pngファイルをまとめてgifにするコードは以下のとおりです。(処理にしばし時間がかかります)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Uqdk5CaBdgJi" - }, - "outputs": [], - "source": [ - "from PIL import Image\n", - "import glob\n", - "\n", - "files = sorted(glob.glob('./drive/My Drive/AdDS/GDPvsWomenInSchool/GDPvsWomen*.png')) ##まとめたいpngをワイルドカードで指定\n", - "images = list(map(lambda file: Image.open(file), files))\n", - "\n", - "oupf = './drive/My Drive/Colab_pic/GDPvsWomen.gif' ##出力名と保存場所を指定する\n", - "images[0].save(oupf, save_all=True, append_images=images[1:], duration=400, loop=0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eiu1iJjEokt6" - }, - "source": [ - "エラーが出なければおそらく変数```oupf```で指定した場所に、gifファイルが生成されていると思います。\n", - "\n", - "\n", - "私の作成例([ファイルへのリンク](https://drive.google.com/file/d/1Y4EkRP3U-aUcziBOoHyxuBZWbT7ZGL-k/view?usp=sharing))は以下のとおりです \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7rVhvZASjDPK" - }, - "source": [ - "### $\\clubsuit$おまけ\n", - "\n", - "その他のグラフ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "9nJ-tBtxjFJ2" - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "from mpl_toolkits.mplot3d import axes3d\n", - "from mpl_toolkits.mplot3d.axes3d import get_test_data\n", - "import os\n", - "\n", - "X, Y, Z = get_test_data()\n", - "fig = plt.figure(figsize=(10,5))\n", - "ax = fig.gca(projection='3d')\n", - "ax.set_xlabel(\"x\")\n", - "ax.set_ylabel(\"y\")\n", - "ax.set_zlabel(\"target function\")\n", - "ax.view_init(elev=45)#上から見た角度を調整できる\n", - "ax.plot_surface(X, Y, Z,cmap=plt.cm.viridis)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c34ap-zmHd5s" - }, - "source": [ - "二次元ヒストグラム" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "n00yqPx9Hf1E" - }, - "outputs": [], - "source": [ - "import matplotlib.cm as cm\n", - "import numpy as np\n", - "\n", - "mu1 = [ 3.0, 2.0]\n", - "cov1 = [ [1.0, 0.7],[0.7,1.0]]\n", - "numS = 50000\n", - "\n", - "sample1 = np.random.multivariate_normal(mu1,cov1,numS)\n", - "x1, y1 = sample1.T\n", - "\n", - "fig = plt.figure(figsize=(6,5))\n", - "ax1 = fig.add_subplot(111)\n", - "H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet)\n", - "ax1.scatter(mu1[0],mu1[1],color=\"k\",marker=\"x\")\n", - "ax1.set_title('sample1')\n", - "ax1.set_xlabel('x'); ax1.set_ylabel('y')\n", - "fig.colorbar(H1[3],ax=ax1)\n", - "plt.show()\n", - "plt.close()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n2vmy-cwzHVi" - }, - "source": [ - "日本地図" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "eFGbkhOQzH27" - }, - "outputs": [], - "source": [ - "!pip install japanmap\n", - "from japanmap import pref_names,pref_code,groups,picture\n", - "import matplotlib.pyplot as plt\n", - "from pylab import rcParams" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "KkH_HRkYMmUw" - }, - "outputs": [], - "source": [ - "plt.figure(figsize=(6,6))\n", - "plt.imshow(picture({'栃木県': 'red', '群馬県': 'blue'}))" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter4_Matplotlib.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter5_Probability.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter5_Probability.ipynb deleted file mode 100644 index 03f78a7e..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter5_Probability.ipynb +++ /dev/null @@ -1,1684 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 確率と疑似乱数\n", - "\n", - "[この章の目的]\n", - "コンピュータで確率・乱数を扱う概要を学ぶ。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OgC7tgxYLNx4" - }, - "source": [ - "この章では、確率と擬似乱数について扱います。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4rzt6Nw35wtJ" - }, - "outputs": [], - "source": [ - "#ライブラリをインポートしておきましょう\n", - "import random\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8Pc1kC3ELQF3" - }, - "source": [ - "## 疑似乱数について\n", - "\n", - "コンピュータで何かの処理を実現したいときや、自然科学や統計学などで様々なことをシミュレーションしたいとき、[確率的な事象]を考えたくなることがよくあります。 \n", - "\n", - "たとえば人◯ゲームや◯鉄のようなゲームを作るときにもサイコロの出目が必要になりますし、技が急所に当たる確率や色違いのポ◯モンが出現する確率などを設定しなければなりません.\n", - "\n", - "真に理想的なサイコロならば1から6の目が出る確率は等しく1/6ですが、このような\"理想的な\"サイコロは、現実世界でも、コンピュータの上でも実現することはできず、我々人間が乱数をシミュレーションして扱う際には、何らかの確定的な方法で乱数列(**十分ランダムだとみなせる数の集合**)を生成することになります。\n", - "\n", - "真の意味での乱数と区別する意味で、我々が普段ゲームなどで扱う乱数は擬似乱数と呼ばれるべきものです。以下ではめんどくさいので、単に乱数と呼ぶことにします。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EDPi_vGwQ3lb" - }, - "source": [ - "**$\\clubsuit$ 細かな注**\n", - "\n", - "乱数を生成する方法はいくつもあるが代表的なものはメルセンヌツイスタと呼ばれる方法で、多くのプログラミング言語でも採用されている。\n", - "```{margin}\n", - "ちなみにモンテカルロはカジノで有名なモナコの地名Monte Carloに由来。\n", - "```\n", - "また[モンテカルロ法]と検索すると(主に学術的な分野で)乱数がどのように活用されているか、雰囲気を味わうことができます。 \n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "DeY7-UhTPrpm" - }, - "source": [ - "## Pythonでの乱数生成\n", - "\n", - "Pythonでは`random`モジュールを使えば簡単に乱数を使用することができる。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Jz-0jgJnLG3L", - "outputId": "6b61c6b6-c249-4413-8223-49fa276e3826" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "random.randint(1,6)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "b1m6sjIoLJTu" - }, - "source": [ - "のように`random.randint(最小値,最大値)`とすると指定した閉区間の整数値をランダムに生成することができる。 \n", - "上のコードセルを実行するたびに答えが変わること(ランダム性)も確かめよう。\n", - "\n", - "今の場合、最小値に1、最大値に6を採用したことで、この乱数をサイコロの出目とみなすことができる。 \n", - "(```range```などと違い、最大値の6も含まれていることに注意! 紛らわしい...。)\n", - "\n", - "100個のサイコロの出目を保持しておきたければ、2章で学習したリスト内包表記を用いて" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "zc0Q1VTiLoRU", - "outputId": "ffaced8e-d9de-42f0-d871-2865312c788c" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 4, 5, 3, 4, 2, 2, 5, 5, 6, 1, 2, 6, 3, 2, 4, 3, 6, 6, 5, 5, 6, 4, 4, 2, 3, 3, 5, 4, 6, 6, 6, 6, 4, 3, 2, 1, 5, 6, 4, 3, 2, 5, 2, 6, 4, 3, 6, 1, 3, 5, 2, 6, 3, 2, 3, 3, 3, 1, 4, 1, 5, 2, 6, 4, 4, 4, 3, 2, 3, 6, 6, 3, 1, 2, 6, 1, 3, 1, 6, 2, 5, 2, 6, 5, 2, 1, 1, 4, 1, 2, 3, 1, 2, 5, 2, 3, 6, 2, 3]\n" - ] - } - ], - "source": [ - "a = [random.randint(1,6) for i in range(100)]\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y7fYRqZyM6R5" - }, - "source": [ - "などとすればよい。$10^p$回 ($p=1,2,...,6)$回サイコロを振った場合の出目をそれぞれヒストグラムにしてみると... \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 353 - }, - "id": "wXlYsFMLSRBo", - "outputId": "d8defd9e-3de9-433f-8a90-84684107b1c1" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# サンプルの数を指定し、それぞれのサイコロの出目を用意して入れ子のリストにする\n", - "ps = [1,2,3,4,5,6]\n", - "Ns = [10**p for p in ps ]\n", - "results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ]\n", - "\n", - "# ヒストグラムのビンの始点,終点,ステップを定義\n", - "tbin = np.arange(0.5,7.5,1) \n", - "\n", - "# 作図 (axを用いて、一つのグラフに6つの領域を用意して作画する)\n", - "# add_subplit(n,m,i)で、縦n個, 横m個の領域を用意した場合の i番目(列方向,行方向の順番にカウントする. a行b列の小領域は i = (a-1)*m + b)\n", - "fig = plt.figure(figsize=(20,5))\n", - "axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1 ) ] #データの個数に応じて小領域の数を自動で変えたい場合は\"(2,3\"部分の工夫が必要。\n", - "for i in range(len(axs)):\n", - " axs[i].set_xlabel(\"Roll\")\n", - " axs[i].set_ylabel(\"Count\")\n", - " axs[i].set_title(\"$n=10^\"+str(ps[i])+\"$\") #$$で囲むとlatex表記を用いることができる\n", - " axs[i].hist(results[i],bins=tbin,rwidth=0.5) #ヒストグラムを描画\n", - "#グラフ間の縦の間隔hspaceをdefault値(0.3)から少し大きく調整\n", - "plt.subplots_adjust(hspace=0.45) \n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y-fe9b34H3Vf" - }, - "source": [ - "1-6の出る目の頻度が確率から期待される振る舞いに漸近していく事がわかる. c.f. 大数の法則" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eG-f9mSG2BzL" - }, - "source": [ - "今のようなサンプル数が大きく異なるヒストグラムを比較する場合、縦軸のスケールを揃えて比較するほうが良い。**相対的な頻度**になおしてみよう。 \n", - "そのためには、```density```というオプションをオン(`True`)にするか、明示的に各サンプルの\"重み\"を```weights```でリスト(`ndarray`)として与える。\n", - "\n", - "後者は確率分布などを扱うときに便利なオプションとなるが、この授業では扱わない。 \n", - "```density=True```は\"各サンプルの重みを等価にする\"という```weights```の特別な場合に相当する. \n", - "つまりサンプル数が$N$ならweights=[すべての要素が$1/N$の配列(リストやndarray)]とするのと等価。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 353 - }, - "id": "p30xWe7Y16zV", - "outputId": "fef2f58e-baa3-4928-d145-18acd82f60d3" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ps = [1,2,3,4,5,6]\n", - "Ns = [10**p for p in ps ]\n", - "results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ]\n", - "tbin = np.arange(0.5,7.5,1) \n", - "fig = plt.figure(figsize=(20,5))\n", - "axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1) ]\n", - "for i in range(len(axs)):\n", - " axs[i].set_xlabel(\"Roll\")\n", - " axs[i].set_ylabel(\"Count\")\n", - " axs[i].set_title(\"$n=10^\"+str(ps[i])+\"$\") \n", - " axs[i].hist(results[i],bins=tbin,rwidth=0.5,density=True) #density=Trueオプションを指定\n", - " axs[i].plot([1,6],[1/6,1/6],color=\"gray\",linestyle=\"dashed\") #ココを追加した\n", - "plt.subplots_adjust(hspace=0.45) \n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mv4HquL-oEeb" - }, - "source": [ - "\n", - "---\n", - "\n", - "以下では、`random`モジュールのよく使う(?)機能をいくつか紹介する." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JULqiaqvQ1xs" - }, - "source": [ - ">また、`numpy`にも```numpy.random```という下位のモジュールがあるので、 `random`を`numpy.random`としても多くの場合では互換性がある。```import numpy as np```とあだ名を使うなら`random`を`np.random`に置き換えて試してみよう。 \n", - "※ `randint`の場合は、`np.random.randint`だと終点を含まないなど、微妙な違いがあるので注意。モジュールの使い方や実装については[公式Document](https://numpy.org/doc/stable/reference/random/generated/numpy.random.randint.html?highlight=randint#numpy.random.randint)を参考にすること。これは`numpy`に限らない。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "obMICxycf5C7" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LzCSWKWDRucl" - }, - "source": [ - "## 無作為抽出" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UgwUfAjUoNuu" - }, - "source": [ - "リストやrangeなどからランダムに要素を選びたいときには```random.choice```が便利だ。 \n", - "(たとえば[出席番号のリストからランダムに選ぶ]などをイメージしよう) \n", - "\n", - "ループに入れて5回くらい実行してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "7FZXoHS2M7G9", - "outputId": "a7c84ce0-f365-4114-e01a-2619f6fe7abc" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a=> 6 \tb=> 75 \tc=> 日本\n", - "a=> 1 \tb=> 13 \tc=> アメリカ\n", - "a=> 1 \tb=> 88 \tc=> 中国\n", - "a=> 6 \tb=> 10 \tc=> 中国\n", - "a=> 1 \tb=> 98 \tc=> 日本\n" - ] - } - ], - "source": [ - "for i in range(5):\n", - " ## 引数(リスト)からランダムに要素を抽出する\n", - " a = random.choice([1,3,5,6]) \n", - "\n", - " ## 引数(range,0から99)からランダムに要素を抽出する\n", - " b = random.choice(range(100)) \n", - "\n", - " ## 引数(リスト)からランダムに要素を抽出する\n", - " c = random.choice([\"日本\",\"アメリカ\",\"中国\"]) \n", - " \n", - " print(\"a=>\", a, \"\\tb=>\", b, \"\\tc=>\", c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "y-PR19-BQsjw" - }, - "source": [ - "「0から99までの100個の整数値から重複を許さずに10個選びたい」といった場合は、\n", - "```numpy.random```の```choice```関数を使うのがよい。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "XStnPUmjQ1KC", - "outputId": "8e676f8f-f6d1-4837-c37d-3a198bcb5b6b" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([86, 28, 99, 31, 17, 92, 89, 50, 76, 69])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "np.random.choice(range(100),10,replace=False) # replace = True/Falseで重複を認めるかどうかを指定できる " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kBUApMPPotU-" - }, - "source": [ - "(上の関数の`replace=True` or `replace=False`を変えて何回か実行してみて、抽出された数に重複があるかどうかを確かめてみよう)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_zRfhX355dSk" - }, - "source": [ - "ちなみに選んだものをソートしたければ以下のようにする:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "mbRw7qky5g6N", - "outputId": "bfb5fe6c-5a80-4243-dfa6-707b133dd84e" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0, 13, 17, 36, 48, 49, 75, 84, 96, 97]\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "sorted_array = sorted( np.random.choice(range(100),10,replace=False) )\n", - "\n", - "print(sorted_array)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Sb2yCyYhRrT_" - }, - "source": [ - "## 一様分布からの乱数生成\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sirCg9xiKY5U" - }, - "source": [ - "上記のような離散的な乱数とは異なり、連続的な数について乱数が必要になる場合もある。\n", - "\n", - "その一つの例である一様乱数は、ある\"有限\"区間での確率(密度)が等しい確率に従う乱数で、 \n", - "```random.uniform()```関数を使えば、指定した区間での一様乱数を生成することができる。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "qk74yCgrUAcR", - "outputId": "7cedd8d8-18e5-4777-8d00-b5dd0e59eecd" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3.6791118523291146" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "random.uniform(1,10) #[1,10)または[1,10]からの一様乱数 (randomモジュールでは半開区間/閉区間どちらになるかはroundingに依存するらしい)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "utoYGaTWo2KQ" - }, - "source": [ - "xとyの値を[-1,1]の範囲でランダムに10000サンプル生成してplotしてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 336 - }, - "id": "7V2JoDACo88B", - "outputId": "4dc89e14-0649-461f-f5ce-d097c80f5d97" - }, - "outputs": [ - { - "data": { - "image/png": "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J9RPjDum6PV9nEf9hEU7EhERERERERERqSgNtRMRERERERERkapQ4klERERERERERKpCiScREREREREREakKJZ5ERERERERERKQqlHgSEREREREREZGqUOJJRERERERERESqQoknERERERERERGpCiWeRGrIzOaY2Wtm9h4zu8jMdpjZdfWOS0REGoP6CRERKcfMvmFm/y14/YCZ/Wk9YxIZiznn6h2DyHnFzP4n8B7gPwP7nXN/WeeQRESkgaifEBGRUsxsGrDWOfdhM2sC3gDmOud+UdfARMpQ4kmkxsxsAtAP/Adwg3Pu3TqHJCIiDUT9hIiIlGNmzwP/A7gC+JJz7tY6hyRSVnO9AxA5D70XuBj4T+T/RfvX9Q1HREQajPoJEREp5/vA54GpwA/qG4rI2FTxJFJjZrYeeAKYDrQ451bVOSQREWkg6idERKScqDJ2G/l/oLhGlbHS6FTxJFJDZvY54DfOub8zswuAzWa2yDm3sd6xiYhI/amfEBGRsTjnTprZi8ARJZ3kbKCKJxEREREREZGzRDSp+L8Cn3LOvVHveETG0lTvAERERERERERkbGY2E9gDbFDSSc4WqngSEREREREREZGqUMWTiIiIiIiIiIhUhRJPIiIiIiIiIiJSFUo8iYiIiIiIiIhIVSjxJCIiIiIiIiIiVaHEk4iIiIiIiIiIVIUSTyIiIiIiIiIiUhX/H5T5IkaeiJfGAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "num = 10000\n", - "xs = [ random.uniform(-1,1) for i in range(num)]\n", - "ys = [ random.uniform(-1,1) for i in range(num)]\n", - "\n", - "# 3つの領域に、散布図・xのヒストグラム・yのヒストグラムを描く\n", - "fig = plt.figure(figsize=(20,5))\n", - "axs = [fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)]\n", - "axs[0].scatter(xs,ys,color=\"green\",s=0.5,alpha=0.4) \n", - "axs[0].set_xlabel(\"x\");axs[0].set_ylabel(\"y\")\n", - "axs[1].set_xlabel(\"x\");axs[1].set_ylabel(\"count\")\n", - "axs[2].set_xlabel(\"y\");axs[2].set_ylabel(\"count\")\n", - "axs[1].hist(xs,bins=50,ec=\"w\") #xのヒストグラム (binの数50はいい加減に選んだ)\n", - "axs[2].hist(ys,bins=50,ec=\"w\") #yのヒストグラム 同じく\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lMYjaSEPc6NC" - }, - "source": [ - "**$\\clubsuit$** 散布図とヒストグラムをまとめて描く\n", - "\n", - "もうちょっとかっこよく描きたければ`seaborn`というモジュールの`jointplot`を用いると良い。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 497 - }, - "id": "C4rRe6-AdOHa", - "outputId": "82de3397-78e0-4c1c-fda6-6f4cba78ee0e" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", - " FutureWarning\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbcAAAGoCAYAAADFF6ulAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9fXBd13Uv9jsWSeC+hLy8qRSRMmzDstKSniKkQzokX+iYSSqZTvxsF+Wb1mFVCorHvs+NIDJTGa/SmJbpjhNEnQeQnufeqBlCjIYvqs1i7DzZpqVniQ75QmiEVBRRh0xii3gOFNGVy5tLuQZAUz7942IdrrPOWnvviw+KAvZvBgPgnH32Xvtzfey1107SNEVERERERMRiwlveaAIiIiIiIiLmG5G5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw7L3mgCZono4hkREbGUkbzRBNzoiJpbRERERMSiQ2RuERERERGLDpG5RURE4La33YYkSVr+ue1tt73RpEdEqEjepBFK3pRELwRue9tteGXilZa/W9uxFv/4D/+44GXNppyI648kSbDjsR0tf3finhN4k64hb3bEPTcP3qwOJREzeGXilVkvStejrNmUM1tcL+Z7PQWKiIiI2SEyt4hFg+vFfK+nQLEYMRvh4C3L34Kf/fRnLZcVBYqli8jcbiDMViNYjLhubfGWpkluMeFGH0ezFUKiQBHRCiJzC8D1lDRvZLPf9cR1M4H+bPG1+XU1Hy9C4WA2iPvRNx4icwvA9ZI0r+uieb0Wpbj4LW7c6MLBLMbfbJjOjb4fvRSxpJjbjW6uua64XovSLMqZdVk3Omax0M7WAhAxgxud+UYsGJYUc4uOABFvKGa50MbF+TojWhsWBZYUc4uIiIjwImp7iwIxQklERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw6RuUVERERELDpE5hYRERERsegQmVtERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw6RuUVERERELDpE5hYRERERsegQmVtERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw6RuUVERERELDpE5hYRERERsegQmVtERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6JCkafpG09AykiQ5DuDmWXx6M4AfzTM5c8WNRtONRg9w49F0o9ED3Hg03Wj0ADceTXOh50dpmu6cT2IWG96UzG22SJJkNE3TzW80HRw3Gk03Gj3AjUfTjUYPcOPRdKPRA9x4NN1o9Cw2RLNkRERERMSiQ2RuERERERGLDkuNuT36RhOg4Eaj6UajB7jxaLrR6AFuPJpuNHqAG4+mG42eRYUltecWEREREbE0sNQ0t4iIiIiIJYDI3CIiIiIiFh0ic4uIiIiIWHSIzC0iIiIiYtEhMreIiIiIiEWHNyVz27lzZwog/sSf+BN/lupPMBb5emniTcncfvSjGyk8XERERMSNi6W6Xr4pmVtERERERIQLkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw7zwtySJDmcJMn/kyTJ/228T5IkOZQkyfeSJDmbJMmvsHd7kiT5+5mfPfNBT0RERETE0sZ8aW6PAdjpeP9BAL808/MJAP8bACRJ8gsAPgtgC4BfBfDZJEkq80RTRERERMQSxbwwtzRN/xLAJUeSjwD4s7SJEQCrkyRZC+ADAJ5O0/RSmqZ1AE/DzSQjIiIiIiK8uF57bm8F8A/s/4mZZ9bzBUV9sv6GpFsIyLLrk3UnPfRuLjRrZcrnVprriTeyX643xuvjQf0eAjmGtG9D8vONxeuJ2dBhfePLa+ziWMtlRcw/3jQOJUmSfCJJktEkSUZfffXVWedTn6zj0HOHvBPWlS40P5nnbOkNLbs+WUf/qX4Mjgya9Tv03CGM18ez71qlTyvz0HOHMHZxLJenlsbVRiHtPBc65yO/2X47229C8xyvj6P6ZBUHThxw9nsoQxocGUT/qX61LykN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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import seaborn as sns\n", - "sns.jointplot(xs,ys,color=\"green\",s=2,alpha=0.5)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GfCEsChab-8L" - }, - "source": [ - "### じゃんけん関数\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N53MCJmFcCOH" - }, - "source": [ - "乱数を使ってじゃんけんをする関数を作ってみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "PpBWvAI4gMT-" - }, - "outputs": [], - "source": [ - "def Janken( ): \n", - " r = [\"グー\",\"チョキ\",\"パー\"]\n", - " return r[random.randint(0,2)] " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "H5AqdOWPhvu1", - "outputId": "176292e9-259c-4812-cb65-38f8ac8255a1" - }, - "outputs": [ - { - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'チョキ'" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "Janken()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "9v7W2jAYWcjq", - "outputId": "d71b3607-e10d-410e-a023-b6f43770287b" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "パー\n", - "パー\n", - "パー\n", - "グー\n", - "パー\n" - ] - } - ], - "source": [ - "#あるいは、手を0,1,2として計算する関数とじゃんけんの手に反映させる部分を分けても良い\n", - "\n", - "def Janken():\n", - " return random.randint(0,2)\n", - "RPS = [\"グー\",\"チョキ\", \"パー\"] #integer to Rock-Paper-Scissors\n", - "\n", - "#5回手を表示させてみる\n", - "for i in range(5): \n", - " print(RPS[Janken()])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qWL3blMmgUz0" - }, - "source": [ - "今の場合```Janken()```は、単に1/3の確率で手を選ぶ関数ですが、これを拡張していけば確率を1/3から変動させたじゃんけんの実装もできます。 \n", - "たとえば、0から1の区間から一様乱数を発生させて、ある領域に含まれたらグー、ある領域に含まれたらチョキ、残りはパー、とすればよいですよね?\n", - "\n", - "じゃんけん関数を工夫したり、サザ◯さんやドラ◯もんのじゃんけんのパターンを解析することで、 \n", - "毎週土曜や日曜にドラ◯もんやサザ◯さんを倒す関数を作ってみるのも面白そうです。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AuCckqr2i5jE" - }, - "source": [ - "### $\\clubsuit$一様乱数を用いた円周率の計算\n", - "\n", - "プログラミングでド定番の、乱数を使って円周率を求める方法も \n", - "Pythonならサクッと実装することができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "6TEeSxCVjJt6", - "outputId": "bd0afdda-67b5-4547-bde4-18a06023d5d4" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3.13704" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def pi_approx(p):\n", - " num = 10**p\n", - " x = np.random.rand(num)\n", - " y = np.random.rand(num)\n", - " return 4*np.sum(x*x+y*y < 1.0) / num\n", - "\n", - "pi_approx(5) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QegeQ0ycjXxC" - }, - "source": [ - "このコードでは、$10^p$組の一様乱数を発生させて、 \n", - "円弧の中に入った個数/全体の数(num)で割ることで円周率を求めています。 \n", - "(1/4円の面積は$\\pi$/4で、正方形の面積が1であることを使う) \n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dNBjTYMDlKEv" - }, - "source": [ - "乱数により生成するサンプルの数を増やしていって、精度が改善する様子を見てみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 372 - }, - "id": "rr99Qw8xlKUW", - "outputId": "cd5c524a-ba4e-4315-e611-c6d165f7c8c4" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "p= 1 \t pi_approx 2.8 log10(abs(diff)) -0.46649147797051027\n", - "p= 2 \t pi_approx 2.92 log10(abs(diff)) -0.6544446417698763\n", - "p= 3 \t pi_approx 3.1 log10(abs(diff)) -1.3809833709877704\n", - "p= 4 \t pi_approx 3.1316 log10(abs(diff)) -2.000319167792708\n", - "p= 5 \t pi_approx 3.1458 log10(abs(diff)) -2.3759917290460537\n", - "p= 6 \t pi_approx 3.140808 log10(abs(diff)) -3.105322034013356\n", - "p= 7 \t pi_approx 3.1410364 log10(abs(diff)) -3.254727173274235\n", - "p= 8 \t pi_approx 3.14153816 log10(abs(diff)) -4.263654581782899\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmAAAADUCAYAAAA7r5+aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deZxU1Z338c+vu6t6oxcaaIReWGRxoVGWbjW4o2KiowRUUJPRJEaNWSaTPE7iY2aSyYyPyfBkG+fRRLOMkxjBhbgiGDQuMQrNIjQIiILQCzv0Qu/Lef6o6pXel7rV3d/369Wvrrr3VtWP46X8cu6555hzDhEREREJnQivCxAREREZbhTAREREREJMAUxEREQkxBTAREREREJMAUxEREQkxBTAREREREIsyusCemL06NFu4sSJXpchIiIi0qWNGzcedc6NaW/foApgEydOZMOGDV6XISIiItIlM9vX0T5dghQREREJMQUwERERkRAbVJcgB9JzmwtZtmYXRcWVjE+O5d4F01k4K83rskRERGQIUgAjEL7uW5lHZW09AIXFldy3Mg9AIUxERET6nS5BAsvW7GoKX40qa+v50Ss7qatv8KgqERERGarUAwYUFVe2u/1gaRXTvvcKo0dEMzYxhrGJ0aQmxjA2IfB4bGIMqcHfKXF+IiIsxJWLiIjIYKQABoxPjqWwnRCWFOvjtgsmcKi0mkNlVRQWV7F5fzHHymtOOTYqwkhNiGZMYgxjE9oEtuDjsQkxJMf5MFNQExERGc4UwIB7F0xvNQYMINYXyb9ed3a7Y8Bq6ho4crKaQ6VVHC6tCgS04O/DZVXsO1bB+k+OU1xRe8pr/ZERTb1mYxOjSU0I9qIlxLQKbYkxUQpqIiIiQ5QCGM0D7bt7F6Q/KoK05FjSkmM7fd+q2nqOlDWHs0OlVRwqq+Jw8PGug2W8vfsoZVV1p7w2xhcRCGQJMa0C29jEGFITmoPaiGj9JxQRERlszDnndQ3dNnfuXDcUZ8KvqKlrCmWHyqqDvWrNoe1wWTUHS6pOuVEAIN4f2WosWiCgNT9u7GWL9Ud68CcTEREZvsxso3Nubnv71H0SBuL8UUwcHcXE0fEdHuOc42R1XdNlzsMtLnsGetUC49MOlVZRXXfqnZuJMVGtAlpqix61lpdCo6M6DmqaK01ERKR/KIANEmZGQoyPhBgfU1JHdHicc47SyjoOlVW1GpfWHNiqWLe3nMNlVdTWn9r7OTLOF+xRa76ZIDUxmr1Hy/njuv1N4U5zpYmIiPSeAtgQY2YkxflIivMxbWxCh8c1NDiKK2ubQtnhFmPUAqGtmt2HyjhcVk19Q/uXqStr61m2ZpcCmIiISA8pgA1TERFGSryflHg/Z45L7PC4+gbH8fIach5YS3sxrLC4kr/sPMzF08YQqXnQREREukUBTDoVGWGMSYjucK60CIMv/Hcu45JiuHFuBjfOSScjJc6DSkVERAYPLUUk3XLvgunE+loP0I/1RfIfi2fyyK2zmTY2gYde383Fy/7C53+zjpe3HqCmnZsBRERERD1g0k1dzZX26axxFBZX8vSGfJ7Kzeerf9xESryfxbPTWJKdwZTUjsejiYiIDDeaB0z6XX2D4+3dR1iRm8+fPzhEXYNj7oSRLMnO4JqZ44jzK/eLiMjQ19k8YApgMqCOnqxm5aYClufms+dIOQnRUVx37niWZmcyIy1Ryy2JiMiQpQAmnnPOkfvJCZbn7mdV3gGqahs4a1wiS3MyuP7cNJJifV6XKCIi0q8UwCSslFTW8sKWIpav38/2olKioyK4JmscS7IzyJmUol4xEREZEhTAJGxtKyxhee5+nt9cRFl1HZNHx3NTdgaLZ6czJiHa6/JERER6LewCmJndCPwAOBPIcc51K1UpgA1dlTX1rMo7wPLc/eR+coKoCOOKM8eyJCeDi6dqklcRERl8wnEx7m3AIuBXHn2+hJlYfySL56SzeE46Hx0+yVMb8nl2YwGrtx9smuT1prnppI/UJK8iIjL4eXoJ0szeAP6XesCkPTV1Dby24xBP5ubz9u4jAFw0dQxLszO44syx+KM0j7CIiISvcOwBE+mSPyqCT2eN49NZ4yg4UcHTGwp4ekM+9zyxiVHxfhbNTmNJdiZTUkd4XaqIiEiPDFgPmJmtBU5rZ9f9zrnng8e8QRc9YGZ2J3AnQGZm5px9+/YNQLUyWDRO8rp8fT5rdwQmec2eOJIl2ZlckzWOWH9k128iIiISAmE3CL/pw3UJUvrgSFlgktcVufnsOdo8yevNOZnMSEvyujwRERnmdAlShqQxCdHcdcnp3Hnx5MAkr+v388zGAp5Yt5+zxyeyNDuD6zTJq4iIhCGvpqH4LPAQMAYoBt53zi3o6nXqAZOulFTW8sL7hTy5Pp8PDpQS44vgM1njWJqdSfbEkZrkVUREQiZsL0H2lAKY9MS2whKeXL+fF95vnuR1SXYGizTJq4iIhIACmAxrFTV1rMo7yIoWk7xeedZYlmRncJEmeRURkQGiACYS9NHhMlbk5vPspkKOl9cwPjjJ642a5FVERPqZAphIGzV1DazdcYjlLSZ5vTg4yet8TfIqIiL9QAFMpBP5xyt4emNgktcDJVWMivezeE46N83N0CSvIiLSawpgIt1Q3+B4a/cRVrSY5DVnYgpLsjP4jCZ5FRGRHlIAE+mhw2VVrNxUyIrcfPYGJ3m9ftZ4lmZrklcREekeBTCRXnLOsX7vcVbk5vNy3gGq6xqYkZbIkuxMrj93PIkxmuRVRETapwAm0g9KKmp5fktgktcdLSZ5vTknk7kTRvL8+0UsW7OLouJKxifHcu+C6SycleZ12SIi4hEFMJF+5JxjW2Epy3P38/z7RZysrmNMgp8T5bXUNTT/fYr1RfLgoiyFMBGRYaqzAKZ77UV6yMzISk/igc9msf7++Sy7YSYlFXWtwhdAZW09y9bs8qhKEREJZwpgIn0Q54/ixrkZ1NY3tLu/sLiSl7YWUVFTF+LKREQknEV5XYDIUDA+OZbC4spTtkcYfO2Pm4nxRXD5Gal8Jmscl5+RSpxff/VERIYz/V9ApB/cu2A6963Mo7K2vmlbrC+SBxbOYPzIWFblHWBV3kFW5R1UGBMREQ3CF+kvz20u7PQuyPoGR+4nx3l56wFe2XaQoyerFcZERIYw3QUpEmbqGwLzi63KOzWMXZM1nsvOGKMwJiIyyCmAiYSx1mHsAEdP1hDri2zqGVMYExEZnBTARAaJxjD2cl4Rq7cdVBgTERnEFMBEBqHOwtg1M8dx2fRULRAuIhLG+hzAzCwFwDl3vJ9r6xEFMBmu6hsc6/YeY1XeAYUxEZFBolcBzMwygf8A5gPFgAGJwOvAd51znwxItZ1QABPpJIydmco1WQpjIiLhorcB7F3g58Azzrn64LZI4Ebgm8658weo3g4pgIm01hjGXt56gDXbFcZERMJJbwPYbufc1J7uG0gKYCIdq6tvCI4ZOzWMXZs1jksVxkREQqq3AWw5cBx4HMgPbs4AbgNGO+duGoBaO6UAJtI9LcPY6m0HOVauMCYiEmq9DWB+4EvA9UDjdN4FwIvAb5xz1QNQa6cUwER6rr0wFucPDuBXGBMRGTCahkJEgOYw9lLeAdYojImIDKh+D2Bm9i/OuR/2ubIeUgAT6T919Q2saxwz1iaMXTszEMZifApjIiK9NRABbL9zLrPPlfWQApjIwOgojM0/cyzXZJ2mMCYi0gu9HQNW2tH7AbHOuZCvh6IAJjLwWoax1dsOclxhTESkV3obwPYD2c65Q+3sy3fOZfRvmV1TABMJrcYw9lJwnjGFMRGR7ussgHXWi/U/wATglAAG/LE/ChOR8BYVGcG8KaOZN2U0/3b92by3p3mesRe3FBHvj+TyM8cGB/CPURgTEekmT+6CNLNlwN8BNcDHwBecc8VdvU49YCLhoa6+oVUYO15eQ3ywZ+wzCmMiIkAfB+Gb2ex2NpcA+5xzdb0s6CrgdedcnZn9GMA5952uXqcAJhJ+Woax1dsOcKKitsMw9tzmQpat2UVRcSXjk2O5d8F0Fs5K6+ITREQGp74GsPeA2cBWAgPwZwDbgSTgK865V/tY3GeBG5xzt3Z1rAKYSHhrDmNFrN52sFUYGzXCz5Pr91NV29B0fKwvkgcXZSmEiciQ1NcAthL4Z+fc9uDzs4AfAv8ErHTOndvH4l4EVjjn/tDVsQpgIoNHXX0D7+45xqrg3ZQnKmrbPS4tOZZ3vnt5iKsTERl4fQ1g25xzM9rbZmbvdxTAzGwtcFo7u+53zj0fPOZ+YC6wyHVQiJndCdwJkJmZOWffvn2d1isi4ae2voGp97/S4f7Pnz+BrPQkZqYnMWXMCKIiI0JYnYjIwOjtXZCNtpvZI8Dy4PMlwAdmFg20/09awDl3RRdF3Q5cC8zvKHwF3+dR4FEI9IB1o14RCTO+yAjSkmMpLK48ZZ8/MoI/bS7k9+8F/nEV44vg7PFJZKUFfmamJzF5zAgiIyzUZYuIDJju9IDFAvcAFwY3vQM8DFQBcc65kz3+ULOrgZ8ClzjnjnT3dboEKTJ4Pbe5kPtW5lFZW9+0rXEM2HXnjGfvsXLyCkrYWlBCXmEx24tKqagJHBvnj2TG+CSy0oPBLD2JSaPiiVAoE5Ew1ueliMzMD0wHHLDLOddhz1c3C/oIiAaOBTe955y7u6vXKYCJDG49uQuyvsGx58jJYCArYWtBIJRV1wUG8Y+IjmJGWiIz05ObessmjIrDTKFMRMJDX8eAXQo8DnxC4C7IDOA259xb/Vtm1xTARIa3uvoGPmoMZQUlbC0sYceBUmqCoSwxJirYS5bMzGBvWfrIWIUyEfFEXwPYRuAW59yu4PNpwJPOuTn9XmkXFMBEpK2augY+PFTGtsJAIMsrKGHnwVJq6wPfbclxvqaxZFlpyWSlJzE+KUahTEQGXF8H4fsawxeAc+5DM/P1W3UiIn3gj4pgRloSM9KSWBrcVl1Xz66DZeQFA9nWghJ+9eYe6hoCoWxUvD9w12VaElnpgd6ysYkx3v0hRGTY6U4A22BmvwYa5+m6FVA3lIiEreioSGamJzMzPRnOC2yrqq1nx4HSplCWV1jCWx8eIZjJSE2Ibhrg39hbNiYh2rs/hIgMad0JYF8Bvgp8I/j8bQJ3QYqIDBoxvkhmZY5kVubIpm2VNfV8cKCkaaB/XkEJr+86TOPIjHFJMcxIa+wpC4wpGzVCoUxE+s6Txbh7S2PARGSglVfXsb2olK0FxYFQVljCniPlTfvTkmPb9JQlkRzn97BiEQlXvRoDZmZ5BKadaJdzbmY/1CYiElbio6PImZRCzqSUpm2lVbVsLywlr7C4qbds9faDTfszU+KaeshmpiVxdloSSbEaKisiHevsEuS1IatCRCSMJcb4uOD0UVxw+qimbSUVtWwrap44dkt+MS9vPdC0f9Lo+Kb5ybLSAzcJjIjuzqgPERkOOvw2cM5p0UURkQ4kxfmYN2U086aMbtp2orym6bLl1oJiNnxynBe2FAFgBpNHxzdPHJuexNnjE4nzN38N92SiWhEZ3DQGTERkAB09Wd1qOoy8wmIOlVYDEGEwJXUEWWnJOBwvbz3QNNM/NC/VpBAmMjj1eSmicKEAJiJDweHSqmAvWXNv2dGTNe0em5YcyzvfvTzEFYpIf+jrRKwiItKPUhNjmJ8Yw/wzxwLgnGPyfavaveupsLiSjfuOMztzpGbvFxlCugxgZjYP+AEwIXi8Ac45N3lgSxMRGR7MjPHJsRQWV566D1j8yLtMTR3BkuwMFs1OJyVe016IDHbdWQtyJ/CPwEagvnG7c+7YwJZ2Kl2CFJGh6rnNhdy3Mo/K2qavWWJ9kXz/784CYHluPu/nF+OPjOCqs8dyc04mF0weRUSEesVEwlVfL0GWOOde6eeaRESkhcaB9h3dBbk0J5MdB0pZkZvPnzYX8tLWA2SmxLEkO4Mb56STqrUsRQaV7vSA/QiIBFYC1Y3bnXObBra0U6kHTEQksK7l6m0HWZ67n/f2HCcywrhseio352RwybQxREVGeF2iiNDHuyDN7C/tbHbOuZDflqMAJiLS2t6j5azIzeeZjQUcPVnNaYkx3Dg3nZvmZpCREud1eSLDmqahEBEZ4mrrG3htx2GW5+7nzQ+PAHDhlNEszc7kyrPG4o9Sr5hIqPUqgJnZ55xzfzCzb7W33zn3036ssVsUwEREulZYXMnTG/J5KjefopIqUuL9LJ6dxpLsTKakjvC6PJFho7eD8OODvxP6vyQRERkoacmxfPOKaXz98qm8vfsIy9fn87t3PuGxt/eSMzGFJdkZfCZrHLH+SK9LFRm2dAlSRGQYOFJWzbObCliRm8/eo+UkxESx8Nw0luZkcPb4JK/LExmSNAZMRESAwKz76/YeZ/n6/azadpCaugZmpiexJDuD684ZT0KMz+sSRYYMBTARETlFSUUtf9pcwPLcfHYeLCPWF8m1M8exNCeT2ZnJWvpIpI8UwEREpEPOObYUlLB8/X5e2FJERU0908aOYEl2JotmpTFSSx+J9Eq/BzAzm62JWEVEhp6T1XW8tKWo1dJHV884jaXZGZyvpY9EeqS301BEO+eqO9j3mHPuy/1YY7cogImIhE7j0kcrNxVQWlXHhFFx3DRXSx+JdFdvA9gm59xsM/u9c+7zA1phNymAiYiEXntLH80/I5WlORlcMi2VSPWKibSrt/OA+c3sFuBTZrao7U7n3Mr+KlBERMJXjC+ShbPSWDgrjb1Hy1meu59nNxbw6geHOC0xhpvmpnNTdgbpI7X0kUh3ddYDdiFwK3AT8EKb3c4598UBru0U6gETEQkPgaWPDrE8N7/V0kc352RyxZla+kgEet8DNs459xUz2+yce3SAahMRkUHIFxnB1TPGcfWMca2WPrrniU2MivezeE46S7IzOH2Mlj4SaU93xoBtcs7NDnFd7VIPmIhI+KpvcLy1+wgr1uezdsch6hocORNTWJoTWPooxqelj2R46e0g/D8DDsgG3m673zl3XX8W2R0KYCIig8PhsipWbipstfTRZ2elsTQ7k7PGJ3pdnkhI9DaA+YHZwO+BO9rud8692YeC/g24HmgADgO3O+eKunqdApiIyODinOO9PcdZkdt66aOl2Zlcd+54RkR3NhJGZHDr00SsZjbGOXeknwtKdM6VBh9/AzjLOXd3V69TABMRGbyKK2p4bnNh09JHcf7mpY9mZWjpIxl6ejUI38x+7pz7JvBbMzslpfXlEmRj+AqKJ3CpU0REhrDkOD+3z5vEbZ+a2Grpo6c2FDB9bAJLsjNYNDuN5DgtfSRDX2eXIOc45zaa2SXt7e/LJcjg+z8A/D1QAlzWUS+bmd0J3AmQmZk5Z9++fX35WBERCSONSx89mZvPlvxi/FERXH32aSzNyeD8SVr6SAa3Pq8FaWZjAHpyKdLM1gKntbPrfufc8y2Ouw+Icc59v6v31CVIEZGhq72lj5ZkZ3DDnHRSEwJLHz23uZBla3ZRVFzJ+ORY7l0wnYWz0jyuXKR9vQ5gZvYD4GtABGBAHfCQc+6H/VhcJrDKOTejq2MVwEREhr7GpY+eXL+fdXublz6aOCqO37+3j8rahqZjY32RPLgoSyFMwlJnAazDqYrN7FvAPCDbOZfinBsJnAfMM7N/7GNBU1s8vR7Y2Zf3ExGRoaNx6aMVd13A69++hDsumsSm/Sd49O29rcIXQGVtPT9avZP6Bg0llsGlszFgm4ErnXNH22wfA7zqnJvV6w81exaYTmAain3A3c65wq5epx4wEZHhqba+gan3v9LhfjNIjvWREu9v8RNNSryPlPhoRsX7GRnvb/VbE8PKQOvtUkS+tuELAuPAzMzXl4Kcc4v78noRERlefJERpCXHUlhcecq+pFgft31qIsfLqzlRXsux8mo+OVrBxn3FnKio6bB3LM4fycg4P6NG+AO/g8GtbVBrDHSJMT7dFCD9prMAVtPLfSIiIv3u3gXTuW9lHpW19U3bYn2R/Ot1Z3c4BqyhwVFWVcex8mpOVNRw7GQNx8trOF5Rw/GWj8tr+PjISY6X11BRU9/ue0VGGCPj2vay+UmJC/4eEd38OPijRcmlI50FsHPMrLSd7QbEDFA9IiIi7WoMWT25CzIiwkiK85EU1/0LN1W19YFg1uLnWHkNJ1r8Pl5ew66DZZyoqOVERQ0d3c+WEB3FyDaBrbF3LaVNT9vIeD8J0VF9mpBWd4kOHt2ahiJcaAyYiIiEm/oGR0llLcfLqzl2sibQ09YisLUX5mrqGtp9L39kBCPjfe1cGm0ezzYy3seo+OjA5dI4H1GRgV625zYXtttDqLtEvdPbMWAiIiLShcgIa+rdmpLa9fHOOSpqTu1la3lp9Fh5IMhtLyrleHkNJZW1Hb5fUvDmg8ITldTUn3qX6LI1uxTAwpACmIiISAiZGfHRUcRHR5GREtet19TWN3CioqbpJoMT5cEetxY9bXuPlrf72qJ2blwQ7ymAiYiIhDlfZASpCTHBFQES2j1m8/7X271LNDLCeGPXYS6ZNkYLnocR3Z4hIiIyBNy7YDqxbeY280UaibFR3P67XD73m3XkFZR4VJ20pQAmIiIyBCyclcaDi7JIS47FgLTkWJbdcA7v3jeff7n2LD4oKuXv/uuvfOPJzeQfr/C63GFPd0GKiIgMA6VVtfzqzY/5zV/3Ut/g+Nz5E/j65VNJifd7XdqQ1evFuMONApiIiEjfHCyp4udrP+SpDfnE+6O4+9LT+eK8ScT6tTRTf1MAExERkVZ2Hyrjx6t3snbHYcYmRvOtK6exeHZ607xi0nedBTC1soiIyDA0dWwCv74tm6fuuoBxSbF859k8Pv2Lt1n7wSEGU+fMYKUAJiIiMozlTErhT/d8ikdunU1dg+OO/9nAkl+9x+b9J7wubUhTABMRERnmzIxPZ43j1X+8mH9bOIM9R0/y2Yf/xlf+sJE9R056Xd6QpDFgIiIi0srJ6joee2sPj729h5q6Bm7OyeQb86cyJiHa69IGFQ3CFxERkR47XFbFf762myfX5xMTFcGXL57Mly+aTHy0FtLpDgUwERER6bU9R06ybM0uXtl2kNEjovmHK6ayNDsDn+6Y7JTughQREZFemzxmBI98bg7PfuVTTBodxz8/t40FP3uL1dsO6I7JXlIAExERkW6ZM2EkT911AY/9/VwiIoy7/7CJxY/8jdxPjntd2qCjACYiIiLdZmZcedZYVv/DRfxoURaFxZXc+Mt3uePxDXx0uMzr8gYNjQETERGRXqusqee37+zlkTc+pqKmjiXZGXzzimmMTYzxujTPaRC+iIiIDKhjJ6t56PWPeGLdPiIjjDsunMxdl0wmIcbndWmeUQATERGRkNh/rIJlr+7ixS1FpMT7+frlU7j1vAn4o4bfqCfdBSkiIiIhkTkqjodunsULX5vHGacl8K8vfsAVP32TF7cU0dAweDp9BpoCmIiIiPS7menJPHHHefz3F7KJ80fy9Sc3s/Dhd/jbx0e9Li0sKICJiIjIgDAzLp2eysvfuIj/e+M5HC2r5pbH1nH779az82Cp1+V5SmPAREREJCSqaut5/G+f8P/+8hFl1XUsmpXOt6+axvjkWK9LGxAahC8iIiJho7iihv/3l494/G/7wOAL8yZyzyVTSIobWndMKoCJiIhI2Ck4UcFPX/2QP71fSGKMj69dNoXPXzCBGF+k16X1C90FKSIiImEnfWQcP11yLi9//SLOyUjmgVU7mP+TN1m5qWDI3zHpaQAzs2+bmTOz0V7WISIiIt45a3wi//PFHJ644zxGxvv41lNbuOahv/LWh0e8Lm3AeBbAzCwDuArY71UNIiIiEj7mTRnNC1+9kF8sPZeyqlr+/rfr+dyv17GtsMTr0vqdlz1gPwP+CRjafYwiIiLSbRERxvXnpvHaty/hn689i+1FJVz70F/5h+WbyT9e4XV5/caTAGZm1wOFzrkt3Tj2TjPbYGYbjhwZul2RIiIi0iw6KpIvXTiJN//pMu659HRWbzvI/J+8yQ9f/IAT5TVel9dnA3YXpJmtBU5rZ9f9wP8GrnLOlZjZJ8Bc51yXU+PqLkgREZHh6WBJFT/784c8vTGfeH8Ud196Ol+cN4lYf/jeMRlW01CYWRbwGtDYj5gOFAE5zrmDnb1WAUxERGR4+/BQGT9+ZSev7TzMaYkxfOvKaSyek05khHld2inCKoCdUoB6wERERKSH1u05xv95ZSdb8ouZNnYE37n6DC4/IxWz8AlimgdMREREhpTzJo/iuXs+xcO3zqamroEvPb6BJY++x/v5xV6X1i2e94D1hHrAREREpK3a+gaWr9/Pz9fu5lh5DddkjePeBdOZODre07rC+hJkTyiAiYiISEdOVtfx6Ft7+PXbe6ipa+CW8zL5xvypjB4R7Uk9CmAiIiIybBwuq+IXa3ezPDefmKgI7rrkdO64aBJx/qiQ1qEAJiIiIsPOx0dO8h+rd7Jm+yHGJETzzSumEhsVwU/+vJui4krGJ8dy74LpLJyVNiCfrwAmIiIiw9bGfcd5cNVONuw7gdF6CZ5YXyQPLsoakBCmuyBFRERk2JozIYWn776AlHj/KesfVtbWs2zNrpDXpAAmIiIiQ56ZdbiEUVFxZYirUQATERGRYWJ8cmyPtg8kBTAREREZFu5dMJ1YX+u1I2N9kdy7YHrIawnt/ZgiIiIiHmkcaL9sza6Q3AXZGQUwERERGTYWzkrzJHC1pUuQIiIiIiGmACYiIiISYoNqIlYzOwLsCz5NAkraOay97W23dfZ8NHC0z8V2r67+eE1nx/RXG7XdFy5tFC7t0/Z5uLRPd1/TH23UVZvpHNI51NX2cDiHwrl92tumcyj8z6EJzrkx7R7pnBuUP8Cj3d3edltnz4ENoay3r6/p7Jj+aqN29oVFG4VL++gc6rrNdA7pHBoM51A4t4/OoaF3Dg3mS5Av9mB7221dPR8IvfmM7ryms2P6q41C0T69+ZxwaZ/u1tJX4XwOddVmOod0DnW1PRzOoXBun/a26Rzq+riwPYcG1SXIUDCzDa6DdZskQG3UObVP19RGnVP7dE1t1Dm1T9e8bqPB3AM2UB71uhpkN3sAAAcrSURBVIBBQG3UObVP19RGnVP7dE1t1Dm1T9c8bSP1gImIiIiEmHrAREREREJMAUxEREQkxBTAREREREJMAawLZjbZzH5jZs94XUu4MrOFZvaYma0ws6u8rifcmNmZZvZLM3vGzL7idT3hyMzizWyDmV3rdS3hyMwuNbO3g+fRpV7XE27MLMLMHjCzh8zsNq/rCUdmdlHw/Pm1mf3N63rCjZllmtlzZvZbM/tuKD5zWAawYAMfNrNtbbZfbWa7zOyjxv8Azrk9zrkveVOpd3rYRs85574M3A0s8aLeUOth++xwzt0N3ATM86LeUOtJ+wR9B3gqtFV6q4dt5ICTQAxQEOpavdDD9rkeSAdqGSbtAz3+Hno7+D30EvC4F/WGWg/PoSzgGefcF4FZISlwIGbKDfcf4GJgNrCtxbZI4GNgMuAHtgBntdj/jNd1D4I2+gkw2+vaw7F9gOuAV4BbvK493NoHuBJYCtwOXOt17WHaRhHB/WOBJ7yuPQzb57vAXcFjhs13dS+/p58CEryuPdzaBxgF/AV4HfhCKOoblj1gzrm3gONtNucAH7lAj1cNsJzAv6qGpZ60kQX8GHjFObcp1LV6oafnkHPuBefcp4FbQ1upN3rYPpcC5wO3AF82s2HxvdSTNnLONQT3nwCiQ1imZ3p4DhUQaBuA+tBV6a2efg+ZWSZQ4pwrC22l3uhh+3wB+L5z7nLgmlDUFxWKDxkk0oD8Fs8LgPPMbBTwADDLzO5zzj3oSXXhod02Ar4OXAEkmdkU59wvvSguDHR0Dl0KLCLwP85VHtQVLtptH+fc1wDM7HbgaIuwMRx1dA4tAhYAycB/eVFYmOjoO+gXwENmdhHwlheFhZGO2gjgS8DvQl5ReOmofX4J/MDMbgE+CUUhCmBdcM4dIzC2STrgnPtP4D+9riNcOefeAN7wuIyw55z7b69rCFfOuZXASq/rCFfOuQoC4UI64Zz7vtc1hCvn3DbghlB+5rDo6u+mQiCjxfP04DZppjbqnNqnc2qfrqmNOqf26ZraqHNh0z4KYM1ygalmNsnM/AQGBb/gcU3hRm3UObVP59Q+XVMbdU7t0zW1UefCpn2GZQAzsyeBd4HpZlZgZl9yztUBXwPWADuAp5xz272s00tqo86pfTqn9uma2qhzap+uqY06F+7to8W4RUREREJsWPaAiYiIiHhJAUxEREQkxBTAREREREJMAUxEREQkxBTAREREREJMAUxEREQkxBTARCQkzOx+M9tuZlvN7H0zO6/rV/Xp894ws7kD+RndrON2MxvO6zeKSDu0FqSIDDgzuwC4FpjtnKs2s9GA3+OyBgUzi3TO1Xtdh4j0L/WAiUgojAOOOueqAZxzR51zRQBm9i9mlmtm28zsUTOz4PY3zOxnZrbBzHaYWbaZrTSz3Wb278FjJprZTjN7InjMM2YW1/bDzewqM3vXzDaZ2dNmNqKdY94wsx+b2Xoz+9DMLgpub9WDZWYvmdmlwccnzWxZsGdvrZnlBN9nj5ld1+LtM4Lbd5vZ91u81+eCn/e+mf3KzCJbvO9PzGwLcEFfG19Ewo8CmIiEwqsEQsiHZvawmV3SYt9/OeeynXMzgFgCPWWNapxzc4FfAs8DXwVmALeb2ajgMdOBh51zZwKlwD0tPzjY2/Y94Arn3GxgA/CtDuqMcs7lAN8Evt/BMS3FA687584GyoB/B64EPgv8sMVxOcBiYCZwo5nNNbMzgSXAPOfcuUA9cGuL913nnDvHOffXbtQhIoOMApiIDDjn3ElgDnAncARYYWa3B3dfZmbrzCwPuBw4u8VLGxfJzQO2O+cOBHvR9gAZwX35zrl3go//AFzY5uPPB84C3jGz94HbgAkdlLoy+HsjMLEbf7QaYHWLGt90ztUGH7d8/Z+dc8ecc5XBz7gQmE+gTXKDdc0HJgePrwee7cbni8ggpTFgIhISwXFMbwBvBMPWbWa2HHgYmOucyzezHwAxLV5WHfzd0OJx4/PG76+2C9q2fW4EAtDN3Siz8TPqW7x/Ha3/sdqyvlrXvKBuU43OuQYza/n92l6NBjzunLuvnTqqNO5LZGhTD5iIDDgzm25mU1tsOhfYR3OYORocl3VDL94+MzjIH+AWoO0lu/eAeWY2JVhLvJlN68H7fwKca2YRZpZB4HJiT11pZilmFgssBN4BXgNuMLPUYF0pZtZRz5yIDDHqARORUBgBPGRmyQR6lD4C7nTOFZvZY8A24CCQ24v33gV81cx+C3wAPNJyp3PuSPBy55NmFh3c/D3gw26+/zvA3uB77wA29aLG9QQuKaYDf3DObQAws+8Br5pZBFBLYIzbvl68v4gMMtbcey4iMriY2UTgpeAAfhGRQUOXIEVERERCTD1gIiIiIiGmHjARERGREFMAExEREQkxBTARERGREFMAExEREQkxBTARERGREFMAExEREQmx/w8nZ4QqQ8R4ygAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "np.random.seed(1234)\n", - "sum = []\n", - "for p in range(1,9): #サンプル数を一桁ずつ増やす\n", - " tmp = pi_approx(p)\n", - " sum += [[10**p, np.log10(abs(tmp-np.pi))]]\n", - " print(\"p=\",p, \"\\t\", \"pi_approx\", tmp, \"log10(abs(diff))\", np.log10(abs(tmp-np.pi)))\n", - "sum = np.array(sum).T\n", - "\n", - "fig= plt.figure(figsize=(10,3))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"Sample number\")\n", - "ax.set_ylabel(\"Diff. in log10\")\n", - "ax.set_xscale(\"log\")\n", - "ax.plot(sum[0], sum[1],marker=\"o\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eXm9gIwmm8eN" - }, - "source": [ - "あまり効率は良くない($10^8$サンプルあっても4桁くらいしか合っていない)。 \n", - "ちなみに2つの領域に生成された乱数の比から円周率を計算する方法では、領域の面積が近くなるような設定で計算する方が精度が良い。 \n", - "\n", - "なお、上のコードはメモリを食うので、これ以上$p$を増やすとだんだんGoogle Colab上では計算が厳しくなってくる。それまでの作業にも依存するが、$p\\geq9$にして実行するとクラッシュする。このように場合によってはメモリ使用量も気にする必要がある。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "f6QZ9qjDfsqn", - "outputId": "a50d0030-b569-4546-8b90-89988d3e455b" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "p=7のとき => ndarrayのサイズは~ 0.16 GB程度\n", - "p=8のとき => ndarrayのサイズは~ 1.6 GB程度\n" - ] - }, - { - "data": { - "text/plain": [ - "3.14164512" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "def pi_approx_mem(p):\n", - " num = 10**p\n", - " x = np.random.rand(num)\n", - " y = np.random.rand(num)\n", - " print(\"p=\"+str(p)+\"のとき => ndarrayのサイズは~\", (x.nbytes+y.nbytes) / 1000**3 , \" GB程度\")\n", - " return 4*np.sum(x*x+y*y < 1.0) / num\n", - "\n", - "pi_approx_mem(7)\n", - "pi_approx_mem(8) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2NsCW4t6VDhJ" - }, - "source": [ - "## 正規分布からの乱数生成\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rzhAnv6SpCDB" - }, - "source": [ - "正規分布は多くの特徴的な性質を有しています. \n", - "それらは後述するとして...正規分布に従う乱数を生成するには \n", - "```random.gauss()```もしくは```random.normalvariate()``` を用いればよい. \n", - "※両者は基本的に同じだが、前者のほうが高速らしい" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4G-CT2njVm_z" - }, - "outputs": [], - "source": [ - "a = random.gauss(0.0, 1.0) #平均0.0,標準偏差1.0の正規分布からの乱数生成" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0N_wucnuV4I7" - }, - "source": [ - "サンプル数を何通りか作って、正規分布になっているかチェック" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 391 - }, - "id": "fUlcUJTpVIDU", - "outputId": "7ad9c280-2b3a-4e5a-91ca-337b168cfa0d" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mu,sigma a: 0.0067173334130862326 1.005917217916256\n", - "mu,sigma b: -0.062043437506205806 0.9809649613610115\n", - "mu,sigma c: 0.0029861824182547607 1.0029708839095104\n", - "mu,sigma c: 2.6103380608022205e-05 1.0002128303060538\n" - ] - } - ], - "source": [ - "Na = 100; Nb = 1000; Nc = 100000\n", - "a = [ random.gauss(0.0, 1.0) for i in range(Na)] \n", - "b = [ random.gauss(0.0, 1.0) for i in range(Nb)] \n", - "c = [ random.gauss(0.0, 1.0) for i in range(Nc)] \n", - "c2 = [ random.normalvariate(0.0, 1.0) for i in range(Nc)] #一応normalvariateも使ってみる\n", - "\n", - "fig = plt.figure(figsize=(30,5))\n", - "axs = [ fig.add_subplot(141),fig.add_subplot(142),fig.add_subplot(143),fig.add_subplot(144)]\n", - "axs[0].hist(a,bins=50,density=True,rwidth=0.8)\n", - "axs[1].hist(b,bins=50,density=True,rwidth=0.8)\n", - "axs[2].hist(c,bins=50,density=True,rwidth=0.8)\n", - "axs[3].hist(c2,bins=50,density=True,rwidth=0.8)\n", - "plt.show()\n", - "plt.close()\n", - "\n", - "#平均と分散も計算してみる\n", - "print(\"mu,sigma a:\",np.mean(a), np.std(a))\n", - "print(\"mu,sigma b:\",np.mean(b), np.std(b))\n", - "print(\"mu,sigma c:\",np.mean(c), np.std(c))\n", - "print(\"mu,sigma c:\",np.mean(c2), np.std(c2))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tOJ2sDbAWsmp" - }, - "source": [ - "サンプル数が増えるにつれて、正規分布に収束していく様子が見られます. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rryfI2IcbZvG" - }, - "source": [ - "## 乱数の種(seed)の固定" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QWSXDIgFcFE7" - }, - "source": [ - "これまでのプログラムでは、実行の度に答えが変わりました。 \n", - "\n", - "擬似的にでもランダム性が担保されているというのは便利だが、 \n", - "実際にプログラミングで乱数を使って何かの作業を実装したいときは、 \n", - "何か直感と反するような振る舞いをコードが示した際、 \n", - "それがランダム性からくる偶然の挙動なのか、コードにバグがあるせいなのかを特定したくなる。 \n", - "そんなときには、\n", - "```random.seed(適当な整数値)``` \n", - "を使って乱数の\"種\"を指定することで、再現性のあるコードにすることができます。 \n", - "たとえばサイコロの例でいうと" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "muv9OX6Lctxd", - "outputId": "bf8ee0ef-d88a-43b1-ef7b-3243a1475f6d" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[3, 3, 4, 2, 3, 3, 2, 6, 2, 6]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "[ random.randint(1,6) for i in range(10)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "D4e9eLKBc03z" - }, - "source": [ - "は実行する度に答えが変わるが" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QyIpj2cCc3Nu", - "outputId": "a61edc46-9f1e-4faa-9ca4-1e34a69042ba" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[4, 1, 1, 1, 5, 1, 6, 6, 1, 1]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "random.seed(1234) \n", - "[ random.randint(1,6) for i in range(10)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dG_z5FK6c8gT" - }, - "source": [ - "は何度実行しても同じ答えになる。これは、乱数の生成前に\"種\"を指定しているため。\n", - "\n", - "イメージとしては、「無限に長い疑似乱数の羅列の中から10個並んだ数を選ぶときに、 \n", - "どこからどこまでを抽出するかを指定する」のが、 \n", - "この```random.seed```関数です(細かいことを無視すると、だいたいこんなイメージ). \n", - "\n", - "注意点としては、たとえばループを回して乱数を生成するときに\n", - "``` \n", - "for i in range(10):\n", - " random.seed(1)\n", - " print( random.uniform(0,1) )\n", - "```\n", - "などとすると、乱数を生成する前に毎回seedが1に固定されるので \n", - "毎回同じ乱数になってしまうので、意図した挙動になるブロックで使うこと。\n", - "\n", - "\n", - "**余談** \n", - "古いゲームだと、起動してからの経過時間が乱数の種になっていることが多いようで、 \n", - "このパターンを調べることができれば、 \n", - "原理的には(1/30~1/60秒程度の正確な入力が可能なら)望むようにゲームをスイスイ攻略することもできます。\n", - "\n", - "これを利用して攻略を進めたり、コンピュータにゲームの操作をやらせて、 \n", - "メタル◯ライムに会心の一撃を食らわせてレベルアップしまくる動画などが昔はやりました(今も時々ある)。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V0zLmxiTqQkj" - }, - "source": [ - "## 正規分布に関して\n", - "\n", - "この授業は確率・統計の授業ではないので、深入りはしませんが、 \n", - "正規分布(ガウス分布,ガウシアン)に少し触れておきます. \n", - "(厳密性は少々犠牲にし、変数が1次元の場合の正規分布に限る)\n", - "\n", - "正規分布が重要である理由はいくつかありますが、\n", - "* 世の中に(近似的に)正規分布に従う確率変数がたくさんある\n", - "* \"性質が良い\"(扱いやすい)確率分布である\n", - "\n", - "の2点が代表的なところでしょうか。 \n", - "たとえば、身長や体重の分布や、大学入試センター/共通試験の得点の分布なども、正規分布に近いことが知られています。\n", - "\n", - "ある変数$x$が中心$\\mu$、標準偏差$\\sigma$の正規分布に従うとき、 \n", - "$x$の確率密度関数$f(x)$は、以下の様に表現されます.\n", - "\n", - "$f(x) = \\frac{1}{\\sqrt{2\\pi \\sigma^2}}\\exp{(-\\frac{(x-\\mu)^2}{2\\sigma^2})}$\n", - "\n", - "一見、難しそうな式ですが、$x=\\mu$で最大値となり、 \n", - "$x$が$\\mu$から離れていくとどんどん値が小さくなる関数になっています。\n", - "\n", - "関数の形を見てなんとなく「平均値の周りに広がった分布になっているんだな」 \n", - "と理解できれば問題は有りません。\n", - "\n", - "実際に、上の$x$についての関数$f(x)$の値を、$\\mu$や$\\sigma$を変えながらplotしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "S1dZcJafx2SK", - "outputId": "d23cee0c-ad63-4934-abd1-854f5605ddb3" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def gaussian(mu,sigma,xr):\n", - " return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2)\n", - "\n", - "xr = np.arange(-6.0,6.0,0.01)\n", - "yr1 = gaussian(0.0,1.0,xr); yr2 = gaussian(1.0,2.0,xr); yr3=gaussian(-2.0,0.5,xr)\n", - "\n", - "fig= plt.figure(figsize=(12,4))\n", - "plt.plot(xr,yr1,label=\"mu=0.0, sigma=1.0\")\n", - "plt.plot(xr,yr2,label=\"mu=1.0, sigma=2.0\")\n", - "plt.plot(xr,yr3,label=\"mu=-2.0, sigma=0.5\")\n", - "plt.plot([-7,7],[0,0],color=\"gray\", linestyle=\"dotted\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "29z5n4TqCt4B" - }, - "source": [ - "こんな感じ。このような形状の分布を示すデータ(量)が世の中には溢れています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UDYHtsge7Pp0" - }, - "source": [ - "指数関数$\\exp$の前についている係数$1/\\sqrt{2\\pi \\sigma^2}$は、 \n", - "この関数をあらゆるxの値で足し上げたときに、その値が1になるようにつけてあります. \n", - "つまり、x軸と関数$f(x)$が囲む領域の面積=xの全区間での積分$\\int^{\\infty}_{-\\infty}f(x) dx $が1になります. \n", - "\n", - "こうしておけばどの$\\mu,\\sigma$を持つ正規分布を考えたときにでも、 \n", - "「どこからどこまでの区間の面積が全体に占める割合が何%だ」といった表現が可能になります。 \n", - "つまり、確率として扱いやすくなります。\n", - "\n", - "> ちなみに関数$\\exp{\\left(-\\frac{(x-\\mu)^2}{2\\sigma^2}\\right)}$は、$x$に対する有限区間での積分を解析的に求めることはできず(数値的に求めることはできる)、$x \\in [-\\infty,\\infty]$で積分した場合にのみ、閉じた形で書き下すことができます。 \n", - "その際、積分値$\\int^\\infty_{-\\infty}\\exp{\\left(-\\frac{(x-\\mu)^2}{2\\sigma^2}\\right)}$が、$\\sqrt{2\\pi \\sigma^2}$になります。 c.f. ガウス積分\n", - "\n", - "以下では$\\mu=0.0$, $\\sigma=1.0$のみを考えることにして、もう少し正規分布の特徴的な性質について見てみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "q9MT3YZ2_xZQ", - "outputId": "3d8809db-b465-4bef-f591-67728484e5b2" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def gaussian(mu,sigma,xr):\n", - " return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2)\n", - "\n", - "fig= plt.figure(figsize=(14,4))\n", - "axs = [ fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)]\n", - "xr = np.arange(-5.0,5.0,0.01)\n", - "yr = gaussian(0.0,1.0,xr)\n", - "for i in range(3):\n", - " axs[i].plot(xr,yr,label=\"mu=0.0, sigma=1.0\")\n", - " axs[i].plot([-4,4],[0,0],color=\"gray\", linestyle=\"dotted\")\n", - "x_sig1 = np.arange(-1.0,1.0,0.01)\n", - "x_sig2 = np.arange(-2.0,2.0,0.01)\n", - "x_sig3 = np.arange(-3.0,3.0,0.01)\n", - "axs[2].fill_between(x_sig3, 0.0*x_sig3, gaussian(0.0,1.0,x_sig3),color=\"green\",alpha=0.9)\n", - "axs[1].fill_between(x_sig2, 0.0*x_sig2, gaussian(0.0,1.0,x_sig2),color=\"blue\",alpha=0.9)\n", - "axs[0].fill_between(x_sig1, 0.0*x_sig1, gaussian(0.0,1.0,x_sig1),color=\"red\",alpha=0.9)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "407lr-tuAn6f" - }, - "source": [ - "上の図では、$\\mu \\pm 1\\sigma$, $\\mu \\pm 2\\sigma$, $\\mu \\pm 3\\sigma$の領域での正規分布とx軸とが囲む領域を、それぞれ赤色、青色、緑色で塗りつぶしました。 \n", - "(1シグマ, 2シグマ, 3シグマと呼んだりします)\n", - "\n", - "これらが占める面積は、それぞれ0.6827, 0.9545,0.9973(いずれも\"約\")となり、 \n", - "68%,95%,99%区間などと呼ぶことも多いです。 \n", - "このことは、任意の$\\mu,\\sigma$を持つ1次元の正規分布について成立します。\n", - "\n", - "正負の値をとる$x$(たくさんの人のなんかの得点とでも思ってください)の分布が \n", - "平均0.0,標準偏差が1.0の**正規分布に従っている場合**(理想的な場合)なら、 \n", - "全体の68%程度の人の得点は1シグマ領域(赤)、 \n", - "つまり-1から1までの間に分布していることになります。\n", - "\n", - "もちろん、実際の場合、分布は真には正規分布になっていないので、 \n", - "平均と標準偏差を計算したときに、いつでも1シグマの中に \n", - "全体の68%が分布しているわけではありません。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "g3oE50i_s5g0" - }, - "source": [ - "### $\\clubsuit$ おまけ: 多変数正規分布\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "a30dQ8kttEdq" - }, - "source": [ - "上の正規分布の考え方を拡張して、多変数の場合を考えることもできます。\n", - "\n", - "2つ以上の変数であることを明示的に表すため、\n", - "多次元正規分布や多変数正規分布などと呼ばれることが多いです。\n", - "\n", - "1次元の正規分布が、中心と分散(あるいは標準偏差(分散の平方根))で特徴づけられたのに対し、\n", - "多次元正規分布は、中心(ベクトル)と共分散(行列)によって特徴づけられます。\n", - "\n", - "$N$個の変数が、\n", - "平均を$\\boldsymbol{\\mu}$,共分散を$\\Sigma$とする$N$次元正規分布に従うとき、\n", - "$\\boldsymbol{x}$の確率密度関数は\n", - "\n", - "$\\frac{1}{\\sqrt{(2\\pi)^N |\\Sigma|}} \\exp{\\left( -\\frac{1}{2}(\\boldsymbol{x}-\\boldsymbol{\\mu})^T \\Sigma^{-1} (\\boldsymbol{x}-\\boldsymbol{\\mu}) \\right)}$\n", - "\n", - "で与えられます。\n", - "\n", - "注) $x$←がGoogle ColabのTeXだとうまく太字にならないが多成分(ベクトル)のつもり\n", - "\n", - " \n", - " \n", - "二次元の場合に、適当な$\\mu$と$\\Sigma$を取って、多次元正規分布からサンプルしてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "eEhR7h_Q_sG-" - }, - "outputs": [], - "source": [ - "mu1 = [ 3.0, 2.0]\n", - "cov1 = [ [1.0, 0.7],[0.7,1.0]]\n", - "mu2 = [ -2.0, -0.5 ]\n", - "cov2 = [ [0.6, -0.3],[-0.3,1.0]]\n", - "numS = 50000\n", - "\n", - "sample1 = np.random.multivariate_normal(mu1,cov1,numS)\n", - "sample2 = np.random.multivariate_normal(mu2,cov2,numS)\n", - "\n", - "x1, y1 = sample1.T\n", - "x2, y2 = sample2.T" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Lk-DKB0TIBcH" - }, - "source": [ - "散布図にすると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "oF_6fwL3H_wv", - "outputId": "433f20dc-c446-400a-d9e9-5f8f1280a5a7" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig= plt.figure(figsize=(10,5))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\");ax.set_ylabel(\"y\")\n", - "ax.scatter(x1,y1, s=5,color=\"green\", alpha=0.2,label=\"sample 1\")\n", - "ax.scatter(x2,y2, s=5,color=\"orange\", alpha=0.2,label=\"sample 2\")\n", - "ax.scatter(mu1[0], mu1[1], marker=\"x\", color=\"blue\", alpha=0.9,label=\"mean 1\")\n", - "ax.scatter(mu2[0], mu2[1], marker=\"x\", color=\"red\", alpha=0.9,label=\"mean 2\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4oNT4TCKF7R0" - }, - "source": [ - "こんな感じ。\n", - "\n", - "二次元のヒストグラムにすると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "cps0KeLqF85P", - "outputId": "62f898f6-3787-4f81-ac0c-61d83d8d7542" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.cm as cm\n", - "\n", - "fig = plt.figure(figsize=(12,4))\n", - "ax1 = fig.add_subplot(121)\n", - "H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet)\n", - "ax1.scatter(mu1[0],mu1[1],s=80,color=\"w\",marker=\"x\")\n", - "ax1.set_title('sample1')\n", - "ax1.set_xlabel('x'); ax1.set_ylabel('y')\n", - "plt.colorbar(H1[3],ax=ax1)\n", - "\n", - "ax2 = fig.add_subplot(122)\n", - "H2 = ax2.hist2d(x2,y2, bins=40, cmap=cm.jet)\n", - "ax2.scatter(mu2[0],mu2[1],s=80,color=\"w\",marker=\"x\")\n", - "ax2.set_title('sample2')\n", - "ax2.set_xlabel('x'); ax2.set_ylabel('y')\n", - "plt.colorbar(H2[3],ax=ax2)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OaZwSal6DI54" - }, - "source": [ - "中心付近にたくさん分布している様子が見て取れます。\n", - "\n", - "各サンプルごとに、$x$,$y$の分散、共分散を計算してみると...\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5EAvo8YhEtJE", - "outputId": "62b67f10-2c7d-4f6c-c91d-83b18a8046a5" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sample1\n", - "var(x) 0.994590632112357 var(y) 0.9890686124916055 cov(x,y) 0.6931785449875472\n", - "Sample2\n", - "var(x) 0.5996593224718298 var(y) 0.996967770694425 cov(x,y) -0.29333540781674877\n" - ] - } - ], - "source": [ - "print(\"Sample1\")\n", - "print(\"var(x)\", np.var(x1), \"var(y)\", np.var(y1), \"cov(x,y)\", np.cov(x1,y1)[0,1])\n", - "\n", - "print(\"Sample2\")\n", - "print(\"var(x)\", np.var(x2), \"var(y)\", np.var(y2), \"cov(x,y)\", np.cov(x2,y2)[0,1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PCrFiZDgFthf" - }, - "source": [ - "確かに上で与えた共分散の各成分ともちゃんと一致しています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5JbFvkfifi2X" - }, - "source": [ - "-- \n", - "\n", - "ちなみに...サンプルを使うのではなく、 \n", - "式から計算される値をつかって3次元の図を描くと" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SnbjKTj-fjHZ" - }, - "outputs": [], - "source": [ - "nmesh= 1024 \n", - "x = np.linspace(-6, 6, nmesh)\n", - "y = np.linspace(-6, 6, nmesh)\n", - "X, Y = np.meshgrid(x, y)\n", - "\n", - "Z = np.exp( -0.5 * ( (X-mu1[0])* cov1[0][0] * (X-mu1[0]) + (Y-mu1[1])*cov1[1][1]* (Y-mu1[1]) - 2 * (X-mu1[0])*cov1[0][1]* (Y-mu1[1]) )) / ( 2*np.pi * np.sqrt(np.linalg.det(cov1)) )\n", - "Z2 = np.exp( -0.5 * ( (X-mu2[0])* cov2[0][0] * (X-mu2[0]) + (Y-mu2[1])*cov2[1][1]* (Y-mu2[1]) - 2 * (X-mu2[0])*cov2[0][1]* (Y-mu2[1]) )) / ( 2*np.pi * np.sqrt(np.linalg.det(cov2) ))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5ekW3SwDfouI", - "outputId": "3a618e18-5217-43ec-a579-c575bc207c27" - }, - "outputs": [ - { - "data": { - "image/png": "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oNfrccstt+DYsWNYuHChrZdGRERkNeavicEMNjLMX0SD8UQN2Z277roLzz33HBYsWAAAiI6OxokTJ+z2Tq09qq+vx9q1a3H27FkUFRUxJBDRzfC3MPvEDEYTivlrbDCDEdEIDJnBeFmU7M4DDzyAvLw8AEBVVRW0Wi0/5EboySefxPbt21kFIyIiomFh/hobzGBENBZ49Ynszpo1a7BmzRokJCRAKpVi9+7d/LAbgQMHDiA0NBRJSUm2XgoRERFNEsxf1mMGI6Kxwo0asjtSqRT79u2z9TLs2s3umG/ZsgWHDx+2waqIiIhosmL+Gh5mMCKaCOxRQzSFlJeXY9GiRZDL5QCAhoYGhISEID8/H0FBQTZeHRHZKZbM7RMzGNEkwgxGRKPA8dxE01FkZCQKCwt5x5yIboYbNfaJGYxoEmMGI6JhYDNhIiIiIiIiIiJ7x40aolF64403MGfOHMTHx2Pjxo22Xo5FdXV1rOQQERHRlMIMRkRTHZsJE41CXl4eDhw4gFOnTkEmk6GpqcnWSyIiIiKa8pjBiGg64IkaolF4++238fzzz0MmkwEAFAqFjVdERERENPUxgxHRdMCNGqJRqKqqwtdff43MzEzcfvvtKCgosPWSiIiIiKY8ZjAimg549YloCIsXL8aVK1cGfX3z5s3Q6XRobW3FiRMnUFBQgOXLl6OmpgYODhyeQkRERGQNZjAimu64UUM0hCNHjgz52ttvv42lS5fCwcEBGRkZcHR0xLVr1xAQEDCBKyQiIiKaepjBiGi649UnolF44IEHkJeXB8B4BFer1bKzPxEREdE4YwYjounAQRCEm71+0xeJpiutVos1a9agtLQUUqkUO3bswMKFC229LCKi0eB9AfvEDEZkATMYEU0hQ2YwbtQQERFNb9yosU/MYERERFPbkBmMV5+IiIiIiIiIiOwEN2qIiIiIiIiIiOwEN2qIiIiIiIiIiOzED43n5r11IiIioonHDEZERDRN8UQNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd+H+iquRLHySExAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from mpl_toolkits.mplot3d import axes3d\n", - "fig = plt.figure(figsize = (20, 6))\n", - "axL = fig.add_subplot(121, projection=\"3d\")\n", - "axR = fig.add_subplot(122, projection=\"3d\")\n", - "\n", - "axL.set_xlabel(\"x\"); axL.set_ylabel(\"y\"); axL.set_zlabel(\"f(x,y)\");axL.view_init(azim=-110,elev=60)\n", - "axR.set_xlabel(\"x\"); axR.set_ylabel(\"y\"); axR.set_zlabel(\"f(x,y)\");axR.view_init(azim=-110,elev=60)\n", - "\n", - "axL.plot_surface(X,Y, Z, cmap = cm.jet) \n", - "axR.plot_surface(X,Y, Z2, cmap = cm.jet)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2sWhUyhvT_F2" - }, - "source": [ - "こんな感じ。 \n", - "x,yのメッシュ点をいっぱいつくって、各点でのzの値を定義に則って計算し、 \n", - "z=f(x,y)の値に応じて色をつけている." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mwuxsycbbR81" - }, - "source": [ - "## $\\clubsuit$ ランダムウォーク(酔歩)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "guih1t2JbX25" - }, - "source": [ - "ここまでの乱数の生成方法を応用すると、ランダムウォーク(酔歩)と呼ばれるものを実装することもできます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LiiMqnftjAE-" - }, - "source": [ - "あなたは原点(0,0)に立っていて、毎秒ごとに[-1,1]の一様乱数に従ってx方向とy方向に移動するとします。 \n", - "T秒後に立ってる場所や、軌跡をプロットしてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 320 - }, - "id": "wwuiBws_jVlj", - "outputId": "99f9df52-4420-43c9-b919-a09d3bfbf8b2" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "xy = np.array([0.0,0.0]) #開始地点\n", - "T = 1000 #stepの数\n", - "\n", - "random.seed(1234) ## 同じ答えにしたければ乱数を固定しておきましょう\n", - "trajectory = []\n", - "for step in range(T):\n", - " xy += np.array([ random.uniform(-1,1), random.uniform(-1,1)])\n", - " trajectory += [ [ xy[0],xy[1]] ]\n", - "trajectory= np.array(trajectory).T \n", - "\n", - "fig = plt.figure(figsize=(5,5))\n", - "plt.scatter(0,0,marker=\"x\",color=\"black\",label=\"t=0\")\n", - "plt.scatter(xy[0],xy[1],marker=\"x\",color=\"red\",label=\"t=\"+str(T))\n", - "plt.plot(trajectory[0],trajectory[1],color=\"blue\",linewidth=1,alpha=0.3)\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ATuATFNHk6zp" - }, - "source": [ - "今の場合、x方向y方向いずれも、 \n", - "特別な方向への指向はなく完全にランダムですが、 \n", - "獲得関数や勾配といったものが定義されるとさらなる応用が考えられます。\n", - "\n", - "たとえば、地図に載っていない山があったと仮定して、 \n", - "その山の頂上にたどり着くためには、上のようなランダムウォークでは効率が悪いので、 \n", - "山の傾斜の情報(勾配)を利用しながらランダムな大きさで進む、といった方法が思いつきます。 \n", - "\n", - "大きさをランダムにすることで、局所的な峠に捕まることを避けることもできるかもしれません(場合によりけり).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iy5xGzVUm88o" - }, - "source": [ - "**$\\clubsuit$進んだ注**\n", - "\n", - "ランダムウォークやその派生の方法は、 \n", - "最適化や確率分布からのサンプリングが必要な状況下でよく用いられ、 \n", - "統計学、自然科学、機械学習など様々な分野で活躍しています。 \n", - "c.f. サンプリング,マルコフ連鎖モンテカルロ法" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter5_Probability.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter6_Regression.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter6_Regression.ipynb deleted file mode 100644 index 7e3ee1a5..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter6_Regression.ipynb +++ /dev/null @@ -1,830 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Vysbhio4dRuQ" - }, - "source": [ - "# 相関・回帰分析\n", - "\n", - "*相関関係は因果関係を含意しない (Correlation does not imply causation)*\n", - "\n", - "[この章の目的]\n", - "初歩的な相関分析と回帰分析がPythonで出来るようになる。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mm1vDuyut69e" - }, - "source": [ - "今回使用するライブラリをインポートしておきましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "vd39tZH4t6UZ" - }, - "outputs": [], - "source": [ - "from matplotlib import pyplot as plt \n", - "!pip install japanize-matplotlib \n", - "import japanize_matplotlib \n", - "import numpy as np " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7k8KOlPCIuaF" - }, - "source": [ - "## 相関分析 (復習)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Fm6stZb_IwM1" - }, - "source": [ - "1年次の必修科目、データサイエンス入門でも相関分析を学習したことかと思います。\n", - "\n", - "解析したいデータが2種類だけなら、プログラムを使うご利益はそれほど感じられないが\n", - "「多くのデータ間の相関関係を系統的に調べたい」「複数年度に渡るデータを解析したい」 \n", - "あるいは「その結果をベクタ画像として出力したい」となると \n", - "これまで学習してきた繰り返し操作や作図が役に立つ。\n", - "\n", - "\n", - "まずは簡単な例から初めよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HPWcU6_ylxcu" - }, - "outputs": [], - "source": [ - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aK_TO1InnQ2x" - }, - "source": [ - "上に示したのは、2017年の宇都宮市における月別の平均気温$x$と \n", - "世帯ごとのアイスクリーム・シャーベットの平均消費金額$y$で、 \n", - "散布図にすると↓こんな感じ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "T0uJSEOQmE47" - }, - "outputs": [], - "source": [ - "plt.figure(figsize=(6,6)) \n", - "plt.title(\"宇都宮市\") \n", - "plt.xlabel(\"平均気温 (℃)\")\n", - "plt.ylabel(\"世帯あたりのアイスクリム・シャーベットの消費金額 (円)\")\n", - "plt.scatter(x,y)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "DHPfNSoymCxz" - }, - "source": [ - "「平均気温とアイスの消費には相関がありそう」という直感の通り、正の相関があることが見て取れる。\n", - "\n", - "では\"どれほどの\"相関を持つかを表す量として相関係数を算出してみよう。 \n", - "相関係数$r$は以下のように定義され\n", - "$r = \\frac{ \\sum^n_i (x_i-\\bar{x})(y_i-\\bar{y})}{ \\sqrt{\\sum^n_i (x_i-\\bar{x})^2 \\sum^n_i (y_i-\\bar{y})^2} }$ \n", - "$\\bar{x},\\bar{y}$はそれぞれ$x,y$の平均値で$\\bar{x} = \\frac{1}{n} \\sum^n_i x_i $, $\\bar{y} = \\frac{1}{n} \\sum^n_i y_i $ \n", - "と書ける。\n", - "\n", - "下付き添字$i$は$x$の$i$番目の要素であることを表し(つまり$x$をn次元ベクトルとみなしたときの第$i$成分が$x_i$) \n", - "今考えているデータの場合、$\\sum$の和記号は$i$は1から12までの値を取り、対応する値を足し上げることを意味する。 \n", - "(\"$i$の和が1から12までを走る\"と言ったりもする)\n", - "\n", - "$r$は必ず-1から1までの値を取り1.0(-1.0)に近づくにつれ強い正(負)の相関を示す。 \n", - "(強いというのは曖昧な表現で絶対的な線引がある訳では無いことに注意)\n", - ">$|r|\\leq1$は、コーシーシュワルツの不等式を用いるか \n", - "上の$r$の定義と$n$次元ベクトル同士の内積の定義とを見比べると示せる(暇があればやってみよう)。 \n", - "\n", - "次に`x`と`y`、2つのリストを引数に持ち、相関係数$r$を返す関数を作成してみよう。\n", - "\n", - "にらめっこするために式を再掲:\n", - "$r= \\frac{ \\sum^n_i (x_i-\\bar{x})(y_i-\\bar{y})}{ \\sqrt{\\sum^n_i (x_i-\\bar{x})^2 \\sum^n_i (y_i-\\bar{y})^2} }$ " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Sqr9IFdzoT7A" - }, - "outputs": [], - "source": [ - "### ライブラリを一切使わない方法\n", - "def cor_coeff(x,y):\n", - " # xとyの長さが違う場合や長さ0の場合はエラーを出す\n", - " if len(x) != len(y) or len(x)==len(y)==0:\n", - " raise ValueError(\"Error: x&y must satisfy len(x) = len(y) != 0\")\n", - " n = len(x) \n", - " ## 平均を計算\n", - " xbar = sum(x)/n; ybar = sum(y)/n \n", - "\n", - " ##分子(numerator)の和を計算 (初期値を0に)\n", - " s_n = 0.0 \n", - " for i in range(n):\n", - " s_n += (x[i]-xbar)*(y[i]-ybar)\n", - "\n", - " ##分母(denominator)の計算 (和を先に計算して積を取り、最後にsquare rootをとる)\n", - " s_x = 0.0; s_y = 0.0\n", - " for i in range(n):\n", - " s_x += (x[i]-xbar)**2 \n", - " s_y += (y[i]-ybar)**2\n", - " s_d = (s_x * s_y)**0.5\n", - " # 一行で書くなら\n", - " #s_d = ( sum([(x[i]-xbar)**2 for i in range(n)]) * sum([(y[i]-ybar)**2 for i in range(n)]) )**0.5\n", - "\n", - " return s_n/s_d # 分子/分母の値を返す\n", - "\n", - "cor_coeff(x,y)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9IM8Ebhopmre" - }, - "source": [ - "という風に、$r$が約0.83で、非常に強い正の相関を示すことが分かる。\n", - "\n", - "少しずつ自作関数に慣れてきたら、上のように意図しない引数を入れたときの挙動なども設定すると \n", - "より**安全な**コードを作る事ができる。\n", - "\n", - "`x`と`y`の長さが違う場合(上の`raise`文でエラーが生じさせる場合)を試しておこう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cor_coeff(x,y[1:])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "相関係数の計算は、numpyライブラリを使うと実はもう少しシンプルに書ける" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mG4Fie5epxP_" - }, - "outputs": [], - "source": [ - "def cor_coeff_np(x,y):\n", - " xbar = np.mean(x); ybar=np.mean(y)\n", - " return np.dot(x - xbar,y-ybar) / np.sqrt( np.dot(x-xbar,x-xbar) * np.dot(y-ybar,y-ybar) ) \n", - "\n", - "cor_coeff_np(x,y) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "criDMWxYrJUo" - }, - "source": [ - "とすると、関数自体は3行で書けてしまう。\n", - "さらに$\\bar{x},\\bar{y}$をいちいち定義しないように書き換えれば、関数の中身自体は一行でかけてしまいます。\n", - "\n", - "上のコードを少し補足しておくと...分子や分母に現れる \n", - "$\\sum^n_i (x_i-\\bar{x})(y_i-\\bar{y})$や$\\sum^n_i (x_i-\\bar{x})^2 $といった項は、 \n", - "$i$番目の成分に$x_i-\\bar{x}$を持つベクトル$\\tilde{x}$と \n", - "$i$番目の成分に$y_i-\\bar{y}$を持つベクトル$\\tilde{y}$を定義しておくと、 \n", - "$\\tilde{x}\\cdot\\tilde{y}$, $\\tilde{x}\\cdot\\tilde{x}$, $\\tilde{y}\\cdot\\tilde{y}$といったように\n", - "ベクトルの内積の形でいずれも表すことができる。\n", - "\n", - "`numpy`にはブロードキャスト機能(Numpyのノートを参照)やベクトル積を計算する関数```dot```が備わっているので、 \n", - "それらを活用することで相関係数の計算を短く実装することができた。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eDhJHIZesEMQ" - }, - "source": [ - "更に言うと実は`numpy`には相関係数を計算する関数```corrcoef()```が予め用意されていて\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DZ8RiA7ssJUB" - }, - "outputs": [], - "source": [ - "print(np.corrcoef(x,y))\n", - "print(\"r(x,y)=\", np.corrcoef(x,y)[0,1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n9KiMZZJsNZU" - }, - "source": [ - "を使えば \n", - "[ xとxの相関(=1.0), xとyの相関; \n", - "yとxの相関, yとyの相関(=1.0)] \n", - "といった2行2列の相関行列を取得することが出来る。 \n", - "確かに上の相関行列の[0,1]成分は、さっき計算した$r$の値と一致している。\n", - "\n", - "「初めからそれを教えろ!」と思うかもしれないが \n", - "**考えたい量を数式として定義してそれをプログラムに変換し、値が正しいことを確認する作業**は \n", - "**式(考え方)とプログラミング双方の理解を深める上で非常に重要**である " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-P5hjR0O3AOe" - }, - "source": [ - "### 相関分析と因果関係" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "NatgqwbX7Fua" - }, - "source": [ - "以下では、ある一つのグラフの例を見ながら、冒頭の \n", - "*相関関係は因果関係を含意しない (Correlation does not imply causation)* \n", - "に関して説明する。\n", - "\n", - "下の図は、2017年の家計調査・気候データから作成した散布図で、 \n", - "千葉市での平均気温と、しめじの消費支出の間の相関を示している。\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UM5GOH1q8X5_" - }, - "source": [ - "生産量と平均気温の間に、強い負の相関が見て取れますが、これはどうしてでしょう? \n", - "「寒い季節には鍋が食べたくなるから」と言われるとふむふむと感じる一方で \n", - "「そもそも生産量が冬に多く、市場に出回る量が多いから」と考えることもできる。 \n", - "したがって、このデータを見ただけでは、しめじが冬によく売れる理由までははっきりとは分からない。\n", - "\n", - "事実、しめじの旬はGoogle検索によると9月下旬から11月初旬とのことで、 \n", - "最も売れている時期(12月1月)とは少し時期にズレがあり、 \n", - "購買意欲は必ずしも\"旬\"によって決まっている訳ではなさそうな印象を受ける。\n", - "\n", - "気温と特定の野菜の購買意欲の真の関係を知りたければ、 \n", - "「その野菜はビニールハウスなどの生産設備の向上で年中、安定した味で生産ができる」 \n", - "「比較的新しい品種で〇〇といえば秋、のような固定観念がない」 \n", - "「季節ごとの生産量がほぼ同じ」 \n", - "など、他の条件が揃った状況下で比較しなければ確度の高い議論は難しい。\n", - "\n", - "このように、因果関係を紐解くことは、我々が思うほど容易ではなく、それ自体が一つの学問分野になっている。 \n", - "気になる方は、たとえば\"因果推論\"で調べてみよう。\n", - "\n", - "\n", - "[疑似相関をまとめたおもしろいサイト](https://www.tylervigen.com/spurious-correlations) \n", - "のように顕著な例ならば「あぁ疑似相関だな」と気がつくが \n", - "我々が普段見ている情報の中には、擬似相関であるとひろく認識されていない情報もあるはずだ。 \n", - "物事の因果関係を断定するような言説に対しては一歩引いて見る姿勢も重要なように思う。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KqrDeFtadahi" - }, - "source": [ - "## 回帰分析\n", - "\n", - "以下では自分が立てたモデルを表現する関数のことを*モデル関数*、 \n", - "モデル関数とデータとの齟齬を最小化するようにモデル関数の係数を決定することを**回帰**、 \n", - "そして回帰に基づく分析を指して**回帰分析**と呼ぶことにする。\n", - "\n", - "データとモデル間の齟齬を表現する方法はいくつかあるが、 \n", - "以下では最もポピュラーな誤差の二乗和を採用することとし、 \n", - "その最小化を考える(**最小二乗法**とも呼ぶ)。\n", - "データや関数、最小二乗法をもう少しきちんと定義しよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PNqDUVt2U6zV" - }, - "source": [ - "$D$個の点$\\{x_1,x_2,...,x_D\\}$でのyの値$\\{y_1,y_2,...,y_D\\}$が観測されているとき、 \n", - "最小二乗法とは、ある決められたモデル関数$f(x)$との齟齬$\\chi^2 = \\sum^D_{i=1} (y_i - f(x_i))^2$を \n", - "最小化するように関数$f$の係数を調整すること。\n", - "\n", - "$f$自体をどう決める/設計するかも重要な話題だが、この授業では深入りしない。 \n", - "たとえば回帰を行う関数として、ニューラルネットワークを採用する立場を採ることも可能。 \n", - "参照: [おまけのノートブック: ニューラルネットワークによる回帰](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_chapter_ArtificialNeuralNetwork.html)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HVBB0OmSdxxo" - }, - "source": [ - "以下では、$f(x)$として単純な多項式のみを考えることにする。 \n", - "まず回帰を学ぶために、適当なデータを生成しておく。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "6IUd5fJ3dZBw" - }, - "outputs": [], - "source": [ - "\"\"\"\n", - "0,1で定義された区間でsample_size(int)個の点で\n", - "sin関数に正規乱数に従う誤差を加えた値を返す関数。\n", - "- sample_size: データの数\n", - "- std: standard deviation (標準偏差σ)\n", - "\"\"\"\n", - "def create_toy_data(sample_size, std):\n", - " x = np.linspace(0, 1, sample_size)\n", - " t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape) \n", - " return x, t\n", - "\n", - "#私と皆さんで結果が変わらないよう乱数のseedを固定\n", - "#randomモジュールの関数を使うときはrandom.seedを、\n", - "#numpyのrandom関数を使うときはnp.random.seedを用いる\n", - "np.random.seed(1234) \n", - "\n", - "x,y = create_toy_data(10,1.e-1) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pThY_bnkd6Ny" - }, - "source": [ - "これをグラフにしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "fnJAT51od7hR" - }, - "outputs": [], - "source": [ - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(x, y, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Txmm0IZQeh4u" - }, - "source": [ - "こんな感じ。\n", - "\n", - "このデータを、$p$次元の多項式(p=0,1,2,...)を最適化することを考えてみよう。 \n", - "$p$次式($p$次元多項式)は、$p+1$個の係数, $a_0$から$a_p$を使って\n", - "$a_0 + a_1x + a_2x^2\\cdots +a_p x^p $と書くことが出来る。\n", - "\n", - "上で定義した最小二乗法は、この関数と各データ点の齟齬が二乗誤差を最小にする係数$a_0,a_1,...,a_p$を求めることに相当する。\n", - "\n", - "$p$次元の多項式の最適化は、実はnumpyにある関数```polyfit()```を利用すれば簡単に実行できる。 \n", - "他にもscikit-learnなどのライブラリもより高度な関数のフィッティングが可能。 \n", - "\n", - "\n", - "> $\\clubsuit$進んだ注: \n", - "多項式で回帰を行う場合には、実はパラメータの最適解は\"閉じた形\"で与えられる。 \n", - "この辺りのことは、[おまけのノートブック:ベイズ線形回帰](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_chapter_Bayesian_linear_regression.html)で詳しく書いています。 \n", - "なお\"閉じた形\"というのは、数学や物理をやっていると出てくる表現で、答えが具体的な形で書き下せる、程度の意味。 \n", - "たとえば 行列$A$、ベクトル$\\vec{x},\\vec{y}$,スカラー$\\lambda$について方程式$A\\vec{x}=\\lambda \\vec{y}$が成り立つとき、 \n", - "$A$の逆行列をどうやって求めるか(数値的にやるのか解析的に求めるのか)はさておき、 \n", - "$\\vec{x} = \\lambda A^{-1}\\vec{y}$と書き直せるので \n", - "「$\\vec{x}$は閉じた形で与えられる」と言ったりもする。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CyOJpVE7xw5p" - }, - "source": [ - "### polyfit/poly1d関数\n", - "\n", - "たとえば今のデータを3次式でフィットしたければ、以下のようにする。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zDkIX4Y2jFDc" - }, - "outputs": [], - "source": [ - "## 多項式をplotするためのxの値を準備(グラフをなめらかにするために、0から1までの間の500点を等間隔に取る)\n", - "xp = np.linspace(0, 1, 500) \n", - "\n", - "#多項式の次元pを決める. 今は3次式.\n", - "p=3 \n", - "\n", - "#polyfit関数で最適化し、返り値(係数)を取得する\n", - "coeff = np.polyfit(x, y, p) \n", - "\n", - "#最適化された係数と、1次元入力xに対する多項式を計算してくれるpoly1d関数を用いて描画点xpでのモデル関数の値を計算する。\n", - "yp = np.poly1d( coeff )(xp)\n", - "\n", - "print(\"係数\",coeff)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MAkx9OThjvX_" - }, - "source": [ - "```np.polyfit(x, y, p)```では、データのx,yの値と多項式の次元pを引数として与え、 \n", - "$p$次の多項式でデータ$(x,y)$をfitしなさい($p$次までの係数を関数がデータと整合するように\"最適化\"しなさい) \n", - "という指令を与えている.\n", - "\n", - "```np.poly1d( np.polyfit(x, y, p) )(xp)```では、 \n", - "fitしたp次元の係数をもつ多項式に```xp```(今は500点)を代入して、対応する```y```の値を返す。 \n", - "上のコードはこの返り値を`yp`という変数に格納している。\n", - "\n", - "最後に、調整(最適化)された3次式の係数を表示してみた。 \n", - "ちなみに、表示される係数は次数が高いところから$a_3,a_2,a_1,a_0$です(ややこしい...)。\n", - "\n", - "グラフを描いてみるとこんな感じ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4E-yeiTVB2ep" - }, - "outputs": [], - "source": [ - "#お絵かき\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(x, y, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.plot(xp, yp,label=\"p=3\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZXSQcr3HYbQa" - }, - "source": [ - "\n", - "さて、$p$次の多項式は$p-1$次の多項式を特別な場合として含むため、 \n", - "一般に$p$(多項式の次元)を増やせば、より複雑な関数を表現することができる。 \n", - "(2次式は3次式の$a_3=0$の場合ですよね?)\n", - "\n", - "$p$を複数変えながら比較した図を作ってみよう。 \n", - "その方法は、$p$に関するループを回すだけ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_GTTZ_cjhiV1" - }, - "outputs": [], - "source": [ - "ps = [0,1,3,6,9]\n", - "xp = np.linspace(0, 1, 500) \n", - "\n", - "# 各pでのfitの結果(xpでの対応する値のリスト)をysに入れ子のリストにしていく\n", - "ys = []\n", - "for p in ps:\n", - " ys += [np.poly1d(np.polyfit(x, y, p))(xp)]\n", - "\n", - "# データのは以後にある\"真の関数\"(本当は知り得ない)の値をxpの各点で計算\n", - "ytrue = np.sin(2*np.pi*xp) \n", - "\n", - "# お絵かき\n", - "fig = plt.figure(figsize=(12,5))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(x, y, facecolor=\"none\", edgecolor=\"b\", s=80, label=\"Data\")\n", - "for i in range(len(ps)):\n", - " ax.plot(xp, ys[i],label=\"p=\"+str(ps[i]),alpha=0.8)\n", - "ax.plot(xp,ytrue,linestyle=\"dotted\", label=\"True\",color=\"k\")\n", - "ax.legend(loc=\"upper right\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tlSJwJXif_ZK" - }, - "source": [ - "> 注: 今の場合、データはsin関数に適当なノイズを足して作られている。 \n", - "解析の手法を学ぶ際には、このように答えを知っている状態からはじめて、 \n", - "手法がうまくデータを説明しているかどうかを検証したりする。 \n", - "一見ズルっぽいが、理論を理解したりプログラムで確認するためには重要なプロセスとなる。 \n", - "\n", - "現実のデータ解析の状況では、背後にある\"真の関数\"が分かっていることは非常に稀で、 \n", - "「興味のあるデータが、人間がよく知っている単純な式(有限次元の多項式や指数関数)で \n", - "完全に表現できる道理はない」ということも抑えておくべき重要な点となる. \n", - "真の関数というのは一般に[神のみぞ知る]で、 \n", - "人間ができることは、出来るだけ尤もらしい関数を見つけ、 \n", - "その背後にあるメカニズム(の主要部分)を解明することと言える.\n", - "\n", - "一般に、関数をどんどん複雑なものにしていくにつれて、関数の表現力(表現できるデータの幅)は大きく拡がる。 \n", - "その一方で、用意した関数がデータに過度に適合するあまり、 \n", - "**未知の点での値の予測精度(汎化性能)が著しく損なわれている危険性**がある。 \n", - "このことを予言能力がない(データに**過適合**している) と言う。 \n", - "データの背後にあるメカニズムが何かを考えたり理論的な解析をして初めて、 \n", - "回帰に用いる関数の妥当性が検証できるという点に注意しよう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pbsTjw4FydNh" - }, - "source": [ - "### $\\clubsuit$ モデルの複雑さとモデル選択" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0eo-o3kjyhaQ" - }, - "source": [ - "上の多項式回帰では、たとえば9次式はデータをピッタリと再現している一方で \n", - "真の関数(sin関数)の振る舞いよりもむしろ、測定誤差のようなものにまで過適合してしまっている。\n", - "\n", - "\n", - "ここで過適合を防ぐためにデータとの整合性(二乗誤差)だけでなく \n", - "**モデルの複雑さ**も定量化し、なるべく複雑すぎない関数が選ばれるよう勘定することを考える。 \n", - "\n", - "ここではこのモデルの複雑さ$C$として多項式の係数の絶対値の2乗和: \n", - "$C= \\sum_i |a_i|^2$を採用することにしよう。 \n", - "\n", - "\n", - "さらに、\"モデルを選択するための基準$L$\"を \n", - "$L = $(二乗誤差) + $\\lambda$ log10(モデルの複雑さ$C$)で定量化し \n", - "この$L$が最小になる多項式を採用することにしよう。 \n", - "(この選択はあくまで例であることに注意)\n", - "\n", - "各次数での多項式のモデルの複雑さ$C$と二乗誤差、そしてモデル選択基準量$L$を表示してみると...\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mn3Bv6wkzMgT" - }, - "outputs": [], - "source": [ - "def complexity(r):\n", - " return np.sqrt(np.dot(r,r))\n", - "def my_criteria(comp,err,lam=1.0): #lambda=1.0\n", - " return err + lam * np.log10(comp)\n", - "\n", - "for p in ps:\n", - " coeff = np.polyfit(x, y, p)\n", - " diff = np.poly1d(np.polyfit(x, y, p))(x) - y\n", - " chi2 = np.dot(diff,diff)\n", - " comp = complexity(coeff)\n", - " print(\"p\",p, \"モデルの複雑さ(log10)→\", np.log10(comp),\n", - " \"二乗誤差\", chi2, \"モデル選択基準量\", my_criteria(comp,chi2))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hoNEkcu3049k" - }, - "source": [ - "9次式は、データをよく説明する一方で、非常に複雑なモデルになっている。 \n", - "\n", - "上記のモデル選択基準量$L$は$p=3$で最小となるため \n", - "この$L$の定義のもとでは3次式が選ばれることになる。\n", - "\n", - "このように実際のデータ分析や機械学習などのモデル選択では、 \n", - "既知のデータの記述能力(二乗誤差の最小化)とモデルの複雑さの低減(過適合を避ける)との \n", - "トレードオフでモデルを選択することが多い。\n", - "\n", - "上の$L$の定義中の$\\lambda$の大きさを変えることは \n", - "データとの整合性を高める/モデルの複雑さを抑える \n", - "のどちらを重視するかの\"度合い\"を決めることに相当する。 \n", - "($\\lambda$を適当に変えてみよう)\n", - "\n", - "参考→正則化でググってみよう.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P4Qe_dbjWN-j" - }, - "source": [ - "### (余談1) 100メートル走のタイム\n", - "\n", - "予言能力がないモデルとして、以下の例を考えてみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w4n_wIoM14c5" - }, - "outputs": [], - "source": [ - "y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ]\n", - "x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ]\n", - "\n", - "fig = plt.figure(figsize=(12,3))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"year\"); ax.set_ylabel(\"Mens 100m\")\n", - "ax.scatter(x,y,marker=\"o\",color=\"red\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wcJZySlf3Uq7" - }, - "source": [ - "図にしたのは、男子100mの世界記録の推移. \n", - "このデータに対して「$p=3$の多項式でフィットして予測する」という立場をとってみる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "OCUOlGTa3Q7B" - }, - "outputs": [], - "source": [ - "xp = np.arange(2020,2101,1)\n", - "fig = plt.figure(figsize=(12,6))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"year\"); ax.set_ylabel(\"Mens 100m\")\n", - "ax.set_xlim(1960,2100)\n", - "ax.set_ylim(0,12)\n", - "for p in [3]:\n", - " yp = np.poly1d(np.polyfit(x, y, p))(xp)\n", - " ax.plot(xp,yp,marker=\"x\",label=\"p=\"+str(p))\n", - "ax.scatter(x,y,marker=\"x\",color=\"red\") \n", - "ax.legend(loc=\"upper right\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Lebt_UTs4PAe" - }, - "source": [ - "2080年代には100m走のタイムがゼロになってしまうおかしな予測だと気がつく。 \n", - "\n", - "今の場合、我々はこのデータが100走の世界記録のタイムの推移であること、つまり\n", - "* 非増加関数であること\n", - "* 必ず正の値であること\n", - "\n", - "など、データが持つべき性質を予め知っているので、 \n", - "「このデータに対して単純な多項式回帰を当てはめるのはおかしい」 \n", - "と気がつくことが出来る。 \n", - "\n", - "**でも、他のデータではどうでしょう?**\n", - "\n", - "データを分析するためには、データの値だけをみて闇雲に分析するだけではダメで、 \n", - "データの背景やドメイン知識が不可欠である、という好例。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zL4J1CvJ9ciq" - }, - "source": [ - "### (余談2) 新型コロナウイルス感染症の陽性者数の推移に関して\n", - "\n", - "我々が現実世界で観測することのできる種々の\"値\"というのは、 \n", - "何らかの関数$f(x)$の、ある$x$での(実現)値と言える。 \n", - "\n", - "コロナウイルスの感染者数の推移は日付に対する関数として示される事が多い。 \n", - "日付に対して陽性者数の推移をプロットして変動の予想を立てることは簡単だが、 \n", - "コロナウイルスの感染者数の推移も単なる時間に対する1変数の関数であるはずなどがなく、 \n", - "たとえば検査数や我々の外出自粛や\"空気感\"、国・都道府県ごとの取り組み・政策、 \n", - "ウイルスの変異,その他様々な要素に左右される。\n", - "\n", - "我々人間がグラフにして理解できるのはたかだか3次元(3つの変数がある状況)まで。 \n", - "言い換えれば、人間は物事を理解するときに本来D次元(D>>3, Dは3よりずっと大きい)の変数で定義される関数を \n", - "3次元以下に射影した「影」をみて理解しようとする生き物だということは意識しておくべきだろう。\n", - "\n", - "緊急事態宣言が出され報道が加熱していた頃には、安易な感染者数予測で危険を煽ったり、 \n", - "あるいは逆に「心配する必要がない」などと極端な主張をする人が数多く現れた。 \n", - "また事態が収束したあとに「私のモデルはこんなに正しかった」という人も現れることだろう。 \n", - "だが、それは極めて高い蓋然性で偶然だろう。 \n", - "無限の数の関数を考えれば、データに適合するものが存在してもおかしくはない。 \n", - "何にでも言えることだが、モデルを立てて終わり、ではなく検証し続ける姿勢が重要。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter6_Regression.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.8.2 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.6" - }, - "vscode": { - "interpreter": { - "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter7_Optimization.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter7_Optimization.ipynb deleted file mode 100644 index 37de8e83..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter7_Optimization.ipynb +++ /dev/null @@ -1,36423 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "W7cNmbENdx0R" - }, - "source": [ - "# 最適化問題の基礎\n", - "\n", - "\n", - "[この章の目的]\n", - "最適化問題のイメージを掴み、一次元の単峰的な関数の最小値を探索できるようになる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "r244nZzmtIZ0" - }, - "source": [ - "種々のデータ解析や学術的分野での計算をはじめ世の中の多くの問題は**最適化問題**に帰着される. \n", - "最適化問題とは、大雑把に言えば「ある量の最小値/最大値とそれを与える変数/パラメータの値を知ること」と言い換えられる. \n", - "\n", - "「人生も、何らかの目的関数$f(x)$(一般に$x$は多次元),たとえば幸福感(不幸感)を最大化(最小化)すること \n", - "という意味では、最適化問題を考えていることに相当する」というと少し大げさでしょうか。\n", - "\n", - "\n", - "この章では、最適化の基礎について学んでいくことにしよう。 \n", - "授業では実際に最適化で必要な数学的な操作をするコードを作ったりする訳ではないが \n", - "「ライブラリに入れてポンッ」ではなく、背後にあるモチベーションや概念を理解しておくことは \n", - "自分が興味のある問題を最適化問題に帰着させて解くためには不可欠だ。\n", - "\n", - "※高校で微分を勉強していないという方に向けて末尾に数学的準備の項を設けてあるのでチェックしてください. \n", - "(よく知っているという方もさっと目を通してみてください) \n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "loZUoKQD9uYU" - }, - "source": [ - "## 考えたい問題のイメージ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "L1wUnmJn9xoF" - }, - "source": [ - "以下で考えたい問題のポンチ絵\n", - "\n", - "\n", - "\n", - "\n", - "> あなたは変数$x$のある特定の点$t$での関数値$f(t)$を観測して知っている。 \n", - "> また、図中に**緑の線で示したような$f(x)$の振る舞いを予め知ることはできず \n", - "> 都度$x$を変えて調べることで初めて対応する$y$の値が分かる**状況を考えよう。 \n", - "> (そのことを点線で表現しています) \n", - "> このとき、$x$を変えながら$f(x)$が最小となる点を探すには一般にどうすればよいだろうか?\n", - "\n", - "\n", - "\n", - "変数が2次元(やそれ以上)の場合も、 \n", - "(実際上の難しさが違うとはいえ)基本的なアイデアは同様なので、 \n", - "以下では1次元の場合のみ扱うことにする.\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "---\n", - "\n", - "\n", - "\n", - "さて、1次元の場合に話を戻して...(図を再掲)\n", - "\n", - "\n", - "\n", - "$x$の値を$t$から更新していく方法として、色んな方法が考えられる。たとえば...\n", - "\n", - "1. ランダムに探索する(例:サイコロを振って、目が1-3なら$x$を適当な値だけ減らし出目が4-6なら$x$を増やしていく)\n", - "2. xを適当な区間に分割(10等分,100等分, etc.)その点で値を調べる\n", - "\n", - "などが考えられる。\n", - "\n", - "ただし$x$が薬品の濃度で$f(x)$が薬品の副作用だとしたとき(※)には、 \n", - "$x$を変えて$f(x)$の値を調べると言っても限界がある。\n", - "\n", - "※「1変数の関数であるはずがない」ことは一旦忘れることにして、イメージしやすいようこの例にした\n", - "\n", - "1.の方法では、**同じところを何度か行き来するので明らかに無駄が多い**し、 \n", - "2.の方法では**分割が少なすぎると十分な精度で最適解が見つからない** \n", - "**かといって分割が多すぎるとコストがかさむ**。\n", - "\n", - "したがって、**できるだけ少ない試行回数で最適な値を見つける効率のよい探索方法**が必要となる。 \n", - "そこで重要なのが、$x$を変えたときに関数$f(x)$がどのように変化するか、つまり微分(勾配)の情報である。\n", - "\n", - "**注意** \n", - "そもそも$f(x)$の式の形がわかっていて$f'(x)=0$となる(つまり極値を持つ)$x$の値が計算できるのなら \n", - "わざわざ$x$を更新するなどという手続きは必要ない。 \n", - "一般の問題では、関数やその勾配がそもそも書き下せなかったり \n", - "極値を与える$x$($f'(x)=0$の解)を解析的に解けなかったりする。 \n", - "そんなときは以下で考えるような、$x$を更新した探索が必要となる。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P1xRaNCVtMju" - }, - "source": [ - "## 最も基本的な最適化手法: 勾配法\n", - "\n", - "*以下では、微分の値のことを指して[勾配]と呼ぶことにする." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B-PHr6IztBRE" - }, - "source": [ - "さて、上の一次元の例をもっと簡略化することにして、単峰的(つまり1つしか谷が無い)場合を考えてみよう。\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hsMxEg_frbpf" - }, - "source": [ - "この様な場合、斜面の傾きに沿ってパラメータを更新していけばいずれ$f(x)$の最小値が見つかりそうだ。 \n", - "点$x=t$での勾配は(あえて)偏微分で書くと$\\frac{\\partial f(x)}{\\partial x}|_{x=t}$となる。\n", - "\n", - "$x$の値を更新する際に、更新前の値を$x_{old}$,更新後の値を$x_{new}$と書くことにすると、 \n", - "$x_{new} = x_{old} -\\eta \\frac{\\partial f(x)}{\\partial x}|_{x=x_{old}}$ と更新する。\n", - "\n", - ">注) $\\frac{\\partial f}{\\partial x}|_{x=t}$という表記に慣れていない方は、$f'(x=t)$のことと思って頂いて結構です\n", - "\n", - "\n", - "\n", - "微分(傾き)が正の場合は、$x$を正に増やすと$f(x)$の値が増える \n", - "微分(傾き)が負の場合は、$x$を正に増やすと$f(x)$の値が減る \n", - "ことから、微分の値の前にマイナスがついている理由も納得できるかと思います。\n", - "\n", - "最小化でなく最大化を考える場合はマイナス符号は不要で`+`となる。 \n", - "(上と同じように考えてみましょう)\n", - "\n", - "上では、$\\eta$という係数(正の値)を導入したが、 \n", - "これは**傾いてる方向にどれくらいのスケールで$x$を更新するか**をコントロールするパラメータで、 \n", - "機械学習などの分野で[学習率]と呼ばれるものに対応している。 \n", - "今の単峰的な関数の場合、学習率$\\eta$は適当な値をひとつ選べば十分。\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uIAvrbNCx0c1" - }, - "source": [ - "ただし、上の$\\eta$が大きすぎたり小さすぎたりすると、なかなか効率的に$f(x)$の最適解を見つけられないことがある。\n", - "\n", - "$\\eta$が大きすぎると$x$の更新幅が大きすぎて谷をまたいでしまい、なかなか谷の底に落ち込まない、といったことが起こりえる." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jVRqeo3Hxbvx" - }, - "source": [ - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ETitsG3AyLI_" - }, - "source": [ - "一方で$\\eta$が小さすぎると、なかなか更新が進まず \n", - "これまた効率の悪い探索となってしまう。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xiFm1Ew9q5jk" - }, - "source": [ - "これ以外にも、最初の図のように多峰的(山あり谷あり)な関数だと、 \n", - "$\\eta$が小さいと局所的な谷に捕まってしまってなかなか大局的な谷にたどり着けない、 \n", - "かといって$\\eta$が大きすぎるとあらぬ方向に飛んでいってしまう、といったことが起こりえる。\n", - "\n", - "その様な場合にはもう少し\"賢い\"最適化の手法を応用したり、更新の幅を徐々に減衰させるなどの工夫が必要になる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cl4tMpwvU2OS" - }, - "source": [ - "### $\\clubsuit$その他の最適化手法\n", - "\n", - "勾配法の他にもたくさん問題に応じて最適化手法が用いられる。 \n", - "最適化を詳しくやろうとするとそれだけで半期の授業じゃ足りないくらいなので \n", - "興味がある方は下記のキーワードなどで調べてみよう。\n", - "\n", - "たとえば機械学習では、勾配の情報だけでなくそれまでの更新の履歴を活用した各種の最適化手法がよく用いられる。 \n", - "c.f. AdaGrad, Adam, etc.\n", - "\n", - "また、物理学から着想を得た最適化手法もよく用いられる \n", - "c.f. 焼きなまし法(Simulated Annealing)\n", - "\n", - "最適化の手法自体に(広義の)機械学習の手法を使うこともあります \n", - "c.f. ベイズ最適化(授業でも紹介します)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cxTy2daMOgO5" - }, - "source": [ - "### $\\clubsuit$目的関数の選択\n", - "\n", - "最適化問題を解く場合に最小化/最大化したい関数のことを目的関数と呼ぶ。\n", - "\n", - "データ分析をする上で最もよく出てくる目的関数はカイ自乗(chi-square)で \n", - "例えば回帰の場合、予測$y_i$と観測値$f(x_i)$との間の二乗誤差 \n", - "$\\chi^2 = \\sum_i (y_i-f(x_i))^2$といったように定義される。 \n", - "(データの数で割ったり平方根を取った値を採用することもある)\n", - "\n", - "機械学習の文脈では「予測の誤差(損失)を最小化したい」というモチベーションがあり \n", - "目的関数を損失関数/Loss functionなどと言ったりもする。\n", - "\n", - "\n", - "目的関数の選び方は問題によってまちまちで \n", - "その選び方によって\"最適なモデル\"も変わり得る、ということに注意しておこう。\n", - "\n", - "たとえば、二乗誤差を考える際「正解が10のところを20と予測した場合」と \n", - "「正解が1000のところを1010と予測した場合」とで二乗誤差の値自体は同じだが、 \n", - "データの数値に対する誤差が占める割合に着目すれば \n", - "前者は2倍(100%)ずれていて、後者は1%しかずれていない。\n", - "\n", - "このようにスケールの異なる量が出てくる状況下では \n", - "目的関数(誤差関数, 損失関数, etc.)の定義で対数を取ったりする場合もある。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6r7qWIUQ27li" - }, - "source": [ - "### 簡単な例でのプログラム\n", - "\n", - "下に凸な二次関数の最小値を、勾配降下法で求めてみよう. もちろん二次関数の場合は、極値を与える$x$の値は、 \n", - "プログラムを書くまでもなく平方完成で求められるが、目的は数値計算になれるためなので気にしないことにする。\n", - "\n", - "$f(x)=5x^2 -4x + 3$とでもしましょう。 \n", - "$x$についての微分はもちろん$\\frac{df(x)}{dx}=10x -4$になる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "vQmG-t4Y3PAY" - }, - "outputs": [], - "source": [ - "def f(x):\n", - " return 5.0 * x**2 - 4.0 * x + 3.0\n", - "def dfdx(x):\n", - " return 10.0 * x -4.0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "--DHmqJp3f0E" - }, - "source": [ - "はじめに$x=3.0$にいるとして、$\\eta=0.2,0.05,0.01,0.001$の4通りについて \n", - "勾配降下法でパラメータを100回更新してみる。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "vgoJsFe73raV" - }, - "outputs": [], - "source": [ - "step = 100\n", - "etas = [0.2, 5.e-2, 1.e-2, 1.e-3]\n", - "x_and_f = [ [] for i in range(len(etas))]\n", - "for i in range(len(etas)): \n", - " x = 3.0 #初期値\n", - " x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納\n", - " for tstep in range(step): # step回だけ更新を繰り返す\n", - " x = x - etas[i] * dfdx(x) # xnew = xold - eta * dfdx(at xold)になっている\n", - " x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P-v28tFN9uAj" - }, - "source": [ - "アニメーションで見てみると... (少し実行に時間がかかります)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 456 - }, - "id": "NEu9t-eoCAhx", - "outputId": "0cebb7be-d68a-46cd-8a63-1df1e5ae431f" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - " \n", - "
\n", - " \n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "from matplotlib import animation, rc\n", - "rc('animation', html='jshtml')\n", - "cols = [\"blue\",\"green\",\"orange\",\"purple\"]\n", - "x = np.linspace(-6, 6, 100);y = f(x)\n", - "\n", - "fig_scatter = plt.figure(figsize=(10,5))\n", - "plt.xlim(-4,4);plt.ylim(0,40)\n", - "plt.plot(x,y)\n", - "plt_scatter = []\n", - "for nth in range(len(x_and_f[i])):\n", - " plot_obj = []\n", - " for i, eta in enumerate(etas): \n", - " if nth == 0 :\n", - " tl = \"eta=\"+str(eta)\n", - " else :\n", - " tl = \"\"\n", - " plot_obj += [plt.scatter(x_and_f[i][nth][0],x_and_f[i][nth][1], c=cols[i],label=tl,alpha=0.7)]\n", - " plt_scatter.append(plot_obj)\n", - "plt.legend()\n", - "plt.close()\n", - "\n", - "animation.ArtistAnimation(fig_scatter, plt_scatter, interval=100)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ol7eW9lZ3vYI" - }, - "source": [ - "グラフが描画できたら、再生ボタンを押してみてください\n", - "\n", - "青($\\eta=0.2$)は$\\eta$が大きすぎて、谷を行ったり来たりしていることが分かる。 \n", - "一方で紫($\\eta=0.001$)は小さすぎて、なかなか最適解にたどり着かない。\n", - "\n", - "一般に考えたい関数に関して適切な$\\eta$を前もって知ることはできず、 \n", - "関数*の振る舞いを見ながら試行錯誤することが必要になる。\n", - "\n", - "*最適化したい量(損失関数と呼ぶ)の振る舞い" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tKDQnoQb-J7E" - }, - "source": [ - "## 勾配の計算について\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RYsa56Bt4TFB" - }, - "source": [ - "### 解析的に微分が計算できる場合\n", - "\n", - "\n", - "たとえば以下の例のように \n", - "例1: $f(x)= \\sum^p_{i=0} a_i x^i$ (多項式) \n", - "例2: $f(x)= \\exp{(-ax^2+bx+c)}$ (指数関数) \n", - "例3: $f(x)= \\ln{x}$ (自然対数) \n", - "\n", - "* $f(x)$が閉じた形で書き下せる\n", - "* 興味のある区間(定義域)で微分形が計算でき、有限の値を持つ場合\n", - "\n", - "$x$をその微分した表式に代入することで勾配法の実装が可能となる. \n", - "([有限の値をもつ場合]と限定したのは、微分が発散してしまうとパラメータの更新には実用上意味をなさないため)\n", - "\n", - "ちなみに導関数$f'(x)=0$の解(根)が手で計算できるなら数値計算する必要がないし、 \n", - "根を求めたいだけなら、勾配法を使う理由は(アルゴリズムの理解等の目的を除いて)特に必要ない。\n", - "\n", - "※最も単純な求根アルゴリズムであるニュートン法についての説明についてはおまけのニュートン法の章に記載がある。\n", - "\n", - "大量の関数を考えて微分した表式が必要な場合は、 \n", - "いちいち関数の微分形を導出してコードにするのは面倒なので、 \n", - "SympyなどのモジュールやMathematicaなどのツールを使うのも一つの手です." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jzSF_CiSrcAp" - }, - "source": [ - "### 数値的に勾配を計算する場合\n", - "\n", - "$f(x)$が具体的な$x$の形で書き下せない場合もある.\n", - "\n", - "たとえば「$f(x)$が条件$x$のもとで行った何らかの測定結果である場合」などがこれにあてはまる。\n", - "\n", - "より具体的な例をあげるなら、\n", - "あなたはとある医療薬品の効果(数値で表現できると仮定)を調べる研究をしているとして、 \n", - "温度$x$を変えながら何回か測定して$f(x)$の値を得るような状況を想像してください.\n", - "\n", - "このような場合、関数$f(x)$の具体的な表式がわからないので、勾配だって$x$に対する式として書き下すことはできない。\n", - "\n", - "しかし、微分の定義に立ち返って考えてみると、 \n", - "$f(x=a)$の値と、$x=a$から微小量$\\delta$だけ動かした場所での値$f(a+\\delta)$ \n", - "がわかっていれば$f'(x=a)$を\"近似的に\"計算することができる。\n", - "\n", - "\n", - "ただし、$\\delta$があまり小さくないと下の絵のように正しく勾配が計算できない一方で、$x$を調整する精度に限界があったり、勾配を計算する際のコンピュータの数値精度には限りがありますので、文字通りの意味で\"無限に小さい\"の$\\delta$を考えることはできず、有限の小さな値で$\\delta$を表現することになり、それにより数値計算に大きな誤差が紛れ込む危険性もある。\n", - "\n", - "$x$を動かしたときの関数の変動度合いがものすごく大きい(たとえば係数がめちゃくちゃデカイ)と、数値微分の精度は$\\delta$に対する依存性が強くなってしまう。\n", - "\n", - "![](https://drive.google.com/uc?export=view&id=1lY6wW0T09Nh9LoNNYRKrykaKMMGOFkhV) \n", - "\n", - "\n", - "解析的に微分ができる関数を使って、数値微分の簡単な例を示しておこう。\n", - "\n", - "関数$f(x)= x^4 - 3x^3 + 2x - 1$を$x=5$で微分した値$f'(5)$は定義から277となるが、 \n", - "$x=5$から$\\epsilon$だけずらした点での値を使って数値微分してみると\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "xwH40zbqgdfG", - "outputId": "b71b0ea1-4690-45a7-a322-ee5262217fdd" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "eps\t 1.0e+00 \tf'(5)\t 400.0000000000000 \t diff. 2.1e+00\n", - "eps\t 1.0e-01 \tf'(5)\t 287.6709999999986 \t diff. 1.0e+00\n", - "eps\t 1.0e-02 \tf'(5)\t 278.0517009999926 \t diff. 2.2e-02\n", - "eps\t 1.0e-04 \tf'(5)\t 277.0105001695811 \t diff. -2.0e+00\n", - "eps\t 1.0e-05 \tf'(5)\t 277.0010499943965 \t diff. -3.0e+00\n", - "eps\t 1.0e-10 \tf'(5)\t 277.0002538454719 \t diff. -3.6e+00\n", - "eps\t 1.0e-15 \tf'(5)\t 227.3736754432320 \t diff. 1.7e+00\n" - ] - } - ], - "source": [ - "def f(x):\n", - " return x**4 - 3.0* x**3 + 2.0*x -1.0\n", - "def fp(x,eps):\n", - " return (f(x+eps)-f(x))/eps\n", - "x=5\n", - "exact_fp = 277 \n", - "for p in [0,-1,-2,-4,-5,-10,-15]:\n", - " eps = 10**p\n", - " print(\"eps\\t\",str(\"%5.1e\" % eps), \"\\tf'(\"+str(x)+\")\\t\", str(\"%18.13f\" % fp(x,eps) ),\n", - " \"\\t diff.\",str(\"%5.1e\" % np.log10(abs(fp(x,eps)-exact_fp))))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ebgIJHf8hoti" - }, - "source": [ - "となり, $\\epsilon=0.01$程度では微分の値の誤差が1, $\\epsilon=$ 1.e-5でも2桁程度の精度しかない。\n", - "\n", - "一番小さい$\\epsilon=$で精度が逆に悪くなっているのは、 \n", - "あまりに小さい$\\epsilon$だと$f(x+\\epsilon)-f(x)$という引き算部分で数値誤差が発生し、 \n", - "さらに分母の小さな$\\epsilon$によってそれが増幅されるため。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V2b6emNrSLR-" - }, - "source": [ - "進んだ注) \n", - "中心差分という、分割する区間を中央をxに揃える方式だと、精度が若干改善される。 \n", - "このことは、テイラー展開から示すことができる[→参考](https://ja.wikipedia.org/wiki/有限差分)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "s8sV0EIWR2Wk", - "outputId": "198486ec-5851-423c-bbad-f2f11e0ae153" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "分割する区間の中央をxに揃える方式\n", - "eps\t 1.0e+00 \tf'(5)\t 281.2500000000000 \t diff. 6.3e-01\n", - "eps\t 1.0e-01 \tf'(5)\t 277.0424999999986 \t diff. -1.4e+00\n", - "eps\t 1.0e-02 \tf'(5)\t 277.0004249999886 \t diff. -3.4e+00\n", - "eps\t 1.0e-04 \tf'(5)\t 277.0000000424488 \t diff. -7.4e+00\n", - "eps\t 1.0e-05 \tf'(5)\t 276.9999999827633 \t diff. -7.8e+00\n", - "eps\t 1.0e-10 \tf'(5)\t 276.9991169770947 \t diff. -3.1e+00\n", - "eps\t 1.0e-15 \tf'(5)\t 454.7473508864641 \t diff. 2.2e+00\n" - ] - } - ], - "source": [ - "def fp2(x,eps):\n", - " return (f(x+0.5*eps)-f(x-0.5*eps))/(eps)\n", - "\n", - "print(\"分割する区間の中央をxに揃える方式\")\n", - "for p in [0,-1,-2,-4,-5,-10,-15]:\n", - " eps = 10**p\n", - " print(\"eps\\t\", str(\"%5.1e\" % eps), \"\\tf'(\"+str(x)+\")\\t\",str(\"%18.13f\" % fp2(x,eps) ),\n", - " \"\\t diff.\",str(\"%5.1e\" % np.log10(abs(fp2(x,eps)-exact_fp))))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H0f2hs7yEEc0" - }, - "source": [ - "## $\\clubsuit$その他の話題" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bnKTRlQJEI55" - }, - "source": [ - "冒頭にも書いたとおり、我々の身の回りにある多くの問題は最適化問題に帰着される。\n", - "\n", - "もう少し細かいことをいうと、今回考えたような連続的な変数に対して \n", - "最大/最小値を探索することは連続最適化と呼ばれ \n", - "離散的な変数を含む離散最適化/組み合わせ最適化とは区別される。\n", - "\n", - "組合せ最適化には、巡回セールスマン問題やナップサック問題などが含まれる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BQcTACZvsYyW" - }, - "source": [ - "## 数学的準備: 微分\n", - "\n", - "ある直線$y=ax+b$を考えたとき、直線の傾き$a$に着目すれば、 \n", - "$x$の増加分に対して$y$がどれだけ変化するかを知ることができる。\n", - "\n", - "一方、実社会で扱うデータは、一般に直線よりも複雑な形をしていて、 \n", - "それを式で表現しようと思うと、様々な関数の形を考える必要がある。 \n", - "(たとえば何かの値の季節変動などをイメージしよう)\n", - "\n", - "そこで、直線の場合の[傾き]を、直線以外の関数に\"拡張\"しようと考えるのは \n", - "至って自然な発想といえる。それが**微分**の概念である.\n", - "\n", - "微分(積分)の歴史は古く、人類史のどの時点でアイデアが確立したとするかは諸説あるが \n", - "最も代表的なものは、17世紀にニュートンとライプニッツが確立したとする説で \n", - "ニュートンは微分の概念を独自に定式化し、天体の軌道などを予測するなどの偉大な功績を残した.\n", - "\n", - "\n", - "以下の内容は、全学向けの授業ということもあって \n", - "厳密性はかなり犠牲にして微分の概念を導入している \n", - "(もちろん、大学の数学の教科書に載っている関数の連続性や微分の厳密な定義は非常に重要です).\n", - "\n", - "時間があったら、ヨビノリたくみ氏の[「中学数学からはじめる微分積分」](https://youtu.be/4p1rwfXbCoY)を視聴していただけると、イメージがつくかと思います。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OJqvQeu8wOgC" - }, - "source": [ - "### 微分の基本的な考え方\n", - "\n", - "定義: ある変数$x$について関数$f(x)$が与えられているとき、 \n", - "関数$f(x)$の$x=a$での微分を \n", - "$f'(a)=\\lim_{\\delta \\to 0} \\frac{f(a+\\delta)-f(a)}{\\delta}$と定義する. \n", - "\n", - "ここで、$\\lim_{\\delta \\to 0}$は0に限りなく近い(無限小)の$\\delta$を考えることを意味する。 \n", - "\n", - "つまり、関数をある点からちょこっとだけ動かしたときに、 \n", - "関数の値が変動する度合いがどれくらいかを表しています。 \n", - "上の定義は「無限小の幅で関数を直線で近似して傾きを計算している」とも言いかえられるでしょう。\n", - "\n", - "**直線の例** \n", - "$f(x) = ax + b $の$x=x_1$での微分値は定義に当てはめて計算すると \n", - "$f'(x_1)= \\lim_{\\delta \\to 0} \\frac{f(x_1+\\delta)-f(x_1)}{\\delta}= \\lim_{\\delta \\to 0} \\frac{(a(x_1+\\delta)+b)-(ax_1+b)}{\\delta} = a $ となる。 \n", - "つまり微分の値は直線の傾きに対応していて、 \n", - "なおかつ微分の値はどこの場所($x$)で調べても定数$a$であることを意味している。\n", - "\n", - "\n", - "**二次関数(放物線)の例** \n", - "$f(x) = ax^2 + bx +c $\n", - "の$x=x_1$での微分は、定義にならって計算すると\n", - "$f'(x_1) = 2ax_1+b$となる(確かめてみよう) \n", - "一方で$f(x)$を平方完成すると$f(x)=a(x+\\frac{b}{2a})^2 -\\frac{b^2}{4a} +c$となり、 \n", - "$x=-b/(2a)$で傾きが0になる。 \n", - "つまりこの二次関数は$x=-b/(2a)$で極値($a>0$なら最小値, $a<0$なら最大値)を持つ。\n", - "\n", - "微分が0というのは関数の形がそこで谷や峠になっていることを意味する。 \n", - "実際上の例でも微分の値は$x_1=-b/(2a)$のとき、値は0になっている.\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EKvfZuwG02Wv" - }, - "source": [ - "a=2.0,b=4.0,c=5.0とでもして、図をかいてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Bh0Y1E-A03PF", - "outputId": "8f311de7-2ee8-41e8-cce8-d37addcb1027" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from matplotlib import pyplot as plt\n", - "import numpy as np\n", - "xr = np.arange(-5.0,3.0,0.01)\n", - "yr = 2.0 * xr**2 + 4.0 * xr + 5.0\n", - "fig = plt.figure(figsize=(10,2))\n", - "plt.plot(xr,yr)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1Vdm0nMX1oCX" - }, - "source": [ - "確かに$x=-b/(2a)=-1.0$のところで極値(最小値)となっている。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HUp-OGlj6wOg" - }, - "source": [ - "微分の値もplotしてみると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ZyvYWUVX6xo6", - "outputId": "f8e5746d-43d0-44ed-bd13-a8eb3bc8a433" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABH4AAAD4CAYAAACaEyHPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd1yW9f7H8deXjYoiIjgAceIWFRdq2day0jLTytWwcRqnc9rnNE7lyfaukw1v98jsaGlWlmWKCwe4942iKE6c7O/vD9BfdUxJgQtu3s/Hw4dc133f8q4ILj/39f5+jbUWERERERERERHxPF5OBxARERERERERkZKhwY+IiIiIiIiIiIfS4EdERERERERExENp8CMiIiIiIiIi4qE0+BERERERERER8VA+pfnJQkNDbXR0dGl+ShERESlFy5cv32+trel0DvktXYOJiIh4trNdg5Xq4Cc6OprExMTS/JQiIiJSiowxKU5nkP+lazARERHPdrZrMFW9REREREREREQ8lAY/IiIiIiIiIiIeSoMfEREREREREREPVapr/IiIiIhI2ZCTk0NqaiqZmZlORyl2AQEBRERE4Ovr63QUERERx2nwIyIiIlIBpaamEhQURHR0NMYYp+MUG2stBw4cIDU1lfr16zsdR0RExHHnrHoZYwKMMUuNMUnGmLXGmH8VnncZY7YbY1YV/oot+bgiIiIiUhwyMzOpUaOGRw19AIwx1KhRwyPvZBIRETkfRbnjJwu41Fp7zBjjCywwxnxT+Nij1tppJRdPREREREqKpw19TvHUfy4REZHzcc47fmyBY4WHvoW/bImm+hOstcxKTuPzxJ1ORxEREREREREROc1ay/KUg7w0ez3WOjNKKdKuXsYYb2PMKiAd+N5au6TwoRHGmGRjzJvGGP8/eO1wY0yiMSZx3759xRT7t6Ym7uT5r9aRflS39IqIiJzNgs37+eSXbeTk5TsdRURERMRjZeXm8cXyVK57byE3friIiUt3kHropCNZijT4sdbmWWtjgQigozGmJfAk0BToAIQAj//Ba0dZa+OstXE1a9Ysptj/zxjDs9c2JzM3j5e/2Vjsf76IiIinyM7N55kZa5iwZAf5Dr3jJPJr77zzDs2aNaNu3bo899xzp8+/9dZbjB079qyvHTBgAJs3by7hhCIiIn/O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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "xr = np.arange(-5.0,3.0,0.01)\n", - "yr = 2.0 * xr**2 + 4.0 * xr + 5.0\n", - "yp = 4.0 * xr + 4.0 \n", - "fig = plt.figure(figsize=(20,4))\n", - "axs = [fig.add_subplot(121),fig.add_subplot(122)]\n", - "axs[0].plot(xr,yr,label=\"f(x)\"); axs[0].legend()\n", - "axs[1].plot(xr,yp,label=\"f'(x)\");axs[1].plot([-5,3],[0,0],color=\"gray\",linestyle=\"dotted\");axs[1].legend()\n", - "plt.show();plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dstsTQdJ7sFs" - }, - "source": [ - "$x<-1$では$f'(x)<0$で、$x>-1$では$f'(x)>0$となっていますね。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Z0uJ-5dE1xNE" - }, - "source": [ - "これまでは、定義に即して微分の値を計算していましたが、毎回調べたい点で定義に立ち返るというのは面倒です。\n", - "\n", - "関数が閉じた形で与えられているとき(つまり、$f(x)$が$x$の具体的な表式で与えられているとき) \n", - "多くはその微分$f'(x)$も$x$の関数として書き下すことができます。 \n", - "\n", - "そうすれば、$x$に特定の値を代入すれば好きな点での微分の値$f'(x)$を知ることができます。\n", - "\n", - "\n", - "とりあえずは以下を公式的に抑えておけば問題は有りません。\n", - "\n", - "1. $x$の$x$に対する微分は1\n", - "2. $a x^p$の$x$に対する微分は$apx^{p-1}$ ($a$は非ゼロの定数)\n", - "3. $\\exp{(x)}$(ネイピア数$e$の$x$乗)の$x$に対する微分は$\\exp{(x)}$ \n", - "4. $\\cos{x}$の$x$に対する微分は$-\\sin{x}$\n", - "5. $\\sin{x}$の$x$に対する微分は$\\cos{x}$\n", - "6. $\\log{x}$の$x$に対する微分は$1/x$ (x>0で定義される)\n", - "\n", - "いずれも、上の微分の定義や、指数関数/三角関数/対数関数の定義(c.f. マクローリン展開)から証明することができますので、興味があれば人生で一度はやってみてください。\n" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyNgJ/vjuDqbrPwWEhR7i48L", - "collapsed_sections": [ - "tKDQnoQb-J7E", - "BQcTACZvsYyW" - ], - "include_colab_link": true, - "name": "Python_chapter7_Optimization.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter8_handling_files.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter8_handling_files.ipynb deleted file mode 100644 index 3223271d..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter8_handling_files.ipynb +++ /dev/null @@ -1,1507 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JXf9XKfop6wz" - }, - "source": [ - "# ファイル・文字列操作\n", - "\n", - "[この章の目的]\n", - "text,csvやxlsx形式のデータをプログラムでサクッと扱えるようになる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LfaRUw0tp8wv" - }, - "source": [ - "この章では、テキストファイルやcsvファイル(excelファイルはおまけ$\\clubsuit$)をPythonで操作する簡単な方法を学習する。 \n", - "\n", - "これまでの章では、データはリストとして既に与えられた状態から解析を行ったが、実際にデータを扱う際は \n", - "既に誰かが作成した何らかのファイルをプログラムで読み込んで操作する場合も多い。 \n", - "この章の内容は、データ解析というよりは、Pythonでデータ解析をするための下準備に相当する。 \n", - "\n", - "愚直にコードを書いている事もあり少々泥臭い部分が多いが、この章のような操作のエッセンスを抑えておけば \n", - "普通にやると膨大な時間がかかる様々な処理を高速化・自動化することができるので、頑張って学習しよう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y0pkvGuu6B4t" - }, - "source": [ - "## 授業で使うファイルの準備\n", - "\n", - "予め以下のリンクをクリックして、ファイルをダウンロードし、 \n", - "ご自身のGoogle Driveにアップロードしておいてください。\n", - "\n", - "* [test.txt](https://drive.google.com/file/d/1U2uvrN18713ylN4OQiI2fsfX5gudL45w/view?usp=sharing) (テキストファイル)\n", - "\n", - "* [python_handling_test.csv](https://drive.google.com/file/d/1bYJNWdtujcQWfSBAa1UeXi2ZzJRJktil/view?usp=sharing) (csv, カンマ区切りのテキストファイル)\n", - "\n", - "* [kakei.xlsx](https://drive.google.com/file/d/1gJMVHivmP7R9Qf4LdqRhdPVc3x0IzD8v/view?usp=sharing) (エクセルファイル)\n", - "\n", - "本章では、ファイルの場所を指定する**パス**という概念がたびたび登場する。\n", - "以下のコードをそのまま使いたいという方は、マイドライブ直下に`AdDS`というフォルダを作り、さらにその中に```chapter8_data```というフォルダを作成し、ファイルをいれてください。\n", - "\n", - "パスについては後の節で詳しく説明します(今気になる方は末尾をチェック)。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GT7Cl8yb8iL8" - }, - "source": [ - "## テキストファイルの操作" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5LKmHodPF_n0" - }, - "source": [ - "膨大な行のテキストファイルに対して、人間が手で操作をするというのは時として非現実的です。 \n", - "\n", - "誤変換を置換するくらいなら、どのテキスト/メモ帳アプリやwordでもできますが、\n", - "全行(数千とか数万)に対して、決まった操作が必要な場合、プログラムにしてしまったほうが遥かに便利です。\n", - "\n", - "以下ではGoogle Driveのマイドライブの```AdDS```の下に作った```chapter8_data```というフォルダにファイルを保存したと仮定して話を進めますので、**適宜皆さんの場合に置き換えて使用してください**\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B6oBjOGQ8k1K" - }, - "source": [ - "まずはgoogle driveに保存した```test.txt```という名前のファイルを読み込んでみましょう。 \n", - "既に何回かやったようにgoogle driveをマウントします。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "oKJPB3hafCDd", - "outputId": "7b4ad307-91cd-4e63-e951-19fe78efb362" - }, - "outputs": [], - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FGYId3osJfo9" - }, - "source": [ - "**注意** 以後のコードは、google driveの中にあるファイルを読み書きしたりといった操作を行うため \n", - "上でGoogle Driveをマウントした状態でなければ実行しても多くがエラーとなる。\n", - "\n", - "---\n", - "\n", - "Google Driveのマウントができたら、先程のファイルがあるかlsコマンドで確かめてみよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Nx4kIQw48w7y", - "outputId": "b1b93834-5bd0-4954-a465-680acf6a9e11" - }, - "outputs": [], - "source": [ - "!ls /content/drive/MyDrive/AdDS/chapter8_data/*" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UCzT9lFC0x93" - }, - "source": [ - "*はワイルドカード記号で、対象を任意とする命令に相当します。 \n", - "*.拡張子 などとして使うのも便利です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lBNc6YKaJ-tO" - }, - "source": [ - "ファイルが見つからない場合は\n", - "> No such file or directory\n", - "\n", - "などと表示される。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9ypPj31PKJKY" - }, - "source": [ - "> $\\clubsuit$ 上のファイルをGoogle Driveに保存する方法としては \n", - "一度ローカルに保存したファイルをブラウザなどからアップロードする方法はもちろん \n", - "全てを(Linux)コマンドで行うこともできる。\n", - "```\n", - "!git clone https://github.com/SotaYoshida/Lecture_DataScience\n", - "!mkdir /content/drive/MyDrive/AdDS/\n", - "!mv Lecture_DataScience/Chapter8_data /content/drive/MyDrive/AdDS/chapter8_data\n", - "!ls /content/drive/MyDrive/AdDS/chapter8_data\n", - "```\n", - "1つめの行ではまず授業資料のGitHubレポジトリをColab環境で間借りしているgoogleのサーバー上にクローン(≒コピー)する。2行目でマイドライブの下にAdDSというフォルダの作成を試み、3行目でダウンロードしてきたレポジトリにある`Chapter8_data`をさっき作ったAdDSというフォルダの中に別名(先頭が小文字になっている)で移動する。\n", - "最後に、どんなファイルがあるかをlsコマンドで確認している。 \n", - " 重複する作業も多いのでこれらのコードはコードセルには書かなかったが、うまくアップロードできなかった場合やコマンドラインによるファイルの移動などをやってみたければ上の4行のコードをコードセルに貼って試してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Ayz1B8fz9wGb", - "outputId": "40f02a5b-6069-4c88-d4bd-a4271afbcbe0" - }, - "outputs": [], - "source": [ - "!ls /content/drive/MyDrive/AdDS/chapter8_data/*txt " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uYhMU-Od-s4Z" - }, - "source": [ - "とするとマイドライブ/AdDS/chapter8_data/にある`.txt`形式のファイル一覧を表示させることができる。 \n", - "`test.txt`が見つかったでしょうか?(DriveにアップロードしてColabから読み込みできるまでに少し時間がかかる場合がある)\n", - "\n", - "\n", - "では次に、このファイルに書かれているテキストを取得してみよう。 \n", - "方法は幾つかあるが、最も標準的なものとして、ファイルを開いてテキストを取得する方法を試してみよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YCF5xUQ_3r_3" - }, - "source": [ - "### テキストファイルを開いて内容を読み出す" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4qbsm40WpqK1" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/test.txt\" \n", - "inp = open(filename,\"r\")\n", - "lines = inp.readlines()\n", - "inp.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aZxGX1R4_QUN" - }, - "source": [ - "1行目でファイル名(正確にはファイルのパス)を指定し```filename```という変数にした。 \n", - "\n", - "2行目では、指定したパスにあるファイルを開いている。 \n", - "今はファイルに書き込むのではなく、既にあるファイルを開いて読み込むので`\"r\"`というオプションを指定している。 \n", - "他には`\"w\"`(書き出し,上書き), `\"a\"`(書き出し,追記)などがあり、新しく上書きでファイルを作成したい場合は`\"w\"`,すでにあるファイルの内容は消さずに追記したい場合は`\"a\"`を指定して使う。\n", - "\n", - "3行目では、`inp`(ファイルを`open`して得たオブジェクト)に対して```readlines```という操作を適用している。\n", - "これは、ファイルに書かれているテキストを(可能なら)全行に渡って読み込みメモリにストアする関数になっている。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "TMHIZJPTAvd7", - "outputId": "2aae100d-5f48-461b-b699-74985a929dca" - }, - "outputs": [], - "source": [ - "print(lines)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QSbIzGcdAyWH" - }, - "source": [ - "とすると、全ての行が読み込まれ、変数```lines```に格納されていることがわかる。ここで```\\n```は改行記号を意味する。\n", - "\n", - "ループを回して一行ずつ表示させると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "dPfMZpjUA_ZQ", - "outputId": "001554b4-6212-4ef7-ec3e-f255f8d5223b" - }, - "outputs": [], - "source": [ - "for line in lines:\n", - " print(line)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KS1P7UYYBFX2" - }, - "source": [ - "といった感じ(行ごとにスペースが生じている理由については後で説明します)。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "W4CNTbH5Avlf" - }, - "source": [ - "必要な行番号が分かっている場合は、`nlines = lines[2:10]`などとして、要らないところは捨てても良い。(リストのスライスについては2章を参照)\n", - "\n", - "次に、もう少し具体的なテキスト操作をしてみよう。 \n", - "まず、上の1行ずつ表示するコードでは、改行コードを明示的に含む文字列を一行ずつ表示したため、改めて`print`すると余分なスペースが空いてしまう。 \n", - "(`print`関数はデフォルトで末尾に改行```\\n```を挿入するのでファイルにある改行記号とあわせて2回改行してしまう→[参考リンク](https://docs.python.org/ja/3/library/functions.html#print))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "olRZ5IDD3yuV" - }, - "source": [ - "### strip関数\n", - "\n", - "たとえば```strip()```関数を使うと、文字列に含まれる空白、タブや改行コードを消去することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "fWB00WIvzOlz", - "outputId": "867eb590-a09a-4d51-baf6-57009d8a72a1" - }, - "outputs": [], - "source": [ - "a = \"test character\\t\"\n", - "b = \"test2 \\n\"\n", - "print(\"a\", a, \"←タブが隠れている\")\n", - "print(\"b\", b, \"←改行される\")\n", - "### strip関数をもちいて...\n", - "print(\"a.strip()\", a.strip(),\"b.strip()\",b.strip())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "先程のforループでstrip関数を適用してやると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "bwCxUBMdBOb2", - "outputId": "d964e851-62c0-4ded-9370-1f279c4a9dd7" - }, - "outputs": [], - "source": [ - "for line in lines:\n", - " print(line.strip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IpOm3O9rBlSH" - }, - "source": [ - "文字列の右側に空白や改行コードが入っていることが明確な場合は \n", - "`strip`の代わりに`rstrip`を使ってもOK(`rstrip`のrはrightの意味)。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "zVlMYYFtBnlD", - "outputId": "2b14197a-506d-4207-bbc4-2937db656ed5" - }, - "outputs": [], - "source": [ - "for line in lines:\n", - " print(line.rstrip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "E-iAh4w7BrbU" - }, - "source": [ - "\n", - "ファイルによってはインデントをするために左側にタブ```\\t```が含まれる場合もあります(PythonのコードをテキストとしてPythonから読むときなどがこれに該当)。そのような場合に左側にある空白やタブのみを取り除きたければ```lstrip()```を使って取り除くことができる。\n", - "\n", - "もちろんPythonではインデントが文法なので、インデントを一律で消す、といった操作は必要ないが、特定の状況では、`lstrip`も使えると便利だ。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V1Uk2u1Z2haB" - }, - "source": [ - "上のファイルの文字列で`#`記号を含む行以降だけが必要な場合はどうすればいいでしょうか?\n", - "\n", - "最も単純(?)な実装は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "o9ePmRrlCQV3", - "outputId": "abd39a60-4d5b-40ae-8e81-e3d17f90e735" - }, - "outputs": [], - "source": [ - "hit = 0 #\n", - "for line in lines:\n", - " if \"###\" in line:\n", - " hit += 1 \n", - " continue\n", - " if hit == 0 :\n", - " continue #hitが0の状態では何もしない\n", - " print(line.rstrip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S4pLj4K-CQhm" - }, - "source": [ - "といった愚直な例が考えられる。\n", - "つまり、`#`を含む行に到達するまでの行は無視して、それ以降の行だけをリストに格納するというもの。\n", - "もちろん`#`を含む行が複数あるようなケースでは、自分が実現したい操作にあわせてコードを書き換える必要がある。\n", - "\n", - "以下では、`###data`までの行が必要ないので、必要なところまでを別のリストに格納してしまおう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "eYsStscDDXDa", - "outputId": "e5334884-190b-4a4b-d2a6-e3705becf3f0" - }, - "outputs": [], - "source": [ - "hit = 0 #\n", - "nlines = []\n", - "for line in lines:\n", - " if \"###\" in line:\n", - " hit += 1 \n", - " continue\n", - " if hit == 0 :\n", - " continue #hitが0の状態では何もしない\n", - " nlines += [line]\n", - "print(nlines)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p7_aA_O0p7tt" - }, - "source": [ - "### split関数" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RDD1fCO3DNm6" - }, - "source": [ - "また、1,2,3,4,5,6といったコンマやスペースで区切られたものをリストに格納したい場合には、```split```関数が便利。`split`関数は引数に何も指定しなければ、スペースや改行もしくはタブごとに文字列を区切ったリストを返す。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sample_text = \"This is a\\nsample\\ttext.\"\n", - "sample_text.split()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "1P4mcqMkCzbf", - "outputId": "6bbaadf5-f756-4990-c57c-e452f7ddd7d8" - }, - "outputs": [], - "source": [ - "for line in nlines:\n", - " print(line.split())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0QGZ-qxWDF6L" - }, - "source": [ - "カンマがあるときはカンマで分割する、という約束を表現したければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "R5Wk_P3gDJ2C", - "outputId": "9589e77b-476a-44e7-cb1c-61a45f67ca11" - }, - "outputs": [], - "source": [ - "for line in nlines:\n", - " if \",\" in line :\n", - " print(line.rstrip().split(\",\"))\n", - " else :\n", - " print(line.rstrip().split())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QaOMvxGUDx7g" - }, - "source": [ - "などとすれば良い。これを利用すれば、空のリストにファイルから読んだ要素を詰めていくといった操作も実現できる。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ocRjQCaGEF07", - "outputId": "8f26d228-b132-4002-efbb-694216794090" - }, - "outputs": [], - "source": [ - "# 数字とプロフィールの空リストを作り、そこに読み込んだものを詰めていく\n", - "# その際に、数字のリストとプロフィールのリストを分けたいとする\n", - "nums = [] \n", - "profs = [] \n", - "\n", - "for line in nlines:\n", - " if \",\" in line :\n", - " nums += [ line.rstrip().split(\",\") ]\n", - " else :\n", - " profs += [ line.rstrip().split()]\n", - "print(\"nums\", nums)\n", - "print(\"profs\", profs)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pu5-guZDEcIo" - }, - "source": [ - "上の`nums`の様に、予め全ての要素が整数だと分かっていて整数に対する演算(四則演算など)を後でするのなら、`str`(文字列)型ではなく`int`型にしておくほうが良いこともあるだろう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "J85gGgidEq6j", - "outputId": "87947845-dd2e-4574-e710-05b6c7e7819c" - }, - "outputs": [], - "source": [ - "##リスト内包表記を使った実装\n", - "nums = []\n", - "for line in nlines:\n", - " if \",\" in line : \n", - " tl = line.rstrip().split(\",\")\n", - " nums += [ [ int(tmp) for tmp in tl] ]\n", - "print(\"方法1:\", nums)\n", - "\n", - "## map関数(後述)を使った実装\n", - "nums = []\n", - "for line in nlines:\n", - " if \",\" in line : \n", - " nums += [ list(map(int, line.rstrip().split(\",\") )) ]\n", - "print(\"方法2:\", nums)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ageWDCqlpxPy" - }, - "source": [ - "### replace関数" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-ppyblOIq8PL" - }, - "source": [ - "`replace`関数で文字の置換が可能です" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "B78Kb1QKqA5P", - "outputId": "1048156c-f018-4f8a-87ff-3d01d047b562" - }, - "outputs": [], - "source": [ - "text = \"abcdあいうえお\"\n", - "text = text.replace(\"abcd\", \"1234\")\n", - "print(\"置換や→\",text)\n", - "print(\"除去にも→\", text.replace(\"4\", \"\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JHXIca-kE39k" - }, - "source": [ - "### $\\clubsuit$ map関数\n", - "\n", - "`map`関数は`map(操作,対象)`という風に使って、対象の各要素に対して一括で操作を適用することができます。 \n", - "今の場合、`['1', ' 2', ' 3', ' 4', ' 5', ' 6']`などの文字列のリストに対して、 \n", - "整数型に変換する```int```関数を作用させるという操作を一度に行います。\n", - "\n", - ">注: `map`関数の返り値はmap objectと呼ばれるものなので、 \n", - "元のようなリストの形で使いたい場合は```list()```を使ってリストに変換するステップが必要です。\n", - "\n", - "世の中には、アンケート結果や産業データなどがcsv(カンマ区切りのテキスト)ファイルで公開されている場合が多いですが、 \n", - "その場合は**上で説明したような手順でリストなどに格納すれば今まで行ったような解析やグラフ描画が実行できる**といったわけです。 \n", - "(もちろんcsvを読むのに便利なライブラリもありますが \n", - "いろんな形式のファイルをプログラムで読み込む場合には \n", - "上のような基本的な操作を組み合わせることも必要になります。)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7Zteg1NaYXuR" - }, - "source": [ - "### テキストファイルの書き出し" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "d1feYXb-4J-s" - }, - "source": [ - "次に、テキストファイルを書き込んで保存してみます。 \n", - "上の文字列で、敬称を\"さん\"から\"様\"に置換したテキストを作成して、それを別ファイルとして保存してみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "J1fOkXTcYuQm" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/test_replace.txt\" \n", - "oup = open(filename,\"w\") ## oup は\"output\"の気持ち...\n", - "for line in lines:\n", - " print(line.rstrip().replace(\"さん\",\"様\"), file=oup) # file=[openしたファイル]にすることで、printする先をファイルに指定できます。\n", - "oup.close() #ファイルはきちんと閉じる." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BhsUEsIh6tC6" - }, - "source": [ - "Google Driveで、作成されたファイルをチェックしてみましょう。\n", - "\n", - "なお、filenameに元ファイルと同じものを指定すると```open(filename,\"w\")```を実行した時点で \n", - "ファイルが上書きされて空ファイルになるので注意しましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "navysabZ4enm" - }, - "source": [ - "今の例ではもちろん、手で置き換えたりするほうが遥かに速いですがこうしたPythonによるファイル操作を覚えておくと\n", - "\n", - "* ファイル自体が大量にあり、同じ操作を繰り返す場合\n", - "* 単一のテキストファイルに大量の行に渡って情報がある場合\n", - "\n", - "など、手作業が非現実的な様々な状況でも、楽ちんに作業を終わらせることができる(かもしれません)。\n", - "\n", - "上の内容や、これまでに学習したループ処理を駆使すると、 \n", - "数万人のデータが1行ずつ記載されたテキストファイルから条件にヒットする人の \n", - "情報だけを抽出して小さなファイルにまとめるといったことも可能です。\n", - "\n", - "**プログラミングを用いたファイル操作をする発想があるかどうか**がきっとこの先 \n", - "皆さんの生き方や働き方に大きな影響を与えると私は考えています。\n", - "\n", - "> **文字コードに関連した余談** \n", - "Windows環境で作成されたテキストファイルを扱う際は読み込みで、文字コードによるエラーが出るかもしれない。最近ではメモ帳でもUTF-8(世界標準)を採用しているよう(→[MicrosoftのWindows blogの記事](https://blogs.windows.com/japan/2020/02/20/about-windows-and-japanese-text/))だが、古いテキストファイルだとShift-JISになっているかも。そういうときは、```open(file, \"r\", encoding = \"shift_jis\")```など、ファイルを開くときにencodingを明示的に指定する必要がある。明示的にUTF-8で保存したいときは```open(file, \"w\", encoding = \"utf-8\")```などとする。 \n", - "参考: [公式ドキュメント](https://docs.python.org/ja/3/howto/unicode.html#reading-and-writing-unicode-data) \n", - "ここまで勉強してきた皆さんには「そんなの、パソコンに存在するShift-JISで書かれたテキストファイルを全てUTF-8に変換するPythonスクリプト書けばいいんじゃね?」という発想があることを期待しています。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "J5sIptAmd1ni" - }, - "source": [ - "## csv,エクセルファイルの操作" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ovU-6Bd-D9e1" - }, - "source": [ - "### アンケート分析\n", - "\n", - "冒頭の二番目のファイル[python_handling_test.csv](https://drive.google.com/file/d/1bYJNWdtujcQWfSBAa1UeXi2ZzJRJktil/view?usp=sharing)はあるアンケート結果をまとめたファイルになっています。\n", - "\n", - "これは、Google フォームで作成したアンケーで、国数英社理(中学の5科目)に対する得意/苦手意識の調査を想定した疑似アンケートです。\n", - "\n", - "このようなアンケート調査は事務作業や卒業研究などで頻繁に見られ、会社や大学など所属コミュニティで何らかの意思決定に用いられることも多いことでしょう。こうしたアンケート分析を行っていると、\n", - "* 各回答項目同士の関係が知りたい\n", - "* 明示的な項目以外の情報も抽出したい\n", - "\n", - "といった要望が出てきます。今の場合でいうと、\n", - "* 各科目ごとの得意・苦手意識の相関を調べたい\n", - "* 夜中(あるいは日中)にアンケートを回答した夜型(昼型)の人に見られる特徴がなにかないか?\n", - "\n", - "といったイメージです。そんなとき、\n", - "\n", - "> 国語が得意(どちらかというと得意)と回答した方に質問です。 \n", - "英語についてはどうでしょうか?\n", - "\n", - "などと新たに設問を増やしてアンケートをやり直すというのは得策では有りません。 \n", - "すでに得られた情報からさらなる情報を引き出すことを考えてみましょう。 \n", - "まずは、csvファイルに記載された情報を整理してプログラムで扱いやすくすることを考えます。\n", - "\n", - "> 余談: このcsvファイルをExcelで開こうとするとお使いの環境によって文字化けを起こすかと思います。これはgoogleフォームで作成されたcsvファイルの文字コードが世界標準のutf-8を使用しているのに対し、ExcelがShift-JISという時代遅れな文字コードでcsvファイルを開こうとするためです。Googleのスプレッドシートや、Mac標準のNumbersで開くと文字化けしません。\n", - "\n", - "> 2000件の回答は、もちろん私が手作業で入力したわけでも誰かに協力してもらったわけでもなく、一定のルール(傾向)を勝手に設定した上でランダムに回答を作成しフォームから自動回答するPythonスクリプトを書きました。 \n", - "時間に余裕があれば、こうしたWeb操作を自動化する方法も授業で扱います。 c.f. ブラウザ操作, Webスクレイピング" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zF6wdCGff4qd" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/python_handling_test.csv\" #読み込むファイルのパスの指定" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vq3T9r6wgBmg" - }, - "source": [ - "とりあえずファイルの中身を数行表示してみる。\n", - "\n", - "csvファイル(コンマ区切りのテキスト)なので、テキストファイルと同じ方法をとる(他の方法ももちろんある)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "4yG6dZUngpnA", - "outputId": "eb5da226-418d-4a75-e4fd-f680959f03ed" - }, - "outputs": [], - "source": [ - "inp=open(filename,\"r\")\n", - "csv_lines=inp.readlines() \n", - "inp.close()\n", - "print(\"行数は\",len(csv_lines))\n", - "for i in range(5):\n", - " print(csv_lines[i].rstrip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mfdbVE1Bhrhi" - }, - "source": [ - "ちなみに...```pandas```ライブラリを使うとcsvをサクッと読み込むことができる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "fgDQrP-1hA0D", - "outputId": "8a51c3dc-77f5-4909-95b0-3e209da09a55" - }, - "outputs": [], - "source": [ - "import pandas as pd \n", - "df = pd.read_csv(filename)\n", - "print(df)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bMWTdHs9ilWM" - }, - "source": [ - "さて、```csv_lines```に格納したデータをもう少し扱いやすいように変更しよう。 \n", - "最初の0行目はどういうデータが入っているか(データの項目)を表している。 \n", - "1-2000行目には2000人分の回答が詰まっている。 \n", - "\n", - "これによると、 \n", - "> 0列目: 回答した時刻 \n", - "> 1列目: 性別 \n", - "> 2列目: 国語 \n", - "> 3列目: 数学 \n", - "> 4列目: 英語 \n", - "> 5列目: 社会 \n", - "> 6列目: 理科 \n", - "\n", - "らしい。いろいろなデータの整理方法があると思うがここでは、\n", - "* 処理A 0列目の時刻を24時間表記にして表示する \n", - "* 処理B 2-6列目の各科目の得意・苦手意識を、文字列を除去して数値[-2,-1,0,1,2]として扱う\n", - "\n", - "をまずやってみよう。\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Kso8FZs6nQa0", - "outputId": "3e2c5835-19b6-41de-ba7c-bda96bcc60d5" - }, - "outputs": [], - "source": [ - "#処理Aのための関数\n", - "#input_strが、\"年月日 時刻(h:m:s) 午前/午後 GMT+9\" という文字列である、という文字列の[構造]を知った上での実装になっていることに注意\n", - "def make_time_24h(input_str): \n", - " time = input_str.split()[1]\n", - " AMPM = input_str.split()[2]\n", - " hms = time.split(\":\")\n", - " h = int(hms[0])\n", - " if AMPM == \"午前\":\n", - " output_str = time \n", - " else :\n", - " if h != 12:\n", - " output_str = str(h +12)+\":\"+hms[1]+\":\"+hms[2]\n", - " else:\n", - " output_str = str(h)+\":\"+hms[1]+\":\"+hms[2] # 12時xx分だけは別の取り扱いが必要\n", - " return output_str\n", - "\n", - "nlines=[] #整理したものをリストとしてまとめるための空のリスト\n", - "for nth,line in enumerate(csv_lines[1:]): \n", - " nline = line.rstrip().replace('\"','').split(\",\") # 改行文字の除去、ダブルクォーテーションの除去, カンマで分割 \n", - " # この時点でnlineは0:時刻 1:性別, ...のリストとなっているはず print()でcheckしてみよう\n", - " # 処理A)\n", - " time = make_time_24h(nline[0])\n", - " #print(\"nline[0]\", nline[0], \"time\", time)\n", - " M_or_F = nline[1] #性別\n", - "\n", - " # 処理B)\n", - " points = [ int(nline[k].split()[0]) for k in range(2,7)] #各科目の値だけのリスト(points)を作成\n", - " # 上記をmap関数にしてみよう。\n", - "\n", - " nline = [time, M_or_F]+points #リストを連結(時刻,性別と各科目の値を同じ階層で結合)して、nlineという名前で上書き\n", - " nlines += [ nline ]\n", - "\n", - " # うまく編集できたか400行おきほどでprintしてチェックしてみる\n", - " if nth % 400 == 0 :\n", - " print(\"編集前\", line.rstrip())\n", - " print(\"編集後\", nline)\n", - " print(\"\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VVxC-_FanOp2" - }, - "source": [ - "最後に、各項目の得点を適当なリスト(あるいはnp.array)に整形しておけば、種々の分析を行うことができます。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "38OyKcL4DVtR", - "outputId": "a78ecf75-7448-4011-ee0c-00cd6acc7470" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "points = [ [] for i in range(5)]\n", - "for tmp in nlines:\n", - " for i in range(5):\n", - " points[i]+=[tmp[2+i]]\n", - "print(\"points\", np.array(points))\n", - "print(\"各科目の平均スコア:\", [np.mean(points[i]) for i in range(5)])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gplM2Js9DWwP" - }, - "source": [ - "相関分析は以降の章で扱うので具体例は省略します。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2_SWNlqrhMLY" - }, - "source": [ - "## $\\clubsuit$ 複雑なエクセルファイルの操作\n", - "\n", - "```kakei.xlsx```はエクセルファイルで以降では、2020年度前期のデータサイエンス入門(一部学科を除く)の \n", - "相関分析で使用されたエクセルファイル、[kakei.xlsx](https://drive.google.com/file/d/1gJMVHivmP7R9Qf4LdqRhdPVc3x0IzD8v/view?usp=sharing)を使用します。 \n", - "\n", - "\n", - "以下では、上と同じディレクトリに`kakei.xlsx`を置いたと仮定して \n", - "処理を行いますので、適宜ご自身の環境にパスを置き換えてください。\n", - "\n", - "※もともとはxlrdというライブラリを使って実装していましたが.xlsx形式をサポートしなくなるとのことで、pandasライブラリを用いた実装に変更しました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "FXWuDrYahMXf" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx\" #読み込むファイルのパスの指定" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CcnorJJvmAR6" - }, - "source": [ - "まずはxlsxファイルをPythonで読み込んで、どんな\"シート\"があるのかを確認してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "vsLXQKlG8WYL", - "outputId": "7bf4f36d-c5f5-496e-d2ec-a93c7b854a2f" - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "input_file = pd.ExcelFile(filename)\n", - "sheet_names = input_file.sheet_names\n", - "print(\"pandas: シート名\",sheet_names)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SRyFwkbDqGjP" - }, - "source": [ - "たくさんシートがあることが分かります。 \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "X1HOxhl6edOF" - }, - "source": [ - "Sheet1の中身をのぞいてみましょう。まずは行と列の数を取得してみます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "0YivHM_Yed3Y", - "outputId": "f86c467c-0249-4f97-dabc-8d0cee8f51e9" - }, - "outputs": [], - "source": [ - "Sheet1 = pd.read_excel(filename, sheet_name=\"Sheet1\")\n", - "print(\"行,列の数\", Sheet1.shape)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "X5mDZqBWgXSD" - }, - "source": [ - "0-5番目の行にはどんな値がセルに入っているのかな...と思ったら" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "nu6LskLOf7zz", - "outputId": "8cdbd47d-1f90-460f-e825-74c8bcf45d44" - }, - "outputs": [], - "source": [ - "for i in range(5):\n", - " print( list(Sheet1.iloc[i]) )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xkzCNbhDpbOT" - }, - "source": [ - "などとする。このように、扱いたいファイルの\"構造\"を知ることが \n", - "やりたい操作を系統的に実行するための第一歩です。 \n", - "このエクセルを実際に開くとSheet1からSheet12までが複数都市の家計調査のデータで \n", - "S1からS12までが気候データになっていて \n", - "1-12までの数字が2017年の1月から12月までに対応していることが分かります。\n", - "\n", - "実際のデータを触っていると「2006年までとそれ以降とでデータファイル(.xlsx)の\"構造\"が違う」 \n", - "といったことも出てきます。 \n", - "最初は特定のものに合わせたコードを作り、徐々に\"汎用性の高い\"コードにしていくのがよいでしょう。\n", - "\n", - "このエクセルを使って実際に作業をするには、[細かいライブラリの使い方]などを説明することになるため \n", - "授業ではやらず、以下の\"おまけ\"にいれておきます。この作業や実践DSに限らず\n", - "* 自分がやりたい操作をきちんと言語化する\n", - "* 公式ドキュメントやWebから情報を探す\n", - "* とにかく試してみる\n", - "\n", - "という意識が重要です。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HJJ1Rd9XkITb" - }, - "source": [ - "### $\\clubsuit$$\\clubsuit$おまけ\n", - "\n", - "以下のコードは、プログラミングの\"ありがたみ\"を感じてもらうためのお試し用です。 \n", - "(昔書いたかなり読みにくいコードなのであまり真剣に読まないでください.)\n", - "\n", - "**大量の画像ファイルをドライブに生成するので、以下を読んだ上で実行してください**\n", - "\n", - "以下のコードたちを何もいじらずに実行すると、 \n", - "全都市の月別平均気温と全品目の世帯平均支出のうち、 \n", - "相関係数の絶対値が0.9以上のもの(291通り)をプロットして画像として保存します。 \n", - "```pthre```の値を小さくすると、生成される画像の数がとんでもなく増えるのでやらないでください。\n", - "\n", - "(0.9 → 291通り, 0.8 → 1234通り, 0.7 → 2871通り, \n", - " 0.6 → 5233通り, 0.5 → 8375通り, 0.0 → 32876通り)\n", - "\n", - "Google Colab上で実行して291枚の画像が生成されるまでに80~150秒程度かかるようです。\n", - "\n", - "この時間未満でエクセルで操作をして同様の処理を完了出来るという方は...おそらく地球上にいないでしょう(要出典)\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ALOn2XR5lfT-" - }, - "outputs": [], - "source": [ - "# 画像がいっぱい生成されると面倒なので画像を保存するフォルダを作成しておく\n", - "!mkdir /content/drive/MyDrive/AdDS/chapter8_data/kakei_cor_pic " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "dsPxfNhrr5e2", - "outputId": "6d37c43f-3c92-4ff2-84f2-609ba697704d" - }, - "outputs": [], - "source": [ - "!pip install japanize_matplotlib " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rZHYbCjWmXgG", - "outputId": "81a4fc87-c666-4255-f658-d01ed18d0e7e" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "from matplotlib import pyplot as plt\n", - "import japanize_matplotlib\n", - "import time\n", - "\n", - "class ebook:\n", - " def __init__(self,inpf):\n", - " self.input_file = pd.ExcelFile(filename)\n", - " sheet_names = input_file.sheet_names\n", - " self.sname = sheet_names\n", - " self.ns = len(sheet_names)\n", - " print(\"pandas: シート名\",sheet_names)\n", - " print(\"self.ns\", self.ns)\n", - "\n", - " s_kikou=[]; s_kakei=[]\n", - " for i, sheetname in enumerate(self.sname):\n", - " if \"Sheet\" in sheetname :\n", - " s_kakei += [ i ]\n", - " elif \"S\" in sheetname :\n", - " s_kikou += [ i ]\n", - " self.s_kakei,self.s_kikou = s_kakei,s_kikou\n", - " def indices(self):\n", - " return self.s_kakei, self.s_kikou\n", - " def readkakei(self,ikakei) :\n", - " ws = self.input_file.parse(sheet_name=self.sname[ikakei])\n", - " nr = ws.shape[0]\n", - " premode = True\n", - " items = []\n", - " for ii in range(nr): \n", - " trow = list(ws.iloc[ii])\n", - " hit = 0\n", - " if premode == True:\n", - " for jj,tmp in enumerate(trow):\n", - " if type(tmp) is str:\n", - " if \"市\" in tmp:\n", - " hit += 1\n", - " if hit > 5:\n", - " premode=False\n", - " i_kakei=[];p_kakei=[]\n", - " for jj,tmp in enumerate(trow):\n", - " if type(tmp) is str:\n", - " if \"市\" in tmp:\n", - " i_kakei += [jj]\n", - " p_kakei +=[ tmp ] \n", - " v_kakei = [ ]\n", - " else: \n", - " if ii >= 22:\n", - " if type(trow[8]) is str and trow[8] != \"\":\n", - " v_kakei += [ [trow[jj+1] for jj in i_kakei] ]\n", - " items += [trow[8]] \n", - " return i_kakei, p_kakei, v_kakei,items\n", - " def readkikou(self,ikikou):\n", - " ws = self.input_file.parse(sheet_name=self.sname[ikikou], header=None)\n", - " nr = ws.shape[0]\n", - " quantities = [];v_kikou=[]\n", - " premode=True\n", - " for ii in range(nr): \n", - " trow = list(ws.iloc[ii])\n", - " if premode :\n", - " if any([\"市\" in str(tmp) for tmp in trow]):\n", - " Tplaces = trow[1:]\n", - " premode=False\n", - " else:\n", - " quantities += [ trow[0] ]\n", - " v_kikou += [ trow[1:] ]\n", - " return Tplaces, v_kikou,quantities\n", - "\n", - "def seasoncolor(month):\n", - " if month <= 2 or month ==12:\n", - " return \"blue\"\n", - " elif 3 <= month <=5:\n", - " return \"green\"\n", - " elif 6 <= month <=8:\n", - " return \"red\"\n", - " elif 9<= month <=11:\n", - " return \"orange\"\n", - " return tcol\n", - "\n", - "def plot_cor(x,y,item,quantity,place,corrcoef): \n", - " fig = plt.figure(figsize=(4,4))\n", - " ax = fig.add_subplot(1,1,1)\n", - " ax.set_facecolor(\"#e0e0e0\")\n", - " ax.set_title(place+\" r=\"+str(\"%8.2f\" % corrcoef).strip())\n", - " ax.set_xlabel(item);ax.set_ylabel(quantity)\n", - " ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - " for i in range(len(x)):\n", - " tcol=seasoncolor(i+1)\n", - " ax.scatter(x[i],y[i],marker=\"o\",s=5,color=tcol,zorder=20000,alpha=0.7)\n", - " ax.text(x[i],y[i],str(i+1)+\"月\",color=\"k\",fontsize=8)\n", - " plt.savefig(oupdir + \"corr_\"+item+\"vs\"+quantity+\"_at_\"+place+\".png\",dpi=300) \n", - " plt.close()\n", - "\n", - "def calcor(date,places,items, Vs_kakei,Tplaces,quantities,Vs_kikou):\n", - " hit = 0; num_pic=0\n", - " Vs = [] \n", - " for j_K,place in enumerate(places):\n", - " for j_T, Tplace in enumerate(Tplaces):\n", - " if place != Tplace :\n", - " continue\n", - " for ik,item in enumerate(items):\n", - " kvalue = np.array([ Vs_kakei[i][ik][j_K] for i in range(len(Vs_kakei))])\n", - " quantity=quantities[iT]\n", - " Tvalue = np.array([ Vs_kikou[i][iT][j_T] for i in range(len(Vs_kikou))])\n", - " if all(Tvalue) == 0.0: ## missing value in climate data\n", - " continue\n", - " if printlog:\n", - " print(\"@\", place,\" \",item,kvalue,\" VS \",quantity, \",\",Tvalue)\n", - " corrcoef=np.corrcoef(kvalue,Tvalue)[0][1]\n", - " Vs += [ [ corrcoef, item, quantity, place] ]\n", - " if abs(corrcoef) > pthre:\n", - " hit += 1\n", - " if pltmode==True:\n", - " plot_cor(kvalue,Tvalue,item,quantity,place,corrcoef) \n", - " num_pic += 1\n", - " print(\"hit:\",hit, \" number of picture\", num_pic)\n", - "\n", - "if __name__ == \"__main__\":\n", - " ti=time.time()\n", - " T=True; F=False\n", - "\n", - " inpf = \"/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx\"\n", - " oupdir = \"/content/drive/My Drive/AdDS/chapter8_data/kakei_cor_pic/\" #適宜置き換える\n", - " iT = 6 # iT=6: 日平均気温\n", - " printlog= F #条件にhitした都市の品目と気候データを逐次printするかどうか. (Fを推奨)\n", - " pthre= 0.90 ## corrplotを描く相関係数のthreshold \n", - " pltmode = T ## T:plotする F:計算のみ ** 画像をいちいちplotして保存する必要がない場合Fを推奨\n", - " year=\"2017\" \n", - "\n", - " wb=ebook(inpf)\n", - " s_kakei,s_kikou=wb.indices() \n", - " Vs_kakei=[]; Vs_kikou=[];dates=[]\n", - " for i,ind_kakei in enumerate(s_kakei):\n", - " i_places,places, v_kakei,items = wb.readkakei(ind_kakei)\n", - " Tplaces, v_kikou, quantities = wb.readkikou(s_kikou[i])\n", - " if i+1 < 10:\n", - " date=year+\"0\"+str(i+1)\n", - " else:\n", - " date=year+str(i+1)\n", - " dates += [date]\n", - " Vs_kakei += [ v_kakei ]\n", - " Vs_kikou += [ v_kikou ]\n", - " calcor(dates,places,items,Vs_kakei,Tplaces,quantities,Vs_kikou) \n", - "\n", - " tf=time.time()\n", - " print(\"Elapced time[sec]:\", tf-ti)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "riw7f35TRWsD" - }, - "source": [ - "## 余談: 電子ファイルのフォーマット\n", - "\n", - "プログラムでデータを機械的に読み出して活用することで、人間が到底出来ないような作業効率を実現することができる場合も多い。\n", - "そんな光の側面ばかりなら良いが、実際にはそう上手くは行かないことも多い。\n", - "\n", - "業務のデジタル化・デジタルトランスフォーメーションなどといった標語とは裏腹に、世の中にあふれるcsv,スプレッドシートなどは、\n", - "csvと謳っておいて、実際にはカンマ区切りではなくタブ区切りであったり、機械判読を全く想定していないデータの書き方・並べ方となっているものが多く、プログラムを書ける人にとっては苦痛な状況も多い。 \n", - "\n", - "総務省統計局は令和2年2月に、政府統計(e-Stat)に関して[統計表における機械判読可能なデータの表記方法の統一ルールの策定](https://www.soumu.go.jp/menu_news/s-news/01toukatsu01_02000186.html)というものを出している。\n", - "これが最適な提案かはさておき、データの記述に法則性と機械判読性をもたせる意識を全員が持つことが重要なように思う。\n", - "\n", - "お掃除ロボットが床を綺麗にするためには、まずお掃除ロボットが走れるよう掃除する(床に物が散乱していない)という条件が求められる、という話だ(そうなの?)。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jH_bE8PSMP89" - }, - "source": [ - "## パスの指定\n", - "\n", - "ファイルがコンピュータ上でどこにあるかを指し示す文字列はファイルパス(path)と呼ばれる。 \n", - "```\"/content/drive/My Drive/XXX.png\"```もファイルパスの一例になっている。\n", - "\n", - "たとえば... \n", - ">[Sota]というユーザの[ドキュメント] (あるいは[書類])フォルダに \n", - "[csv_file]というフォルダがあり[test.csv]というcsvファイルが入っている\n", - "\n", - "とするとそのファイルを指し示すパスは \n", - "Windowsの場合→ ```C:\\Users\\Sota\\Douments\\csv_file\\test.csv``` \n", - "macOSの場合→ ```/Users/Sota/Documents/csv_file/test.csv```\n", - "となる。\n", - "\n", - "注: \n", - "* Windowsの場合→\"C\"の部分は皆さんのディスク環境に依存\n", - "* Google Colab.環境では、Unix(Mac)やLinuxと同様の方式(スラッシュを使用) \n", - "* バックスラッシュ\\はWindowsの日本語環境では¥円記号で表示される \n", - "(プログラムなどを書く人には厄介な仕様だったりする) \n", - "\n", - "コンピュータには、ホームディレクトリというものが指定されておりWindowsなら ```C:\\Users\\ユーザー名```,Macなら ```/Users/ユーザー名```に通常設定されていて、ユーザーがよく使うデスクトップや写真・ドキュメントなどのフォルダはホームディレクトリ直下に配置されている。また、ホームディレクトリは```~/```で簡略化して指定することもできる。\n", - "OSにもよるが...ライトユーザーはホームディレクトリより上の階層をあまり触らないことが推奨されている(と思う)。理由は、システムファイルが入っていることが多いため。\n", - "\n", - "パスの指定の仕方にはその他にも方法があり、ピリオドやスラッシュを駆使して現在のディレクトリからの[相対パス]で指定する事もできる。たとえば...\n", - "\n", - "Home \n", - "├ Documents \n", - "│└─ AdDS2021 \n", - "││  └─ Report1 \n", - "│└─ AdDS2020 \n", - "││  └─ Report1 \n", - "││  │  └─ StudentA \n", - "││  │  └─ StudentB \n", - "││  └─ Report2 \n", - "│└─ AdDS2019 \n", - "├ Picures \n", - "︙\n", - "\n", - "こういう階層構造になっていて、現在```Home/Documents/AdDS2020/Report1```という\n", - "ディレクトリにいるとすると、そこから\n", - "* StudentAへの相対パスは ```./StudentA```\n", - "* Report2への相対パスは ```../Report2```\n", - "* AdDS2019への相対パスは ```../../AdDS2019```\n", - "* Pictureへの相対パスは```../../../Pictures```\n", - "\n", - "といった感じ。前述のように愚直にReport1フォルダを指定するときは```/Users/Sota/Documents/AdDS2020/Report1```といった感じで、これを相対パスと対比させて絶対パスと呼んだりする。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kkrEMQUfhqzA" - }, - "source": [ - "### 余談: ファイル名に使用すべきでない文字\n", - "\n", - "授業で公開しているノートブックの名前は基本的に半角英数字とアンダースコアのみで構成されている。これは別に作成者(吉田)がイキってる訳ではない。\n", - "\n", - "* 半角スペース(以下␣という記号で表現する)\n", - "* 各種括弧 (),{},[]\n", - "* カンマ ,\n", - "* ピリオド .\n", - "* ハイフン -\n", - "* スラッシュ /\n", - "* エクスクラメーションマーク !\n", - "* 円記号(バックスラッシュ) ¥\n", - "* その他、機種依存文字などはもちろん、全角記号等\n", - "\n", - "などは、(プログラムで扱う予定がある)ファイルの名前には使用しないことが推奨される。その理由は色々あるが\n", - "\n", - "1. 機械の解釈にambiguity(あいまいさ)が生じる\n", - "2. (1.により人間側の操作が増えて)面倒\n", - "\n", - "というところに尽きる。例を示そう。 \n", - "Google Colab.上では冒頭に!を付けることで、以下に例を示すようなLinuxコマンドを実行できる。\n", - "\n", - "```!ls hogehoge.pdf``` #← lsコマンド リスト(該当ファイル等)を表示 \n", - "```!mkdir hogehoge``` #← make directoryコマンド \n", - "```!rm hogehoge``` #←remove(削除)コマンド " - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "i7-Lssixk1ig" - }, - "source": [ - "たとえば半角スペースが入った```test␣.pdf```というファイルがあったとする。 \n", - "これをlsコマンドで表示させようとして\n", - "\n", - "```\n", - "!ls test .pdf\n", - "```\n", - "\n", - "という命令を行うと、```test␣.pdf```という指定ではなく```test```と```.pdf```という2つのファイルが存在するかどうかを尋ねる命令になってしまう。 \n", - "この場合、```test␣.pdf```の有無を調べたければ、別途バックスラッシュを入れて「記号としての空白です」と機械に教えなくてはならない。 \n", - "```\n", - "!ls test\\ .pdf\n", - "```\n", - "\n", - "といった具合に、人間側の手間が必要になってしまう。 \n", - "人間が目で見るフォルダ名と機械に与えるべきパスが異なるというのは...やっぱり色んな場面で不便が生じる。\n", - "上記の記号や2バイト以上の文字はファイル(フォルダ)名に使わないのがコンピューターにとっては無難なのだ。\n", - "こういうことは小中高や大学でも理由付きで教えてくれなかったりするので、プログラミングをやって初めて気がつく(気にするようになった)という人も多いかもしれない。\n" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter8_handling_files.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb deleted file mode 100644 index 8614dbdc..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb +++ /dev/null @@ -1,1168 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sKor3X3ievgT" - }, - "source": [ - "# 機械学習: ニューラルネットワークによる回帰" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4qZBy99AnBTn" - }, - "source": [ - "\n", - "\n", - "この章では、最も単純な、入力層・隠れ層・出力層からなるニューラルネットワークを使って、データから尤もらしい予測を与える関数を構築してみましょう。\n", - "\n", - "対象とする(疑似)データは、多項式回帰の際に用いたデータと同じsin関数+ノイズで生成することにします。\n", - "\n", - "\n", - "* すすんだ注: このノートブックでは「ニューラルネットワークをPythonで表現してみる」ことに重きをおくため、使用するデータを訓練データ,検証データ,テストデータに分けることはせず、データは全てニューラルネットワークの訓練データとして使うこととします。\n", - "授業で説明するとおり、一般に[教師あり学習]の文脈でニューラルネットワークを考える際は、本来データを上の様に複数用途に分けながら、モデル選択を行ったり、汎化性能の評価に使ったりします。" - ] - }, - { - "cell_type": "code", - "execution_count": 135, - "metadata": { - "id": "nme6EtxcerdN", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "def create_toy_data(sample_size, std):\n", - " np.random.seed(1234) #毎回同じデータになるように乱数の種を固定しておく \n", - " x = np.linspace(0, 0.5, sample_size)\n", - " t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape) \n", - " return x, t\n", - "\n", - "xt,yt = create_toy_data(40,5.e-2) " - ] - }, - { - "cell_type": "code", - "execution_count": 136, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "kZDRP8GFCSl1", - "outputId": "b2d6c33e-26ad-45d1-ed2a-30b914602522", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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3ok2PhEROXDff+/f3998E3r29GbbRx8NTz8NVarAiy9GHWF6UhImAHz4oU9FFm6WaubHp0+PJi4RETl4b78NP/+592XMzwwuucT3+5XEUxImgO/1uH597HPr1vl5ERFJTiH4jiWxlCunkpOoKAkTAAYNguee84Qrv5wcePll3xxWRESS08kn+4xG4VXvIcCzz8Lpp0cTV7pTEiYANG/um2h37+41AvPmweOPwwknwC23lHxLIhERKXsOO8xXvffu7clYCL7n75VX+pvvwYOjjjA9adsi+cltt0GXLvCPf8CDD0KzZjBqFJxyStSRiUX5fHwAABHUSURBVIjIwbrlFqhbF379a1i5EipVgiFDYNq0vAVZklgW4jgRbGa9gYeBDOCJEML/FXPdAOAloHMIIXtvHzMrKytkZ+/1EhERESlGCLBliydhGRlRR5P6zGxuCCEr1rm4TUeaWQYwAugDtAIGm1mrGNdVA64DZsUrFhEREXFm3pJICVj04lkT1gVYFkJYHkLYDowF+se47i7gz8DWOMYiIiIiUqbEMwmrB6zO9zon99hPzKwj0CCEMHlvH8jMhppZtpllry+uj4KIiIhIEolsdaSZlQMeBH67r2tDCCNDCFkhhKzMzMz4ByciIiISZ/FMwtYA+Xvz1s89tkc1oA3wrpmtALoBE80sZvGaiIiISCqJZxI2B2hmZk3MrCIwCPhpY4QQwsYQQu0QQuMQQmPgI6DfvlZHioiIiKSCuCVhIYSdwHBgKrAYGBdCWGhmd5pZv3h9XhEREZFkENdmrSGEKcCUQsduLebak+IZi4iIiEhZom2LRERERCKgJExEREQkAkrCRERERCKgJExEREQkAkrCRERERCKgJExEREQkAnFtUSEiIiLJb+1aWLAAateGDh3ALOqIUoOSMBEREYlpyxa46ip49VU49lhYuRKqVIFnnvFkTA6OkjARERGJ6bLLYNcuWLECqleHEOCFF6B3b/j0Uzj88KgjTG6qCRMREZEivvoK3nwTnnrKEzDwacgLL4T+/eHxx6ONLxUoCRMREZEi5syBE0+EQw4peq5vX/joo8THlGqUhImIiEgRNWvC11/HPvf1135eDo6SsBS2bh3cfz9ccw389a/w7bdRRyQiIsnipJNg1Sp4772Cx3/8ER55BIYMiSSslKIkLEVNmgTHHAOLF0PTpjB7NrRo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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "###グラフにしてみる\n", - "import matplotlib.pyplot as plt\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qG3GbElypvo7" - }, - "source": [ - "ではいくつか必要な関数を適宜定義しながら進めていきましょう。\n", - "\n", - "*注: 以下のコードは入力・出力ともに1次元かつ、決まったニューラルネットワーク構造の場合に対して書かれているため、naiveに2層以上の隠れ層を持つニューラルネットワークに拡張するのはstraightfowardではなく、また効率的ではありません。" - ] - }, - { - "cell_type": "code", - "execution_count": 137, - "metadata": { - "id": "uRYnoX_rhm6U", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "nhl = 8 ## 隠れ層のノードの数を指定 これを増やすほどニューラルネットワークの表現能力が上がる一方、データに過適合しやすくなる(例外あり)" - ] - }, - { - "cell_type": "code", - "execution_count": 138, - "metadata": { - "id": "9NjbaZrFpw0K", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#重み行列W,V(今はベクトル)と、隠れ層でのバイアスbs,出力層でのバイアスを正規乱数で初期化\n", - "np.random.seed(1234) #結果が実行ごとに同じになるよう乱数を固定(バグを見つけやすくする)\n", - "W = np.random.normal(0.0,1.0,nhl)\n", - "V = np.random.normal(0.0,1.0,nhl)\n", - "bs = np.random.normal(0.0,1.0,nhl)\n", - "b0 = np.random.normal()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OqSaHMtth5to" - }, - "source": [ - "隠れ層で作用させる活性化関数を定義しておきましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": 139, - "metadata": { - "id": "z8XFRbf6h6q9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#シグモイド関数: 活性化関数の一つ\n", - "def sigmoid(z):\n", - " return 1.0/(1.0+np.exp(-z))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iHf3g_gsiENm" - }, - "source": [ - "最適化したい量(データとモデルの齟齬を表す量)を目的関数(target function)やloss functionなどと呼びます。(以下でもそれに倣う)\n", - "\n", - "以下では、データとANNのアウトプットの二乗誤差を目的関数として定めることにします。" - ] - }, - { - "cell_type": "code", - "execution_count": 140, - "metadata": { - "id": "AsIEltHxiEY4", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "### データとANNの出力間の二乗誤差を計算する関数を作っておく。\n", - "def calc_tloss(x,y,tW,tV,tbs,tb0,acf):\n", - " nhl = len(tW)\n", - " s=0.0\n", - " for i in range(len(x)):\n", - " s += (np.dot(tV, acf(tW*x[i]+tbs)) + tb0 - y[i])**2\n", - " return s" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Q_QhyjGnQVyJ" - }, - "source": [ - "上ではcalc_tlossの引数にacfという変数を指定し、acfにsigmoidを指定しました。 \n", - "この様にしておくと、sigmoid関数以外の活性化関数を使う際にも、上のcalc_tloss関数が使いまわせますね。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6P_hprmIWE0w" - }, - "source": [ - "## データの下処理\n", - "\n", - "機械学習などの分析では、データの値を中心0,分散1に変換して扱うのが基本です。\n", - "\n", - "このことを、データの標準化と呼びます。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 141, - "metadata": { - "id": "ABVMF4Y9WCBN", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "ymean = np.mean(yt)\n", - "ystd = np.std(yt)\n", - "ny = (np.array(yt)-ymean)/ ystd #それぞれのデータを平均をひいて標準偏差で割る" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p_n9AjxUYWUr" - }, - "source": [ - "なぜ標準化が必要なのかは、今のような1次元入力データの場合よりもむしろ多変数を扱う際を考えてみるとわかります。\n", - "\n", - "変数ごとに標準的なスケールが違う値を扱う場合、スケールの大きな量に学習が引っ張られる、ということが起こりえます。\n", - "\n", - "たとえば目的関数を[体重と身長、それぞれについての二乗誤差の和]とする場合、 \n", - "データが50kg、ニューラルネットワークの予測が55kgで10%違っていても、二乗誤差の値は25ですが、 \n", - "身長が180cm vs 198cmと10%違っていたら、二乗誤差の値は324となります。 \n", - "したがって、目的関数は身長の予測精度により強く依存することになり、 \n", - "身長をより重視する(きちんと再現する)方向へ、ニューラルネットワークの学習が引っ張られてしまいます。\n", - "\n", - "もちろん、身長をより高い精度で推測したいニューラルネットワークを構築したいなら話は別ですが、 \n", - "特定の値を特別視しない(全ての量を平等に扱う)のなら、通常は標準化を行います。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 142, - "metadata": { - "id": "e01pxFk0Qiuj", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "acf = sigmoid #sigmoid関数をacfという名前で使う" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eUXQaPuVQ_FR" - }, - "source": [ - "さて、初期値W,V,bs,b0と活性化関数にsigmoidを選んだニューラルネットワークとデータの値の二乗誤差は..." - ] - }, - { - "cell_type": "code", - "execution_count": 143, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Xsdv35IfQ_bs", - "outputId": "958a2fc0-1afa-4736-bde7-4c3051d1aedb", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "初期値での二乗誤差 61.29358546868393\n" - ] - } - ], - "source": [ - "print(\"初期値での二乗誤差\",calc_tloss(xt,ny,W,V,bs,b0,acf))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q5o7mlnFMPLF" - }, - "source": [ - "データ1個あたり、ニューラルネットワークとデータ値との間にどれくらい誤差があるかというと..." - ] - }, - { - "cell_type": "code", - "execution_count": 144, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "84AJ8uM3MYxi", - "outputId": "a374719e-bd7f-4d97-ad61-2d02ef322096", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "データ1個あたりの誤差: 1.2378770684995737\n" - ] - } - ], - "source": [ - "print(\"データ1個あたりの誤差:\", np.sqrt(calc_tloss(xt,ny,W,V,bs,b0,acf)/len(xt))) #データ1個あたりどれほど誤差*があるか *標準化された誤差" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iV0s8cpJrN2e" - }, - "source": [ - "ランダムに生成した重み(W,V)やバイアス項(bs,b0)では、まだニューラルネットワークは訓練がなされていないデタラメな関数なので、図にプロットしてみると...\n" - ] - }, - { - "cell_type": "code", - "execution_count": 145, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "pSmbEHP9MhfL", - "outputId": "3b7c5b66-55f3-4e47-dfca-3e5e2184ae62", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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sVtv9ZatIh99BKNHw7Bhyc8791zo2RM+/tgH8E+YAG+9BVdfDQsWJD/nmWdg4EDo3RvefRdGjvSWtjPOSJ4EppqF2HecAXJyckJubm7UYYiIiEg5+eYbOPNM+O9/4eSTYflyb7F65BE466ySxy9YAKee6sdVSxhYddttsG4dPPhgfPmmTXDAATBtGhx+eHF5fj4cd5wne7/6Vfm+LwAzmxtCyElWp5YwERERidR++8HMmfDPf0Lz5jBgAKxYkTwBA1iyBHJySiZgAN26eX2it9/27srYBAwgOxuuuAImTtztt7HTNDBfREREImcGxxzjXzvStKm3hhUUQFZCc9Knn3p9oo0boW7d5M9Xty5s2LDzMe8utYSJiIhIRuncGerUgYceii/Py4O//hUuu6zkOd27w6xZsGZNybqJE+GEE1IT6/aoJUxEREQyihmMHw+nnAJTp/r3FSvgySfhppuSL+5arx4MHQr9+sFjj0GrVt76NXKkL3Nx333pfx9KwkRERCTjtG7t2x0984zvN1mvno8ra9my9HPuugvuvBN69PAuyHXrvIXszTf9/HTT7EgRERGpUjZt8pazffaBBg1S+1rbmx2pljARERGpUmrW9Ja0qGlgvoiIiEgElISJiIiIREBJmIiIiEgElISJiIiIREBJmIiIiEgElISJiIiIREBJmIiIiEgElISJiIiIRECLtcZYsQIefxy+/BLatoULLoCGDXd83oYN8O23UL++LwAnIiIisiNqCSs0bpzvyv7tt9CtG3z2GbRvD6+/Xvo5P/4IV1wBjRpBTg40bgw33gibN6cvbhEREclMSsKAvDwYPhzeegseeAAuuwzGjIGJE2HQIPj555Ln5OdD796wcaMnbKtWwZw5vpnoeeel/z2IiIhIZlESBjz5pCdb7dvHlx93nLdwTZpU8pzp0z05GzMGfvlLL2vRwhO3996DTz5JedgiIiKSwZSE4S1hBx+cvK5dO/jqq5Llr7wCAwdCVsJvsGZNOOssrxcREREpjZIwPNF6//3kde+9lzxBq17duyKT2bDB60VERERKk9IkzMx6mtliM1tqZjcmqa9pZs8U1s8ys+apjKc0Q4bAjBkwZUp8+UMPwdq10KtXyXP694cnnvCEK9a6dfDcc9C3b+riFRERkcyXsiUqzCwbGAWcDOQBc8xscghhYcxhlwDfhRBamtkg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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xp = np.linspace(0.0,0.5,300)\n", - "yp = np.array([np.dot(V, sigmoid(W*xp[i]+bs)) for i in range(len(xp))])\n", - "\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\") \n", - "ax.plot(xp,yp*ystd+ymean,label=\"ANN\") #ニューラルネットワークの予測ypは、\"標準化された\"yの値に従って学習されているので、元のスケールに戻さないといけない。\n", - "ax.legend()\n", - "plt.show(); plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zfYX7Od8NEDt" - }, - "source": [ - "当然ですが、全然だめですね。\n", - "\n", - "状況を改善するためにニューラルネットワークのパラメータを徐々に更新(学習)していきましょう。 \n", - "そのためには、まず勾配を計算する関数を用意しておきます。\n", - "\n", - "loss functionを$f$と書くことにすると、必要な勾配は4種類で\n", - "$\\frac{\\partial f}{\\partial W}, \\frac{\\partial f}{\\partial V}, \\frac{\\partial f}{\\partial b}, \\frac{\\partial f}{\\partial b_0}$です。 \n", - "プログラムではそれぞれ```dw,dv,dbs,db0```とでも名前をつけることにして、勾配を返り値として与える関数を定義します。\n", - "\n", - "以下では、勾配降下法, Adamの2通りの最適化手法を用いてパラメータを更新することとします。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wOxttwbLdc1E" - }, - "source": [ - "## 勾配降下法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nyeC4YIfjnua" - }, - "source": [ - "勾配降下法とは、目的関数を微分した勾配の値のみを使ってパラメータを更新する方法です。 \n", - "たとえば,重み$W$の$i$番目を更新する際には \n", - "$W_i := W_i - \\eta \\frac{\\partial f}{\\partial W_i}$ \n", - "とします。($f$は目的関数で、$\\eta$は学習率(パラメータ更新のスケールを決めるパラメータ)です。)" - ] - }, - { - "cell_type": "code", - "execution_count": 146, - "metadata": { - "id": "xyL8Tvp1r6F-", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def calc_der(x,y,tW,tV,tbs,tb0,acf,acfder):\n", - " tdw = np.zeros(nhl)\n", - " tdv = np.zeros(nhl)\n", - " tdbs = np.zeros(nhl)\n", - " tdb0 = 0.0\n", - " #以下の勾配の計算は、目的関数が二乗誤差かつ全データでの勾配の和を使用する場合にのみ正しい\n", - " for i in range(len(x)):\n", - " g = np.dot(tV, acf(tW*x[i]+tbs) ) + tb0 - y[i]\n", - " tdb0 += 2.0 * g\n", - " for jth in range(nhl): \n", - " tdv[jth] += 2.0 * g * acf(tW[jth]*x[i]+tbs[jth])\n", - " tdw[jth] += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth]) *x[i]\n", - " tdbs[jth] += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth])\n", - " return tdw, tdv, tdbs, tdb0\n", - "\n", - "#シグモイド関数の微分: 勾配の計算を具体的に求めるのに使う\n", - "def sigmoid_der(z):\n", - " return np.exp(-z)/ ((1.0+np.exp(-z))**2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UOWJiYG6Nrp5" - }, - "source": [ - "さてW,V,bs,b0の初期値での勾配の値は" - ] - }, - { - "cell_type": "code", - "execution_count": 147, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "6Px2oXdcNzTQ", - "outputId": "413b3795-ca17-4929-b956-278ea19b15f9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([ 5.21872673e-02, -8.03960749e+00, 1.83009108e+00, 1.91103332e+00,\n", - " 3.24927634e+00, -7.23670010e+00, -1.12232153e+00, 7.58282404e-03]),\n", - " array([36.82875279, 29.24447765, 49.19261588, 9.67161219, 23.84412956,\n", - " 23.11524231, 35.19158249, 35.04412075]),\n", - " array([ 2.14818071e-01, -3.23527933e+01, 9.04076394e+00, 8.00770445e+00,\n", - " 1.34159140e+01, -2.80674027e+01, -4.66782630e+00, 2.97730658e-02]),\n", - " 58.69466810466825)" - ] - }, - "execution_count": 147, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "acf = sigmoid\n", - "acfder = sigmoid_der #sigmoid関数の微分sigmoid_derをacfderという名前で使う\n", - "calc_der(xt,ny,W,V,bs,b0,acf,acfder)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "k7vvCZExdmnK" - }, - "source": [ - "と計算できるようになりました。" - ] - }, - { - "cell_type": "code", - "execution_count": 148, - "metadata": { - "id": "skJRBuEBrn4b", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def fitGD(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose):\n", - " for i in range(nepoch):\n", - " tdw,tdv,tdbs, tdb0 = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder)\n", - " tW = tW - eta * tdw\n", - " tV = tV -eta * tdv\n", - " tbs = tbs -eta * tdbs\n", - " tb0 = tb0 -eta * tdb0 \n", - " if verbose == 1:\n", - " print(i, \"tloss =\", calc_tloss(x,y,tW,tV,tbs,tb0,acf))\n", - " return tW,tV,tbs,tb0,tdw,tdv,tdbs, tdb0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "W86sRWDOSZfU" - }, - "source": [ - "では実際に上の関数を使って、パラメータの値を更新してみましょう。 \n", - "(nhlの値に依りますが、ちょっぴり計算に時間がかかります)" - ] - }, - { - "cell_type": "code", - "execution_count": 149, - "metadata": { - "id": "Zy6GcfmpSZwc", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "nepoch = 2000\n", - "acf = sigmoid; acfder=sigmoid_der\n", - "verbose=0\n", - "eta = 0.01 #学習率(パラメータ更新のスケールを決めるパラメータ)\n", - "W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N-vuF2Z9SRXU" - }, - "source": [ - "更新された重み・バイアス(W,V,bs,b0)を使って、データとの二乗誤差を計算してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": 150, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "uZUXTpfhS1Y2", - "outputId": "97daaae6-ed44-4498-fc52-6a61ed1cbb00", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "学習後の二乗誤差 31.426829182338306\n" - ] - } - ], - "source": [ - "print(\"学習後の二乗誤差\",calc_tloss(xt,ny,W,V,bs,b0,acf))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3MfVJVWmTJlU" - }, - "source": [ - "すると、さっきより小さくはなっていますが、そこまで二乗誤差が減っていません。 \n", - "\n", - "実際にplotしてみても" - ] - }, - { - "cell_type": "code", - "execution_count": 151, - "metadata": { - "id": "fSpr9Db1SQZ1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "xp = np.linspace(0, 0.5, 500) \n", - "yp = 0.0*xp \n", - "for i in range(len(yp)):\n", - " yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 " - ] - }, - { - "cell_type": "code", - "execution_count": 152, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "M4SvRcWLSSyg", - "outputId": "8dab58c0-6aed-44f0-972f-4b1df0857d19", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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5ZehVi23QOiYMW5V9nCoOXr+eTeE8lqApakffRQ2bnS9VSLhpqJJ2NVXu1rFu+8u2b55s1sHb/36I38vKZ2EATRo0IAVK1YQFxdHREQEsbGxrFq1igsvvJDU1FS++uorHn/8caZNmwZARkZGwPMq8ny9WjFfRELY5s1uDakWLVzv1qHExLiE629/c4uJNm58+N6cmiQ319W5BRIbW35dmIg4c+a4NfJKa9bMLeWydKnbWaOy5ebmMn78eBYsWIDP52NlOevjVPS83ysEBwlEJJh273a9WN26wR13uKGAM890SdnhxMa6hC2cEjBwdXEffAAZGSXbrXXDK8OGeROXSKho2NAN65fm97v3noYNK+9nrV27Fp/PR2JiIk899RRNmjRh4cKFpKamkhNoJhFU+LzfS0mYiBxkrVsVvnFjt07Vjz+6obQ+feC009SjU55OnVyieu65RQvNbt7stgUCV0gvIuW75BLXm176PeaNN1ytZGXN5N2+fTvXX38948ePxxjDnj17aNasGREREbz++uv4C1Y1jouLY9++fQevK++8o6UkTEQO+vZbN5w4YQLUrevaYmPhwQfdJ9EPPvA2viO1apXbHHzECLjxRpg/v/J/xgsvuBmfxx3nivO7dHEzuj799OhmdomEg8suc7MiTzjB9R5//jnccgv86U+u5vJoZGZmHlyiYujQoZx22mncd999ANx44428+uqr9OrVi+XLl1OnTh0Aevbsic/no1evXjz11FPlnne0VJgvIgf94x9ur8FHHy177PHH3XDBU09VfVxHY+pU1yN11VUuSVqyBJ55xr25B2N/ytxctwF5/frl14mJhIuKFuaDmyk8ebJLwvbtcx9obrih/L1PqyMV5ovIEYuLc0syBLJtmzseSvbtc+tpzZzpatvADbdecokbYj3jDLelT2WKioImTSr3MUXCQWSk27M1yEtzVSsajhSRg0aPdkOOpfct3LHDLb9w4SGXYK5+3n/fDW8UJmCFWrRwwx+BNrwWEakq6gkTkYOaNnX1X8cf79brGTDA7fH48MNuJesKjipUG9u3l7/XY5s2boFIqVw5OfDhh7B4sVteYMyYyp3ZJqHHWospvWVEDXQk5V3qCROREm6+GV59FWbNcvskvveeqwN78EGvI/v9jjnGFfgGem/8/HPo3bvqY6rJVqxwe2Y++6y7/9VXbgHO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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.plot(xp,yp*ystd+ymean,label=\"ANN\") ## ニューラルネットワークの出力は標準化した値に対して学習されていることに注意\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cINfIqP4TTAV" - }, - "source": [ - "ほとんど学習が進んでいません...(絶望)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tDt2m0JKf1Ja" - }, - "source": [ - "学習の様子を都度printしてみる(```verbose=1```に設定する)ことにして \n", - "最初からやりなおしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": 153, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "U_Je7tlWfX9v", - "outputId": "72e92421-1808-4794-b074-74511b10a2e5", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "学習前のloss 61.29358546868393\n", - "0 tloss = 155.20176990047585\n", - "1 tloss = 636.6940976770327\n", - "2 tloss = 1982.0790483266553\n", - "3 tloss = 2056.051066857846\n", - "4 tloss = 75.1510373285995\n", - "5 tloss = 41.306942787588895\n", - "6 tloss = 40.230205073524374\n", - "7 tloss = 40.1956281449949\n", - "8 tloss = 40.19379266944327\n", - "9 tloss = 40.19298621925973\n", - "10 tloss = 40.19221490236367\n", - "11 tloss = 40.19144755457859\n", - "12 tloss = 40.19068317848521\n", - "13 tloss = 40.18992172293257\n", - "14 tloss = 40.189163166751285\n", - "15 tloss = 40.188407489902666\n", - "16 tloss = 40.18765467254862\n", - "17 tloss = 40.186904695016516\n", - "18 tloss = 40.186157537795744\n", - "19 tloss = 40.18541318153565\n" - ] - } - ], - "source": [ - "np.random.seed(1234)\n", - "W = np.random.normal(0.0,1.0,nhl)\n", - "V = np.random.normal(0.0,1.0,nhl)\n", - "bs = np.random.normal(0.0,1.0,nhl)\n", - "b0 = np.random.normal()\n", - "\n", - "nepoch=20 #20回だけ学習の様子を表示\n", - "verbose=1 \n", - "print(\"学習前のloss\", calc_tloss(xt,ny,W,V,bs,b0,acf))\n", - "#学習\n", - "W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TJaqgLw7Uaau" - }, - "source": [ - "あるところからは、ほとんど学習が進んでいない事がわかります。\n", - "\n", - "原因として考えられるのは\n", - "* loss functionをパラメータ(超)空間上にプロットした際にプラトーが存在する\n", - "* 最適化手法や学習率の設定が適切でない\n", - "* 初期値が悪い\n", - "\n", - "などがあります。\n", - "\n", - "勾配降下法は、最もシンプルな勾配を使った最適化手法ですが、学習の途中で勾配がほとんど0になってしまって(勾配消失ともいう)、学習が進まなくなってしまう、といったことがよく起こります。 \n", - "\n", - "「勾配が小さいなら勾配にかける学習率を大きくすればええんとちゃいまんの...?」 \n", - "と思うかもしれませんが、学習率を単純に大きくしてしまうと、明後日の方向にパラメータを更新するせいで目的関数が発散してしまいます。(eta=0.1などとして試してみてください)\n", - "\n", - "注) 勾配降下法を拡張した、データを部分的に使うことで学習が停滞することを防ぐ、確率的勾配降下法(Stochastic Gradient Descent; SGD)は現在もよく使われています。\n", - "\n", - "以下では、Adamと呼ばれる別の最適化手法を試してみましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "A3NSz6JulqFB" - }, - "source": [ - "## Adam" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n0QGVWTmltgl" - }, - "source": [ - "Adamは、勾配降下法の様にその都度の勾配の情報だけを使うのではなく、\n", - "以前の勾配の情報も有効活用する手法です。\n", - "\n", - "Adamは2014年に提唱された比較的新しい手法で、以降の機械学習の論文では、Adamが最もよく使われています。(*最も\"良い\"という意味では必ずしもありません)" - ] - }, - { - "cell_type": "code", - "execution_count": 154, - "metadata": { - "id": "AdFBxZceoktL", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def updateAdam(A,mt,vt,i,beta1,beta2,eps):\n", - " mhat = mt / (1.0-beta1**(i+1))\n", - " vhat = vt / (1.0-beta2**(i+1))\n", - " return mhat / (np.sqrt( vhat )+eps)\n", - "\n", - "def fitAdam(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose):\n", - " mts = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ]\n", - " vts = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ]\n", - " ## Adamで使用するパラメータ\n", - " beta1 = 0.9; beta2 = 0.999; eps = 1.e-6\n", - " omb1 = 1.0-beta1; omb2 = 1.0-beta2\n", - " ## 最適化\n", - " for i in range(nepoch):\n", - " tmp = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder) ### 勾配を計算するところまでは同じ。\n", - " for n,mt in enumerate(mts):\n", - " mts[n] = beta1 * mt + omb1 * tmp[n]\n", - " vts[n] = beta2 * vts[n] + omb2 * (tmp[n]**2)\n", - " ### 重み・バイアスの更新\n", - " tW += -eta * updateAdam(tW, mts[0],vts[0],i,beta1,beta2,eps)\n", - " tV += -eta * updateAdam(tV, mts[1],vts[1],i,beta1,beta2,eps)\n", - " tbs += -eta * updateAdam(tbs,mts[2],vts[2],i,beta1,beta2,eps)\n", - " tb0 += -eta * (mts[3]/(1.0-beta1**(i+1))) / ( np.sqrt( vts[3]/ (1.0-beta2**(i+1))) + eps)\n", - " if verbose and i % 500 == 0:\n", - " print(i, \"tloss =\", calc_tloss(x,y,tW,tV,tbs,tb0,acf)) \n", - " return tW,tV,tbs,tb0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZzDaa2zCoeIm" - }, - "source": [ - "それでは重みを初期化して、再び学習をしてみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": 161, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "4mkH2DuglqLS", - "outputId": "de51a9b4-c624-4aba-b11d-24dfd9ee7183", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "学習前のloss 61.29358546868393\n", - "学習後のloss [0.89838996]\n" - ] - } - ], - "source": [ - "np.random.seed(1234) ## Gradient descentと同条件でスタートするためseedを固定\n", - "W = np.random.normal(0.0,1.0,nhl)\n", - "V = np.random.normal(0.0,1.0,nhl)\n", - "bs = np.random.normal(0.0,1.0,nhl)\n", - "b0 = np.random.normal()\n", - "\n", - "nepoch=2000\n", - "verbose=False\n", - "eta = 0.05\n", - "\n", - "acf = sigmoid ; acfder =sigmoid_der\n", - "print(\"学習前のloss\", calc_tloss(xt,ny,W,V,bs,b0,acf))\n", - "W,V,bs,b0=fitAdam(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)\n", - "print(\"学習後のloss\", calc_tloss(xt,ny,W,V,bs,b0,acf))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0PJr6ceIFVS-" - }, - "source": [ - "さっきよりlossの値が小さくなっています。学習がうまく行ってそうですね。\n", - "\n", - "グラフにしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": 156, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "QlVmPtFxVr3u", - "outputId": "b04eee9d-d29e-4add-9f68-7aeac862198d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xp = np.linspace(0, 0.5, 500) \n", - "yp = 0.0*xp \n", - "for i in range(len(yp)):\n", - " yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 \n", - "ytruth = np.sin(2*np.pi*xp)\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.plot(xp,yp*ystd+ymean,color=\"C01\",label=\"ANN\")\n", - "ax.plot(xp,ytruth,color=\"C02\",label=\"Ground Truth\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jOaGjLWiGE0-" - }, - "source": [ - "のように、データの特徴をそこそこうまく捉えたニューラルネットワークへと学習が進みました。\n", - "\n", - "実際には、ニューラルネットワークの精度(良さ)は、前述のような検証データに対する汎化性能で評価します。 \n", - "\n", - "上で示した例では、3層のニューラルネットワークにデータからそれらしい関数を学習させてみました。\n", - "\n", - "ニューラルネットワークの構造をより複雑化したりしながら、より複雑で高次元な回帰問題に応用したり、回帰問題だけではなく分類問題・画像生成・物体検知などなど、各種の楽しい実社会の問題に応用していきます。 (例: 第2回で説明した敵対的生成ネットワーク)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qMB-1YMwdqij" - }, - "source": [ - "## 最適化手法に関するまとめ\n", - "\n", - "ニューラルネットワークの学習がうまく進むかどうかは一般に\n", - "1. ネットワークの構造(アーキテクチャとも言ったりします)や活性化関数(とその微分)の持つ性質\n", - "2. 最適化手法や手法内のパラメータ\n", - "3. 重みやバイアスの初期値\n", - "\n", - "などに強く依存します。\n", - "\n", - "1.に関して \n", - "回帰問題における代表的な活性化関数としては\n", - "最近の傾向として、sigmoidよりも以下のReLU関数が使われることが多いです。 \n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 157, - "metadata": { - "id": "LKDihzzDT0-H", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def relu(z):\n", - " return (z > 0)* z \n", - "\n", - "def relu_der(z):\n", - " return (z > 0)*1.0 \n", - " \n", - "#いずれも、zが実数値でもnp.array型のベクトルでも対応可能な表式" - ] - }, - { - "cell_type": "code", - "execution_count": 158, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "M962DFirJgu9", - "outputId": "ce0db346-fd65-47d4-8fcd-911179489442", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "##適当な区間のxの値を用意する\n", - "xp = np.linspace(-10.0,10.0,100)\n", - "yp_sigmoid = sigmoid(xp)\n", - "yp_relu = relu(xp)\n", - "\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax1 = fig.add_subplot(121)\n", - "ax1.plot(xp,yp_sigmoid,label=\"Sigmoid\")\n", - "ax1.legend()\n", - "ax2 = fig.add_subplot(122)\n", - "ax2.plot(xp,yp_relu,label=\"ReLU\")\n", - "ax2.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "f9ELoAn8hYNr" - }, - "source": [ - "sigmoid関数はx->+∞で1.0, x=-∞で-1.0に漸近します。\n", - "\n", - "一方でReLU関数はx=0までは0.0で、x>0.0で、xとなるような関数です。\n", - "\n", - "\n", - "なぜReLUがよく使われる様になったかと言うと、 \n", - "(特に隠れ層の数が多い深層学習において)学習するにつれて勾配の値が小さくなって学習が進まない、\n", - "という問題を解決するためです。\n", - "\n", - "それぞれの関数の微分を表示してみると" - ] - }, - { - "cell_type": "code", - "execution_count": 159, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "dj-P7bDfvYpr", - "outputId": "c8bf0288-f777-4bb1-efb2-d1546c867027", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xp = np.linspace(-10.0,10.0,100)\n", - "yp_sigmoid = sigmoid_der(xp)\n", - "yp_relu = relu_der(xp)\n", - "\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax1 = fig.add_subplot(121)\n", - "ax1.plot(xp,yp_sigmoid,label=\"Sigmoid\")\n", - "ax1.legend()\n", - "ax2 = fig.add_subplot(122)\n", - "ax2.plot(xp,yp_relu,label=\"ReLU\")\n", - "ax2.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B0FHTFBwvtLP" - }, - "source": [ - "sigmoid関数は微分の値が最大で0.25なのに対して、ReLU関数では最大1.0となるため勾配の消失が起こりにくいのです。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PiFx3X4xJd7V" - }, - "source": [ - "問題ごとに何が最適なネットワーク構造だったり活性化関数なのかは、 \n", - "予め分かることはなく、試行錯誤が必要です。 \n", - "ここまでこの授業で勉強してきた皆さんは既に、 \n", - "「この試行錯誤自体を人力ではなくコンピュータにやらせる方法はないか」という点に思い至るのではないでしょうか?\n", - "\n", - "これに関連したお話はベイズ最適化の回で説明します。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hpVMAFUiwUtT" - }, - "source": [ - "3.に関して\n", - "\n", - "また、ネットワークの重みやバイアスをどのような値から始めるかに学習が依存する場合もあります。\n", - "\n", - "というのも、今考えた3層のニューラルネットワークでは、 \n", - "重み$W$の学習に使う勾配の表式は、$V$に比例しています。\n", - "\n", - "したがって単純に勾配の情報のみを使う最適化手法では、 \n", - "$V$の初期値を0に取ったり、学習の過程で偶然$V$の値が0に近くなってしまうと、 \n", - "$V$が更新されノンゼロの値を持つまで$W$の学習は始まりません。\n", - "\n", - "どのような初期値を採用するべきかに関しても、予め知ることは一般にはできませんが、 \n", - "いくつかの特定の場合に関して、推奨される方法というのは存在しています。\n", - "\n", - "例: ReLU関数を活性化関数に使うときはHeの初期値というものが推奨されている" - ] - } - ], - "metadata": { - "accelerator": "TPU", - "colab": { - "authorship_tag": "ABX9TyPpQYMbqGEZMRisgxppnqSm", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_ArtificialNeuralNetwork.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_BayesianOptimization.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_BayesianOptimization.ipynb deleted file mode 100644 index 5a5dd3c9..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_BayesianOptimization.ipynb +++ /dev/null @@ -1,934 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zy7aOwXne87b" - }, - "source": [ - "# ベイズ最適化による実験計画法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WSCRPDv9bBpz" - }, - "source": [ - "以下では、ベイズ最適化を用いた実験計画法を見てみよう。\n", - "\n", - "数学的部分やコードの詳細よりも「なんとなくこのあたりを探索しようかな」といった \n", - "人間の経験に依る部分を客観的な方法で置き換えた実験計画の方法論の強力さを感じることが目的なので難しいところはスキップしても構わない。\n", - "\n", - "ガウス過程の基本や詳細は[補足ノート](https://github.com/SotaYoshida/Lecture_DataScience/blob/main/notebooks/GPnote.pdf)に譲る.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "XWIv70U6e6In", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#使うライブラリのインポート\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import copy\n", - "from scipy import special\n", - "\n", - "## データの生成用関数\n", - "def f(x):\n", - " return np.sin(x) + 0.2 * x\n", - "\n", - "## ガウス過程のカーネル(共分散行列)の設計\n", - "def Mat52(Thetas,r):\n", - " tau,sigma = Thetas\n", - " thetar = r * np.sqrt(5.0)/sigma\n", - " return tau * (1.0 + thetar + (thetar**2) /3.0) * np.exp(-thetar)\n", - "def KernelMat(Thetas,xt,xp):\n", - " lt = len(xt); lp=len(xp)\n", - " Ktt = np.zeros((lt,lt)); Kpt = np.zeros((lp,lt)); Kpp = np.zeros((lp,lp))\n", - " for j in range(lt):\n", - " for i in range(j,lt):\n", - " r = abs(xt[i]-xt[j])\n", - " tmp = Mat52(Thetas,r) \n", - " Ktt[i,j] = tmp; Ktt[j,i] = tmp \n", - " for i in range(lp):\n", - " r= abs(xp[i]-xt[j])\n", - " Kpt[i,j] = Mat52(Thetas,r)\n", - " for j in range(lp):\n", - " for i in range(j,lp):\n", - " r= abs(xp[i]-xp[j])\n", - " tmp = Mat52(Thetas,r)\n", - " Kpp[i,j] = tmp; Kpp[j,i] = tmp\n", - " return Ktt,Kpt,Kpp\n", - "\n", - "## 事後共分散行列の計算\n", - "def calcSj(cLinv,Kpt,Kpp,yt,mu_yt,mu_yp):\n", - " tKtp= np.dot(cLinv,Kpt.T)\n", - " return mu_yp + np.dot(Kpt,np.dot(cLinv.T,np.dot(cLinv,yt-mu_yt))), Kpp - np.dot(tKtp.T,tKtp)\n", - "\n", - "## Cholesky分解\n", - "def Mchole(tmpA,ln) :\n", - " cLL = np.linalg.cholesky(tmpA)\n", - " logLii=0.0\n", - " for i in range(ln):\n", - " logLii += np.log(cLL[i,i])\n", - " return np.linalg.inv(cLL), 2.0*logLii\n", - "\n", - "## 獲得関数を計算, 次点の計算点を決める\n", - "def calcEI(xp,mujoint,sigmaj,xbest,ybest):\n", - " EIs = [ (mujoint[i]-ybest) * Phi((mujoint[i]-ybest)/sigmaj[i]) +\n", - " sigmaj[i]* np.exp(-0.5* ((mujoint[i]-ybest)/sigmaj[i])**2) for i in range(len(xp))]\n", - " xnew,ynew,ind=xybest(xp,EIs)\n", - " ynew= np.sin(xnew) + 0.2*xnew #+ 0.01 * (0.5-np.random.rand())\n", - " return xnew,ynew,EIs,ind\n", - "def Phi(z):\n", - " return 0.5 * special.erfc(-(z/(2**0.5)) )\n", - "\n", - "def xybest(xt,yt):\n", - " ind = np.argmax(yt)\n", - " return xt[ind],yt[ind],ind\n", - "\n", - "## お絵かき\n", - "def plotGP0(xt,yt,xp,ytrue):\n", - " fig = plt.figure(figsize=(8,4))\n", - " axT = fig.add_subplot(1,1,1)\n", - " axT.set_xlabel(\"x\"); axT.set_ylabel(\"y\")\n", - " axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0)\n", - " axT.scatter(xt,yt,marker=\"o\",color=\"black\",label=\"Data\")\n", - " axT.plot(xp,ytrue,color=\"red\",label=\"True\",linestyle=\"dotted\")\n", - " axT.legend(loc=\"upper right\")\n", - " plt.show()\n", - " #plt.savefig(\"BayesOpt_initial.pdf\",bbox_inches=\"tight\", pad_inches=0.1)\n", - " plt.close()\n", - "\n", - "def plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs):\n", - " fig = plt.figure(figsize=(16,4))\n", - " axT = fig.add_subplot(121)\n", - " axB = fig.add_subplot(122)\n", - " axT.set_xlabel(\"x\"); axT.set_ylabel(\"y\")\n", - " axB.set_xlabel(\"x\"); axB.set_ylabel(\"Acquisition function\")\n", - " axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0)\n", - " axB.set_xlim(-2.0,12)\n", - " axT.scatter(nxt,nyt,marker=\"o\",color=\"black\",label=\"Data\")\n", - " for i in range(len(ysamples)):\n", - " axT.plot(nxp,ysamples[i],alpha=0.1)\n", - " axT.plot(nxp,mujoint,label=\"GP mean\",linestyle=\"dashed\",color=\"blue\")\n", - " axB.plot(nxp,EIs,color=\"green\")\n", - " axB.set_yticklabels([]) \n", - " axT.fill_between(nxp,mujoint-sigmaj,mujoint+sigmaj,color=\"blue\", alpha=0.3)\n", - " axT.plot(xp,ytrue,color=\"red\",label=\"True\",linestyle=\"dotted\")\n", - " axT.legend(loc=\"upper right\")\n", - " plt.show()\n", - " plt.close()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "id": "jajF8gfhfJOo", - "outputId": "ce535d2e-ce2a-4a28-fc5c-f280bd89958a", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "Thetas=[2.0,2.0]\n", - "oxt = np.array([ 0.0 + 1.02*i for i in range(11)])\n", - "xp = []\n", - "for tmp in np.arange(-2.0,12.0, 5.e-2):\n", - " if (tmp in oxt)==False:\n", - " xp += [ tmp ]\n", - "xp = np.array(xp)\n", - "oyt = f(oxt)\n", - "ytrue = f(xp)\n", - "\n", - "SVs=[]\n", - "xt =[oxt[2],oxt[6]]; yt =[oyt[2],oyt[6]]\n", - "plotGP0(xt,yt,xp,ytrue)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xk7mXO-tfLVj" - }, - "source": [ - "一般には真の関数(赤色)は分からないので、勾配も計算できない。 \n", - "数値的に勾配を計算するには、各点で微小にxをずらした場合の観測が必要、さらに、学習率を変えながら適当な値を探索するというのは、1回のデータの観測(測定,取得,計算, etc.)コストが高い場合はあまり良い方策ではない。(\"学習率\"については最適化の章を参照)\n", - "\n", - "仮に勾配の計算ができたとしても、このデータの様に背後にある真の関数が多峰的(multimodal)な場合、勾配のみに基づく単純な最適化手法では局所解に停留する危険もある。\n", - "\n", - "そこでベイズ最適化を用いることで大局的な探索と局所的な探索をうまくトレードオフしながら最適値を探索する、ということを以下でデモンストレーションする。" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "5EmEXqIDfJ5P", - "outputId": "7218ed19-6bf8-40fb-aa87-c2807a66c156", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 -1.6999999999999997 -1.3316648104524687\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5yU9bX48c/3aVO271IVEQQFRUEMlmtJRGLXWGIsSRTTjDEmuSb3ei2/ezW58abcGI0aTbxJNCqmWYhgQYlijQUFbCA2QBQRFtgy7Wnf3x/P7LILCyzbntnd83695rU7szPzHJbZ3efMOd/zVVprhBBCCCGEEEKI/siIOwAhhBBCCCGEEKKrJKkVQgghhBBCCNFvSVIrhBBCCCGEEKLfkqRWCCGEEEIIIUS/JUmtEEIIIYQQQoh+S5JaIYQQQgghhBD9lhXnwZVSK4AmIAB8rfW0OOMRQgghhBBCCNG/xJrUFk3XWq+POwghhBBCCCGEEP2PtB8LIYQQQgghhOi3lNY6voMr9T6wEdDAb7XWt3ZwnwuACwDKyso+NXHixL4NUgghxID18ssvr9daD407jv5syJAhesyYMXGHIYQQYoDoyt/muNuPD9daf6iUGgY8ppRaprV+qu0dionurQDTpk3TCxcujCNOIYQQA5BSamXcMfR3Y8aMQf42CyGE6Cld+dsca/ux1vrD4sdPgPuBg+KMRwghhBBCCCFE/xJbUquUKlNKVbR8DhwDvB5XPEIIIYQQQggh+p8424+HA/crpVriuFtr/UiM8QghhBBCCCGE6GdiS2q11u8BU+I6vhBC9Cee57F69Wry+XzcofRLyWSSUaNGYdt23KEIIYQQoofFPShKCCFEJ6xevZqKigrGjBlDscNFdJLWmvr6elavXs3YsWPjDkcIIYQQPUz2qRVCiH4gn89TV1cnCW0XKKWoq6uTKrcQQggxQElSK4QQ/YQktF0n3zshhBBi4JL2YyGEEEIIIYQoIc1uM6sbV7M+u57GQiONhUYa8g1kvAyhDgnCIPqoo4+GMkiYCZJWkqSVJGFFnyfMBGk7TWWikqpkFdXJaqoSVSSt5IB6w1eSWiGEEJ2ydu1aLrnkEp5//nlqampwHIdLL72U0047jQULFnDKKacwduxYCoUCZ599NldddVXcIQshhBAlK+/neXPdm7y29jVe++Q13lz3JqsaVrG6cTUNhYZePbZt2FQlq6hKVLVLdmuSNdSkatp9rE3VtrutOlmNZZRWGlla0QghhChJWmtOPfVUZs6cyd133w3AypUreeCBB1rvc8QRRzB37lwymQz7778/J598MgcccEBcIQshhBAlpanQxBMrnmDBigU8ufJJlny8hEAHACStJHsP2Zu96vbiqLFHMapyFLtW7MrQsqFUJapaK61pO42pTEzDxFQmhjIwDZMgDCgEBfJ+noJf/Fi8nvWyNOQbaCg0tPu4Kb8p+rx4fXnzcjblN7Exv5Gsl93uv6XCqeg46d1BUlydrMY0zB7/3kpSK4QQYocef/xxHMfhwgsvbL1t99135zvf+c5W9y0rK+NTn/oU77zzTrukdsGCBVx11VVUV1fz2muvceaZZ7Lffvvxq1/9ilwux+zZsxk3bhzr1q3jwgsvZNWqVQBcf/31HHbYYbz44ot873vfI5/Pk0qluO2225gwYQK33347DzzwANlslnfffZfTTjuNn//8573/TRFCCCF2YENuA/e+eS+z35rN/Pfm4wYuCTPBv+z2L1x2+GVMGT6F/Ybvx/ja8d2qfhqmgW3alDvlPRJ3wS+wMb+RjbmNW33ckNsQfd7m9rfWv9V6PefntvvclYnKrZPe4vWrPtO1Li9JaoUQoh868sitbzvzTLjoIshm4YQTtv76+edHl/Xr4Ywz2n9twYLtH++NN97odNW1vr6e559/nv/8z//c6mtLlixh6dKl1NbWsscee/D1r3+dF198kV/96lfceOONXH/99Xzve9/jkksu4fDDD2fVqlUce+yxLF26lIkTJ/L0009jWRbz58/niiuu4N577wVg8eLFLFq0iEQiwYQJE/jOd77Dbrvt1ql4hRBCiJ6kteaJFU/wu1d+x31L76MQFBhbPZaLD7yYkyeczCGjDiFpJeMOc7sSVoIR5SMYUT5ipx+b9/MdJsPbSoqXrl/a+vUfTf9Rl+KVpFYIIcRO+/a3v80zzzyD4zi89NJLADz99NNMnToVwzC47LLLmDRp0laPO/DAAxk5ciQA48aN45hjjgFgv/3244knngBg/vz5vPnmm62PaWxspLm5mYaGBmbOnMnbb7+NUgrP81rvM2PGDKqqqgDYZ599WLlypSS1Qggh+lQQBvztzb/x02d+ypK1S6hOVvON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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1 10.20000000000001 1.3401253124064523\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2 11.950000000000012 1.8119225385829674\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3 11.950000000000012 1.8119225385829674\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZxcVZ3w/885997aq3rLTjaSQAhhSSAJOwPEwRnHnzrgMqgj+IzDOCo6zqM8OIwv8XngURyXUZnBB8d56Qw44gLOiCOKQCABMYQQCCEBwpIQCEmnl+qu9S7n/P6o7iaB7Onu25X+vl+veqVu1a1zvlXp6q5vnXO+R1lrEUIIIYQQQgghmpGOOwAhhBBCCCGEEOJwSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpuXF2rpR6CegHIiC01i6JMx4hhBBCCCGEEM0l1qR2wIXW2l1xByGEEEIIIYQQovnI9GMhhBBCCCGEEE1LWWvj61ypF4EewAL/z1p7y17OuRK4EiCbzZ5+wgknjG6QQgghjlqPPfbYLmvtxLjjaGYTJkyws2fPjjsMIYQQR4nD+dsc9/Tjc621ryilJgH3KKU2WWsf3P2EgUT3FoAlS5bYNWvWxBGnEEKIo5BSakvcMTS72bNnI3+bhRBCDJfD+dsc6/Rja+0rA//uBO4ElsUZjxBCCCGEEEKI5hJbUquUyiql8oPXgYuBp+KKRwghhBBCCCFE84lz+vFk4E6l1GAcP7TW3h1jPEIIIYQQQgghmkxsSa219gXg1Lj6F0KIZhIEAdu2baNWq8UdSlNKpVJMnz4dz/PiDkUIIYQQwyzuQlFCCCEOwrZt28jn88yePZuBGS7iIFlr6erqYtu2bRx77LFxhyOEEEKIYSb71AohRBOo1Wp0dHRIQnsYlFJ0dHTIKLcQQghxlJKkVgghmoQktIdPXjshhBDi6CXTj4UQQgghhBBNqxbWuPeFe3m682mWHbOM82edL19mjjMyUiuEEOKg7Nixg/e///3MmTOH008/nbPOOos777wTgBUrVtDS0sKiRYtYsGABX/ziF2OOVgghxHjwfPfznPEvZ/D2/3g7V//2ai74wQWc+b0z2VXZFXdoYhRJUiuEEOKArLW8613v4vzzz+eFF17gscce40c/+hHbtm0bOue8885j3bp1rFmzhltvvZW1a9fGGLEQQoij3av9r3LW987i5eLL/PjdP2bHZ3Zwy9tv4ckdT3LRDy6iq9IVd4hilEhSK4QQ4oDuu+8+EokEH/3oR4dumzVrFlddddWbzs1ms5x++uls3rx5j9tXrFjBH/zBH/DOd76TOXPmcM0113DbbbexbNkyTj75ZJ5//nkAOjs7ufTSS1m6dClLly7loYceAmD16tWcddZZLF68mLPPPptnnnkGgO9///tccskl/NEf/RHHHXccV1999Ui9DEIIIcaIyER88I4PUg7KrPofq3jPwvcwKTuJvzz9L7nrsrvYtGsTn7z7k3GHKUaJrKkVQogmdMEFb77tve+Fj30MKhV429vefP8VVzQuu3bBu9+9530rVuy/vw0bNnDaaacdVGxdXV088sgjfP7zn3/TfU888QQbN26kvb2dOXPm8JGPfITVq1fzzW9+k29/+9v84z/+I5/61Kf49Kc/zbnnnsvWrVt561vfysaNGznhhBNYuXIlruvy29/+lr/7u7/jZz/7GQDr1q3j8ccfJ5lMMn/+fK666ipmzJhxUPEKIYRoPt9Z8x3uf+l+/vUd/8qJE0/c477lc5Zz7XnXct0D1/HBkz/IHx/3xzFFKUaLJLVCCCEO2cc//nFWrVpFIpHg0UcfBWDlypUsXrwYrTXXXHMNCxcufNPjli5dytSpUwGYO3cuF198MQAnn3wy999/PwC//e1vefrpp4ce09fXR6lUolgscvnll/Pcc8+hlCIIgqFzli9fTktLCwAnnngiW7ZskaRWCCGOUpWgwvUrr+f8WedzxaIr9nrONedew+0bbueTd3+STXM34WhndIMUo0qSWiGEaEL7G1nNZPZ//4QJBx6ZfaOFCxcOjYoC/NM//RO7du1iyZIlQ7edd9553HXXXfttJ5lMDl3XWg8da60JwxAAYwyPPPIIqVRqj8d+4hOf4MILL+TOO+/kpZde4oLdhqt3b9dxnKG2hBBCHH1ufvRmXiu9xu3vvn2fVY6TbpL/c+H/4d0/eTd3bLyD9yx8zyhHKUaTrKkVQghxQBdddBG1Wo2bb7556LZKpTIifV188cV8+9vfHjpet24dAMVikWOOOQZorKMVQggx/gRRwNd+9zWWH7uc82edv99z33XCuzi+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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "5 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXycdbn//9fn3mbLZG3SlTZtZWsRaGnZCgKyiBwUBVmEo3B+RysoiHoUUUTlSL/KOSqoeI6n5+hRoXpwAxUXFgFlEUsLRTaFFtpSuiSZJJPZ7rm3z++PSUILLU2zdDrJ9Xw88mhm5p6ZK2mbzHuu6/O5ldYaIYQQQgghhBCiFhnVLkAIIYQQQgghhBguCbVCCCGEEEIIIWqWhFohhBBCCCGEEDVLQq0QQgghhBBCiJoloVYIIYQQQgghRM2SUCuEEEIIIYQQomZZ1XxypdR6IAeEQKC1XlTNeoQQQgghhBBC1Jaqhtp+J2mtu6pdhBBCCCGEEEKI2iPjx0IIIYQQQgghapbSWlfvyZV6CegBNPBfWuvlOzlmKbAUIJVKHXHQQQft3SKFEEKMW6tXr+7SWrdWu45aNmnSJN3e3l7tMoQQQowTw/ndXO3x4+O01q8opdqAe5RSf9Na/2n7A/qD7nKARYsW6VWrVlWjTiGEEOOQUmpDtWuode3t7cjvZiGEEKNlOL+bqzp+rLV+pf/PDuB24Mhq1iOEEEIIIYQQorZULdQqpVJKqfTA58BpwNPVqkcIIYQQQgghRO2p5vjxZOB2pdRAHT/SWv++ivUIIYQQQgghhKgxVQu1WusXgcOq9fxCCFFLfN9n06ZNuK5b7VJqUjweZ8aMGdi2Xe1ShBBCCDHKqr1RlBBCiCHYtGkT6XSa9vZ2+idcxBBprclkMmzatInZs2dXuxwhhBBCjDI5T60QQtQA13VpaWmRQDsMSilaWlqkyy2EEEKMUxJqhRCiRkigHT753gkhhBDjl4RaIYQQQohRdve6u3l8y+PVLkMIISYECbVCCCGGZNu2bVx44YXMmTOHI444gmOOOYbbb78dgAceeICGhgYOP/xwDj74YK677roqVyvGklJqqVJqlVJqVWdnZ7XL2adorbn2vmt5261v44KfXYDWutolCSHEuCehVgghxG5prXnXu97FW97yFl588UVWr17N//3f/7Fp06bBY44//njWrFnDqlWruPXWW3n8celSjVda6+Va60Va60Wtra3VLmefct9L93H9g9dz6ORDeaH7BR55+ZFqlySEEOOehFohhBC7dd999+E4DpdeeungdbNmzeKKK6543bGpVIojjjiCtWvX7nD9Aw88wAknnMBZZ53FnDlzuPrqq1mxYgVHHnkkb37zm1m3bh0AnZ2dnHPOOSxevJjFixfz8MMPA7By5UqOOeYYFixYwLHHHsvf//53AL7//e9z9tlnc/rpp7P//vtz1VVXjdW3QYjduu+l+zCVyd3/eDcpO8X/rvnfapckhBDjnpzSRwghatCJJ77+uvPOgw9/GIpFOOOM199+ySWVj64ueM97drztgQfe+PmeeeYZFi5cOKTaMpkMjz76KNdee+3rbnvyySd57rnnaG5uZs6cOXzgAx9g5cqVfOMb3+Bb3/oWN910E1deeSUf//jHOe6449i4cSNve9vbeO655zjooIN48MEHsSyLe++9l89+9rP8/Oc/B2DNmjU88cQTxGIxDjzwQK644gr222+/IdUrxGh6cOODLJy6kMl1kzlv/nnc9sxtfOP0b5ByUtUuTQghxi0JtUIIIfbYRz7yER566CEcx+Gxxx4D4MEHH2TBggUYhsHVV1/N/PnzX3e/xYsXM3XqVADmzp3LaaedBsCb3/xm7r//fgDuvfdenn322cH79PX1kc/nyWazXHzxxbzwwgsopfB9f/CYk08+mYaGBgDmzZvHhg0bJNSKva4clFn5yko+svgjAJx98Nn875r/5YmtT3DczOOqXJ0QQoxfEmqFEKIGvVFnNZl849snTdp9Z/a15s+fP9gVBfj2t79NV1cXixYtGrzu+OOP584773zDx4nFYoOfG4YxeNkwDIIgACCKIh599FHi8fgO97388ss56aSTuP3221m/fj0nbteu3v5xTdMcfCwh9qZVm1dRDsscP+t4AA5pOwSAZzuflVArhBBjSNbUCiGE2K23vvWtuK7Lf/7nfw5eVywWx+S5TjvtNL71rW8NXl6zZg0A2WyW6dOnA5V1tELsax7c+CAAS/ZbAsDMhpmk7BTPdDxTzbKEEGLck1ArhBBit5RS3HHHHfzxj39k9uzZHHnkkVx88cXccMMNo/5c3/zmN1m1ahWHHnoo8+bN4zvf+Q4AV111FZ/5zGdYsGCBdGLF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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "6 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZhcVZn48e85d6m1q3rJwpbQhJ0ASSAB2dcEBFEGRLZRcJnIsLjLIj8UVAZRAUWccXBmBCWjOAgoKMomCAQICQQUwhqSkJClt9qXu53fH9UdspGNJJVOv5/nqaf73rpd961Kum+99b7nHGWMQQghhBBCCCGEGIx0swMQQgghhBBCCCE2liS1QgghhBBCCCEGLUlqhRBCCCGEEEIMWpLUCiGEEEIIIYQYtCSpFUIIIYQQQggxaElSK4QQQgghhBBi0LKbeXKl1DygCIRAYIyZ2Mx4hBBCCCGEEEIMLk1NavsdY4zpbnYQQgghhBBCCCEGH2k/FkIIIYQQQggxaCljTPNOrtTbQB9ggP80xty6hmOmAlMBUqnUgXvttdeWDVIIIcQ2a9asWd3GmOHNjmMwGzZsmOns7Gx2GEIIIbYRG3Ntbnb78eHGmEVKqRHAQ0qpV40xf1vxgP5E91aAiRMnmpkzZzYjTiGEENsgpdT8Zscw2HV2diLXZiGEEJvKxlybm9p+bIxZ1P91GXAPcFAz4xFCCCGEEEIIMbg0LalVSqWUUi0D3wNTgH80Kx4hhBBCCCGEEINPM9uPRwL3KKUG4vhfY8yfmxiPEEIIIYQQQohBpmlJrTFmLjCuWecXQojBxPd9Fi5cSK1Wa3Yog1I8HmennXbCcZxmhyKEEEKITazZE0UJIYRYDwsXLqSlpYXOzk76O1zEejLG0NPTw8KFC9lll12aHY4QQgghNjFZp1YIIQaBWq1GR0eHJLQbQSlFR0eHVLmFEEKIbZQktUIIMUhIQrvx5LUTQgghtl2S1AohhBBCCCEGpQfeeID5OVlyfKiTpFYIIcR6Wbp0Keeccw5jxozhwAMP5JBDDuGee+4B4LHHHiObzTJ+/Hj23ntvrrnmmiZHK4QQYig463dncfOzNzc7DNFkktQKIYRYJ2MMp556KkceeSRz585l1qxZ/OY3v2HhwoXLjzniiCOYPXs2M2fO5I477uD5559vYsRCCCGGgqpfpeSVmh2GaDJJaoUQQqzTo48+iuu6XHDBBcv37bzzzlxyySWrHZtKpTjwwAN58803V9r/2GOPcdRRR/Gxj32MMWPGcPnllzNt2jQOOugg9ttvP9566y0Aurq6OP3005k0aRKTJk3iqaeeAmDGjBkccsghTJgwgUMPPZTXXnsNgNtuu43TTjuNE088kd13351LL710c70MQgghtiLGGPzIpxpUmx2KaDJZ0kcIIQaho49efd8nPgEXXgiVCpx00ur3n39+49bdDR//+Mr3PfbY2s/38ssvc8ABB6xXbD09PTzzzDNcddVVq9334osvMmfOHNrb2xkzZgyf+9znmDFjBj/+8Y/5yU9+wo9+9CO++MUv8uUvf5nDDz+cBQsWcMIJJzBnzhz22msvnnjiCWzb5uGHH+Yb3/gGv/vd7wCYPXs2L7zwArFYjD333JNLLrmEUaNGrVe8QgghBqfQhACS1ApJaoUQQmy4iy66iCeffBLXdXnuuecAeOKJJ5gwYQJaay6//HLGjh272s9NmjSJ7bffHoBdd92VKVOmALDffvvx17/+FYCHH36YV155ZfnPFAoFSqUS+Xye8847jzfeeAOlFL7vLz/muOOOI5vNArDPPvswf/58SWqFEGIb54eN60DVl6R2qJOkVgghBqG1VVaTybXfP2zYuiuzqxo7duzyqijAT3/6U7q7u5k4ceLyfUcccQT333//Wh8nFost/15rvXxba00QBABEUcQzzzxDPB5f6WcvvvhijjnmGO655x7mzZvH0SuUq1d8XMuylj+WEEKIbVcQNf7WS6VWyJhaIYQQ63TsscdSq9X4j//4j+X7KpXKZjnXlClT+MlPfrJ8e/bs2QDk83l23HFHoDGOVgghxNDmR41KbcXfPNcjMXhIUiuEEGKdlFLce++9PP744+yyyy4cdNBBnHfeeVx//fWb/Fw333wzM2fOZP/992efffbhZz/7GQCXXnopV1xxBRMmTJBKrBBCCGk/FsspY0yzY1hvEydONDNnzmx2GEIIscXNmTOHvffeu9lhDGpreg2VUrOMMRPf50fEepBrsxCiWRYWFjLqplHs0bEHr138WrPDEZvIxlybpVIrhBBCCCGEGHSkUisGSFIrhBBCCCGEGHQGxtTKRFFCklohhBBCCCHEoLN89mOp1A55ktQKIYQQQgghBp2B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PGpu7j+am/uE5uaBmJsXPJ88JZNaM/vyXG387m8v3+Vz3kGnXOYfuxepHCwzqwL/ArzVez/V7XgWm5ldAGzx3t/e7ViWWAScCnzIe38KMEvvl8LsYW7Pysvp/KGwDqiY2S91N6rDx3fOfuvr8980p+yf5ub+p7m5b2huHgD9Pjcf6HwSLW04B8d7/+J93W9mvwJcAJzj++eg3UeBjbt8vGHutr5jZjGdSfMfvff/2u14lsjzgJeZ2UuBIjBkZp/w3vfbL9tHgEe89zte0f8sfThxAi8G7vfebwUws38FzgQ+0dWoltZmM1vrvX/czNYCW7od0FLp0zll0WluBjQ39zrNzf1Fc3Ofzs0HM588JVdq98XMzqVTNvIy73292/EsoluBp5vZ0WaW0Nnofk2XY1p0ZmZ09njc7b3/827Hs1S895d67zd474+i83/51T6cNPHePwE8bGbPmLvpHOB7XQxpqTwEPNfMynPfw+fQh003dnMN8Lq5918HXN3FWJZMH88ph1UfP4+am/uI5ua+o7m5D+fmg51PrNdeTDWz+4ACMDZ3003e+9/oYkiLZu6VwyvpdG/7qPf+j7sc0qIzs+cDNwLf5cn9LJd576/rXlRLy8xeCPyu9/6CbseyFMzsZDoNNxLgR8DrvffbuxvV4jOzK4DX0imF+Tbwq977VnejWhxm9inghcAKYDPwLuDzwGeAI4AHgdd473dvWNFT5hnnpfTpnHI4aW7ubZqb+4/m5t43CHPzYs7LPZfUioiIiIiIiOzQc+XHIiIiIiIiIjsoqRUREREREZGepaRWREREREREepaSWhEREREREelZSmpFRERERESkZympFRERERERkZ6lpFZERERERER6lpJakT5hZs8xszvMrGhmFTO7y8xO6nZcIiIig0pzs8jhYd77bscgIovEzN4DFIES8Ij3/k+6HJKIiMhA09wssvSU1Ir0ETNLgFuBJnCm9z7vckgiIiIDTXOzyNJT+bFIf1kOVIEanVeFRUREpLs0N4ssMa3UivQRM7sG+DRwNLDWe/+mLockIiIy0DQ3iyy9qNsBiMjiMLOLgdR7/0kzC4FvmNnZ3vuvdjs2ERGRQaS5WeTw0EqtiIiIiIiI9CztqRUREREREZGepaRWREREREREepaSWhEREREREelZSmpFRERERESkZympFRERERERkZ6lpFZERERERER6lpJaERERERER6Vn/H8BkNtde7ak+AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5xcdb3/8df3lKnbs0kICckm9AChJDSR3ouAVBUURH4RMYhelQsEL+CFn2JDiuLlx70XlVi4aFC5NroUARMIggQEQhICadt36mnf3x+7G4OUhCVkstn38/GY3T1nzux8ZuexM+c932astYiIiIiIiIgMR06tCxAREREREREZKoVaERERERERGbYUakVERERERGTYUqgVERERERGRYUuhVkRERERERIYthVoREREREREZtrxa3rkxZjHQB8RAZK2dUct6REREREREZHipaagdcLC1tr3WRYiIiIiIiMjwo+7HIiIiIiIiMmwZa23t7tyYV4AuwAL/Ya29+S2OmQnMBMjn89N32GGHjVukiIhstubPn99urR1d6zqGs9bWVtvW1lbrMkREZDMxlPfmWnc//qC19jVjzBjgbmPM89baP619wEDQvRlgxowZdt68ebWoU0RENkPGmCW1rmG4a2trQ+/NIiKyoQzlvbmm3Y+tta8NfF8FzAX2qmU9IiIiIiIiMrzULNQaY/LGmPrBn4EjgGdrVY+IiIiIiIgMP7XsfjwWmGuMGazjJ9ba39ewHhERERERERlmahZqrbWLgF1rdf8iIsNJGIYsW7aMSqVS61KGpUwmw4QJE/B9v9aliIiIyAZW64miRERkPSxbtoz6+nra2toY6OEi68laS0dHB8uWLWPy5Mm1LkdEREQ2MK1TKyIyDFQqFUaNGqVAOwTGGEaNGqVWbhERkc2UQq2IyDChQDt0+tuJiIhsvhRqRURERERk2Hq973V+/cKva12G1JBCrYiIrJeVK1fysY99jClTpjB9+nT23Xdf5s6dC8ADDzxAY2Mju+22GzvuuCNXXnlljasVEZGR4pYnb+Gkn5+EtbbWpUiNKNSKiMg6WWs58cQTOeCAA1i0aBHz58/nZz/7GcuWLVtzzP7778+CBQuYN28et912G08++WQNKxYRkZGiGlWJbUxs41qXIjWiUCsiIut03333kUqlOO+889bsmzRpEhdccMGbjs3n80yfPp2XXnrpDfsfeOABDjzwQE444QSmTJnCxRdfzJw5c9hrr73YZZddePnllwFYvXo1J598MnvuuSd77rknjzzyCABPPPEE++67L7vvvjsf+MAHeOGFFwC49dZbOemkkzjqqKPYdtttueiii96vP4OIiGyCoiR6w3cZebSkj4jIMHTQQW/ed9ppcP75UCrBMce8+fqzz+6/tLfDKae88boHHnjn+/vb3/7GHnvssV61dXR08Nhjj/GVr3zlTdc9/fTTLFy4kJaWFqZMmcK5557LE088wXXXXccNN9zAd7/7XS688EK+8IUv8MEPfpClS5dy5JFHsnDhQnbYYQceeughPM/jnnvu4dJLL+UXv/gFAAsWLOCpp54inU6z/fbbc8EFF7DVVlutV70iIjK8KdSKQq2IiLxrn/3sZ3n44YdJpVL85S9/AeChhx5i9913x3EcLr74Ynbaaac33W7PPfdk3LhxAGy99dYcccQRAOyyyy7cf//9ANxzzz0899xza27T29tLoVCgp6eHs846ixdffBFjDGEYrjnm0EMPpbGxEYCpU6eyZMkShVoRkRFCoVYUakVEhqF3alnN5d75+tbWdbfM/rOddtppTasowPe+9z3a29uZMWPGmn37778/d9111zv+nnQ6veZnx3HWbDuOQxT1n4wkScJjjz1GJpN5w21nzZrFwQcfzNy5c1m8eDEHrdVcvfbvdV13ze8SEZHN3+BY2jjRmNqRSmNqRURknQ455BAqlQo33XTTmn2lUul9ua8jjjiCG264Yc32ggULAOjp6WH8+PFA/zhaERERUEutKNSKiMh6MMZw55138uCDDzJ58mT22msvzjrrLK655poNfl/XX3898+bNY9q0aUydOpUf/OAHAFx00UVccskl7L777mqJFRGRNRRqxQyn9ZxmzJhh582bV+syREQ2uoULF7LjjjvWuoxh7a3+hsaY+dbaGW9zE1kPem8WkVo7+86z+eHTP2TxhYuZ1DSp1uXIezSU92a11IqIiIiIyLC1Zkyt1qkdsRRqRURE5F0xxsw0xswzxsxbvXp1rcsRkRFO3Y9FoVZERETeFWvtzdbaGdbaGaNHj651OSIywinUikKtiIiIiIgMWwq1olArIiIiIiLD1uD6tFqnduRSqBURERERkWFLLbXi1boAERHZ9HV0dHDooYcCsGLFClzXZXAs5RNPPEEqlapleSIiMoIp1IpCrYiIrNOoUaNYsGABAFdccQV1dXV86UtfWnN9FEV4nt5SRERk41OoFZ2BiIjIkJx99tlkMhmeeuop9ttvPxoaGt4QdnfeeWfuuusu2trauO2227j++usJgoC9996b73//+7iuW+NHICIimwOtUys1H1NrjHGNMU8ZY+6qdS0iIsPGQQfBrbf2/xyG/du33da/XSr1b//85/3bPT3927/8Zf92e3v/9m9+07+9YsWQy1i2bBmPPvoo3/nOd972mIULF/Lzn/+cRx55hAULFuC6LnPmzBnyfYqIiKxNLbWyKbTUXggsBBpqXYiIiLw7p5566jpbXO+9917mz5/PnnvuCUC5XGbMmDEbozwRERkBFGqlpqHWGDMBOBa4GviXWtYiIjKsPPDAP372/Tdu53Jv3G5sfON2a+sbt7fYYshl5PP5NT97nkeSJGu2K5UKANZazjrrLL72ta8N+X5ERETejkKt1Lr78XeBi4Dk7Q4wxsw0xswzxsxbvXr1xqtMRETelba2Np588kkAnnzySV555RUADj30UO644w5WrVoFQGdnJ0uWLKlZnSIisnkZXJ9WoXbkqlmoNcYcB6yy1s5/p+OstTdba2dYa2cMLh8hIiKbnpNPPpnOzk522mknbrzxRrbbbjsApk6dylVXXcURRxzBtGnTOPzww1m+fHmNqxURkc3FYJgdDLcy8tSy+/F+wPHGmGOADNBgjLnNWntmDWsSEZF1uOKKK95yfzab5Y9//ONbXnf66adz+umnv49ViYjISKXux1Kzllpr7SXW2gnW2jbgI8B9CrQiIiIiIvJuKNRKrcfUioiIiIiIDNng+rQKtSPXprCkD9baB4AHalyGiIiIiIgMM2vG1FqNqR2p1FIrIiIiIiLDlrofi0KtiIiIiIgMWwq1olArIiIiIiLDltapFYVaERFZL67rsttuu7HTTjux66678u1vf5skSd7xNosXL+YnP/nJRqpQRERGIq1TKwq1IiKyXrLZLAsWLOBvf/sbd999N7/73e+48sor3/E2CrUiIvJ+U/djUagVEdkMzZkzh7a2NhzHoa2tjTlz5mzQ3z9mzBhuvvlmbrzxRqy1LF68mP3335899tiDPfbYg0cffRSAiy++mIceeojddtuNa6+99m2PExERGSqF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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "8 8.05000000000001 2.5908498356204\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "9 8.05000000000001 2.5908498356204\n" - ] - } - ], - "source": [ - "Thetas=[2.0,2.0]\n", - "nxp = list(copy.copy(xp))\n", - "nxt = copy.copy(xt)\n", - "nyt = copy.copy(yt)\n", - "\n", - "n_iter = 10 ## 探索回数の上限\n", - "xopt = 6; yopt = -1.e+30\n", - "SVs=[]\n", - "plot = True\n", - "#plot = False\n", - "\n", - "for iter in range(n_iter):\n", - " lt=len(nxt); lp=len(nxp)\n", - " Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp)\n", - " mu_yt= np.zeros(lt)\n", - " mu_yp= np.zeros(lp)\n", - " cLinv,logdetK = Mchole(Ktt,lt) \n", - " mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp)\n", - " sigmaj=[ Sjoint[j][j] for j in range(lp)]\n", - " ysamples = [np.random.multivariate_normal(mujoint,Sjoint) for i in range(10)]\n", - " SVs += [ [ mujoint, sigmaj] ]\n", - " xbest,ybest,ind= xybest(nxt,nyt)\n", - " xnew,ynew,EIs,ind = calcEI(nxp,mujoint,sigmaj,xbest,ybest)\n", - " if plot :\n", - " plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs)\n", - " nxt += [ xnew ]; nyt += [ ynew ]\n", - " nxp.pop(ind) \n", - " if ynew > yopt:\n", - " xopt= xnew; yopt = ynew \n", - " print(iter, xopt, yopt)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "T6Z8roWgcret" - }, - "source": [ - "探索点が増えるにつれて、効率的に最適解が探索出来ている(っぽい)。\n", - "\n", - "8回目の探索でx=8.05が探索されていて、真の解8.055...にそこそこ近いものが得られている。 \n", - "(実装の都合上、0.05刻みでしか点を打ってないことに注意)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s1KRB5HALEEX" - }, - "source": [ - "同じデータで、勾配法による最適化もやってみる。" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "iLMN0pJ3KcwN", - "outputId": "75f33bb6-c0cf-45d5-f45f-65accd178eb1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "探索回数 53 最適解(x,y)= 8.045494422941772 2.590816292488816\n" - ] - } - ], - "source": [ - "import numpy as np \n", - "\n", - "def f(x):\n", - " return np.sin(x) + 0.2 * x \n", - "def derf(x):\n", - " return np.cos(x) + 0.2 \n", - "\n", - "xexact = 8.055339554764814\n", - "\n", - "x = 6 \n", - "xopt = x; yopt=f(x)\n", - "tol = 1.e-2\n", - "eta = 1.e-1\n", - "\n", - "itnum = 10**4\n", - "for i in range(itnum):\n", - " x += eta * derf(x)\n", - " y = f(x)\n", - " if y > yopt:\n", - " xopt = x\n", - " yopt = y \n", - " if abs(xexact-xopt) < tol :\n", - " break\n", - "print(\"探索回数\",i, \"最適解(x,y)=\",xopt,yopt)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sOn3qlTGURH2" - }, - "source": [ - "$\\eta$を適切に選べれば、より少ない探索回数でより正確な解が求まるが、そんなことができたら苦労はしない...。\n", - "\n", - "また今の場合、勾配は式から計算したが、実際には差分をとって微分を近似することになるため探索回数は少なくとも2倍-3倍程度必要になる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4jSIRj1Dc3k8" - }, - "source": [ - "**言及しなかった重要な事項**\n", - "\n", - "* カーネル関数の選択と依存性\n", - "* ハイパーパラメータの最適化 or サンプリング\n", - "* 獲得関数の定義・選択と依存性\n", - "* 数値計算(とくにガウス過程の部分)のTips" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c1GBk01r0jz8" - }, - "source": [ - "## 備忘録: ライブラリの出力に関して" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "C4kpASFXurFl", - "outputId": "52b733dd-8b8e-4222-970d-856c242b1ad2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "train [2.04, 6.12] [1.2999286509533796, 1.061537984784846]\n", - "xp [-2. -0.44444444 1.11111111 2.66666667 4.22222222 5.77777778\n", - " 7.33333333 8.88888889 10.44444444 12. ]\n", - "My muj [5.75795234e-03 8.44113811e-02 7.33727607e-01 9.88413223e-01\n", - " 3.06567459e-01 9.73202438e-01 4.32586459e-01 4.31993679e-02\n", - " 2.79241473e-03 1.47812049e-04]\n", - "sigmaj [0.9999901297449515, 0.9978771506830272, 0.8245848824042269, 0.6584175494971636, 0.9813489474851831, 0.4100810951379304, 0.9125129281442049, 0.9991642392577667, 0.9999965079965879, 0.9999999902138795]\n" - ] - } - ], - "source": [ - "Thetas=[1.0,1.0]\n", - "nxp = np.linspace(-2,12,10)\n", - "nxt = copy.copy(xt);nyt = copy.copy(yt)\n", - "\n", - "n_iter = 10 ## 探索回数の上限\n", - "xopt = 6; yopt = -1.e+30\n", - "SVs=[]\n", - "plot = False\n", - "\n", - "lt=len(nxt); lp=len(nxp)\n", - "Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp)\n", - "mu_yt= np.zeros(lt)\n", - "mu_yp= np.zeros(lp)\n", - "cLinv,logdetK = Mchole(Ktt,lt) \n", - "mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp)\n", - "sigmaj=[ np.sqrt(Sjoint[j][j]) for j in range(lp)]\n", - "print(\"train\", nxt,nyt)\n", - "print(\"xp\", nxp)\n", - "print(\"My muj \", mujoint)\n", - "print(\"sigmaj\", sigmaj)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_5TGmrsxxomr", - "outputId": "8279b55c-2d2b-4a8b-da53-a2a144af9074", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sGP.kernel_ Matern(length_scale=1, nu=2.5)\n", - "[-5.75795234e-03 -8.44113811e-02 -7.33727607e-01 -9.88413223e-01\n", - " -3.06567459e-01 -9.73202438e-01 -4.32586459e-01 -4.31993679e-02\n", - " -2.79241473e-03 -1.47812049e-04]\n", - "[0.99999013 0.99787715 0.82458488 0.65841755 0.98134895 0.4100811\n", - " 0.91251293 0.99916424 0.99999651 0.99999999]\n" - ] - } - ], - "source": [ - "from sklearn.gaussian_process import kernels as sk_kern\n", - "import sklearn.gaussian_process as skGP \n", - "# sklearn GP\n", - "\n", - "nxp = np.linspace(-2,12,10)\n", - "nxt = np.array(copy.copy(xt))\n", - "nyt = np.array(copy.copy(yt))\n", - "\n", - "kern = sk_kern.Matern(length_scale=1.0, length_scale_bounds=(1.0,1.0), nu=2.5)\n", - "sGP = skGP.GaussianProcessRegressor(\n", - " kernel=kern,\n", - " alpha=1e-15, \n", - " optimizer=\"fmin_l_bfgs_b\", \n", - " n_restarts_optimizer=0)\n", - "\n", - "sGP.fit(nxt.reshape(-1, 1), nyt)\n", - "print(\"sGP.kernel_\", sGP.kernel_)\n", - "pred_mean, pred_std= sGP.predict(nxp.reshape(-1,1), return_std=True)\n", - "\n", - "print(pred_mean.reshape(-1,))\n", - "print(pred_std)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "4W09PtvH0hBl", - "outputId": "b25c7f62-43aa-45d9-901d-f633fa842971", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting GPy\n", - " Downloading GPy-1.10.0.tar.gz (959 kB)\n", - "\u001b[K |████████████████████████████████| 959 kB 4.3 MB/s \n", - "\u001b[?25hRequirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.19.5)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy) (1.15.0)\n", - "Collecting paramz>=0.9.0\n", - " Downloading paramz-0.9.5.tar.gz (71 kB)\n", - "\u001b[K |████████████████████████████████| 71 kB 8.9 MB/s \n", - "\u001b[?25hRequirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.29.26)\n", - "Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.4.1)\n", - "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy) (4.4.2)\n", - "Building wheels for collected packages: GPy, paramz\n", - " Building wheel for GPy (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for GPy: filename=GPy-1.10.0-cp37-cp37m-linux_x86_64.whl size=2565113 sha256=d3f5efe34d8d7393bde5e956d9d3aaa15a46e98c97fa52624778f8952750d950\n", - " Stored in directory: /root/.cache/pip/wheels/f7/18/28/dd1ce0192a81b71a3b086fd952511d088b21e8359ea496860a\n", - " Building wheel for paramz (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for paramz: filename=paramz-0.9.5-py3-none-any.whl size=102566 sha256=7642fed4b69b594975067d330d9293b5502326530e2cb3589eb51d00117e7bb7\n", - " Stored in directory: /root/.cache/pip/wheels/c8/95/f5/ce28482da28162e6028c4b3a32c41d147395825b3cd62bc810\n", - "Successfully built GPy paramz\n", - "Installing collected packages: paramz, GPy\n", - "Successfully installed GPy-1.10.0 paramz-0.9.5\n" - ] - } - ], - "source": [ - "!pip install GPy" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rIZjn7IBxvsu", - "outputId": "74319b5f-1cb5-4343-daa5-066cf73dcef1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Name : GP regression\n", - "Objective : 3.2337691135149766\n", - "Number of Parameters : 3\n", - "Number of Optimization Parameters : 3\n", - "Updates : True\n", - "Parameters:\n", - " \u001b[1mGP_regression. \u001b[0;0m | value | constraints | priors\n", - " \u001b[1mMat52.variance \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mMat52.lengthscale \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mGaussian_noise.variance\u001b[0;0m | 1.0 | +ve | \n", - "results(default) [-2.88381322e-03 -4.22766071e-02 -3.67480418e-01 -4.95042500e-01\n", - " -1.53613693e-01 -4.87828001e-01 -2.16840168e-01 -2.16543149e-02\n", - " -1.39973895e-03 -7.40929687e-05] \n", - " [1.99999013 1.99787943 1.8399713 1.71674076 1.98148809 1.58407415\n", - " 1.91634063 1.9991646 1.99999651 1.99999999]\n", - "\n", - "Name : GP regression\n", - "Objective : 3.2405297752729125\n", - "Number of Parameters : 3\n", - "Number of Optimization Parameters : 3\n", - "Updates : True\n", - "Parameters:\n", - " \u001b[1mGP_regression. \u001b[0;0m | value | constraints | priors\n", - " \u001b[1mMat52.variance \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mMat52.lengthscale \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mGaussian_noise.variance\u001b[0;0m | 1e-15 | +ve | \n", - "results(noise_var~0) [-5.75795228e-03 -8.44113803e-02 -7.33727600e-01 -9.88413214e-01\n", - " -3.06567456e-01 -9.73202429e-01 -4.32586454e-01 -4.31993675e-02\n", - " -2.79241470e-03 -1.47812047e-04] \n", - " [0.99998026 0.99575881 0.67994023 0.43351368 0.96304576 0.16816651\n", - " 0.83267985 0.99832918 0.99999302 0.99999998]\n" - ] - } - ], - "source": [ - "import GPy\n", - "\n", - "nxp = np.linspace(-2,12,10).reshape(-1,1)\n", - "nxt = np.array(copy.copy(xt)).reshape(-1,1)\n", - "nyt = np.array(copy.copy(yt)).reshape(-1,1)\n", - "\n", - "kern = GPy.kern.Matern52(input_dim=1,variance=1.0,lengthscale=1.0)\n", - "model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,normalizer=None)\n", - "print(model)\n", - "pred_mean, pred_var = model.predict(nxp)\n", - "print(\"results(default) \", pred_mean.reshape(-1,), \"\\n\",pred_var.reshape(-1,))\n", - "\n", - "model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,noise_var=1.e-15, normalizer=None)\n", - "pred_mean, pred_var = model.predict(nxp)\n", - "print(model)\n", - "print(\"results(noise_var~0)\", pred_mean.reshape(-1,), \"\\n\",pred_var.reshape(-1,))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6czVZ0d87wu_" - }, - "source": [ - "GPyでは、予測誤差がデフォルトで1.0に設定されていることがわかった。\n", - "\n", - "これはかなり注意が必要。 \n", - "GPに限らず多くの場合、データを標準化(平均0,分散1)して使うので、予測誤差の分散が1.0というデフォルト値を使うというのは、 「GPの予測が、データ全体の広がりと同程度誤差を持つ」ことを仮定していて、場合によっては非現実的な仮定になり得る。 \n", - "Webに転がってるGPyを使ったコードだと、あまりこのあたりは認識されていないように思う。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xVtY7wj3XRX4" - }, - "source": [ - "## GPyOpt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bAI3991sXVIJ" - }, - "source": [ - "上で自前コードでやったことを、GPyOptを使ってやってみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "A0Aun9c-YQNF", - "outputId": "14ae57b8-94b8-45c1-c8db-2b7fad3c4eda", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: GPy in /usr/local/lib/python3.7/dist-packages (1.10.0)\n", - "Requirement already satisfied: paramz>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.9.5)\n", - "Requirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.29.26)\n", - "Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.4.1)\n", - "Requirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.19.5)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy) (1.15.0)\n", - "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy) (4.4.2)\n", - "Collecting GPyOpt\n", - " Downloading GPyOpt-1.2.6.tar.gz (56 kB)\n", - "\u001b[K |████████████████████████████████| 56 kB 2.3 MB/s \n", - "\u001b[?25hRequirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.19.5)\n", - "Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.4.1)\n", - "Requirement already satisfied: GPy>=1.8 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.10.0)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (1.15.0)\n", - "Requirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (0.29.26)\n", - "Requirement already satisfied: paramz>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (0.9.5)\n", - "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy>=1.8->GPyOpt) (4.4.2)\n", - "Building wheels for collected packages: GPyOpt\n", - " Building wheel for GPyOpt (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for GPyOpt: filename=GPyOpt-1.2.6-py3-none-any.whl size=83609 sha256=b36359bb607ed1762b6fd67894ef7c988810df30bdafc0694e7c88cd11f5f48c\n", - " Stored in directory: /root/.cache/pip/wheels/e6/fa/d1/f9652b5af79f769a0ab74dbead7c7aea9a93c6bc74543fd3ec\n", - "Successfully built GPyOpt\n", - "Installing collected packages: GPyOpt\n", - "Successfully installed GPyOpt-1.2.6\n" - ] - } - ], - "source": [ - "#使うライブラリのインポート\n", - "!pip install GPy\n", - "!pip install GPyOpt\n", - "import GPy\n", - "import GPyOpt\n", - "import numpy as np \n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 300 - }, - "id": "AFlh-8hGXjnL", - "outputId": "a523a61c-5738-4a62-cdbb-3f539929cc79", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Estimated Opt. x 8.001075118805382 y 2.589416268802192\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def f(x): #GPyOptは最小値を探索するのでマイナスをかけておく\n", - " return - (np.sin(x) + 0.2 * x)\n", - "\n", - "\n", - "oxt = np.array([ 0.0 + 1.02*i for i in range(11)])\n", - "xt = np.array([ oxt[2], oxt[6]])\n", - "yt = f(xt)\n", - "xt = np.array( [ [ x ] for x in xt])\n", - "yt = np.array( [ [ y ] for y in yt])\n", - "\n", - "## BayesOptの準備・実行\n", - "bounds = [{'name': 'x', 'type': 'continuous', 'domain': (-2,12)}]\n", - "res = GPyOpt.methods.BayesianOptimization(f=f,X=xt,Y=yt, \n", - " kernel=GPy.kern.Matern52(input_dim=len(bounds)), \n", - " domain=bounds,acquisition_type='EI')\n", - "#print(\"bounds\", bounds,len(bounds))\n", - "res.run_optimization(max_iter=10)\n", - "\n", - "## 結果の描画等\n", - "xs = res.X; ys = res.Y\n", - "print(\"Estimated Opt. x\", res.x_opt[0], \"y\", -res.fx_opt)\n", - "xr = np.arange(-2.0,12.0,0.1)\n", - "yr = - f(xr)\n", - "\n", - "fig = plt.figure(figsize=(12,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.set_xlim(-2.0,12); ax.set_ylim(-2.0,5.0)\n", - "ax.plot(xr,yr,linestyle=\"dotted\",color=\"red\")\n", - "ax.scatter(xs,-ys,marker=\"o\",color=\"black\")\n", - "plt.show()\n", - "plt.close()" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_BayesianOptimization.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_Bayesian_linear_regression.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_Bayesian_linear_regression.ipynb deleted file mode 100644 index 682d266d..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_Bayesian_linear_regression.ipynb +++ /dev/null @@ -1,426 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Qlp8TMCwqzju" - }, - "source": [ - "# ベイズ線形回帰" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qDs_Ob0fwnVN" - }, - "source": [ - "## 線形回帰 (多項式回帰の例)\n", - "\n", - "\n", - "線形回帰モデル: \n", - "$y({\\bf x},{\\bf w})= \\sum^{M-1}_{j=0} w_j \\phi_j({\\bf x}) = {\\bf w}^T\\boldsymbol{\\phi}({\\bf x})$を考える。 \n", - "\n", - "ここで$\\boldsymbol{\\phi}$は基底関数のベクトルで、\n", - "$p$次の多項式回帰の場合は$\\boldsymbol{\\phi}=(1, x, x^2, \\ldots, x^p)$といった感じ。\n", - "\n", - "実際この場合にベクトルの内積を書き下すと\n", - "${\\bf w}^T\\boldsymbol{\\phi}=w_0 + w_1x+ w_2x^2+ \\cdots + w_{p}x^p$となり、\n", - "$p$次多項式になっている。\n", - "\n", - "\n", - "さて目標変数$t$が、決定論的な関数$y({\\bf x},{\\bf w})$と平均0,精度$\\beta\\equiv 1/\\sigma^2$の誤差$\\epsilon$の和: $t=y({\\bf x},{\\bf w})+\\epsilon$で与えられていると仮定する。 \n", - "\n", - "つまり、$t$の確率分布が\n", - "$p(t|{\\bf x},{\\bf w},\\beta) = \\mathcal{N}(t|y({\\bf x},{\\bf w}),\\beta^{-1})$で与えられるとする。\n", - "\n", - "\n", - "入力$\\boldsymbol{\\mathrm{X}}=\\{{\\bf x_1},{\\bf x_2},\\ldots, {\\bf x_N}\\}$と、\n", - "対応する目標値を$\\boldsymbol{\\mathrm{t}}=\\{t_1,t_2,\\ldots, t_N\\}$と表すことにしておこう。\n", - "\n", - "これらのデータ点が上の分布$p(t|{\\bf x},{\\bf w},\\beta)$から独立に生成されたと仮定すると、 \n", - "データの目標変数についての確率分布は$p(\\boldsymbol{\\mathrm{t}}|\\boldsymbol{\\mathrm{X}},{\\bf w},\\beta) = \\prod^N_{n=1} \\mathcal{N}(t_n|{\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) ,\\beta^{-1})$で与えられる。 \n", - "(以下では、確率分布の条件部分にある${\\bf x}$などを適宜省略する)\n", - "\n", - "このとき、対数尤度は\n", - "$\\ln p(\\boldsymbol{\\mathrm{t}}|{\\bf w},\\beta) = \\sum^N_{n=1} \\ln \\mathcal{N}(t_n|{\\bf w}^T\\boldsymbol{\\phi}({\\bf x_n}) ,\\beta^{-1}) = \\frac{N}{2}\\ln\\beta - \\frac{N}{2}\\ln(2\\pi) -\\beta E_D({\\bf w})$となる。\n", - "\n", - "なお$E_D$は二乗和誤差関数:\n", - "$E_D({\\bf w}) \\equiv \\frac{1}{2}\\sum^N_{n=1} \\{ t_n- {\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) \\}$\n", - "である。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FjSnT2V6wk08" - }, - "source": [ - "対数尤度の勾配を書き下して、最尤推定を考えるとすると$\\nabla \\ln p(\\boldsymbol{\\mathrm{t}}|{\\bf w},\\beta) = \\beta \\sum^N_{n=1} \\{ t_n -{\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) \\} \\boldsymbol{\\phi}({\\bf x_n})^T $の根が必要。\n", - "\n", - "つまり$0= \\sum^N_{n=1} t_n \\boldsymbol{\\phi}({\\bf x_n})^T - {\\bf w}^T(\\sum^N_{n=1}\\boldsymbol{\\phi}({\\bf x_n})\\boldsymbol{\\phi}({\\bf x_n})^T)$をときたい。\n", - "\n", - "上の式を変形すると${\\bf w} = ( \\boldsymbol{\\Phi}^T\\boldsymbol{\\Phi} )^{-1} \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathrm{t}}$が根であることがわかる。 \n", - "つまり、最尤推定を与えるパラメータ${\\bf w}_{ML}$は、計画行列$\\boldsymbol{\\Phi}$を用いて閉じた形で与えられる。\n", - "\n", - "なお、計画行列の要素は\n", - "$\\boldsymbol{\\Phi}_{nj} = \\phi_j({\\bf x_n})$で与えられる。\n", - "\n", - "\n", - "\n", - "---\n", - "\n", - "次の1次元擬似データの回帰を考えてみる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 320 - }, - "id": "Had64uyx6ieC", - "outputId": "1dcbff3d-7d29-4bb7-84a5-4c65b3715e49", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "\n", - "## データ点の生成\n", - "np.random.seed(1234)\n", - "x = np.linspace(-2.0,6.0,1000)\n", - "beta = 1.e+2\n", - "xt = np.linspace(0.0,4.0,20)\n", - "yt = np.sin(xt) + np.array([ np.random.normal(0.0,1.0/np.sqrt(beta)) for i in range(len(xt))])\n", - "\n", - "fig = plt.figure(figsize = (15,5))\n", - "axs = [fig.add_subplot(111)]\n", - "axs[0].scatter(xt,yt,label=\"Data\",color=\"k\",marker=\"x\")\n", - "axs[0].legend()\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pX2ZEq1TAY_8" - }, - "source": [ - "これを,numpyモジュールの多項式fit関数と、上の計画行列によって3次式で回帰してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 282 - }, - "id": "JuQGBg5qq8x0", - "outputId": "0584baea-431a-4f0e-d787-59ec0d13ac82", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:30: RuntimeWarning: divide by zero encountered in log10\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "N = len(xt)\n", - "\n", - "## 多項式の次元を固定しておく\n", - "p=3\n", - "\n", - "##numpyのfit\n", - "yp = np.poly1d(np.polyfit(xt, yt, p))(x) \n", - "\n", - "## 計画行列を用いる方法\n", - "def phi(x,p):\n", - " return np.array([ x**i for i in range(p+1)])\n", - "Phi = np.zeros((N,p+1))\n", - "for i in range(N):\n", - " xn = xt[i]\n", - " tmp = phi(xn,p) \n", - " for j in range(p+1):\n", - " Phi[i][j] = tmp[j]\n", - "S = np.linalg.inv(np.dot(Phi.T,Phi))\n", - "wML = np.dot(S,np.dot(Phi.T,yt))\n", - "yD = [ np.dot(wML,phi(xn,p)) for xn in x ]\n", - "\n", - "#図のplot\n", - "fig = plt.figure(figsize = (20,4))\n", - "axs = [fig.add_subplot(121),fig.add_subplot(122)]\n", - "axs[0].scatter(xt,yt,label=\"Data\",color=\"k\",marker=\"x\")\n", - "axs[0].plot(x,yp,label=\"np.polyfit\",color=\"r\",alpha=0.5)\n", - "axs[0].plot(x,yD,label=\"DMat\",linestyle=\"dotted\", color=\"g\")\n", - "axs[0].legend()\n", - "\n", - "axs[1].plot(x,np.log10(abs(yp-yD)))\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jO4b2_In7Cd8" - }, - "source": [ - "となり、ライブラリの出力と計画行列を用いた最尤推定の結果とが \n", - "ピッタリ(ざっくり14桁程度)一致していることがわかる。\n", - "\n", - "マニアックな注: np.polyfitもおそらく計画行列を用いて定義されているはず。 \n", - "numpyの中身を見てないので不正確かもしれませんが、 \n", - "僅かな答えの差は、逆行列計算に由来するものではないかと想像します。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ppJnjTsXB0X9" - }, - "source": [ - "### L2正則化項がある場合への拡張\n", - "\n", - "二乗和誤差関数に、L2正則化項を入れた場合:\n", - "$\\frac{1}{2}\\sum^N_{n=1} \\{ t_n- {\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) \\} + \\frac{\\lambda}{2} {\\bf w}^T{\\bf w}$\n", - "に拡張してみよう。\n", - "\n", - "上と同様に勾配を計算すると、最尤推定を与えるパラメータ${\\bf w}$は\n", - "${\\bf w}_{ML,L2} = (\\lambda I + \\boldsymbol{\\Phi}^T\\boldsymbol{\\Phi} )^{-1} \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathrm{t}}$ \n", - "(つまり計画行列に単位行列を足すだけ)となる。 \n", - "\n", - "(対数尤度が$|w|^2$に比例することからほとんど自明だが) \n", - "あとで示すように「L2正則化を課すこと」は、パラメータのベイズ的取り扱いにおいて \n", - "「事前分布にガウス分布を仮定すること」と等価である。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "XqR_eYP3K68v" - }, - "source": [ - "## ベイズ線形回帰" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P2WYkL5sOxhy" - }, - "source": [ - "次に、パラメータ${\\bf w}$をベイズ的に取り扱う事を考える。\n", - "\n", - "このノートでいう[ベイズ的]とはせいぜい「パラメータを点推定する立場より有限の幅をもつ確率分布としてパラメータを考える」という程度の意味である。 \n", - "\n", - "パラメータ${\\bf w}$が、平均$\\boldsymbol{\\mu}$,共分散$\\boldsymbol{\\Sigma}$で指定される多次元の正規分布に従うと仮定する: ${\\bf w} \\sim \\mathcal{N}(\\boldsymbol{\\mu},\\boldsymbol{\\Sigma})$ \n", - "\n", - "このとき、パラメータの事後分布は$p({\\bf w}|\\boldsymbol{\\mathcal{t}}) = \\mathcal{N}(\\tilde{\\boldsymbol{\\mu}},\\tilde{\\boldsymbol{\\Sigma}})$で与えられる。\n", - "\n", - "ここで事後分布の平均および共分散は以下のとおりである: \n", - "$\\tilde{\\boldsymbol{\\Sigma}}^{-1} =\\boldsymbol{\\Sigma}^{-1}+\\beta\\boldsymbol{\\Phi}^T \\boldsymbol{\\Phi},\n", - "\\tilde{\\boldsymbol{\\mu}}= \\tilde{\\boldsymbol{\\Sigma}} (\\boldsymbol{\\Sigma} \\boldsymbol{\\mu} + \\beta \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathcal{t}})$ \n", - "\n", - "...\n", - "\n", - "ここで簡単のため事前分布をさらに簡略化しよう。 \n", - "事前分布の平均$\\boldsymbol{\\mu}$が$0$(ベクトル)かつ、 \n", - "パラメータの事前分布の共分散が対角的(独立な分散をもつ)でなおかつ値が同じ, \n", - "つまり、上の$\\boldsymbol{\\Sigma}=\\alpha^{-1}I$とかける場合を考える。\n", - "\n", - "このとき、事後分布の平均および共分散は以下のように簡略化される: \n", - "$\\tilde{\\boldsymbol{\\Sigma}}^{-1} =\\alpha I +\\beta\\boldsymbol{\\Phi}^T \\boldsymbol{\\Phi}$ \n", - "$\\tilde{\\boldsymbol{\\mu}}= \\beta \\tilde{\\boldsymbol{\\Sigma}} \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathcal{t}}$\n", - "\n", - "この条件のもとで対数事後確率(log posterior)は \n", - "$\\ln p({\\bf w}|\\boldsymbol{\\mathrm{t}}) = -\\frac{\\beta}{2}\\sum^N_{n=1} \\{t_n - {\\bf w}^T \\phi(x_n) \\}^2 -\\frac{\\alpha}{2} {\\bf w}^T{\\bf w} + $ (正規分布の係数からくるオマケの定数)となる。\n", - "\n", - "したがって正規分布で与えられる事前分布のもとでパラメータ${\\bf w}$の事後分布を最大化することは、 \n", - "L2正則化項がある場合の誤差関数の最小化と($\\lambda=\\beta/\\alpha$とすれば)等価であることがわかる。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PvjZoBE7U9HF" - }, - "source": [ - "実用上は${\\bf w}$の分布を考えたあと、それを予測値の分布として伝播させる必要がある。\n", - "\n", - "一般に予測分布を評価する際は、サンプリング法などが必要になるが、\"性質の良い\"確率分布を用いる場合は、予測分布も閉じた形で書き下すことができる。 \n", - "実際、今の場合は予測分布も正規分布になる.\n", - "\n", - "\n", - "未知の点$x^*$での値を$t^*$と書くことにすると、\n", - "\n", - "$p(t^*|\\boldsymbol{\\mathrm{t}},\\alpha,\\beta) =\n", - "\\int p(t|{\\bf w},\\beta) p({\\bf w}|\\boldsymbol{\\mathrm{t}},\\alpha,\\beta) d{\\bf w} $\n", - "\n", - "今の場合、ガウス分布の性質から、\n", - "予測分布は以下で与えられる: \n", - "$p(t^*|{\\bf x},\\boldsymbol{\\mathrm{t}},\\alpha,\\beta) = \\mathcal{N}(t^*|\\tilde{\\boldsymbol{\\mu}}^T\\boldsymbol{\\phi}({\\bf x}),\\sigma^2_N({\\bf x}))$\n", - "\n", - "ここで、予測分布の分散は$\\sigma^2_N({\\bf x})= \\frac{1}{\\beta}+\\boldsymbol{\\phi}({\\bf x})^T \\tilde{\\boldsymbol{\\Sigma}}\\boldsymbol{\\phi}({\\bf x}) $\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "kmOBxfJPSJkQ", - "outputId": "b074a333-f044-4144-b9d5-11a7178f0a8e", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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QgjRpQKi4lpGo4QQQlxu79692Gy2LrteZGQk2dnZrR7jcDi4/vrrqa2txeVycccdd/DUU081e+zzzz9PREQE9913X5fFKLpHQCRSdrudpKQkQkJCzA5FCCFED2Cz2YiJiemy6126dKnNY0JDQ/nggw+IiorC6XQyceJEbrrpJsaNG3fVsY888kiXxSa6l9/vtae1RmtNcnKy2aEIIYQIYEopoqKiAHA6nTidTpRSLF68mOzsbHJzc3n88ccBoyP5smXLAPj888/Jzc0lLy+PH/7wh4wcORKAVatWcfvttzN9+nQGDhzIc889x9NPP83o0aMZN24cFy5cAOB3v/sdY8aMYdSoUXzzm9/Ebreb8PT+y+8TKZvNRkJCQpPNHYUQQggzuN1u8vLySEpKYvr06QwZMoQNGzawZ88edu7cyU9/+tOrznnggQd44YUXKC0txWq1Nvls9+7drF+/ns8//5yf/OQnREREsH37dsaPH88rr7wCwDe+8Q0+//xzduzYQVZWFi+++KJPnjVQ+H0i5fF4ZDRKCCFEj2C1WiktLeXEiRNs3bqV06dPExYWxoMPPsj69euJiIhocnxFRQVVVVWMHz8egG99q+kubFOmTCE6OprExERiY2O59dZbAcjJyaGsfjPB3bt3M2nSJHJyclizZg179uzp/gcNIH6dSNXU1BAfH9/sfntCCCGEWeLi4pgyZQrvvvsuW7du5Y477uCdd95h1qxZXl3n8tkWi8XS+NpiseByuQCYN28ezz33HLt27eLJJ5/E4XB03YMI/02kGmqjZGNiIYQQPcG5c+eoqKgAjH/ob968meHDh1NZWcns2bNZvnz5VdvBxMXFER0dzWeffQbAunXrvL5vVVUVqampOJ1O1qxZ0/kHEU347ao9m81GVFQUkZGRZocihBCih4mMjGzXSjtvrteW06dPc//99+N2u/F4PNx5551ce+213HLLLTgcDrTWPP3001ed9+KLL/Lwww9jsVi44YYbiI2N9Sq2f/u3f2Ps2LEkJiYyduxYqqqqvDpftE5p7fv9gwsKCnRJSUm33uP48eNER0cTFxfXrfcRQgjR8+3bt4+srCyzw+iQ6urqxtV+S5cu5fTp06xYscLkqPxXcz8rSqltWuuC5o732xGpfv36mR2CEEII0WmbNm3iF7/4BS6XiwEDBrBq1SqzQxKX8dtESgghhPAHd911F3fddZfZYYgW+G2xuRBCCHE5M0pZRO/SkZ8RSaSEEEL4vbCwMMrLyyWZEi3SWlNeXk5YWJhX58nUnhBCCL+XkZHBiRMnOHfunNmhiB4sLCyMjIwMr86RREoIIYTfCw4OZtCgQWaHIfyQTO0JIYQQQnSQJFJCCCGEEB0kiZQQQgghRAeZ0tlcKXUOONrNt0kAznfzPXqyQH7+QH52COznl2cPXIH8/IH87OCb5x+gtU5s7gNTEilfUEqVtNTOPRAE8vMH8rNDYD+/PHtgPjsE9vMH8rOD+c8vU3tCCCGEEB0kiZQQQgghRAf5cyK10uwATBbIzx/Izw6B/fzy7IErkJ8/kJ8dTH5+v62REkIIIYTobv48IiWEEEII0a0kkRJCCCGE6CC/TqSUUr9SSn2plNqplNqglIozOyZfUUrNUUrtUUp5lFIBsyxWKTVLKfV3pdRBpdRis+PxFaXUS0qps0qp3WbHYgalVD+l1Bal1N76n/uFZsfkK0qpMKXUVqXUjvpnf8rsmHxNKWVVSm1XSr1jdiy+ppQqU0rtUkqVKqVKzI7Hl5RScUqp1+t/z+9TSo03Iw6/TqSAzcBIrXUusB/4scnx+NJu4BvA38wOxFeUUlbgN8BNQDZwt1Iq29yofGYVMMvsIEzkAv5Za50NjAMeDaDvfS0wVWs9CsgDZimlxpkck68tBPaZHYSJpmit8wKwl9QK4F2t9XBgFCb9DPh1IqW1fk9r7ap/+SmQYWY8vqS13qe1/rvZcfhYIXBQa31Ya10HrANuMzkmn9Ba/w24YHYcZtFan9Zaf1H/5yqM/0NNNzcq39CG6vqXwfVfAbOKSCmVAdwM/N7sWITvKKVigeuBFwG01nVa6wozYvHrROoK84E/mx2E6FbpwPHLXp8gQH6Ziq8ppQYCo4HPzI3Ed+qntkqBs8BmrXXAPDvwDPAjwGN2ICbRwHtKqW1Kqe+YHYwPDQLOAX+on9b9vVIq0oxAen0ipZT6q1JqdzNft112zE8whv7XmBdp12vPswsRSJRSUcAbwD9qrS+ZHY+vaK3dWus8jFH3QqXUSLNj8gWl1C3AWa31NrNjMdFErXU+RknDo0qp680OyEeCgHzgt1rr0YANMKUuNsiMm3YlrfWNrX2ulJoH3AJM037WNKutZw9AJ4F+l73OqH9PBAClVDBGErVGa73e7HjMoLWuUEptwaiXC4SFB9cBRUqp2UAYEKOUelVrfa/JcfmM1vpk/f+eVUptwChxCITa2BPAictGX1/HpESq149ItUYpNQtjyLdIa203Ox7R7T4HrlFKDVJKhQBzgY0mxyR8QCmlMGol9mmtnzY7Hl9SSiU2rEhWSoUD04EvzY3KN7TWP9ZaZ2itB2L8ff8gkJIopVSkUiq64c/ADAIjgUZr/RVwXCk1rP6tacBeM2Lx60QKeA6IBjbXLw193uyAfEUp9Q9KqRPAeGCTUuovZsfU3eoXFiwA/oJRbPzfWus95kblG0qptcAnwDCl1Aml1INmx+Rj1wHfBqbW/10vrR+lCASpwBal1E6Mf0xs1loHXBuAAJUM/J9SagewFdiktX7X5Jh86QfAmvqf/Tzg/5kRhGwRI4QQQgjRQf4+IiWEEEII0W0kkRJCCCGE6CBJpIQQQgghOkgSKSGEEEKIDpJESgghhBCigySREkIIIYToIEmkhBBCCCE66P8DlQxlNpu7POIAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "## alpha(事前分布の精度=分散の逆数)は決め打ちとする\n", - "alpha = 1.e-5 #精度が小さい=分散が大きい=パラメータの事前知識が\"弱い\"\n", - "\n", - "## wの事後分布の計算\n", - "I = np.diag([1.0 for i in range(p+1)])\n", - "Sigma = np.linalg.inv( alpha * I + beta * np.dot(Phi.T, Phi) )\n", - "mu = beta * np.dot(Sigma, np.dot(Phi.T,yt))\n", - "\n", - "## 予測値(その分散)のリストを作成\n", - "y_BLR = []\n", - "for tx in x :\n", - " tmp = phi(tx,p)\n", - " mu_p = np.dot(mu,tmp) \n", - " term1 = 1.0/beta\n", - " term2 = np.dot(tmp,np.dot(Sigma,tmp))\n", - " sigma_p = term1 + term2 \n", - " #print(\"term1\", term1, \"term2\", term2)\n", - " y_BLR += [ [mu_p, sigma_p] ]\n", - "y_BLR = np.array(y_BLR).T\n", - "\n", - "## plot\n", - "fig = plt.figure(figsize = (10,4))\n", - "axs = [fig.add_subplot(111)]\n", - "axs[0].scatter(xt,yt,label=\"Data\",color=\"k\",marker=\"x\")\n", - "axs[0].plot(x,yD,label=\"Maximum Likelihood\",linestyle=\"dotted\", color=\"red\")\n", - "axs[0].plot(x,y_BLR[0],label=\"Mean\",linestyle=\"dashed\", color=\"blue\")\n", - "axs[0].fill_between(x,y_BLR[0]+np.sqrt(y_BLR[1]),y_BLR[0]-np.sqrt(y_BLR[1]),label=\"1sigma\", color=\"blue\",alpha=0.5)\n", - "axs[0].fill_between(x,y_BLR[0]+3*np.sqrt(y_BLR[1]),y_BLR[0]-3*np.sqrt(y_BLR[1]),label=\"3sigma\", color=\"gray\",alpha=0.3)\n", - "axs[0].legend()\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lrsQqCTcik91" - }, - "source": [ - "パラメータの広がりが予測に伝搬され、 \n", - "データが無いところで予測が不確かになっていることが見て取れる。\n", - "\n", - "\n", - "注) 上では、データの精度$\\beta$(分散の逆数)や、パラメータ${\\bf w}$の精度$\\alpha$を既知とした。 \n", - "実際には、$\\beta$そのものがわからなかったりする。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bH9TtwVJm2Hi" - }, - "source": [ - "\n", - "\n", - "(編集予定)\n", - "\n", - "## ブートストラップ法" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_Bayesian_linear_regression.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_WebScraping.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_WebScraping.ipynb deleted file mode 100644 index b7da2bfc..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_chapter_WebScraping.ipynb +++ /dev/null @@ -1,1091 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hZr60g6XehqN" - }, - "source": [ - "# Web操作・スクレイピング" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "y6bjRQEEPOur" - }, - "source": [ - "Webから情報を抽出・整形・解析したり、 \n", - "ブラウザ上での特定の操作を自動化する、といったことも \n", - "Pythonでは比較的容易に実行することができる。\n", - "\n", - "Web上にある情報にアクセスしたりする方法は色々あるが、大まかには2つに分類され\n", - "\n", - "1. プログラムでWebページにアクセスして中身(HTML)を読み、そこから情報を抽出する方法\n", - "2. ブラウザをプログラムに操作させて特定の作業を実行する方法\n", - "\n", - "この章では、とくに1.のWebから情報を抽出すること(スクレイピング)に絞ってそのエッセンスを紹介する。 \n", - "HTMLとは、Webページを作るための言語のことで、 \n", - "みなさんが普段からアクセスするほぼ全てのWebページは、 \n", - "HTMLで記述されています。\n", - "\n", - "\n", - "Webから情報を抽出したりする際、共通して言える注意点を述べておく:\n", - "* **対象とするページの利用規約を必ず確認する** \n", - "規約でスクレイピングを禁止しているページがある (例: Amazon, Twitter, Instagram, facebook, 金融系などなど) \n", - " 禁止している場合でも、APIが提供されている場合があります \n", - " ※APIはApplication Programming Interfaceの略です。 \n", - " 今の場合、大雑把にはデータ提供用の窓口とでも思ってください.\n", - "\n", - "* **サーバーに負荷をかけない** \n", - " 規約で特にスクレイピングを禁止していない場合でも、過度なアクセスをしてはいけません。 \n", - " (どこかの大学の教務ポータルみたいに落ちてしまったら大変です) \n", - " 過度なアクセスは、悪意のあるDos攻撃とみなされてアクセスを制限されたり、 \n", - " 最悪の場合、偽計業務妨害罪などの罪に問われる可能性があります。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4F9VwZUYTv-k" - }, - "source": [ - "\n", - "## 東京都の新型コロナウイルス関連情報の取得\n", - "\n", - "スクレイピングを可能とするライブラリは多数存在する。 \n", - "代表的なものは```requests```や```urllib```。以下では```requests```を使います。 \n", - "\n", - "JavaScriptの実行などがないページならこれでだいたい十分かと思います. \n", - "また```BeutifulSoup4```というライブラリを使うと、HTMLを構文解析して、 \n", - "タグなどを取り除くといった操作が比較的容易に行えます。\n", - "\n" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1つ目の例として、[東京都 新型コロナウイルス感染症対策サイト](https://stopcovid19.metro.tokyo.lg.jp/)の公開データを取得して \n", - "それをグラフにして可視化してみましょう。まずは必要なライブラリをインポートしておきます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "up8cPse8AetS", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import requests\n", - "import json\n", - "import datetime\n", - "import matplotlib.pyplot as plt\n", - "!pip install japanize-matplotlib \n", - "import japanize_matplotlib " - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "BnQLXHKjFjBq" - }, - "source": [ - "[東京都 新型コロナウイルス感染症対策サイト](https://stopcovid19.metro.tokyo.lg.jp/)の[レポジトリ](https://github.com/tokyo-metropolitan-gov/covid19)で公開されているデータ(json形式)を読み出す。\n", - "\n", - "指定したurlにリクエストを送り、レスポンスをjson形式で取得する" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "T_1P0zx8AkK2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "url = \"https://raw.githubusercontent.com/tokyo-metropolitan-gov/covid19/development/data/data.json\"\n", - "response = requests.get(url)\n", - "data = response.json()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SKHu3BaJGHV7" - }, - "source": [ - "上の`data`を直接`print`すると表示が冗長になるため \n", - "代わりに、jsonのキーとして何があるかを見てみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "pYuurgg8GQt0", - "outputId": "daada50f-ae8c-41fb-ae69-8173e3c676b9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_keys(['contacts', 'querents', 'patients_summary', 'inspections_summary', 'lastUpdate', 'main_summary'])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data.keys()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MauYUeNZGSUt" - }, - "source": [ - "それぞれ\n", - "* contacts: 新型コロナコールセンター相談件数\n", - "* querents: 帰国者・接触者電話相談センター相談件数\n", - "* patients_summary: 陽性患者数\n", - "* inspections_summary: 検査実施日別状況\n", - "* lastUpdate: 最終更新日時\n", - "* main_summary: (これはよくわからない)\n", - "\n", - "に対応している。\n", - "\n", - "陽性患者数のデータの構造を調べつつ結果を可視化してみよう。 \n", - "まずは型を調べてみる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "NkQkByDHH4d_", - "outputId": "a19e1dc9-5625-4cb3-8df2-20eb4305894d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "type(data['patients_summary'])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IHVWrC9OIEP0" - }, - "source": [ - "辞書型とわかったのでキーの一覧を見てみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "wv2FvdSkIDXg", - "outputId": "fa3a7ee8-dfdb-498d-de72-9f1cb9b70785", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_keys(['date', 'data'])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data['patients_summary'].keys()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1yZUYEsmIK-I" - }, - "source": [ - "同様にして`data['patients_summary'][\"data\"]`が\"日付\"と\"小計\"をキーに持つ辞書のリストだと分かる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "hhAhiQfSISBz", - "outputId": "88e0f766-6994-4919-f500-de1be2c7232c", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'日付': '2020-01-24T08:00:00.000Z', '小計': 1}" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data['patients_summary'][\"data\"][0]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iXuc95Z_IkdB" - }, - "source": [ - "日付と陽性患者数をリストに直して、描画してみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "y66ZWnHdDK5s", - "outputId": "c7127a0a-d0e1-4f19-f137-a94dd00e6a63", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "# \"2022-01-01\"のような文字列をdatetimeに変換する関数\n", - "def str_to_dt(tstr):\n", - " tdatetime = datetime.datetime.strptime(tstr, '%Y-%m-%d')\n", - " tdate = datetime.date(tdatetime.year, tdatetime.month, tdatetime.day)\n", - " return tdate\n", - " \n", - "tdat = data['patients_summary'][\"data\"]\n", - "N = len(tdat)\n", - "tdat = data['patients_summary'][\"data\"]\n", - "dates = [ str_to_dt(tdat[i][\"日付\"].split(\"T\")[0]) for i in range(N)]\n", - "num_patients = [ tdat[i]['小計'] for i in range(N)]\n", - "print(dates)\n", - "print(num_patients)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 292 - }, - "id": "aZx0omoSFYVq", - "outputId": "44b64330-f48c-4cac-f963-0706adb35ce0", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize=(15,4))\n", - "plt.title(\"東京都\")\n", - "plt.xlabel(\"日付\")\n", - "plt.ylabel(\"陽性者数[人]\")\n", - "plt.plot(dates,num_patients, color=\"green\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "25k4E9a0WBHd" - }, - "source": [ - "## e-Statのデータを取得する\n", - "\n", - "[政府統計の総合窓口(e-Stat)](https://www.e-stat.go.jp/)は \n", - "日本の各府省が公表する統計データを一つにまとめた、 \n", - "政府統計のポータルサイトです。\n", - "\n", - "e-Statでは[API機能](https://www.e-stat.go.jp/api/)(ユーザー登録が必要)が提供されていて、 \n", - "指定されたURLに対してリクエストを送信することで各APIを利用することが出来ます。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0ixj5epofkdl" - }, - "source": [ - "### 準備1 e-Statの登録\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zfPiBxkmizMv" - }, - "source": [ - "以降の内容でも、e-StatのAPI機能を使用するため予めe-Statへの登録が必要です。\n", - "\n", - "国内のデータを使って最終課題に取り組みたいという方は \n", - "ここに記載の手順にならって登録しておきましょう。\n", - "\n", - "1. まず[こちら](https://www.e-stat.go.jp/mypage/user/preregister)のページからメールアドレス(Gmailを推奨します)を入力し、届いたメールから本登録を行う \n", - "このとき、gmailアカウントによる認証をオンにしておくと、以後のログインが楽。\n", - "2. [ログインページ](https://www.e-stat.go.jp/mypage/login)からログインし、\n", - "右上の[マイページ]に遷移\n", - "\n", - "3. [API機能(アプリケーションID発行)]に遷移する\n", - "4. 以下の例にならって、名称とURLを入力し、発行ボタンを押す\n", - "\n", - "\n", - "5. [appId]に生成された文字列を、どこかに控えておく(**appIdを他人と共有してはいけません**)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H_q7dts4iyJE" - }, - "source": [ - "### 準備2 Pandas e-Statのインストール\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "l2ywuL1Ki2QB" - }, - "source": [ - "さて、e-Statへの登録ができたでしょうか。 \n", - "\n", - "早速e-Statにあるデータをどんどん抽出したい \n", - "...のですが、[マニュアル](https://www.e-stat.go.jp/api/sites/default/files/uploads/2019/07/API-specVer3.0.pdf)を理解してAPIに適切なリクエストを送るというのは、 \n", - "それ自体がややハードルが高いかと思います。\n", - "\n", - "そこで、このノートブックでは[simaki](https://github.com/simaki)氏が作った \n", - "Python用のライブラリ[Pandas e-Stat](https://github.com/simaki/pandas-estat)を使用することにします。 \n", - "同氏によるQiitaの解説記事→https://qiita.com/simaki/items/05cc242d27b4e6781d19\n", - "\n", - "まずはインストール&インポートします。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "P20H8bGrXnC1", - "outputId": "f855e3db-570a-4091-eec2-df5c65ddf906", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: pandas-estat in /usr/local/lib/python3.7/dist-packages (0.3.1)\n", - "Requirement already satisfied: requests<3.0.0,>=2.26.0 in /usr/local/lib/python3.7/dist-packages (from pandas-estat) (2.26.0)\n", - "Requirement already satisfied: pandas<2.0.0,>=1.3.3 in /usr/local/lib/python3.7/dist-packages (from pandas-estat) (1.3.5)\n", - "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (1.19.5)\n", - "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (2.8.2)\n", - "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (2018.9)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas<2.0.0,>=1.3.3->pandas-estat) (1.15.0)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2.10)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2021.10.8)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (1.24.3)\n", - "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2.0.8)\n" - ] - } - ], - "source": [ - "!pip install pandas-estat\n", - "import pandas as pd\n", - "## import pandas_estat \n", - "# 以降では、pandas_estat内の関数は個別にimportすることにする (そうすると短い名前で使える)\n", - "#実行時の依存関係のエラーは当面問題ない(はず)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "81nepFn_cbZc" - }, - "source": [ - "次に```pandas_estat```からAPIを使用するためのIDを指定します" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zhWUx4u9aVtS", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "from pandas_estat import set_appid\n", - "appID = \"honyahonya\" # 引用符内を準備1で発行したappidに置き換える\n", - "set_appid(appID) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IMr1sWo20JI-" - }, - "source": [ - "## Pandas e-Statを使ってみよう" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KbrL52_4cdga" - }, - "source": [ - "ライブラリを使ってみましょう. \n", - "```read_statslist()```関数の引数に\"政府統計コード\"を指定することで、 \n", - "該当する統計データの一覧を```pandas.DataFrame```形式で取得することができます。 \n", - "[政府統計コードの一覧はこちら](https://www.e-stat.go.jp/help/stat-search-3-5)\n", - "\n", - "\n", - "政府統計コードそのものの一覧をdataframe形式取得するコードはそのうち書くつもりです。 \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wi4ef0kxtGRD" - }, - "source": [ - "それでは、さっそくPandas e-statを使ってみましょう。 \n", - "以下では、例にならって「サービス産業動向調査」の結果を抽出してみることにしましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "JZ6HgRbkcO3P", - "outputId": "79189f74-3fcc-4409-ca19-0b8359604627", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TABLE_INF STAT_CODE ... SUB_CATEGORY_CODE SUB_CATEGORY\n", - "0 0003179100 00200544 ... 02 需給流通\n", - "1 0003179101 00200544 ... 02 需給流通\n", - "2 0003085562 00200544 ... 02 需給流通\n", - "3 0003085612 00200544 ... 02 需給流通\n", - "4 0003090498 00200544 ... 02 需給流通\n", - ".. ... ... ... ... ...\n", - "137 0003412789 00200544 ... 02 需給流通\n", - "138 0003412790 00200544 ... 02 需給流通\n", - "139 0003412791 00200544 ... 02 需給流通\n", - "140 0003412792 00200544 ... 02 需給流通\n", - "141 0003412793 00200544 ... 02 需給流通\n", - "\n", - "[142 rows x 35 columns]\n" - ] - } - ], - "source": [ - "from pandas_estat import read_statslist\n", - "statslist = read_statslist(\"00200544\") # サービス産業動向調査\n", - "statslist" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wMHn2KBQgvgI" - }, - "source": [ - "次に、これらのデータがどうやって分類されているのかを調べてみましょう。 \n", - "列(column)を表示してみると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "p13KGCATg0aw", - "outputId": "575c6607-167d-4a64-e5ac-82da6935e06f", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['TABLE_INF', 'STAT_CODE', 'STAT_NAME', 'GOV_ORG_CODE', 'GOV_ORG_NAME',\n", - " 'TABULATION_CATEGORY', 'TABULATION_SUB_CATEGORY1',\n", - " 'TABULATION_SUB_CATEGORY2', 'TABULATION_SUB_CATEGORY3',\n", - " 'TABULATION_SUB_CATEGORY4', 'TABULATION_SUB_CATEGORY5',\n", - " 'TABULATION_CATEGORY_EXPLANATION',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION1',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION2',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION3',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION4',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION5', 'NO', 'TITLE',\n", - " 'TABLE_EXPLANATION', 'TABLE_CATEGORY', 'TABLE_SUB_CATEGORY1',\n", - " 'TABLE_SUB_CATEGORY2', 'TABLE_SUB_CATEGORY3', 'CYCLE', 'SURVEY_DATE',\n", - " 'OPEN_DATE', 'SMALL_AREA', 'COLLECT_AREA', 'OVERALL_TOTAL_NUMBER',\n", - " 'UPDATED_DATE', 'MAIN_CATEGORY_CODE', 'MAIN_CATEGORY',\n", - " 'SUB_CATEGORY_CODE', 'SUB_CATEGORY'],\n", - " dtype='object')\n" - ] - } - ], - "source": [ - "print(statslist.columns)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "616jD7Q5hbLL" - }, - "source": [ - "例えば、```CYCLE```(周期)というものがあるので、 \n", - "CYCLEが\"月次\"(月ごと)になっているデータだけをピックアップして、 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HJGryvLBc0ty", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "statslist = statslist[statslist.CYCLE == \"月次\"] " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tGm4W58th85l" - }, - "source": [ - "\n", - "その```TABLE_INF```(統計表ID)と```TITLE```(タイトル)だけを表示してみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "vLnBXsfgh_C_", - "outputId": "987b8b47-5564-419c-d6c5-5aeac7746081", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TABLE_INF TITLE\n", - "2 0003085562 事業所・企業等の産業(中分類)別売上高,従業上の地位別事業従事者数(月次)【2013年1月~】\n", - "5 0003191203 事業活動の産業(中分類)別売上高(月次)【2013年1月~】\n", - "7 0003085489 事業活動の産業(中分類)別需要の状況【2013年1月~2016年12月】\n", - "8 0003085521 事業活動の産業(中分類),事業所・企業等の産業(中分類)別売上高(月次)【2013年1月~12月】\n", - "10 0003094573 事業活動の産業(一部中分類),事業所・企業等の産業(一部中分類)別売上高(月次)【2013年...\n" - ] - } - ], - "source": [ - "statslist[[\"TABLE_INF\", \"TITLE\"]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xuoghPkAciH6" - }, - "source": [ - "```TABLE_INF```の数値が[統計表ID]と呼ばれるものです。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TASwyySl35Rf" - }, - "source": [ - "ではこの中から\"事業活動の産業(中分類)別売上高(月次)【2013年1月~】\"を読み出してみましょう。 \n", - "それには```read_statsdata```という関数が用意されているので、 \n", - "引数に```TABLE_INF```(統計表ID)を入力すると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "eRg7btsH35X0", - "outputId": "11cd68e4-c244-4a4f-c6d3-446426d1e0ef", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " tab_code 表章項目 cat01_code 事業活動の産業 ... 時間軸(月次) unit value annotation\n", - "0 001 売上高(収入額) 00000 合計 ... 2013年1月 百万円 27331888 NaN\n", - "1 001 売上高(収入額) 00000 合計 ... 2013年2月 百万円 27395304 NaN\n", - "2 001 売上高(収入額) 00000 合計 ... 2013年3月 百万円 35140562 NaN\n", - "3 001 売上高(収入額) 00000 合計 ... 2013年4月 百万円 28676427 NaN\n", - "4 001 売上高(収入額) 00000 合計 ... 2013年5月 百万円 28648626 NaN\n", - "... ... ... ... ... ... ... ... ... ...\n", - "5035 001 売上高(収入額) 20000 その他 ... 2021年5月 百万円 869554 NaN\n", - "5036 001 売上高(収入額) 20000 その他 ... 2021年6月 百万円 956542 NaN\n", - "5037 001 売上高(収入額) 20000 その他 ... 2021年7月 p 百万円 937055 NaN\n", - "5038 001 売上高(収入額) 20000 その他 ... 2021年8月 p 百万円 894658 NaN\n", - "5039 001 売上高(収入額) 20000 その他 ... 2021年9月 p 百万円 1005051 NaN\n", - "\n", - "[5040 rows x 11 columns]\n", - "1.1.5\n" - ] - } - ], - "source": [ - "from pandas_estat import read_statsdata \n", - "df = read_statsdata(\"0003191203\") \n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pPWScZG1e0Zu" - }, - "source": [ - "これで、データを抽出することができました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "2IdKeyZ_vLqw", - "outputId": "62fa4030-df23-453c-8bee-9d6eab523c76", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['tab_code', '表章項目', 'cat01_code', '事業活動の産業', 'area_code', '地域',\n", - " 'time_code', '時間軸(月次)', 'unit', 'value', 'annotation'],\n", - " dtype='object')" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BC5Z5beZvgZ_" - }, - "source": [ - "もう属性を少し絞ってみましょう。\n", - "\n", - "dataframeの\"事業活動の産業\"列にどんなものがあるかを抽出し、 \n", - "```set```関数を使って重複を除くと..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "J1LtPEnxvf89", - "outputId": "917711c3-64d2-4f7f-9a02-1f61220056d5", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'37通信業',\n", - " '38放送業',\n", - " '39情報サービス業',\n", - " '4*航空運輸業,郵便業(信書便事業を含む)',\n", - " '40インターネット附随サービス業',\n", - " '41映像・音声・文字情報制作業',\n", - " '42鉄道業',\n", - " '43道路旅客運送業',\n", - " '44道路貨物運送業',\n", - " '45水運業',\n", - " '47倉庫業',\n", - " '48運輸に附帯するサービス業',\n", - " '68不動産取引業',\n", - " '69不動産賃貸業・管理業',\n", - " '70物品賃貸業',\n", - " '72専門サービス業(他に分類されないもの)\\u3000(※「純粋持株会社」(平成25年1月以降)を除く)',\n", - " '73広告業',\n", - " '74技術サービス業(他に分類されないもの)',\n", - " '75宿泊業',\n", - " '76飲食店',\n", - " '77持ち帰り・配達飲食サービス業',\n", - " '78洗濯・理容・美容・浴場業',\n", - " '79その他の生活関連サービス業\\u3000(※「家事サービス業」を除く)',\n", - " '80娯楽業',\n", - " '82aうち社会教育,職業・教育支援施設',\n", - " '82bうち学習塾,教養・技能教授業',\n", - " '82その他の教育,学習支援業',\n", - " '83医療業',\n", - " '84保健衛生\\u3000(※「保健所」を除く)',\n", - " '85社会保険・社会福祉・介護事業\\u3000(※「社会保険事業団体」(平成25年1月以降)及び「福祉事務所」を除く)',\n", - " '88廃棄物処理業',\n", - " '89自動車整備業',\n", - " '90機械等修理業(別掲を除く)',\n", - " '91職業紹介・労働者派遣業',\n", - " '92その他の事業サービス業',\n", - " '95その他のサービス業',\n", - " 'その他',\n", - " 'サービス産業計',\n", - " '合計',\n", - " 'G情報通信業',\n", - " 'H運輸業,郵便業',\n", - " 'K不動産業,物品賃貸業',\n", - " 'L学術研究,専門・技術サービス業\\u3000(※「学術・開発研究機関」(平成25年1月以降)及び「純粋持株会社」(平成25年1月以降)を除く)',\n", - " 'M宿泊業,飲食サービス業',\n", - " 'N生活関連サービス業,娯楽業\\u3000(※「家事サービス業」を除く)',\n", - " 'O教育,学習支援業\\u3000(※「学校教育」を除く)',\n", - " 'P医療,福祉(※「保健所」、「社会保険事業団体」(平成25年1月以降)及び「福祉事務所」を除く)',\n", - " 'Rサービス業(他に分類されないもの)\\u3000(※「政治・経済・文化団体」、「宗教」及び「外国公務」を除く)'}" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "set(df[\"事業活動の産業\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "u0GQxlyZwJa9" - }, - "source": [ - "\"42鉄道業\"を見てみましょう。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QM1iHQkKwVhq", - "outputId": "5a7c4bea-f252-48c2-846a-e7c039fc4bd0", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 時間軸(月次) value unit\n", - "945 2013-01-01 583438 百万円\n", - "946 2013-02-01 529656 百万円\n", - "947 2013-03-01 644219 百万円\n", - "948 2013-04-01 627287 百万円\n", - "949 2013-05-01 581344 百万円\n", - "... ... ... ...\n", - "1042 2021-02-01 332987 百万円\n", - "1043 2021-03-01 424911 百万円\n", - "1044 2021-04-01 402705 百万円\n", - "1045 2021-05-01 341804 百万円\n", - "1046 2021-06-01 360438 百万円\n", - "\n", - "[102 rows x 3 columns]\n", - "1.1.5\n" - ] - } - ], - "source": [ - "ndf = df[df[\"事業活動の産業\"] == \"42鉄道業\"] #dfの中の、\"事業活動の産業欄が\"42鉄道業\"のものを抽出し、ndfと名前をつける\n", - "\n", - "ndf = ndf[ndf[\"時間軸(月次)\"].str.endswith(\"月\")]\n", - "ndf[\"時間軸(月次)\"] = pd.to_datetime(ndf[\"時間軸(月次)\"], format=\"%Y年%m月\")\n", - "ndf = ndf.sort_values(\"時間軸(月次)\")\n", - "\n", - "#必要なところだけ抽出すると...\n", - "ndf[[\"時間軸(月次)\", \"value\", \"unit\"]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AS81LjUszJuv" - }, - "source": [ - "図を描いてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "t-EtOX6tzLJh", - "outputId": "97e640e4-00d7-4ee7-d57a-e1fc7933f357", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: japanize-matplotlib in /usr/local/lib/python3.7/dist-packages (1.1.3)\n", - "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from japanize-matplotlib) (3.2.2)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.8.2)\n", - "Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.19.5)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (3.0.6)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.3.2)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (0.11.0)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->japanize-matplotlib) (1.15.0)\n" - ] - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "!pip install japanize-matplotlib \n", - "import japanize_matplotlib \n", - "import matplotlib.dates as mdates" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 205 - }, - "id": "_HnkKKiyxBuT", - "outputId": "4908d995-9efd-4c91-b947-3a906b029a9d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x = ndf[\"時間軸(月次)\"].values\n", - "y = ndf[\"value\"].values.astype(float) * 1.e-2 # XX億円に換算\n", - "\n", - "fig = plt.figure(figsize=(30, 4))\n", - "ax = fig.add_subplot(111) \n", - "ax.set_facecolor(\"#e0e0e0\")\n", - "ax.set_ylabel(\"鉄道業の収益 [億円]\")\n", - "ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=range(1, 13, 4)))\n", - "ax.xaxis.set_major_formatter(mdates.DateFormatter(\"%Y/%m\"))\n", - "ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - "ax.plot(x,y,marker=\"o\",color=\"green\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-bB9Upw_zg_K" - }, - "source": [ - "新型コロナウイルスの感染拡大を受けて2020年の1月ごろから \n", - "緊急事態宣言の解除(5月25日)まで、大幅に収益が減っていることが分かる。\n", - "\n", - "\n", - "\n", - "---\n", - "\n" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "Nq2fTnB_fEjF" - }, - "source": [ - "### 備考\n", - "\n", - "あらかじめ興味のあるデータ,分類・属性等がわかっている場合は、 \n", - "上記のコードの対応するIDなどを変更すればよいし \n", - "コードを拡張して、データ,分類・属性等の一覧表などを適宜表示しながら、 \n", - "特定のキーワードを含むものに絞ってデータを取得したりもできる。\n", - "\n", - "ちなみに、GoogleColabで提供されているコードスニペット(テンプレートのようなもの) \n", - "を用いることで、プルダウンでデータ,分類・属性等を選んでプロットする、 \n", - "といったようにGoogle Colab.上で自分だけのe-Stat分析ツールを作ることもできる \n", - "(最終課題で取り組むのも良い)\n" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_WebScraping.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_Error.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_Error.ipynb deleted file mode 100644 index dd97b28f..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_Error.ipynb +++ /dev/null @@ -1,799 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4_5p-ivElTgJ" - }, - "source": [ - "# よくあるエラー集" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JvTtKsM5pmDk" - }, - "source": [ - "このノートブックにはPythonを触っていてよく起こりがちなエラーの例をまとめます. \n", - "**皆さんの手元で起こったエラーの例も共有したいので、ぜひ教えてください**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eYKyKUoYmDRE" - }, - "source": [ - "\n", - "エラーには、いろいろな分類の仕方がありますが代表的なものは以下のとおりです:\n", - "\n", - "* 構文エラー (syntax error)\n", - "* ランタイムエラー (runtime error) または 例外 (exception)\n", - "* 論理エラー (logic error)\n", - "\n", - "これらの代表的な例を以下で紹介します。\n", - "\n", - "pythonのようなインタプリタ言語では、実行時にコードの有効性が検証されるため、構文エラーはランタイムエラーとも言えますが、エラーメッセージに従って分類することにします。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SpDDGwnLnKqK" - }, - "source": [ - "## 構文エラー\n", - "\n", - "構文エラーとは、プログラミング言語の文法・構文規則に違反していることによるエラーです。 \n", - "代表的なものは\n", - "\n", - "* 括弧や引用符の閉じ忘れ\n", - "* コロンのつけ忘れ\n", - "* ピリオドとカンマの間違い\n", - "* 全角記号の使用\n", - "* ```=```(代入)と```==```(等号)の混同\n", - "* 不適切なインデント\n", - "\n", - "などがあります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aZyMaLbLoQK-" - }, - "source": [ - "**引用符のつけ忘れ**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "t_Q-dc0IoO0r", - "outputId": "5c62d651-f031-4ea7-b479-6304fc6a9bbb" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(\"Hello World)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m EOL while scanning string literal\n" - ] - } - ], - "source": [ - "print(\"Hello World) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ELW2rnF0oUd3" - }, - "source": [ - "**括弧の閉じ忘れ**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "1-pTnHTEoYsM", - "outputId": "64e6d562-5e01-418c-dfe7-297f24096eba" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(\"Hello World\"\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m unexpected EOF while parsing\n" - ] - } - ], - "source": [ - "print(\"Hello World\" " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zpAXxTJvofVN" - }, - "source": [ - "**ピリオドとカンマの間違い**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "ZkxkEWp4ojjV", - "outputId": "827a5e7d-bf65-4250-db41-fb2fae93630a" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m a = [2.2. 3.14] # ほんとはa = [2.2, 3.14]のつもり\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "a = [2.2. 3.14] # ほんとはa = [2.2, 3.14]のつもり" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Uyfg5Kwgn4QP" - }, - "source": [ - "**コロンのつけ忘れ**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "6Jq2pSYknQV3", - "outputId": "6e4d5ced-5ed2-492f-a507-ac52266aceb5" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m for i in range(2)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "for i in range(2)\n", - " print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iyYf_NVRpH7x" - }, - "source": [ - "**全角記号の使用**\n", - "\n", - "これは見た目では気が付きづらいので、**\"invalid character\"というSyntaxErrorが出たときは、全角を疑う**というのもおすすめです。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "SX39eEOco8iW", - "outputId": "893459db-9bd1-4d27-cf28-14b5c56d1d77" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 1+1 #後ろの1が全角になっている\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n" - ] - } - ], - "source": [ - "1+1 #後ろの1が全角になっている" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "smCVbWbqpDhp", - "outputId": "e2620838-ea98-457d-fde5-37c09f030bf1" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 1+2\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n" - ] - } - ], - "source": [ - "1+2 # 和記号+が全角になっている" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "id": "YMM02tBIpMRS", - "outputId": "43e549e4-f66e-4e8a-b1c3-b997dfe6ad96" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "execution_count": 16, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "1 + 1 #これはOK" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "gQYVZ3HYpPUM", - "outputId": "2858a768-f80f-4ff6-ff78-b5629b107eb4" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 1 + 1\u001b[0m\n\u001b[0m  ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n" - ] - } - ], - "source": [ - "1 + 1 #+と後ろの1の間に全角スペースが入っている" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P5ijbBANp16z" - }, - "source": [ - "**=(代入)と==(等号)の混同**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "x8onYf_MqLVL", - "outputId": "698727a2-36a8-4c26-ae45-a4f39f38c416" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m3\u001b[0m\n\u001b[0;31m if a = b : #ほんとは==のつもり\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "a = 2.0\n", - "b = 3.0\n", - "if a = b : #ほんとは==のつもり\n", - " print(\"a equal b!!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7Jj0xhgIqjlI" - }, - "source": [ - "**不適切なインデント**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GoxOOulCv2Z1" - }, - "source": [ - "下のコードは[予期しないインデント]というエラーがでる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "QIK7JWJqqlLO", - "outputId": "17b625d7-6a49-4dc0-9458-c463614aec97" - }, - "outputs": [ - { - "ename": "IndentationError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m3\u001b[0m\n\u001b[0;31m for j in range(5):\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unexpected indent\n" - ] - } - ], - "source": [ - "for i in range(5):\n", - " print(i) \n", - " for j in range(5): ## この行と次の行のブロックが不要にインデントされている\n", - " print(j)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ncV6G7KvrHKW" - }, - "source": [ - "## ランタイムエラー\n", - "\n", - "ランタイムエラーとは、 \n", - "書き方そのものはPythonの文法的に誤りではないものの、 \n", - "実際にコードを実行するとエラーになってしまうものを指します。\n", - "\n", - "非常に多岐に渡りますが、代表的なものとしては、\n", - "\n", - "* 範囲外参照\n", - "* 定義されていない変数の参照\n", - "* 意図しない変数の型に対する演算\n", - "* 0除算\n", - "\n", - "などがあります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7qBpnEkqrwNV" - }, - "source": [ - "**範囲外参照**\n", - "\n", - "要素が2つしかないリストの3番目の要素にアクセスしようとすると、\n", - "当然エラーが出ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "qyUnlHCzr_K_", - "outputId": "7c9384e5-d442-4c52-ed4c-e2882106288d" - }, - "outputs": [ - { - "ename": "IndexError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m \u001b[0;34m\"いちご\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"りんご\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m: list index out of range" - ] - } - ], - "source": [ - "a = [ \"いちご\", \"りんご\"]\n", - "a[2]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kb2WM6BLtbYK" - }, - "source": [ - "関数の定義域を超えて引数に入れるのもダメです" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "gWGn5zoithdY", - "outputId": "8ceae3e1-f923-4a0a-9a25-3285fb7e2dcf" - }, - "outputs": [ - { - "ename": "ValueError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mValueError\u001b[0m: math domain error" - ] - } - ], - "source": [ - "import math \n", - "math.log(0.0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IJFs-2jnsDeK" - }, - "source": [ - "**定義されていない変数の参照**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uNO8rFMYsHiI" - }, - "source": [ - "当然、定義されていない変数を使うとエラーが起こります" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - }, - "id": "V1H-oFVFsF9x", - "outputId": "ce8d0ade-07f4-4223-bc52-99198bb2dbc4" - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'num' is not defined" - ] - } - ], - "source": [ - "print(num)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**ノートブック特有の注意点**\n", - "\n", - "作業途中に定義していた変数がメモリに残っていて、そのおかげで動いているが、\n", - "後日作業を再開した際(新しいセッションで実行したとき)にその変数が未定義となり動かなくなる。\n", - "といったことも稀に起こります。\n", - "とくに、セルを跨いで実行したりするノートブックの編集・実行においては、よく起こるミスです。\n", - "こうしたエラーを避けるには、適宜ランタイムやカーネルなどを再起動して、\n", - "新しいセッションで実行できるか確認するなどの対策が必要です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y5x3eqQrsMQB" - }, - "source": [ - "打ち間違いにも注意です" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "8NAoPZHZsNbh", - "outputId": "64d1047d-66fa-423f-e912-21d9f900997d" - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0minput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"sample_file.txt\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0mimput\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'imput' is not defined" - ] - } - ], - "source": [ - "input = \"sample_file.txt\"\n", - "print( imput )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q-he-J69sS-Z" - }, - "source": [ - "**意図しない演算**\n", - "\n", - "数値と数値の足し算は出来ますが、\n", - "数値と文字のように型が異なる変数を足すことはできません。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - }, - "id": "Iovexbyrse_B", - "outputId": "6ffb6719-b2db-4c87-f332-0d78bab79646" - }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;34m\"私は\"\u001b[0m\u001b[0;34m+\u001b[0m \u001b[0;36m200\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m\"歳です\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m: must be str, not int" - ] - } - ], - "source": [ - "\"私は\"+ 200 + \"歳です\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zCWRYfAnJW8h" - }, - "source": [ - "和に限らず\"演算\"は一般に特定の型(同士)のみに定義されています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GqJC1Plfk-0R" - }, - "source": [ - "また、リスト等の要素にアクセスするのに、 \n", - "角括弧と間違えて丸括弧を使うミスもよく見られます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 202 - }, - "id": "HHOWbWlBk_LK", - "outputId": "4a1d5377-ce2f-4449-a14a-0fdc608d1026" - }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;31m#これはOK\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#これはNG\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m: 'list' object is not callable" - ] - } - ], - "source": [ - "a = [1, 2, 3]\n", - "a[1] #これはOK\n", - "a(1) #これはNG" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1NNF7t3XtONA" - }, - "source": [ - "**0除算**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yeZ04wKttTMh" - }, - "source": [ - "0で割ることはできません" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - }, - "id": "M3S_PXdFtPVQ", - "outputId": "12364983-d12c-4a1c-d48e-85dc04ad8191" - }, - "outputs": [ - { - "ename": "ZeroDivisionError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;36m300\u001b[0m\u001b[0;34m/\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mZeroDivisionError\u001b[0m: division by zero" - ] - } - ], - "source": [ - "300/ 0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qrDtUKhXtnvo" - }, - "source": [ - "## 論理エラー\n", - "\n", - "論理エラーとは、文法的にもOK(syntax errorなし)で、ランタイムエラーも無く、最後までプログラムが実行されるが、「意図した通りに動かない」というものを指します。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "XjepDskttuhm" - }, - "source": [ - "たとえば「aが負かつ正なら文字列を表示する」という以下のコードは、論理的にはおかしい命令ですが、構文エラーにもランタイムエラーにもなりません\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w7CuitFBuE5Z" - }, - "outputs": [], - "source": [ - "a = 2.0\n", - "if a < 0.0 and a > 0.0: \n", - " print(\"aは正かつ負です!!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9gWAbE1OvIeV" - }, - "source": [ - "人間側のエラーとも言えそうですね。 \n", - "第1章で説明したように、print文を使ったりしながらこうした論理エラーが無いか調べることもときに必要です。" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyNQPlOipy4Wx6FmhulV/Ewt", - "include_colab_link": true, - "name": "Python_misc_Error.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_NewtonsMethod.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_NewtonsMethod.ipynb deleted file mode 100644 index 8beda34e..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_NewtonsMethod.ipynb +++ /dev/null @@ -1,299 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aLf3PqMgkFNC" - }, - "source": [ - "# ニュートン法によるN次元多項式の求根\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0ZIFvSR9kOo9" - }, - "source": [ - "$n$次元多項式$f(x) = c_0 + c_1 x + c_2 x^2 + \\ldots + c_nx^n$が与えられた時、 \n", - "$f(x)=0$となるような解(根)をどのように求めたら良いだろうか?\n", - "\n", - "$n=2$までの場合については、中学までで習うようによく知られた公式がある。 \n", - "$n=3,4$の場合についてもそれぞれ、[カルダノの公式]や[フェラリの解法]として知られる \n", - "代数的な求根法が存在する。 \n", - "なお、5次以上の代数方程式には代数的な解法※が存在しないことが知られている(アーベル-ルフィニの定理) \n", - "(※方程式の係数の有限回の四則演算および冪根操作で解を表示すること)\n", - "\n", - "\n", - "方程式の解や積分値などが代数的/解析的に解けない場合は、もちろん数値計算の出番となる。 \n", - "\n", - "このノートブックでは、ニュートン法(あるいはニュートン・ラフソン法)として知られる求根アルゴリズムを紹介する。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tPW10YYsnOHs" - }, - "source": [ - "## ニュートン法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZnosTDdTnPFL" - }, - "source": [ - "ニュートン法による関数$f(x)=0$の求根アルゴリズム自体は非常にシンプルで\n", - "\n", - "1. 初期値$x \\in \\mathbb{R} $ (または$x \\in \\mathbb{C})$を決める\n", - "2. 上の初期値を$x_0$とでも呼ぶことにして、 \n", - " $ x_{t+1} = x_t - f(x_t) / f'(x_t) $ と$x$を更新し \n", - " $x$の値が収束するまで更新を繰り返す\n", - "\n", - "というものである。 \n", - "\n", - "$\\clubsuit$ 進んだ注 \n", - "高次元のベクトル$\\boldsymbol{x}$に拡張することもできる。 \n", - "$ \\boldsymbol{x}_{t+1} = \\boldsymbol{x}_{t} - \\partial f(\\boldsymbol{x}_t)^{-1} f(\\boldsymbol{x}_t)$\n", - "$\\partial f(\\boldsymbol{x}_t)$はヤコビ行列になるが、 \n", - "数値計算上の困難が有り、実際に解く場合には様々な工夫が必要となる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lP5pa0eSpqfz" - }, - "source": [ - "### ニュートン法のアルゴリズムの実装例\n", - "\n", - "$n=5$の多項式の例を用いて、ニュートン法のアルゴリズムを実装してみよう。 \n", - "実数係数の多項式の場合、非ゼロの係数を持つ最大の$n$が奇数次ならば、 \n", - "関数$f(x)$は必ず実軸を横切る(つまり、$f(x)=0$の解が存在する。 \n", - "\n", - "まず係数を適当に...\n", - "$c_0 = 1.0, c_1 = 1.0, c_2 = 2.0, c_3 = 3.0, c_4 = 4.0, c_5 = 5.0$\n", - "とでもして、プロットしてみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 276 - }, - "id": "mDpCwZF0kEnj", - "outputId": "c5eb065f-87bf-42d0-fc38-1c57f88b8848" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np \n", - "from matplotlib import pyplot as plt\n", - "\n", - "\n", - "## 多項式の係数を定義\n", - "cs = np.array( [1.0, 1.0, 2.0, 3.0, 4.0, 5.0] )\n", - "\n", - "## 愚直に多項式とその微分を定義\n", - "def xpoly(x):\n", - " return np.array([1.0,x,x**2,x**3,x**4,x**5])\n", - "def xpoly_prime(x):\n", - " return np.array([0.0,1.0,2*x,3*x**2,4*x**3,5*x**4])\n", - "\n", - "# 適当な区間で点を作成して描画してみる\n", - "xr = np.arange(-100,100,1.0) \n", - "yr = np.array([ np.dot(cs,xpoly(x)) for x in xr])\n", - "fig = plt.figure(figsize = (20,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.plot(xr,yr)\n", - "ax.plot(xr,0.0*yr,linestyle=\"dotted\",color=\"gray\") # y=0\n", - "plt.show()\n", - "plt.close() \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1anohi6wsU2l" - }, - "source": [ - "ゼロ点($f(x)=0$となる$x$)があることはわかるが、このスケールだと具体的な値はよくわからない。\n", - "\n", - "次にニュートン法のアルゴリズムに対応する関数を作って解を求めてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "dqnujbsFspn8", - "outputId": "ceb388d5-e79c-4190-bce1-b6cf812fabe3" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "it 1 x -16.03067071498258 y -15383219.0 -5041023.966714532\n", - "it 2 x -12.854892481957197 y -5041023.966714532 -1651968.106196959\n", - "it 3 x -10.313885990777683 y -1651968.106196959 -541379.1850391383\n", - "it 4 x -8.28061578625216 y -541379.1850391383 -177429.79752234442\n", - "it 5 x -6.653441486353502 y -177429.79752234442 -58155.11457333112\n", - "it 6 x -5.3510406877452255 y -58155.11457333112 -19063.39609222064\n", - "it 7 x -4.308351359326742 y -19063.39609222064 -6250.001804089965\n", - "it 8 x -3.4733344532483637 y -6250.001804089965 -2049.456302435744\n", - "it 9 x -2.8044032112313464 y -2049.456302435744 -672.1354918462077\n", - "it 10 x -2.268410685784332 y -672.1354918462077 -220.3982199780121\n", - "it 11 x -1.8391438506400222 y -220.3982199780121 -72.1807419252783\n", - "it 12 x -1.4963673552041776 y -72.1807419252783 -23.526420007144324\n", - "it 13 x -1.2256340399442445 y -23.526420007144324 -7.546944476833993\n", - "it 14 x -1.0192792149298004 y -7.546944476833993 -2.3017219833384583\n", - "it 15 x -0.878192974042394 y -2.3017219833384583 -0.6001347172980255\n", - "it 16 x -0.8072662373727413 y -0.6001347172980255 -0.09757282508715664\n", - "it 17 x -0.7905468880551323 y -0.09757282508715664 -0.00434806118170894\n", - "it 18 x -0.789729888238273 y -0.00434806118170894 -9.879715826832669e-06\n", - "it 19 x -0.7897280233719703 y -9.879715826832669e-06 -5.135225578101199e-11\n", - "it 20 x -0.7897280233622771 y -5.135225578101199e-11 5.551115123125783e-16\n", - "x -20.0 => -0.7897280233622771 after 20 iterations\n" - ] - }, - { - "data": { - "text/plain": [ - "-0.7897280233622771" - ] - }, - "execution_count": 36, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "def Newton(cs,xini,tolxrel=1.e-6,toly=1.e-6,maxit=1000):\n", - " xp = xpoly(xini)\n", - " xpp = xpoly_prime(xini)\n", - " x = xini\n", - " itnum = 0\n", - " while True:\n", - " y = np.dot(cs,xp)\n", - " yp = np.dot(cs,xpp) \n", - " delta = y / yp\n", - " x += - delta\n", - " xp = xpoly(x)\n", - " xpp = xpoly_prime(x)\n", - " ynew = np.dot(cs,xp)\n", - " itnum += 1\n", - " print(\"it\", itnum, \"x\",x, \"y\", y,ynew)\n", - " if abs(delta/x) < tolxrel and abs(ynew) \", x, \" after \",itnum, \"iterations\")\n", - " return x \n", - "\n", - "x_initial = -20.0\n", - "Newton(cs,x_initial)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lg6vMncbwyfa" - }, - "source": [ - "$x=-20.0$から始めると、20回のiteration(反復)で、 \n", - "yの値が$5.e-16 \\simeq 0$の点が求められている事がわかる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_yFWkaZxxBqB" - }, - "source": [ - "今のようにうまくいく例もある一方で、関数や初期値によっては解に収束しない場合があるので注意が必要" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dPK_KIGcyuod" - }, - "source": [ - "# LICENSE" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q943wB7Z4DYK" - }, - "source": [ - "\n", - "Copyright (C) 2021 Sota Yoshida\n", - "\n", - "[ライセンス:クリエイティブ・コモンズ 4.0 表示 (CC-BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.ja)" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyMWxHIsatxKmpa/oePk47i/", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_NewtonsMethod.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_ODE.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_ODE.ipynb deleted file mode 100644 index c9e323d6..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_ODE.ipynb +++ /dev/null @@ -1,751 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wVdYiDLFHEEL" - }, - "source": [ - "# 常微分方程式の数値解法" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MO6-C742mcJ-" - }, - "outputs": [], - "source": [ - "#使用するモジュールのimport\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JxV3JSWOd-W8" - }, - "source": [ - "## 常微分方程式" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AGBSpCwiHIgY" - }, - "source": [ - "多くの自然現象や社会現象は微分方程式として定式化される。\n", - "\n", - "身近な例としてはニュートンの運動方程式にはじまり、\n", - "金融や群集動態、感染症のモデルなどにも当てはまる。\n", - "\n", - "このノートでは、微分方程式のうちとくに一変数関数の場合である \n", - "常微分方程式(ordinary differential equation, ODE)について \n", - "いくつかの代表的な数値解法を解説するとともに、 \n", - "アルゴリズムを自分で実装してみよう。\n", - "\n", - "例えば1階の常微分方程式は、一般に以下の形で書くことが出来る: \n", - "$dx(t)/dt = f(x,t)$ (Eq. 1)\n", - "\n", - "これは、ある質点の時刻$t$での座標を$x(t)$と呼ぶことにすると、 \n", - "質点の位置の変化が$f(x,t)$の関数として書けるような状況に相当する。\n", - "\n", - "注) 別に$t$は時間である必要はないし、 \n", - "$x(t)$は座標以外の量(金融商品の価格など)何でも構わない。\n", - "\n", - "\n", - "一般に常微分方程式が与えられた時、まずはその解が変数分離などを用いて \n", - "閉じた形で書き下せないかと考えるわけだが、 \n", - "実際の多くの問題ではそうは上手く行かず、数値計算が必要となる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "duBNxeB_cUMU" - }, - "source": [ - "以下では、主として$dx/dt = f(x,t)$を考えるが、 \n", - "高階の微分を含む場合も、\n", - "\n", - "$$\n", - "\\left[\n", - "\\begin{matrix} \n", - "x_1 \\\\ \n", - "x_2 \\\\\n", - "\\vdots \\\\\n", - "x_r\n", - "\\end{matrix}\n", - "\\right]\n", - "= \n", - "\\left[\n", - "\\begin{matrix} \n", - "x \\\\ \n", - "dx/dt \\\\\n", - "\\vdots \\\\\n", - "d^{r-1}x/dt^{r-1}\n", - "\\end{matrix} \\right]\n", - "$$\n", - "\n", - "と置き換えれば、連立1階常微分方程式:\n", - "\n", - "$$\n", - "\\left[\n", - "\\begin{matrix} \n", - "x_2 \\\\ \n", - "x_3 \\\\\n", - "\\vdots \\\\\n", - "x_{r}\n", - "\\end{matrix}\n", - "\\right]\n", - "= \n", - "\\frac{d}{dx}\n", - "\\left[\n", - "\\begin{matrix} \n", - "x_1 \\\\ \n", - "x_2 \\\\\n", - "\\vdots \\\\\n", - "x_{r-1} \n", - "\\end{matrix} \\right]\n", - "$$\n", - "とみなすことが出来る。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "brvU1jS2W0NK" - }, - "source": [ - "\n", - "常微分方程式の解を求めるためには、 \n", - "適切な条件(初期条件や境界条件)を設定しなければならない。\n", - "\n", - "そのうち、変数$t$の最初の値(初期値,初期条件)$t_0$と \n", - "$x(t=t_0)$の値が与えられた問題を初期値問題と呼ぶ。 \n", - "※$t_0$は問題によって0だったり、$-\\infty$だったりする。\n", - "\n", - "\n", - "解の存在性や下記のリプシッツ条件など適切な条件の元での \n", - "解の一意性の証明等については教科書に譲る。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "o2JwiqJAd2LL" - }, - "source": [ - "###リプシッツ条件" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ipc62VyEeFXo" - }, - "source": [ - "関数$f$が$U$(たとえば$R^n$の部分集合) 上でリプシッツ(Lipshitz)連続であるとは、 \n", - "正実数$K$が存在し、任意の$x,y \\in U$に対し、 \n", - "$||f(x)-f(y)|| \\leq K ||x −y||$が成立することである。 \n", - "以下では$||\\cdot||$はユークリッドノルムとし、$K$をリプシッツ定数と呼ぶ。\n", - "\n", - "この$K$が存在しているとき、 \n", - "前述の常微分方程式の初期値問題は一意の解を持つ。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3BMukvRtgdZI" - }, - "source": [ - "## 代表定期な数値解法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-pwbBdUBgjMr" - }, - "source": [ - "### オイラー(Euler)法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JrC4_IHYgu8-" - }, - "source": [ - "1階の常微分方程式$dx(t)/dt=f(x,y)$を数値的に解く上で \n", - "最も基本的な考え方は時刻(便宜上そう呼ぶ)を \n", - "細かく分割した上で、$x$の任意時刻$t$での近似値を \n", - "初期値から初めて逐次的に求めていくことである。 \n", - "\n", - "以下では、その最も単純な例であるオイラー法を説明する。\n", - "\n", - "微分の定義:\n", - "$dx(t)/dt = \\lim_{h\\to 0} \\frac{x(t+h) - x(t)}{h}$から \n", - "微小変分$h$を十分小さく取れば、 \n", - "$x_{i+1} = x_{i} + h f(x,t_i)$という近似式が得られる。\n", - "\n", - "つまり、$i=0$の初期値$(x_0,t_0=0)$から順番に上の漸化式を用いて、 $i$番目の時刻$t_i$での座標$x_i$を推定していく。\n", - "\n", - "※一般に微小変分$h$は各ステップ$i$に依存しても良いが、簡単のため共通とした。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VgupCOzCjPwO" - }, - "source": [ - "例: $dx/dt = -2x^2t$, 初期条件$x(t=0)=1.0$のもとで \n", - "$0 < t \\leq 1.0$での$x$の値を予想してみよう:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "lI-2SaBkHCXa", - "outputId": "be62334d-2414-425b-a2a3-29a2efee59ff" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# f(x,t)のトイモデルとして dx/dt = -2tx^2 というものを考える\n", - "def f(x,t): \n", - " return - 2.0* x * x * t\n", - "#時刻tを間隔hで細かく分割する\n", - "h = 1.e-4\n", - "tr = np.arange(0.0,1.0,h) \n", - "#初期条件\n", - "x0 = 1.0 \n", - "\n", - "#求解\n", - "x = x0\n", - "xs = [x0]\n", - "for t in tr:\n", - " x += h * f(x,t)\n", - " xs += [x]\n", - "\n", - "#描画\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"x\")\n", - "plt.plot(tr,xs[:-1])\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_xzmhI0Rq7A_" - }, - "source": [ - "実は今の初期条件のもとでこの微分方程式は \n", - "閉じた形$x(t)=x_0/(x_0t^2+1)$で解が与えられるので、 \n", - "真の解と数値解法による近似解を比較できる。\n", - "\n", - "差分のlogを取ってみると...以下のようになる:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "dMy_G8hjq6i-", - "outputId": "acdfa5e0-6bf7-4e04-922a-8d9885e98d63" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def fexact(t):\n", - " return x0/(x0* t*t + 1.0)\n", - "xe = np.array([ fexact(t) for t in tr])\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\"); plt.ylabel(\"abs. diff.\")\n", - "plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])))\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q7jGOD0zssEL" - }, - "source": [ - "Taylor展開するだけで簡単に調べられるようにEuler法は局所打ち切り誤差が$O(h^2)$、 \n", - "大局打切り誤差が$\\sim O(h^2)\\times O(h^{-1})\\sim O(h)$の手法となっている。 \n", - "つまり1桁精度を上げたいなら$h$を1/10、つまり計算量を10倍にしなくてはならない。\n", - "\n", - "上の$h$を変えてチェックしてみよう。 \n", - "\n", - "大局誤差が$h$の$p$乗に比例する手法を一般に$p$次公式と呼び \n", - "上のEuler法は1次公式となる。\n", - "\n", - "Euler法に少し工夫を加えた修正Euler法は、2次公式であり \n", - "$h$を1/10すると、大局誤差は1/100にできる。 \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6ru34y_hvFV6" - }, - "source": [ - "### 4次のルンゲクッタ法 (RK4)\n", - "\n", - "次に4次公式の代表例である4次のルンゲクッタ法を紹介しよう。 \n", - "古典的ルンゲ=クッタ法などとも呼ばれるこの方法は、 \n", - "幾つかの$(x,t)$に対して$f(x,t)$の値を計算し、 \n", - "打切り誤差が互いにキャンセルしあうように \n", - "うまく重み付けをして次ステップの$x$の値を求めていく方法であり \n", - "様々なところで用いられている。\n", - "\n", - "基本的には2変数関数のTaylor展開をやれば更新式を導出できるが\n", - "煩雑なので導出については省略することにして結果だけ示すと\n", - "\n", - "$i$番目のステップでの$x,t$の値$x_i,t_i$が所与のとき、\n", - "以下の4点での$f(x,t)$の(近似)値を用意して \n", - "$ f_1 = f(x_i,t_i),\n", - "f_2 = f(x_i+\\frac{h}{2} f_1,t_i+\\frac{h}{2}),$\n", - "$f_3 = f(x_i+\\frac{h}{2} f_2,t_i+\\frac{h}{2}),\n", - "f_4 = f(x_i+h f_3,t_i+h)\n", - "$\n", - "\n", - "$x_{i+1} = x_{i} + \\frac{h}{6} (f_1+2f_2+2f_3 + f_4 )$\n", - "とすることで、4次公式が得られる。\n", - "\n", - "また、前述のような\"重み付け\"の選択には自由度があり、 \n", - "$ f_1 = f(x_i,t_i),\n", - "f_2 = f(x_i+\\frac{h}{3} f_1,t_i+\\frac{h}{3}),$\n", - "$\n", - "f_3 = f(x_i-\\frac{h}{3}f_1 + h f_2,t_i+\\frac{2h}{3}),\n", - "f_4 = f(x_i+hf_1-hf_2+h f_3,t_i+h)\n", - "$\n", - "\n", - "$x_{i+1} = x_{i} + \\frac{h}{8} (f_1+3f_2+3f_3 + f_4 )$\n", - "\n", - "という公式も知られている。\n", - "\n", - "\n", - "前者を実装して、先程の例でEuler法と比べてみると...\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "bpzo_HH03zsy", - "outputId": "2256e450-8361-4754-e1a8-332e05ff5372" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#求解(RK4)\n", - "xsRK4 = [x0]\n", - "x = x0\n", - "for t in tr:\n", - " f1 = f(x,t)\n", - " f2 = f(x+0.5*h*f1, t+0.5*h)\n", - " f3 = f(x+0.5*h*f2, t+0.5*h)\n", - " f4 = f(x+h*f3, t+h)\n", - " x += h*(f1 + 2*f2 + 2*f3 + f4)/6.0\n", - " xsRK4 += [x]\n", - "#描画\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"abs. diff.\")\n", - "plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])),label=\"Euler\")\n", - "plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label=\"RK4\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WqKW52Ncbg7c" - }, - "source": [ - "となり、高精度で解が得られていることが分かる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uIqPPSsJb-KD" - }, - "source": [ - "## 積分を用いた解法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SUuqmECsuB4l" - }, - "source": [ - "常微分方程式 $\\frac{dx}{dt} = f(x,t)$は形式的には \n", - "$x(t') = x(t_0) + \\int^{t'}_{t_0} f(x(t),t,) dt$ と書くことが出来る。\n", - "\n", - "右辺の積分を数値的に計算することで、 \n", - "元の微分方程式の解を求めることを考えよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GSy9sdWUdyXI" - }, - "source": [ - "### Adams-Bashforth法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0mWaZoxBd1m5" - }, - "source": [ - "\n", - "\n", - "以下では特に、Adams-Bashforth法(AB法)と呼ばれる手法を考える。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "svbcn9pIM-n1" - }, - "source": [ - "まずは、2次のAB法を考えよう。\n", - "\n", - "$t_i$と$t_{i+1}$の間の$f(x(t),t)$を、現在居る$i$番目のステップと \n", - "1個前の$i-1$番目のステップを用いて、1次のLagrange補間で近似してみる。\n", - "\n", - "$\n", - "\\begin{align} \n", - "x_{i+1} &= x_i + \\int^{t_{i+1}}_{t_i} P_1(t) dt \\\\\n", - "P_1(t) &= f_{i-1}L_{i-1}(t) + f_i L_i(t) \\\\\n", - "L_{i-1} &= \\frac{t-t_i}{t_{i-1}-t_i}, L_{i} = \\frac{t-t_{i-1}}{t_{i}-t_{i-1}}\n", - "\\end{align}$\n", - "\n", - "各ステップの刻み幅$t_{i}-t_{i-1}$ for $\\forall i $を一定$h$としよう。 \n", - "このもとで上の積分を評価すると、 \n", - "$x_{i+1} = x_i + \\frac{h}{2} (-f_{i-1}+3f_i)$\n", - "という更新式を得る。\n", - "\n", - "この手法の局所打切り誤差は(またTaylor展開して)$O(h^3)$であり、 \n", - "2次の公式となる。一般的な分類に倣えば、この手法は過去の2ステップの情報を利用する、 \n", - "陽(explicit)解法かつ2段法(2-step method)となっている。\n", - "\n", - "\n", - "同様にして、一般に$m$ステップのAB法($n-1$次のLegendre補間を使用)は$m$次公式を与える。 \n", - "たとえば4次公式は$x_{i+1}=x_i + \\frac{h}{24}(-9f_{i-3} + 37f_{i-2} -59f_{i-1} +55f_{i})$\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "40VvY7-xRbXC" - }, - "source": [ - "**Adams-Bashforth法とRunge-Kutta法の違い**\n", - "\n", - "AB法では、過去に評価した$f$の値を用いるため、計算量の増加を防ぐことができる。 \n", - "つまり、各$f$の評価は1回だけで良い。 \n", - "一方で、RK4では各ステップで$f$を4回計算する必要がある。\n", - "\n", - "これは$f$の評価が複雑な場合 \n", - "(例えば解きたい微分方程式が行列(連立)になっていて、$f$に行列演算を含む場合など) \n", - "Runge-Kutta法よりも、高速に計算できるかもしれない。\n", - "\n", - "一方で、$m$次のAB法では過去の情報を利用するため、 \n", - "はじめの$m-1$回については、RK法などで予め求めておく必要がある。 \n", - "また、Runge-Kutta法と比較すると、誤差が大きかったり、 \n", - "数値的に不安定になりやすいことも知られている。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "v8lSgfj-jvu5", - "outputId": "45d3597a-12ff-43bf-eaa5-b24b1f4b6d0c" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def AB4(x0,m=4):\n", - " xsAB = [x0]\n", - " x = x0\n", - " fs = [ 0.0 for i in range(m)]\n", - " for i,t in enumerate(tr):\n", - " if len(xsAB) < m : #RK4\n", - " f1 = f(x,t)\n", - " f2 = f(x+0.5*h*f1, t+0.5*h)\n", - " f3 = f(x+0.5*h*f2, t+0.5*h)\n", - " f4 = f(x+h*f3, t+h)\n", - " x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0\n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " else:\n", - " f1,f2,f3 = fs[1:]\n", - " f4 = f(x,t)\n", - " x += h *(-9*f1 +37*f2 -59*f3 +55*f4 )/24.0 \n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " xsAB += [x]\n", - " return xsAB\n", - "\n", - "xsAB4 = AB4(x0)\n", - "#描画\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"abs. diff.\")\n", - "plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])),label=\"Euler\")\n", - "plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label=\"RK4\")\n", - "plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label=\"AB4\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dYfoXPujX-vw" - }, - "source": [ - "### Adams-Moulton法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2VU4odEJYEE7" - }, - "source": [ - "AB法は、現在$i$と過去のステップの情報のみを使用したが、 \n", - "$i+1$ステップの情報を使う(陰解法)ことで、より高精度の結果を得ることができる。\n", - "\n", - "3次のAB法($i-2,i-1,i$の情報)に加えて$i+1$番目の情報を用いて \n", - "3次のLagrange補間多項式$P_3(t)=\\sum^2_{j=-1}f_{i-j}L_{i-j}$のもと \n", - "$x_{i+1}=x_i + \\sum^2_{j=-2} f_{i+j} \\int^{t_{i+1}}_{t_i} L_{i+j}(t) dt $\n", - "という \n", - "更新式を考える。愚直に上と同様に各積分を評価すると \n", - "$x_{i+1}=x_i + \\frac{h}{24}(f_{i-2}-5f_{i-1}+19f_{i} +9f_{i+1}) $\n", - "という式が得られる。\n", - "\n", - "これは、4次精度の公式になっており、3ステップ(4次)のAdams-Moulton法と呼ばれる。 \n", - "右辺にある$f_{i+1}$の評価に関する計算コストの分だけ、3次のAB法に比べて増えることになる。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yI-0E3olcM4m" - }, - "source": [ - "### Adams-Bashforth-Moulton法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eLY3gCIokyI1" - }, - "source": [ - "AM法とAB法を組み合わせることで、使いやすい高精度な陽解法を作ろう \n", - "というのが予測子修正子法の発想である。\n", - "\n", - "4ステップのAB法を予測子, 4ステップのAM法を修正子として採用すると \n", - "以下の更新式が得られる:\n", - "\n", - "$\\begin{align}\n", - "x^{P}_{i+1} &= x_i + \\frac{h}{24}(-9f_{i-3}+37f_{i-2}-59f_{i-1}+55f_i) \\\\\n", - "x_{i+1} &= x_i + \\frac{h}{24}(f_{i-2}-5f_{i-1}+19f_i + 9f(t_{i+1},x^P_{i+1}))\n", - "\\end{align}\n", - "$\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "xu2CrHFXFh_p", - "outputId": "7c978fc2-0411-46a9-c1cb-cb48ceaee61c" - }, - "outputs": [ - { - "data": { - "image/png": "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aOnqoilk0NLmi6bsD0dfVtbaiUSC+++/nzPPzB4RfuWVVzjnnHP4xz/+wZQpUzLlt99+OzvvvDMHHnjgNrRXREREGlE9gtugOOfWAZ/JK3sQeHCA9a4GrgZ/y6sqNW+bpO9V+uqrrzJz5kyOPPLIzLIddtiB8ePHc8stt3DeeecB0NXVxSWXXMK9995bryaLiIhIHdUjuL0K7BKYn5oqq58ye8aKco6eZ5fSPaKZidPLv1dp+hy3rq4ujjrqKK688ko+//nPA9DW1sZdd93FO9/5TiZNmsSpp57KihUrePnllzO9be3t7Rx88ME8/rQ3ygEAABzUSURBVPjjOb1yIiIisn2qR3B7AtjTzGbgA9vJwEfq0I4ho62tjZ/+9Kccf/zxfO5zn8uUT5o0ibvvvpu5c+cyceJEjjrqKNasyZ72N336dBYvXpxz/puIiIhsv6o9HMgC4BFgbzNrN7MznXNx4BzgHmAZcItzbmk129EIDjroIA444AAWLFiQUz5jxgwWLlzIJz7xCR5//PE6tU5ERESGgqr2uDnnTilSfhcNPIxHpXR0dOTM33HHHZnpZ57JDn134IEH9rviFPx4byIiIjJ8DPk7J4iIiIiIp+AmIiIi0iAU3CpgSI41IiIiItsdBTcRERGRBqHgJiIiItIgFNxEREREGoSCW53ddtttmBnPPfcc4If4aG1tZfbs2Rx44IEcdthhPP/88znrrFq1ipEjR/KDH/ygHk0WERGROlFwq7MFCxZw+OGH5wy8u/vuu/PUU0+xZMkSTj/9dC655JKcdc4//3yOPvroWjdVRERE6kzBrY46OjpYtGgR1157LTfffHPBOps3b2bcuHGZ+dtuu40ZM2aw33771aqZIiIiMkTU416lQ853H/8uz61/bpu2kejsJBkOEX2uFYB9xu/DVw79Ssl1br/9dubNm8dee+3FhAkTePLJJ5kwYQIrVqxg9uzZbNmyha6uLh577DHAB73vfve73HfffTpMKiIiMgypx62OFixYwMknnwzAySefnDlcmj5UumLFCn784x9z1llnATB//nzOO+88Ro4cWbc2i4iISP2oxw0G7BkbSNI5up9dSveIZiZO37OsddavX88DDzzA008/jZmRSCQwM84+++ycesceeyxnnHEGAI899hi33norX/7yl9m4cSOhUIiWlhbOOeecbWq/iIiI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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def ABM(x0,m=4):\n", - " xsABM = [x0]\n", - " x = x0\n", - " fs = [ 0.0 for i in range(m)]\n", - " for i,t in enumerate(tr):\n", - " if len(xsABM) < m : #RK4\n", - " f1 = f(x,t)\n", - " f2 = f(x+0.5*h*f1, t+0.5*h)\n", - " f3 = f(x+0.5*h*f2, t+0.5*h)\n", - " f4 = f(x+h*f3, t+h)\n", - " x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0\n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " else:\n", - " f1,f2,f3 = fs[1:]; f4 = f(x,t)\n", - " ## 予測子\n", - " xp = x + h *(-9*f1+37*f2-59*f3+55*f4) / 24.0 \n", - " f5 = f(xp,t+h)\n", - " ## 修正子\n", - " x += h *(f2 -5*f3 +19*f4 +9*f5 )/24.0 \n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " xsABM += [x]\n", - " return xsABM\n", - "\n", - "xsABM = ABM(x0)\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"abs. diff.\");plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])),label=\"Euler\")\n", - "plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label=\"RK4\")\n", - "plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label=\"AB4\")\n", - "plt.plot(tr,abs(xe-xsABM[:-1]),label=\"ABM4\")\n", - "plt.legend();plt.show();plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6DUB18TOpj-9" - }, - "source": [ - "1桁程度、AB法よりも精度が改善していることがわかる。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_ODE.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_PCA.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_PCA.ipynb deleted file mode 100644 index cd685c53..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_PCA.ipynb +++ /dev/null @@ -1,1322 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dG3tCL-_aQHA" - }, - "source": [ - "# 主成分分析" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bzqUoCdAaRxG" - }, - "source": [ - "このノートブックでは主成分分析(principal component analysis, PCA)を説明する。 \n", - "基礎の理解に重点を置くため、scikit-learnなど既存のライブラリにあるPCA関数を利用するだけではなく、 \n", - "定式化とnumpyを用いた実装を行う。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "70ilJPZVd6LC" - }, - "outputs": [], - "source": [ - "from matplotlib import pyplot as plt\n", - "import numpy as np" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WEJasJ_KbKVJ" - }, - "source": [ - "## 主成分分析とは?" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "U6D19ywlbNFz" - }, - "source": [ - "まず主成分分析とはなんだろうか? \n", - "\n", - "Wikipediaには\n", - ">相関のある多数の変数から相関のない少数で全体のばらつきを最もよく表す \n", - "主成分と呼ばれる変数を合成する多変量解析の一手法\n", - "\n", - "とある。\n", - "\n", - "具体例を考えてみよう。 \n", - "ある集団200人の身長($x$)と体重($y$)のデータが下のように \n", - "得られているとしよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "id": "YZT6a_-cd5lG", - "outputId": "ce4dfd59-4bc4-427d-c990-fb89f88afc40" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "mean = [165, 68]\n", - "mvec = [0,0]\n", - "cov=np.array([[1,0.8],[0.8,1.0]])\n", - "np.random.seed(1234)\n", - "x=[]; y=[]; n=200\n", - "for i in range(n):\n", - " tx,ty = np.random.multivariate_normal(mvec,cov)\n", - " x += [ mean[0] + 8*tx]\n", - " y += [ mean[1] + 6*ty]\n", - "x=np.array(x);y=np.array(y)\n", - "xm = np.mean(x);ym = np.mean(y)\n", - "xp = np.arange(140,190,1); yp = np.corrcoef(x,y)[0,1] * (xp-xm) + ym\n", - "\n", - "fig = plt.figure()\n", - "plt.xlim(140,190); plt.ylim(40,100)\n", - "plt.xlabel(\"height [cm]\")\n", - "plt.ylabel(\"weight [kg]\")\n", - "plt.scatter(x,y)\n", - "plt.plot(xp,yp,color=\"red\",linestyle=\"dotted\")\n", - "plt.show();plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RxtGVOUQeVpB" - }, - "source": [ - "上では\"何らかの方法で\"データの分布に沿った直線を描いてみた。 \n", - "\n", - "この赤色の線を\"体の大きさ\"とでも呼ぶことにすると、 \n", - "元々は身長(x)と体重(y)の2つの量によってこの集団のデータを表現していたが、 \n", - "集団に属する個人をこの\"体の大きさ\"という1つの量で \n", - "大雑把に指定(あるいは特徴づけ)できそうなことがわかる。\n", - "\n", - "主成分分析は**高次元のデータを特徴づける少数の\"軸方向\"を見つけて \n", - "その新たな軸に沿った値(主成分)でデータを表現し \n", - "データを低次元空間で近似する方法**と言える。\n", - "\n", - "\n", - "人間が視覚的に理解できる情報は、3次元までである。 \n", - "一方でデータを分析していると、多次元(4~数十など)のデータを扱うことが度々あるが、 \n", - "主成分分析などを用いて特徴を抽出することで解釈がしやすくなったり、 \n", - "大量のデータがあったときその冗長性を削減することができる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LwJ96CHthWmK" - }, - "source": [ - "## PCAの定式化\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iDqwKCP325Hl" - }, - "source": [ - "主成分分析の大雑把なモチベーションがわかったところで \n", - "上の軸方向/主成分の決め方を定式化しておこう。 \n", - "\n", - "主成分を決める方針は主に、[主成分の分散を最大化する方針]と \n", - "[情報量削減(主成分軸への距離の二乗和)の最小化]の2つがある。 \n", - "以下では、前者を採用することにしよう。\n", - "\n", - "\n", - "$p$次元の量を持つデータが$N$個観測されているとする→$\\{ x_{ni}\\} (n=1,...,N, i=1,....p)$ \n", - "このとき$p$個の各変数について、平均値を$\\bar{x}_i = \\frac{1}{N} \\sum_{n=1}^N x_{ni} $で定義する。\n", - "\n", - "このとき、$p$次元の成分それぞれの共分散を行列にもつ共分散行列${\\bf C}$($p\\times p$行列)は \n", - "$\n", - "{\\bf C} = \\frac{1}{N} \\sum^N_{n=1,N} ({\\bf x}_n - {\\bf \\bar{x}})\\cdot ({\\bf x}_n - {\\bf \\bar{x}})^T\n", - "$ \n", - "とかける。 \n", - "\n", - "次に、各データを成分にもつ行列\n", - "$\n", - "{\\bf X} = \n", - "\\begin{pmatrix}\n", - "x_{11} & x_{12} & ... & x_{1p} \\\\\n", - "x_{21} & x_{22} & ... & x_{2p} \\\\\n", - "\\vdots & \\vdots &\\ddots & \\vdots \\\\ \n", - "x_{n1} & x_{n2} & ... & x_{np} \n", - "\\end{pmatrix}\n", - "$\n", - "と \n", - "成分が1の$N$次元列ベクトル$1_N$で以下の($N\\times p$)行列を定義する: \n", - "$\n", - "\\tilde{{\\bf X}} = {\\bf X} - 1_N {\\bf \\bar{x}}^T\n", - "$\n", - "\n", - "これを用いて、もとの共分散行列を書き換えると...\n", - "$ {\\bf C} = \\frac{1}{N} \\tilde{{\\bf X}}^T \\tilde{{\\bf X}}$とかける。\n", - "\n", - "次にデータ集合をある$p$次元の係数ベクトル${\\bf u}$で$p$次元空間上に射影する:\n", - "$\n", - "{\\bf s}_n = {\\bf u}^T \\cdot ( {\\bf x}_n - {\\bf \\bar{x}})\n", - "$ \n", - "これを全データ点($n=1,2,...,N$)に対して行って$s_n$を縦に並べると$\n", - "{\\bf S} = \\tilde{{\\bf X}} {\\bf u}\n", - "$と書くことができる。\n", - "\n", - "\n", - "\n", - "このとき、適当な係数ベクトル${\\bf u}$のもとでの射影方向の分散は \n", - "$\\frac{1}{N}\\sum^N_{i=1} |{\\bf s}_i|^2 = \\frac{1}{N} ({\\bf u}^T\\tilde{{\\bf X}}^T) (\\tilde{{\\bf X}}{\\bf u}) = {\\bf u}^T {\\bf C} {\\bf u}\n", - "$\n", - "となる。\n", - "\n", - "今考えたい問題は、この分散を最大化するような射影${\\bf u}$を見つけることと言い換えられる。\n", - "\n", - "加えて、以下ではそのような射影として${\\bf u}^T \\cdot {\\bf u}=1$という条件を課すことにする。 \n", - "($p$次元空間での正規直交基底間の変換を探すことに対応)\n", - "\n", - "そのためには$J({\\bf u}) = {\\bf u}^T {\\bf C} {\\bf u} - \\lambda ({\\bf u}^T\\cdot {\\bf u}-1)$の最大化を考えれば良い(ラグランジュ未定乗数法) \n", - "$\\frac{\\partial J}{\\partial {\\bf u}} = 2 {\\bf C} {\\bf u} - 2\\lambda{\\bf u}=0 $から、今解きたい最適化問題は固有値問題: \n", - "${\\bf C} {\\bf u} = \\lambda{\\bf u}$に帰着されることがわかる。\n", - "\n", - "\n", - "この表式と上の分散の式から\n", - "$\\frac{1}{N}\\sum^N_{i=1} |{\\bf s}_i|^2 = \\lambda$となり \n", - "**未定乗数$\\lambda$がいま最大化したい分散に対応している**ことがわかる。 \n", - "\n", - "最大固有値$\\lambda_1$に属する固有ベクトルを第1主成分ベクトルと呼ぶ。 \n", - "第2主成分からは同様にして、第1主成分ベクトルと直行する固有ベクトルを考えれば \n", - "分散を大きくする軸を順番に決定することができる。\n", - "\n", - "\n", - "また、$\\frac{\\lambda_i}{\\sum^p_i \\lambda_i}$を$i$番目の寄与率と呼び \n", - "各主成分が元のデータに含まれる特徴をどの程度表現しているか \n", - "あるいは幾つ主成分を保持しておけば元のデータに含まれる特徴を十分に表現(近似)できるのかの指標として用いられる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H3O1n9lz4XUZ" - }, - "source": [ - "## sklearnライブラリを使う方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nzN4jD9e4dAO" - }, - "source": [ - "irisデータを使ってsklearnで主成分分析をやってみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Zv70QfNg4aRG" - }, - "outputs": [], - "source": [ - "from sklearn import datasets\n", - "dataset = datasets.load_iris()\n", - " \n", - "target_names = dataset.target_names\n", - "targets = dataset.target \n", - "feature_names = dataset.feature_names\n", - "features = dataset.data" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "czUhoCKO5OVh" - }, - "source": [ - "このデータには、3種類('setosa,versicolor,virginica)のアヤメについて \n", - "がく片の長さ・幅と花弁の長さ・幅のデータが入っている。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "mm9pfNPO5AAF", - "outputId": "fea74b6f-38d5-4454-e6c2-7636921675df" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['setosa' 'versicolor' 'virginica']\n" - ] - } - ], - "source": [ - "print(target_names)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 206 - }, - "id": "bB57ea0d5dDH", - "outputId": "38f05195-5869-4f7f-ae6d-9fc3ec78b600" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)target
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
\n", - "
\n", - " \n", - " \n", - " \n", - "\n", - " \n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - " sepal length (cm) sepal width (cm) ... petal width (cm) target\n", - "0 5.1 3.5 ... 0.2 setosa\n", - "1 4.9 3.0 ... 0.2 setosa\n", - "2 4.7 3.2 ... 0.2 setosa\n", - "3 4.6 3.1 ... 0.2 setosa\n", - "4 5.0 3.6 ... 0.2 setosa\n", - "\n", - "[5 rows x 5 columns]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import pandas as pd\n", - "from pandas import DataFrame\n", - "df = DataFrame(features, columns = feature_names)\n", - "df['target'] = target_names[targets]\n", - "df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7PGbM_BA5sdr" - }, - "source": [ - "\n", - "- がくの長さ/sepal length (cm)\n", - "- がくの幅/sepal width (cm)\n", - "- 花弁の長さ/petal length (cm)\n", - "- 花弁の幅/petal width (cm)\n", - "\n", - "の4次元のデータで、可視化して理解することは難しい。 \n", - "そこで、このデータを3次元/2次元に落とし込んで理解することを目指す。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 654 - }, - "id": "knCm13FX6b3H", - "outputId": "5f95b71a-b7ff-4eed-df6b-8fa9a98834d1" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "固有値 [4.22824171 0.24267075 0.0782095 ]\n", - "固有ベクトル [[ 0.36138659 -0.08452251 0.85667061 0.3582892 ]\n", - " [ 0.65658877 0.73016143 -0.17337266 -0.07548102]\n", - " [-0.58202985 0.59791083 0.07623608 0.54583143]]\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from sklearn.decomposition import PCA\n", - "import numpy as np\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from matplotlib import pyplot as plt\n", - "\n", - "# PCA関数の使用 (3次元)\n", - "pca = PCA(n_components=3)\n", - "pca.fit(features)\n", - "res = pca.fit_transform(features)\n", - "print(\"固有値\",pca.explained_variance_)\n", - "print(\"固有ベクトル\",pca.components_)\n", - "#描画\n", - "fig = plt.figure(figsize = (4, 4))\n", - "ax = Axes3D(fig) \n", - "for label in np.unique(targets):\n", - " p = ax.scatter(res[targets == label, 0],\n", - " res[targets == label, 1],\n", - " res[targets == label, 2],\n", - " marker = 'o', s = 20)\n", - "plt.show()\n", - "plt.close()\n", - "\n", - "# PCA関数の使用 (2次元)\n", - "pca = PCA(n_components=2)\n", - "pca.fit(features)\n", - "res = pca.fit_transform(features)\n", - "\n", - "#描画\n", - "fig = plt.figure(figsize = (4, 4))\n", - "plt.xlabel(\"PC1\"); plt.ylabel(\"PC2\")\n", - "for label in np.unique(targets):\n", - " plt.scatter(res[targets == label, 0],res[targets == label, 1],label=target_names[label])\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3O_gzsZv0ARL" - }, - "source": [ - "このように、4次元のデータを低次元に射影することで \n", - "3種類のアヤメの持つ特徴を可視化できるようになる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0Kfac71jDg_m" - }, - "source": [ - "## 実装してみよう\n", - "\n", - "sklearnなどのライブラリは非常に便利だが \n", - "中で行われている計算を確認するには \n", - "複雑に設計されたソースコードを読み解かなければならず \n", - "「本当に自身が意図した計算をやっているのか」が分かりづらい。\n", - "\n", - "ライブラリを「使えれば良い」と「中身を分かった上で使う」の間には \n", - "* 問題が起きたときの対処能力\n", - "* 自身で新規な手法を開発して実装する能力\n", - "\n", - "などなど、様々な面で決定的な差が生じる。\n", - "\n", - "\n", - "以下では、必要な計算をなるべくブラックボックスにしないで \n", - "PCAを実装してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 206 - }, - "id": "XzrwCPxiENxC", - "outputId": "547606c2-6165-4379-985e-6ebd9a1f3d17" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2
\n", - "
\n", - " \n", - " \n", - " \n", - "\n", - " \n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - " sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)\n", - "0 5.1 3.5 1.4 0.2\n", - "1 4.9 3.0 1.4 0.2\n", - "2 4.7 3.2 1.3 0.2\n", - "3 4.6 3.1 1.5 0.2\n", - "4 5.0 3.6 1.4 0.2" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#上のコードと同様 irisデータを取得\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "from pandas import DataFrame\n", - "from sklearn import datasets\n", - "dataset = datasets.load_iris()\n", - " \n", - "target_names = dataset.target_names\n", - "targets = dataset.target \n", - "feature_names = dataset.feature_names\n", - "features = dataset.data\n", - "\n", - "df = DataFrame(features, columns = feature_names) \n", - "df.shape\n", - "df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yvMc5aRnEzW9" - }, - "source": [ - "今のデータは、上の定式化におけるN=150, p =4の場合に相当する事がわかる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "bL_YdesrEh_Z" - }, - "outputs": [], - "source": [ - "N,p=df.shape\n", - "#データ行列の定義\n", - "X = df.values \n", - "\n", - "#p=1,2,3,4 各列の平均ベクトル(p×1行列)を定義\n", - "mv = np.array([ np.mean(X[:,i]) for i in range(p) ]).reshape(p,1) \n", - "\n", - "#共分散行列Cの計算\n", - "C = np.zeros((p,p)) # p×pのゼロ行列を作成\n", - "for i in range(N):\n", - " d = X[i,:].reshape(p,1) - mv \n", - " C += np.dot(d,d.T) / N " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HuxOkOthHxFz" - }, - "source": [ - "行列の固有値を求める部分の詳しい説明は、それだけでノートブックが複数必要なので \n", - "Numpyの中にある固有値・固有ベクトルを計算する関数```np.linalg.eig```を用いる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QqPxlliMIBYR", - "outputId": "6dabab37-e2b2-430d-bac4-8e5236d591de" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "固有値 [4.20005343 0.24105294 0.0776881 0.02367619]\n", - "固有ベクトル [[ 0.36138659 -0.08452251 0.85667061 0.3582892 ]\n", - " [-0.65658877 -0.73016143 0.17337266 0.07548102]\n", - " [-0.58202985 0.59791083 0.07623608 0.54583143]\n", - " [ 0.31548719 -0.3197231 -0.47983899 0.75365743]]\n" - ] - } - ], - "source": [ - "vals,vecs = np.linalg.eig(C)\n", - "print(\"固有値\",vals)\n", - "print(\"固有ベクトル\",vecs.T) #固有ベクトルは縦に並んでいることに注意" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MxWvorgrOokz" - }, - "source": [ - "sklearnで計算された```explained_variance_```(固有値に対応)=```4.22824171, 0.24267075, 0.0782095```と \n", - "わずかに値が異なっている。\n", - "\n", - "実はsklearnでは不偏分散が使われているため、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Xi7ViJPcI0Ub", - "outputId": "f725627e-41a2-4484-a772-cde66ab75df9" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[4.22824171 0.24267075 0.0782095 0.02383509]\n", - "[[ 0.36138659 -0.08452251 0.85667061 0.3582892 ]\n", - " [-0.65658877 -0.73016143 0.17337266 0.07548102]\n", - " [-0.58202985 0.59791083 0.07623608 0.54583143]\n", - " [ 0.31548719 -0.3197231 -0.47983899 0.75365743]]\n" - ] - } - ], - "source": [ - "#共分散行列Cの計算 (不偏分散, sklearnと整合)\n", - "C = np.zeros((p,p)) # p×pのゼロ行列を作成\n", - "for i in range(N):\n", - " d = X[i,:].reshape(p,1) - mv \n", - " C += np.dot(d,d.T) / (N-1) #分母 N → N-1\n", - "vals,vecs = np.linalg.eig(C)\n", - "print(vals)\n", - "print(vecs.T)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3jM5vMf-PMTg" - }, - "source": [ - "とすると、両者を整合させることができる。 \n", - "以降では、上の定式化を修正して不偏分散を用いることにしよう。\n", - "\n", - "このように、ライブラリのソースコードを読むか自身で実装した関数と比較することで初めて \n", - "「sklearnでは不偏分散が使われているんだな」ということが分かったりする。 \n", - "\n", - "細かな実装が式と整合しているかどうかを確かめるのは重要で \n", - "これを怠ると、再現性が損なわれたりバグの温床になる。 \n", - "\n", - "余談: \n", - "世の中でプログラムを書く人が全員「動けばいいや」の考えだと \n", - "それがいつかサービスやシステムを通して社会(や自分自身)に大きな不利益をもたらすかもしれない。 \n", - "(たとえば自動運転の車による事故などを想像してみよう)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sCnY12i_I0oo" - }, - "source": [ - "各データに対する第1主成分軸に沿った\"得点\"は、 \n", - "最大固有値に対応する固有ベクトル```vecs[:,0]```が \n", - "射影になっていることを思い出すと、内積を取ればよい。 \n", - "```vecs[0]```とすると0番目の行ベクトルが取られて誤りになるので注意!\n", - "\n", - "各点について第1主成分得点を計算してリストに詰めておこう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "s87q-rYSI5Pe" - }, - "outputs": [], - "source": [ - "PC1s = [ ]\n", - "for i in range(N):\n", - " x = X[i,:].reshape(p,1) - mv \n", - " u = vecs[:,0].reshape(p,1)\n", - " PC1 = np.dot(u.T,x)\n", - " PC1s += [PC1]\n", - " #print(\"i\",i, \"PC1\",PC1)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ahhgln0nJWyC" - }, - "source": [ - "同様にして" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "39Of18TJJXuy" - }, - "outputs": [], - "source": [ - "PC2s = [ ] \n", - "for i in range(N):\n", - " x = X[i,:].reshape(p,1) - mv \n", - " u = vecs[:,1].reshape(p,1)\n", - " PC2 = np.dot(u.T,x)\n", - " PC2s += [ PC2 ]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tDgcr88IU8gQ" - }, - "source": [ - "プロットしてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "uel1NAySJlIA", - "outputId": "36c11e0e-0709-49e3-9b59-c86ec0f82803" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "cols = [\"blue\",\"orange\",\"green\"]\n", - "\n", - "fig = plt.figure(figsize = (4,4))\n", - "plt.xlabel(\"PC1\"); plt.ylabel(\"PC2\")\n", - "for i in range(N):\n", - " x = PC1s[i]\n", - " y = PC2s[i]\n", - " plt.scatter(x,y,color=cols[targets[i]],alpha=0.4)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yFZRJdJIVDHD" - }, - "source": [ - "sklearnの出力と上下がひっくり返っている。 \n", - "yにマイナスをかけて向きをあわせてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "id": "EpFUgJ2tVUVP", - "outputId": "c85ae172-7208-492f-fb71-bdb828a4f06f" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize = (4, 4))\n", - "plt.xlabel(\"PC1\"); plt.ylabel(\"PC2\")\n", - "for i in range(N):\n", - " x = PC1s[i]\n", - " y = PC2s[i]\n", - " plt.scatter(x,-y,color=cols[targets[i]],alpha=0.4)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZLPdJtjsV6Tw" - }, - "source": [ - "sklearnと同じ結果を与える自作コードを作ることが出来ました。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "snHoZ1M0VbX0" - }, - "source": [ - "上の符号反転について:\n", - "\n", - "第2主成分に対応する固有ベクトルは、sklearnと自前関数で得られた値で符号が異なっている。 \n", - "今のように、分散を大きくする軸を見つける場合、 \n", - "当然軸の反転(固有ベクトル全体の符号)の自由度が残されている。 \n", - "実装によって符号が異なるのは、固有値問題を解く際に使用されているソルバー\n", - "におけるconventionの違いなどに由来している。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Oyz3uBo1Pa56" - }, - "source": [ - "# $\\clubsuit$ オートエンコーダ(自己符号化器)\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wlQDrQiuYVi2" - }, - "source": [ - "上で紹介したPCAは、式(or 直交変換の定義)からもわかるように \n", - "空間上に\"平坦に\"分布するデータの特徴を説明するのにはうってつけです。 \n", - "\n", - "一方、一般のデータは必ずしも直線的な分布を持っているわけではなく \n", - "空間上で曲がったり複雑な幾何学形状をしていてもおかしくありません。 \n", - "\n", - "そんなデータに対して、データの冗長性を削減したり特徴をとらえるための方法の一つが \n", - "以下で説明するオートエンコーダです。 \n", - "\n", - "最も基本的なオートエンコーダは隠れ層がくびれた \n", - "以下のようなニューラルネットワークで構成されます。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "LETpVaUGNKdH" - }, - "outputs": [], - "source": [ - "%%capture\n", - "#from keras.models import Sequential\n", - "#from keras.layers import Dense\n", - "!pip install ann_visualizer\n", - "from ann_visualizer.visualize import ann_viz\n", - "from graphviz import Source\n", - "from PIL import Image\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 595 - }, - "id": "RANsWPX9N7kg", - "outputId": "163b4d0d-dec5-46a7-bcd1-ed59f65ac78e", - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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w8QoAor/ZTD9MyAIAl5eXmzdupXIyEg+/PBDampqaO1ki5GREQ899BC7d+8mOzubMWPGkJWV1erztSdubm58/fXX7Ny5E3t7e1566SWefPJJjh49ikql6hQ26mgaPT09XF1deeKJJ9i0aRPXrl3j+PHjTJ48mejoaKZMmYKDgwNTp05l48aNlJdrZpC1zmRb7m2rjxfh12TI7uKBESoRTl+Hy8VQ10GrlzffR7lcTmpqKmvXrmX69Om4uLgwceJEjh8/zowZM/jvf/9LXl4e69atY8aMGbqwzi6Ctr7i6tWrGTZsGFu2bOG1115j//79zJs3r8OF382TDdrtDQ8//DC7du3C0tKy1c+YKIqcPXuWTz75BKVSyVdfffXnEn4Al2K75744iRSSzoOim4SydgDd8Kno2lRTQB6xXaqg+90hUkcZ2ZzsaEMeKCNGjODrr7/m3//+N+vXr6empqbV59LT0yMkJISoqCj09fUZMmQIcXFxnUZcDR48mC1btrBmzRrKy8t58sknWbhwIZcvX+5o03TcJTKZjMGDB/Pxxx9z/vx5UlJS+OSTTxBFkRdeeAFbW1uGDx/Oxx9/THJyMmp162eUGxoaSElJuefjkovhagnUdoNxX0+Aw+lQVNsx7ZeVlXH48GEWL15MaGgogYGBvPXWWygUCj766COSk5OJi4vjww8/ZOjQoTqx1wU5ePAgoaGh/POf/2wU86+++mqHFWpvisLCQt5++23eeustFi5cyKZNm9q8Jy8+Pp5///vfFBYW8n//93/06dOnnaztQiQnaGr8dTfUKki91H32MXYAOvHXiWighkquU0NRR5tyX1DRQCnXqOZGR5vywBAEgaeeeorFixezZMkS9u3b1yYBKAgCbm5uHD9+nH79+hEeHs6BAwc6hQAUBAEDAwOmT5/Ojh07WLJkCSdPnmTChAm88847FBYWdrSJOu4CbXinRCLBy8uLl156id27d5OXl8fPP/+Ml5cXn376Kb179yYwMJC//e1vREZGUl1dfdfPoUql4uLFiwwfPpx3330XxT3M4B7NgAo53SJtlFKEIxlQWKPJzXC/UalUXL58mRUrVjBhwgT8/PyYOnUqx44dY9SoUezZs4fs7Gz27dvHggULbklW1dqkVTo6htTUVKZMmcKUKVNwd3fnxIkTfP7557i7u3ea+6hWq0lJSeGFF15g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ztltrpxIc+OAtj1tn9hUe9XVTQ9y2r60qfa09jc3JjX3fWkFWFNov6/b2xNFsXElSKlUUlpaSl5eHiqViurqas6cOdPYd6jV6j8UFC2911TbLR13e3s3R/Jo32toaKC8vJz6+nrMzMxITEwkNTW1sS2JRIKRkVFjn3S7HTcnirq5PX19faqrq7l48SJGRkZ4eXmhVqvJz8+/pf++/dqkUinGxsaN57jZ/psnOm+/NiMjI/T09Br34GnPqe2LtZOnt9vfUt9vbGzcbF9sZGSERCJh48aN7N27957LOcmVKsa7O/DJiL6YG7Tdr5QKAp4WJoQ52bDzai49jAyY5uOEvuTO6AIXM+PG/5fpSTHX10cliijaO0RT36C99iT96dCJv06EFH30MEZAQGyHwKacGCjP1GT2dAwGa2/N6lvKbs0ewMF/bToEVEtVLtj1brMZjRiaQ//HjfG3HsCu97K4fv06EokEZ2dn1Go1u3btIjo6mr59+zJo0CCGDh2KnZ0dgiA0OTDB74NWU4NTSwOhSqVq8ZiW2mrO+fijAbKpgbWyspINGzYQHR2Nl5cXjz76KKampi1el/aczYWSaNuqqqriu+++4+zZs0yYMIHx48djbW3dpB0qlarxde0MYlO0JKhbcvaac8xub0utVnPu3DlOnDiBkZERw4YNw8PDA6lUikQiaRwob55dvVloah2lm23UHiuKInV1dbckGdE6aSqV6hZH7+YsiNpr1g702ve0YvpmZ+5mQVxfX994zTefT61WU1dX13hvb35PqVTe4lS2lJhDe123c/P5bqclUX7ztbXUlkQiaXSebkcrHm8/vzYku6KigpiYmCaPbY6ysjJOnTrFq6++SmatKWrHgZiGv4qetds9nedmRFGkIfsstfHbUJZmITbUoiy9hqiU3zGTLDG1w9B9CIhqGnLjEds4i94cP/77I7YVRFNXVU5NTU3j82hsbIxarebGjRucP3+elJQU5HL5PQsP7e+iqf5L+xw39V5zfY22vZb62Hvts//onNoIhqbOqa+v36wQ1iYmagptApymztnUpAz8vo+5ub1qTU0cae23smp65UMqlTaKCy1qtZq8vDwuXLhATk4OLi4uhIWF4eTkdMtxzW11aCl65GYxc/u1acVTS8c1xc1t1dbWsm7dOqKjowkPD2fKlCnN7kNvrp8TBKHZtq5evcq//vUv+vbtyzPPPIOvr2/j/dDen6Zo6Zw3jzH3YmNLE6EtnbM5O7T25+bmsmfPHqRS6T3X+rMwlvHRiL70sbFol2gAQRAw0dfjcX9XDkWeZVd6Lvunhd3VscX1DdgYGWJl1I6LG4IAhkY68ddKdOKvEyHFEEPMACnQtgxGcT9qVvjqS0HWA+z7aoRfSarmL+4Hzf6/AS+AmdOtx4pqjfArugyPrG6TGbcgkQpY2MsYOn0Qw00W8v/+3/8jMTGR8vJyqqurGTp0KD169CAjI4MzZ86wfv16vLy8CAoKIjg4GH9//2b3AXZVRFHEzMwMtVpNUlISubm5TJs2rV2ylCmVShwdHVm7di0pKSlkZGQwcOBAXF1dmz1G66w1N/OudcyacyCbc/ZacuhubksURW7cuMHFixf55ZdfSEtLw9bWlieeeAI3N7fGwbK582kdy+ac1eZs1K7qNkVz57ubtpq75pbsaM5p1grUptCuCjR13M1C8/bzNbe6rBWozd3nlu5lS89AZWUlZWVlTR7bEkqlkvj4eBAETKz97/n4221RVxdRvvsfSGRWyHo/gmBoTn3yQZTF1+74vMTIDImRGcriqwjS+5MIRlQ2cPnCaWqvRCKq1chkMmxtbXF0dMTOzq4xgUdlZSVVVVXNOrBawdJUH2lkZNSkMIffHdimnFRBEJrtd6VSabP1SvX19ZttT09Pr9njtCvhzb3XnJPd3GRIS9f2R+dsShxpz9lce390XHN9++025uTksH//fq5du4atrW3jvk4XF5dbsjq2JGYe9PelpaSkhNWrV5Obm8usWbOYPXs2ffv2xcTEpMXj7paioiJWrVqFmZkZL730EmPHjr1lhbC7YG5ufsfq5N2yeOoE+tobtGsRdH2phJEudriZmxLYwwIHkz+Oviiqk5NSWkmQnWWTIaKtRpCAzFRT8kHHPaMTf50IA8wwxgb+t+7XFolj2wv6PQWiCuz7aTJ2mthB4OPgMVozWWLqCPq39cWiqAkTjf1GkxXU7e4mdu4SEYkgxdHUh16PPIKRkRFffPEFp0+fJjAwkKtXrwIQERGBgYEBKSkpZGVlsXnzZrZv346rqyt+fn4EBgbSu3dv7O3tO00yk9YiCAIBAQE89dRTrFmzhs2bN2Nubs64cePavBFeT0+PoKAgFixYwIYNGzh48CCVlZXMmTMHf/+mHWitw9KRSQNcXFzo1asX3t7eHDx4kJMnT/Ldd98RERHBhAkTsLOz6xRZTB8k2vCr5kR5U+HIWpoTZFqh2Zxj0dwKr0qlalYoNycMteIvMzMTmUzGzp07mzz+j7Ae9SoGgY8iMbVp1fH/swZFUSrya9FYzViFcfAsBH1jVJX5CHFb23DeNiCRMChsHGnVyVzPvIpSqaSuro6CggKKi4uxsbHBx8eHPn360Lt3b3r06NHiqlNLqyhNvad19pv7XTXXH7S0otbSylhLx7X03p+BoqIijh07RmRkJNevX2fAgAGMGTOGkJAQXF1dO33fl52dzapVq4iKimL06NHMmjULf3//dsvmXF1dzRdffEFcXBwLFixg5MiRd1f0vItQXV3N1atXuXTpEvHx8Zw5c+aexJ8gCPj6+jJ/+mQkvx1sh2IPvyMRBHoYGeBhYcLcXu5I/mAiXqlW82tqDo6mMsa42uNg0vQKdesQwcJaJ/5aSdf2nLsZRlhggj1iO5R6cA7V/N2MhTFYuDR/jCiCSq5ZMVTWQ+grYGTZZlNuQUCKleCBkZER48ePx9DQkNWrVxMfH4+trS3Z2dlERUUxbtw4Hn/8cSoqKsjMzCQ9PZ3MzEyioqI4duwYdnZ2eHl54evrS0BAAJ6ens2GonV29PT0CAkJYebMmaxbt45NmzbRo0cPBg4c2OZzSyQSAgMDee6559i6dSunTp2iurqaJ598kqCgoE7rSBgbGzNixAg8PT3p1asXkZGRbNy4kYSEBCIiIhgyZEiz4VPdEW3WxuYcqK5SJsPY2LjVjpq1tTX2Q+dS16MvaqGtQ5cIohpBIkXQM0JdV4aqLPu+hXT+EYJEjzETptHfsoz/bFlPZmYmVVVVKJVK7OzssLS0pLy8nOjoaDIyMnB3d8fb2xsfHx/8/Py6zP3X0Tz19fX89ttv7N+/n/j4eKysrJg8eTIjR47E19e302bxvJmkpCRWr15NbGwsEydOZPbs2bi7u7fbJK1CoeD7779nz549zJ07l8mTJ3eamrZtobCwkJSUFJKSkkhOTiYrK4v6+vrGMGeZTNZkaZymkEgkLFy4EGf/Xgin97fZNlEUUaPZ86cSRQpq6rE01GewY48Wj1OLIvsy8smpqmOSZ0/62VreURKiTajVYG0LUp2MaQ26b60TYYQl5jgjtLmK1b0jiqCsg9Q9UJkDfedoVg/bGz0MsMancRZ6zJgxmJqasmzZMrKysrCzs0OtVrNx40aSk5MZPXo006dPR6FQkJGRQVpaGmlpaWRkZHDu3Dl+++03LC0t8fT0xMPDA29vbzw9PXFwcOhSA4JMJmPEiBFUVFSwdetW1q9fj6WlZZtLQIBGOPj5+fHUU09hbGzMkSNHWLt2LfPmzWPgwIGdevXUycmJ2bNnExAQQGRkJCdPnuTatWtcvHiRcePGNaa219G50aY1z8jIoKCgoFXniIiIoMzFifQGPeRtmh8T0LfxxsBjKLUJ21FV3UBq0uN/ToRAbdxWTE2skVo43ZLx837j5eZML68nkCpr2Lx5M7m5uZiYmCCTyZDL5VhZWWFvb09paSnR0dHExMRgYmKCv78/np6ejX2go6Njl+r7/uyIokhKSgqHDx/mxIkT1NbWMmjQIMaNG0e/fv0wNzfvaBPvinPnzvHNN99w5coVHnvsMWbPno2Dg0O7TTCKosju3bv57rvvGks62NjYdNoJzJZQKBTk5OSQlpZGSkoK6enp5ObmIpfLMTAwwNXVFW9vbzw8PCgpKWHz5s0cPnz4D/f9SaVSBg4cyKxZs0BQaUK82pgNs6JBQXxhOX1sLKlTKvk5OZvRrnZYGDa/Oq8WRSIzC7hSXEm4sy2DHXu0+PnWIYCNI7SxRuSflc7r9f0JMcAUc5wxwpo6Sh5Yu6IIDVWakhCl6eA7ERz7t387EvQxoydmOP7+mkTC4MGD+ec//8mnn35KdnY2Y8eOxcPDg9jYWC5dukRKSgqjR4+md+/ehISEUF9fz/Xr10lOTiYpKYm0tDQuXLjA2bNnMTMzw93dHT8/P9zc3HB3d8fV1bVLhBFZWloybtw4ysvL2bFjB5s2bWos3t4euLu7M2fOHExNTdmzZw9r1qyhrq6OYcOGdeqVA6lUSv/+/fH19aVPnz7s37+fQ4cOkZqaSnh4OMOGDcPd3b3NhYJ1tC91dXUUFhaSnZ1NdnY2GRkZXL16tVV7/qRSKY8//jjHpeZcz6ZN4k8QBCRmDpiPeYOGzNOI8iqwcETW+xEQRU0WUVHNg5yA05OAlQx6eXjx5JNPUl1dzfbt26mtraWkpISGhgbMzMywtbUlODgYIyMjMjMzuXr1KhcuXODChQsYGBjg5uZG7969cXV1xdnZGVdX18Z6fzo6H3l5eZw6dYqjR4+SmpqKj48Ps2fPZsSIEdja2naJ+yaKIrGxsXz55ZdkZ2czb948Zs6c2e4rcqdOneKLL76gV69e/OUvf2lXYXm/0SZ30/aD6enppKenU1hYSFlZGebm5nh5eeHn50dAQAB+fn5YWloikUjIycnh/PnzREVF/aH4k8lkLFy4EFsbG1CpwMwSKkrbZHtVg5IDmfkcyynESCqhuE7Oc308m/28Si1yLKeQ+KJyQh2tGeTQA1OD+yA1zC3B0lpTm0zHPaMTf50ICVJMsccGf3I4DTyYECS1AoquwKnPNaGiNxI1fwAImiLxBqZtT6pkgCmOhCDl1vAVQRAYOHAg77//Ph9++CGRkZG8+OKL9OnThyNHjrB9+3aSkpIYPXo0Q4YMwcHBAW9vb7y9vXn44YcpKysjJSWFhIQELl68yJUrVzh37hyWlpY4OzvTr18/3NzccHFxwdnZ+Y5SEp0JOzs7Jk6cSElJCUeOHMHOzo65c+e22+xvz549mTlzJmZmZmzZsoVVq1ZRX19PeHh4u23Gv1+YmpoyceJE+vXrx/79+4mMjGT9+vVcvnyZsWPH0rdvX+zsHmxxbh2/o1arKS8vJz8/n/z8fLKyskhJSSE7O5vSUo0DYm9v31jipLmMsk3h6+tLcHAweQVGROdBlbxt0kwQBIwDJ2McOPmW1428wttw1tZjJQMzQ40IDAwMZO7cuVRXV7N//34aGhowMTHhxo0bREZG4uTkxMSJE5kyZQp2dnakpaURHx9PfHw8KSkpXLp0CSsrK3r06EFAQADOzs44OTnh5OSEjY1Ns/v+dDw4amtriY+PJzIykqioKCwtLZk2bRqTJk3C2dm5y0xkqVQqoqOj+frrryksLGTBggVMnTq13aMx0tLS+OSTT9DT0+P111/H09OzU0esaPc4l5aWcv36da5fv05qairJycncuHGDiooKHB0d8ff3p1evXvTt2xdvb+9bEiRVVlaSlJTEsWPHSE1NxdbWlvz8/Gb3fevp6REaGsqUKVM0zpqeHrj6wKXY/01mtQ4TfT16WZtz4noxdiaGPBPo0WKil+vVdXx6LhlPC1OsDA3Irvo9+3CIvRV+VuYYtDX8U5CAqzcYGOqyfbaSzvvr+ZNihiNODOQ6Zx7YvLNaqVn5M7aF0muav5vxHq8Rf23FCHPcaTqDjCAI9OrVi48//pilS5eyYsUKXn75ZRYvXkxMTAx79+5l1apVXLlypXEV0MrKCqlUio2NDTY2NgwbNgy5XE5mZmbjbPilS5eIjY3Fzs4OFxcXgoOD8fDwwMHBAQcHBywsLBr3U3UW3NzcePzxxykpKWHTpk3Y29szefLkdtvzYW1tzdSpU7GwsODbb7/lq6++Qi6XM2bMmC4RYuTi4sLzzz9PaGgoO3bsIDo6mkuXLvHQQw/x0EMP4eXlpQsFfUDU19dTXFzMjRs3uHHjBqmpqaSkpJCTk0NFRQUmJiZ4enoyYsQI+vfvj5+fHzk5OVRVVbF37967akMQBB577DEsLCzwUQgYSh90UPz9RQA8LcHsfz9vQRAYNGgQdXV1VFVVERMTQ35+PgEBAfj6+pKVlcXKlSvp378/M2bMoE+fPgwaNAi1Wk1mZiYJCQkkJiYSHx/PhQsXMDIyomfPnvj7++Pn54ejoyM2NjbY2dlhbm7eqZ3o7oQ2aVNGRganTp1i+/btFBQUEB4ezpNPPomfn1+X2NcHv9cejI6O5qOPPkKtVrNkyRLCw8Pb9RpEUaS4uJgVK1aQlpbG8uXLCQoK6pTPrFqtpra2luLiYoqKisjNzSUlJYXk5GSys7Opra3F2dmZwYMHM2DAAAYMGIC1tfUdvodcLm/MeH7o0CHy8/MJDAzEy8uLffv2kZGRcUfbgiBgZWXF3/72t1v3VAcEwZXzoGq9+LM2MmBebw/m9fa4q8+X1suxMzbkRk09kTW3hvibGejjZWHadvEH4NsH9Dp/RFdnpfP9gv7kmOJATwYixRAlTddram/0jcFzrObvfiEgxRhbXBjW4udcXV35/PPPWbJkCcuXL6e2tpZp06YxYsQINm/ezNGjR4mLi+Phhx8mLCwMFxeXW1I8Gxoa4ufnh5+fH7NmzaK0tJRz585x5swZfvvtN2JiYrCyssLT05Pg4GACAwOxsbGhR48eWFtbd4pZcUEQ8Pb25tlnn6WwsJCvvvqKnj17Mnjw4HYLczExMWlMj71ixQq+/PJL5HI5ERERXSKRikQiISgoCF9fX2JiYti6dSu//PILcXFxTJs2jf79+3epGfSugNZ5rayspKSkhNLSUnJyckhISCA5OZnMzEwEQaBnz54EBwcTEhJCSEgIPXv2vKU+o3Z/6759++6qcLFMJmPSpEnIZDICbMD4AY/3qupiVJV5KAouo64pRlWaiTzzDFIze6TWbghC236TggCBdmB102S6RCJh6NChVFdXU1VVRXp6OteuXUOtVjN37lxyc3M5cOAACQkJzJgxg1GjRuHr64unpydeXl5Mnz6dysrKRhEYGxtLZGQkO3fuxMbGBjc3N/r06YO/vz/29vZYWlpiZWWFiYlJh/d/3RFRFCkpKeHKlSts376dY8eOERgYyHvvvcfIkSObLXvRGdHWSz158iTvvPMOFhYWLFu2jODg4Hbtb7U1YDdv3syOHTt4//33GTNmTKcSfgqFgqqqKkpKSigqKuLatWtcunSpMUGdnp4evr6+TJo0idDQUEJCQpotf6Kt5ZmYmMiOHTuIi4vD09OTV155hZCQEM6cOcOVK1cay+XcXpw+LCyMiIiIW0/q30+zOlbXttJh90KwnRWbHh58fxsxMACv3jrx1waEuxl87zcDBgwQz50719FmdBpyiWU/r5DLmY42pd2QYU0gc3iEFXf1+aqqKpYuXcq+fft44oknmDNnDi4uLvz222+sX7+exMREAgICmDJlCkOGDMHW1rbFGUdRFJHL5SQmJnLy5EmOHz9OVlYWRkZG+Pj4NBaWd3BwwNLSEgsLC2QyWYfuKVAoFMTHx/PWW2+hp6fHihUr8Pb2btc2VCoVly9f5rPPPuPixYu8/PLLTJs2DRubtqTSf/Bow2Q3bdpEfn4+YWFhzJkzB09PT6ysrHQObSvRzvBXVlZSXl5OWVkZ8fHxnDt3jpSUFAoKCrC2tqZ3796EhoYyfPhw3N3d73BmFQoF5eXlXLp0iZ07d3L48GEUCgXp6el/KAC1QtHMzAwReG43ROdA/QPyZ+TXoqm9uAtFXgLqukoEfQOkZg4Y+Y/DZODTCG3MNicV4OMx8LC3JvTzZmpqati/fz9ffvklDQ0NKJVKDA0Nef3113F1dWXTpk0cOnQINzc3Xn75ZYKCgnBycmqyIPX169c5d+4csbGxxMXFkZubi4GBAc7Ozvj7+9O3b9/GvUYWFhaYmZl1mZWozoooitTX15OTk8PevXv5/vvvMTU15emnn2bu3LldTmyLokh1dTVRUVG88cYbeHh4sGLFCjw8PNr1OkRRpKGhgf3797NgwQLmzZvHhx9+iEQi6dDvS1v/tLq6moqKCvLz87ly5QoXLlwgOTmZkpISbGxsCAoKYujQoYSEhNxV0jZtVvM9e/awZ88eZDIZ06dPZ9q0aZibmxMVFcWGDRsoKyvD09OTY8eOkZubS0NDAxKJBCcnJ7Zt20ZoaOidJ//+E0iKb1PoZ6fDPwie+pumyLuOZvHx8SlLS0uzbuo9nfjrhFRTQBw//n/2zjysxrz/46+jJBQtUkRJlhSVQkokEbLvjH392Y1hhhkzliEzzNgNY3+msQ1jGbJEaaVCklJppU2lfd/OuX9/NOc847FGpZ6n13V15co59/q9v/f3/VlxZy2Sj2z2XjMQ0ZzODGYXeti+97dKS0vZunUrx48fx8HBgenTp9OxY0eKi4u5du0aTk5OJCQkYGNjw8SJEzEwMJAlSb8P0dHReHl54eXlRUBAAAUFBejp6WFqakrPnj3p0KEDampqKCkp0ahRo09SNKaoqAhfX1+++OILjI2N2b59O+rqby+xXFEEQSAuLo6ff/6Z69evM3fuXGbMmFHr8ucEQSApKYk///yT48ePIycnx2effcaIESPQ0tKq0UVtagrSxvXSBU5+fj7x8fH4+flx7949Hj0qTwbW09PDwsKCPn36YGlp+cZFrEQiIS8vj+joaK5evcrFixepV68eo0ePllWgzc/Pf2MfK3l5efbv38/UqVNl9+/YQzj0AJJy/zvCP1sowf4hYKr5+vSVrKwsLl26xI4dO9DR0aGgoID4+HhWrVrF8OHDCQsLY+vWrQQFBWFra8vixYvR09OTGT1ed19KSkp4+vQp9+7dw9vbm4cPH5KWloaSkhKGhoaysLSWLVuirKyMkpLSJzeG1SakOV/p6encv3+fXbt2ERkZyeDBg1mzZg0tW7asVaIPys8pKyuLa9eu8fXXX9OjRw/279+Purp6pQs/sVjMvXv3mDRpElZWVhw7duyN/SurmrKyMgoKCsjLyyMrK4vw8HAePnxIYGAg0dHRskgdqfHL3Nz8vfPni4uLSU1NxcXFhcOHD5Ofn8+oUaOYPn06urq6ZGdn4+zszPHjx2ncuDGLFy/G0NCQixcvyiJdAKZOncrevXtfv5Pge3CmqxBuAAAgAElEQVRyD5QUV9Yl+bTIycPkxdC5e12bh3dQJ/5qGQISErnPn0wii5h3f6GGo4AyHRnOKH6jHhULCxEEAScnJ3766Se6dOnCkiVLMDMzo0GDBiQkJHD27FlOnjyJWCxmzJgxTJ48GU1NzQoXdcnIyMDf3x9PT088PT1JSEhARUWFLl26YGVlRY8ePWSV8xo2bFitLyKp9X/lypVMmzaN1atXV3pxFmlY0t69ezl06BDjx4/n22+/fW1OQk1H6lHav38/Fy9exMjIiBUrVtC1a9cKGQf+V5BIJJSVlVFUVERBQQGZmZk8ePAAHx8fAgMDiY2NRVVVFXNzc+zs7LC3t0dbW/ut40LqaU9NTcXV1ZUTJ07w/PlzHBwcmDNnDq1atcLf359Vq1aRlpbGs2fPXrudJk2aEB4ejqampuy+RWXA5y4Qklr7xZ9cPZhoBAu7Qau3pNumpaVx+vRp9uzZw/Dhw0lOTubWrVssXbqUuXPnoqyszNmzZ9m6dSvZ2dlMnTqVmTNnvvdcmJubS0REBL6+vvj6+nLv3j3y8vJo0aIFlpaW9OrVi+7du6OsrCybA98Uvva/jDQ0Ojc3l7i4OA4fPsyZM2cwMzNj/fr1dOvWrVZeM4lEQmZmJqdOneL7779nxIgR7N69u9IryUqvX0xMDBMmTKBBgwZcvny5Wt9D0miHoqIiCgsLSU5Oxt/fnzt37hAQEEBWVhZaWlp0794da2trevTogZ6eXoVCXsViMdnZ2QQFBbFt2zaCgoKws7Pj888/x9DQEHl5edLS0jhy5Ajnzp3DzMyMxYsXY2xsLDPQxcTEsGnTJh4+fMjFixfR03tDTp5YDLvWwPOnIKntMyag1RqWbqor9vIe1Im/WkgeKTzgMB5sQEIpAuWFAWoL0uMVUQ8tTOnPD+hj/8Hbu3jxIps2bUJVVZUVK1ZgY2ODoqIigiAQGRnJsWPHOHfuHJqamsyfP5+hQ4eipKT0QfkBxcXFhISE4OHhgbu7O8HBwYjFYvT19bG0tKRPnz6YmZnRqFEjFBQUUFBQqHJBkZeXh5OTE9999x1btmxh+vTpVeKJzMvL48SJE6xdu5ZBgwaxbds21NTUaqVgknpNHR0defToEePGjePLL798yQtYGxdiH4t08VBSUiLLWYmKisLb2xsfHx+CgoKQSCTo6+vTu3dv+vfvT58+fd7bc1pWVkZeXh5eXl4cPXqUkJAQLC0tmTdvHlZWVuTm5uLm5sa3336Lqqoqs2bNYt68ecjLy79UyU7quT106NAr+15xE65HQV5JpV6aaqe+HOxzgN6toeE7HuekpCT27dvH77//zldffUVycjL79u1j/PjxbN68GRUVFbKzs9m7dy/79+9HS0uLlStX0q9fvwrlM0sX+vfu3eP27dv4+PgQHByMvLw8xsbG9OzZkwEDBtCpUyfZ/Cc1hv0vPk9SpKGKKSkpnDx5kn379tG4cWNWrFjBzJkza2X+sVSMvXjxgr1797J3717mzJnDDz/8UCW5dxKJhNTUVGbOnElUVBQuLi6VHlL6n0jXwCUlJZSUlFBYWEhwcDB37tzBy8uLoKAg6tevT5cuXbCxsZGN/YoaYKX7KS4uJiEhgW3btnHmzBmMjY1Zs2YN1tbWKCoqIhaLSU5OZuvWrbi5uTFq1Cjmzp2Ljo7OS9uTSCRkZGTg5+fH0KFD377zB95w7igUVU8diSpDTg7GzwezXnUtHt6DOvFXCxEQSCeCc3xGMkFIENdC8SeiEc3owmcMYjsiPk5A+Pr6snbtWnJzc/n8888ZNmwYjRo1QiQSUVxcTHBwMLt37+b69ev06tWLNWvW0LlzZxo0aPDBLw+JREJycjJ+fn64urri4+PDs2fPUFVVpWfPnvTv359+/fqhqamJvLw88vLyVfaSz83N5dtvv+X333/n3Llz2NjYVIkoKy4u5vLly7IcIicnJ5o3b14rF3fS4gR//PEH33//PYIg8PXXXzN58mRZGFttO6cPQRpKVVZWJgv5u337tizkOSUlhebNm8sW9nZ2dmhra1doH1JBGRgYyC+//IKnpydGRkYsXLgQe3t7FBQUSEtL49y5c2zZsgUzMzPWrFnDxo0b8fX1xdLSkitXrsh6WYlEIm7cuIGtre0rz5RPHPzgAyEvKu0SVTtyIuitC5v6Quum7/edxMRENmzYIAsTS01NZdmyZfTu3ZtDhw7JPCRRUVFs2LABZ2dnunXrxjfffIOZmRnKysoVHvPSOdDd3R0XFxfc3d3JyMigVatW9OrVi969e2Nra4u6ujoKCgrIycnJ7tf/yrMlXYi7u7vz008/8ezZMyZNmsTatWsrPUy/upCeV0JCAmvXruXy5ct8/fXXfPnll1W2v/T0dFavXs3ly5e5dOnS63PYKmlfEolENifm5ubi4eHBzZs3cXNz48WLF+jo6GBjY0OfPn2wtbVFQ0Pjg9/t0vm3oKBA5j2Vl5dnxYoVzJ07V+ZBFYvFxMTE8M033xAaGsrixYuZOHHixxdhEwQ4uBliwqDs9a0iajwiEejow6IN5cLvf2Bu+VjqxF8tpZQCorjBWcYjofY9sCLqoc9AHNiDGvqVss3IyEjWr1/Pw4cPmTNnDjNnzpS1awBkyegbN24kMjKSzz77jDVr1sgm7o9djBQUFBAeHs6tW7e4ceMGfn5+CIJA586dsbe3Z9CgQZiZmVGvXj3ZD1TOIkiabD9t2jTu3buHh4cH+vr6lbb9f1JWVoa/vz8TJ06kRYsWnD9/XpanUhsXdFLr9Q8//MCBAwfo1q0b27Ztw8TEROZBrY3n9SakFnuJRIJEIiEtLY27d+/i5uaGh4cHT58+pVGjRhgbG2Nra0v//v0xNTX9oAIf0oVNUlISv/76K8ePH0dDQ4MlS5YwbNgw1NXVZYvIf/3rXxw+fJihQ4fyxRdfsG3bNi5cuMCZM2fo2bMnEydOxMPDg+zsbFq1akVERMRrQ6zFEljlBteiIL+kdoZ/yongwBCw1nm310+KNK91wYIFhISEcOnSJTIyMpg0aRKtW7fmzz//fOk59fLyYv369QQGBjJo0CBWrFiBkZGRzCBW0TEvHVNBQUFcvXqVa9eu8fDhQyQSCcbGxtjZ2dG3b1/MzMxo0qSJbA6srfPG25A+Y4WFhQQGBrJr1y7c3Nywt7dn3bp1dOrU6VMf4gcjCAJlZWWEh4ezfPlywsLC2Lt3L6NGjaqy/WVlZbFr1y527NjB4cOHGTduXKVuH5DNh2VlZURFReHh4SHrtSgWizE1NWXw4MEMHjxYVr30Y8atdIyUlpbi7u7OqlWriI6OZt68eXz33XeoqKjIti8Wi3nw4AHLly+noKCA9evXM2DAABo2bFgp14DEp3BoM+RmV872qhs5OVjqCNpt6oTfe/JR4k8kErUGnABNyt+xBwVB2CUSidSAP4A2wFNgvCAImaLykbwLcAAKgBmCIDx42z7qxN+bKSQDbzbjxw4k1dT0vTIQIaIl3bFmNZ2o3BdGamoqP/30ExcvXmTEiBGsWLECLS0t2SQqzbk4fvw4GzduBGD16tUsXLiwUls5SMOj3N3duX79OteuXSMlJQVdXV3s7OxwcHDA3t7+lYXWx75M0tPTsbe3p7i4GG9vb5lVsLIXVxKJhOjoaIYNG0ZpaSmXL1/GwMCgVi/kBEEgMDCQpUuXcu/ePebOnct3331Hs2bNKlWofwqkCw3pwu3BgweyhU1gYCBlZWUYGBhga2vL4MGDMTc3R0VF5aP2B+U5qQcPHmTXrl3IycnJrNUtW7aUfebx48eyxfG8efOYMWMGR44cYfv27ezcuZOpU6fK8gRjY2NZtWoVPXr04Ouvv36jtf1RKjh6gV/iB5/CJ0NOBA7tYZ0NaFSwJaVEIiExMZFx48aRl5eHq6srubm5suf0r7/+wtDQUPaclpWVce7cOX788UfZ9xYsWECnTp0qxfOdlpaGj48PHh4eXL9+nadPn9K4cWNMTU3p168fAwcOpFOnTjLvRmXMg58aqcHj0aNH7Nu3j4sXL2JgYMCqVasYOnRorT+34uJi7ty5w/LlyykrK+Po0aNV6oXLzc3lzJkzfPnll2zYsIGlS5dWynalvyUSCdnZ2fj5+eHi4oKXlxfBwcEoKyvTt29fhgwZwrBhw9DU1Kw0Qy2UG1FjYmLYsGEDZ86cwc7Oju3bt8ueTykSiYSrV6+yfPlydHR02Lx5M+bm5pUfWutxGdz+goLcyt1uVSOqB4PGgd2oOuFXAT5W/LUAWgiC8EAkEikDAcBIYAaQIQjCjyKRaDWgKgjCKpFI5AAsoVz8WQC7BEF466xRJ/7ejIBAPqn8wWgSuItQC6p/iqhHU3TowSIs+eKjwz1fR05ODocOHeLAgQOYm5uzbt06Onbs+MqEmpqaysaNGzl06BDGxsbs2bOHnj3/3YOmsl7S0sVAYGAgzs7OXLlyhYCAABo3boyNjQ0ODg4MHTpUVob9Y/YvCALx8fFYWVnRuXNnLl++XGX9CaVic/jw4URERHD+/Hl69epVq8MlpXPe77//zqpVq4By48Ds2bNleRw1/dxeN28nJydz8+ZNrl69iqurqyw0r3fv3tjb29O/f3+0tLQqJSxZKjIvXbrEt99+y/Pnz5kxYwaLFy9GV1eXevXqyY7Ry8uLLVu2kJiYyKpVq3BwcODcuXN89913LF++/JUwMuliLT8/H2Vl5bfei1/vw4lgSMihFpnGoHF9uDAe2qmVF32pKGKxmKioKAYNGoSuri7Xrl2TVQp8/Pgxf/zxhyxcVnr9cnJy+P3339m7dy/FxcXMnj2bKVOmyHKJKmPMSyQSwsPD8fHxwd3dHR8fH5KTk9HS0qJHjx7Y2dlha2v7ylxd0583KdIxHRMTw9GjR3FyckJZWZmFCxcya9YsGjWqoJKvYUijS65evcq3335L69atOXz4MG3btq2y/eXn53P9+nUWLVrE5MmT2b59+0dtT0pRURFRUVHcunWL69ev4+PjQ0lJCR06dJB593r16lXp7Uykc2NKSgrbt29n37596Orq8tNPPzFkyJDXHu+hQ4dYs2YNAwcO5Pvvv6+6PEeJBE7sgfBAKCqs/O1XBXJyoNcJ/m9NufCrJXNFTaBSwz5FItFfwN6/f/oKgvD8b4HoIQhCR5FIdODvf5/6+/NPpJ970zbrxN/bkSAhm2f8Tn8yiavRAlBEPRqiTg8WYcVK6tMIURVkK0pDKS5cuMDWrVtRUVHB0dHxJWEn/ZwgCDx8+JBly5Zx+/ZtJk+ezE8//VRpVr5/7uufPHv2jBs3bnDlyhVu3rxJSUkJXbt2ZeDAgQwePBgTExOUlJQ+eF8BAQHY2Ngwe/Zsdu7cWWVFWaQvaGlInpOTE8OGDfskrS8qC+m9ysrKYtOmTezfv5+OHTvi6OhI3759a/wiTjr+/f39cXZ2xs3NjQcPHqCoqEjPnj1xcHBg2LBhtG3b9hXrcWWM+QcPHrBixQpu377NiBEjWL9+PR06dJDtS+pxOn36NNu3b0dNTY01a9bQvXt3Ll++zOrVqxk5ciQ7dux47biV3p93Vqkshi134M/Q8r5/tSX8c/sAGNIBFD/CsC8Wi3n48CH29vYMGDCAEydOUFpayuzZszl37hx79+59qUWG9JomJiZy8OBBnJycUFRUZP78+UyePBkNDY2PPq//nAOLi4t5/PixLEw+ICCA/Px82rRpQ58+fejXrx+2trZoaWl99L6rg/T0dP744w/2799PQUEBs2fPZs6cObJrV1tE7JtISUnBycmJPXv2YGtrK3t2q+q8ioqK8PT0ZOHChVhbW3PkyJGP8nYlJiZy+/Zt3Nzc8PT0JDo6GlVVVaysrHBwcKB///6vVMWs7HPLzMzk7NmzbNy4keLiYj7//HNWrFjx2vD1srIyvvzySw4fPszKlStZvHgxampqVXJcQHnuX2E+HN8FsU9qfvsHOTlQ04SlG6Fh4zrhV0EqTfyJRKI2gBfQGYgTBEHl77+LgExBEFREIpEz8KMgCD5//58bsEoQhDequzrx93YEBAQkZBDJMWwoIKNGCkARciighCXLsWApiqhUifCTIhV2Pj4+bNq0iefPn7NhwwZGjx79yuekv52dnVmyZAm5ubmsWbOGBQsWVLgtREWOT0p+fj7e3t6y8NCnT5+ioaGBtbU1gwYNom/fvujo6Ly3V0a67XPnzjFx4kR27NjBggULqqQCm3R/YrGYJUuWcPToUbZs2cK8efNqvEh6F9LrGBwczFdffYW3tzd2dnasXbsWY2PjGtXkuqysjPj4eNzc3Lh27Rpubm7k5OSgp6eHnZ0dQ4YMYcCAAa+UX69M73ZGRgYbN25k//79GBsb8+OPP2JtbS27TtJ95efns2vXLo4dO4alpSWrVq1CX18fFxcXvv76a0xNTTl8+PBHP3uCANGZsNMfLkdUymlWKfWASV3g297QUP7j1jJSD6m7uzvDhg1j+fLlODo6IggCmzZtYvPmzSxbtoxvvvmGJk2avBQWDxAeHs6BAwc4e/YsmpqaLFq0iEmTJlXqM/2f64ucnBxCQkJkYvDu3buIRCKMjIxwcHDA1tb2pfFUUygqKuLPP/9k165dJCYmMmHCBObNm4eBgQFQ+0UfQEREBLt37+bKlStMnTqVb7755qOKpb2L0tJSvLy8ZKGOJ06ceGmcvg9FRUUEBQXJjKwhISGIRCK6dOnCgAEDGDBgAF27dn1pTFfV+WRlZeHi4sKWLVuIjY1l6tSprFmzRtYv9z/3m5eXx5QpU/Dw8GDPnj2MHj1aVsCuShEEyMmEk/vg2RMoraElk+XkQEkFlnwPKup1wu8DqBTxJxKJlABPwFEQhPMikShLKv7+/v9MQRBU31f8iUSiecA8AB0dHfM39XmqoxwBARBI4wnHGUQuSTWqAXw95GiIGlasoiszaYhqlQo/KVIBGBERwY4dO7h69SpLlixh5cqVr3gU/tmDafv27Wzfvp127drxww8/0LdvXxQVFav8OKX5WBEREbi7u8sWQEVFRRgaGspyZLp16/bOUtLS7Tk6OuLo6MipU6cYOnRolXnkpIvNbdu2sX79eubOncu6detkzaRrM1Jxe+HCBRwdHXn+/DmTJk1i4cKFtG/f/pOcn0QiIT09nTt37nDz5k28vb0JCwtDSUkJCwsLBg0axNChQ9HV1ZXlUlVFPpW0hP2BAwfYsGEDDRs2ZP369UyZMuW1Jf7T09PZuHEjzs7OTJgwgQULFqClpYWrqysbNmxAS0uLgwcP0qxZs0rKr4H7SfBrALjGfvTmqgw5EVi0goNDQEmhctYy0mfy5MmTzJw5kz179jB//nwkEgm//fYbK1euxN7enp9++gltbe2X5kTpXPTw4UN+/fVXnJ2dad++PZ9//jmjRo2qkqrF/yy8IW2C7ufnh4eHBzdu3CAyMhJlZWUsLCxwcHBgxIgR6OjofNL5xdvbG0dHRwIDAxkwYAALFy6kW7du/1V9Dv38/Pj555+JiIhg6dKlzJgxo1IKpL0JiUSCt7c3a9asoWHDhhw7duydvUOlpKamyirP3rx5k5SUFLS1tWXh7dbW1rKxXh153NKWQjt37sTHxwdbW1uZgetN6RGJiYmMHj2ahIQEjh8/jpWVVfU2sRcEyEqHv36DiGAoKSr/W01BTh7Um8PsVaCuWSf8PpCPFn8ikag+4Ay4CIKw/e+/ycI568I+qwepAMwijtOMIJXHCIg/9WEhoh4qtKEv6zBgFAooVYvw+ycSiYT4+HgOHDjAsWPHmDZtGhs3bnytBVm66Hny5Anfffcdrq6u9O7dm++//75avD3/rMQoFotJTU3lwYMHuLu74+HhQVRUFGpqalhaWmJvb0+/fv3e3MCVcgvqggULuHTpEpcuXaJbt25V5gGU7u/48eOsWrWKAQMG8MMPP9CqVata2Qvwn/yzZPvhw4c5cuQICgoKzJ8/n3HjxtGiRYsqP4bc3FxCQkJwd3fHzc2Nhw8fUlZWRrt27WQ993r37o2ioiJycnIvLXCqgrKyMm7dusXq1auJiIhg+vTprFu3DjU1tdeW84+JiWH16tWEhITIPEkqKiq4u7vz448/Ii8vz86dO+nQoUOlLnQkAvgmlOcAesVV2mYrDTkRGDQDp5Gg/nfxvso6fel8tm7dOnbs2MHZs2dxcHBAIpHg5ubGokWL0NTUZNeuXS9Vt5V+VxrWff/+ffbt24enpye9e/dm9erVdO/evXIO8g3HDbxUcj86OhoPDw88PT1xd3enoKAAPT09+vbtS9++fenfvz8qKirVMtdER0ezefNmLl++jKmpKV988QVWVlYoKSnV6qJX/0QikXD+/Hl27NhBw4YNWblyJf37969S4QflbZt++OEHsrKy2L17NyYmJq/d3z/TNq5du8b169d5+PAh9erVw8TEhH79+jFkyBA6dOgga91TXW1GxGIx9+7dY9++fbi6utKpUycWLVqEg4PDG3v/CoJASEgIo0aNQlFRkdOnT2NgYFDl1/u1CALk5cCNsxDkC/l51bv/NyGvUN7SYfISaKpWJ/w+go8t+CICfqO8uMvn//j7T0D6Pwq+qAmC8JVIJBoCLObfBV92C4LQ4237qBN/749UABaQgSurCeQI5e3UP4XVpny/HRhCL1bRku7I06DahZ8UiUTCixcv+PPPP9m8eTP9+vXjl19+oUmTJq/9vFgspqioCBcXFzZv3szz588ZP348ixYtQk9Pr9qa8v5z8VNYWMjTp0/x9PSU5chIJBLat28vC2Pp2bPnK9697OxsxowZQ3JyMufOnaNdu3ZVevwlJSXcvHmT5cuX06ZNG7Zu3Urnzp2rVHRWF9JqdxEREezfv59r166hq6vLwoULGTJkyAfnab4OsVjMkydP8PLywtPTk4CAANLS0tDU1KR79+6yMDgtLS1ZH8mqKu7zT8rKyggLC2PLli1cunSJPn364OjoSIcOHWQe8v88hnv37vHVV1+Rl5fHqlWrGDRoEI0bN8bX15dt27aRlZXF+vXrsbKyqpKxWSaBh8lw8AG4RFf65j+YeiLoqlXezL154/JZs7Jvn7TlwOzZs3F3d+fq1auYmJggCAJBQUEsXryY/Px8HB0d6dev3ytRBVLPd0ZGBt7e3uzevZvw8HCGDx/Od99990qD6apAanwpKyujrKyMoqIi7t69i6urK7dv3yY0NJSGDRtibm6OtbU1vXv3pmvXrpX6PAKylgOHDx9GXV2dZcuWMXDgQDQ0NKrl2asuioqKOHDgAEePHqVLly4sW7YMU1PTKs/lvn//Ptu3byc+Pp7169fTt2/fl+YDadEZb29vbty4wbVr10hKSqJly5ZYWVnJ2ok0bdqU+vXrU79+/WovQPbkyRMOHz7MhQsXUFNTY9asWYwdO5amTZu+cYwIgsCtW7eYNm0aHTp04LfffpN5KD/ZmBIEKC6EwNvg4wLJ8Z9uOQnQsBH07A+2w6GRUp3w+0g+VvxZA95AMP8uqPYN4A+cAXSAZ5S3esj4WyzuBQZR3uph5tvy/aBO/FUU4e8ns5gcwrmIK19TSBriauwFKEIORVSwZDmdmUhTdKiH/CcTflKkJZ1dXV1ZvXo1HTp04MiRI7Rs2fKN3ykuLiYtLY3Tp09z7Ngx6tevL5vMq8Pb80+ki7CSkhIKCwtJT0/n/v37eHp64uvrS1JSEpqamlhbW9O/f38GDhyIsrIyALGxsYwaNYpmzZpx5MgRdHR0qtRCXlxcjJ+fH19++SUNGjRgw4YN9OrVS1ZgorZTVlZGQUEBAQEBHD16FD8/P7p168a8efOwsbH54GublpaGr68v7u7ueHl5kZCQQOPGjenUqROWlpZYW1vLLNkNGjSQNc6uDsRiMcnJyRw8eJCjR4/SvHlzvvzyS9k4e5OF+sqVK3z77bdoamqyatUqevbsiaKiImFhYWzbto2YmBiWLVsms4pXFaViiMyA3x7B2cfla5tPWQVUBNjrwyZbaNaoaoQf/NuLlp6eztixY0lLS+Ovv/5CT09P1rJl9erVhIeH8/nnnzNmzBiaNWv2ynYkEgmlpaWkpKRw9epVfvnlF/Ly8pgxYwZffPGFbK6paqTnU1paSnFxMcXFxSQnJ3P//n28vLzw8fEhKysLLS0tunXrhpWVFb169aJt27YfPP9IJBIuXLjApk2byMrKYtq0aUydOhVtbW0aNGhQ6yMb/klmZiZbt27lr7/+wt7ennnz5tG+ffsqF37h4eHs2rWL4OBgli1bxogRI1BQUKCkpISYmBjc3Ny4deuWLBVCGvFgZ2dH165dadCggWxO/BTe1+TkZE6cOMGJEycQBIGJEycyevRotLW135q/LBaLOXnyJCtWrMDOzo4dO3bQvHnzmuFBFoTyxu8JsXDnJjy+X/1hoPL1QbMV9B8FHY1BQbFO+FUCdU3e/4spIZ9s4rjHLzzkX5RRXKW5gCLkqYcIQ8bTnYVo0IkGNKEe1bM4fR+kZeL9/PxYuXIlSkpKHD58+K1NdyUSCXl5eURHR3P8+HFcXFxo1aoVc+bMwd7e/o3ew6pEagkvLi6moKCAvLw8oqKi8PLyws/Pj5CQEJklXFo1Ly0tjdmzZ2NpaYmjoyMtWrSo0pdLcXExwcHBrF27lvT0dL744gscHByqbZFYHUiNAx4eHpw8eZK4uDgGDx7M3Llzad++/Tu/L82r8vDw4M6dOwQHB1NSUoKenh5mZmb06dMHAwMDVFRUaNiwIQ0bNqz2fCJBEGRe8yNHjlBUVMTkyZP57LPPaN68+RuLgAiCwOHDh/n555/p3LkzX331laxZfFxcHNu2bSMoKIgZM2YwYcKEaikQVCqB5Dy4HgX7AyCzoPoFoJyo/Gd+N5huUvmhnq9D+i6Piopi7NixaGho4OTkhJaWFoIgkJCQwNatW/H09GTMmDHMnDmTNm3avHZb0gGcC9MAACAASURBVDk0ISGB06dP8/vvv6OmpsbixYuZOnXqJ/FWSCM1pHNhZGQkDx484OHDhwQHB5Ofn0/Lli0xNzenT58+WFhY0Lp163cepyAIPHr0iA0bNnD37l3s7OxYvHgx7dq1kzWq/+QL9EokLi6ODRs24O/vz+TJk5k0aRKtWrWq8qiNuLg4du/ejb+/P1OmTMHBwYGwsDA8PT3x8fHh6dOnNGzYEBMTE3r27Enfvn3R0NCgUaNGNG7cuHpz4v6DoqIiLly4wKFDh0hJSWHQoEGMHTsWQ0NDlJSU3mick0aR/PLLL2zdupWJEyeyZs2amlkdtqwM8nMhOhT83SAmrNwDKFTV7CkqD4tQ1YDuNmBmDU1UoX7NKvZUm6kTf//lSBBTwAvSiSCEP3jMWQpJB0ColGVPPUBAngYYMhZjpqCBIUpoUo/6n9zb9zqkYVABAQF89dVXlJSUsHv3bnr16vXW75WVlZGeno6/vz+nTp0iLCyMrl27MnXq1E/u1ZIW3sjJySE3N5ekpCT8/f25d+8egYGBAGhra6OgoMCjR4+YO3cuCxcuRFNTs0qPq6SkhIiICLZu3Up4eDjTp09n3Lhxsipn/w1IF8OxsbFcu3aNixcvUq9ePSZMmMC0adNeapYuCILMu+fl5cWdO3dITU1FWVkZQ0NDzM3N6dmzJxoaGjRp0gRlZWUUFRU/mWchKysLDw8Pjhw5QlRUFFZWVjJh+7Yy72VlZWzbto1Dhw4xZMgQZs+eTceOHVFQUCAzM5Nt27bh4eHBmDFjmDVr1kc1lK8oYgnkFENQSnkfQNeYcuElruLXnYjy9UwXTVjcHcxbgFrDqt3nfyIWi/Hx8WHWrFn06dOHn376CXV1dQRB4Pnz5xw9epRLly5hamrK/PnzMTc3f+12/pkD++TJE/71r39x8+ZNLCws+OqrrzA3N/9ki1fpojo/P5/8/HxevHhBWFiYTAjGx8cjLy9PmzZtMDc3p0ePHlhYWMjK6Eu3kZqayq5duzh79iytWrVi8eLF9OjRQxZmXaMW55XAo0ePWL9+PXFxccybN49hw4bRvHnzKo8syMjIYNeuXVy4cAFVVVWaNGlCYmIi+fn5aGhoYGpqSvfu3TEzM6Np06YoKyvTpEmTaot4eBOCIODt7c2+ffsIDg7GzMyMCRMmYG5ujrq6+lujGARBIDMzk40bN3L+/HkWLFjAzJkzq/x9/FEIQnn7h+x0iIuCwDsQFVIuDEWiyvEGikTlTds1tcHEEgxMQU2jLsyzCqgTf/8jiCkhjxSyiSMBX6JxJYl7FJL5t0ATvWeBGBFyyCGmjHrI0QIz2uFAG/qggh7KtEDuE+b2vS9SsfTw4UPWrVtHcnIyW7Zswd7e/p0vdanV28PDg0uXLpGeno6NjQ0TJ06ka9eu1XQGb0Za5CE7O5vMzEzS0tJ49OiRzBIeFBSEiooKvXv3ZujQofTt25eWLVtWWVhPWVkZkZGR7Nu3j/v37zN06FCmTp1aLblC1UlZWRkZGRmEhITg7OyMu7s7enp6TJ48GR0dHfz9/QkICODx48cUFhaira2NkZERVlZW6OrqoqKiIvv5JEn+/6CgoID79+9z6tQp7t+/j76+PuPHj8fMzAxtbe23jpWCggI2bNjAhQsXmDJlCpMmTaJNmzbUr1+foqIi9u7dy8WLFxk4cCCzZs2iZcuW1X6uggDFYojPBv9E+CMUHqWUe+QqWwSKKN9u66YwzhD6twWdpuXtHD4FUk/Fd999x/jx41m5ciVqamqy5tMXLlzgzJkzaGho8H//93+v5F39E2lPycTERPz9/Tl69ChJSUkMGjSIpUuX1ohiT2KxmPz8fHJycsjOzub58+eEhoYSFBRETEwMqampqKqqYmRkhLm5OV26dCEmJoaDBw+Sk5PDmDFjGDlyJHp6etVTbv8T4OHhwebNmyktLWX+/PnY2dmhpqZWpffu+fPn3L17l/Pnz+Pm5kZmZia6urqYmJjQpUsXTE1N0dbWRkVFBVVVVZSUlD75WJIizfn28PBAU1OTSZMmYWFhgY6Ozjtb1IjFYuLj49mwYQO+vr6yUOvK6KVZLUgk5aGf2ZmQ9rzcCxgRXJ4TKJFAPbny3+9MDhT9LRol5b9VNaCtAegbQUsdaKpeLvo+scj/b6VO/P2PIUFMIenkkkw+yWQQTRrhZBJDNnHkkUQROYj5d38XESLq04hGNKMpuqigiwZGf3v4tGiCNo1pjgi5Gi/6/ok0h+7Ro0fs2LGDR48esXLlSiZPnvzOl4y0r1lYWBg3b97E09OTBg0aMGzYMMaMGVPt+YBvQxAEsrKySEtLIzU1ldjYWI4ePUpoaCgqKipoaWnRtm1bmYW1U6dOle6JEYvFxMTE4OTkhLe3N926dWPmzJkYGRlV6n5qArm5uQQEBHDy5Elu3bqFgoKCrApg27ZtMTAwoHv37mhoaKChoUHz5s2rrJ9kRRGLxYSGhvLnn3/i6elJo0aNZMWE9PT03tliJD09nbVr13Lr1i3mzZvHmDFj0NbWRk5ODrFYzLFjx/jtt9+wsrJi9uzZtGvX7pMu6CRCeTP4mKzygjAuUXDvebl3UMSHh4RK8/cayEGnZmCrB5atoE1TaPZ3YZdPSU5ODocOHeLIkSMsWrSIzz77DFVVVQBevHiBh4cHp0+fpri4mOnTpzNs2LC3truRVgV98uQJN27c4MKFCygrKzNy5EgmT55cbVU434fS0lKys7NJT08nLS2NxMREwsPDCQ8P58mTJ0C5ga+oqIhx48Yxbdo0OnfuXCOez6rgr7/+4ueff6Zp06bMnz+f3r17V7in3vtQXFxMZGQk9+/fx8/Pj6ioKFJTU0lOTsbExIShQ4diZGSEpqYmGhoaqKqq1rgc8YyMDE6dOsXZs2eRSCQMHz4ca2trOnXqhLKy8jvHeElJCaGhofz4449ERkayfPlyHBwcXvI61xqk+YB5OeW9AXOyICWh/CczDTJeQEHuq70C5etDYyVo2gxU1UGjBTTXLu/X10QVlJqComK5B7COKqNO/P0PI0FMCbkUkEExWRSTQwn5iClGTCliShEhQp4G1EMeeRrRgCY0QJnGaNAQdUTUq1WC7z+RlosODQ1l+/bt3L17l0WLFjF79uz3yq0qLS0lOTmZgIAAbt26RVBQEDo6OowaNYrBgwfTsGE1x3W9BwUFBTx69Iiff/6Z27dvY2JigqqqKqmpqYjFYrS1tTE0NMTU1JQuXbpUmvVeEASePXvG+fPnuXHjBi1btmTmzJlYW1vX6oWVRCIhLS2NsLAwgoODCQ0NJTY2lpycHOrXr0+TJk2IiIggKSmJ8ePHs2LFCjp06FDj8oWio6Nxdnbm1q1bFBQU0L17dwYMGICRkREaGhpvPVZBEIiPj2fdunUEBASwePFiRowYgYaGhmzs/PXXX+zcuRMDAwPmzp1Lly5dqryIxPsiEcpDQWMz4WkWBKbA41QITYOCv2tlyYn+LQglQnnAu/SSCH//TQSoKIK+Khg1hy7NQU+l3NOn0ahmRS4lJyezbds2vLy8WLZsGUOGDKFp06ZAuTj08/Pj1KlTJCYmMmbMGCZOnCj7/zchDZd88OABzs7O3L17lw4dOjBq1CgGDhwoM4LUFP7ZymLHjh3cvHmTdu3a0blzZ9LS0sjLy0NVVZU2bdpgZmaGmZkZnTp1qtIG59WFWCzGycmJAwcO0KFDB2bMmIGFhUWlejdTU1MJDg6WRZ0kJycjJydH06ZNSUxMJDo6moEDBzJ9+nRMTU1lUQ81CamR+MaNGzg5OREdHU23bt0YMWIEZmZmqKurv9cx5+fn4+/vz549e8jIyGDp0qXY29v/d+TACwJIxFCQV54bWFQIRQXlwk8iKReJAPLy5Z7B+grQQBEaNCz37jVSKv9bLX+mahN14q+O1yIgQYIYESLqUftL9L8LqQDcv38/Xl5ezJo1izlz5tC4ceP3ehFK2zD4+Pjg4eHB8+fP6dmzJ6NHj/6k+S9vQhAE7ty5w5YtWygsLGTIkCG0bNmSuLg4YmJiSE5OprCwEGVlZfT19encuTOdO3emY8eOH93wPjExkStXrnDp0iWUlJSYM2cOtra2Ne6l/zakOX6hoaGEhoYSFRVFenp5Lq2amho6OjoYGBjQokULmjZtSlJSEq6urjx48IAuXbowfvx4bG1ta4QATE9Px9XVlatXr/Ls2TMMDAzo168f3bt3R0dH5533RRAEwsPDcXR0JCQkhGXLljFq1CiaNm0qO7fbt2+zefNmVFVVmTt3Lj169KiRhhFBKG8LkZADz/P+/fMiHzIKIbcEisqgsBTk60EDeVCUhyYNygu3aDQGzb9/WiiDVmNoWDP07WuJiopi7dq1vHjxgi+++II+ffrIvLsFBQUEBgbK8psHDRrE1KlT0dLSeud2JRIJkZGR+Pj44OLiQkpKChYWFowePRpjY+NqKe7zPseYmpqKi4sLV65c4cWLF1hZWWFtbU2LFi1IT08nNjaWsLAwEhISyMvLQxAEtLW1adeuHQYGBhgZGdG6desa56F6F0VFRRw8eBAnJye6d+/OzJkzMTEx+ajzkOaBxsfHExQUxKNHj3j8+DFpaWkoKiqirq6OgYEB+vr6REREcOnSJdq3b8+8efOwsLD46PdKVSAIAmFhYZw4cQJvb29UVFQYPnw4vXr1on379u8dnp+ZmYmbmxtOTk4IgsD//d//YWdnVyPnwCpB/HdKUb16dQKvhlAn/uqo428EQSA6Opr9+/fj7u7O+PHjmT17Nurq6u/l+ZL2IHr06BE3b97E398fRUVF+vfvz/Dhw2ndunU1nMX7U1ZWxtWrV9m3bx86OjqyQh6JiYnExsYSExNDbGwsSUlJFBcXIy8vj56eHh06dKBTp0507tz5g8NDU1NTuXnzJhcuXEAQBKZOncrgwYNr7CJKIpGQmJjIkydPiIqKIioqivj4eAoKCqhfvz6ampq0adMGHR0ddHR0aNOmDVpaWjLhJBaLiYqK4saNG9y4cYOioiLs7OwYPXo07du3/yQCsKioCH9/f65evUpQUBDq6upYWlpiY2ND+/bt32sxJpFICAgIYPv27URFRbFkyRLGjBnzkvcgKiqKdevWkZ2dzfz587Gxsak11m4ByCmCrGLILioXfSUSKBGXewLl64GCHCgplAvAporQuH55YZfagq+vL46OjjRu3JhFixbRo0cP2b0vKSnh8ePHnD59mnv37mFtbc306dPR19d/r20XFRXx4MEDXF1d8fX1pVGjRlhaWjJ48GDatWv3SZ53abENX19fbty4QVhYGJqamjg4OGBjYyNr/SPNnU5KSuLZs2fExcURHR1NbGwsWVlZFBUVoa6uTtu2bdHX10dfX5927drJev7VRARBICcnhwMHDnD69Gn69u3LrFmz6Nix4wd54aWVsKOioggLCyM0NJRnz56RlZWFnJwc6urqGBkZ0aZNG9q2bYuenh7Pnj3D0dGR0tJS5s6dS58+fSq9H+PHIjUMODs74+LiQnJyMv369aNfv35YWFhUyPObnJzMlStXOH/+PMrKysyZM4e+ffvW2DFSx/8GdeKvjjr+g/j4ePbv38/169cZMWIEM2bMoFWrVu/tmZI2RPbw8ODatWs8efIEU1NTBg4ciJ2d3TvzpqqTgoICTp06xalTpzA1NWXOnDkYGBgA5Qu/lJQUIiMjiYyM5MmTJyQmJlJSUoJIJJIteNq3b0/79u1l4vZ9X4pZWVl4enpy8uRJcnJymDZtGsOHD68x1ycvL4/Y2FiioqKIjo4mOjqalJQUSktLUVRUpHXr1ujp6dG2bVs6dOiAtrb2Wz0a0iJDPj4+XLp0ibt379KxY0cGDhzIoEGDUFFRqRYRKLVm37hxAy8vLwoLC7GwsGDgwIF07tz5vYWZWCzG39+fbdu2kZSUxNKlSxk7duxLlRBTU1PZunUrvr6+zJ8/n6FDh8pyy+qoGQiCwJUrV9i5cyd6enrMmzfvpYbeYrGY6Oho/vjjD9zd3TE1NWXGjBkYGxu/9z4yMjLw9PTk5s2bREZGoquri7W1NX369EFHR6faFsJ5eXmEhobKxGhZWRl9+/ZlwIABmJqavtPIl5eXR0xMDJGRkURFRfHs2TNevHhBcXExDRo0oEWLFjKR07ZtW1q1alVtz/W7kLZsOXjwIGfPnmXw4MHMnz+f1q1bVyjqorS0lLS0NJkRLCIigtjYWPLz8xEEgdatW9O+fXv09fXp2LEj+vr6sjkhISGBH374gfDwcObOnSub92oKUgPunTt3uH79Onfv3qVNmzYMHjyYIUOGVOheCoJAbGwsFy9exM3NjZYtWzJjxgysrKxqxHio43+bOvFXRx2vIS0tjd27d3Pp0iUcHByYOnUq+vr6FWpCXVZWRmxsLBcuXMDV1ZXS0lKGDx+Ora0txsbGNaOJK+Vhf0ePHuXmzZvY2NgwY8YMtLW1X/qMRCIhJyeHyMhIHj9+THBwMM+ePSMvL49GjRqho6ODoaEhurq6Mg+YoqLiO88vLy8PPz8/jh07RlJSEjNmzGDkyJHvzC2qbKQhSykpKcTGxpKQkEB0dLQsnLOoqIjmzZujo6MjC/nq2LHjBxWykLZ7OHfuHFeuXCE9PR0HBwdsbW0xNzev0nyilJQUWSheeHg4HTt2ZNCgQdjY2KCurv5e+5WKWE9PTw4ePEhGRgaLFi1i1KhRL43p/Px8fv31V06cOMGUKVOYMmXKf1WLj/8mSktLOXnyJMeOHcPMzIxZs2bRqVMnmSgQBIGkpCTOnj2Ls7Mzbdq0Yc6cOVhYWFRorD59+pQbN25w69YtMjMz6dKlCzY2NpiZmVVp1dfS0lKePXv2Uli+gYEB9vb22NraflAYqtQ79OTJE8LCwoiMjCQ+Pp7CwkIUFBRQVVVFR0eHtm3b0rJlS3R1dWnVqtUn83bGx8dz5MgRzp8/z6hRo1i8ePE7c3mh/Dyl7YPi4+NlUSFxcXHk5OQAoKurS8eOHTEyMqJz586vDQ3OzMzkl19+4dKlS8ycOZNx48bRrFmzKjnfiiJtDxIWFsatW7dwd3enqKgIW1tbxowZQ8eOHSs0NsViMeHh4Zw5cwZfX1+6dOnC9OnTK2QwqaOOqqRO/NVRxxvIzs5mz549nD9/HltbW6ZMmUKnTp0qlJsgDR26c+cOp06dIjg4GH19fcaOHYuFhQXNmzevEQIwLi6OX3/9lQcPHjBixAgmTJjwxgpk0gT46Oho7t69y4MHD4iOjiYnJwcVFRW0tbUxNjZGR0cHbW1tWrdu/da+TMXFxQQFBbF//34iIyOZPn06I0eOrPLS1xKJhMLCQp4/f05CQgIJCQmEh4cTFRVFRkYGZWVl6Orq0qFDB4yNjTE1NUVTU7NSvRSBgYE4OTnh6+tLy5YtGT16NFZWVrRu3bpSi6FI87du3bqFm5sbTZo0wd7enpEjR9KiRYv3tvxLC2S4u7uzZ88eRCIRX331FXZ2di99rrS0lHPnzrF582YGDx7M559/jpaWVo0Y63W8noKCAg4ePMiFCxdkRiA9Pb2X7llmZibOzs4cO3YMdXV1lixZgpWVVYWeCYlEQkhICJcvX+bOnTuIRCIsLS2xs7PDwMCgUj1BEomE58+fExgYiIeHByEhIaipqTFkyBAGDBhQqcaIwsJC2Rzy+PFjwsPDSU5ORiwWo6KiQqtWrTAyMkJbWxstLS20tbXfS3x9LBKJhKioKI4ePYqzszOTJk1i2bJlb81nLykpIT09naSkJBISEoiJiSE6Oprk5GSysrJo2LAh7dq1o1OnThgbG78zj7OwsJDjx4+zd+9eRo0axfz589HU1KwR80FJSQlJSUn4+fnh4uJCWFgYJiYmjB07Fjs7uwob90pKSggODubEiRMEBQXRp08fpk6dStu2bavoDOqoo+LUib866ngLxcXF7N+/n1OnTtGtWzcmT56MiYlJhUMTBUGgqKiIixcv8q9//Yvs7GxGjBhB//79MTIyqhGl/oODg9m3bx9xcXFMmzaNIUOGvHcuRlxcHPfv3+f+/fsEBweTnp5OkyZN0NbWxsTEBH19fVq0aEHz5s1RV1d/xStYVlZGVFQUO3fu5N69e7Jm8JXZMkPakywjI4PU1FRevHjB06dPCQkJISYmhpSUFJo0aYKenh4mJiaYm5tjamqKgoJCld6b4uJi/vrrL06ePEliYiK2trYMGDCArl27oqqq+sGFcKTezJiYGHx9fTl79iwpKSn069eP6dOn065duwoJTIlEQlZWFq6uruzatQtVVVXWr19Pt27dXtmvt7c3y5Ytw8jIiE2bNlU4tKyOT0NaWhp79uzB29sbBwcHpkyZ8ooXRyr+d+7ciZycHCtXrsTa2rrCxSuKioq4f/8+58+fJzAwEE1NTfr374+lpSVt27b96GIYWVlZREREcPPmTTw8PBCJRLL864p6ciqKNLcuMjKSkJAQgoODCQ8PJysri8aNG9OiRQsMDQ3p0qWLrOWLpqbme0VLVOQYJBIJYWFhHDhwABcXFxYuXMiiRYteaVIvCAK5ubmkp6eTmppKfHw84eHhREZGkpCQQElJCVpaWnTq1AlTU1M6d+6Mvr7+ez3TYrGY69evs3r1aqytrVmzZg0tW7b85K0/pH1ZHz16xK1bt/D29kZVVZWRI0cyduxYmjRpUuFtFhQU8ODBA3777TdiYmIYPnw4EydOrNnN2+v4n6RO/NVRxzuQSCQ4OTlx6NAh2rZty5QpU7C0tERZWbnCL2pp+M3evXtxcXFBR0eHadOmYWpqiq6u7nu1l6hKfH192bNnDzk5OSxbtgwbG5sKhbpCucc0ICCAu3fvcvfuXeLj45GXl6dVq1YYGhpiYmKCrq4uampqqKmpoaSkhJycnMxKv337dq5evcrUqVOZPn36KyGoFaGsrIyCggIyMjLIyMggKSmJkJAQQkJCZGFLLVq0oEuXLlhYWNCrV69PZpF+/vw5R44cwdnZGQUFBcaNG0fv3r1p167de1edlSIIAunp6YSEhPDHH3/g6emJsbExc+bMwcbGpsJeRbFYzIsXL7h+/Tq7d+9GV1cXR0dHDA0NX/nskydPWLhwIRKJhL1799KxY8e64ga1iLi4OHbt2kVwcDBjx45l3Lhxr+RplpSUEBAQwPr160lLS2PdunXY2tp+UCGfrKwsvLy8OHPmDJGRkRgaGsqqgmpra1d47JSUlBAfH4+3tzcXL14kNTWV7t27M2HCBLp161bh+awyEIvFZGdn8/DhQ+7evUtAQADx8fEIgkCrVq3Q09OTNQlXV1dHVVVVFlL+IXOR1NAVEhIiM6gtWrSIRYsWAeV52WKxmKysLFm/w4iICMLCwoiIiCAhIYEGDRrQrl07unbtioWFBYaGhhUWRIIgEBgYyIIFC9DS0mL79u20adPmkxqCpEI3OjoaDw8Prly5QkFBAQ4ODkybNg0dHZ0P2m5ubi6+vr4cPnyYzMxMpk2bxsiRI2tNcas6/reoE3911PGeXLlyhe3bt1O/fn3mzJlD//79XypnX1G8vb3Ztm0boaGh9OrVixkzZmBoaIiqquonWyxLJBLc3NzYtWsXCgoKrF27FmNj4w+20paUlBAREYG/vz8+Pj6EhYWRn5+PhoYGhoaGmJmZ0blzZ9TV1WnatClNmjQhPz+fnTt3curUKcaOHSsrSvC++WhFRUXk5OSQm5vLixcviIiIIDAwkMePH5OUlETjxo3R19ene/fuWFpaYm5u/kkWhG/i3r17HDhwgPv379O+fXvGjx9Pz549ad68+TvzhQRBoLCwkGfPnnH16lWOHTtG48aNmTVrFtOmTfsgz4K04uHFixc5cOAA5ubmbN68mVatWr3y2RcvXrBs2TKCgoI4fPgw3bp1qzG9/Op4f8LCwti5cyexsbHMmjWLYcOGvRLtIBaLiYmJ4csvvyQ0NJTvv/+eQYMGffCcmJqayvXr1zl16hQpKSn07t2bzz77jLZt29KsWbP3yk1LTU0lNDRUVp3U8P/ZO++oqK7v7T/0Lr1I7703pdpQsQVjjb3XYOzRaGKMxhijMSoaY4lGsYIau6KICChSFEEF6R2kM9Tp+/2D78yb/GwoIGrmsxbLGC/3nHvnzr77ObscW1tMnz4dXl5eH1RHST6fj5KSEiQnJyM2Nhb3799HbW0t1NXVhdvqCPaQU1ZWhoqKCmRlZdvddZrJZCIlJQU//vgjSkpK8MMPP2DkyJFgsVhoaGgAg8FARUUFHjx4ILSNLS0t0NPTg6urK9zc3ODh4QE9Pb0OfX8LCgowb948NDQ04MCBA7C2tu7WhSBBmv/9+/dx4cIFZGVlwdPTE1OnToWPj887n1ewlcP+/fshLS2NBQsWICAg4IPtXi1ChEj8iRDxFsTFxWHr1q1gMBiYPn06RowYAVVV1XcWR62trTh69Cj2798PDoeDSZMmYdiwYTA2Noa8vHy3pMaw2Wxcv34d27dvh76+Pn766ad2i683UVFRgZSUFMTGxiIhIQGFhYWQk5ODlZUVPDw84OPjA11dXUhKSuLvv//G1q1bMWDAAGzatEnYgv3/zkMQ3WtubkZjYyOysrKQnJyMR48eITc3FywWCwYGBnB3d4efnx969erV5fWEHYXD4eDmzZvYt28fCgoK0K9fP4waNQr29vZQVlZ+YeVcsNJfWVmJ5ORkhISEID8/H0FBQVi5ciV69uz5Tp8fh8NBQUEBwsLCcPz4cQQEBGDDhg0v1GUJagF/++03/P7779izZw9GjBghEn4fMfHx8di5cycYDAaWLFmCfv36vbBIImhetGzZMkRFReH777/H2LFj37nDpSD6HxYWhhMnToDL5WL06NGYOHEidHR0XllX1tTUhOLiYhw9ehTnz5+HlpYWZs+ejaFDh0JdXf2drv998U+xdv/+fURHR+PZs2fgcrkwk+2l4gAAIABJREFUMTGBs7MzfH19YWFhARUVFcjLy0NBQeGl6eh8Ph/Nzc24f/8+1q1bBw6Hg59++gnOzs7CaFdiYiKSkpLw6NEjyMrKwsbGRth51d7evtNKEGpra7F06VLExcUhNDQUHh4e3WYPOBwO6uvr8eDBA5w6dQrJycmwtrbGjBkzMGjQoHeel2DbkDNnzuDgwYMwNzfH4sWL4e7uLkpzF/FBIxJ/IkS8Jenp6fjll1/w+PFjTJo0CZMmTYKGhkaHjH1xcTH27NmDM2fOQFdXF/PmzYO/vz+0tLS6vObsZTQ1NeHSpUvYunUrPD098fPPP3d6S+7W1lbk5eUhJiYGd+7cwYMHD9DS0gIjIyP07t0bXl5eKCoqwoYNGzBw4EDs3LlTKGLYbDZaW1vBZDLx/PlzJCYmIj4+HsnJyairq4OGhgYcHR3h6+sLX19fWFpafpSph7W1tQgLC8PRo0fBZDIxZswYjB49GgYGBsKaKEEn1szMTOzZswc3b95Er1698N13371Qj/c2sNlsZGRk4NChQ7hx4wYmTZqElStXvrCaLRCeYWFhCA4Oxg8//ICFCxeKhN9HDhHh9u3b2L59O8TFxfH999/D2dn5pQsPTCYT33zzDUJDQ7F8+XLMmzdP2DDqXWwXl8tFYWEhDh48iFOnTkFfXx9LliyBv7//vzIjOBwO6urqcO3aNezYsQPNzc344osvMHfu3A+iruxdKS4uRnx8POLj4xEbG4vy8nIoKirCxsYGbm5u8PLygoWFBRQVFSErKwtpaWlISEiAwWDg1q1bWLt2LWRlZbF582Y0NTUhNjYWd+/eRUlJCbS1teHr6wsfHx8MGDAA2tranXqfBM/Dli1bEBISgj/++AMjR47sFnvwz30IT5w4gevXr0NTUxPTpk1DUFBQh7adEQi/P/74A6GhoRg4cCCCg4O7bd9WESLehteJPxBRt/+4ubmRCBEfGqWlpbRy5Uqys7Ojr7/+mgoLC4nL5Xb4vImJiTRu3DgyNDSk8ePHU2RkJNXX1xOHw+mEWb8dNTU19Mcff5CVlRVt3LiRWltbu2wsLpdLVVVVdPnyZVqyZAnZ2dmRmpoaWVlZUWBgIMnJyZGPjw/l5uZSeXk5Xb58mVasWEG+vr6koaFBurq6NHjwYPrpp58oMTGRmpqaumyu3UFmZiatWrWKrKysyN/fnw4fPkxVVVXU0NBAWVlZ9MMPP5CBgQE5OjrSoUOHOvQs8vl8YrFYFBsbS1988QU5OTnRgQMHiMfjvfRYLpdLcXFxpKamRl9++WWnfA9EfBhwuVy6cuUK9enTh0aOHEk5OTmvfA54PB5t2bKFevToQbNnz6aqqiri8XjE5/PfeXwWi0UPHz6ksWPHkqqqKg0bNoySkpKooaGBGhoa6N69exQYGEjq6uo0a9YsysrK6hZb2ZVwOBxKS0uj3bt307hx48jCwoI0NTXJ0dGRpk2bRr///jslJSVRfn4+7du3j7S1tcnU1JSGDh1KPXv2JDU1NfLw8KA1a9ZQdHQ0sdnsDn0mr4PP5xObzaYTJ06QgoIC7dixo1s+Dz6fT0wmk4qKimjTpk1kZ2dHTk5O9Ouvv1JxcXGHz8/j8aiyspLmzJlDRkZGtGXLFiovL++EmYsQ8X4wNzevpVform4XfiQSfyI+YGpqamjz5s1kbW1NU6dOpWfPnnWK48vhcOj8+fPUp08fMjY2pi+//JKSk5OJyWS+1PHqSp4/f04///wzGRoa0p9//vleXuQCB+Lhw4f0448/kpeXF4mJiZGYmBhJSEiQjIwMASBjY2OaMWMGnT59mqqrq9/7vXnfcLlcSkhIoGnTppGuri717duXFi5cSJaWlmRoaEgbN24kBoPRoTEETtO5c+fI39+f/P396dq1a688lsfjUXZ2NhkaGtLAgQOptbW1yxxLEd0Di8Wi8+fPk5ubG40bN44qKytf+Rnz+Xw6duwYqaqqUlBQEJWWlhKXy+3wM8Fms+n69evk4eFBCgoKNGPGDJo5cybJysqSj48P3blzh9hsdofG+Fior6+nu3fv0saNG8nHx4fk5eVJUlKS5OTkhHZSQUGB+vXrR9u2baOMjIz38p0ULATFxMRQjx49aOHChd2yEMTlcqmxsZFOnTpFHh4epK+vT4sXL6anT592yjuCx+NRSUkJDR06lIyMjOjEiRMdtrsiRLxvROJPhIgO0NLSQkeOHCEnJycaMmQIJScnd5oIqampoV27dpGDgwNZWFjQhg0bqKCgoFOcqbehuLiYgoODycDAgG7dutUlYwuEBJfLJRaLRXV1dRQREUHLli0jNzc3kpKSIkVFRZKTkyNxcXESFxcnZ2dnWrlyJUVGRlJdXR2x2WzhvfkUBYjgHpWUlNCWLVtIR0eHZGVlycPDg27fvk0cDqdD183n86m5uZl+//13sre3p5EjR1JiYuIrj+Xz+VRdXU0eHh5kbW1NVVVVn+R9F0HU3NxM4eHhZG1tTTNmzKCWlpbXHn/v3j0yMDAgT09PSk9P75Rnk8fjUX19PU2ZMoUkJSVJUlKSPvvsM6qvr3/vNvF9IxBWbDabGhsb6eHDh7Rjxw4KDAwkNTU1EhMTIxkZGVJWViY5OTlSUlIiHx8fWr9+Pd2/f59aW1u71D7+cyFIT0+Phg0b1qURxlfNgc1m0+3bt6lv376koqJCkyZNoocPH3bawgCPx6OMjAxycXEhS0tLio6OJiaT2SnnFiHifSISfyJEdBAOh0M3btwgf39/cnV1pWvXrnVqFCo7O5tWrVpFBgYG5ODgQHv37qXGxsb3JnL4fD4VFRXR6NGjydTUlJ49e9bhcQVzFzgNLS0t9PTpU9q1axcNHz6clJWVSVJSkiwtLWn+/Pl06dIlYjKZVFNTQ/7+/tSjRw8KCgoiExMTkpKSIj09PRo3bhwdOHCA8vLyiM1mC1POPgWnkM/nU2trK0VERNDw4cNJQ0ODAgICaPHixWRpaUn6+vq0detWam5ufqfr5fP5VF9fT99//z1ZWFjQ/PnzKScn57XHNzU10dixY0lLS4syMzM/ifss4tXU19fT4cOHycDAgFatWvVGG5eTk0NOTk5kampKd+7cISaT+dbPiOD7y2Kx6M6dO+Tp6UkyMjI0f/58Wrp0KcnJyZGzszNdu3ZNeP5P4Tn8p23kcrlUUlJCp0+fpgULFpCVlRXJyMiQlpYWubi4kLm5Odnb29PRo0eJzWZTQUEBHTlyhKZPn056enokISFB2traNHbsWNq7dy8VFxcTl8v9l33sqDDn8/n0/PlzcnBwIAcHB6qrq3tvn4PgPhUWFtKsWbNITk6O/Pz8KDIykpqbmzt1nLt375Kenh55enp2WqaPCBHdgUj8iRDRCfD5fHr8+DFNnjyZDAwMaPfu3Z3qiHC5XEpKSqKpU6eSmpoa9enTh65cudLhmpr2wuPxKD8/n3r16kX29vavTf16Ff90NLhcLhUVFdHx48dpxowZZGFhQRISEqShoUEjRoygvXv3UmFh4UvPw2QyaeLEiaSgoED79u2jhw8f0q+//koDBgygHj16kIyMDLm6utLXX39Nt2/fpvr6+k5xcroDwZxTUlJoxowZpKmpSb6+vhQeHi4UuCUlJbR27VpSVlYmR0dHunr16ltdK5/Pp9LSUpo5cyaZmZnRpk2bqLKy8rXHNzU10ZIlS0heXp6ioqI663JFfODU1NRQSEgIaWlp0c6dO9/4jFVXV9OQIUNIS0uLjh8/Tg0NDe16LgXPL4fDofT0dBo3bhxJSEjQwIED6fHjx8Ljnj17RkFBQSQhIUGDBg2i5ORkYrFYH/V3XWAfU1JSaPPmzdSnTx9SUFAgWVlZ6tWrF3377bcUHR1N+/btIzc3NxowYADduXPnpefkcrmUmppKmzdvpoCAAJKWliZxcXFydXWlFStW0LVr16ipqelfY7+LXa+rq6MBAwaQvr7+K+12VyCwRevXrydFRUUyMzOjQ4cOdXrNN5/PpzNnzpCCggKNGDFClOUg4qNHJP5EiOgEBC/NgoICWrJkCamrq9Pq1as7rUZOcP7W1laKiYmhkSNHkrKyMn3xxReUkZHRKWO8aXwul0uZmZlkbm5O/fv3f+t0l9raWrp58yZ9/fXX5OrqSrKysqSoqEi9evUSNiP4p+P2uroiLpdLy5cvJ0VFRfrhhx+ourpauPp8/vx5WrBgAVlYWJCkpCRpa2tTUFAQ7d27lzIzMzvjdrw3srOzadGiRaSjo0Nubm70119/EYPBeMFZY7PZ9OTJExo7dixJSkpSYGBgu5+Lx48f0+DBg8nW1paOHDkidAZfRWNjI+3YsYPk5OQoNDRU5AT9h+Dz+VRVVUUbN24kVVVVOnXq1BuPZzKZtGDBAlJTU6Mff/yRnj9//sZxeDwelZWV0XfffUfKyspkYWFBx44de8EuCP4eFRVFvXr1Inl5eZoyZYow1fRjQSBiLl68SPPnzyd9fX0SFxcnAwMDmjhxIh09elRYP9nY2Eg///wzWVpa0tSpU99Y0/dPO9HY2Eg3b96kr776ikxNTYX1gQEBAbRt2zZKS0t768ZeDAaDZs6cSSoqKpSQkPBeI34XL14kY2NjUlBQoLVr1/7LNnbmODt27CBxcXEKDg7+pCLMIv67iMSfCBGdiKAOaseOHaSurk7Tp0/v9NQTQYpeWFgYOTk5kZqaGq1Zs4bq6+s7bZxXjc3hcCghIYHU1NRo5syZrz2ew+FQcnIy/fzzzzRo0CBSU1MjGRkZsrW1pQULFtDFixepsrLyndKPBMfu27ePNDQ0aPLkyZSXl/ev8zCZTEpLS6MdO3bQkCFDSFVVVZgmtnz5crpx4waxWKzOuDWdTl1dHW3dupVMTU3J3Nyctm3bRiUlJa+8R/9Mj7t27RrZ2dmRrKwsLV68WJgi/DJu3rxJTk5O5OvrS5GRkW+s0xHUfikrK9OGDRtEDtB/ED6fT5WVlTR37lxSV1en6OjoNx7P4/Fo586dpKurS9OnT3+tYKmqqqJ9+/aRubk56enp0S+//EItLS1vFDhsNptCQ0PJxsaGNDU1aenSpZSdnf3BNoIS1Mjt2LGDBg4cSDIyMiQhIUEuLi60Zs0aiouLEzZQEvyUl5fTl19+SSYmJrRq1SqhTWgv/zfdPjc3l/7880+aMmUK9ezZkyQkJEhXV5fGjx9Phw4dotzc3NeK6Lq6Olq9ejUpKSnRhQsX3lsWSnJyMvn5+ZGYmBhNnjyZiouLOz3NX2BPFyxYQBISEvTbb7990jXlIv5biMSfCBGdjGCF9cyZM6Sjo0MDBw6kqqqqTh9D0G5627ZtpK2tTYaGhrRnz54udXYEL8S///6bZGRkaPPmzf96ET5//pxOnDhBU6dOJT09PZKWliZ9fX0aPXo0/f7775SZmUlMJvNfNScdgcfjUXh4OJmYmNDAgQMpKSlJWIfxTyeHzWZTRUUFXb58mRYtWkT29vYkJSVFGhoaNHr0aPrzzz/bFZHoathsNh0+fJhsbGyoZ8+etHz5cmFtSXvT5Xg8HjU1NdG2bdtIWVmZjIyM6MiRIy88F3/99RcZGhrSmDFjKDU19Y1jCGoO9fT0aPr06R9VZEVE58Ln86miooKGDx9OBgYGb4yoC57LM2fOkJ2dHQ0aNIhiYmL+VTMlWNDy8vIiDQ0NmjNnzls1uBKMUVNTQ9u2bSMzMzOysrKi7du3U0lJSYevuaMI3guRkZG0YsUKsrW1JUlJSdLU1KQxY8bQoUOH6Pnz58LGLP/XPmZkZNDIkSPJ0tKSQkJCOqWuTnDPBBHF2NhY+umnnygwMJA0NTVJTk6O7OzsaM6cOXTy5Ml/bZNQX19Pu3fvJhUVFfr999+7XGTzeDwqLS2lRYsWkYyMDLm7u1NMTIywmVBnR/tqa2tpxIgRpKSkRGfOnPnkmwqJ+G8hEn8iRHQB/0zRtLCwIGdnZ8rOzu70MQQRruzsbJo9ezbJy8uTr68vJSQkdOpY/3dcJpNJISEhJC0tTRs3bqRvv/2WfHx8SEFBgZSVlalv3760YcMGSkxMpLq6OmIymcThcLqkRpHD4dCdO3fIw8ODvLy8KCIi4oWI3j9raVgsFjEYDGGtYGBgICkqKpKioiJ5e3vTxo0b6cGDB+/9RR8TEyPsUjdhwgRKTk6mlpaWt75n/0wFzc3NpYkTJ5KMjAwFBgZSWloacTgc2rx5M2lqatKcOXOEe7e9bgw2m013794le3t7CgwMFNZRivhvIhANxcXF5OnpSfb29lRRUfHG3+NwOHT37l3q378/OTs70/Hjx6m+vp6io6NpzJgxpKOjQyNHjqSYmBhisVjvJCgEz35WVhYtX76cjIyMyM3NjQ4cOEA1NTXvcrnvDJPJpIyMDAoJCaGgoCDS0NAgeXl5srGxoa+++oouX75MDAZDaB9fJWLu3LlD3t7e5O7uTmfOnHnnxk6vQ2Af2Ww2MZlMKi8vp+vXr9OqVauoV69epKysTOrq6uTr60tLly6lpUuXkq6uLq1Zs6ZLF4IEQmznzp2kr69PxsbGtHv3bmpubu4SQcblciknJ4d69+5N+vr6FBsb2+FutSJEfGiIxJ8IEV2EIEqWkpJCLi4uZGpq2iWiTOCINTQ0UFRUFPn4+FCPHj1o3rx579SY5XUIGowcO3aMvvjiC5KSkiJZWVnhnnvHjh2jkpISYjAY1Nra+t5WSzkcDj169IiGDRtGzs7OdPToUWpsbHzl8QJHp7W1lRoaGqi4uJiOHz9OM2fOJENDQ1JSUiInJydasWIF3bhx4411cB0hNzeXZs+eTaqqqhQQEEC3bt2i2traDt+7f0YBL1++TC4uLqSurk7Ozs6kqqpKW7ZsobKysjc62Dwejx48eED9+/cnPz8/KigoEDlCIoTfoYyMDLKwsKB+/fq1S5QImrhMmjSJzMzMyNLSkoyNjSkgIIDCwsKIwWB0ipgQdBGOj4+n2bNnk7GxMfXr149Onjz5xq0qOkJlZSVdvXqVli9fTh4eHqSqqkoGBgY0cuRI2rlzJz19+pTq6+upubm5XdshnDx5kmxsbCgwMJBiYmLeqWvquyAQ0S0tLVRfX09ZWVl08uRJmj17trDjqJycHA0cOJBCQkLo0aNHnT4vBoNBp0+fJjc3N9LS0qLFixdTcXFxl90DFotF9+7dI1tbW3JychIulokQ8akhEn8iRHQhghdodnY2BQQEkKGhId24caNLXlwCsVlZWUl//fUXmZubk4WFBe3bt++dX5aC+sJbt27Rt99+S/379ydtbW3S1dWlQYMG0fr168nf3590dHQoLS3tnSJVnQWHw6Fnz57RlClTyN7enrZu3frarpUCBCKptbWV6urqqKysjK5fv05ff/01eXt7k4aGBllYWNCUKVPo0KFDVFBQ0OF9o/j8tj31tm3bRoaGhmRnZ0cHDx6ksrIyYdObzkQQgbC0tCRpaWlSVVWl7du3U21t7Rvn+ejRIxozZgx5enpSQkKCqL25CCEC+3bv3j3S0dGhWbNmtWvRIicnhxYuXEhaWlokJSVFI0eOpNjYWGGNW2fCZrOptraWrl69Sl988QWZmppSUFAQXb16tVOeZSaTScnJybR9+3b67LPPyNTUlHR1dalXr160ePFiCg8Pp7y8PKqpqRFGq9oDn8+nXbt2kYmJCU2dOpVSUlK6xDa0dy5cLpcYDAadPXuWrKysyNfXl7Zt20aTJ08mU1NT0tDQIEdHR5o7dy6FhYV1KC21qamJbt26RaNHjyY9PT2aMGECJSYmEoPB6LL00qamJjpz5gyZm5vT4MGDKScnRyT8RHyyvE78iRERuht3d3dKTk7u7mn85+CDBy5YEIM4pCDb3dP5qCEi8Pl8lJaW4ptvvsGdO3ewZcsWTJgwAeLi4l0yXktLC4qKirB//36Eh4fD0dERa9asQa9evSAlJfXa329paUFeXh7u3r2LuLg4pKSkoLGxEZqamnBxcYGXlxe8vb3Ro0cPyMvLo6qqCqNGjYKWlhbCwsKgpqYGMTGxTr+u9sDlclFSUoLdu3cjKioKgYGBmDdvHoyMjNr1+wKbx2Kx0NLSIrwXiYmJSEhIwKNHj8Dj8WBlZQVvb2/06dMHjo6OUFFRaff5iQjXr1/Hpk2bUFpairFjx2L27NnQ09ODgoJCl9y7oqIizJo1C3l5eVi/fj3u3buHiIgIODo64quvvkKvXr2goKDwwu9lZGRg165dePDgAdatW4dBgwZBWlq60+cn4uOFiMBms3HhwgXMnz8fK1euxKpVq15q2xobGxEeHo7Dhw+DwWBg6NCh4HA4iI6OhrW1NZYvXw5XV9cumSOLxUJlZSXu3buHkydPIjMzE/3798eCBQvg4ODwVucrKytDUlISYmJicPfuXZSXl0NFRQV2dnbo3bs33NzcYGhoCHl5ecjLy0NGRuatbD2LxcL69etx6tQpTJo0CVOnToWJickbbXdXwuPxcPfuXfz4448QFxfHr7/+CgMDA7S2tqKhoQGPHz9GYmIiUlJS8OTJE8jJycHOzg5eXl7o27cvXF1dISUl9Vr7xuFw8OTJExw+fBg3btyAoaEhZs2ahb59+0JNTa3Lrr+mpgYnTpzArl274OPjgw0bNkBPTw8SEhJdMt5/DjYbAAFS0kA3+QYi/o2FhUVddna22sv+TST+PnF4YKMO+ahAKqqRiTrkoRGlYKIeXLBA4AMAxCEJaShAHppQhRnUYAoduEAHzpCELMQg+jK/CYHTX1pail9//RVnz57Fl19+ieXLl0NSUrLTHX6B4KyqqsKDBw+we/du5Obmol+/fli6dCnMzMyEL1Iej4fi4mIkJycLBU5JSQlkZWVhbm4OV1dXeHp6Ql9fH4qKilBSUoKioiLExcWF48THx2PKlCkICAjAb7/91mUipj3weDw8f/4coaGhuHjxIhwcHBAcHPzWDp4ANpuNpqYmNDY2orq6GmlpaXj48CEePXqE6upqqKmpwcnJCd7e3ujVqxdMTU1f6jTweDw8ffoU27ZtQ2xsLFxcXLB48WJYW1tDU1MTYmJiXfIcPHnyBAsWLEBrayu2bdsGNzc3NDc3Iz4+HocOHUJRURH69euHGTNmwM7OTvhcFBYW4s8//0RERARmzZqFSZMmvVQgihBBRGhubsbevXuxbds2/Pbbbxg/frzwe8Dj8XDz5k3s378fOTk58PHxwahRo+Do6AgiQkREBI4ePQppaWkEBwdj2LBhXTJPPp+PlpYWFBYW4vbt2wgPD0dDQwNGjBiB+fPnQ1dX96W/x+PxkJWVhdjYWMTFxeHRo0dgMpkwMjKCg4MDevfuDQsLC6irq0NJSQkKCgpvFDqvor6+Hl9//TWioqIQHByMUaNGQVdXF5KSkh29/HeGiJCUlITt27ejoqICP/zwA7y9vSEpKSlcMGttbRXayaqqKiQlJSEpKQmpqaloaWmBjo4OXFxc4OHhAS8vLxgaGgoXkogIubm5CAsLw6VLlyAlJYXPPvsMn332GXR1daGoqNhl11VSUoL9+/fj3LlzGDFiBIKDg6Grq9slC7OfLEQAiwmUFwKlhUBNBVBdATQzADar7d+BNuEnJQ0oKAFqWm0/PQ2AnoaAYg9AXCS23xci8fcfgwsmyvAAebiJUiShEeVgowkcNIONZnDRCj44IPz7sxeDBCQhDSkoQgaKkIQ85KCKnnCBBYbCEH6QgrxICL4BgQDcu3cvjh07hpkzZ2LFihWQl5fvMrHU2tqK/Px8XLt2DSdPnoSMjAyGDRsGKysr5OfnIzk5Gfn5+eByudDU1ISVlRWcnZ1hbW0NNTU1qKqqQkVF5bURHxaLhTNnzmD16tUIDg7GokWLIC8v3yXX0x4EwvfChQsIDw+HmpoavvzyS/j7+3fovDweD01NTaivr0dNTQ0KCgrw+PFjPH36FEVFRSAimJqaws3NDb1794aLiwtkZWVRXl6OI0eO4OzZs+jRowemT58Ob29vGBsbv7OT+CaICLGxsVi5ciUkJSWxZcsWuLu7Q0ZGBmJiYmhubkZhYSFu3LiBCxcuAACGDx+Ozz//HAoKCjh69CguXryIwMBAzJ8/H+rq6p0+RxGfDkSE6upqrFmzBnfu3MG+ffvg7++PJ0+eYN++fbh37x6MjY0xfvx4eHp6QldXF7KybVkl9fX1iImJQWhoKCorKzFnzhxMmDChywQPl8sFg8FAZmYmIiIicPXqVSgqKmLcuHGYOnUq5OXl0dDQgAcPHuDu3bu4d+8enj9/DhkZGRgbG8Pe3h4eHh7o2bMnVFVVoaqqCjk5uQ5HikpLS7F8+XKkpaVh5cqVGDp0KDQ0NLo9ApWamoo9e/YgJycHwcHBGDJkCOTk5F56rGBBkMFgoLa2FnV1dSgsLBTayZycHEhISMDIyAiurq4wNTVFQUEBYmJi0NDQAD8/PwQFBQnFdFeJMB6Ph/T0dOzevRspKSkYP348vvjiC+jq6nbbwuVHBZ8PtDQCeRlA1mOgvBhobQY4bIDVCrBYAI/z/4WfADExQEISkJYBpGXb/pSVAzS0ARMbwMy27b8lum+x47+ASPz9R2hFLbJwBVm4/L8IXxlaUA0e2P87QgxA+z5vMYj9TxyKQR7qUIIuekAflhgOa4yEArQgDtEKzusoLS3F8ePHcejQIQwdOhSrV6+GhoZGl77o7t69i9DQUNy8eRNEBEVFRSgqKsLCwgIuLi6wtLSEjo4O1NXVhSvYbzMfBoOBXbt2ITQ0FOvXr8fIkSO7VQASEWpqahAZGYnTp0+Dw+Fg7ty5GD58eKfcZyJCa2sr6urqUF1djZKSEjx79gxPnz5FYWEhGhsboaGhAXV1dZSXl6OmpgaDBg3CqFGjYGNjAyUlpS5zMng8Hi5evIhNmzZBW1sb3333Hdzc3F6IMgsc9idPnuDq1atITEyEuro65OTkUFJSAjc3NyxduhQUJTYkAAAgAElEQVQGBgZdMs8PHQJQ0QSUNQLPmwEGE2BygVYOICkOSEsAclKAuhygrQDoKAKqcm3/9l+EiJCXl4elS5eiqqoKffv2RUxMDMTFxfH555/Dz88P1tbWUFBQeOE72NjYiIcPH+L06dNISUnBuHHjMG/evC61IRwOB5WVlUhNTcXly5cRFxcHIyMjaGlpobi4GNXV1VBXV4epqSlcXFxgZWUFDQ0N4U9nZW0QEZ49e4bVq1ejpKQEq1evRkBAAJSVlbs9ApWTk4P9+/fjwYMHmDBhAsaNG4cePXq81TlaWlpQW1uL6upqlJeXIzMzE0+fPkVGRgbq6+vBYDAAAG5ubhg/fjwGDhwIDQ2NrrgcAG3ZHPfv38fevXvx/PlzTJkyBcOHD4eWllaXjfnJwOUAVeXA0wdA7lOAUQs0MIDWprZ/FxN7UfC9kn/4nTKybdG/HmqAnjFg6woYWwIyL19kENExXif+RLL7E4CDVmTgb2TiAqrxDDXIAhcsvCj02i/0/39UkNCCGrSgGpV4glrkIQfXYIFhsMbnUIAGxPAf9YLegJ6eHqZNmwZZWVkcPHgQra2tWLFiBYyMjDpltZuIwGAwkJqaipSUFKSmpqK4uBhsNht2dnbQ1dVFYWEh0tPToaamBjMzM/j7+0NZWfmdx1RWVsaMGTOQm5uLXbt2QUNDA35+fq9cIe5qxMTEoKGhgcGDB0NBQQGnT59GSEgIGhoaMH78+A7Xj4iJiQlrevT09GBrawsPDw88f/4c2dnZuHLlCi5cuAA2mw0OhwNJSUkYGRkhIyMD8vLysLW1hbi4eKcKQCICl8vFmTNnsHXrVpibm2PlypVwc3N7aVqpmJgYNDU14evrC0NDQ9jZ2eH06dOIioqCgYEBzM3Noamp2Wnz+9AhahN3KRXA00ogswaoagaa2ACTB7C4AJcPsHmAhFibyJOSAGT+JwIVpdtEoJkqYKcJ2GgCKv+xkmkDAwM4OTlh27ZtKCoqQmBgIMaMGQM3Nzeoq6u/MoqlpKQET09PKCkp4fTp0zh16hQaGhqwaNEiqKm91EfpEIIU0JKSEuTk5ODZs2fIzMxETk4OpKSkICsri5kzZyIgIAC6urrQ1dVFjx49uiQ1OyEhARs2bEBjYyO+//57DBgwoEuzQdpLeXk5wsLCkJKSgsGDB+Ozzz57a+EHQGgn9fX1YWtrCw6Hg8jISBQXF8Pc3Byenp5oaWlBdXU19u/fj/Pnz8PU1BR2dnaws7ODra0tZGRkOuWampqacOvWLfz1119gMpmYN28eBg0a1CXP2CcFjwdUlgJPkoG89DYBWF/zotB7q6DRP45lMdt+aqqAilKgKBfQNwbs3AFzO0Cy++pd/2uIIn8fOeV4iFQcRSFiUYHHIHBfSOfsXNqSPjVgA314wR7joY/ekIFSF475cVNbW4vTp0/jzz//hKOjIxYtWvROLzqB05+fn4/Hjx8jIyMDmZmZqKiogJSUFNTU1GBtbQ1jY2Po6upCS0sLdXV1whoWKSkp+Pj4IDAwENbW1h0SRqmpqVizZg3ExcWxbt06ODk5dXuTkMbGRiQmJuL48ePIzc3FlClTMHnyZGHaWWfR2tqKjIwMXLhwAXFxcZCQkEBAQAB69OiBnJwcFBYWor6+HtLS0jA3N4etrS0cHBzg5OTUYWePiNDU1ITQ0FAcPXoUDg4OmD9/PlxdXdt1Xj6fj7Nnz2LPnj1oamqCpqYmxMXF0adPHwwbNgy2trbd7ox2FXwCShqAuCLgUQVQWA+UNwLlTQC7rfS5rU/B/8xnW97D////RP/fjZGTBDQVAD0lwFAZsNUEeukCVhqA+Kd5+wC0PX9paWk4fvw47t27hx49eiA9PR3u7u7YuXMnevbs2a4oFpvNRl5eHsLDw3H58mX4+/vjq6++6pToM4vFwvPnz5Geni6MPJWXl4PH40FVVRUmJiYwMzNDWVkZIiIioKSkhGHDhmH8+PHCutzOhM/nIyoqCr/88gsAYNmyZejfv3+XpYK/DfX19Th27BguXrwINzc3zJs3D8bGxh06Z3Z2Ni5cuIDo6Gjw+Xx4e3vD29sb2traaGpqQllZGfLz85GXl4eysjI0NzdDQkICJiYmsLKygrW1NaytrWFoaPhO49fU1ODKlSsICwuDrKwspk6dir59+76ToP1PwagFMtOAjIdAce7LRV+nIwbIyQG6Rm3iz8kL0Nbv4jH/O4jSPj8xCAQ+uMjERaQhFHm4BQ5ahM1b3g9ikIQs9NEbthgDK4xAD+iJooCvoKGhAWFhYTh06BAsLCwwZ84cuLq6vjHdicfjoa6uDtnZ2cjMzERmZiYKCgqE4kJdXR22trYwNDSEqakpzMzMXkgjqqioQEJCAiIjI5GZmQkdHR30798fffr06dCL/tatW1i3bh3s7OywdOlSWFhYdGvDAqAt9ejRo0c4duwY0tLSMG7cOEybNq1D0U4BXC4XRUVFuHXrFqKiolBVVQVnZ2cEBATA29sb8vLyKCsrQ15eHnJzc5GdnY38/Hw0NzdDTEwMpqamMDc3h7W1NWxtbaGtrf1W94vP56OmpgZHjhzB6dOn4eXlhfnz58PW1rbd54iPj0dISAg4HI5whT8mJgbp6enQ1NREYGAgAgICPqnUKC4fKG0AYgqB5HLgaRWQW9cmBtufCP9yxNAWGdRVaosCuvQEfA3aooGfkgYkIlRWVuLSpUu4evUqqqur0b9/f/Tr1w+PHz/G3r17MWHCBGHdaHtEDY/HQ1lZGU6dOoVz587B1dUVwcHBsLGxeeu51dbWorCwUGgn8/LyUFtbCzExMSgrK8Pc3BwmJiYwNTWFiYkJdHR0UFtbizt37iAiIgJPnz6Fg4MDBg8ejIEDB3ZKMyvBYt3Fixfx+++/Q0JCAqtWrUK/fv26pPHT29LS0oIzZ87g5MmTMDc3x9y5c2Fvb//O86qursb169dx8+ZNFBUVwcnJCX369IGXlxc0NTWF0WBB46DS0lIUFBSgqKgI+fn5KC0tRUNDA5hMJrS0tGBjYwMLCwuYm5vD0tISsrKyb5xbcXEx/v77b1y7dg1aWlqYPHkyfH19uy0z5aOAzwdK84G0xDbhV1UGcLnvdw7i4oBCD8DKEXD2bvtT1Bimw4jE3ycEgcBGE9IQikc4glIkouMuTMfQgC1sEAR7TIAGrCEBUej+ZbS2tuLs2bP466+/oKOjg0mTJsHHx+dfK5KCyE5JSQny8vJQUFCAvLw8lJSUoKWlBeLi4jA0NISxsTHMzMxgbW0Nc3NzSEhIvPbFyOfzkZubi6ioKERHR6O2thb29vYIDAyEh4dHu7cx+Cc8Hg/Hjh3Dnj17EBAQgNmzZ8PY2Ljb61dYLBYyMzNx+PBh3Lt3D2PGjMG0adPeWdAQEcrLy3H//n1ER0cjJycHmpqaCAgIQJ8+fV66Qk1EqKurE6aZZWRkoKCg4F+foZmZmVCwGxkZQVFR8ZWfoWB7i2PHjuHvv/9G3759ERwcDBMTk3ZfR3p6Onbu3ImysjJMnDgRw4cPh5ycHIqKihAVFYWoqChUV1fD3d0dAwYMgLe390ftNPGprX7vfikQXQDEFwOFDW2ROX4XmEtxsba6QG8DoK8x0Meo7e8fMwJHPT4+HteuXUNycjJMTEwQGBiIIUOGQFlZGY2Njfjll19w+fJlBAcHY8yYMe22J3w+X5gZceLECVhbW2PBggVwd3d/7e9xOBzhQktOTg5yc3OFUSQ+nw9VVVWYm5sLhYO5uflLu0kKOlBevnwZUVFRaGlpQd++fdGvXz+4ubkJGye9y31raWnB33//jT/++APa2tpYuHAh+vfv3+2iD2izJ9euXcMff/wBLS0tzJ07F56enu/UdIbNZiMxMRFXrlxBfHw8NDU10b9/fwwePBgGBgZvzDDh8XhgMBgoKChAVlYWMjMzUVhYCAaDAQkJCUhJSQltpOAz1dHReSGdPjs7G2FhYbhz5w7Mzc0xefJkeHh4dOvWGR88HDaQ/QRIudv2Z2N9985HUgowsQJcfdtEoHTnpAH/VxGJv08EAoGJeqQhFHfxCxpR/p6jfa+irSmMLcbAGTOgAydIQvSlfRmCleBDhw5BTk4OY8aMga+vL4C2VUvBKmh+fj4qKirAYrEgKysLExMTmJubw87ODvb29u9cu9Da2oq0tDRcu3YNDx48gJSUFPz9/eHv7w8HB4e3flG2tLQgJCQE586dw7hx4zBhwgT07Nmz2x0cQZRu7969iIyMxJgxYzBjxoxXtnl/FQwGA2lpabh9+zYSExMhISEBPz8/DB48GHZ2du0Wus3NzcjOzsaTJ0/w5MkT5Ofng8FgQEZGBlpaWrC0tBQ6OAYGBlBTUxNGBdlsNnJycnD8+HFcv34dgwYNwqJFi97qWkpLS4V7+Y0ePRpjxoz5V51fa2sr0tPTceHCBdy/fx+ysrIIDAyEn59fh6IB3QWbBxQygJt5QEQukPq8LXWzK0Tf/0VcDDBWAUZYAkPM2qKAHxuCff2ePXsmXBhobm7GoEGDMHbsWJiamv7rmSgtLcX333+PrKwsLFmyRJgG3d6xBFGow4cPQ0dHB19++aXQLgrGaWhoQGlpKQoLC5GXl4fs7GyUlZWBwWBAVlYWBgYGsLS0FP7o6+u3y54JOlfev38f586dw8OHD6Guro6hQ4fCz88PRkZGb5XSzufzUVdXh/Pnz2Pfvn0wMzPDihUr4Obm1u5zdCVEhHv37mH79u2QkJDAnDlz4O/v/1ZlCAK/MTMzE9HR0YiMjERtbS18fHwQFBQEBweHd6rfIyLweDyUlpYKM10eP36MkpISYQMzY2NjmJubQ19fH3p6ejAwMEBRURFOnTqFpKQkuLu7Y/LkybC3t+/2hcgPGhYTyEwF7t0ACnMANrO7Z9SGuASgrgX4DwNcfQDZ7mso97EjEn+fAAQCCwykIhR3sAGtqAOB193TEiIGcUhDETb4HG6YB124QQKijaJfBp/Px5kzZ/Dbb79BRkYGPj4+EBcXR0FBAaqqqsDj8aCtrQ1TU1PY2trC0dERlpaWnZpSWV9fj4SEBJw/fx6ZmZkwMjLC8OHD4eHhAQMDg7dy9mtqarB582YkJydj2rRpCAoK+iAK6/l8PioqKhASEoIrV65g1KhRmDZtWrtSXZlMJrKzs3H37l3cvn0bdXV1cHZ2Ft6jjkTE+Hy+cPuI1NRUZGZmoqqqSigETU1NYWlpCT09PWhoaKC2thbh4eG4c+cOPvvsMyxatAiqqqrtHq++vh6HDh3CuXPnMHz4cEyePBn6+i/WVQiizjExMQgLC0NmZiZsbW0xZswYeHp6dmlnvs6kid3WyOViFnApC2hkvx/R90/Exdp+PrMEJtgDbj3b/v4xaGgOh4Py8nIkJCQIUyIdHR0xevRoBAQEvNKhTk9Px9q1a8Hn8xEcHAxvb++32jOSw+EgIiIC27Ztg4KCAlasWAFra2s8f/4cJSUlyM3NRU5ODsrLy1FdXQ1VVVWYmZnB3t4ejo6OMDc373CzlubmZly7dg1nz55FaWkp3Nzc0LdvX3h4eEBLS+uNNpjH46GiogJ///03Dh48CCcnJ6xZswaWlpbvPKfO5unTp/j5559RW1uLuXPnIiAg4K0+J0GH5cTERFy6dAnJycmwtbXF2LFjERAQ8M7R0leN1dTUJKzfTE1NRUFBARgMBpSUlKChoQErKyukpaXh0aNH8Pf3x/z58+Hk5PTRLVi9V9gsIP0hEHMFKCsAOJzuntG/EZcAlJSBgFGAm19bl1ARb41I/H3kEAgcNCMdZxGBJWCi8YMSfgLEIA4pyMEGo9ELi6ANJ1EK6P9gsViorq5GZWUlKioqkJWVhcjISDx+/BgVFRWQk5ODt7c3Bg0aBA8PD9jY2HRKndrrENTxRERE4OzZs6irq4O/vz+GDh0KW1vbt0oFzcvLw4YNG1BTUyPsnqek1P1NgIgIDQ0N2LNnD44fP47hw4djzpw5MDc3f+nxfD4fpaWlePjwIS5evIiMjAxYWFhg9OjR8PPzeyvR1V5qa2uRnp4u3FS+oKAARARNTU1oamqitrYWcXFxGDFiBL777jvo6Oi027FhMpk4f/48du7cCS8vLyxYsAAWFhav/R0+n4/q6mqEhYXh7NmzYDKZGDt2LPr27Qs7OztIS0t/sI5VAwtILAVOPAZuF/67SUt3IAbAXRdY5gV49GyrD/xAbx14PB7q6+vx5MkTYV2riooKxo4dizFjxrRLIMTFxWHdunUwMDDA/PnzhXtgtgfBtioXL17EypUroaenh2HDhiErKwvFxcVgsVgwMDCAo6MjHBwc4ObmBm1t7S5J6ysvL8fJkydx7do1cLlcDBw4EH5+frC1tYWqqupLBTCHw0FJSQnOnj2LI0eOwMfHB+vWrXvrbIOupLi4GD///DMeP36MefPmYdiwYe2284LPJyMjA9HR0Th37hxkZWXx+eefY9KkSVBRUXkvdqG4uBgPHz5EUlISTp06hdLSUigpKcHIyAgeHh5wd3eHsbExtLS0oKmpCVVV1W5vRvZBweMCWWnAtTCgovj91/e1FzFxQF4R+Hw64ODZtifgh2o8P1BE4u8jhkDggYU83MIlzEUzKsD/AIXf/0ccMlCEHcbBG8uhDqv/3Kbwgu9UQ0MDampqUFdXh+LiYjx69Ajp6enIz8+HmJgY9PT0oKenh6KiItTW1iIwMBATJ06EoaHhe22cwuVyUVhYiBMnTuDSpUuQk5PDlClT4OvrCzMzs3Y7V4mJifjpp58gKyuLOXPmwMfHp9M7bb4LghS2AwcOYNeuXejfvz+WL18uFIACh6W2tla4fcPNmzehrKyMoKAgjBgx4qWRsq6AyWSisLAQ0dHRCAsLQ2JiIlRUVNCzZ0+4u7vDyckJ9vb2wn0aVVVVX/ms8Hg8xMXF4ZtvvoGFhQW+/vpr2NjYtDsVisfjITMzE7t370Z0dDRMTU2xcOFCODo6CjdJ/pBEYAOrrZPnkdS2Or8PBXExwFId+KFPmxCU+MAigIK6vry8PMTFxeHy5cuoqanBkCFDMHPmzLfuuhgeHo7t27fDw8MDs2bNgq2t7SttCJ/PR1NTE2pra1FTUyO0k/fu3UNmZiYqKyuhqamJuXPnYuDAgXBycurUyNKbePLkCY4ePYqYmBioqalhxIgR8PHxgbGx8b/28GSz2cjNzUV4eDjCw8MRGBiIb7/9tssX8N6Guro6hISE4MKFC5gxYwbGjRvXrjrof6ZiJiUl4ciRI8jNzcXgwYMRHBz8Qgrw+6ClpQXx8fHYvHkzWCwWXF1d0dLSgvz8fNTV1UFRUREmJiawtbWFra0tdHV1oaamBlVV1bfe2/aTgggoygHOHwHKC9tq/j5kxMUBRWVg0qK2jeGBD8t4fuCIxN9HDA8cVCEd5zAFVUj/ICN+LyIORWjDGdPgjRWQh3p3T6jLISJwOBw0NDSAwWCgrq4Ojx49QlJSEp49e4bnz59DTU0N9vb26N27N3x9fWFsbAwZGRkUFxdj//79uHHjBnx9fTF79myYmZm999VKFouF1NRUhISE4P79+8JtKWxsbIROwpte8leuXMFvv/0GAwMDLFiwAC4uLh9MwT2Px8OpU6ewfv16eHh4YP369TAzMxOu2EdERCA0NBRcLhdBQUGYPHkyDA0N36kJwrsiaBRz69YtHD16FAwGA4GBgQCAe/fuobCwEFJSUrCxsYGzszN69+4NbW1tKCsrQ1VVVdg+noiQkZGBhQsXQk5ODps2bYKjo+NbLyoI6qGuXr2KHTt2oKioCEFBQZg6dSpMTExe26TmfdLMBm4XAIceAQ/Ku3s2LyLxvzrAHYPbuoJ+KCmgTCYTlZWVSEhIwLlz55CRkQFXV1fMmDEDfn5+73ROIsLBgwdx4MABDBgwALNmzYKJiQkkJCSEdrKxsREMBgPV1dV49uwZEhMT8eTJE5SWlkJFRQWOjo5wcnLCjRs3kJGRgQ0bNiAwMPCVUbeuhMfj4e7duzhy5AhSUlJgamqKUaNGwdfXV2gX09PTcfToUdy6dQsTJ07EsmXLOm3Pus6gpaUFp06dwq+//oqJEydi5syZ6Nmz5xt/T9BtOisrC+Hh4bhy5QosLCywcOFCDBs27D3M/EUaGxtx+/ZtbNy4Eaqqqvj222/h6ekJWVlZ1NXVISMjAw8ePEBSUhLS09PR2toKTU1NODo6wtnZGQ4ODlBRUYGSkhKUlZU/6qZWbw2jFjj9B5Cf+eHU+L0JcXGgpzEwcwWgrPZhGM6PBJH4+0gh8NGAUtzGd3iEUOCDaO7SXsSgBTv0wmI4YSokP7H6P4FTzGQy0dTUhObmZpSUlCA+Ph6JiYlITU0FEcHExAReXl7w9/cXbgfwMme5uroaR44cwcmTJ2Fvb48lS5bA1tb2vQtAIgKLxcKFCxewY8cOVFdXY9y4cUJnQU5O7o1dRY8fP479+/fDyckJixcvhpmZ2Qez0kpEuHHjBoKDg2FmZoZffvkF5eXlCAkJQXp6Ovz8/LB06dJuufeCrRzOnj2L0NBQ6OjoYNmyZfDx8QHQllZWUFCAmJgYxMTEICEhASwWC5aWlvDw8EBAQAAMDQ2hqKgIFouFJUuWoLi4GDt27IC7u3uHrkdQe7Nr1y4cOXIEKioq+Oqrr+Dv7w8dHZ1u3bOMzQNii4ADD4H4km6ZQruQEAMctYAdgW17A3bnfoBcLhcNDQ1IS0tDeHg4YmNjYWJigpkzZ2LIkCEdfvbZbDZ+/fVXnD17Fp9//jkmTJgARUVFNDY2CtP2EhISkJaWBjabDQMDA/j4+KBPnz7w9vaGoqIiiAgMBgNfffUVbt26hTVr1ggbFXWHPWlpacHNmzeFkS8vLy+MGjUK4uLiCA0NxePHj7FgwQLMmjXrg7F3QNtnffPmTSxduhQDBgzAN99888ZMBj6fj5aWFhQVFeHSpUs4evQoZGRkMGfOHMycObPbhC2DwcClS5ewYcMG2NnZ4ccff4SVldVLF7W4XC4qKirw8OFDJCYmIjk5GdnZ2ZCQkIC5uTkcHR3h5+cHKysrKCgoQF5eHgoKCi90Ef1k4LCBiHAgPhJgtnT3bN4OMTHAZxAwfHJbR9BP8fPpAkTi7yOkrcFLI9IRjouYAwJ9VMmTgg2SjdAHg/EresL1o0//5PP54HK5YDKZYDKZqK2txYMHDxAXF4eHDx8iPz8fKioqwlb5gwcPhp6eXrtfJM3NzTh37hz27NkDbW1tfPPNN3BxcemWFy0RobGxEfv378euXbugpaWFtWvXws/PDyoqKq/dWoLD4eDAgQMIDQ2Fn58fli1bBm1t7Q/ihSqwd5GRkRg3bhykpaVRX18PHx8ffPvtt/Dx8emW+83j8VBZWYmDBw/i7Nmz8PDwwLJly16555mg6cLt27eF23fU1NRAX18fvXv3RlFREeLi4rB7924MHjwYqqqqb9wOpL3k5ORg/fr1iIyMhLe3t7Axh2B/yff5OfMJSKsAQpKAyLz3Nuw7Iy7W1gX0e39ATe79+zCCzpr5+fk4c+YMLly4ABkZGUydOhXjx4+HunrHszQE+9vV1NRgw4YNiIqKgrOzMzQ1NZGamoq8vDzIy8vDwcEBffv2RZ8+feDg4PDK54bNZmP16tU4fvw45s6di7lz50JXV7fbnPTq6mqcP38eBw4cwLNnzyAlJQVtbW2sW7cOY8eO/aCEH5/Px5MnTzBx4kRYWVkJszJedd8EKfIVFRWIjY3Fvn37UFJSglGjRmHZsmXdVr8oqN0+dOgQtmzZgqFDh+LHH38UbvnQHjgcDkpLSxEXF4fbt28jPj4etbW10NLSgpubGzw9PdGnTx+oq6tDTk4OMjIywkWQD+Hd1SGI2rZyCP0NaGnu7tm8G2JiwOzVbXsA4gNJnfjAEYm/jxA+eKhAGsIxDnXIBx+8j0o6tYk/MchCGTYYjaEIgRQ+rvQKQXSPw+EIU5WysrIQFxeH2NhYpKamgs/nw9zcHH5+fggICHjrltn/Fw6Hg1u3buGXX34Bi8XCd999h379+nXbSisRIScnB2vXrkVERASGDBmCtWvXwsTERBjFfNmLsbGxEXv37sWpU6cwYsQIrFy58qX7bL1P/plydurUKWzatAksFgsyMjIICwuDu7v7e60nEiCop9m+fTsiIyMxcuRILFy4sN2OliBam5CQgMuX/x97Zx5WVdX98c+5zDMyKwoCAqLiQOCsiIhTWppTmmXmUKaZVpaalvkm5ZRm2atpVprllLOooYAMgjggogxODArKoMBlugP3nt8f/O5NU1QGFXv9Po/PI3D2PvtMe6+19nd91342bNhARUUFZmZmdOvWjV69etGrVy8cHR0xNDREX18fXV3dOl9naGgo8+bNIzs7m9dee40JEybg5OSEvr7+EzOA88tgaSzsSQNZA9UtuB/m94TRrcH4CQaxlUolhYWF7Ny5kw0bNlBSUsLIkSN5/fXXqxVAelTcOU/K5XKtUm5YWBhnz56loKAAZ2dnBg4cyIABA/Dz86uRIrAoiqxcuZKvv/6aoKAgPv/8cy2V9El/r2q1mpKSEjZt2sR3331HXl4eDg4OjBkzhvHjx2NjY/NU5pF/QhRFcnJytLuTGzduxNXV9b40dk1en1QqJS4ujrVr13Lq1Cl69uzJxx9/TIcOHZ7CFfwdrCspKSE4OJg1a9YwceJEPv/88zpRzjVrwfnz5/nrr78IDQ0lMTERlUqlDUp069aNdu3aYWxsjJ6ennZee9rPtVaQy+G/X0BOFqgamLLno0IQwM4R3vsPGD6FyNkziOfO3zMGEZEScjjBKmJYytPVq6s7bGlNAF/gxSsNfvdPswhWVlaiVCpJT08nOjqayMhITp8+TW5uLvb29nTp0oWgoCACAwPrPRqqVqtJSEhg0aJFJCcnM3fuXEaNGvXUVRZDQkL45JNPyM7O5vLOMegAACAASURBVK233mLmzJnY2tpWS/nLzc3lhx9+YO/evbz55pu8++67TyX/TxRFRFFEJpMRERHB3LlzSU9PZ/LkyUycOJHJkydz9epVfvzxR3r27FktNfdxQKVScfHiRRYsWEBycjLvvPMOY8eOrZVQhEqlYt++fbzxxhtMmDABR0dHoqKiiIuLQy6X4+npSffu3enXrx/t2rXD3NwcXV1drQFdm2suLy9n3bp1rFy5EhMTE2bMmMGLL76Ira3tYzfMVWr44TT8kQQ3Sp4tUryRLmwfXlUDUPcx+8kqlQqFQkFkZCRLlizh4sWLDB48mLfffhtvb+9aO+oaJoRKpeL27dvExMQQHR1NWFgY165dw9raGl9fX1q3bs3JkycpLCzk3XffZdSoUbUWtNqxYwezZs3Cw8ODr776ijZt2jxRyrGGmr127Vr++OMPunbtyqhRowgPD2fTpk1YWFgwdepUxo4di5GR0RPNF/4nSktLGT58OJcvX2bXrl14eXnd976r1WoUCgXnz59n/fr17Nu3jxYtWjB9+nSGDBny1K5BY5sWFxfzzjvvEBISwtKlSxk/fny9U/I1TIqoqCgiIiI4dOgQ2dnZWFhYaMt9BAUF4eTkhIGBATo6OnWaN58oRBFi/oL9vzV8gZdqobGBBRg6HroEVeUCNvR7/5Tx3Pl7xqBGxTWOs5VXKKfgaQ+nztDBEDf6MIo/G1ztP41joFarEUWRgoIC4uLiOHr0KOHh4WRmZmJqakrbtm0JCAigT58+tG/f/ok4MRkZGXzzzTds2bKFd955h/nz59fLjk1dUF5ezsqVK/nmm2+wsrJi3rx5DB48GAsLi/suhBkZGaxevZojR44we/bsJ0qL0sxtSqWSK1eusHDhQnbu3Env3r1Zvnw5Xl5eCIJAUVER48aNIyYmhmXLljF06NA61wt7FKjVak6cOMHs2bMpLy9n7ty5DBw4sMa7vJrrTExMpE+fPrz00kt89913Wmn+wsJCYmJiCA0N5ciRI2RkZGBhYYGfnx99+/bF398fDw8PJBKJNrJd02vPyMggODiY3bt34+3tzQcffEDPnj0xMTF5LAaSKMLJHPg6pmEKvDwMOgIEucLCALAzfjw2jCaQlZSUxMKFCzl27Bhdu3Zl1qxZdOrUqUZKvJp3TDNXqtVqrl69ysGDBzl8+DDHjx9HqVTSrl07goKC6NWrFy+88IK2jMD58+dZunQpV69e5ZNPPmHgwIG1ngdOnz7N22+/jVqt5uuvv6ZHjx4YGho+ke81KyuLJUuWEBoaysiRI3n//fexs7NDqVRy8eJFVq1axbZt22jXrh0LFiygW7duT2XOrqysZNq0aWzdupXdu3fTtWvXe9YszbO8ePEiP/30E9u3b8fGxoYpU6YwevToGtX+q29o1uW8vDxGjRrF+fPn+e233+jbt+8TcUbVajVJSUkcO3aMiIgIoqOjKSkpoXnz5nTq1InevXvTvXt3HB0d0dHRqfW8+USgVMKSD+B2Ac9WiKwamDeCT5aDwWOaOP9FeO78PWMo5hon+YFoFvOs7/ppYI07fVmGJy897aHcZcgolUpOnz7N4cOHiYiI4MyZM6hUKlq1akXv3r0ZMGAAPj4+T02yW5MHtmzZMsaMGcPy5cuf+g4gQHp6Ol9++SXbtm3jhRde4PPPP6dTp05a5bQ7x3f+/HmWL1/O2bNnWbFiBf7+/o99/BrDJi8vjx9++IFVq1bRtGlTvvjiC4YPH37P8QqFghkzZrBlyxY++eQTxo8fj62t7WMZp8aw2bNnD3PnzsXJyYkFCxbQsWPHGhs2mnc5JyeHrl274uLiwt69e++Sob8TCoWCixcvEh4eTkhICPHx8VRUVODm5kZgYCD9+/ene/fud+1+1uQexMTEEBwczKlTp+jbty/Tpk3D19f3gXQpzf2oifFUqYYPQ+HwFah4RllMAGsGgn/zKvpnfUHzTty6dYulS5eydu1amjdvzvz58wkKCsLc3LxG/Wj+r1AoOHHiBCEhIezdu5eLFy9iZWWFv78/AwYMYODAgdjZ2VX7DsfFxbFkyRIKCgr46quv6Nq1a62/r8zMTKZOnUpqaiqffvopQ4cO1QagHgdEUSQxMZHPP/+cixcvMn36dN544417HCS5XM7p06f54osviIiI4MUXX2TJkiXacghPYt4DWLRoEQsXLuT333/n5Zdfvsvx0xxTUFDApk2bWL9+PUqlkvHjx/Pmm28+9bqEmvng0qVLDBkyhNLSUvbu3Uv79u2f2rpXXl7OyZMnCQ0NJTQ0lJSUFERRxMvLix49ehAQEECnTp20ObO1mTsfG05GwI51DbeeX20wYjL49qwSf3mOavHc+XuGICKSRQx7mcAtLj7t4dQb9DHDk0G8wuYnSv283/t98+ZNQkNDCQkJITQ0lMLCQpo1a0aPHj3o168fgYGB2NvbP1XKzp0oLS1l9+7dzJgxg65du/Lbb79Va9w/aWiKOickJPDyyy8zY8YM2rRpcw/l7+zZs3zxxRdkZWXxyy+/0KZNm8fmWAEUFRWxfft2vvzyS2QyGTNmzODDDz984K6aKIosWbKE5cuXM3jwYObMmYObmxtQf4u4xrBZtWoVX331Ff7+/ixYsEC7C1nTvgAqKiro1asXUqmUqKgobGxsHrmvW7ducerUKQ4dOsSRI0dITk6mUaNGBAQEMHDgQPr374+Dg8NdbR7Wt6aw/IoVK7hx4wajR49m0qRJ972XGjruunXrcHd3p3///g/tXwSOZVTt+qU8w8QIHQE6NYWvA8HJvH6C2BqxlV9//ZXPP/8cURSZM2cOb7zxxiPtZt85X6pUKm7cuMHhw4cJCQnhyJEjlJSU4OrqyqBBgxg0aBD+/v41ol1GR0ezaNEiKioq+P7772ndunWtv62ioiJmz57NwYMHmTBhAhMmTNDWn6wvaO7H4cOHmT9/Pjo6Otod+gdRV+VyOYcPH2bOnDlcvXqVyZMns3Dhwrsc78c1/23bto3Ro0ezcuVK3n333bvGqfnedu7cyYoVK7h58yYjRoxg0qRJtGrVqt7HU1NodquPHz/OiBEjcHBw4MCBAzUSTnsSyM/P5/Tp01o2RXJyMkZGRnTo0IF+/frh7++Pn5/fXU53Xcd/57f5yH2JIqz8FLLTQfwX7Ppp4OgC734OBobPd/8egOfO3zMEOVLOs4V9vP20h1LvsMaT1wjBCtcnds47I9YHDhzg6NGjnDlzBkNDQ7p06cKAAQN46aWX7psI31AWG80OZWxsLGPHjsXe3p7du3c/scLjDxtbZWUlO3bsYMmSJeTn52vFPzw8PLTHqdVqTp8+zcyZM4GqQtCPUmeqpigqKuLw4cMsXryYK1eu8Oqrr/LZZ59po9kPeqaauXDz5s189tlntGvXjvnz59OhQ4d6excqKyuZPXs2P/30E9OmTWPq1KnY29s/dGzVjVelUjFixAiioqKIiYnBw8OjRv3cOf8rlUoyMzMJDQ3l4MGDhIeHI5fL6dChAwMHDmTw4MHae/Eo9zEvL4+NGzeybt06JBIJ77zzDuPGjaNRo0baYzWF5P38/DAwMOD48eO0bNnywWMGph2EsHQof4Z3/TRY8yL0cgajOgaxRVEkMjKS999/n5SUFCZMmMBnn32GnZ3dI+9ElJSUkJCQwKFDhzh8+DAJCQmYmprStWtXBg4cyJAhQ2jWrNldbWryvqnVaiIjI5k/fz4GBgb8/PPP9/T3qNDMiytWrGD9+vXaMi3e3t616q+6c/z4448sXryY1q1ba2vKwaPNJXK5nJ9//lnriH/66adMnTr1sVBBRVEkOjqavn37MmXKFJYtW3YPtTY8PJwFCxZw7tw5Bg4cyIwZM+jQocNTEc65H2QyGTt27OCdd96hZ8+ebNmypcEEOu/EnfNmZWWltsyTJl0kIyODRo0a0blzZwYOHMigQYNwdnau0zlv3LhBaWkpLVq0ePT7kX8DFn/w73L8NHh/UZUT2ECC9A0Rz52/Zwh5nCearznPFtTPREH3R4WAOU3oxmw6Me2xnkmpVHLt2jWOHj3KwYMHCQsLQyqV4uLiQmBgIC+++CJBQUH35Ik0tAXmTmgM/dTUVIYPH05FRQX79u2jbdu2T3tod9GINmzYwPr169HR0WHy5Mm89tpr2Nvba53EU6dO8fbbb+Pk5MS2bdswNjaulzHIZDJiY2P55ptviI6Opnfv3nz66adalbqaOkQRERF88skn6OrqMn/+fPr06VPnPM/S0lLGjx9PWFgYS5YsYfjw4XXKLaysrOSTTz7h+++/JyQkhN69ewO1f4/vXAs0iobHjx8nJCSE3bt3k5OTg7OzM3379mXgwIEEBQU9sO6jpr+LFy+yfv16fv/9d5o0acKMGTMYOXIkoihy/vx5Fi9ezM6dOwFwdnYmPj6eRo0aVdtvSj7M+AtSn+FdPw10BXjJE2Z2rqr9VxuIokh2djZz585l8+bNBAQE8M0339C6dWut8f+gMgpXrlzh6NGjHD58mLi4OKRSKU5OTgQGBjJgwAACAgLuUlasyzypmQfCw8OZNWsWzs7OWqGU2vYniiI7d+5k6dKlmJmZ8fHHHxMUFFTn+byyspKFCxfy448/Mnr0aN577z1cXFyAR7sHd35PGgrut99+S6tWrVi6dCn+/v61Fr75J9RqNZcvX6ZHjx74+fmxa9euuxzMpKQk5s+fz5EjR+jZsydz5szB19dXm/fZENa+4uJivvvuOxYtWsT48eNZuXLlU60f+qj4pw0tk8m01Prw8HAiIiIoLS3F1dWVwMBALb2+Jmqloiiybt06vvnmG4YMGcJHH32EjY3Nwxse3g5he6DyXxAluxMSCQS8BIFDwODZUpF/knju/D1DuEIoIbzHLdKe9lDqHfqY4MGLDGdrvfarVqvJz88nNjaW0NBQoqOjSU1NxdTUlI4dO9K/f38GDRqEk5MTgiDclX/U0BeWO6ExdG7cuMGoUaO4ePEiO3bsoEePHg3iOjR5dqmpqaxZs4Zdu3bh6OjI1KlTGTFiBIaGhsjlciIjI5k4cSK9evXi559/rhO9VqVSkZCQwH//+18OHjyIl5cX06dP19Kyantf1Go1Fy5c4NNPPyU9PZ0ZM2YwevToWjurOTk5jBw5koyMDNavX4+/v3+dRCqUSiU///wzU6dOZd26dbzxxhv1mlN0Z16s5rleuHCBkJAQDh48yIkTJzAyMqJHjx7079+fAQMG4OTkdF8HWbP7fubMGb7//nsOHTqEj48PQ4YMYdasWcjlctTqqsi0vr4+HTt25OjRo9UafqtPwqZzcLP035ERbWEAP70Evo1rxmDS1OL84YcfWLx4Mba2tixZsoQXX3xR61RUp8KryV86evQoV65cwdLSEj8/P4KCgggICMDDw+MuNcP6plLKZDKOHj3KzJkz6dy5M+vXr691ORvNOxoTE8PSpUu5fv067733Hq+//nqtnavS0lKmTp3K4cOHmT17NmPGjKl1DrDmW1Kr1aSkpDB37lwOHTpE3759+eqrr6pV4XxUqNVqbt68SZ8+fTA2Nubo0aNaemlhYSFLlixhzZo1ODs7awNZmqBTQ1k3cnJymDdvHjt37uTjjz9m9uzZz2xZhTuft+ZdP3HiBIcOHSI8PJzExESMjIzo0qULvXv3JiAggA4dOjwwuHjjxg1WrFjBsmXLMDAwwMfHhy+//JKAgIAHD2bVPMi69O+YKO+EADRzh4mfgInZ0x5Ng8Vz5+8ZgZpKktjCHsaj5l+UnKuFgDUevM0Z9Knbjo9UKuX8+fOEhYURFhamrbnn5uZGjx49CAwMpHv37hgaGmplmRtS8d3aQmPoFBcXM2nSJEJDQ1m3bh3Dhw9vMNenVquRy+XExcXx3//+l6ioKHx9fZkxYwYBAQGUlZWxf/9+3nvvPd5//33mz59fq/OkpaXx448/snPnTmxsbJg0aRIjRozAzMysXmhMarWa9PR0goODiY2NZdy4cUyePPku2uKjIDk5mWHDhiGRSNi0aVOd5emVSiVhYWGMGjWKadOmsWDBgnrbQagOmvdOpVKhUqm4efMmYWFh7N+/n8jISGQyGZ6engQEBBAUFETHjh3vuk8aB7K4uJjIyEiWLl3KqVOnUCjulR7X19fnzTffZM2aNffcIxEY/WeV0mflv4jJ9GUAvOQBFo8owCmTydi/fz/z588nLy+PKVOm8NFHH2FqanrPu69SqUhMTOTo0aMcO3aMU6dOUV5ejoeHBz179qRPnz74+PhgaWn5xCTsRVGktLSUgwcP8uGHHzJs2DBWrFhRp3NqKMTff/894eHhjB49mg8//LDGqpU3btxg3LhxpKWlsWzZMvr27Vtv6r+asgphYWF8/vnnXLlyhZEjR/Lxxx/j7OxcK8Gn27dvM3z4cC3bxcnJCZVKxaZNm1i4cKFW+fPNN9/E2tq6wVA8oeqZXbhwgY8//pjU1FSWLFnC0KFDn0pJoMeBOx3BO+fOmJgYbX3B4uJireaAv78//v7+NGnS5K45XRPY2L9/PyqVColEgp2dHWPGjOGzzz67d+dcFKvKOsyb8OzW9XsYdHThk2/Ayu553l81eO78PSMoJZfTrCOc2hnDd+LyIYgKhoIU0NEH77Hg8SJkRsLZn0HfDNqPh87v18PAawAzHBnDPhpTs6KxGspjZGSktuberVu3cHBwwNfXl969e9OlSxccHBzQ1dVFT0/vqZdFeFzQfLOlpaXMmzePDRs2MHfuXGbNmvXYnYBHhcZRKCoqIiYmhnXr1nHu3DkGDRrEBx98gI2NDb/++itffPEF3377La+//voj911QUMDmzZv5+eefUSqVjBkzhlGjRtGsWbN6V0JVq9Xk5uayevVqdu/eTVBQEB988MEj5SmJokhUVBRjx46lSZMm/Prrr7i5udXJ+FIqlSQkJDBixAg6derEL7/8Um/U2ZrgzqLepaWlxMbGEhERQWRkJNeuXcPS0lJbHysgIIAWLVqgq6urpf2dOXOGV155hZycnPv2b2BgwIoVK5g8efJdBnFmEby1Fy4XPqkrffzQEeDVNvC2DzhbPvhYuVxOQkICwcHB2vyu+fPn4+rqeheFT1N3LzQ0lL/++ovc3FysrKzw8fGhR48e9OrVi2bNmmFgYICent5TCY6JokhhYSF//PEHCxcuZO7cubz/ft0WJJVKRXZ2Nhs3bmTTpk306NGDL774AkdHx0dqn5KSwtixY5HL5axevRo/P78HUptrC6VSSUlJCVu3bmXVqlXI5XJtfc6mTZs+Mq20uLiYmTNncvDgQXbt2kWnTp2Ijo5mzpw5XLhwQetYOjo6NiiKJ1QFMKKiopg/fz4KhYLly5fTrVu3eq/h15CgCaJp6gjLZDLOnz/P8ePHiY2N5eTJkygUClxdXenevTuBgYFIpVJ2797NsWPHyMvL0/YlkUgwMzOjTZs2fPPNN9pc1P8/EWRehu/m1XnMmdIyPjt+nn1XcpAIAh6NTFkb5EtrawveCzvDrsvZ6EkkrA70YUDzxuhInuD7NWE2uLeBf0mwoL7x3Pl7RlBAGidYxSn+ixqxTpqYlTLIT4G/PgCVArrPAdcgyDxW5QA29qn62eAJ75ib4sBAvqcVwx56bEFBAcePH9caldnZ2ZiYmODl5UXnzp3p3r077u7uGBkZYWhoiL6+foNR6Hzc0Hy3JSUlrFy5khUrVjBlyhTmzZv3WIyV2kJD+cvJyeHgwYOsX78emUzG+PHjGT58OMuXL2fnzp1s27aN7t27P7AvjRjAmjVrKCgoYPDgwYwcORIvL6/HWlBZrVZz+/Ztfv/9dzZu3IinpyezZ89+oLCEWq3mzz//ZPr06fj6+rJ69WocHR3rRGVSqVRcunSJcePGYWRkxJYtW7C3t3/qz1rzjGUyGTKZjMuXLxMbG0tMTAznz5+nvLwcV1dXunXrRkBAAPb29qxdu5Z169ahUlWf12xpackff/xBUFCQ9tnuvwhfRcP1kid1dY8fAtDGDv4TAB0c7n+MUqnk8uXL/Pjjj+zatQtXV1c++OADunXrhrm5ORKJhKysLK364PHjx6moqMDT05OuXbsSEBBAq1atMDMzw8DAQFuo+mm/OxrK/n//+1/Wrl3L6tWreeWVV+rUp6bo/J49e/juu+9wcnIiODj4oUIwkZGRTJo0CXt7e1atWoWXl9djLasjiiIVFRXk5OSwceNGtm7dipWVFZMnT2bQoEHY2to+sH1hYSHLli3jp59+4vvvv6dt27YsW7aMnTt34ufnx7x582jVqpX2/Xjaz/pOFBUVsXfvXpYvX06TJk0IDg6mdevW/2rH737QOIJyuRy5XE5eXh6nTp0iNjaW+Ph4cnJytHNreXn5PfmFgiCgr6+PnZ0dkydP5uOPP666h6IIp47BtrWgrhtFolKtJq2whOlhCSTmFxExsheejczRlQgUyZVM+OskL7dwZIR7U4x0n+CcIggw5E3w9QfD53l/98Nz5+8ZQTYniWYxaexBRWWdCyKolJDyJ5z4Fpr4Vjl70utgaAkth4DeE98wEDDBlq58RDdm3fUXzU5RYmIiERERHD9+nKSkJBQKBS4uLtqItYeHB5aWlhgbG2NsbPxMJIQ/bhQVFfH7778THBzMgAEDCA4OrpHc/5OASqWirKyMq1evsm3bNrZv346dnR0vvfQS0dHRZGRksGfPHlxcXO6l+okix44dY9WqVVy4cIHOnTszduxY2rdvj6Wl5ROhCGkoi/v27WP9+vVYWFgwZ84cunbtet9r3bhxI3PmzKF///4sWrSIxo0b14lKp1arycjIYMaMGWRlZbFp06a7BD0aCjQKjBUVFZSXl5Obm0tiYiKxsbEkJCRw48YNBEGgsLCQkpIHe3CCINC8eXN2795N69at0dHRYdWJqny//PK6pbGIooji2imKQ+ajKsmFSgU6Vk6Y+8/EoIU/gm7t8s9qC3ND+O8A6O507zivX7/O1q1b2bx5MxKJhFdffZWRI0diYmJCcnIyERERHDlyhKysLPT19fH29tYWorazs8PExAQTExP09fUb3PsCVd9LTk4On3/+OREREfz222/3/a5qArVajVQqJTw8nG+++QZBEFiwYIFWFOlOiKLIn3/+yaxZs/Dx8SE4OBhXV9cnxhxRqVRIpVKSk5P59ddfiY6OxsXFhbfeeos+ffrcVwynuLhYO+e//fbbCILAxo0bMTAw0OY829jYNMj1MScnh82bN/Pbb7/RoUMH5syZg6ur67+G6lkXqFQqraNXXl5OZmYm69atY/fu3ZSWllbbThAErK2t8fPzY8WKFXh6eMDBrXBsX73U95MqlPyRmsVHxxJZ2rMd77Rzq6JuKyvpuuUo0aMCMdd/wkwrHR3o1h+CXgFj0yd33mcIz52/ZwQZHOMY/yGDcETqJ6FFLoW4FXBxPxg2gjajoOVQMPrH61CWD0fnQEFa1a6hsQ0094dO74Gucf1Rqo2wogMT6MsSRFGkoKCAuLg4IiMjiY2NJTc3FzMzM7y8vPDx8aFz587Y2tpibm6Oubk5hoaGDdKAedooKiriwIEDLFy4kPbt27No0SJcXFwa1E6oxsHPz88nKSmJDRs2EBcXR+PGjSksLKRp06Zs27btLqXHtLQ0Vq1aRXh4OM7OzowbN46OHTvSuHHjOgmm1Hb8UqmUyMhIfv75Z27dusX06dMZNmyY9u8ymYylS5fy008/8dprr/Huu+9qKWd1UeG8fv06wcHBREREsGLFCvr06dNgKL4PQmVlJRUVFUilUoqKikhOTuaPP/5g165dj9ReR0eHLl268Pvvv+Po6MhHRyQcugxldUxjEUWRivN7kF+KwLj9cERRTfGBuagVFdi9cwgd0wfvutQ3BAFWD4C+rqD3/59sQUEBhw8f5rfffiM3N5fu3bvTq1cv8vLySElJ4cSJExQUFGBjY0O7du3o3LkzL7zwAmZmZlhYWGBubt4gdvceBSqViqtXr/L+++9z8+ZNtm7diru7e536FEWRsrIy4uPjWbVqFZmZmcycOZM33nhD+3dRFFm7di1fffUVgYGBzJs3j+bNmz+VnTKFQkF+fj4nTpxg27ZtpKam4u3tzeuvv46/v79WEKe0tJTDhw8zd+5cmjZtSnFxMaWlpQwcOJA333yT5s2bN8jyCACpqamsX7+eiIgIevfuzZQpU3BycmpQ61RDgSaQtmjRIr799luKi4sfeLwgCBgZGWlZAeOM5QinjiHUcecPQCWKXC4qpf+fkTiZGRExqjeiKLLj4nWisvP5NqADAn+vcZ9EJnI6rxCpvBIzfV187BvxWktnWtuYo1df9ptEAu27wctvgKn5w4//H8SDnL+Gbz38D0GFAiVl9eb4ARiYQ8tX4EYC5CVVUUAN75NXolaCrAi6fwx6JlCUAceXVf2t2yf1MxZRBJlMzvkLF7kY9z1nzpwhOTmZiooKmjRpQseOHenSpQvOzs5YWlpiZWWlFSFoiAtZQ4KlpSWDBw/GwMCARYsW8cEHH/DZZ5/Rtm3bBkOlEQQBXV1dHBwcaNSoEU5OTlpH6vr16+Tl5fHRRx+xZs0aKioq2LRpE5s3b0atVvPWW2/Ru3dv3N3dMTExeSoBAEEQMDc3JyAgAGNjYzZs2MCSJUsoLS1l7Nix3L59m+DgYPbv38/UqVO1uX51xY0bN9iwYQPR0dHMmjWLnj17PhOOH4Curi5mZmaYmZlp6zrWJEdRpVJx6tQp5syZw4oVK8iW2qBQ1c9cYODSHX3HDuhYVD0jA9eelER9h7rsFhJjKwRJlUFaenwtskvhqMtvI+gYoOvQEqNWL2Lg0h1Bp36egyjC7QqoqAR5RSkxMTFs2bKFc+fOYWpqSpMmTUhISCAmJgZRFHF0dKRnz5506dIFJycnrKyssLKy0qo8PmvzpUQiwcXFhYULFzJp0iRmzpzJr7/+ipWVqjM10wAAIABJREFUVa2vRRAETExM6NKlCyYmJqxbt47FixdTWFjI1KlTUalULF68mF9++YVRo0YxZcoUmjdv/tRUMPX19XF0dKRv3760atWKyMhIQkJC+Oyzz+jUqROjRo2iXbt2xMTE8OWXX5Kfn09paSldu3ZlwoQJtGnThiZNmjTI4Kgoipw4cYK1a9dy8eJFhg0bxtixY7VU+Oe4F4IgcPbsWRITEykrK3vo8aIoUl5ezoULF/jPf/5DaGNrFrS0Q61W497IDIkg1JpNJhEE7IwMGOTamM2pmZzJvU17u0ZsScviE7+Wdzl+ANdLK3iztQuNTQzJL5ezKSWTNecu805bN9rb1UwwrVqo1SCv+HfWMHwCeDYsiP8RqFGipKJe+xRVkJsI5o5Qlgfp4eDgA0073X2ckRX0nAc2LUGiB/btIHUXpO2pP+ev9AZEf1nB7VPRVOYncvv2baRSKRKJhOzsbDIzMzlz5gxGRnfzt/X09GpFWdLX16+x46Orq1tretSTPF915yorK8PZ2ZmEhAQ+/PBDOnfujIODAzo6OrU6lyAI6Onp1ViGXUdHRyu6Ux1EUcTMzIygoCCsra2Jiopi165dlJSUUF5eTlZWFs7OznTq1AkXFxekUilnz56t1bnuh9o8L825mjdvzogRI9i5cyfffvst586do6CggNjYWF577TX69euHIAjcuHGjTueSSqXs3buXffv2MWLECIYMGfJUBF7qAxKJpFbflUwmY9++fdja2pLlModKuSGirjGCpPbLlyAI6JjaAH/XypKY2oJahVgp505SaWXRNfSatEPP3gtRUYrscgSlMT8iqlUYeQTWegz/RKlcRfTxkxzZt43o6GiuX79OaWkp5ubmuLm54e7uTsuWLfH29sbW1hZbW1vs7e21Qh7PMgRBQEdHh7Zt2xIcHMz06dOZO3cuK1eurHaHXyaTUVlZeU8e1P3g7u7OhAkTMDIyYs2aNWRkZKBQKDh06BBDhw5lxIgRGBkZkZube9/2ml39B+WoVoeysrJHGuOdUCqVNGnShJ49e3L27FlOnDjB6dOnady4Menp6aSmpuLs7EyPHj3w8fFBT0+P9PR0Ll26hEwmq/EYFQrFfZV3H4aKigoqH0IrFEWR9PR0LbPH1dWV8vLyR979v7OfR3GC/gmVSnVXOZlHRW3uyZ05fDVFeXn5PWO8efMmqampD73H/xxDeno6eTnZZGWYY6avw6YBnbE21K81hUsATPR0GeHRjJ8vpLPt4jVsjQ0pVVbS1ube3YSP/VriYm6CiZ4u5ZWVJN0qJia7gExpef05fwByWVXk7DlqjOfOX4OCQO1jM/fHlSNQXgAeg8HKHVJ2QvI2sHACs8Z/H6drCA7t//7Z0AKMbaH4Wv2NRVRDeZGaqwm3UVfeAsDMzAxnZ2ecnZ2xtbW9rwEvkUjuu/unURysbmKsTsFOEyGrro1cLr+vsaFUKh+4GGhk0v+J+yVqa6AxiP85Ts0CUl276s4lk8lQKBSYmpqSlJTE5cuXcXBwwMLCAj09vfueS1OaobrFUSKR3Pe5yOXyao2v6p6ZRhzkn8+sqKiIiooKlEole/fu1cpZl5eXc+vWLQ4dOnTfscHfhmNNHYvqxvggaOpESiQSFAoF169f5/Lly1y7dg25XI5SqeTIkSP8k8Ze3fN62LkUCgVXr14lIyMDfX19kpOTtX/X19evcZ6Mjo5OrYINurq6NXYyNGIEd747OTk5nDhxokb9QFVpl99//x25wxWEpn6YdHoLHYtHU3C8H0RRRJmdQPmFfagKryMqK1DmpiBWKu4xJozbj0Ji3AgdM3vESjmiUkbZmT9QZMTWq/O3ac1y1KkHuHophbKyMiwsLHB0dMTU1BR9fX3KysrIzs5GJpM98rtUG2NZMx/U1NGprKxEoVDU2NHR5DlpIJPJyM3NZfv27dy6davaoE5lZWWNDHqVSqX9Xjdt2oRaraakpITo6GjS0h5eV/dRHc07oaHu1RQqlUpbHkAqlXLjxg2kUim6urooFAoEQSA3N5f4+Pi75gS1Wq2d52uK6ub5h43zQfOCWq2mqKiI69evI5fLsbGxQSqVcubMmRrnVIqiqB1jTdtpgpg1gUqlwsDAoFa7wLVZj8zMzO7J0ayoqKg1y6NMruBKcSmTvF3qhWqpJxHwsjLD196KXZeysTUypK+zA4a691Kk29n+7RCa6ethbaiPIEBlfTtqzxjDoSHhufPXgCBBF13qL4p7MwHyz4NdG2japWpXryQHMqOg0S7wmVhVBuJOiCJUVsDty3DzbFV5iPqCkRV0edeIjn7tyD5swdGjRzEwMMDQ0FAb5fbw8KBly5a0a9cOBweHh068NTUA4G8HpKZQqVQ1isBpUBuDSK1W18rYUCqV2lwWqVTKvn37OHnyJE5OTgQFBWFvb39PG020sqbnqqysrLGBeGetOM3PN2/eZN++fSiVSry9vbG3t+fo0aNaw6Jv375YW1tri+bW5FwaSe2aQKVSoVAoHvpeyeVyDAwMyMrK0r6nJiYmuLu731ekoboxKhSKe+6jQqHg0qVLXLhwATc3N1577bV72tbmHdYoctbUoFEoFDV2XjXfyp3nys3N5fr16zXqR4O8vDzI24+RKMGow6vUNktIFEXUZbcoDvkMUZBg6NYTQd8YUaVAeSPpnuP1m/ytEino6CExd0DQ1UddUVTLEdxvUGoST0RRfiEKEDEyMkJPTw8zMzNsbGy0u715eXl3yb0/DBpnoEZD+f/5o6bt1Go1urq6tQrCGBsba41cc3NzXn31VfLz89mzZw8tWrSge/fu97yzEomkRoEMTUApNTUVqDLQDQ0Nad26NQ4O1cis3gENu6Cm16ejo1OrAvb6+voUFhYSExNDdnY2oihia2tL+/btiY+Pp6ysDEdHR/r163eXA1Yb509Dya9Nu+rek+LiYrZv387169fp0qUL/v7+2NraagNhtXFqdHV1axVEq41jC9RK7bW29/J+Y9SoJefl5dV4rW3n1IRPvJ3p1tgKE72651QKgoCZvh4jPZrxfngCf166zm8DOj2wjVyl5npJOYn5RbiYm+BkVs+sFX2D5w5gLfHc+WtA0EEfPUwQkNQ57y9tH1zYWkX1NG8KCKCsAHkJ3L4ECRuqftdqGJjYVbVRKSA7HpJ3QHl+VTvvMXW+LC30jMG1myGtOnTEvMNQXnjhBSIiIkhLS8Pa2ho3NzcKCgr466+/SE5OxtXVFU9PTzw9PXF1dW1QJQyeBajVajw9PdmwYQPXrl2jvLwcHx8fbV7L04SGwhMZGcnZs2cxMTHhrbfeYuDAgVhZWSGTyThx4gS6urrk5eXRrl07raz9o45d42jW1GHX7Cg/yNGUSqXExMSQnJxM586dGTJkCHl5eWzfvh2FQsGIESMeqbaYZmfgTkdTqVQSHx9PdnY2nTt3ZuLEibRp0+aetrWhd2nOVVNHvzY0psrKynvu/bVr1xAEgbCwsBr3p6Ojg2Wv95E0746Oic3DG1QLkcqCS1SkHMRyyHJM/cYhGJghViqQXdj/8NbKChAk9S4KE/DiMNJ1b3A5JQmVSqVVSy0qKsLBwQFPT0/c3d1xc3PD1PTR1O00RnZNv3eJRFIr9cXa7CprjOV/GvWFhYWYm5sTFRWFr68v3bt3v+sYzRgf5drkcjnnzp1jw4YNeHl58frrryOKIr/++itFRUWMHTsWLy+vB/ZV23upoYrXBCUlJSQmJhIWFoZMJsPIyAgHBwfGjx9Pt27dOHnyJFFRUUilUm7fvk2/fv3o3Llzg8mfu3HjBr/99hvl5eUMHjyYMWPG4OPj88xS1p8WdHV1sbe3r9F8LQgCzZ2d+fSVfgyXSEGtqjc+mZ6OhL7O9tibGGJnbICLhUm1xybmF7HrcjYZxWVIFZWM8mhGC8t6VOUUhKoSD0LDeOefNTx3/hoQ9DDGCEsEhDrJmEPV92DTEqxagIn9379r3AGMGlX9X9cA7pkVBJDoVgnF6JnCtViw9gR06iPAIiAR9LA2aUZXf3/atm1L27Zt2bNnDxkZGahUKmxtbfH09CQnJ0db+NTKygp3d3dcXV21/6ysrJ4Z0YunBYlEQpcuXTA0NGTjxo0cPnyYsrIyRo0ahYeHx1MxFERR1BpiR44cISYmBoAhQ4YwaNAg3N3dEQSBjz/+mLlz52qVQdPT00lLS6Nv3754eXk9VSOioKCAM2fOsG/fPvT19ZkyZQr9+/enqKgIExMTtmzZws6dO3n33XdxdXWtkbGoVqs5e/YsJ0+eRBAE3nrrLV5++eV/jQx6Wlqa9pnXFEFBQeQHzuC2flNUYt0mI1GlAFGNjlEjBANTRLkUlfTGQ40staIcVeE1BD1j9J386jSGuyBICBo0HAMvQ/Zs/ZX4+HhKS0tRKpXY2tpiZGTErVu3KC8vp6ysDDc3Ny1d3snJqcEY/fUJURQxNTUlOzubffv20aVLFzw9PWs875eWlhIXF8fevXupqKhg+vTpjBw5UptzvG7dOn799VemTZvGCy+88FTvpVKpJC0tjbCwMCIjI8nKyuLWrVtYWVkxatQo3nzzTezs7Gjfvj0dOnTg4MGDxMTEkJSUxIsvvkhQUBBOTk4PP9FjxNWrV9m4cSOhoaF07tyZ119/nVatWjUY4bFnAaWlpeTk5JCYmMjNmzcfmd0kCAJWVla8P2MGQ1vYwbF99ZpIpCMINDE1wt3SlLEtnZE8YG0TAF2JgImeDga6ErJKyrlRJsPCQO+B7R4ZggCmFlWqn89RY+gsWLDgaY+BH3/8ccHkyZOf9jCeOhSUksd5cjhF3apYgbUHOPeE5r3AsnmVo2dsA01eANdAcOld5Qjq3xG4keiAebOqNo07QFFmVZmIlkOrykTUx/dqgBnejMFOaI2RkRGtW7emTZs2yOVyUlKqcl38/Pzo2rUr7du3x9jYmMLCQlJTUzl//jyJiYlcunSJrKwsCgoKqKys1BYtfo57IQgCjRs3xsXFhdu3bxMbG8uNGzews7PDxsbmiRo6CoWCzMxMQkJC2Lx5M/Hx8bRt25YJEyYwcuRIbG1ttY6Sxgk8e/YsLi4uWFlZcfbsWdLS0igvL8fc3BwTE5MnKhEuiiLZ2dns3buXnTt3YmxszDvvvEP//v3R1dXF2NiYdu3aoVKp+PPPP7l58ybNmzevUc1FTT5ScnIyw4YNY9iwYfcIID2r0BSAP3LkCBcvXqxRW0tLS77++msyDdqQJ9NDVcfomCDRQXYpAlXJTdQVxahuZ6Iqvo7i2kl0LBzRs3VH0DdGuCOqLIpqlNfPoMiMRc++JUatByHo1R9N/+VW+gzp5omTowPl5eXcvHkTURRp3LgxJiYmGBgYoKurS1ZWFhcuXNCqJWdnZ5Ofn49cLsfExKRB1narDQRBwN7ensaNG7Nr1y6ys7Px9vbWFi1/GERRpLi4mPDwcG1plilTpjBy5EhtLmq7du0wMzMjNDSUpKQk7OzsaNq06RNX/BRFkaysLEJDQ9m2bRvx8fHo6+tr5zh/f3/eeustnJyctLm0Tk5O+Pn5YWVlxdWrV4mMjCQzMxOVSoW9vX2t89XqggsXLrBu3TrCw8MJDAxk4sSJeHp6/muCV48LKpWK3NxcUlNTiYuL48iRIxw6dIgzZ86QnZ2NVCp9aPqCIAgYGxszfvx4Zn30EfrlUoQLp+osiCKKIuL/968WRfLK5URcz2e6jzvGetUHYuxNDOnSxJqODtbIVGr+vHQdfR0JLa3MMNStp3W7QzdwdAHd5+/X/fDdd9/Jpk+fvvh+f3vu/DUgqFFxi4ukU3NKVH1BuGPnz9QeohaBW/+qHcT6cf4s6chUzGj8/+erKk7ao0cPmjRpQkZGBhERERQVFeHl5aWNZrZs2RJTU1OkUimpqamcPXuWc+fOkZaWRk5ODrdv36asrAyJRPK8FuB9YGNjg4eHB2VlZURFRZGZmalVDHzcO6iVlZXk5eVx/Phxtm/fzoEDBzAyMuLVV19l2rRpeHp63vO8BEGgTZs25ObmEhsby8svv4y3tzdpaWnExsZqDWNTU1OMjIwe+/NWqVSkp6ezfft29u7dS9OmTZk2bRo9evTQGlgao8zHxwdBENi9e7dWsdTe3v6hhlh2djabN28mNjaWPn36MHbsWCwt71OX5RmBSqWiqKiI9PR0kpKSiImJISoqirS0tBrn/Q0dOpS3336bFKkpVwsFFDUXXdRCEAQEA3MkRpaoSvNRSXMQDM0waN65inKvVqLftAMSY8u/nT9RpDL/MrK0UCSG5hh5D0HXou5lPDTQkcBwL/Cy08HN1YVmzZpp674VFBRQXl6Og4MD3bp1w9fXFxcXF8rLy8nIyODMmTOcP3+epKQkbt68ya1btygtLUUURS1V/ll2Bt3c3DA0NOS3336jsrISLy8vTExMHnhNoiiSn5/PwYMHteVi3nvvPV566SXtXKHJBdOUSDh8+DDx8fHY29vj6Oj4xIq8FxYWEh8fz9atW9mzZw+VlZX06tWLpk2bkpGRgaurK5MmTaJVq1Z3tdPUdfPy8qJjx44olUpiYmKIiYnRigLZ2Ng8kVJJarWahIQEfvjhB+Li4hg2bBiTJk2iWbNmz9fiaiCTybh27RrJycnExcVx6NAhDh06RHh4OCkpKUgkEjw8PPDw8NC+zw/K8zYwMGDQoEEEBwfTyNISobIS4o7WeZxllSpSbksx1tWlRKFkz5VsLA316d+88UPb6ggCpvq62BobcDD9BoIg0N62EY0M62kXuHt/sHGoKvj+HPfgufP3jECCLsVkcZmDiNTBuqkh1CqouA3FWWBgUeXkKcogOw7S9oLvO1X5f3VfPyRY4EhXPrxL2EazCLdo0YLAwED09fWJjIwkKiqKiooKTE1N8fb2pnv37trchqZNm2pFMU6ePMnJkydJSUnh+vXrlJSUIJVKtWpdz+mhVTA3N8fDwwOAY8eOkZqaioODA3Z2do8lMquJvCclJbFv3z7++OMPrl27xsCBA/noo4/uKlx8P+jp6eHj40NiYiIRERG8/PLLvPjii1RWVnL8+HFOnjxJSUkJBgYGmJiYPDbJ+8rKSq5cuaKlzrZv355p06bRvn37e47VKI/6+flhbm7Oli1buHTpEm5ubtjZ2VVriBcWFrJ161YOHTpEx44dGTduXL3UCHzSkMlk5Ofnk56ezrlz5wgPDyckJIQDBw4QHR3NrVu30NfXJycn55EEDARBwM7OjpUrV9K8eXOuFutwIR/K61jkXRAE9Bu3wbjNYIzbvIRB887o2bTA2PtljLwGoGNifbfjdysdWdpfCBJdjLz6o2fnUbcB/ANWRjCkJTS3rBqbo6Mj7u7uKJVKbt68iZGREfn5+VrZ9y5dumip0m5ubqhUKi5duqQtCZCUlERmZialpaUUFxcjl8vR1dV9ZncFvb29KS0tZdOmTTRq1EjrEN7vWlQqFdnZ2ezZs4fNmzdjY2PDrFmz8Pf3v2/fgiDQokUL3N3dCQ8PJzw8HHt7e5o0afJY75dMJiMlJYUDBw6wYcMG0tPT6dmzJ2+//TZGRkbs3bsXIyMjJk6cSMeOHavtRxAELCws6Nq1K23btiUrK4sDBw6QnJyMgYEB+vr62lzpx3EtlZWVnD59msWLF5OSksKECRN48803a8R4+LdDQycvLi7m+vXrpKSkEBcXx/79+wkJCeHQoUNcv34dS0tLOnfuzKhRo7Q58N7e3pSVlZGSkkJhYeF9+9fT06NTp06sWLECZ2fnql/qG0D0oSoDrw7ILZex8UIm2aUVpBWWcDznFjNf8MDC4P42Q5FcQbq0DGNdHXQlAjKVmgu3ignNysXd0pQuTawx068He0PfAHoPqSrw/vw9uy+eO3/PCCToUkYeWUQj4/4f+eNApbxKGfT0OtDVryrvkJcI5zaDpTP4TQMdvbp/X3oY40gn2jOu2mMMDAzw8fGha9euWhXIkydPoquri5GREWZmZtjb29O6dWsCAwPp168fbdu2xdDQkKysLGJiYggLC+P8+fNa46e0tBS5XI5EItE6G/+ri5KJiQktW7bE3Nyc6OhoTp8+jZ2dHXZ2dvVKnS0rKyM9PZ3Q0FB++eUXYmNjadu2LTNnzmTkyJGPrIZpZGRE27ZtOXr0KAkJCXTs2JGhQ4fi5eVFdnY2R44c4dy5c6jVaiwsLDAyMqpXZ1+hUJCSksL69euJiYkhKCiIqVOn0qJFi2rbaIwsb29vHBwc2L59O2fOnMHT0xNbW1skkrulscvLywkJCWHLli14eXkxYcIE3N3d6+0aHifUajXFxcXcvHmTq1evcurUKQ4fPszu3bvZtWsXCQkJVdHe9u0ZPnw4kyZNonv37qSmppKRkfHQ/nV0dBg/fjyvvfYahoaGFMkgOguKa64/UyuIohrV7Uwqkg8g6Blh5NUXPZvqn31tIACtbKGvK9jfoYdgbW2tzc1NSUmhSZMmtGzZknPnzhEaGkpJSQnNmjWjXbt29O3bl1deeYUXXngBExMTMjIyOHXqFOHh4SQmJpKWlkZxcTFlZWVUVFSgUqm0IivPwlwokUjw9fXl8uXL7NixAycnJ5ycnO5RY1QqlWRkZLBlyxa2b9+Ot7c3s2fPxtvb+wG9V8HJyQlfX1+io6PZv38/1tbWODg41DuTRK1Wk5OTQ0xMDN999x0HDx6kVatWfPTRR7zyyisUFBTwww8/oFAomDx5Mr169XqkZyQIAg4ODvTv35+mTZsSHx/Pnj17yMnJwcLCQhsgq89rkcvlnDp1ik8//ZT8/HzmzZvHK6+88siCRP9maMS8CgoKyM7OJjU1lYiICPbv38+OHTsICQmhuLgYDw8PXnrpJd59913eeOMN/P39tcGN27dvc+HCBeLj40lNTaWo6F6FYV1dXVq3bs3ixYvx9fWt+qUggJ4+JMVDSXGdrkOhUnGpqJTdV7IplCt4t10LWllXv35fLCphdcIlKtUiuWUyLtyWsvtyNjKVisFuTWhnY4mOpB7mHAcn6BIIBs9+ndPHhQc5f0JNVd8eB3x9fcV/1sX6X8VNEokimGT+fGK7fyolFKRCxGdQll+l+mnUqKrQu++UqpzB+hB7MaMxXfmQLnzwSC1EUSQsLIy1a9eSmpqKr68vI0aMoEOHDlhZWd2TQC6Xy8nMzCQ+Pp6TJ08SHx/P7du3sba2xtvbm44dO+Lr64uFhQUWFhaYmZk9M8ZPfUMul3Ps2DG+++47SktLee+99wgMDHxkp6w6KBQKCgoKOHnyJDt27CApKYmWLVsyZswY+vbtW+vduePHj/PBBx/Qpk0bpk2bRuvWrZHJZISGhvL777+Tnp6On58fI0aMwNvbG2tr6zrnA1ZUVJCUlMTq1au5fPkyo0ePZsyYMVhZWdWon4iICGbOnImVlRVffvkl7du31+5aKJVKoqOj+frrr7Gzs2P69On4+dWjkMhjgFKpRCqVIpVKKSgoIDExkcTERJKSksjLy8PExAQvLy86depE165d8fDwwMTERNtWQ8ebPHnyQ4UMGjduTEREBG5ubujo6JAthfF7Ie3Wk7hSUFcUURwaDIChW090zP+mOglGlug2ckLQqVsUW0eA19vCxA7Q7D6fX2FhISEhIaxevRorKyvGjh3LqVOnOHjwIFZWVkyePJkePXrcQ1XMzs7m9OnTxMTEEBcXR35+PhYWFri6utKqVSt8fHxwdnbG3Nwcc3Pzu8otNFRo8vYyMzP54osv6Nmzp5baKpfLuXTpEhs3biQiIoKgoCDee++9RyrjcCdycnKYNWsWp0+fZtq0abz88ss0bty4Xu6Nhga9detWdu/ejZOTE+PHj2fQoEGYmppy5coVvvjiC7Kzs5k6dSqDBg2qdVBOKpWyadMmfvnlFwRBYPTo0QQGBuLi4oKJiUmdnEBN0fu4uDg++ugjDAwMWL58Ob6+vv/T+X0qlYqKigqkUql2l+/UqVNaWrZSqcTNzY3OnTvTsWNHunTpgqmp6V02iCiKlJSUkJWVxV9//cX+/fu1ys6XLl2ipKREq76so6ODq6sr//nPfxg1atS9Awr5AyL2QQ3LRNQFueUy5kSd42pRGeWVKkz1dfFoZMpw92Z0amxVP7t+Egn0GAh9h1cpfj7HfeHu7l546dKl+xosz52/BoYy8jnLrxzhkzqXe2hosMaT4WyhMffS5R4EmUzGrl27WLduHYWFhQwaNIjBgwfj4eGhdeD+CbVaTVlZGQkJCURERHD06FGysrLQ19fnhRdeoFOnTnTr1g1bW1tMTU21ggr/S46gSqXi7NmzLFu2jLS0NKZNm8bQoUNp1KhRjftSq9VIpVIuXrzIli1bCAsLw9ramtdee63Wff4TW7duJTg4mH79+jFx4kStQ5Cbm/t/7J13WFTX9/U/AwqioAgWkN7tBVCxUexiLyGiYiK22FskGo01JmoMNuwlFrD3CghWQFFAQLAD0kQElM7Q5r5/8J35aexK0bys5+GJUebec+7ce+5eZ++9FqdPn8bd3Z2srCz69OmDo6Mj2traH+wNehdyc3MJDAzE1dWVzMxMJkyYQL9+/T5bZTQsLIzx48dTXFzMihUraNOmDUpKSkRGRjJ37lwEQcDFxQVra+uvqkdG+n7Iz88nOztbZjQeEBBAYGAgoaGhFBcXo6OjQ/v27bG2tpaJULw6D4lEQm5uLlFRUZw+fZqDBw+Snp4u8y97GxQUFJg3bx5z586VBZQC8OMJCEjgi/r+PhYFCbfJ8F72Vv+/aqZdqGW/5AttJ0BOBH92BnsTqPmOOD8vLw8/Pz+WLl2KRCJh0aJFKCoqsn79eq5fv46VlRUzZ87ExMQENTW1N0r8pCWG/v7+spJvsVhMgwYNaNKkCZaWlrRs2ZJ69eqhpKRE9erV31lWWdGIiYlh/PjxCILAwoULad26NYIgEB4ezubNm4mIiMDR0ZExY8a+pkpKAAAgAElEQVSgoqLyWefIyMhg3rx5eHp64uTkhKOjIwYGBp9FbKQZoOfPn3PmzBnWrVuHSCRi9OjRODs7U6tWLUQiEc+fP2fBggXcvn2bqVOnMmDAANmmyZfgyZMnrFu3jjNnzqClpcWYMWNo164dmpqan/UdC4JAbm4uV69eZcqUKejo6LBlyxaMjY2/qrWrPCD9bvPy8sjJySEtLY3IyEiuX7/OnTt3ePz4McrKyjRu3BhbW1tsbW1p0qQJ8PbqI7FYTGpqKr6+vri7u/Ps2TO6dOnCyJEjKSoq4sCBA/j5+RESEoIgCGhrazNx4kR++eWXtw8w5j5sWgrFn+5P/FVDJAfj5oJhY/jKN6wqEpXk7xuCgEAMFzmGE9kkVfRwSg1VqIYBnRnGaUR83gvi6dOn7Nq1i4MHDyIvL4+joyMDBw5ES0vrgy8xQRB4+PAhvr6+XLt2jYCAAMRiMaamprRr147OnTvTqFEjVFRUqFatGoqKim+U5/0XIQgCMTExuLq6cvbsWUaNGsW0adM+2k9PugOclJTE4cOHOXjwIHJycowYMYIhQ4agra1dquN1c3Nj69atODo6MnLkSDQ1NZGTk0MQBJ48eYK7uzv79+9HVVWVsWPH0qdPH2rVqvVJMuM5OTl4eXmxatUqatWqxc8//4y1tfUX72jHxsYyevRo4uPjWblyJY0aNWLevHkkJiby22+/yfpdKxpSf8SCggJZUHPnzh0uX76Mn58fjx8/pmbNmlhaWmJnZ0f37t3R1dV9a2ZEamKfnJzM5cuX2b17NwkJCfTr14927doxevRoMjMz35oB1NLSIiQk5DUVWIDtIbAzFJ5mfakm8teBetVhcx8w13h/hUVhYSERERHMnTuXuLg4li9fjq2tLZcuXeKPP/4gLi4OR0dHpk6dKiNx73qGU1NTCQ8P59q1a1y9epWHDx+ioKCAqakp5ubmtG3bVubLpqioSLVq1cpVWfdDuH37NpMmTUJfX58pU6aQmZmJm5sbqamp/PTTTwwdOvSLy9gLCgpYuXIlu3fvpmvXrowbN44mTZp8dB+gIAiyTbHw8HCWLVtGaGgovXr1YvHixa9ZdGRnZ7N8+XJOnjzJpEmTcHBw+OQKgw/h5s2buLq6cuPGDVq1asWYMWNo3bo1qqqqnzSnnJwczpw5w/Tp02nTpg07duz4/6q/T7o2SjfEpNVGfn5+hIaGIhaL0dHRwcrKis6dO2Nra0vNmjU/eMysrCyuX7/Opk2biIiIoG3btowfPx4rKytZxUxGRgYHDhxg1qxZKCsrM2zYMFauXPnurLREAiumQ+pz/hur5f+gVhdmroBq1Sv7/d6DSvL3jSGNR/izktvsQuC/sGMjQhUDOjEHC8Z+8dHCw8PZunUr58+fR1dXF2dnZ3r37o2KispHB+hpaWkEBATg7e3NhQsXSE5Opk6dOrRt2xZbW1vat2+PpqYmioqKVK1atdyU3yoKycnJbNmyhc2bN+Po6MjChQtRUVF575yLiorIzs7m7NmzrFu3jufPnzNw4EDGjh37VgXP0kBRURGLFy/m9OnTjBkzhuHDh6OqqiobZ0FBAXfv3mX9+vWcPXuW5s2bM3fuXFq3bk316tXfOyZBEMjLy2Pv3r24urpiaWmJi4sLzZo1K7W5pKSkMG7cOIKDg6lbty7Z2dn88ccf9OrVq0K9CwVBoKioiIKCAsRiscxn89KlS1y9epXc3FyMjIywsbGhe/fu2NjYfHDDpaioiKysLAICAti5cychISF06tSJqVOn0qxZM8LDw5k5cybPnj3j8ePHr322atWqrFu3jrFjx75BOh6mwXQviEwpk0tRrqjyP5XPya3fXvL5b0gkEhISEpgzZw6XL19m6dKlODo6IggCbm5urF27FlVVVWbMmMHgwYNRUVH54NpVWFhIYmKiTGLe39+f58+fo6amRps2bbCysqJLly4yARTpD1Rs7/T58+eZPXs2KioqPH/+HENDQ2bNmkW3bt1KjagKgsCePXtYtWoVurq6zJo1iw4dOrzRa/jvz8D/qTmuWrWKgwcPYmFhwR9//EHbtm1f+2xBQQEbNmxg48aNjBs3jpEjR1K/fv1SGf+/UVRUhKenJ+vWrePBgwfY2tri7OyMhYUFSkpK77xu0jllZWWxa9cu5s+fz+DBg9m4ceNXmyEuLUjXxsLCQgoLC0lKSuL27dv4+fnh7+9PfHw8ampqmJub06lTJ2xsbGjSpMlH25GIxWJiYmJYv349p06domHDhkybNu2dpDEiIoK1a9dSWFjIhg0bPpwdvnAMfI5D0buVQr8pyFWBrgOgc/+SvsZKvBOV5O8bQxH5ROPDYYZQiLiih/PFECGPDh1w5DhKlM5uZlFRETdv3mTTpk1cvnwZS0tLJkyYgI2NDVWrVv2kYF1a/ujj44O3tzfh4eEIgkDjxo1p3749dnZ2tGjRAlVVVeTl5WV9gv+1F15mZiaHDh1i3rx52NnZsXHjRmrXrv3GPCUSCQUFBQQHB/P7778TFBRE165dmTFjBi1atChzz8WsrCzmzp2Lv78/EydOZMSIEW8EILm5ufj5+bFkyRIiIyMZOHAgixYtkvXu/HtOUuK3bNky/vnnHwYMGMDPP/+MoaFhqY8/PT0de3t7QkJCcHZ2ZsaMGRgZGZVryZQgCLIMX1FRERkZGYSFheHj48Ply5e5e/cu1apVo3Xr1vTs2RMbGxtatWr1UceWSCQUFhYSGhrK5s2b8fHxoWHDhkycOFGm1nr9+nVmzZqFnJwcc+fOZdSoUeTn51NUVIRIJMLIyIg7d+68sxR7uhd4R0HOF6p+VjTk5WCjPdjogtJHJpalPUErV65k7dq1TJ8+nXnz5qGoqMjTp09ZvHgx+/fvx8LCgoULF2JpaSkrf/6YNUssFvPo0SOuXLmCt7c3fn5+FBYW0qRJEzp27IiNjQ3W1tYoKipW2HooDZonT57M8ePHadSoEQsWLKBbt25l8hxduHCBJUuWUFRUxMyZM+nTp89bSY/0mXr58iX79+9nxYoVVK1aFRcXF8aPH/9GNUlxcTEnTpxg5syZDB8+nEmTJqGlpVXq4/83srKyOHbsGJs3byYlJYVBgwYxcuRITE1NqVKlymvXULpWZGZm8scff+Dm5sbkyZNZvnz5f/I9CCVrWHFxMcXFxeTm5srI3qVLl4iMjASgadOmdOrUCVtbWywsLD6pX156n6Snp7NhwwY2bdqEuro6U6ZM4bvvvkNdXf2dny0oKCAjIwNBEKhXr96HT5aVAStmQl72R4/vq4aCIri4gqp6ZdbvA6gkf98gXhDFZRYSwUEk33D2T4SI2hjSlmm0ZUqpHz87O5uLFy+yZs0aIiMj6du3Lz///DMmJiafXbaZlJTEzZs38fHxwdfXlydPnqCmpkbr1q3p1q0bNjY2suNLz/FfeQHm5+dz+fJlnJ2dMTIy4uDBg2hoaCASiWRlTPHx8fz+++8cPHgQc3NzFixYQLt27co1c/X06VPmzZvHvXv3mDZtGg4ODm/sWguCQHZ2Nh4eHvz+++8UFxfj4uLChAkTZDv30nnl5uYydepUTp06xdy5cxk5ciR16nxZL9fbIJFI2LRpE0uWLMHU1JQHDx7g6OjI5MmTy5wASoM4iUQiE8e4dOkSPj4+3Lp1i5ycHPT09GQqujY2Np/UMyU9dlxcHJs3b5bdOxMnTmTAgAGoqKiQlZWFl5cX8+bNQ1dXl23btqGhocG2bduIiIjgn3/+obi4mOPHj9OvX793PlfXYuEPP7ibWlpXp/whL4L2uvCHHeh+hs6SWCxmw4YNzJ8/H0dHR9zc3FBSKhE/CAoKYs6cOQQGBtK/f3/mzJmDiYnJJ6sdS4nmjRs3ZJYdsbGx1K5dG2tra2xsbOjVqxfa2trIy8u/tuaW1ZoofV4XLVrEwYMHqVOnDunp6YwYMYIJEybI1qvSxp07d1i0aBH37t1jwoQJjBw5UlYe/ypB8vLyYunSpSQmJjJu3Dh+/fXXtxIDQRAICAiQiWEtWLAAHR2dUh/3+/Ds2TPc3d3ZuXMnBQUF/PDDD4waNUpWTi8dZ3JyMtOnT+f8+fO4uroyZsyYch1nWUIaA7+6PiYnJ3Px4kW8vb3x9fXl5cuXaGhoYG1tTY8ePbC2tqZBgwafnGGWnqOoqIhjx44xf/58MjMzmTRpEhMmTKBOnTpl8w447Q4B3lBQTjLJZQX5KtChO/QZXvLnSrwXleTvG0QxhSRwg330Jp+sih7OZ0OOqhjTg0HspRplZ1j9/Plzjh07xurVq8nMzGTcuHHMnDlTVjbxucFAfn4+Dx8+5OLFi3h5eREYGIhYLMbExITOnTtjZ2eHra3ta8Ii3zoRLCoq4vbt2zg4OKCgoMDp06cxMTEhNzcXNzc3li9fjrq6OvPmzcPBwaFURAk+Bw8fPmTx4sUkJSUxa9Ys7O3t33rtBUHg5cuXrF69mlWrVtG4cWPWrl1L+/btEYlEvHjxgmHDhhEaGoqbmxv29vZlMidBEPD29mbEiBGMGTOGGTNmcPr0aVasWEGLFi345ZdfsLCwAErnHno1qIGSTQ0/Pz+8vLy4evUq8fHxqKur07ZtW3r06IGdnR2mpqafJQABJZnj3bt3s2HDBiQSCePHj8fR0REtLS2ZSfG+fftwdXXF2tqadevWyfqapMIJo0ePJjY2litXrry/pFQCLj7g+bjE86/i32KfDhGwtQ90+oSs379RVFTEqVOn+OGHH7CysuLQoUOoqpass4IgcPjwYRYuXEhqaipjxozhp59+khlvf849Ju0R9vHx4ezZs/j4+JCfn0/Tpk2xsbHBzs6OTp06yUqxS3tNFASBFy9eMHHiRPz9/Zk/fz4DBw5k+/btHDhwgO+++44pU6a8Vgpemnj27BmrVq3i5MmTDBw4kBkzZqChoUFeXh4hISGsWLGCS5cu0aNHD5YtW0bDhg3fOY+YmBh69uyJgYEBW7duRVdXt8LeHVFRUezatYs9e/ZQo0YNxo8fj7OzM9WqVePRo0eMGzeOx48fs3v3bnr06FEhYyxNvBr3SslYWFiYzHcvNDQURUVFWrduTY8ePejbty/GxsafXdXy6locFBTEzJkzCQwM5Pvvv2fZsmWyzZMyQ04WuP4C6S/4NlfL/6GaEvyyBlRqVWb9PgKV5O8bRS6p3GITl1jIt/rAatEaO5ZgTM8yP5cgCDx//pxdu3bx999/o6qqyq+//oqTk1OpiLdIA4/g4GDZrmBYWBjKysq0b98ee3t7mQDNq/gWyaA0gzNo0CCSkpKYPXs2bm5uJCcnM2PGDGbPnv3RojBliZs3b/Lnn3+Sm5vLggULZITubZBIJDx48IDp06dz4cIFWZnV2LFjycnJwcPDAwsLizIRXREEgbCwMHr16oWdnR1r166lbt26AHh6erJw4UIUFRWZM2cOPXr0+KLgXAqxWCzz3Tt37hz37t2jSpUqtGjRAhsbG7p164a5ufkHxQg+dD5BEDhx4gRLliwhISEBR0dHJk6cKOv7FASB6OhoNm7cyJEjRxg+fDgLFix4w/ZDKg6TmJiIgYHBB+cfngy/X4PAxM8efoVBXgS9jGGRDdT9wn0GiUTCrVu36N+/P3Xr1uX06dMyo2eRSERubi7btm3D1dUVOTk5Jk2ahKOjIw0aNJD9zuciNzdXlhU8c+YMUVFR1KhRg9atW2Nra0u3bt1o0qTJG1UBX0I8R4wYQXJyMmvXrqVz585Ur16d7Oxs/vzzT06dOsXIkSOZMmVKmak35+TksH37djZv3kzTpk0ZMmQIvr6+HDlyhCZNmjB37lzs7e3fO48XL17QtWtX5OTkOHz4MPr6+hWulCmRSLh37x5btmxh//791K9fny5duuDl5YW8vDz79u2jRYsWFTrGz8W/41xprCD13Tt79izp6ekYGhrSpUsX7O3t6dq162erRb/tvImJiSxZsoQdO3bQqVMnXF1dadmyZfl97zcvw8ndIM4tn/OVNkQiGDIW2tqVqH1W4oOoJH/fKAQEMkngCENJ5BYSvqUGFzlq0gBzxmDDb5+t8PkpkN7LxcXFPHnyhOXLl7N3714sLS1xdXWlbdu2pXJ8KYqLi0lISMDb25vz58/j4+NDdnY2jRs3pm/fvvTu3Zv27dt/k6qh0qA+ODiYXr16kZaWRocOHdi7dy96enpfTZZTEAR8fHxYuXIlCgoKrFixgqZNm7739wFOnz7N+PHjSU5ORkNDA19fX5mhdlnMKSkpCWtra5npe/369WXnke4GL1q0iMTERKZPn86wYcM+i4TGxMTg6+sr25x48eIFBgYGdOnShc6dO8vG8Oocv2S+ISEhsv7L/v3788svv9CoUSOZ+pxIJOLmzZv89ddfREREMH36dMaOHfvOUmnp9/NxyoOwJRjc70BiJt+UMU6NqnDcAYzVSvr+vhRStdvevXuTkZHBsWPHsLS0RF5eXnZN4+PjcXNzw93dHQ0NDaZNm0a/fv2+yIbl32tifHw8/v7+eHl54ePjw7Nnz9DS0sLKygpbW1usra1p2LDhZ2U5AgMDcXR0RE1Nja1bt9KsWTNZ/64gCKSlpfHXX3/h6emJs7MzkydPLpNsijRTtH//fn7//Xeio6MxMTFh5syZ/PDDDx9UzhSLxfTq1YvY2FjOnTv3RS0KpQnpd1lYWEhwcDBLly7Fy8sLLS0t3Nzc6Nu3b4WP8XMhbQEICQnh4sWLeHp6EhQUhLy8PG3btqVPnz706dOHxo0bv/HZLyV/OTk5bN68mSVLlqCqqsrSpUtxcnIq/3YRQYBdf8OjCMjPK7/zlgbkq4C+Gfw0v4QEfqP3YXmjkvx9oxAQECjmOZHsxpY8MvgWMoAiRFRFieY40ZXlKFILEeUrBgAlL7Fbt27h4uLCrVu3cHR05K+//npDOv5LzyP9c25uLv7+/pw9e5aTJ08SHx9PnTp1ZH0xffr0Kbua/lKEtOdh2bJlbNu2jcaNG6Ojo8O5c+dYv349Y8eO/arMoCUSCWfOnGHFihVoamqydu3a94omCILAyZMnGT58OBoaGiQlJaGjo8OyZcuwt7cv9d7FvLw8unbtyosXL/D09ERHR+eNF780O7ZixQouX77MyJEjmTp16nuzclLRgBs3bshK8EJCQlBSUqJjx4706tWLnj17oq+v/0ZA+qX3f1JSEsuWLWPnzp20atWKpUuXYmVlJes5kwbk58+fZ+XKleTl5eHi4sKgQYNK5fxSZObDSn84cg/ERd/C6liCv7tBH1NQlC+dOEa6Fr148QIHBweCgoLYuXMnffv2lW0iSDd0wsLCWLt2LefPn8fMzIypU6fSu3dv2XdXGuMQBIH8/Hzu37/PpUuXOH/+PMHBwYjFYgwNDbG2tpZtRnyMaMWxY8cYO3Ys7dq1Y+PGjWhra7/1GUpISGD16tVcvHhRltUvbSQkJLB7927++ecfXr58ibKyMgoKCsyZMwdnZ+cPqoD++OOPnDp1inPnztG6dWuZYM7XgsTERHbu3Mn69etl2fubN2/St29fVqxYgYGBQUUP8aNQWFhIbGysrGXj2rVrpKeno6WlRZcuXejVqxddunR5rYKlNL+H3NxcTpw4wfz580lLS2PGjBm4uLi89pyVO/nLzoAtyyA5ocQG4luAnAiUVGD2X6D8v97Zr+h5+ZpRSf6+YZTQv3we4clhvvsmxF/kkKcJ32PDAtQxLVfi9yqkwU5BQQFnzpzh559/JicnBxcXl1IvC3o16JFIJLJg/ty5c3h6euLv709xcTEtW7ake/fu9OzZk+bNm1dYv9zbIBV38PDwYOnSpTLj8QkTJiAvL8+SJUtYsWIFM2bMYNGiRV+NxLe0X+zUqVP8+eefNGvWjHXr1r2VOEkkEjZs2MDPP//MsGHDWL9+PYmJicybN4/z58/TsWNHFi9eTKtWrb5YtVR6/33//fdcvnwZHx8fmjZt+s5dfmkp0ubNm/Hw8KBLly789ttvsvI8KMk2JyUl4ePjw/nz5/H19SUjIwM9PT169epFr1696NixI0pKSjJBIii9HsKioiK2bNnCkiVLqFatGnPmzGHEiBEoKyu/FowXFhbyzz//sGHDBoyNjZk9ezZt2rQp9Y0PQYBHL2BNIJx9VKqHLhPIAUObwvxOUL1q6ccwUtXaiRMncvjwYZYuXcq4ceNQVlaW/Y5EIqGoqAg/Pz82btyIn58fFhYWTJkypdRtEl4V0UhPT+fOnTtcunQJX19fQkNDUVBQoFWrVjID7A4dOryxseTm5oaLiwtOTk4sX75c1tP4rmfo0aNHrFu3jhs3bjBv3jwGDhxYKvPJysriyJEjbNy4kefPn+Pg4MDo0aORk5Nj48aNHD16FGdnZ+bNm/fWrL0gCPz222/8/fffHDp0iJ49e351FkKRkZGsXr2aCxcuMGbMGH7++WeZPcSiRYtISEhg7NixLFiw4IvKxcsKKSkpBAYG4u3tzeXLl2Um6+bm5nTv3p3OnTvTuHHjMhVry83N5dq1ayxdupTQ0FAGDBjAkiVL0NPTq/gMryDAk4dwYCOkJZf8/9cMkQjk5WHsr2DU+P/+rhIfhUry941DQKAIMREc4CSjEV7Z3/5aHgPpiESIaIoDHfgFDVqUS7nnh/CqrPLq1atZv349hoaG/Pnnn3Tr1q3MslivykWnpqbi7++Pj48PPj4+pKSkUL9+fdq0aSMTjjEwMKgwI+XMzEw8PT1Zvnw5cXFxjBw5EhcXF9TV1WXXRxrQu7i4MHjwYFatWvVWK4iKgLSs59ixYyxfvpyuXbvi6uoq8yOTEpfly5ezbNkyZs6cyYIFC1BUVJRtEFy9epWlS5fy6NEjhgwZwuTJkzExMfns70QQBObOncu6des4fPgw3bt3/2CwJwgC6enp7N+/n40bN9KoUSPmzJlDdnY2V65c4cKFC9y+fRtFRUUsLS3p1KkT9vb2slK6V2XaS/N7EQSBS5cuMXv2bKKiopgwYQLTp09HTU3tjTllZ2ezatUqDhw4QLdu3Zg8eTLGxsZldm9LBLiVCJuD4eKTMjlFqUBeBG20YZM9qCqWXQwjzbotX76cNWvW4OjoyOLFi1+reJASsqysLHx8fNi0aRP379+nZ8+eTJ8+nWbNmpXJuKRrYkFBAc+fP5d5C166dInk5GTq1auHtbU1tra2dO/enb///putW7fy22+/MXnyZNlm2fvubYlEwu3bt3F1dSUqKoq//vqLTp06ffa4i4qK8Pb2ZvXq1dy/f5+uXbsyduxYLCwsZOtLcnIy+/fvZ/Xq1XTt2pW1a9e+Ro4EQWDv3r2MHTuWNWvWMHr06I82Vi8PSCQSrl69ysqVK0lISGDatGk4OTnJ5ldcXExGRgZ79uyRldhL7SsqMnMpFou5c+cOvr6+eHl5ERERgUQiwdjYmE6dOtGlSxcsLCyoWbNmmduSFBQUcOfOHdatW8eZM2ewsLBg/vz5tG3b9pPtp8oUEgncD4VTeyAlqaJH837Iy8OwydDcCr6W6/cNoZL8/QdQQgDzCGEH55lOCd2q+O/uVYiQowkOtGMmmrRCjq+nNFB6n+fl5XHv3j3+/PNPfHx86NatG0uWLMHExKRMSxmlu+2FhYWIxWIiIiK4evUqAQEBREREkJ+fj4mJCdbW1nTp0gVLS0vZDndZIi8vj+DgYNauXcvVq1fp2LEjc+bMoUmTJlSrVu2NF1Z+fj7nzp1jypQptGzZknXr1qGnp1dhpPVVCIJAamoqBw8eZM2aNTg7O/Prr7/KJNhnzpwpI4dOTk4oKSm9FgQUFhaSlZXFoUOH2LRpE0VFRYwaNYqhQ4eira39SWORSCR4eHgwbtw4Vq9ezahRo95rDP0q8vLyuHPnDu7u7hw5coTc3FyqVKmCjo4O7dq1o3379tjY2FCrVi2qVq2KgoJC2REriYSoqCj++OMPjh49SseOHVm2bBlmZmavlXhKkZyczMKFC7l48SLDhw/nxx9/LHslO0rUPwPiS3oA/eLL9FSfBXkRmKrDP/2gvnLJpl1ZxstSHzwPDw8WL15M27Zt+eOPPzAyMnrtu5BmzZOTk/Hy8mLbtm0kJyczePBgZs2a9VrWubTHJ92QKSgoQCwWEx0dzbVr17h06RIBAQEyEmtjY8OUKVPo0qXLRz9DUh/Y5cuXy7zUPofQBgUF8ddff+Hn54e5uTk//fQT7du3R0VF5TXSI81senl58dtvv2FiYsK2bdvQ1tZGIpHg7+9Pv379GDNmjCxr/rUQv4KCAo4ePcq6detQVlbm559/xtbW9rXKB+n7UywW8/TpU9avX8+uXbto2bIlS5cupUOHDuVGbuLi4vDz88PHx4erV6+SmppKvXr1aNOmDR06dKBdu3bo6emhqKhI1apVyzy7WlxczIMHD9i+fTvHjh1DQ0OD8ePHM2jQIGrUqPFVtUjIUFwEEcHgdQiSE/naYklElBi49/8RLG3ga7yG3wAqyd9/BAICheRwlyOcZjwSihEoruhhIYccIuRpxRha8xN1aIQ8n6ldXg4oKioiMzMTX19fVq5cSWpqKo6OjkyYMOGzvHs+FdKAKz8/n/z8fJ49e0ZYWBgBAQHcvHmT+Ph41NTUMDc3l4kkmJiYlOoLrKioiPDwcLZt24a3tzeGhob89NNP2NnZoaKiItvxfRvEYjFXr15l+vTp1KlTB1dXV5o3b14mKpmfColEQmJiIrt372b37t0sXLgQGxsbJk+eTEhICGvWrKFXr17v7OuTls3Fxsaye/duTp8+jbq6Os7OzvTt2/e95ruvjuHKlSs4ODjwww8/sHjxYqpXr/7e7+/p06fcvHkTPz8/bty4QXR0NIqKijIPs4KCAn777TeGDBmCoqIiioqKZRpsSYPZLVu2sHnzZlRVVXFxcaFnz57UqlXrrbv9MTExzJ07l7t37/LTTz8xePBg6tSpU24bAwXFEAvhMUsAACAASURBVPwUtt0G35hyOeVHQU4ELerDmh4lfn5lTfxeRW5uLj4+PsybN4+6devy+++/Y2lp+cazKpFIEIvFxMXFcfr0aXbt2kWVKlVwdnZmzJgxZV6eLiWCYrGYJ0+eMGzYMJ48eYKtrS33798nPT2devXqYWVlRfv27bGzs0NHR+e961R+fj7+/v4sWbIEJSUltm7d+tE+evHx8axbt44jR47Ignk7Ozs0NDTeSUAlEgk5OTkEBgbi4uKCnJwcmzZtQllZmT59+tC0aVP27NnzVagkS5GZmcmOHTvYs2cPTZo0Ydq0aTRv3vydJe/S7G12djZhYWEsX76coKAgevTowW+//fbG5sKXQlq1ExISgq+vL35+foSGhiIIAk2bNqV9+/ZYW1tjZGSEiooK1apVk22Glcc1jo2N5eDBg+zfv5/i4mIcHBxwcnKibt26b2wufnUoLICou+B9FOIffz09gHJyUK06DBwFTVuXmLpX4rNQSf7+Q5ASwGh8OMcUsnlWoX2AIuRQQh0rptIUR2qh+1UTv1eRm5tLUlIS+/fvx8PDg5o1a/Ljjz8yZMgQmQx/eaCoqIj8/Hxyc3PJzMwkJiaGmzdvcvPmTe7fv09hYSG6urq0b99e1hfzJaIkMTEx7Nu3j6NHj1K1alWGDBnCkCFDqF+//kcfVywWExISgouLCxKJhMWLF3/xuEoLxcXFREVF4erqyunTp9HV1SU9PZ2///4bW1vbjxqjtEw4JCSEvXv3EhQURKNGjRg1ahTdunV7Z3AktZMYPHgwhoaG7Nq1C3V19TeCALFYzN27d/H39+fixYs8ePCAgoICtLS0aNGiBe3ataN58+aoqKgQGxvL5s2buX37NtOmTWP8+PGlcp3ehZycHLy9vfn7779JTk5m2LBhjBw5Eg0NjXeS2ODgYH799VcyMzOZPn063bp1Q1VVtdxLnfKL4F4q7AmHE/dLWloqMqQRAZ0NYKEN6NQsX+InRV5eHrdu3WLhwoXk5+cze/ZsunXr9lofoBTFxcVkZmby6NEjPDw8OHXqFIaGhkyfPp0+ffqUeQbl3r17/PTTT6SkpLBx40YaN26MWCwmJiaGW7duERgYSGhoKCKRCBMTE1q3bk3btm2xtLSkXr16r91vUhGuy5cvs2jRIgwMDNiyZct71U3z8vLYtWsXW7Zsobi4GCcnJ3r37o2enh7Vq1f/4P0szbjeuXOHuXPnEhsbi4qKCoqKihw8eBBdXV2g4lWSoWTDad26dXh6etK5c2fGjBmDsbHxR23iSTcwU1JS8PHxwc3NjczMTL777jsmTpyIhobGZz/7EomEtLQ0rl27xuXLl7l27RqpqamoqanRunVr2rVrR+vWralduzbKyspUr1693MsqU1NTOXHiBB4eHrx48YLu3bszdOhQDA0NqVWr1tdT4vkhFBZA4hO4ehYehEG+uGL7AOWrQl3NEhN3o0aVxO8LUUn+/mOQloAmc4crLOYRnogQIZRjmCNCDgEJOnSgLVPRx4bqqH9VpZ4fA6lE+N27d9m3bx/+/v6YmZnh7OxMx44dy72pXdp/lpWVRWZmJmlpady7d4+bN29y584dEhISqFu3Lq1ataJTp0507tz5NduA9yEpKYnjx49z9OhRcnJy6NKlCwMGDMDQ0JDatWt/8guroKCAiIgIFi9ezLNnz5g6dSr29vZfJB1fWsjMzOT48eOMHz8eZWVlli9fzvDhwz9Z0TAvL4/k5GQuX77MkSNHSExMpFOnTjg5OWFpafnadZdIJDx79owffviBjIwM3N3dMTExAUqCvcTERIKCgmTZvdTUVFRVVTE0NKRly5aYm5ujra2NiooKNWvWlBGtgoIC7t+/z86dOzl//jyjR49m1qxZpV5OlJOTw61bt9i8eTNhYWG0atWKn376iUaNGlGnTp133mPe3t4sWbIEZWVlpk+fLiuLq6gAt6AY4jPg3GPYGQrpeeVPAOVFJT+jWoFTc9BSqRjiJ0V+fj537tyR9fSOHj2aQYMGvXWTS5qFS05O5s6dO+zdu5ebN2/SoUMHZs2aRfPmzUt9fAUFBQQEBODi4oJIJMLV1RULCwuZKFd+fj7Z2dlkZGSQmppKZGQkt2/f5vbt26SkpFCzZk0aNWqEpaUlbdq0oXHjxqioqCAIAhkZGZw/f54lS5bQrVs3Vq1a9RrBkcZAvr6+rF69mqioKDp37syIESMwNTWldu3an5TNkq7hISEh9O3bl8zMTMaNG8e6devKX97/Hbh//z5///03oaGhDBw4kKFDh34wk/ouZGVlERcXx9GjRzly5Ag1a9bE0dERBweH964bUkgJ87179/D398ff35+7d++Sn5+PgYEBLVq0wNraGn19fWrWrEmtWrWoUaNGhYin5ObmcuHCBdzd3YmOjqZNmzYMGDCAFi1aoK6u/lnXr8JRVAgvUyE0AIKuQuqzkoWqPLmBSASKSiWZPuteUE+rpOyzEl+ESvL3H4TUBuIFj4nGh+usJp3YcioDlaMG6pgzFjP6UZfGKKBcYaqepYGCggKePn3KjRs3OHLkCPHx8VhaWjJs2DAsLCzeMKQuLxQXF5OTk8PLly9JS0sjLi6OoKAgIiMjefz4MUpKSpiZmdG+fXssLCxo2bLlG0ICOTk5XLhwgf379xMTE4O5uTl9+/alVatW1KtX74tIRFFREffv32f16tXcvXuX77//HgcHhzLrFfoYZGRkcOHCBVxdXSksLEQQBOrUqcPevXs/K6Mr7RmMjo7mypUreHp6kpubS58+fRg2bBja2toy4+ZZs2Zx/fp1tm7dStu2bYmIiCAoKAh/f38ePHhAcXExOjo6GBoaYmlpiaGhIerq6qiqqsp6+N4W0BQWFhIdHY27uzsHDx5k0KBBLFiwoFQyrQUFBTx8+BAPDw8uXLiAmpoaw4cPp0OHDujp6b03oDl8+DArVqxAS0uLmTNn0rp166+i3KlIAi/yIOgpHLoLV54AohJxmLKEiJIyz8Z1YYw5WGmBxpsJtgpBYWEh9+/fZ8OGDYSGhtK7d29GjBjxTul+ac9dbGwsly9fZu/eveTk5DB48GAmTJiAmppaqXzPOTk5nD17lhUrVlCvXj2WLFkiW8fehuLiYrKzs0lPT+fFixckJCRw//597t69y6NHj8jJyUFTU5MmTZpgbm4uC8yPHTuGq6srP/74I7/++qvMjuThw4esXbuWK1euYGRkhLOzMy1atEBbW/uz+sWk68WiRYvYt28f3bt358qVK0yaNImZM2dWuMJnQEAArq6upKSk4OjoSN++fdHQ0Piick1BEEhOTubevXscOXKEgIAAjI2NcXJywtra+o3+9YKCApKSkggNDSU4OJhbt26RnJyMkpIShoaGmJmZYWVlRf369VFTU0NdXb1U1bk/FRKJhMDAQHbv3k1wcDD6+vr069ePDh06oKmpWSo2KRUKiQRyMiEhBsKuQ2Qw5GaXw4lFUKUqaOpAu65g3BRq16kUdyklVJK//zhySeMZYTzmPJEcJouE/5HD0tvvlkMOCRKqU5fGDMaYnmhijjIa30yZ58cgKyuLqKgofH19uXDhAoWFhdja2jJgwACaNGlSoeUc0mAsJSWF58+f8/TpU8LDw3n8+DHR0dGIxWJ0dXVp3rw5FhYWWFhYcPfuXQ4fPsydO3fQ0tKie/fudOjQAR0dnVIr0ZSWOm7dupWbN2/SpUsXnJycZFmv8kRycjLHjx/H3d0dAwMDxo8fT1paGr/++iu2trb8/fffn03ki4uLSUtLIzw8HG9vbwICAqhfvz5DhgzB1taWzZs3s2vXLnr37k29evUIDw8nMTGRKlWqoKenR6NGjWjVqhUaGhqoq6tTt27djyolk6KoqIj4+HgOHTrEP//8Q8+ePVm0aNFnCwMJgkB8fDxnzpzh9OnTFBQUYGdnR48ePTA1NaVWrVrvvRbbtm1jy5YtWFpa4uzsLLPHqGjiJ4UgQF4RPH4B1xPg5AOITCkhZ6VNAqWkT6sm9DOFLoZgpgY1vrLN6+LiYh4/fsyePXu4du0aLVu2ZNSoUbRq1eqdn5Eq0N69excvLy/OnDlDgwYNGDp0qKwH9XO/c6khvZubG6ampsyePZsWLVp8EhHJz88nPT2d1NRUnj17xpMnT3jw4AGPHj3i2bNnKCgooKenh4aGBo8ePSIyMpKFCxfSu3dvDhw4wL59+ygoKMDBwQFbW1saNWr0RYIsmZmZbN26lS1btjBt2jS6dOnCvn37OHDgAA4ODsydO5caNWqU+3MiCAJnzpxhw4YNADg5OdG9e3fU1dVL7b0m9dYLDAzk1KlTJCYm0rx5c77//nuMjIyIi4sjNDSU8PBwHj58iFgspm7duujr69OwYUMaN26Murq6bH38GsRS7t27h4eHB9euXUNFRUX2DjU2Nv6q+jdLBYUF8DKlxA7ibkiJIbw4r2SBKzWuICo5XpWqoKkLTS3BqElJtq/612N99V9AJfn7/wACEtKJ5TmRJHCdOPx5xm3yyfpfSeinq4OKkEegGBFyaNASPTqhQ0fq04zaGCBH1W862/cuSP3WwsLC8PX1JSQkBFVVVezt7enRo0eFZrVeHaNEIiElJYVnz56RkJBAVFQUd+/e5enTp6Snp6OmpkZKSgrZ2dl07NiRQYMGYWFhgaqqaqm/sKT+WgcOHODKlSs0a9aMH3/8kRYtWpTLy1EQBGJjY9m/fz+enp40b96cMWPG0LRpU3Jzc9m/fz8rVqxg7NixstKyzx1Xfn4+CQkJ3LhxAy8vLx4+fIiGhgYhISE8f/6c5s2bU7duXTQ0NGjVqhW6uro0aNAALS0t6tat+0ViBMXFxSQnJ3P06FG2bt1Kx44dWbBgARoaGp90zOTkZC5dusS5c+dITEzEzMwMe3t7WrVqRYMGDd57LLFYzPr163F3d6dz5878+OOPNGrU6KsQ/HkbiiWQLi7pBbz9DC4/KfmvlAB+7htQWsapIA8matBRB9pqg5k6aKp8PTY8/4YgCMTExHDs2DG8vLzQ0tLC2dmZDh06vJd0CYJAYmIiN27c4OTJk9y/fx8rKyu+//57mZz9p4whKSkJd3d3Tp48SatWrRgzZswXrxdS0ZXnz5+TlJREQkICT548ITo6msTERKKjo4mKisLMzIyGDRsSExODpaUlAwcOxMLC4q39uZ+CrKwsTpw4wapVq+jZsyezZ89GXV2dhIQE3N3d2bNnDz179mTOnDnUq1ev3IhDUVER+/fvZ/v27WhqauLo6CjLyJXFGLKzswkPD+fQoUMEBASgpKSEiooKYrGYKlWqUL9+ffT19TEzM0NLSwtNTU3q1atXLgrXH4sXL15w4sQJjh8/TkZGBp06dcLW1paWLVuipqb2VShclwkEAfLzIDUZnsbCkwclZPB5Ysm/fU5J6Kv3WE010DUCfVPQNoR6DUClFogqs32ljfeRP/lFixaV83DexNatWxeNGzeuoofxTUOECCVqo44x6phRn2ZoYI46xlSnRKGwiDwkFL7xyX+HKSLkqEFdGmCBId1ozjCa4IAJ9ujQjurUQY4q/0niByX9WcrKyujq6mJsbIy6ujrPnj0jICCAyMhIRCIRmpqaFRrsikQi5OTkUFZWRkNDA1NTUxo3bkydOnUIDw/n6tWrpKWloaCgILOXSEtL4+nTp2RmZqKoqCjrmyit8airq6Ovry8rkXnw4AG1a9dGS0urzJUpIyMj+eeff/Dz88PKyorRo0fTrFkz5OTkqFq1Kvr6+mRnZ+Pu7o62tjaNGjX6rKCnoKCA1NRUoqOjZb2YwcHB3Lt3j6ysLOrVq8fAgQMZOHAgPXr0wM7OjqZNm6KlpYWKisoX96nIyclRo0YNTExMqFGjBidPnuTBgwc0adLkozwXc3Jy8Pf3Z9euXXh6eqKoqEjv3r0ZMmQIbdu2fW8wKC1nW716NR4eHtjb2zNu3DjMzMy+6l4XOVGJobp2TTBWK/lpVg/qVIcqcpCZX1ImCiV9enKi/8U3/F9GT+6VZVIE1FIE0zrQSRf6m0IfU7DTLzluTcWvl/hBybNau3Zt9PT0UFBQICwsjNu3b1O9enX09fXfGdSKRCJUVFQwMzPDyMiIGjVqcOvWLa5cuSLz6JP6qb0PUkGm7du34+XlhY2NDWPHjqVp06ZfTEREIhGKioqoqamhq6tLw4YNadSoEQ0bNkRPT4/CwkKioqKIj4/n3r17vHjxgjp16qChoQFAzZo1Pzvrl5OTg5+fH+vXr6dhw4bMnDkTbW1tRCIRNWvWxMzMjGrVqnH8+HGio6Np2LBhuYiD5Obmsn37dnbs2IGpqamsn71WrVqlTvzS0tIIDg7G19eXK1euEBERwYsXL8jOziY6Opq4uDjq169P//79cXBwoE2bNrLS94pqrfg38vPz8fb2xs3NjYsXL6Knp4eDgwMDBgygWbNmsnX8PwvR/0oxVVRLiFl9LWigD1r6oKoOCtWgIL+kV/Dfn3vbyqdUA+prlwi4NG0DLduVZPuMm5Ycu5pSpXF7GWH9+vXiqVOnrnjbv1Vm/v7DKCKfbJ6RQRyZxJNNMmJekkc6BWRRRP7/egRFyFOVKihRjVpURx0lalMLfWqhhyp6VKHaf5bsfQi5ubk8ePCAixcvcv36dcRiMW3btqVr1660bt36qyhNKSgowM/Pj1OnThEWFoa2tjZWVlZoaGiQmppKTEwMiYmJZGZmIhKJqFu3LsbGxpiYmGBqaoqBgUGpybknJSVx9uxZTp8+jYqKCiNGjMDW1rZMXu6FhYUEBwezd+9eHjx4QOfOnWUlRq9CIpEQFxfH/PnziYqKYs2aNbRp0+ajxAjS09OJi4vj0aNHPHz4kJiYGFJSUhCLxTx//pxHjx7Rrl07jI2NuXnzJo0bN6ZPnz7Y29uXWXmXIAjk5ORw4MABNmzYgLm5OT///DMNGzZ86/mkSore3t74+/sjkUgwNzenc+fOMlXRD50vLS0NNzc3jhw5Qv/+/Rk7diy6urrfXCAkCFAogZiXEJsB8ZnwLBvS8iBDDDmFJaqh4iKQlyvJ7FWrAsoKoFoN1JVKvPoaKJdYN+jUghpfL/d9L1JTU/H19eXIkSPk5+fLesDepgT6b2RlZXH16lW8vb0JDw9HV1dXZs7+rh6ygoICIiMj2bt3L8HBwXTv3p0RI0agp6dXFtMDStaI+Ph4PD098fHxITk5mXbt2nHx4kUiIyPp1q0bVatWpbCwEH19fUxMTDAyMsLIyAgDA4OPKmsVi8UEBwezevVqcnNz+f333zE3N3/tdwRBIDs7m3379rFjxw6aN2/OxIkTadasWZltnrx8+ZIdO3Zw4MAB2rRpw6hRo2jWrFmprMVSYaDY2FgeP37MvXv3ePz4MU+fPqW4uJiqVauip6cnExRLT08nPDyc2NhYtLW16d69O506dUJTU7MUZvrlcwG4ffs2p0+fJiAggKpVq9K1a1e6du2KqanpV1vZUC4QhBIl0PTUEnGYl6mQl13SF5iXW1IuWvw/vQl5+RLyqFS9hPhVV4ZaaiXEUbVOyd/9V7OmXxkqyz4rAZSUhhaSh5h0CsimiHwkFCJChDyKMvJXDVXkqHw4/4309HSCgoLw9PTkzp07qKqq0rNnT+zs7NDX1y/38Uif3QcPHuDl5YWvry95eXnY2NjQu3dvGjdujKKiIhKJhJcvXxIdHc3Dhw958OABMTExpKenIycnR+3atTEyMsLQ0FD2stbU1Pwi0vLixQu8vLw4dOgQcnJyjBgxgu7du5eqX5hYLOb69eu4u7uTkJAgy2C9qyxXIpEQFhbGlClTqF+/PqtWrUJfX/+NeRYWFpKUlMSTJ0+IioqSZQoyMjKQSCSoqqqira1NYWEh169fp2rVqsyfPx8jIyPOnj3LpUuXSEtLo0uXLvTo0QMLC4syUfmTqgp6eHiwZcsWGjduzOTJk2nVqtVrhCwuLk4mmx4fH4+xsTE9evTAysrqowRwpOV+W7du5fjx4wwePJiJEydSt27d/0S/iwC8zCsRiHmRV0L+Coogv7hEd0BBDhTlQUURaiuBmlIJEZT/9qcOlPSo+fn54eHhQUpKCg4ODgwcOPCjPC0BEhMTOX/+PF5eXqSkpNCmTRvs7Oxo06bNayrCubm5BAcHs2/fPh4+fEjfvn1xdHSkfv36ZTIvqWXA9evXuXDhAuHh4ejp6dGzZ0+6deuGt7c3ixcvplGjRnTt2pXExETi4uLIzc1FIpGgrq6OmZkZBgYG6Onpoa+v/1ZFx8LCQu7evcvGjRu5f/8+v/zyC/b29u8cV35+Pvv372fHjh0YGBjg7OxM27ZtS100JCkpiZ07d3L48GHs7OwYP348RkZGX0Q0peqpMTExxMbGynor09PTyc/Pp3r16hgbG2NsbIyRkRGmpqaya1ZQUEBUVBQXL17Ez8+PzMxMmjdvjp2dHVZWVuWurP3qnJKSkvDx8eHs2bPExcXRsWNHevToQYcOHb6o//M/C0H4X1P1K+Sv6H+WY1WqQBUFUFIqIXpy8pWZvQpCJfmrRCVKCRKJhOfPn3Px4kXOnz/P06dPadmypSyYLq8XmCAIpKSk4Ofnh6enJ+Hh4bRs2ZK+fftiZ2f3XsXF3NxcmUJeZGQkjx49IjU1FUEQqF69OgYGBjRq1AgdHR309PTQ0dH5rF3PrKwsLl26hIeHBzk5OQwfPpyePXuWihVEVlYW165dw8PDg8zMTAYNGkS/fv0+GLBKJBLOnDnDL7/8Qr9+/fjll1+oXbs2WVlZxMfHExcXJ8vyJSYm8vLlSxQUFNDU1MTY2JiGDRtiZmZGfn4+e/bswd/fn8mTJzN06FDk5OQoLi4mPDycffv2ERgYiJaWFv3798fa2vqLCfXbIAgCgiBw4MAB3Nzc0NPTY9KkSVhZWZGTk0NQUBAXLlzg1q1b1KlTh86dO9O9e3f09PQ+KmMnkUiIjo5mx44dnDlzhqFDhzJlypQKtXKoROlDLBYTFBTEP//8w6NHj2Tenx/b3ywIArdv3+bkyZPcvHkTBQUFOnXqhI2NDQ0bNkQikRAQEMChQ4dISkpiyJAhfPfdd+8VFfpcSAlKREQEV69e5caNGxQXF2Nra0v//v0xNTWV+dStWbOGzZs34+LiwrBhw3j69CkRERHcuXOHmJgYXr58iby8PDVq1MDAwAAjIyN0dHRo0KABDRo0QFlZmejoaHbu3MnVq1cZN24cTk5OH1X6euzYMbZt20atWrUYOXIktra2KCsrf/FzJQgCT548YefOnZw4cYI+ffowadIkNDU1P7lP7VXbj7i4OBITE2WELysri+zsbOrXr4+RkRHNmjXDzMwMY2Pj92ZLc3JyiIiI4OzZs9y6dQsFBQXs7Ozo0KEDLVq0KLcMmzQTGxgYiI+PD/7+/jRo0ICePXsycODAMimLrUQlyhOV5K8SlShlSEuJjh49iqenJ1WqVKFv3760b9++TMt4pMbFERER+Pr6cu7cOWrWrEnv3r1xdHT8qL6vVyGRSMjIyODBgweEhoYSGhpKbGwsubm51KlTB11dXVq2bImOjg4aGhoyH7qPPYdYLCYwMJDt27fz9OlThg8fTp8+fahXr97nXgJevHiBr68vHh4eiEQimWrdx5SqSde7NWvWsGrVKmbPno2enp6sBygxMZGMjAxq166Nvr4+TZs2pUWLFpiYmMgC1bi4ONzd3Tl16hQODg5Mnjz5NdN3qW/V2bNn8fDw4NmzZ3Tr1g07OzssLCzKjDidOnWK5cuXU7duXUaNGkVCQgKenp6IxWKZ4I+Zmdk7Der/DamNx/bt2/H29sbZ2ZkpU6agoKBQGRT9B1FUVMS9e/fYsmULQUFB9OvXD0dHx3daQbwN+fn5XL16lePHj3P//n10dXXp0KEDRUVFXLx4kby8PJycnOjfv3+ZlIHn5uby5MkT/Pz88PHxISkpidatWzNo0CDatWv3GvmRrqUuLi54e3uzZs0aevToIRNkSk1N5f79+4SFhREeHk58fDxFRUWv9VlramoSFhbGhQsX6N+/P7NmzfqkDJ7UW7C4uJgff/yRrl27fpbn6qtzevjwIdu2bePcuXMMHTqUqVOnfhKRkdoLSRWlpWtjVFQUqampFBQUoKenR7NmzTA3N5cJoHzqmpCRkUFgYCDHjh0jMjISHR0d+vfvj7m5OUZGRmVWTi6tmHj48CF+fn6cOHGCrKws7O3tcXJyQldXt3J9q8R/ApXkrxKVKCPk5+dz+/Ztdu7cSVBQEMbGxowcOZKWLVuipaUFUCovklf7KwIDAzl8+DCxsbF0796dcf+PvfMOi+rq3vaDiKiAIL33rnQVC4Ji771hiTUq0cTXFl81JhqTWGKaxpKon8bYgi12UKyoEWkiCNJ77wxlYGae7w+c+cXXhoolZu7rmgSnnH32Pufsvdpe68MPYWlp2STtiEQipKWlISwsDHfu3MG9e/dQUVEBbW1tGBgYoEOHDrCxsYGuri50dXVlWc+e1bZIJEJMTAy2bt2KmJgYjB8/HqNGjZKNz4tQUFCAs2fPYv/+/dDS0sKsWbPQvXv351qLpYJeUVERCgoKkJaWhsWLF6O4uBgaGhrQ19eHhYUF2rdvLyuT8b+pxqVZYAMCAnDo0CF0794dn3766VMz1JFETk6OTBBr3bo1Jk+ejM6dO8Pa2rrJlSiS2LdvH+bPn4+2bduioqICgwYNwqxZs9ChQ4dGl/aQ3mv379/H5s2bcfPmTcydOxf+/v5vpbCynDeHRCJBZmYmduzYgfPnz6N3796YPn067OzsXui6l5WVITAwEDt37kR8fDwqKythYmKC+fPn44MPPmi0AaKx1NfXIycnBxEREQgKCkJMTAyMjY0xfPhwDBo06KmGIekzPWPGDBQVFWHz5s1wd3d/zENWV1eHjIwM3L17F2FhYYiLi0NGRgby8vJQXV0NS0tL3vwM3wAAIABJREFU+Pv7o3379rK6dI1V4u7cuYONGzeioKAAkydPxsCBA6Grq/vCheWBhuLtP/zwA65evYrZs2fD39//ufOMtITQ38tlpKamIj4+HsnJycjOzoaamhqsra3h4uKCjh07ws3NrUkMnCRRWlqKwMBAHD58GDk5OfD09MTYsWNlZR+aEpFIhNzcXERERODEiROIjIyEi4sLpkyZAl9fX/ncJue9Qq78yZHzGpEunmfPnsUvv/yC3NxcDB48GGPGjIG1tfUrJ/2Q1peT1uy7dOkSHBwcMHv2bPTt2xdA0yiY/4s0fCoyMhI3b95ESEgIcnNzoaysDBsbGzg7O8Pd3V1WiLdt27Zo2bLlEwUeaXr5rVu34uLFixg5ciQ++OCDRid6kO7LOHz4MA4dOgQnJyf4+/s/tSYYSYjFYlRWVqKkpASlpaVISEhAVFQU7t+/j7S0NFmIVUZGBlatWoWJEyc+81qVlZXh+PHj+O233+Dg4ICVK1c2Oizu5s2b2Lx5M2JiYuDm5gY/Pz9ZSYhXFaKk4UtJSUk4duwYjhw5AiUlJVRXV2P9+vXo1asX2rRp0yhBVHov3717Fz///DPu3r2LhQsX4oMPPnilc5Tzz4EkSkpKsHfvXuzevRvu7u5YtmwZ7OzsGq2QSCQS2T7Rc+fOobKyEvr6+ujZsycGDBgAKyurVy6rIG2npKQE8fHxOHXqFK5fvw51dXWMHDlSVry8Mf198OABpkyZAl1dXXz//fewtLR8Zl8zMzOxZ88e2bPWsmVL1NbWQltbG+bm5mjXrh3c3NygpaUFDQ0NaGpqPlPhTUpKwrp16xATEyPLLGliYtKouUE618XHx2PdunUIDw/HkiVLMHXq1Kc+8yKRCAKBAGVlZSgtLUV6ejri4+MRFxeHlJQUCAQCGBkZwcXFBe7u7vD09ISxsfFzz+VlEYvFKCgowOHDh3H48GE0a9YM48ePR8+ePWFlZfXK++5EIhHKysoQHx+P8+fP48yZM9DR0cHEiRMxYcKEf3cyFznvLXLlT46cN4A0M+Svv/6KPXv2QFtbG/7+/vD09ISRkRGUlJReaAGTht+kpqYiMDAQBw8ehLKyMiZPnoxp06Y1WZH2xiL14IWEhODatWuIj4+HWCyGhYUFnJyc0LlzZ5ibm0NDQwNt2rSBqqrqI8KL1Mr+66+/Yt++fejbty+WLl0qS4f+NKQetO3bt+PPP/+Ej48P5s2bB1tb20d+J5FIIBQKUVlZifLychQWFuLu3bsIDw/HgwcPkJeXBx0dHXTs2BHe3t7w8vJCVVUVJkyYAB0dHXz33XewtLR8YvbWmpoanD17Frt27YKmpib++9//ol27di80frW1tTh69Ch+/fVXlJeXy7wSNjY2UFVVfan9OGKxGLm5ubh+/Tp+/vlnlJeXY8yYMfD19cU333yD/Px8LFmyRBZO9rw6blVVVbhz5w7WrVuHkpISfPXVVzIDg5x/FwKBACdOnMA333wDS0tLfP3117C3t3+uQiIWi5GZmYlt27YhODgYPXr0QLdu3RAZGYnz589DVVUVw4YNw6BBg2BoaPjS85hAIEBWVhaCgoJw/Phx1NTUoF+/fhg3bhwcHR1f+HjXr1/H1KlTMWDAACxbtgyGhoZPVJ6qq6tx5swZ7N69G7q6uli0aBH09fURFRWFGzdu4NatW8jOzoaSkhJsbGzg6OiIbt26wdTUFGpqalBTU5MZnv4+fxUUFGDjxo24ePEi+vfvDz8/P9ja2j5TaZSGMMbGxmLFihXIzMzExo0b0b9//8fm1NraWlRWVqKyshIFBQWIiYlBdHQ0YmJikJeXhzZt2sDBwQEdO3ZEx44d0b59+yZPQvM8xGIxkpKSsHnzZgQGBsLS0hLz58+Hi4uLbM/ii25rqK6uRmpqKi5evIjDhw+jrq4Oo0ePxuzZs5vcsyhHzrvEs5Q/WcKAt/ny8PCgHDnvCxKJhDExMRw3bhyNjIw4YsQIXr9+nYWFhRSJRJRIJM/9fU1NDVNSUrhnzx56e3vT2tqa//nPf5iVlfWGevF8srKyeOjQIfr7+7NDhw40MzOjq6srJ06cyJ9++ok3b95kRkYGi4qKWFNTI+t3WVkZd+zYQSsrK06cOJFpaWkUiURPbEMsFjMzM5Nz586lnZ0d161bx9zcXJIN41RXV8fy8nLm5uYyLi6Op06d4ooVK9ivXz+am5vTysqK/fr149dff82bN29SKBQ+1kZISAitra3p7+/P9PT0x86lrq6OV65c4ciRIzl8+HDeuHHjlcYtPz+fa9euZbt27di9e3fu2rWLSUlJrK6ufu69Ie23WCxmcXExQ0NDOW3aNBoYGNDPz4+xsbEUi8UkG67P+PHj6ejoyO3btzM7O/uZ41xWVsaTJ0+yU6dO7N69O8PCwl6pn3L++QiFQl64cIFOTk7s3Lkzw8PDKRQKn3qf1tfXMyEhgVOnTqWzszPXr18vm7Nqa2t569Ytzp49mw4ODhw6dChPnDjB3Nxc1tXVvdA55ebm8uDBg+zVqxft7e05b948hoeHs76+/pX6u3fvXurr6/PLL79kQUGB7Fn6e9sXL17ksGHDOGrUKN66deuJY5CUlMR9+/ZxxowZdHBwoImJCbt160Z/f3/u3r2bcXFxzM7OZmlp6SPjWVlZyXXr1tHV1ZUzZszgzZs3WV1d/cRzlUgkrKqqYkhICD09Penm5sbQ0FDZ52KxmFVVVSwoKGBKSgoDAwO5evVqDh8+nLa2trS0tGSPHj24ZMkSnjp1ijk5OY2af94EYrGY169f58CBA2lkZMSpU6cyMjKSxcXFFIvFjV5D09PTefjwYQ4dOpS2tracPXs2Y2Ji3lAv5Mh5u1hbW5fwKXrXW1f8KFf+5LyHSCQSSiQSnjp1ip6enjQxMeGyZcuYkJDAqqqqx4QK6W/q6upYWFjIwMBATpgwgaamphwzZswThYx3iZqaGoaGhvLbb7/lwIEDaWFhQXNzc/r6+nLZsmU8deoUMzIyWFxczKqqKgoEAp48eZKWlpbs06cPk5KSHlNMRCIR09LSOHLkSFpbW3PPnj0sKSlhTU0Ny8vLmZeXx9DQUG7dupV+fn50dHSknp4eXV1dOXPmTO7Zs4dpaWmNOv+AgAAaGhryyy+/ZG5uruz6iEQiRkdHc9KkSezXrx/Pnj3bZGMWERHBKVOm0NLSksOGDeOJEyeYn5//RAVVikQiYXV1NVNTU7lq1SoaGhrS3d2df/zxxxOForKyMvr7+9Pa2ppfffUVU1NTHxOQxWIxi4qKeODAATo7O7N///588OBBk/VTzj8bkUjEu3fv0sPDgzY2NgwJCWFtbe1j91pdXR1jY2M5dOhQOjs7c+/evSwtLX3seJWVlTx//jwHDx5MExMT+vn58c6dOywvL3/ivChFLBazvLyct27dks2NgwcP5oULF1hVVdVk/f3yyy+pr6/P3bt3s7S0VNZPkUjEsLAwjh49mgMGDGBQUNBzjyVV0K5evcrPPvuMnTp1op6eHs3NzTlixAh+9dVXvHHjBrOyslhaWsqqqirW1tZyz5497Ny5M4cMGcKzZ8+yqqrqkfGWjsXZs2dpb29PLy8vJiUlsb6+ngKBgEVFRUxKSuKhQ4f40UcfsX379tTV1aWDgwMnTpzIHTt2MCEh4ZlzzdtGIpGwvr6e+/btY/v27WlqaspVq1YxLS3tmYayuro6FhcX8/z58/Tz86OFhQVHjhzJ4ODgd0a5lSPnTSBX/uTIeYtUVVVx06ZNNDMzo7OzM3fv3s2srCzW1dU9IlhUVVXJLOOmpqbs2bMnjx079lRvzbuK1FsXEBDAuXPn0sXFhW3btqWVlRX9/Pz4yy+/MC4ujkVFRQwKCqKFhQVdXFx4//59mWe0vr6e8fHx7Nq1K21sbHjy5EkWFBQwLS2Nx44d49KlS9mlSxfq6urSzMyMgwcP5rp163jjxo2nWsqfx5dffklDQ0Pu3LmTJSUlFIvFTEtL47Rp09ilSxcePHjwmcLpy1BfX89Tp06xT58+NDMz49SpU3nt2rXHDATSMSksLOT+/fvZvn17GhoacvXq1aysrHymUFNdXc2VK1fS2tqaixYtYlxcnEwBFIlEzMnJ4Y8//kgbGxtOmjSJeXl5TdpHOf98JBIJs7Oz2bNnT+rp6fHMmTOPKIB1dXW8ffs2PT092aFDBwYGBj73OSwrK+PBgwfZoUMHGhsb89NPP2VmZuYjUQLStmtra5mamsply5bR0NCQnTt3ZkBAAMvKypq8r2KxmHPmzKGJiQmPHz/OyspKisVipqSk0M/Pj15eXjx69OhLzwWpqancu3cvJ02aRBMTE2poaMgMVrt27WJcXBxLS0v5559/snfv3uzQoQN37twpUwClXv+9e/fS2NiYAwcOZHp6OktLSxkWFsbvvvuOgwcPpqamJjU1Nent7c0VK1bw0qVLFAgE/0gFqLS0lGvWrKG+vj7d3Nx48OBBFhQUPLKGSj2dd+7c4bx582hlZUUfHx8eOHDgpdcEOXL+yciVPzly3gFSUlI4Y8YMamtr08vLi3/++SdLSkpYW1vL+Ph4mYDu5ubGn3/++bUINm+DyspK3rlzh99++y2HDBlCLS0tqqqq0sPDg0uWLOHu3btpa2tLc3NzRkREUCgU8s6dO7SysqK9vT3379/P9evXc9iwYdTT06Oqqird3Ny4YMEC/vnnn8zJyWmS8xSJRJw7dy6trKx47NgxZmVl0d/fn66urvz1119ZU1PTJO08idLSUm7bto3u7u60trbmypUrmZiYyLq6OopEIlZUVDAkJITDhw+nmpoa/fz8Gu3VlPZt69atbNeuHf38/PjXX39RKBQyKSmJn376KS0tLbl48WJWVla+tj7K+WcjkUhYWVnJ0aNHU0VFhbt372ZNTQ3r6up49uxZWllZ0dfXl5GRkY0Ov5RIJCwsLOS6deuor69PS0tLbtmyhQKBgCKRiCKRiAKBgDt37qSZmRmNjY35zTffsKio6LUqMTU1NRw9ejRtbW0ZFBTEzMxMTp06lR4eHty/f3+Tecyqq6sZEhLCzz//nJ07d2bbtm2pra1Nb29vLlu2jJs2beLQoUNpbW3NtWvXsqysjNnZ2fz666+pqanJsWPH8tChQ1ywYAHbtWvHli1bUldXl6NGjeLOnTuZmZnZ5Aart0lCQgInTpzINm3a0NfXlxcvXmRZWRlra2uZlJTEFStW0Nrams7Ozvzxxx9ZWFj4tk9Zjpy3xrOUP3nCFzly3jB//fUX1q5di9u3b8PLywsaGhr466+/IBKJ8MEHH2Dq1KmvNbPa20QikaC0tBS3bt3CuXPncPbsWWRnZ8sKvwsEAixevBibNm2CiooKlJSUUFhYiLZt26J79+7o168ffH19G50J70URCASYNm0a7t+/D3V1dZSWlmL+/PmYPHky1NTUmry9/yUzMxO//fYb9uzZg5YtW2LmzJno3Lkzdu7ciYCAALRv3x5r1qyBr6/vSx1fWgtQUVERffv2RUJCAu7cuYM5c+bgo48+em31KeW8H5ANSYYWL16MrVu3YvHixTA1NcXy5cvRv39/bNiwAUZGRi+cmVEikSA3Nxfr1q3Dzp074eTkhI0bN6K+vh5LlixBQkICpk+fjuXLl0NPT++11YD7O8XFxZgwYQLKysqgqKiI8vJyfPrppxgzZsxrS7aVm5srKzp+6dIlpKamQlVVFS1atEBtbS3atWsHY2NjHDt2DEZGRiguLkZNTQ2srKwwYMAADBw4EN7e3mjevPl7Xbbg+vXr+PzzzxEeHg5fX1/o6Ojg8uXLIInp06dj0qRJMDU1fdunKUfOW+WVEr4AaAkgFMBdALEAVj983wLAbQBJAA4DaPHwfeWH/056+Ln589qQe/7k/JuQSCQUCARcsWIFDQ0NqaioSG9vb54+fVq2V/B9RtpHaShjZGQkFy9eTDs7OwKQvQwMDDhlyhQGBgbKQp7exPjk5eWxW7duVFJS4tq1a994GKRYLGZsbCz9/f3ZunVrNm/enObm5vzxxx9f2eMgkUh448YNDhw4kAoKCnRycuLevXvf+3tOTtMikUj4/fffs3nz5gTARYsWsays7JXuI4lEQpFIxNDQUHbq1Ek2D3Tt2pWRkZGNSpbV1CQkJNDFxYVKSkr84YcfWFxc/NrblM5xtbW1jI2N5bfffsuuXbuyZcuWsjFp2bIlO3TowPXr1zM9Pf2NzY3vCtK9z0uWLKGOjg6bNWtGT09Pnj9/nvX19f+acZAj51k8y/P3eE7zxxEC8CUpUFBQUAIQoqCgcA7AQgDfkzykoKCwHcAMANse/r+UpLWCgsJ4AOsBjGu8ripHzvsJH3rZr1y5gjVr1iAqKgo9e/aEpqYmQkJC8PHHHyMyMhLTpk2T1Y97X6y3/FuEAUlUVFTgxo0buHTpEk6fPo2EhARZWnEtLS0UFxejtLQUv/32G65cuYK+fftiwIAB8PHxkXkJpTR1ofRz584hOzsbQIOX1tfXF7q6uq/9WkjHqKSkRFZOQ1FREYaGhiguLsaFCxfg7e0NFxcXAC/eb5KQSCRITk5GTk4OmjdvDoFAgIyMDNTU1KBVq1bvzf0m5/VBNtSCDAsLQ7NmzdCiRQtERESgpKQEqqqqaNas2UvdmwBQVVWFCxcu4P79+zAwMIBYLEZUVBSOHDkCS0tLqKmpNYQsvYH7lCROnjyJoqIikERISAi6d++Otm3bNnn7f58fKyoqcPfuXVy8eBGBgYG4d+8e6urqoKSkBGVlZSgrK6OmpgZRUVGIjo7GsWPH4OvrC19fX/j4+DxSquZ9e56l4xQSEoLPPvsMYWFh6Nu3L4yNjXHhwgXMmTMH06ZNw5QpU2Q1ZN+3MZAjp0l4mlb4pBeA1gAiAHgCKALQ/OH7XQAEPvw7EECXh383f/g9hWcdV+75k/NvIDExkX5+flRVVWW3bt14/vx5mUcrLS2Nq1atorm5OZ2cnLh9+3YKBIK3fcpNhkAgYFhYGDds2MABAwZQRUWFioqKdHZ25uLFizlw4EAqKipyy5YtlEgk/PHHH9miRQsOGzaMCxcupIeHB5WVlammpkZfX1+uWbOGt2/fbvIxCg4OpoWFBefPn899+/axa9eunDhxIiMiIpq0nSchEAh48OBBdu3alfr6+pwzZw7j4uJYXl7OY8eO0c3NjaqqqpwzZw6Liope+Pg1NTVcu3Ytra2tOWvWLAYHB3PVqlU0MzPjhx9+yIKCgtfQKznvExKJhMXFxfT29qaamhpPnjzJv/76i9bW1mzXrh1v3br1Ut7pmpoaHjp0iGZmZlRTU+Pnn3/Ompoa1tbW8ocffqCGhgaNjY25devWNzYvHjp0iAYGBly1ahV///13enh4cMqUKbx7926Tt5WQkMBt27Zx2LBh1NLSoqKioqwUzujRo2lpacnRo0czPj6e0dHRHDBgAHV1dbl06VLOnTuXJiYmBEAtLS2OGTOG27dvZ1ZW1nvnAUtKSuKkSZOorKzMbt26MTg4WLaGZmVl8YsvvqCFhQVtbW25ceNG5ufnv+1TliPnrfHKCV8AKAKIAiBAgydPG0DS3z43ARDz8O8YAMZ/+ywZgPazji9X/uS8z5SUlHDVqlVs27YtnZycePjwYVmIlHRxloY8RUdH09/fn3p6euzevTuPHz/+j9ywLxaLmZWVxT/++IMzZsygtbU1lZSUqKenx+HDh3PHjh1MT09nbm4uBwwYQDU1NZ44ceKR8KUjR45QU1OTgwYNYmpqKlNTU3ngwAFOnTqVJiYmVFJSopmZGSdMmMC9e/cyJSXllYSd6Oho2tjYcNSoUUxMTKREImFAQAA7duzImTNnMj4+vglH6P8Qi8W8cuUKhwwZQh0dHQ4bNozBwcGyMDfpq7i4mN9//z319PRoaGjIzZs3NzoTbFFRET/88EOamprys88+Y2ZmJiUSCUtLS7ljxw7a2Nhw2LBhTE1NfS19lPPPRyKRMCkpiQ4ODjQyMuKdO3dk5UVSUlLYrVs3mpqa8siRI41OHFRdXc2goCB26dKFLVu2lCUykh5X+srMzORHH33E1q1bs2vXrgwKCmrS8g7/S0hICI2Njenv7y9Tovbv309XV1fOmTOHCQkJr3R8gUDAM2fOcP78+bK5UUtLiwMHDuSPP/7I2NhYJiUlcdGiRbSysuJ//vMf5ufny8YjJyeH8+fPp5qaGr/++mtZfcVt27Zx8ODBbNmyJRUVFenh4cHFixfzzJkzz80K/C4jEAi4evVqqqqq0tbWlocOHZJlLv37GioWixkXF8eFCxfS2NiYzs7O3LFjx3tlSJUjp7E0WbZPABoALgPwelXlD8CHAMIAhJmamr6psZAj540gXYh+//13mpmZUUdHh2vWrGFBQcFT965If1NVVcUrV65w+PDh1NTU5IgRI96I5+lVKSsr45UrV2T1rNTU1KipqUkvLy+uXLmSly9fpkAgYF1dHYVCIe/fv8+OHTvSwMCAV69efUzJFYvFDA4Oprm5OT09PRkWFsba2lrW19ezoqKCN2/e5FdffcUePXqwbdu21NDQYNeuXblixYoXrv2Vm5tLd3d3du3albGxsTKlSiwWc/fu3ezYsSMXLFjQZJlFpdy/f5/Tp0+ngYEB+/Tpwz///FOWWv5/091L90hmZWVx6dKlbN26NTt37sybN28+U6jLyMiQ1Urcvn07i4uLHxGYqqurefLkSbq5ubFLly4MDw9v0j7K+ecjEol48+ZNGhkZ0cnJiSkpKY/co9KsnePGjaOBgQG/++67Z3pdhEIho6KiOGXKFFnmxpCQkKfu15Le+6GhoRw4cCDbtGnDoUOH8tatW6ytrW3SvsbHx9PKyopDhgyR7aeTjsHWrVvp5ubGxYsXMzs7u9HHlEgkTE5O5k8//SQzdikrK9PV1ZWLFy/mhQsXWFJSIsvuGx0dzQkTJtDR0ZHfffcdKyoqHhlriUTCkpISrl+/nmpqapw7dy6FQiFFIhHr6upYWlrKc+fO8eOPP6aNjQ1btGhBHR0dDh06lJs2bWJ0dPRrzV7cFEgNovv27aOJiQm1tLS4fv16lpWVPXP/p0QikWWMnjVrFvX09NilSxcePnz4H1c2SY6cV6FJSz0AWAVgiTzsU46cJyORSHjt2jV27tyZqqqqnD17NlNTU2V1sZ5nfZUuekVFRTx+/Di7du1KHR0dLliw4J0KzROLxYyJieH27ds5atQoGhkZsU2bNnR1deXs2bN58OBBpqSksLq6WiaYSBMZXLlyhXZ2dnR2dmZ0dPRTF2WRSMTIyEh27NiRLi4uvHDhgqwOmEgkolAoZFVVFZOTkxkQEMB58+bRxcWFrVu3prGxMceMGcNff/31mYJaZWUle/XqRQcHB0ZERDxSO4psCEn74Ycf6OHhwRUrVrC8vPyVxy4/P58rVqygqakp3dzcuGvXLubk5Dw3WYH0/qmpqWFoaCj79OnD1q1bc+bMmczLy3vst1FRUfTy8qKLiwtPnDjxROu/VFi6efMme/XqRXt7e547d+6V+yjn/UAoFDIgIIBaWlrs06cP8/LyHjNOkA33UUVFBZcuXUozMzMuWLCAiYmJj3xHLBYzMTGR//3vf2liYkJ3d3fu2bNHVtrheUjroR4/fpzdunWjkZER/f39effu3SYR7HNzc+nq6souXbowKSnpESVD+txt2rSJbm5uXL58OUtKSp54HOlYXLhwgYsWLaK9vT1bt25NAwMDjho1itu3b2dqaioFAgFra2sf8fJfvHiRPXv2ZLdu3Xj48OHH6h7+vY3KykoeOHCAWlpaHDp0KEtLS2Wf1dfXs7a2llVVVYyNjeUvv/zCcePG0dDQkKqqqnRycuLMmTO5d+9eJicnv1OKkVgs5u3bt9mjRw+qqKhw+vTpTElJoVAofKE1tLy8nJcvX+bYsWOpq6vLESNGMDQ09A31Qo6ct8srKX8AdABoPPy7FYDrAAYDCAAw/uH72wH4P/z7IwDbH/49HsAfz2tDrvzJeR+QhifNmTOH6urq7NmzJ69fv86KioonCkuNOZ5QKGRmZia3bNlCKysr2tracsuWLU1WZ+pFEQgEDAwM5JIlS+jq6kpNTU0aGxtzyJAh3LhxI0NDQ1lQUMDKykoKhcLHvHmVlZU8cuQIra2t2bt370YJHSKRiImJiRwyZAgdHBy4b98+mZBD/p/HVCgUUiAQMD8/n7dv3+aGDRs4ePBg6urqUktLi15eXlyzZg1v3bolux5isZhTp06loaEhg4ODnyhoSUMuv/zyS7q5uXHt2rUv7W2oq6vj3r176eTkRHNzcy5fvpxxcXGsra19ofBeqXBXVlbG33//nVZWVjQ2NubXX38t2wNz8eJFtm/fXnYfPk2IlB6vrq6O0dHRHD16NM3MzPj777+/VB/lvD8IBAJ+//331NLS4pQpU1hUVPTMuUyayXjLli1s164dR4wYIfNMZ2Rk8Ntvv6WTkxPt7e355ZdfMjs7+5Fi8Y1BOi/m5eXxp59+oqurK+3t7bl69WomJye/dF+rq6vZv39/WltbP9EIJG27tLSUa9eupZubG1evXi2LMKipqWFMTAy3bdvGUaNGUV9fn+rq6nR1deWCBQt49OhR5ufns6KigjU1NU/07h84cIDu7u6y0G+psvOssaiurpbtVe7Spcsj3kopIpGItbW1rKioYE5ODi9cuMBVq1bR29ub+vr6NDAwoI+PD5cvX85z5869kaymT0IkEjE5OZkffvghNTQ06Ovry2vXrj0xGqIxSOe1vLw8HjlyhD4+PtTT0+OsWbOYnp7+mnohR867wasqf84AIgFEPwzpXPXwfUs0lIBIeqgIKj98v+XDfyc9/NzyeW3IlT85/2QkEgnLysr4ww8/0MrKio6Ojty2bRsLCgqeKEC8KGKxmJWVlbx37x7nz59PPT09+vj48NJ2/nr+AAAgAElEQVSlS03Ug6cjTUazc+dOjh8/nmZmZtTV1WWnTp348ccf8+jRo0xKSmJhYSErKyuf2d/CwkJu2bKF1tbWnDx5MjMzMxttbRaJRMzMzOTMmTPp6OjIDRs2PDUEU7rgV1ZWsqCggPHx8dy3bx9nzpxJOzs76ujo0MnJibNnz6afnx81NTUf2UPyJMRiMdPT07ls2TJ6eHhw69atL3xdQ0JC2K9fPxobG/PDDz/knTt3WFpa+koWd6nwl5yczIULF1JXV5deXl5csmQJTU1NOXz4cEZERDRKwJYqlMnJyVy0aBENDAy4du3af+w+ITkvjzSs8IsvvqCenh6XLl3KkpKSRt0LUgUwICCA3bt3p7e3N2fNmsVevXrR1taW8+bNY1hYmMwo9irnKBAIGBsbyy+++IKurq709PTk5s2bmZub+0LHEYvFnDFjBvX19RkcHPzM50Vq5Fu+fDmdnJw4efJkLlq0SKZIWVhYcOTIkdy0aRPDwsKYm5vLsrIymfHlSccVCoX8+uuv6ejoyI8++ogRERGNNvBJoynCwsLo5uZGR0dHhoaGPjcssry8nPn5+bx37x4PHjzITz75hJ6entTX16ednR3Hjh3LH374gbdv32Z9fX2jx/NlEIvFzM/P54YNG2hlZSVLetaUa2hNTQ1TU1O5bds2Ojk50dLSkqtXr2ZFRUUT9UKOnHeLJg37fB0vufIn559KdXU1//zzT3p7e9Pc3JyffPIJ4+PjH9mj0RRIBfP8/HwGBwfLwixnz57NjIyMJmtLLBazoqKCV69e5erVq+nj4yPLnjZy5EiuW7eOf/31F1NTU1lQUMCqqqpGWWTT0tL42Wef0cHBgYsXL2ZOTs4LC35isZjZ2dlcunSpLEvo85KwSAU7gUDAvLw8JiUl8cKFC/zss8/o4uIiyzo6aNAgbt68mffu3XuqV08kEjE2NpaffPIJu3TpwqNHjzbqvFNTUzlnzhyampqyd+/ePH36NLOzs5tEqPl7HwsLC3nx4kW2a9eObdu2pampKc+ePSvzBDYWkUjEjIwMfv755zQwMOCyZctYV1f3yucp55+BWCxmamqqLFHTTz/99FLZZUtKSvjNN9/Q3t6eGhoaHDJkCE+cOCET6JuK+vp6FhcX8/Lly5wzZw7btWvHfv36cd++fY0S7CUSCb/88ktqa2vzwIEDz3xeKisrefv2bW7cuJE+Pj5UUVGhuro63dzcuHDhQh46dIhxcXHMzs5mWVlZo5SmsrIyfvLJJ7S3t+cXX3zBBw8evHBkh9TgFRsby969e9Pa2pqnTp1qdCitQCBgQUEBk5KSeOXKFX7//fccP348HRwcaGZmxm7dunHhwoX8448/mjSDptTI8Ntvv7Fr1660sbHhokWLZGtoUyMWi1leXs579+7xs88+o5WVFTt16sS9e/e+lTqScuS8Tp6l/CmQ/1df5m3RoUMHhoWFve3TkCOn0dTU1CAiIgLbtm1DWFgYHB0dMWfOHDg5OUFPTw/NmjV7Le2SRF1dHbKzsxEUFIRffvkFzZo1w+TJkzF9+nSoqqq+cF2j2tpapKWl4c6dO7h58ybCwsJQXl4OLS0tODs7o1OnTvDw8ECbNm2grq4OdXV1KCoqNqodiUSCe/fu4eeff0ZUVBTGjRuHiRMnQk9P76XqL5FEXl4eDh48iKNHj8Le3h5z5sxBx44dG/37uro6nD9/HpMmTcKoUaNgb2+P6Oho3Lt3D2KxGKampnBzc0Pnzp3h6ekJXV1d2fWsq6tDZGQktm3bhoyMDKxZswZeXl5PbKempgb79u3Djh07IJFIMG3aNPTr1w9mZmZo2bJlk9efqqurw8qVK/Hrr79i4MCBuHfvHpSUlDB69GhMmjQJRkZGjb4vxWIx8vPzERAQgO+//x4DBgzAxo0boaKiIq+b9R5TX1+Pe/fu4ZtvvkFSUhIWLVqEQYMGPVZb81mQRHh4OPbs2YPr169DW1sb1dXVqKiowJgxYzBv3jxoa2s3+bnX1taisLAQYWFhOH78OO7evYv27dtj6tSp6NWr1xPvfZI4ePAg/vOf/+Djjz/GvHnz0KZNG9k9LhaLkZ6ejtDQUNy6dQt3795FYWEh1NTUYGNjAxMTEyQlJeHevXtYtGgRxo8fj9atWzf6OcvOzsZ///tfREZGYvbs2Rg6dCgMDQ0fqdXXWMj/q+P5+eefIzQ0FAsXLsSsWbPQokWLRh+jvr4eAoEA5eXlKC0tRXJyMqKionD37l08ePAAKioqaN++PTp16gRPT094eHg0ej34O9Jar7t378b9+/fRoUMHTJ8+HXZ2do/MuU2NdJyKiooQHx+P3377DZcvX0bnzp2xcOFCeHh4yOc4Oe8FNjY2pYmJiZpP+kyu/MmR8wLU19cjKSkJBw4cwPnz56Guro7x48fDy8sLFhYWUFZWfiPnQRJlZWV48OABDh06hKCgINjY2GDGjBno168fWrRo8dQFTLrwRUdHIzQ0FOHh4UhPTwdJmJmZwcHBAR07doSxsTG0tLSgqamJNm3aAHixgrn19fUICQnB9u3bkZeXh8mTJ2PYsGHQ0dF55b4XFhbi7NmzOHToENTU1DBr1iz06tULioqKz/1tWloa/Pz8oKKigu3bt6NNmzYoLS1FUVEREhMTER0djbi4OOTl5UFVVRV2dnbo0KEDPD09YWtri2bNmiEkJASbN28GAKxfvx4ODg6y40skEly9ehVbtmxBQkICevXqhQkTJsDGxgZt27ZtcqGGJAQCAZYvX47Tp09jzpw5GD58OMrLy3Hy5EkEBQVBT08Pfn5+6NOnT6MFb4lEguLiYpw+fRrffPMNPD09sWnTJujo6MiFo/eQ6upq3LhxAz/++CMEAgEWLlyIHj16yJ79xpCamorffvsNQUFBaNWqFQYNGoTu3btDJBLhxIkTuHLlCrp37w5/f39YWFg0eR9Iorq6GhkZGbhx4wZOnTqFnJwceHl5YerUqXBxcZF9VyKR4K+//sLUqVPh6+uLL774Anp6eqisrMTdu3cRGRmJW7duITU1FSRhYGAAKysruLi4wMbGBtra2lBRUUFiYiJ27tyJvLw8rF69Gl27dm3Uud6/fx/Lly9HdnY2PvnkE9mz+bw57Hn9B4Dk5GRs3rwZp0+fxvTp0/Hxxx+/lGFQIpGgpqYGZWVlKCkpQW5uLmJiYhAdHY3Y2FgIhUKYmJjA3d0dHh4eMmPZs/ogLVB/6NAh3Lx5E/r6+hg7diy6du0KExOTRiuqr4pU0c3KysKtW7ewd+9e5Ofno3///vjoo49gbGz82hRQOXLeBHLl718OQdSgBBXIRiWyUYV81KAMIlRDDCGAZlBCKyhBFSrQhhqM0AbGUIcJFCCf/ICGRTArKwtnzpzBmTNnIBAI4OXlhcGDB8Pe3h4aGhpv/Jyk7vv09HSEhYXh6NGjSEpKgo+PDz744APY29vLFtKqqiokJiYiMjISUVFRSEhIQEVFBVRUVGBubg57e3s4ODhAV1cXurq60NHRQcuWLV/63GpraxEUFITdu3ejvr4eU6ZMQe/evaGlpdVU3UdJSQkuX76MQ4cOobq6GlOmTMHw4cOfqoCTRElJCebOnYsHDx5gx44d6NSpExQUFKCgoACSqKysRGFhIQoLC5Gamoq4uDgkJSUhKysLEokExsbGaN++PWxsbFBQUICAgABYWlpi/fr10NbWRkJCAnbt2oWrV69CV1cXH3zwATp06ABzc3NZO00JSRQXF2PlypW4dOkSPv74Y4waNQp6enoAGjwLYWFh+PPPP5GcnAx7e3uMGTMGnTt3bpRQTxLl5eU4ffo0vv76a7i6umL9+vUwNjaWK4DvEaWlpbLntWXLlpg3bx66du0KFRWVRv2+srISJ06cwB9//IGioiL4+PigV69ecHFxgZaWlszocuTIEZw9exZ2dnaYN2/eI8pYUyKRSFBeXo64uDhcu3YNwcHBEIlEGDRoECZPngwdHR0kJiZi1qxZaNWqFT799FOUlJTIlL7CwkKoq6vD2NgYtra2cHR0hKGhIbS0tGRKn1QxqKqqwvXr1/HTTz9BWVkZ33zzDezt7Z95fjdu3MCaNWsgFArxySefoEePHlBXV29SZSM1NRV79uxBQEAABg0ahIULF75SVApJiMVilJaWIj8/H/n5+UhNTcX9+/eRkpKCrKwsaGhowM7ODk5OTnB2dka7du1knlSxWIwHDx7gxIkTuHTpEhQVFdGzZ0/06dMHNjY2L2RkaEpIoqqqCvfv30dQUBBOnToFdXV1DBs2DOPHj38tBrt/LA17xYCy4oZXeQlQVQnU1QJ1dQAItGgBKLUEVFSBNm0Bdc2Gl1ILQL5mvFHkyt+/kHrUoBCxyMNdFOI+ypGBWpSiDlWoQzXqHyp+hAiAAppBCUpohRZQgRJaowXaQA360EE76MMNRugIJbSGAv59D29BQQGuXLmCM2fOICMjAzY2Nhg0aBBcXV1hamr6TgjBQqEQMTExuHjxIgIDA9GqVSuZJTU7OxsPHjxAbm4uSEJDQwMWFhawtbWFiYkJDAwMYGBgAE1NzSZZ5KQep8OHD0NVVRWTJk1C9+7doa6u3gQ9fRRp6NDBgweRm5sLPz8/jB079jGhVRqG+fnnn+Po0aPYuHEjhg8fjmbNmj31+tXU1KCoqAh5eXnIyspCUlISEhMTkZOTg+rqapBETk4OhEIh+vbtCycnJ5w7dw5lZWUYOHAgfH194e7uDmVl5ddyj5CUhZ7euXMH8+fPx8iRI6GpqflIe7W1tXjw4AGuXLmC4OBg1NTUwNPTE8OGDYOrqyuUlJSe245AIMDp06fx7bffwsbGBqtWrYK9vf17IRQRQGEVkC8ACquBCiEgFAO1IkBRAWihCLRUAtoqA9oqgG5rQL0l0Pyf33UAQG5uLk6cOIETJ05AV1cXs2bNgqenZ6OiGEQiES5fvow//vgD8fHxsLGxQd++feHp6QkjI6NHvDgSiQTZ2dk4deoUjh8/Dk1NTcyaNQu9e/d+bX0TiUQoLCxEZGQkgoKCcOfOHRgbG8Pb2xuXLl1CSEgIzMzMoKuri8rKSujo6MDQ0BDt2rWDqakpDA0Noa+vD01NzWc+J+Xl5QgMDMRPP/0Ee3t7fPXVVzIDzP8SGBiIdevWoVWrVpg/fz68vb3RunXr1zJHZGVl4eDBg9i/fz+6du2KTz75BJaWls995htLZWUl8vPzkZ2djYyMDCQkJCAtLQ05OTkgCSMjI9jZ2UFPTw95eXmIiopCRUUFnJ2d0bdvXzg7O0NfX/+dWEOBhmchLCwMZ86cQVRUFOzs7DB06FD06dMHampq78x5vlEkEqCmCshKAXLSgYJsoLIcqK0B6usAYS0gqgNE4obvKyoCzZWAFsoNL+WWgGobQEsP0DcBjC0ADS1A8cVDm+W8GHLl719EOTKQjhDk4A6KkYByZKACWRCiAoQEgAIUoACCaBB7/k4zKAAPvwcoQgltYAJ1mEML1jBEB1igJzRggWZ4+dCUfwpVVVUIDw/HmTNnEBkZCQ0NDfTo0QNeXl5wcHBosgW0qaiqqsKtW7ewc+dOBAYGQk1NDW3btoWysjLMzMzQvn17WFlZwdTUFKamptDX138l796TyM/Px5EjR3Dq1CkYGxvDz88Pnp6ejfYgvAxVVVUICwvDwYMHkZSUhGHDhsHPz0/mZZSG9+zatQubNm3C3Llz4e/v/0L77sRiMcrLy5GVlYXMzEykp6cjOTkZDx48QHh4OKqqqmBgYIDa2loMGzYM/v7+z7X+vwoSiQRxcXHYuHEj7t27h3nz5mH06NHPDO0qLi5GREQELly4gKioKKirq6NXr17o3bs3rKysnjkWJCEUCnHq1Cl8//33MDQ0xJIlS+Dh4fFS+5PeJmSDchdbCCQUA8mlQEEVUF4LVNU3KH314obvKCoASs2AFs2BVs0BlRaAujKgpwqYqwM2WoCNJtDmzUR7NznJyckICAhAcHAwrKysMG3atEZf0/j4eAQEBODKlSto3rw5BgwYAB8fH9jb2z/12ZKGbAcGBiIgIABisRizZ8/GoEGDXinc8XnU1NQgNDQUu3btQnBwMFRUVJCRkQEdHR106NABlpaWMoXPzMwMxsbGLzQ/SKMKjh49ih07dqB///5YtmwZ1NTUZJ9LJBL88ccf2L59O/T19TF79mx4eXlBSUnptSoVhYWFOHLkCPbt2wcHBwfMnj0bzs7OTT73i0Qi5OfnIyMjA+np6UhPT5dFTlRUVKC4uBgikQguLi4YM2YM+vbtCxMTk3fOgCSRSPDgwQNcvXoVwcHBKC4uRufOnTF06FA4OzujdevWb/sU3wx1wgZFLyUeyEkDiguA0iKgogQQP1T0FJo1TKiPyZIKaBAmH77frBmg0qZB6dPUaVACTW0aFEHVt+Px/TcgV/7+BZQjE6kIRgZuIhfhKEI8RKh5+Ei+yjVWePhfBWjDDgbwgAm6whK9oAELKOLdUoCaApFIhJiYGAQHB+Ovv/5CfX09XFxc0KtXL7i6ur618JT/hSQKCgoQHx+P5ORk3L9/H+np6aipqYGCggJ0dHSQn5+PlJQUODg4YMqUKfDx8Xmh5A0vQlpaGg4fPozg4GDY29vDz88P7u7ub2QPh1AoxL1797B//35ERkaif//+mDx5MoyMjCAUCnH+/HmsWrUKPj4++Pzzz185/LS0tBTBwcHYtWsXwsPD0bZtW6SlpcHCwgI2NjYwMzODtbU17O3tYW1tDQsLi2d6GV8EkUiEsLAwbN68GQkJCZg/fz7Gjh3bKA+jRCJBeno6bty4gWvXriErKwvm5ubo378/vLy8oKn5xHUCwP+FfZ08eRI//PADtLW18fHHH6Nr165vbJ/OqyAhkCcAwnIaFL/EEiC9DMisaFD0AKBZg/VLZhpTePiCwsOIp4fHUlECDFQBMw3Aqi1grw246AGWbR8e4x1HIpEgJiYGBw8eRFhYGJydnTFp0iS4uLg8UxiXhhmfPXsW58+fR1ZWFjw9PdGzZ094eXk12jtSVlaGq1ev4vfff0dpaSmmT5+OUaNGNdmeaYlEgoqKCmRkZMiMNCkpKcjIyMD9+/dRWFgIGxsbZGZmwtfXFwsWLEC3bt1eKTRbOh/v3r0bBw8exMyZMzFnzhwoKSlBKBTiwIED2LFjB+zt7fHRRx/JEqW8CSorK3Hs2DH89ttvMDQ0xJQpU9C5c2eZctrU1NbWIjg4GPv370dMTAxMTEygr6+P6upqCAQCKCoqQk9PDzY2NrC0tISVlRWsrKygqqr6Ws7nZaitrUVYWJjMY6ympoYuXbqgb9++sLa2fmP7+984tTVAXiaQfB/ISGrw9pUW/p8i1xSotgH0TAATS8DCHjCzAdSaPjLo345c+XuPqUc10nENCTiHFFxACRJBSGTeu6ZEAc1ASKABC1jCF1boBzP4oDW03gtPoHT/XEhICC5duoTs7GxYWVmhb9++6NKly1PDeN7k+dXV1ckEmpSUFCQlJSEjIwMikQgKCgowMzODlZUV7OzsYG5ujry8PFy8eBHh4eFo06YNunTpAh8fH9jZ2TWp5TcuLg779+/H7du30aFDB/j5+cHR0fGNCTdAg1KUkJCAffv24caNG+jRowcmTJiAsrIyLF++HG3atMF3330HKyurl26jrq4O6enpuHr1Ki5fvozc3Fw4OzvD0dERgYGBuH79Otzd3aGuro6amho0b94cWlpacHR0hIWFhUzQedkwL6FQiNDQUGzevBmZmZn46KOPMG7cODRv3vyFjldXV4fExEQEBQUhJCQEdXV16NKlC3r16gU3N7dnKnMSiQSnT5/Gtm3boKysjOnTp6NXr16vLXTtVRFJgPwq4E42EJ7b8IovalAGgZc3jUl7qqQImKoD7vqAhyHQwQCw0sQ7GyAvNR7s27cPiYmJ6NatG8aOHStLWvQkpHPPnTt3cObMGVy/fh0GBgYYMGAABg8eDG1t7Rf24FRVVSE0NBQ7d+5EWloaZsyYgTFjxry0QlJTUyPzPKWlpcnmxoqKCojFYjRv3hwZGRnIyMjAiBEj0L17d1y9ehVxcXFwcnJC37594ePjAw0NjZe+jyUSCXJycrBx40ZcvnwZX3zxBXx9fXHo0CH8+uuvcHd3x4IFC+Dg4PDGPV5CoRAnT57E3r17oaKigjFjxqBnz55Nug9bIpEgPj4ely9fxpUrVyAQCODm5oY+ffrA2NgYhYWFePDgAZKSkpCdnY2KigoAQOvWrWFjYyOLTDEzM3tnvILFxcW4fPkyLly4gJSUFFhYWKB79+7o1q0bTE1N/3GRD09FLAKK8oGkWCDhLpCe2BDe+TAe7LWg3BIwMAVsnABb5wZlUOndNyT+U5Arf+8hBFGJHMTjT8TiMDJw4+G7Ta/0/S9SJdAAHrDHMNhiMLRhDyW0eu1tvy5KSkoQFhaGixcvIiIiAtra2vD19UXv3r1hZmb2RpWYvyMSiVBWVobMzExZOI10/15FRQXU1dVhYWEBR0dHODk5wcHB4bF0/KWlpbh8+TLOnTuH1NRUWFpawtfXF56enjAzM3ulBVYikSAqKgp79+5FZGQk+vTpg4kTJ8LCwuKtKAISiQSZmZnYu3cvzp07h/bt26O2thbJycnYsGHDE8syNPa4eXl5CA8Px5UrVxAbGwstLS3069cPAwYMgLq6OsLCwrB06VIYGhpi2rRpsqx2SUlJKCoqQsuWLaGlpYV27drB3NwcpqamMDIygo6OznM9Z9IshlevXsWePXtQXFyMOXPmYNSoUa90/SoqKhAREYFTp07h3r170NHRke3ZsrOze+Y1vHLlCjZu3AihUIhZs2ahX79+UFdXf2cUQAmByjrgbh5wLR24lAoklzV45iRNvOwpoCGXga4K4GsO+FoAHQ0BjaaNrHtlamtrcevWLfy///f/kJ+fj0GDBmHEiBEwMTF54vel4YoJCQm4fv06AgMDUVRUBG9vb4wbNw6Ojo6vdP8JhULExsZi8+bNiI6OxsyZMzF27NhGKSTSUMvs7GxkZ2cjNTUVSUlJyMnJQUVFBRQUFGBkZCTzLhUUFODw4cPQ09PD+vXrYWZmhry8PAQEBODcuXOora1Fv3794O3tDTc3t5cuxyISiZCSkoKVK1ciIyMDo0aNwu+//45u3brh008/fav7xMViMYKCgrBnzx4IhUIMGTIEAwYMgIGBwSufU05ODm7duoWgoCDEx8fD1tYW/fv3h7e3N7S1tR/bh5yTk4P4+HjExsYiPj4eBQUFIInWrVvD2NgYTk5OMDY2hpGREczMzN66cSktLQ3nzp3D5cuXUV5eDhcXF/To0QOurq5NMn5vlZqqBi9fTBjw4C5QnP/m2lZQAJRbAVYOgJMnYOfckChGzisjV/7eI/jQAlOIWMTgD9zGj6hHFSQQv/FzUUAzNEdLOGIUnDARRvBES6j/o5LCCIVCmaXy3LlzEIvF6N69O0aNGgVbW9s3Hs4mTa3990QjycnJiI+PR25uLsrLy6Gvrw97e3u4u7vD3d1dljL9eYtPWloazp49i4sXL6KqqgoeHh7o168f2rVr91J1t8RiMSIiIrBlyxakpqZi2LBhGDduHIyNjV+q700FSeTm5mLLli3YsGEDWrVqhf/85z9YvXr1Sy3QpaWlsnvk5s2bkEgk8PX1xbBhw2BjYyP7nnRP3MqVKzFixAgsXrwYmpqaKCgoQEREBCIjIxEdHY3c3Fy0atUKurq6MDc3h4ODA4yNjaGvrw89PT2oqqo+IlBLy3pcunRJVtdx8eLF6NWrV5ONV3FxMYKDg3Hs2DFkZmbC1dUVo0aNgqur6zMF8Zs3b2Ljxo0oLi7GrFmz0L9/f2hpab11i329GMgRNCh9JxMavH4Kr0HpexKKCg2ev3GODUqg5Tsix1RXV+PatWv45ZdfUF1dDT8/PwwcOPCpz75YLEZhYSHCw8Nx6tQp3L59G+3bt4efnx/69u3bpGHMaWlp2LhxI27cuIEZM2Zg/PjxMDAweOy7QqEQRUVFyM3NRXZ2NhISEpCYmIjc3FwIBAKoqqrC0tISDg4OcHNzg4ODA5SVlREVFYUNGzagvLwcGzduhJubm+yYJBEREYE9e/YgPDwc+vr6GDFiBDp16gQLC4uX2pMnFAoRFBSEMWPGoFmzZujduzd2794NLS2td0JJuH37Nn755RdkZmZiwIABGDFiBExNTV/qua2srERMTAzOnz+PS5cuQUNDA3379sWIESNgYGDwXMOpRCJBVVUVHjx4gKioKERERCAjI+P/s3feYVFdWx9+hypdQIoiCogVBLGAgtJUwJLEEm8saOyNhBhLEqOJGnss0ViCaESjUWO9URQQbICoFEUBUVRABJQufWBmmO8P78ynETvY4vs8PDF62OXMmX322mut36KiooKGDRtiYGBAhw4dsLCwwMjICCMjIwwMDF6qtuCrIqtbe+TIEc6ePYuioiJOTk707NmT1q1b14uoWb0iU+68kQixZ+D2TZCI6jbE83lRUATthtCtF9g4gEGTD+qgr8gH4+89Qfo/z14OV4hiJQnseki85c3woH8ww4VOTMSCXqjT6K03AGtqasjIyODSpUscPHiQ69evY2dnh7e3Nx07dqxXgZJ/Ul1dTXFxMQUFBeTm5pKWlsa1a9dIS0sjKysLADMzM2xsbOjQoQOdO3d+6bw9mdz2wYMHOXXqFOrq6vJwJ0tLy+dOZheJRMTGxso3/hMnTqRv3771lk/4ItTU1JCbm8uff/7JqlWraNKkCS1atOCbb76hQ4cOz+3FrayslIcBBwcHk5OTQ+fOnfn0009xcHCoNdynurqajRs3smrVKr7//ntGjx79iAehrKxMXicrOjqatLQ0qqur0dPTw9zcXC7KIyu3oaOjI1cS9Pf3p1GjRsydO5dOnTrV6T2DB5vwrKws9u7dy5EjR72FDeoAACAASURBVAAYPHgwrq6utGnT5ok5LklJSSxZsoT09HQ+//xz+vXrh7Gx8RvzlleI4EYBHLkB+64+UO98HUbfwygIHvx81g6Gt4e2BqDAm9vLFBcXc+rUKfz8/FBRUWHixIm4urrWmmNVU1NDaWkp165d4+TJkxw9ehQVFRU++ugjxo4dWy8bXFnt0WXLlhEYGMjIkSMZNWoUzZo1o6SkhPz8fHJzc8nIyJCLiKSlpSEQCGjatCnt2rWjQ4cO2NnZ0aRJE/mzV11dzfXr1/ntt9+IjY1l8eLF9O7du9YxiEQigoOD2bZtG7dv36Zr1670798fW1tbGjVq9NwCX2KxmFu3bvHnn3/y559/oqioiLOzM4sWLcLIyOitMP7gQaj+5s2buXjxIq6urgwdOpQWLVo81zylUql8nlFRURw4cID8/Hx69uzJmDFjMDc3f+lwSFmURXx8PDExMcTGxpKfn4+mpibGxsa0atWKDh06YGxsjL6+PgYGBqirq7/W9UYoFBIXF8f+/fu5ePEixsbGeHp60rVrVywsLOpcTKdekEofePguRkJs+Ov19j0NFVXo2B26ez0QhnlLvi/vIh+Mv/eA/zf8EjjBbG4SQr3FYb8UAoyxpQtTaM0ANDB4aw3AoqIibty4wZ49ewgODsbc3JzRo0fj5eX1UoVwXxRZXaH79+9z//59MjMzuXr1KsnJyaSmplJYWIienh7t2rXD3t4eOzs72rRpU6e5BRUVFcTFxfHnn38SExODhYUFw4YNo1OnTpiYmDy1L6FQSHR0NPPnz0cikTB79mx69OjxWg3mJyHzkh05coSVK1fSvXt3evfuzZIlS9DX12fhwoXPLG8gFovJzc0lPj6egwcPkpCQgKWlJUOHDsXV1fWpOUkyVcxZs2Zx+PBh/P396dWrV61eElmIalxcHBcuXODy5cvk5OSgoaFBixYtaN++Pa1ateL27dsEBARgamrK8uXL61VFFB5smJOSkvDz8yMqKgpLS0smTpyIjY0NTZo0AR73MmdkZLBo0SLi4uIYNmwYgwYNwtTU9LUr4pZXw6V7sDMBQm49KtLyJhAA3ZrCd93ByuCBV/B172UKCwsJCgpiw4YNmJiY8PXXX9O5c+fHohqkUilCoZCMjAzOnz/PwYMHSU9Px8PDgylTpmBhYVGv45SFNi9dupQtW7bg7e3NgAED5KGBycnJZGZmoqenh5WVFXZ2djg4ONCyZctaD60kEgnp6ekEBARw5MgRZsyYwahRo545joKCAnbt2sXevXsRiUR89NFH9OrVi9atW6OlpfVEI0OmKnz9+nW54vLo0aPR19dnwYIFfPnll0yZMuWtKhmQmZlJQEAAISEhdOrUibFjxz71oEe2X8zNzSUhIYGdO3dy4cIF7OzsmDJlCl27dq3T77xsPU1MTCQqKoqzZ8+Snp6ORCLBxMQECwsLOnbsiKWlJfr6+ujo6KCjo1Nv5XX+SXFxMeHh4ezZs4eUlBSsrKwYMmQI7du3x8TE5I0dgD0TmeEXGQyXz0HJ/Tc9okdRUoK2HcFryANhmLfk+/Ku8cH4e8eRGX6F3OAIk7lNBLyG3L4XRYAAPVphzxe0Zzhq6L41BqDsJXLv3j25F0UsFvOf//yHSZMm1VmNuychFospLy+npKSE+/fvc/XqVeLi4khMTCQjIwMFBQVatmyJg4MDjo6OWFtbv5bC8TLVyq1bt3Lnzh2cnZ0ZM2YMLVq0qFX4oKKigsjISL777jv09PRYtmwZNjY2b4Xao8yoPnHiBMuXL8fS0pK1a9eiqanJ+fPn+frrr1FUVGTt2rV07NjxsXAuWUHz1NRU9u/fT0hICPr6+owYMYI+ffpgaGj43OMoLS3F29ubtLQ0du/eTbt27Z6pJCh7Ls6fP09kZCQxMTHk5uaioqJCs2bNmDx5Mu7u7mhpaaGtrf3UjWhdIBKJ5Hl9t2/fZsCAAXz++ec0a9bssbxSeLAhXLZsGWFhYXzyySeMGDECCwuL1/ZslFfD+UwIiIeIO6+ly+dCQQBtG8Gyng8MQIXXaADm5+ezd+9eNm7cSJcuXfj2229p2bLlY89NdXU1+fn5XL58mf379xMVFYW1tTUTJ058oqesrpCtzSUlJfJyKkuXLpWXkFBUVKRbt244Ojpib29P165dadiw4VPXa5n3aPfu3Wzfvp1hw4bxzTffvND35caNG/j5+REWFoaRkRGfffYZ3bt3p2nTpo/ln8kM54SEBDZs2EBcXBzTp09n7NixSCQSFi9ezPr16/n1118ZOHAgKioqb40BWFRUxJ49e/jzzz8xNzdnypQpdOjQ4TGDWrau3blzh0OHDvHHH39gYGDAlClT+M9//lPvJStkZGVlERsby9mzZzl//jy5ubk0bNgQCwsLrK2t6dixI2ZmZmhpaaGlpYW6unq9i7Lk5eURHBzMjh07yMnJwdXVlZEjR2JmZvbWhPrKkUofFGcP2QeJMVBR9qZHVDuKitDCCoZMBN3/haa/TffxHeCD8feOU0MNJWQSxFekcPi1iLq8PAIMscKeL7FhOCq8WelmmWBBUVER8fHxrFu3jtjYWPr27cv333//yoInT+oTHuR9VFZWUl5ezt27d+UenujoaHldODs7O5ycnHBycsLU1PSNnBQ+XKPKz88PiUTCmDFjGDx4MAYGBvIQlrKyMkJDQ5kxYwZWVlasXbv2jYrh/BOhUEhERAQ///wzKioqrF+/Xp4PKVOhmzBhAsXFxWzatIlOnTrJT4irqqrIy8vj8OHDBAQEUFVVxaeffoq3tzdmZmYv/IxIpVIyMzPp378/+vr6/Pnnn89dzFgWqrZt2zYOHTqEoaGhPP9KS0uLDh060K1bN7p3746+vj7q6upoaGjUy+ZLVuB969atbNiwAS0tLWbMmIGLiwsGBgaP9VlWVsaaNWvYv38/rq6ujB49Wp53VZ8IxQ/y+7ZcggtZ9drVSyHLA9zYFywa1r8BKJVKyc/Px9/fn99//52BAwcyY8aMx4QpJBIJZWVlJCUlsX//foKCgmjcuDHjxo3j008/rZfPTVYypLKykoqKCkpKSrh16xYRERFER0eTnJyMmpoaTZo0kasr+vv706JFi+dStZWtZ/v378fPz4+ePXuyaNGilwrFk0qlREVF4efnR3R0NO3atcPb2xtHR0f09PRQVVWVHzpduHCB5cuXU1hYyKJFi/Dy8pK3IRKJGD9+PKdOnWLPnj04ODi8kZy1JyEUCjl69Cjr1q1DWVmZadOm4eLigqampnz8ubm5hIWF8euvv1JcXMywYcOYPn06urq6b2weQqGQa9eucfbsWU6fPk1ycjJCoZDGjRvTvn17OnXqRMeOHTE0NERNTQ01NbWXFvJ5FrIDh7/++os//vgDiUTC0KFDGTFihLz/t4KKsgeG36WzUF76pkfzdBQUoX0XGDwe1DU/GH8vyAfj7x1GipQK8jnNAmLYyNsV6vlkTLCnG9Npy6A3UgtQKpXKw4iys7PZtGkTO3bsoE2bNixYsABXV9c6fQHIjMzq6mqqqqqoqKjgypUrREVFERkZSUJCAurq6nTs2BFHR0fc3d1p27btW1UwViKRkJmZybp169i1axdmZmbMmTMHR0dHlJSU2LdvH9999x1ubm6sX7/+rRD2kCEWi4mOjmb16tXk5eWxYsUK7O3tH7lGJgQzatQoUlJS2LJlC05OTohEImJiYvj555+5fv06Xl5e+Pr60rp161cKYZJKpcTGxvLxxx8zYMAAli5d+kw1zKqqKi5fvsymTZuIi4vj888/Z+rUqUilUq5evcqpU6c4efIkly5dAsDGxobOnTvj4eEhL9+hqqoq37TX1TMulUpJS0tj3rx5HDt2jM6dOzN//nzatm2Ltrb2I15NkUhEQEAA/v7+tGrViilTpmBvb19vBqC4BqLugP9FiMioly7qBEUB2BnB+r4PisTXVz3AmpoaCgoKmDNnDkePHmXmzJmP5erV1NRQVVVFRkYGf//9N3v27EEsFjN06FDGjx//3F7uFxmTSCSSr43Z2dnExsYSHh7O+fPnKS0tpUmTJnTr1g13d3d69+6NtrY2kZGRjB07Fn19ffz8/Gjbtu1TvWayNf/AgQOsW7eOjh07snz58leOopAJuGzatIkbN27Qo0cPRowYQceOHRGLxZw6dYrly5ejpaXFypUr6dix42PjKisr45NPPuHu3bv897//xdLSss5Ec+oCiUTC2bNnWbVqFXfu3MHX15eBAwciFotJSkri119/JTw8nF69ejFv3jxat279pof8GAUFBVy5coXw8HDCw8O5fv06ysrKtG7dmk6dOuHg4ECnTp1QV1eXr5N1fXgpFou5c+cO/v7+/Pnnn5iamjJz5kycnZ3R0dF5s6UhxCI4HQjhR99+w0+GQAAu/aHPZ6Co9MEAfAE+GH/vKFKkVFPGVfbxN+Pe9HBemBZ40pNFNKbTaw3/lCWjFxYWsmvXLlavXo2ysjLffvst48aNq7MTV9kJtkgkorq6mtzcXCIiIjh79iwnTpygsLAQMzMz3NzccHZ2xs3N7ZnhSm8DIpGIS5cu8eOPP3Lu3Dn69OmDpaUlq1atYty4caxYsaLeTk9fhpqaGq5evcr69euJj49n3rx59OnTp9ZrZZuw0aNHExYWxrJly4iNjeXQoUPY29szd+5cOnfuXKcJ+4cOHWLUqFH88MMPTJ06tdaQSdnp+unTp1m7di25ubl8+eWXjBgx4rHNiUwcIzIykuPHjxMcHExhYSFNmjTBzc2Nnj174uTkhKamJsrKyigrK9fpJjM4OJg5c+aQkZGBt7c3vr6+NG7c+JE8G6lUyuHDh/nll19QUlLC19cXT0/POg93k0rhah6sjX6Q4/e2oyCAgW1hXg/QVq3bfYzswCsnJ4fx48dz6dIl1q5dy0cffSR/nh9eG48dO0ZAQAD37t1j4MCBjBs3jlatWtXZWCQSCWKxGJFIRH5+PleuXCEyMpKIiAhSUlLQ0NCgQ4cOODs74+7ujp2dXa1rY3JyMsOGDaOiogJ/f3/s7e1RU1Or9Tmqrq7m8OHD/Prrr5iYmLB8+XKaNWtWJ3OCByGShw4dYsuWLeTn59OrVy/09PTYv38/7du3Z+XKlTRv3vyJ9+Tu3bv07t0bXV1d9u7di7Gx8Vv1PpBKpVy7do3Vq1cTFBREv379UFBQYN++fbRt25Yff/yx3sOA6wqRSMTdu3c5d+4coaGhREZGkpubi56eHvb29jg6OtKzZ095jruysrLcMKuLNUokEpGUlMSiRYsIDQ2lR48eLFy4kNatW8u9gK/1HSqVwrXL8NfG/9Xve4cQCGDMTGjXEXgDidPvKB+Mv3cUCSLuEsdOvBBSwrvi9XuA4H9lIAbSh/WoUf8qkDLvW2lpKWfOnGHRokXcuHGDYcOGsXDhwpcqZ/DP9mV9yMKWZIWyT5w4QXR0NAoKCtjY2NCnTx/69OlDhw4dnpnr9TYi2yT+9ddf+Pj4UF5ejru7O3v37kVTU/OtCVmSSqVkZGSwbt06zpw5g6+vLyNHjnzq9bIwYE9PTy5fvoympiZLly5l9OjR9Raas3jxYpYtW8bWrVvp37//I8azzPA7fPgwa9asQU1NjZkzZ+Lp6fnMdmWb7OjoaIKCgggKCiI5ORlNTU26du1Kz5498fDwwMTEBBUVFRQVFevks6usrMTf35+VK1eipqbGN998wyeffCLPnZW1HxUVxcqVK0lPT8fHxwdvb+86NQCLKuHnKDh4DarE784K+ZMrDGkHanV0kC1bm9LT0xkyZAg5OTny2nIy77VEIqG6uppTp07x66+/kpCQgKurK1OnTqVbt26vbITInkWJRIJQKCQpKUkejnfp0iXKy8sxMzPD2dmZ3r174+jo+Nxr8r179xgxYgRXr15l7dq1eHl5PSacIpFICA4O5pdffkFHR4cFCxZgbW39SnN6EhkZGfz+++9s3ryZoqIi3NzcWL16NZaWls/8fsXHx9OnTx/c3d1Zt27dGw2b/CeydT8xMZGffvqJwMBAdHV1mTVrFl9++eW7oWL5BIRCITdv3uT06dMcP36ciIgIqqursba2pkePHri6uuLs7IyqqioKCgryz/FVPxuxWMzJkyf5/vvvuX79uvwgUF9fv06NzWdSch82zIPCXKh5m1OHakPwIOxz1grQavjB+HtOPhh/7yBSpBRzm2Cmk8IRahC/6SG9MAIE6GJBF6bSla/rzfsne4ZlRbVXr17N8ePH6dWrFwsXLsTKyuqV2pb9iEQisrOzOXv2LCEhIZw6dYr8/HwaN25Mjx496NOnD3379n0tQi31iex+FhcXM3HiRAIDA+nfvz/Hjh3D1NSUpUuX4uXlVeehhS8zzoKCAn755RcCAwMZPXo0X331Va2bWNmcxGIxJ06cYObMmWRkZGBnZ8f58+f56quvmDNnDtra2kDdz0kqlTJhwgQCAwPZt28f9vb2ciGUqqoqNmzYwJYtW3BwcGD69OnY2Ni8dF9paWmEhIQQHBxMREQE5eXlWFhY4OLigoeHB127dsXAwACBQCC/Vy873+zsbJYtW8aOHTuwsbHh+++/x9HRUe7dFAgEXLt2jbVr1xIWFsaoUaOYOXNmrZ7jh99FzzOeGin8Fge7EiC75G2UwHoy6kpwYAi0agRKr+j4ka1PV65c4ZNPPkFNTY1Dhw7RunVrFBQU5AcesbGxLF++nIiICLp27Yqvry89evR46Q297POqqalBKpWSl5dHeHg4oaGhnDx5krt376Knp4eDgwOenp64urrKjaOXoaysjClTpnD06FHmzp3LyJEj5cXDpVIpZ8+eZdmyZQDMmTOHbt26vVQ/z0JW6+2XX34hLCwMPT098vPzMTAwYPr06Xz22WeoqKg81Zg+fvw4//nPf5g8eTLffvttreJarxPZM5Sbm8vff//NunXryMnJwcrKimvXrmFnZ0dAQMBbVariVZBFgJw7d45jx44RGBjI7du30dXVxdnZGVdXV/r06UPTpk3leaayeb/M/GX7h+3btzNv3jzEYjHffPMNU6ZMkXux6/W+SqVw4He4GAFVwvrrpz5RUIBOLjBkwoM/vwfPYX3zwfh7B6mihGQO8l/GvOmhvDJN6crHbMGQlzfCnoRsY3P9+nU2btzI7t27sbCwYPbs2QwcOPCFF9SHvw8y4+LSpUuEhYURFhZGUlIS6urqdOrUCTc3Nzw9PenYseNbFbrzKsg2AVlZWQwfPpzk5GT279+Pi4sLt27dYubMmQQGBtKrVy+WL19Ou3btXu/p5UPjrKysZPXq1ezbt4/PPvuM6dOnP7aRfXiDmpKSwg8//MDBgwfp378/a9aswdzcnD/++ANfX1/69evHqlWrMDY2rpf5CIVCPv74Y1JTU9m3bx/W1tZUVlby448/cujQIT777DOmTp2KmZlZnfVZUVHBhQsXOH78OEFBQfJwu44dO9KzZ0969+6NlZXVI0IaLzPvc+fOMX/+fGJiYvDw8GDatGmPKKpmZmayefNmtm3bxkcffcSSJUse8dzIPieRSMStW7fk5SyenNsFcXdhaSTE3n2ZO/NmURSAZwtY4AoG6i+/j5GtfydPnmTIkCFYWVlx6NAhDAwM5NfcvXuXFStWsGPHDszNzeVe5Rc9pPrn2iiRSLh8+TLHjh0jKCiIS5cuoaioiK2tLb169aJfv35YW1vXaQkYiUTC/Pnz2bhxI4MHD2b27NmYmZmRnJzMjz/+SHFxMbNmzcLDw6PO+pQhm//p06dZtmwZhYWFzJgxg0GDBpGSksLatWvZu3cv7du3Z8GCBbi5uT11U79t2za++uor5s+fz5gxY56ZD1wfyOZUUlJCaGgo69ev59q1awwcOJDp06djampKVFQU48ePR1NTk3379tGqVav3wgB8GFlOc1hYGEePHiUsLIyqqiqsrKxwdXXF1dWVHj16oKur+8i7/mX2F/fv3+fnn39m7dq1tGrViqVLl+Lu7i4/DKyXe5ueAv5LoKqy7tt+nQgAn5+gecsHBuAHnsoH4+8dQ4qUXBL4m7HcJR4pkjc9pJdGgAB1GmHFZ/Th1zrz/sme29TUVLZu3cq2bdvQ1tbGx8eHsWPHvpCQysPfgerqannC+PHjx4mNjaWsrAwLCwvc3d3x8vLC0dERfX39OpnH24Qs5CchIYHhw4dTXV3NoUOHsLW1feS6kydPMmvWLFJSUhg/fjzTp0/HxMTktYa3isViVq9ezY4dOxgwYIBcde6f85EZ8KtXr2bt2rWYmZnxyy+/4OHh8chYjx49yoQJE2jZsiUbN26kTZs29SLGUFBQQN++fVFQUGD58uVs2LCBCxcuMHPmTIYNG1avz1VNTQ1paWmcOXOG4OBgoqKiyMnJwcTEhO7du9O3b1969er1iOEAz78ZEYlEHDx4kBUrVpCZmcmQIUOYNGmS3PNeXFzM/v37Wbx4Mba2tvz2229yQ1v2+xMmTCAhIYHY2NinPk/iGpgZCsG3oFL0kjfkLcCvH7g2B7WX0BWSfV//+OMPpk6dyscff8z27dvloctCoRB/f3+WL1+Oqqoq06ZNY/jw4Y99vs/q42Hy8/M5deoUgYGBBAYGUlRUJM9r9vLyolevXq8lr/mPP/7ghx9+wNbWlvHjx7Nz504yMzOZOXPmSx36PQuZkb19+3a5yvG3336Lk5OT/JrKykri4uJYsmQJJ06cwNPTk59//lkujFLbmObNm8f69etZtWoVgwYNeq01AGUGfHh4OGvWrOHcuXN0795drvQpQyKRkJqayqhRo0hPT+evv/6iR48e750B+DCyQ7OgoCACAwO5efMmampqdOnSBRcXF3r37l3rwcaL3JPr16/z3XffERgYiJubm3xdlIVpP03U6IX6k0rBfzGkJoP43YsgewSBAFq0gwmzP4i/PAcfjL93DCH3SWIvR5j0podSZxhhwyD+xIi6ycHIzc1l165dbNq0ifLyckaPHs3UqVMxMjICXmwRzs3N5fTp0wQHBxMaGsrdu3dp1KgRjo6OeHl54ebmhrm5+SPhSu/ji6+yspITJ04wceJEmjVrxv79++VG3cPINp0BAQEsXrwYkUiEj48PY8aMkRcBr2/8/f3ZsGGD3MvUpEmTx8ZZWlrKwYMH+fHHHxEKhfK8ldpyzqRSKZcuXWL06NEoKCiwdu1aunbtWucKlVKplJSUFD755BMyMzMxNjbm559/xtPT87HaYXXNP9f68vJyrl69SmhoKMePHycmJgapVCrPWfXy8sLe3v65N/Ky9gsLC+Vqn1KplPHjxzNq1CiMjY0RCoWcOXOGGTNmoKmpSUBAAObm5vj5+REfH8/OnTuRSqXs2LGD4cOHP/F+nE6HZWchOf+VbskbRVEADk0f1P9rrvPs6/9JZWUlK1euZMGCBfj4+LB69Wr5gUVgYCAzZswgOzubiRMnMmPGDHmpkRd5xkQiEYmJiRw7doxjx45x/vx5FBQUsLe356OPPqJnz561Rj7U9/oolUo5efIkM2fO5Nq1a5iZmTFv3jw+/fTTeslHrqysZNmyZezcuRMvLy+++uorWrZs+VitP9m1ISEhzJ07l7S0NCZNmsSCBQvkIeUPI5FImDp1KseOHWPdunX07t27Tj2lTyMmJoZVq1Zx4sQJ7Ozs+Oqrr+jdu3et9U/hgdjNpEmTOHr0KJs3b2bEiBGvZZxvgn+ulZmZmfJ0jxMnTnD37l0aN25M165dcXFxwcXFhbZt275QSPPDnuQ5c+Zw5coVBg4cyLfffkubNm2eqApaWFhIcnIyqqqqdO7c+dkdZdx8kOv3rht+D+MzH8xaPSgF8YEn8sH4e8e4y0WOM4vbhL+TuX6PI0ATQ2z5nN4sf6WWysvLOXToEOvXrycrK4tPP/2USZMmyUNRnqcGVE1NDZcvX+bo0aMcO3aMS5cuoaCggJ2dHb1796Zfv37yMgwPt/c+Gnwy7t+/z4EDB5g9ezY9evRg69atcgn/2pCtGzk5OaxcuZIdO3bQtGlTpk+fTt++fR/zwtUle/fuZcmSJfTo0QNfX18sLS0fGWdpaSknT55k8eLFXL9+neHDhzN//nx5ntvT5nT79m0mTpxIamoqCxcupH///mhpadXp+CMiIhg9ejTp6emMGjWK77///rE5vA5kn6HMA5Cbm8vZs2cJDg4mJCSEnJwcjIyM8PDwoF+/fnh4eDyXZ0LmcU1LS2PLli3s3r0bfX19vvjiCz777DOUlZW5dOkSX375JQUFBcydO5fJkydTVVUFPPieGRkZcePGjdqVUYEvg+BEGlS8w14/eBDF9NsLev9k3uxZs2axd+9eVqxYweTJk+X5ldOnTycsLIz+/fuzePFiWrZs+dyh2WKxmJycHPlh2IkTJ8jNzcXY2JiePXvSt29fPDw85GUjXiVU+FURCoVMmDCBI0eOoKWlxffff4+3t3edf1/z8vL45ptvOHPmDJMnT+bzzz/H0NDwqeuIrPbftm3bWLhwIQKBgDlz5jB16tRHjFNZ+PrYsWPl+eru7u71Kqxy/fp1Vq5cyd9//425uTlffvkl/fr1k4cB1zavh2vXLlq0iGXLlvHDDz/w448/vtfvRRkPr5VVVVVcv36d06dPExQURGxsLJWVlZibm8tVvV1dXZ+7XIosH3Dfvn0sW7aM3Nxchg0bxtSpU+XlQB6+9vTp00ydOpWGDRuyc+dOWrRo8fQOdq6FK9EgeR/2koBAAdrbw9ApoPruChC9Dj4Yf+8QEqq5zhEOMBwJ1W96OHWIgMbYMZpTqPL4CeizqKmp4cSJE6xYsYIrV67g7u7OlClTcHBweGZxa1nB4zNnzshPsAsLC2nWrBnOzs54eHjg7u6Ojo4OioqK8tPzf8NLDSArK4tNmzaxadMmhg8fzpIlS567lIPMcEhKSmLVqlWEhobSsWNHfH19cXFxqfNNTFRUxXs66gAAIABJREFUFNOmTaNdu3Z8/fXX2NjYyMdZVVXFxYsX5UIMTk5OzJ07l06dOj23N+DhjbXsJTtq1Ci5R/lV2bt3L1999ZVc4n7r1q1y4QdTU9M66eNl+Kd4R1VVFYmJiYSEhHDmzBmioqJQUFCgS5cu9OvXj/79+8sFRZ7Wplgs5sqVK/j5+XH06FHat2/PjBkzcHd359atW3zxxRekpKSQkfFogT4lJSUWLlzIrFmzHjtNv5YP00Leba+fDCUBDGgDXzlAs+fw/kkkEtLS0vDx8eHKlSts2rSJfv36cf/+fRYvXsxvv/2GlZUVy5cvp3v37s+VR3T//n3i4+MJCQnh5MmTJCYmoqysjK2tLR4eHnh4eGBjY4OCgoL851lt1jc1NTXMnj2bAwcOMG7cOJKSkjh//jxDhw7Fx8eHxo0b10k/KSkpfPHFF9y5c4e5c+fSv3//px6KyZB9nyQSCXl5eSxevJgtW7Zga2vLihUr6N69u/w+yt5PY8eO5e7duyxduhQ3N7c6rwdXVFTEb7/9hp+fHxoaGnzxxRcMGDBAXm7ieeckFovZsmULX3/9Nd7e3mzYsKHOS7i8zTwsAldTU8P9+/dJTEzk9OnThIWFER8fj7KyMnZ2dvJ8QScnp6d+ng+rUO/YsQM/Pz8EAgHjx49n6NChNG3alOrqam7evMmWLVtYu3YtqqqqODg4sHfv3ieHcgsrYMFkqK6qp7vxhlBUgu/WgK7+A2PwA7Xywfh7hygijWjWcZ61SN8p/bpno0NzvFhNWwa90O8lJiayfPlywsLCsLW1xcfHh+7du6Otrf3El1Z1dTVXr17l+PHjhISEyEPaOnTogIeHBy4uLtjZ2clr+8g2mP+WFxj8f00nWeiPr68vU6dOfakXeU1NjTykb/369Vy5coUePXowZcoUnJyc6iQH6Nq1a0yYMAFtbW1++OEHunTpgqKiIlKplOvXr7Nlyxb27duHqakpPj4+fPzxxzRo0OCF1QWlUiklJSUsWbKEAwcO0L9/f3x8fGjZsuUrjd/f35/vvvuOjz/+mIULF2JkZMSaNWsICAhg3LhxfP755y+Uj1WfPFzSRCwWk5ubK8+DDQ0NpaysDHNzc3r37o2npyeOjo61egVl7ciU9TZu3Eh0dDSurq54eHjwxRdfIBQKHwuzAtDW1iYpKemx0OPfYmB7AtwrfXdKOzwN3Qaw5SPo1PjpKSxVVVXExsYybdo0qqqq2LRpE+3bt2fPnj0sXLgQqVTKzJkzGTNmDOrq6k9cG6uqqkhJSeHMmTMcP36cixcvUl5ejqmpKU5OTri7u9O9e3d5QeqHD8TeFlasWMHGjRuZNm0aQ4cORUlJiY0bN7Jr1y66devGzJkzadeu3Sv1ERkZKS9vsHDhQpycnF64vunDHrOrV68yd+5czpw5g5eXF0uXLqVFixbyNSw1NRUfHx+qq6v54YcfcHFxqZN1UyQSsWPHDlasWEF5eTne3t6MGTOG5s2bo6Sk9MJ9yDxVQUFBjB07lm7duhEQECBXXv23IVvjZDUtc3NzuXDhAmFhYZw8eZLc3FwMDQ3lKqJeXl7yEOza2hKJRKSnp7NlyxYOHDiArq4uEyZMQEFBgQ0bNpCWlkZp6YMC7VpaWri4uLBnz57adQ5iTsM+f5C8u7oRtSIQwKCx0NkFVOo2NeN94oPx9w6RwVnC+I4Moni3xMufjRp62OBNH9Y+1/U5OTmsWbOGXbt20bhxY6ZOnYq7uzuGhoaPefvEYjH37t2TF1iPiIggJycHXV1dHB0dcXd3x9XVFV1dXVRUVORG37/xZQUPTqTPnj3L8uXLyc7OZubMmQwaNOiV6tzJPD0FBQUEBgYSEBBAXl4eAwYMkIupvCx5eXmMHj2akpISFi1aRLdu3VBRUSEtLY2dO3fy119/oaKigre3N8OGDUNPT++VTqNlUuAyMSFra2umTZtGp06dXrgtiUTC999/z+bNm5k2bRqTJ0+Wb5QqKipYuHAhISEhTJkyhWHDhtV52Nqr8nCpk+rqaiorK4mJieHkyZOcOXOG1NRUdHR0sLe3p3v37ri7u9OiRYtHvL6yZ+PevXsEBwezYcMGUlNT5ZuY2lBWVsbHx4fly5fLPVhSYMRBiM4C0XuyPAqAxW7QvxXoPMFRXlpayvHjx5k/fz5GRkasWLGC7Oxsli5dSnJyMkOGDGH27NkYGRnVWoIlOzub8+fPExkZyZkzZ8jIyEBLS4sOHTrg5OREt27daN26NaqqqqioqLyUUfC62LlzJ3PnzsXb25tJkybJDwfKysrYu3cv/v7+GBsb8+233+Lo6PhSfezbt4/vvvsOa2tr5s+fj5WV1TMjTJ6GLEKivLycEydO8NNPP5GXl8fnn3/Ol19+iZGREVKplJiYGGbPnk2jRo2YMWMGXbt2fan+ZERERDB//nwSExP56KOP8PHxwdLS8qmHA887H5FIxIULFxgzZgyGhoYEBAS8UimP94GH10qRSERlZSWpqalERkZy6tQpzp07h0AgwNbWFmdnZ5ydnenWrRuqqqqP1awUCoVcvHiRgIAATp06RVFREWVlZUgeMuQEAgE6OjoMHjyYTZs2PX7v//jlQcin9D1ZLOUIoH0X+M9kUH89ObLvIh+Mv3cEKVKucYj/MpYqit/0cOocBZRojB3jOY+AJ28shEIhO3bsYN26dYhEIkaOHMngwYMxNTWlQYMG8k3J/fv3SUhI4PTp00RGRnLt2jUAWrZsSbdu3ejRowdWVlY0aNAANTW1R37334xQKCQwMFAeOjJr1iycnZ3rrMB5TU0NlZWVZGRkcOTIEfbu3QuAt7c3n3/++QvnA5aXlzNx4kQSEhLkIVFVVVUcOnSI7du3U1BQQP/+/Rk6dOgjG5tXRZa3ExQUxKZNm1BSUsLX1xcvL6/nal+Wz+Pj40NgYCA//vgjI0aMeEQNUVZba968ecTHxzNlyhSGDh1a50IzdYlUKpUbgUKhkPT0dKKjozl37hwxMTEIhUKaN29O165dcXV1pUuXLvL6YDU1NZSWlhIaGsrQoUMf2cjUhpaWFhEREVhbW6OoqMidYhhzGG4UvqbJvgYUBTDcGiZ0ql34JTc3l7179/Lbb7/Rvn17Ro4cycGDBzl27Bg2NjbMnj0bW1tbeakAgUCAWCzm8uXLnDp1irNnzxIfH091dTWtWrXCwcGB7t2707p1a3R1dWnQoAGqqqrvxGFYeHg4EyZMoGfPnkyfPv0RIS6pVEpFRQWnTp3Cz8+P4uJivv766xdS/5RKpWzYsIHly5fTt29fpk+fjoWFRZ3eG6FQSF5eHjt27GDr1q1oaWkxefJkhgwZgqamJqGhoaxcuRIzMzN5iPiLIMu3XbhwIUFBQdjY2PDNN99ga2uLrq5unQriyCJsJk2ahFAoZP369Tg4OMgPa/7tyA69qqqqqKyspKioiLi4OM6cOUNERAR5eXkYGhri4OCAo6Mjrq6umJqayu9fdXU1JSUl7Nu3j3Xr1pGcnPxYHwKBAD09PXx8fFiwYIGs4wf/nT8Jyt6/vSQAGtowcwVo6XxQ/XwCH4y/dwQh94lnG8FM5/0IaHqchpjxOSfRxbzWfz916hRLly4lJSUFT09Pxo0bh6WlJTo6OkgkEm7cuMH58+cJDw8nISGB0tJS9PX1sbKyomPHjtjb22NkZISGhgYaGhqPnaj92yktLWXPnj1s3bqV5s2byzcXdWX4PYxYLKa0tJTk5GQOHjxIUFAQxsbGjB07liFDhjzXBkEikchzexYsWICXlxdxcXFs3ryZlJQU7O3tGTJkCJ06dUJHR0cuk12XlJeXExUVhb+/P/fu3WPChAkMGzbsqX3J6jlNnjxZ7mHt169frbW8ampquHnzJkuWLCEzM5MpU6YwcODAd+agQiQSUVFRQXl5OYWFhSQkJBATE0NcXBzZ2dloamrSrl07unbtSpcuXaiursbX15fLly8/s21FRUU+++wz/P390dDQ4NgNWBwJmSWvYWKvCQFgawwLXKCD8aP/lpqaSkBAAIcPH6Zt27ZoaWkRGRmJrq4u48ePp3fv3hgaGqKiokJhYSERERGcPn2aqKgocnNz0dbWxs7ODgcHBzp37oyhoSGamprytfFdecYArl69ysiRI2natClLly6lVatWj+VRyQ5c4uLi2Lp1KwkJCYwdO5YJEyY8c22QhVvu3r2bcePGMXr0aExMTOpFPVS2PqSmprJ9+3ZCQkKwsLBg0qRJODg4EBISQkBAADY2Nvj6+j5X1IQsXH3Lli34+/vLSx+5urpibGxcb+9CsVjMjRs3mDVrFrdu3WLu3Ll8/PHHb10Ew5tG5hWsrKykrKyMsrIy0tLSiI2NJSYmRr4etmzZks6dO2Nvb0/nzp25f/++PKS5sLD2Uy+ZSNaKFSvw9vZ+YPzl34Pl099Dr9//EAjgi5/A1OJBDuAHHuOD8feOcJ90otlAFCtfua3b4RDzGxTdBEUVaP0JmLlBdjRcPQDK6tDuU+gw+tXH/SJo0ZgB/EELesn/TiqVkp6ezqpVqwgJCaFly5ZMnjyZDh06oKCgwJUrV4iNjeX8+fNkZGSgrKyMubk57du3p0OHDrRs2RJtbW20tbXR1NSs80T594WcnBx+//13jhw5QqdOnZgwYQJt2rSpdy9TdXU1eXl5xMXFsXv3buLj47G3t2fq1Kk4ODg89XfXrl3LmjVrmDZtGq1ateLgwYPExMTQokULPv30U7p164aRkVG9GK8PU1FRwaVLlwgICCAxMZFhw4YxYcKEWvMspFIpd+7cwcfHh5SUFH7++Wfc3d3R1NR8ct06sZi4uDjWrFlDRUUFvr6+9OzZs17nVB/U1NRQUVFBSUkJxcXFpKWlER8fT3x8PDdv3qSyshIFBQVSUlIQP6f0uJaWFv/973/p3r07/vEqbL8MeRWvdjwmlUoRZV2i+PgSaspykUpEKDZsilb3qaiaOyFQer2ei4YNYENf6G76/+OLj4/Hz8+PiIgItLS0KCkpQUNDgz59+jBkyBBMTEy4e/cuERERREZGkpiYiFAoxNzcnDZt2uDk5ESrVq1o2LAhOjo6aGpq1osh8zrIzc1l5MiRlJeX88svv2Bra/vUwyOhUEhycjK7du0iNDSUAQMGMHPmTDQ1NR+7ViqVUlxczMyZMzl58qS8cLuhoWG9hzDK8mkvXLjAjh07uHHjBvb29gwcOJDk5GSOHj2Kg4MDvr6+mJiY1NqGzLsUFBTEL7/8QnZ2Nh9//DGjRo2iefPmr6V2oEyIaNmyZZw9exZvb28mTJjw3IqX/1aqqqooLS2lpKSEnJwc+VqZlJREQUEB2traKCkpkZGRQXZ2NjU1TzbkBAIBZmZmbNmyBXc3N0iKg20r/98L+JJkl1Wy5mIKJzJyUBAIMNPWYJGTNS11tfjpXBLHb+egpCBgQTdrnJsaoKjwGteXYT5g4/Ah7+8JfDD+3hHucZkoVpHArlcu7F6RD5kXIPwnqBGD4yxo4Qm3z8CtUDCyhpb9QKdZHQ3+OdHECDd+ohMT5SeV27dvZ/fu3UilUoYPH46hoSF5eXkkJyfLvXvGxsZYWlpia2uLpaUlRkZGNGzYkIYNG6KmpvZObmheJ7du3cLPz49z587h6urKyJEjsbCwqBdPWW3IQrLS09O5cOECBw8e5N69e/Tr14/JkyfXqs537NgxvvrqK1xcXFBRUSEuLg4VFRUGDx6Mi4sLLVq0eK1FkSsrK+UbyoiICPr06YOvry96ev+/tsqUT2fNmkVeXp68JMXz1PATCoWcPHmSLVu2oK6uztdff/1SOYZvCzLV0OLiYgoLC8nJySExMZEjR45w/PjxF2rL09OTnTt3svSiPsG3BJS9ohCyVCqlMukwwuTjqFn1A2kNJWFLkSLAYNx/UdRs9GodvCAKAtjQB3pbgAISTp06xebNm7lw4QJVVVVoamri7OyMu7s71dXVZGdnEx0dTWZmJqqqqpiZmdG6dWu6du2KsbExurq66Ovr13vtyNdBeXk5Pj4+REdHs2bNGpydnZ/Li1VdXU1aWhoHDhxg3759ODs7M2fOnEcMEqlUSnZ2NjNmzODy5cvMnj2bvn37oqen91q9ouXl5WRkZBAeHs7ff/9NcXExrVq1oqKigqysLLy8vPjiiy/k5RhkiEQi4uLi8PPzIy4uDmtra8aMGUO7du3ktU9fZ9F4WXmXwMBAPD09mTp1KmZmZu/8M/g6kEgklJSUUFRURFFREWlpaSQmJnL06FHi4+Of67BMIBBgZ2fHjh07aJt7C8Gx3a8s9lIplnDhbgHfRVzhelEpu/t2pbtJIzSUlbheVIrvqUv0bGbEGCszDNReY6SVgiL0HgQ9+oDah7y/2nia8ffBRfIWUU0ZldSNfrl6IzB3g+LbcGUn5CaCZmOoLASTLtCq/4NrakMqBUkVhHwN7b3B1LHuQqoliCmWZlItqub06dNs2bKFa9euoa+vj5qaGoGBgVRUVADQrFkz3NzcsLa2pkmTJhgZGWFgYPDBu/eCXLx4ET8/P27dusWAAQMYPHgwzZo1e62J+QKBAA0NDdq2bYuJiQmtW7cmJCSE4OBgYmJiGDRoEMOHD5cb8hcvXmTBggWoq6sTGxuLqqoqPXv2xM3NDVtbW/T19V+7sICamhrW1taMGzcObW1tgoKCKCkp4euvv8bU1BSRSERUVBQLFy6koqKCpUuX4urq+tzCMw0aNKB79+4UFBSwe/duNm/ejLa29iurjL4pBAIBDRo0oEGDBhgZGdGyZUt0dHQIDw9/4bYiIyM5ceIEt0QfUSWuRdXuJVAx7YKyYRuU9B6EoAtvnaHs7CZqKgpQUNdF8L8CwuWxOxHeCkdaUQSKyijpW9CgVc869RDWSKFICPfLhZwM+puAgACio6MRCAS0aNECAwMD7t69y++//05lZSX6+vqYmpri7u6OtbU1jRo1wsDAQO6teh822zKRlCVLlhAeHs5PP/2Eo6Pjc4cvqqio0KJFC0aMGIGWlhZ//PEH3333HXPmzKFFixZyteM5c+aQnp7OTz/9hIeHx3OVcqhrZGujkZER1tbWhIWFERkZyd27d6msrCQwMBBtbW0mTJiAmpoaYrGYjIwM/vrrL44cOYKqqipTp06lR48etG7d+o3kbwoEAiwsLJg8eTK6urocOHCA4uJipkyZQvv27T+8s5+BoqIiurq68pz4du3aoa+vz7lz5547SkIqlXL58mWmT5/Ots/6YMSDsPJXQU1JkQ4GDRnUsimLLlylqEqEpooyUqkUUy117gur8W7b/ImGn7imhg3xtzBQU8G9mRHGGnVY/ul+IdS8Z0qmrwnF+fPnv+kx4O/vP3/ixIlvehhvnEJucpPjFHO7TtpTVAZtEyjOgMxzUHjjgafPoidoNXny70klkHwQIpeCuTsYtKs7409arUhRvDb7V0Wza9cu4uPjyczMRFFRET09PQwMDOjRowf9+/end+/euLm50alTJ8zMzNDX1/8g2vICyArC/vrrr2RlZTF48GA+/fRTmjZt+sYU2WQGgYmJCa1ataJ58+ZkZGQQFBREUlISOjo6KCgoMGPGDC5cuICKigp2dnaMHj2aTz75BBsbG3mJjzeB7AVtZmaGgoICJ06cIDk5maZNmxIfH8+yZctQVFRkzpw5uLm5vbBCoKqqKo0bN0YkEnHu3DlycnKwsbFBQ+PdP9lUUFCgpKSECxcuPFe+38OIRCLu3LlDfhMvKpV0kL7ilkYgEKDQQAtFjUYIFBQRKCgiuptEVUoYGvajUdQyQPC/+lEV8ftRUNVApXkXFHWaIM69TnXmRRTVdVHSt3ilcTyMlWYRUYe3sf13Py5dukR19QP3pkgkQl1dHSMjI9q2bYunpyeenp706tULJycnrKysMDY2RktL660ryfCqbNu2jQ0bNjBx4kS5Efci81NQUEBLSwtzc3N0dHQIDQ0lNjYWc3Nzbt++zbx588jLy+P777+nT58+Tw3Nfh2oqalhYmKCpaWlvO5nZmYmt27dIisrCyUlJYyMjDh48CAbNmwgISEBJycnxo4di6enp/xQ703OQUdHBwsLC9TU1AgPDycxMRF9fX2MjY1fW6TJ+4CysjIFBQWcO3eOGzdu1FoOpzakUikZGRlk5eXjYaCJisKre3+VFARoqihx8EYWhcJqhrZ5EDJ26k4ed8uFjGzXHAG1l8o6nZnHuks3UFFUxNZAB90GdRRSLwX0DaGN3Ydi709g3bp1Ql9f3+W1/duHo5i3CAnViKmgLsVetJpA24GQlwTZsWDm8vRQT2kNlGbDvXioerIK+0tRkQ+XtwrJP32em2fDqKqqwtjYGFNTU7S0tFBSUpJv7AsLCykqKiIxMbFuB/EvQSqVcu/ePcLDw0lNTaV169bcv3+f4ODgNz20RxCLxTRs2BCBQEBwcDA3b97EwMCA0NBQdHR00NXVRUdHh8LCQk6cOPGmhytHpmiqoqJCSEgIWVlZlJSUkJ6ejouLC+np6fzxxx8v3X5+fj5isZi///6b8vJyrKys3ouT88zMzBc2/GTExMSgJZmDUgs3GrQfgKLmy9dElEqliO4lIUwJQ1JyD0SVVGdeQioRPZYjo2bVH0WNRig2NEEqrkKgoET5xT1UpZ+nQas6ysuU1vDf3b9z5+RmsjJSUVRUREdHBy0tLTQ0NFBWVkZFRYUGDRpQVVXF7du3uX27bg4J31bu3bvHnj17UFFRQSKRsH///lcqTVBSUkLDhg05e/YspaWlSCQSrly5Qrdu3cjJyWH37t11PINXo6qqClVVVYyMjCguLubGjRv8+uuvnDlzhuvXr1NUVISlpSWqqqqkpaWRlpb2pof8CKWlpairq3P+/HkKCgqwt7encePGHwzAFyA1NZX09PTnNvxkiEQi9p+/SIP7+XQx1mVk2+aoKb38oYCiggLNtNRxbWrAiYxcUopKadlQk73X7zCsTbMnGn55FUKS8ovJqRAifkq+4sshharK91fQpp5593cT7xFSaqjh+dz7z91mzQMjrqEZlOdD9kVofh0ata3lWimIq+D64QehnnVNdTmkhYu5EZQNIN/UGBsbY2hoiIKCAnl5eeTl5dV95/8iampqyMrKIj09HSUlJZo1a4aysjLx8fFvemi1IpVKMTExobi4mLCwMPnfq6mp0bhxY/Lz8zl9+vSbG+ATkEqlqKioUF1dzdGjR1FUVKRt27ZUVVURGhr6ym03aNCAmpoadu/ejbm5Oc2aNXvnvd45OTnykiwvSk1NDcWxu1ETlqNi6frSxp9UKqWm8j4loUuoEZagYtIBgUYjBA20qC1ISrW5vfzPAiVVFHVMEKhoUFNV9lL9P4mL585QkXYDpFKUlZVp0KAB+vr6NGrUCA0NDcrLy0lOTq5V7v19QibAEh8fj5KSEra2tly+fJkrV668cruy+q7Hjh1DIBBgaWmJgoICYWFhb63HVF1dHX19fYqKikhKSuLq1auoq6vTunVrtLS03upnQma8JiYmkpCQQJMmTTA2Nn6kBugHnkxOTg7Z2dkvbPwBVInFbE1MJalAj09bNUVN6eWjfQSAhrISQ1qZcuhWFodvZjHKyoz0knIcm9SePySVSgnNyKGJphoNVetJQEtSt/vlfxMfjL+3CAGKKNTxR3LvEuRfA1MnUNODjLOQ/F/obPTg/x+mRgw5lx/kBdp41+kwAGjQEDqMUMGqdWs0cmy4d+8eeXl5ZGVlUVZWhqmpKc2aNcPS0hI9Pb239mX8NlNeXs7hw4fJysrCyckJe3v716Ja97KIxWLi4+OJiIigtLQUZWVlRo4cyb1790hISCArKwtHR0c6dOjwVm0YampquHfvHiEhIaioqDBo0CDu379PSkoKqqqq9OrV65UNNalUSkFBAZGRkcTGxtKuXbt3UgH0YTIzMykvLycuLu6Ff7dZs2ZUmvVBYtgehQbarzAKKeL8m1Rc+gudfovR7DYehQY6lEZsoOrGqSf/Vo2YmooixAW3ECgoomzY+hXG8A8ECrj0GYjUQpnESzEUFBQgFArJz8+nvLwcQ0NDzMzMMDc3p0mTJu9tHTWpVEpmZia///47zZs3Z8SIEejr69dJu8XFxQQHByMSiRg4cCASiYTo6Ghqamro16/fW+eRqqqq4saNG8TExFBZWYmtrS2mpqbcunWLK1euUFBQgJ6eHs7OzpiZmb3p4T4RqVRKXl4e586d4+rVqwiFQhwcHGjW7DWrzb2DpKamUlpaSn5+/gsZgAKBgB6tLLDXUqaRmjIN6uD9r6KoQBdjPVo21GLfjTsYazSgi7Ee2iq155cmFZSQVSrkE8sm6NVVqOc/UVLi1bMa/518MP7eIhRRRgl1HjzMrx76eT8dbkfwf+ydeVyNaf/H36fShpQoSiptorIkEkki6/AYM4x9DMYu+1jG9hjrDGOMfR0a62gYDIm0oAgl2kNp1R5tp872+6PnnGc8DKlU5uf9es1mzrnv733u+76u63t9lw+NjMG4BzRrD0VZ8OQKNLEsl39Q+s8TIJOWO32PL4PlYFB+D51z1RtBhy80sPnMmbbJ84mJieHBgwdERkaSkZGBRCIhOztb0bigZcuWGBkZ0axZswo3zfj/TF5eHl5eXuTm5uLm5sbMmTOxsbGpk4LhYrGYlJQUbt68SUZGBllZWeTn5zNo0CC+++47EhMTOX36NPfu3SMnJwdVVVWcnJxeEsCtTdvl9pWVlfHJJ58wefJk0tPTFa3WmzRpQp8+fd655u9/EQqFdOrUic2bN5Obm0u7du2ws7OrxqupWWJjY4mJiXln569p06ZMnjyZy42nkVyshlS5ahsBstJCkElR0WmJkro2srIipIVZf7vAEj9Po+zpbUTpDxFlxKCi3xo1M+cq2fC/DB4xHitxR275XeL69etER0eTnZ2NtrY2urq6lJSUkJubS5MmTRQN4sR7AAAgAElEQVTp8gYGBjRpUrOdSd8XMpmM3Nxctm7dikAgYMGCBQwfPrzK475EIiEzM5OzZ8+Sl5eHm5sbc+fORSQSsWnTJlJSUqhfvz6ffPJJnegcLZFISE5O5s6dOxQUFKCiooKTkxP9+/enffv23Lhxg02bNpGcnEyzZs3Iy8ujU6dOODo6KpqF1DWkUinOzs4cPXqUuLg4ZDIZDg4OWFlZ1frvXZdJSkoiPT2d2NhYRSO8NyEQCNDV1aV3796MN9alrzgbZFWtkC5HSSBAW60en5obsvZ2FEdjkljbzfa1ny0WifFOfIa9vg76muq8H/UHAahqfBR4ryQfG77UIQpII5UQ8nhCVZ2/9LDyLp85cWDQsdzZQ1AeBUzwhRfJ5d0/6zcFFTUQFZfLQJQWgPWn5VHA6+ug7efV2/BFTdAQU2UXOup8ioWFBd26dcPNzQ1LS0s0NDTIyclRiERHR0fz6NEjMjMzyc3NRSgUoqysTL169T749LfqJjMzkxMnTrBz507s7e1ZvHgxrVu3rnVH6X+RSCTk5+cTEhLCyZMnOXnyJFlZWYjFYiwtLdmyZQutWrXCyMgIFxcXdHV1iYiIwN/fn4yMDKRSKVpaWrXW+Ke0tJTY2FiOHz+Ot7c3zs7OzJs3DwsLC4yNjTEzMyM4OJjLly9jYGCAsbFxlRowqKio0KRJE5o0acLVq1d5/PgxHTp0oFGjRtV8Ze8fucPv7+9PVFRUhb9Xv359xo0bx6JFi7iRrcOzEjWkVO3eCwQCSqIvIyt9ATIZkryniLJiKUu5Rz19a1SatEKg8l9HQJz3FGG8L6KU+wjqqVOviRkq2oYoNdSrtsXrAAslXG2a0c3RAUtLS5SUlJBIJGhqatKwYUOFJlxoaCgRERFERUWRlJREfn4+L168UHz2Q2z6IpPJKCws5NSpU+zatYuJEycyZcqUKksViEQikpKS+O233/D09KRjx44sW7YMa2trDAwMaN++Pffv3+fs2bPo6OhgbGz83sTQK0J2djZ37tzBy8uL8+fPIxQKGTBgAF999RXOzs7o6urSokULVFRUiImJoV69eqSkpBASEqKoEdTV1a1zz4BAIMDQ0BAzMzNyc3MJCAggLS1NsXnxcT5/FaFQSGlpKaGhoYSHhyMUCt/4eSUlJVq3bs3w4cNZuXIF7QVCBClPEFSjnJuSABqrq3IsJplGaios6WyNQPBqvV9AShapRSW4m+jTSE2VYzFP0dNUp3OzxtXX8EVJGUwswdLuo87f3/Cmhi8fnb86RAn5ZBBOBg+pqvMXdx7SQ0EshMZm5dG/50mQ+QAESuWdQEVC0LcDFQ3IfwLRXtB5Bqg2eI/OHw1pzVAM6Aj8t/ujiYkJXbt25ZNPPqFz587o6+tTXFysSAm8f/8+sbGxPHv2jPz8fAoLCxGLxQpnsC5NdDVNamoqnp6e7Nq1i169erFixQqMjIzqVKqnTCZT1Cx5e3tz+PBhYmJicHBwQFdXl9TUVH744Qe6dOmiuJcqKipYW1vTvXt3RCIR/v7+3Lhxg+LiYtTU1GjQoEGNRoSLi4t58OABR44c4caNGwwcOJA5c+agr68PlHcCNTQ0pGPHjty+fZs//vgDQ0NDjIyMqvSMqqqqoqenR/369Tl58iSlpaXY2dm9d2H7qiKTyRAKhWRmZpKQkMCDBw8ICQnh4cOHFW5OoaKiQv/+/dmwYQO6urqEpCqRkA9lVejuLRAIEKg3QklVE3FWPOJnUaCkgpqpI7LSIqTFOai26IiSZmME/1mUKjfUQ61Vd9St+qBUT52S6EuIM2NRM3VCqV7V74OyAD5rA1ZNQLWeCkZGRnTq1AkDAwOePXtGeno6RkZGDBgwADs7O/T19UlMTCQkJISbN28SERHB48ePKS4upqCgAKFQqGgSU9fHRplMRklJCVevXlXILaxatarK43ppaSlxcXEcP34cLy8vXF1dWb58uUIsXSAQ0LhxY5ycnIiMjOTEiRNoaWnRokWLGtdHLCgoICYmhj///JPDhw/z5MkTunXrxrRp0xgwYMBL0V1NTU3Mzc0pKCggNDRUkbJ65coVIiMj0dDQQF1dHS0tLcV11hV0dXWxtLREIinXsoyNjaVFixY0bdq0Ts1XtYFYLCY3N5ekpCRiY2O5c+cOvr6+3Lhxg5SUFEQi0Wu/p6SkRP369XFwcGDq1KnMnz8f7UaNEGSmQnxEtTZEURIIaKhaD+/EZ4y1NqFz81fLczKKhRyISOALq5YYNSh/j96L8ycQQNtOYGwB9erWJndd4U3O30eR9zpEPk+5ww5u8n2Nnrc4Bx54lktB2Iws/zNJKRzpDa5rytND9WyqxwFsSHOG4kkrKla7lJGRQXh4OKGhoYSEhPD06VOUlJQwMjKidevW2NnZYWFhoRB819LSqnO1G+8LmUxGeno6u3btwtPTk5EjR7JkyZIaFT6vCKWlpTx79oyQkBBOnz5NVFQUXbp0Yfjw4URHR/PDDz+watUqJk6c+MbjhIWFcfDgQW7duoWRkRFDhgzByckJAwOD9y6FUFhYyJ07dzhy5Ajx8fGMGjWKL7/8Ek3NVzXnZDIZqampzJkzh4cPH7JmzRrc3d1p1KhRle5LXl4eu3btYv/+/SxdupTRo0fXOQdQKpVSWFhIfn4+ubm5CqcvIiKCxMRERCIRGhoaJCYm8uzZszceSy5YfPToUSwsLFBWVmbHHfjlPmQVV2dP5HdDUpxLYeA2hI8C0BnyA6pG9lU+po5Guch7N6OX/1wmk5GRkcHFixc5efIk2dnZuLi4MHLkSIyNjcnOziYoKIjg4GAiIiIoLi5WSAU4OjpiYWGBrq4uOjo6aGlp1Yr+25uQyWSUlZUREhLCnDlzaNmyJQcOHKBx49fqEleY4uJiIiMjOXbsGIGBgQwbNgwPD4/XjhMymYyCggIWL16Mj48PM2bM4LPPPsPAwOC9OyQikYi0tDRu3brF8ePHSU5OpnPnzowdO5aOHTv+bZ2zVColPT2dJUuWcO/ePbZt20ZxcTE7d+4kKSmJPn36MGbMGMzNzas87rwP8vLyuHjxInv37kVHR4cFCxZgb29f58az941QKOT58+fk5eWRnp5OeHg4kZGRxMbGkp+fj46OjiK6m5SURElJyUvfV1ZWxsDAAEdHR7799tv/lgTIZBAVCoe+f6V78bsi9xEEAkF5HbqwjMk+d9nh1hGDBq/er4MRT7iVnsNQ8xY0VK2HVCZjYWA4Jlr1GWNtjGNzXZpqVlOkbtRMsO38MfL3N7xJ5P2j81eHEPKc+/yCN3OpyaVNQSoE/BtSbv33z2TScmH4RsblWn+D95dHDKuKNiZ8iR/amLzzd8vKynj8+DG3b9/mxo0bREREKNp3W1lZ0b59ezp16qTQvGrYsCHq6up1buKrKvJ3NiUlhe3bt3Ps2DFmzJjBvHnz6lQUVCwW8/z5cyIiIjh79iy+vr4YGhoybtw4+vbty5UrV1iwYAGjRo1iw4YNFbJbLBbj7+/PgQMHiImJoUOHDnz66ac4ODjQuHHj9+L4FxQUKM6Zn5/P5MmTGT58+BvPJW8wMWvWLAICAli9ejWDBw+uUiMjeU3Ut99+y+XLl9m3bx8uLi61LgFRVlZGUVERL168ICcnh4iICO7du0d4eDgZGRk0bNiQtm3b0rlzZ0Wk99ChQ2zYsOFvd7MBjIyMOH78OI6OjopFuPcj+O46JL+omWuTiYRIhS8QqGoiUNUEqRRxXhKFN7YjehaNzpDvqdfcpkrnEADtm8HqntBO//WfkdeBeXp64uXlpUiF7dOnDwYGBqipqZGbm0tQUBCBgYEKjcgGDRpga2uLvb099vb26Ovro6WlRcOGDVFTU6v1aItIJCIyMpIlS5bw/Plzjhw5grm5eaWPJ5PJKC4uJiQkhEOHDhEbG8vEiROZMGHCW8eGsrIyVq9ezbFjxxgzZgxffvllldO232RnTk4O8fHx/Prrr/j5+WFhYcHEiRNxcXGpUFq3/Jn4+uuvyc3N5ciRIxgaGnLo0CEOHDiAhoYGkydPpmfPnrRo0aLOzYXFxcWK+sWysjKWL1+Ok5PTP0LT9HXIZDJFBsyLFy948eIFCQkJhIaGEhYWRmRkJEpKSlhYWNCxY0ccHBzo2LEj+fn5nDt3jpMnT3L//n2kUikCgQBVVVUsLCz4/PPPmTt3Lg0bNvzrySAnAzbOhSpKLJRKJGSXlNJEXY0yqZRrSZlcS87kJ9cOr/38khsPuPo0gzLJf8/75HkR6irK2OvpMNfekr4mzapkE1AejZj1b2jRCpQ/ti95HR+dvw8EGTJiOMsfTERIXu3ZIStPF11XHz4/BdbDqifqp4QKBtgzkSAEVazZAcjPzyciIoLAwECCgoKIiYlBJpNhampK586d6datG23atKF+/fpoamoq6mE+ZGQymULKYcmSJQQEBLBhwwZGjRpVZ65NKpVSVFREYmIiFy5c4MyZMygpKTFmzBjGjBmDuro6wcHBTJs2jfbt23Po0KF33vHNz8/njz/+4MiRI2RlZeHu7s6IESOwtLRUiF1XFXlE4OLFixw4cAA1NTVmzpyJu7t7hY4vT2ebM2cOf/zxB4sXL2bMmDGKmpzK2pSVlcXEiRNJSEjgt99+o3Xr1jW6qJOncxYXF1NcXExCQgL37t3j9u3bCnFyY2NjunTpQo8ePRROh0AgQCKRUFxczK1btxg9evTfyro0atSI7du3v/JcJz+HCecgPrdmrlWUGUvx/d9QaWqFavM2yEQlCOP9KInxQbVlJxr1XVHltE9lAYy2hckdoeVb1vwikYj4+Hi2b9/O+fPnsba2ZsGCBXTs2FGxsSAQCBCLxTx48ICAgACCg4O5f/8+paWlmJmZYW9vj5OTE1ZWVjRu3BgNDQ00NDRqfONILBbz+PFjvvvuO8LCwjhw4ABdunSp9PHkdYPXrl1j3759FBUV4eHhwZAhQyp8XTKZjN27d7Np0yZ69+7N3LlzMTc3r9bfpri4mGfPnnH06FE8PT3R1tbm66+/5tNPP0VHR+edziORSIiLi2PkyJE0bdqUX3/9FT09PRITE1m/fj0XL16kTZs2zJ07l3bt2tG0adM6Ff0ViURERESwcuVKEhISWLlyJe7u7oqU1Q8dmUyGSCSipKSE4uJicnNzuXfvHjdv3iQoKIjc3Fz09fXp3Lkzjo6O9OjRQ1Em8FeioqL44Ycf+OWXX1BSUkJbW5sOHTqwePHi13eAlq/rV0+FgvwqXUNSQTEHHj6hh2FTSiUSdoY/ZqtrB8y1G1To+2KpjIFnAmmr24iZ7c1pVcHvvZWGjWDepvJ/1pHnua7x0fn7gEgmiKssIYkbyKgd8Uq587fNHD7ZAxYDq+fd0qAx7RlPX7ZU/WD/g1gsJiMjg5s3bypqwzIyMtDS0lIMqi4uLjRu3Bh1dXVUVVXrVJSsIshkMkWnyenTpxMXF8e+ffvo06dPnbgOeQpXdnY2Fy5cwNPTk9zcXIYMGcLEiRMxMzNTLEpnzZqFuro6p06dqlK3wsTERI4dO8bJkydRUVFh5MiRjBgxgqZNm1apcYNcFPrgwYN4enpiZ2eHh4cHHTq8frfzTUgkEpYvX86+ffuYPn06U6dOVehaVsY+qVRKUlISQ4YMoWHDhpw5c4YmTZq8t2dAvuFQVlZGaWkpRUVF3L17l4CAAK5fv87Tp09p1KgRnTt3xsnJCVdXV1q1avVSypr82UhPT8fb25s9e/aQmJhIfv6rCxMNDQ0WLFjA6tWrX7kmGTD2DNxKAVENDI+Swiye+3xHabxfeQRQRRUVXTM0bD5B0+5TlLWqvoMtANb1gkGWoFXB7KXS0lKuX7/Od999R1RUFEOHDmXhwoU0b95ckYr8198uLS1NUR8YGBhIUlKSIiro6OhIly5dsLKyQkNDAzU1NVRVVd/rZpL8Gd61axdeXl5s2bKFwYMHV+l4L1684NSpUxw8eBBDQ0MWLFhA165dK3U8Ly8vli5dipWVlSKdrqrjiUQi4cWLF1y9epV169aRl5fHuHHjmDFjhmI8qAxisZi7d+8ybNgwBg4cyI8//qioWbxx4wZr1qwhPDwcNzc3PDw8XtogqwvzhlQqJTk5mZUrV3L16lUWLFjAV199VefKFyqCfKwUiUQIhUJKSkp4/PgxQUFBXL9+ndu3b6OsrIydnR3Ozs50794dR0fHtz5bxcXF/Pzzz6xevZpmzZoxbNgwFi5ciJ6e3psN8vwJHtyqUvQvvbCErWFxHI9JxlSrPiu7tqFXy79JUXgNEqmMMZduYaWjxQQbE4y1qiGyKxCAbRcY/jVo/DMjxdXBR+fvAyKPBELYwS1+rDXn732hjTH9+InWDHnv5yorKyM6OporV67g4+PD3bt3kUql2NnZ4ebmhrOzMx07dqRevXoK4d+qdpZ7n8h3EKOiovjqq694/vw5x48fp3Pnzm//cg0gkUgoKSnB39+fXbt2ERERQY8ePZgyZQpOTk6KzoXR0dEsXryY1NRUTpw4gZVV1bXSZDIZsbGxHDx4kNOnT2NoaMiUKVMYPHgwmpqa75wWKZVKyc/PZ8OGDZw9e5ZBgwYxbdo0LCwsqmTnvn37WLp0KQMGDGD16tUYGRlVegEmkUi4f/8+AwcOxN3dnb1791Zrl0L5YlUsFiMSicjIyODGjRtcuXKFa9euUVxcjKmpKW5ubri7u+Pk5ESDBg1eddb+sugNDg5m9+7dhIaG0rNnT/r27cuCBQvIz89XpH+qqanRv39/Tp8+/be/zZ575XV/6YW1V/dXnehqwN5PwL7Zu22yyWQySktLOXr0KOvWrUMsFjN37ly+/PJL6tev/7cRnrKyMmJjY7l+/TpXrlwhLCyMwsJCDA0N6dq1K66urjg5OaGtra0YG6sz9VFex3j06FF27NjBokWLmDp1aqWPJ5VKycnJYdeuXfz22290795d0YG3Kty8eZM5c+agoqLC6tWr6dat2zs3gpGn+gmFQiIiIlixYgVBQUH069ePtWvX0qpVq2pJvZVIJJw9e5bx48fz7bffvlQCIBKJOHr0KJs3b6agoICRI0cybtw4TE1N37uTX1FkMhn5+fls3ryZ7du3M2bMGNavX//aMaWuIR/jRCIRpaWlZGZmEhISwrVr1wgICCArKwt9fX26d++Oi4sLffv2pVmzZu98XWfOnOHcuXN8+umnDBw4sGL37W4AnNoDkip0yKqLCJTgs4lg3+Njs5c38NH5+4CQICKO83gxEjFltW1OtSFAieZ0YDx+qNHw7V+oRmQyGdnZ2QQGBnLp0iUuXbpETk4ORkZGdO/enT59+uDq6oq2tvZLC526MunIFw/BwcFMnDgRHR0dTp06VaXamOq0TV63s2XLFq5du0bHjh2ZNWsWPXr0UER/pFIpjx49YuPGjdy8eZMDBw7QrVu3arWltLSUsLAwtm7dytWrV3F0dGTZsmXY29tXOMorlUrJysrim2++4fr160yfPp0xY8YoOnpWldOnTzNnzhxsbW35/vvvad26daUX1lKpFG9vb4YNG8bKlStZsGBBpY8lnwckEgkSiYTS0lIiIyPx8fHh+vXrBAcHo6ysjIODAwMGDGDgwIEKOYI32ScSiQgPD2fv3r1cunSJdu3aMXfuXHr37o1EIiE+Pp5Vq1Zx5swZBAIBbdq0ITAw8I2LvphsmHsZorLf+TLrHCpKMLQ1zO789pTPv0NeC7p+/Xp2795N69atWb9+Pd26dVPUeb3pmcjPzyc8PBwfHx/8/PyIiIhARUUFW1tbevfuTZ8+fbCzs0NZWVnxF1Sui6RMJiMvL4/ffvuN77//nhEjRvDdd99VeqyVR43Wrl1LYGAgo0ePZsqUKW+PiFSQ+Ph4Zs+ezdOnT1myZAmffPJJhRqoyN8neUbK+vXrOXToEO3bt2fjxo1069at2p0uqVTK5s2bWbZsGUeOHOGzzz57aTzIy8tj9+7d7N27Fw0NDaZNm8a//vUvmjdv/l7qGitDSUkJnp6eLFy4ULGppa2tDdSdrqVyh14+Vubn5xMZGYm/vz9+fn6Eh4ejqqpK+/btcXFxoWfPnjg5OVW5NlskEiGRSP62CdBrEZaUp36WvVkm4oNDpR4s3grauh9TPt/AR+fvAyOdMK6wkET8kfJP2LERUB99OjCe3myoVUvkaRnh4eFcvHiRS5cuERYWpugs6ObmxoABA7C2tn5FM6s2Jh95gbi3tzczZ87Ezs6OY8eO1bqws3wCfPbsGZs3b+bo0aO0aNGCefPm0b9//5fEhmUyGcnJyezZs4cTJ06wfv16hg8f/t5sKygowM/Pj7Vr1xITE8PIkSNZsWIF+vr6b4y0yWQyEhMTmTJlCgkJCaxZs4aBAwe+XEhfDdy8eZPJkyfTqFEjfvjhBxwcHCqdgiyVStm6dSuLFi3i5MmT/Otf/6pwNFF+D+XpxFlZWdy8eRNvb2+uXLlCZmYm+vr69OnTh4EDB9KnT58KpWLJ37GEhAT279/PyZMnadKkCTNmzGD48OEvdUiVSCTExMTg6OiIlpYWQUFBGBsbv9X22d5w5QkU/32/mA8CgQB2DYCexqBRxV5FMpmMmJgYFi5ciI+PDwMHDuTf//43VlZWihqit907ubMSEBDA5cuX8fX1JTMzEz09PXr16sWAAQPo06ePwgGSOzAVfd6Kioo4ffo0GzdupFevXvz444+V1iKVSqVERESwZMkSkpKSmDdvHsOHD6/2hiHyzSB/f3++/vprxo8f/8bIjfydKigo4PDhw6xduxYlJSWWLl3KtGnT3qujJZPJmD17NgcPHuTSpUsKJ/Ov54uLi2PLli2cPXsWY2NjZsyYwaBBg9DW1q4Tm55isZirV68yduxYLCws8PLyolmz8vTq2rLtr2OlUCgkNjaWgIAAvL29uXfvHiUlJZiamtKjRw9cXV1xcXGptg2IKvPrz+WpnxJxbVtSPSgplad8fjEVVN/BEf5/yEfn7wNDSD6RnOI8U2rblCoho7yeBUAfO4ZxFD2q1hnvfZCZmYm/vz+XL1/m6tWrpKWl0aRJE7p27Urfvn1xdXXF1NT0pZ27mpiE5B3hjhw5wtq1axkyZAg7duyo9XbY8mjfoUOHWLduHRKJhOnTp/Pll19iYGDwymczMzM5ePAgBw8eZPbs2cyaNatG7CwoKOD3339n5cqVCIVC5s+fz6xZs16bHimTyQgNDWXChAkoKyuzdetWRS3G+yAuLo7JkyeTmZnJ2rVr6du3b6W1xWQyGTNmzODw4cNcuXKFLl26vNYB/OtYL+9G+uDBA/z8/PDz8+POnTsA2NnZ0b9/f/r27fuS7mJF7ADIycnhl19+Ye/evQBMmjSJsWPH0rx589d+r6SkhIMHD2Jvb4+jo2OFzhX4FNbf+LCjf8oC6GoE63tVPur3d/z5558sWLCA1NRUJk2axPz582nWrNk7pxnLo/oXL17k4sWL3Lp1CyUlJTp37szAgQNxc3OjY8eOrxz3dc+eWCzm999/Z8OGDdjY2LBt27aXNoneBZlMhq+vL4sWLUJDQ4OVK1fi6ur63mR+SkpK2LBhA7/++it9+/ZV1M799Trlz39xcTHe3t6sWLFCsZm0atWqGmliIo9IDRs2jODgYPz8/GjduvVr7/udO3fYsmULvr6+tG/fntmzZ+Pu7l7hjYL3idyxl29mnT9/ntatW9eYXf87VqakpHDz5k18fHy4du0a6enpNG/eHEdHR1xcXOjRowfW1ta13j33tSQ9gh2rQPyB75T9lRmrwcSiXOj9I3/LR+fvAySDB/zBRNIJQ/aBRv/KnT8BmjTBli/oz7baNumtlJaW8uDBAwIDAxW1goWFhbRq1YpevXrRr18/nJycXtGhqs4JSf5OJiUlsXXrVn799VdmzpzJ8uXLa7U+Q26Xn58fCxcuJC4ujkmTJjFv3jwMDQ1fsU3eNOXIkSNs376dYcOGsWbNmhqdIKVSKbm5uWzevJmffvoJY2NjfvzxR/r27Qv8V7vo4sWLTJ48GQsLC3bu3KlIx3yfZGZm4uHhQXBwMPPnz2fUqFGVkoKQL6wHDRpEREQEAQEBtGrV6rUL8ISEBMWO9c2bN8nMzKRly5a4urrSv39/nJ2dK7Vj/dfF/ffff09KSgqff/45U6dOpW3btu98vLchlsLCq3D5UXn0r/ZnscqxdyD0qIao3+soKSlh7969bNy4ETU1NebMmcOoUaMUWQOVec6ys7Px8/PjwoULXLhwgby8PExMTOjZsyf9+/end+/eigiSHIFAgFQq5cyZM3z//feYmJiwefNmhdj6u9oA4OnpyfLly3FwcGD58uXY2tq+97FRIpFw+PBhxTiyaNGil1LXhUIh9+7dY926dVy7do3BgwezYcMGWrVq9V7t+l/kXU979uxJSUkJPj4+GBgYvDaqJxaLCQwMZOvWrQQHB9O9e3c8PDxwcXEBatcBlD9vQ4cOJTo6mtOnT+Pi4vLe7vNf18IlJSXcvn2bixcvcuHCBR4/foyGhgYODg64uLjQp08fbGxsaNCgmjpXvm/2roXH0R++A6ikBK2sYfKS8tTPj7yRj87fB0gpL4jhLGcYX9umVBp55M+IrgxmP01pU9smvZX/fR9ycnIIDQ3F19eXK1euEBERgaamJvb29vTq1Qt3d3fs7e2rdUKSSqWEhYWxevVqIiMj+fe//82oUaOA2p2MHz16xPz587lw4QJ9+vRh06ZNWFtbKyKi/2tbaWkpR44c4eeff6ZXr16sX7++xrWm5PdTKpUSHx/Pt99+i5eXF4MGDeKnn37C1NSUX375BQ8PDwYNGsTmzZtrLMVIvkhbsWIFXl5ejBgxgunTp2NqalqpY7148QIXFxeUlZX5888/0dPTQygUcuvWLXx8fLh06RJxcXE0aNCAjh07Kuq52rZtW+WodnBwMKtWreLOnTu4u7szd+5cOiuxMAcAACAASURBVHTo8N466spk8DCzXPPvdmq1H/69oyyA/uawygWaaL6fshX5s//s2TM2bdrEkSNHMDU1ZeHChfTt21dRS/Wux5MjkUgU6fMXL14kNDQUZWVl2rVrp0gVtrGxoX79+ly4cIHvv/8ePT09vvvuu1eiZhVFIpGwYsUK9uzZw4QJE/Dw8FA4kTXxvgIEBASwfv16cnJymD9/PsOGDSMuLo6tW7dy6tQp7OzsWL16Nb169aoRu/7O1rS0NHr06IGBgQGnT59GT0/vb7MBCgoKuHLlCtu2bSMmJoahQ4cyf/78KjfNqSryNMsJEybwxx9/sGvXLkaNGlXpVOE3nSchIYGrV69y4cIFrl69SmlpKTY2NvTs2RNXV1ecnZ1fkeKo7RTZCvP0EexZA6X/gNq/WWugpXm5I/iRN/LR+fsAkSHjOclcZj4xnEXGh5ivLaAx5nRmBl2YjYAPZKD8C/L3Q57qmJ6ezs2bN7l06RLXrl0jKyuL5s2b06NHD/r378/AgQPfeVH1V0QiET4+PqxZswaxWMz69evp3bt3rdY6FBUVsXnzZjZu3EjLli35/vvv6du37xvTgyQSCZ6envz888/Y29uzdu3a9ypH8Db+6gT6+voyb948EhMT6dChA7du3WLevHksW7ZMUd9XU3bKn6vt27ezd+9eOnfuzPz582nXrl2ljvXkyRN69OiBtrY2zZo1IzQ0lKKiIszMzHB1daVv3744Ojoq7kVV61nT0tJYt24dnp6etG/fnm+//ZauXbsq6q7e5+8ok8Hue3D0IaS+4IPqjVy/Hvw+HCwag/J7XsPIa5Xu3bvHhg0b8Pf3x97eHg8PD1xdXV+qwXzX4/71+NnZ2QQEBODj44Ovry9paWk0btyYFi1akJWVhY2NDcuWLcPR0bFSz0VhYSFTpkzh4sWLrFixgnHjxlUqUl5VZDIZDx8+5Mcff+TKlStoa2sr5oF58+bxxRdf1AkZIZlMRmRkpKIb765du/52DJbfy8zMTP744w+2bdtGTk4O48aNY+HChbVWY/7XcXvNmjWsX7+e+fPns3Tp0ipF3eQ1mbdu3eLPP//k/PnzPH36lMaNG+Pi4kKvXr3o378/LVq0eKVGs7bva6WQyeD3g3A38MNt/iJQgi49Ydik8n//EO9DDfPR+ftAkSDiGWF40pdSniP7QJKbyq0UUA912jCMAWxHnWouaqkF/joRSaVShEIh8fHxigYZt2/fRiAQYGdnp+iI2L59+woX0RcXF3Pq1Cl+/PFHjIyM+O6777Czs6uVVE957ciZM2dYsmQJ+fn5LF68mKlTp6KhofHW2qHTp0/z008/YW5uzvLlyzE1Na0Tk6Z8ofr8+XN69+7N/fv30dLSYv369YwfP75W6inlv/Uff/zBli1bUFdXZ+HChfTr169C3xWLxYSEhHDp0iUuXLjAw4cPkclktGrViunTp/PJJ59gaGhIvXr1UFJSqhZ9r5KSEvbs2cOmTZuoX78+S5YsYciQIYqd8Zq618+FsDEIfo8GofjDSf/c5AaDrUBdpebWMPLuq35+fmzdupXw8HB69uzJjBkzFHIsVUHe6EcqlVJaWkpERARnzpzBy8uLx48fo6amhpmZGT179sTd3Z1u3bpV2KlIT09n5MiRxMbG8vPPP9OvXz/q169fa2NKcnIyBw4cYO/eveTl5Sma15iZmdUZ/Twov+c+Pj6MHTuW8ePHs3jx4jf+5vKxKC0tjWPHjrFr1y5FyvDEiRPfWw3025DbdfDgQRYtWsTgwYPZtGkT+vr6Ff6t5fO1v78/3t7eXL9+HZFIhK2tLS4uLopGLXL5i3dpZvRBUPActq+C3GdV0v2rNTQbwjebob7WR8evgnx0/j5QZMgQUUQ0ZzjDuNo2p8LI0z3N6Y8ba2lG+w8y6vc25IsducZPZmYmgYGBCv2s7OxsjI2N6dWrl2I3UUdH57WLrOzsbPbs2cPRo0fp1q0bixcvxsTEpFYKyEUiEaGhoSxbtoxbt24xZMgQvvvuO4UDAW+eEC9fvszGjRvR09Nj4cKFdOjQoU5oScF/Uy3Hjh2Ln58fP/zwA7dv3+b06dM4ODiwYsUKHBwc3q2ddjXZJZFIuHnzJlu3biU5OZmZM2cyduzYV54BqVRKZmamojPnxYsXycvLw8jICDc3N/r06UNeXh4LFy5k3rx5TJ06tVojJJcuXWLx4sWkpKTw5Zdf4uHhQbNmzWol2iGTQUwObLsNFx/V6KkrhRLweVtY7gwNVGt+DSN/zvLz87l48SL79u0jLS2NoUOH8vXXX2NpaVlt53n06BGLFy8mKyuLsWPHYmBgQEBAAAEBAcTExKCpqUmHDh1wcXF5qXHM/xIVFcWIESMoLS3lwIEDODg4VKum5buQl5eHl5cX+/btIzc3l759+6Krq8uJEydo27YtW7ZswcTEpMbtehNisZjDhw8r9P+++uordHV1//bz8g2ysrIyEhIS2LFjB8eOHcPS0pKlS5cyePDgGrT+ZUQiEZcvX2bWrFmYm5uzdetWrKysXiujIBKJSEtLIygoiCtXrhAYGEhmZiZNmjTB0dFRIfNkYGCgkHiqioxJnUcmg0cP4dh2ePG8tq15NwQCmLQYrNr9978/8lY+On8fMDJklJBLAP/mNj/zoextt8ARJxbQmiEoUTV9mw8B+YQpEokoKytDKBQSHh7OzZs38ff3Jzw8HHV1dezt7enWrRtubm60bdsWTU1NEhIS+PHHH/H392fo0KFMnToVPT29Gnf8JBIJycnJ/PTTTxw9ehRzc3NWrlxJ165dFbprb5sU7927x8qVK1FRUcHDwwNnZ+cq6xtVF/I6mNGjR/P48WMOHz5M165dEYvF3L17l/Xr1xMREUH//v3x8PCgdevW1V5b8jZEIhEPHz5k586d3L59m/HjxzNr1iykUilRUVH4+vri6+tLaGgoSkpKtG/fHkdHR/r374+FhQVqamqoqqoilUrZuHEjBw8eZM2aNQwZMoRGjSoffZenlH777bdcvHiRrl27smbNGlq3bq2IwNTWgkkihVsp5eLvAUm1YkKFUBZAJwPY0R90NUGpFtcv8sV9SkoKZ86c4ejRo5SWlvLFF18wZcqUKuta5uTksGjRIqKjo5k9ezaDBw9GRUUFkUhESUkJ6enphISE4O/vz82bN3n+/DnNmzfHycmJPn364O7ujpaWFoGBgXz55Zfo6+uzf/9+LC0ta2WTobS0FG9vb3bv3s2jR49wdXVl7NixdOjQAbFYjJ+fH+vWrUNTU5MtW7Zgb29fo/a9DaFQyPr16zly5AjLli1j2LBhb+20Kt/cLCwsJCoqStEZtHfv3qxevRpra+sasv5lysrKuHfvHrNnz0ZJSYn169fj5OSEuro62dnZhIeHv7TJoKamhrW1NZ07d8bJyQl7e3vU1dVRVVWlXr16dbND5/tCIoaACxDwJxS+qG1rKoZAAG7/AvfPyrt7fnT8KsxH5+8DR4aUAtK5yGxiOYusDle3CBCghy2OeGDDSOpRu7IEtYH8nRKJRAiFQsVi5+7duwQFBREUFERBQQHNmjXD2NiYpKQkBAIB48eP54svvqBx48Y1GimTyzGcOHGC/fv3IxAI+Prrr/nss8/Q0dGpcKpPQkICS5cuJTMzk5kzZzJgwIBaSxP6XyQSCdHR0UyYMEEhLdC+fXvFQrKsrIy8vDzOnTvHnj17KCoq4vPPP2f8+PGYmprW6P0QiUTEx8dz6NAhTp06RZMmTZBIJGRlZdGoUSM6depE9+7d6dGjB40bN0ZdXR0NDQ1UVFReWhQ/f/6cRYsWERwczLp16+jVq9c713fJI6V79+7l559/RldXl8WLFyvO/b/nrC3KJHD9KewLg+CU2rbmVZQFYN4Y9g4ql3UQUDfWMBKJhOLiYmJiYjh16hTnzp1DT0+PyZMnM2LEiEq9v8XFxSxZsoTr168zffp0Pvvss5eE0eXRx9LSUoRCIQUFBTx+/JiAgACCg4N5+PAhampqGBoa8uTJE6ysrDhw4IAiE6KmG0bduHGDHTt2cPfuXezs7Bg/fjxOTk40atQIVVVVZDIZJSUl3Llzh3Xr1pGRkcG6desYMGBAjdlZEZ4/f87SpUsJDAxk2bJlFdYwlaeW5+bm4uvry+bNm8nKymLUqFEsXLiwVuouRSIRsbGxfPPNNzx9+hQ7Ozvy8/N59OgRpaWlGBkZ0a5dO7p06ULHjh3R09NDTU1N4fTVhTGr1hAWg/dvEHodigpq25o3o6wMdo7w2SRQ06gbg+YHxEfn7wNHhgwZUvJJ4Bxf85SAOukAChCgixVdmI0to/4RdX7VhVgspqSkhMLCQl68eEFUVBSnTp1SpKKoq6vTsWNH3N3dcXZ2xs7OrkqNYypKbm4uV65cYd++faSkpODu7s7kyZNp2bIlWlpaFZ4kc3NzWbp0KREREUybNo3BgwdXuzh6ZRGJRNy8eRMPDw80NDTYuXMntra2rzgu8iYAT58+5bfffuP8+fNoa2szduxYBg4cWOVoyNvIy8sjMjKSoKAgAgMDuXfvHjk5OaiqqmJsbMysWbNwc3OjQYMGNGjQAE1NzTfuWsv1qTw8PMjKymLVqlU4OztXOJpZVlbGtWvX2LBhAykpKYwYMYIJEyZgYGCAhoZGnVtAlYjKO38evA8BT2vbmv+iJACbprCpD1g2Lv/vOvbTUVZWRn5+Pg8fPuTkyZP4+/tjbW3N9OnTFbIoFUEsFrNmzRrOnDnDpEmTGDFiBE2bNn3j5ok8CllYWEhhYSEpKSmsWbMGX19fRZ2qfMPD0dERJycntLW13/uGTFxcHNu3b+fq1au0aNGCMWPG0K1bN5o3b/7K8y+TySgtLSU6Oppt27YRFBTEggULmDx58nu18V2QZz588803PH78mMWLF+Pu7l7hOmeZTEZxcTFpaWl4eXmxf/9+dHR0mDlzJl988UWNOVWpqamEhITg5+fHmTNnyMjIUET35Lq8xsbGNGjQgPr166OhofH/K7r3NmSy8vq/y6fgYUjddQCVlcHcFoZPAe3X+i8feQsfnb9/AHIHMIc4rvINsVygbqWACjCgIw7MxIpP0KDxP7LOrzqQSCQcOHCAbdu20bJlSwYNGqQQtY2NjSUzMxNtbW3atm1L165dsbe3p02bNtWaPllcXMydO3c4fPgwd+/epU2bNoo0Jn19/XeaLEtKSli5ciW+vr5MnjyZzz77DF1d3TrhHJSUlHD58mVWrFhBixYt2LBhw1t/S4lEQnZ2NhEREZw6dYp79+5hYmLC6NGjcXNzqzaxZqlUSlJSEnfu3CEoKIiwsDDFvbeysqJDhw60bt2axMREdu/eTbNmzfjhhx9o06bikilSqZSHDx+yePFiVFVV+eabb+jSpcsb729ZWRkPHz7k559/Jjg4GFtbW6ZPn07btm0VGoB14d6+jmJRuQTErw/gz3iQymp3lBQAzsawrHt5Z8+66PjJkTswaWlphISEcOLECeLi4ujTp4+ixupt7N69m+3btzN8+HDGjRuHkZFRhccSuXOxevVqfvnlFyZPnszQoUOJiYnh/v37PHjwgMTERLS1tbGxsaFTp0507doVKyurSncsfR05OTkcPnyYEydOAPD555/Tu3dvzMzMaNCgwd86nfII2ePHj9m3bx9//PEHEyZM4Jtvvqkzqe9SqZTo6GiWLVtGSUkJ8+fPx9XVVVHL/Tbk68WcnBzi4+Px9PTEx8cHOzs7Zs+eTbdu3Sp8rIqer7S0lPDwcG7cuEFgYCCJiYnIZDJMTU2xtLSkU6dOBAUF4e3tTefOnfHw8MDe3r7OjlF1ApkM8nPghjeE3oAXebVt0cuo1AObTtBvBDRpVncHzTrOR+fvH0J5t08ZWcQQxA/c5xfKlxe1GQUsfylb0RsHpmKCK+pof3T8/gaRSMTevXs5fPgw7dq1Y/To0djZ2SGTycjPzyc7O5vExESioqKIi4sjMTERsViMiYkJ7du3p2PHjnTp0uUVkfmKIhaLFU7N9evX0dHRYdCgQfTo0QNjY+N37nYplUrZunUrnp6ejBw5klGjRmFgYFAnGry8ePGC3377jZ9//pm2bduyZMkSrK2tK7wYFQqFpKamEhQUxPnz50lKSsLe3p4RI0bg5ORUqQVdQUEBDx48ICwsjFu3bpGQkIBEIkFfXx8LCwvatWuHubk5urq66Orq0qBBAwoLC7l69Srbt2+nfv36LF++/CVx6bchEonw9/dnw4YNighihw4dXvmcWCwmOTmZY8eOce7cOdTU1Bg9ejQ9evTAzMysxusfK4tQDE/yyp2/ow8hX1jzDqCyoNzRG2ULY2zLUz7rSqrn25BKpRQVFfHo0SP8/Pzw8vJCJpMxZMgQpkyZ8rcZCb///jtr1qzB1dWVyZMnY25uXmFHQCqVkpWVxb///W+8vb2ZOnUqo0ePpnnz5hQWFpKXl0dOTg7JyclERkYSHR1NbGwsUqkUQ0ND2rZti729Pfb29or2/O+KSCTiwoUL7N+/n7S0NHr27MngwYNp27atIsW5IojFYp4+fcqJEyc4fPgwgwcPZtWqVXVGEFwsFhMcHMzGjRvR0NBg1qxZdO/e/Z3GbHnqbnJyMsHBwRw/fpzk5GR69+7N5MmTadWqVaWdQKlUSlpaGqGhody6dYuQkBBycnLQ0dGhZcuWtGnTRpHKqaOjg46ODrm5uXh5eXHmzBlMTEyYMmUKXbt2rRPzUJ1F7gCG3YQQP8h+9p+BspZ9AjV1cOgJ3ft9dPyqyEfn7x+EXO4hhziiOM1NfqCMAmRIFK9sTb0qApRQQQMbvsCO0RhgjxrVExX5J1JYWMi2bdv4/fffcXFxYeTIkbRt2/Ylh0suIZGbm0tWVhZpaWk8evSIyMhIkpKSyMnJQU9Pj9atW9OpUyccHBwwMzMD3h6NefLkCefOnePKlSuUlZXh5OREv379sLKyqrQzeezYMTZv3oy7uztfffUVpqamtb7LLZPJyMjI4NChQ5w5cwYnJycmT55MmzZtKrUb/Pz5c0WLcH9/f4RCIb169WLYsGFYWVm99fvPnj3j7t273L17l/v375ORkUHDhg0xMDDA3NycNm3aYGhoiJ6eHk2bNkVTU/OlRYtcwD0wMJCdO3ciFApZvHjxO6XjFRUV8fvvv3Po0CHs7e2ZNGmSwna5RpuPjw+nT58mPT2dLl268Nlnn2FjY/PWxhB1EZEUMgohKBnOxkJwMiAojwS+TwSUO32WujDaFlyMy2v8PkQkEgm5ubmEh4dz7tw5AgICsLS0ZNy4cQwYMOAlSYNbt24xf/58zMzMmDNnDm3btq1wvaBYLCYhIYF169YREhLCjBkzGDZs2GvTrMvKysjNzSUjI4Nnz54RGxtLTEwMycnJ5OXloampiampKTY2Ntjb22NjY/PWSL1MJuPOnTvs37+fsLAwLC0tGTp0KB06dKBly5aVqmuVSCSkp6fj5eXFnj17cHFxYfXq1TRt2rRORKSEQiE+Pj7s3r0bfX19pk+fjoODQ6WOVVhYSExMDD4+Ply6dAlNTU369u3L559/joGBwVsdcXlTmZiYGO7evcu9e/d4+vQppaWl6Onp0bx5c+zt7TE1NaVp06Y0adKEJk2avCKp8ezZMy5dusTp06dRV1fnyy+/xN3dvc7UnddJZLLyqN/jKAjxh4RYEIuoFQdQWRm0dMqdPpvO0OT9lln8f+Cj8/cPRIaMIjKI5xIPOMZT/JAioyaigAKUkCGlBY5Y8ynm9EcXc1So2fb4HxJZWVn8+OOP+Pj4MHDgQEaMGIGZmdlbJyaJRMLz589JTU0lNTWV5ORkoqKiSE5OJjs7m/r162NiYoKtrS3t27fHxsbmFf0reV3fn3/+SUpKCtbW1vTu3VuxS17Z3VE/Pz++/fZbLC0t8fDwoE2bNrUeHZJIJCQmJrJ//35FZ7oJEyZgYWFRpePK5RXCw8Px8/MjLCwMLS0t+vbty+DBgxXpkPL6pfj4eCIjIwkNDSU+Pp78/HwaNmxIs2bNsLW1xcTEBENDQ5o1a4auru5bfzd5U4mgoCAOHjxIcnIy06ZN44svvqjw/cvJycHT05OLFy/i7OzM+PHjadSoEXfu3OHs2bNERUVhZGRE//79sbe3x9zcvE4sVCuLVAZFZRCZBTeS4PITiMspd86q2wmUO33NGoC7GfQygfbNQOsDX3fKOz4+efKE4OBg/vzzT5KTk+nevTujR4/G1taWx48fs2DBAkpLS1m6dCmdO3eusFSKPKVv69atxMXFMX36dIYOHVqhDQd5tkR6ejrPnj0jMTGR+Ph4xSaZRCKhefPmWFpaYmtri7W1NWZmZgpnRF4Dd/z4cS5dugTAJ598grOzMzY2NlWuYZNKpeTk5HDmzBl27NiBvb09y5cvx8TEpE68Vy9evMDLy4sTJ05gbW3N1KlTad26daWPJ9/kunz5Mvfv38fU1JQBAwbQq1evV5zekpISUlNTiYqK4sGDB0RHR5OdnY2ysjKNGjXCxMQEOzs7DAwMaN68OS1atKhQnXFOTg7+/v6cPHmSoqIivvjiC/71r3/VmfrzOouwGFISIOIuRIeWRwERUCNOoEAA6ppgaQt2XcCsLTT8QHfM6hgfnb9/MGKEJBPMYy4Tx0WyiUaG9L00hJE7fY2xwBx3zOiLEV3/U9/3Mb3i73j69Ck//fQT169f59NPP2XkyJG0aNHinSNkcsciNTWVxMREEhMTefToEU+ePKGkpASxWIyRkZEimmRiYkJKSgpXr17lwYMHNG3alG7duuHs7Iy5uXmVdkRjYmJYuHAhAAsXLsTBwaFWBNL/ikgkIiYmhkOHDnH79m369+/P6NGjMTU1rbZzyNvj37hxg2vXrpGQkEDbtm1xdXVFX1+fuLg4IiMjSUhIQCQSoampib6+PjY2NrRs2RJjY2NMTU0r3TBF3uZ8+/btxMXFMW3aNMaOHVvh6ERycjK7d+/mzp072NnZ0bBhQ+7du4eSkhLOzs707NkTW1vbWnfiqxOJFLKLIfQZhKaXy0JEZv3XAazsDCj4z99UlcBUGxwMwMEQ2umDsXbNZWDUBHIZm9DQULy9vfH19UVHRwc3NzfCwsJ4+PAhK1eupHfv3hWuvysqKiIoKIi9e/eSkZHBlClTGDJkSKXTI4VCIZmZmaSmppKUlMTjx49JTEwkNzeXkpISNDU1MTc3x8rKipYtW5Keno63tzcJCQk4ODjQp08funXr9k6Nrt6GvFuul5cXO3bswNramgULFmBjY1MnUhIzMjL49ddf8fHxwdHRkUmTJmFkZFTp40mlUuLj47l+/Tq+vr7k5ORga2tLv379aNmyJRkZGURFRREfH09aWhpFRUWoqqqipaWFlZUVrVq1okWLFrRo0QJDQ8NK/UYFBQUEBQVx4sQJUlNTGTJkCMOHD6dp06aVvq7/F0gkkJsFCdEQG14eBXyey3t1AtU1wNC0XL/PwgYMjMvr/T5SLXx0/v4fUEAaTwkkmWBSuU0mEZRR/J//W/l7LK/dE6BEU9piSBeMcMKEHmhhhDIfX9Q3ER0dzfbt2wkODmbMmDGMHj36rd3vKoo8XS8+Pp6EhARiYmJ48uQJBQUFiEQidHR0yMjIIDU1FTs7O8aOHYuzs3OVu4hmZmaycuVKwsLCWLZsGW5ubtXacKEyCIVC7t+/j6enJ9HR0QwaNIiRI0fSvHnz93K+vLw8rl27xi+//MLdu3dp0aIFenp6FBcXo6Ojg5mZGWZmZlhYWGBqaoqxsfEraUqVRSwWc//+fXbu3Mn9+/eZOnUq48aNq5DwtVQq5fz582zevJn4+HhMTEzo0KEDgwcPpkuXLh9kimdFkcogqwjCnkF0NsTmQEIeJDyHUnH5Z5Qo34iW/efzAv7r5Mn+0zxGQLlAu6EWtNIBc53yNE8bPTBp9M8uUZHJZIpMgnPnznHnzh3S0tIYMGAAP/30E82aNavQ2JaXl4evry9Hjx6lpKSESZMmMXjw4GrbdJBKpRQUFJCSkkJCQgKPHj3i8ePHivRQVVVVsrOzefr0Kb1792b27Nk4OTm9F71K+abd6dOn2blzJ0ZGRsyaNQtHR8c60YUyISGBX375hVu3btGvXz/Gjh1LkyZNqnRMoVCIv78/x48fJywsjObNm9O0aVOFvIeamhoGBgZYWlpiYmKi+Ku66iJLSkoICwvj+PHjxMTE4ObmxsiRIzE2Nq6W4/+jKRVCZhokxEBSPCQnQM6z8gGwygj+M4A2Knf0WpqDiSUYmUH9j9HZ6uZNzp/yqlWraticV9m7d++qr7/+urbN+KBRoyF62KBPOxrRkka0pD5NUUENCWVIKEW+dPm7KJ0Apf84e+UvuQpqNMYMQzphwQDaMIx2jMEYZzTRRYnan7jqMqGhofz00/+xd95RUV1rG3+Q3ofee5GOdBEUUDGi2EsssXdzY6ImMcVcU4yJJtGY2DAx196NGhUVQRExFBFBqvQqZYY+TJ95vz/IzHdzkyggiDHzW4t1c50z++x95px99vO2vRP379/HwoULsXDhQhgYGPSZxVdBQQGampqwsrKCl5cXgoKCYGRkhIcPH+L27dtgsVhQUFCAhoYGNDU1weVy0dDQgObmZhAR1NXVe5yUz2azsXfvXly6dEm2pYOmpmafjKe3dHR0ICUlBYcPH0Z5eTlmzJiB1157rU8tvdL8p8LCQqSkpMhCP9lsNjQ1NaGpqYnHjx+jrq4Ofn5+WLlyJcaOHQt7e3vo6en1mfADgEGDBsHU1BQuLi6oqqrCL7/8AkVFRTg7Oz9RADKZTCQlJSEhIQENDQ3g8/lQVVVFVFQUpk6d+sIUpOgvFBS6RJuDHuBr1iXcpH92DMBSBzDRBPQ1AH31rpBNI82uUE5LHcBBv2vLhgDzrly+UXbAGHtgtD3gaQzoqb3cwg/omnPU1dXh6uqKrKwsErI/OgAAIABJREFUJCcnw93dHQKBAJ2dnVBTU3vi/o/SfNxLly7h+PHjUFBQwL/+9S9MmDChT3OFFRQUoKamBmNjYzg7O8PLyws6OjrIycnBgwcPoKCgAAsLC+jp6UFRURHV1dWoqKgAi8WCSCSCpqZmn+1hqaCgAEVFRbi7u0NPTw9JSUnIzMyEvr6+rBrqQIaB6unpwcTERFbcSllZGU5OTj0W4kKhEI8fP0Z2djbu3LmDvLw8MJlM8Hg8tLa2orCwEKWlpTAyMsLEiRMxf/58jBo1CoMHD4axsXGfRhsoKyvDzMwMtra2aGpqkm2pZG5uLvcAPg0lJUBXDzCzBkwsAT1DgGHQ5aVTGAQIeAD9FlmmMOjPQxwUFLo+kzoeBv2Wz2dmDTi4Ae7+wJBgwD0AMLcGVP7m8fEvKN9//z1vzZo1W//sM7nn7yVFBD5YKEADcsFCIdpRBQ6aIAAbArAhBAci8CCBCIACFKEKZahBBVpQhhbUoQttmMMQrjCBF8zgAyWoy6t4PgXp8/TgwQN8/fXXstC8uXPndssz01s4HA4ePHiA+Ph43L59GwwGA8HBwbC0tERdXR2KiopQW1sLoVAILS0tWXiotbW1LMRGmkT/V4hEIpw4cQKffvopZs+ejfXr1/dpiFRvaGlpQVJSEk6dOoWWlhbMnTsXU6ZM6RNByuFwwGQyUVNTg6qqKpSUlKC8vBxMJhMCgQD6+vqwt7eHi4sLrKysUFpaisuXL6OhoQGjRo3CqFGjEBQUBDU1tX65RtJ9/L788kskJSVh+fLlmDVrFgwNDf+QX5OXl4dbt27h9u3bkEgkCAoKgpaWFu7evQtlZWW89dZbCAoKeiFC0Z43BKCJAzR2doWHdgi6PIE8EaA4CFBVBFSVAIYqYKDRJQh1VLo++6chnd/i4+Px1ltvITg4GNHR0YiPj0dubi6sra0xatQoDBs2DNbW1r8LLZdubXLhwgVcvnwZpqamWLp0KcLDw/utv0KhEA0NDUhLS0NCQgIePnwIBwcHvPLKK3B0dERhYSFycnJQVlaG1tZWMBgMWUEta2trWFlZwdzcHIaGhn0mThISErBt2zYAwOrVqzFq1Kg/5Gk/b4gImZmZ2LdvnyyfOCoq6qljbm9vx+PHj1FdXS3zsNbW1qKxsRGKioqwtLSEs7MzjI2N0djYiKysLLBYLLi4uCAyMhK+vr4wNzfvt7ETESorK3HixAncuHEDHh4eWLhwIXx8fF6IvMu/BRIJwOMCj8uBuhqgsRboaO3KExTwAT4XEAgA8W/hE4pKgLJy16bsKqpdolFLFzAwAUwsADMbQFe/q8CLnH5FHvb5D4dA4KEVHXgMNurQCSZ4aIUIHIjAhwIGQRkaUIYmNGAALZhDB+bQhoVc7PUAafnr9PR07Ny5E1VVVXjrrbcwffr0fgnvISIQEUpKSnD37l1cvHgRDQ0NGDlyJObOnQsnJyeZZ6+zsxNlZWV4+PAhHj58iOLiYln4k7m5OZycnODi4gJTU1OYmZnB1NRUlsMnnSMSExOxZs0aBAQEYNu2bQO+lx+TyURcXBzOnDkDIsKCBQsQHR3d60UaEaGlpQX19fVobGxEWVmZbLuNxsZGDBo0CFZWVnBzc8OQIUPg7u4OMzMz2TUQi8UoLS3FoUOHkJiYCG1tbcyePRvBwcGy4in9EVLW0tKCTz/9FFevXsWyZcswa9YsmJubA+jKN01NTUVsbCxqamrg7u6OqVOnIiAgAEpKSoiNjcWBAwdgZmaGd999t1vVS+X8cyEiPHz4EGvWrIGGhgZ2794NW1tbcDgcXLlyRVYtNjAwECNHjoSfnx+MjIxARCgtLcXp06cRHx8PLy8vrFixAp6env3ST7FYjJaWFuTm5sqq9KqrqyMqKgqzZs2SFWiSjqmmpgaZmZnIzc2VVeSV5uva2dnB1dUVlpaWMDIygomJCbS1tZ/JUJKWloYtW7agpaUFq1atwpgxY2QRAgOFWCxGSkoKdu3aBTabjQ0bNiAkJETWJ+k+hk1NTXj8+DEeP36M8vJyFBUVobq6Go2NjTAwMICzszPc3d3h7u4OV1dXaGtrQ0FBQZYPeOnSJdy8eRNisRjDhg1DZGQk3Nzcnjkd4UmwWCycP38eR44ckYXd+vv7D3hl6r8dRL9VCG3uygdsb+3aJF7AB4T8rmOUVQFlFUBTC9BmdHn8dPS6cvnkgvu5Ihd/cuT0M9K8jrS0NHz66afgcDjYvHkzIiIi+s3r09TUhNzcXJw5cwZ37tyBq6srFixYgNGjRz9RAEmr0OXm5uL+/fvIysqS7SdoZmYGR0dH+Pr6wsrKSrb9QH19PZYvXw4VFRUcOHAA1tbWA7ZQISLU19fj0qVL+Pnnn6Gvr48lS5YgPDy8xyJbWjqeyWSioaEBBQUFyM3NleUGaWtrw9nZGT4+PvD394ejo+MTvYrS6ojJycmIiYlBfn4+hg0bhhkzZsDd3f2p3tXeQETo7OzExx9/jIsXL2L+/PmYMmUKmpubcfnyZSQlJcHS0hKvvvoqRo4cCQMDA9l3W1tbcf78eRw6dAiBgYFYt24dTE1N+7R/cl4OpCLp7bffRlFREX788Uf4+Pj87n6Welni4uIwaNAgREZGIjQ0FGKxGBcvXkRqairCw8OxfPnyfsm/khZYKSsrQ3JyMq5fv46mpiYMHz5cVp30aXR0dCAnJwfZ2dlIT0+XFW8yNDSEjY0NPDw84OTkBGNjYxgaGkJPT69XBqfCwkJs2rQJZWVlWLlyJaKiomBiYjKgeYA8Hg9JSUnYsWMHNDQ08PHHH8PW1lY2R0ordBYUFKCoqAhisRg2NjYYMmQIhgwZAn9/fxgZGT1xDFwuFzk5OTh79izu3r0LBoOByZMnIzQ0FPb29v22NUN7ezvi4uLw/fffQ1tbGxs2bEBgYKB8Kwg5Ly1y8SdHTj9CROBwOEhNTcUHH3wAFRUV7Ny5s19CS4gIPB4PlZWVuH79Og4fPizbjHv+/PnQ0tLq8Tl5PB6qqqpw//59pKSkIDMzE62trdDV1YWrqyv8/PyQlJSE69ev48iRI4iMjISysvKAeP2kGwAfP34cly5dgpubG5YvXw4/P79ufZ+IwOfz0dzcjJaWFlRXVyMzMxM5OTkoKCgAANjY2MDPzw/BwcEYMmRIr/I0pb/T8ePH8cMPP4DP52Pu3LkYM2YMHBwcoKGh0efXTygUYtOmTdi3bx/GjBmD/Px8aGpqyirMmpub/+k46uvrcfz4cZw4cQKvvvoqli1bBl1dealtOf+P1MP89ddf4+jRo9i7dy/GjRv3l3l9Dx48wJEjR2Qh6J2dnejs7MSrr76K1atX/84A0VdwuVzU19fj3r17+OWXX5Cfnw9vb2+89tpriIiI6JXRRRqqmpGRgdTUVDx8+BCNjY3Q1NSEnZ0dvLy8ZFsS6OnpgcFgQFNTs9vnevz4Mf7973/j3r17WLRoESZNmgRLS8teb5D+rEh/54sXL2Lr1q3w8vLCxIkTkZOTg7y8PJSWlkJHRwfu7u6yfWZ9fHx6lbcozdU+dOgQ8vPz4eHhgXnz5sHNze0v56pnhcfjIS0tDR9//DEEAgE+/fRTBAcHD3jBMjly+gO5+JMjp5+QSCSyDbjfe+89mJqaYu/evX0ePicNKW1sbMT9+/exf/9+5ObmYvz48XjvvfdgYWHRJ2JCIpGgs7MT2dnZSEpKwuXLl5GSkgItLS14eHggOjoaI0aMgImJCXR0dKCtrS3btqC/xaBEIkFNTQ2+++473Lx5E2PGjMGSJUueuIef1BPH4XDQ3t6O9vZ2lJeXIzk5GZmZmSgqKoKmpia8vLwwfPhwDB8+vFfFDp5EVVUVvv76a8TGxsLW1havv/46/P39YWJi0iciWhr+y2QykZmZiXfeeQf19fXQ1NTErl27MHLkyKeKzYqKCsTExCA2Nhbvvvsupk2b1u292uS83Eg9y6dOncL777+PTZs2YfXq1U+9b5ubm7F3714cOXIETCYTwcHBWLBgAUJDQ7u1t2V3EYlEaGlpQVZWFs6cOYO0tDRYW1tjzpw5mDBhQp8WMmKz2SgoKEBKSgpSUlJQWFgILpcLU1NTmefL09MTDAYD2tra0NbWfqqQa29vx2effYbY2FhMmzYNs2fPhoODw3PbbkUkEoHL5YLNZqOtrQ3V1dVIT09HXFwc7t+/D4FAAHd3d4wZMwZBQUEIDQ39XdjssyL1yO3evRt1dXWIiorCkiVLYGVl1S9GKJFIhEePHuHtt99GVVUVtm7divDw8Je+4JWcfx5y8SdHTj8gkUjQ0tKC2NhYfPTRR/D09MQPP/zQ52FzEokEbDYbpaWlOHDgAM6fPw83Nzds3LgRYWFhfXouKVLP1fnz5/H6669j8uTJEIvFSE1NRWdnJ6ytreHv74/Q0FB4e3uDwWBAXV0dGhoafVYl778RiUSorq7G5s2bce/ePSxcuPAvt3KQ5qZwOBxwOBw0NTXh3r17uHv3Ln799Ve0tbXBzMwMQ4cORUREBEaNGgVdXd1+F68pKSnYsmULcnJyEBkZicWLF8PZ2Rm6urq9zj2Rep1ramqwb98+nDp1Ci4uLhg6dChOnToFDw8PbNy4EZ6enk8tOFRWVoYvvvgCaWlp2LVrF0JCQl6IUvRyBg6pp/zmzZtYvHgxZs6ciZ07dwLAX95L0tDLK1euYM+ePVBSUoKLiwvKyspQVVWFiIgIzJ8/H4MHD4aOjk6vPTzSebGiogJnz57F5cuXoaGhgblz52Lq1KkwMTHp9bi7e34mk4mMjAwkJyfj3r17KCoqgqqqKjw9PTF06FAMHz4clpaW0NDQgLq6uiyP+n+vnUAgwM6dO3HkyBGEhoZi0aJF8PT07BcDjEQigUAgAJfLBYfDQUNDA/Ly8nDv3j1kZGSguroaDAYDzs7OUFBQQEZGBt544w2sXr263/ZylaYiHDlyBD/88ANUVVWxbNkyTJkyRWYo6Mv5WSKRoKGhAWvWrEFqaiq2bt2K6OhoWX6iHDkvA08SfzKr8UD++fn5kRw5fydEIhHV19fTrl27yNzcnObPn0/t7e19eg6xWExcLpfKy8tp586d5OjoSO7u7rRnzx7i8/l9eq7/RiKREJ/Pp1u3bpGRkREtW7aMJBIJSSQSYrPZdOPGDXrvvffI39+fjI2NycbGhiZMmEBffvkl3b17lx4/fkytra3E5XJJJBI9c3+EQiEVFBTQ+PHjycPDg44dO0atra2/669IJCIul0ttbW1UW1tLd+/epS+//JKio6PJzMyMTExMKDw8nDZv3kypqakkFotJIpE8c996ikAgoCNHjpCvry/Z29vTe++9Rzk5OcThcEgsFne7HYlEQgKBgFgsFh08eJAcHR3J1taWtm7dSp2dnSSRSCghIYG8vb0pIiKCEhMTZf/+V4jFYiosLKSoqCgKCAigR48eDcg1kvNiIJ0H0tLSyM7OjqZMmUI8Hu+p32lra6OdO3eSh4cHTZ8+nVJTU0kikVB1dTVt376dhgwZQm5ubvTJJ59QZWUlcTicHt1nEomEeDwe1dbW0o4dO8jHx4c8PDxo8+bNVFpa+qzD7jU8Ho/y8vIoJiaGZs6cSVZWVqSvr08+Pj60Zs0aOnXqFNXU1FBzczN1dnb+YQ6SSCR08uRJCggIoIkTJ1JcXBxxudw+eQZFIhFxOBxqaWmhyspKunr1Km3cuJHCwsLIwsKCrKysaNSoUfTRRx/R9evXqampiYiIGhsbacOGDWRhYUHnzp0jgUDwzH15Wj/Lyspo1apVZGhoSBEREXTz5k1qbW0lkUjUp/OR9H22atUqYjAYtHXrVmptbZW96+TI+bvj6OjYTH+huwZc+JFc/Mn5GyEVGhUVFfThhx+SqakpbdiwoU9fihKJhIRCIdXX19OxY8coICCATE1Nad26ddTY2Nhn53nSuXNzc8nR0ZHGjh37lwsQsVhMubm5tH//fpo5cybZ2NiQnp4e+fr60vLly+no0aNUVFRE7e3txOVySSgU9vilKhQKKSMjgwICAsjX15fi4+Nl/REKhcTlcqm9vZ2Kioro5MmT9Prrr9OQIUNIR0eHbG1tadasWXTgwAF6/PhxX12iPqGhoYE++ugjsrOzI19fX9q/fz9VV1eTQCB44jWSSCQkFouJzWZTSkoKRUZGkra2Nq1YsYLq6+v/8N2HDx9SWFgYDRkyhM6dO0dtbW1PbF8oFFJWVhYNGTKEwsPDicViyRdC/0Ck89yjR4/I39+fAgMDiclkPvU7LS0ttH79erK1taV169ZRSUnJ744Ri8VUXFxMH374Idna2pKvry8dOHCA2traSCgUPrVfIpGI2tvb6ezZsxQSEkLW1tb0r3/9ix4+fNgnhqa+QiKRUHt7O8XHx9M777xD7u7upK2tTRYWFjRt2jTavXs3FRcXU2trK3E4HNncKDXajB49mkJCQujEiRNPNdr81fkFAgFxOBxqa2ujhw8f0r59++jVV18lS0tLYjAYNGTIEFqxYgUdOXKESktL//T6SSQSamxspPnz55O5uTn9+uuvPTJS9RaxWEzp6ek0evRo0tbWpoULF1JRUZFs7u+rOUl6n2/ZsoXU1dVpxYoVsjlSPu/J+bsjF39y5PQB0hdFXl4eLVy4kCwtLWnXrl192r5YLKaOjg66efMmTZo0iQwMDGjatGn04MGDPjvP085fWVlJQUFB5Onp2SOx2draSrdv36Z///vfFBwcTLq6umRoaEjDhw+nDz/8kBISEqitrY14PF63hKBIJKIbN26QnZ0dBQcHU0ZGBnG5XOLz+dTS0kLJycm0efNmCg8PJwMDAzIwMKDQ0FDauHEj3bhxgzo7O5/1kvQ7BQUFtGzZMrKwsKDIyEg6f/48tbW1/cHKLV2M8Pl8qqqqonfeeYe0tLRo2LBhlJKS8sRrWV1dTdOnTycnJyfas2cPMZnMJx7P5/Ppzp07ZGFhQXPmzOlXL7OcFxOxWEzl5eU0duxYcnZ2/oOI+7PjGxoaZOJix44d1NDQ8JfHCwQCys7OpoULFxKDwaCIiAi6ffs28fn8PxUX0ns/JSWFoqKiiMFg0OTJkyk1NfWp3sgXAYlEQmVlZbRr1y4aP348MRgMUldXJx8fH1q/fj1du3aNmEymbG58+PAhzZkzh9zd3embb755qtFGOncLhULi8XjEYrHoypUrtGbNGnJ2diZ1dXUyNTWlyZMn044dO+jhw4fE5XK73feGhgaKjIwke3t7Ki0tfS7CSDqmo0ePkq2tLRkZGdEXX3xBTU1NvTIkPu1chw4dIi0tLZoyZQo1NjYOWHSIHDl9hVz8yZHzjEg9TUlJSTRy5EhycXGhs2fP9nn72dnZtHr1ajI1NaWwsDC6cOHCc7G0SvtQV1dH06ZNI0tLS8rLy+t1W2KxmGpqaujMmTO0dOlScnZ2JhUVFdkCZO/evVRRUUFCoZBEItEfXrRisZjOnDlD+vr6FB0dTWVlZVRaWkrHjh2jhQsXkrW1NamqqpKdnR3NnTuXDh06ROXl5X/Ll7VYLKbExESaNGkSGRsb06RJk+jGjRu/8waIxWJisVi0fft2MjExIQsLC9q1a1e3vR1NTU20cuVKsrGxoY0bN1JlZeUTrxWPx6NLly6Rjo4Obdq06bndg3IGHolEQpWVlTR//nyysrKitLS0px5fWlpKISEhZGNjQ2fPnqWOjo5unYvL5crmVHV1dZo9ezaVl5fLjB/Se7+qqopWr15NWlpaFBoaSnFxcX8L485fwWazKTY2VibOVFVVydDQkMaNG0fffvst5eTkUHFxMa1fv54cHR1p7dq1v/Ps//e1EYlEJBAIqLCwkPbs2UPR0dGkrq5OysrK5O/vT++88w7FxsZSR0dHr+dHqVHQzc2N/Pz8nnt4JJvNpk8//ZR0dHTI2dmZjh07Ru3t7X0u0BISEsjIyIiGDh1KJSUlfR5qKkfO80Qu/uTIeQYkEglxuVw6deoUeXl5UUhICKWkpPRZ2xKJhIqKiujdd98lS0tL8vLyopiYGGKz2X1yju72o76+nt544w0yMjKiW7du9Wn7bDabMjIy6KuvvqKoqCjS0tIiJSUl8vLyovfee4/i4uKIx+PJFjTffvstqaio0MSJE2ndunXk7+9PampqpKurS6NGjaLPPvuM0tLSnus16m/YbDadPHmSQkJCyNTUlFauXEn5+fnU2tpK586dIx8fH9LW1qZVq1YRi8XqcftcLpc+//xzcnR0pKVLl1J+fv4TFzZcLpf27NlDysrKdPjwYfki6B+ANDdv/fr1ZGZmRj///PNTj09LSyMHBwfy8PCglJSUXnmKuVwunTx5kmxtbUlbW5s2bdpEnZ2dxGaz6csvvyQGg0FWVla0d+/el+qZl1JcXEz79u2jSZMmkaGhISkpKZGjoyPNnTuXpk+fTnZ2djRt2jQqLCyURaAwmUz65ZdfaOXKlWRtbU0KCgpkaGhIM2bMoJiYGKqpqenTZ1YsFlNBQQGZmppSVFTUU0PU+4OSkhKaN28eqampUUhICMXHx8vCYvuqL7m5uTR48GCyt7enX3/9lfh8vnzuk/O3RC7+5MjpJdICBt999x05OzvTjBkzqLi4uE/alUgk1NTURDt27CAXFxeyt7enzz77jGpqavqg5z3rC5PJpG3btpGBgQEdPHiwX88nFouppaWFrly5QuvWrSNnZ2cCIPPyubu7EwBSU1MjAGRtbU1Lly6lc+fOEYvFeum9UEwmk2JiYsjDw4O0tbXJ2tqatLW1KTo6+pnDf8ViMR0+fJh8fHwoKiqKkpKSnrhw4vF4tHbtWlJTU6Nbt27JF0EvMdLwvq1bt5KlpSXFxMQ89fgLFy6Qnp4ejRw5ksrKyp4p7046137++eekpaVFpqamZGxsTJqamrRx48anhj6+LLS1tdHt27fpo48+osDAQFJXVydFRUVSU1MjExMTGjduHI0YMYJUVFRIRUWFgoKC6P3336f4+Phu5U0+C2KxmFJSUkhTU5OWLl06YL9HUlIShYWFkaamJr366qt0//59mRjtiz7V1dVRWFgYGRkZ0ZkzZ15Kg4Oclx+5+JMjp5fU1tbSO++8Qw4ODrKCK33xchEKhXT27FkKDAwkCwsLevPNNyk3N3dAEs2bm5tp//79ZGZmRlu2bOn380vHKLVgZ2Vl0dtvv02DBw8mALI/c3NzWrBgAV2/fl1WEfCfkIgvFospLy+PVq9eTRoaGqSkpES2tra0c+fOZ86/k16/pKQkGj9+PHl7e9Phw4f/UlBLvd6TJ08mAwMDKi4ufumv/z+VpqYm+v7778nW1pY+/vjjp/7OO3fuJGVlZVqwYAG1tLQ887MpnQ/S09MpMDBQNg8MGzaMMjMz/zEheNLrKK0e+vXXX1NISAhpaGjIrom6ujr5+/vT1q1bqaqq6rnNjdLIjAsXLpCioiJt27ZtQIxx0jSJU6dOkY+PDxkYGNDKlSspJyenT/ojnfeWLVtGenp6tG3btqcWPJIj50VDLv7kyOkFubm5NGfOHHJzc6MdO3YQm83uk5frr7/+SlFRUWRgYECzZ8+m1NTUAQstYbPZdOLECXJwcKA33njjuViOWSzW78KVFBUVycjISGblP3fuHJ0/f55WrFhBdnZ2pKSkREZGRjR16lTav38/lZaW9nvJ8YGiqqqKPvvsM1kY3c6dOyk9PZ2WLVtGOjo6FBwcTPHx8c98HolEQllZWTRv3jxydnam7du3/+k1lS4o29raKCAggNzc3OQVQF9C2Gw2/fTTT+Tq6kpvvfXWXz5f0kX3G2+8QYqKivTBBx/0SQVGsVhM1dXV9Prrr5OKigoFBARQUlISJSQk0JAhQ0hNTY1Wr15NtbW1L7Xn//Hjx/Tzzz/T6tWrafDgwaSiokJmZmY0YcIE+uqrr+jkyZO0ePFiUlVVJXt7e9LR0SElJSUaPHgwrV27luLj4/s9HFMqAL/66itSVFSkI0eODEilVWk/WlpaaNeuXeTm5kYODg60efNmqqio6JP2RSIRffPNN2RiYkLLli17auEjOXJeJOTiT46cHnLr1i0aOXIkDR06lE6fPt0n4qysrIwWLVpEenp6FBoaSpcvX6bW1tYBqyrG4/Ho559/Jk9PT5ozZ06/hVV1dHRQeno6bdu2jcaNG0cMBoM0NDTI19eXNmzYQIcOHSJnZ2eys7Oj7OxsEolEsiIGPB6PsrOzafv27TRp0iQyMjIidXV18vLyojVr1tCFCxeotra2z/v8vGlubqbdu3eTt7c3OTg40EcffURlZWUkFAp/t7XDlClTSFNTk2bNmkVlZWXPdE6xWExlZWX0/vvvk52dHa1bt+5PC3VIF/YVFRWy/cB6U35ezosJj8ejI0eO0JAhQ2jx4sUyL97/IpFIqKOjg6ZOnUoaGhp08ODBZ54XpSHnW7ZsISMjI7Kzs6M9e/YQl8slsVgs2+v0p59+ImtrazI1NaXPP//8qRVr/y5wOBy6c+cO/fvf/6aAgADS0dEhPT09GjFiBL3//vsUFxdHjY2NxOfzZcWx6urq6MsvvyQ9PT2aOXMmnTlzhtauXUtubm6krKxM+vr6NGXKFPrhhx+ourq6X8Sy1AiwevVq0tbWpsTExH43HD6tL+Xl5bRx40ZycHAgd3d32rFjxzN766RtHz9+nJydnSk6OprS0tJeagOEnJcHufiTI6ebSCQSOnr0KHl7e9Po0aPp2rVrz2xJZbPZ9NVXX5GlpSV5enrSoUOHqL6+vs/LVfcEkUhEV69epZCQEJo4ceJTqz/2BKkV//Tp07R8+XJyd3cnHR0dWWXOAwcOUHFxMbW0tFB8fDxZW1uTt7c3PXr06E9Du0QiEfH5fOrs7KSamhq6ePEibdiwgYYOHUoGBgZkYWFBUVFRtGXLFkpOTiYOh9Mn43geCIVC+uWXX2jkyJFkZWVFixYtort37xJUEOQZAAAgAElEQVSPx/vdAkNqhW5ubqaTJ0+Sh4cHGRoa0oYNG565il99fT19//335OjoSLNnz6a6uro/HCe1sicnJ5Ouri6tWrVKvgXES4BIJKLTp0/T0KFD6bXXXpOFEP4v0md6+PDhZGxsTNeuXXtm4dfa2krHjh0jb29vMjc3p/fff5/q6ur+0K5E0rVnXU1NDX3wwQdkampK/v7+dOrUKWptbe31+QeK8vJyOnjwIM2ePZvMzMxIS0uLvL29admyZXTw4EEqLi6mjo6Ov9wSRywWU3NzMx09epTMzc1p7NixVF1dTR0dHZSVlUU7d+6k6Oho0tXVJR0dHQoJCaH33nuPEhIS+ix6hajrd+ns7KSJEyeStbW1zHA3UIjFYuLxeJSZmUlr1qwhOzs7Cg0NpaNHjz7zO0EgENCtW7coNDSUgoOD6eLFi3+LLUbk/LORiz85crqBUCik7du30+DBg2nJkiV07969Xi9wpN6SX375hXx9fcnCwoI+/PBDKisrk1m1B5LExESaMGECjRs3jrKysp65P1wul1JTU2nr1q00ZswYsrS0JCsrK4qIiKAPPviArl69SnV1ddTW1kZcLpfYbDadP3+erK2tacyYMVRRUdGthYNYLCY+n08dHR3EYrHowYMHFBMTQ3PnziUXFxcyMDAgd3d3WrhwIf30009UXl7+TOPqT+7fv09z5swhGxsbmjx5Ml2+fJmampqeGNIqzQWqrq6mTz75hExMTMjT05NOnjzZaw+ydDF56tQp8vT0pNGjR1NhYeGfnlsgENCJEydIR0eHvvvuO/kC6G9ObGwsRUZG0vTp0yk7O/tP5wFpXq63tzc5Ozs/c5h6e3s7xcbG0tixY8nc3Jzmzp1LWVlZxGaznzgPST3g9+7dozlz5pCFhQWNHTuWrl+//sIW5JBIJMRmsykxMZE++OAD8vX1JQMDA7KysqIpU6bQl19+SWlpadTQ0EDt7e3E5XK7ldso9cLGxcXR4MGDaejQoVRcXEwikYg4HA61tLRQZWUlnT17lv71r3+Rm5sb6evrk6OjI7366qu0Z88eevToUZ/kENfX11NwcDD5+vrKtkcYSIRCIbW2tlJ8fDzNnTuXrK2taeLEiXTjxo1nEr4CgYCysrJo+vTp5OPjQ/v27ftbGh/k/HN4kvhTICIMNP7+/pSRkTHQ3ZDzD4bD4eCTTz7B+fPnMXPmTMybNw/29vZQVlbucVtEhLy8PHz88cdITk5GaGgo3n33XTg5OUFXVxcKCgpQUFDoh1F0j/T0dOzYsQNNTU149913ERYW1qtx1tTUICkpCYmJiUhPTweLxYKBgQG8vLwwbNgwBAQEwNLSEmpqalBXV4eKigoUFBTQ1taG48ePY+vWrQgLC8OWLVtgZmaGQYMG9ej8RASxWAw+nw8ul4u2tjaUlJTg119/RVpaGvLz86GgoABHR0dEREQgIiICAQEBUFFR6fFY+5KGhgbs27cPx48fh7GxMZYtW4awsDCYmJhAVVX1qfeGdPLu6OhAeXk5du3ahV9++QXh4eHYtGkTXF1de3wtJRIJOjs7cffuXXz88ccgInz77bcIDg7+w7FcLhdffPEFYmJisG/fPowbNw6qqqo9Op+cgScxMRHbt2+HoqIi1q5di+Dg4D/MA3w+H7dv38aaNWugr6+PmJgYuLi4QElJqcdzGJ/Px/379/HTTz8hKSkJbm5uWL58OQIDA8FgMKCkpNStdoRCIdra2pCYmIiYmBhUVFRg9OjRWLJkCYYMGdLtdvoLkUiEiooK3L17F7du3UJycjI6Ozthb28PX19fBAUFYdiwYdDS0pLNjb25nkQEHo+H3NxcvPHGG+js7MSPP/6IoKAgAF3PtHRu5HK5KC4uxt27d5GRkYGcnBwIBAJYW1sjMDAQYWFhCAgIgJmZWY/7IZFIkJ+fj5kzZ8LBwQF79+6Fubl5j+egvoSIIBAI0NTUhNTUVBw6dAi5ubkIDw/H2rVr4eHh0at2pb/tzp07kZycjMmTJ2Pp0qWwsLDo4xHIkfPsODk5tRQXF+v/2Wdy8SfnHw+TycSGDRuQkpKClStXYvLkybCwsOjxIoKI0NLSgr179+I///kPzM3N8dZbbyEwMBAmJia9esH3NYWFhfj2229RUlKC5cuXY8KECVBXV+/Wd0UiER4+fIjbt28jMTERhYWFICI4OTnB19cXISEhsLW1hY6ODrS0tKCurv67xSQRoaGhAXv37sXx48cxdepUrF27FiYmJn1yXSQSCQQCATo7O8Fms9HU1IQHDx4gLS0NeXl5qKmpgYGBAYKCghAREYGwsDAYGxs/t9+Ex+Ph1KlT2LdvHzo7OzFr1ixER0fD3t4eGhoavRa/LBYLycnJ+Pbbb1FfX4/Jkydj/fr1MDEx6VGbRAQul4sHDx5g8+bNqK2txbZt2zB27Ng/HNvU1IR169YhLS0N+/fvR1BQkFwA/o3Izs7Gl19+iY6ODqxYsQKRkZFQU1P73TFsNhvnzp3D5s2b4e7ujq1bt8LBwaFX82J+fj6OHj2Kq1evQk9PDzNmzEB0dDSMjIy6Pf/8LxwOB/X19bh+/TpOnz6NtrY2jB07FnPnzoW7u3uv2uwN0mfwwYMHSEpKwt27d1FbWws1NTW4ubnB09MTI0aMgLW1NTQ1NaGpqQkNDQ0AeOa5h4ggFApRVFSEDRs2oLi4GNu3b8f48eP/0Dafz0dnZyc4HA6YTCZycnLw4MEDZGVloaamBlpaWnBzc0NQUBCCgoLg5eXVo3dDYmIiVq9ejfDwcHzyyScwNTUd8PedRCIBj8dDdXU1EhIScPjwYbDZbMycOROrV6+GoaFhj9sUi8Woq6vDwYMHcenSJfj7++P111+Hm5tbP4xAjpzeIxd/cuT8BWVlZXj33XdRXFyMdevW4ZVXXoGRkREUFRW73QYRgc/n49KlS9i9ezdYLBZmzJiBGTNmwMbGBhoaGgP+EgSAx48fY+fOnUhNTZV5N3V0dP7yeKmYTUlJQXJyMlJTU1FfXw9NTU24ubnB19cX/v7+MDIyAoPBgK6uLlRUVP5UcEgkEpSUlODbb79FcnIy5syZgwULFsDMzKxfxkpEkEgkYLPZaGtrQ1tbG4qLi3H//n1kZ2ejuLgY6urqcHZ2RkhICAICAuDr69stz1tvuHPnDnbs2IH8/HwEBwdj/vz5cHd3h76+/jN7KogIHA4HlZWVOHv2LE6ePAlDQ0MsWLAAM2bMgLa2drfHJLWY5+fn47vvvkNqairefvttLFmy5A/HlpWVYdmyZRAKhdi1axdcXV175UGW83wpKyvDF198gaqqKixYsAATJkyAtra27HMiQlNTEw4cOICffvoJISEh+OCDD2Bvb99jA0VZWRnOnDmDK1euQEFBAa+88grGjRsHGxsbMBiMPhE/ra2tKC4uRmxsLOLj46Gqqopp06ZhypQp/Ta/tLe3o6ioCOnp6UhNTUV+fj4EAgFMTU3h7OwMLy8v+Pn5gcFgQEdHRzY39gfSua60tBRff/01EhISsGHDBixduvQvfy+xWIzOzk50dHSgra0NVVVVyMvLQ25uLh49eoTW1laYm5vDx8cH/v7+GDZsGKysrJ7YDy6XKzMWzJ49GytXroSJiUl/DLnHiMVitLe3o6SkBFevXsW5c+fAYDAwf/58vPbaaz02XEkkEjQ2NuLChQs4ffo0GAwGVq5ciTFjxvTTCOTI6Tly8SdHzp+QlZWFDz74AI2NjXj33XcxevRoMBiMHi1w+Hw+MjIysH//fjx48ADu7u5YvHgxPDw8YGpqCuDZrbt9QWtrK3bt2oW4uDhERUVh0aJFsv79NyKRCOXl5UhLS0NaWhqys7PR3t4OMzMz2NraIigoCE5OTjA0NISBgQEYDAYUFRWfOEapx/C7775DQUEBFi1ahClTpjzXhYHUq9XS0gIWi4X6+no8fPgQOTk5ePToEQQCASwtLeHl5YWAgAAEBgbC2Nj4mYQZEaG2thZ79uxBbGws9PT0sGTJEgQEBMDOzg7Kysp9em9IPat5eXk4e/YsUlNT4enpicWLFyMgIACamprdbkcsFqOoqAjff/89EhISsHLlSrz55psYNGiQrM8SiQTp6el48803YW9vj88++6xXAkHO84PFYuGLL77AvXv3MHv2bMycORMGBgayzyUSCSorK7F7927cuHED0dHRWLRoERwcHHp0rzKZTFy5cgU///wzmEwmgoODERUVBU9Pzx4b17qDUCgEk8lEVlYWrl69ivv378PMzAxTp07FpEmToKWl9UztCwQCVFRUyCIJCgoK0NLSAg0NDVhaWsLJyQne3t6wtLSEnp4e9PT0ZCH+zwPpOk4aBn7p0iUsW7YMb775pizc/knfFQgEaGtrQ0tLCxobG1FeXo68vDw8evQIlZWV0NDQgKOjI3x8fBAUFAQ/P78/FbNtbW3Yv38/jh07hiVLlmDWrFkwMjLqt3H3FJFIhMbGRjx8+BDnzp1DSkoK3N3dsWTJEkRGRvbo95IaSRISEnDixAl0dnZi+fLlmDp1ap/f33Lk9Aa5+JMj539ITEzE5s2bIRQKsX79eoSHh/fIQyIUClFZWYlTp07h2rVr0NTUxPTp0xEUFAQXF5cXygPC5/Px448/4tSpUwgNDcWSJUtgb28PBQUFiMVitLW1oaCgAJmZmbh//z6qqqpkVmx7e3v4+fnB0tISRkZGMDMzg5aWVrevE4/Hw6+//or9+/eDxWJhwYIFiIqK6lW4TV8htZQ3NTWhvr4e9fX1qKioQG5uLioqKsBisaCjowM7Ozt4enrC19cXgwcP7ranQpqLc/HiRRw+fBjNzc2Ijo5GREQEvLy8enT9eoNIJEJZWRmSk5Nx4cIFtLW1ITAwELNnz4a7u3u3rdxisRjFxcX46aefcPHiRSxYsADr16//3WJSKBTi8uXL+OyzzzB8+HCsXbsWNjY2L4TBQ87v6ezsxPbt23H16lVMmTIFs2fPhoWFxe9+y7y8POzZswdZWVmYOXMmZs6cCWtr626fg8/n49atWzh9+jSKioowePBgjB49GoGBgbCwsPhDaGlfw+VyUV1djV9//RXXr19HZWUlfHx8MHPmTISGhvZoUc5kMpGfn4/MzExZaCQAMBgMWFpawtXVFY6OjjAyMoKRkREMDAwGPPSZiFBRUYGDBw/i9OnTmDZtGtavX98jL6tYLAaHwwGLxUJDQwNqa2tlQrC+vh4cDgdWVlbw9vaGv78//Pz8YGBgIGu/rq4OX3zxBTIyMrBq1SpER0dDT0+vP4fdI6ShsqWlpUhJScGZM2fAZDIRFRWFJUuW9Hj+am1tRUpKCk6cOIHKykrMmTMH8+fP73U4sxw5fYVc/MmR8xtEhBs3buDzzz+Hmpoa1q5di/Dw8G6H+0kkEjQ0NCAuLg6xsbFgMpkICgrCK6+8Aj8/v9+FT70ISCQSnDlzBvv375dZOO3t7WUvdKnnq6WlBUpKStDR0YGTkxPc3d1hbm4OS0tLWFhY9ErMtre3Iz4+HkePHoVYLMb8+fMxevRo6Orq9sNInw02m43a2lrU1taiuroaRUVFqKysBJPJhIKCAkxMTODo6AgPDw94eHjA2tr6Txd6YrEYDx48wOHDh5GRkQEHBwdMmzYNQ4cO7bPcxu7S0dGBrKws3LhxA0lJSdDV1cXo0aMxbtw42NradmshLPUEHTp0CGfOnJEtJnV0dGRjYbPZ+M9//oODBw9i5syZmD9/fr+F28npHUKhED/88AOOHDmCyMhILFiwAHZ2djIvLZfLRXp6On788UdUVVVh9uzZmDx58p9GB/wZRISMjAycO3cOGRkZ0NbWRkREBIYPHw4nJ6dn9rz1BCJCe3s7CgsLkZycjDt37oDD4WDEiBGYNm0aXF1d//R7fD4fpaWlyM7ORlZWFsrLy9He3g41NTXo6urC0dERjo6OsLCwgKmpKUxMTH73HLwoEBEeP36Mo0eP4tixYxg9ejTWrl0Lc3PzHnukpFEATCYTNTU1qKurQ1FREQoLC9Hc3IyWlhYYGhrC0dER3t7ecHV1xeDBg1FWVoYtW7aAyWTi9ddfx8iRI5/rPdAdiAidnZ3IzMxEQkICEhISYGhoiKioKMycObNHgpnNZuPBgwc4efIkHjx4gClTpmDZsmVgMBj9PAo5cv4aufiTAwAgSCAABzy0gI8OiMCFBCIoQAGKUIUyNKAGBtShj0F4ucIWpN6ec+fOYe/evTA0NMSqVaswfPjwbhdiaW5uRlpaGmJjY1FQUABTU1OMGzcOw4cPf2o+xEARHx+Pb775BmpqaggLC4O6ujpKS0tRUVEBNpsNVVVVGBoawtnZGXZ2drCysoKNjc0zCxVp2Ne5c+egrq6OBQsWICIiQlbo4EVGJBKhoaEBlZWVqKysRElJCaqqqsBisSAQCKClpQVbW1s4OTnB1dUVzs7O0NPTQ1VVFS5cuIDExER0dnYiKioKo0aNgre394BWeK2pqUFKSgpu3bqF0tJS2NjYIDIyEqGhod0SaUQkK3Bw4sQJjB8/Hm+99dbv7pGGhgZ89913SE5Oxrx58zBp0qQXKtzrSRCAZg7A5ADNXIAtAARigCcCFAcByoMANSVARxXQVwcMNAAdla7P/g4QEX7++Wd888038PPzw4oVK2QVO4GuUL3bt2/j2LFjaGtrw5w5cxAdHQ19/T9dM/yBqqoqXLp0CXFxcWhvb0doaCjCwsLg6+sLPT29AbvvJRIJmpubce/ePcTHx+P+/fswMTHB2LFjMXHiROjr66OpqQlFRUXIzc2VFYUSCARQUlKCiYkJXFxcYGtrC0tLS1hbW0NPT++Fiup4EkwmE8eOHcPRo0cRFBSE1atXw9nZ+Zn6LxXWVVVVqK6uRnFxMYqKisBiscBms6GiogJ7e3s4OTmhqakJcXFxMDY2xooVKxAaGtrvnt/eIA2Xv337Nq5fv47CwkL4+flh3Lhxsndmd+5hHo+HgoICHD9+HElJSRg7dixWrFgBc3Pz5zCK50zXPnFAZwfA7QSEAkAk7PpMSQlQUgHUNQANLUBRCXjBDCT/FOTi7x+KCDy0oxatqEAbKtGBevDQAh5aIUAnxOCDIAEADIIylKEGFehAA/pQhz70YA8G7KAHeyhDAwr4ez7A0oIsp0+fxt69e+Hg4IA1a9bA39+/W/lJnZ2dyM/Px40bN5Ceng4AGDZsGCIiIuDr6/tCxvfzeDwkJSVh9+7dSE1NhYODA4yNjUFEUFZWhpmZGRwdHWFvbw9HR0dZJbq+oLa2FhcuXMCVK1dgZGSEefPmYfjw4QMeEtUbiAhtbW2oqalBWVkZSkpKUF5ejvr6enC5XKioqMDS0hKGhoaorKxEdnY2fHx8MH78eERGRr4wxX6kOXw3b97EnTt3wGaz4eXlhTFjxsDX1/eJhX+A/y/+s3//fhw9ehRjx47F6tWrYWtrK3uGSkpKsGXLFtTX12Px4sUYM2bMU9sdCIi6xF1xM1DeClS1AfXsLuHXIQA6BYBQ8pv4UwBUFAEVJUBL+f8FoLEmYKkD2DEAWwagNbC7hzyRpKQkfPrppzA1NcUbb7yBIUOGyJ7FxsZGxMXF4dy5cwCA1157DWPHju3WXNDe3o6EhARcv34djx49gpOTE8LCwjBy5EgYGxu/MPOiUChEbW0tEhIScOPGDVRVVSEoKAiGhoaor69HQ0MDhMKuhauDgwOcnJxgZ2cHW1tb2NjYPDVn7kWmo6MDR48exeHDh+Hh4SHbDqOvRJhQKER1dTXKy8tRVFSEkpISVFdXg8fjgYhQXl6OxsZGDB8+HAsWLEBISAj09fVfuOspXQcXFBTgypUrSExMhFgsRnh4OMaOHQtXV9duvb+EQiHKy8tx9OhRXLt2DeHh4Vi+fDkcHR37ewj9C0kAPg9oagRamF3/y2F3/fG4gEgASMRdxw5SBJSUAVV1QEMTUNcCGAaAvhGgZwRoagMvyNzwsiMXf/8gCBK0ohIsFIKFQjShCC0oQzNK0YHHEIH723FdSAUdgWTSTgGDoA49GMAF+rCHAZxhBHcYwQ36cIACFP82QlBqqTxz5gxiYmLg4eGB9evXw93d/akvIOlEnpycjKSkJDQ0NMDV1RVRUVEYNmxYn4mlvqKtrQ3l5eUoLy+XVTXLy8uDra0trKysYGdnBycnJzg7O8PZ2RkmJiZ9vkArKyvD2bNncevWLdjZ2WHevHkICAgY8L23+gqhUAgWi4WSkhJkZGTgl19+QWpqKpSUlDBo0CBoampi1qxZCAkJkV3v/s7x6wkcDgf379/HtWvXkJmZCS0tLYwYMQIjRoyAm5vbE70C0r0F9+3bh6NHj2LkyJFYvnw5nJ2dZb9vSkoKvv76a6ioqGDJkiUvlLVfQgCLA+Q2Ao+agHwmUNIMlLV2CT0AGKTw++MV8NufAiBBl3BUQJfYs9IBHPWBwQaAkwHgYtj1b4NejJ8aQNdiduPGjeBwOHjnnXcwdOhQmfe9uroaly5dQmxsLBgMBubNm4eIiIgnVqUkIohEImRlZSEuLg63b9+GiooKIiMjER0dDRsbmxfqWRcKhWhubpaFcl+/fh2XL1+GSCSCSCQCEeGVV17B5MmT4eTkBDc3t+daqOV5wOfzceLECRw6dAhWVlZ47bXXEBwc3C8pCs3NzXj06BEKCwtRVFSEiooK2d/gwYMRFhaGwYMHw8bGRhZh8qJ5Uvl8PpKSknDp0iXk5eXBysoK4eHhGDFiBCwtLZ9atVUsFqOhoQFHjhzBhQsX4Ofnh2XLlsHb2/s5jaCPIAKEfIDVADTUAo21ALMOaG4EGuu6PH74L/0gfWb+V1OoaXQJPwOTrj8jc8DEHDA0A7R05F7BfkQu/v4BSCBGC0pRj2zUIBU1SEUDciAAGwpQAIHw3w/q/4u/3//3f6MARRDEUIACjOEFKwTDCsNgBh/owwmKUHmhRaBEIgGLxcLZs2cRExMDf39/bNy4Eba2tk+tflZXV4fMzEzcvHkTubm5MDQ0xLhx4zB69Ohu58H0J9JcjIaGBjx+/BhVVVUoLS3Fo0ePZGF+enp6GDNmDMLDw+Hl5QU7O7t+y7sgIhQUFODEiRNISUmBj48P5s2bB09Pz5dqIQV0eVWrqqqQnJyM+Ph4VFdXw8XFBdra2qirqwOLxYKKiopsw3tra2tYWVnBysoKpqamT62O+jxobGzEnTt3cPXqVVRWVsLOzk6Wt/q0ggd8Ph8xMTE4dOgQhg4disWLF8PT0xMqKiogIsTGxmL37t2wtLTEkiVL4OvrO6ALPLEEaOICOQ1AZj2QXN3135LfJr7evgGlV0hFEbDXA4ItgUALwN0IsNL943z6vKmvr8fnn3+O9PR0vPfee4iMjISWlhaICCUlJTh79ixu3rwJW1tbLFq0CEOHDn1iJAQRoaqqCnfu3MGVK1dQUVGBkJAQTJs27YUx8EgkEnR0dKChoQE1NTWoqqpCRUWFLGybzWbD3NwcpqamYDKZKCwshIeHByZOnIjg4GAYGRkN+LPZH4jFYpw/fx4xMTHQ1dXFrFmzEBER0a9eOIFAgMrKSmRlZclCKpubm+Hk5AQnJydZlVQrKytZHmV3Q42fBy0tLbh8+TIuXrwIJpOJwMBAREREwM/PD4aGhk80nEoNZSdOnMCRI0fg6OiIlStXIigo6MW/v4i6hB2zDqgpB6qKgKrSrv9P1CXWeqob/lsY6ugBlnaAtRNgZQ+YWnX9m7xKdJ8jF38vOZ1oRA3SUYprKMRFsFEHAslCOvsCBQwCQQI16MMFE+GIV2CBIOjAEop4sSx3wP9vxHr69Gn8+OOPGDFiBDZt2vTUHKf29nYUFBQgISEBd+7cwaBBgxAWFobo6Gi4uLgMaBl7aRVJaYXK6upq5OTkoLKyEjU1NRCLxTA1NUVNTQ2qq6uxYMECvP766/0uViUSCXJzc7F//37k5ORg9OjRmDNnDhwcHPr1vM8bkUgEJpOJzMxMWQ6RlZUVpkyZgvHjx0NVVRWtra3Izs5GZmYmMjMzZRUCTU1NZeXgzc3NYWxsDFNTU2hqag7YPSXdiuLatWu4cuUK2traEBQUhHHjxsHDw+OJFfokEgkOHjyImJgYuLq6YtGiRQgICIC6ujrEYjGOHz+OQ4cOwdPTE8uXLx+QZ4cI6BQChSwguQq4UgwUNXd55iR9/NpTQFe7JlrAeCdglB3gYQRoD1Ckc3t7O/bt24f//Oc/WLt2LWbPng1tbW2IxWIUFBTg8OHDSE9Ph7+/P+bPnw8vL6+/bEsikaClpQXZ2dm4fv06bt68CRsbG8yYMQOTJk3qt70xuwuPx0Nzc7PMECaNfKisrASLxYK6ujocHBzg7u4ODw8PeHt7g8FgoL29HefOncPJkyfR3t6OiRMnYuTIkbLNzV/4RXoPISJcu3YNe/fuBY/3f+ydZ1xU19aHn6F3kV6kiNgbRQEVEDU3SNR4LUk0xZhYYy/RGN8Yu4klGo31aqyJPfaGKCAiCiJFsIBiARXpHWZgZs77gcxcjZWm4OX5kvxwZu9zzuyz9157rfVfYgYPHoyfnx9mZmY1/m6mp6ezceNGDhw4gI6ODlZWVhQUFFBUVIShoSFWVlY0a9aMli1bYmZmppwfa8OBQmJiInv37iUkJAR1dXV8fHzw9PSkRYsWrxSFkUgkHD9+nF9++QVjY2O+++473N3da8UB4HMplUDmY7h7E27EwJ0bICmpnMH3MkSi8tBQc2to6QJNWoGVXXlIaD3VRr3x9w5SbtpJyeA6SQQQwW/k8xABWY33XR4WakR7htCCvpjTHk30EVE7Tm7KyspITk5m7969bN++HT8/P2bPnv1SlUmJREJycjJhYWHKkz4PDw8++eQT2rVrV2MFel+FTCajoKCAzMxMMjIylLWmEhMTSU5ORl9fn2bNmuHu7k67du3IyMhgxowZdOrUiQJM6+AAACAASURBVB9//PEpKfeaoKysjLi4OFatWkVSUhKDBg1iwIABtcI7Wl0o8t1u3brFuXPnCAwMRCqV0rt3bz7++OPnJvQr5MTj4+OJjo7m0qVLJCYmIpFIsLCwwMbGBmdnZxwcHJQy8Q0bNnwr+UVlZWXcunWLPXv2cObMGXR1dRkwYABeXl44Ojq+dOwfPHiQJUuWYGJiwoQJE+jUqRO6urqUlJTw+++/c+DAAbp06cKoUaPeqCiSVA4ZRXDxIfx1Ay4k/x26+QaWO1URNDOGoe3Byxas33Dao0QiYf/+/fz4448MHjyYadOmYWBgoByP69at48aNG/Tu3ZvBgwdjZ2f33HYUtTGTkpIICgpiz549yOVy+vXrx/Dhw9+amIuiYHdWVpZShTIxMVEZZiiRSLCysqJVq1a0b9+edu3a4ejo+FxPjcILunbtWoKDg7GysuKLL75QesCruxZnbSA8PJxVq1aRkpLCwIED+fe//421tXWN52jev3+f9evXc/nyZWXpmwcPHhAdHc2VK1d4/Pgx6urq2NjY0KRJEzp27IilpSWmpqaYmZmhpaX1VsWDIiMj+fPPP7l8+TJWVlb07NlTKfb2MiEzqVRKSEgIs2fPRl1dndmzZ+Ph4VG7cknlcsjPgZQkiL0EN2P+Dut8A6ipg3kjcPOBZm3BxKI8b7CeKlNv/L1jCAiUUcQjoghhPnc4S/nZc/V5+l6NCiDHGnfcGEtjuqOL2Vv3ApaWlnL79m22b9/OoUOHGDRoEN9///0Lk7XlcjkZGRnExcWxZ88eLl++TKtWrRg6dGiN5UW8DIU4TV5eHrm5ucrQpKioKG7cuEFqairm5uY4OTnRuXNnfHx8MDMzAyA+Pp4RI0ZgamrKypUrsbOzq9EFXSKREB0dzaJFi8jOzmb8+PH4+vq+U/LWxcXFPHr0iKCgIA4fPkxaWhre3t58+umnuLi4VGjxfvToEVeuXOHixYtERESQkZGBvr4+tra2tG3bFicnJxo1akSDBg0wNDREV1f3jYpmKPIBN23aRHR0NK1atWLYsGG0bt0aCwuLF3oHzp49y4IFC1BXV2fcuHF4e3tjYGBAdnY269at4+zZs/Tu3Zuvv/76jYR1SaRwLxeO34YdVyFX/GaMvidRFZV7Aoe0h8/blovCKHIHawpBEBAEgZCQEIYPH46XlxfLly/H0NAQsVhMdHQ0y5YtIy0tja+//pq+ffs+t96m4uAiNTWVmJgYdu3aRWxsLJ6enkycOJE2bdrU3E28ALFYTH5+vrII+Y0bN4iNjSU+Pp7s7GwMDQ1p0aIFLi4udOjQQRmG/Too9kBBQUH89ttvJCYm4unpyeDBg2nZsiXGxsa1wgNVnSQkJLBy5UquXLlCr169GDx4MPb29jUenh0XF8fatWtJSEhgxIgR9O3bF21tbcRiMQkJCVy8eJGLFy9y48YNSkpKaNSoEW3atKFLly7Y2dnRsGFDDA0NMTAwQEVF5Y0bT8XFxQQGBrJz505u376Nk5MTffr0wdnZ+aX5i3K5nLi4OCZPnkx+fj4///wznTp1qh2CYGWl5QIuMRcgKrT8/98GmtrQygW8/MDSFjTqnkBcbaPe+HuHEBCQkM9tTnGKSRSTiRzpW7seEapo0RA3xtCWT2lIY1R5814yhdF07do1Nm7cSEhICN988w1jx4594aa1sLCQBw8esGfPHvbt20fDhg0ZMmQI//73v9+oTL1UKqWkpITCwkJyc3O5d+8ely9fJioqilu3biGXy7G1tcXDwwNvb2/lovEkjx49YtiwYaSlpbF161ZatWpVoxsWRV2wmTNnoqqqyuzZs+ncufM7U9hWKpWSnZ1NZGQkO3fuJDY2ltatW/Pll1/SvXv3KiuXisVibt68SVhYGOfOnePmzZtKr2CbNm1wc3Ojbdu2GBsbo6enh46OzhsTTikuLubMmTOsWLGC1NRU+vTpw9ChQ7G1tX2heE10dDSzZs0iKyuLcePG8f7772NsbExycjJr1qwhMjKSL774gk8++aRGhZLE0nJBl+1X4Wji34rkNdbbqxEB3rbwY9dyZVAVUc0YgIp1/NatWwwePBhDQ0N27NiBhYUFJSUlXLx4kfnz5yMIAt9+++0L665JpVJycnJISEhgz549nDx5kqZNmzJu3Dg++OCDN7JRVRixxcXF5OfnU1BQwN27d7ly5QpXrlwhPj4eFRUVmjVrhqurKx07dsTV1RVTU9Mqhy+WlJTwxx9/sGnTJiQSCR9//DEffPABDg4Ob/wwpqZ5/Pgxq1ev5uTJk3h6ejJs2DCaN29e46rMERERrFy5krS0NGbMmIG3t/dT0QVyuZysrCzCwsIICQnhwoULpKen06BBA1xcXOjYsSMdOnTAyMgIAwMD9PT00NDQeKNh5ZmZmRw9epRdu3aRmZmJj48PH3/8MY6OjhgZGT33WgRBICUlhdGjR5OUlMTSpUvx8fFBX1//7RmApRJIuQMhJ+BWHJSKqze8s6KoqpV7/j4YDE1blxuE9VSaeuPvHUFAoJQC4tnNCcYhR/5GwjxfhQgVRKjizFd0YDRmtH6jBqAiPCkiIoLly5eTkpLCDz/8wIABA577+bKyMnJycggICODXX38lLy+PIUOGMGzYMMzNzWt8EREEgdLSUkpKShCLxaSmphIbG0t4eDhXrlwhNTUVIyMjnJ2d6dq1K56enjg6Or5wgSgoKGDq1KmcPHmSbdu24eXlVaMnuCUlJQQFBfHtt99iYWHB0qVLlYIfdR1F4d87d+7wxx9/cPLkSUxNTRk6dCi9evXC2Ni4Rvp99OgRkZGRXLhwgYiICO7cuYO2tjatW7fGzc0NV1dXWrRogba2NlpaWmhra9foOBUEgdzcXDZt2sSGDRvQ1dVlypQp+Pr6Kj0h/xyPd+/eZdasWcTFxTF8+HAGDBiAubk5CQkJrFq1ihs3bjBlyhT8/PxqZKyIpXD5EfweDUH3qr35SqMiKs//W/E+NG5YMwagIAhkZmby+eef8+DBAw4dOkSTJk0oLi7m9OnTzJkzB0tLS+bOnYuLi8szz18mk1FSUsKdO3c4cOAAu3fvRk9Pj6FDh/L111/XeH1OhbdRLBZTXFxMdnY2UVFRnD9/ntDQULKzszE3N8fd3Z1OnTrRtWtXGjVqVGPz3OPHj1m/fj27du3CyMiI4cOH061bNywtLd9q+GF1k5+fz9atW9m+fTvNmjVj/PjxODs71+hBkyAIXLhwgcWLFyORSFi8eDHt2rV7YViuTCYjOjqaoKAgwsLCiImJQS6X07JlS9zc3PD09KRJkyY0aNAALS0ttLS0Xrt2b1VJTk5m37597N69m7KyMvr168dnn32mzOf+5zUoSgeNGjWKCxcusGjRIvr06UODBg3efO53qQRuxcOZA+XCLnI5b/eo7G9UVMoVQj8cAu3cQbN2qEXXReqNv3cARahnFJs4xVT4h3pn7UBEawbiwWSs6PBGQkAVm/WAgACWLVuGSCRi/vz5dOvW7ZnPQXnNvvj4eJYuXUpwcDDvv/8+s2fPxtHRsUY9ZXK5nNLSUqXRFx8fT2hoKOHh4Vy/fp3S0lKaNm2Kl5cX3bt3x8XF5ZXhkwojcu3atcyZM4f169czcODAGjf8jh07xpQpU3B1dWXFihXY2tq+EyfipaWl5Obmsm/fPjZu3IhcLuerr77i448/xtra+o1dh1gsJikpiYsXL3L+/HkuXbpEXl4e1tbWuLm54e7ujre3tzJHUFNTs8bGrlwuJykpicWLF3PgwAHc3d2ZN28eLVq0UG5untzgpKWlMW/ePM6ePcsnn3zC0KFDsbGxITIykmXLlpGTk8OiRYvo0KFDtY6ZMhlcSIENVyDsQbU1W22oisrLQWzqA9b61RsCqpgDJ02axNGjRzly5AgdO3akuLiYP//8k4ULF9K5c2fmz59PkyZNntpkKiImUlNTOX36NFu2bCEzM5P+/fszefLkVwpkVeWa5XI5ZWVlSCQSZW6hwhMeHh6OiooK7du3x8vLCy8vLzp16vTG86SuXLnC8uXLOX/+PO3bt2fEiBF07tyZBg0avDEDo6YpLS3l4MGD/Pbbb2hrazNp0iS6d+9eo1Ecijy4uXPnoqury5o1a16pwq1AkZuvqFmakZGBiYkJrq6udOrUCQ8PD+zs7NDS0lLOjTVpWMnlcm7evMmWLVs4ePAgpqamfP311/Tv3x8DA4PnrscSiYRvv/2W3bt3M336dL788ktMTEyemU9rDGkZxEfC6f3lZRxq3V4SUNeAPl+AWzeoZeVA6gr1xl8dR0BASglX2clRRlIbX9Qn6wa2YiCeTMcCZ1SoOaNALpeTn5/PwYMHWblyJba2tixatOiZnBRFbaqsrCxWrlzJ+vXrcXR0ZMGCBfTo0aPGNs4ymUxZTyojI0O5YAUFBZGZmYm5uTldunThvffew9PTk0aNGr32hlixeTp69Ciffvops2bNYtq0aTVyL4o5QiKRsHnzZmbOnMlHH33E4sWL35roQ3Uil8spKSkhJCSERYsWcefOHQYMGMDYsWNfKBTxplBIhsfExBASEsLZs2eJiopCQ0MDFxcXunTpgp+fH82bN0ddXR01NTXlGKjO30UQBIKDg5kxYwa3bt1ixIgRTJgwARMTk2c25IWFhSxfvpzdu3fTvXt3xowZQ9OmTQkLC2PBggWoqamxdu3a197svQqZHMIflht+wfer3FyNoSoCVwtY1xuMtavH+FMcAP3yyy8sWLCAbdu2MWDAAEpKSli8eDGrV69m8ODBzJ49+6kyBgqPSl5eHmfPnuU///kPiYmJ9OzZkwkTJtRIXp+iT6lUikQiIT09nfDwcM6ePcu5c+fIyMjA3NwcLy8vunbtiq+vLxYWFm99fpFKpQQEBLBy5Upu3ryJj48Pw4YNw9XVFU1NzXfi4Esul3P+/HmWLl1KcnIy48eP54svvqhRJVeJRMK5c+eYPn06TZo0YdOmTa9Uz/wnYrGY+Ph4AgMDOX36NNeuXUMmk+Hg4EDnzp3p3r07rq6uGBgYKOfGmsoVLC0t5dq1a6xatYrjx4/j5OTEjBkz8PDwQEtL6xkDVBAEli1bxqJFi+jbty/z5s3D2tq65nMZ5TK4EQ1HdpQre9ZmVFVh0Bho36m+MHwlqDf+6jACAjIkJHKc/Qx6q/l9r4sIVVrzEV2ZhQkta6QWoEKo5ffff2fbtm3KUg6NGjVSfkaROyIWizl27BjfffcdJSUl/PDDD4wcObJaldwU75FcLkculyOTybhz5w4nT57k9OnThIWFIZfLcXJy4l//+hc9e/akbdu2lcp/UtzX1atX6d69O7169WLLli01Ih+tuK/S0lLmz5/P0qVLmTx5MnPmzKk1xbsri+JQ4Pbt28yaNQt/f388PT2ZM2cOTk5ONZ77UhlkMhmPHz/mzJkznDp1isDAQHJzc7G1tcXX15eePXvSpUsXdHR0UFVVVW4kqmNcKJ7Xf/7zH+bPn4+mpibTpk3j888/R19f/6lNS1lZGVu3bmXt2rU4ODgwdepUXFxcOHfuHN9//z22trZs3ry5yocHglBesH1lOJy4XeVbrHFURDCwFfzoDXrqVTMAFaGShw8f5osvvmDRokVMnjyZwsJCxo4dy8GDB5k3bx4jRox4Kr9PEYUQGhrKunXrCA8Px93dnbFjx9K1a9dqM2YU85RiPszJySE+Pp7g4GACAwO5evUqmpqayvD2rl270rlz51orrlJQUMBff/3FunXrSEtLY+DAgXz99dc0bdr0nfECXr9+nV9//ZWAgACGDh3KtGnTarTsRVFREf7+/kydOhVfX19WrVpVpZDwjIwMIiIiCAgIIDg4mKSkJHR1dXFycuK9996je/futGzZElVV1afmx+pEkYKyYMECwsPD6dOnD3PmzMHe3v6542TXrl1MmTIFZ2dnli1bRrNmzWquFIQgwN0E2LMOstLebn7f6yCiPA9w2Axo+veB1Dvwnr0p6o2/Okp5OQcZ6VxlOz0Qk/d3sfbajQgRamjTjs94j5/RomG1GoCCIHDnzh2WL1/OmTNnGDRoEFOmTFGWcnjSUxUREcH3339PZGQkn376KYsXL662Qr6KfhQbnOLiYi5cuMCJEyc4evQoDx48wMTEBG9vb/z8/OjVqxcmJiZVCkFR9Jmamoq3tzfW1tb4+/vXyAntk89x3Lhx/PHHH6xcuZJhw4bV2g3a66DYlCo8VCtWrMDKyooFCxbg5+dX4/lN1YXCk3Lp0iVOnDih9ApqaWnh6emJr68vvr6+2NvbK71zijFS1bGSmprKTz/9xObNm2nfvj1z5859SohIJBIhCAJnzpxhyZIl5Ofn8+2339KrVy8CAwOZOnUqnp6erFu37rmbvSfXpZdda54YFoeVl3OQSGtjTMTzWdgNBrQELbXK7WUUhnhYWBh9+vRh8ODBrF+/nszMTD755BOio6P5/fff6d27t/L5KuapmJgYVq1ahb+/Py1atGD8+PF88MEH1RLmp3i3FIduN2/eJDg4mFOnThEVFYVEIsHBwUEZ3u7t7f1GxbWqgwcPHrB9+3a2bt2KXC7nyy+/ZPjw4Zibm7+5sL0a5OHDh2zZsoW1a9fSs2dPli9fToMGDWrsvvLz8zl8+DDTpk1jzJgx/PDDD9USpllWVsb9+/cJCgri9OnThIaGkpOTg5WVFd26dcPPz4/u3bs/oxxaXfdZXFzM4cOH+fHHH8nIyGDixIlMmzbtKYVPxX9DQ0MZOXIk2traLF++HHd39+pf0wWhvJzDxp8g7cHfOX51AJEKaOvCt0vKi8FDvQH4mlSL8ScSiVSBSOChIAi9RSJRY2A3YAxcAb4QBKFUJBJpAtsBVyAL+EQQhHsva7ve+Hs+AgL5pLCPj3nElTrh9VMgQgV9LHFmGD7MrrYagIIgEBkZyYIFC7h79y7jx49nyJAhaGpqKjeMMpmMe/fu8fPPP7Njxw46duzI8uXLcXNzq3LfTyKVSnnw4AEBAQGcPHmSs2fPUlhYSKtWrejduze9e/emU6dO1Xa6qOg/Ly8PPz8/0tPTuXjxYrUZsy/qa/DgwYSGhrJ79278/PzeaqH7qvCksX7s2DEmTJhAVlYWEydOZPr06W9Xda2auHv3LoGBgcowqOzsbOzt7enRowfdu3fHy8vrmbINVbnnqKgoZs6cSWhoKH379mX69OlPKc2KRCIiIiJYunQp8fHxTJw4kUGDBnHy5Em+/fZbhg8fzpw5c5TGogJFSPfLwsAEAdZdgZ1x8DD/zRa6qSo6anDg4/J6gKoVfJ0URn9CQgI9e/akffv2HDx4kOTkZPr06aMMhXdxcUFVVVX5XJOTk1m9ejV//vknFhYWTJw4kQ8//JCGDRtW+j7+OSempKQQGhqqLAb/+PFjrK2t8fDwoGvXrnh7e9OiRYt3IlTy9u3bysgTIyMjJkyYwJdfflm76rdVkry8PI4cOcL3339Py5Yt2bJlS43WjM3Ly2Pbtm3MmjWLpUuXMmLEiGoPWy8sLCQqKorAwEBOnTrFlStXUFVVxc3NjV69etGnTx9atmz5TL9Vi0woz8fdsGED8+fPR19fnwULFvD5558r52BF+4mJiYwcOZKUlBQWLFhA7969X6iuXCnkcti6DG5dK1f1rEuoqIJ9U/hmdrnhV8ffrzdFdRl/U4AOgMHfxt9e4IAgCLtFItF6IFYQhHUikWgM0E4QhNEikWgQ0E8QhE9e1na98fd8iskkgjUEM5e6c6b9NFZ0oBtzccSvSt4/xTg9duwYCxYsQFtbm++++w5fX1/lJCoIAunp6WzZsoVffvmFhg0bMnfuXAYNGlTpCfSf70d2djYRERGcOnWKM2fOcPPmTfT09OjcuTMffPAB/fr1eyr0tDpRyJ8PGzYMf39/QkNDad26dY30JZfLSU5Opl+/fjx+/JijR4/i6upaZzc1Cm9EQkICkyZNIiAggM8++4zFixdjaWlZZ+/rZZSUlBAZGYm/vz/Hjx/n5s2bqKmp0a5dO7p27cr777+Pi4vLM/XQKvosBEFQhhg+ePCAwYMHM2bMGJo3b658N5OSkli7di379+/n008/ZcKECezbt4+5c+eyZMkSvv76a6A8vDgxMZFZs2bRsmVLFixY8AIVQIh6DItCIfJRJR/QW0RVBL5NYJ4PmFYw8ltxuNWvXz80NDQICAggMTGRvn37YmpqyrFjx7C1tVV+vri4mI0bN7JixQpEIhHjxo3j008/xcrKqlLX/uScWFJSovQ8Hzt2TBlm17FjR3x8fPjXv/5F69ata7S8x9tEKpVy7do11qxZw/79+2nVqhUzZ87Ez88PqN682zeNWCzm4sWLfPPNN6iqqrJz507atWtXY/ekEIPasGEDO3fupFevXjXWl1wuJz09neDgYI4dO8axY8fIy8ujcePG9OjRg169evHee+89NW6ragQ+fPiQefPm8fvvv+Pp6cny5ctxdnZ+ylucmZnJ5MmTCQ4OZty4cXz55ZdYWFhU+X4RBIgIKs/zExdXvb23xcDh4N6jXBG0nldSZeNPJBI1ArYBC4EpQB8gA7AQBEEqEok6AXMEQfAViUT+f///RZFIpAY8BkyFl3RUb/w9i4xSUghjJ70ppehtX06lUUENR3rSj+1oU/kTZplMxpo1a1i5ciXt2rXju+++w93dHSiflNPT0zlw4ADLly+noKCAUaNGMWXKFOXGtrITt0QiITExUXlaGB4ejlgsplmzZnTv3p3u3bvTrVu3p0IFa2rBKigoYO7cuaxfv57Dhw/TvXv3GulLKpUSHR3NwIED0dfX59ixY9jZ2dXZjYwgCOTk5LB8+XKWLVtG69atWbVqFZ07d1Z+pq7e28v455Sbmpqq9MoEBweTkpKCsbEx7u7u9OzZk27dutGsWbNKGX9QPj63bdvG6tWrkclkjB49msGDB2Ntba0sRbBz506WLVumzNHdtGkTmzZt4s8//6RHjx4MGjSI06dPU1RUhKmpKcnJyc8Nf5LK4dsAOJUEJWVVe05vCxGwvhd0tQPt1xSzEwSB+/fv89VXX5GamsrJkye5cuUKQ4cOpXPnzuzbtw8DAwPlZ/ft28ePP/5IVlYWw4cP55tvvsHGxqbS4YmCIHD37l3OnDnDsWPHOHPmDBKJhLZt2+Lj40O3bt3w8vJ6xmP7Lr5f8N+xLxaLuXLlCosXLyYwMBBfX18WLlxIy5Yt3/IVVh6Fh1kh8HTr1i22bt2qNGxror+8vDzGjh2Lv78/Z86cwcnJqcb6ehKZTEZMTAzHjh3j+PHjREdHo6mpSceOHfH19eXDDz/E0dGx0nngT/YXGRnJ5MmTuXTpEp988gkLFy7ExsZG6aUvKSnhp59+Yvv27XzwwQdMnDiRFi1aVOl+KcyDX74rD/usy2hpw/QVYGBY7/17DarD+NsP/AToA98CQ4FLgiA4/v3vNsBJQRDaiESieKCnIAgP/v63JMBdEITMf7Q5EhgJYGtr63r/fi2WaXsLZJNEILO4xj6EOhTu+SwiGuKABxNwZ0KlWigtLWX27Nn88ccfDBo0iNGjR+Pg4IBIJKKgoIDAwEB+/fVXrl27Rt++fZk2bZqyLl5lNh2pqamEh4cTEBDA2bNnuXfvHsbGxri5ufH+++/j4+ND06ZNnwrbqOnNTUFBAVu3bmXGjBmsWLGi2sNiFIjFYoKCgvjqq69o1qwZ+/btw8zMrE5u3hShPn/88Qfz589HLpczY8YMxowZo5Tfrov3VVmezMcqLS3l1q1bBAYGEhAQQEREBIWFhdjZ2dGjRw/8/Pzo2rXrM17B12k/JSWFdevWsWvXLszNzRk7diz9+vVDX1+fwsJC/P39+f7777GxsWHJkiWsXLmSQ4cO4e7uTmBg4FMbpcOHD9OrV69nvH/n7sFPYXAjo7qezptHVQQejeDnHmDb4PW+k5KSwsyZMwkJCeGPP/4gPDycH374gc8++4w1a9YoN6eRkZFMnz6d8PBw+vXrx8yZM2natGmFx71cLqewsJCLFy8qc5mTk5Np2LCh0tjz8/N7Sqm4unOn6gJPHoD4+/szd+5cUlJSGDlyJD/88IMyH72uoXinMzIymDBhAseOHWPFihWMHDmyRvqCcg/gRx99RFJSEiEhIcrDipriyflGcb9paWnKA98zZ86QnZ2NhYUF3t7e9OzZk65du2JlZVXh8OUnU1MOHDjA//3f/5GRkaE8rFakcMjlcvbu3cuyZcswMzPju+++w8fH56m2xGIxsbGx7N+/n6VLl7684yM7IOwMlNWxcM9/oqIKnd+HPp9DHdYdeFNUyfgTiUS9gQ8EQRgjEol8qCbj70nqPX9PI0XCHQLYy0CkSN725VQZESrY0IXBHEKb547DF5Kbm8uECROURcUHDRqEqakpcrmciIgIVq9ezblz5+jUqRMTJ07Ew8NDqeL1uiiKyJ45cwZ/f39iY2MBaNOmDV26dKFHjx44OTkpE8OrU0HxdSgqKuLUqVN88803jBo1itmzZ9eI4Ep+fj579uzh+++/51//+hfr16/HwMCgTm7iioqKOH/+PPPmzePatWsMHDiQefPmYW5uXnNKanWIJ5UY5XI5eXl5xMTEEBAQQGBgIPHx8WhpadGxY0f8/Pzo1q0bzs7Or922VColJiaGdevW4e/vT/PmzRk3bhy9e/dWitRMmjSJsrIypkyZwsiRI5WbHgWqqqp8+OGH7Nq166kTdwGYeArO3IGiOur1U6ACrHtN719KSgrLli3j4MGDLFy4kIsXL7Jt2zamTp3KrFmzUFNT4+HDh8yZM4edO3fi5ubG/PnzcXV1VRYmf51xLxaLSUxMJDg4GH9/f86fP49UKqVt27Z4e3vTrVs3vL290dDQQEVF5Rmj738ZxTuVl5fHzp07WbhwIWpqasyYMYPRo0fXvIx/DfCkYbtw4UJWrlzJuHHjWLJkSbWvzfn+kAAAIABJREFUg4p56fHjx/Ts2RM1NTUCAwNrVHDmRdehUKktKSkhOjqa8+fPc+bMGeLj4xEEgTZt2ijfB1dX11fW5X1e+/n5+axevZrVq1fTsGFDJk6cyMcff4yRkRFyuZzg4GCWLFlCbm4ukyZN4qOPPkIul5OZmUlYWBhTp06ltLSUnTt3PlPbWElBHiyeDCV1N4LsKdQ14btfwNCk3vv3Cqpq/P0EfAFIAS3AADgI+FIf9lkjZJFIKIuJYXsd9/opENEQe7rwHR0Y9drfSk5OZsSIEdy9e5cFCxbw/vvvY2BgQFxcHOvXr+fkyZPY29szcuRIevfujY6OzmsbRVlZWcoQOH9/f9LT0zEzM1PWBurSpQuWlpbK2mlvy2AQi8WEhYUxatQoOnXqxIYNG2qk+G5aWhpr165lw4YNfPHFF8yePVtZxLsu8WStpWPHjuHs7MysWbPo0KEDmpqadVaspqb5Zw22R48eceHCBc6cOUNwcDCFhYU0adIEHx8ffH196datm9KgeBEymYyioiLCwsLYuHEjly9fxsvLi0mTJtG+fXvi4+MZP348t27dIiPj+S48LS0tEhISaNSokfK3S8iESafheh32+ilQE0H/ljDBDWxe4hx6/PgxmzdvZuPGjQwZMoSoqCgiIiJYvHgxgwYNQiaTsWrVKlasWIGRkRHTp09nwIAB6OrqvnLuKisr4+HDh4SFhREQEEBoaCgZGRkYGxvj4eGhrEVqZWWlrJVWb/C9mCfL4zx8+JBVq1axZcsW2rVrx+LFi+nUqVOde26KeyouLlZGoPTr148NGza8ch6oTF9yuZzExER8fX1p27YtBw4ceGtCOoq5UTE/pqamEhUVRUhICCEhIUpPuIuLC127dsXHx4c2bdq81lqjiMK4f/8+K1eu5MCBAzRv3pzJkycr00ni4+NZtWoVly9fZsiQIXh5ebFixQoCAgIoLCxERUUFNzc3zp49+9yC8pzeD2cPlRd2fxdQVYVufeG9fuWF4Ot5IdVW6kHh+ftb8GUf8NcTgi9XBUFYKxKJxgJtnxB86S8Iwscva7fe+PsvAgJ3OMsBPqOI9Ld9OdWGKprY043POf5ayp+xsbEMHz4cuVzOkiVL8PDwIDc3l99//529e/eio6PDZ599Rt++fbGwsHilLLJC7CMgIICQkBBCQ0MpLS2lZcuWeHl50aNHD1q1aoWuri6ampqoq6u/9VPasrIyLl++zKRJkzAyMmLbtm3VHoIpCAKJiYksXryYoKAgxo4dy+jRo+uc4afIRdq+fTs7d+7E2NiYb775hj59+qCnp/f8RbGe56LYfJWVlSGRSCguLiYuLk5ZjDshIQF9fX06duxIjx498PX1xc7O7rkHL8LftegyMzMJCgpi8+bN3Lt3jw8//JBOnToxdOhQxGLxMzk4ClRVVVm2bBmjR49W1pXccAW2xkJqQV2VwXoaYx3Y2BtcLJ5/kJ2ZmcmePXv47bffcHJy4t69e+Tm5rJ8+XK8vb0JCAhg/vz5PHz4kCFDhjBp0iSMjY1fOidmZGQQGxtLSEiI8jfV0tKiZcuWdOzYEQ8PD1xcXNDW1kZDQwMNDY13QqHzTaLwYhUVFXH16lXmzZvH5cuX8fPzY+HChdja2ta5wyhFTtrJkyf55ptv6NChA1u3bq12xWmFwXXu3DkGDhzIl19+yfLly2vF81IYgaWlpRQVFXH//n3Cw8MJCQkhMjKSkpISGjVqROfOnZUqy4o83Je1WVxczKVLl/jtt9+IiYnBw8ODb775ho4dO5KWlsbmzZs5cOAAUK7qLJH8NyrMyMiIZcuW8dVXXz3dsFwOiyZCzruzlwTKvX7fLgEtnXrv30uoKePPgfJSD0ZANPC5IAgSkUikBewAnIFsYJAgCHde1m698fdfikgnmq2c4Xvqlnj5qzGmGQPYiRWuL/1cQEAAEydOxMTEhKVLl9KsWTOOHz/Ohg0byMvLo3///vTt2xdHR0dlMet/IpfLKSoq4sqVK8q8puTkZLS1tXFzc6NLly54eXlhYmKCjo6OcpNTWwweRT2uWbNmkZeXx/r162nVqlW1Ln4ymYyoqCgWL17M7du3mTp1Kn379n3lQlXbSEtL49ChQ2zfvp3i4mL69evHZ599hqWlZY0WKP5f4EkvRnFxMSUlJTx69IjQ0FDCwsKIjIykrKwMGxsbunTpQteuXXF3d8fY2PipsSqXyxGLxdy7d49Dhw6xY8cOsrKyXujxexInJyfOnTuHgYEBAjDkEFx6AKWymrrrN4sI+KkH9GoKBv/QkygoKODgwYP88ssvaGhoUFhYiLGxMQsXLkRFRYXly5dz6dIlvL29mT59Og4ODsoQuSfHvVgs5vr165w/f56goCBu3LhBaWkpNjY2tGvXDjc3N5ydnTE1NUVLSwstLa0aqR36v4giDDo7O5ujR4/yyy+/IJVKGTFiBCNHjnzjIY1VRVHD8cKFC4waNQpLS0t+//33p/Lgq6uf0tJSdu3axeTJk5k/fz6jR4+uVTVmFb+tWCympKSE7Oxs4uPjCQsLIzo6moSEBHR0dGjdujXdunWjR48etGlTXqz8eb+5RCIhJyeHs2fPsnXrVh48eECPHj0YMmQI6enpLFmyhPDwcEpLS5/6noqKCs2aNSMsLOzp0i1J12HDApC9I5OlApEIhn8Pjq3rc/9eQn2R9zrEY2IIYQE3OITAu/XC6mFJJybThWkv/Myff/7Jjz/+SPv27ZkzZw7Jycn85z//4datW3Tp0oXBgwfTvn17GjRo8Iw3R7G5vHTpEuHh4Vy6dInc3FzMzc1xcXGhc+fOdOjQAX19ffT09NDT03vr3r0XERcXx5IlS7h9+zY//fQTnp6e1broSSQSAgMDWblyJRKJhKlTp1ZY4ONtU1BQwKlTp9ixYwf379/H09OTwYMH07JlSxo2bFgrTonfRaRSKYWFhRQWFpKdnU1MTAzR0dFERUXx8OFDdHR0aNmyJZ07d8bT05PmzZujp6en/G5mZiYnTpxg+PDhL/T4PYm6ujqBgYG4u7uTVqLOV4chMbum7/LNoSqCz9vBcOenhV/EYjFHjhxhxYoVpKamIpfLcXJyYujQoYSEhHDixAlsbW0ZO3Ysbm5uz+SzPnjwgIiICM6fP09YWBhZWVkYGRnRrFkz2rVrR4cOHbCzs0NPTw9dXV20tbXrvXs1TEFBAQ8ePGDnzp3s3r0bS0tLRo4cSd++fevU3CsIAhKJhOjoaMaPHw/Ar7/+iru7e7VGWShEu5YvX8769etZs2YNffr0qbWRHIpDLsX8qHgHY2JiiIqKQiwW06RJEzp37kynTp3o0qXLM7X8FN7iR48e4e/vz4EDBygoKFBG6RQWFj63bz09PaZNm8aPP/743z8e/QPOn3j3jD8VVfD0Bd+PyxVA63ku9cZfHeI2pzjGGHK5+7YvpdpRRwcH3mMwh5/6u2IMbtq0iUWLFtG9e3f69u3LqVOnOH/+PI0bN+azzz6jQ4cOWFtbK0+kBUEgOzubuLg4pRciKSkJkUiEo6Mjbdu2pWPHjtjY2GBoaIihoaFyE1obDT4FiYmJrF+/nrCwMCZMmEC/fv2qNc+voKCAw4cPs3nzZgwNDRk/fjxubm51phaXTCYjLCyMHTt2EBkZiYODA/3798fLywszM7NKy3HXU3EUapAFBQXk5uaSnJxMXFwccXFxJCQkUFJSgrW1tfJddHZ2JicnhylTpnDhwoXX6kMkEjF58mRmz57NxXQD5p+HlPwavrE3iAhwsYTZXaG9efnfpFIpJ06cYOXKlcTGxqKtrU2HDh1o1KgRERERyOVy+vXrR79+/bCzs0NbWxuJRMLVq1cJDQ0lJCSE+/fvIwgC9vb2NG3alI4dO9KkSRMaNmyIgYEB+vr6tSra4X8FuVyuDLvdvHkzsbGxuLm5MWLECFxcXJ4qG1TbKS0t5erVq8ycOZP09HR+/PFH/Pz8qj0vPT09nSlTpnDlyhU2bNhAp06daq0BqEAR8l5QUEBeXh45OTnEx8cTGxtLXFwc9+/fx9jYGCcnJzp06ECXLl1wcHBAQ6M8j00ul5Obm8vNmzfZtWsX+/fv5/Hjxy/sT0VFBWtrawIDA3F0dCz/4y/TITW5vM7fu4alLYyeBXp1K1LpTVJv/NURpIiJYydHGY2cdyQ59ylEmNCcYYQpa/4pJsglS5awY8cO/Pz8UFVV5dKlS6iqqtK/f3+8vb1p2rQpurq6SKVS7t69qxQ8uH79Onl5eejr62Nvb0/r1q1p164dpqamGBsbK3Nf6goPHjxg27ZtnDx5koEDBzJ06NAKqYi9ivT0dHbv3s3+/ftp3Lgxo0aNwsXFRZlPVdtJSEhg165dBAYGoqenpyy90bhx4zorp/4uIZFIyMvLIysri7S0NBISEoiPj+f27dtkZGSgra2NiooK4eHhT+WsvApbW1vOnz/P0ceN2HZVhfSiquX7CYJAWWocBed+RV6UiSArQ9XACj33r9CwdUOk9maFBIy0YbUfdLEpv7agoCB+++03goKC0NbWxtbWlpKSErS1tfHw8KB///40a9ZMqVR86dIlLl++TFZWFoaGhtjY2NCiRQtcXFwwMzPDyMgIY2Nj5fOv5+0jkUi4e/cuFy5cYP/+/eTl5dG5c2c+//xzWrVqpTQCajsymYy4uDgWL17MzZs3+frrr/niiy+qdd2C8rl/zJgxypq/zZs3r1UhoC/jScXU7OxsMjMzuX//PlFRUdy8eZN79+6hrq6OnZ0dbdu2xdXVFVdXV0xMTEhKSmLZsmVs27btlXOmhoYGQ4cOZcP69VBcCPPHQFnpS79TZ1FThyk/g6lVfdH3F1Bv/NURCnlMJP8hmNlVbuvhZYjfDXn3QVUdGvcAa3dIj4Mkf1DThia+0LJfNVx4BdDHmsEcxgpXBEGgoKCAn3/+mQMHDuDo6Ehubi6lpaW4ubnRt29fnJycEASBa9euERUVRXx8PCkpKUilUoyMjGjcuDGtWrWiSZMmmJqaYm5ujpGRUZ3c4GRnZ7N7924OHDiAh4cHY8aMwcrKqtraT05OZseOHQQEBNCuXTu+/PJL2rRpUyeM45ycHI4cOcKBAwfIz8/Hy8tLqapmYmJSJ3/vdx2ZTEZBQQHp6emkp6fz4MED4uLiOHfu3Gt7/RSoqKiwc+dOQrX7EPRQh4Iq7mcEQaDk+jFK4o6g1bQbCHIKQtegommA8ZCdqOoaV62DCqIqgjUfwL8cIDLiEqtXr+bkyZOUlZVhYGCAjo4Orq6u+Pj4oK+vT05ODjExMSQnJyMWizExMcHCwgIXFxcaN26MqakpZmZmynej3rtXe8nLy+P69eucOnWK4OBgdHV16dmzJ71798be3r5OzG2CIBAfH8+GDRu4cOECAwYMYNiwYVhYWFTb2BMEgQsXLjB58mSaNGnCwoULsbe3r7OhyhKJhLS0NNLS0nj06BHXrl0jMTGRlJQUSkpKMDU1pWXLluTm5hIUFERiYuIr2xSJRJiamnLk8GHcLBoi+u3HV37nVaQXi9l27R4XU7NQEYmw1tNmkktT7Ax0WRNzmwuPMlETiRjn3JSOFkaovsm5Zth30LRNvernC3iZ8Vc3jk3+RxCTSyGpiFBBqKLYi545mLWGOwEgyMHhX6BjAohALgN9azByrJ7rrggCMnK4g4XcmcePH7Ns2TKOHDmCRCLh/v372NjYMGDAACwsLMjLy2PNmjUkJiaSmZmJhoYGxsbG+Pj44ODggLW1NdbW1lhYWCjDOesqhYWFHD9+nKNHj9K8eXOGDBlSrYbfjRs32LZtG1euXFHmTrZo0aLWn5yWlpYSEhLCX3/9xc2bN3F0dGTw4MF06tQJKyurWh/687+MqqqqMty6WbNmSCQSbGxsiIuLq3BbcrmcHTt2UPKBNxJ59YTFaVi2Ra1BI9QtWgFQmnyZwoityIuzUNFuiOg5m25BLkN8Oxhp1h20mvVA3dihWq5FJkBOCVyJvcbWrVsJCAggNzcXQ0NDrK2tMTU1RSwWExAQQFFRESoqKujr6+Pk5ETbtm2xtrbGysoKGxubepGjOkaDBg3w8PCgUaNGODs7c/bsWY4ePUpkZCR+fn74+PhgaWn5ti/zpYhEItq2bcv48eMxMDDg6NGjFBQUMGzYMJo0aVItBppIJMLDw4MZM2Ywb948Vq5cyfTp07GysqoTBvI/0dTUxNbWFltbW2QyGR4eHjx69IiHDx9y7949kpKSSElJITY2lrt3Xy8NSBAEMjIyWLp0KbumfoOaigoiedX2ktpqqjgY6rHjxn3u5xex0scZAw11RICTqSF7EpLxsDTBQkeLNzrriESQlQYOLaF+G1BhavfO738MCQUUkY4IUZUlzBvYQquBUJQGicehKB0KH5UbgvY+5V6/BjbVcdUVQYQcOVmyJG4n3ebXX3/l8OHD5OTk0K5dO6ysrDAwMCA+Pp7Tp0+Tn5+PhoYGZmZmyhNtOzs77O3tMTQ0rPWGy+tSVlbG2bNn2b9/P6ampgwZMoSmTZtWS9uCIBAZGcmWLVu4ffs23bp146OPPqJJkya1fsG8fv06Bw4cIDQ0FDU1Nfr06UP37t1p3rx5jdQ6rKdm0dTUxNTUFBMTk0p9//z581i2TUZqZgIqVVvtRSIRakb2YGSv/JtqQzuQlSGUllCutPzs+yHNuEVx9F7kheloWLWDajL+AG7eTiLo7GZOHjtGVlYWGhoaSoEcfX19NDU10dfXx9XVFQcHB2xsbLCxscHa2rrWv8v1vByRSISNjQ2WlpY0b96ckJAQgoOD2bp1K5GRkfTs2RMPD49aLwrTvHlzRo4ciZ6eHidOnKC4uJihQ4dWW4SJmpoaH3zwAY8fP2bjxo1YWFgwbNiwai+B9KZRVVXF3Nwcc3NznJ2dKSoq4vHjx1y9epW0tDSuXbv22m0JgoD/6dOccWlBz2p4Jvoa6vg0MiW2iTWrom9hrK2JsbYmgiDQwcIIkQhGtXfAzkDnzf4GIhHkZJR7M+qpMO/G7vkdoYxixOQiVFP1Kk0DaPUR5NyBu2chPwXM2oCt17OGn6QAbvwFufee/rtVB2jaq7pKqQiUlUqIjb/K1tWJ7N27Fw0NDfT09JRKdGVlZeTm5mJnZ4e7uztNmzbF0dERe3v7ai8mWxuQy+VcuHCBnTt3oqmpyWeffYaLi0u13KdcLic0NJTff/+d9PR0evXqxb///W9sbW1r9XPMysrC39+fEydOkJSUhIeHB927d8fd3V3p4S0pKXmttqRSKVKptEL9y2QyysrKXkuJ8knkcvkzEtyvQiFnLq/E6axYLK7wd0pLS5FVQvmtMn0pnv2TzzElJYWkpKQKtwWQn5+PKHA1mu0/QaOJNypalU/0FwQBacYtJPfCkBekI0glSO6GIcjKXiiOIBcXUJZ2A2lGYrXnBAqyMvwP7eb+mX2kPXqoNPR0dHRQV1dXhrk7ODjQuHFjdHR0yMrKIisri5iYmBe2qyjKXtH3XUVFpVI5ZxoaGpUKM1VXV6+wd0hFRUVZj7WiVCbHWVHcvqL9qaqqVihCwd7eHlNTU1q0aEFwcDBXrlzh7t27xMbG4uPjQ7t27Wp1PqC9vT3Dhg1DV1eXQ4cOsW7dOj7//HM6duxYLaJi2trafPrpp6SmpnLkyBFMTU3p378/xsZvNlS7JtHV1aVJkyZoaWlx9OhRVFVVKzRvFxYW8sueg3Tp1hp9VVGV13t9DXV6NrZgY9wd9iQk07tJeVRSVFoOptpaODR4OvJqf2IKCTkFlMn/O5c6NNClayNT7AyqSVhOEKAwv7yWYT0Vpt74q0XIKKWM4iqHfD6JkSO07A+hi+HOWbBwAtNWz36utACu/wVGTZ74owjKiqvtUpDkw42TJaQeuUTYnmTkcjlaWlrY29sri0rb2dnRqlUr2rRpo8zdk0ql3L59+5n2FDV2KrqZVWy4K4rCKKgopaWlLzQkcnJyOHToENevX6dr164UFBRw+vRp5fOoqAFSVlaGXC5HEATy8/M5ceIEMTExuLi4KHMm/plvpRDdqUxflXn2Mpnspd/LyMjg0KFD3Lhxg+bNm6OhocGNGzeIj4+v8DVKpdIK/2Yymeylv9mLUMh8VxSJRFIp46+0tLTC3m+FIVzRDWx19ZWWlkZERESF2nmSvIg/0UUVNcvWlTb+BEFAEOdTELwcaU4yasYOiFTUEMpecqAgCJQ9uopQWoyqgSXy4qxK3sGLuR4dQfHjR0C5waCtra3M29PR0SEvL4/Y2FhiY2Nfu02ZTFZh408QBORyeYVDqmUyWaWMI0Ux9IqOL4WBWtGNrUgkqtRBosKQrozxV1lDuqysjJKSEiIjI7l06RIRERF06NDhpe1VxiBWUVFBVVW1wga4SCR64bVoaGigqanJqVOnyMrKwtPTEzMzM2U/lYncefKQwNraGolEwpYtW8jNzaVp06bPHbMikahS9wZUqtalSCSq9Dj557uan59PcXFxpYy3wPibrGuowRTnpqipVE3hXF1VhaaG+rhZGBHyMIOUgmIa6WmzL/EBnzS3QYWn2z94+yGGmuqoq/73GRSVaSKTV6PGiCCAuLg8nK2eClNv/NUi5EiRUvHN48sQ5KCuV24ElmRBxs1yD2ADu398UARahtDz12rt/imKsyByUyl3zvw3fl0sFlNUVESjRo2wtLREKpVy9epVrl69+sr2FIaEIAgV3tyUlZVVeHJWGC2V2Tg/7zS8sLCQ27dvk5+fj42NDampqezdu1fZl1QqrfCCpfDspKSk8OjRIxo0aICdnR1SqZTAwMDnfkculyOVSit9XxVBYbD/s65RVlYWiYmJyGQy7O3tadSoEebm5br3ly9fBsoX/sosxJX5XmUW76os+k/WZ3tdDAwMKrxBV3ghKnKNis1TRcO2FBvDJ8fwo0ePePz4MTdv3qxQWxoaGnh7e3M1z5BS48ZVDPsUKMtKovDiJgx8f0C/yxhUtA0pCF1LafLzDVNp3kPK0m+iatgIdbNmSO5drEL/zyJSVadT9w8wczGlMDeTrKws8vLyKCgoUHr9TE1Nsba2xszM7LV/v5KSkkp7sCt6sFPZQxOZTFYh5VcFZWVllT7Eq2g0AJQfZlT2kKYyv4FibQNwdnZGLpdz584dgoODyc7OpkGDBjg4ODwVCiqXyytl6AiCoDQAK4JMJnvpvKCmpoa9vT1RUVGEhoZiYmKCpaUlurq6lTqUULSp+J6ZmRnXrl3j119/xcHBAVNT02eMyie/V5339rLrrOwhyD+fiUJJtTLjVRAEFly6hrm2Bh81s0FHreJrjAIRoKeuysfNbTiTnMaJO4/4uLktsRm5/ODR8pnPq4jgB49WWOrWcHpGqeTdLGPxBqg3/moV1T+Is5PgYXi5x09VAx5FQMJRcPoSNN5w+oC6Dth1VsOiQSMscX3m3/8ZIvY6qKmpVSpkSENDo8IbZ8VJc2X6+ufpaFZWFmfPnkVNTY3333+f5s2bPxWKpDBaKnqNJSUlhIeHk5iYSMeOHfH29sba2vqVC5+amlqFFzoVFRW0tLQqdcqsra2NIAjk5OQQGxtLZGQkcrmcFi1a4OPjg5OT0zPtVqYIteKUv6LXqKmpWalwOcX3KoLid/5fyNt6+PAhenp6zJ8//7W/Y2VlhaenJ1OnTuX7SBtuZwkIOlUL8RKKs0GQoWHRGhVdI4QyMfLinOfOP+UhoRcQaeqjbtGK0uTLVer7RQz4YhR9m35NcWYKV69eJSYmhuvXr5OZmakMcTQwMMDR0RFzc3MsLCywsrL6n81/FYvFTxlIr0tpaWmFowHkcjkSiaRSIdPFxcWViqpQRHEokMlkZGRkKD2A+fn5tG7dmg4dOtC6dWs0NTWRyWSVDgevjCGt+A1ehlwu5/79+4SFhfHgwQN0dHRwcXGpsIiNIAgUFz8biuTk5MS5c+fIzMzE3t6eFi1aPLWWKg4XKmq4V+ZwQXG4WZlnWVxc/My4TE1NJS8vr0JhnyKRCBMTExrpaNBQXsaWa/fo42CFjlrVRHc01VTxbmSKtZ42exJSsNLToZWxAcZab7FWaL3dV2nqjb9ahCrqqFF99daK0uH2SdCzhMbdwNoNLi4vN/5MWoB9N1B5Yj6QSeDeOZCXlR+sazUo9xiq61ZPzp+eOfxrrjZt6Ulv1lW9wTpKYWEhe/fuJSgoiI8++oivvvoKe3v7Krebl5fH8ePHSUhIwNnZmZkzZ9KmTZtalx8iCAJisZjbt28THR3NiRMnkMlkDBkyhBEjRmBoaFircxLrqRxyuZyGDRvi7Oz8ys8qfv+mTZvyySefMGHCBIyMjDBLUeG+DMqqFOkjQs2oMapG9pRcP4FI0wAEOfLCdECg9FEMqka2qGgbIhKpUJZ+E3lBGhp27qgZVJ8C7z/RVQddTXUsHBxwcHCgb9++yiLPly9fJioqioCAAI4dO4a5uTmOjo64u7tja2urFNJR1Fb7X3h/6kpt0urGz8+PmJgYtm3bxuXLlykoKMDGxob27dtja2tbKw+RBEHg8uXLbNq0iRs3bqCmpoavry92dnbVcr1//fUXv/32G/r6+vj5+dG2bdt3Qgk6MjKSNWvWcOTIEbKzs1/4ORUVFYyMjPh/9s48LKrq/+OvYd932UFZRUQWF9wARcE1MivN1LRcUjPTMi3LtMxcs03Nyi2VbPlq5Y6KC4qKgLijbLKIAoLIvgwzc39/TEP1a0ME2e7refB5hDv3nrl35pzzPufzeX+sra2xtrbGz9eXfkIJbg+yuZ5fjLG21iNP4tQkEsx0tHjKVWn8YnI9nTe6dfzbYwUgLrcQfU0N1CUSDDQ1sDfUw1xH60+hoI+Mjk5DGVK0OUTx14xQQwtN9Buk1ENRxu8GLp6+yjIP6tpg5QMXvoa4DaBrrhSBmrqgpqEUe6eWQk05aOiAlgH4vggdRwBqDfMdk6CJFs3O5PVaAAAgAElEQVTbsawxqampISoqiq+++go/Pz/Gjh3bIMKvsLCQvXv3snLlSrp168aSJUto3759s6qBpFoVzcvL49KlS2zfvp1Lly4RGBjI66+/jpeXV1M3UaSBkclklJeXU1RURGFhIenp6URERPzn6wwMDHB3d+eNN95g9OjRtbuptoagrfFodYslEgnq5k4YBb9J5bU9lJ5YjZZjD7TdgqnJu0Hl1V/RduiOmrYhipoyKm9EoGXjhaZ15/pf9D9QkygLvev8YUSWSCSYmprSu3dvevfuTU1NDbm5ucTGxnLu3Dni4uI4fPgwJiYmtTtAXbt2xdjYGFNT01pH5LYgBNsSurq69OrVCx8fHyIjI/n666955513GDhwIBMmTMDFxaXZLaBJJBL8/f0xNjZm69at7N+/n6KiIqZPn46Tk9MjO3c/9dRT3L9/n+3bt/P9999jaGjYIhyt/4vu3bsTGBhITEzMX8SfqpSOubk55ubm9OjRg6FDhxIYGIi+nh78byPEleBu0nBlsLTV1XjWzZ4vL6eRXlxOb5u/j8Cw09fl6ytpFFfXoKGmhp6GBgMdLRnpaoeTsX7DfDbV1EBbFyQt+xk3FaL4a0ZooocOJvCb+HuUr8e1HyF5H8ilYNlFafKSnwgFN5Xhng/SIO5LCHoHTJxA1xT6LVYWf9c2gpJsOL4QDs0CxwDQa9cQ71CCOhroY9kQJ2txKBQKrl69ykcffYSdnR2vvPJKg5R0uH//PuHh4Xz88ceEhYWxZMkSzM3Nm9Xgryr4nZKSwq5du9izZw+2trYsWbKE0aNHt/hBWkSJykypvLycsrKyWrvy2NhYrl69yr1792pXqR88+Pswy3bt2tGnTx8+/fRTOnTo8KfPcQcT0NOAcumjRfxIJGoYBs7EMHDmn36v7zf6T/+vTDqCUFGEIJMiK8wAQUBReg9FdZnSLMasA+qGVo/QEiWG2mCkDZr/slajqalZW97h6aefpqKigosXL3Lq1CmOHz9OVFQU6urqdOrUie7du9O/f3+srKwwNDSsLRUhfs9aBxKJBD09PcLCwujXrx/ffvstGzduJCoqiunTpzN06FCsra3rZVjSmHTs2JHZs2djaWlJeHg4+fn5zJ8/H3d390eKUFFXV2fChAmUlpaya9cudHR0mD59Ora2ts3q/T8q6urqGBgYYGxsjKWlJT179qwVfEZGfzDAEgQwNP5NGDWcIYqGmhqdLYzxMjfmWXd7NNT+/t7O7uqOhpoaxtqaPKiS8vWVNMJvZGKgpcELndqjp9kQ0kMCBsZKESjy0IjirxmhjTEGWCHw6HVLAt5S/vyR9kHKn79DTQOM7H//v0kH6Dsfru2EO3HgNuyRmwQISFDDFKeGOFmLQhAEsrOzmTdvHurq6rz77rt07ty53pMx1aT5wYMHfPHFF6xfv54ZM2bwzjvvNKuSGKpcmezsbCIiIti2bRs1NTVMmzaNqVOn1pZuEGm5qJ5xZWUlFRUVpKamcv78eWJiYkhMTKS6uhpnZ2cGDBhQW7B6+/btbNy4kaKiotrzqKurY2FhwfTp01mwYMHfOjk6m4KWxuNL9ajJSaQqOZLyi98rfyGAoqoYZFWUHF6CrPsLGA+c/0jXkAAdjMHgIea+EokEfX19AgICCAgIYMGCBdy+fZvIyEhOnDjBli1bWLt2La6urvj7+9OvXz88PT0xMjJCV1e3Nn+2ufQTIvVDIpFgbGzMrFmzePLJJ1m9ejUffPAB//vf/1iwYAF+fn6YmprWq/xGY2FjY8PkyZOxsrLi008/5c0332TJkiX4+Pg8Ui1AHR0dpkyZQnl5Ofv370dXV5dXXnmlNhS6paKmpoaenh6WlpbY2NjQu3dvhg8fTt++fTE1Nf3nF1pYN4gTpmquIZFIlNE7CgFrfW2e6/jPhaJtDX7PQ7bW12GCZwfO3i3gWkExueVVODfEbqSgALN20Iyim1oSovhrRuhgjAE2KEVS06PyVJDVraRanVBDA1Nc/vvAVkZpaSnz5s3j7t27bNiwgS5dutQ71EXVGRcVFbFo0SLCw8NZsGABc+fObTaF71WOqg8ePODMmTNs3ryZxMREnnjiCebMmYOLS9v7DLQmVIKvurqa0tJSzp8/z6lTp4iOjubOnTuYmZnRtWtX5s6dS1BQEK6urn/6bM6YMYObN2/W5nvq6+tjZ2fH+vXrCQkJ+cfrdrH8c2hkY2M8cB7GA+f9/guFnOLI5VTfOo3x0CVot+/5yNdQkyjfl+kjpLBJJBIcHR2ZNGkSkyZN4sGDB5w9e5bIyEiOHj3K9u3bMTU1xcfHh759+xIYGIijoyM6Ojq1JkXirmDLRU1NDScnJ9avX8/zzz/Pe++9x5gxYxg5ciRvvvkmDg4O6OrqIpE8es23hsDY2JhnnnkGKysrFi9ezIwZM1i5ciUBAQGPlMtpbGxcKwD37NmDkZERU6ZMadH5ofb29owdOxZPT0969uyJmZlZ3V5oadsgNfDkgkB5jQx9TQ1kCoELeYWY62rjYKhX53MYaWmgra5GjUJA1lDunIIA5lbKnQuRh0a8a80IPcwxpQPqaCLn4evJ1RdBAASQVSlz/ZCAIIf7KSBR/3+1/x4JCVroY8HfJwm3VqRSKYsXL+bUqVN8/fXX9OzZs94rnKqaWIWFhUybNo0TJ06wadMmnn766WYzeVM5zp07d45vvvmGs2fP0r17dzZv3kxwcHCzmHyIPByq2m+qwu05OTmcPHmSAwcOcPbsWaqqqujYsSMhISGEhobSvXv3f12VNjY2pn///hw8eBAjIyNCQ0NZv359bXmPf8LBGCz1IaMIZE1U3kmioY1ES//PblmPgFyAThZg0oDzU1NTU4YPH87w4cORy+UkJSVx4sQJjh49yscff8wHH3yAq6srAQEBDBgwAD8/P8zMzP5UyFz8nrY8JBIJAQEBREZGEh4eztKlSzly5AgzZsxg4sSJtaUQmsOz1dHRITg4GCsrK95++22mTJnCsmXLeOaZZx5pB9DW1paXX36ZyspKduzYgampKc8991yzWRh9WEJCQv51QewfsXEETU2oR23iP3K3rIqt19MJc7alvEbG0pgbbAj5q1u7CkEQqJTJ0VZXR02ijNLILqukvEaOlZ42JtoNZMSjrqEUuC30uTY14l1rRqihgQHWmOJKATce34UFpTHMifcgdJXS6OV+CpxcrAwTtfJtGLMXTfSxwhdN2o41uVwu59tvv2XTpk2sWbOGgQMH1tuaXTUBv3PnDmPHjiU1NZU9e/YQEBDQLAZzVd3FGzdu8PXXX7Nnzx7s7e1Zvnw5zz77bJu1pG+JqHaXFQpFbc2xxMREDh06REREBHFxcejp6REQEMCiRYsYMmQIjo6OdXbYMzIyIiAgAGtraxYsWMCMGTPqtHghAQIdIf0B5JY1gdO3mjpGA+b993EPgYkOeFgoc/4aA3V1dTw9PfH09GTmzJnk5eURFxfHsWPHOH78OBs3bsTIyIju3bsTEhJC//79cXd3rxWBohBsWajqjb744ouMGDGC1atX8/HHH/Pjjz+yYMECQkNDaw1hmvq5qqur4+XlxTfffMOiRYuYOXMmaWlpvP32248kUl1cXJg2bRoVFRV88cUXmJmZMXjw4GazQNroSCSgpQ22zpCZ9EinUleDgspq+v10AhcTA1YGetPR7J9N+yplcl4+eoG53d1xMtYnp7yS9ZdSUQgCPazNsNRriFUuCdg7gY6e6PZZTyQPW3+mMejevbsQHx/f1M1oFtzjOmdYxVV2ouDhC3vWl5LbsDMMijOVO4CGduAcCgM/Ah3Thvh+STDCjkDeoQczGqLJzR5BEIiIiODZZ5/lzTffZP78+ejr69f7XHK5nOvXr/Pcc8+hUCjYs2cPnTr9tcDq40a1G1lQUMCWLVvYsmULGhoaTJ06lbFjx/7nbo5I80A1FqgWGUpKSjh37hwHDx5k79695OTk0L59e0JDQxk2bBghISG1oWT1QSqV1p7zYbiRD68fgRsF9bpss0JDDZ7qCLN7gqPx47++VColLS2N48ePc+TIEWJiYigpKcHBwYEBAwYwePBggoODMTQ0rBULTS0YRB6ea9eusXjxYo4ePUpAQABvvfUWPXr0qF2Qaw7PtLi4mHXr1rFs2TImTJjAZ5999rd5vw9DfHw8y5Yt486dO3zxxRf4+/s3i/f62Di6GyJ/AdnjiyQDGLw7ikv3iiitqcFcR5ueNubM8nWlp405Oo9YbxBQRl0MHAHBI0C75Yb0NjZubm4PUlJS/jZOWBR/zYxqSrnGD+zj5aZuSoNjQUfGcahNGL4IgkBiYiJBQUGEhISwdevWek+UVQ6K586d44UXXsDKyopff/0Ve3v7/35xI6Mq37Br1y5WrVpFQUEB48aNY9KkSbi7uzd180T+gz/2/1KplMzMTI4ePUpERAQnTpxAKpXi6+vL8OHDeeKJJ/Dz82sWAuDVCDiWBhWPb32sUZAAG4ZD//ag2wzKkpWWlnLp0iUiIiI4fPgwFy9eRE9Pj759+zJs2DBGjBiBo6PjX17X1J8Hkbpx4sQJ3n//fa5cucKwYcOYM2cOfn5+zcb8p6qqit27dzN9+nQCAwP5/vvvMTIyqnfbBEEgNjaWRYsWUVpayrfffoubm1uzeK+PhYIcWDUX6lggvkUxZxnYdhANX/4FUfy1MDKJZi9TuM+jbdc3J7QwxJ0neIbvkDQLO5vGQ7UL1rt3b6ytrTl06BAGBgb1HnDKysr49ddfmT17NgEBAezYsaN2Jb6piY6OZtGiRVy8eJERI0YwZ84cvLy8Wmx+RVvj/v37xMfHExERQWRkJImJiZiamhIcHMywYcMYMmQI1tbWf3pNc/jcRWXC8uiWvfunLoFeDrB8ALRvgl2/f+KPIb93797l8OHDHDx4kMjISEpLS3F2dmb48OG1ZQY0NTWbxWdC5L8RBIHq6mp2797NJ598Ql5eHqNGjWLq1Kl4eno2dfMAZW3Qc+fO8eyzz2Jtbc3+/fuxt7ev92dMLpcTExPDnDlzMDIy4ocffqBduwapXdX8EQT4fCFk32oQ589mg50TvLIYdMRUkn9DFH8tjGKyiWcDp1lOE2S1NArmuDOIj+lIWFM3pVERBIHKykoGDhzIvXv3iI6Orp0812fwunfvHhs3bmTNmjWMGzeONWvWNIvJVnp6Oh9++CE//fQT3bt35/3336dnz561rmpN3T6Rv0cqldaafxw8eJDz589TVVWFq6srISEhDBkyhICAAPT0fndya47PUqaAeZFwOBUqalpuL/nNcAhqJrt+/5//PzeQSqWcP3+eAwcOsHfvXpKSkjAzM6Nfv34MHTqU4cOHY2lpibq4Et+sUT3X+/fvs2PHDjZu3IhUKuXFF1/kpZdews7OrsnbJwgCqampPPnkk5SVlbFv3z58fX3rHTlTU1PDuXPnmDZtGm5ubvz4449/6uNaNXFRsOsbkLXwMIk/Mvpl6BYEGs2w42xGiOKvhaFAwW3O8iNPU0F+UzfnkdFABxcGMZpdqNN6v6yqvLwXX3yRQ4cOcerUqdrV1IcdtARBIC0tjZUrV7J3717mzJlTWyOwKSfjFRUVfPrpp6xZswYLCwsWLVpEWFhYbYHZ5igU2jqFhYWcOXOGI0eOEBkZSUZGBiYmJvj7+zN48OBag48/5nQ19+coCHD5Hnx0GmLvNHVrHh51CQxxhff7QbsW4Fnwx3mCQqFAEATS09M5ePAghw4dIjo6mpqaGnx8fAgNDWXAgAF069atxddYa82oRFZKSgqbN2/mhx9+wNzcnFdeeYWxY8fWOz+9odoGUFBQwLPPPsuVK1cIDw9nyJAh9VpcEASBqqoqTp06xZQpUwgODmbr1q1tY6FCJoNVb0Dhvd+s3Vs4xuYw/2PQ1m3+HWcTI4q/FoaAQBk5nGcd0ayg5a5rK7HEiwF8SEdGtOqQz5qaGt5//30++eQTfv75ZwYPHlyvibRCoeDixYt8+OGHJCYmsnjxYp577rkmF34HDhyorVU4depU5s6di4WFRZO3S+SvJCUl1ebuxcTEIJVK8fDwICgoiKFDh+Lj44ORkdGf3Bxb2jNUCPBVPHx3Fe6WQksKatLThF2joKO50vSlJfJHJ9gHDx4QHR3N6dOniYyMJCsrCzMzM3r06MHAgQMZMGAALi4uYjh4M0RVwuXatWts3LiRPXv24OzszOzZs3n66aebTCCp5qalpaVMmzaNffv2sXr1aiZPnoyWlla9zldWVsb+/fuZNWsWr7zyCkuWLGnoZjc/BAFiImHvdpBKm7o1j84zk6HnQFBTE8XffyCKvxaIgIJ7XON/PMd9UlAgb1GySQAkSNDBhM6MYhhrUefhO+yWglQqZefOnbzyyissX76cmTNn1ksUSaVSjh07xooVK5DJZHzwwQcEBQXVa7BrCFQrw2+//TZHjhwhLCyMRYsW0b59+2blFNeWUeXxxMTEEBERwcGDB8nMzMTQ0JCePXsSHBzMgAEDsLW1RVtbG01NzVYj2AsrYNU5+PUmVMlazjLZsmAY2Ql0NVrH/EVl/CSTyZBKpaSkpHD69GlOnjzJxYsXKS8vx8XFpdYAq0ePHpibmzd1s0V+Q+XwW1paSmxsLF9++SUxMTEEBQXx9ttv07Vr1yZrFygjTj766CPWrl3LlClTWLJkSb3y6AVBoLi4mB07drBo0SJWrVrF1KlTG6PpzYuaGvjqQ8hOa7nhnxIJWNvDrKXKMhatoeNsZETx1wIREJBSxg1+4VdeREBogeIPnAhmMJ9ihXer3fWTSqWcOnWKF154geeff56lS5fWK5+grKyMXbt2sX79euzs7Fi4cCHe3t5NIvwEQaC0tJQNGzbw+eefY2try+LFiwkMDMTQ0FCs/dXEqEyFjh8/TmRkJCdOnKCwsBBHR0cCAwPp378/PXv2xMDAAC0tLbS1tVvlM1MIcD0f1sbC4bSmbs1/o4ZS9C0KAuNWOn9Rhb9LpVKqq6vJz8/n8uXLxMTEEBsbS0pKCrq6unTp0oWBAwfSv39/vL29W91nsyWiyo8rKCjg9OnTrFu3jvT0dMLCwli4cGGT5QMKgkB5eTlbt27lww8/ZPDgwaxcuRJra+uHrt0nCAKFhYUsX76cbdu2sWPHDoYMGdJILW8mCALcugHfroGKsqZuTf2QSGDaQnDt/Pv/Rf4VUfy1UAQUlJLDSd7nIpsRWsy6thIrvOnNG3RhbKvN9aupqeH69euMHz8eNzc3Nm3aVK8V7fz8fLZs2cL3339P165deeONN+jYsWOdi2Y3FKrciF9++YU1a9bw4MEDJkyYwOTJk2nXrh3a2triJK2JqKmpIT09nRMnTnDy5EliYmKoqamhc+fO9O7dm8GDB+Pg4ICenh66urptxnynRg5nb8M3CRB9u6lb88+oS8DPBr4YAjYGoNa6H0stKiFYVVVFWVkZ2dnZxMXFcfbsWRISEqisrMTe3p7AwEAGDBhA3759MTT85yLSIo2PQqGgurqa7Oxs9u7dy8aNG9HQ0GDatGm8/PLLaGtrN0m7ysrKOHDgAAsXLsTd3Z2VK1fi4eHx0OHECoWCe/fuMXfuXM6ePcvPP/9cb0OZFoOsBo7+DNGHoaq8qVvzkEig33AYNgbUW0m4xGNAFH8tGAUyCkjiZ8aTx1UEWkK9FjUMsaErk+jNXHRoRj7mDYhcLic1NZUZM2ZQVVXF9u3bcXFxeegBJCsriy+//JJjx44RHBzMyy+/TPv27R+78KuuriYhIYFPP/2U2NhY/P39ef3113F3d8fMTNl/tOrBsZmhUCgoKiri4sWLREdHEx0dTWZmJjo6Onh7e9O9e3f69u1Lu3btMDQ0xMjICA0NjTb5jCprlOUfNl2EuLtN3Zq/oi4BZ1NYNxTczJTCrw0+ptrw0PLycsrKyigsLCQxMZHz589z/fp1UlJSMDAwwNfXl/79+xMcHIyTk1Ob/Ew3B+RyOSUlJdy6dYsffviB3bt34+zszGuvvcaTTz7ZJG0qLy/n9OnTvPfee+jr67N48WJ69epVm4ZQVxQKBZmZmUyePJny8nJ++eUXbGxsWvdnrbQYfvwK0hJBWtXUrakbampg7wKT5oGBUdvsOOuJKP5aMAICcqRkcoo9TKKUnGYtACWooY0xXRhLH97ABKdWGe4pCAK3b9/m3Xff5erVq6xfv55evXo9dHL81atXWbduHdevXycsLIznn38eOzu7x5pkL5PJyMjIYPv27ezduxcTExMmTZpE3759cXR0fOwitC1TWVlJRkYG8fHxnDt3jsuXL1NWVka7du3w9PTEz88Pb29vTExMan/ahGNdHSiTKncAv70MZ5rRDqCaBDpZwNJg8LZSCkFx/qJEoVBQUVFBUVERxcXFZGVlkZCQwOXLl7l27Rqampq4uLjQp08f+vbti5+fnxh98JhRhfHm5eWRkJDApk2bSExMZNCgQcyZMwdXV9fH/jwqKyuJi4tj2bJllJWVMXv2bAYNGoSxcd0XmlV5jhcvXmTixIm4u7uzbdu2ZlNDt1EQBLiTAb9ugewMqGnmBjBqakp3zxdmg6Or8net9dk0AqL4a+EICNRQQTL7OMArVFHSTAWgGlro0Znn6MlrWNIZNVrfxFQQBO7cucPnn39OREQE7733Hk899dRD5+ZFR0ezbt06CgsLeeaZZwgLC6tXDkN9EQSBvLw8Dh48yE8//URZWRmhoaEMHz4cd3f32vINIo1LYWEhV69eJT4+ngsXLpCVlYWamhq2trZ07NgRHx8f7O3tsbCwwNzcHCMjo9Y7OXlESqWQkKN0AD16SznXacoRToKykPu83uAjCr9/RRAEpFIpDx48oKCggLy8PK5cucKVK1dIS0ujvLwcOzs7fH198fHxoUePHtjY2IiLU48JVUpAamoqUVFRfP/990gkEp555hkmTJiAmZnZY+2XpFIpFy9e5LPPPuP27ds8//zzPP3009jY2NT5HKqd6MOHDzNr1izCwsJYtWpV615gkMuUO38HfoDcLGU4aHNETQ30DGHUVOjkB2rqYuf5kIjirxWgNIAp5Ro/cJz3qOQ+imYkAJU7fkZ4MopuvIw13q3W3TM3N5cdO3awc+dOxo8fz9SpUx9KKAmCQEREBBs2bEAulzNmzBiGDBmChYXFYxtwioqKOHPmDD///DOpqam4u7szYsQI/Pz8sLW1bb0DXzNAoVBw69YtLl++TEJCAjdv3qSwsBB9fX1sbW1xd3fH3d0dW1tbrK2tsbCwqM3fE/lvKmrgRgHsS4afb0BJ9eMXgGoSpdAb6QHjuih3/CSIc5e68sdC5Dk5OeTm5pKamkpSUhK3b98mJycHY2NjXFxc8Pb2xtfXl44dO4oLI48BQRB48OABly5dYs+ePZw+fRp3d3fGjBnD4MGD0dHReWzPQCaTcfXqVTZt2sTVq1fp378/48ePx93dvc7nUInabdu2sWLFCl599VVmz57dukPoa6SQdBlO7IM76Uo30ObkKaGmDkYmMGQ0+PRWunuKPDSi+GslCAhUU8J1fuQUyyjhNkKzqG4lQR9LvBiDLxNoR2c0aJ1f1sLCQvbt28fGjRvp1asXb7zxBra2tnV+vUwmY/fu3WzduhVTU1NGjRpFv379HpvteWVlJRcvXmT//v0kJCRgaGjIgAEDCAgIwMPDQ1xFbyTKy8u5efMmV65c4fLly2RkZFBeXo6+vj52dnZ4eHjg7OyMvb09dnZ2mJiYiDXRHgGpHLJL4EQGHEqF+LtK4aVo5OFOglL4OZvC0x4Q4gzuYkWDBqG0tJScnByys7PJyMggOTmZrKwsCgoK0NDQwM7Ojo4dO+Lh4UGnTp3EkPVGRDVvTE1N5cyZM0RERHD37l38/f0ZNWoUPj4+j23BShAEEhMT+f777zlz5gy+vr5MmDABHx+fOkfRCIJAUVERK1as4JdffmHZsmWMGDGidX9+pNWQcg3OHob0JKhuJjmA6hpgbg0DwsC7p7KYu0i9EMVfK0IVAnqdn7jIFrKIRjnlaLrnaEUXOvEsnRmFGa6t1tmzrKyM48ePs3HjRszNzVmwYAEdO3as8+srKyvZuXMn4eHhdOjQgXHjxtGzZ8/H4mynUChITk7m6NGjREVFUVZWhp+fH0OGDMHPz08M8WxgVHbi169fJzExkevXr5OVlYVMJkNbWxtnZ2dcXFzo0KEDTk5O2Nvbo6+v33pXmpsAhQCl1XAhR2kGcyoLbj1QirOGFoEq0ddOH4IcoX8H6OMApuKGbaNQU1NDbm4umZmZpKenk5aWRnZ2NkVFRUilUgwNDXFxccHd3R0PDw8xjL0RkUqlJCQkcPjwYU6ePImxsTH9+/fniSeeeKzGZbdu3WL37t1ERkbSvn17xo8fT+/evR/q+hkZGbz77rtkZGSwfPnyh359i6OmBtJvwMWzcPMSlDxo2vZoaoGLJ3QLAq/u4o7fIyKKv1aGgIACOWlEcJlwUjmElLLHvAsoQRM92hNIZ57FlaEYYI2Ex5Ov9ripqqri7NmzbNq0icrKSubPn0/v3r3r/Pri4mLCw8MJDw/Hy8uLyZMn4+Pj89AOZfUhNzeX6OhoIiMjSU9Px9HRsdZS3dHRsdGv3xZQmSJkZ2eTkpJCcnIyKSkp3L59G6lUiqamJu7u7jg7O+Pu7k7Hjh1p166duLv3GJApIK8MzmTDhbtwKReSC5UC8FGWzSS//aOpBvZG4GMJXW2hlx24mdMKba6aJ6pdm9u3b5OWlkZKSgq3bt3i3r17yGQy9PT0cHJywsXFBVdXV1xdXbGzsxMXWhqYwsJCIiMjiYyMJCUlBQ8PD4KDgwkICMDKyuqxGFPdvXuXvXv3sn//foyNjRk3bhz9+/d/qLq7CQkJzJ07FzMzMxYtWoSnp2frFoAKBeRkwbV4SIyH3OzHnweopg6GxsrcPt8+4NJJ+TuRR0IUf8hn/2kAACAASURBVK2YPK5yle/J4AQ5JKBA1sgiUA0JYEkX2hOIJ89iSze0MGjEazYtMpmMixcvsnHjRrKyspgxYwZhYWF1DikpKCggPDycHTt24O/vz4wZM/Dw8Gj04u3l5eVcvnyZI0eOEBsbi76+PgEBAYSGhuLu7i4Kj0dEoVBQVlbG7du3ycjI4NatW6SkpJCdnV0b0qkSep6ennh5eaGnpydOOpsIhQA5pXAuG67kQXoR3CmB26XKMFFQFmFH8rtRjITfRd4ff6enCVYG4GAEHYyhUzvoZgOuZm2nfl9zRSqVkpeXR1JSEomJiSQlJXHnzh2qq6vR19fH0dERDw8PHBwc6NChA87OzmhpaYnfywbi1q1b7N+/n5MnT1JRUYG/vz/9+/fH19cXU1PTRr/PhYWFRERE8NNPPyGRSBg3bhyhoaEP5QR64MABFi1aRM+ePZk7dy7t27dv/eNlyQNIvQ6JFyEzGR7k/7Yy1ogaQSIBHX1wcAb3LuDVA9rV3bBH5N8RxV8rR0YVyRwgmf3c4yr53KCGyt/+2hDPV7k+LkGddnhiSWdcGYI7T6CLaavd7QPlBP/mzZts2rSJK1euMH78eMaOHVtn4Xb37l3Cw8PZuXMnwcHBzJ49GwcHh0ZdBZXJZLW5GEePHqWwsJCuXbsycuRIvL29H8tuY2tFKpVSWFhIdnY22dnZpKWlkZycTE5ODiUlJVhYWODq6oq3tzc+Pj54eHigpqYmTiybEYIA1XK4dg9uFkBSIeSXK41hKmugSq4sHF8tA3U15c6epjroaIC+JhhpK4Wfswl4WChz+ozE6KRmiWqBJjk5matXr3LlyhWysrIoLi7GwMAAKysrfH19cXR0xMHBAQcHB0xMTMTv6yMil8uJi4tj7969XLhwASMjIwICAggKCsLNzQ0Dg8ZdLC4vLycqKopt27ZRVFTE888/z7Bhw7C0tKzT6wVBYMuWLaxZs4bnnnuOKVOmYGNj89icuJsMuRwKcuFGgtIRNO8uFOYpO82GRCIBfUOwtFcKv05+4OyhzPcTaTBE8ddGqKKIVI6QyiEKSaWY25STh4wqfg9CqtvzliBB+G2dWx8rTHDAmPa4MRQ3nkAfi1Yt+lRkZWWxceNGoqOjCQsLY8qUKXXOHcnMzGTbtm38+OOPPPnkk7WhJI05gOTm5v7J0MXV1ZXRo0cTEBCAqalpo123tSIIAhUVFdy/f5+8vDyysrK4efMmycnJ3L17l8rKSmxtbencuTNdu3alW7duD2UAJNL0CCjFX24Z5P0mAqtkSiGorgbaGqCroczfs9RXCj8TbeXfRFoWcrmc3NxcLly4wIULF7h8+TJ5eXkYGhpib2+Pt7c3HTt2xNLSEisrKywtLdHU1BTFYD1RFWTfvXs3N2/exNXVlUGDBuHv79/ohjxSqZS4uDi++eYb0tPTGTVqFCNHjsTe3r7Or1+2bBm7d+9mxowZjBo16rE6cjcpshq4nwc3LsGtRCi6D8WFUFbK7/EPddUOfzhWRxeMTMHEHOycwMMXHFxAW0yObgxE8dfGkFFNLhdJ5wQ5XKCEO1RTgpQyqilFRgVyav4SHqqGBupoo40h2hihhQG6mGFDV1wYhAN90ECnVRZt/zsKCgrYtm0b+/fvJygoiOnTp9ephpAgCGRmZvLll1+ya9cupkyZwpw5c9DV1W20gaOiooKUlBQOHTrErl27MDQ0ZOTIkYwaNQorK6vWv2LZgMjlckpKSigsLCQ/P5/09HSuX79OUlISOTk5SCQSXFxc8PPzo0ePHvj6+j5UTomIiEjTIwgCpaWlXLx4kXPnzhETE0NOTg4aGhrY29vj4eFRu5hjbm6OhYUFenp6jyV3rbWRm5vLgQMH2Lt3L/fv36dnz56EhYXh4eGBpaVlo41PCoWCxMREvvrqK2JjYwkLC2PcuHE4OTnVaSwuLS3lrbfe4vz588ydO5dhw4ZhbGzcNgQgKPMBK8ogIxnSritzAyvKlM6g1VVQVakUisL/SzWSqIGGBmjpKN06tbVBVx8srKBDR+Uun5kViN+lRkUUf20YOTUUkcE9rnGfZIrIoJQ7VFGEjCoUKJAgQQ0NNNFDH0tMcMYMJ6zxxRIv1NFuM4JPRXl5OT/++CM7duzAz8+PmTNn4uLi8q+vEQShVvitWbOGAwcOMHPmzEarGSQIAgqFgpycHGJjY/nmm2+4ffs2wcHBzJo1CxcXl9afp9BAVFdXU1JSQnFxMffu3asNEbt27RpFRUWYmZnh7e1N79696d69O05OTuIkUESkFSGXy0lJSeHs2bOcPXuWy5cvU1FRga2tLZ6envTo0QM3NzfMzc0xNjbG0NCwdRcDb2AEQah15Ny/fz8SiYQhQ4YQFhaGo6Njo7mxCoLAnTt32LRpE//73/8ICgpi3rx5dOjQoU6iMzc3l9dff53s7GzmzZvHgAEDGj1stVkiCFBTDTm34W4mFN6D+/egrFhZN1DxmwBUUwMNLTAwBFMLMLUEa3uwdlCGeooL0Y8NUfyJ/C0K5MioRoIamojb7iqqq6s5duwYn376Ke3bt2fWrFn4+Pj862tUbo8qq+jz58+zYsUKRo8e3SirmoIgUFZWxq1bt9i8eTN79uzB19eXt956ix49erRud7JHRNXnVVVVUVZWRmlpKbdu3SI+Pp4LFy5w9epVANzd3enduzeBgYF4eXlhYmLSlM0WERF5jOTk5BAfH090dDTnzp0jJycHIyOjP+36Ozk5YWBggIGBAbq6umKERR2oqakhMTGRbdu2ceTIEWxsbJg4cSLBwcG0a9eu0YzQCgsL+eGHH/jiiy/w8fFh6dKlODk51WmBNDk5mTlz5iAIAnPnziUgIOCx1TFsMdRIldGdmprKnD6RJkcUfyIidUQul3PhwgXee+899PT0ajv6f0MQhFqTlVmzZpGRkcHXX3/NgAEDGmW3T2U6cuDAAVatWoWmpiavv/46L7zwguha9w+odmWrqqqorKykvLycK1euEBUVRUxMDKmpqZibm+Pv70+/fv0IDg7GxsZGFNEiIiJUV1eTnJzM2bNnOXbsGFeuXKnN9+3Rowd9+vSha9eumJiYoKuri66urhh18R+Ul5cTHx/Phg0biImJoVevXrz22mt06tQJY2PjRhHS5eXlHDlyhHfeeQdra2vWrVuHu7t7nfr5M2fOsGDBAhwdHXn11Vfp1q2bOD6INGtE8SciUgcEQSAjI4PXXnuNiooK3n33Xfr37/+vg5BKjF27do2pU6dSXV3Nd999h6+vb4O3TaFQUFpaSlxcHB988AE3btxgzJgxvP/++20nEf0hUO3GSqVSpFIpRUVFnD59mhMnTnDixAmKi4txcXFh4MCBhIaG0qtXL7EUg4iIyH+Sn5/PhQsXOHHiBKdPnyY1NRU9PT38/PwICgpi4MCB2NnZoa2tjZaWlmga8y+UlJRw9OhRVq9eTVZWFs8++yxvvPEGVlZW6OjoNPh9UxWlnzZtGnK5nG+//RYfH586Cblff/2V5cuX4+vry8yZM+ncubMY/i/SbBHFn4jIfyAIAg8ePGDatGmkpaXx4YcfEhoa+q8hKKqdpNjYWKZOnYqRkRE//vjjf+YGPmy7QLnynJmZyerVq/npp5/o2rUrq1evpkePHg12rZaO6l7J5XJkMhmVlZWkpaVx8uRJjh07xtmzZ5FIJPj4+DB48GCGDh2Kr6+vOCkTERGpN9XV1aSnp3P8+PHafqa8vBwHBwcGDBjAoEGD6Nu3Lzo6OmhoaNSKDLHf+R1BECguLmbHjh2sWbMGNTU1Xn/9dV588UV0dXVRV1dv0PulStGYOHEiWVlZ7Nixgz59+tQpN3/btm2sXbuWvn378tprr+Hk5CSG+4o0S0TxJyLyH1RXVzN79mwiIyNZvnw5w4YNQ19f/x+PV+XcRUREMHv2bLy9vQkPD8fCwqLB2qTa7cvPzyc8PJw1a9agq6vL/Pnzefnll8UBh9/DORUKBXK5nMLCQuLj4zly5AhRUVEkJydjYmJCUFAQQ4cOZfjw4XWu9SQiIiLyMAiCQHl5ObGxsRw+fJhDhw7V9kGBgYEMHjyYYcOGYW5ujpqaWq2oEYWgEoVCQV5eHitXruSbb76hc+fOrF69mj59+jS4aBYEgaKiIl566SVOnDjBpk2bGDly5H8KTYVCwYYNG9i0aROhoaG1u5TiMxRpbvyb+KudPDXlT7du3QQRkaZCLpcLCxcuFGxsbIStW7cKRUVF/3q8QqEQ8vPzhU8//VQwNzcXXnrpJaGioqLB2qNQKASFQiEUFhYKP/zwg+Dj4yNYWFgI7777rlBcXNxg12mpKBQKQS6XCzKZTKioqBAuX74sfPrpp8LQoUMFMzMzQV9fX+jatavw5ptvCkePHhWqq6ubuskiIiJtELlcLqSmpgqff/65MGjQIEFXV1fQ1NQUunbtKixYsEA4ffq0UFFRIchkMkEul9f2/W0duVwuxMfHC/369RPU1dWFcePGCVlZWYJMJmvQe6RQKITq6mph5syZgoaGhvDJJ58INTU1/3mNyspKYfny5UKXLl2E9957TygpKRGfm0izw9XVtVD4B93V5MJPEMWfSBOiUCiEbdu2Cebm5sLq1auFgoKCfz1WoVAIGRkZwpw5cwQLCwvh/fffF+RyeYO1RaFQCJWVlcKpU6eEp556SjAxMRHGjBkj3Lhxo0Gu0VJR3RuFQiHk5OQIv/zyizBjxgzBzc1N0NTUFKysrIQRI0YIGzZsEJKSkpq6uSIiIiJ/QqFQCGVlZcK+ffuE6dOnC/b29oKamprg4OAgjB07Vti2bZtw586dPwmcti4oFAqFsHfvXsHJyUnQ19cX3n33XaGoqKjB741CoRA+++wzQV1dXXj11VeFioqK/7xGUVGR8MEHHwheXl7C0qVLherq6jb/vESaF/8m/sSwT5E2zdGjRxkzZgyTJ09m/vz5/xq2KQgCV69e5aOPPuLcuXO8/fbbzJgxA2iYUBS5XM7FixdZu3Yt+/fvp0uXLsyfP5+hQ4c22DVaKsnJyezfv5+DBw8SFxdHdXU1nTt3JiQkhKFDh9K1a1cMDQ1rj2/L90pERKR58sf5liAIXLlypTY8ND4+HplMhq+vL6GhoQwZMoQuXbo0Wv27loIgCFRWVrJu3TqWLVuGubk5CxcuZPTo0f+amlGf6/z8889MnDiRAQMGsGXLFszNzf9xLBEEgfz8fNatW8fPP//MpEmTeP3118WxR6TZIOb8iYj8DTdu3CAkJISgoCDWrl37rx29TCbj+PHjLF26lLKyMpYvX86gQYMarKNPTU1l48aN7Ny5E1NTU2bOnMn48ePR09MD2p6Yqays5Ny5cxw8eJBff/2VzMxMLC0tCQgIYNCgQYSEhGBnZ/cnp7W2do9ERERaLv9/7pWTk8OZM2c4ceIEx48f59atW5iamtKzZ0+GDBlCcHAwHTt2bJO53qp7lZ2dzZIlS/juu+/o1q0b77//Pr17964dJxviOjExMYwaNQpra2vCw8Nxc3P7R0dPQRDIzs5m/fr1HDhwgDfffJOJEyc2SFtERB4VUfyJiPw/cnNz6devHxYWFuzatQsrK6t/HFQrKyv56aef+OSTT7C3t2fp0qX4+Pg0yCBcWFhIeHg433zzDdXV1UycOJGJEydiZ2fXpowAVKuohw8f5uDBg0RERFBeXo6Xl1ftKni3bt3Q19f/031pK/dHRESkdfPHkKzq6mpSUlKIiooiIiKC2NhYKisrcXZ2JiQkhMGDBxMQEICBgUFTN/uxIvxm7nXmzBkWL15MQkICw4cPZ968eXh5eTVI3T1BEEhJSWHMmDGUlJSwefNmevXqhba29j8en5yczOeff05UVBQfffQRTz311CO3Q0TkURHFn4jIbwi/lWcYNmwYWVlZHDp0CBcXF9TU1P5WSBQWFvLVV1+xbds2evfuzbvvvlt7/KMgk8nYt28fn3zyCVlZWYwYMYKXXnoJLy+vOtlNtwZkMhmJiYlEREQQERFBTEwMWlpaBAYGMmjQIIYMGYK9vT0aGhqoqanV3vO2cG9ERETaLioR+EcX44SEBI4fP86ZM2e4evUqurq6+Pv715atcXd3b+pmPzZU9Vv379/PqlWruHv3Ls888wzTpk2jU6dOjzw+KxQK7t27x5QpU7h8+TLLly/nySef/McQXIVCwdWrV1m5ciU3btxgw4YN9OrV65HaICLyqIjiT0SE30NHpkyZwr59+9i3bx/dunX7R2vnO3fu8Mknn3Do0CFGjBjBq6++io2NzSMPLLGxsaxatYqYmBgCAgKYPn063bp1Q09Pr1UXjFVNYs6fP8+RI0c4cuQIOTk5WFtb1xZGHjBgAHp6emhqatYWRhbFnoiISFtGJQJlMhlVVVXcvn2bM2fOcPz4cU6dOkVVVRXOzs4MHjyYIUOG1JZGaM19pyAIyGQy8vPz2bFjB9u3b0cikTBx4kTGjBmDg4PDI51foVBQXFzMO++8w/79+5k5cyYvvvgi1tbWf3u8Kmd/8eLF3L9/n+3bt7cpQS7S/BDFn4gIysFi6dKlrF69ms2bNzNixIh/HCCvX7/OihUrSExMZMKECYwbNw4zM7NHEn5ZWVl88cUX7Nq1C0dHR2bOnElQUBAWFhatdrevsrKS1NRUoqKiOHnyJPHx8bXhSwEBAfTr1w9/f3+0tbVrf0Dc3RMRERH5O1Q7gtXV1VRXV1NWVkZ8fDwnT54kNjaWpKQkTExM6Nu3LyEhIYSGhmJtbd1qcwUVCgWVlZWkpaURHh7O/v37MTc358UXX2TkyJGYmf19mbO6IAgCJSUlfPXVV2zevJmQkBBmz56Nu7v7X8YoQRCoqakhPj6eefPmoaOjw3ffffePYlFEpLERxZ9Im0ehULBr1y6mTZvGwoULmTFjBrq6un8rMk6dOsWKFSuoqKhg6tSpPPHEExgaGtZ78KysrGTr1q1s2LABQRCYNGkSw4cPx8HBAR0dnVY3KOfm5nLhwgWioqKIiYkhMzMTfX19vLy86N27N4GBgdjY2KCnp4euri7a2tqi2BMRERF5SFTzt6qqKiorK2sX286ePcvZs2dJSEhAU1MTT09PgoKC6N+/P97e3v849rVkZDIZpaWlJCQk8N1333H27Fnc3d2ZMmUKQ4YMQUtLq17nFQSB0tJSdu/ezfr163FycuKNN97A39//L5E6KmfS6Oho5syZg7e3N1u2bGkwQxoRkYdBFH8ibRqFQkFcXBxjxoxh8ODBLF++HBMTk78d/Pbu3cvHH3+Mnp4eM2bMYMCAARgYGNR7oIyKimLFihUkJSUxcOBAJk+ejLu7O8bGxq0mxFMqlXLz5k3OnTvHqVOnSExMpLKyEhsbG7y9vfH398fLywszMzMMDAwwNDREQ0OjqZstIiIi0qpQ7T6VlZVRWlpKfn4+cXFxxMXFcenSJUpLS7G1taVbt274+/vTs2dP7O3tG8QopblQVVVFfn4+58+fZ9euXVy7do0ePXowadIkAgMD633ekpISTp48ybp165BIJMycOZPBgwf/xQhGJRYPHz7M22+/TVhYGB9//LE45ok8dkTxJ9JmUSgUpKamMnHiRAwMDNi8eTMODg5/EXNyuZytW7eyceNGOnXqxIQJE+jRo0e9hJ8gCGRlZfHZZ59x+PBh3NzcmDx5Ml26dKk1MGnpq67FxcXExsYSExNDTEwM2dnZaGlp4eTkhLe3N35+fjg6OmJiYoKJiQn6+vqtbodTREREpDkjl8spKSmhqKiIwsJCkpKSuH79OtevXycjIwNNTU1cXV3p1q0bffr0wcvLq1XUFRQEgfLycjIyMjh58iS//vorRUVFDB8+nEmTJtG+fft6nbesrIy4uDi++uor7t27x4QJE3jmmWf+cs8UCgVFRUX8+OOPrFixgldffZV58+Y1xFsTEakzovgTaZOoHLtmzZpFUlISmzZtokePHsCfc8qqqqpYu3YtP/zwA4GBgYwdOxYvL6+HDtVQhXzs2rWLLVu2UFVVxejRoxk4cCDu7u7o6Oi0aNGXkZFBbGws58+f58qVKxQVFWFqakqHDh3o1q0bLi4uWFlZYWFhgampqRjOKSIiItJMUAmiBw8eUFBQwJ07d0hMTOTmzZukp6dTUVGBlZUVnp6edO3aFR8fH1xdXVt0hIpcLufBgwckJiZy/Phxjh49iqGhISNHjuT555+vl9CtrKzkypUrbN26lZs3b/LEE08wfvz4v+T2KRQK8vLyaucWH3/8MU8//XRDvTURkf9EFH8ibQ5BECgqKuKjjz5i3759tVbN/z/0oqioiE8++YQ9e/YwdOhQxo0bh7u7+z/W9Pmna8lkMk6dOsWOHTu4ceMGXl5ejB49mq5du2JhYdHiRJAgCMjlclJSUjh37hxxcXHcunWL8vJyLC0tad++Pb6+vjg4OGBtbY2trS2GhoYteqIgIiIi0laQSqU8ePCAvLw87t69y61bt0hJSSE7O5uCggI0NTVxcXGhc+fO+Pn54evri76+flM3u17U1NSQm5tLfHw8hw4d4uLFi3Tu3JkxY8YwaNCgh45KkUql3Lhxg507dxIXF0efPn148cUXcXV1/dNxcrmc9PR0PvjgAxITE/nyyy/x9/dvcfMBkZaJKP5E2hQqh67NmzezceNGpk+fzssvv4yuru6fjrt37x5r1qwhIiKCp59+mueffx4nJ6eHyn+QyWSkpaXx008/cfz4cdTV1Xn66acJCgrC09OzRZUqUFlbJyUlceXKFS5dusTt27epqqrCxMQEZ2dnvLy8sLe3x9HRETs7O3F3T0RERKSFo1AoKCsrIy8vjzt37pCZmcmtW7dIS0ujsLCQmpoaHBwc8PDwwNvbG29vb2xtbZu62Q+FIAhIpVKSk5OJjo7m2LFj5OfnExQUxHPPPUfnzp0faiyTy+Wkpqaya9cuoqKi6NixI5MmTcLPz+8vx12+fJl58+ahra3N2rVrcXZ2FsdNkUZHFH8ibYrS0lL27dvHxx9/zMCBA3nrrbewsLD40zGZmZl8/vnnnDx5kueee45x48ZhY2NT550ruVzO/fv3OXr0KAcPHiQzMxN/f39CQ0Pp169fi3H3qq6uJjc3l6SkJG7cuEFSUhI5OTkIgoC2tjbu7u64uLjg7OyMs7MzdnZ2gFiKQURERKS1UlNTw/3790lPTyc9PZ2UlBTS0tIoKipCKpViY2ODm5sbbm5ueHp64u7u3mJy2VXpGapdwOjoaKysrBg6dChPPfUUZmZmdX4fqvz+vXv3cuTIEczNzXnppZcICgr60znkcjnHjh1j/vz59OjRg2XLlrXIiCCRloUo/kTaDBUVFZw5c4YVK1ZgaWnJRx99hLOzc+3fBUEgKSmJdevWce7cOcaPH8+ECRMwNTWtU+iHyskrISGBw4cPk5CQgImJCaGhoQwdOrRWHDVXBEGguLiYrKwsUlNTSU1NJSMjg7y8PARBQEdHBxcXF9zc3HB3d6dTp04YGxs3dbNFRERERJoAhUJBeXk56enpJCUlkZSUREZGBgUFBSgUCgwNDenUqRPOzs64ubnh4uLSItysFQoFBQUFREREcOTIETIyMujTpw+DBg0iICDgoaJa7t27R0REBLt370ZTU5PJkycTEhJSG0Wkqs24Y8cOPvroI8aPH88bb7zxSE7iIiL/hSj+RP4WAQUK5IAEdVq+DXFVVRWXLl1i7dq1FBQU8OGHH+Lv71/7d0EQuHz5MuvWrSMhIYGpU6cyYcIE9PT06tQBq2oonTx5ktOnT1NUVERAQABhYWH4+vo22068urqa/Px8srKySE9P59atW2RmZlJYWIhMJsPU1BRXV1c8PDzo1KkTrq6u6OjoNHWzRURERESaESoRc+fOnVrX0MTERHJzc1FTU8PQ0LBWADo4ONC+fXtsbW2btdmZIAgkJyeza9cuTpw4gZaWFkOHDqV///54eHjUeUezqKiIqKgoduzYQXl5OVOmTGHo0KG1UUCqsNNVq1axdetWFi5cyLhx49DS0mq29+ahkMsBAdTUoTW8n1aAKP7aMArkVFFMBflUUkgVRUgpQ041cmqQU4MECepooY4mmuihjQm6mKCPJfpYIkEdCc37y1xTU0NSUhJff/018fHxvPPOO4SFhQHKTlcl/NasWcP169d59dVXeeGFF9DU1PzPjrempobs7GxiY2M5efIkN2/exNXVlSeffJLQ0NBmKZTKysrIycnhzp07ZGRkkJycTGZmJvfu3UNNTQ17e3s6deqEt7c3np6e2NnZtY4BSERERETksVFQUMD169e5fPkyV65c4e7duwiCgJ6eHo6OjnTq1KlWBNra2mJiYtLsdgVVBmfHjx9n586dJCUl4enpybBhw+jZsyfW1tZ1qtNXUVFBXFwcGzZs4O7du0yfPp3hw4fXRs+oIm/efPNNYmNjWblyJSEhIS0jZFYQlAKvvARKi6GqAirLoUaq/L2sRnmchoZSAGpqgY4e6OqBviHoG4GWFkjEkk+PC1H8tTEUyCnnHiVkU0oOD0jj/v+1d9/xVZb3/8df1xnZe5IEsiAsQwgkLBlBCCAgKkLdE3+toxUnVnFRWqXOqt+2riq1VKGKqyIyhKSIBgHZm0AgECAhZO/knOv3x30SUUCBjHNCPk8e58E59znnvq+TKznnfp9rsYdicijjEJXkU0sZNupPepbCiieeBOFPNP5EE0wPwuiNL5H4E40PEZiwuFwQtNvtHDx4kH/9618sWrSIadOmcccdd2AymZpm4tywYQMvv/wy2dnZPPDAA1xzzTW/2M1Ta01hYSHbtm1j+fLlZGVl4e3tzaRJk7jyyisJDw9vo1f4y7TWFBUVkZ+fz7Fjx8jJyWHbtm3k5ORQWFiIt7c38fHxJCUlkZKSQo8ePaQ7pxBCiBZTW1vLvn372LhxI+vWrSM7O5vS0lJ8fX3p0qULa3x2WAAAIABJREFUvXr1IiEhgU6dOhEaGkpoaOgpE7E5W3FxMR9++CEfffQRZWVlXHrppVxyySX06dMHf3//XzxvqKurY9euXbzwwgvs2LGDu+66iyuuuOJH8w4cOnSIO+64g4qKCl566SWSk5NdcxF4rY1QV1YMJSegtAgKjsDxI1BUCCWFUFXxQ/BrZLGApzf4B0NAMIR0gtAICAwB/yDwCwIPT5C1f1uVhL8OooFaysmjmBwOs4YcVnKUDdRQ2hTYNPaz2JPChBk7DZgwE0YS3RhHNMMJpht+dMGCh0uEQK01+fn5LFiwgPnz5zNx4kR+//vf4+7ujtaa2tpa1q9fz+zZsyktLeWZZ55h1KhRv/gtW0VFBQcOHCAjI4MlS5ZQVlZGWloav/rVr+jbt28bvbozawy1RUVFnDhxgoKCArZs2cKWLVvYs2cPFRUVREREkJiYSGpqKoMGDSIyMtI1P2CEEEJccI4dO8bmzZtZt24dGzdu5PDhw1gsFiIjI+nevTvJycnExsYSFBREcHAwfn5+57zsQmvJzs7mrbfeIiMjg6CgIKZOncrgwYOJjY3F29v7Z88hbDYbhw8f5plnnuHrr7/mzjvv5Oqrr/7RWoCbN29m2rRpdO/enaeeeopu3bq5zuez3Q611VBcaAS9/btg7zYj+Gm7EdrsZ3MuCSiz8RyFEQRju0N8b4iMgaBQo1XQ7CKv+wIj4e8CZ8dGOUcpZAc7WMgOPqaGYrTj3uZSmNBozFjpxVUkci3h9MGXKMy4OTUElpSUsHDhQubOncuAAQN48sknCQoKQmtNVVUV3333HTNnzsRsNvPqq6+SkpLys/urr6+noKCANWvW8OGHH5KdnU3//v25/vrrufjii3Fzc2ujV3aqxjBbUlJCSUkJeXl5TR+qW7duxWw2ExcXx5AhQxg6dCj9+/f/xQ8pIYQQorVVVVWRnZ3NmjVr+O6779ixYwfl5eUEBQVx0UUXkZKSQnJyMoGBgQQEBODv7+/0MKS15ptvvuHNN99k8+bNJCYmMnXqVFJTUwkLC/vZ9YAb1xqeM2cOH330EbfeeivTpk370aRwX3zxBdOnT2fSpEncf//9dO7c2bldYrX+IfQd3Aub18C+7Y7xfApogbygMAJhWCT0GQA9+kJIhBECXST4Xygk/F3AaimnmH2s4+9s5X0aqMVOQ6sdr3H8Xy+uIoU7CKcPngRicsKEMVVVVXz++ee89dZbREdHM2vWLKKjo7Hb7ZSXl/PNN9/w6KOPEhgYyOuvv07Pnj3PuK/GNe727t3L/PnzWblyJdHR0UybNo3Ro0fj5+fXhq/M0Di4vrq6moqKCsrKyti3bx+rV69m/fr17Ny5E29vb/r378/IkSMZNWoUcXFxLvPNqRBCCPFTdrud4uJiNm7cyNdff823335LTk4O7u7uXHTRRQwYMIARI0YQFhaGj48PPj4+Tp00pqamhs8++4x33nmHI0eOMHr0aK666ioSExPx8/M7Y0htnOTltdde4/nnn2fy5MnMnDmTiIgIwFgy6fXXX2fOnDncc8893HjjjYSFhTnnM7yhHspLIHs7rM2EA7uNMNhqGUEZE8MEBkPKcOg3FAJCwN315lBoryT8XWC049uXaorZyUIyeJJqTmBrxdD3Uwoz7vgyiOn04XoCiG3TVsC6ujqWL1/O3/72N7y8vHjiiSfo27dv04fKsmXLeOKJJ+jduzdvvPFG05vt6VRXV5Ofn88HH3zAv//9b9zd3bntttuYPHnyzz6vNTR256ypqaGqqorCwkK+//57Vq9ezdq1azl27BidOnXi4osvZvTo0YwZMwZfX19p3RNCCNEu1dXVkZOTw8qVK8nMzGTdunVUV1c39WS55JJL6NevHx4eHnh6ejYFwbb+3Dt27BgLFizg/fffp6GhgalTp3LllVcSHR2Nl5fXGUObzWZjwYIFzJgxg+HDh/Piiy8SERHR9Pgnn3ySefPm8eSTT3LllVcSGBjYdq9Na6irhUP7IOsr2LnBuN2W2cBigdBIGH0l9Ew2JoqRc5pmk/B3AdFoNHYqKeArHmEz/6LFmuPPmXHcrlzKUGbQhcFY8Gz1AGiz2Vi7di0vvvgi1dXVPPzww6SlpWGz2SgoKODDDz/k+eefJz09nVdffRVfX98z7qeiooKlS5fy3HPPUVBQwK9+9Svuuusu4uLi2qz7hd1up6Ghgbq6Oqqqqjhw4ACrVq1ixYoVbNq0Ca01CQkJpKenM3r0aAYNGtS0fpAQQghxodBaU1FRwTfffMPy5ctZsmQJR44cITw8nCFDhpCWlsbIkSPx9/fHzc0Nd3d3zGZzmwbBPXv28M477/DJJ58QEBDAzTffzJQpUwgMDDzj0g1aazIzM7nllluIj4/n7bffJiYmBrPZTENDA7/73e9YuXIlzzzzDJdeemnbrAGotTFj54bV8O0yyM9r3eP9LGVMAjNwJIy6Enx8ZWbQZpLwd4FoDH4l5DCfKyhkNxqbs4uFwoQ/0aTxBL2Ygjt+rRYAG9fk+eMf/0hubi73338/kydPxmazcfDgQd58803mzZvHzTffzB/+8IfTjtFr7Iqxa9cunnrqKTIyMhgxYgRPPfUUSUlJrT6ur7E7p81mo6GhgYKCAjZu3EhmZiarVq1i//79BAUFMWTIEMaMGcPIkSOJi4tr1TIJIYQQruTkZZqWLFnC0qVL2bRpEyaTiT59+pCWlsaECRNISEjAy8sLi8XSFARbOzjZbDY2bdrEm2++yZIlS0hISODOO+9k/PjxeHh4nPbLY60127dvZ+rUqVgsFt577z169+6NxWKhoqKC22+/nV27dvHMM8+Qnp5+TgvNnzOtjW6eSz6ArWuhqhLnNCL8hMUKnePhhnuMLqESAM+bhL8LQGPwO84O3mci5Rxt1bF958qEGQ+CuJiH6M80PAlu8QCotaagoIDHHnuMbdu2MX36dK655hqUUmzfvp2XXnqJlStXcs899/Dggw+e8qbZGLpKS0t5+eWXeeWVV+jWrRvPPPMMI0eO/NnB2y1Rdrvd3tTKt2fPHjIyMvjqq69Yv349tbW19OrVi0suuYSxY8eSmpqKt7d3q5VHCCGEaG8KCgrIzMxk2bJlLF++nIKCAiIiIhg2bBjp6ekMGzaMqKgozGYzJpOp1YNgTU0NWVlZvPrqq6xevZrhw4fzyCOP0K9fvzOu33fkyBGmTp1Kbm4u7777LkOHDsXd3Z2jR48ybdo0KioqmD17NiNGjGidSW+0huLj8Nm/YO/Wtu/m+UvMVggKgWkzjO6g0gX0vEj4a+cag18hu3mXkVRRjHah4NfIGAfowyDuZTD34kFgiwVArTWVlZX8/ve/5+uvv+bee+/lhhtuwGq1snr1ap5++mny8/OZNWsWkydPPuW5YHSv/Pzzz7nvvvsoLy/nscce484778TT07NVPhwav7VsLPvq1atZunQpX375Jbm5uYSEhDB8+HDGjRvHyJEj6dKli8stfiuEEEK4opqaGjZv3szy5ctZvHgx27ZtAyAxMZH09HTGjBlDcnIyXl5eTSGwtYJgSUlJ0xCSnJwcbrjhBmbOnEl4ePhpj1tRUcHNN9/MypUreeWVV5gyZQre3t7s3r2bu+++G6vVyuOPP86wYcNatsxaG+v1zf87HNxjLNLuikxm8AmA380yloSQAHjOJPy1Y43Br5SD/It0SjnkUi1+P6Uw4UEAA7iLoTyMG74tEgBtNhtPPPEEn3zyCdOnT+eGG27Aw8ODjz/+mOeff57AwED+9Kc/MXjw4KbnnBz6Nm3axH333cc333zDjTfeyHPPPdf0ptwSTvd3dODAAZYvX84XX3zBV199RW1tLf369WPcuHGMHz+evn374uPj0yLHF0IIITqyvLw8vvnmG1asWMGqVavIzs5uGkIxfvx40tPTiY+P/9FzWjoMFhcXs3DhQv74xz9SU1PDfffdxwMPPHDaLpwNDQ08/PDDvPXWWzz00EP89re/JTg4mLVr1/LQQw8RGRnJQw89RGpqasuUs3GM37xX4MAeo8XPFbp6nonZbCwUP/2P4OMvAfAcSfhrxzSaSgpYwJXksd4lW/x+SmHCjy4M4G4u5iFMNL/P9nPPPccbb7zB3Xffzc0334y7uztvvPEGb775JqmpqcyaNYvu3bv/6A3SbrdTUFDA7Nmzeeutt+jbty//93//1xQQW/JNX2uNzWZj48aNLFq0iC+++ILvv/8eLy8vRo4cyYQJE5g0aRJRUVE/mhFMZukUQgghmu/k89mamhqys7NZuXIlS5YsYfXq1dTW1tK9e3fGjx/PhAkTGDp0aKuM8bfb7eTn5/PSSy/x97//nZiYGGbPns3UqVNPW95//OMfzJw5k3HjxjF79mzi4uJYtGgRTz/9NAkJCcyYMYOkpKSWKBj8+xXYvQVqqpq/v7ZgNkNMD7jzcWMdQDlnOmsS/tqxKk6wiqf5jlddYnKXs6eIJJWhPMxFTP3lh/+MefPm8fjjj3PTTTdx5513YrVaef755/nss8+48sorefDBB3/Uiqe1pry8nHnz5jF79mxMJhOPPvood999d4vOCta4rERGRgZffvklX375JceOHSM2Npb09HQmTpzI2LFjT/nGTwKfEEII0XpOPrfVWlNaWkpWVhZLly4lMzOTrVu34uvry8iRI5k4cSKXX355i/UGajy2zWYjJyeHp556igULFpCens5f/vIXevfu/aPjaK1ZvHgx9913H126dGHOnDmkpKTwwQcf8PLLL5OcnMyjjz7a/InfMv4LKz+Dqorm7aetmUwwZopxkfOnsybhr52qo5JslvAhV6OxO7s450HRlbGM51VC6H5ee8jMzOT2229n/PjxPPjgg9TV1TFr1iw2b97Mb37zG2677Tb8/Pya3kgrKirIzMzkD3/4A3v37uWmm27i8ccfJzQ0tEX6+1dWVrJ7925WrFjB0qVLycrKAiApKYlx48YxYcIE+vXrd8pAcwl8QgghRNtrPM9tHIPf0NDAvn37yMjIYPHixWRkZGCz2UhOTmbChAlNn+PN/bK48bgNDQ1kZGQwY8YM9uzZw5133smTTz5JQEBA0/7tdjsbNmzg/vvvp6KiglmzZjF69GgWLFjAa6+9xuDBg3niiSfo1KnT+RXm8H54aw5UlJ3363Eqkwnu+SN06SoB8CxJ+GuHNJpCdvEhV3OcndixtdHy6S1DAwqFF8Ekci2X8jImzm0yk927dzNlyhS6d+/Os88+S0FBAU8++SQVFRU8+OCDTJo0qWmx19raWrZs2cIrr7zCkiVLGDFiBE888QQXXXQRVqv1vN/A7XY7R48eZc2aNSxfvpyvv/6agwcPEhQUxNChQxkzZgyjR48mPDwcs9ncNMOYEEIIIVxPYwhsXHKpvLyczMxMli5dyrJlyygoKCAsLIy0tDTGjh1Leno6oaGh5z0hW+OxampqmD9/Pk888QRms5kZM2bw61//umnSObvdTk5ODjNnzmTz5s3cc889TJ48mU8++YS3336bkSNHMmvWLPz8/Jr2bbfbqaysZOfOnQwcOPD0BbDb4bXZkJsNDfXn9RqcTimIioN7ZoPZIgHwLEj4a4cqOMZ63mAVf8JOgyNMtR8/lFfRib6M5hkSGH/Wz8/Pz2fy5MlorXnjjTfYtWsXc+bMITQ0lBkzZjBixAjc3Nya1v17++23WbhwIZGRkfzud7/jsssuw8vL67zerBuDZGZmJitWrGDr1q3Y7XYSEhIYNmwYaWlppKSk4OnpidVqxWKxSOATQggh2pnGc+D6+noaGhqaPv9Xr15NRkYGGzduxGKx0KdPn6almHr37n3OSzE1Hqeuro5jx47x3HPP8f7775OYmMiTTz7J8OHD8fDwaJqr4M9//jNLly5l8uTJXHPNNaxYsYJ58+Zx+eWX89hjj2GxWCgsLGT+/Pl8+umn2Gw2Vq1adfqDr/sffDIXaqub9bNyHkdOMZnhV3dA6nDjuvhZEv7aGY2dPNbyIddQSq6zi9NsVrzpwWVcxXtn1fpXU1PDtddey+7du5k7dy6bNm3i5Zdfpn///tx3330kJydjtVo5dOgQCxYs4L333gPguuuu48YbbyQkJOScF0ctKioiKyuLjIwMMjIyyMvLIygoiH79+jF8+HAGDRpEdHQ0bm5uuLu7N6s1UQghhBCup7FbaF1dHbW1teTn55OVlcXq1atZs2YNRUVFhIeHM3DgQEaMGMHgwYOJj48/py+a7XY7FRUVbN26lWeffZa1a9cyevRoHnzwwabeSiUlJbz99tvMnz+fpKQkrr76ajZs2MAHH3zATTfdxMSJE5k5cyYrV66krq4Od3d3Vq5cSUpKyo8PZrPBS49A/mHQ7XH4EPwwI6mC0Ai4fw64eUjr3y+Q8NfOlHOUjbxNJn9w6WUdzp4ilN6M5xXiGf2zj7Tb7UyfPp1PP/2Uv/71r2RlZfHxxx8zefJkbr31Vrp160Z1dTWLFi3i3Xff5ciRI4wZM4brr7+e7t274+vre9atcHv37uV///sfGRkZrF+/npqaGhISEkhNTWXo0KH06NGDgIAAvLy88PDwaJ3FVoUQQgjhkmw2GzU1NVRVVVFWVsbOnTvZsGEDa9euZc+ePdjtdrp168aQIUNIS0tjwIABZ90qWFdXR1FREcuWLeNvf/sbJSUlXHXVVdx+++3ExcVRUVHBokWLmDt3LlarlUmTJnHo0CHmzp2Lv78/ubm51NTUAODl5cWdd97Jiy+++OODbPkO5v/NsazDBcBkhut/C0mDjO6f4owk/LUzh/mOxdzDEdY5uygtxpNAErmGibz2s4976aWXePbZZ3nkkUfYtGkTX3/9NbfffjvXXXcdkZGRZGVl8c4777B161aSkpKYMmUKgwYNIjg4GKvVesb9aq2pra1l06ZNTd05c3Nz8fb2plevXvTv35/BgwcTHh6On58fvr6+uLu7S3dOIYQQQmC326mtraWyspLy8nLy8/PZtm0b69atY9u2bRQUFBAcHEy/fv0YOnQoAwYMoEePHr+43/Lycg4fPsxnn33GRx99hJubG1OmTGHq1KkEBgayatUq5s6dy5EjRwgODmbJkiXY7Xbs9h9a8kwmE5GRkezYsQNfX98fdv7mM7B3qzHu70LRPQlufRDcPZxdEpcm4a8dqaOSnXzC5/yaBmqcXZwWozDTib5cx+f4EXnK/VprvvjiC+666y6mTJlCTk4OO3fuZPr06VxxxRUUFxfz73//m1WrVhEeHs4VV1zBsGHDiIqKOuO3bHa7nRMnTrB27Vq+/fZbsrKyOH78OCEhIfTo0YMBAwaQmJhIUFAQgYGB+Pv7Y7FYpDunEEIIIX5WQ0MDFRUVlJSUUFhYSE5ODps3b2bPnj3s3bsXpRTdu3cnJSWFiy++mAEDBpxxyIjdbqewsJDt27ezcOFC1qxZQ3R0NNdffz2DBw9m7dq1vPbaa6xfv57S0tLTlsfDw4N58+b9sJ5gcSG88BDUtNexfmfg5g7T/wThnY1ZQMVpSfhrR4rIZg2vsI6/t9PlHc7MnxjG8CyJXPOj7Vprtm7dyi233EJUVBRlZWWUlJTwwAMPkJKSQmZmJv/973+pq6tj3LhxXHLJJfTs2RN/f/9TWuZqamrIyclh/fr1Td/GlZeXExUVRXx8PKmpqcTGxhIaGkpYWBi+vr4tsgSEEEIIITomu91OdXU1xcXFnDhxgiNHjrBr1y62bdvG/v37KSsrIzIykv79+zNo0CAGDhxIcHDwKecedXV1HDp0iO+++47Fixdz8OBBevfujc1mY/HixRw9evSMZTCbzYwdO5bFixcbG7K+MiZ6sV0Iw4dOYjLBpJtg8GgjCIrT+rnwJx1mXUw5RznCejTOD+UtrY5SDrLqR+FPa01eXh6PPfYY9fX15Obm4u7uzowZM9BaM2fOHA4ePEj//v1JT08nNTWV8PDwpvF3NpuNoqIiduzYwcaNG9myZQuHDx+mrq6O0NBQUlJS6NevH9HR0URERBAZGdm0PIQQQgghRHOZTCa8vb3x9vYmKiqKxMREBgwYwNGjRzly5Ah79+5l+/btbNiwgeXLlxMaGkrPnj1JTEwkOTmZHj16YLVacXNzo2vXroSFhdGzZ08yMjJYtmwZmzZt4vjx4z9bBpvNRlZWFtnZ2XTt2hW1c2M7nuTlZ2g77N0GqSMk/J0nCX8uxI6NSvIpZBdcgOGvlgqOsoEG6rBgLNNQVlbGnDlz2LBhA0opunTpwrhx4/j+++/ZsGEDAQEB3HzzzYwYMYK4uDg8PDyorq5m//79bN++ne3bt7Nnz56mN8WgoCAGDx5Mz5496dy5M9HR0URFRf3seEAhhBBCiJaglMJsNhMSEkJISAiJiYkMGTKEvLw8cnNzycnJYe/evRw8eJB169bh7e1NXFxcUxjs1atX02zj4eHh5ObmkpmZydn01CsrK+Ozzz7jgXunG+v6XUhj/Rpp4NA+YxIbT2+Z9fM8SPhzIXVUUEYeNZy+P/e5OL4DspdCxTEwWSBqAIQlQlE2HM4Cszt0HgJxl7RAwc+SnQbKOUo5eQToWGpqanj99df59NNPqaysJCEhgZCQEDZt2kRZWRkjR44kLS2NQYMGUVNTw+bNm9m9eze7d+/m4MGDlJWVYTKZCAkJIS0tjdjYWOLi4oiNjSUsLExa94QQQgjhVEop/Pz88PPzo1evXtTX13PkyBH27dtHdnY2+/bt4+DBg+Tk5LBkyRKioqLo1q0b3bp1o6Ghgby8PGw221kdS2vN+++/z2+vnYp7RWmz14cuqqlj0f4jbC0sxQSEerlzfc8YOnl78OGeQ2w+XoJZmbimRxd6B/thaqvzrvJSKDkBvv4y6+d5kJ+YC6mhmDIOAzR7UXdlgoYq2PWxsS+fThCeBGV5cGQ9BMQ5Z41MG3UU6Wy866P49NNPef311ykpKSEyMhKtNcXFxcTHxzN16lQuuugiioqKeO+999i3bx+HDh2isrISs9lMREQE/fr1o2vXrvTo0YOYmBi8vLza/gUJIYQQQpwlq9VKTEwMMTExjBo1iuPHj5Odnc2ePXvYvXs3OTk5ZGZmkpGRQXFxMdnZ2ecU/rZu3cqmr//HoBYoqwKqG2x8svcwx6pqmDmwF8qx3WJSfJlzjMQQ/2aHzHOnofAoRMZI+DsP8hNzITWUUkE+ChOas/tDP5OQnpB6F9SWQ+43Rhi014OHPyRcBvGjIbh7CxX8HGjsFNTvJmeV4oUXXiAvLw+z2Yyfnx+enp507dqV1NRUSkpK+Oc//8mRI0coLS3F29ubmJgYunfvTq9evejZsyehoaGy9p4QQggh2q3Q0FBCQ0MZMmQIlZWV7N+/n507d7J161YWLVr0i2P9fqq+vp65C/7DoAQ/aOakjoEeblzVrTO7isr45/YDXBwZQoSPJ1prLouP5LXN+3gotQe9g/3atreVyQRFxx2T2ci4v3MlZ84upI4KqjnR9K1Kc3kGQZ/rofQgZH8J5XngFwWRqacPfnab8Zj8LVBTYnQX9QqBuNEt1aVa0VBXz8at6/nvC4vYuHEjJpOJiIgISkpK6Nq1Kx4eHnz11VcUFxcTHBxMfHw8SUlJJCUlkZCQgJeXl3TnFEIIIcQFx9vbmz59+tCnTx+GDx/O8ePH2blzJ7W157ZI+ycZX/OnLmMIsZqbfc7k52bhsvhI/r0zl//sPkRalzAAdhWVY1KKxGD/U56TX1nDthOlHK+qRaPxc7OSHBZAlE8L9dBSCkqKjBNXcc4k/LkQG7XUUoa9BZd4CE+CXlMg6yXY9Slc/CBEDjj1cXYblB2GTXPh+Haw1QMKGqqN8NcSbHWavB1VfPXXb1m5dC8WiwW73Y6vry+dO3cmNzeXuro6+vTpQ0pKCoMHDyY0NBSz2Qn9U4UQQgghnMRms2GxWLBarecc/o6XlfPR7lx+kxjX7MYEN4uZxBB/kkL8WXbwGMerawnxcGPhnsNc3b0LJsWPAuaJ6loW7M5lfX4xFfXGMhN1Nju/S+7WcuHPbofqSrBfeJMjtgUJfy7ERh0NVNOSM31qDYFdIaQHHMqCkoNQfQK8Qn/8uPpKIxzu+gzGvgBdhkBdJWS92GJFofoErH2jhnX/3Iu7uzudO3fGz8+PmJgYBg4cyJAhQxgwYIC07gkhhBCiQwsKCsLNzY26urrzev4z321nTJcw4vy9mzURiwJ8rBau6dGF+zM3sfzAMS7vGsmqw8f5z2VDTnn8kgPHeH/XQe7q243xsRFYzSY+y84j2NPtvMtwCq2hrqbZ3Vo7Kgl/LsSOjQbO74/8TCqPQc5XRjdPWz3kZEBgPCReCxYP4zFaQ1UhbJkHfa4zxgMCWL0g/c8tV5b6KijcrYhJDCQxZgjjx49n6NChJCUlnbJYuxBCCCFER7V//34OHDhAXV0dJpOp6WI2m5uuN7YMnny/Uora0mKOVVTx1017+fOwJNzMpmZ9qe5pMTM2phOBHm68v+sgUT6exPh7E+7l/qP91tvsvLllH2mdwxgfG0G4t3GieVtiXLN/Hqeor5Pwd54k/LkQExYsLThwtbYcdiwEz2CIT4eSA/DtC8a2kJ4QNfCHiWDKDkHxPgiMM5aDsNvAbDWe6+7XMmP+/GPh+g896HIinTu6/6f5OxRCCCGEuAAdOXIEi8VC7969cXNzw8PDAy8vL7y9vfH09MTb2xt/f/+m256envj6+uLh7k7e5wtY+t337Coqo9Zmx83cvC/YTUoR4unO5fGRzN2eg7+7G7dddGqgO1pVw86icq5K6ExBdQ2ldfWYlMLPzUKAu1uzy/EjVjdZ4+88SfhzIWasWPHEaGRv3rcZ1cWw6xMoPwo9rwTfKGMCmLhRsPavsO7v4BsJPhFgq4XSXKivhu//AdWFUF0C7r6QfCsMuBtM1ub/jZnM4BnsTnRwRPN2JIQQQghxAUtLS+OSSy5HMRnVAAARVUlEQVTBYrGcW6ud1mAp45EYf2obGnAzqRYZSuNhMXFDr2je3pbD+vwi/nXpqYtJ5JRW0KA1H+/N4/1duRTX1OFmNjE6OpzbLoqlT2gA5pYIbEqBu6eEv/Mk4c+FmHHHDV9MmLHT0Kx9Zb0I2z80gp13KATEQP5WyFkBtaWwf7nRDTN9DniHQ0Ot0Q00+RajldDqBRv+AcsehNg0CE9uiVeoMGPBg1NnhhJCCCGEEAZ392b0BPPyAZMJ9xZsabOYTCSHBdI3NIBJXSOxmE4NXjUNNtCaSV0jmNytM2FeHiw7eIynv9uJv7uVSB9Pwrw8ml8YpcDTy1jyQZwzCX8uxB0/vAmjJSZ8GfUn43Ky+HAj2P1UXQVYvY3WvZBe4B1mfHE04C5Y9hAcWAXhfWmB9Sc0CgsBxDZ3R0IIIYQQ4nSCw2mJc0ntGFOnlEJrjdYQ4ePBzb1iTvt4H6vRSpkQ6EuEtwdeVgtXdI3kg92H2FtczuHy6pYJfwBBoUaXMnHOJDK7EA8C8KET9mYu8H6uzO4QEAvaZqwJ2EhZjNbA+sqWO5ZCEUTXltuhEEIIIYT4QWgE2Jp/LqmBWpsdu9bU2zVbC0vwsVqI8fc+7eO7BvhgNSkOlVVRZzeWLTMrhbvZhM2uqbe30FJmdjsEhYMsBXZeJPy5EE+C8Ce6zY9rtoJ/Z2NG0OwvQdsBbcwUWl9pTA7TIqvOAxY8CKFny+xMCCGEEEL8WOTpW+bO1eHyap5bv4s9RRVsOl7MjFVbeHxQ7zM+vpO3J31DA1iVd5zS2nq01hTV1lFSW0+IpztBHi203INSEB4FFunAeD7O6qemlDoAlAM2oEFrnaqUCgL+A8QCB4CrtdbFyhhV+gowAagCbtVab2j5ol943PDGj854E0YlBW16bM9gYwH4z6aBXxcI6wPrX4PgHtD9spY5hhk3AolzdG0VQgghhBAtSinwCzS6RRYdb9auTAqOVFSTNG8p3QJ8eDGtL72C/X72OY8P6s31X67h+fW7GRYZQsahAvIqqriuZxfiA3yaVZ4mgaHgFyDdPs/TubT8XaK1TtZapzpuPwKs0FonACsctwHGAwmOy2+A11qqsB2BDxFEMgATbfsLbfGEHlfAtZ9C4W7Y8BZE9IPbv22ZmT5B4UkQMQxvieIKIYQQQogz6ZkM5ua1jEX5ePLa6BRq753C9lvGcWlsp198zrCoED65fCgWk2LB7lysZsVfR/Xnqm6dW6a7ockECYlGtzVxXprzW3EFMNJx/V0gE/i9Y/u/tDFKdI1SKkApFaG1PtqcgnYUfnSmM4PZyxdtelyljJAXOwpiL2nc+MN9zaex4kVXxrXEzoQQQgghxJkkDoCsFc3axfksEaGUIiUskJSwQDQ/HjXUEktOYLdD7xSwSvg7X2cbwjWwTCn1vVLqN45t4ScFumNAuON6FHDopOcedmz7EaXUb5RS65VS648fb16z9IXEhzAiScWDgDY/tlKOi8lxUS23hIoJK/7EEMXAltmhEEIIIYQ4vW6J4PPzXTRbi1LG2oImx/+Nlxbh4wfxPZvdqtmRnW34G6a17o/RpfO3SqkRJ9/paOU7pzlltdZvaq1TtdapoaGh5/LUC5wigBgSmIhq466frUfhSwQ9uQIlcwwJIYQQQrQukwkGpIHlAmohU2ZIHQHWFpo4poM6qzNxrXWe4/8C4BNgIJCvlIoAcPzfOENJHtDlpKd3dmwTZ0GhCCCWXkzG1FJTbLoAXyK5iKtRF9BrEkIIIYRwSUrBxWMvrBYyk4LBo43X1FItiR3QL4Y/pZS3Usq38TowFtgG/Be4xfGwW4DPHNf/C9ysDIOBUhnvd24seBBGIt2Z1OYTv7Q8RQDR9ORKfJp6BgshhBBCiFblHwT9h14YLWUmR6tfQIgEv2Y6m5a/cGC1UmozsBb4Qmu9BPgzMEYptRdId9wGWAzsB7KBt4C7W7zUFziFwp9o+nE7FjycXZxmMWEmmB704Xrp8imEEEII0VZMJhg5CTy9abEFm53FaoW0y4xurBL+muUX24K11vuBvqfZfgIYfZrtGvhti5SuA7PgQSeSSWYaa/kr5zik0mWE0JO+3IQvkc4uihBCCCFExxIUCsMuhRWfQG2Ns0tz/kZOgmDpQdYSpCnGRSkU3oSRzM2EcRGmZq3K4QxG+eMYTQITLoDuq0IIIYQQ7YzJDANGQpeu7bP7p8kMUXEwaDSYzdLq1wIk/LkwExZC6MVwHsWKJ+2pyd6CG9EMox+34UGgs4sjhBBCCNEx+frDmKuMMYCqHZ36K8DNAyZeB35tvwTahaod/QZ0PAqFFU+6MpZBTMfUTqpLYaIzg+nHbYTSS2b4FEIIIYRwFqUgpgcMH28EwfbSemYyw6jLIb6Xcbu9lNvFtY800YEpTHgQSDLTSOY2QNG4qKIrjQI8uTxRDKQ//49ohmOmHXYxEEIIIYS4kFit0HeI0X3Sx9/ZpfllJhMMTv9hrUIJfi1Gwl87YMJMADEM4l4uYiqq6Z/rUBgtlZGk0J/b6co4PGgHby5CCCGEEB2Brz8MTIOUYeAbiMsOJzJbIPlio6XSL1CCXwtrb7OIdFgmzITRm6E8DJjYyUfYseEK7X9GEDU1tfglMBFvQp1dLCGEEEIIcbKgMKNFzWSGjd9CSSFo559LAkbIs1ohabCxrENohLNLdEGS8NeOKExEkMIIHsOEmT18QR3laOxOLZUVbzoziP78mnjS8SLYieURQgghhBBnFBoBQ8aA1R02Z0HhMWiod26ZTCbw9oPe/SFtIoR3dm55LmAS/toZhSKMREbxJzwIZB9LKGIfRtN9239z40cU0QynP7fTmUG44dPmZRBCCCGEEOcgKBQuTje6gm7OgrwcqKp0TlnMFgiLgl79YOhYCJBGhNYk4a8dUigCiGUsz7GOWHbxKflso5Yy2ioAWvEimO50ZyJ9uZVA4mQtPyGEEEKI9sLH31gDMDgMNn0L+3dBcWHbtQKaTODlC53jjK6e/Ye2z7UI2xkJf+2UsQyEFxfzEPGMIYu/cJT1lHCAOqporRBowQM/ogmjNyncQQzDccO7VY4lhBBCCCFakcUC3ZMgIhp2bDBaAfPzoLwUbA2tc0yTCTy9ISgc4nvCwJHQqUvrHEucQsLfBaATfbmct9jHMjbxLgVspYoT1FCCnZb59saTIDwIIIjuJHML3ZmAG74uNueoEEIIIYQ4Z74BRitgQiJsWwdb10PxcaiuhJqqljmG1R08vYwZPON6GDN6Rnc1Jp8RbUbC3wXCjJXuTKQbl3KYNezmcw6QQQXHaKCGOippoPqsJ4cxY8UdP8y444YvsYykF1cSyyjMWCX0CSGEEEJcSEwmYzbQ4ROg/3DI3ma0Bh7MhroaoztoTTXYbWe/PzcPoyun1c0Y19cjybiERhr3izYn4e8CY8JMNEOJZii1lJPPFg6zhsOsoZBdVFOMnXo0djQaowPpD9dMWLDgjj/RdGEoXRz78iBAAp8QQgghxIVOKfDxM1rmkgZDRSkc2AsH90DOHigtNLqE2u3GMhFKOUYbOa6bTMYkLr4Bxni+mATjEhhmLOUgnErC3wXMHd+mIAigsVNNCWUcppIC6iingVoUJtzwxh1//IjCny6Y5FdDCCGEEKJjM5mMbppJA42L1kbLX0khlBQbXULraozw5+4O7l7gH2DM2GlxkwXaXZCc4XcgChNeBOFFkLOLIoQQQggh2huljFa94E7GRbQ70tlWCCGEEEIIIToACX9CCCGEEEII0QFI+BNCCCGEEEKIC0RDQ8MZF2lUWrfOYuDnQil1HKgECp1dFnFGIUj9uCqpG9cm9ePapH5cm9SPa5P6cW1SP66tNesnRmsdero7XCL8ASil1mutU51dDnF6Uj+uS+rGtUn9uDapH9cm9ePapH5cm9SPa3NW/Ui3TyGEEEIIIYToACT8CSGEEEIIIUQH4Erh701nF0D8LKkf1yV149qkflyb1I9rk/pxbVI/rk3qx7U5pX5cZsyfEEIIIYQQQojW40otf0IIIYQQQgghWonTw59S6lKl1G6lVLZS6hFnl6cjUkq9o5QqUEptO2lbkFJquVJqr+P/QMd2pZR61VFfW5RS/Z1X8o5BKdVFKZWhlNqhlNqulLrXsV3qyAUopTyUUmuVUpsd9fMHx/Y4pdR3jnr4j1LKzbHd3XE723F/rDPL3xEopcxKqY1KqUWO21I3LkQpdUAptVUptUkptd6xTd7fXIRSKkAptVAptUsptVMpNUTqxzUopXo4/m4aL2VKqfukflyDUup+x3nBNqXUfMf5gtM/f5wa/pRSZuBvwHigN3CdUqq3M8vUQf0TuPQn2x4BVmitE4AVjttg1FWC4/Ib4LU2KmNH1gA8qLXuDQwGfuv4O5E6cg21wCitdV8gGbhUKTUYeBb4i9a6G1AM3O54/O1AsWP7XxyPE63rXmDnSbelblzPJVrr5JOmPZf3N9fxCrBEa90T6IvxtyT14wK01rsdfzfJQApQBXyC1I/TKaWigOlAqtY6ETAD1+ICnz/ObvkbCGRrrfdrreuABcAVTi5Th6O1XgUU/WTzFcC7juvvAleetP1f2rAGCFBKRbRNSTsmrfVRrfUGx/VyjA/eKKSOXILj51zhuGl1XDQwCljo2P7T+mmst4XAaKWUaqPidjhKqc7AROAfjtsKqZv2QN7fXIBSyh8YAbwNoLWu01qXIPXjikYD+7TWB5H6cRUWwFMpZQG8gKO4wOePs8NfFHDopNuHHduE84VrrY86rh8Dwh3Xpc6cyNENoB/wHVJHLsPRrXATUAAsB/YBJVrrBsdDTq6Dpvpx3F8KBLdtiTuUl4GHAbvjdjBSN65GA8uUUt8rpX7j2Cbvb64hDjgOzHV0nf6HUsobqR9XdC0w33Fd6sfJtNZ5wAtALkboKwW+xwU+f5wd/kQ7oI0pYWVaWCdTSvkAHwH3aa3LTr5P6si5tNY2R7ebzhg9Gno6uUgCUEpdBhRorb93dlnEzxqmte6P0SXtt0qpESffKe9vTmUB+gOvaa37AZX80IUQkPpxBY5xY5cDH/70Pqkf53CMs7wC4wuUSMCbU4dYOYWzw18e0OWk250d24Tz5Td2BXD8X+DYLnXmBEopK0bwe09r/bFjs9SRi3F0h8oAhmB0p7E47jq5Dprqx3G/P3CijYvaUQwFLldKHcAYVjAKY/yS1I0LcXxDjta6AGO80kDk/c1VHAYOa62/c9xeiBEGpX5cy3hgg9Y633Fb6sf50oEcrfVxrXU98DHGZ5LTP3+cHf7WAQmOmW/cMJqs/+vkMgnDf4FbHNdvAT47afvNjhmjBgOlJ3UtEK3A0ef7bWCn1vqlk+6SOnIBSqlQpVSA47onMAZjXGYGMNXxsJ/WT2O9TQVWallwtVVorR/VWnfWWsdifL6s1FrfgNSNy1BKeSulfBuvA2OBbcj7m0vQWh8DDimlejg2jQZ2IPXjaq7jhy6fIPXjCnKBwUopL8d5XOPfjtM/f5y+yLtSagLGmAwz8I7W+mmnFqgDUkrNB0YCIUA+8BTwKfABEA0cBK7WWhc5foH/itF0XQXcprVe74xydxRKqWHA18BWfhi3NBNj3J/UkZMppZIwBmmbMb5Q+0BrPVspFY/R2hQEbARu1FrXKqU8gHkYYzeLgGu11vudU/qOQyk1EnhIa32Z1I3rcNTFJ46bFuB9rfXTSqlg5P3NJSilkjEmTHID9gO34XivQ+rH6RxfmuQC8VrrUsc2+ftxAcpY+ukajFnbNwL/D2Nsn1M/f5we/oQQQgghhBBCtD5nd/sUQgghhBBCCNEGJPwJIYQQQgghRAcg4U8IIYQQQgghOgAJf0IIIYQQQgjRAUj4E0IIIYQQQogOQMKfEEIIIYQQQnQAEv6EEEIIIYQQogOQ8CeEEEIIIYQQHcD/B+q5u8Rxc6mgAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "graph = temp = '''\n", - "... digraph G {\n", - "... \n", - "... graph[ fontname = \"Helvetica-Oblique\",\n", - "... fontsize = 20,\n", - "... label = \"\",\n", - "... size = \"15,30\" ];\n", - "... \n", - "... rankdir = LR;\n", - "... splines=false;\n", - "... edge[style=invis];\n", - "... ranksep= 1.4;\n", - "... {\n", - "... node [shape=circle, color=chartreuse, style=filled, fillcolor=chartreuse];\n", - "... x1 [label=1>];\n", - "... x2 [label=2>]; \n", - "... x3 [label=3>]; \n", - "... x4 [label=4>]; \n", - "... x5 [label=5>]; \n", - "... x6 [label=6>]; \n", - "... }\n", - "... {\n", - "... node [shape=circle, color=dodgerblue, style=filled, fillcolor=dodgerblue];\n", - "... a12 [label=1>];\n", - "... a22 [label=2>];\n", - "... a32 [label=3>];\n", - "... a42 [label=4>];\n", - "... }\n", - "... {\n", - "... node [shape=circle, color=coral1, style=filled, fillcolor=coral1];\n", - "... O1 [label=1>];\n", - "... O2 [label=2>]; \n", - "... O3 [label=3>]; \n", - "... O4 [label=4>];\n", - "... O5 [label=5>]; \n", - "... O6 [label=6>]; \n", - "... }\n", - "... {\n", - "... rank=same;\n", - "... x1->x2->x3->x4->x5->x6;\n", - "... }\n", - "... {\n", - "... rank=same;\n", - "... a12->a22->a32->a42;\n", - "... }\n", - "... {\n", - "... rank=same;\n", - "... O1->O2->O3->O4->O5->O6;\n", - "... }\n", - "... l0 [shape=plaintext, label=\"layer 1 (input layer)\"];\n", - "... l0->x1;\n", - "... {rank=same; l0;x1};\n", - "... l1 [shape=plaintext, label=\"layer 2 (hidden layer)\"];\n", - "... l1->a12;\n", - "... {rank=same; l1;a12};\n", - "... l3 [shape=plaintext, label=\"layer 3 (output layer)\"];\n", - "... l3->O1;\n", - "... {rank=same; l3;O1};\n", - "... edge[style=solid, tailport=e, headport=w];\n", - "... {x1; x2;x3;x4;x5;x6} -> {a12;a22;a32;a42};\n", - "... {a12;a22;a32;a42} -> {O1,O2,O3,O4,O5,O6};\n", - "... }'''\n", - "\n", - "dot = Source(graph)\n", - "dot.format = 'png'\n", - "dot.render('neural_network_01', view=False) \n", - "\n", - "im = Image.open(\"neural_network_01.png\")\n", - "plt.figure(figsize = (20,10))\n", - "im_list = np.asarray(im)\n", - "plt.imshow(im_list)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nC35twUKT29_" - }, - "source": [ - "上には、入出力の次元が6で、隠れ層が1つ(ノード4)の場合のニューラルネットワークの図を描きました。\n", - "オートエンコーダではこのようなニューラルネットワークのパラメータを出力$y$が$x$にできるだけ一致するよう学習させるということを考えます。\n", - "\n", - "入力層から隠れ層への信号の伝播を符号化(エンコード)と呼び隠れ層から出力層への信号の伝播を復号化(デコード)と呼びます。\n", - "それぞれを別々に眺めるとエンコーダ部分はもとの入力の情報を圧縮するような働きをしているとみなせますし、一方デコーダ部分は一度圧縮した情報をもとに元の信号を再構成するような働きをします。\n", - "\n", - "オートエンコーダはPCAを特殊な場合として含むためPCAの拡張とみなすことができます。 \n", - "詳しくは記載しませんが、活性化関数を恒等変換にとって重み行列を直交行列に取り二乗誤差関数を最小化する表式を書き下すとPCAの表式が現れます。\n", - "\n", - "上では単純な順伝播型のニューラルネットワークを描きましたがオートエンコーダを構成するアーキテクチャは上記のような単純なANNに限らず畳み込みニューラルネットワークを用いた畳み込みオートエンコーダなども知られています。\n", - "\n", - " " - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_PCA.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_Pandas.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_Pandas.ipynb deleted file mode 100644 index 14262b98..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_Pandas.ipynb +++ /dev/null @@ -1,1359 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "g05kSZSuyD8r" - }, - "source": [ - "# Pandasの使い方 (基礎)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "NnDUb09nyHXf" - }, - "source": [ - "```Pandas```は、データ分析のためのライブラリで \n", - "統計量を計算・表示したり、それらをグラフとして可視化出来たり \n", - "前処理などの地道だが重要な作業を比較的簡単に行うことができます。\n", - "\n", - "\n", - "まずはインポートしましょう。```pd```という名前で使うのが慣例です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "G0LxApMex5f6", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import pandas as pd " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q-qC7xkDhU5A" - }, - "source": [ - "pandasでは主に```Series```と```DataFrame```の2つのオブジェクトを扱います。 \n", - "SeriesはDataFrameの特殊な場合とみなせるので、以下ではDataFrameのみ説明することにします。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-1ut22WgzFeQ" - }, - "source": [ - "## DataFrame型" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "A-RriyHt1r-p" - }, - "source": [ - "DataFrameはExcelシートのような二次元のデータを表現するのに利用され \n", - "各種データ分析などで非常に役にたちます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ubw2JSMmzCkX", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "from pandas import DataFrame" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "oeBpZK4l7knI" - }, - "source": [ - "以下の辞書型をDataFrame型のオブジェクトに変換してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HKPVuPjz7jmb", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "data = { '名前': [\"Aさん\", \"Bさん\", \"Cさん\", \"Dさん\", \"Eさん\"],\n", - " '出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'],\n", - " '生年': [ 1998, 1993,2000,1989,2002],\n", - " '身長': [172, 156, 162, 180,158]}\n", - "df = DataFrame(data)\n", - "print(\"dataの型\", type(data))\n", - "print(\"dfの型\",type(df))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5F90_vjr8ukA" - }, - "source": [ - "jupyter環境でDataFrameを読むと、\"いい感じ\"に表示してくれる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "8VZZ6asj8qie", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BkqFef0A83To" - }, - "source": [ - "printだとちょっと無機質な感じに。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xiIqLRFG82BW", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "print(df)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vn8s-8VR7b6Q" - }, - "source": [ - "```info()```関数を作用させると、詳細な情報が得られる。 \n", - "列ごとにどんな種類のデータが格納されているのかや、\n", - "メモリ使用量など表示することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2KsTF1d17anv", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.info()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-TsUcNTsBIIi" - }, - "source": [ - "## DataFrameの要素を確認・指定する方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6ChkvnngBLb_" - }, - "source": [ - "index: 行方向のデータ項目(おもに整数値(行番号),ID,名前など) \n", - "columns: 列方向のデータの項目(おもにデータの種類) \n", - "をそれぞれ表示してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "YkQCL0ay59o8", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.index" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WNqLrkQ35-4O", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-MtegVlt60qr" - }, - "source": [ - "行方向を、整数値(行数)ではなく名前にしたければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "aE51PtdW6pKE", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "data1 = {'出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'],\n", - " '生年': [ 1998, 1993,2000,1989,2002],\n", - " '身長': [172, 156, 162, 180,158]}\n", - "df1 = DataFrame(data1)\n", - "df1.index =[\"Aさん\", \"Bさん\", \"Cさん\", \"Dさん\", \"Eさん\"]\n", - "df1" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LaFJVeL27NqY" - }, - "source": [ - "などとしてもよい。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_uFFuzQM8FoQ" - }, - "source": [ - "### 特定の列を取得したい場合" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oQ9hZkVx8K-p", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"身長\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zn3WJ4_5946D" - }, - "source": [ - "とする。 \n", - "以下の方法は非推奨とする。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "3VyUAqQs9596", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.身長" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uK8zkK3h8cpY" - }, - "source": [ - "値のリスト(正確にはnumpy.ndarray型)として取得したければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "tozKlT028hfi", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"身長\"].values" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "87TOA6-e8j8v", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"出身都道府県\"].values" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Yh97e7y58yHY" - }, - "source": [ - "などとすればよい。\n", - "\n", - "慣れ親しんだ形に変換したければ、リストに変換すればよい\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2Uh6YGih5FjE", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "list(df[\"出身都道府県\"].values)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WfpujEkA5BSD" - }, - "source": [ - "ある列が特定のものに一致するもののみを抽出するのも簡単にできる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "qlFGoUdc8zPn", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[df[\"出身都道府県\"]==\"Tochigi\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ItbqbBdn9HG0" - }, - "source": [ - "これは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ubs3Zbjj9KA9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"出身都道府県\"]==\"Tochigi\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bUB1Puao9LqO" - }, - "source": [ - "が条件に合致するかどうかTrue/Falseの配列になっていて、 \n", - "df[ [True/Falseの配列] ]とすると、Trueに対応する要素のみを返す \n", - "フィルターのような役割になっている。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4xcTwpmcf3WK" - }, - "source": [ - "### 列の追加" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Hznr0hZMghcK", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#スカラー値の場合\"初期化\"のような振る舞いをする\n", - "df[\"血液型\"] = \"A\"\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1ved-4XAgMvq", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#リストで追加\n", - "df[\"血液型\"] = [ \"A\", \"O\",\"AB\",\"B\",\"A\"]\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S_I81w5L-UOE" - }, - "source": [ - "### 特定の行を取得したい場合" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "he5uTk3H-kMs" - }, - "source": [ - "たとえば、行番号がわかっているなら、```iloc```関数を使えば良い" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "kbxrpQ1E-k8F", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.iloc[3]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2998C5BK_Wut" - }, - "source": [ - "値のみ取得したければ先程と同様" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "6HoJX4h__Uj3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.iloc[3].values" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4gwiSube_ax9" - }, - "source": [ - "また、以下のような使い方もできるが" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4oabG7uA-TyS", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[1:4] #1から3行目まで" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hbFfX303_eVc" - }, - "source": [ - "```df[1]```といった使い方は出来ない。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "oH1A89pw_s6b" - }, - "source": [ - "### より複雑な行・列の抽出" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vxd7k3f3AJjj" - }, - "source": [ - "上にならって、2000年より前に生まれた人だけを抽出し" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rDrnJUg9_w1Q", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[ df[\"生年\"] < 2000 ]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iZrMq16v__fV" - }, - "source": [ - "さらにこのうち身長が170cm以上の人だけがほしければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "d6q2DR7nAYEv", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[(df[\"生年\"] < 2000) & (df[\"身長\"]>170)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-b36txVaA7fQ" - }, - "source": [ - "などとすればよい。 \n", - "他にも```iloc```,```loc```などを用いれば \n", - "特定の行・列を抽出することができる\n", - "\n", - "* ```iloc```は番号の指定のみに対応\n", - "* ```loc```は名前のみ\n", - "\n", - "**欲しい要素の数値もしくは項目名のリスト**を \n", - "行・列の2つついて指定してやればよい。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xZhc6nlDBXJH", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.iloc[[0], [0]] #0行目,0列目" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "i-W-XTw9Bz5-", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#スライスで指定することもできる\n", - "df.iloc[1:4, :3] #1-3行目かつ0-2列目 (スライスの終点は含まれないことに注意)\n", - "\n", - "#スライスの場合は、 1:4が[1,2,3]と同じ働きをするので、括弧[]はいらない" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "acMQBcZw5hmv" - }, - "source": [ - "```loc```を使う場合は、indexの代わりに項目名で指定する。\n", - "\n", - "※今の場合、行を指定する項目名が既に整数値なので \n", - "インデックスと見分けが付きづらいことに注意" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "JLlD6iUvCH-q", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.loc[1:4,[\"名前\",\"身長\"]] " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "y3rZAq4rCTSh", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.loc[[1,2,3,4],\"名前\":\"生年\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WzV2r0oPA82E" - }, - "source": [ - "といった具合。\n", - "\n", - "```loc```を使う場合、1:4や[1,2,3,4]は \n", - "indexのスライスではなく、項目名を意味し \n", - "Eさんのデータも含まれている事がわかる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "py5Dt6wY10pB" - }, - "source": [ - "## Webページにある表をDataFrameとして取得する" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s7XShK0B15-t" - }, - "source": [ - "```pandas```内の```read_html```関数を用いれば、 \n", - "Webページの中にある表をDataFrame形式で取得することもできます。\n", - "\n", - "以下では例としてWikipediaの[ノーベル物理学賞](https://ja.wikipedia.org/wiki/%e3%83%8e%e3%83%bc%e3%83%99%e3%83%ab%e7%89%a9%e7%90%86%e5%ad%a6%e8%b3%9e)のページにある、受賞者一覧を取得してみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WQG0tt0q2Hj-", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "url = \"https://ja.wikipedia.org/wiki/%e3%83%8e%e3%83%bc%e3%83%99%e3%83%ab%e7%89%a9%e7%90%86%e5%ad%a6%e8%b3%9e\"\n", - "tables = pd.read_html(url)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xLVtylYB2Uow", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "print(len(tables))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yBghdSUU2XdQ" - }, - "source": [ - "ページ内に、21個もの表があることがわかります。 \n", - "(ほとんどはwikipediaのテンプレート等)\n", - "\n", - "たとえば、2010年代の受賞者のみに興味がある場合は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "nf2JwszO2nBM", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df = tables[12]\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "O6bVMFaNKeUT" - }, - "source": [ - "## Pandasで複雑なエクセルファイルを操作する" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KBgNqsmGKjvm" - }, - "source": [ - "Pandasにはread_excel()という関数が用意されていて、 \n", - "多数のシートを含むようなエクセルファイルを開くことも出来る。\n", - "\n", - "まずは必要なモジュールをインポートしよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "hBKVdR2zKxe_", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "from pandas import DataFrame" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "34iZ93suY1nz" - }, - "source": [ - "今まではGoogle Driveにいれたファイルを読み出していたが、 \n", - "Webから直接xlsxファイルを読み込んでみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2yR7aEeImkAl", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "url = \"https://www.mext.go.jp/content/20201225-mxt_kagsei-mext_01110_012.xlsx\"\n", - "input_file = pd.ExcelFile(url)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YEsLWG0mY8z-" - }, - "source": [ - "ブック内のシートの一覧は以下のように取得できる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "VJv-enRZTxUt", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "sheet_names = input_file.sheet_names\n", - "print(\"pandas: シート名\",sheet_names)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Tn6Lq7UhT1ZX" - }, - "source": [ - "シートを指定するのは、インデックスかシート名の文字列で行う。\n", - "\n", - "\"1 穀類\"を使うことにして、 \n", - "pandasにあるread_excel関数を使ってみよう。 \n", - "read_excel関数の最初の引数にはパスの他に、urlも取れる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "07xxSw7nVdK2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df = pd.read_excel(url,sheet_name=\"1穀類\")\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xew_ouFxVnLl" - }, - "source": [ - "同じものが得られている。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pPBxyiV2oVKV" - }, - "source": [ - "### データの整形\n", - "\n", - "次に、今取得したデータフレームのままでは少々扱い辛いので\"整形\"を考える。 \n", - "というのも前から4行ほど表示してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NKcdOLCMV3qM", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[0:4] " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CULET-99WJ3D" - }, - "source": [ - "最初の4行ほどに栄養素等の情報が入っているのだが、 \n", - "セルが結合されたりしているため、所々にNaNが入っていたりして見辛い。\n", - "\n", - "(碁盤目の構造を破壊してしまうため「セルの結合」は機械的な処理と \n", - "やや相性が悪く、プログラミングを用いたデータ分析では嫌われる)\n", - "\n", - "各省庁の公開データのフォーマットの統一化は今後に期待することにして... \n", - "まず以下の項目に該当する列だけを抽出する事を考える。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Jhdp9z7cZm97", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "targets = [\"食品名\", \"エネルギー\",\"たんぱく質\", \"脂質\", \"炭水化物\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zGrqpS-6jhaK" - }, - "source": [ - "該当するデータがどの行・列に格納されているかをコードで指定するのは、 \n", - "前述のファイル構造の事情からやや面倒くさい。 \n", - "\n", - "以下では、その場しのぎ的ではあるが、 \n", - "興味のある量が何番目かを指定してまとめてみることにしよう。\n", - "\n", - "そのために、1-2行目の要素を表示してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "yZ-IVG2Ma30o", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#1-2行目(エクセルだと2行目)の要素から\n", - " #半角空白, 全角空白(\\u3000)や改行コード\\nを取り除いたリストを作って表示してみる\n", - "\n", - "for idx in range(1,3):\n", - " tmp = df.iloc[idx].values\n", - " tlist = list(map( lambda s: str(s).replace(\"\\u3000\",\"\").replace(\"\\n\",\"\").replace(\" \",\"\"),tmp))\n", - " print(tlist)\n", - "# for target in targets:\n", - "# tlist.index(target)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KEaiS1EAiWDY" - }, - "source": [ - "セルの結合により、興味のあるデータがどの列に記述されているかは注意が必要。 \n", - "\n", - "実際、[エネルギー]という文字列は1行目の6列目(それぞれインデックスでいうと0,5)で取得できるが、 \n", - "kJ単位になっていて、kcal単位でほしければ、7列目に格納された値が必要になる。 \n", - "\n", - "また、エクセルファイルを見るとわかるように、たんぱく質・脂質・炭水化物はさらに細分化されており、 \n", - "O列R列など、細かい列の分割が挿入されている. ~~これは大変困る~~\n", - "\n", - "単純にたんぱく質・脂質・炭水化物と表記されている列のインデックスはそれぞれ9,12,20となる。 \n", - "食品名が格納されている列(3)、エネルギー[kJ単位] (6)と合わせて確認してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "U-Hzne6VgWf3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "targets = [3,6,9,12,20]\n", - "df.iloc[:,targets]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LNk4oIypmpTe" - }, - "source": [ - "もう少し整形したいので、新しいデータフレームのコラムを書き換える。\n", - "\n", - "食品名等が記載されているのは10行目以降なので、それを使い \n", - "columnを指定する。\n", - "\n", - "さらに、食品名に含まれる余分な文字コードも削除しておこう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ZWkaRBZynATr", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "ndf = df.iloc[:,targets] \n", - "ndf = ndf.iloc[10:,:]\n", - "ndf.columns=[\"食品名\",\"エネルギー(kcal)\",\"たんぱく質(g)\",\"脂質(g)\",\"炭水化物(g)\"]\n", - "ndf[\"食品名\"] = ndf[\"食品名\"].str.replace(\"\\u3000\",\" \") # 食品名の中にある余分な全角空白(\\u3000)を半角スペースに置き換える\n", - "ndf" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B5FN5MFcmECG" - }, - "source": [ - "次に、食品名の一覧を取得した後、興味のあるもの(日常的に馴染みのあるもの)だけを \n", - "ピックアップしてみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_SI2LaqPmOK3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "print(list(ndf[\"食品名\"]))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bT1akYL_pBXs" - }, - "source": [ - "この中から...\n", - "* こむぎ[パン類]食パンリッチタイプ\n", - "* こむぎ[パン類]フランスパン\n", - "* こめ[水稲軟めし]精白米\n", - "* そばそばゆで\n", - "* こむぎ[うどん・そうめん類]うどんゆで\n", - "\n", - "のみに興味があれば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "F2ouiW-jqpjm", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tshokuhin = [\"こむぎ [パン類] 食パン リッチタイプ\",\"こむぎ [パン類] フランスパン\",\"こめ [水稲軟めし] 精白米\", \"そば そば ゆで\", \"こむぎ [うどん・そうめん類] うどん ゆで\"]\n", - "ndf[ ndf[\"食品名\"].isin(tshokuhin)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Jt2aLH3jrWSY" - }, - "source": [ - "などとする。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "So7B0ZauwuyT" - }, - "source": [ - "'6野菜類'でも同様に..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "aYwheZeiw0Oe", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df6 = pd.read_excel(url,sheet_name=\"6野菜類\")\n", - "df6.iloc[:,[3,6,9,12,20]]\n", - "ndf6 = df6.iloc[:,[3,6,9,12,20]] \n", - "ndf6 = ndf6.iloc[10:,:]\n", - "ndf6.columns=[\"食品名\",\"エネルギー(kcal)\",\"たんぱく質(g)\",\"脂質(g)\",\"炭水化物(g)\"]\n", - "ndf6[\"食品名\"] = ndf6[\"食品名\"].str.replace(\"\\u3000\",\" \") \n", - "ndf6" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "di6-R2kIx88j" - }, - "source": [ - "特定のキーワードを含むものを全て取得して、 \n", - "食品名を細かく指定したり、対応する行番号のインデックスを取得できたりする" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "XDN2orG9xP_j", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "kyabetu = ndf6[ndf6[\"食品名\"].str.contains('キャベツ')]\n", - "kyabetu" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "QboGKX8bx0yB", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tomato = ndf6[ndf6[\"食品名\"].str.contains('トマト')]\n", - "tomato" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ojENrlEZGepm" - }, - "source": [ - "DataFrame同士を結合してまとめるなどして \n", - "扱いやすいデータに整形していく.\n", - "\n", - "縦方向の結合はpandasのconcat(concatenateの略)を使う。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SKoSAqvNGkrt", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tdf = pd.concat([kyabetu, tomato])\n", - "tdf" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "U6LFpNLN2sZh" - }, - "source": [ - "## DataFrameのcsv/Excelファイルへの書き出し" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tbZn9qyB2xTS" - }, - "source": [ - "DataFrameオブジェクトは、```pandas```内の関数を用いれば、 \n", - "簡単にcsvやExcelファイルとして書き出すことができます。\n", - "\n", - "先程の、2010年代のノーベル物理学賞受賞者のデータを、 \n", - "Google Driveにファイルとして書き出してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "CKxWkUsW3Hi2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gsr83KhA3Hww" - }, - "source": [ - "**csvとして書き出す場合**\n", - "\n", - "適当にパスを指定して、DataFrameオブジェクトに \n", - "```to_csv```関数を作用させます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jLS-3W8F27Xe", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.to_csv(\"/content/drive/My Drive/AdDS2021/pd_write_test.csv\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "k6XnW1V93mik" - }, - "source": [ - "**Excelファイルとして書き出す場合**\n", - "\n", - "この場合も同様で、```to_excel```関数を用います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "A4A69Qb83vkk", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.to_excel(\"/content/drive/My Drive/AdDS2021/pd_write_test.xlsx\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jrfPQzrq4GJK" - }, - "source": [ - "上記の関数内で文字コードを指定することもできます。 \n", - "例: ```encoding=\"utf-8_sig\"```, ```encoding=\"shift_jis\"```" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_Pandas.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_SingularValueDecomposition.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_SingularValueDecomposition.ipynb deleted file mode 100644 index ed3f4900..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_SingularValueDecomposition.ipynb +++ /dev/null @@ -1,479 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "HLZRySda6U-g" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LGVnPDHJw9_I" - }, - "source": [ - "# 特異値分解と情報削減\n", - "\n", - "このノートブックでは、行列の特異値分解と、その応用例として画像データの\"低ランク近似\"について説明する。\n", - "\n", - "関連する線形代数の知識、とくに諸定理の証明については、適宜線形代数の教科書等を参照すること。\n", - "\n", - "*純然たる*(≒形式的な?)線形代数の教科書には意外とSVDは載っていなかったりするので、工学であるとか数値計算など、応用を意識した教科書を参照するのが良い。\n", - "\n", - "Webで無料のものが良ければ、Mathematics for Machine Learningもいいかもしれない \n", - "※[著者らのページのリンク](https://mml-book.com)からPDFがダウンロードできる。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aakEipnQ6lik" - }, - "source": [ - "## 特異値分解 (Singular Value Decomposition, SVD)\n", - "\n", - "特異値分解は、線形代数の中でも応用上非常に重要である。 \n", - "本ノートで説明するような画像処理や情報削減の方法として用いられるだけでなく、量子多体系(物性や素粒子・原子核などの物理学,量子化学などが対象とする系)の計算手法である密度行列くりこみ群(DMRG)法など、自然科学分野の理論計算などの根幹にもなっている汎用性の高い手法である。\n", - "\n", - "\n", - "**特異値分解定理**: \n", - "任意のランク$r=[0,\\min(m,n)]$の$m \\times n$行列$A$は\n", - "- $m \\times m$のユニタリ行列 $U$\n", - "- $m \\times n$の対角行列$\\Sigma$ \n", - "- $n \\times n$のユニタリ行列 $V$\n", - "\n", - "を用いて$\n", - "A = U \\Sigma V^\\dagger\n", - "$\n", - "と分解できる。 \n", - "上は$A$が複素行列の場合の表記で、実行列の場合は、$U,V$は直交行列であり、随伴操作(複素共役かつ転置)$\\dagger$は転置$T$となり、対角行列$\\Sigma$の各成分は非負となる。 \n", - "\n", - "以下では、特に断らない限り実行列の場合のみを考える。 \n", - "$\\Sigma$の各対角成分を**特異値**と呼び、慣例的に$\\sigma_1 \\geq \\sigma_2 \\geq ... \\geq \\sigma_r \\geq 0$となるよう並べられる。 \n", - "※一般の$m \\neq n$の場合は長方行列となるので、上での\"対角行列\"は正確には、対角ブロックとゼロ行列ブロックを含むような行列を指す。\n", - "\n", - "$m (3, 3) (3,) (3, 3)\n", - "特異値 => [15.52961563 3.39284204 1.82199376]\n", - "USVd => [[1. 9. 6.]\n", - " [2. 4. 6.]\n", - " [3. 8. 3.]]\n", - "USVd@rank2 => [[2.27571625 8.70200595 5.94787683]\n", - " [1.22318899 4.18145497 6.03173892]\n", - " [2.04499401 8.22307947 3.0390196 ]]\n", - "||A-USVd||_F 1.8219937599763407\n", - "USVd@rank1 => [[2.27747026 8.71226915 5.9321303 ]\n", - " [1.46888535 5.61909622 3.82600794]\n", - " [1.84748528 7.06739811 4.81214776]]\n", - "||A-USVd||_F 3.8511087217022104\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "from scipy import linalg\n", - "from numpy.linalg import svd, matrix_rank\n", - "\n", - "# 適当な3×3行列(rank(A)=3)を作成して表示\n", - "A = np.array([ [1,9,6],[2,4,6],[3,8,3] ])\n", - "print(\"A\\n\",A, \"\\nrank\", matrix_rank(A))\n", - "\n", - "# SVD(特異値分解)を実行\n", - "U, Sigma, Vd = svd(A)\n", - "print('それぞれの行列(U,S,Vd)の形状を確認 =>', U.shape, Sigma.shape, Vd.shape)\n", - "print('特異値 => ', Sigma) #Sigmaは対角成分のみをベクトルのように持っている事がわかる。\n", - "\n", - "#積がもとのAと一致するかcheck\n", - "print(\"USVd =>\", np.dot(U, np.dot(np.diag(Sigma),Vd) ) )\n", - "\n", - "#Sigmaをrank2で近似してみる ≒ 行列の(2,2)成分を0にする\n", - "Sigma[2] = 0.0\n", - "USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) )\n", - "print(\"USVd@rank2 =>\", USVd)\n", - "print(\"||A-USVd||_F \", linalg.norm(A-USVd,\"fro\"))\n", - "#Sigmaをrank1で近似してみる ≒ 行列の(1,1)&(2,2)成分を0にする\n", - "Sigma[1] = 0.0\n", - "USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) )\n", - "print(\"USVd@rank1 =>\", USVd)\n", - "print(\"||A-USVd||_F \", linalg.norm(A-USVd,\"fro\"))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tvke5nx56FZ-" - }, - "source": [ - "確かに特異値分解ができているが、これだけではどんな恩恵があるのか、 \n", - "なぜ低ランク近似を考えるのかあまりピンとこないだろう。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xC5Pil9881f6" - }, - "source": [ - "## 画像データの特異値分解\n", - "\n", - "では次に行列として、より具体的なもの、画像を考えてみよう。画像データは\n", - "- 縦横に並ぶピクセルの数を行列の行と列の数に対応させる\n", - "- 各ピクセルの画素値(8ビット,グレースケールで表現するなら、0が黒255が白の256階調)を各\"番地\"での行列要素の値に対応させる\n", - "\n", - "ことで、自然と行列とみなすことができる。\n", - "\n", - "適当な写真をもってきて、簡単のためグレースケールに変換した後、特異値分解をしてみよう。\n", - "\n", - "宇都宮大学オリジナルキャラクター「宇~太」の写真を用いる" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "9vB1BQQd_QpL", - "outputId": "63d0181d-6f6e-4020-bba3-7f7b5c00a8c3" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2022-10-11 06:41:42-- https://raw.githubusercontent.com/SotaYoshida/Lecture_DataScience/main/notebooks/pic_for_notebook/u_ta.jpeg\n", - "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.108.133, 185.199.109.133, ...\n", - "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 146087 (143K) [image/jpeg]\n", - "Saving to: ‘u_ta.jpeg’\n", - "\n", - "\ru_ta.jpeg 0%[ ] 0 --.-KB/s \ru_ta.jpeg 100%[===================>] 142.66K --.-KB/s in 0.008s \n", - "\n", - "2022-10-11 06:41:43 (17.1 MB/s) - ‘u_ta.jpeg’ saved [146087/146087]\n", - "\n", - "sample_data u_ta.jpeg\n" - ] - } - ], - "source": [ - "import requests\n", - "from PIL import Image\n", - "from IPython.display import display\n", - "\n", - "!wget \"https://raw.githubusercontent.com/SotaYoshida/Lecture_DataScience/main/notebooks/pic_for_notebook/u_ta.jpeg\" -O u_ta.jpeg\n", - "# ls コマンドでファイルを表示\n", - "!ls " - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 280 - }, - "id": "A_fIQBqfL7de", - "outputId": "f8be541c-5c2e-4712-f514-9ea89f42657d" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#画像ファイルを読み込み\n", - "img = Image.open('u_ta.jpeg')\n", - "gray_img = img.convert('L')\n", - "gray_img.save('u_ta_mono.jpeg')\n", - "gray_img = gray_img.resize((gray_img.width//3, gray_img.height//3)) #画像をリサイズ\n", - "gray_img " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "6-AHTquvMIVx", - "outputId": "af1d319f-76c4-4282-8631-bbd3164d9b90" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "full rank => 196\n", - "rank 9 Fnorm 3371.396392985502 # of m.e. 4743\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 19 Fnorm 1837.5080112082685 # of m.e. 10013\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 39 Fnorm 883.9820242926976 # of m.e. 20553\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 58 Fnorm 513.8683243934796 # of m.e. 30566\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 196 Fnorm 8.531916171225453e-11 # of m.e. 103292\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# SVDを実行\n", - "a = np.asarray(gray_img)\n", - "u, s, v = svd(a)\n", - "fullrank = matrix_rank(a)\n", - "print(\"full rank => \", fullrank)\n", - "\n", - "# 陽に必要な行列要素の数を計算する関数\n", - "def num_of_me(u,s,v,rank):\n", - " m,n = u.shape\n", - " return m * rank + rank + rank*n\n", - "\n", - "#低ランク近似を得る\n", - "for factor in [0.05, 0.1, 0.2, 0.3, 1.0]:\n", - " rank = int(factor*fullrank)\n", - " ur = u[:, :rank]\n", - " sr = np.matrix(linalg.diagsvd(s[:rank], rank,rank))\n", - " vr = v[:rank, :]\n", - " b = np.asarray(ur*sr*vr)\n", - " img = Image.fromarray(np.uint8(b))\n", - " USVd = np.dot(ur, np.dot(sr,vr))\n", - " print(\"rank\",rank, \" Fnorm \", linalg.norm(a-USVd,\"fro\"), \" # of m.e. \", num_of_me(u,s,v,rank) )\n", - " display(img)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YOB6BFXV58Th" - }, - "source": [ - "幾つかのrankについて元のグレースケール画像との差分(フロベニウスノルム)と、陽に必要な行列要素の数、近似後の画像を表示させてみた。\n", - "\n", - "元の行列(rank=196, 行列要素の数103292)に対して\n", - "rank=39, 58などでの近似を用いることで、大体2-3万の行列要素で画像を表現できる事がわかる。\n", - "\n", - "今の場合は一枚の写真のみでサイズもたかがしれているものの、例えば画像認識タスクを行う機械学習モデルの訓練の場合には、一般に大量の画像データ(とラベル等)が必要になるため、近似で削減できる情報が数分の1スケールだとしても馬鹿にはできない。\n", - "\n", - "実際にはSVDを計算するコストも勘定に入れなければフェアな評価は難しく、SVDを陽に用いたアーキテクチャがやりたいタスクに対して最適である保証はないが、実際に画像認識モデルを作り学習を行う際には一考の余地はあると言えるだろう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zTJqCqNnU5hR" - }, - "source": [ - "### 練習問題\n", - "\n", - "上では、`numpy.linalg`にある`svd`でSVDを実装し、`scipy`の`linalg.diagsvd`関数を用いて低ランク近似を計算した。\n", - "かんたんな行列の例を参考にSVDの結果得られる$\\Sigma$の行列要素を書き換えて、もとの行列の低ランク近似を計算し、ライブラリの出力と一致するか確かめてみよう。※SVDや行列積などはnumpyを用いて良い。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_StyleGAN3.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_StyleGAN3.ipynb deleted file mode 100644 index 465068bd..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_StyleGAN3.ipynb +++ /dev/null @@ -1,421 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "lHyvtTv97lQH" - }, - "source": [ - "# StyleGAN3+CLIPによる写真生成\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4_s8h-ilzHQc" - }, - "source": [ - "このノートブックでは、StyleGAN3+CLIPを用いた顔写真生成をデモンストレーションする。 \n", - "*ランタイムタイプはGPUによる実行が推奨 \n", - "\n", - "\n", - "\n", - "参考: \n", - "- [StyleGAN3](https://nvlabs.github.io/stylegan3/)\n", - "- [GitHub](https://github.com/NVlabs/stylegan3)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FTFcPiKW85XJ" - }, - "source": [ - "**StyleGAN3及びCLIPのライセンス**\n", - "\n", - "- StyleGAN3はGAN(敵対的生成ネットワーク)を用いた生成モデルのひとつで、NVIDIAから[こちらのライセンス](https://github.com/NVlabs/stylegan3/blob/main/LICENSE.txt)のもと提供されている。 \n", - "\n", - "- CLIPはOpenAIによる画像とテキスト(自然言語)の関連性を学習し画像分類を行うモデルでMITライセンスのもと公開されている[こちら](https://github.com/openai/CLIP)\n", - "\n", - "以下のコードを実行したりする分には問題はないが、別の用途で用いる際にはライセンスの詳細を参照し遵守すること.\n", - "なお、このノートブックの作成においてはこちらの[レポジトリ](https://github.com/ouhenio/StyleGAN3-CLIP-notebooks)を参考にした。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VdvqJ8Hx9Sxq" - }, - "source": [ - "## SetUp\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "PzDuIoMcqfBT" - }, - "outputs": [], - "source": [ - "#@markdown **準備** \n", - "# @markdown このセルを実行して、ダウンロード等の準備を行おう\n", - "\n", - "#@markdown ---\n", - "\n", - "!pip install --upgrade torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html\n", - "!git clone https://github.com/NVlabs/stylegan3\n", - "!git clone https://github.com/openai/CLIP\n", - "!pip install -e ./CLIP\n", - "!pip install einops ninja\n", - "\n", - "import sys\n", - "sys.path.append('./CLIP')\n", - "sys.path.append('./stylegan3')\n", - "\n", - "import io\n", - "import os, time, glob\n", - "import pickle\n", - "import shutil\n", - "import numpy as np\n", - "from PIL import Image\n", - "import torch\n", - "import torch.nn.functional as F\n", - "import requests\n", - "import torchvision.transforms as transforms\n", - "import torchvision.transforms.functional as TF\n", - "import clip\n", - "import unicodedata\n", - "import re\n", - "from tqdm.notebook import tqdm\n", - "from torchvision.transforms import Compose, Resize, ToTensor, Normalize\n", - "from IPython.display import display\n", - "from einops import rearrange\n", - "from google.colab import files\n", - "\n", - "device = torch.device('cuda:0')\n", - "print('Using device:', device, file=sys.stderr)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "Zxbhe4uLvF_a" - }, - "outputs": [], - "source": [ - "#@markdown **必要な関数の準備:** このセルも実行しておこう\n", - "\n", - "def fetch(url_or_path):\n", - " if str(url_or_path).startswith('http://') or str(url_or_path).startswith('https://'):\n", - " r = requests.get(url_or_path)\n", - " r.raise_for_status()\n", - " fd = io.BytesIO()\n", - " fd.write(r.content)\n", - " fd.seek(0)\n", - " return fd\n", - " return open(url_or_path, 'rb')\n", - "\n", - "def fetch_model(url_or_path):\n", - " if \"drive.google\" in url_or_path:\n", - " if \"18MOpwTMJsl_Z17q-wQVnaRLCUFZYSNkj\" in url_or_path: \n", - " basename = \"wikiart-1024-stylegan3-t-17.2Mimg.pkl\"\n", - " elif \"14UGDDOusZ9TMb-pOrF0PAjMGVWLSAii1\" in url_or_path:\n", - " basename = \"lhq-256-stylegan3-t-25Mimg.pkl\"\n", - " else:\n", - " basename = os.path.basename(url_or_path)\n", - " if os.path.exists(basename):\n", - " return basename\n", - " else:\n", - " if \"drive.google\" not in url_or_path:\n", - " !wget -c '{url_or_path}'\n", - " else:\n", - " path_id = url_or_path.split(\"id=\")[-1]\n", - " !gdown --id '{path_id}'\n", - " return basename\n", - "\n", - "def slugify(value, allow_unicode=False):\n", - " \"\"\"\n", - " Taken from https://github.com/django/django/blob/master/django/utils/text.py\n", - " Convert to ASCII if 'allow_unicode' is False. Convert spaces or repeated\n", - " dashes to single dashes. Remove characters that aren't alphanumerics,\n", - " underscores, or hyphens. Convert to lowercase. Also strip leading and\n", - " trailing whitespace, dashes, and underscores.\n", - " \"\"\"\n", - " value = str(value)\n", - " if allow_unicode:\n", - " value = unicodedata.normalize('NFKC', value)\n", - " else:\n", - " value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii')\n", - " value = re.sub(r'[^\\w\\s-]', '', value.lower())\n", - " return re.sub(r'[-\\s]+', '-', value).strip('-_')\n", - "\n", - "def norm1(prompt):\n", - " \"Normalize to the unit sphere.\"\n", - " return prompt / prompt.square().sum(dim=-1,keepdim=True).sqrt()\n", - "\n", - "def spherical_dist_loss(x, y):\n", - " x = F.normalize(x, dim=-1)\n", - " y = F.normalize(y, dim=-1)\n", - " return (x - y).norm(dim=-1).div(2).arcsin().pow(2).mul(2)\n", - "\n", - "def prompts_dist_loss(x, targets, loss):\n", - " if len(targets) == 1: # Keeps consitent results vs previous method for single objective guidance \n", - " return loss(x, targets[0])\n", - " distances = [loss(x, target) for target in targets]\n", - " return torch.stack(distances, dim=-1).sum(dim=-1) \n", - "\n", - "class MakeCutouts(torch.nn.Module):\n", - " def __init__(self, cut_size, cutn, cut_pow=1.):\n", - " super().__init__()\n", - " self.cut_size = cut_size\n", - " self.cutn = cutn\n", - " self.cut_pow = cut_pow\n", - "\n", - " def forward(self, input):\n", - " sideY, sideX = input.shape[2:4]\n", - " max_size = min(sideX, sideY)\n", - " min_size = min(sideX, sideY, self.cut_size)\n", - " cutouts = []\n", - " for _ in range(self.cutn):\n", - " size = int(torch.rand([])**self.cut_pow * (max_size - min_size) + min_size)\n", - " offsetx = torch.randint(0, sideX - size + 1, ())\n", - " offsety = torch.randint(0, sideY - size + 1, ())\n", - " cutout = input[:, :, offsety:offsety + size, offsetx:offsetx + size]\n", - " cutouts.append(F.adaptive_avg_pool2d(cutout, self.cut_size))\n", - " return torch.cat(cutouts)\n", - "\n", - "make_cutouts = MakeCutouts(224, 32, 0.5)\n", - "\n", - "def embed_image(image):\n", - " n = image.shape[0]\n", - " cutouts = make_cutouts(image)\n", - " embeds = clip_model.embed_cutout(cutouts)\n", - " embeds = rearrange(embeds, '(cc n) c -> cc n c', n=n)\n", - " return embeds\n", - "\n", - "def embed_url(url):\n", - " image = Image.open(fetch(url)).convert('RGB')\n", - " return embed_image(TF.to_tensor(image).to(device).unsqueeze(0)).mean(0).squeeze(0)\n", - "\n", - "class CLIP(object):\n", - " def __init__(self):\n", - " clip_model = \"ViT-B/32\"\n", - " self.model, _ = clip.load(clip_model)\n", - " self.model = self.model.requires_grad_(False)\n", - " self.normalize = transforms.Normalize(mean=[0.48145466, 0.4578275, 0.40821073],\n", - " std=[0.26862954, 0.26130258, 0.27577711])\n", - "\n", - " @torch.no_grad()\n", - " def embed_text(self, prompt):\n", - " \"Normalized clip text embedding.\"\n", - " return norm1(self.model.encode_text(clip.tokenize(prompt).to(device)).float())\n", - "\n", - " def embed_cutout(self, image):\n", - " \"Normalized clip image embedding.\"\n", - " return norm1(self.model.encode_image(self.normalize(image)))\n", - " \n", - "clip_model = CLIP()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "_aZvophLZQOw" - }, - "outputs": [], - "source": [ - "#@title { run: \"auto\" }\n", - "#@markdown **モデルの選択** \n", - "\n", - "\n", - "#@markdown There are 4 pre-trained options to play with:\n", - "#@markdown - FFHQ: Trained with human faces. \n", - "#@markdown - MetFaces: Trained with paintings/portraits of human faces.\n", - "#@markdown - AFHQv2: Trained with animal faces.\n", - "#@markdown - Cosplay: Trained by [l4rz](https://twitter.com/l4rz) with cosplayer's faces.\n", - "#@markdown - Wikiart: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the Wikiart 1024 dataset.\n", - "#@markdown - Landscapes: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the LHQ dataset.\n", - "\n", - "#@markdown ---\n", - "\n", - "base_url = \"https://api.ngc.nvidia.com/v2/models/nvidia/research/stylegan3/versions/1/files/\"\n", - "\n", - "Model = 'MetFaces' #@param [\"FFHQ\", \"MetFaces\", \"AFHQv2\", \"cosplay\", \"Wikiart\", \"Landscapes\"]\n", - "\n", - "#@markdown ---\n", - "\n", - "model_name = {\n", - " \"FFHQ\": base_url + \"stylegan3-t-ffhqu-1024x1024.pkl\",\n", - " \"MetFaces\": base_url + \"stylegan3-r-metfacesu-1024x1024.pkl\",\n", - " \"AFHQv2\": base_url + \"stylegan3-t-afhqv2-512x512.pkl\",\n", - " \"cosplay\": \"https://l4rz.net/cosplayface-snapshot-stylegan3t-008000.pkl\",\n", - " \"Wikiart\": \"https://archive.org/download/wikiart-1024-stylegan3-t-17.2Mimg/wikiart-1024-stylegan3-t-17.2Mimg.pkl\",\n", - " \"Landscapes\": \"https://archive.org/download/lhq-256-stylegan3-t-25Mimg/lhq-256-stylegan3-t-25Mimg.pkl\"\n", - "}\n", - "\n", - "network_url = model_name[Model]\n", - "\n", - "with open(fetch_model(network_url), 'rb') as fp:\n", - " G = pickle.load(fp)['G_ema'].to(device)\n", - "\n", - "zs = torch.randn([10000, G.mapping.z_dim], device=device)\n", - "w_stds = G.mapping(zs, None).std(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5XAAf8jZevsl" - }, - "source": [ - "## パラメータの指定と実行" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "z1rqpxkmd_wt" - }, - "outputs": [], - "source": [ - "#@markdown **Parameters**\n", - "\n", - "#@markdown `texts`: Enter here a prompt to guide the image generation. You can enter more than one prompt separated with\n", - "#@markdown `|`, which will cause the guidance to focus on the different prompts at the same time, allowing to mix and play\n", - "#@markdown with the generation process.\n", - "\n", - "#@markdown `steps`: Number of optimization steps. The more steps, the longer it will try to generate an image relevant to the prompt.\n", - "\n", - "#@markdown `seed`: Determines the randomness seed. Using the same seed and prompt should give you similar results at every run.\n", - "#@markdown Use `-1` for a random seed.\n", - "\n", - "#@markdown ---\n", - "\n", - "texts = \"female | smiling | black hair\"#@param {type:\"string\"}\n", - "steps = 100#@param {type:\"number\"}\n", - "seed = 1234#@param {type:\"number\"}\n", - "#@markdown ---\n", - "\n", - "if seed == -1:\n", - " seed = np.random.randint(0,9e9)\n", - " print(f\"Your random seed is: {seed}\")\n", - "\n", - "texts = [frase.strip() for frase in texts.split(\"|\") if frase]\n", - "\n", - "targets = [clip_model.embed_text(text) for text in texts]\n", - "\n", - "picmod = 30\n", - "\n", - "tf = Compose([\n", - " Resize(224),\n", - " lambda x: torch.clamp((x+1)/2,min=0,max=1),\n", - " ])\n", - "\n", - "def run(timestring):\n", - " torch.manual_seed(seed)\n", - "\n", - " # Init\n", - " # Sample 32 inits and choose the one closest to prompt\n", - "\n", - " with torch.no_grad():\n", - " qs = []\n", - " losses = []\n", - " for _ in range(8):\n", - " q = (G.mapping(torch.randn([4,G.mapping.z_dim], device=device), None, truncation_psi=0.7) - G.mapping.w_avg) / w_stds\n", - " images = G.synthesis(q * w_stds + G.mapping.w_avg)\n", - " embeds = embed_image(images.add(1).div(2))\n", - " loss = prompts_dist_loss(embeds, targets, spherical_dist_loss).mean(0)\n", - " i = torch.argmin(loss)\n", - " qs.append(q[i])\n", - " losses.append(loss[i])\n", - " qs = torch.stack(qs)\n", - " losses = torch.stack(losses)\n", - " # print(losses)\n", - " # print(losses.shape, qs.shape)\n", - " i = torch.argmin(losses)\n", - " q = qs[i].unsqueeze(0).requires_grad_()\n", - "\n", - " # Sampling loop\n", - " q_ema = q\n", - " opt = torch.optim.AdamW([q], lr=0.03, betas=(0.0,0.999))\n", - " loop = tqdm(range(steps))\n", - " for i in loop:\n", - " opt.zero_grad()\n", - " w = q * w_stds\n", - " image = G.synthesis(w + G.mapping.w_avg, noise_mode='const')\n", - " embed = embed_image(image.add(1).div(2))\n", - " loss = prompts_dist_loss(embed, targets, spherical_dist_loss).mean()\n", - " loss.backward()\n", - " opt.step()\n", - " loop.set_postfix(loss=loss.item(), q_magnitude=q.std().item())\n", - "\n", - " q_ema = q_ema * 0.9 + q * 0.1\n", - " image = G.synthesis(q_ema * w_stds + G.mapping.w_avg, noise_mode='const')\n", - "\n", - " if i % picmod == 0:\n", - " display(TF.to_pil_image(tf(image)[0]))\n", - " print(f\"Image {i}/{steps} | Current loss: {loss}\")\n", - " pil_image = TF.to_pil_image(image[0].add(1).div(2).clamp(0,1))\n", - " os.makedirs(f'samples/{timestring}', exist_ok=True)\n", - " pil_image.save(f'samples/{timestring}/{i:04}.jpg')\n", - "\n", - "try:\n", - " timestring = time.strftime('%Y%m%d%H%M%S')\n", - " run(timestring)\n", - "except KeyboardInterrupt:\n", - " pass" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-x13yvcFnPat" - }, - "source": [ - "Stepごとに指示に近づいている(上手くいった一例)。\n", - "\n", - "少しずつフェードアウトしてくところや、背景が髪の毛と変化(同化)していく点は不思議。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "dSRDbGRtjOUq", - "rAlPquBCSVud", - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "name": "Python_misc_StyleGAN3.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_VScode.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_VScode.ipynb deleted file mode 100644 index e4da4986..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_VScode.ipynb +++ /dev/null @@ -1,366 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "xygiFz3F15TQ" - }, - "source": [ - "# コードの編集環境とGitHub Copilot\n", - "\n", - "この章では、Pythonを始め様々なプログラミング言語のソースコードを編集するための環境として、VS Codeを紹介する。 \n", - "また、GitHub Copilotという、大規模言語モデルを使ったコード補完ツールを紹介する。\n", - "\n", - ":::{note}\n", - "他のノートブックと同様に、Macユーザーは`Ctrl`を適宜`Command`に置き換えて読んでほしい。\n", - ":::\n", - "\n", - "免責事項として、本章の記述は2023年7月時点のもの(著者の理解)であり、アップデート等によって内容が不正確となる可能性があることを予めご了承いただきたい。 \n", - "また、一般論として、環境構築に伴うエラーの解決は、使用環境,バージョンや設定などに依存するため、本章の記述をそのまま適用できない場合があること、\n", - "インストール等に関する種々のトラブルについて著者は責任を負わないこともあわせてご了承いただきたい。 \n", - "これも一般論だが、OSに備わっているバックアップ機能(Windows バックアップ, TimeMachine)などで、常時バックアップは取るようにしよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EvTOzAC173gT" - }, - "source": [ - "## Visual Studio Code (VS Code)の導入\n", - "\n", - "エディタは様々なものがあるが、VS Codeは機能が豊富かつユーザー数が多い(=情報も豊富な)ため、最もオススメしやすいエディタである。 \n", - "とくに拡張機能が便利で、言語ごとに様々な拡張機能が用意されている。著者も紆余曲折ありVS Codeを95%位の割合でメインエディタとして使っている。\n", - "\n", - "### インストール方法\n", - "\n", - "1. VScodeのインストールは、[公式サイト](https://code.visualstudio.com/)またはOS毎のStore系のソフト(Microsoft Store, Mac App Store)からインストールする。\n", - "2. インストール後、VScodeを起動すると、日本語化を促されるので、必要であれば指示に従う。\n", - "3. 初めてPythonのコードをVS Codeで作成/開く際に、拡張機能のインストールを促されるかもしれない。その時は、インストールを許可しよう。\n", - "4. その他、必要に応じて拡張機能を導入したり、フォントを変更したりすると良い。表示サイズなどはショートカットで拡大(`Ctrl`+`+`)・縮小(`Ctrl`+`-`)できる。\n", - "\n", - "#### Windows+WSLの導入例\n", - "\n", - "著者はWindowsユーザーではないので、情報が古い可能性があるがご容赦頂きたい。\n", - "\n", - "1. Storeまたは[Webページ](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)からインストールする\n", - "\n", - " \n", - " \n", - "\n", - "2. 起動すると、日本語化を提案してくれるので日本語で使いたければ、インストールして再起動をクリック\n", - "\n", - " \n", - "\n", - "3. ターミナルから新しいターミナルを開くと規定のターミナルが開く(Windowsの場合だとpowershell?)\n", - " ∨記号から、Ubuntu(WSL)を選択すると、Ubuntu(Linux)ターミナルを起動することが出来る\n", - "\n", - " \n", - "\n", - " \n", - " \n", - "\n", - "\n", - "### Pythonコードの編集\n", - "\n", - "1. 適当なPythonファイルを作成してみよう。[ファイル]→[新しいファイル]で新規ファイルを作成する。 \n", - " その際**ファイルの種類を入力するか、ファイル名を入力してください**などという表示がでるのでpythonと打ち、Pythonファイルを作成する。 \n", - " Untitled-1などというファイルが作成されるので、`Ctrl+S`で保存しようとすると、ファイル名を入力するように促される。 \n", - " その際、適当な名前をつけてみよう。例えば`sample_code.py`などとする。\n", - "2. ファイルを編集したら、保存(`Ctrl+S`)しよう。編集内容が残っている場合は(標準では)ファイル名の横に丸◯が表示されるので、わかりやすい。\n", - " Pythonコードだけでなく、様々なファイルを編集したり閲覧したりすることができるので試してみよう。(例: pdfファイルをVS Codeにドラッグ&ドロップしてみよう)\n", - "3. 拡張子に応じて、なんのプログラミング言語で書かれたソースコードなのかを推定して、色分けしてくれたりする。\n", - "4. また、VS Codeでは、\"フォルダを開く\"ことで複数のソースコードを効率的に編集したりすることもできる。\n", - "\n", - "\n", - "### ターミナルの起動\n", - "\n", - "VS Codeでは、ターミナルをVS Code内で起動することができる。 \n", - "[ターミナル]タブから新しいターミナル(規定のターミナル)を起動することができ、画面の上下や左右などに分割して表示することができる。 \n", - "したがって、ソースコードを編集しながら実行したりといった作業がしやすい。\n", - "\n", - "Windowsの場合は、WSL(Windows Subsystem for Linux)をインストールしておくと、Linuxのターミナルを使うことができる。 \n", - "MacやLinuxの場合は言うまでもなく、規定のターミナルが開くので、Unix/Linuxコマンドを使えば良い。\n", - "\n", - "よく使うLinuxコマンドを下記の表にまとめる:\n", - "\n", - "|コマンド|説明|\n", - "|:--|:--|\n", - "|`ls`|カレントディレクトリのファイル一覧を表示する|\n", - "|`cd`|ディレクトリを移動する|\n", - "|`pwd`|カレントディレクトリのパスを表示する|\n", - "|`mkdir`|ディレクトリを作成する|\n", - "|`rm`|ファイルを削除する(ゴミ箱を経由しないので使用には注意すること)|\n", - "|`cp`|ファイルをコピーする|\n", - "|`mv`|ファイルを移動する|\n", - "|`cat`|ファイルの中身を表示する|\n", - "|`head`|ファイルの先頭を表示する|\n", - "|`tail`|ファイルの末尾を表示する|\n", - "|`grep`|ファイルの中から文字列を検索する|\n", - "|`echo`|文字列を表示する|\n", - "|`chmod`|ファイルのアクセス権を変更する|\n", - "|`sudo`|root権限でコマンドを実行する|\n", - "\n", - "それぞれのコマンドの使い方やオプションについては網羅的に説明することはしないので、適宜調べて使い方を覚えてほしい。 \n", - "Chat GPTなどに尋ねてみるのも良い。\n", - "\n", - "ターミナルからPythonコードを実行する際は、\n", - "\n", - "1. `python`コマンドでPythonの対話環境を起動して使う\n", - "2. `python`コマンドに続けてファイル名を入力し、そのファイルを実行する\n", - "\n", - "の2つの方法がある。最初は1の方法でも良いが、コードで実現したい作業が大きくなるにつれ、\n", - "作成したソースコードを後者の方法で実行することが多くなるはずだ。\n", - "\n", - "```bash\n", - "python sample_code.py\n", - "```\n", - "\n", - "※システムによっては`python3`などとバージョンを明示的に指定しないといけない場合もあるので注意すること。 \n", - "Pythonをコマンドラインで使う際に毎回`python`などと入力するのが面倒なら、\n", - "エイリアスを設定して別ののコマンド(著者は`py`としている)に置き換えてしまうのも良い。\n", - "\n", - "(Linuxコマンドやシェルについての知識が少しだけ必要になるが)詳しい方法については「python コマンド エイリアス」などで検索してみよう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 授業資料(.ipynb)をVS codeで実行・編集する\n", - "\n", - "VS Codeを使うと、ローカル環境で.ipynbファイルを実行・編集することができる。\n", - "著者も、この授業資料の作成にはVS Codeを使っている。\n", - "\n", - "以下で紹介するGitHub Copilotとの相性も良いので、今後プログラミング学習を継続するつもりだ、という方は、\n", - "VS Codeでの.ipynbファイルの実行・編集も是非やってみてほしい。\n", - "\n", - "### 授業資料のダウンロード方法\n", - "\n", - "本授業資料の.ipynbファイルは、GitHubのレポジトリかBookの各ページからダウンロードすることができる。\n", - "\n", - "* 方法1: GitHubの[レポジトリ](https://github.com/SotaYoshida/Lecture_DataScience)からダウンロードする.\n", - " `<>Code`という緑色のボタンをクリックし、`Download ZIP`をクリックすると、全てのファイルをダウンロードできる。\n", - " 展開したフォルダ内の`notebooks`というディレクトリが、本授業資料の.ipynbファイルがある場所である。\n", - " \n", - " \n", - "\n", - "* 方法2: Bookの各ページからダウンロードする. ブックの各章の上部にダウンロードボタン(下向き矢印)があるので、そこから`.ipynb`形式を選択し、ダウンロードすれば良い。\n", - " \n", - "\n", - "### ipynb形式のファイルをVS Codeで開く&実行する\n", - "\n", - "実行には当然Python環境が必要なので、インストール済みであるとする。\n", - "\n", - "1. ターミナルから \n", - "\n", - " ```bash\n", - " pip3 install jupyter\n", - " ```\n", - " などとして、Jupyterをインストールしておく。\n", - "2. VS Codeを起動し、ダウンロードした`ipynb`ファイルを開く。\n", - "3. コードセルを実行するには、`Shift+Enter`を押す。または、コードセルの左側にある`▶︎`をクリックする。このとき、複数のPython環境がインストールされている場合は、どのPython環境で実行するかを選択する必要がある。\n", - "4. コードセルの実行結果が表示される。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## GitHub Copilot\n", - "\n", - "GitHub Copilotは、GitHubがOpenAIと共同で開発したコード補完ツールである。 \n", - "背後には、GPT-3ベースのOpenAI Codexが動いており、文字通りcopilotとして様々なコードやスニペットを提案してくれる。\n", - "\n", - "GitHub Copilotは、VS Codeなどの拡張機能としても使用することができる。\n", - "ただし、GitHub Copilotが生成するコードは完璧ではないため、使う際は、**提案されたコードを注意深く確認し、必要に応じて修正を行う必要がある**ことは言うまでもない。\n", - "\n", - "GitHub Copilotを使うには、まず、GitHub Copilotのベータ版に登録する必要がある。学生は、学生証などを提出することで、無料で登録・使用することができる。上手く使いこなせれば、かなりの生産性向上が期待できるツールであり、私も日々の研究において活用している。\n", - "\n", - "もちろん、自身の意図を100%反映したコードを生成してくれるわけではないが、コードの骨組みを作ってくれるため大幅に作業が楽になることも多い。ときに「こんな書き方もあるのか」という気づきを与えてくれたりもする。\n", - "\n", - "\n", - "### VS Codeへの導入\n", - "\n", - "1. GitHub Copilotに登録する。この際、GitHubアカウントを作成する必要がある。\n", - " 既にGitHubアカウントを持っている場合は、そのアカウントでログインする。 \n", - " 「Github Copilot 学生申請」などで検索すると、学生向けの登録方法が見つかる。\n", - " 認証が済むと、GitHubのアカウントがPROアカウントになり、Copilotを使うことができるようになる。\n", - "2. 次に、[Copilotのページ](https://github.com/features/copilot/)から、Start my free trialをクリックし、指示に従う。\n", - "\n", - "3. VS Codeのアカウント(人型)のアイコンから、GitHubアカウントにログインする。\n", - "\n", - "4. VS Codeの拡張機能タブから[GitHub Copilot]などと検索したのち、拡張機能をインストールする(2.でインストールが始まるかも)。その後指示に従い、インストールを完了する。\n", - "\n", - "### 試してみよう\n", - "\n", - "試しに著者の環境(VS Code)で「適当な二次元データのヒートマップを描画するコードは以下のようになる」などと打つと... \n", - "以下のように、自身で入力した際よりも薄い色でコード(場合によっては複数行)が提案される。\n", - "\n", - "\n", - "\n", - "Copilotの提案を受け入れるには`Tab`キーを押し、棄却する場合には`Esc`を押せば良い。複数行に渡る場合も同様である。\n", - "こうした作業を繰り返して生成されたコードを実行してみよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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xv333x+HDx+OW265pe5dAwAdrvYg8pnPfCYOHjwYd999d7zxxhvxe7/3e/Hd7373PQ+wMjZVL7G9/UDnPhhcugR81Uuslypdir20f6XHe8kV84valfRv/bO/KNpW1fN5fHblvUXt/tfdq4ralc5xUXq9l57b0jk4Sq+9TV/8w6J2a77z86J2X7nx0qJ2Ver0eT94r6xzVnsQiYhYvXp1rF69ejx2BQB0kY6qmgEAJhdBBABII4gAAGkEEQAgjSACAKTpabfb7exOnEir1YpGoxH732qa3OwUlZYffvLy87p6n3XIKmWruuS6tKS1yn2WntvSa+W2+14oavenf/IHRe1Ky21Lj6Pqa6XqstzScS5Rej2VHmtp36ouza76/Ue58rFarVbMndmIZnP0z293RACANIIIAJBGEAEA0ggiAEAaQQQASCOIAABpBBEAIM24rL5L9Upr1jPm6iit9y89hlJVz6tRur2s+RJe/OU7Re1KroGq561Yun5zUbsv3vCBonal84Os/uCConYPbtld1K5U1fOmlB5Hlb9DpddTabvSa6XquVqqfv+ZLPN+ZHJHBABII4gAAGkEEQAgjSACAKQRRACANIIIAJCmp91ut7M7cSKtVisajUbsf2v0ZYRLKdmqX6ePcWkJZUbpc0S1S7ZHlJVblpaLlpY0l5Z4Diw8u6hdqapLS6suuc5Sct6yrveqdfr7z2TRarVi7sxGNJujf367IwIApBFEAIA0gggAkEYQAQDSCCIAQBpBBABIM2FW31WydXxVlh+Wlm5mKT2365/9RVG70lLQ0tLXTnbL139S1K50tdyqlZ6zDSuuLmp33srHitqVrvpbdf9KVfk7WXXZeNWr6paumFxamu0zo3O4IwIApBFEAIA0gggAkEYQAQDSCCIAQBpBBABII4gAAGl62u12O7sTJ9JqtaLRaMT+t0ZfRniiKK1tL1VlDXzVfStVOldC1cuYl86rUDrfSKmtOw8UtatyTorSORoGFp5d1K5kXpqI8uvznGtWF7W76jM3FbUrHbvS+VVKt1c6zlXPTVPyO1T1OSvV6fN5lL4PVP3+0+1arVbMndmIZnP0z293RACANIIIAJBGEAEA0ggiAEAaQQQASCOIAABp3lfXhu+9997493//99i2bVtMmzYt3nnnnbp2FRGdXwJWqpP7V9q3qs9F1piUluNVXfb4amHpZpXjUnVZbtVLtlddlltq0SVzKt1e1WW5pUqu5dIy1azfx6rfV0q3pyy3frXdETly5EjcdNNN8YUvfKGuXQAAXa62OyJ/9Vd/FRERGzdurGsXAECXqy2InIqhoaEYGhoa+brVKptREwDoTh31sOrg4GA0Go2RV39/f3aXAIAajSmIrF27Nnp6ek762rFjxyl3Zt26ddFsNkdee/bsOeVtAQCdb0x/mlmzZk2sXLnypG0WLlx4yp3p7e2N3t7eU/55AKC7jCmIzJ49O2bPnl1XXwCASaa2h1V3794db7/9duzevTuOHj0a27Zti4iIiy++OM4666zK99fJ829MFFlztaz5zs+L2pXOSVG1quctKFW6vSqXgC/ZVkT5uSg9t6Xzg5T2r/R4q76msubCKGlXOialsn5vs8Y4a3sTQW1B5O67746vf/3rI1///u//fkREvPjii7F06dK6dgsAdJHaqmY2btwY7Xb7PS8hBAD4jY4q3wUAJhdBBABII4gAAGkEEQAgTU+73W5nd+JEWq1WNBqN2P9WM/r6qi0tY+w6veysdBnz0mW9q95eleW2dew3Q+m1snT95qJ2pWW+pUr7V3qtlKp66fmSayDr97bT31c4Na1WK+bObESzOfrntzsiAEAaQQQASCOIAABpBBEAII0gAgCkEUQAgDTKd7uUkrdTV3U5a9UrvnayB7fsLmq3+oMLitpVXR5bddlrp6tyXLLeU7LKy7031kv5LgDQFQQRACCNIAIApBFEAIA0gggAkEYQAQDSCCIAQJr3ZXeAUzMRauA7eXn6iPIxzppXocr9lu7zKzdeWtRuzXd+XtSudL6R0jlYJtv8OhNhbpqJci44de6IAABpBBEAII0gAgCkEUQAgDSCCACQRhABANIo3yUiysoeqy6zU7Z3fBnlwNsPtIq2Vdq30jLfTl96vnS/z2x/vahdablt6fn45OXnFbXLKJWveownW2n2ZOKOCACQRhABANIIIgBAGkEEAEgjiAAAaQQRACCNIAIApDGPCBExuWrvM+ZUiKh+jEvnriiZa6LquRxKZc0hUfW5KJ3PI0vG73fV+6x6rhs6hzsiAEAaQQQASCOIAABpBBEAII0gAgCkEUQAgDS1le/+6le/ir/+67+OF154Id54442YN29e/Pmf/3n85V/+ZUybNq2u3cKoskpVS5Xut8ol4Ksueez07XW6yXa8JTq9RJpTV1sQ2bFjRwwPD8ejjz4aF198cbz88stx2223xeHDh2P9+vV17RYA6CK1BZHrr78+rr/++pGvFy5cGDt37oyHH35YEAEAImKcZ1ZtNpsxY8aME/770NBQDA0NjXzdapXNpAcAdKdxe1h1165d8cADD8TnPve5E7YZHByMRqMx8urv7x+v7gEACcYcRNauXRs9PT0nfe3YseOYn9m7d29cf/31cdNNN8Vtt912wm2vW7cums3myGvPnj1jPyIAoGuM+U8za9asiZUrV560zcKFC0f+e9++fTEwMBBLliyJr371qyf9ud7e3ujt7R1rlwCALtXTbrfbdW187969MTAwEIsWLYp//ud/jqlTp47p51utVjQajdj/VjP6+vpq6iVQtapXy51sjB/drtVqxdyZjWg2R//8ru1h1b1798bSpUvj/PPPj/Xr18fBgwdH/u3cc8+ta7cAQBepLYg899xzsWvXrti1a1fMnz//mH+r8SYMANBFaquaWblyZbTb7eO+AAAirDUDACQSRACANIIIAJBGEAEA0ozrWjPQTSbKXA4lx1H1MZRub6KMcanJdrxQwh0RACCNIAIApBFEAIA0gggAkEYQAQDSCCIAQBrlu3ACE6WEspOPo5P7VofJdrxQwh0RACCNIAIApBFEAIA0gggAkEYQAQDSCCIAQBpBBABIYx4RJgxLrFPKtVI/Y0wpd0QAgDSCCACQRhABANIIIgBAGkEEAEgjiAAAaZTvMmEoA6RU6bWiBPXUGRNKuSMCAKQRRACANIIIAJBGEAEA0ggiAEAaQQQASKN8F+AElKBC/dwRAQDSCCIAQBpBBABII4gAAGkEEQAgjSACAKQRRACANLXOI/KpT30qtm3bFgcOHIhzzjknli1bFn/7t38b8+bNq3O3AExSrx48XNTOHDGdo9Y7IgMDA/Gtb30rdu7cGU888US88sor8elPf7rOXQIAXaSn3W63x2tn3/72t2P58uUxNDQU73//+0dt32q1otFoxP63mtHX1zcOPQSgm7kj0hlarVbMndmIZnP0z+9xm+L97bffjsceeyyWLFlywhAyNDQUQ0NDI1+3Wq3x6h4AkKD2h1W/9KUvxZlnnhkzZ86M3bt3x9NPP33CtoODg9FoNEZe/f39dXcPAEg05iCydu3a6OnpOelrx44dI+3vuuuu+NnPfhbf//73Y+rUqXHzzTfHif4atG7dumg2myOvPXv2nPqRAQAdb8zPiBw8eDDeeuutk7ZZuHBhTJs27T3ff+2116K/vz/+4z/+IxYvXjzqvjwjAsBYeEakM9T6jMjs2bNj9uzZp9Sx4eHhiIhjngMB6lXyxuxNmYnCtdx9antY9Yc//GH8+Mc/jg9/+MNxzjnnxCuvvBJf/vKX46KLLiq6GwIATHy1Pax6xhlnxL/927/Fxz72sbjkkkvi1ltvjSuvvDI2b94cvb29de0WAOgitd0R+d3f/d144YUX6to8ADABWGsGAEgjiAAAaQQRACDNuE3xDuRQzgh0MndEAIA0gggAkEYQAQDSCCIAQBpBBABII4gAAGkEEQAgjXlEAH5Lrx48XNTOnC7wXu6IAABpBBEAII0gAgCkEUQAgDSCCACQpqOrZtrtdkREHGq1knsCcGLvHiqrmmn1Hq25J9AZfvO5/ZvP8ZPp6CBy6NChiIi4+ML+5J4AAGN16NChaDQaJ23T0y6JK0mGh4dj586dcdlll8WePXuir68vu0tdr9VqRX9/v/GsgLGsjrGslvGsjrE8Ne12Ow4dOhTz5s2LKVNO/hRIR98RmTJlSvzO7/xORET09fW5CCpkPKtjLKtjLKtlPKtjLMdutDshv+FhVQAgjSACAKTp+CDS29sb99xzT/T29mZ3ZUIwntUxltUxltUyntUxlvXr6IdVAYCJrePviAAAE5cgAgCkEUQAgDSCCACQpuuCyKc+9alYsGBBnHbaaXHeeefFZz/72di3b192t7rOr371q7j11lvjwgsvjNNPPz0uuuiiuOeee+LIkSPZXetK9957byxZsiTOOOOMOPvss7O703UeeuihuOCCC+K0006L6667Ln70ox9ld6krvfTSS3HjjTfGvHnzoqenJ5566qnsLnWtwcHBuOaaa2L69OkxZ86cWL58eezcuTO7WxNS1wWRgYGB+Na3vhU7d+6MJ554Il555ZX49Kc/nd2trrNjx44YHh6ORx99NLZv3x5///d/H4888kj8xV/8RXbXutKRI0fipptuii984QvZXek63/zmN+POO++Me+65J37605/GVVddFZ/4xCfiwIED2V3rOocPH46rrroqHnrooeyudL3NmzfHqlWrYsuWLfHcc8/Fr3/96/j4xz8ehw+XLXBIua4v3/32t78dy5cvj6GhoXj/+9+f3Z2udt9998XDDz8cv/zlL7O70rU2btwYd9xxR7zzzjvZXeka1113XVxzzTXx4IMPRsT/XWOqv78/br/99li7dm1y77pXT09PPPnkk7F8+fLsrkwIBw8ejDlz5sTmzZvjIx/5SHZ3JpSuuyPy/3r77bfjscceiyVLlgghFWg2mzFjxozsbjCJHDlyJLZu3RrLli0b+d6UKVNi2bJl8YMf/CCxZ3CsZrMZEeE9sgZdGUS+9KUvxZlnnhkzZ86M3bt3x9NPP53dpa63a9eueOCBB+Jzn/tcdleYRN588804evRozJ0795jvz507N954442kXsGxhoeH44477ogPfehDccUVV2R3Z8LpiCCydu3a6OnpOelrx44dI+3vuuuu+NnPfhbf//73Y+rUqXHzzTdHl/+FqTJjHcuIiL1798b1118fN910U9x2221JPe88pzKWwMSzatWqePnll+Mb3/hGdlcmpPdldyAiYs2aNbFy5cqTtlm4cOHIf8+aNStmzZoVH/jAB+LSSy+N/v7+2LJlSyxevLjmnna+sY7lvn37YmBgIJYsWRJf/epXa+5ddxnrWDJ2s2bNiqlTp8b+/fuP+f7+/fvj3HPPTeoV/I/Vq1fHM888Ey+99FLMnz8/uzsTUkcEkdmzZ8fs2bNP6WeHh4cjImJoaKjKLnWtsYzl3r17Y2BgIBYtWhQbNmyIKVM64gZZx/htrkvKTJs2LRYtWhTPP//8yEOVw8PD8fzzz8fq1atzO8ek1m634/bbb48nn3wyNm3aFBdeeGF2lyasjggipX74wx/Gj3/84/jwhz8c55xzTrzyyivx5S9/OS666CJ3Q8Zo7969sXTp0jj//PNj/fr1cfDgwZF/83+iY7d79+54++23Y/fu3XH06NHYtm1bRERcfPHFcdZZZ+V2rsPdeeedsWLFirj66qvj2muvjfvvvz8OHz4ct9xyS3bXus67774bu3btGvn61VdfjW3btsWMGTNiwYIFiT3rPqtWrYrHH388nn766Zg+ffrIM0uNRiNOP/305N5NMO0u8p//+Z/tgYGB9owZM9q9vb3tCy64oP35z3++/dprr2V3rets2LChHRHHfTF2K1asOO5Yvvjii9ld6woPPPBAe8GCBe1p06a1r7322vaWLVuyu9SVXnzxxeNehytWrMjuWtc50fvjhg0bsrs24XT9PCIAQPfyUAAAkEYQAQDSCCIAQBpBBABII4gAAGkEEQAgjSACAKQRRACANIIIAJBGEAEA0ggiAEAaQQQASPN/AIw9mYIwx9R+AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#適当な二次元データのヒートマップを描画するコードは以下のようになる:\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "\n", - "# 2次元データの生成\n", - "x = np.random.randn(1000)\n", - "y = np.random.randn(1000)\n", - "\n", - "# ヒストグラムの描画\n", - "plt.hist2d(x, y, bins=50, cmap='Blues')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "もう少し具体的にカラーマップも指定してみよう。以下のコード例は\n", - "「適当な二次元データのヒートマップを作成するコード、但しカラーマップはjetを用いる。」と入力したあとに提案されたコードである。" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Yw/nLkuWLMG5557rfHfOOefg61//ep16NL+47bbbsGXLFlx//fUAgAsuuAA///nPsW3bNg0UxLygpjEKmUwGl156KXbt2jX1Xblcxq5du7BmzZpadmVeMjk5iU2bNuEb3/gGvvvd72L58uX17tK84corr8SPfvQj7N27d+qzatUq3HDDDdi7d68GCRFcfvnlgTTcn/zkJ3jzm99cpx7NL0ZHR9Hc7P7UplIplMvlOvVICD9qLj1s3rwZN954I1atWoXLLrsM27dvx/Hjx7Fhw4Zad2XesXHjRjz22GP41re+hc7OTgwMDAAAurq60NbWVufezW06OzsDsRzt7e1YuHChYjwM/uAP/gBr167Fvffei3/37/4dnnvuOTz88MN4+OGH6921ecF73vMe3HPPPTjzzDNx3nnn4Yc//CHuv/9+3HTTTfXumhAzY7IOfO5zn5s888wzJzOZzORll102+eyzz9ajG/MOANN+vvzlL9e7a/OS3/iN35i85ZZb6t2NecH//t//e/L888+fzGazkytWrJh8+OGH692lecPQ0NDkLbfcMnnmmWdOtra2Tr7lLW+Z/C//5b9MFgqFendNiBmhZaaFEEIIEYrWehBCCCFEKBooCCGEECIUDRSEEEIIEYoGCkIIIYQIRQMFIYQQQoSigYIQQgghQtFAQQghhBChaKAghBBCiFA0UBBCCCFEKBooCCGEECIUDRSEEEIIEYoGCkIIIYQI5f8DoMI0uO77tY8AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import matplotlib.cm as cm\n", - "\n", - "#データの作成\n", - "x = np.arange(0, 10, 0.1)\n", - "y = np.arange(0, 10, 0.1)\n", - "X, Y = np.meshgrid(x, y)\n", - "Z = np.sin(X) + np.cos(Y)\n", - "\n", - "#ヒートマップの作成\n", - "plt.pcolor(X, Y, Z, cmap=cm.jet)\n", - "plt.colorbar()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1回目は`seaborn`ライブラリを使っていたのに対し、2回目では`matplotlib.cm`からカラーマップ`cm`を呼んでいる事がわかる。\n", - "ランダムなデータの作り方も1回目と2回目、あるいはユーザーの実行ごとに変わったりすることに注意しよう。\n", - "\n", - "繰り返しになるが、GitHub Copilotの提案が本当に自身の意図したものとなっているかについては、**常にユーザーである我々が注意して確認する必要があること**は肝に命じておこう。" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 練習相手・チューターとしてのCopilot/Chat GPT\n", - "\n", - "この授業を履修する皆さんにはぜひ、GitHub CopilotやChat GPTを、自身の学習のための練習相手や24時間対応のTAやチューターのように活用してもらいたい。 \n", - "大規模言語モデルを使用したチャットボット(Chat GPT)は、プロンプトと呼ばれる指示文を適切に与えることで、その文脈に沿った文章を生成してくれる(かもしれない)という性質のものである。\n", - "\n", - "自分が望むような文章を生成する、あるいは文章生成を\"回答\"とみなし活用するためには、プロンプトの与え方に工夫が必要になる。 \n", - "「何がわからないのかも分からない」状態では質問のしようがないのと同様、指示が漠然としているとおそらく有効な回答を引き出す蓋然性は低くなってしまう。\n", - "プログラミング学習に活用するための適切なプロンプトを工夫することは、それ自体が**自身のやりたい作業を言語化する**という作業になっていて、一定の学習効果が期待される。\n", - "\n", - "皆さんの主体的な学習にむけて、幾つかChat GPTの使用例を紹介してみよう。 \n", - "適当な指示文を与えてみる。\n", - "\n", - "\n", - "\n", - "\n", - "もちろん、ここでは具体的なファイル構造を示したりファイルを与えているわけではないので、正しく動く保証も全く無いわけだが、概ねもっともらしいコードを生成してくれている。\n", - "仮に提案されたコードがうまく動かない/使えないとき、うまく行かない理由と関連していそうな情報を与えてやったりすることで、解決策を提示してきたり、補足知識を与えてくれたりするという例も見せよう。\n", - "\n", - "\n", - "\n", - "\n", - "細かいことを言うと、2.の1つめの画像の提案(`encoding=\"SHIFT-JIS\"`)は、サポートされていないオプションの指定となりエラーになるが、(言語モデルはPythonの文法、とくにPythonの中での文字コードの指定に相当するコードを\"理解\"しているわけではないため)推論としては真っ当なものになっている。 \n", - "\n", - "実は上の画像で挙げた例は、実際にPythonでcsvやエクセルファイルを読み書きしようとする際に、よく遭遇するエラーの例になっていて、\n", - "私はそのことを知っているため、上のようなある種\"誘導的な\"プロンプトを与えることで、より有用な回答を得られるよう仕向けている。\n", - "2.の2つめの画像で、より適切なオプションを指定するためにもう少しヒントをあげているという訳だ。\n", - "\n", - "\n", - "\"自身の理解やこれまでの思考・試行を開示した上で質問をする\"ことが、他人に質問する際に有効な回答を引き出すための近道であることと同じで、\n", - "言語モデルを対話的に活用する上では、こうしたコツを抑えておくと良いかもしれない。\n", - "\n", - "また、大規模言語モデルの性質・特性やその背景にある基礎について理解を深めることも非常に重要な姿勢だと感じる。 \n", - "理研AIPシンポジウムでの岡崎直観先生の特別講演[Youtubeへのリンク](https://youtu.be/PUuk4Cv-ycg)が非常に参考になる。ぜひ一度視聴してみてほしい。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "include_colab_link": true, - "name": "Python_misc_python_env_forWin11.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_numpy.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_numpy.ipynb deleted file mode 100644 index c6fce304..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_numpy.ipynb +++ /dev/null @@ -1,889 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5ObsFxycyq-y" - }, - "source": [ - "# Numpyについて" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rFUjRPktyouP" - }, - "source": [ - "この授業で使うノートブックや、巷に転がってるPythonのコードでは、たびたび`Numpy`というものが使われています。\n", - "この補足ノートではその`Numpy`について説明します。\n", - "\n", - "`numpy`は数値演算ライブラリで、機械学習・画像音声処理などなど様々な場面で使用されるライブラリです。 \n", - "その特徴としては色々ありますが、\n", - "* 配列を用いた計算が楽かつ高速にできる \n", - "* その他数学的な処理がパッケージ化されている\n", - "\n", - "といったところでしょうか。\n", - "\n", - "1番目の点ですが、一般にPythonのような動的型付け言語に分類される言語は、Cなどの静的言語と呼ばれる言語に比べて、計算時間が長くかかってしまうことが多いです。\n", - "とくに、コンピュータを用いたシミュレーションの至るところに現れる配列の操作や、行列やベクトルに対する演算でその差が顕著なものとなります。\n", - "\n", - "一方、Pythonで読み出せる`numpy`ライブラリは、中身はC言語(およびFortran)で実装されていて、かつBLAS(行列演算ライブラリ)など最適化された線形計算ライブラリを使用できるためPythonの書きやすさを維持したまま、高速な計算を実現することができます。\n", - "\n", - "参考: NASAのModeling Gruによる数値演算速度の比較 \n", - "https://modelingguru.nasa.gov/docs/DOC-1762 \n", - "https://modelingguru.nasa.gov/docs/DOC-2783\n", - "\n", - "2番目の点 \n", - "numpyでは数学で用いる種々の関数(sin,cos,log,log10, etc.)が定義されていて簡単に読み出すことができます。また、乱数を生成してサイコロを振ったりすることも簡単です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4yAkLESw18J3" - }, - "source": [ - "## numpy.array" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n7PehTnq2FO7" - }, - "source": [ - "それでは`numpy`を`import`して、使ってみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1GqJqy6E2Fx0", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import numpy as np #numpyとかくと長いのでnpという名前で使う\n", - "\n", - "a = [ i for i in range(1,5001) ]\n", - "b = np.array(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vMRwzNrg2x7c" - }, - "source": [ - "まずは、1から5000までの整数が並んだリスト```a```と、 \n", - "それを```np.array()```関数に突っ込んだ```b```を定義してみました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "NfUOTAtO3BUl", - "outputId": "d56e79f4-0cb4-4a30-b0cc-5ccaaffd94bf", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a [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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000]\n", - "b [ 1 2 3 ... 4998 4999 5000]\n" - ] - } - ], - "source": [ - "print(\"a\", a)\n", - "print(\"b\", b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FMzFJCkV3FPc" - }, - "source": [ - "中身は同じものなのですが、```b```は途中を省略して表示してくれています。気が利いていますね。 \n", - "では`type`を調べてみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "qsO-w49n3My5", - "outputId": "685c671b-f927-42df-dbb8-555dd61ce432", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "aの型 \n", - "bの型 \n" - ] - } - ], - "source": [ - "print(\"aの型\", type(a))\n", - "print(\"bの型\", type(b))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4Vtge_q23TaX" - }, - "source": [ - "```a```は当然リスト型です。 \n", - "一方、```b```は```numpy.ndarray```という型であることがわかりました。\n", - "\n", - "```numpy.ndarray```というのは、numpyのもとで定義されているN-dimensional array、つまりN次元配列の略です。\n", - "\n", - "さて、次にnumpy.array同士の足し算をやってみましょう。 \n", - "リスト(2章のノート)の足し算では、リスト同士の結合を意味していました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "iyhT8VlK3tBy", - "outputId": "bc1c0074-b22c-451b-ef4e-afe64f4c6b57", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000]\n", - "aaの長さ 10000\n" - ] - } - ], - "source": [ - "aa = a + a \n", - "print(aa)\n", - "print(\"aaの長さ\", len(aa))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Bm2CnjvP4huy" - }, - "source": [ - "長さが倍になっています。\n", - "\n", - "一方、numpy.arrayである```b```を足してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "94HlgI5_4obB", - "outputId": "01ee9af3-bed3-46ff-88d9-2f556199a3c9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 2 4 6 ... 9996 9998 10000] 5000\n" - ] - } - ], - "source": [ - "bb= b + b\n", - "print(bb, len(bb))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TyJcH3664ydK" - }, - "source": [ - "というように、要素同士の和になっていることがわかります (長さは5000のまま)\n", - "\n", - "あるいは、3を```b```にかけてみると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Odi9GC2k48cq", - "outputId": "747635c9-145a-422f-d23b-11e2cd75bc64", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 3 6 9 ... 14994 14997 15000] 5000\n" - ] - } - ], - "source": [ - "b3 = 3*b\n", - "print(b3,len(b3))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AsKJ88dJ430w" - }, - "source": [ - "となり、すべての要素が3倍されています。\n", - "\n", - "これはよくよくみると**和**と**スカラー倍**が定義できている.つまり、ベクトルとしての性質を持っている事がわかります。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QfvRell3qWuC" - }, - "source": [ - "## np.dot\n", - "\n", - "データ分析をする際「要素ごとの積をとって和を取る」という操作が頻繁に表れます。 \n", - "たとえば$a=[1.0,3.0,4.0]$と$b=[-2.0,1.0,5.0]$について$1 \\times (-2) + 3.0 \\times 1.0 + 4.0 \\times 5.0 = 21$といった操作です。\n", - "この操作は数学的には、実数を成分にもつベクトルの内積に対応しますが`numpy`にはこの機能が備わっています。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "PPzYWVp_rIMx", - "outputId": "933d74eb-743b-4700-b879-7e42b2dd1fb6", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "21.0" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a = [1.0,3.0,4.0]\n", - "b = [-2.0,1.0,5.0]\n", - "\n", - "np.dot(a,b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8SOtK2AmrOxV" - }, - "source": [ - "多項式回帰の際の二乗誤差なども\n", - "\n", - "$\\chi^2 = \\sum^N_{i=1} (y_i - (ax_i+b))^2$は$y_i-(ax_i+b)$を$i$番目の成分に持つベクトルの自身との内積になるので、簡単に実装することができます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TBehECU08Xft" - }, - "source": [ - "## ブロードキャスト機能\n", - "\n", - "`numpy`にはブロードキャストと呼ばれる機能が備わっていて`ndarray`同士の二項演算では、形状を揃える機能が備わっています。たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "utqDGLBg8pne", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "x = np.array([1.0, 2.0, 3.0, 4.0])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0SN9arId8s02" - }, - "source": [ - "というベクトル(1次元のndarray)があったときに、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_7Phus0L8yMZ", - "outputId": "21b4268b-fe8a-4028-b3ec-7ba207d6b45d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([3., 5., 7., 9.])" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a = 2.0 \n", - "b = 1.0\n", - "a*x + b " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KWY0AyVv86Uw" - }, - "source": [ - "とすると、$a$でスカラー倍したのち、全ての成分に$b$が足されています。 \n", - "\n", - "$x$を$N$個成分を持つndarrayとして用意しておいて$y$に各点での関数$f(x_i) (i=1,...,N)$の出力を対応させたいときも下で見るようにブロードキャスト機能を使えば簡単に実装できます。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mUqn-XHHsQrc" - }, - "source": [ - "## arange, linspace" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zWCGWdSasV_D" - }, - "source": [ - "```np.arrange(始点,終点,公差)```や```np.linspace(始点,終点,数)```を使うと始点-終点の領域における等間隔な点を生成することができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "c1LeQetVsS9t", - "outputId": "a1c0f41e-eb48-48d6-e36b-31cf0f7e434e", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]\n", - "b [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]\n" - ] - } - ], - "source": [ - "a = np.arange(0.1, 1.0, 1.e-1) #終点は含まれない\n", - "b = np.linspace(1.0,10.0,10)\n", - "\n", - "print(\"a\", a)\n", - "print(\"b\", b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5_OViJTLsse1" - }, - "source": [ - "グラフを連続的に線で繋ぎたいときなどに重宝します" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "jCLpHQOvs7Mw", - "outputId": "cab31fe8-6958-4389-cca0-492feaccc45f", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "y [ 4. 5.91358025 12.7654321 24.55555556 41.28395062\n", - " 62.95061728 89.55555556 121.09876543 157.58024691 199. ]\n" - ] - } - ], - "source": [ - "x = np.linspace(0.0,10.0, 10)\n", - "a = 2.0; b=-0.5; c = 4\n", - "y = a * x**2 + b * x +c #二次関数\n", - "print(\"y\",y) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4Biuqzt-8UR4" - }, - "source": [ - "## 行列・線形代数\n", - "\n", - "ベクトルと同じように、`numpy.array`では二次元配列(つまり行列)を考えることも出来て、たとえば 左上から順に整数1,2,3,...という値をもった3行3列の行列を考えたければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "WZgc67d14spY", - "outputId": "a6bba0cf-9af0-4481-b8e3-f929ab2bae90", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[1 2 3]\n", - " [4 5 6]\n", - " [7 8 9]]\n" - ] - } - ], - "source": [ - "A = np.array( [ [1,2,3],[4,5,6],[7,8,9]] )\n", - "print(A)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p6W4J9Qw5-5e" - }, - "source": [ - "とすれば良い、といった具合です。\n", - "\n", - "他にも、たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "F5QZXmH-6rk-", - "outputId": "e6f2a29f-651c-4d4d-9636-3b2a9274f4c1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "行列B [[ 2. 0.1 -0.2]\n", - " [ 0.1 1.3 0.4]\n", - " [-0.2 0.4 3. ]]\n", - "Bの逆行列は [[ 0.50663777 -0.05147656 0.04063939]\n", - " [-0.05147656 0.80736928 -0.11108101]\n", - " [ 0.04063939 -0.11108101 0.35085343]]\n", - "Bの行列式は 7.3820000000000014\n" - ] - } - ], - "source": [ - "B = np.array( [ [2.0,0.1,-0.2], [0.1,1.3,0.4], [-0.2,0.4,3.0]])\n", - "print(\"行列B\", B)\n", - "print(\"Bの逆行列は\", np.linalg.inv(B))\n", - "print(\"Bの行列式は\", np.linalg.det(B))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nzlbA2Dr7Jeh" - }, - "source": [ - "といったように、線形代数(linalg <- linear algebraの略)で扱うような演算も簡単にできる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ouh3C4rJrzt9" - }, - "source": [ - "## 転置 .T" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HkBsSJvD7ZpP" - }, - "source": [ - "numpyは実はMatplotlibを使ったお絵かきでもよくお世話になる。それは、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "L1Ce9dXM7fU4", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tmp = [ [1,185,72,141], [2,165,50,543],[3,150,48,334],[4,172,65,123]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FtyBOgg17tyc" - }, - "source": [ - "というような入れ子のリストがあったときに、\n", - ">「2番目と3番目の値同士の二次元散布図がかきたい...」\n", - "\n", - "というようなケースがよくある。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "w6z-zdeT75QI" - }, - "source": [ - "このとき、ループをまわしてplotするのはめんどくさい。たとえば「2番目の値だけが入った配列に対して、3番目の値だけが入った配列を用意していっぺんにplotしたい」ときは転置(transpose,T)をつかえば一瞬で実現できる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "y-KkYrPy79aY", - "outputId": "3329b912-1fc6-440f-da9c-b66f57383349", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 1 2 3 4]\n", - " [185 165 150 172]\n", - " [ 72 50 48 65]\n", - " [141 543 334 123]]\n" - ] - } - ], - "source": [ - "ntmp = np.array(tmp).T #numpy.arrayに変換してから転置(transpose)を取りなさいという命令 .T\n", - "print(ntmp)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "h1VTI-0N86-U" - }, - "source": [ - "2番めと3番目の値だけ取り出したいときは、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "scuITZMh89wL", - "outputId": "6067a760-873b-4d70-dd6a-2a62c3d75589", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2番目の要素の配列 [185 165 150 172]\n", - "3番目の要素の配列 [72 50 48 65]\n" - ] - } - ], - "source": [ - "print(\"2番目の要素の配列\", ntmp[1])\n", - "print(\"3番目の要素の配列\", ntmp[2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AucAJOE08_vm" - }, - "source": [ - "とでもすればよいし、図も一度の命令だけで描ける\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OnbKmC4hWH3r" - }, - "source": [ - "あるいは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "xVheE25FWIr7", - "outputId": "30fa17de-4886-43f5-85aa-b9b4e3972bc3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[:,1] [185 165 150 172]\n", - "[:,2] [72 50 48 65]\n" - ] - } - ], - "source": [ - "print(\"[:,1]→\", np.array(tmp)[:,1])\n", - "print(\"[:,2]→\", np.array(tmp)[:,2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Cjn-eUnkWVh-" - }, - "source": [ - "などとしても良い。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "KjepB46w9IH-", - "outputId": "decf2096-bd4d-4d2c-acc3-d054a0bbd8a3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "fig = plt.figure(figsize=(4,4))\n", - "plt.scatter(ntmp[1], ntmp[2]) #要素ごとにループを回したりしなくてよい\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eI1W1DL3Z7Xv" - }, - "source": [ - "文字列を含むリストをndarrayに変換したときの挙動には注意しよう. \n", - "文字列と数値は分けて使うのがオススメ." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "aNw6EUqdZ74j", - "outputId": "619defdf-ad1c-468a-d4d4-c20aeb742a3f", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "t [['Aさん' '170' '55']\n", - " ['Bさん' '160' '50']] data [['Aさん' 'Bさん']\n", - " ['170' '160']\n", - " ['55' '50']]\n", - "type \n" - ] - } - ], - "source": [ - "t = [ [\"Aさん\",170,55], [\"Bさん\",160,50]]\n", - "t = np.array(t)\n", - "data = t.T\n", - "print(\"t\",t, \"data\",data)\n", - "print(\"type\", type(data[1][0])) #文字列になってしまっている" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ENdvCzAI-Vqg" - }, - "source": [ - "(以下、都度追記)" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyORPKsRr7E5ZKXQ43j3EWAJ", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_numpy.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_python_env_forWin11.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_python_env_forWin11.ipynb deleted file mode 100644 index d656f094..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_python_env_forWin11.ipynb +++ /dev/null @@ -1,305 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "xygiFz3F15TQ" - }, - "source": [ - "# Pythonの環境構築 (Windows11版)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EvTOzAC173gT" - }, - "source": [ - "いくつかの方針が考えられるが、下記の導入を推奨とする。\n", - "\n", - "* Windowsターミナル\n", - "\n", - "* Windows Subsystem for Linux2(WSL2)\n", - "\n", - "\n", - ":::{note}\n", - "授業の受講者で環境構築を希望される方は、事前に相談することを強く推奨します。\n", - "とくにWindowsの場合、作成者(吉田)はWindowsユーザーではないので幾つかの情報が古い恐れがあります。\n", - ":::\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_LM9LKt-fBZq" - }, - "source": [ - "## Windowsターミナルの導入\n", - "\n", - "ターミナルとは、CUI(Character User Interface)、つまり \n", - "コマンドなどの文字列のみを用いてコンピュータを操作する環境を指す言葉です。\n", - "\n", - "CUIに対して、普段我々が使っているポインタやウィンドウなどは \n", - "GUI(Graphical User Interface)に相当します。\n", - "\n", - "何故現代においてもCUIが必要なのか、 \n", - "つまりマウスでポインタを動かしたりクリックするのではなく \n", - "一見不便そうな文字列だらけのインターフェースが用いられるのか、 \n", - "そこには*単に映画やドラマでハッカーの邪悪さを演出する*以上の理由があります。 \n", - "\n", - "計算機(コンピュータ)の発展の歴史的側面、パフォーマンス的側面から \n", - "その理由をすべて説明することはしませんが例えば授業で用いた \n", - "```ls```コマンドなどはCUIの利便性を表す一例になっていて、 \n", - "こうしたいわゆる\"機械的\"な操作についてはCUIに軍配が挙がります。\n", - "\n", - "Windows Terminalは、2019年にマイクロソフトがリリースしたターミナルで \n", - "コマンドプロンプトやPowerShellといったWindows独自のCUIに加えて \n", - "後述のWSLを統合的に扱うことができる環境となっています。\n", - "\n", - "\n", - "* Windows10の場合\n", - "\n", - " 後々のことも考えてこれを導入しておこう。 \n", - " MS storeでWindows terminalと検索し、 入手を押す\n", - "\n", - "* Windows11の場合\n", - "\n", - " 標準で入っているのでWindowsボタンで開くメニューから \n", - " 「terminal」などと検索すると出てくる" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rAlPquBCSVud" - }, - "source": [ - "## WSL2の導入" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jutP3oJrDq-1" - }, - "source": [ - "オペレーティングシステム(OS)の源流を遡ると、大まかには2つに大別される。 \n", - "1つがUnix系で歴史が古い。そしてもう1つはお使いのWindowsである。\n", - "\n", - "Unixはあるところで枝分かれし、LinuxやMac OSなどもUnix系に含まれる。 \n", - "サーバー用途のマシンや、スパコンなどの計算機環境では基本的にLinuxがOSとして採用されている。 \n", - "コンピュータの\"計算機\"としての側面や歴史的経緯から \n", - "プログラミング言語・開発環境などもUnix/Linuxとともに発展してきた部分が大きい。\n", - "\n", - "\n", - "一方でWindowsは、一般家庭でのコンピュータの需要拡大とともに独自の進化を遂げてきた。 \n", - "\n", - "Windowsユーザーが、プログラミング環境の構築やLinux-likeな作業をしたい場合 \n", - "方法は幾つかあるが最近だとWindows Subsystem for Linux (通称WSL)を使うのが \n", - "最も簡単かつ安全な方法の1つとされている。\n", - "\n", - "\n", - "この授業ではLinuxの中のUbuntuというディストリビューションを用意して使うことにしよう。 \n", - "Ubuntu自体はLinux OSの中ではGUI環境も良く出来ているディストリビューションで人気が高い。 \n", - "~日本語のシステムフォントがひどいWなんとかというOSよりはフォント・レンダリングも美しい~\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gancuw1N3uAJ" - }, - "source": [ - "* **手順1. WSLと仮想マシンプラットフォームの有効化**\n", - "\n", - " スタートメニューから「コントロールパネル」を検索して開く \n", - " \n", - "\n", - " コントロールパネルの[プログラム]>[Windowsの機能の有効化または無効化] を選択し\n", - " * 「Linux用Windowsサブシステム」\n", - " * 「仮想マシン プラットフォーム」 \n", - " \n", - " の2つにチェックを入れて有効化する(再起動が必要)\n", - "\n", - "\n", - "\n", - "* **手順2. Windows TerminalからWSLのインストール** \n", - "\n", - " スタートメニューからterminalなどと打ち込んで \n", - " Windows Terminalで右クリックして[管理者として実行]する \n", - " このアプリがデバイスに変更を加えることを許可しますか→[はい]\n", - "\n", - " ターミナルに\n", - " ```\n", - " wsl --install\n", - " ```\n", - " と打ち込んで実行(Enter)する \n", - " \n", - " \n", - "\n", - " 大量にヘルプが表示される場合は、\n", - "\n", - " ```\n", - " wsl --install -d Ubuntu\n", - " ```\n", - " と明示的にUbuntuを指定してインストールする\n", - "\n", - "\n", - "* **手順3. Ubuntuの起動**\n", - "\n", - " Ubuntuのウィンドウが開く※ので \n", - " 指示(Press any key to continue...)に従って適当なキーを押す。\n", - "\n", - " ※RyzenのCPUが搭載されたマシンを使っていて \n", - " ウィンドウが開いたときにerror: 0x800701bcが発生している場合は\n", - " [このページ](https://docs.microsoft.com/ja-jp/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package)を参考に \n", - " 「Linux カーネル更新プログラム パッケージ」をダウンロードして実行した後、手順1→2を再度行う。\n", - "\n", - "* **手順4. Ubuntuの初期設定**\n", - "\n", - " しばらくすると```Enter new UNIX username: ``` \n", - " とLinuxシステム用のusernameを求められるので \n", - " 適当なものを入力してEnterを押す \n", - " usernameは半角英数字にしよう。あとは...短い方があとあと便利。\n", - "\n", - " その後\n", - " ```NewPassword```\n", - " とパスワードの設定を求められるので打ち込んでEnter \n", - "\n", - " ```Retype new password```(もっかい打て)と言われるのでもう一度\n", - "\n", - " ユーザー名が緑色で表示されていて、エラーメッセージ等がなければOK\n", - "\n", - " \n", - "\n", - "\n", - "上記の手順以降は、スタートメニューからUbuntuと検索してUbuntuを開いても良いし \n", - "Windows terminalのタブの\"+\"のさらに右にある∨マークから \n", - "Ubuntuを選択すると(あるいはショートカットで)、Windows terminalの上でUbuntuが開く。\n", - "\n", - "なお、デフォルトの設定だとUbuntuを開くとUbuntuのホームディレクトリで開くし \n", - "Windows terminalから開くと、Windows側のホームディレクトリにいる状態で開く\n", - "\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iKAHNa6LSatq" - }, - "source": [ - "## WSL下でのPython環境の構築\n", - "\n", - "※以下では、直接/Windows TerminalのどちらでUbuntu環境を開いている場合も \n", - "便宜上\"Ubuntuターミナル\"と呼ぶことにしよう。\n", - "\n", - "WSL下にPython環境構築をする方法は以下の通り\n", - "\n", - "* **手順1. aptのupdate/upgrade**\n", - "\n", - " Ubuntuターミナルで以下を入力し実行する\n", - " ```\n", - " $sudo apt update\n", - " $sudo apt upgrade\n", - " ```\n", - "\n", - " 注:上の```$```は打ち込むのではなく、 Ubuntuターミナルの末尾にある```$```を指し \n", - " Pythonの対話モードなどで打ち込む場合と区別するための表記。\n", - "\n", - " sudoはコマンドの頭につけることで管理者権限で実行する、という命令を意味します。 \n", - " 実行時に、Ubuntu用に設定したパスワードが要求されます \n", - " 入力しても画面には表示されないので注意しながら打ち込んでEnterを押す。 \n", - " (間違っても再度入力を求めてくれますし、やめたければCtrl+C)\n", - "\n", - " aptはLinux(Debian系)のパッケージ管理システムです。 \n", - " ```\n", - " $sudo apt install xxxx\n", - " ```\n", - " などとして、様々なものを簡単にインストールすることが出来ます。\n", - "\n", - " ※PCの時刻設定がきちんと行われていないと、aptのupdateやupgradeに失敗します。\n", - "\n", - "* **手順2. Pythonのインストール**\n", - "\n", - " Ubuntuには初めからPython3系が含まれていますが、\n", - "\n", - " pythonの最新バージョンをpip込みでインストールしましょう。\n", - " ```\n", - " $sudo apt install python3-pip -y\n", - " ```\n", - " これでpython3.xとpython用のパッケージマネージャpipがインストールされます。\n", - "\n", - "* **手順3. Pythonの対話モードに入ってみよう**\n", - "\n", - " インストールが終わったら```python3```と打ち込んでEnterを押すと \n", - " Pythonの対話モードに入ります。対話モードの中で\n", - " ```\n", - " >print(\"Hello\")\n", - " ```\n", - " などと打ち込んで実行してみましょう。\n", - "\n", - " 打ちかけの作業を消したり、処理を中断する際はCtrl+Cを、 \n", - " 対話モードから抜けたければCtrl+Dを入力します \n", - " (書きかけのコードがあったり処理が実行されているときは先にCtrl+Cで中断してからCtrl+d)\n", - "\n", - "* **手順4. ライブラリのインストール**\n", - "\n", - " ライブラリ・モジュールをインストールしたければUbuntuターミナルから\n", - " ```\n", - " $pip3 install matplotlib\n", - " $pip3 install pandas\n", - " $pip3 install Selenium\n", - " ```\n", - " などを実行します。\n", - "\n", - " Google Colab環境では毎度\n", - " ```\n", - " !pip install japanize-matplotlib\n", - " ```\n", - " などとしましたが、一度インストールしておけば \n", - " コードの実行のたびにpipでインストール作業を行う必要はありません。 \n", - " (ライブラリのimportはセッションごとに必要です)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IGGzjhDdQPP9" - }, - "source": [ - "その他、Linuxコマンドの使い方等については[元のノートブック](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/main/notebooks/Python_misc_python_environment.ipynb)を参照" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "include_colab_link": true, - "name": "Python_misc_python_env_forWin11.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_python_environment.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_python_environment.ipynb deleted file mode 100644 index f072e61b..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_misc_python_environment.ipynb +++ /dev/null @@ -1,935 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "xygiFz3F15TQ" - }, - "source": [ - "# Pythonの環境構築\n", - "\n", - "**Windows11をお使いの方は[こちらのノートブック](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/main/notebooks/Python_misc_python_env_forWin11.ipynb)を参照してください**\n", - "\n", - "手元で作業がしたい、という方に向けて \n", - "ローカル環境にPythonを導入する方法をOSごとに紹介する。 \n", - "\n", - "難易度としてはLinux < Mac << (壁)<< Windowsといった感じ(私見).\n", - "\n", - ":::{note}\n", - "授業の受講者で環境構築を希望される方は、事前に相談することを強く推奨します。\n", - "とくにWindowsの場合、作成者(吉田)はWindowsユーザーではないので幾つかの情報が古い恐れがあります。\n", - ":::" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "sq5ewMLVBX_D" - }, - "outputs": [], - "source": [ - "#動画貼り付け用\n", - "from IPython.display import HTML\n", - "from base64 import b64encode" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6Z6mR5y871Nj" - }, - "source": [ - "## Windowsの場合\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EvTOzAC173gT" - }, - "source": [ - "いくつかの方針が考えられる。\n", - "\n", - "1. Pythonのインストーラを用いてインストールする \n", - " * メリット: Windows環境を汚さない, インストールが楽 \n", - " * デメリット: 他のプログラミング言語などへの拡張性が低い\n", - " \n", - "2. Linux環境を構築する(**推奨**)\n", - " * 2-1. Windows Subsystem for Linux(WSL)(**推奨**) \n", - " * メリット: Windows環境を汚さない, Linuxシェル環境・パッケージマネージャ(Pythonに限らず各種インストールが楽) \n", - " * デメリット: WSL特有の情報を調べる必要がある\n", - "\n", - " * 2-2. デュアルブート \n", - " * メリット: Windowsとは別に好きなLinuxディストリビューションを共存させられる \n", - " * デメリット: ディスク領域の分割などが必要\n", - " 慣れないとデータを吹っ飛ばす危険あり \n", - " (外部ストレージ等でのバックアップ必須です)\n", - "\n", - " * 2-3. その他 (Docker環境など)\n", - "\n", - " * このノートブックでは説明しない" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dSRDbGRtjOUq" - }, - "source": [ - "### 1.の方法" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 335 - }, - "id": "LlF9t8tRCl3-", - "outputId": "9cc59d5f-7f78-4094-d7aa-6fdf370b53bc" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(r'')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LxXDO1L1HSGZ" - }, - "source": [ - "以下のA)B)いずれかの方法でストアを開き \n", - "Python3.8かPython3.9を選び[入手]する。\n", - "\n", - "A) Microsoft Storeを開き、pythonと検索する。\n", - "\n", - "B)コマンドプロンプト※を開き、pythonと入力してEnter→Storeが開く。 \n", - "(※Win10の左下にある検索バーにcmdと打つと出てくる) \n", - "B)の方法だとstore上で古いpythonが開くかもしれないので \n", - "検索バーから再度pythonと検索しよう。\n", - "\n", - "**インストールしたpythonの使い方**\n", - "\n", - "コマンドプロンプト上で\n", - "```\n", - "python\n", - "```\n", - "と実行すると対話モードでpythonが開く。 \n", - "スタートメニューからpythonを起動しても同じ。\n", - "\n", - "\n", - "\n", - "```\n", - "print(\"Hello World\")\n", - "```\n", - "や、\n", - "```\n", - "for i in range(5):\n", - " print(i)\n", - "```\n", - "などを実行してみよう。\n", - "\n", - "Python(対話モード)を終了する際はCtrl+Z(もしくはCtrl+Cを実行後にCtrl+Z)→Enterを押すか、\n", - "```\n", - "exit()\n", - "```\n", - "と入力しEnterを押せば良い。\n", - "\n", - "**Python用のライブラリをインストールする方法**\n", - "\n", - "コマンドプロンプト上で\n", - "```\n", - "pip install matplotlib\n", - "pip install pandas\n", - "pip install Selenium\n", - "```\n", - "などとする。\n", - "\n", - "**ソースファイルの編集と実行**\n", - "\n", - "対話モードだと、長い処理を実現するのには向いていないので、 \n", - "作業をソースコードとしてファイルに書き出し、それを実行したくなる。 \n", - "実行したい場合は、コマンドプロンプト上で\n", - "```\n", - "python hogehoge.py\n", - "```\n", - "などとすると```hogehoge.py```というファイルに書いた処理が実行される。\n", - "\n", - "例: デスクトップにあるソースコードを実行する場合\n", - "\n", - "```\n", - "chdir Desktop \n", - "```\n", - "などして、適宜カレント(現在いる)ディレクトリの変更をするか\n", - "```\n", - "python Desktop/hogehoge.py\n", - "```\n", - "など実行するソースの(相対 or 絶対)パスの指定が必要になる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rAlPquBCSVud" - }, - "source": [ - "### 2-1. の方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jutP3oJrDq-1" - }, - "source": [ - "Windowsの中にLinux(とくにUbuntu)を入れる方法\n", - "\n", - "[Windows11用の資料](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/2021/notebooks/Python_misc_python_env_forWin11.ipynb)も参考になります。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 335 - }, - "id": "9Es-IU7ZFaEq", - "outputId": "b5ef62a9-2efd-4acf-d974-bc71b06cd521" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(r'')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iKAHNa6LSatq" - }, - "source": [ - "* **手順1.WSLの有効化**\n", - "\n", - " コントロールパネルから[プログラム]->[Windowsの機能の有効化または無効化] を選択し \n", - " 「Windows Subsystem for Linux」にチェックを入れて有効化する(再起動が必要)\n", - "\n", - "* **手順2. Ubuntuのインストール**\n", - "\n", - " Microsoft storeでUbuntuと検索し、1番目(単にUbuntuという名前のもの)か、 \n", - " あるいは20.04LTSをインストールする \n", - " \n", - " ※Windows OSのアップデートをしばらく行っていない場合、入手ボタンが押せない。 \n", - " 一般論として、OSのマイナーアップデートは都度行うようにしましょう。 \n", - " (メジャーアップデートは場合による...)\n", - "\n", - "* **手順3.Ubuntuの起動・初期設定**\n", - " \n", - " スタートメニューからUbuntuを起動する\n", - "\n", - " * Enter new UNIX username: Linuxで使うユーザー名を入力する\n", - " * new password: パスワードを設定する\n", - " * Retype new password: 確認のため再入力する\n", - "\n", - " これで、windows内にlinux環境が構築されます。\n", - "\n", - "* **手順4. aptのupdate/upgrade** \n", - "\n", - " Ubuntuターミナルに以下を入力し実行\n", - " ```\n", - " $sudo apt update\n", - " $sudo apt upgrade\n", - " ```\n", - "\n", - " 注:上の```$```は皆さんが入力すべきものではなく、 \n", - " Ubuntuターミナルにある$を指し \n", - " Pythonの対話モードなどで打ち込む場合と区別するための表記。\n", - "\n", - " sudoはコマンドの頭につけることで管理者権限で実行する、という命令を意味します。 \n", - " 実行時に、Ubuntu用に設定したパスワードが要求されます \n", - " 入力しても画面には表示されないので注意しながら打ち込んでEnterを押す。 \n", - " (間違っても再度入力を求めてくれますし、やめたければCtrl+C)\n", - " \n", - " aptはLinux(Debian系)のパッケージ管理システム \n", - " ※PCの時刻設定がきちんと行われていないと、aptのupdate/upgradeに失敗します。\n", - "\n", - " \n", - "\n", - "* **手順5. Pythonのインストール** \n", - "\n", - " Ubuntuには初めからPython3系が含まれていますが、 \n", - " pythonの最新バージョンをpip込みでインストールしましょう。\n", - "\n", - " ```\n", - " $sudo apt install python3-pip -y\n", - " ```\n", - " これでpython3.xの最新バージョンと、python用のパッケージマネージャpipがインストールされる\n", - "\n", - "* **手順6. ライブラリのインストール** \n", - "\n", - " ライブラリ・モジュールをインストールしたければ\n", - " ```\n", - " $pip3 install matplotlib\n", - " $pip3 install pandas\n", - " $pip3 install Selenium\n", - " ```\n", - " などを実行する。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qpMLRtznBk-F" - }, - "source": [ - "### Windows環境のどこにLinuxのファイルが保存されるか" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "m14aIZMayDK3" - }, - "source": [ - "\n", - "```C:\\Users\\XXX\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\LocalState\\rootfs```\n", - "\n", - "のXXX部分(や場合によってはドライブ部分C:)を皆さんの環境に置き換えたものが、 \n", - "Windows内に構築されたLinuxのルートディレクトリ(最上位のディレクトリ)となります。 \n", - "Ubuntuを開くと、rootfs以下のhomeディレクトリにログインした状態でターミナルが開きます。\n", - "\n", - "パスが上記と微妙に異なる場合は、 \n", - "WindowsのユーザーフォルダからAppDataを開いて、 \n", - "検索バーでUbuntuと検索すれば、 \n", - "該当するディレクトリが見つけられるはずです。 \n", - "(隠しフォルダを非表示にしていると見えないかも)\n", - "\n", - "\n", - "Windows11の場合は適当なフォルダ(エクスプローラー)を開くと \n", - "左側にLinuxのペンギンマークがあるので、そこから参照できます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pf6D3K6nDMGz" - }, - "source": [ - "### Linux側からWindows側のファイルにアクセスする" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1lD8ywRszRCM" - }, - "source": [ - "WindowsのディスクはLinuxからみた```/mnt/```以下にマウントされている。 \n", - "たとえば、```/mnt/c/Users/[ユーザー名]/Downloads```\n", - "で、Windows側のダウンロードフォルダのパスを指定できる。\n", - "\n", - "OneDriveによるバックアップに含まれているフォルダは、 \n", - "デフォルトパスから、OneDriveの下に変更されていることがあるので注意。\n", - "\n", - "(例: デスクトップはLinuxから見ると```/mnt/c/Users/[ユーザー名]/Desktop```のはずだが、 \n", - "デスクトップフォルダがOneDriveのバックアップ対象になっていると、 \n", - "```/mnt/c/Users/[ユーザー名]/OneDrive/Desktop```などと変更されてしまうので注意。)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2SNhn1kXHiRh" - }, - "source": [ - "### WSLのバージョン確認と更新\n", - "\n", - "Windows10を使っていてMS Storeから導入した方で \n", - "GUIを伴う処理を行いたい場合、WSLのバージョンを2にする必要がある。\n", - "\n", - "以下の手順でバージョンを確認し、必要なら更新しよう\n", - "\n", - "1. スタートメニューからWindows PowerShellを開く\n", - "\n", - "2. PowerShell上で下記のコマンドを入力し、バージョンを確認する\n", - " ```\n", - " > wsl --list --verbose\n", - " ```\n", - " 出力結果をみてUbuntuのVERSIONが1になっている場合 \n", - " 更新を行おう\n", - " \n", - "\n", - "3. 更新のための前準備として、https://aka.ms/wsl2kernel\n", - " にアクセスし \n", - " x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージをダウンロードする。 \n", - " ダウンロードが終わったらパッケージを起動して、案内にしたがって実行する\n", - "\n", - "4. PowerShellに戻り、\n", - " ```\n", - " wsl --set-version Ubuntu 2\n", - " ```\n", - " を実行しwslのバージョンを2に変更する(そこそこ時間がかかる)\n", - "\n", - " \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LUePSAzjio_g" - }, - "source": [ - "### WSL環境でMatplotlibのshow()などを使う\n", - "\n", - "\n", - "WSL(今はUbuntu)では、そのままでplt.show()などの \n", - "ウィンドウを開くような操作が使えない。\n", - "\n", - "その場合はx11とtkinterを含むpython3をインストールしよう\n", - "```\n", - "$ sudo apt update\n", - "$ sudo apt upgrde\n", - "$ sudo apt install language-pack-ja\n", - "$ sudo apt install x11-apps\n", - "$ sudo apt install python3-tk\n", - "```\n", - "\n", - "\n", - "さらにXサーバ(以下ではVcXsrvを選びます)をインストールする:\n", - "\n", - "1. https://sourceforge.net/projects/vcxsrv/\n", - " からDownload\n", - "\n", - "2. ダウンロードしたものを実行\n", - "\n", - " (デスクトップショートカットは無くても良い)\n", - " \n", - "\n", - "\n", - "3. スタートメニューからXLaunchを実行\n", - "\n", - " \n", - "\n", - " 道なりに進んでAdditional parameters for VcXsrvの欄に-acを入力し進む\n", - "\n", - "4. \"Save Configuration\"を選択してショートカットを作成することで、次回以降同様の作業をしなくても良いようにできる\n", - "\n", - "\n", - "```\n", - "$xlogo\n", - "```\n", - "を実行するか、Pythonの対話環境の中で\n", - "```\n", - "import matplotlib.pyplot as plt\n", - "fig = plt.figure()\n", - "plt.show()\n", - "```\n", - "などとやってウィンドウが表示されればOK.\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "h2K-l3Iu0vHS" - }, - "source": [ - "### 2-2.の方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5th6Q2I90yXC" - }, - "source": [ - "バックアップや起動ディスク等の知識なくデュアルブート環境を構築しようとすると \n", - "最悪の場合すべてのデータを失いますので、こちらを選ぶ場合は予め相談してください。\n", - "\n", - "Linux環境を構築をすれば、あとはLinuxを起動し、以下のLinuxの場合の手順に従うだけ。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c17cT0gy2fwF" - }, - "source": [ - "## Macの場合" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 335 - }, - "id": "-0EaMODUBA0a", - "outputId": "d71eaf40-8fb9-447f-bca7-be2f2f9dec99" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(r'')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HMrb9so42ihm" - }, - "source": [ - "python2.xやpython3.x (xは購入機種・時期によって違う)が元々入っている。 \n", - "\n", - "Launchpadにある[その他]から**ターミナル**を開き、 \n", - "```python```と入力し、タブキーを2回押すと該当するものが表示される。 \n", - "以下は一例:\n", - "```\n", - "python python2 python2.7-config python3-config python3.7-config python3.7m-config pythonw \n", - "python-config python2.7 python3 python3.7 python3.7m pythontex pythonw2.7 \n", - "```\n", - "\n", - "python3がある場合は、\n", - "```$python3```\n", - "と入力しエンターを押すと、pythonの対話モード(インタラクティブモードとも)が開く※。\n", - "\n", - "\n", - "※初回起動時はXcodeの導入が必要かもしれない \n", - "その場合は、ターミナルに\n", - "```\n", - "xcode-select --install\n", - "```\n", - "を打ち込みインストール作業を行う。 \n", - "Xcodeのサイズがでかいので安定したネットワーク下で実行すること.\n", - "\n", - "Python(対話モード)が起動できたら\n", - "```\n", - "print(\"Hello World\")\n", - "```\n", - "などと打って、エンターを押すと、文字列```\"Hello World\"```が表示されるので試してみよう。\n", - "\n", - "\n", - "\n", - "pythonの最新のバージョンやその他色々なものを導入したければ \n", - "今後のことも考えてMacにHomebrewと呼ばれるパッケージマネージャを導入しよう。\n", - "[参考](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)\n", - "\n", - "Homebrewが導入できたら、\n", - "\n", - "```\n", - "brew update\n", - "brew upgrade\n", - "brew upgrade python3\n", - "```\n", - "と順にターミナルで実行する(暫く掛かるかも). \n", - "\n", - "※python3がもともとない場合は、3つめのものを \n", - "```\n", - "brew install python3\n", - "```\n", - "などと置き換える。\n", - "\n", - "インストールに成功すれば、python用のパッケージマネージャ(pip)も使えるようになるはず。 \n", - "以後は\n", - "```\n", - "pip install matplotlib\n", - "pip install pandas\n", - "```\n", - "などとすると、python用のモジュールがインストールされ、 \n", - "pythonからいつでもインポートして使うことができる。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JBnG_Zeapnc5" - }, - "source": [ - "MacにDocker環境を入れておけば、```apt```で色々揃うので、レガシーコードの動作確認等にも役に立つ。\n", - "\n", - "M1以降のApple制のCPUを搭載している場合、Pythonのパッケージ管理やDockerの導入などはやや難易度が上がる。\n", - "(※英語で調べれば必要な情報は出てくる)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OtjKhaH451we" - }, - "source": [ - "## Linuxの場合" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0rZweyH-53og" - }, - "source": [ - "Linuxを使っている人が、pythonのインストールができないとは思いにくいが... \n", - "\n", - "ターミナルから\n", - "```\n", - "$sudo apt update -y\n", - "$sudo apt upgrade -y\n", - "$sudo apt dist-upgrade -y\n", - "$sudo apt autoremove -y\n", - "```\n", - "などを実行しパッケージマネージャのアップデート等を行った後 \n", - "python3系がない場合は\n", - "```\n", - "$sudo apt install python3\n", - "```\n", - "ある場合は\n", - "```\n", - "$sudo apt upgrade python3\n", - "```\n", - "などを実行すればよい。\n", - "\n", - "pipがない場合、\n", - "```\n", - "$sudo apt install python3-pip\n", - "```\n", - "を実行する。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N4vEf_Av9hjN" - }, - "source": [ - "# Linux/Unix ターミナルの操作" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3uyugO029lsM" - }, - "source": [ - "Linux(WSL)やUnix(Mac)のCUI環境で必要な基本的な操作をまとめる\n", - "\n", - "* Ctrl+C: 入力内容の消去・実行中の作業の中断\n", - "* Ctrl+D: ターミナル(タブ)を閉じる (Pythonの対話モードから出るときにも使う)\n", - "* Tab: 入力を補完してくれる\n", - "* *(半角アスタリスク): ワイルドカード記号\n", - "\n", - "基本的なコマンド\n", - "* ```cd``` \"現在地\"を変更する\n", - "```\n", - "$cd ./Desktop \n", - "$cd ../ \n", - "$cd ~\n", - "$cd -\n", - "```\n", - "1つめはhomeディレクトリからデスクトップ(があれば)移動 \n", - "2つめは1つ上の階層に移動する \n", - "3つめはホームディレクトリに移動 \n", - "4つめは直前にいたディレクトリに移動\n", - "\n", - "* ```ls``` ファイルやディレクトリなどを表示する.\n", - "```\n", - "$ls \n", - "$ls ../*.txt\n", - "$ls Picutures/pic_*.png\n", - "``` \n", - "1つめは現在いるディレクトリ以下のファイル等を表示 \n", - "2つめは現在いるディレクトリの1つ上の階層にある.txt拡張子の全ファイルを表示 \n", - "3つめは現在ホームディレクトリにいると仮定して、その直下にあるPictures以下にあるpngファイルのうち、冒頭が```pic_```のものを全て表示\n", - "\n", - "* mv ファイル・ディレクトリの移動・リネーム\n", - "\n", - " ```\n", - " $mv aa.txt ~/Desktop\n", - " $mv bb.txt ../AdDS/cc.txt\n", - " ```\n", - " 1つめ: カレントディレクトリにあるaa.txtというファイルをデスクトップに移動 \n", - " 2つめ: bb.txtを一つ上の階層にあるAdDSというディレクトリに移動し、cc.txtとリネームする。 \n", - " \n", - " ワイルドカード*で複数ファイルを一気に移動させることもできる。ディレクトリの場合も同様。 \n", - "\n", - "\n", - "* mkdir ディレクトリを作る\n", - "``` \n", - "$mkdir Desktop/AdDS2021\n", - "```\n", - "\n", - "* rm ファイルやディレクトリを削除する\n", - "```\n", - "$rm ./Desktop/report1.txt\n", - "```\n", - "ディレクトリを消すときは-rオプションが必要\n", - "```\n", - "$rm -r ./Desktop/AdDS2021\n", - "```\n", - " **rmコマンドで削除したものはゴミ箱に入れられずに削除されるので注意** \n", - " 特にワイルドカードを使って全て削除してしまうとバックアップを取っていないと復元は困難だし、誰も責任をとってくれない。\n", - " (rmコマンドにエイリアスを貼って、ゴミ箱を経由する命令に置き換えたりrmtrash(や類似のもの)を使用するのがオススメ)\n", - "\n", - "* grep 検索\n", - "``` \n", - "$grep \"Hello World\" Desktop/AdDS2021/*py\n", - "```\n", - "\n", - "\n", - "**タブ補完**\n", - "\n", - "Linux/Unixターミナルでは、タブによる入力補完が使えますので \n", - "ぜひ多用してください。\n", - "\n", - "ちなみに今Desktopにいて、そこに \n", - "```AdDS2019, AdDS2020, AdDS2021```\n", - "というディレクトリがあり、 \n", - "最初のものに移動したいとします。\n", - "こんなとき、いちいち\n", - "```\n", - "$cd AdDS2019\n", - "```\n", - "と打つのは面倒だし、打ち間違えたりします。\n", - "```\n", - "$cd Ad\n", - "```\n", - "と打った時点でタブをポンポンと叩くと、 \n", - "Desktopに上記のフォルダ以外の\"Ad\"を含むディレクトリがなければ \n", - "```AdDS20```まで入力が補完され、 \n", - "該当する候補(上の全てのディレクトリ)がターミナル上で表示されます。 \n", - "その後1を打って再びタブを叩くと、該当するものは一つですので \n", - "(ambiguityがなくなった時点で)最後まで入力が補完されます。\n", - "\n", - "\n", - "ちなみにPython側からLinuxのコマンドを実行したければ \n", - "```\n", - "import os\n", - "os.system(\"ls *.txt\")\n", - "```\n", - "などとすれば良い。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-59SkHdxcbdW" - }, - "source": [ - "## Linuxのホームディレクトリの変更\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Cr8gjvHLcf_0" - }, - "source": [ - "WSLを使用する際、Windows側から見るとLinux(Ubuntu)は```C:\\Users\\username\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\LocalState\\rootfs``` \n", - "といった階層に入っている。\n", - "\n", - "Ubuntuを起動した際に開くターミナルの\"位置\"(これをホームディレクトリと呼ぶ)は、 \n", - "上記のルートディレクトリ(rootfs)直下にあるhomeである。 \n", - "\n", - "たとえばWindows側のホームディレクトリ ```C:\\Users\\[username]```以下に \n", - "適当なディレクトリを作って、それをUbuntuのログイン(ホーム)ディレクトリとして設定することも出来る。\n", - "\n", - "※ 以下の操作では、emacsやvi(m)などのエディタに慣れていないうちは \n", - "システムファイルに余計な文字を書き込んでしまう危険性があるので \n", - "エディタの使い方を調べてから実行するなど、注意が必要です。 \n", - "(不安な場合はZoomで画面を共有しながら一緒にやりましょう)\n", - "\n", - "ホームディレクトリの変更方法は、 \n", - "1. Ubuntuターミナルから、管理者権限で```/etc/passwd```を開く \n", - "たとえば、emacsが入っていれば\n", - "```\n", - "$sudo emacs /etc/passwd\n", - "```\n", - "なければ\n", - "```\n", - "$sudo vim /etc/passwd\n", - "```\n", - "でファイルを開きます。\n", - "\n", - "\n", - "2. どこかに\n", - "```\n", - "Ubuntuユーザ名:x:1000:1000:\"\",,,:/home/ユーザ名:/bin/bash\n", - "```\n", - "といった欄があるので```/home/ユーザー名```部分を、 \n", - "Windows側に作成しておいた新しくLinuxのホームディレクトリとしたいディレクトリの \n", - "パスに置き換えて、passwdを上書き保存し、閉じる。\n", - "\n", - "* Emacsの場合 編集は簡単. Ctrl+X -> Ctrl +Sを押して上書き保存. Ctrl+X->Ctrl+Cで閉じる.\n", - "* vimの場合 iを押すとインサートモードに入り編集可能に. 編集モードから抜けるのはEsc. ```:wq```で保存して終了\n", - "\n", - "3. Ubuntuを再起動し、エラー等が表示されず、 \n", - "```pwd```コマンドで現在地を確認して設定したディレクトリになっているか確認しましょう。\n", - "\n", - "4. もともとのホームディレクトリにあった```.bashrc```(エイリアスなどの情報を書くファイル)を\n", - "新しいホームディレクトリに移動させれば完了です。\n", - "```\n", - "$cp -r /home/[user name]/.* ~/\n", - "```\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 隠しファイル/隠しフォルダ(dot files)について\n", - "\n", - "Linuxでは、ファイル名の先頭に```.```がついているものは隠しファイルと呼ばれ、通常の`ls`コマンドなどの表示対象外となる。\n", - "隠しファイルを表示するには、`ls`コマンドに`-a`オプションをつければよい。\n", - "\n", - "とくに、ホームディレクトリには、特定のアプリケーションの設定ファイルなどが隠しファイルとして保存されていることが多く、\n", - "数値計算ライブラリの開発や使用、ソースコードの編集・実行などの際には、隠しファイルを扱うこともある。\n", - "\n", - "これら隠しファイルや隠しフォルダは、dot filesと呼ばれることもあり、\n", - "新しい端末を購入したときの設定ファイルの移行などにも使われる。\n", - "\n", - "特に複数台の端末を使用している人などは、GitHubなどのリポジトリに自身のdot filesをアップロードしておき、\n", - "新しい端末を購入した際には、そのリポジトリからdot filesをダウンロードして使用することで、\n", - "移行をスムーズにしているようである(私は割とイチから設定するのが好きだったりします)。\n", - "\n", - "\n", - "以下では、代表的なものを少し紹介しておく:\n", - "\n", - "**.bashrc** : bashの設定ファイル \n", - "\n", - "エイリアスの設定などを書くことができる. エイリアスとは、例えばコマンドでpythonを使う際、いちいち`python`とか`python3.9`などを\n", - "指定しなくてもお目当てのpython環境を使用できるようにするためのもの. 例えば、.bashrcに\n", - "```\n", - "alias py=python3.9\n", - "```\n", - "などと書いておけば、`py`と打つだけでpython3.9が起動/使用できるようになる.\n", - "\n", - "注意としては\n", - "1. 使用しているシェルによって、設定ファイルの名前が異なることがある. 例えば、bashの場合は`.bashrc`だが、zshの場合は`.zshrc`となる.\n", - "2. 設定ファイルを変更した場合は、`source`コマンドを実行することで、変更を反映させる必要がある. 例えば、`.bashrc`を変更した場合は、\n", - "```\n", - "$source ~/.bashrc\n", - "```\n", - "とするか、ターミナルを再起動する必要がある.\n", - "\n", - "**エディタの設定ファイル**\n", - "\n", - "CUI/GUIを問わず、エディタの設定ファイルもホームディレクトリ直下の隠しディレクトリとして保存されることが多い.\n", - "\n", - "例えば私の環境だと、`~/.emacs`,`~/.vim`,`~/.vscode`,`~/.atom`など、今は使っていないものも含めて、\n", - "エディタの設定ファイルが保存されている。\n", - "\n", - "**sshの設定ファイル**\n", - "\n", - "SSHとは、スーパーサイエンスハイスクール...ではなく、Secure Shellの略で、ネットワーク上で安全にリモートコンピュータにログインしたり、\n", - "ファイルを転送したりするためのプロトコルである。\n", - "\n", - "例えば研究室内に置かれたワークステーションやスパコンなど別の環境にログインして重い計算を回す、といったときには基本的にはssh公開鍵認証を用いてローカル環境からリモート環境にログインすることになるが、\n", - "その際に使用する鍵や、リモート環境へのログインに必要な情報などが、ホームディレクトリ直下の隠しディレクトリ`~/.ssh`に保存される。\n", - "\n", - "例えば、(sshを使ったことがある場合は)`~/.ssh/config`に、接続先のホスト名やポート番号などが記載されたり、\n", - "逆にリモート側では、`~/.ssh/authorized_keys`に、接続を許可する公開鍵が記載されていたりする。\n", - "\n", - "なお、公開鍵認証とは、リモート環境にログインする際に、公開鍵と秘密鍵のペアを用いて認証を行う方式で、\n", - "秘密鍵はローカル環境に、公開鍵はリモート環境に置いておくことで、安全にログインを行うことができるものである。\n", - "秘密鍵の取り扱いに注意が必要であることは言うまでもない。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "dSRDbGRtjOUq", - "rAlPquBCSVud", - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "include_colab_link": true, - "name": "Python_misc_python_environment.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_practice.ipynb b/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_practice.ipynb deleted file mode 100644 index 354efa12..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_sources/notebooks/Python_practice.ipynb +++ /dev/null @@ -1,423 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 練習帳\n", - "\n", - "このノートブックでは、1-8章で抑えておくべき基本事項を確認するための練習問題を与える。\n", - "\n", - "CLで収集する授業のリアクションシートには、\n", - "* 練習帳のURL\n", - "* 質問: 授業や資料でわからなかったこと (なければ所感のみでOK)\n", - "* 所感: その回で理解した/できるようになったことを完結にまとめる\n", - "* 適当な雑談: 最近ハマっていること\n", - "\n", - "を設定された〆切までに提出すること。これをもって出席とみなす。\n", - "なお、(この授業に限らず)、2/3以上の出席がない場合、履修規程に従い自動的に不可となるため、必ず提出すること。\n", - "\n", - "この練習帳の目的は、皆さんが自分自身の理解・疑問点を確認するためであって\n", - "**練習帳で書いているコードや記述が正しいかどうかは一切授業の評点には関係がない**。\n", - "\n", - "したがって友人に見せてもらったり相談をして体裁を整える必要はまったく無い。\n", - "とにかく、自分の理解を確認するためにコードをどんどん書いてどんどん失敗しよう。\n", - "\n", - "質問やその返答を円滑にするための連絡帳のようなものだと思ってもらえれば良い。\n", - "\n", - "\n", - "また、教員に対する質問の見落としを防ぐため、リアクションシート(CL)の方で\n", - ">練習帳に詳細な質問とコードを書きました\n", - "\n", - "などと教えてもらえるとスムーズな対応が可能になります。\n", - "リアクションシートの提出や質問の際は、必ず練習帳の共有リンクを添えてください。\n", - "\n", - "\n", - "慣れないうちは、エラーの原因がわからない場合は、とにかく教員に聞く。\n", - "慣れてくると、自分でエラーメッセージをWebで検索したり、[よくあるエラー集](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_misc_Error.html)などを見て、解決ができるようになる。\n", - "Chat GPTなどに尋ねてみるのも、**疑問や問題を言語化し要約する訓練**になるので良いかもしれない。\n", - "それでもわからない場合は、エラーメッセージを添えて教員に尋ねよう。\n", - "\n", - "\n", - "## 練習帳のノートブックの共有の仕方\n", - "\n", - "以下の手順にならってください。1-3は1度やれば再び行う必要はありません。\n", - "\n", - "1. まずノートブックのコピーを作成し、ファイル名を適当に編集する: 例: 練習帳_氏名_123456X.ipynb (123456Xは学籍番号のつもり)\n", - "2. 右上の共有ボタンを押し、「制限付き」を「リンクを知っている全員」に変更\n", - " (共有ボタンが見えない場合、編集権限がないつまり「ノートブックのコピーをつくる」というお約束を忘れていることを意味する)\n", - "3. 「リンクを知っている全員」の右にある「閲覧者」を「編集者」に変更する\n", - "4. 最後に、ブックマークするか、リンクをコピーしどこかに保存しておこう(2回目以降はCLで一度提出した過去のURLをコピーするのが手っ取り早い)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "元の問題文さえ残っていれば、レイアウトは好きに改変してOK.\n", - "コードセル・テキストセルともに自由に追加して構わない。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第1章:Pythonの基礎\n", - "\n", - "練習問題: \n", - "1. 身長と体重に相当する変数を適当に定義し、BMI(体重kg ÷ 身長mの二乗)を計算した上でprintせよ (自身の身長体重を用いる必要はない)\n", - "2. 上で計算したBMIに対応する変数とstr関数を用いて文字列を連結し、\"AさんのBMIは22.0です\"などと表示させよ。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**1章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 変数の定義や四則演算の方法が分かる\n", - "* `print`や`str`などの基本的な関数の使い方がわかる\n", - "* プログラムの実行順序と、セルを跨いで実行する際の注意点がわかる\n", - "* 基本的な変数の型とその調べ方が分かる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第2章:Pythonの基礎2\n", - "\n", - "練習問題: \n", - "1. 要素に身長(単位:cm)と体重(単位:kg)を持つ適当なリストを定義し、5人のデータ(リスト)を要素にもつ**入れ子構造のリスト**を作成せよ。ただし3人目の身長と体重は必ず175,60とすること(それ以外は適当で構わない)。\n", - "2. 上のリストから、5人の平均身長と平均体重をそれぞれ計算するコードを作成せよ。算術平均を取る際は、数字の5などを使うのではなく、リストの長さを使ったり、汎用性の高いコードにすること。\n", - "3. 上のリストについて、`for`文を用いて全員のBMI(体重kg ÷ 身長mの二乗)を計算し、一人ずつBMIを表示させよ。(単位に注意)\n", - "4. `for`文のブロック内で`if`と`break`を用いて、「BMIが20.0以下なら、値を表示したあとにループを終了する」という処理を実現せよ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**2章の振り返り**\n", - "\n", - "**とくに2章は重要な概念が盛りだくさんなので、必ず練習したり、疑問があれば質問すること!**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* リストの定義や要素へのアクセスの方法(インデックスやスライス)が分かる\n", - "* リストに要素を加える方法が分かる\n", - "* `if`文による条件分岐が分かる\n", - "* `for`や`while`によるループ処理がわかる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第3章:関数\n", - "\n", - "練習問題:\n", - "1. 要素に実数値を持つ適当なリストを2つ以上定義し、任意の長さの実数値のリストについて平均と分散を返り値とする自作関数を作成せよ。\n", - "2. 1.で作った自作関数を1つの変数で受け取り(例`ret_value=myfunction(mylist)`)その返り値の型を調べよ。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**3章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 自作関数の定義の仕方が分かる\n", - "* 引数(インプット)や返り値(アウトプット)の扱い方が分かる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第4章:ライブラリ\n", - "\n", - "練習問題:\n", - "1. 授業で扱った`math`,`numpy`の何れかを使って、任意の半径`r`について円の面積と球の体積を計算する自作関数を作成せよ。\n", - "2. `matplotlib`を用いて、好きな図を作成させノートブック上に表示させよ。その際、`matplotlib`(とくに`matplotlib.pyplot`)の使い方を調べて\n", - " - 色をカラーコードで指定する\n", - " - グラフを構成するオブジェクトの透過度を設定する\n", - "\n", - " など、授業で指定していないオプションを試してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**4章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* ライブラリのインストールやインポートの仕方が分かる\n", - "* matplotlibの簡単な使い方が分かる\n", - "* Webの情報や公式ドキュメントを読んだりして、使い方を調べることができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第5章:確率と擬似乱数\n", - "\n", - "練習問題:\n", - "1. 0からn-1(nは適当な整数)までのn個の整数から、重複なくランダムにn個選ぶ(つまり0からn-1の無作為な並べかえをする)コードを作成せよ。(`numpy.random.choice`を使うとよい)\n", - "2. 1.を用いて、任意の文字列のリスト(例: 名前のリスト `[\"Aさん\",\"Bさん\",...]`)をランダムに並び替えて出力するコードを作成せよ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**5章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* `random`や`numpy.random`モジュールを用いて、簡単な確率的事象を表現する方法がわかる\n", - "* 適当な区間内でランダムな整数を生成することができる\n", - "* 適当な実数の乱数(一様乱数・正規乱数)を生成することができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第6章:相関・回帰分析\n", - "\n", - "練習問題:\n", - "1. 以下のデータ`x`(宇都宮市の月別平均気温)と`y`(アイスクリーム・シャーベットの消費量)のうち、8月のデータ(気温か消費量のいずれか)をランダムな値に変更し相関係数がどうなるか5通りほどで示せ。なお、値を変更する際は手でリストを書き換えるのではなく、リストの要素を書き換えるコードにすること。\n", - "2. 疑似相関について調べ例をあげよ。(できれば自身の興味に近いものや日本の事例などを調べてみること)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載(追記)\n", - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**6章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 相関分析の意味を、友人等に説明できる\n", - "* 長さの等しい2つのリストについて、相関係数を計算することができる\n", - "* 簡単な場合について自作関数とライブラリの出力が同じであることを確認することができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第7章:最適化問題\n", - "\n", - "練習問題:\n", - "1. 以下に示したデータ(`x`:年, `y`:男子100m走の世界記録(秒))について、6章で出てきたpolyfitを使って1-5次式までの多項式でフィッティングしてみよう。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載(追記)\n", - "y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ]\n", - "x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ]\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**7章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 多項式回帰の意味を、友人等に説明できる \n", - "* ライブラリを用いて多項式回帰(係数の最適化)を行うことができる\n", - "* 係数の最適化の結果から、グラフの描画点を生成し、可視化することができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第8章:ファイル操作\n", - "\n", - "練習問題:\n", - "1. Google Colaboratoryから授業で使ったノートを参照し、Google Driveをマウントしtest.txtファイルの中身を表示せよ。その際、Unix/Linuxコマンドである`cat`を用いれば良い。\n", - "2. matplotlibを用いて適当なグラフを描きGoogleドライブに保存せよ。\n", - "\n", - "この問題はDriveのマウント・パスの指定などの一連の作業が理解できているかを確認するものなので、エラーが出た場合はそのログや自身が試した工程について、スクリーンショットなども活用しながらできるだけ詳細に報告すること。特に問題なく作業ができた場合は、2の図を送るなどはしなくて構わない。 \n", - "\n", - "また、プライベートなGoogleアカウントを使用している(※授業では非推奨)場合、相談の際にはプログラムの出力結果やスクリーンショットなどに他人に見られて困るものが映っていないか配慮すること。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載(追記)\n", - "#1.のコードのヒント\n", - "!cat path_to_yourfile/test.text\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**8章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* Google ColaboratoryでGoogle Driveをマウントすることができる\n", - "* Google Drive上にあるcsvなどのファイルを読み込むことができる\n", - "* 読み込んだファイルの内容から、必要なデータを取り出してprintしたり、配列を作り、それをグラフとして描いたりすることができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 最終課題\n", - "\n", - "授業の後半で取り組む最終課題については、自由な発想で課題を設計し、取り組んでもらって構わない。\n", - "条件としては、以下のようなものが挙げられる:\n", - "\n", - "- 1人(ないし2名ペア)で取り組むこと\n", - "- ペアの場合は、それぞれの寄与を明確にし、一人の寄与が十分に認められること\n", - "- 都度、教員に相談しながら、計画的に進めること\n", - "- 事前に教員に確認すべき課題の例\n", - " - 個人情報(例えば自営業をしている実家のデータを分析するなど)を含む場合は、それをマスクする処理が可能であること\n", - " - 特定のサービス・ソフトウェア・アプリに関する分析(ゲームのデータなどは著作権等の理由から多くの場合不可)\n", - " - アカウントの作成やライセンス等の購入が必要な外部サービスを使用する課題でないこと(≒教員が特段の手続きを経ずとも、課題作成者のサポートや採点・評価が可能なものであること)\n", - "\n", - "その他、教員が不適切と判断した課題については、課題の変更を求めることがある。\n", - "\n", - "何もないところから課題を設計するのは難しい。以下の例を参考に、計画をたてよう:\n", - "\n", - "**公開データを元に、栃木県のデータを可視化・分析したい**とする。\n", - "その際に必要な工程や、分析を行うために学修すべき事項を列挙しながら、課題を設計していく。\n", - "\n", - "- データの収集: 興味のあるデータがオープンデータとして公開されているかを調べる。\n", - " - 例1: [e-Stat](https://www.e-stat.go.jp/)\n", - " - 例2: [オープンデータ・ベリーとちぎ](https://odcs.bodik.jp/090000/)\n", - "- 地図を描き、市町村ごとに特定のデータをカラーマップとして表示する事を考える。\n", - " - そのためには、市町村の境界線のデータが必要になる。例えば、[国土数値情報ダウンロードサービス](https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v2_3.html)からデータを収集するとする。\n", - " - 得られたデータを地図上で可視化するために、使えそうなライブラリを探す。例えば、[geopandas](https://geopandas.org/)や[folium](https://python-visualization.github.io/folium/)が使えそうである。\n", - " - 簡単なデータから初めて、ライブラリの使い方を学びながら、地図を描くことを目指す。\n", - " - その他、地図上に関連する(例えば...特定の商業施設やLRTの停留所など)ピンを打ってみる\n", - "- 実際のデータを元に、分析を行う\n", - "- 問題点が生じた場合、その原因を特定し、解決するために必要な知識を学ぶ。(以下試行錯誤...)\n", - "\n", - "といった具合だ。あくまで、例であるので、自身の興味に合わせて課題を設計していくこと。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "colab": { - "include_colab_link": true, - "name": "Python_practice.ipynb", - "provenance": [] - }, - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/__init__.py b/Lecture_DataScience_dotfiles/_build/html/_static/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/__pycache__/__init__.cpython-37.opt-1.pyc b/Lecture_DataScience_dotfiles/_build/html/_static/__pycache__/__init__.cpython-37.opt-1.pyc deleted file mode 100644 index 6e2fb381..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_static/__pycache__/__init__.cpython-37.opt-1.pyc and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/basic.css b/Lecture_DataScience_dotfiles/_build/html/_static/basic.css deleted file mode 100644 index 18d05abe..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/basic.css +++ /dev/null @@ -1,905 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 270px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 450px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -dl.footnote > dt, -dl.citation > dt { - float: left; - margin-right: 0.5em; -} - -dl.footnote > dd, -dl.citation > dd { - margin-bottom: 0em; -} - -dl.footnote > dd:after, -dl.citation > dd:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dt:after { - content: ":"; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/check-solid.svg b/Lecture_DataScience_dotfiles/_build/html/_static/check-solid.svg deleted file mode 100644 index 92fad4b5..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/check-solid.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/clipboard.min.js b/Lecture_DataScience_dotfiles/_build/html/_static/clipboard.min.js deleted file mode 100644 index 54b3c463..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/clipboard.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * clipboard.js v2.0.8 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1 - - - - diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/copybutton.css b/Lecture_DataScience_dotfiles/_build/html/_static/copybutton.css deleted file mode 100644 index 5d291490..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/copybutton.css +++ /dev/null @@ -1,81 +0,0 @@ -/* Copy buttons */ -button.copybtn { - position: absolute; - display: flex; - top: .3em; - right: .5em; - width: 1.7em; - height: 1.7em; - opacity: 0; - transition: opacity 0.3s, border .3s, background-color .3s; - user-select: none; - padding: 0; - border: none; - outline: none; - border-radius: 0.4em; - border: #e1e1e1 1px solid; - background-color: rgb(245, 245, 245); -} - -button.copybtn.success { - border-color: #22863a; -} - -button.copybtn img { - width: 100%; - padding: .2em; -} - -div.highlight { - position: relative; -} - -.highlight:hover button.copybtn { - opacity: 1; -} - -.highlight button.copybtn:hover { - background-color: rgb(235, 235, 235); -} - -.highlight button.copybtn:active { - background-color: rgb(187, 187, 187); -} - -/** - * A minimal CSS-only tooltip copied from: - * https://codepen.io/mildrenben/pen/rVBrpK - * - * To use, write HTML like the following: - * - *

Short

- */ - .o-tooltip--left { - position: relative; - } - - .o-tooltip--left:after { - opacity: 0; - visibility: hidden; - position: absolute; - content: attr(data-tooltip); - padding: .2em; - font-size: .8em; - left: -.2em; - background: grey; - color: white; - white-space: nowrap; - z-index: 2; - border-radius: 2px; - transform: translateX(-102%) translateY(0); - transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); -} - -.o-tooltip--left:hover:after { - display: block; - opacity: 1; - visibility: visible; - transform: translateX(-100%) translateY(0); - transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); - transition-delay: .5s; -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/copybutton.js b/Lecture_DataScience_dotfiles/_build/html/_static/copybutton.js deleted file mode 100644 index 482bda03..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/copybutton.js +++ /dev/null @@ -1,197 +0,0 @@ -// Localization support -const messages = { - 'en': { - 'copy': 'Copy', - 'copy_to_clipboard': 'Copy to clipboard', - 'copy_success': 'Copied!', - 'copy_failure': 'Failed to copy', - }, - 'es' : { - 'copy': 'Copiar', - 'copy_to_clipboard': 'Copiar al portapapeles', - 'copy_success': '¡Copiado!', - 'copy_failure': 'Error al copiar', - }, - 'de' : { - 'copy': 'Kopieren', - 'copy_to_clipboard': 'In die Zwischenablage kopieren', - 'copy_success': 'Kopiert!', - 'copy_failure': 'Fehler beim Kopieren', - }, - 'fr' : { - 'copy': 'Copier', - 'copy_to_clipboard': 'Copié dans le presse-papier', - 'copy_success': 'Copié !', - 'copy_failure': 'Échec de la copie', - }, - 'ru': { - 'copy': 'Скопировать', - 'copy_to_clipboard': 'Скопировать в буфер', - 'copy_success': 'Скопировано!', - 'copy_failure': 'Не удалось скопировать', - }, - 'zh-CN': { - 'copy': '复制', - 'copy_to_clipboard': '复制到剪贴板', - 'copy_success': '复制成功!', - 'copy_failure': '复制失败', - } -} - -let locale = 'en' -if( document.documentElement.lang !== undefined - && messages[document.documentElement.lang] !== undefined ) { - locale = document.documentElement.lang -} - -let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; -if (doc_url_root == '#') { - doc_url_root = ''; -} - -const path_static = `${doc_url_root}_static/`; - -/** - * Set up copy/paste for code blocks - */ - -const runWhenDOMLoaded = cb => { - if (document.readyState != 'loading') { - cb() - } else if (document.addEventListener) { - document.addEventListener('DOMContentLoaded', cb) - } else { - document.attachEvent('onreadystatechange', function() { - if (document.readyState == 'complete') cb() - }) - } -} - -const codeCellId = index => `codecell${index}` - -// Clears selected text since ClipboardJS will select the text when copying -const clearSelection = () => { - if (window.getSelection) { - window.getSelection().removeAllRanges() - } else if (document.selection) { - document.selection.empty() - } -} - -// Changes tooltip text for two seconds, then changes it back -const temporarilyChangeTooltip = (el, oldText, newText) => { - el.setAttribute('data-tooltip', newText) - el.classList.add('success') - setTimeout(() => el.setAttribute('data-tooltip', oldText), 2000) - setTimeout(() => el.classList.remove('success'), 2000) -} - -// Changes the copy button icon for two seconds, then changes it back -const temporarilyChangeIcon = (el) => { - img = el.querySelector("img"); - img.setAttribute('src', `${path_static}check-solid.svg`) - setTimeout(() => img.setAttribute('src', `${path_static}copy-button.svg`), 2000) -} - -const addCopyButtonToCodeCells = () => { - // If ClipboardJS hasn't loaded, wait a bit and try again. This - // happens because we load ClipboardJS asynchronously. - if (window.ClipboardJS === undefined) { - setTimeout(addCopyButtonToCodeCells, 250) - return - } - - // Add copybuttons to all of our code cells - const codeCells = document.querySelectorAll('div.highlight pre') - codeCells.forEach((codeCell, index) => { - const id = codeCellId(index) - codeCell.setAttribute('id', id) - - const clipboardButton = id => - `` - codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) - }) - -function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string -} - -// Callback when a copy button is clicked. Will be passed the node that was clicked -// should then grab the text and replace pieces of text that shouldn't be used in output -function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { - - var regexp; - var match; - - // Do we check for line continuation characters and "HERE-documents"? - var useLineCont = !!lineContinuationChar - var useHereDoc = !!hereDocDelim - - // create regexp to capture prompt and remaining line - if (isRegexp) { - regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') - } else { - regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') - } - - const outputLines = []; - var promptFound = false; - var gotLineCont = false; - var gotHereDoc = false; - const lineGotPrompt = []; - for (const line of textContent.split('\n')) { - match = line.match(regexp) - if (match || gotLineCont || gotHereDoc) { - promptFound = regexp.test(line) - lineGotPrompt.push(promptFound) - if (removePrompts && promptFound) { - outputLines.push(match[2]) - } else { - outputLines.push(line) - } - gotLineCont = line.endsWith(lineContinuationChar) & useLineCont - if (line.includes(hereDocDelim) & useHereDoc) - gotHereDoc = !gotHereDoc - } else if (!onlyCopyPromptLines) { - outputLines.push(line) - } else if (copyEmptyLines && line.trim() === '') { - outputLines.push(line) - } - } - - // If no lines with the prompt were found then just use original lines - if (lineGotPrompt.some(v => v === true)) { - textContent = outputLines.join('\n'); - } - - // Remove a trailing newline to avoid auto-running when pasting - if (textContent.endsWith("\n")) { - textContent = textContent.slice(0, -1) - } - return textContent -} - - -var copyTargetText = (trigger) => { - var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); - return formatCopyText(target.innerText, '', false, true, true, true, '', '') -} - - // Initialize with a callback so we can modify the text before copy - const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) - - // Update UI with error/success messages - clipboard.on('success', event => { - clearSelection() - temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) - temporarilyChangeIcon(event.trigger) - }) - - clipboard.on('error', event => { - temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) - }) -} - -runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/copybutton_funcs.js b/Lecture_DataScience_dotfiles/_build/html/_static/copybutton_funcs.js deleted file mode 100644 index b9168c55..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/copybutton_funcs.js +++ /dev/null @@ -1,58 +0,0 @@ -function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string -} - -// Callback when a copy button is clicked. Will be passed the node that was clicked -// should then grab the text and replace pieces of text that shouldn't be used in output -export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { - - var regexp; - var match; - - // Do we check for line continuation characters and "HERE-documents"? - var useLineCont = !!lineContinuationChar - var useHereDoc = !!hereDocDelim - - // create regexp to capture prompt and remaining line - if (isRegexp) { - regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') - } else { - regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') - } - - const outputLines = []; - var promptFound = false; - var gotLineCont = false; - var gotHereDoc = false; - const lineGotPrompt = []; - for (const line of textContent.split('\n')) { - match = line.match(regexp) - if (match || gotLineCont || gotHereDoc) { - promptFound = regexp.test(line) - lineGotPrompt.push(promptFound) - if (removePrompts && promptFound) { - outputLines.push(match[2]) - } else { - outputLines.push(line) - } - gotLineCont = line.endsWith(lineContinuationChar) & useLineCont - if (line.includes(hereDocDelim) & useHereDoc) - gotHereDoc = !gotHereDoc - } else if (!onlyCopyPromptLines) { - outputLines.push(line) - } else if (copyEmptyLines && line.trim() === '') { - outputLines.push(line) - } - } - - // If no lines with the prompt were found then just use original lines - if (lineGotPrompt.some(v => v === true)) { - textContent = outputLines.join('\n'); - } - - // Remove a trailing newline to avoid auto-running when pasting - if (textContent.endsWith("\n")) { - textContent = textContent.slice(0, -1) - } - return textContent -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/css/blank.css b/Lecture_DataScience_dotfiles/_build/html/_static/css/blank.css deleted file mode 100644 index 8a686ec7..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/css/blank.css +++ /dev/null @@ -1,2 +0,0 @@ -/* This file is intentionally left blank to override the stylesheet of the -parent theme via theme.conf. The parent style we import directly in theme.css */ \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/css/index.ff1ffe594081f20da1ef19478df9384b.css b/Lecture_DataScience_dotfiles/_build/html/_static/css/index.ff1ffe594081f20da1ef19478df9384b.css deleted file mode 100644 index 9b1c5d79..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/css/index.ff1ffe594081f20da1ef19478df9384b.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v4.5.0 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors - * Copyright 2011-2020 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:540px;--breakpoint-md:720px;--breakpoint-lg:960px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;line-height:1.5;color:#212529;text-align:left}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;background-color:transparent}a:hover{color:#0056b3}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:"\2014\00A0"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:540px){.container{max-width:540px}}@media (min-width:720px){.container{max-width:720px}}@media (min-width:960px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1400px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:540px){.container,.container-sm{max-width:540px}}@media (min-width:720px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:960px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1400px}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media (min-width:540px){.col-sm{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media (min-width:720px){.col-md{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media (min-width:960px){.col-lg{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;min-width:0;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.33333%;max-width:33.33333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:hsla(0,0%,100%,.075)}@media (max-width:539.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:719.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:959.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label:before,.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label:before,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:540px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary.focus,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary.focus,.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success.focus,.btn-success:focus,.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info.focus,.btn-info:focus,.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning.focus,.btn-warning:focus,.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger.focus,.btn-danger:focus,.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light.focus,.btn-light:focus,.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark.focus,.btn-dark:focus,.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:540px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:720px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:960px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before,.custom-control-input[disabled]~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:""}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label:before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label:after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label:after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label:after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(1.5em + .75rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]:after{content:attr(data-browse)}.custom-file-label{left:0;z-index:1;height:calc(1.5em + .75rem + 2px);font-weight:400;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.5;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat 50%;background-size:100% 100%}@media (max-width:539.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:540px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:719.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:720px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:959.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:960px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(0,0,0,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255,255,255,0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:540px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:540px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:540px){.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb,.breadcrumb-item{display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:540px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:540px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:720px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:960px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:540px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem);height:min-content}.modal-sm{max-width:300px}}@media (min-width:960px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow:before,.bs-popover-top>.arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow:after,.bs-popover-top>.arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow:before,.bs-popover-right>.arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow:after,.bs-popover-right>.arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow:before,.bs-popover-bottom>.arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow:after,.bs-popover-bottom>.arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow:before,.bs-popover-left>.arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow:after,.bs-popover-left>.arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8'%3E%3Cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:540px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:720px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:960px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.85714%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:720px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:960px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:540px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:720px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:960px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{user-select:all!important}.user-select-auto{user-select:auto!important}.user-select-none{user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:540px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:720px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:960px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:transparent}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:540px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:720px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:960px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:960px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}html{font-size:var(--pst-font-size-base);scroll-padding-top:calc(var(--pst-header-height) + 12px)}body{padding-top:calc(var(--pst-header-height) + 20px);background-color:#fff;font-family:var(--pst-font-family-base);font-weight:400;line-height:1.65;color:rgba(var(--pst-color-text-base),1)}p{margin-bottom:1.15rem;font-size:1em;color:rgba(var(--pst-color-paragraph),1)}p.rubric{border-bottom:1px solid #c9c9c9}a{color:rgba(var(--pst-color-link),1);text-decoration:none}a:hover{color:rgba(var(--pst-color-link-hover),1);text-decoration:underline}a.headerlink{color:rgba(var(--pst-color-headerlink),1);font-size:.8em;padding:0 4px;text-decoration:none}a.headerlink:hover{background-color:rgba(var(--pst-color-headerlink),1);color:rgba(var(--pst-color-headerlink-hover),1)}.heading-style,h1,h2,h3,h4,h5,h6{margin:2.75rem 0 1.05rem;font-family:var(--pst-font-family-heading);font-weight:400;line-height:1.15}h1{margin-top:0;font-size:var(--pst-font-size-h1);color:rgba(var(--pst-color-h1),1)}h2{font-size:var(--pst-font-size-h2);color:rgba(var(--pst-color-h2),1)}h3{font-size:var(--pst-font-size-h3);color:rgba(var(--pst-color-h3),1)}h4{font-size:var(--pst-font-size-h4);color:rgba(var(--pst-color-h4),1)}h5{font-size:var(--pst-font-size-h5);color:rgba(var(--pst-color-h5),1)}h6{font-size:var(--pst-font-size-h6);color:rgba(var(--pst-color-h6),1)}.text_small,small{font-size:var(--pst-font-size-milli)}hr{border:0;border-top:1px solid #e5e5e5}code,kbd,pre,samp{font-family:var(--pst-font-family-monospace)}code{color:rgba(var(--pst-color-inline-code),1)}pre{margin:1.5em 0;padding:10px;background-color:rgba(var(--pst-color-preformatted-background),1);color:rgba(var(--pst-color-preformatted-text),1);line-height:1.2em;border:1px solid #c9c9c9;border-radius:.2rem;box-shadow:1px 1px 1px #d8d8d8}dd{margin-top:3px;margin-bottom:10px;margin-left:30px}.navbar{position:fixed;min-height:var(--pst-header-height);width:100%;padding:0}.navbar .container-xl{height:100%}@media (min-width:960px){.navbar #navbar-end>.navbar-end-item{display:inline-block}}.navbar-brand{position:relative;height:var(--pst-header-height);width:auto;padding:.5rem 0}.navbar-brand img{max-width:100%;height:100%;width:auto}.navbar-light{background:#fff!important;box-shadow:0 .125rem .25rem 0 rgba(0,0,0,.11)}.navbar-light .navbar-nav li a.nav-link{padding:0 .5rem;color:rgba(var(--pst-color-navbar-link),1)}.navbar-light .navbar-nav li a.nav-link:hover{color:rgba(var(--pst-color-navbar-link-hover),1)}.navbar-light .navbar-nav>.active>.nav-link{font-weight:600;color:rgba(var(--pst-color-navbar-link-active),1)}.navbar-header a{padding:0 15px}.admonition,div.admonition{margin:1.5625em auto;padding:0 .6rem .8rem;overflow:hidden;page-break-inside:avoid;border-left:.2rem solid;border-left-color:rgba(var(--pst-color-admonition-default),1);border-bottom-color:rgba(var(--pst-color-admonition-default),1);border-right-color:rgba(var(--pst-color-admonition-default),1);border-top-color:rgba(var(--pst-color-admonition-default),1);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);transition:color .25s,background-color .25s,border-color .25s}.admonition :last-child,div.admonition :last-child{margin-bottom:0}.admonition p.admonition-title~*,div.admonition p.admonition-title~*{padding:0 1.4rem}.admonition>ol,.admonition>ul,div.admonition>ol,div.admonition>ul{margin-left:1em}.admonition>.admonition-title,div.admonition>.admonition-title{position:relative;margin:0 -.6rem;padding:.4rem .6rem .4rem 2rem;font-weight:700;background-color:rgba(var(--pst-color-admonition-default),.1)}.admonition>.admonition-title:before,div.admonition>.admonition-title:before{position:absolute;left:.6rem;width:1rem;height:1rem;color:rgba(var(--pst-color-admonition-default),1);font-family:Font Awesome\ 5 Free;font-weight:900;content:var(--pst-icon-admonition-default)}.admonition>.admonition-title+*,div.admonition>.admonition-title+*{margin-top:.4em}.admonition.attention,div.admonition.attention{border-color:rgba(var(--pst-color-admonition-attention),1)}.admonition.attention>.admonition-title,div.admonition.attention>.admonition-title{background-color:rgba(var(--pst-color-admonition-attention),.1)}.admonition.attention>.admonition-title:before,div.admonition.attention>.admonition-title:before{color:rgba(var(--pst-color-admonition-attention),1);content:var(--pst-icon-admonition-attention)}.admonition.caution,div.admonition.caution{border-color:rgba(var(--pst-color-admonition-caution),1)}.admonition.caution>.admonition-title,div.admonition.caution>.admonition-title{background-color:rgba(var(--pst-color-admonition-caution),.1)}.admonition.caution>.admonition-title:before,div.admonition.caution>.admonition-title:before{color:rgba(var(--pst-color-admonition-caution),1);content:var(--pst-icon-admonition-caution)}.admonition.warning,div.admonition.warning{border-color:rgba(var(--pst-color-admonition-warning),1)}.admonition.warning>.admonition-title,div.admonition.warning>.admonition-title{background-color:rgba(var(--pst-color-admonition-warning),.1)}.admonition.warning>.admonition-title:before,div.admonition.warning>.admonition-title:before{color:rgba(var(--pst-color-admonition-warning),1);content:var(--pst-icon-admonition-warning)}.admonition.danger,div.admonition.danger{border-color:rgba(var(--pst-color-admonition-danger),1)}.admonition.danger>.admonition-title,div.admonition.danger>.admonition-title{background-color:rgba(var(--pst-color-admonition-danger),.1)}.admonition.danger>.admonition-title:before,div.admonition.danger>.admonition-title:before{color:rgba(var(--pst-color-admonition-danger),1);content:var(--pst-icon-admonition-danger)}.admonition.error,div.admonition.error{border-color:rgba(var(--pst-color-admonition-error),1)}.admonition.error>.admonition-title,div.admonition.error>.admonition-title{background-color:rgba(var(--pst-color-admonition-error),.1)}.admonition.error>.admonition-title:before,div.admonition.error>.admonition-title:before{color:rgba(var(--pst-color-admonition-error),1);content:var(--pst-icon-admonition-error)}.admonition.hint,div.admonition.hint{border-color:rgba(var(--pst-color-admonition-hint),1)}.admonition.hint>.admonition-title,div.admonition.hint>.admonition-title{background-color:rgba(var(--pst-color-admonition-hint),.1)}.admonition.hint>.admonition-title:before,div.admonition.hint>.admonition-title:before{color:rgba(var(--pst-color-admonition-hint),1);content:var(--pst-icon-admonition-hint)}.admonition.tip,div.admonition.tip{border-color:rgba(var(--pst-color-admonition-tip),1)}.admonition.tip>.admonition-title,div.admonition.tip>.admonition-title{background-color:rgba(var(--pst-color-admonition-tip),.1)}.admonition.tip>.admonition-title:before,div.admonition.tip>.admonition-title:before{color:rgba(var(--pst-color-admonition-tip),1);content:var(--pst-icon-admonition-tip)}.admonition.important,div.admonition.important{border-color:rgba(var(--pst-color-admonition-important),1)}.admonition.important>.admonition-title,div.admonition.important>.admonition-title{background-color:rgba(var(--pst-color-admonition-important),.1)}.admonition.important>.admonition-title:before,div.admonition.important>.admonition-title:before{color:rgba(var(--pst-color-admonition-important),1);content:var(--pst-icon-admonition-important)}.admonition.note,div.admonition.note{border-color:rgba(var(--pst-color-admonition-note),1)}.admonition.note>.admonition-title,div.admonition.note>.admonition-title{background-color:rgba(var(--pst-color-admonition-note),.1)}.admonition.note>.admonition-title:before,div.admonition.note>.admonition-title:before{color:rgba(var(--pst-color-admonition-note),1);content:var(--pst-icon-admonition-note)}table.field-list{border-collapse:separate;border-spacing:10px;margin-left:1px}table.field-list th.field-name{padding:1px 8px 1px 5px;white-space:nowrap;background-color:#eee}table.field-list td.field-body p{font-style:italic}table.field-list td.field-body p>strong{font-style:normal}table.field-list td.field-body blockquote{border-left:none;margin:0 0 .3em;padding-left:30px}.table.autosummary td:first-child{white-space:nowrap}.sig{font-family:var(--pst-font-family-monospace)}.sig-inline.c-texpr,.sig-inline.cpp-texpr{font-family:unset}.sig.c .k,.sig.c .kt,.sig.c .m,.sig.c .s,.sig.c .sc,.sig.cpp .k,.sig.cpp .kt,.sig.cpp .m,.sig.cpp .s,.sig.cpp .sc{color:rgba(var(--pst-color-text-base),1)}.sig-name{color:rgba(var(--pst-color-inline-code),1)}blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}dt.label>span.brackets:not(:only-child):before{content:"["}dt.label>span.brackets:not(:only-child):after{content:"]"}a.footnote-reference{vertical-align:super;font-size:small}div.deprecated{margin-bottom:10px;margin-top:10px;padding:7px;background-color:#f3e5e5;border:1px solid #eed3d7;border-radius:.5rem}div.deprecated p{color:#b94a48;display:inline}.topic{background-color:#eee}.seealso dd{margin-top:0;margin-bottom:0}.viewcode-back{font-family:var(--pst-font-family-base)}.viewcode-block:target{background-color:#f4debf;border-top:1px solid #ac9;border-bottom:1px solid #ac9}span.guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}footer{width:100%;border-top:1px solid #ccc;padding:10px}footer .footer-item p{margin-bottom:0}.bd-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px}.bd-search .icon{position:absolute;color:#a4a6a7;left:25px;top:25px}.bd-search input{border-radius:0;border:0;border-bottom:1px solid #e5e5e5;padding-left:35px}.bd-toc{-ms-flex-order:2;order:2;height:calc(100vh - 2rem);overflow-y:auto}@supports (position:-webkit-sticky) or (position:sticky){.bd-toc{position:-webkit-sticky;position:sticky;top:calc(var(--pst-header-height) + 20px);height:calc(100vh - 5rem);overflow-y:auto}}.bd-toc .onthispage{color:#a4a6a7}.section-nav{padding-left:0;border-left:1px solid #eee;border-bottom:none}.section-nav ul{padding-left:1rem}.toc-entry,.toc-entry a{display:block}.toc-entry a{padding:.125rem 1.5rem;color:rgba(var(--pst-color-toc-link),1)}@media (min-width:1200px){.toc-entry a{padding-right:0}}.toc-entry a:hover{color:rgba(var(--pst-color-toc-link-hover),1);text-decoration:none}.bd-sidebar{padding-top:1em}@media (min-width:720px){.bd-sidebar{border-right:1px solid rgba(0,0,0,.1)}@supports (position:-webkit-sticky) or (position:sticky){.bd-sidebar{position:-webkit-sticky;position:sticky;top:calc(var(--pst-header-height) + 20px);z-index:1000;height:calc(100vh - var(--pst-header-height) - 20px)}}}.bd-sidebar.no-sidebar{border-right:0}.bd-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width:720px){.bd-links{display:block}@supports (position:-webkit-sticky) or (position:sticky){.bd-links{max-height:calc(100vh - 11rem);overflow-y:auto}}}.bd-sidenav{display:none}.bd-content{padding-top:20px}.bd-content .section{max-width:100%}.bd-content .section table{display:block;overflow:auto}.bd-toc-link{display:block;padding:.25rem 1.5rem;font-weight:600;color:rgba(0,0,0,.65)}.bd-toc-link:hover{color:rgba(0,0,0,.85);text-decoration:none}.bd-toc-item.active{margin-bottom:1rem}.bd-toc-item.active:not(:first-child){margin-top:1rem}.bd-toc-item.active>.bd-toc-link{color:rgba(0,0,0,.85)}.bd-toc-item.active>.bd-toc-link:hover{background-color:transparent}.bd-toc-item.active>.bd-sidenav{display:block}nav.bd-links p.caption{font-size:var(--pst-sidebar-caption-font-size);text-transform:uppercase;font-weight:700;position:relative;margin-top:1.25em;margin-bottom:.5em;padding:0 1.5rem;color:rgba(var(--pst-color-sidebar-caption),1)}nav.bd-links p.caption:first-child{margin-top:0}.bd-sidebar .nav{font-size:var(--pst-sidebar-font-size)}.bd-sidebar .nav ul{list-style:none;padding:0 0 0 1.5rem}.bd-sidebar .nav li>a{display:block;padding:.25rem 1.5rem;color:rgba(var(--pst-color-sidebar-link),1)}.bd-sidebar .nav li>a:hover{color:rgba(var(--pst-color-sidebar-link-hover),1);text-decoration:none;background-color:transparent}.bd-sidebar .nav li>a.reference.external:after{font-family:Font Awesome\ 5 Free;font-weight:900;content:"\f35d";font-size:.75em;margin-left:.3em}.bd-sidebar .nav .active:hover>a,.bd-sidebar .nav .active>a{font-weight:600;color:rgba(var(--pst-color-sidebar-link-active),1)}.toc-h2{font-size:.85rem}.toc-h3{font-size:.75rem}.toc-h4{font-size:.65rem}.toc-entry>.nav-link.active{font-weight:600;color:#130654;color:rgba(var(--pst-color-toc-link-active),1);background-color:transparent;border-left:2px solid rgba(var(--pst-color-toc-link-active),1)}.nav-link:hover{border-style:none}#navbar-main-elements li.nav-item i{font-size:.7rem;padding-left:2px;vertical-align:middle}.bd-toc .nav .nav{display:none}.bd-toc .nav .nav.visible,.bd-toc .nav>.active>ul{display:block}.prev-next-area{margin:20px 0}.prev-next-area p{margin:0 .3em;line-height:1.3em}.prev-next-area i{font-size:1.2em}.prev-next-area a{display:flex;align-items:center;border:none;padding:10px;max-width:45%;overflow-x:hidden;color:rgba(0,0,0,.65);text-decoration:none}.prev-next-area a p.prev-next-title{color:rgba(var(--pst-color-link),1);font-weight:600;font-size:1.1em}.prev-next-area a:hover p.prev-next-title{text-decoration:underline}.prev-next-area a .prev-next-info{flex-direction:column;margin:0 .5em}.prev-next-area a .prev-next-info .prev-next-subtitle{text-transform:capitalize}.prev-next-area a.left-prev{float:left}.prev-next-area a.right-next{float:right}.prev-next-area a.right-next div.prev-next-info{text-align:right}.alert{padding-bottom:0}.alert-info a{color:#e83e8c}#navbar-icon-links i.fa,#navbar-icon-links i.fab,#navbar-icon-links i.far,#navbar-icon-links i.fas{vertical-align:middle;font-style:normal;font-size:1.5rem;line-height:1.25}#navbar-icon-links i.fa-github-square:before{color:#333}#navbar-icon-links i.fa-twitter-square:before{color:#55acee}#navbar-icon-links i.fa-gitlab:before{color:#548}#navbar-icon-links i.fa-bitbucket:before{color:#0052cc}.tocsection{border-left:1px solid #eee;padding:.3rem 1.5rem}.tocsection i{padding-right:.5rem}.editthispage{padding-top:2rem}.editthispage a{color:var(--pst-color-sidebar-link-active)}.xr-wrap[hidden]{display:block!important}.toctree-checkbox{position:absolute;display:none}.toctree-checkbox~ul{display:none}.toctree-checkbox~label i{transform:rotate(0deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label i{transform:rotate(180deg)}.bd-sidebar li{position:relative}.bd-sidebar label{position:absolute;top:0;right:0;height:30px;width:30px;cursor:pointer;display:flex;justify-content:center;align-items:center}.bd-sidebar label:hover{background:rgba(var(--pst-color-sidebar-expander-background-hover),1)}.bd-sidebar label i{display:inline-block;font-size:.75rem;text-align:center}.bd-sidebar label i:hover{color:rgba(var(--pst-color-sidebar-link-hover),1)}.bd-sidebar li.has-children>.reference{padding-right:30px}div.doctest>div.highlight span.gp,span.linenos,table.highlighttable td.linenos{user-select:none;-webkit-user-select:text;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.docutils.container{padding-left:unset;padding-right:unset} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/css/theme.css b/Lecture_DataScience_dotfiles/_build/html/_static/css/theme.css deleted file mode 100644 index 2e03fe37..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/css/theme.css +++ /dev/null @@ -1,120 +0,0 @@ -/* Provided by the Sphinx base theme template at build time */ -@import "../basic.css"; - -:root { - /***************************************************************************** - * Theme config - **/ - --pst-header-height: 60px; - - /***************************************************************************** - * Font size - **/ - --pst-font-size-base: 15px; /* base font size - applied at body / html level */ - - /* heading font sizes */ - --pst-font-size-h1: 36px; - --pst-font-size-h2: 32px; - --pst-font-size-h3: 26px; - --pst-font-size-h4: 21px; - --pst-font-size-h5: 18px; - --pst-font-size-h6: 16px; - - /* smaller then heading font sizes*/ - --pst-font-size-milli: 12px; - - --pst-sidebar-font-size: .9em; - --pst-sidebar-caption-font-size: .9em; - - /***************************************************************************** - * Font family - **/ - /* These are adapted from https://systemfontstack.com/ */ - --pst-font-family-base-system: -apple-system, BlinkMacSystemFont, Segoe UI, "Helvetica Neue", - Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; - --pst-font-family-monospace-system: "SFMono-Regular", Menlo, Consolas, Monaco, - Liberation Mono, Lucida Console, monospace; - - --pst-font-family-base: var(--pst-font-family-base-system); - --pst-font-family-heading: var(--pst-font-family-base); - --pst-font-family-monospace: var(--pst-font-family-monospace-system); - - /***************************************************************************** - * Color - * - * Colors are defined in rgb string way, "red, green, blue" - **/ - --pst-color-primary: 19, 6, 84; - --pst-color-success: 40, 167, 69; - --pst-color-info: 0, 123, 255; /*23, 162, 184;*/ - --pst-color-warning: 255, 193, 7; - --pst-color-danger: 220, 53, 69; - --pst-color-text-base: 51, 51, 51; - - --pst-color-h1: var(--pst-color-primary); - --pst-color-h2: var(--pst-color-primary); - --pst-color-h3: var(--pst-color-text-base); - --pst-color-h4: var(--pst-color-text-base); - --pst-color-h5: var(--pst-color-text-base); - --pst-color-h6: var(--pst-color-text-base); - --pst-color-paragraph: var(--pst-color-text-base); - --pst-color-link: 0, 91, 129; - --pst-color-link-hover: 227, 46, 0; - --pst-color-headerlink: 198, 15, 15; - --pst-color-headerlink-hover: 255, 255, 255; - --pst-color-preformatted-text: 34, 34, 34; - --pst-color-preformatted-background: 250, 250, 250; - --pst-color-inline-code: 232, 62, 140; - - --pst-color-active-navigation: 19, 6, 84; - --pst-color-navbar-link: 77, 77, 77; - --pst-color-navbar-link-hover: var(--pst-color-active-navigation); - --pst-color-navbar-link-active: var(--pst-color-active-navigation); - --pst-color-sidebar-link: 77, 77, 77; - --pst-color-sidebar-link-hover: var(--pst-color-active-navigation); - --pst-color-sidebar-link-active: var(--pst-color-active-navigation); - --pst-color-sidebar-expander-background-hover: 244, 244, 244; - --pst-color-sidebar-caption: 77, 77, 77; - --pst-color-toc-link: 119, 117, 122; - --pst-color-toc-link-hover: var(--pst-color-active-navigation); - --pst-color-toc-link-active: var(--pst-color-active-navigation); - - /***************************************************************************** - * Icon - **/ - - /* font awesome icons*/ - --pst-icon-check-circle: '\f058'; - --pst-icon-info-circle: '\f05a'; - --pst-icon-exclamation-triangle: '\f071'; - --pst-icon-exclamation-circle: '\f06a'; - --pst-icon-times-circle: '\f057'; - --pst-icon-lightbulb: '\f0eb'; - - /***************************************************************************** - * Admonitions - **/ - - --pst-color-admonition-default: var(--pst-color-info); - --pst-color-admonition-note: var(--pst-color-info); - --pst-color-admonition-attention: var(--pst-color-warning); - --pst-color-admonition-caution: var(--pst-color-warning); - --pst-color-admonition-warning: var(--pst-color-warning); - --pst-color-admonition-danger: var(--pst-color-danger); - --pst-color-admonition-error: var(--pst-color-danger); - --pst-color-admonition-hint: var(--pst-color-success); - --pst-color-admonition-tip: var(--pst-color-success); - --pst-color-admonition-important: var(--pst-color-success); - - --pst-icon-admonition-default: var(--pst-icon-info-circle); - --pst-icon-admonition-note: var(--pst-icon-info-circle); - --pst-icon-admonition-attention: var(--pst-icon-exclamation-circle); - --pst-icon-admonition-caution: var(--pst-icon-exclamation-triangle); - --pst-icon-admonition-warning: var(--pst-icon-exclamation-triangle); - --pst-icon-admonition-danger: var(--pst-icon-exclamation-triangle); - --pst-icon-admonition-error: var(--pst-icon-times-circle); - --pst-icon-admonition-hint: var(--pst-icon-lightbulb); - --pst-icon-admonition-tip: var(--pst-icon-lightbulb); - --pst-icon-admonition-important: var(--pst-icon-exclamation-circle); - -} diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/doctools.js b/Lecture_DataScience_dotfiles/_build/html/_static/doctools.js deleted file mode 100644 index 8cbf1b16..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/doctools.js +++ /dev/null @@ -1,323 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for all documentation. - * - * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x - } - return decodeURIComponent(x.replace(/\+/g, ' ')); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { - this.initOnKeyListeners(); - } - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey - && !event.shiftKey) { - switch (event.keyCode) { - case 37: // left - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 39: // right - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - } - } - }); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/documentation_options.js b/Lecture_DataScience_dotfiles/_build/html/_static/documentation_options.js deleted file mode 100644 index 93b7c24d..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/documentation_options.js +++ /dev/null @@ -1,12 +0,0 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '', - LANGUAGE: 'None', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '', - NAVIGATION_WITH_KEYS: true -}; \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/file.png b/Lecture_DataScience_dotfiles/_build/html/_static/file.png deleted file mode 100644 index a858a410..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_static/file.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/images/logo_binder.svg b/Lecture_DataScience_dotfiles/_build/html/_static/images/logo_binder.svg deleted file mode 100644 index 45fecf75..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/images/logo_binder.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - -logo - - - - - - - - diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/images/logo_colab.png b/Lecture_DataScience_dotfiles/_build/html/_static/images/logo_colab.png deleted file mode 100644 index b7560ec2..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/_static/images/logo_colab.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/images/logo_jupyterhub.svg b/Lecture_DataScience_dotfiles/_build/html/_static/images/logo_jupyterhub.svg deleted file mode 100644 index 60cfe9f2..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/images/logo_jupyterhub.svg +++ /dev/null @@ -1 +0,0 @@ -logo_jupyterhubHub diff --git a/Lecture_DataScience_dotfiles/_build/html/_static/jquery-3.5.1.js b/Lecture_DataScience_dotfiles/_build/html/_static/jquery-3.5.1.js deleted file mode 100644 index 50937333..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/_static/jquery-3.5.1.js +++ /dev/null @@ -1,10872 +0,0 @@ -/*! - * jQuery JavaScript Library v3.5.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2020-05-04T22:49Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var flat = arr.flat ? function( array ) { - return arr.flat.call( array ); -} : function( array ) { - return arr.concat.apply( [], array ); -}; - - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - -var document = window.document; - - - - var preservedScriptAttributes = { - type: true, - src: true, - nonce: true, - noModule: true - }; - - function DOMEval( code, node, doc ) { - doc = doc || document; - - var i, val, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.5.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - even: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return ( i + 1 ) % 2; - } ) ); - }, - - odd: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return i % 2; - } ) ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - copy = options[ name ]; - - // Prevent Object.prototype pollution - // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; - } else { - clone = src; - } - copyIsArray = false; - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function( code, options, doc ) { - DOMEval( code, { nonce: options && options.nonce }, doc ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return flat( ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.5 - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://js.foundation/ - * - * Date: 2020-03-14 - */ -( function( window ) { -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - nonnativeSelectorCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ( {} ).hasOwnProperty, - arr = [], - pop = arr.pop, - pushNative = arr.push, - push = arr.push, - slice = arr.slice, - - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[ i ] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + - "ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram - identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + - "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - - // "Attribute values must be CSS identifiers [capture 5] - // or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + - whitespace + "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + - whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + - "*" ), - rdescend = new RegExp( whitespace + "|>" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + - whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + - whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + - "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rhtml = /HTML$/i, - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), - funescape = function( escape, nonHex ) { - var high = "0x" + escape.slice( 1 ) - 0x10000; - - return nonHex ? - - // Strip the backslash prefix from a non-hex escape sequence - nonHex : - - // Replace a hexadecimal escape sequence with the encoded Unicode code point - // Support: IE <=11+ - // For values outside the Basic Multilingual Plane (BMP), manually construct a - // surrogate pair - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + - ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - inDisabledFieldset = addCombinator( - function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - ( arr = slice.call( preferredDoc.childNodes ) ), - preferredDoc.childNodes - ); - - // Support: Android<4.0 - // Detect silently failing push.apply - // eslint-disable-next-line no-unused-expressions - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - pushNative.apply( target, slice.call( els ) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - - // Can't trust NodeList.length - while ( ( target[ j++ ] = els[ i++ ] ) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - setDocument( context ); - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { - - // ID selector - if ( ( m = match[ 1 ] ) ) { - - // Document context - if ( nodeType === 9 ) { - if ( ( elem = context.getElementById( m ) ) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && ( elem = newContext.getElementById( m ) ) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[ 2 ] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && - - // Support: IE 8 only - // Exclude object elements - ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // The technique has to be used as well when a leading combinator is used - // as such selectors are not recognized by querySelectorAll. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && - ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - - // We can use :scope instead of the ID hack if the browser - // supports it & if we're not changing the context. - if ( newContext !== context || !support.scope ) { - - // Capture the context ID, setting it first if necessary - if ( ( nid = context.getAttribute( "id" ) ) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", ( nid = expando ) ); - } - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + - toSelector( groups[ i ] ); - } - newSelector = groups.join( "," ); - } - - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return ( cache[ key + " " ] = value ); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement( "fieldset" ); - - try { - return !!fn( el ); - } catch ( e ) { - return false; - } finally { - - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split( "|" ), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[ i ] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( ( cur = cur.nextSibling ) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return ( name === "input" || name === "button" ) && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction( function( argument ) { - argument = +argument; - return markFunction( function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ ( j = matchIndexes[ i ] ) ] ) { - seed[ j ] = !( matches[ j ] = seed[ j ] ); - } - } - } ); - } ); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9 - 11+, Edge 12 - 18+ - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( preferredDoc != document && - ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, - // Safari 4 - 5 only, Opera <=11.6 - 12.x only - // IE/Edge & older browsers don't support the :scope pseudo-class. - // Support: Safari 6.0 only - // Safari 6.0 supports :scope but it's an alias of :root there. - support.scope = assert( function( el ) { - docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); - return typeof el.querySelectorAll !== "undefined" && - !el.querySelectorAll( ":scope fieldset div" ).length; - } ); - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert( function( el ) { - el.className = "i"; - return !el.getAttribute( "className" ); - } ); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert( function( el ) { - el.appendChild( document.createComment( "" ) ); - return !el.getElementsByTagName( "*" ).length; - } ); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert( function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - } ); - - // ID filter and find - if ( support.getById ) { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute( "id" ) === attrId; - }; - }; - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode( "id" ); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( ( elem = elems[ i++ ] ) ) { - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find[ "TAG" ] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { - - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert( function( el ) { - - var input; - - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll( "[selected]" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push( "~=" ); - } - - // Support: IE 11+, Edge 15 - 18+ - // IE 11/Edge don't find elements on a `[name='']` query in some cases. - // Adding a temporary attribute to the document before the selection works - // around the issue. - // Interestingly, IE 10 & older don't seem to have the issue. - input = document.createElement( "input" ); - input.setAttribute( "name", "" ); - el.appendChild( input ); - if ( !el.querySelectorAll( "[name='']" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + - whitespace + "*(?:''|\"\")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll( ":checked" ).length ) { - rbuggyQSA.push( ":checked" ); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push( ".#.+[+~]" ); - } - - // Support: Firefox <=3.6 - 5 only - // Old Firefox doesn't throw on a badly-escaped identifier. - el.querySelectorAll( "\\\f" ); - rbuggyQSA.push( "[\\r\\n\\f]" ); - } ); - - assert( function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement( "input" ); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll( "[name=d]" ).length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: Opera 10 - 11 only - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll( "*,:x" ); - rbuggyQSA.push( ",.*:" ); - } ); - } - - if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector ) ) ) ) { - - assert( function( el ) { - - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - } ); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - ) ); - } : - function( a, b ) { - if ( b ) { - while ( ( b = b.parentNode ) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { - - // Choose the first element that is related to our preferred document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( a == document || a.ownerDocument == preferredDoc && - contains( preferredDoc, a ) ) { - return -1; - } - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( b == document || b.ownerDocument == preferredDoc && - contains( preferredDoc, b ) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - return a == document ? -1 : - b == document ? 1 : - /* eslint-enable eqeqeq */ - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( ( cur = cur.parentNode ) ) { - ap.unshift( cur ); - } - cur = b; - while ( ( cur = cur.parentNode ) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[ i ] === bp[ i ] ) { - i++; - } - - return i ? - - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[ i ], bp[ i ] ) : - - // Otherwise nodes in our document sort first - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - ap[ i ] == preferredDoc ? -1 : - bp[ i ] == preferredDoc ? 1 : - /* eslint-enable eqeqeq */ - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - setDocument( elem ); - - if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch ( e ) { - nonnativeSelectorCache( expr, true ); - } - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( context.ownerDocument || context ) != document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( elem.ownerDocument || elem ) != document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return ( sel + "" ).replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - - // If no nodeType, this is expected to be an array - while ( ( node = elem[ i++ ] ) ) { - - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[ 1 ] = match[ 1 ].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[ 3 ] = ( match[ 3 ] || match[ 4 ] || - match[ 5 ] || "" ).replace( runescape, funescape ); - - if ( match[ 2 ] === "~=" ) { - match[ 3 ] = " " + match[ 3 ] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[ 1 ] = match[ 1 ].toLowerCase(); - - if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - - // nth-* requires argument - if ( !match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[ 4 ] = +( match[ 4 ] ? - match[ 5 ] + ( match[ 6 ] || 1 ) : - 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); - match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - - // other types prohibit arguments - } else if ( match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[ 6 ] && match[ 2 ]; - - if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[ 3 ] ) { - match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - - // Get excess from tokenize (recursively) - ( excess = tokenize( unquoted, true ) ) && - - // advance to the next closing parenthesis - ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { - - // excess is a negative index - match[ 0 ] = match[ 0 ].slice( 0, excess ); - match[ 2 ] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { - return true; - } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - ( pattern = new RegExp( "(^|" + whitespace + - ")" + className + "(" + whitespace + "|$)" ) ) && classCache( - className, function( elem ) { - return pattern.test( - typeof elem.className === "string" && elem.className || - typeof elem.getAttribute !== "undefined" && - elem.getAttribute( "class" ) || - "" - ); - } ); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - /* eslint-disable max-len */ - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - /* eslint-enable max-len */ - - }; - }, - - "CHILD": function( type, what, _argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, _context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( ( node = node[ dir ] ) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( ( node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - - // Use previously-cached element index if available - if ( useCache ) { - - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - - // Use the same loop as above to seek `elem` from the start - while ( ( node = ++nodeIndex && node && node[ dir ] || - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || - ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction( function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[ i ] ); - seed[ idx ] = !( matches[ idx ] = matched[ i ] ); - } - } ) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - - // Potentially complex pseudos - "not": markFunction( function( selector ) { - - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction( function( seed, matches, _context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( ( elem = unmatched[ i ] ) ) { - seed[ i ] = !( matches[ i ] = elem ); - } - } - } ) : - function( elem, _context, xml ) { - input[ 0 ] = elem; - matcher( input, null, xml, results ); - - // Don't keep the element (issue #299) - input[ 0 ] = null; - return !results.pop(); - }; - } ), - - "has": markFunction( function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - } ), - - "contains": markFunction( function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; - }; - } ), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - - // lang value must be a valid identifier - if ( !ridentifier.test( lang || "" ) ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( ( elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); - return false; - }; - } ), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && - ( !document.hasFocus || document.hasFocus() ) && - !!( elem.type || elem.href || ~elem.tabIndex ); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return ( nodeName === "input" && !!elem.checked ) || - ( nodeName === "option" && !!elem.selected ); - }, - - "selected": function( elem ) { - - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - // eslint-disable-next-line no-unused-expressions - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos[ "empty" ]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( ( attr = elem.getAttribute( "type" ) ) == null || - attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo( function() { - return [ 0 ]; - } ), - - "last": createPositionalPseudo( function( _matchIndexes, length ) { - return [ length - 1 ]; - } ), - - "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - } ), - - "even": createPositionalPseudo( function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "odd": createPositionalPseudo( function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ) - } -}; - -Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || ( match = rcomma.exec( soFar ) ) ) { - if ( match ) { - - // Don't consume trailing commas as valid - soFar = soFar.slice( match[ 0 ].length ) || soFar; - } - groups.push( ( tokens = [] ) ); - } - - matched = false; - - // Combinators - if ( ( match = rcombinators.exec( soFar ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - - // Cast descendant combinators to space - type: match[ 0 ].replace( rtrim, " " ) - } ); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || - ( match = preFilters[ type ]( match ) ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - } ); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[ i ].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || ( elem[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || - ( outerCache[ elem.uniqueID ] = {} ); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( ( oldCache = uniqueCache[ key ] ) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return ( newCache[ 2 ] = oldCache[ 2 ] ); - } else { - - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[ i ]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[ 0 ]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[ i ], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( ( elem = unmatched[ i ] ) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction( function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( - selector || "*", - context.nodeType ? [ context ] : context, - [] - ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( ( elem = temp[ i ] ) ) { - matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) ) { - - // Restore matcherIn since elem is not yet a final match - temp.push( ( matcherIn[ i ] = elem ) ); - } - } - postFinder( null, ( matcherOut = [] ), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) && - ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - - seed[ temp ] = !( results[ temp ] = elem ); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - } ); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[ 0 ].type ], - implicitRelative = leadingRelative || Expr.relative[ " " ], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - ( checkContext = context ).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { - matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; - } else { - matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[ j ].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens - .slice( 0, i - 1 ) - .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), - - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), - len = elems.length; - - if ( outermost ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - outermostContext = context == document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( !context && elem.ownerDocument != document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( ( matcher = elementMatchers[ j++ ] ) ) { - if ( matcher( elem, context || document, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - - // They will have gone through all possible matchers - if ( ( elem = !matcher && elem ) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( ( matcher = setMatchers[ j++ ] ) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !( unmatched[ i ] || setMatched[ i ] ) ) { - setMatched[ i ] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[ i ] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( - selector, - matcherFromGroupMatchers( elementMatchers, setMatchers ) - ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( ( selector = compiled.selector || selector ) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[ 0 ] = match[ 0 ].slice( 0 ); - if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - - context = ( Expr.find[ "ID" ]( token.matches[ 0 ] - .replace( runescape, funescape ), context ) || [] )[ 0 ]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[ i ]; - - // Abort if we hit a combinator - if ( Expr.relative[ ( type = token.type ) ] ) { - break; - } - if ( ( find = Expr.find[ type ] ) ) { - - // Search, expanding context for leading sibling combinators - if ( ( seed = find( - token.matches[ 0 ].replace( runescape, funescape ), - rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || - context - ) ) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert( function( el ) { - - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; -} ); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert( function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute( "href" ) === "#"; -} ) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - } ); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert( function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -} ) ) { - addHandle( "value", function( elem, _name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - } ); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert( function( el ) { - return el.getAttribute( "disabled" ) == null; -} ) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; - } - } ); -} - -return Sizzle; - -} )( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, _i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, _i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, _i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( elem.contentDocument != null && - - // Support: IE 11+ - // elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto( elem.contentDocument ) ) { - - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( _i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return master.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); - } - - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, _key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( _all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (#9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - isAttached( elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // Support: IE <=9 only - // IE <=9 replaces "; - support.option = !!div.lastChild; -} )(); - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
" ], - col: [ 2, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - _default: [ 0, "", "" ] -}; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "" ]; -} - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - attached = isAttached( elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( attached ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - -// Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); - } - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); - } - - // Return non-false to allow normal event-path propagation - return true; - }, - - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - return result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - delegateType: delegateType - }; -} ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); - events = pdataOld.events; - - if ( events ) { - dataPriv.remove( dest, "handle events" ); - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = flat( args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html; - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = isAttached( elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px"; - tr.style.height = "1px"; - trChild.style.height = "9px"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !isAttached( elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; - -// Return a vendor-prefixed property or undefined -function vendorPropName( name ) { - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property -function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; - } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( _elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. - if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - - // Make sure the element is visible & connected - elem.getClientRects().length ) { - - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( _i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = { guid: Date.now() }; - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - if ( a == null ) { - return ""; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); - } - } - match = responseHeaders[ key.toLowerCase() + " " ]; - } - return match == null ? null : match.join( ", " ); - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { - s.converters[ "text script" ] = function() {}; - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( _i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - - -jQuery._evalUrl = function( url, options, doc ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); - } - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( " -{% endmacro %} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/genindex.html b/Lecture_DataScience_dotfiles/_build/html/genindex.html deleted file mode 100644 index 5fca4b58..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/genindex.html +++ /dev/null @@ -1,373 +0,0 @@ - - - - - - - - Index — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - -
- - -
- -
-
-
-
-
- -
- - -

Index

- -
- -
- - -
- - - -
-
- -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/index.html b/Lecture_DataScience_dotfiles/_build/html/index.html deleted file mode 100644 index f5b8d030..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/index.html +++ /dev/null @@ -1,497 +0,0 @@ - - - - - - - - 資料:実践データサイエンス — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -
-

資料:実践データサイエンス

-

本コンテンツは宇都宮大学の基盤科目「実践データサイエンス」の授業資料です。

-
-

資料の使い方

-

本講義では資料(≒ファイル形式)や利用する外部サービス等が幾つかある。 -慣れないうちは混同するかと思うので、ここに資料自体の説明と各種アプリケーションやサービスの説明をまとめておく。

-
-

ブック

- -

本資料はJupyter Notebook形式で作成されたソースファイルをJupyter Bookを用いて変換することで作成されたコンテンツになっている。この形式の資料を授業内ではブックないしBookと表記・呼称する。

-
-
-

ノートブック

-

Jupyter Notebookとは、Markdownテキスト・数式・図などを含んだドキュメント作成とPythonなどのプログラミング実行を提供する環境で、授業資料は.ipynbという拡張子のJupyterNotebook用ファイルとして作成されている。授業ではこれをノートブックNotebookなどと表記・呼称する。

-

.ipynb形式のソースファイルの管理と共有には、GitHubと呼ばれる環境を利用していて、ソースファイルはこちらからも閲覧できる(この授業を受講したりプログラムを実行するのに皆さんがGitHubのアカウントを取得したりこのリンクを開いたりする必要は特段ありません)。 -Jupyter Notebookを編集・実行するための環境はいくつかあるが、本授業では環境構築やそれにかかるトラブルシューティングを最小化するために、Google Colaboratoryというサービスを利用してGoogleのクラウド環境上でJupyter Nootebookを編集・実行する方式を採用している。

-
-

Note

-

授業に先立ってGoogleのアカウントの新規取得をお願いします

-
-

ブックは概要をとらえたり復習をするときには見やすくて便利だが、実際に自身でコードを実行したりプログラムを書く場合にはGoogle Colaboratory上でJupyter Notebookを開くことになる。
-Google Colab.上でノートブックを開くには、各章の冒頭に用意された”Open in Colab”というボタンをクリックするか、上のロケットの形をしたボタンにマウスオーバーして”Colab”から開く。左の”Google Colaboratoryの使い方”や第1章のノートブックで試してみよう。参考: -

-
-
-
-

不具合報告または問い合わせ

-

本講義資料に関する不具合(リンク切れなど)の報告や問い合わせについては下記のフォームよりお願いします。 -授業受講者からの不具合報告関しては授業やCL等で返答します。授業外の問い合わせについては、お答え出来ない場合もありますので予めご了承ください。

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter0_HowToUse.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter0_HowToUse.html deleted file mode 100644 index ec4dfef8..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter0_HowToUse.html +++ /dev/null @@ -1,612 +0,0 @@ - - - - - - - - Google Colaboratoryの使い方 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

Google Colaboratoryの使い方

-
-

Note

-

以下の内容は、Google Colaboratoryや関連サービスのアップデートに伴い、数ヶ月経つとところどころ文言が変更されている場合があります。適宜対応するものに置き換えて読んでいただけると助かります。

-
-
-

Note

-

Macユーザーの人は適宜下記のコントロールキーCtrlcommand()キーに読み替えてください。

-
-

Google Colaboratory上でノートブックを開くと、下記のような画面が開く。(上のOpen in ColabまたはロケットマークからColabを開いてみよう!)

-

-

この画面が開いたときに、右上にお使いのGoogleのアカウントのアイコンが表示されている人はそのまま以下へ、”ログイン”というボタンが表示されている人はまずそちらからご自身のアカウントにログインしてください。 -授業ではプログラミングの強力さを体感してもらうために、Google Driveの中に入っているcsv/excelファイルを読み出して自動で作画をするプログラムを書いたりする。 -その際、教員やTAと受講者間でdriveを見ながら相談することもあり得る。プライベートなアカウントとは別に、大学の授業で使う専用のアカウントを新規作成するのを強く推奨します。

-

Google Colaboratory(あるいはJupyterNotebook)環境ではユーザーは

-
    -
  • テキストセル

  • -
  • コードセル

  • -
-

の2つを駆使して、自分だけのノートブックを作成したり、他者が作成した.ipynb形式のファイルを開いて編集したりプログラムを実行することができる。

-
-

テキストセル

-

[+テキスト]というボタンを押すとテキストセルを追加することができます。

-
-

テキスト部分への数式の挿入

-

Jupyter Nootebookでは\(\LaTeX\)形式の数式をサポートしていて、ドルマークで囲むと数式を表示させることもできます。
-\(f(x) = \frac{1}{2}\exp{(-2x^2 + 3x + 5)}\)

-
-
-
-

コードセル

-

[+コード]というボタンを押すか、特定のショートカットCtrl + M Bでコードセルを追加することができる。

-

コードセルに記述したPythonコードは、コードセルにマウスオーバーした際に現れる再生ボタンのようなアイコンをクリックするか、セル内でCtrl+Enterを押すことで実行ができる。 -実行のたびにいちいちマウスに手をやるのは面倒なので、是非ショートカットを使おう。 -この例に限らず、手の移動を最小限にすることで作業を楽にしたり押し間違いを防ぐこともできる。 -アプリケーションにあまり依らない共通のショートカット(Ctrl+S(⌘+S)は保存,Ctrl+W(⌘+W)はタブを閉じる, などなど)ので少しずつショートカットを覚えるようにしよう。

-

コードセルにはコメントを除いて、全角文字は使わないように意識しよう。 -全角スペースなどが気づかずに混入して、エラーの原因になることがよくある。

-
-
-

重要な注

-

ブックから開いたノートブック

- -

は、皆さんがコピーをするなどしない限り、実行はできても保存はできません。

-
-

Warning

-

必ず、[ドライブにコピーを保存]ボタンか、[ファイル]->[ドライブにコピーを保存]を押し、”ご自身のファイル”を編集・保存するようにしてください -

-
-

上の画像のように、ノートブックのファイル名の横にGitHubのロゴ(タコ足猫)が表示されている場合、 -皆さんが開いているのはGitHubからインポートされたノートブックであって、皆さん自身のファイルではありません。
-途中でうっかりタブやブラウザを閉じてしまうと作業内容が消えてしまいます。

-

私も一連の講義資料作成時にGitHubから開いたノートブックを直接編集して数時間分の作業内容を消してしまったことが何度もあります…。辛いです。

-

コピーを編集している場合は、左上のノートブック名の隣がGoogle driveのロゴになっているはず。
-この場合、編集されたものはGoogle Driveに一定時間で自動でバックアップされるので安心ですし、いつでもどの端末からでも開いて作業を再開することができます。
-

- -

WindowsならCtrl+ S, MacならCommand + Sを押すことで随時Google Driveにバックアップを保存することができます。
-誤った内容に編集してしまった場合もGoogle Colaboratoryの”最終編集: X月Y日”といったところやGoogle Drive上でファイルの上で右クリック→”版を管理”から復元することができます。

-
-
-

なんか挙動が変だな、と思ったら。

-

複数のセルにまたがるコードを実行していくうちに変数に意図しないものが入っていたりなんか変だな、挙動が怪しいな、と思ったら[ランタイム]や[編集]などから下記の操作を行ってみましょう。

-
    -
  • セルの実行を停止したい場合: [ランタイム]→[実行の中断]で中断 (or [セッションの管理]から不要なセッションを削除する)

  • -
  • 再起動したい場合: [ランタイム]→[ランタイムを再起動]

  • -
  • 出力をいったん全部消したい: [編集]→[出力をすべて消去]

  • -
-
-
-

Google Driveからファイルのインポート

-

Google Colaboratoryでは、Google Driveに保存されたファイルの内容を読み込んだり、逆にコードでテキストファイル,エクセルファイルや画像,音声などを作成しGoogle Driveに保存することができます。

-

お使いのアカウントのDriveをGoogle colab.から操作する方法は主に2通りあります。

-

1つめ:
-以下を実行し、出てくるURLに遷移
-authorization codeをコピーし枠内に貼り付けてEnterを押す
-(Google colabからgoogle driveのファイルにアクセスできるようになります)

-
from google.colab import drive
-drive.mount('/content/drive/') ##google driveを/content/という場所にマウント (2番めと整合するようにパスを選びましたが、マウントする場所は自由に選べます)
-
-
-

たとえばgoogle drive直下にあるXXX.pngというファイルを指定したい場合は

-
filename = "/content/drive/My Drive/XXX.png"
-
-
-

とすれば良い。

-

2つめ:
-Google Colabの左側にあるフォルダマークをクリックし、(「ファイルのブラウジングを有効にするには、ランタイムに接続してください。」と出る場合は、少し待ってください)
-次に、Google driveのロゴがついたフォルダをクリックする(画像の、[ファイル]というところの右下にある、driveのロゴがついたグレーがかったフォルダマーク)
-

-

この場合は自動で/content/driveという場所にマウントされるので(仕様が変更になる可能性あり)
-google drive直下にあるXXX.pngというファイルを指定したい場合はやはり

-
filename = "/content/drive/My Drive/XXX.png"
-
-
-

などとすれば良い。
-また、driveを一度マウントした後でパスがわからなくなったときには左の[ファイル]からdriveに相当するフォルダにマウスオーバーして縦3点\(\vdots\)から[パスをコピー]で、パスをクリップボードにコピーすることができます。

-
-
-

シェルコマンドとドライブ内のファイルのパス

-

Google Colab.では先頭にエクスクラメーションマークをつけることで

-
    -
  • ls (リスト,ファイル等表示)

  • -
  • mkdir (ディレクトリ作成)

  • -
-

などのLinux/Unixで用いられるコマンドを実行することもできる。
-たとえばGoogle Driveをマウントした後にマイドライブ直下にあるpng画像のリストを表示させたければ

-
!ls /content/drive/MyDrive/*.png 
-
-
-

とすればよい。 -なお、半角のアスタリスクはワイルドカード記号「対象を任意に」という命令になっている。

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter1_Introduction.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter1_Introduction.html deleted file mode 100644 index 095df221..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter1_Introduction.html +++ /dev/null @@ -1,933 +0,0 @@ - - - - - - - - 1. Pythonの基本 その1: — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

1. Pythonの基本 その1:

-

授業の冒頭で説明するように、プログラミングによるデータ分析は、複雑なデータの取り扱いを簡単にしてくれたり、系統的な作業を可能にしミス(精度)をコントロールすることが出来たりと利点が多い。しかし、その恩恵を受けるためには基本的な事項をまず学修しなくてはならない。

- -

この授業で重視するのはPythonの文法や作法、テクニックではない。というのも、自分が実現したい操作・作業をきちんと言語化することさえできれば、授業で扱う程度の内容であればググればだいたいのことは解決できるし、インターフェース(見た目)が違ったとしても別のプログラミング言語やデータ解析ツールにも応用が効く。

-

したがって、以降では「いったいなんのためにホニャララなんてものを導入(定義)するのか?」を意識しながら学習していくことにしよう。

-
-

1.1. 変数の定義と簡単な演算

-

「”値”に固有の名前(識別子)を付したもの」変数と定義する。

-

どのようなものが”値”として扱えるかは後で見ていくことにして、まずは代表的な値である実数値,整数を変数として定義してみよう。

-
-
-
a = 2.0 
-b = 5
-
-
-
-
-

これで変数aと変数bに値が代入され”定義”された。
-プログラムでは通常、等号記号(=)は代入に使用される。値の代入は、等号の左に変数(値を入れたいものの名前)、等号の右に値を書くことで行う。

-

注: よく書籍などでは変数を箱と見立てて箱の中に数値や文字列を入れる説明もよく見られるが、変数は値が保管されるメモリ上の住所を示すものというのが正確。関連した話題としては、次の章のリスト操作の注意点を参照.

-
-
-

1.2. 簡単な演算

-

次に、上で定義された変数を使って四則演算をしてみよう。

-

足し算

-
-
-
a+b 
-
-
-
-
-
7.0
-
-
-
-
-

引き算

-
-
-
a-b
-
-
-
-
-
-3.0
-
-
-
-
-

掛け算 掛け算記号は*(アスタリスク)

-
-
-
a*b
-
-
-
-
-
10.0
-
-
-
-
-

割り算

-
-
-
a/b
-
-
-
-
-

演算した結果を別の変数cとして定義したり代入して保存しておくこともできる

-
-
-
c=a*b 
-
-
-
-
-

cの値が後で知りたいと思ったときは、以下のようにprint関数というものを使う

-
-
-
print(c)
-
-
-
-
-
10.0
-
-
-
-
-

変数の値を確認することは、プログラムが正しく動いているかを確認する最も単純かつ強力な方法である。
-慣れないうちは「値はなんだっけな?」「何かおかしい、意図した動きと違うな」と思ったらprintしてみよう。

-

またコード部分に#(半角シャープ記号)をつけるとその行の#以降に書かれたことは無視されるのでコメント(注釈)を書いたりすることができる。

-
-
-
print("Hello") # Helloとプリントする(ここは読まれない)
-
-
-
-
-

なれないうちはどういった計算をするのかその行をいつ編集したのかなどコメントを逐一書いておくのも良い。

-
-
-
## 10月1日に編集
-print(b//a) # 切り捨て除算 
-print(b%a) # bをaで割った余り
-print(a**b) # aのb乗
-
-
-
-
-

上の例で、#を忘れると

-
-
-
print("Hello") Helloとプリントする
-
-
-
-
-
  File "<ipython-input-1-477d89cfb689>", line 1
-    print("Hello") Helloとプリントする
-                              ^
-SyntaxError: invalid syntax
-
-
-
-
-

構文エラー(SyntaxError)が発生する。 -基本的にSyntaxError:あなたの書いたコードがPythonの文法上許されない書き方になっていることを意味している。

-
-
-
print("Hello")
-
-
-
-
-

は一見問題ないように見えるが、print関数の右側の括弧が全角になっているため、これもSyntaxErrorとなる。 -細かな文法やエラーの原因の特定については、一緒に少しずつ慣れていこう。

-

一度定義した変数は、値を更新することもできる。

-

a = a + 2は、”aに2を加えた値”でaを再定義することを表し、a += 2 と書いても同じ結果が得られる。(+= を用いた書き方のほうがシンプルなので、今後多用します)

-
-
-
a = 2.0 
-a += 4.0; print("2行目", a) 
-a -= 3.0; print("3行目", a)
-a *= 3.0; print("4行目", a)
-a /= 3.0; print("5行目", a)
-
-
-
-
-

上では、セミコロン(;)で、複数のコードを1行に書くことができる機能を用いた。

-
-
-

1.3. 変数名に関する約束

-

この授業では変数名に全角文字(ひらがな・カタカナ・漢字)は使わず、文字列かコメントにのみ使うと約束をしよう。

-
-
-
#非推奨
-=1.0
-print()
-
-
-
-
-

上記のように、変数名にひらがな等を使用すること自体は可能で、Google Colaboratoryでも何も特別なことをしなくてもひらがなが使える。また、最近の多くのプログラミング言語は全角文字をサポートしている。 -ただファイルの互換性などを考慮すると、一般にはひらがなや漢字など全角文字を変数に指定することは避けたほうが無難である。

-

また、変数名などにひらがなを使うことに由来して起こりがちなバグとしては「括弧()を間違って全角にしてしまってそれに気が付かない」といったことがある。コードを編集する際に日本語の変数などを利用していると、半角・全角の切り替え忘れなどが生じうるので、コードセルではなるべく半角英数字のみを使うというのが、ミスを防ぐための一つの方法にもなっている。

-

以降ではこの慣例にならって、変数名に全角文字は使わない。変数名は基本的に半角英数字, アンダースコア_のみで定義しよう。 -+-%/=などの記号も使うことができない。たとえば-は既に引き算という演算を表すのに使用されているので、a-b という名前の変数を定義しようとしても、コンピュータにとっては変数ではなく[a マイナス b]という演算だと認識されてしまう。 -また変数の頭に数字を使うこともできない。 例: 2a

-
-
-
a=5.0
-a2 = a*2.0 #これはOK
-
-
-
-
-
-
-
2a = a*2.0 #これは構文エラー(SyntaxError)
-
-
-
-
-
  File "<ipython-input-2-a0feb3e303b1>", line 1
-    2a = a*2.0 #これは構文エラー(SyntaxError)
-     ^
-SyntaxError: invalid syntax
-
-
-
-
-

その他、よくあるエラーについてはこちらを参照

-
-
-

1.4. Pythonでの文字列操作

-

Pythonでは、数値はもちろん文字列もとして扱うことができる。文字列は""(ダブルクォーテーション)か''(シングルクォーテーション)で囲むことで定義することができる。

-
-
-
text = "私の名前はXXXです" ## XXXのところを自分の名前にしてみましょう。
-print(text)
-
-
-
-
-

文字列には、足し算や整数値との掛け算が適用できる。たとえば

-
-
-
text1 = "ティッシュ配りの"
-text2 = "バイトを監視する"
-print(text1 + text2) 
-
-
-
-
-

とすれば、text1text2にそれぞれ代入した2つの文字列を連結した一つの文字列を表示することができる。 -また、

-
-
-
a = 2
-print(str(a)+"人の"+text1+ text2 * 5 +"正社員")
-
-
-
-
-

とすれば、text2部分を5回繰り返して他の文字列とつなぎ合わせた長い文字列を作ることもできる。

-

1点注意点としては、整数値を代入したaを文字列として他の文字列と結合したいときは、 -str()関数(strはstringの略)を使って、文字列に変換してやらなくてはならない。 -これに関連して、後ほど変数のというものを勉強する。

-

また足し算と掛け算は定義できるが、文字列に対して引き算や割り算を行おうとするとエラーを吐く。

-

※もう少し詳細な文字列操作 -replace関数,split関数,strip関数なども便利ですが、この章では省略します。以降の”ファイル・文字列操作”の章で扱います。

-
-
-

1.5. プログラムの実行順

-

基本的にプログラミングでは、上から処理が実行される。
-(ループや関数が導入されると少し事情が異なり、ブロックと呼ばれる処理単位でまとめて実行されることもあるが、この点については、2・3章以降で追々見ていくことにしましょう)

-

以下の2行のコードは、実行するとエラーが出る。

-
-
-
print(num)
-num=2
-
-
-
-
-
---------------------------------------------------------------------------
-NameError                                 Traceback (most recent call last)
-<ipython-input-3-45ab67c52851> in <module>()
-----> 1 print(num)
-      2 num=2
-
-NameError: name 'num' is not defined
-
-
-
-
-

理由は、エラーメッセージを読むと分かるように、numという変数が定義されていない(not defined/undefined)のに、その値をprintしようとしたからである。

-

もちろんnum=2の代入部分を含むコードを実行した後ならエラーはでない。

-
-
-
num=2
-print(num)
-
-
-
-
-
2
-
-
-
-
-

とくにGoogle Colab(Jupyter Notebook)環境では、セルをまたいでコードを実行することがあるので、意図した変数の値がきちんと引き継がれているか注意が必要になる。また変数のスコープという概念にも注意が必要となる(関数を扱う第3章で解説します).

-

Jupyter Notebook環境では、セルのコードを逐次実行した場合コードセルの左側に表示される括弧[ ]内の整数でコードの実行順を確認することができる。コードやノートが複雑になってくると、正しい順番で実行しないとエラーが出たり、エラーは出ないけれど意図した出力にならないといった事が起こりえるので、注意が必要。慣れないうちは、処理(プログラム)をあまりバラバラのセルに書かず、一つにまとめて書くのがオススメ

-

良い例

-
-
-
a = 2
-f = a**2 + 3*a + 1
-print(f)
-
-
-
-
-

悪い例

-
-
-
a = 5
-
-
-
-
-
-
-
f = a**2 + 3*a + 1
-print(f)
-
-
-
-
-

このようにコードを分けてしまうと、fでは最後にaに代入された値を用いて計算が行われるので、a=5のセルを実行し忘れると、意図した値にならない。(あるいは未定義ならエラーとなる)

-
-
-

1.6. 変数の型

-

プログラムの中で扱う変数には様々な”型”(type, タイプ)が存する。 -代表的なものとしては、

-
    -
  • float: 浮動小数点数(≒実数の有限桁内の近似)

  • -
  • int: 整数

  • -
  • str: 文字列 (stringの略)

  • -
  • bool: 真偽値 (下で説明します)

  • -
-

が挙げられ、この他にも様々な型が存在している。

-

たとえば以下のように変数の型はtype()という関数を使うことで調べることができる。

-
-
-
a=2
-b=2.0
-print( type(a), type(b))
-
-
-
-
- -

a=2int(整数)型で、b(=2.0)はfloat、つまり浮動小数点(floating point)。

-

Pythonでは特定の型同士のみに許された特殊な演算等もある。変数の型が調べたくなったときはtype関数を使ってみよう。

-
-

1.6.1. プログラムでの実数の取り扱い

-

整数としての2(つまりint型の2)は理想的な整数2であるのに対して、float型の2.0というのは、
-「コンピュータが扱える有限の精度のもとで十分2.0とみなせる値」という意味しか持たない。

-

変数aに以下の値を代入してprintしてみよう。

-
-
-
a = 2.00000000000000000000055511151231257827021181583404541015625
-print(a)
-
-
-
-
-

コンピュータで実数値を表現する際、小数点以下の桁数を無限桁考慮するのは、機械にとっても大変なので、ある程度の精度で打ち切ることが必要になる。

-

Pythonで扱う実数値は、現在の世界標準であるIEEE 754という規格のもとで、十進数に換算して16桁程度の精度(倍精度実数の場合)の近似となっている、とザックリ理解しておけば当面は問題ないでしょう。

-

たとえば、0.30.1+0.1+0.1は、コンピュータが無限の精度を持っていれば(つまり0.3や0.1のあとに無限に0が続く数を扱うことができれば)等しい数になるべきだが、有限の精度を採用している都合上

-
-
-
print(0.3 - (0.1+0.1+0.1))
-
-
-
-
-
-5.551115123125783e-17
-
-
-
-
-

というように差をとると極小の値だけずれている事が分かる。

-

授業で扱う対象の場合は、この有限精度が実用上のトラブルを起こすことは無いはず。 -一方で(研究等で)いわゆる数値計算を行う場合は、このようなごく小さな誤差が掛け算によって増幅され無視できない影響を引き起こすことがしばしばあるので、工夫や適切な処理が必要になることもある。

-

\(\clubsuit\) さらに進んだ注

-

コンピューターでは、0か1の二値を取るビット(bit)を最小単位として数値など各種の情報を表現して扱います。 -たとえば整数値は、ビットを用いた表現と1対1対応させることができます。ビットが2つ使えるとするならば、[00]が1, [01]が2,[10]が3,[11]が4といった具合です。

-

一方で実数は、いくらでも小さく分割できるため集合としては非可算無限(それぞれの値に、1対1対応する”番号”をつけることができない)となり、これをコンピューターで扱おうとすると、必ず何らかの”近似”が必要になります。 -この近似の方法として通常用いられるのが、浮動小数点という考え方でありその標準を定めたものが前述のIEEE754となります。

-
-
-
-

1.7. 予約語

-

Pythonには、あらかじめ役割が与えられている言葉(予約語)があり変数名として使う事はできません。

-

実際にコード用のセルにこれらの語句を入力すると下記のように黒ではなく別の色で表示されます。このような場合は変数に別の名前をつけるようにしましょう。

-
-
-
# 予約語は色で分かる
-False, None, True, and, as, assert, break,  
-class, continue, def, del, elif, else, except,  
-finally, for, from, global, if, import, in, is,  
-lambda, nonlocal,not, or, pass, raise, return,  
-try, while, with, yield
-
-
-
-
-

予約語の役割については登場したその都度説明します。

-
-
-

1.8. ブール(bool)

-

真偽値(bool,ブール)はTrue(真)とFalse(偽)の二値を取る型です。たとえば

-
-
-
a=2.0; b = 5.0
-
-
-
-
-

のとき、

-
-
-
print(a < b)  # aがbより小さいかどうか
-
-
-
-
-
-
-
print(a == b) # aがbと等しいかどうか プログラムでの等号は=ではなく==です。
-
-
-
-
-

これを考えるとなにが嬉しいかというと、ある条件をみたす(みたさない)ときだけ特定の作業をするプログラムを書くことが出来ます。

-
-
-
if a==b: 
-    print("aとbが一緒だよ!!やったぜ!!!")
-else:
-    print("aとbが違うじゃないか!!!")
-
-
-
-
-

このような条件分岐の具体例については次の章で見ることにしましょう。

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter2_ListLoop.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter2_ListLoop.html deleted file mode 100644 index 74c7affb..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter2_ListLoop.html +++ /dev/null @@ -1,1571 +0,0 @@ - - - - - - - - 2. Pythonの基本 その2: — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

2. Pythonの基本 その2:

-

[この章の目的] -プログラミングで非常に重要な概念である配列や繰り返し処理について学ぶ。

-
-

2.1. リスト

-

実際にいろんなデータを扱う際には、値や変数をまとめて処理したくなります。 -こうしたときに必要になるのが以下で扱うリスト型を始めとする配列です。

-

リストは、値や変数などを括弧[ ]で括り、カンマで区切ることで作ることができます。 -例: [1.0, 2.0, 3.0]
-また好きな名前の変数にリストを代入する(リストに名前を割り振る)こともできます

-
-
-
heights=[178.0, 180.0, 153.0]
-
-# 変数heightsをprint
-print(heights)
-
-# 変数heightsの型をprint
-print("変数aの型(type)は", type(heights))  
-
-
-
-
-

リストの要素にできるのは数値だけではなく、文字列のリストも作ることができます。

-
-
-
names = [ "Aさん", "Bさん", "宇大太郎さん"]
-
-
-
-
-

リストに入っている要素の数は、len()関数(lengthの略)で見ることができます。

-
-
-
print("リストnamesは", names)
-print("長さは", len(names))
-
-
-
-
-

当然、長さに名前をつけて適当な変数として定義することもできます。 -関数の出力の結果を何度も後で再利用する場合などは、このように変数に代入しておくと便利です。

-
-
-
ln_a = len(names)
-print("リストaの長さは", len(names), "で、型は", type(ln_a)) 
-
-
-
-
-

文字列と値を組み合わせたようなリストも作ることができます。
-例:名前、身長、体重 => ["Aさん", 178, 66]

-

また、これを拡張して、入れ子に(リストのリストを作成)することもできます。 - [ ["Aさん", 178,66], ["Bさん", 180, 70] ]

-
-

2.1.1. リストの要素にアクセスする, インデックス(index)

-

リストの中の要素にアクセスするときは、半角括弧を使って[整数]といった形で”番地”を指定します。
-このときの番地(あるいは座標といっても良いですが)を指定する整数のことをインデックス(index)と呼びます。

-

【重要】Pythonでは要素にアクセスするためのインデックスは1からではなく、0からカウントします!

-
-
-
a = ["Aさん", 178, 66]
-print(a[0])
-print(a[1])
-print(a[2])
-
-
-
-
-

ですので、a[3]にアクセスしようとすると、

-
-
-
print(a[3])
-
-
-
-
-

list index out of range (リストのインデックスが用意された範囲(range)を逸脱している)というエラーが出ます。
-慣れないうちは0からカウントするのを変に思うかもしれませんが、これはプログラミング言語の仕様によるもので、Pythonの他にもC/C++なども0からカウントします。(ちなみにFORTRAN, Juliaなどは1からカウントします。)

-

こうした0-based indexingと呼ばれる言語の利点はいくつかありますが、代表的なものは負のインデックスが自然に使えることでしょうか?

-

理工系分野では、教科書などで行列やベクトルの要素を指定するのに1-based indexingを使うことも多いため、混乱するかもしれません。慣れるまでは注意が必要です。

-
-
-
a = ["Aさん", 178, 66]
-print(a)
-print(a[-1])
-print(a[-2])
-print(a[-3])
-
-
-
-
-

[-1]でアクセスすれば末尾の要素に、[-2]番目の要素は後ろから二番目といった具合です。

-

長いリストを作って「えっとこれ前から何番目の要素だったっけ…?」というときに、
-後ろからX番目の要素といったように、サクッと取得できるのが便利なときもあります。

-

入れ子にしたリストの要素を見たり、使いたいときには、少々慣れが必要です。
-a = [ [[1,2], [3,4]], 5, 6]
-このような場合では、一番外側の括弧から数えて、
-何番目の階層になっているかを考えることが必要になります。
-練習してみましょう。

-

練習

- -
    -
  1. [+コード]でセルを以下に追加し、下のリストを作成する
    -tmp = [ ["Aさん", 178,66], ["Bさん", 180, 70] ]

  2. -
  3. tmp[i][j]のi,jに可能な整数を入れて、Aさんの身長、Bさんの体重などをprint関数で表示してみましょう。

  4. -
  5. 2.と同じことを、負のインデックスを駆使してやってみましょう。

  6. -
  7. a = [ [[1,2], [3,4]], 5, 6]を作成して、 -len(a[0]) #0番目の要素の数をprintしてみましょう。

  8. -
  9. print(a[0][0][1])を実行してみましょう。

  10. -
  11. 4.5.の挙動から推測して、aのリストの中から4を取り出したい場合どうすればいいのかprint関数を使いながら考えてみましょう。

  12. -
-
-

Note

-

テキストセルの内容をコードセルなどにコピー&ペーストしたければ、対象をドラッグして、Ctrl+Cでコピー,Ctrl+Vでペースト出来ます(Macの場合はCtrlに置き換えてください)

-
-
-
-

2.1.2. リストの結合

-

2つのリストを結合することもできます。

-
-
-
a=[1,3]
-b=[2,4]
-c= a+b
-print(c)
-
-
-
-
-

上のリストを”座標”だと思えば、要素ごとの和になってほしいような気もしますが、リストの足し算は要素ごとの和ではなく”リストの結合”を意味します。

-
-

補足: 要素ごとの和のような、数学などで必要な演算は以降で扱うnumpyというモジュールを使ってndarray型と呼ばれるものにすれば簡単に実行できます

-
-

長さや階層の異なる2つのリストでも可能です.

-
-
-
c=[1,2,"Aさん"]
-d=[[5,6],[7,8]]
-c+d
-
-
-
-
-
-
-

2.1.3. リストに要素を加える

-

リストにあとから要素を加えたくなるときもあります.
-そんなときは append関数か+=を使います。

-
-
-
A = ["Aさん", 178,66] 
-A.append("O型")
-print("A", A)
-
-B = [ "Bさん", 180,70] 
-B += ["A型"]
-print(B)
-
-
-
-
-

厳密には両者は違うのですが、この授業では見た目がスッキリするので後者をよく使います。
-入れ子のリストを作るときは

-
-
-
data = [ ]
-data +=  [ ["Aさん",178,66] ]
-data +=  [ ["Bさん",180,70] ]
-print("data", data)
-
-
-
-
-

などとする。空リストに既存(新規)のリストを追加したいときに、上のように が二重に必要な理由はリスト同士の和の演算が結合となることから理解できる。 -実際に1重の括弧で試してみよう:

-
-
-
data2 = [ ]
-data2 +=  ["Aさん", 178,66] # 1重カッコ これだと右辺のリストを空リストに結合することになる
-data2 +=  [ "Bさん",180,70] # これも同様
-print(data2)
-print("data2", data2)
-
-
-
-
-

こうしてしまう(リスト同士の単なる結合)と、人ごとにデータが区切られていないので扱うのに不便となる。

-

リストに格納する情報に血液型を加えたりする際は以下のようにすればよい

-
-
-
### 名前,身長,体重,血液型,住んでる市区町村のリストを
-a = [ "Aさん", 178, 66, "A型"]
-print(a)
-a += ["宇都宮市"]
-print("住所追加後", a)
-
-
-
-
-

リストの要素は後から更新することもできます.

-
-
-
data =  [ ["Aさん", 178,66],["Bさん",180,70]  ]
-
-
-
-
-

というリストがあったとして、Aさんの体重を修正したければ、

-
-
-
data[0][2] = 58 #Aさんの体重を更新
-print(data) #リストを表示
-
-
-
-
-

血液型を追加したければ以下のようにすればよい。

-
-
-
data[0] += [ "A型"]
-data[1] += [ "B型"]
-
-print(data)
-
-
-
-
-
-
-

2.1.4. インデックスの取得

-

index関数を使ってリスト内の、[興味のある要素]のインデックスを取得することができます。

-
-
-
tlist = [ "いちご", "りんご", "ぶどう"]
-tlist.index("りんご")
-
-
-
-
-

重複する要素がある場合、初めにヒットしたインデックスを返します。

-
-
-
tlist2 = [ "いちご", "りんご", "ぶどう","メロン","りんご"]
-tlist2.index("りんご")
-
-
-
-
-

複雑なデータを扱う際に「あれ、あの要素ってどこの番地にあるんだっけ?」といった状況に便利な関数です。

-
-
-

2.1.5. スライスを用いた部分リストの取得

-

以下のaのようなリストがあったとき、

-
-
-
a= [ "years", 1990, 1995, 2000, 2005, 2010, 2015, 2020]
-
-
-
-
-

始点,コロン(:),終点でインデックスの範囲を指定して、部分的に取り出すことが出来ます。

-
-
-
a[2:5]
-
-
-
-
-

終点のインデックスに相当する要素は取り出されないことに注意しましょう。

-
-
-
a[1:]
-
-
-
-
-

とすると、最後の要素まで含まれます。

-

負のインデックスを使用することもできます。

-
-
-
a[1:-1]
-
-
-
-
-
-
-

2.1.6. \(\clubsuit\) リスト操作の注意点

-

授業で扱う程度の内容のプログラミングに関する疑問は、ググれば自分でだいたい解決することができます。
-ただしこの項目で述べることは(初学者にとって)「直感に反するのだけど、どこがおかしいのか分からないのでそもそもどうググっていいかが分からない」という点で、少し事情が異なります。

-

例を見せるために、以下の2種類のリストを用意します.

-
-
-
data1 = [[ "Aさん", 178,66], [ "Bさん",180,70] ]
-tmp = ["Aさん", 178,66]
-data2 =[ tmp, tmp] 
-
-print("data1", data1)
-print("data2", data2)
-
-
-
-
-

data2のようにまず雛形のリストtmpを作って人数分の長さを持つリストを作ってから中身を編集しようと考えた場合、

-
-
-
data2[1][0]="Bさん"
-data2[1][1]=180
-data2[1][2]=70
-
-
-
-
-

という操作を思いつきます。このとき、data2の2つ目(0から数えて1番目)の要素だけを編集したつもりでもdata2printすると

-
-
-
print(data2)
-
-
-
-
-

data2の最初の要素(Aさんのままであってほしいリスト)まで上書きされてしまっています。
-これは直感に反しているという点で、初学者が陥りやすい落とし穴です。

-

※C言語などを学習していれば、参照渡し(ポインタ渡し)などである程度馴染みがあるかもしれません。

-

「値を格納する箱というよりは値が保管される住所を示すもの」と1章の[変数の定義と簡単な演算]のところで書きました。

-
-
-
tmp = ["Aさん", 178,66]
-data2 =[ tmp, tmp] 
-print(id(data2[0]), id(data2[1])) #それぞれのidを調べてprint
-print("idが等しいか", id(data2[0])== id(data2[1])) #id()は変数のidを確認する関数
-
-
-
-
-

今の場合、data2を最初に作ったときには0番目と1番目の要素(リスト)は同一のidを持つtmpというリストです。
-したがってtmpの中身を書き換える操作(data2[1][0]="Bさん")は、tmpの更新を通してdata2の要素いずれもに影響します。

-

このように、(特に)リストを入れ子にする際には、注意が必要です。なんかへんだな?と思ったときは要素のidに気を配ってみるのも重要です.
-上のコードで、意図したものと違う挙動を起こした原因は、リストtmpを参照する形でdata2を作ったことでした。
-これはcopyモジュールのcopy関数を用いて配列のコピーを作成することで回避できます。(モジュールについては4章で説明します)

-
-
-
import copy #copyというモジュールをインポートする
-tmp=["Aさん",178,66]
-data2 = [ copy.copy(tmp), copy.copy(tmp)]
-print(id(data2[0]) == id(data2[1])) # ← data2の0番目と1番目のidが同じ(参照元が同じ)だと困るのでFalseであってほしい
-
-
-
-
-

また、リストのリスト(ネストされたリストといったりします)それ自体をcopyしたいときは、 -copy.deepcopy()を使います。

-
-
-
import copy
-data = [[ "Aさん", 178,66], ["Bさん",180,70] ]
-
-copydata = copy.copy(data)
-deepcopydata = copy.deepcopy(data)
-
-
-print(id(data), id(copydata),id(deepcopydata))
-print(id(data[0]), id(copydata[0]), id(deepcopydata[0]))
-
-
-
-
-

上を見るとdataというリストとcopydataという”リスト同士”が異なるidを持っていても、それぞれの0番目の要素のidを見てみると、同じものを参照していることがわかります。
-このように、ネストされたリストをコピーして別々に扱いたい場合は特に注意が必要で、deepcopyのような作業が必要となります。(私も初めてプログラミングで配列を使ったときに、この点に気が付かずに時間をかなり溶かしました)

-
-
-
-

2.2. 条件分岐 (if文)

-

if文では、書かれた条件が成立した場合、後に続くブロックを実行します。
-if文を使って命題の真偽を判定することで、条件分岐を表現することができます。

-
-
-
a=3.0; b =-0.3
-if a > b: 
-    print("aはbよりも大きい")
-if b > a:
-    print("bはaよりも大きい") ##これは呼び出されない
-
-
-
-
-

条件を満たすときはA,満たさないときはBをしたい、という場合にはelseを使う。

-
-
-
if a< b:
-    print("aはbよりも小さい")
-else:
-    print("a>=b") 
-
-
-
-
-

elif(else ifの略)を用いれば、もう少し複雑な条件を表現することができる。

-

たとえば、もし条件1が満たされればAを実行、条件1は満たされないが条件2が満たされればBを、さらに1も2も満たされない場合はCを実行するという場合は下記のようなコードになる:

-
-
-
if a < b: #条件1
-    print("a<b")
-elif  a ==b: #条件2
-    print("a=b")
-else:
-    print("a>b")
-
-
-
-
-

if文は入れ子構造にすることもできる。その際はインデントを使ってブロックを表現する。

-

たとえばaが偶数の場合は値をそのまま表示して、aが奇数の場合は3の倍数かそうでないかで処理を変える事を考えると、以下のようになる

-
-
-
if a % 2 == 0 :
-    print(a)
-else:
-    if a % 3 == 0 :
-        print(str(a)+"は3の倍数です")
-    else:
-        print(str(a)+"は3の倍数ではありません")
-
-
-
-
-

if文を使って条件分岐を作るときは条件分岐にモレがないか注意が必要です。例えば、変数aの値によって処理を行う場合

-
if a > 0:
-  ## なんらかの処理1
-if a < 0:
-  ## なんらかの処理2
-
-
-

と書いてしまうと、a=0の場合、if文を2つともすり抜けてしまい、バグの原因になることがあります。はじめのうちは少々面倒でもelseを使って、意図しないすり抜けがないかチェックするのが良いでしょう。

-
-
-
a = 0 #aをいろんな値に変えて実行してみてください
-if a > 0: #aが0より大きい場合
-    print("処理1:a+2=", a+2)
-elif a<0:    
-    print("処理2:a*2=", a*2)    
-else:
-    print("ゼロだよ?なんにもしなくていいの?")
-
-
-
-
-
-
-

2.3. ループ処理

-

ループ処理は、プログラミングの中で最も重要な概念の一つです。
-ループ処理を使うことで、同じ処理を繰り返し行うことができます。

-
-

2.3.1. for文

-

まず以下のコードを実行してみましょう:

-
-
-
for i in range(5):
-    print(i)
-
-
-
-
-

上のコードは、

-
-

iを0から4まで変化させながらiをprintする作業を繰り返しなさい

-
-

という処理になっています。順番に見ていきましょう:
-まずrange()関数は、range型のオブジェクトを生成する関数で、range(5)は0から整数を5つ(0,1,2,3,4)を生成する関数です。やはり0始まりで、5が含まれないことに注意です。
-なおrange関数の引数をrange(始点,終点,間隔)と3つにすると、より複雑な整数の集合を作ることもできます。

-
-
-
for i in range(0,6,2):
-    print(i) #やはり6は含まれないことに注意
-
-
-
-
-

in(予約語なので色が変わってますね)は、irange()で指定した数値の範囲(リストみたいなもの)を順番に突っ込んでいく関数と理解しておけばひとまずOKです。

-

次に、リストの中身を順番に表示させてみましょう。

-
-
-
kudamono = ["いちご", "りんご","ぶどう","メロン"] #リストを定義
-for tmp in kudamono:
-    print(tmp)
-
-
-
-
-

上のコードでは、tmpという変数にkudamonoというリストの中身が順番に当てはめられている事がわかります。
-ループを用いてリストの中身にアクセスする方法は主に2通りで、

-
    -
  1. インデックスのループを回してリストにアクセスする

  2. -
  3. リストの要素に順番にアクセスする

  4. -
-

で、上のコードは2.に相当します。上の例で、1.の方法を採る場合は

-
-
-
for i in range( len(kudamono) ) :
-    print( kudamono[i] )
-
-
-
-
-

とすればよいです。

-

インデックスと要素を同時に取得して使いたいときにはenumerate関数を使って

-
-
-
for i, tmp in enumerate(kudamono):
-    print(i, tmp)
-
-
-
-
-

とします。これによって○泉○次郎構文を作ることもできます。

-
-
-
for i, tmp in enumerate(kudamono):
-    print(tmp,"は"+str(i)+"番目です",str(i)+"番目というのは0から数えて"+str(i)+"番だということです。")
-
-
-
-
-
-
-

2.3.2. ブロックとインデント

-

さて、上のfor文のコードには、関数の前に半角スペースが4つあるのに気がついたでしょうか?
-Pythonでは、for文を始め様々な処理の際に一連の作業”ブロック”を、半角スペース4つ分インデントを下げることで表現します。

-

下のように、for文を使っているにも関わらず正しくインデントされていない場合はエラーが出ます。

-
-
-
for i in range(2):
-print(i)
-
-
-
-
-

さて簡単な例でブロックごとの処理の挙動を確認しておきましょう。

-

練習問題

-

以下のコードを実行すると、何回数字がprintされるでしょうか?
-コードを実行する前に、三択で答えてみてください。

-

A. 8回

-

B. 11回

-

C. 13回

-
-
-
for i in range(2):
-    print(i)    
-    for j in range(5):
-        print(i,j)
-print(i,j)
-
-
-
-
-

iに関する繰り返し(ループとも呼びます)は、i=0,1の2回で、インデントが1ブロック下げられた操作を実行しますので、 -print(i)を2回と、jに関するループを2回繰り返します。jはj=0,1,2,3,4をとり、jのループではprint(i,j)は合計2×5=10回呼ばれます。最後の行にあるprint(i,j)はどのループ(ブロック)の中にも入っていませんから、実行されるのは1回だけです。
-ということで、答えはC.の13回でした。

-

慣れないうちは

-
-
-
for i in range(2):
-    print(i)
-    for j in range(5):
-        print(i,j)
-    ## End j loop
-## End i loop
-
-
-
-
-

などのように、どこでループを閉じるのかをコメントしておくと良いかもしれません。
-コードを編集しているうちに

-
-
-
for i in range(2):
-    print(i)
-for j in range(5):
-    print(i,j)
-
-
-
-
-

といったように意図しないインデントになってしまって、
-正しい答えを与えない(バグを作ってしまう)可能性があります。

-
-

細かい注) Pythonでは通常インデント幅は4つの半角スペースで指定されます。
-Google Colab. では、 [ツール]→[設定]→[エディタ]から変更できますので、幅2が使いやすければ変更してください。
-また、プログラムファイルを編集する際、Tabキーを使ってインデントを指定するのと、スペースキーを用いてインデントを指定するのとで、どちらを好むかは、[タブ/スペース論争]として知られています。

-
-

練習

-

リスト -data = [ ["Aさん", 178,66] , ["Bさん",180,70], ["Cさん", 165,55]]を用意し、
-[体重を二乗して身長にかけ合わせた量]の総和を計算するコードを作ってみましょう。

-

ヒント1: 身長は入れ子になっているリストの[1]番目,体重は[2]番目
-ヒント2: total=0.0を定義して、体重の二乗×身長をfor文を使ってどんどん足していく。

-
-
-
###以下は、不完全なコードです。これにあと3行ほど書き足してみましょう。 
-###ちなみに答えは 2156493です.
-data = [ ["Aさん", 178,66] , ["Bさん",180,70], ["Cさん", 165,55]]
-total = 0.0
-
-
-
-
-

さて、ループ(for文)の使い方がなんとなく分かったでしょうか?
-どんどん使ってみて、なれておいてください。

-

他にも、たとえば、 1, 10, 100, 1000, 10000,…というループを回したい時、

-
-
-
for i in [1,10,100,1000,10000]:
-    print(i)
-
-
-
-
-

と書くのではなく、べき乗に対するループを回す

-
-
-
for p in range(5):
-    print(10**p)
-
-
-
-
-

など、考えたい値を直接ループで扱うのではなく間接的な値(今の場合p)を扱うなどの考え方も、コードをスッキリさせる上で重要です。

-
-
-

2.3.3. リスト内包表記

-

for文の別の使い方として、リスト内包表記と呼ばれる書き方があります。
-これを使うと、要素がたくさんのリストを簡単につくることができます。

-
-
-
a = [ i for i in range(1,1000,2) ] ## i を1から999まで2ずつ変えていったときの値を詰めたリストを作成
-print(a)
-
-
-
-
-
-
-

2.3.4. break ループ処理を途中で抜けたい場合

-

breakfor文を途中で抜け出すのに使います。用途としては目的を果たしたのでもうループを繰り返す必要がないとき予期せぬ事が起きた場合にループ処理を終わらせてプログラムを終了するときなどに使います.

-

以下のような状況を考えてみましょう

-
-

Aさんは100万円を手にカジノにやってきて、
-掛け金が20万かつ50%の確率で勝ったり負けたりするギャンブルに目をつけました。

-
-

このAさんが [最大10回ゲームをやるが1回でも負ければ即座に賭けをやめたい]という状況をコードで表現する場合、以下のようなコードになります:

-
-
-
import random #これがなにかはとりあえず気にしない
-
-# 最初の手持ち金を定義
-money = 1000000
-
-# ゲームを開始, 最大10回まで繰り返すことをfor文で表現
-for i in range(10):   
-    result = random.choice([True,False])
-    if result: # result==True, つまり勝った場合
-        money += 200000
-        print("勝った!!")
-    else :
-        money -= 200000
-        print("負けたので帰ります")
-        break
-
-print("最終的な所持金は..."+str(money)+"円だ")
-
-
-
-
-

random.choice([True,False])は1/2の確率でTrueFalseを与える処理になっている。 -True/Falseをそれぞれ勝ち負けに対応させられるので、その結果に応じて処理を分岐させていることが分かる。

-
-
-

2.3.5. \(\clubsuit\)While文

-

forに似たものとしてwhileもよく用いられる。

-

while文は、原理的にはfor文とbreakを組み合わせたコードでも実装可能なので発展的な内容(\(\clubsuit\)マーク)として授業ではスキップするかも…

-

プログラムを書いていくうちに、繰り返しの数が前もってわからないケースに遭遇することがある。たとえば

-
    -
  • 連続で6が5回でるまでサイコロをふる

  • -
  • 利益がある値を超えるまで株の売買をくりかえす

  • -
-

といったイメージ。この様な場合は、何回処理を繰り返せば良いか予め知ることはほとんど不可能となる。

-

サイコロの例の場合だと、たとえば5回ふっただけで6が連続で出る奇跡的な状況も有りえますし、1000回ふっても100万回降っても連続で5回は出ないかもしれません。(某漫画の地下チンチロ編のようなイカサマサイコロを使用するとグッと確率はあがります)このような処理を実装したい場合にはwhile文を使います.

-

さっきのAさんとカジノのギャンブルを例に

-
-

手持ち100万からゲームを開始して -「手持ちが50万以上150未満ある限り賭けを続けるコード」

-
-

を作ってみましょう

-
-
-
import random #ランダムに勝ち負けを決めるためrandomというライブラリを使います
-
-money = 1000000
-
-#手元に50万以上-150万未満ある限り賭け続けることをwhile文で表現
-while 500000 <= money < 1500000: 
-    ## choice([True,False])でTrue(勝ち)とFalse(負け)をランダムに生成       
-    result = random.choice([True,False])
-    if result: # 勝ちの場合
-        money += 200000 
-        print("勝った!!")
-    else : #負けの場合 20万失う
-        money -= 200000
-        print("負けた..")
-
-# 500000 <= money < 1500000部分が"False"、つまりお金が50万以下か150万以上になったら
-# while文が終わり、以下のprint文が読まれる
-
-print("最終的な所持金は..."+str(money)+"円だ")
-
-
-
-
-

といった具合です. 使用例が思い浮かばなければ「whileなんてのがある」とだけ覚えておけば当面はOKです.
-ちなみに上のコードはrandomモジュールの(疑似)乱数を用いているので、実行ごとに買ったり負けたり結果が変わります。何度か実行してみてください。

-
-

余談 これを応用すると↓のようなものを作って遊ぶこともできます(作者は私ではありません)。
-十亀vs松田シミュレータ https://mattz.xii.jp/yakiu/yakiu.html
-(十亀選手(ライオンズ)と松田選手(ホークス)の驚異的な相性を元に作られた対戦シミュレータ)

-
-
-
-

2.3.6. \(\clubsuit\) continue

-

continue文は、forwhile文の中で[以降の処理を無視する]のに使います.
-具体的な用途としては[特定の条件を満たす場合にのみ適用する処理を書きたい]場合などがあります.再びカジノの例で考えてみましょう.

-

まず、Aさんに勝負のたびに所持金を叫ばせるコードは

-
-
-
import random
-money = 1000000
-while 500000 <= money < 1500000:
-    result = random.choice([True,False])
-    if result:
-        money += 200000 
-    else :
-        money -= 200000
-    print("今の所持金は..."+str(money)+"円だ")
-
-print("最終的な所持金は..."+str(money)+"円だ")
-
-
-
-
-

となります。これに少しずつ、より複雑な条件を加えていくことにしましょう.

-

最初の掛け金を一旦5万円にすることにして[連続で勝った場合、コインを投げて表が出たら掛け金を2倍にする]という条件をいれてみましょう。これをプログラムで表現するのには以下のような実装が考えられます.

-
-
-
import random
-money = 1000000
-
-# 連続勝数を記録する変数hitを定義
-hit = 0 
-# 掛け金をセット
-bet = 50000 
-
-# メイン部分のコード
-while 500000 <= money < 1500000:
-    result = random.choice([True,False])
-    if result :
-        money += bet 
-        hit +=1 #勝ったら連勝数をプラス1する
-    else :
-        money -= bet
-        hit = 0 #負けたら連続勝ち数を0にリセット
-    print("今の所持金は..."+str(money)+"円だ")
-
-    # コインの表裏を決める
-    coin = random.choice([True,False])
-    if hit >= 2 and coin: 
-        bet = bet * 2
-        print("掛け金をレイズ!","次は"+str(bet)+"円を賭けるぞ!!")
-
-print("最終的な所持金は..."+str(money)+"円だ")
-
-
-
-
-

さらに掛け金をレイズするかどうか悩んで、コインを投げて決めるのは、所持金が80万以上のときだけという、 -より複雑な条件を実装するのにcontinueを使ってみましょう

-
-
-
import random
-money = 1000000
-
-#連続勝数と掛け金を設定する
-hit = 0 
-bet = 50000 
-while 500000 < money < 1500000:
-    result = random.choice([True,False])
-    if result:
-        money += bet 
-        hit +=1 
-    else :
-        money -= bet
-        hit = 0 
-    print("今の所持金は..."+str(money)+"円だ")    
-
-    # ここから下が追加された部分
-    if money < 800000:
-        continue # もし所持金が80万未満ならcontinue(以下の処理は実行しない)
-
-    coin = random.choice([True,False])
-    if hit >= 2 and coin :
-        bet = bet * 2
-        print("掛け金をレイズ!","次は"+str(bet)+"円を賭けるぞ!!")
-
-print("最終的な所持金は..."+str(money)+"円だ")
-
-
-
-
-
-
-

2.3.7. 例外処理

-

以下の処理は[ある値から都度10を引いていって平方根を取った値を表示する]というコードです

-
-
-
import math #sqrt(square root)関数を使うための1行
-s = 124
-#for i in range(20):
-while True:
-    s -= 10
-    print(math.sqrt(s)) 
-
-
-
-
-

しかし、あるところでsの値が負になってしまい、sqrtが計算できなくなってしまいます(虚数を導入すれば定義できますが、mathsqrt()関数は非負の引数に対して定義されていますのでエラーが出ます)

-

エラーが出る(≒予期しないことが起こる)とプログラムはそこで止まってしまいます。
-通常はそれで良い(問題があればエラーが起きないと対処しようがない)のですが、複雑な状況になると「エラーを無視してとにかくプログラムを最後まで実行させたい」「エラーが起こるときにエラーを回避するような仕組みをプログラム自体に実装したい」といった状況も起こりえます.

-

上の例でいうと「sの値が正なら平方根を表示して、負の場合はエラーメッセージだけを表示してエラーが起きた回数をカウントする」という作業が必要な場合は以下のように

-
    -
  • try: 試行したい処理のブロック

  • -
  • except: 例外(エラー)が起こった場合の処理のブロック
    -という2つの操作(try,exceptともに予約語)を駆使することで、最後までプログラムを実行させることができます.

  • -
-
-
-
import math
-s = 124
-hit = 0 
-for i in range(20):
-    s -= 10
-    try:
-        print(math.sqrt(s)) 
-    except :    
-        print("sの値が"+str(s)+"になったのでsqrtが計算できません")
-        hit += 1
-print(str(hit)+"回 sqrtの計算でエラーがありました")
-
-
-
-
-

このノートブックでは説明しませんがexceptの後に具体的な例外を指定して例外の種類に応じた操作を行うことも出来ます。https://docs.python.org/ja/3/library/exceptions.html

-
-
-
-

2.4. \(\clubsuit\) タプル・辞書型

-

発展的な内容です。
-以下のタプル・辞書型は使いこなせれば便利ですが、授業では必ずしも必要ではない(リストで代用できる)ので、興味に応じて学習してください。

-
-

2.4.1. タプル(tuple)型, 丸括弧

-

リストに似た型としてタプルと辞書があります。
-タプルは”immutable”(要素が変更不可)なリストと覚えておけばよいでしょう。 -リストは要素を[]で囲むことで作ることができました。タプルは丸括弧()で囲むことで作ることができます

-
-
-
a = (1.0, 2.0, 3.0)
-print(a, type(a))
-
-print(a[0]) ##要素にアクセスするときはタプルのときでもやはり角括弧を使う
-
-
-
-
-

値をリストのように格納しておきたい、という状況下かつ、リストの値を後で変更することがないなら -タプルを使うのも一つの手です.
-タプルを使うメリットとしては以下の通りです:

-
    -
  • (予期せず)値を更新しようとするとエラーを吐いて教えてくれる

  • -
  • (場合によりけりですが)リストよりも早く処理が実行される(ことがある)

  • -
-
-
-
##たとえば...
-a = (1.0, 2.0, 3.0)
-##たとえば...2つ目の2.0を4.0に変更しようとすると....
-a[1] = 4.0
-
-
-
-
-

↑エラーがでたかと思います。

-

次に中身が同じ(1から5000までの整数)リストとタプルを用意して、1万回要素の和を計算するという計算をしてみましょう. -この計算自体に意味はありません。
-timeというライブラリを使って2つの作業に係る時間を調べてみると…

-
-
-
import time #時間を計測するためのライブラリをインポート
-itnum=10000 #繰り返す回数を設定
-
-#リストを使った計算
-t0= time.time() 
-a = [ i for i in range(1,5001) ] #リストを定義
-for i in range(itnum):
-    sum(a)
-t1 = time.time()
-
-#タプルを使った計算
-t2= time.time() 
-b = ( i for i in range(1,5001)) #タプルを定義
-for i in range(itnum):
-    sum(b)
-t3 = time.time()
-
-print("リストの処理にかかった時間", t1-t0)
-print("タプルの処理にかかった時間", t3-t2)
-
-
-
-
-

タプルの方が実行時間が短い事がわかります.
-今の例では差は人間にとっては気にならない程度の差ですが、複雑な処理になってコードがなかなか計算を完了しないときには、リストをタプルにするなど、コードのパフォーマンスを改善する作業が必要となります。

-
-
-

2.4.2. 辞書型, 波括弧

-

辞書型は、キーと値の2つの要素をあわせ持つ型です.
-リストにいれたものをいっぺんに扱うときに、毎回番地を指定したりループで要素を回して、望むものを持ってくるのは面倒です。

-

たとえば以下の名前と年齢のリスト

-
data=[[ "Aさん",25],["Bさん",21],["Cさん",18]]
-
-
-

があったとき、これまで習った方法だけを駆使してBさんの年齢を取得するには例えば以下のようなコードになります

-
-
-
data=[[ "Aさん",25],["Bさん",21],["Cさん",18]]
-
-for person in data:
-    if person[0] == "Bさん" :
-        print("Bさんの年齢=", person[1])
-
-
-
-
-

このようなfor文とif文などを組み合わせた要素の探索が面倒なら、予め名前と年齢という2つの関係のある量を辞書として定義してしまえばよいのです。

-

辞書型は波括弧{}で囲むことで構成できます.

-
-
-
Dict_age = {'Aさん' : 25, 'Bさん': 21, 'Cさん': 18}
-
-
-
-
-

Bさんの値(今は年齢)を知りたければ以下のように一行で取得可能です.

-
-
-
Dict_age["Bさん"]
-
-
-
-
-

辞書を作る際には、 要素を取り出すためのキー(key)と値(value)の組み合わせで指定します. -その際

-
{"key" : value}
-
-
-

keyvalueをコロン:をつかって区切り、複数要素を入れる際はカンマで区切ります.
-keyは文字列や数字(たとえば小中学校の出席番号とか)を使用することができvalueは様々な型が使えます。

-

値(value)として、リストを保持することもできます.次のように年齢と出身県のリストを値にもつ辞書にしてみましょう.

-
-
-
Dict = {'Aさん' : [25,"栃木県"], 'Bさん': [21,"茨城県"], 'Cさん': [18,"群馬県"]}
-
-
-
-
-

Cさんの個人情報にアクセスする際は

-
-
-
Dict["Cさん"]
-
-
-
-
-

とすればいいことがわかります.

-

慣れないうちはタプルや辞書を使わずリストだけ覚えておけば問題ないのですが(私も簡単なコードだと、面倒だからリストでやっちゃう)複雑な処理になると(タプルにしないと)パフォーマンス差が顕著になったり(辞書にしないと)コードの可読性が低くなったりミスの原因になるので、タプルや辞書型もうまく組み合わせながら使えると良いです。

-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter3_Function.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter3_Function.html deleted file mode 100644 index de453dfa..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter3_Function.html +++ /dev/null @@ -1,784 +0,0 @@ - - - - - - - - 3. 関数 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

3. 関数

-

[この章の目的]プログラム内での関数と戻り値,スコープの概念を獲得する。

-

ここでは、Pythonにおける関数の定義と関数が返す値[戻り値(返り値とも呼ぶ)]、ややテクニカルですが重要な点である変数のスコープについて説明します。

-
-

3.1. 関数の定義

-

既に現れたprintlenなどはPythonに備え付けられた”組み込み関数”と呼ばれるものの一種です。以下に示すように、組み込み関数とは別にユーザーが独自の関数を定義することができます。

-

たとえば

-
-
-
p1 = [2.0, 4.0, -5.0]
-p2 = [1.0, 3.0, -4.0]
-#...中略
-p100 = [5.5,-2.0, 3.0]
-
-
-
-
-

といったようなリスト(ある点の\(x,y,z\)座標だと思ってください)がたくさん(たとえば100個)あったときに、任意の2つの点の距離を求める操作が必要だったとします。 -そんなとき\({}_{100}C_2=4950\)通りに対して毎回

-
-
-
d_1_2 = ( (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2 ) ** 0.5
-d_1_100 = ( (p1[0] - p100[0])**2 + (p1[1] - p100[1])**2 + (p1[2] - p100[2])**2 ) ** 0.5
-
-
-
-
-

などと書くのは面倒です。このように、何回も必要になる処理は、関数として定義しておけば呼び出して簡単に使うことができます。

-

例として「任意の長さが3の数値リストに対して3次元空間での距離を計算する関数」を自作してみましょう。

-
-
-
def calc_d(l1,l2):           
-    return ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5
-
-t = calc_d(p1,p2) 
-print("点1",p1, "と点2", p2, "の距離は", t, "です")
-
-
-
-
-

calc_dは自作した関数の名前で、関数名の後ろのカッコには引数(ひきすう)を指定します。

-

リスト(l1)とリスト(l2)を突っ込んだときに距離を計算してreturnする(返す)という一連の操作をdef(defineの略)した、というのが上のコードで行っていることです。 -コロン:は「以下で関数の中身を記述するブロックが開始する」ことを意味していて、インデントによってどこまでが関数のブロックかわかるようになっています。(ブロックについてはifforを思い出してください)

-

定義した関数を使用する際には、この関数calc_d()に必要な引数(変数,今の場合リスト)l1,l2を代入して使います。 -関数に入れる引数は代名詞のようなもので、関数に入れるものをl1,l2という名前にあわせて定義しておく必要はありません。

-
-
-
print(calc_d(p1,p100)) #←これでも使えるし
-print(calc_d([20.0, 1.0,-5.0], [-2.0, 3.0,5.5])) #←などとして名前をつけなくても使える
-
-
-
-
-

上の例のように100個の点の3次元座標に対応するリストがある場合,

-
-
-
import random 
-lists = [ [ random.gauss(0,1) for n in range(3)] for i in range(100)] #3次元の座標点をランダムに100個作っている n,iはダミー変数(特に使ってない)
-hit = 0
-for j in range(100):
-    for i in range(j+1,100): # i>j
-        distance = calc_d( lists[j], lists[i])
-        #print(j,i, distance) # 4950回文の計算結果をprintすると邪魔なのでコメントアウトした
-        hit += 1 
-print(hit) #回数だけ表示しよう
-#上のjのループ内で、iはj+1から99までを回る。 j+1= 100つまり j=99のとき range(j+1,100)はちゃんと空になる
-#つまり、長さ100のリストにindex=100でアクセス(範囲外参照)したりすることはない。
-
-
-
-
-

などとすれば、全組み合わせ(\({}_{100}C_2\))に対して距離を計算することが出来る。
-上で使われているインデックス(\(j,i\))の模式図:
-

-

引数は通常関数の中で行う操作に必要な変数を指定します。上の例では2つのリストを引数としました。

-

関数内の操作に関数外からの情報(インプット)が必要ない場合は引数なしの関数でも構いませんし、関数の外に値を渡す(アウトプット)必要がなければreturn文を明示的に書かなくても大丈夫です。return文がない場合はNone(値なし)が返されます。

-

幾つか例を作って、挙動を理解してみましょう。

-
-
-
def name(): #引数なしで、ただ以下の文字列を表示する関数
-    print("私は田中です")
-
-def myname(namae): #引数namaeを使って、以下の文字列を表示する関数
-    print("私は"+str(namae)+"です")
-
-def myname_return(namae): # myname()で表示させた文字列自体を返す関数
-    return "私は"+str(namae)+"です"
-
-print("name()の実行→", name()) ## name()が実行されたあとにココのprint文が実行される。
-
-print("myname()の返り値→", myname("吉田"))
-
-print("myname_return()の返り値→", myname_return("吉田"))
-
-
-
-
-

戻り値returnは単一の値や文字列に限らず、複数の値でも可能ですし、リストを返すことも出来ます。

-

先程の自作関数calc_dの場合、戻り値はfloat(実数値)ですが

-
-
-
def calc_d_print(l1,l2):
-    return "距離は"+str( ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5  )+"です"
-
-def zahyo_and_d(l1,l2):
-    d = calc_d(l1,l2) #関数の中で、先程の自作関数を呼んでいる
-    return [l1,l2],d  #座標を結合したリストと距離を返す
-
-ret = calc_d_print(p1,p2)
-print("関数calc_d_print→", ret,type(ret))
-
-
-ret = zahyo_and_d(p1,p2)
-print("関数zahyo→ ", ret,type(ret))
-print("座標の結合リスト",ret[0],"距離",ret[1])
-
-
-
-
-

といったように、様々な返り値を持つ関数を定義できます。

-

関数を定義するときに、引数にデフォルト値(とくに値を指定しなければこの値が選ばれる)を設定することも出来ます。

-
-
-
#数値リストの要素のp乗和を計算する関数
-def sump(tmp,p=2): 
-    return sum([tmp[i]**p for i in range(len(tmp))])
-
-list1 = [10.0,20.0,30.0,40.0]
-print("default", sump(list1)) #pを指定しなければp=2が選ばれる
-print("p=1", sump(list1,p=1))
-print("p=2", sump(list1,2))
-print("p=3", sump(list1,3))
-
-
-
-
-

上の場合、引数を指定する際にp=などは書いても書かなくてもなくてもOKですが、デフォルト値が複数設定されている関数を作った場合には、どの変数を指定しているのかを明示的にするため、p=3などと引数に入力します。 -関数を定義することで作業をパッケージ化し、コードを簡略化することができます。「繰り返しの操作は関数にする」ことを心がけましょう。

-
-
-

3.2. 変数のスコープについて

-

以下の内容は、これまで学習したfor文や関数のインデントとも関連した話題です。非常に重要な反面、初学者がつまづきやすい点でもあります。

-

一般に、プログラミングでは[グローバル変数]と[ローカル変数]と呼ばれるものがあります。その名(global/local)が示すとおりグローバル変数とはどこからでも参照できる変数で、ローカル変数とは、ある有効範囲(たとえば関数内)のみで参照できる変数です。 -例を見ながら理解していきましょう。

-
-
-
a = 2
-list1 = [10.0,20.0,30.0,40.0]
-
-
-
-
-

のように、関数内での代入などではない場合、変数はグローバル変数として定義されます。
-そのため、一度定義されれば関数に引数として渡さなくても参照することができます

-
-
-
def testfunc():
-    print(a)
-
-a = 2
-testfunc()
-
-
-
-
-

一方、関数の中で定義(代入)されるローカル変数は、関数の外で参照することはできません。
-(注: あとで説明するように関数内でglobal変数であることを宣言すれば関数の外でも参照できます)

-

以下のコードを実行して,関数の中で定義された変数abcdprintしようとしてもエラーが起こってしまいます。

-
-
-
def testfunc():
-    abcd = 1.000
-testfunc()
-print(abcd)
-
-
-
-
-

では、次のコードを実行すると、最後に表示されるaの値はどうなるでしょうか?
-2でしょうか?それとも5でしょうか?

-
-
-
def testfunc():
-    a = 5
-a= 2
-testfunc()
-print(a)
-
-
-
-
-

となりaの値は更新されません。これはtestfuncの中で定義されているaは、関数の内部で定義(代入)される変数であるため、ローカル変数とみなされて処理が行われるためです。 -実際idprintさせてみると、関数の内と外とでidが異なることも分かります。

-
-
-
def testfunc():
-    a = 5
-    print("関数の内部", a, id(a))
-    
-a= 2 
-print("関数の実行前", a, id(a))
-testfunc()
-print("関数の実行後", a, id(a)) 
-
-
-
-
-

一方で、

-
-
-
def testfunc():
-    global abc, a #global変数の宣言
-    abc = 5
-    a += 2
-
-a=2
-print("実行前")
-print("a",a , id(a))
-testfunc()
-print("実行後")
-print("a", a, id(a))  #別の変数として再定義されていることが分かる
-print("abc", abc)
-
-
-
-
- -

といったように、関数の中で使う変数をグローバル変数として宣言すれば、関数の外でもその変数を使うことができます。 -global変数の宣言を使うべき場合としては…コードの中で一度計算して、二度と変更する必要が無いような値にのみ使うようにしましょう。

-

ただし、このようなコードの書き方は、処理が複雑化してくるとどこでその変数が定義されたり更新されたりしているかがわかりづらく、予期しない挙動の原因にもなりますのであまりオススメしません。 -[関数には引数として変数を渡して、必要な戻り値を取得する]というコードを書くのがあくまで基本です。

-

また、関数を用いる際に、変数のスコープに関して混乱を避ける手助けとなる方法は…メインプログラムと関数内とで変数の命名規則を区別しておく:
-たとえば…メインコード(global変数)で使うリストの名前の区別には数字を使う、関数の引数にはアルファベットを使うなどの工夫(ルール作り)がオススメです。

-
-
-
def func_join(listA,listB): #特殊なリストの結合をして返す関数
-    return listA + 2 * listB 
-
-list1 = [ 2.0,30.0,18.0]
-list2 = [ 9.0,4.0,8.0]
-nlist = func_join(list1,list2)
-
-
-
-
-
-

3.2.1. \(\clubsuit\) 関数内でのリスト更新

-

上では、数値(float)と関数を例に説明しましたが、リストの場合はもう少し挙動が複雑です。

-
-
-
def func_update_list(in_list):
-    in_list[0] = "AAA"
-
-tmp = [ "SS", 1,2,3]
-print("実行前", tmp, id(tmp), id(tmp[0]))
-func_update_list(tmp)
-print("実行後", tmp,id(tmp),id(tmp[0])) 
-
-
-
-
-

リストオブジェクト自体のidは引き継がれていて、リスト内要素(0番目)の更新が反映されていることがわかります。

-
-
-
def func_update_list(in_list):
-    in_list[0] = "AAA" 
-    in_list = ["BBB", 0,1,2]  ##ココはローカル変数扱い
-    return in_list
-
-tmp = [ "SS", 1,2,3]
-print("実行前", tmp, id(tmp), id(tmp[0]))
-ret = func_update_list(tmp)
-print("実行後", tmp,id(tmp),id(tmp[0])) 
-print("ret", ret,id(ret),id(ret[0])) 
-
-
-
-
-
-
-
-

3.3. 関数とメソッド

-

これまで登場してきたprintlenなどの関数は、Pythonに組み込まれている関数で、関数()という自作関数と同じ方法で呼び出せた。

-

一方で、リストや文字列などのオブジェクトに対して、オブジェクト.関数()という形で呼び出せる関数がある。 -これらはメソッドと呼ばれ、オブジェクト(正確にはクラス)に対して定義された関数になっている。

-

たとえば、リストに対してappendというメソッドを呼び出すと、リストの末尾に要素を追加することができた

-
-
-
a = [1,2,3]
-a.append(4)
-print(a)
-
-
-
-
-

関数もメソッドも、引数を取り何らかの操作をするという点では同じだが、両者はその設計思想が異なるため、混乱しないように注意する必要がある。 -大雑把に言えば、関数は引数を取り、何らかの操作を行い、戻り値を返すという設計思想であるのに対し、メソッドはオブジェクトに対して何らかの操作を行うという設計思想である。

-

この授業では、クラスについての説明を行わないため、自分でクラスないしメソッドを定義することはないとは思うが、 -ライブラリ等で用意されているクラス・メソッドを用いることも多いため、混乱した場合はこの違いを意識するようにすると良い。

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter4_Matplotlib.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter4_Matplotlib.html deleted file mode 100644 index 453460c9..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter4_Matplotlib.html +++ /dev/null @@ -1,1145 +0,0 @@ - - - - - - - - 4. ライブラリ/パッケージ/モジュールとデータの可視化(Matplotlib) — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

4. ライブラリ/パッケージ/モジュールとデータの可視化(Matplotlib)

-

[この章の目的]

-
    -
  • [ライブラリ]という概念の獲得

  • -
  • Pythonを用いた各種グラフの描画

  • -
- -

Pythonでは(他のプログラミング言語と同様)特定の作業がパッケージ化されたプログラム群が用意されていてこれらをライブラリ/パッケージ/モジュールなどと呼ぶ -Pythonのライブラリ/パッケージの多くはGitHub上で開発・公開されていて、簡単にインストールしたりインポートして使うことができる。

-

データ分析, AI・機械学習, エクセル等の操作, Webスクレイピングなど、非常に多岐にわたるライブラリが存在していて誰でも気軽に使うことができますし、幾つかのライブラリ/モジュールは標準で組み込まれているため、インストール作業をすることなく、以下のように簡単にインポートして使うことができます。

-

たとえばmathという名前のモジュールをインポートする際には

-
-
-
import math
-
-
-
-
-

とします。簡単ですね。

-

上のコードを実行しmathモジュールを一度importしてやれば、数学で多用される円周率pi,対数関数log(),log10(),指数関数exp,三角関数sin,cosなどを使うことができます。

-

モジュール内に用意されている関数を利用するときは通常
-モジュール名.関数モジュール名.関数(引数)といった形で使います。

-
-
-
print(math.log(2.0)) #自然対数 
-print(math.log10(2.0)) #常用(底が10)対数
-print(math.exp(2.0)) #指数関数
-print(math.pi) #円周率pi (引数なし)
-print(math.sin(math.pi))  # sin(pi)
-
-
-
-
-

注:sin(π)は厳密に0になるべきですが1章で述べたように実数が有限の精度なので微小な量0からずれています

-
-

4.1. Numpy

-

データ分析などで非常によく使われるNumpyというライブラリがあります。
-Numpyの大きな特徴に、数値を要素に持つ配列の計算・演算を高速に行うことが可能という点があります。

-

簡単な作業ならリストでも代用できるので必須ではありませんが、コードを大幅に簡略化することもできるため、今後ノートブックでもたびたびNumpyが用いられます。 -詳しくはこちらのノートブックを参照してください.

-
-
-
#先程のmathもnumpyで置き換え可
-import numpy as np #numpyをnpという名前で使う
-print(np.log(2.0))
-print(np.log10(2.0))
-print(np.exp(2.0))
-print(np.pi)
-print(np.sin(np.pi))
-
-
-
-
-

以降、数値を要素に持つリストを使って演算やグラフを描画するときは、numpyndarray型というものに変更して使う事が多いです。
-リストをndarray型に変換するには、numpyのarray関数を用います。

-
-
-
import numpy as np
-
-list_a = [ 1.23, 9341.22, -32.33] 
-list_a = np.array(list_a)
-print(list_a, type(list_a))
-
-
-
-
-
-
-

4.2. Matplotlibを用いた作図

-

以降ではMatplotlibと呼ばれるライブラリを使って、各種のグラフを作成する方法を見ていきましょう.

-

Matplotlibは様々なグラフが描ける一方で少々テクニカルな部分が多いので細かい部分は分からなくても心配は不要です
-「こういうおまじないを唱える(書くと)こうなる」というざっくりとした理解でまずは大丈夫です。

- -

はじめはネットに転がっている誰かが書いたコードを少しずつ流用し、自分の目的のためにどうすれば良いか類推しながら改良していって、
-自分の描きたいグラフに近づけていくのが良いでしょう。(私もよく過去の自分が作成したコードを流用して作図しています)

-

慣れてくるといろんな図を作ったり、細かいところにこだわったりしたくなります。 そんなときは以下のチートシートが役に立ちます.
-https://github.com/matplotlib/cheatsheets

-

まず、以下のコードを実行して、matplotlib内のpyplotモジュールをインポートします.
-matplot.pyplotだと名前が長いのでpltという名前で使えるようにimport XXX as YY などとします.

-
-
-
import matplotlib.pyplot as plt 
-
-from matplotlib import pyplot as plt #でも同じ
-
-
-
-
-

いくつかのライブラリにはディレクトリのように

-
LibraryA  
-├ module1.py  
-│   └─ sub_module1_1.py   
-│   └─ sub_module1_2.py  
-├ module2.py  
-︙  
-
-
-

という階層構造があり”子”はピリオドで指定します.
-上のmatplotlib.pyplotはその一例です.

-

次に、Matplotlibは標準だと日本語が文字化けして豆腐のように表示されてしまうので、
-日本語フォントを使うためのライブラリをGoogleのサーバにインストールします

-
-
-
!pip install japanize-matplotlib #!から始めることでLinuxコマンドを使うことができる。
-import japanize_matplotlib
-import numpy as np  #ついでにコレもインポート
-
-
-
-
-
Collecting japanize-matplotlib
-  Downloading japanize-matplotlib-1.1.3.tar.gz (4.1 MB)
-     |████████████████████████████████| 4.1 MB 5.1 MB/s 
-?25hRequirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from japanize-matplotlib) (3.2.2)
-Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.19.5)
-Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.4.7)
-Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (0.10.0)
-Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.8.2)
-Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.3.2)
-Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from cycler>=0.10->matplotlib->japanize-matplotlib) (1.15.0)
-Building wheels for collected packages: japanize-matplotlib
-  Building wheel for japanize-matplotlib (setup.py) ... ?25l?25hdone
-  Created wheel for japanize-matplotlib: filename=japanize_matplotlib-1.1.3-py3-none-any.whl size=4120274 sha256=f4b79909d06560d80efbd01142270456e2403c260cad143b4647081c91d3a36c
-  Stored in directory: /root/.cache/pip/wheels/83/97/6b/e9e0cde099cc40f972b8dd23367308f7705ae06cd6d4714658
-Successfully built japanize-matplotlib
-Installing collected packages: japanize-matplotlib
-Successfully installed japanize-matplotlib-1.1.3
-
-
-
-
-

Pythonでグラフを作る際の基本は、データ(描画したいもの)が入ったリストを作ることです。

-

リストに対して、線や棒、いろんな形のシンボルを描いたりして、どんどんグラフを構成する要素を足しながら、
-それらの色や線種、透過度や太さ,背景色などを変えつつ徐々に望むようなグラフにしていきます。

-

以下では代表的なグラフを例に、Matplotlibを使った作画を試してみましょう。

-
-

4.2.1. 棒グラフ

-

Aさんの共通テストの得点をリスト(括弧[ ]内に、数字カンマで区切る)に格納します。
-順番(各科目の名前(ラベル))は、国語,英語,数IA,数IIB,化学,物理,世界史として…

-
-
-
data = [152, 170, 82, 85, 79, 92, 88]
-label = ["国語","英語", "数IA", "数IIB", "化学", "物理", "世界史"]
-total = sum(data)
-#print("合計得点は", total, "点で、得点率は"+str(total/900)+"%です")
-print("合計得点は", total, "点で、得点率は"+str("%6.1f" % (100* total/900))+"%です")
-
-
-
-
-

Aさん優秀ですね。これを棒グラフにでもしてみましょう。

-
-
-
plt.figure( figsize=(10,2) ) 
-plt.bar(label,data,align='center',width=0.5,color="red") 
-plt.xlabel("各科目"); plt.ylabel("Aさんの得点") 
-plt.show() 
-plt.close()
-
-
-
-
-

棒グラフが描けたでしょうか。それぞれの行の意味を順に説明します。

-
    -
  • 1行目:
    -plt.figure(figsize=(10,2)) 
    -ここでは、matplotlib.pyplot内のfigureという関数を読んでいます。
    -上でmatplotlibモジュール内のpyplotというモジュールを
    -pltという名前でインポートしたのでplt.figureというのは、
    -pyplot内のfigureという関数を使うことを意味します。
    -役割としては、図を描くキャンバスを用意しているようなイメージです。
    -ここではfigsize=(10,2)という引数を指定しました。
    -(指定しなければ自動で図のサイズが決まります)
    -figsize=(横,縦)で大きさが指定できます、figsizeを変えて試してみましょう

  • -
  • 2行目:
    -plt.bar(label,data,align='center',width=0.5,color="red")
    -pyplot内のbarという関数(棒グラフを描く関数)を使っています。
    -1つめの引数はx軸上の値で、2つめはy軸に対応する値です。
    -x軸用のリストが数値以外のときは整数値を割り当ててプロットしてくれます
    -(7個データがあれば、x=0,1,…,6に割り当てられる)

  • -
  • 3行目:
    -plt.xlabel("各科目"); plt.ylabel("Aさんの得点") 
    -ここではx軸とy軸のデータの種類(ラベル/labelと呼ぶ)を指定しています。

  • -
  • 4行目:
    -plt.show()
    -それまでに指定した条件で絵を描いて表示する

  • -
  • 5行目:
    -plt.close()  キャンバスを閉じる。
    -とくに一つのプログラムで複数絵を描くときはこれを書きましょう。
    -(closeしないと、どこまでがどのグラフのための指示かわからず
    -意図しない絵になることがあります)

  • -
-
-

4.2.1.1. 練習

-

国語と英語の得点を100点満点に換算し、
-いくつかの得点や棒グラフの色を変えてプロットしてみましょう。

-
-
-
-
-

4.2.2. 円グラフ

-

世の中には多くの円グラフの誤用が溢れています。
-ワイドショーなどで総和が100%になっていなかったり、
-円に対して占める割合が明らかに間違っていたりと、ひどい有様です。

-

他にも、奥行方向に傾いた円グラフも誤った印象を与えます。
-このように、円グラフというのは作成する際に注意が必要ですし、
-作成した円グラフがおかしいと「私は教養のない人です」
-と言っているようなもので大変恥ずかしい思いをします。

-

そもそも円グラフにしなきゃいけないデータってあるんでしょうか?
-帯グラフなどのほうがよっぽど量の比較にも向いています。

-

あれ…無くない?ということで円グラフはオマケとします。

-
-
-
#どうしても円グラフが描きたい方へ (下のコードを適当にいじって遊んでみてください)
-tlabels = ["Aと答えた人","Bと答えた人","Cと答えた人"]
-ratio = [513,142, 249]
-
-plt.figure(figsize=(4,4)) 
-plt.pie(ratio,labels=tlabels,counterclock=False, startangle=90,autopct="%.1f%%")
-plt.show()
-plt.close() 
-# labels=tlabelsは、 pie()関数の中のlabelsという引数にtlabelsを突っ込むという意味
-# label(ラベル)とは、凡例(legend)のこと。それぞれのオブジェクトが何を指すのか
-# counterclockは反時計回りのオプションをFalse(偽)とするのでつまり時計回り(回りくどいな...)
-# startangleは円グラフの始点を、x軸から見て何度のところにとるかで、今は90度(つまり12時の方向)と設定.
-# autopctは「値を%表記に直せ」というオプションで、 %.1f%%は小数点以下1桁まで出力しなさいという命令.
-
-
-
-
-
-
-
tlabels = ["Aと答えた人","Bと答えた人","Cと答えた人"]
-ratio = [513,142, 249]
-
-plt.figure(figsize=(10,3)) 
-plt.ylim([-1,1]) #plt.ylim(-1,1)でも可
-xs = 0.0
-for i in range(len(tlabels)):
-    tx = ratio[i]
-    ty = 0.0
-    plt.barh([ty],width=tx,left=xs,label=tlabels[i]+"("+str(ratio[i])+"人, "+str("%4.1f" % (100*ratio[i]/sum(ratio)))+"%)")
-    xs += ratio[i]
-plt.legend()
-plt.show()
-plt.close()
-
-
-
-
-

こっちの棒グラフのほうが良い気がする

-
-
-

4.2.3. plot: 線の描画

-

説明変数\(x\)と目的変数\(y\)があって、
-とくに**\(x\)に対する\(y\)の振る舞い**に興味がある場合にはplotを使います。

-

たとえば、日付(\(x\))に対するコロナウイルス感染者(\(y\))の推移をプロットしてみましょう。 -日付は、WHOのSituation Reportが初めて発表された2019年1月20日を起点(ゼロ)とする経過日数として表すことにして…

-
-
-
# 感染者数と重傷者数
-y= [282,314,None,581,846,1320,2014,2798,4593, 6065,7818,9826,11953,14557,17391,20630,
-    24554,28276,31481,34886, 37558.40554,43103,45171] #2019年2月13日までのデータ
-
-y_sev=[51,51,None,96,177,237,324,461,976,1239,
-       1370,1527,1795,2110,2296,2788,3219,3859,4821,6101,6188,6484,7333,8304]
-
-plt.figure(figsize=(12,4)) 
-plt.xlabel("2019年1月20日以降の経過日数")
-plt.plot(range(len(y)),y, label="世界全体での新型コロナウイルス感染者数",color="red")
-#x軸が0から始まる整数値(0,1,...)で良い場合は、x軸のデータを指定しなくてもplotしてくれる
-plt.plot(y_sev, label="重傷者数",color="blue") 
-plt.legend() ##凡例(線や点等の説明)を描画する
-plt.show()
-plt.close() 
-
-plt.figure(figsize=(12,4)) 
-plt.xlabel("1月20日以降の経過日数")
-plt.yscale("log") ## y軸を対数スケールに変換
-plt.plot(range(len(y)), y, marker="x",label="世界全体での新型コロナウイルス感染者数",color="red") ## markerの値を指定すれば、線だけじゃなく点を描くことも出来る。
-plt.plot(y_sev, label="重傷者数",marker="o",color="blue")
-plt.legend()
-plt.show()
-plt.close() 
-
-
-
-
-../_images/Python_chapter4_Matplotlib_35_0.png -../_images/Python_chapter4_Matplotlib_35_1.png -
-
-

下のグラフはy軸の対数スケールをとってみました。
-データが無い日の値は0ではなくNone(値なし)にすることに注意しましょう

-

注意
-当然ですが、x軸とy軸方向でデータの数が合っていないとエラーを起こします。

-

「一緒にしているつもりなのにエラーが出る…」と言う場合は
-len()関数などを実行してリストの長さ/要素の数をチェックしてみましょう。
-カンマがピリオドになるなどして、意図しないリストになっているかもしれません。

-

例:
-(意図したリスト) [2,3,5] ←長さ3のリスト
-(間違えて作ったリスト) [2.3, 5] ←カンマがピリオドになっていて、長さ2のリストになっている

-

練習:
-「matplotlib marker」でWeb検索してみて、どんな形状のmarkerが使えるか調べてみましょう。
-その中から”x”(バツ印)以外の好きなシンボルを選んで上のグラフの二番目をプロットしてみましょう。

-
-
-

4.2.4. scatter: 散布図の描画

-

\(x\)\(y\)、2つの量があって、どちらにも興味がある、
-あるいは両者の間の相関に興味がある場合、散布図を描くと、見通しやすくなることが多いです。

-

以下では、2017年の宇都宮の平均気温とアイスクリームの消費量の相関を見てみましょう。
-気温・アイスクリームの消費量ともに、1月から12月に順番にリストに入れていくことにします。

-
-
-
x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]
-y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]
-
-plt.figure(figsize=(4,4)) 
-plt.title("宇都宮市") ## 図にはタイトルをつけることができます
-plt.xlabel("平均気温 (℃)") #軸ラベルの指定
-plt.ylabel("世帯あたりのアイスクリーム・シャーベットの消費金額 (円)")
-plt.scatter(x,y)
-plt.show()
-plt.close() 
-
-
-
-
-../_images/Python_chapter4_Matplotlib_41_0.png -
-
-

相関係数などの情報を含んだもう少しかっこいい図を作ってみましょう。

-
-
-
x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]
-y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]
-
-r = np.corrcoef(x,y) ## x,yの配列間の相関行列を計算します 
-corrcoef=r[0,1] ## 行列の非対角要素が相関係数です。  r[0,1], 0行目1列の値
-
-def seasoncolor(month): #季節ごとに適当に色を塗ってみましょう
-    if month <= 2 or month ==12:
-        return "blue"
-    elif 3 <= month <=5:
-        return "green"
-    elif 6 <= month <=8:
-        return "red"
-    elif 9<= month <=11:
-        return "orange"
-    else:
-        print("month",month, " is not supported")
-
-fig = plt.figure(figsize=(5,5))
-ax = fig.add_subplot(111)  ## 注2
-ax.set_facecolor("#D3DEF1")
-ax.set_title("宇都宮市")
-ax.set_xlabel("平均気温 (℃)")
-ax.set_ylabel("世帯あたりのアイスクリーム・シャーベットの消費金額 (円)")
-ax.grid(True,axis="both",color="w", linestyle="dotted", linewidth=0.8)
-for i in range(len(x)):
-    tcol=seasoncolor(i+1)
-    ax.scatter(x[i],y[i],marker="o",s=10,color=tcol,zorder=20000,alpha=0.7)
-    ax.text(x[i],y[i],str(i+1)+"月",color="k",fontsize=8)
-ax.text(0.1,0.9, "r="+str("%5.2f" % corrcoef), transform=ax.transAxes,fontsize=12)
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter4_Matplotlib_43_0.png -
-
-
-
-

4.2.5. \(\clubsuit\) ax (matplotlib.axes)

-

上では、axという見慣れないものが導入されました。

-

キャンバスの上に小さな作業領域axesを指定するためのadd_subplotadd_axesといった関数があります。 -axはこれらの関数で生成される作業領域に慣例的に用いる変数です。

-

たとえばキャンバスを四分割して、似たようなグラフを4つ同時に描いたりするのに便利です。

-

axesを使いこなすのは少々テクニカルな点も多いので、よくわからない部分はとりあえず飛ばし読みで構いません。
-慣れてくると、その便利さに気がつくはずです。
-細かい図の書き方は追々、一緒に勉強していきましょう。

-

axに関しては、日本語で書かれた以下の記事もおすすめです
-https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9

-
-
-
data = [152, 170, 82,85,79,92,88]
-label = ["国語","英語", "数IA", "数IIB", "化学", "物理", "世界史"]
-
-fig = plt.figure(figsize=(10,5))
-axTL= fig.add_subplot(2,2,1)  #TL: Top Leftのつもり
-axTR = fig.add_subplot(2,2,2) #TR: Top Rightのつもり 
-axBL = fig.add_subplot(2,2,3) #BL: Bottom Leftのつもり
-axBR = fig.add_subplot(2,2,4) #BR: Bottom rightのつもり
-axTL.plot(y_sev)
-axTR.scatter(x,y)
-axBL.bar(label,data,align='center',width=0.5,color="red") 
-axBR.text(0.5,0.4,"右下だよ")
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter4_Matplotlib_46_0.png -
-
-
-
-

4.2.6. Google Driveのマウントと、Google Colab.上で作ったグラフの保存

-

プログラムを実行して絵を描けるようになったら、次にそれを保存して、レポートに貼り付けたり、
-誰かに送ったりする必要が出てくると思います。

-

Google Colab.では、同じGoogleのサービスであるGoogle drive上にファイルを保存したり(無料版で15GBまで)
-保存したファイルを他人と共有することができます。

-

皆さんのアカウントのGoogle DriveにあるファイルにGoogle Colab.からアクセスするためにはマウントという作業が必要です。

-
-
-
from google.colab import drive
-drive.mount('/content/drive')  # ←のマウントする際の名前は好きに決められる。drive.mount('gdrive')とかでもOK
-
-
-
-
-

上のコードを実行し(複数アカウントを所持している方はアカウントの選択をして) -ポップアップ等の指示に従い操作を行います。成功すると、Mounted at ほにゃららというメッセージが出ます。

-

上のコードは「google driveをdriveという名前でマウントする」という操作を表しています。
-マウントできていれば、以下のコードを実行すると、
-皆さんのアカウントのマイドライブ直下のファイル一覧が表示されます。

-
-
-
!ls ./drive/MyDrive
-
-
-
-
-

Google Colab.からは、!マークをつけることでLinuxやMac(Unix)同様のコマンドが使えます。
-上のlsというコマンドは(List Segmentsの略で)ファイルやディレクトリの情報を表示するコマンドです。

-

半角のスラッシュ/はディレクトリ階層を意味していて、windowsで言うところの¥に相当します。

-

コンピュータでディレクトリやパスを指定するときは通常このようなパスと呼ばれるものを指定して扱います。
-※パスについてはファイル操作のノートに詳しい記述があります。

-

次に、GoogleDriveに、図を保存する用のフォルダを作っておきましょう.

-

mkdir(make directoryの略)コマンドで、マイドライブ直下にColab_picというディレクトリを作ることにします.

-
-
-
!mkdir './drive/MyDrive/Colab_pic' 
-
-
-
-
-

上のコードを実行後にエラーが出ていなければGoogle driveを開くとColab_picというディレクトリが作成されているかと思います。

-

一度フォルダを作ってしまうと、2回目以降は上のコードを実行しても「既にフォルダありますよ!!」というメッセージがでますので
-ノートを開くたびに実行する必要はありません。

-

これで準備ができました。試しに以下のコードを実行して図を保存してみましょう。

-
-
-
### 先程の図
-fig = plt.figure(figsize=(6,6))
-ax = fig.add_subplot(1,1,1)  
-ax.set_facecolor("#D3DEF1")
-ax.set_title("宇都宮市")
-ax.set_xlabel("平均気温 (℃)")
-ax.set_ylabel("世帯あたりのアイスクリム・シャーベットの消費金額 (円)")
-ax.grid(True,axis="both",color="w", linestyle="dotted", linewidth=0.8)
-for i in range(len(x)):
-    tcol=seasoncolor(i+1)
-    ax.scatter(x[i],y[i],marker="o",s=10,color=tcol,zorder=20000,alpha=0.7)
-    ax.text(x[i],y[i],str(i+1)+"月",color="k",fontsize=8)
-ax.text(0.1,0.9, "r="+str("%5.2f" % corrcoef), transform=ax.transAxes,fontsize=12)
-plt.savefig("./drive/My Drive/Colab_pic/scatter_Utsunomiya_ice.pdf") #####  ここがさっきと違います! 
-#plt.show()
-plt.close()
-
-
-
-
-

Google drive上の指定したフォルダに、ファイルが作られたでしょうか?
-matplotlibはファイル名を変えるだけで指定した拡張子で描画してくれるので色々試してみましょう
-(.jpg,.pdf,.eps,.pngなど)

-

余談
-プレゼンのスライドに載せる画像は可能な限り、ラスタ形式ではなくベクタ形式(pdfやepsなど)がおすすめです。
-(それか、高解像度でjpegやpngを作ってスライドで使って、誰かにスライドを渡すときは軽量化する)
-プレゼンで図が滲んでいるスライドを見せていると「あぁ配慮が足りないんだな」と思われて損をしてしまうかもしれません。
-論文でラスタ画像を使う場合は「トンデモ論文だと思われて誰にも読まれない危険性」を理解して使いましょう。

-

練習 -これまでの(棒グラフ,円グラフ,1次元図,散布図)のグラフを描画したコード部分で、
-データを自由に足してみながら、plt.show()を書き換えてファイルに出力してみましょう。

-
-
-

4.2.7. gifアニメーションの作成

-

「なんだこの程度のグラフならExcelでも簡単にできるじゃん…」と思った皆さんのために、もう少し凝ったことをやってみましょう。
-gifアニメーション(パラパラ漫画)を作ってみます。

-

以下のリンクに、x軸をGDP,y軸を24歳から35歳の平均就学年数の女性/男性比(%)としたグラフを画像ファイル(png)にしたものを公開しました。
-(もともとのデータはFACTFULNESSから来ているのでライセンスフリーです)
-https://drive.google.com/drive/folders/1kD0Sk8EL-JSDJv-V8Bim3UytNSlofc6s?usp=sharing

-
    -
  1. まずこれをダウンロードしてください。

  2. -
  3. ZIP形式で保存されるので、それを解凍してください

  4. -
  5. 解凍したフォルダを自身のGoogle Driveの好きな場所にアップロードしてください
    -※以下のコードをそのまま使いたければAdDSというディレクトリを作ってその下にアップロード

  6. -
-

たとえば私のようにGoogle Driveのマイドライブ直下のAdDSというフォルダの下に
-GDPvsWomenInSchoolというフォルダを置いたとします

-

参考スクリーンショット(ディレクトリ名が古い(AdDS2021)ので注意):
-

-

年代ごとに別々になったたくさんのグラフを、1つのパラパラ漫画にまとめてみましょう

-

先程のグラフがgoogle driveに保存されているかどうかは、以下のコマンドで確認できます(アップロードして直後はファイルが見つからないことがあります)

-
-
-
!ls  ./drive/MyDrive/AdDS/GDPvsWomenInSchool/*.png
-
-
-
-
-

AdDS/GDPvsWomenInSchool/の部分は皆さんのフォルダ名に適宜変更してください.

-

pngファイルをまとめてgifにするコードは以下のとおりです。(処理にしばし時間がかかります)

-
-
-
from PIL import Image
-import glob
-
-files = sorted(glob.glob('./drive/My Drive/AdDS/GDPvsWomenInSchool/GDPvsWomen*.png')) ##まとめたいpngをワイルドカードで指定
-images = list(map(lambda file: Image.open(file), files))
-
-oupf = './drive/My Drive/Colab_pic/GDPvsWomen.gif' ##出力名と保存場所を指定する
-images[0].save(oupf, save_all=True, append_images=images[1:], duration=400, loop=0)
-
-
-
-
-

エラーが出なければおそらく変数oupfで指定した場所に、gifファイルが生成されていると思います。

-

私の作成例(ファイルへのリンク)は以下のとおりです

- -
-
-

4.2.8. \(\clubsuit\)おまけ

-

その他のグラフ

-
-
-
import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import axes3d
-from mpl_toolkits.mplot3d.axes3d import get_test_data
-import os
-
-X, Y, Z = get_test_data()
-fig = plt.figure(figsize=(10,5))
-ax = fig.gca(projection='3d')
-ax.set_xlabel("x")
-ax.set_ylabel("y")
-ax.set_zlabel("target function")
-ax.view_init(elev=45)#上から見た角度を調整できる
-ax.plot_surface(X, Y, Z,cmap=plt.cm.viridis)
-plt.show()
-plt.close()
-
-
-
-
-

二次元ヒストグラム

-
-
-
import matplotlib.cm as cm
-import numpy as np
-
-mu1 = [ 3.0, 2.0]
-cov1 = [ [1.0, 0.7],[0.7,1.0]]
-numS = 50000
-
-sample1 = np.random.multivariate_normal(mu1,cov1,numS)
-x1, y1 = sample1.T
-
-fig = plt.figure(figsize=(6,5))
-ax1 = fig.add_subplot(111)
-H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet)
-ax1.scatter(mu1[0],mu1[1],color="k",marker="x")
-ax1.set_title('sample1')
-ax1.set_xlabel('x'); ax1.set_ylabel('y')
-fig.colorbar(H1[3],ax=ax1)
-plt.show()
-plt.close()
-
-
-
-
-

日本地図

-
-
-
!pip install japanmap
-from japanmap import pref_names,pref_code,groups,picture
-import matplotlib.pyplot as plt
-from pylab import rcParams
-
-
-
-
-
-
-
plt.figure(figsize=(6,6))
-plt.imshow(picture({'栃木県': 'red', '群馬県': 'blue'}))
-
-
-
-
-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter5_Probability.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter5_Probability.html deleted file mode 100644 index d28ab67f..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter5_Probability.html +++ /dev/null @@ -1,1313 +0,0 @@ - - - - - - - - 5. 確率と疑似乱数 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

5. 確率と疑似乱数

-

[この章の目的] -コンピュータで確率・乱数を扱う概要を学ぶ。

-

この章では、確率と擬似乱数について扱います。

-
-
-
#ライブラリをインポートしておきましょう
-import random
-import numpy as np
-from matplotlib import pyplot as plt
-
-
-
-
-
-

5.1. 疑似乱数について

-

コンピュータで何かの処理を実現したいときや、自然科学や統計学などで様々なことをシミュレーションしたいとき、[確率的な事象]を考えたくなることがよくあります。

-

たとえば人◯ゲームや◯鉄のようなゲームを作るときにもサイコロの出目が必要になりますし、技が急所に当たる確率や色違いのポ◯モンが出現する確率などを設定しなければなりません.

-

真に理想的なサイコロならば1から6の目が出る確率は等しく1/6ですが、このような”理想的な”サイコロは、現実世界でも、コンピュータの上でも実現することはできず、我々人間が乱数をシミュレーションして扱う際には、何らかの確定的な方法で乱数列(十分ランダムだとみなせる数の集合)を生成することになります。

-

真の意味での乱数と区別する意味で、我々が普段ゲームなどで扱う乱数は擬似乱数と呼ばれるべきものです。以下ではめんどくさいので、単に乱数と呼ぶことにします。

-

\(\clubsuit\) 細かな注

-

乱数を生成する方法はいくつもあるが代表的なものはメルセンヌツイスタと呼ばれる方法で、多くのプログラミング言語でも採用されている。

- -

また[モンテカルロ法]と検索すると(主に学術的な分野で)乱数がどのように活用されているか、雰囲気を味わうことができます。

-
-
-

5.2. Pythonでの乱数生成

-

Pythonではrandomモジュールを使えば簡単に乱数を使用することができる。

-
-
-
random.randint(1,6)
-
-
-
-
-
2
-
-
-
-
-

のようにrandom.randint(最小値,最大値)とすると指定した閉区間の整数値をランダムに生成することができる。
-上のコードセルを実行するたびに答えが変わること(ランダム性)も確かめよう。

-

今の場合、最小値に1、最大値に6を採用したことで、この乱数をサイコロの出目とみなすことができる。
-(rangeなどと違い、最大値の6も含まれていることに注意! 紛らわしい…。)

-

100個のサイコロの出目を保持しておきたければ、2章で学習したリスト内包表記を用いて

-
-
-
a = [random.randint(1,6) for i in range(100)]
-print(a)
-
-
-
-
-
[1, 4, 5, 3, 4, 2, 2, 5, 5, 6, 1, 2, 6, 3, 2, 4, 3, 6, 6, 5, 5, 6, 4, 4, 2, 3, 3, 5, 4, 6, 6, 6, 6, 4, 3, 2, 1, 5, 6, 4, 3, 2, 5, 2, 6, 4, 3, 6, 1, 3, 5, 2, 6, 3, 2, 3, 3, 3, 1, 4, 1, 5, 2, 6, 4, 4, 4, 3, 2, 3, 6, 6, 3, 1, 2, 6, 1, 3, 1, 6, 2, 5, 2, 6, 5, 2, 1, 1, 4, 1, 2, 3, 1, 2, 5, 2, 3, 6, 2, 3]
-
-
-
-
-

などとすればよい。\(10^p\)回 (\(p=1,2,...,6)\)回サイコロを振った場合の出目をそれぞれヒストグラムにしてみると…

-
-
-
# サンプルの数を指定し、それぞれのサイコロの出目を用意して入れ子のリストにする
-ps = [1,2,3,4,5,6]
-Ns = [10**p for p in ps ]
-results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ]
-
-# ヒストグラムのビンの始点,終点,ステップを定義
-tbin = np.arange(0.5,7.5,1) 
-
-# 作図 (axを用いて、一つのグラフに6つの領域を用意して作画する)
-# add_subplit(n,m,i)で、縦n個, 横m個の領域を用意した場合の i番目(列方向,行方向の順番にカウントする. a行b列の小領域は i = (a-1)*m + b)
-fig = plt.figure(figsize=(20,5))
-axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1 ) ] #データの個数に応じて小領域の数を自動で変えたい場合は"(2,3"部分の工夫が必要。
-for i in range(len(axs)):
-    axs[i].set_xlabel("Roll")
-    axs[i].set_ylabel("Count")
-    axs[i].set_title("$n=10^"+str(ps[i])+"$") #$$で囲むとlatex表記を用いることができる
-    axs[i].hist(results[i],bins=tbin,rwidth=0.5)  #ヒストグラムを描画
-#グラフ間の縦の間隔hspaceをdefault値(0.3)から少し大きく調整
-plt.subplots_adjust(hspace=0.45) 
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter5_Probability_11_0.png -
-
-

1-6の出る目の頻度が確率から期待される振る舞いに漸近していく事がわかる. c.f. 大数の法則

-

今のようなサンプル数が大きく異なるヒストグラムを比較する場合、縦軸のスケールを揃えて比較するほうが良い。相対的な頻度になおしてみよう。
-そのためには、densityというオプションをオン(True)にするか、明示的に各サンプルの”重み”をweightsでリスト(ndarray)として与える。

-

後者は確率分布などを扱うときに便利なオプションとなるが、この授業では扱わない。
-density=Trueは”各サンプルの重みを等価にする”というweightsの特別な場合に相当する.
-つまりサンプル数が\(N\)ならweights=[すべての要素が\(1/N\)の配列(リストやndarray)]とするのと等価。

-
-
-
ps = [1,2,3,4,5,6]
-Ns = [10**p for p in ps ]
-results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ]
-tbin = np.arange(0.5,7.5,1) 
-fig = plt.figure(figsize=(20,5))
-axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1) ]
-for i in range(len(axs)):
-    axs[i].set_xlabel("Roll")
-    axs[i].set_ylabel("Count")
-    axs[i].set_title("$n=10^"+str(ps[i])+"$") 
-    axs[i].hist(results[i],bins=tbin,rwidth=0.5,density=True) #density=Trueオプションを指定
-    axs[i].plot([1,6],[1/6,1/6],color="gray",linestyle="dashed") #ココを追加した
-plt.subplots_adjust(hspace=0.45) 
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter5_Probability_14_0.png -
-
-
-

以下では、randomモジュールのよく使う(?)機能をいくつか紹介する.

-
-

また、numpyにもnumpy.randomという下位のモジュールがあるので、 randomnumpy.randomとしても多くの場合では互換性がある。import numpy as npとあだ名を使うならrandomnp.randomに置き換えて試してみよう。
-※ randintの場合は、np.random.randintだと終点を含まないなど、微妙な違いがあるので注意。モジュールの使い方や実装については公式Documentを参考にすること。これはnumpyに限らない。

-
-
-
-

5.3. 無作為抽出

-

リストやrangeなどからランダムに要素を選びたいときにはrandom.choiceが便利だ。
-(たとえば[出席番号のリストからランダムに選ぶ]などをイメージしよう)

-

ループに入れて5回くらい実行してみましょう。

-
-
-
for i in range(5):
-    ## 引数(リスト)からランダムに要素を抽出する
-    a = random.choice([1,3,5,6]) 
-
-    ## 引数(range,0から99)からランダムに要素を抽出する
-    b = random.choice(range(100)) 
-
-    ## 引数(リスト)からランダムに要素を抽出する
-    c = random.choice(["日本","アメリカ","中国"])     
-    
-    print("a=>", a, "\tb=>", b, "\tc=>", c)
-
-
-
-
-
a=> 6 	b=> 75 	c=> 日本
-a=> 1 	b=> 13 	c=> アメリカ
-a=> 1 	b=> 88 	c=> 中国
-a=> 6 	b=> 10 	c=> 中国
-a=> 1 	b=> 98 	c=> 日本
-
-
-
-
-

「0から99までの100個の整数値から重複を許さずに10個選びたい」といった場合は、 -numpy.randomchoice関数を使うのがよい。

-
-
-
import numpy as np
-np.random.choice(range(100),10,replace=False) # replace = True/Falseで重複を認めるかどうかを指定できる 
-
-
-
-
-
array([86, 28, 99, 31, 17, 92, 89, 50, 76, 69])
-
-
-
-
-

(上の関数のreplace=True or replace=Falseを変えて何回か実行してみて、抽出された数に重複があるかどうかを確かめてみよう)

-

ちなみに選んだものをソートしたければ以下のようにする:

-
-
-
import numpy as np
-sorted_array = sorted( np.random.choice(range(100),10,replace=False)  )
-
-print(sorted_array)
-
-
-
-
-
[0, 13, 17, 36, 48, 49, 75, 84, 96, 97]
-
-
-
-
-
-
-

5.4. 一様分布からの乱数生成

-

上記のような離散的な乱数とは異なり、連続的な数について乱数が必要になる場合もある。

-

その一つの例である一様乱数は、ある”有限”区間での確率(密度)が等しい確率に従う乱数で、
-random.uniform()関数を使えば、指定した区間での一様乱数を生成することができる。

-
-
-
random.uniform(1,10) #[1,10)または[1,10]からの一様乱数 (randomモジュールでは半開区間/閉区間どちらになるかはroundingに依存するらしい)
-
-
-
-
-
3.6791118523291146
-
-
-
-
-

xとyの値を[-1,1]の範囲でランダムに10000サンプル生成してplotしてみよう

-
-
-
num = 10000
-xs = [ random.uniform(-1,1) for i in range(num)]
-ys = [ random.uniform(-1,1) for i in range(num)]
-
-# 3つの領域に、散布図・xのヒストグラム・yのヒストグラムを描く
-fig = plt.figure(figsize=(20,5))
-axs = [fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)]
-axs[0].scatter(xs,ys,color="green",s=0.5,alpha=0.4) 
-axs[0].set_xlabel("x");axs[0].set_ylabel("y")
-axs[1].set_xlabel("x");axs[1].set_ylabel("count")
-axs[2].set_xlabel("y");axs[2].set_ylabel("count")
-axs[1].hist(xs,bins=50,ec="w") #xのヒストグラム (binの数50はいい加減に選んだ)
-axs[2].hist(ys,bins=50,ec="w") #yのヒストグラム 同じく
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter5_Probability_30_0.png -
-
-

\(\clubsuit\) 散布図とヒストグラムをまとめて描く

-

もうちょっとかっこよく描きたければseabornというモジュールのjointplotを用いると良い。

-
-
-
import seaborn as sns
-sns.jointplot(xs,ys,color="green",s=2,alpha=0.5)
-plt.show()
-
-
-
-
-
/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.
-  FutureWarning
-
-
-../_images/Python_chapter5_Probability_32_1.png -
-
-
-

5.4.1. じゃんけん関数

-

乱数を使ってじゃんけんをする関数を作ってみましょう。

-
-
-
def Janken( ):    
-    r = ["グー","チョキ","パー"]
-    return r[random.randint(0,2)] 
-
-
-
-
-
-
-
Janken()
-
-
-
-
-
'チョキ'
-
-
-
-
-
-
-
#あるいは、手を0,1,2として計算する関数とじゃんけんの手に反映させる部分を分けても良い
-
-def Janken():
-    return random.randint(0,2)
-RPS = ["グー","チョキ", "パー"]  #integer to Rock-Paper-Scissors
-
-#5回手を表示させてみる
-for i in range(5): 
-    print(RPS[Janken()])
-
-
-
-
-
パー
-パー
-パー
-グー
-パー
-
-
-
-
-

今の場合Janken()は、単に1/3の確率で手を選ぶ関数ですが、これを拡張していけば確率を1/3から変動させたじゃんけんの実装もできます。
-たとえば、0から1の区間から一様乱数を発生させて、ある領域に含まれたらグー、ある領域に含まれたらチョキ、残りはパー、とすればよいですよね?

-

じゃんけん関数を工夫したり、サザ◯さんやドラ◯もんのじゃんけんのパターンを解析することで、
-毎週土曜や日曜にドラ◯もんやサザ◯さんを倒す関数を作ってみるのも面白そうです。

-
-
-

5.4.2. \(\clubsuit\)一様乱数を用いた円周率の計算

-

プログラミングでド定番の、乱数を使って円周率を求める方法も
-Pythonならサクッと実装することができます。

-
-
-
def pi_approx(p):
-    num = 10**p
-    x = np.random.rand(num)
-    y = np.random.rand(num)
-    return  4*np.sum(x*x+y*y < 1.0) / num
-
-pi_approx(5) 
-
-
-
-
-
3.13704
-
-
-
-
-

このコードでは、\(10^p\)組の一様乱数を発生させて、
-円弧の中に入った個数/全体の数(num)で割ることで円周率を求めています。
-(1/4円の面積は\(\pi\)/4で、正方形の面積が1であることを使う)
-

-

乱数により生成するサンプルの数を増やしていって、精度が改善する様子を見てみよう。

-
-
-
np.random.seed(1234)
-sum = []
-for p in range(1,9): #サンプル数を一桁ずつ増やす
-    tmp = pi_approx(p)
-    sum += [[10**p, np.log10(abs(tmp-np.pi))]]
-    print("p=",p, "\t", "pi_approx", tmp, "log10(abs(diff))", np.log10(abs(tmp-np.pi)))
-sum = np.array(sum).T
-
-fig= plt.figure(figsize=(10,3))
-ax = fig.add_subplot(111)
-ax.set_xlabel("Sample number")
-ax.set_ylabel("Diff. in log10")
-ax.set_xscale("log")
-ax.plot(sum[0], sum[1],marker="o")
-plt.show()
-plt.close()
-
-
-
-
-
p= 1 	 pi_approx 2.8 log10(abs(diff)) -0.46649147797051027
-p= 2 	 pi_approx 2.92 log10(abs(diff)) -0.6544446417698763
-p= 3 	 pi_approx 3.1 log10(abs(diff)) -1.3809833709877704
-p= 4 	 pi_approx 3.1316 log10(abs(diff)) -2.000319167792708
-p= 5 	 pi_approx 3.1458 log10(abs(diff)) -2.3759917290460537
-p= 6 	 pi_approx 3.140808 log10(abs(diff)) -3.105322034013356
-p= 7 	 pi_approx 3.1410364 log10(abs(diff)) -3.254727173274235
-p= 8 	 pi_approx 3.14153816 log10(abs(diff)) -4.263654581782899
-
-
-../_images/Python_chapter5_Probability_43_1.png -
-
-

あまり効率は良くない(\(10^8\)サンプルあっても4桁くらいしか合っていない)。
-ちなみに2つの領域に生成された乱数の比から円周率を計算する方法では、領域の面積が近くなるような設定で計算する方が精度が良い。

-

なお、上のコードはメモリを食うので、これ以上\(p\)を増やすとだんだんGoogle Colab上では計算が厳しくなってくる。それまでの作業にも依存するが、\(p\geq9\)にして実行するとクラッシュする。このように場合によってはメモリ使用量も気にする必要がある。

-
-
-
import numpy as np
-def pi_approx_mem(p):
-    num = 10**p
-    x = np.random.rand(num)
-    y = np.random.rand(num)
-    print("p="+str(p)+"のとき => ndarrayのサイズは~", (x.nbytes+y.nbytes) / 1000**3 , " GB程度")
-    return  4*np.sum(x*x+y*y < 1.0) / num
-
-pi_approx_mem(7)
-pi_approx_mem(8) 
-
-
-
-
-
p=7のとき => ndarrayのサイズは~ 0.16  GB程度
-p=8のとき => ndarrayのサイズは~ 1.6  GB程度
-
-
-
3.14164512
-
-
-
-
-
-
-
-

5.5. 正規分布からの乱数生成

-

正規分布は多くの特徴的な性質を有しています.
-それらは後述するとして…正規分布に従う乱数を生成するには
-random.gauss()もしくはrandom.normalvariate() を用いればよい.
-※両者は基本的に同じだが、前者のほうが高速らしい

-
-
-
a = random.gauss(0.0, 1.0) #平均0.0,標準偏差1.0の正規分布からの乱数生成
-
-
-
-
-

サンプル数を何通りか作って、正規分布になっているかチェック

-
-
-
Na = 100; Nb = 1000; Nc = 100000
-a = [ random.gauss(0.0, 1.0) for i in range(Na)] 
-b = [ random.gauss(0.0, 1.0) for i in range(Nb)] 
-c = [ random.gauss(0.0, 1.0) for i in range(Nc)] 
-c2 = [ random.normalvariate(0.0, 1.0) for i in range(Nc)]  #一応normalvariateも使ってみる
-
-fig = plt.figure(figsize=(30,5))
-axs = [ fig.add_subplot(141),fig.add_subplot(142),fig.add_subplot(143),fig.add_subplot(144)]
-axs[0].hist(a,bins=50,density=True,rwidth=0.8)
-axs[1].hist(b,bins=50,density=True,rwidth=0.8)
-axs[2].hist(c,bins=50,density=True,rwidth=0.8)
-axs[3].hist(c2,bins=50,density=True,rwidth=0.8)
-plt.show()
-plt.close()
-
-#平均と分散も計算してみる
-print("mu,sigma a:",np.mean(a), np.std(a))
-print("mu,sigma b:",np.mean(b), np.std(b))
-print("mu,sigma c:",np.mean(c), np.std(c))
-print("mu,sigma c:",np.mean(c2), np.std(c2))
-
-
-
-
-../_images/Python_chapter5_Probability_50_0.png -
mu,sigma a: 0.0067173334130862326 1.005917217916256
-mu,sigma b: -0.062043437506205806 0.9809649613610115
-mu,sigma c: 0.0029861824182547607 1.0029708839095104
-mu,sigma c: 2.6103380608022205e-05 1.0002128303060538
-
-
-
-
-

サンプル数が増えるにつれて、正規分布に収束していく様子が見られます.

-
-
-

5.6. 乱数の種(seed)の固定

-

これまでのプログラムでは、実行の度に答えが変わりました。

-

擬似的にでもランダム性が担保されているというのは便利だが、
-実際にプログラミングで乱数を使って何かの作業を実装したいときは、
-何か直感と反するような振る舞いをコードが示した際、
-それがランダム性からくる偶然の挙動なのか、コードにバグがあるせいなのかを特定したくなる。
-そんなときには、 -random.seed(適当な整数値)
-を使って乱数の”種”を指定することで、再現性のあるコードにすることができます。
-たとえばサイコロの例でいうと

-
-
-
[ random.randint(1,6) for i in range(10)]
-
-
-
-
-
[3, 3, 4, 2, 3, 3, 2, 6, 2, 6]
-
-
-
-
-

は実行する度に答えが変わるが

-
-
-
random.seed(1234) 
-[ random.randint(1,6) for i in range(10)]
-
-
-
-
-
[4, 1, 1, 1, 5, 1, 6, 6, 1, 1]
-
-
-
-
-

は何度実行しても同じ答えになる。これは、乱数の生成前に”種”を指定しているため。

-

イメージとしては、「無限に長い疑似乱数の羅列の中から10個並んだ数を選ぶときに、
-どこからどこまでを抽出するかを指定する」のが、
-このrandom.seed関数です(細かいことを無視すると、だいたいこんなイメージ).

-

注意点としては、たとえばループを回して乱数を生成するときに

-
for i in range(10):
-    random.seed(1)
-    print( random.uniform(0,1) )
-
-
-

などとすると、乱数を生成する前に毎回seedが1に固定されるので
-毎回同じ乱数になってしまうので、意図した挙動になるブロックで使うこと。

-

余談
-古いゲームだと、起動してからの経過時間が乱数の種になっていることが多いようで、
-このパターンを調べることができれば、
-原理的には(1/30~1/60秒程度の正確な入力が可能なら)望むようにゲームをスイスイ攻略することもできます。

-

これを利用して攻略を進めたり、コンピュータにゲームの操作をやらせて、
-メタル◯ライムに会心の一撃を食らわせてレベルアップしまくる動画などが昔はやりました(今も時々ある)。

-
-
-

5.7. 正規分布に関して

-

この授業は確率・統計の授業ではないので、深入りはしませんが、
-正規分布(ガウス分布,ガウシアン)に少し触れておきます.
-(厳密性は少々犠牲にし、変数が1次元の場合の正規分布に限る)

-

正規分布が重要である理由はいくつかありますが、

-
    -
  • 世の中に(近似的に)正規分布に従う確率変数がたくさんある

  • -
  • “性質が良い”(扱いやすい)確率分布である

  • -
-

の2点が代表的なところでしょうか。
-たとえば、身長や体重の分布や、大学入試センター/共通試験の得点の分布なども、正規分布に近いことが知られています。

-

ある変数\(x\)が中心\(\mu\)、標準偏差\(\sigma\)の正規分布に従うとき、
-\(x\)の確率密度関数\(f(x)\)は、以下の様に表現されます.

-

\(f(x) = \frac{1}{\sqrt{2\pi \sigma^2}}\exp{(-\frac{(x-\mu)^2}{2\sigma^2})}\)

-

一見、難しそうな式ですが、\(x=\mu\)で最大値となり、
-\(x\)\(\mu\)から離れていくとどんどん値が小さくなる関数になっています。

-

関数の形を見てなんとなく「平均値の周りに広がった分布になっているんだな」
-と理解できれば問題は有りません。

-

実際に、上の\(x\)についての関数\(f(x)\)の値を、\(\mu\)\(\sigma\)を変えながらplotしてみると…

-
-
-
def gaussian(mu,sigma,xr):
-    return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2)
-
-xr = np.arange(-6.0,6.0,0.01)
-yr1 = gaussian(0.0,1.0,xr); yr2 = gaussian(1.0,2.0,xr); yr3=gaussian(-2.0,0.5,xr)
-
-fig= plt.figure(figsize=(12,4))
-plt.plot(xr,yr1,label="mu=0.0, sigma=1.0")
-plt.plot(xr,yr2,label="mu=1.0, sigma=2.0")
-plt.plot(xr,yr3,label="mu=-2.0, sigma=0.5")
-plt.plot([-7,7],[0,0],color="gray", linestyle="dotted")
-plt.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter5_Probability_59_0.png -
-
-

こんな感じ。このような形状の分布を示すデータ(量)が世の中には溢れています。

-

指数関数\(\exp\)の前についている係数\(1/\sqrt{2\pi \sigma^2}\)は、
-この関数をあらゆるxの値で足し上げたときに、その値が1になるようにつけてあります.
-つまり、x軸と関数\(f(x)\)が囲む領域の面積=xの全区間での積分\(\int^{\infty}_{-\infty}f(x) dx \)が1になります.

-

こうしておけばどの\(\mu,\sigma\)を持つ正規分布を考えたときにでも、
-「どこからどこまでの区間の面積が全体に占める割合が何%だ」といった表現が可能になります。
-つまり、確率として扱いやすくなります。

-
-

ちなみに関数\(\exp{\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)}\)は、\(x\)に対する有限区間での積分を解析的に求めることはできず(数値的に求めることはできる)、\(x \in [-\infty,\infty]\)で積分した場合にのみ、閉じた形で書き下すことができます。
-その際、積分値\(\int^\infty_{-\infty}\exp{\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)}\)が、\(\sqrt{2\pi \sigma^2}\)になります。 c.f. ガウス積分

-
-

以下では\(\mu=0.0\), \(\sigma=1.0\)のみを考えることにして、もう少し正規分布の特徴的な性質について見てみましょう。

-
-
-
def gaussian(mu,sigma,xr):
-    return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2)
-
-fig= plt.figure(figsize=(14,4))
-axs = [ fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)]
-xr = np.arange(-5.0,5.0,0.01)
-yr = gaussian(0.0,1.0,xr)
-for i in range(3):
-    axs[i].plot(xr,yr,label="mu=0.0, sigma=1.0")
-    axs[i].plot([-4,4],[0,0],color="gray", linestyle="dotted")
-x_sig1 = np.arange(-1.0,1.0,0.01)
-x_sig2 = np.arange(-2.0,2.0,0.01)
-x_sig3 = np.arange(-3.0,3.0,0.01)
-axs[2].fill_between(x_sig3, 0.0*x_sig3, gaussian(0.0,1.0,x_sig3),color="green",alpha=0.9)
-axs[1].fill_between(x_sig2, 0.0*x_sig2, gaussian(0.0,1.0,x_sig2),color="blue",alpha=0.9)
-axs[0].fill_between(x_sig1, 0.0*x_sig1, gaussian(0.0,1.0,x_sig1),color="red",alpha=0.9)
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter5_Probability_62_0.png -
-
-

上の図では、\(\mu \pm 1\sigma\), \(\mu \pm 2\sigma\), \(\mu \pm 3\sigma\)の領域での正規分布とx軸とが囲む領域を、それぞれ赤色、青色、緑色で塗りつぶしました。
-(1シグマ, 2シグマ, 3シグマと呼んだりします)

-

これらが占める面積は、それぞれ0.6827, 0.9545,0.9973(いずれも”約”)となり、
-68%,95%,99%区間などと呼ぶことも多いです。
-このことは、任意の\(\mu,\sigma\)を持つ1次元の正規分布について成立します。

-

正負の値をとる\(x\)(たくさんの人のなんかの得点とでも思ってください)の分布が
-平均0.0,標準偏差が1.0の正規分布に従っている場合(理想的な場合)なら、
-全体の68%程度の人の得点は1シグマ領域(赤)、
-つまり-1から1までの間に分布していることになります。

-

もちろん、実際の場合、分布は真には正規分布になっていないので、
-平均と標準偏差を計算したときに、いつでも1シグマの中に
-全体の68%が分布しているわけではありません。

-
-

5.7.1. \(\clubsuit\) おまけ: 多変数正規分布

-

上の正規分布の考え方を拡張して、多変数の場合を考えることもできます。

-

2つ以上の変数であることを明示的に表すため、 -多次元正規分布や多変数正規分布などと呼ばれることが多いです。

-

1次元の正規分布が、中心と分散(あるいは標準偏差(分散の平方根))で特徴づけられたのに対し、 -多次元正規分布は、中心(ベクトル)と共分散(行列)によって特徴づけられます。

-

\(N\)個の変数が、 -平均を\(\boldsymbol{\mu}\),共分散を\(\Sigma\)とする\(N\)次元正規分布に従うとき、 -\(\boldsymbol{x}\)の確率密度関数は

-

\(\frac{1}{\sqrt{(2\pi)^N |\Sigma|}} \exp{\left( -\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^T \Sigma^{-1} (\boldsymbol{x}-\boldsymbol{\mu}) \right)}\)

-

で与えられます。

-

注) \(x\)←がGoogle ColabのTeXだとうまく太字にならないが多成分(ベクトル)のつもり

-

二次元の場合に、適当な\(\mu\)\(\Sigma\)を取って、多次元正規分布からサンプルしてみましょう。

-
-
-
mu1 = [ 3.0, 2.0]
-cov1 = [ [1.0, 0.7],[0.7,1.0]]
-mu2 = [ -2.0, -0.5 ]
-cov2 = [ [0.6, -0.3],[-0.3,1.0]]
-numS = 50000
-
-sample1 = np.random.multivariate_normal(mu1,cov1,numS)
-sample2 = np.random.multivariate_normal(mu2,cov2,numS)
-
-x1, y1 = sample1.T
-x2, y2 = sample2.T
-
-
-
-
-

散布図にすると

-
-
-
fig= plt.figure(figsize=(10,5))
-ax = fig.add_subplot(111)
-ax.set_xlabel("x");ax.set_ylabel("y")
-ax.scatter(x1,y1, s=5,color="green", alpha=0.2,label="sample 1")
-ax.scatter(x2,y2, s=5,color="orange", alpha=0.2,label="sample 2")
-ax.scatter(mu1[0], mu1[1], marker="x", color="blue", alpha=0.9,label="mean 1")
-ax.scatter(mu2[0], mu2[1], marker="x", color="red", alpha=0.9,label="mean 2")
-ax.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter5_Probability_68_0.png -
-
-

こんな感じ。

-

二次元のヒストグラムにすると

-
-
-
import matplotlib.cm as cm
-
-fig = plt.figure(figsize=(12,4))
-ax1 = fig.add_subplot(121)
-H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet)
-ax1.scatter(mu1[0],mu1[1],s=80,color="w",marker="x")
-ax1.set_title('sample1')
-ax1.set_xlabel('x'); ax1.set_ylabel('y')
-plt.colorbar(H1[3],ax=ax1)
-
-ax2 = fig.add_subplot(122)
-H2 = ax2.hist2d(x2,y2, bins=40, cmap=cm.jet)
-ax2.scatter(mu2[0],mu2[1],s=80,color="w",marker="x")
-ax2.set_title('sample2')
-ax2.set_xlabel('x'); ax2.set_ylabel('y')
-plt.colorbar(H2[3],ax=ax2)
-plt.show()
-
-
-
-
-../_images/Python_chapter5_Probability_70_0.png -
-
-

中心付近にたくさん分布している様子が見て取れます。

-

各サンプルごとに、\(x\),\(y\)の分散、共分散を計算してみると…

-
-
-
print("Sample1")
-print("var(x)", np.var(x1), "var(y)", np.var(y1), "cov(x,y)", np.cov(x1,y1)[0,1])
-
-print("Sample2")
-print("var(x)", np.var(x2), "var(y)", np.var(y2), "cov(x,y)", np.cov(x2,y2)[0,1])
-
-
-
-
-
Sample1
-var(x) 0.994590632112357 var(y) 0.9890686124916055 cov(x,y) 0.6931785449875472
-Sample2
-var(x) 0.5996593224718298 var(y) 0.996967770694425 cov(x,y) -0.29333540781674877
-
-
-
-
-

確かに上で与えた共分散の各成分ともちゃんと一致しています。

-

-

ちなみに…サンプルを使うのではなく、
-式から計算される値をつかって3次元の図を描くと

-
-
-
nmesh= 1024 
-x = np.linspace(-6, 6, nmesh)
-y = np.linspace(-6, 6, nmesh)
-X, Y = np.meshgrid(x, y)
-
-Z = np.exp( -0.5 * ( (X-mu1[0])* cov1[0][0] * (X-mu1[0]) + (Y-mu1[1])*cov1[1][1]* (Y-mu1[1])  - 2 * (X-mu1[0])*cov1[0][1]* (Y-mu1[1])  ))  / ( 2*np.pi * np.sqrt(np.linalg.det(cov1)) )
-Z2 = np.exp( -0.5 * ( (X-mu2[0])* cov2[0][0] * (X-mu2[0]) + (Y-mu2[1])*cov2[1][1]* (Y-mu2[1]) - 2 * (X-mu2[0])*cov2[0][1]* (Y-mu2[1]) )) / ( 2*np.pi * np.sqrt(np.linalg.det(cov2) ))
-
-
-
-
-
-
-
from mpl_toolkits.mplot3d import axes3d
-fig = plt.figure(figsize = (20, 6))
-axL = fig.add_subplot(121, projection="3d")
-axR = fig.add_subplot(122, projection="3d")
-
-axL.set_xlabel("x"); axL.set_ylabel("y"); axL.set_zlabel("f(x,y)");axL.view_init(azim=-110,elev=60)
-axR.set_xlabel("x"); axR.set_ylabel("y"); axR.set_zlabel("f(x,y)");axR.view_init(azim=-110,elev=60)
-
-axL.plot_surface(X,Y, Z, cmap = cm.jet) 
-axR.plot_surface(X,Y, Z2, cmap = cm.jet)
-
-plt.show()
-
-
-
-
-../_images/Python_chapter5_Probability_76_0.png -
-
-

こんな感じ。
-x,yのメッシュ点をいっぱいつくって、各点でのzの値を定義に則って計算し、
-z=f(x,y)の値に応じて色をつけている.

-
-
-
-

5.8. \(\clubsuit\) ランダムウォーク(酔歩)

-

ここまでの乱数の生成方法を応用すると、ランダムウォーク(酔歩)と呼ばれるものを実装することもできます。

-

あなたは原点(0,0)に立っていて、毎秒ごとに[-1,1]の一様乱数に従ってx方向とy方向に移動するとします。
-T秒後に立ってる場所や、軌跡をプロットしてみましょう。

-
-
-
import numpy as np
-xy = np.array([0.0,0.0]) #開始地点
-T = 1000 #stepの数
-
-random.seed(1234) ## 同じ答えにしたければ乱数を固定しておきましょう
-trajectory = []
-for step in range(T):
-    xy += np.array([ random.uniform(-1,1), random.uniform(-1,1)])
-    trajectory += [ [ xy[0],xy[1]] ]
-trajectory= np.array(trajectory).T 
-
-fig = plt.figure(figsize=(5,5))
-plt.scatter(0,0,marker="x",color="black",label="t=0")
-plt.scatter(xy[0],xy[1],marker="x",color="red",label="t="+str(T))
-plt.plot(trajectory[0],trajectory[1],color="blue",linewidth=1,alpha=0.3)
-plt.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter5_Probability_81_0.png -
-
-

今の場合、x方向y方向いずれも、
-特別な方向への指向はなく完全にランダムですが、
-獲得関数や勾配といったものが定義されるとさらなる応用が考えられます。

-

たとえば、地図に載っていない山があったと仮定して、
-その山の頂上にたどり着くためには、上のようなランダムウォークでは効率が悪いので、
-山の傾斜の情報(勾配)を利用しながらランダムな大きさで進む、といった方法が思いつきます。

-

大きさをランダムにすることで、局所的な峠に捕まることを避けることもできるかもしれません(場合によりけり).

-

\(\clubsuit\)進んだ注

-

ランダムウォークやその派生の方法は、
-最適化や確率分布からのサンプリングが必要な状況下でよく用いられ、
-統計学、自然科学、機械学習など様々な分野で活躍しています。
-c.f. サンプリング,マルコフ連鎖モンテカルロ法

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter6_Regression.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter6_Regression.html deleted file mode 100644 index 1b8f57ae..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter6_Regression.html +++ /dev/null @@ -1,956 +0,0 @@ - - - - - - - - 6. 相関・回帰分析 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

6. 相関・回帰分析

-

相関関係は因果関係を含意しない (Correlation does not imply causation)

-

[この章の目的] -初歩的な相関分析と回帰分析がPythonで出来るようになる。

-

今回使用するライブラリをインポートしておきましょう。

-
-
-
from matplotlib import pyplot as plt 
-!pip install japanize-matplotlib 
-import japanize_matplotlib 
-import numpy as np 
-
-
-
-
-
-

6.1. 相関分析 (復習)

-

1年次の必修科目、データサイエンス入門でも相関分析を学習したことかと思います。

-

解析したいデータが2種類だけなら、プログラムを使うご利益はそれほど感じられないが -「多くのデータ間の相関関係を系統的に調べたい」「複数年度に渡るデータを解析したい」
-あるいは「その結果をベクタ画像として出力したい」となると
-これまで学習してきた繰り返し操作や作図が役に立つ。

-

まずは簡単な例から初めよう。

-
-
-
x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]
-y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]
-
-
-
-
-

上に示したのは、2017年の宇都宮市における月別の平均気温\(x\)
-世帯ごとのアイスクリーム・シャーベットの平均消費金額\(y\)で、
-散布図にすると↓こんな感じ

-
-
-
plt.figure(figsize=(6,6)) 
-plt.title("宇都宮市") 
-plt.xlabel("平均気温 (℃)")
-plt.ylabel("世帯あたりのアイスクリム・シャーベットの消費金額 (円)")
-plt.scatter(x,y)
-plt.show()
-plt.close()
-
-
-
-
-

「平均気温とアイスの消費には相関がありそう」という直感の通り、正の相関があることが見て取れる。

-

では”どれほどの”相関を持つかを表す量として相関係数を算出してみよう。
-相関係数\(r\)は以下のように定義され -\(r = \frac{ \sum^n_i (x_i-\bar{x})(y_i-\bar{y})}{ \sqrt{\sum^n_i (x_i-\bar{x})^2 \sum^n_i (y_i-\bar{y})^2} }\)
-\(\bar{x},\bar{y}\)はそれぞれ\(x,y\)の平均値で\(\bar{x} = \frac{1}{n} \sum^n_i x_i \), \(\bar{y} = \frac{1}{n} \sum^n_i y_i \)
-と書ける。

-

下付き添字\(i\)\(x\)\(i\)番目の要素であることを表し(つまり\(x\)をn次元ベクトルとみなしたときの第\(i\)成分が\(x_i\))
-今考えているデータの場合、\(\sum\)の和記号は\(i\)は1から12までの値を取り、対応する値を足し上げることを意味する。
-(“\(i\)の和が1から12までを走る”と言ったりもする)

-

\(r\)は必ず-1から1までの値を取り1.0(-1.0)に近づくにつれ強い正(負)の相関を示す。
-(強いというのは曖昧な表現で絶対的な線引がある訳では無いことに注意)

-
-

\(|r|\leq1\)は、コーシーシュワルツの不等式を用いるか
-上の\(r\)の定義と\(n\)次元ベクトル同士の内積の定義とを見比べると示せる(暇があればやってみよう)。

-
-

次にxy、2つのリストを引数に持ち、相関係数\(r\)を返す関数を作成してみよう。

-

にらめっこするために式を再掲: -\(r= \frac{ \sum^n_i (x_i-\bar{x})(y_i-\bar{y})}{ \sqrt{\sum^n_i (x_i-\bar{x})^2 \sum^n_i (y_i-\bar{y})^2} }\)

-
-
-
### ライブラリを一切使わない方法
-def cor_coeff(x,y):
-    # xとyの長さが違う場合や長さ0の場合はエラーを出す
-    if len(x) != len(y) or len(x)==len(y)==0:
-        raise ValueError("Error: x&y must satisfy len(x) = len(y) != 0")
-    n = len(x) 
-    ## 平均を計算
-    xbar = sum(x)/n; ybar = sum(y)/n 
-
-    ##分子(numerator)の和を計算 (初期値を0に)
-    s_n = 0.0 
-    for i in range(n):
-        s_n += (x[i]-xbar)*(y[i]-ybar)
-
-    ##分母(denominator)の計算 (和を先に計算して積を取り、最後にsquare rootをとる)
-    s_x = 0.0; s_y = 0.0
-    for i in range(n):
-        s_x += (x[i]-xbar)**2 
-        s_y += (y[i]-ybar)**2
-    s_d = (s_x * s_y)**0.5
-    # 一行で書くなら
-    #s_d = ( sum([(x[i]-xbar)**2 for i in range(n)]) * sum([(y[i]-ybar)**2 for i in range(n)]) )**0.5
-
-    return s_n/s_d # 分子/分母の値を返す
-
-cor_coeff(x,y)
-
-
-
-
-

という風に、\(r\)が約0.83で、非常に強い正の相関を示すことが分かる。

-

少しずつ自作関数に慣れてきたら、上のように意図しない引数を入れたときの挙動なども設定すると
-より安全なコードを作る事ができる。

-

xyの長さが違う場合(上のraise文でエラーが生じさせる場合)を試しておこう。

-
-
-
cor_coeff(x,y[1:])
-
-
-
-
-

相関係数の計算は、numpyライブラリを使うと実はもう少しシンプルに書ける

-
-
-
def cor_coeff_np(x,y):
-    xbar = np.mean(x); ybar=np.mean(y)
-    return np.dot(x - xbar,y-ybar) / np.sqrt( np.dot(x-xbar,x-xbar) * np.dot(y-ybar,y-ybar) ) 
-
-cor_coeff_np(x,y) 
-
-
-
-
-

とすると、関数自体は3行で書けてしまう。 -さらに\(\bar{x},\bar{y}\)をいちいち定義しないように書き換えれば、関数の中身自体は一行でかけてしまいます。

-

上のコードを少し補足しておくと…分子や分母に現れる
-\(\sum^n_i (x_i-\bar{x})(y_i-\bar{y})\)\(\sum^n_i (x_i-\bar{x})^2 \)といった項は、
-\(i\)番目の成分に\(x_i-\bar{x}\)を持つベクトル\(\tilde{x}\)
-\(i\)番目の成分に\(y_i-\bar{y}\)を持つベクトル\(\tilde{y}\)を定義しておくと、
-\(\tilde{x}\cdot\tilde{y}\), \(\tilde{x}\cdot\tilde{x}\), \(\tilde{y}\cdot\tilde{y}\)といったように -ベクトルの内積の形でいずれも表すことができる。

-

numpyにはブロードキャスト機能(Numpyのノートを参照)やベクトル積を計算する関数dotが備わっているので、
-それらを活用することで相関係数の計算を短く実装することができた。

-

更に言うと実はnumpyには相関係数を計算する関数corrcoef()が予め用意されていて

-
-
-
print(np.corrcoef(x,y))
-print("r(x,y)=", np.corrcoef(x,y)[0,1])
-
-
-
-
-

を使えば
-[ xとxの相関(=1.0), xとyの相関;
-yとxの相関, yとyの相関(=1.0)]
-といった2行2列の相関行列を取得することが出来る。
-確かに上の相関行列の[0,1]成分は、さっき計算した\(r\)の値と一致している。

-

「初めからそれを教えろ!」と思うかもしれないが
-考えたい量を数式として定義してそれをプログラムに変換し、値が正しいことを確認する作業
-式(考え方)とプログラミング双方の理解を深める上で非常に重要である

-
-

6.1.1. 相関分析と因果関係

-

以下では、ある一つのグラフの例を見ながら、冒頭の
-相関関係は因果関係を含意しない (Correlation does not imply causation)
-に関して説明する。

-

下の図は、2017年の家計調査・気候データから作成した散布図で、
-千葉市での平均気温と、しめじの消費支出の間の相関を示している。

-

生産量と平均気温の間に、強い負の相関が見て取れますが、これはどうしてでしょう?
-「寒い季節には鍋が食べたくなるから」と言われるとふむふむと感じる一方で
-「そもそも生産量が冬に多く、市場に出回る量が多いから」と考えることもできる。
-したがって、このデータを見ただけでは、しめじが冬によく売れる理由までははっきりとは分からない。

-

事実、しめじの旬はGoogle検索によると9月下旬から11月初旬とのことで、
-最も売れている時期(12月1月)とは少し時期にズレがあり、
-購買意欲は必ずしも”旬”によって決まっている訳ではなさそうな印象を受ける。

-

気温と特定の野菜の購買意欲の真の関係を知りたければ、
-「その野菜はビニールハウスなどの生産設備の向上で年中、安定した味で生産ができる」
-「比較的新しい品種で〇〇といえば秋、のような固定観念がない」
-「季節ごとの生産量がほぼ同じ」
-など、他の条件が揃った状況下で比較しなければ確度の高い議論は難しい。

-

このように、因果関係を紐解くことは、我々が思うほど容易ではなく、それ自体が一つの学問分野になっている。
-気になる方は、たとえば”因果推論”で調べてみよう。

-

疑似相関をまとめたおもしろいサイト
-のように顕著な例ならば「あぁ疑似相関だな」と気がつくが
-我々が普段見ている情報の中には、擬似相関であるとひろく認識されていない情報もあるはずだ。
-物事の因果関係を断定するような言説に対しては一歩引いて見る姿勢も重要なように思う。

-
-
-
-

6.2. 回帰分析

-

以下では自分が立てたモデルを表現する関数のことをモデル関数
-モデル関数とデータとの齟齬を最小化するようにモデル関数の係数を決定することを回帰
-そして回帰に基づく分析を指して回帰分析と呼ぶことにする。

-

データとモデル間の齟齬を表現する方法はいくつかあるが、
-以下では最もポピュラーな誤差の二乗和を採用することとし、
-その最小化を考える(最小二乗法とも呼ぶ)。 -データや関数、最小二乗法をもう少しきちんと定義しよう。

-

\(D\)個の点\(\{x_1,x_2,...,x_D\}\)でのyの値\(\{y_1,y_2,...,y_D\}\)が観測されているとき、
-最小二乗法とは、ある決められたモデル関数\(f(x)\)との齟齬\(\chi^2 = \sum^D_{i=1} (y_i - f(x_i))^2\)
-最小化するように関数\(f\)の係数を調整すること。

-

\(f\)自体をどう決める/設計するかも重要な話題だが、この授業では深入りしない。
-たとえば回帰を行う関数として、ニューラルネットワークを採用する立場を採ることも可能。
-参照: おまけのノートブック: ニューラルネットワークによる回帰

-

以下では、\(f(x)\)として単純な多項式のみを考えることにする。
-まず回帰を学ぶために、適当なデータを生成しておく。

-
-
-
"""
-0,1で定義された区間でsample_size(int)個の点で
-sin関数に正規乱数に従う誤差を加えた値を返す関数。
-- sample_size: データの数
-- std: standard deviation (標準偏差σ)
-"""
-def create_toy_data(sample_size, std):
-    x = np.linspace(0, 1, sample_size)
-    t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape)  
-    return x, t
-
-#私と皆さんで結果が変わらないよう乱数のseedを固定
-#randomモジュールの関数を使うときはrandom.seedを、
-#numpyのrandom関数を使うときはnp.random.seedを用いる
-np.random.seed(1234) 
-
-x,y = create_toy_data(10,1.e-1) 
-
-
-
-
-

これをグラフにしてみると…

-
-
-
fig = plt.figure(figsize=(10,4))
-ax = fig.add_subplot(111)
-ax.set_xlabel("x"); ax.set_ylabel("y")
-ax.scatter(x, y, facecolor="none", edgecolor="b", s=50, label="Data")
-ax.legend()
-plt.show()
-plt.close()
-
-
-
-
-

こんな感じ。

-

このデータを、\(p\)次元の多項式(p=0,1,2,…)を最適化することを考えてみよう。
-\(p\)次式(\(p\)次元多項式)は、\(p+1\)個の係数, \(a_0\)から\(a_p\)を使って -\(a_0 + a_1x + a_2x^2\cdots +a_p x^p \)と書くことが出来る。

-

上で定義した最小二乗法は、この関数と各データ点の齟齬が二乗誤差を最小にする係数\(a_0,a_1,...,a_p\)を求めることに相当する。

-

\(p\)次元の多項式の最適化は、実はnumpyにある関数polyfit()を利用すれば簡単に実行できる。
-他にもscikit-learnなどのライブラリもより高度な関数のフィッティングが可能。

-
-

\(\clubsuit\)進んだ注:
-多項式で回帰を行う場合には、実はパラメータの最適解は”閉じた形”で与えられる。
-この辺りのことは、おまけのノートブック:ベイズ線形回帰で詳しく書いています。
-なお”閉じた形”というのは、数学や物理をやっていると出てくる表現で、答えが具体的な形で書き下せる、程度の意味。
-たとえば 行列\(A\)、ベクトル\(\vec{x},\vec{y}\),スカラー\(\lambda\)について方程式\(A\vec{x}=\lambda \vec{y}\)が成り立つとき、
-\(A\)の逆行列をどうやって求めるか(数値的にやるのか解析的に求めるのか)はさておき、
-\(\vec{x} = \lambda A^{-1}\vec{y}\)と書き直せるので
-「\(\vec{x}\)は閉じた形で与えられる」と言ったりもする。

-
-
-

6.2.1. polyfit/poly1d関数

-

たとえば今のデータを3次式でフィットしたければ、以下のようにする。

-
-
-
## 多項式をplotするためのxの値を準備(グラフをなめらかにするために、0から1までの間の500点を等間隔に取る)
-xp = np.linspace(0, 1, 500) 
-
-#多項式の次元pを決める. 今は3次式.
-p=3 
-
-#polyfit関数で最適化し、返り値(係数)を取得する
-coeff = np.polyfit(x, y, p) 
-
-#最適化された係数と、1次元入力xに対する多項式を計算してくれるpoly1d関数を用いて描画点xpでのモデル関数の値を計算する。
-yp = np.poly1d( coeff )(xp)
-
-print("係数",coeff)
-
-
-
-
-

np.polyfit(x, y, p)では、データのx,yの値と多項式の次元pを引数として与え、
-\(p\)次の多項式でデータ\((x,y)\)をfitしなさい(\(p\)次までの係数を関数がデータと整合するように”最適化”しなさい)
-という指令を与えている.

-

np.poly1d( np.polyfit(x, y, p) )(xp)では、
-fitしたp次元の係数をもつ多項式にxp(今は500点)を代入して、対応するyの値を返す。
-上のコードはこの返り値をypという変数に格納している。

-

最後に、調整(最適化)された3次式の係数を表示してみた。
-ちなみに、表示される係数は次数が高いところから\(a_3,a_2,a_1,a_0\)です(ややこしい…)。

-

グラフを描いてみるとこんな感じ。

-
-
-
#お絵かき
-fig = plt.figure(figsize=(10,4))
-ax = fig.add_subplot(111)
-ax.set_xlabel("x"); ax.set_ylabel("y")
-ax.scatter(x, y, facecolor="none", edgecolor="b", s=50, label="Data")
-ax.plot(xp, yp,label="p=3")
-ax.legend()
-plt.show()
-plt.close()
-
-
-
-
-

さて、\(p\)次の多項式は\(p-1\)次の多項式を特別な場合として含むため、
-一般に\(p\)(多項式の次元)を増やせば、より複雑な関数を表現することができる。
-(2次式は3次式の\(a_3=0\)の場合ですよね?)

-

\(p\)を複数変えながら比較した図を作ってみよう。
-その方法は、\(p\)に関するループを回すだけ。

-
-
-
ps = [0,1,3,6,9]
-xp = np.linspace(0, 1, 500) 
-
-# 各pでのfitの結果(xpでの対応する値のリスト)をysに入れ子のリストにしていく
-ys = []
-for p in ps:
-    ys += [np.poly1d(np.polyfit(x, y, p))(xp)]
-
-# データのは以後にある"真の関数"(本当は知り得ない)の値をxpの各点で計算
-ytrue = np.sin(2*np.pi*xp) 
-
-# お絵かき
-fig = plt.figure(figsize=(12,5))
-ax = fig.add_subplot(111)
-ax.set_xlabel("x"); ax.set_ylabel("y")
-ax.scatter(x, y, facecolor="none", edgecolor="b", s=80, label="Data")
-for i in range(len(ps)):
-    ax.plot(xp, ys[i],label="p="+str(ps[i]),alpha=0.8)
-ax.plot(xp,ytrue,linestyle="dotted", label="True",color="k")
-ax.legend(loc="upper right")
-plt.show()
-plt.close()
-
-
-
-
-
-

注: 今の場合、データはsin関数に適当なノイズを足して作られている。
-解析の手法を学ぶ際には、このように答えを知っている状態からはじめて、
-手法がうまくデータを説明しているかどうかを検証したりする。
-一見ズルっぽいが、理論を理解したりプログラムで確認するためには重要なプロセスとなる。

-
-

現実のデータ解析の状況では、背後にある”真の関数”が分かっていることは非常に稀で、
-「興味のあるデータが、人間がよく知っている単純な式(有限次元の多項式や指数関数)で
-完全に表現できる道理はない」ということも抑えておくべき重要な点となる.
-真の関数というのは一般に[神のみぞ知る]で、
-人間ができることは、出来るだけ尤もらしい関数を見つけ、
-その背後にあるメカニズム(の主要部分)を解明することと言える.

-

一般に、関数をどんどん複雑なものにしていくにつれて、関数の表現力(表現できるデータの幅)は大きく拡がる。
-その一方で、用意した関数がデータに過度に適合するあまり、
-未知の点での値の予測精度(汎化性能)が著しく損なわれている危険性がある。
-このことを予言能力がない(データに過適合している) と言う。
-データの背後にあるメカニズムが何かを考えたり理論的な解析をして初めて、
-回帰に用いる関数の妥当性が検証できるという点に注意しよう。

-
-
-

6.2.2. \(\clubsuit\) モデルの複雑さとモデル選択

-

上の多項式回帰では、たとえば9次式はデータをピッタリと再現している一方で
-真の関数(sin関数)の振る舞いよりもむしろ、測定誤差のようなものにまで過適合してしまっている。

-

ここで過適合を防ぐためにデータとの整合性(二乗誤差)だけでなく
-モデルの複雑さも定量化し、なるべく複雑すぎない関数が選ばれるよう勘定することを考える。

-

ここではこのモデルの複雑さ\(C\)として多項式の係数の絶対値の2乗和:
-\(C= \sum_i |a_i|^2\)を採用することにしよう。

-

さらに、”モデルを選択するための基準\(L\)”を
-\(L = \)(二乗誤差) + \(\lambda\) log10(モデルの複雑さ\(C\))で定量化し
-この\(L\)が最小になる多項式を採用することにしよう。
-(この選択はあくまで例であることに注意)

-

各次数での多項式のモデルの複雑さ\(C\)と二乗誤差、そしてモデル選択基準量\(L\)を表示してみると…

-
-
-
def complexity(r):
-    return np.sqrt(np.dot(r,r))
-def my_criteria(comp,err,lam=1.0): #lambda=1.0
-    return err + lam * np.log10(comp)
-
-for p in ps:
-    coeff = np.polyfit(x, y, p)
-    diff = np.poly1d(np.polyfit(x, y, p))(x) - y
-    chi2 = np.dot(diff,diff)
-    comp = complexity(coeff)
-    print("p",p, "モデルの複雑さ(log10)→", np.log10(comp),
-          "二乗誤差", chi2, "モデル選択基準量", my_criteria(comp,chi2))
-
-
-
-
-

9次式は、データをよく説明する一方で、非常に複雑なモデルになっている。

-

上記のモデル選択基準量\(L\)\(p=3\)で最小となるため
-この\(L\)の定義のもとでは3次式が選ばれることになる。

-

このように実際のデータ分析や機械学習などのモデル選択では、
-既知のデータの記述能力(二乗誤差の最小化)とモデルの複雑さの低減(過適合を避ける)との
-トレードオフでモデルを選択することが多い。

-

上の\(L\)の定義中の\(\lambda\)の大きさを変えることは
-データとの整合性を高める/モデルの複雑さを抑える
-のどちらを重視するかの”度合い”を決めることに相当する。
-(\(\lambda\)を適当に変えてみよう)

-

参考→正則化でググってみよう.

-
-
-

6.2.3. (余談1) 100メートル走のタイム

-

予言能力がないモデルとして、以下の例を考えてみよう。

-
-
-
y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ]
-x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ]
-
-fig = plt.figure(figsize=(12,3))
-ax = fig.add_subplot(111)
-ax.set_xlabel("year"); ax.set_ylabel("Mens 100m")
-ax.scatter(x,y,marker="o",color="red")
-plt.show()
-plt.close()
-
-
-
-
-

図にしたのは、男子100mの世界記録の推移.
-このデータに対して「\(p=3\)の多項式でフィットして予測する」という立場をとってみる。

-
-
-
xp = np.arange(2020,2101,1)
-fig = plt.figure(figsize=(12,6))
-ax = fig.add_subplot(111)
-ax.set_xlabel("year"); ax.set_ylabel("Mens 100m")
-ax.set_xlim(1960,2100)
-ax.set_ylim(0,12)
-for p in [3]:
-    yp = np.poly1d(np.polyfit(x, y, p))(xp)
-    ax.plot(xp,yp,marker="x",label="p="+str(p))
-ax.scatter(x,y,marker="x",color="red")    
-ax.legend(loc="upper right")
-plt.show()
-plt.close()
-
-
-
-
-

2080年代には100m走のタイムがゼロになってしまうおかしな予測だと気がつく。

-

今の場合、我々はこのデータが100走の世界記録のタイムの推移であること、つまり

-
    -
  • 非増加関数であること

  • -
  • 必ず正の値であること

  • -
-

など、データが持つべき性質を予め知っているので、
-「このデータに対して単純な多項式回帰を当てはめるのはおかしい」
-と気がつくことが出来る。

-

でも、他のデータではどうでしょう?

-

データを分析するためには、データの値だけをみて闇雲に分析するだけではダメで、
-データの背景やドメイン知識が不可欠である、という好例。

-
-
-

6.2.4. (余談2) 新型コロナウイルス感染症の陽性者数の推移に関して

-

我々が現実世界で観測することのできる種々の”値”というのは、
-何らかの関数\(f(x)\)の、ある\(x\)での(実現)値と言える。

-

コロナウイルスの感染者数の推移は日付に対する関数として示される事が多い。
-日付に対して陽性者数の推移をプロットして変動の予想を立てることは簡単だが、
-コロナウイルスの感染者数の推移も単なる時間に対する1変数の関数であるはずなどがなく、
-たとえば検査数や我々の外出自粛や”空気感”、国・都道府県ごとの取り組み・政策、
-ウイルスの変異,その他様々な要素に左右される。

-

我々人間がグラフにして理解できるのはたかだか3次元(3つの変数がある状況)まで。
-言い換えれば、人間は物事を理解するときに本来D次元(D>>3, Dは3よりずっと大きい)の変数で定義される関数を
-3次元以下に射影した「影」をみて理解しようとする生き物だということは意識しておくべきだろう。

-

緊急事態宣言が出され報道が加熱していた頃には、安易な感染者数予測で危険を煽ったり、
-あるいは逆に「心配する必要がない」などと極端な主張をする人が数多く現れた。
-また事態が収束したあとに「私のモデルはこんなに正しかった」という人も現れることだろう。
-だが、それは極めて高い蓋然性で偶然だろう。
-無限の数の関数を考えれば、データに適合するものが存在してもおかしくはない。
-何にでも言えることだが、モデルを立てて終わり、ではなく検証し続ける姿勢が重要。

-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter7_Optimization.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter7_Optimization.html deleted file mode 100644 index 4620b3ba..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter7_Optimization.html +++ /dev/null @@ -1,36497 +0,0 @@ - - - - - - - - 7. 最適化問題の基礎 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

7. 最適化問題の基礎

-

[この章の目的] -最適化問題のイメージを掴み、一次元の単峰的な関数の最小値を探索できるようになる。

-

種々のデータ解析や学術的分野での計算をはじめ世の中の多くの問題は最適化問題に帰着される.
-最適化問題とは、大雑把に言えば「ある量の最小値/最大値とそれを与える変数/パラメータの値を知ること」と言い換えられる.

-

「人生も、何らかの目的関数\(f(x)\)(一般に\(x\)は多次元),たとえば幸福感(不幸感)を最大化(最小化)すること
-という意味では、最適化問題を考えていることに相当する」というと少し大げさでしょうか。

-

この章では、最適化の基礎について学んでいくことにしよう。
-授業では実際に最適化で必要な数学的な操作をするコードを作ったりする訳ではないが
-「ライブラリに入れてポンッ」ではなく、背後にあるモチベーションや概念を理解しておくことは
-自分が興味のある問題を最適化問題に帰着させて解くためには不可欠だ。

-

※高校で微分を勉強していないという方に向けて末尾に数学的準備の項を設けてあるのでチェックしてください.
-(よく知っているという方もさっと目を通してみてください)

-
-

7.1. 考えたい問題のイメージ

-

以下で考えたい問題のポンチ絵

- -
-

あなたは変数\(x\)のある特定の点\(t\)での関数値\(f(t)\)を観測して知っている。
-また、図中に緑の線で示したような\(f(x)\)の振る舞いを予め知ることはできず
-都度\(x\)を変えて調べることで初めて対応する\(y\)の値が分かる
状況を考えよう。
-(そのことを点線で表現しています)
-このとき、\(x\)を変えながら\(f(x)\)が最小となる点を探すには一般にどうすればよいだろうか?

-
-

変数が2次元(やそれ以上)の場合も、
-(実際上の難しさが違うとはいえ)基本的なアイデアは同様なので、
-以下では1次元の場合のみ扱うことにする.

- -
-

さて、1次元の場合に話を戻して…(図を再掲)

- -

\(x\)の値を\(t\)から更新していく方法として、色んな方法が考えられる。たとえば…

-
    -
  1. ランダムに探索する(例:サイコロを振って、目が1-3なら\(x\)を適当な値だけ減らし出目が4-6なら\(x\)を増やしていく)

  2. -
  3. xを適当な区間に分割(10等分,100等分, etc.)その点で値を調べる

  4. -
-

などが考えられる。

-

ただし\(x\)が薬品の濃度で\(f(x)\)が薬品の副作用だとしたとき(※)には、
-\(x\)を変えて\(f(x)\)の値を調べると言っても限界がある。

-

※「1変数の関数であるはずがない」ことは一旦忘れることにして、イメージしやすいようこの例にした

-

1.の方法では、同じところを何度か行き来するので明らかに無駄が多いし、
-2.の方法では分割が少なすぎると十分な精度で最適解が見つからない
-かといって分割が多すぎるとコストがかさむ

-

したがって、できるだけ少ない試行回数で最適な値を見つける効率のよい探索方法が必要となる。
-そこで重要なのが、\(x\)を変えたときに関数\(f(x)\)がどのように変化するか、つまり微分(勾配)の情報である。

-

注意
-そもそも\(f(x)\)の式の形がわかっていて\(f'(x)=0\)となる(つまり極値を持つ)\(x\)の値が計算できるのなら
-わざわざ\(x\)を更新するなどという手続きは必要ない。
-一般の問題では、関数やその勾配がそもそも書き下せなかったり
-極値を与える\(x\)(\(f'(x)=0\)の解)を解析的に解けなかったりする。
-そんなときは以下で考えるような、\(x\)を更新した探索が必要となる。

-
-
-

7.2. 最も基本的な最適化手法: 勾配法

-

*以下では、微分の値のことを指して[勾配]と呼ぶことにする.

-

さて、上の一次元の例をもっと簡略化することにして、単峰的(つまり1つしか谷が無い)場合を考えてみよう。 -

-

この様な場合、斜面の傾きに沿ってパラメータを更新していけばいずれ\(f(x)\)の最小値が見つかりそうだ。
-点\(x=t\)での勾配は(あえて)偏微分で書くと\(\frac{\partial f(x)}{\partial x}|_{x=t}\)となる。

-

\(x\)の値を更新する際に、更新前の値を\(x_{old}\),更新後の値を\(x_{new}\)と書くことにすると、
-\(x_{new} = x_{old} -\eta \frac{\partial f(x)}{\partial x}|_{x=x_{old}}\) と更新する。

-
-

注) \(\frac{\partial f}{\partial x}|_{x=t}\)という表記に慣れていない方は、\(f'(x=t)\)のことと思って頂いて結構です

-
-

微分(傾き)が正の場合は、\(x\)を正に増やすと\(f(x)\)の値が増える
-微分(傾き)が負の場合は、\(x\)を正に増やすと\(f(x)\)の値が減る
-ことから、微分の値の前にマイナスがついている理由も納得できるかと思います。

-

最小化でなく最大化を考える場合はマイナス符号は不要で+となる。
-(上と同じように考えてみましょう)

-

上では、\(\eta\)という係数(正の値)を導入したが、
-これは傾いてる方向にどれくらいのスケールで\(x\)を更新するかをコントロールするパラメータで、
-機械学習などの分野で[学習率]と呼ばれるものに対応している。
-今の単峰的な関数の場合、学習率\(\eta\)は適当な値をひとつ選べば十分。

-

ただし、上の\(\eta\)が大きすぎたり小さすぎたりすると、なかなか効率的に\(f(x)\)の最適解を見つけられないことがある。

-

\(\eta\)が大きすぎると\(x\)の更新幅が大きすぎて谷をまたいでしまい、なかなか谷の底に落ち込まない、といったことが起こりえる.

- -

一方で\(\eta\)が小さすぎると、なかなか更新が進まず
-これまた効率の悪い探索となってしまう。

- -

これ以外にも、最初の図のように多峰的(山あり谷あり)な関数だと、
-\(\eta\)が小さいと局所的な谷に捕まってしまってなかなか大局的な谷にたどり着けない、
-かといって\(\eta\)が大きすぎるとあらぬ方向に飛んでいってしまう、といったことが起こりえる。

-

その様な場合にはもう少し”賢い”最適化の手法を応用したり、更新の幅を徐々に減衰させるなどの工夫が必要になる。

-
-

7.2.1. \(\clubsuit\)その他の最適化手法

-

勾配法の他にもたくさん問題に応じて最適化手法が用いられる。
-最適化を詳しくやろうとするとそれだけで半期の授業じゃ足りないくらいなので
-興味がある方は下記のキーワードなどで調べてみよう。

-

たとえば機械学習では、勾配の情報だけでなくそれまでの更新の履歴を活用した各種の最適化手法がよく用いられる。
-c.f. AdaGrad, Adam, etc.

-

また、物理学から着想を得た最適化手法もよく用いられる
-c.f. 焼きなまし法(Simulated Annealing)

-

最適化の手法自体に(広義の)機械学習の手法を使うこともあります
-c.f. ベイズ最適化(授業でも紹介します)

-
-
-

7.2.2. \(\clubsuit\)目的関数の選択

-

最適化問題を解く場合に最小化/最大化したい関数のことを目的関数と呼ぶ。

-

データ分析をする上で最もよく出てくる目的関数はカイ自乗(chi-square)で
-例えば回帰の場合、予測\(y_i\)と観測値\(f(x_i)\)との間の二乗誤差
-\(\chi^2 = \sum_i (y_i-f(x_i))^2\)といったように定義される。
-(データの数で割ったり平方根を取った値を採用することもある)

-

機械学習の文脈では「予測の誤差(損失)を最小化したい」というモチベーションがあり
-目的関数を損失関数/Loss functionなどと言ったりもする。

-

目的関数の選び方は問題によってまちまちで
-その選び方によって”最適なモデル”も変わり得る、ということに注意しておこう。

-

たとえば、二乗誤差を考える際「正解が10のところを20と予測した場合」と
-「正解が1000のところを1010と予測した場合」とで二乗誤差の値自体は同じだが、
-データの数値に対する誤差が占める割合に着目すれば
-前者は2倍(100%)ずれていて、後者は1%しかずれていない。

-

このようにスケールの異なる量が出てくる状況下では
-目的関数(誤差関数, 損失関数, etc.)の定義で対数を取ったりする場合もある。

-
-
-

7.2.3. 簡単な例でのプログラム

-

下に凸な二次関数の最小値を、勾配降下法で求めてみよう. もちろん二次関数の場合は、極値を与える\(x\)の値は、
-プログラムを書くまでもなく平方完成で求められるが、目的は数値計算になれるためなので気にしないことにする。

-

\(f(x)=5x^2 -4x + 3\)とでもしましょう。
-\(x\)についての微分はもちろん\(\frac{df(x)}{dx}=10x -4\)になる。

-
-
-
def f(x):
-    return 5.0 * x**2 - 4.0 * x  + 3.0
-def dfdx(x):
-    return 10.0 * x -4.0
-
-
-
-
-

はじめに\(x=3.0\)にいるとして、\(\eta=0.2,0.05,0.01,0.001\)の4通りについて
-勾配降下法でパラメータを100回更新してみる。

-
-
-
step = 100
-etas = [0.2, 5.e-2, 1.e-2, 1.e-3]
-x_and_f = [ [] for i in range(len(etas))]
-for i in range(len(etas)): 
-    x = 3.0 #初期値
-    x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納
-    for tstep in range(step): # step回だけ更新を繰り返す
-        x = x - etas[i] * dfdx(x) # xnew = xold - eta * dfdx(at xold)になっている
-        x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納
-
-
-
-
-

アニメーションで見てみると… (少し実行に時間がかかります)

-
-
-
import numpy as np
-from matplotlib import pyplot as plt
-from matplotlib import animation, rc
-rc('animation', html='jshtml')
-cols = ["blue","green","orange","purple"]
-x = np.linspace(-6, 6, 100);y = f(x)
-
-fig_scatter = plt.figure(figsize=(10,5))
-plt.xlim(-4,4);plt.ylim(0,40)
-plt.plot(x,y)
-plt_scatter = []
-for nth in range(len(x_and_f[i])):
-    plot_obj = []
-    for i, eta in enumerate(etas): 
-        if nth == 0 :
-            tl = "eta="+str(eta)
-        else :
-            tl = ""
-        plot_obj += [plt.scatter(x_and_f[i][nth][0],x_and_f[i][nth][1], c=cols[i],label=tl,alpha=0.7)]
-    plt_scatter.append(plot_obj)
-plt.legend()
-plt.close()
-
-animation.ArtistAnimation(fig_scatter, plt_scatter, interval=100)
-
-
-
-
-
- - - - - -
- -
- -
- - - - - - - - - -
-
- - - - - - -
-
-
- - - -
-
-

グラフが描画できたら、再生ボタンを押してみてください

-

青(\(\eta=0.2\))は\(\eta\)が大きすぎて、谷を行ったり来たりしていることが分かる。
-一方で紫(\(\eta=0.001\))は小さすぎて、なかなか最適解にたどり着かない。

-

一般に考えたい関数に関して適切な\(\eta\)を前もって知ることはできず、
-関数*の振る舞いを見ながら試行錯誤することが必要になる。

-

*最適化したい量(損失関数と呼ぶ)の振る舞い

-
-
-
-

7.3. 勾配の計算について

-
-

7.3.1. 解析的に微分が計算できる場合

-

たとえば以下の例のように
-例1: \(f(x)= \sum^p_{i=0} a_i x^i\) (多項式)
-例2: \(f(x)= \exp{(-ax^2+bx+c)}\) (指数関数)
-例3: \(f(x)= \ln{x}\) (自然対数)

-
    -
  • \(f(x)\)が閉じた形で書き下せる

  • -
  • 興味のある区間(定義域)で微分形が計算でき、有限の値を持つ場合

  • -
-

\(x\)をその微分した表式に代入することで勾配法の実装が可能となる.
-([有限の値をもつ場合]と限定したのは、微分が発散してしまうとパラメータの更新には実用上意味をなさないため)

-

ちなみに導関数\(f'(x)=0\)の解(根)が手で計算できるなら数値計算する必要がないし、
-根を求めたいだけなら、勾配法を使う理由は(アルゴリズムの理解等の目的を除いて)特に必要ない。

-

※最も単純な求根アルゴリズムであるニュートン法についての説明についてはおまけのニュートン法の章に記載がある。

-

大量の関数を考えて微分した表式が必要な場合は、
-いちいち関数の微分形を導出してコードにするのは面倒なので、
-SympyなどのモジュールやMathematicaなどのツールを使うのも一つの手です.

-
-
-

7.3.2. 数値的に勾配を計算する場合

-

\(f(x)\)が具体的な\(x\)の形で書き下せない場合もある.

-

たとえば「\(f(x)\)が条件\(x\)のもとで行った何らかの測定結果である場合」などがこれにあてはまる。

-

より具体的な例をあげるなら、 -あなたはとある医療薬品の効果(数値で表現できると仮定)を調べる研究をしているとして、
-温度\(x\)を変えながら何回か測定して\(f(x)\)の値を得るような状況を想像してください.

-

このような場合、関数\(f(x)\)の具体的な表式がわからないので、勾配だって\(x\)に対する式として書き下すことはできない。

-

しかし、微分の定義に立ち返って考えてみると、
-\(f(x=a)\)の値と、\(x=a\)から微小量\(\delta\)だけ動かした場所での値\(f(a+\delta)\)
-がわかっていれば\(f'(x=a)\)を”近似的に”計算することができる。

-

ただし、\(\delta\)があまり小さくないと下の絵のように正しく勾配が計算できない一方で、\(x\)を調整する精度に限界があったり、勾配を計算する際のコンピュータの数値精度には限りがありますので、文字通りの意味で”無限に小さい”の\(\delta\)を考えることはできず、有限の小さな値で\(\delta\)を表現することになり、それにより数値計算に大きな誤差が紛れ込む危険性もある。

-

\(x\)を動かしたときの関数の変動度合いがものすごく大きい(たとえば係数がめちゃくちゃデカイ)と、数値微分の精度は\(\delta\)に対する依存性が強くなってしまう。

-

-

解析的に微分ができる関数を使って、数値微分の簡単な例を示しておこう。

-

関数\(f(x)= x^4 - 3x^3 + 2x - 1\)\(x=5\)で微分した値\(f'(5)\)は定義から277となるが、
-\(x=5\)から\(\epsilon\)だけずらした点での値を使って数値微分してみると

-
-
-
def f(x):
-    return x**4 - 3.0* x**3 + 2.0*x -1.0
-def fp(x,eps):
-    return (f(x+eps)-f(x))/eps
-x=5
-exact_fp = 277 
-for p in [0,-1,-2,-4,-5,-10,-15]:
-    eps = 10**p
-    print("eps\t",str("%5.1e" % eps), "\tf'("+str(x)+")\t", str("%18.13f" % fp(x,eps) ),
-          "\t diff.",str("%5.1e" % np.log10(abs(fp(x,eps)-exact_fp))))
-
-
-
-
-
eps	 1.0e+00 	f'(5)	  400.0000000000000 	 diff. 2.1e+00
-eps	 1.0e-01 	f'(5)	  287.6709999999986 	 diff. 1.0e+00
-eps	 1.0e-02 	f'(5)	  278.0517009999926 	 diff. 2.2e-02
-eps	 1.0e-04 	f'(5)	  277.0105001695811 	 diff. -2.0e+00
-eps	 1.0e-05 	f'(5)	  277.0010499943965 	 diff. -3.0e+00
-eps	 1.0e-10 	f'(5)	  277.0002538454719 	 diff. -3.6e+00
-eps	 1.0e-15 	f'(5)	  227.3736754432320 	 diff. 1.7e+00
-
-
-
-
-

となり, \(\epsilon=0.01\)程度では微分の値の誤差が1, \(\epsilon=\) 1.e-5でも2桁程度の精度しかない。

-

一番小さい\(\epsilon=\)で精度が逆に悪くなっているのは、
-あまりに小さい\(\epsilon\)だと\(f(x+\epsilon)-f(x)\)という引き算部分で数値誤差が発生し、
-さらに分母の小さな\(\epsilon\)によってそれが増幅されるため。

-

進んだ注)
-中心差分という、分割する区間を中央をxに揃える方式だと、精度が若干改善される。
-このことは、テイラー展開から示すことができる→参考

-
-
-
def fp2(x,eps):
-    return (f(x+0.5*eps)-f(x-0.5*eps))/(eps)
-
-print("分割する区間の中央をxに揃える方式")
-for p in [0,-1,-2,-4,-5,-10,-15]:
-    eps = 10**p
-    print("eps\t", str("%5.1e" % eps), "\tf'("+str(x)+")\t",str("%18.13f" % fp2(x,eps) ),
-          "\t diff.",str("%5.1e" % np.log10(abs(fp2(x,eps)-exact_fp))))
-
-
-
-
-
分割する区間の中央をxに揃える方式
-eps	 1.0e+00 	f'(5)	  281.2500000000000 	 diff. 6.3e-01
-eps	 1.0e-01 	f'(5)	  277.0424999999986 	 diff. -1.4e+00
-eps	 1.0e-02 	f'(5)	  277.0004249999886 	 diff. -3.4e+00
-eps	 1.0e-04 	f'(5)	  277.0000000424488 	 diff. -7.4e+00
-eps	 1.0e-05 	f'(5)	  276.9999999827633 	 diff. -7.8e+00
-eps	 1.0e-10 	f'(5)	  276.9991169770947 	 diff. -3.1e+00
-eps	 1.0e-15 	f'(5)	  454.7473508864641 	 diff. 2.2e+00
-
-
-
-
-
-
-
-

7.4. \(\clubsuit\)その他の話題

-

冒頭にも書いたとおり、我々の身の回りにある多くの問題は最適化問題に帰着される。

-

もう少し細かいことをいうと、今回考えたような連続的な変数に対して
-最大/最小値を探索することは連続最適化と呼ばれ
-離散的な変数を含む離散最適化/組み合わせ最適化とは区別される。

-

組合せ最適化には、巡回セールスマン問題やナップサック問題などが含まれる。

-
-
-

7.5. 数学的準備: 微分

-

ある直線\(y=ax+b\)を考えたとき、直線の傾き\(a\)に着目すれば、
-\(x\)の増加分に対して\(y\)がどれだけ変化するかを知ることができる。

-

一方、実社会で扱うデータは、一般に直線よりも複雑な形をしていて、
-それを式で表現しようと思うと、様々な関数の形を考える必要がある。
-(たとえば何かの値の季節変動などをイメージしよう)

-

そこで、直線の場合の[傾き]を、直線以外の関数に”拡張”しようと考えるのは
-至って自然な発想といえる。それが微分の概念である.

-

微分(積分)の歴史は古く、人類史のどの時点でアイデアが確立したとするかは諸説あるが
-最も代表的なものは、17世紀にニュートンとライプニッツが確立したとする説で
-ニュートンは微分の概念を独自に定式化し、天体の軌道などを予測するなどの偉大な功績を残した.

-

以下の内容は、全学向けの授業ということもあって
-厳密性はかなり犠牲にして微分の概念を導入している
-(もちろん、大学の数学の教科書に載っている関数の連続性や微分の厳密な定義は非常に重要です).

-

時間があったら、ヨビノリたくみ氏の「中学数学からはじめる微分積分」を視聴していただけると、イメージがつくかと思います。

-
-

7.5.1. 微分の基本的な考え方

-

定義: ある変数\(x\)について関数\(f(x)\)が与えられているとき、
-関数\(f(x)\)\(x=a\)での微分を
-\(f'(a)=\lim_{\delta \to 0} \frac{f(a+\delta)-f(a)}{\delta}\)と定義する.

-

ここで、\(\lim_{\delta \to 0}\)は0に限りなく近い(無限小)の\(\delta\)を考えることを意味する。

-

つまり、関数をある点からちょこっとだけ動かしたときに、
-関数の値が変動する度合いがどれくらいかを表しています。
-上の定義は「無限小の幅で関数を直線で近似して傾きを計算している」とも言いかえられるでしょう。

-

直線の例
-\(f(x) = ax + b \)\(x=x_1\)での微分値は定義に当てはめて計算すると
-\(f'(x_1)= \lim_{\delta \to 0} \frac{f(x_1+\delta)-f(x_1)}{\delta}= \lim_{\delta \to 0} \frac{(a(x_1+\delta)+b)-(ax_1+b)}{\delta} = a \) となる。
-つまり微分の値は直線の傾きに対応していて、
-なおかつ微分の値はどこの場所(\(x\))で調べても定数\(a\)であることを意味している。

-

二次関数(放物線)の例
-\(f(x) = ax^2 + bx +c \) -の\(x=x_1\)での微分は、定義にならって計算すると -\(f'(x_1) = 2ax_1+b\)となる(確かめてみよう)
-一方で\(f(x)\)を平方完成すると\(f(x)=a(x+\frac{b}{2a})^2 -\frac{b^2}{4a} +c\)となり、
-\(x=-b/(2a)\)で傾きが0になる。
-つまりこの二次関数は\(x=-b/(2a)\)で極値(\(a>0\)なら最小値, \(a<0\)なら最大値)を持つ。

-

微分が0というのは関数の形がそこで谷や峠になっていることを意味する。
-実際上の例でも微分の値は\(x_1=-b/(2a)\)のとき、値は0になっている.

-

a=2.0,b=4.0,c=5.0とでもして、図をかいてみよう

-
-
-
from matplotlib import pyplot as plt
-import numpy as np
-xr = np.arange(-5.0,3.0,0.01)
-yr = 2.0 * xr**2 + 4.0 * xr + 5.0
-fig = plt.figure(figsize=(10,2))
-plt.plot(xr,yr)
-plt.show()
-
-
-
-
-../_images/Python_chapter7_Optimization_33_0.png -
-
-

確かに\(x=-b/(2a)=-1.0\)のところで極値(最小値)となっている。

-

微分の値もplotしてみると

-
-
-
xr = np.arange(-5.0,3.0,0.01)
-yr = 2.0 * xr**2 + 4.0 * xr + 5.0
-yp = 4.0 * xr + 4.0 
-fig = plt.figure(figsize=(20,4))
-axs = [fig.add_subplot(121),fig.add_subplot(122)]
-axs[0].plot(xr,yr,label="f(x)"); axs[0].legend()
-axs[1].plot(xr,yp,label="f'(x)");axs[1].plot([-5,3],[0,0],color="gray",linestyle="dotted");axs[1].legend()
-plt.show();plt.close()
-
-
-
-
-../_images/Python_chapter7_Optimization_36_0.png -
-
-

\(x<-1\)では\(f'(x)<0\)で、\(x>-1\)では\(f'(x)>0\)となっていますね。

-

これまでは、定義に即して微分の値を計算していましたが、毎回調べたい点で定義に立ち返るというのは面倒です。

-

関数が閉じた形で与えられているとき(つまり、\(f(x)\)\(x\)の具体的な表式で与えられているとき)
-多くはその微分\(f'(x)\)\(x\)の関数として書き下すことができます。

-

そうすれば、\(x\)に特定の値を代入すれば好きな点での微分の値\(f'(x)\)を知ることができます。

-

とりあえずは以下を公式的に抑えておけば問題は有りません。

-
    -
  1. \(x\)\(x\)に対する微分は1

  2. -
  3. \(a x^p\)\(x\)に対する微分は\(apx^{p-1}\) (\(a\)は非ゼロの定数)

  4. -
  5. \(\exp{(x)}\)(ネイピア数\(e\)\(x\)乗)の\(x\)に対する微分は\(\exp{(x)}\)

  6. -
  7. \(\cos{x}\)\(x\)に対する微分は\(-\sin{x}\)

  8. -
  9. \(\sin{x}\)\(x\)に対する微分は\(\cos{x}\)

  10. -
  11. \(\log{x}\)\(x\)に対する微分は\(1/x\) (x>0で定義される)

  12. -
-

いずれも、上の微分の定義や、指数関数/三角関数/対数関数の定義(c.f. マクローリン展開)から証明することができますので、興味があれば人生で一度はやってみてください。

-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter8_handling_files.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter8_handling_files.html deleted file mode 100644 index eb06dabe..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter8_handling_files.html +++ /dev/null @@ -1,1363 +0,0 @@ - - - - - - - - 8. ファイル・文字列操作 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

8. ファイル・文字列操作

-

[この章の目的] -text,csvやxlsx形式のデータをプログラムでサクッと扱えるようになる。

-

この章では、テキストファイルやcsvファイル(excelファイルはおまけ\(\clubsuit\))をPythonで操作する簡単な方法を学習する。

-

これまでの章では、データはリストとして既に与えられた状態から解析を行ったが、実際にデータを扱う際は
-既に誰かが作成した何らかのファイルをプログラムで読み込んで操作する場合も多い。
-この章の内容は、データ解析というよりは、Pythonでデータ解析をするための下準備に相当する。

-

愚直にコードを書いている事もあり少々泥臭い部分が多いが、この章のような操作のエッセンスを抑えておけば
-普通にやると膨大な時間がかかる様々な処理を高速化・自動化することができるので、頑張って学習しよう。

-
-

8.1. 授業で使うファイルの準備

-

予め以下のリンクをクリックして、ファイルをダウンロードし、
-ご自身のGoogle Driveにアップロードしておいてください。

- -

本章では、ファイルの場所を指定するパスという概念がたびたび登場する。 -以下のコードをそのまま使いたいという方は、マイドライブ直下にAdDSというフォルダを作り、さらにその中にchapter8_dataというフォルダを作成し、ファイルをいれてください。

-

パスについては後の節で詳しく説明します(今気になる方は末尾をチェック)。

-
-
-

8.2. テキストファイルの操作

-

膨大な行のテキストファイルに対して、人間が手で操作をするというのは時として非現実的です。

-

誤変換を置換するくらいなら、どのテキスト/メモ帳アプリやwordでもできますが、 -全行(数千とか数万)に対して、決まった操作が必要な場合、プログラムにしてしまったほうが遥かに便利です。

-

以下ではGoogle DriveのマイドライブのAdDSの下に作ったchapter8_dataというフォルダにファイルを保存したと仮定して話を進めますので、適宜皆さんの場合に置き換えて使用してください

-

まずはgoogle driveに保存したtest.txtという名前のファイルを読み込んでみましょう。
-既に何回かやったようにgoogle driveをマウントします。

-
-
-
from google.colab import drive
-drive.mount('/content/drive')
-
-
-
-
-

注意 以後のコードは、google driveの中にあるファイルを読み書きしたりといった操作を行うため
-上でGoogle Driveをマウントした状態でなければ実行しても多くがエラーとなる。

-
-

Google Driveのマウントができたら、先程のファイルがあるかlsコマンドで確かめてみよう。

-
-
-
!ls /content/drive/MyDrive/AdDS/chapter8_data/*
-
-
-
-
-

*はワイルドカード記号で、対象を任意とする命令に相当します。
-*.拡張子 などとして使うのも便利です。

-

ファイルが見つからない場合は

-
-

No such file or directory

-
-

などと表示される。

-
-

\(\clubsuit\) 上のファイルをGoogle Driveに保存する方法としては
-一度ローカルに保存したファイルをブラウザなどからアップロードする方法はもちろん
-全てを(Linux)コマンドで行うこともできる。

-
-
!git clone https://github.com/SotaYoshida/Lecture_DataScience
-!mkdir /content/drive/MyDrive/AdDS/
-!mv Lecture_DataScience/Chapter8_data /content/drive/MyDrive/AdDS/chapter8_data
-!ls /content/drive/MyDrive/AdDS/chapter8_data
-
-
-

1つめの行ではまず授業資料のGitHubレポジトリをColab環境で間借りしているgoogleのサーバー上にクローン(≒コピー)する。2行目でマイドライブの下にAdDSというフォルダの作成を試み、3行目でダウンロードしてきたレポジトリにあるChapter8_dataをさっき作ったAdDSというフォルダの中に別名(先頭が小文字になっている)で移動する。 -最後に、どんなファイルがあるかをlsコマンドで確認している。
-重複する作業も多いのでこれらのコードはコードセルには書かなかったが、うまくアップロードできなかった場合やコマンドラインによるファイルの移動などをやってみたければ上の4行のコードをコードセルに貼って試してみよう。

-
-
-
!ls /content/drive/MyDrive/AdDS/chapter8_data/*txt 
-
-
-
-
-

とするとマイドライブ/AdDS/chapter8_data/にある.txt形式のファイル一覧を表示させることができる。
-test.txtが見つかったでしょうか?(DriveにアップロードしてColabから読み込みできるまでに少し時間がかかる場合がある)

-

では次に、このファイルに書かれているテキストを取得してみよう。
-方法は幾つかあるが、最も標準的なものとして、ファイルを開いてテキストを取得する方法を試してみよう。

-
-

8.2.1. テキストファイルを開いて内容を読み出す

-
-
-
filename = "/content/drive/My Drive/AdDS/chapter8_data/test.txt" 
-inp = open(filename,"r")
-lines = inp.readlines()
-inp.close()
-
-
-
-
-

1行目でファイル名(正確にはファイルのパス)を指定しfilenameという変数にした。

-

2行目では、指定したパスにあるファイルを開いている。
-今はファイルに書き込むのではなく、既にあるファイルを開いて読み込むので"r"というオプションを指定している。
-他には"w"(書き出し,上書き), "a"(書き出し,追記)などがあり、新しく上書きでファイルを作成したい場合は"w",すでにあるファイルの内容は消さずに追記したい場合は"a"を指定して使う。

-

3行目では、inp(ファイルをopenして得たオブジェクト)に対してreadlinesという操作を適用している。 -これは、ファイルに書かれているテキストを(可能なら)全行に渡って読み込みメモリにストアする関数になっている。

-
-
-
print(lines)
-
-
-
-
-

とすると、全ての行が読み込まれ、変数linesに格納されていることがわかる。ここで\nは改行記号を意味する。

-

ループを回して一行ずつ表示させると

-
-
-
for line in lines:
-    print(line)
-
-
-
-
-

といった感じ(行ごとにスペースが生じている理由については後で説明します)。

-

必要な行番号が分かっている場合は、nlines = lines[2:10]などとして、要らないところは捨てても良い。(リストのスライスについては2章を参照)

-

次に、もう少し具体的なテキスト操作をしてみよう。
-まず、上の1行ずつ表示するコードでは、改行コードを明示的に含む文字列を一行ずつ表示したため、改めてprintすると余分なスペースが空いてしまう。
-(print関数はデフォルトで末尾に改行\nを挿入するのでファイルにある改行記号とあわせて2回改行してしまう→参考リンク)

-
-
-

8.2.2. strip関数

-

たとえばstrip()関数を使うと、文字列に含まれる空白、タブや改行コードを消去することができる。

-
-
-
a = "test character\t"
-b = "test2 \n"
-print("a", a, "←タブが隠れている")
-print("b", b, "←改行される")
-### strip関数をもちいて...
-print("a.strip()", a.strip(),"b.strip()",b.strip())
-
-
-
-
-

先程のforループでstrip関数を適用してやると…

-
-
-
for line in lines:
-    print(line.strip())
-
-
-
-
-

文字列の右側に空白や改行コードが入っていることが明確な場合は
-stripの代わりにrstripを使ってもOK(rstripのrはrightの意味)。

-
-
-
for line in lines:
-    print(line.rstrip())
-
-
-
-
-

ファイルによってはインデントをするために左側にタブ\tが含まれる場合もあります(PythonのコードをテキストとしてPythonから読むときなどがこれに該当)。そのような場合に左側にある空白やタブのみを取り除きたければlstrip()を使って取り除くことができる。

-

もちろんPythonではインデントが文法なので、インデントを一律で消す、といった操作は必要ないが、特定の状況では、lstripも使えると便利だ。

-

上のファイルの文字列で#記号を含む行以降だけが必要な場合はどうすればいいでしょうか?

-

最も単純(?)な実装は

-
-
-
hit = 0 #
-for line in lines:
-    if "###" in line:
-        hit += 1 
-        continue
-    if hit == 0 :
-        continue #hitが0の状態では何もしない
-    print(line.rstrip())
-
-
-
-
-

といった愚直な例が考えられる。 -つまり、#を含む行に到達するまでの行は無視して、それ以降の行だけをリストに格納するというもの。 -もちろん#を含む行が複数あるようなケースでは、自分が実現したい操作にあわせてコードを書き換える必要がある。

-

以下では、###dataまでの行が必要ないので、必要なところまでを別のリストに格納してしまおう。

-
-
-
hit = 0 #
-nlines = []
-for line in lines:
-    if "###" in line:
-        hit += 1 
-        continue
-    if hit == 0 :
-        continue #hitが0の状態では何もしない
-    nlines += [line]
-print(nlines)
-
-
-
-
-
-
-

8.2.3. split関数

-

また、1,2,3,4,5,6といったコンマやスペースで区切られたものをリストに格納したい場合には、split関数が便利。split関数は引数に何も指定しなければ、スペースや改行もしくはタブごとに文字列を区切ったリストを返す。

-
-
-
sample_text = "This is a\nsample\ttext."
-sample_text.split()
-
-
-
-
-
-
-
for line in nlines:
-    print(line.split())
-
-
-
-
-

カンマがあるときはカンマで分割する、という約束を表現したければ

-
-
-
for line in nlines:
-    if "," in line :
-        print(line.rstrip().split(","))
-    else :
-        print(line.rstrip().split())
-
-
-
-
-

などとすれば良い。これを利用すれば、空のリストにファイルから読んだ要素を詰めていくといった操作も実現できる。

-
-
-
# 数字とプロフィールの空リストを作り、そこに読み込んだものを詰めていく
-# その際に、数字のリストとプロフィールのリストを分けたいとする
-nums = [] 
-profs = [] 
-
-for line in nlines:
-    if "," in line :
-        nums += [ line.rstrip().split(",") ]
-    else :
-        profs += [ line.rstrip().split()]
-print("nums", nums)
-print("profs", profs)
-
-
-
-
-

上のnumsの様に、予め全ての要素が整数だと分かっていて整数に対する演算(四則演算など)を後でするのなら、str(文字列)型ではなくint型にしておくほうが良いこともあるだろう。

-
-
-
##リスト内包表記を使った実装
-nums = []
-for line in nlines:
-    if "," in line : 
-        tl =  line.rstrip().split(",")
-        nums += [ [ int(tmp) for tmp in tl] ]
-print("方法1:", nums)
-
-## map関数(後述)を使った実装
-nums = []
-for line in nlines:
-    if "," in line : 
-        nums += [ list(map(int, line.rstrip().split(",") )) ]
-print("方法2:", nums)
-
-
-
-
-
-
-

8.2.4. replace関数

-

replace関数で文字の置換が可能です

-
-
-
text = "abcdあいうえお"
-text = text.replace("abcd", "1234")
-print("置換や→",text)
-print("除去にも→", text.replace("4", ""))
-
-
-
-
-
-
-

8.2.5. \(\clubsuit\) map関数

-

map関数はmap(操作,対象)という風に使って、対象の各要素に対して一括で操作を適用することができます。
-今の場合、['1', ' 2', ' 3', ' 4', ' 5', ' 6']などの文字列のリストに対して、
-整数型に変換するint関数を作用させるという操作を一度に行います。

-
-

注: map関数の返り値はmap objectと呼ばれるものなので、
-元のようなリストの形で使いたい場合はlist()を使ってリストに変換するステップが必要です。

-
-

世の中には、アンケート結果や産業データなどがcsv(カンマ区切りのテキスト)ファイルで公開されている場合が多いですが、
-その場合は上で説明したような手順でリストなどに格納すれば今まで行ったような解析やグラフ描画が実行できるといったわけです。
-(もちろんcsvを読むのに便利なライブラリもありますが
-いろんな形式のファイルをプログラムで読み込む場合には
-上のような基本的な操作を組み合わせることも必要になります。)

-
-
-

8.2.6. テキストファイルの書き出し

-

次に、テキストファイルを書き込んで保存してみます。
-上の文字列で、敬称を”さん”から”様”に置換したテキストを作成して、それを別ファイルとして保存してみましょう。

-
-
-
filename = "/content/drive/My Drive/AdDS/chapter8_data/test_replace.txt" 
-oup = open(filename,"w")  ## oup は"output"の気持ち...
-for line in lines:
-    print(line.rstrip().replace("さん","様"), file=oup) # file=[openしたファイル]にすることで、printする先をファイルに指定できます。
-oup.close() #ファイルはきちんと閉じる.
-
-
-
-
-

Google Driveで、作成されたファイルをチェックしてみましょう。

-

なお、filenameに元ファイルと同じものを指定するとopen(filename,"w")を実行した時点で
-ファイルが上書きされて空ファイルになるので注意しましょう。

-

今の例ではもちろん、手で置き換えたりするほうが遥かに速いですがこうしたPythonによるファイル操作を覚えておくと

-
    -
  • ファイル自体が大量にあり、同じ操作を繰り返す場合

  • -
  • 単一のテキストファイルに大量の行に渡って情報がある場合

  • -
-

など、手作業が非現実的な様々な状況でも、楽ちんに作業を終わらせることができる(かもしれません)。

-

上の内容や、これまでに学習したループ処理を駆使すると、
-数万人のデータが1行ずつ記載されたテキストファイルから条件にヒットする人の
-情報だけを抽出して小さなファイルにまとめるといったことも可能です。

-

プログラミングを用いたファイル操作をする発想があるかどうかがきっとこの先
-皆さんの生き方や働き方に大きな影響を与えると私は考えています。

-
-

文字コードに関連した余談
-Windows環境で作成されたテキストファイルを扱う際は読み込みで、文字コードによるエラーが出るかもしれない。最近ではメモ帳でもUTF-8(世界標準)を採用しているよう(→MicrosoftのWindows blogの記事)だが、古いテキストファイルだとShift-JISになっているかも。そういうときは、open(file, "r", encoding = "shift_jis")など、ファイルを開くときにencodingを明示的に指定する必要がある。明示的にUTF-8で保存したいときはopen(file, "w", encoding = "utf-8")などとする。
-参考: 公式ドキュメント
-ここまで勉強してきた皆さんには「そんなの、パソコンに存在するShift-JISで書かれたテキストファイルを全てUTF-8に変換するPythonスクリプト書けばいいんじゃね?」という発想があることを期待しています。

-
-
-
-
-

8.3. csv,エクセルファイルの操作

-
-

8.3.1. アンケート分析

-

冒頭の二番目のファイルpython_handling_test.csvはあるアンケート結果をまとめたファイルになっています。

-

これは、Google フォームで作成したアンケーで、国数英社理(中学の5科目)に対する得意/苦手意識の調査を想定した疑似アンケートです。

-

このようなアンケート調査は事務作業や卒業研究などで頻繁に見られ、会社や大学など所属コミュニティで何らかの意思決定に用いられることも多いことでしょう。こうしたアンケート分析を行っていると、

-
    -
  • 各回答項目同士の関係が知りたい

  • -
  • 明示的な項目以外の情報も抽出したい

  • -
-

といった要望が出てきます。今の場合でいうと、

-
    -
  • 各科目ごとの得意・苦手意識の相関を調べたい

  • -
  • 夜中(あるいは日中)にアンケートを回答した夜型(昼型)の人に見られる特徴がなにかないか?

  • -
-

といったイメージです。そんなとき、

-
-

国語が得意(どちらかというと得意)と回答した方に質問です。
-英語についてはどうでしょうか?

-
-

などと新たに設問を増やしてアンケートをやり直すというのは得策では有りません。
-すでに得られた情報からさらなる情報を引き出すことを考えてみましょう。
-まずは、csvファイルに記載された情報を整理してプログラムで扱いやすくすることを考えます。

-
-

余談: このcsvファイルをExcelで開こうとするとお使いの環境によって文字化けを起こすかと思います。これはgoogleフォームで作成されたcsvファイルの文字コードが世界標準のutf-8を使用しているのに対し、ExcelがShift-JISという時代遅れな文字コードでcsvファイルを開こうとするためです。Googleのスプレッドシートや、Mac標準のNumbersで開くと文字化けしません。

-
-
-

2000件の回答は、もちろん私が手作業で入力したわけでも誰かに協力してもらったわけでもなく、一定のルール(傾向)を勝手に設定した上でランダムに回答を作成しフォームから自動回答するPythonスクリプトを書きました。
-時間に余裕があれば、こうしたWeb操作を自動化する方法も授業で扱います。 c.f. ブラウザ操作, Webスクレイピング

-
-
-
-
filename = "/content/drive/My Drive/AdDS/chapter8_data/python_handling_test.csv" #読み込むファイルのパスの指定
-
-
-
-
-

とりあえずファイルの中身を数行表示してみる。

-

csvファイル(コンマ区切りのテキスト)なので、テキストファイルと同じ方法をとる(他の方法ももちろんある)

-
-
-
inp=open(filename,"r")
-csv_lines=inp.readlines() 
-inp.close()
-print("行数は",len(csv_lines))
-for i in range(5):
-    print(csv_lines[i].rstrip())
-
-
-
-
-

ちなみに…pandasライブラリを使うとcsvをサクッと読み込むことができる

-
-
-
import pandas as pd 
-df = pd.read_csv(filename)
-print(df)
-
-
-
-
-

さて、csv_linesに格納したデータをもう少し扱いやすいように変更しよう。
-最初の0行目はどういうデータが入っているか(データの項目)を表している。
-1-2000行目には2000人分の回答が詰まっている。

-

これによると、

-
-

0列目: 回答した時刻
-1列目: 性別
-2列目: 国語
-3列目: 数学
-4列目: 英語
-5列目: 社会
-6列目: 理科

-
-

らしい。いろいろなデータの整理方法があると思うがここでは、

-
    -
  • 処理A 0列目の時刻を24時間表記にして表示する

  • -
  • 処理B 2-6列目の各科目の得意・苦手意識を、文字列を除去して数値[-2,-1,0,1,2]として扱う

  • -
-

をまずやってみよう。

-
-
-
#処理Aのための関数
-#input_strが、"年月日 時刻(h:m:s) 午前/午後 GMT+9" という文字列である、という文字列の[構造]を知った上での実装になっていることに注意
-def make_time_24h(input_str):        
-    time  = input_str.split()[1]
-    AMPM = input_str.split()[2]
-    hms = time.split(":")
-    h = int(hms[0])
-    if AMPM == "午前":
-        output_str = time 
-    else :
-        if h != 12:
-            output_str = str(h +12)+":"+hms[1]+":"+hms[2]
-        else:
-            output_str = str(h)+":"+hms[1]+":"+hms[2] # 12時xx分だけは別の取り扱いが必要
-    return output_str
-
-nlines=[] #整理したものをリストとしてまとめるための空のリスト
-for nth,line in enumerate(csv_lines[1:]): 
-    nline = line.rstrip().replace('"','').split(",") # 改行文字の除去、ダブルクォーテーションの除去, カンマで分割    
-    # この時点でnlineは0:時刻 1:性別, ...のリストとなっているはず print()でcheckしてみよう
-    # 処理A)
-    time = make_time_24h(nline[0])
-    #print("nline[0]", nline[0], "time", time)
-    M_or_F = nline[1] #性別
-
-    # 処理B)
-    points = [ int(nline[k].split()[0]) for k in range(2,7)] #各科目の値だけのリスト(points)を作成
-    # 上記をmap関数にしてみよう。
-
-    nline = [time, M_or_F]+points  #リストを連結(時刻,性別と各科目の値を同じ階層で結合)して、nlineという名前で上書き
-    nlines += [ nline ]
-
-    # うまく編集できたか400行おきほどでprintしてチェックしてみる
-    if nth % 400 == 0 :
-        print("編集前", line.rstrip())
-        print("編集後", nline)
-        print("")
-
-
-
-
-

最後に、各項目の得点を適当なリスト(あるいはnp.array)に整形しておけば、種々の分析を行うことができます。

-
-
-
import numpy as np
-points = [ [] for i in range(5)]
-for tmp in nlines:
-    for i in range(5):
-        points[i]+=[tmp[2+i]]
-print("points", np.array(points))
-print("各科目の平均スコア:", [np.mean(points[i]) for i in range(5)])
-
-
-
-
-

相関分析は以降の章で扱うので具体例は省略します。

-
-
-
-

8.4. \(\clubsuit\) 複雑なエクセルファイルの操作

-

kakei.xlsxはエクセルファイルで以降では、2020年度前期のデータサイエンス入門(一部学科を除く)の
-相関分析で使用されたエクセルファイル、kakei.xlsxを使用します。

-

以下では、上と同じディレクトリにkakei.xlsxを置いたと仮定して
-処理を行いますので、適宜ご自身の環境にパスを置き換えてください。

-

※もともとはxlrdというライブラリを使って実装していましたが.xlsx形式をサポートしなくなるとのことで、pandasライブラリを用いた実装に変更しました。

-
-
-
filename = "/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx" #読み込むファイルのパスの指定
-
-
-
-
-

まずはxlsxファイルをPythonで読み込んで、どんな”シート”があるのかを確認してみましょう。

-
-
-
import pandas as pd
-input_file = pd.ExcelFile(filename)
-sheet_names = input_file.sheet_names
-print("pandas: シート名",sheet_names)
-
-
-
-
-

たくさんシートがあることが分かります。

-

Sheet1の中身をのぞいてみましょう。まずは行と列の数を取得してみます。

-
-
-
Sheet1 = pd.read_excel(filename, sheet_name="Sheet1")
-print("行,列の数", Sheet1.shape)
-
-
-
-
-

0-5番目の行にはどんな値がセルに入っているのかな…と思ったら

-
-
-
for i in range(5):
-    print( list(Sheet1.iloc[i]) )
-
-
-
-
-

などとする。このように、扱いたいファイルの”構造”を知ることが
-やりたい操作を系統的に実行するための第一歩です。
-このエクセルを実際に開くとSheet1からSheet12までが複数都市の家計調査のデータで
-S1からS12までが気候データになっていて
-1-12までの数字が2017年の1月から12月までに対応していることが分かります。

-

実際のデータを触っていると「2006年までとそれ以降とでデータファイル(.xlsx)の”構造”が違う」
-といったことも出てきます。
-最初は特定のものに合わせたコードを作り、徐々に”汎用性の高い”コードにしていくのがよいでしょう。

-

このエクセルを使って実際に作業をするには、[細かいライブラリの使い方]などを説明することになるため
-授業ではやらず、以下の”おまけ”にいれておきます。この作業や実践DSに限らず

-
    -
  • 自分がやりたい操作をきちんと言語化する

  • -
  • 公式ドキュメントやWebから情報を探す

  • -
  • とにかく試してみる

  • -
-

という意識が重要です。

-
-

8.4.1. \(\clubsuit\)\(\clubsuit\)おまけ

-

以下のコードは、プログラミングの”ありがたみ”を感じてもらうためのお試し用です。
-(昔書いたかなり読みにくいコードなのであまり真剣に読まないでください.)

-

大量の画像ファイルをドライブに生成するので、以下を読んだ上で実行してください

-

以下のコードたちを何もいじらずに実行すると、
-全都市の月別平均気温と全品目の世帯平均支出のうち、
-相関係数の絶対値が0.9以上のもの(291通り)をプロットして画像として保存します。
-pthreの値を小さくすると、生成される画像の数がとんでもなく増えるのでやらないでください。

-

(0.9 → 291通り, 0.8 → 1234通り, 0.7 → 2871通り,
-0.6 → 5233通り, 0.5 → 8375通り, 0.0 → 32876通り)

-

Google Colab上で実行して291枚の画像が生成されるまでに80~150秒程度かかるようです。

-

この時間未満でエクセルで操作をして同様の処理を完了出来るという方は…おそらく地球上にいないでしょう(要出典)

-
-
-
# 画像がいっぱい生成されると面倒なので画像を保存するフォルダを作成しておく
-!mkdir /content/drive/MyDrive/AdDS/chapter8_data/kakei_cor_pic 
-
-
-
-
-
-
-
!pip install japanize_matplotlib 
-
-
-
-
-
-
-
import numpy as np
-import pandas as pd
-from matplotlib import pyplot as plt
-import japanize_matplotlib
-import time
-
-class ebook:
-    def __init__(self,inpf):
-        self.input_file = pd.ExcelFile(filename)
-        sheet_names = input_file.sheet_names
-        self.sname = sheet_names
-        self.ns = len(sheet_names)
-        print("pandas: シート名",sheet_names)
-        print("self.ns", self.ns)
-
-        s_kikou=[]; s_kakei=[]
-        for i, sheetname in enumerate(self.sname):
-            if "Sheet" in sheetname :
-                s_kakei += [ i ]
-            elif "S" in sheetname :
-                s_kikou += [ i ]
-        self.s_kakei,self.s_kikou = s_kakei,s_kikou
-    def indices(self):
-        return self.s_kakei, self.s_kikou
-    def readkakei(self,ikakei) :
-        ws = self.input_file.parse(sheet_name=self.sname[ikakei])
-        nr = ws.shape[0]
-        premode = True
-        items = []
-        for ii in range(nr): 
-            trow = list(ws.iloc[ii])
-            hit = 0
-            if premode == True:
-                for jj,tmp in enumerate(trow):
-                    if type(tmp) is str:
-                        if "市" in tmp:
-                            hit += 1
-                if hit > 5:
-                    premode=False
-                    i_kakei=[];p_kakei=[]
-                    for jj,tmp in enumerate(trow):
-                        if type(tmp) is str:
-                            if "市" in tmp:
-                                i_kakei += [jj]
-                                p_kakei +=[ tmp ] 
-                    v_kakei = [ ]
-            else:                    
-                if ii >= 22:
-                    if type(trow[8]) is str and trow[8] != "":
-                        v_kakei += [ [trow[jj+1] for jj in i_kakei] ]
-                        items += [trow[8]]                         
-        return i_kakei, p_kakei, v_kakei,items
-    def readkikou(self,ikikou):
-        ws = self.input_file.parse(sheet_name=self.sname[ikikou], header=None)
-        nr = ws.shape[0]
-        quantities = [];v_kikou=[]
-        premode=True
-        for ii in range(nr): 
-            trow = list(ws.iloc[ii])
-            if premode :
-                if any(["市" in str(tmp) for tmp in trow]):
-                    Tplaces = trow[1:]
-                    premode=False
-            else:
-                quantities += [ trow[0] ]
-                v_kikou += [ trow[1:] ]
-        return Tplaces, v_kikou,quantities
-
-def seasoncolor(month):
-    if month <= 2 or month ==12:
-        return "blue"
-    elif 3 <= month <=5:
-        return "green"
-    elif 6 <= month <=8:
-        return "red"
-    elif 9<= month <=11:
-        return "orange"
-    return tcol
-
-def plot_cor(x,y,item,quantity,place,corrcoef):    
-    fig = plt.figure(figsize=(4,4))
-    ax = fig.add_subplot(1,1,1)
-    ax.set_facecolor("#e0e0e0")
-    ax.set_title(place+"   r="+str("%8.2f" % corrcoef).strip())
-    ax.set_xlabel(item);ax.set_ylabel(quantity)
-    ax.grid(True,axis="both",color="w", linestyle="dotted", linewidth=0.8)
-    for i in range(len(x)):
-        tcol=seasoncolor(i+1)
-        ax.scatter(x[i],y[i],marker="o",s=5,color=tcol,zorder=20000,alpha=0.7)
-        ax.text(x[i],y[i],str(i+1)+"月",color="k",fontsize=8)
-    plt.savefig(oupdir + "corr_"+item+"vs"+quantity+"_at_"+place+".png",dpi=300) 
-    plt.close()
-
-def calcor(date,places,items, Vs_kakei,Tplaces,quantities,Vs_kikou):
-    hit = 0; num_pic=0
-    Vs = [] 
-    for j_K,place in enumerate(places):
-        for j_T, Tplace in enumerate(Tplaces):
-            if place != Tplace :
-                continue
-            for ik,item in enumerate(items):
-                kvalue = np.array([ Vs_kakei[i][ik][j_K] for i in range(len(Vs_kakei))])
-                quantity=quantities[iT]
-                Tvalue = np.array([ Vs_kikou[i][iT][j_T] for i in range(len(Vs_kikou))])
-                if all(Tvalue) == 0.0: ## missing value in climate data
-                    continue
-                if printlog:
-                    print("@", place," ",item,kvalue," VS ",quantity, ",",Tvalue)
-                corrcoef=np.corrcoef(kvalue,Tvalue)[0][1]
-                Vs += [ [ corrcoef, item, quantity, place] ]
-                if abs(corrcoef) > pthre:
-                    hit += 1
-                    if pltmode==True:
-                        plot_cor(kvalue,Tvalue,item,quantity,place,corrcoef)                       
-                        num_pic += 1
-    print("hit:",hit, " number of picture", num_pic)
-
-if __name__ == "__main__":
-    ti=time.time()
-    T=True; F=False
-
-    inpf = "/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx"
-    oupdir = "/content/drive/My Drive/AdDS/chapter8_data/kakei_cor_pic/" #適宜置き換える
-    iT = 6  # iT=6: 日平均気温
-    printlog= F #条件にhitした都市の品目と気候データを逐次printするかどうか. (Fを推奨)
-    pthre= 0.90 ## corrplotを描く相関係数のthreshold 
-    pltmode = T ## T:plotする F:計算のみ ** 画像をいちいちplotして保存する必要がない場合Fを推奨
-    year="2017" 
-
-    wb=ebook(inpf)
-    s_kakei,s_kikou=wb.indices()   
-    Vs_kakei=[]; Vs_kikou=[];dates=[]
-    for i,ind_kakei in enumerate(s_kakei):
-        i_places,places, v_kakei,items = wb.readkakei(ind_kakei)
-        Tplaces, v_kikou, quantities  = wb.readkikou(s_kikou[i])
-        if i+1 < 10:
-            date=year+"0"+str(i+1)
-        else:
-            date=year+str(i+1)
-        dates += [date]
-        Vs_kakei += [ v_kakei ]
-        Vs_kikou += [ v_kikou ]
-    calcor(dates,places,items,Vs_kakei,Tplaces,quantities,Vs_kikou)    
-
-    tf=time.time()
-    print("Elapced time[sec]:", tf-ti)
-
-
-
-
-
-
-
-

8.5. 余談: 電子ファイルのフォーマット

-

プログラムでデータを機械的に読み出して活用することで、人間が到底出来ないような作業効率を実現することができる場合も多い。 -そんな光の側面ばかりなら良いが、実際にはそう上手くは行かないことも多い。

-

業務のデジタル化・デジタルトランスフォーメーションなどといった標語とは裏腹に、世の中にあふれるcsv,スプレッドシートなどは、 -csvと謳っておいて、実際にはカンマ区切りではなくタブ区切りであったり、機械判読を全く想定していないデータの書き方・並べ方となっているものが多く、プログラムを書ける人にとっては苦痛な状況も多い。

-

総務省統計局は令和2年2月に、政府統計(e-Stat)に関して統計表における機械判読可能なデータの表記方法の統一ルールの策定というものを出している。 -これが最適な提案かはさておき、データの記述に法則性と機械判読性をもたせる意識を全員が持つことが重要なように思う。

-

お掃除ロボットが床を綺麗にするためには、まずお掃除ロボットが走れるよう掃除する(床に物が散乱していない)という条件が求められる、という話だ(そうなの?)。

-
-
-

8.6. パスの指定

-

ファイルがコンピュータ上でどこにあるかを指し示す文字列はファイルパス(path)と呼ばれる。
-"/content/drive/My Drive/XXX.png"もファイルパスの一例になっている。

-

たとえば…

-
-

[Sota]というユーザの[ドキュメント] (あるいは[書類])フォルダに
-[csv_file]というフォルダがあり[test.csv]というcsvファイルが入っている

-
-

とするとそのファイルを指し示すパスは
-Windowsの場合→ C:\Users\Sota\Douments\csv_file\test.csv
-macOSの場合→ /Users/Sota/Documents/csv_file/test.csv -となる。

-

注:

-
    -
  • Windowsの場合→”C”の部分は皆さんのディスク環境に依存

  • -
  • Google Colab.環境では、Unix(Mac)やLinuxと同様の方式(スラッシュを使用)

  • -
  • バックスラッシュ\はWindowsの日本語環境では¥円記号で表示される
    -(プログラムなどを書く人には厄介な仕様だったりする)

  • -
-

コンピュータには、ホームディレクトリというものが指定されておりWindowsなら C:\Users\ユーザー名,Macなら /Users/ユーザー名に通常設定されていて、ユーザーがよく使うデスクトップや写真・ドキュメントなどのフォルダはホームディレクトリ直下に配置されている。また、ホームディレクトリは~/で簡略化して指定することもできる。 -OSにもよるが…ライトユーザーはホームディレクトリより上の階層をあまり触らないことが推奨されている(と思う)。理由は、システムファイルが入っていることが多いため。

-

パスの指定の仕方にはその他にも方法があり、ピリオドやスラッシュを駆使して現在のディレクトリからの[相対パス]で指定する事もできる。たとえば…

-

Home
-├ Documents
-│└─ AdDS2021
-││  └─ Report1
-│└─ AdDS2020
-││  └─ Report1
-││  │  └─ StudentA
-││  │  └─ StudentB
-││  └─ Report2
-│└─ AdDS2019
-├ Picures
-︙

-

こういう階層構造になっていて、現在Home/Documents/AdDS2020/Report1という -ディレクトリにいるとすると、そこから

-
    -
  • StudentAへの相対パスは ./StudentA

  • -
  • Report2への相対パスは ../Report2

  • -
  • AdDS2019への相対パスは ../../AdDS2019

  • -
  • Pictureへの相対パスは../../../Pictures

  • -
-

といった感じ。前述のように愚直にReport1フォルダを指定するときは/Users/Sota/Documents/AdDS2020/Report1といった感じで、これを相対パスと対比させて絶対パスと呼んだりする。

-
-

8.6.1. 余談: ファイル名に使用すべきでない文字

-

授業で公開しているノートブックの名前は基本的に半角英数字とアンダースコアのみで構成されている。これは別に作成者(吉田)がイキってる訳ではない。

-
    -
  • 半角スペース(以下␣という記号で表現する)

  • -
  • 各種括弧 (),{},[]

  • -
  • カンマ ,

  • -
  • ピリオド .

  • -
  • ハイフン -

  • -
  • スラッシュ /

  • -
  • エクスクラメーションマーク !

  • -
  • 円記号(バックスラッシュ) ¥

  • -
  • その他、機種依存文字などはもちろん、全角記号等

  • -
-

などは、(プログラムで扱う予定がある)ファイルの名前には使用しないことが推奨される。その理由は色々あるが

-
    -
  1. 機械の解釈にambiguity(あいまいさ)が生じる

  2. -
  3. (1.により人間側の操作が増えて)面倒

  4. -
-

というところに尽きる。例を示そう。
-Google Colab.上では冒頭に!を付けることで、以下に例を示すようなLinuxコマンドを実行できる。

-

!ls hogehoge.pdf #← lsコマンド リスト(該当ファイル等)を表示
-!mkdir hogehoge #← make directoryコマンド
-!rm hogehoge #←remove(削除)コマンド

-

たとえば半角スペースが入ったtest␣.pdfというファイルがあったとする。
-これをlsコマンドで表示させようとして

-
!ls test .pdf
-
-
-

という命令を行うと、test␣.pdfという指定ではなくtest.pdfという2つのファイルが存在するかどうかを尋ねる命令になってしまう。
-この場合、test␣.pdfの有無を調べたければ、別途バックスラッシュを入れて「記号としての空白です」と機械に教えなくてはならない。

-
!ls test\ .pdf
-
-
-

といった具合に、人間側の手間が必要になってしまう。
-人間が目で見るフォルダ名と機械に与えるべきパスが異なるというのは…やっぱり色んな場面で不便が生じる。 -上記の記号や2バイト以上の文字はファイル(フォルダ)名に使わないのがコンピューターにとっては無難なのだ。 -こういうことは小中高や大学でも理由付きで教えてくれなかったりするので、プログラミングをやって初めて気がつく(気にするようになった)という人も多いかもしれない。

-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_ArtificialNeuralNetwork.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_ArtificialNeuralNetwork.html deleted file mode 100644 index 3aae52d4..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_ArtificialNeuralNetwork.html +++ /dev/null @@ -1,1013 +0,0 @@ - - - - - - - - 機械学習: ニューラルネットワークによる回帰 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

機械学習: ニューラルネットワークによる回帰

-

この章では、最も単純な、入力層・隠れ層・出力層からなるニューラルネットワークを使って、データから尤もらしい予測を与える関数を構築してみましょう。

-

対象とする(疑似)データは、多項式回帰の際に用いたデータと同じsin関数+ノイズで生成することにします。

-
    -
  • すすんだ注: このノートブックでは「ニューラルネットワークをPythonで表現してみる」ことに重きをおくため、使用するデータを訓練データ,検証データ,テストデータに分けることはせず、データは全てニューラルネットワークの訓練データとして使うこととします。 -授業で説明するとおり、一般に[教師あり学習]の文脈でニューラルネットワークを考える際は、本来データを上の様に複数用途に分けながら、モデル選択を行ったり、汎化性能の評価に使ったりします。

  • -
-
-
-
import numpy as np
-def create_toy_data(sample_size, std):
-    np.random.seed(1234) #毎回同じデータになるように乱数の種を固定しておく 
-    x = np.linspace(0, 0.5, sample_size)
-    t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape)                                                                                                                 
-    return x, t
-
-xt,yt = create_toy_data(40,5.e-2) 
-
-
-
-
-
-
-
###グラフにしてみる
-import matplotlib.pyplot as plt
-fig = plt.figure(figsize=(10,4))
-ax = fig.add_subplot(111)
-ax.set_xlabel("x"); ax.set_ylabel("y")
-ax.scatter(xt, yt, facecolor="none", edgecolor="b", s=50, label="Data")
-ax.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter_ArtificialNeuralNetwork_4_0.png -
-
-

ではいくつか必要な関数を適宜定義しながら進めていきましょう。

-

*注: 以下のコードは入力・出力ともに1次元かつ、決まったニューラルネットワーク構造の場合に対して書かれているため、naiveに2層以上の隠れ層を持つニューラルネットワークに拡張するのはstraightfowardではなく、また効率的ではありません。

-
-
-
nhl = 8 ## 隠れ層のノードの数を指定 これを増やすほどニューラルネットワークの表現能力が上がる一方、データに過適合しやすくなる(例外あり)
-
-
-
-
-
-
-
#重み行列W,V(今はベクトル)と、隠れ層でのバイアスbs,出力層でのバイアスを正規乱数で初期化
-np.random.seed(1234)  #結果が実行ごとに同じになるよう乱数を固定(バグを見つけやすくする)
-W = np.random.normal(0.0,1.0,nhl)
-V = np.random.normal(0.0,1.0,nhl)
-bs = np.random.normal(0.0,1.0,nhl)
-b0 = np.random.normal()
-
-
-
-
-

隠れ層で作用させる活性化関数を定義しておきましょう。

-
-
-
#シグモイド関数: 活性化関数の一つ
-def sigmoid(z):
-    return 1.0/(1.0+np.exp(-z))
-
-
-
-
-

最適化したい量(データとモデルの齟齬を表す量)を目的関数(target function)やloss functionなどと呼びます。(以下でもそれに倣う)

-

以下では、データとANNのアウトプットの二乗誤差を目的関数として定めることにします。

-
-
-
### データとANNの出力間の二乗誤差を計算する関数を作っておく。
-def calc_tloss(x,y,tW,tV,tbs,tb0,acf):
-    nhl = len(tW)
-    s=0.0
-    for i in range(len(x)):
-        s += (np.dot(tV, acf(tW*x[i]+tbs)) + tb0 - y[i])**2
-    return s
-
-
-
-
-

上ではcalc_tlossの引数にacfという変数を指定し、acfにsigmoidを指定しました。
-この様にしておくと、sigmoid関数以外の活性化関数を使う際にも、上のcalc_tloss関数が使いまわせますね。

-
-

データの下処理

-

機械学習などの分析では、データの値を中心0,分散1に変換して扱うのが基本です。

-

このことを、データの標準化と呼びます。

-
-
-
ymean = np.mean(yt)
-ystd = np.std(yt)
-ny = (np.array(yt)-ymean)/ ystd #それぞれのデータを平均をひいて標準偏差で割る
-
-
-
-
-

なぜ標準化が必要なのかは、今のような1次元入力データの場合よりもむしろ多変数を扱う際を考えてみるとわかります。

-

変数ごとに標準的なスケールが違う値を扱う場合、スケールの大きな量に学習が引っ張られる、ということが起こりえます。

-

たとえば目的関数を[体重と身長、それぞれについての二乗誤差の和]とする場合、
-データが50kg、ニューラルネットワークの予測が55kgで10%違っていても、二乗誤差の値は25ですが、
-身長が180cm vs 198cmと10%違っていたら、二乗誤差の値は324となります。
-したがって、目的関数は身長の予測精度により強く依存することになり、
-身長をより重視する(きちんと再現する)方向へ、ニューラルネットワークの学習が引っ張られてしまいます。

-

もちろん、身長をより高い精度で推測したいニューラルネットワークを構築したいなら話は別ですが、
-特定の値を特別視しない(全ての量を平等に扱う)のなら、通常は標準化を行います。

-
-
-
acf = sigmoid #sigmoid関数をacfという名前で使う
-
-
-
-
-

さて、初期値W,V,bs,b0と活性化関数にsigmoidを選んだニューラルネットワークとデータの値の二乗誤差は…

-
-
-
print("初期値での二乗誤差",calc_tloss(xt,ny,W,V,bs,b0,acf))
-
-
-
-
-
初期値での二乗誤差 61.29358546868393
-
-
-
-
-

データ1個あたり、ニューラルネットワークとデータ値との間にどれくらい誤差があるかというと…

-
-
-
print("データ1個あたりの誤差:", np.sqrt(calc_tloss(xt,ny,W,V,bs,b0,acf)/len(xt))) #データ1個あたりどれほど誤差*があるか *標準化された誤差
-
-
-
-
-
データ1個あたりの誤差: 1.2378770684995737
-
-
-
-
-

ランダムに生成した重み(W,V)やバイアス項(bs,b0)では、まだニューラルネットワークは訓練がなされていないデタラメな関数なので、図にプロットしてみると…

-
-
-
xp = np.linspace(0.0,0.5,300)
-yp = np.array([np.dot(V, sigmoid(W*xp[i]+bs)) for i in range(len(xp))])
-
-fig = plt.figure(figsize=(10,4))
-ax = fig.add_subplot(111)
-ax.set_xlabel("x"); ax.set_ylabel("y")
-ax.scatter(xt, yt, facecolor="none", edgecolor="b", s=50, label="Data") 
-ax.plot(xp,yp*ystd+ymean,label="ANN") #ニューラルネットワークの予測ypは、"標準化された"yの値に従って学習されているので、元のスケールに戻さないといけない。
-ax.legend()
-plt.show(); plt.close()
-
-
-
-
-../_images/Python_chapter_ArtificialNeuralNetwork_22_0.png -
-
-

当然ですが、全然だめですね。

-

状況を改善するためにニューラルネットワークのパラメータを徐々に更新(学習)していきましょう。
-そのためには、まず勾配を計算する関数を用意しておきます。

-

loss functionを\(f\)と書くことにすると、必要な勾配は4種類で -\(\frac{\partial f}{\partial W}, \frac{\partial f}{\partial V}, \frac{\partial f}{\partial b}, \frac{\partial f}{\partial b_0}\)です。
-プログラムではそれぞれdw,dv,dbs,db0とでも名前をつけることにして、勾配を返り値として与える関数を定義します。

-

以下では、勾配降下法, Adamの2通りの最適化手法を用いてパラメータを更新することとします。

-
-
-

勾配降下法

-

勾配降下法とは、目的関数を微分した勾配の値のみを使ってパラメータを更新する方法です。
-たとえば,重み\(W\)\(i\)番目を更新する際には
-\(W_i := W_i - \eta \frac{\partial f}{\partial W_i}\)
-とします。(\(f\)は目的関数で、\(\eta\)は学習率(パラメータ更新のスケールを決めるパラメータ)です。)

-
-
-
def calc_der(x,y,tW,tV,tbs,tb0,acf,acfder):
-    tdw = np.zeros(nhl)
-    tdv =  np.zeros(nhl)
-    tdbs = np.zeros(nhl)
-    tdb0 = 0.0
-    #以下の勾配の計算は、目的関数が二乗誤差かつ全データでの勾配の和を使用する場合にのみ正しい
-    for i in range(len(x)):
-        g = np.dot(tV, acf(tW*x[i]+tbs) ) + tb0 - y[i]
-        tdb0 += 2.0 * g
-        for jth in range(nhl):                    
-            tdv[jth]  += 2.0 * g * acf(tW[jth]*x[i]+tbs[jth])
-            tdw[jth]  += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth]) *x[i]
-            tdbs[jth] += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth])
-    return tdw, tdv, tdbs, tdb0
-
-#シグモイド関数の微分: 勾配の計算を具体的に求めるのに使う
-def sigmoid_der(z):
-    return np.exp(-z)/ ((1.0+np.exp(-z))**2)
-
-
-
-
-

さてW,V,bs,b0の初期値での勾配の値は

-
-
-
acf = sigmoid
-acfder = sigmoid_der #sigmoid関数の微分sigmoid_derをacfderという名前で使う
-calc_der(xt,ny,W,V,bs,b0,acf,acfder)
-
-
-
-
-
(array([ 5.21872673e-02, -8.03960749e+00,  1.83009108e+00,  1.91103332e+00,
-         3.24927634e+00, -7.23670010e+00, -1.12232153e+00,  7.58282404e-03]),
- array([36.82875279, 29.24447765, 49.19261588,  9.67161219, 23.84412956,
-        23.11524231, 35.19158249, 35.04412075]),
- array([ 2.14818071e-01, -3.23527933e+01,  9.04076394e+00,  8.00770445e+00,
-         1.34159140e+01, -2.80674027e+01, -4.66782630e+00,  2.97730658e-02]),
- 58.69466810466825)
-
-
-
-
-

と計算できるようになりました。

-
-
-
def fitGD(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose):
-    for i in range(nepoch):
-        tdw,tdv,tdbs, tdb0 = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder)
-        tW = tW - eta * tdw
-        tV = tV -eta * tdv
-        tbs =  tbs -eta * tdbs
-        tb0 = tb0 -eta * tdb0        
-        if verbose == 1:
-            print(i, "tloss =", calc_tloss(x,y,tW,tV,tbs,tb0,acf))
-    return tW,tV,tbs,tb0,tdw,tdv,tdbs, tdb0
-
-
-
-
-

では実際に上の関数を使って、パラメータの値を更新してみましょう。
-(nhlの値に依りますが、ちょっぴり計算に時間がかかります)

-
-
-
nepoch = 2000
-acf = sigmoid; acfder=sigmoid_der
-verbose=0
-eta = 0.01 #学習率(パラメータ更新のスケールを決めるパラメータ)
-W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)
-
-
-
-
-

更新された重み・バイアス(W,V,bs,b0)を使って、データとの二乗誤差を計算してみると…

-
-
-
print("学習後の二乗誤差",calc_tloss(xt,ny,W,V,bs,b0,acf))
-
-
-
-
-
学習後の二乗誤差 31.426829182338306
-
-
-
-
-

すると、さっきより小さくはなっていますが、そこまで二乗誤差が減っていません。

-

実際にplotしてみても

-
-
-
xp = np.linspace(0, 0.5, 500) 
-yp = 0.0*xp 
-for i in range(len(yp)):
-    yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 
-
-
-
-
-
-
-
fig = plt.figure(figsize=(10,4))
-ax = fig.add_subplot(111)
-ax.set_xlabel("x"); ax.set_ylabel("y")
-ax.scatter(xt, yt, facecolor="none", edgecolor="b", s=50, label="Data")
-ax.plot(xp,yp*ystd+ymean,label="ANN") ## ニューラルネットワークの出力は標準化した値に対して学習されていることに注意
-ax.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter_ArtificialNeuralNetwork_37_0.png -
-
-

ほとんど学習が進んでいません…(絶望)

-

学習の様子を都度printしてみる(verbose=1に設定する)ことにして
-最初からやりなおしてみると…

-
-
-
np.random.seed(1234)
-W = np.random.normal(0.0,1.0,nhl)
-V = np.random.normal(0.0,1.0,nhl)
-bs = np.random.normal(0.0,1.0,nhl)
-b0 = np.random.normal()
-
-nepoch=20 #20回だけ学習の様子を表示
-verbose=1 
-print("学習前のloss", calc_tloss(xt,ny,W,V,bs,b0,acf))
-#学習
-W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)
-
-
-
-
-
学習前のloss 61.29358546868393
-0 tloss = 155.20176990047585
-1 tloss = 636.6940976770327
-2 tloss = 1982.0790483266553
-3 tloss = 2056.051066857846
-4 tloss = 75.1510373285995
-5 tloss = 41.306942787588895
-6 tloss = 40.230205073524374
-7 tloss = 40.1956281449949
-8 tloss = 40.19379266944327
-9 tloss = 40.19298621925973
-10 tloss = 40.19221490236367
-11 tloss = 40.19144755457859
-12 tloss = 40.19068317848521
-13 tloss = 40.18992172293257
-14 tloss = 40.189163166751285
-15 tloss = 40.188407489902666
-16 tloss = 40.18765467254862
-17 tloss = 40.186904695016516
-18 tloss = 40.186157537795744
-19 tloss = 40.18541318153565
-
-
-
-
-

あるところからは、ほとんど学習が進んでいない事がわかります。

-

原因として考えられるのは

-
    -
  • loss functionをパラメータ(超)空間上にプロットした際にプラトーが存在する

  • -
  • 最適化手法や学習率の設定が適切でない

  • -
  • 初期値が悪い

  • -
-

などがあります。

-

勾配降下法は、最もシンプルな勾配を使った最適化手法ですが、学習の途中で勾配がほとんど0になってしまって(勾配消失ともいう)、学習が進まなくなってしまう、といったことがよく起こります。

-

「勾配が小さいなら勾配にかける学習率を大きくすればええんとちゃいまんの…?」
-と思うかもしれませんが、学習率を単純に大きくしてしまうと、明後日の方向にパラメータを更新するせいで目的関数が発散してしまいます。(eta=0.1などとして試してみてください)

-

注) 勾配降下法を拡張した、データを部分的に使うことで学習が停滞することを防ぐ、確率的勾配降下法(Stochastic Gradient Descent; SGD)は現在もよく使われています。

-

以下では、Adamと呼ばれる別の最適化手法を試してみましょう。

-
-
-

Adam

-

Adamは、勾配降下法の様にその都度の勾配の情報だけを使うのではなく、 -以前の勾配の情報も有効活用する手法です。

-

Adamは2014年に提唱された比較的新しい手法で、以降の機械学習の論文では、Adamが最もよく使われています。(*最も”良い”という意味では必ずしもありません)

-
-
-
def updateAdam(A,mt,vt,i,beta1,beta2,eps):
-    mhat = mt / (1.0-beta1**(i+1))
-    vhat = vt / (1.0-beta2**(i+1))
-    return mhat / (np.sqrt( vhat )+eps)
-
-def fitAdam(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose):
-    mts = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ]
-    vts  = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ]
-    ## Adamで使用するパラメータ
-    beta1 = 0.9; beta2 = 0.999; eps = 1.e-6
-    omb1 = 1.0-beta1; omb2 = 1.0-beta2
-    ## 最適化
-    for i in range(nepoch):
-        tmp = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder)   ### 勾配を計算するところまでは同じ。
-        for n,mt in enumerate(mts):
-            mts[n] = beta1 * mt + omb1 * tmp[n]
-            vts[n]  = beta2 * vts[n] + omb2 * (tmp[n]**2)
-        ### 重み・バイアスの更新
-        tW += -eta * updateAdam(tW, mts[0],vts[0],i,beta1,beta2,eps)
-        tV  += -eta * updateAdam(tV, mts[1],vts[1],i,beta1,beta2,eps)
-        tbs += -eta * updateAdam(tbs,mts[2],vts[2],i,beta1,beta2,eps)
-        tb0 += -eta *  (mts[3]/(1.0-beta1**(i+1))) / ( np.sqrt( vts[3]/ (1.0-beta2**(i+1))) + eps)
-        if verbose and i % 500 == 0:
-            print(i, "tloss =", calc_tloss(x,y,tW,tV,tbs,tb0,acf))        
-    return tW,tV,tbs,tb0
-
-
-
-
-

それでは重みを初期化して、再び学習をしてみましょう

-
-
-
np.random.seed(1234) ## Gradient descentと同条件でスタートするためseedを固定
-W = np.random.normal(0.0,1.0,nhl)
-V = np.random.normal(0.0,1.0,nhl)
-bs = np.random.normal(0.0,1.0,nhl)
-b0 = np.random.normal()
-
-nepoch=2000
-verbose=False
-eta = 0.05
-
-acf = sigmoid ; acfder =sigmoid_der
-print("学習前のloss", calc_tloss(xt,ny,W,V,bs,b0,acf))
-W,V,bs,b0=fitAdam(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)
-print("学習後のloss", calc_tloss(xt,ny,W,V,bs,b0,acf))
-
-
-
-
-
学習前のloss 61.29358546868393
-学習後のloss [0.89838996]
-
-
-
-
-

さっきよりlossの値が小さくなっています。学習がうまく行ってそうですね。

-

グラフにしてみると…

-
-
-
xp = np.linspace(0, 0.5, 500) 
-yp = 0.0*xp 
-for i in range(len(yp)):
-    yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 
-ytruth = np.sin(2*np.pi*xp)
-fig = plt.figure(figsize=(10,4))
-ax = fig.add_subplot(111)
-ax.set_xlabel("x"); ax.set_ylabel("y")
-ax.scatter(xt, yt, facecolor="none", edgecolor="b", s=50, label="Data")
-ax.plot(xp,yp*ystd+ymean,color="C01",label="ANN")
-ax.plot(xp,ytruth,color="C02",label="Ground Truth")
-ax.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter_ArtificialNeuralNetwork_48_0.png -
-
-

のように、データの特徴をそこそこうまく捉えたニューラルネットワークへと学習が進みました。

-

実際には、ニューラルネットワークの精度(良さ)は、前述のような検証データに対する汎化性能で評価します。

-

上で示した例では、3層のニューラルネットワークにデータからそれらしい関数を学習させてみました。

-

ニューラルネットワークの構造をより複雑化したりしながら、より複雑で高次元な回帰問題に応用したり、回帰問題だけではなく分類問題・画像生成・物体検知などなど、各種の楽しい実社会の問題に応用していきます。 (例: 第2回で説明した敵対的生成ネットワーク)

-
-
-

最適化手法に関するまとめ

-

ニューラルネットワークの学習がうまく進むかどうかは一般に

-
    -
  1. ネットワークの構造(アーキテクチャとも言ったりします)や活性化関数(とその微分)の持つ性質

  2. -
  3. 最適化手法や手法内のパラメータ

  4. -
  5. 重みやバイアスの初期値

  6. -
-

などに強く依存します。

-

1.に関して
-回帰問題における代表的な活性化関数としては -最近の傾向として、sigmoidよりも以下のReLU関数が使われることが多いです。

-
-
-
def relu(z):
-    return (z > 0)* z   
-
-def relu_der(z):
-     return (z > 0)*1.0 
-     
-#いずれも、zが実数値でもnp.array型のベクトルでも対応可能な表式
-
-
-
-
-
-
-
##適当な区間のxの値を用意する
-xp = np.linspace(-10.0,10.0,100)
-yp_sigmoid = sigmoid(xp)
-yp_relu = relu(xp)
-
-fig = plt.figure(figsize=(10,4))
-ax1 = fig.add_subplot(121)
-ax1.plot(xp,yp_sigmoid,label="Sigmoid")
-ax1.legend()
-ax2 = fig.add_subplot(122)
-ax2.plot(xp,yp_relu,label="ReLU")
-ax2.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter_ArtificialNeuralNetwork_52_0.png -
-
-

sigmoid関数はx->+∞で1.0, x=-∞で-1.0に漸近します。

-

一方でReLU関数はx=0までは0.0で、x>0.0で、xとなるような関数です。

-

なぜReLUがよく使われる様になったかと言うと、
-(特に隠れ層の数が多い深層学習において)学習するにつれて勾配の値が小さくなって学習が進まない、 -という問題を解決するためです。

-

それぞれの関数の微分を表示してみると

-
-
-
xp = np.linspace(-10.0,10.0,100)
-yp_sigmoid = sigmoid_der(xp)
-yp_relu = relu_der(xp)
-
-fig = plt.figure(figsize=(10,4))
-ax1 = fig.add_subplot(121)
-ax1.plot(xp,yp_sigmoid,label="Sigmoid")
-ax1.legend()
-ax2 = fig.add_subplot(122)
-ax2.plot(xp,yp_relu,label="ReLU")
-ax2.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter_ArtificialNeuralNetwork_54_0.png -
-
-

sigmoid関数は微分の値が最大で0.25なのに対して、ReLU関数では最大1.0となるため勾配の消失が起こりにくいのです。

-

問題ごとに何が最適なネットワーク構造だったり活性化関数なのかは、
-予め分かることはなく、試行錯誤が必要です。
-ここまでこの授業で勉強してきた皆さんは既に、
-「この試行錯誤自体を人力ではなくコンピュータにやらせる方法はないか」という点に思い至るのではないでしょうか?

-

これに関連したお話はベイズ最適化の回で説明します。

-

3.に関して

-

また、ネットワークの重みやバイアスをどのような値から始めるかに学習が依存する場合もあります。

-

というのも、今考えた3層のニューラルネットワークでは、
-重み\(W\)の学習に使う勾配の表式は、\(V\)に比例しています。

-

したがって単純に勾配の情報のみを使う最適化手法では、
-\(V\)の初期値を0に取ったり、学習の過程で偶然\(V\)の値が0に近くなってしまうと、
-\(V\)が更新されノンゼロの値を持つまで\(W\)の学習は始まりません。

-

どのような初期値を採用するべきかに関しても、予め知ることは一般にはできませんが、
-いくつかの特定の場合に関して、推奨される方法というのは存在しています。

-

例: ReLU関数を活性化関数に使うときはHeの初期値というものが推奨されている

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_BayesianOptimization.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_BayesianOptimization.html deleted file mode 100644 index e76c9b04..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_BayesianOptimization.html +++ /dev/null @@ -1,979 +0,0 @@ - - - - - - - - ベイズ最適化による実験計画法 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

ベイズ最適化による実験計画法

-

以下では、ベイズ最適化を用いた実験計画法を見てみよう。

-

数学的部分やコードの詳細よりも「なんとなくこのあたりを探索しようかな」といった
-人間の経験に依る部分を客観的な方法で置き換えた実験計画の方法論の強力さを感じることが目的なので難しいところはスキップしても構わない。

-

ガウス過程の基本や詳細は補足ノートに譲る.

-
-
-
#使うライブラリのインポート
-import numpy as np
-import matplotlib.pyplot as plt
-import copy
-from scipy import special
-
-## データの生成用関数
-def f(x):
-    return np.sin(x) + 0.2 * x
-
-## ガウス過程のカーネル(共分散行列)の設計
-def Mat52(Thetas,r):
-    tau,sigma = Thetas
-    thetar = r * np.sqrt(5.0)/sigma
-    return tau * (1.0 + thetar + (thetar**2) /3.0) * np.exp(-thetar)
-def KernelMat(Thetas,xt,xp):
-    lt = len(xt); lp=len(xp)
-    Ktt = np.zeros((lt,lt)); Kpt = np.zeros((lp,lt));  Kpp = np.zeros((lp,lp))
-    for j in range(lt):
-        for i in range(j,lt):
-            r = abs(xt[i]-xt[j])
-            tmp  = Mat52(Thetas,r) 
-            Ktt[i,j] = tmp; Ktt[j,i] = tmp 
-        for i in range(lp):
-            r= abs(xp[i]-xt[j])
-            Kpt[i,j] = Mat52(Thetas,r)
-    for j in range(lp):
-        for i in range(j,lp):
-            r= abs(xp[i]-xp[j])
-            tmp  = Mat52(Thetas,r)
-            Kpp[i,j] = tmp; Kpp[j,i] = tmp
-    return Ktt,Kpt,Kpp
-
-## 事後共分散行列の計算
-def calcSj(cLinv,Kpt,Kpp,yt,mu_yt,mu_yp):
-    tKtp= np.dot(cLinv,Kpt.T)
-    return mu_yp + np.dot(Kpt,np.dot(cLinv.T,np.dot(cLinv,yt-mu_yt))), Kpp - np.dot(tKtp.T,tKtp)
-
-## Cholesky分解
-def Mchole(tmpA,ln) :
-    cLL = np.linalg.cholesky(tmpA)
-    logLii=0.0
-    for i in range(ln):
-        logLii += np.log(cLL[i,i])
-    return np.linalg.inv(cLL), 2.0*logLii
-
-## 獲得関数を計算, 次点の計算点を決める
-def calcEI(xp,mujoint,sigmaj,xbest,ybest):
-    EIs = [ (mujoint[i]-ybest) * Phi((mujoint[i]-ybest)/sigmaj[i]) +
-            sigmaj[i]* np.exp(-0.5* ((mujoint[i]-ybest)/sigmaj[i])**2) for i in range(len(xp))]
-    xnew,ynew,ind=xybest(xp,EIs)
-    ynew= np.sin(xnew) + 0.2*xnew #+ 0.01 * (0.5-np.random.rand())
-    return xnew,ynew,EIs,ind
-def Phi(z):
-    return 0.5 * special.erfc(-(z/(2**0.5)) )
-
-def xybest(xt,yt):
-    ind = np.argmax(yt)
-    return xt[ind],yt[ind],ind
-
-## お絵かき
-def plotGP0(xt,yt,xp,ytrue):
-    fig = plt.figure(figsize=(8,4))
-    axT = fig.add_subplot(1,1,1)
-    axT.set_xlabel("x"); axT.set_ylabel("y")
-    axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0)
-    axT.scatter(xt,yt,marker="o",color="black",label="Data")
-    axT.plot(xp,ytrue,color="red",label="True",linestyle="dotted")
-    axT.legend(loc="upper right")
-    plt.show()
-    #plt.savefig("BayesOpt_initial.pdf",bbox_inches="tight", pad_inches=0.1)
-    plt.close()
-
-def plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs):
-    fig = plt.figure(figsize=(16,4))
-    axT = fig.add_subplot(121)
-    axB = fig.add_subplot(122)
-    axT.set_xlabel("x"); axT.set_ylabel("y")
-    axB.set_xlabel("x"); axB.set_ylabel("Acquisition function")
-    axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0)
-    axB.set_xlim(-2.0,12)
-    axT.scatter(nxt,nyt,marker="o",color="black",label="Data")
-    for i in range(len(ysamples)):
-        axT.plot(nxp,ysamples[i],alpha=0.1)
-    axT.plot(nxp,mujoint,label="GP mean",linestyle="dashed",color="blue")
-    axB.plot(nxp,EIs,color="green")
-    axB.set_yticklabels([]) 
-    axT.fill_between(nxp,mujoint-sigmaj,mujoint+sigmaj,color="blue", alpha=0.3)
-    axT.plot(xp,ytrue,color="red",label="True",linestyle="dotted")
-    axT.legend(loc="upper right")
-    plt.show()
-    plt.close()
-
-
-
-
-
-
-
Thetas=[2.0,2.0]
-oxt = np.array([ 0.0 + 1.02*i for i in range(11)])
-xp = []
-for tmp in np.arange(-2.0,12.0, 5.e-2):
-    if (tmp in oxt)==False:
-        xp += [ tmp ]
-xp = np.array(xp)
-oyt = f(oxt)
-ytrue = f(xp)
-
-SVs=[]
-xt =[oxt[2],oxt[6]]; yt =[oyt[2],oyt[6]]
-plotGP0(xt,yt,xp,ytrue)
-
-
-
-
-../_images/Python_chapter_BayesianOptimization_4_0.png -
-
-

一般には真の関数(赤色)は分からないので、勾配も計算できない。
-数値的に勾配を計算するには、各点で微小にxをずらした場合の観測が必要、さらに、学習率を変えながら適当な値を探索するというのは、1回のデータの観測(測定,取得,計算, etc.)コストが高い場合はあまり良い方策ではない。(“学習率”については最適化の章を参照)

-

仮に勾配の計算ができたとしても、このデータの様に背後にある真の関数が多峰的(multimodal)な場合、勾配のみに基づく単純な最適化手法では局所解に停留する危険もある。

-

そこでベイズ最適化を用いることで大局的な探索と局所的な探索をうまくトレードオフしながら最適値を探索する、ということを以下でデモンストレーションする。

-
-
-
Thetas=[2.0,2.0]
-nxp = list(copy.copy(xp))
-nxt = copy.copy(xt)
-nyt = copy.copy(yt)
-
-n_iter = 10 ## 探索回数の上限
-xopt = 6; yopt = -1.e+30
-SVs=[]
-plot = True
-#plot = False
-
-for iter in range(n_iter):
-    lt=len(nxt); lp=len(nxp)
-    Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp)
-    mu_yt= np.zeros(lt)
-    mu_yp= np.zeros(lp)
-    cLinv,logdetK = Mchole(Ktt,lt) 
-    mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp)
-    sigmaj=[ Sjoint[j][j] for j in range(lp)]
-    ysamples = [np.random.multivariate_normal(mujoint,Sjoint) for i in range(10)]
-    SVs += [ [ mujoint, sigmaj] ]
-    xbest,ybest,ind= xybest(nxt,nyt)
-    xnew,ynew,EIs,ind = calcEI(nxp,mujoint,sigmaj,xbest,ybest)
-    if plot :
-        plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs)
-    nxt += [ xnew ]; nyt += [ ynew ]
-    nxp.pop(ind)    
-    if ynew > yopt:
-        xopt= xnew; yopt = ynew 
-    print(iter, xopt, yopt)
-
-
-
-
-../_images/Python_chapter_BayesianOptimization_6_0.png -
0 -1.6999999999999997 -1.3316648104524687
-
-
-../_images/Python_chapter_BayesianOptimization_6_2.png -
1 10.20000000000001 1.3401253124064523
-
-
-../_images/Python_chapter_BayesianOptimization_6_4.png -
2 11.950000000000012 1.8119225385829674
-
-
-../_images/Python_chapter_BayesianOptimization_6_6.png -
3 11.950000000000012 1.8119225385829674
-
-
-../_images/Python_chapter_BayesianOptimization_6_8.png -
4 8.100000000000009 2.589889810845086
-
-
-../_images/Python_chapter_BayesianOptimization_6_10.png -
5 8.100000000000009 2.589889810845086
-
-
-../_images/Python_chapter_BayesianOptimization_6_12.png -
6 8.100000000000009 2.589889810845086
-
-
-../_images/Python_chapter_BayesianOptimization_6_14.png -
7 8.100000000000009 2.589889810845086
-
-
-../_images/Python_chapter_BayesianOptimization_6_16.png -
8 8.05000000000001 2.5908498356204
-
-
-../_images/Python_chapter_BayesianOptimization_6_18.png -
9 8.05000000000001 2.5908498356204
-
-
-
-
-

探索点が増えるにつれて、効率的に最適解が探索出来ている(っぽい)。

-

8回目の探索でx=8.05が探索されていて、真の解8.055…にそこそこ近いものが得られている。
-(実装の都合上、0.05刻みでしか点を打ってないことに注意)

-

同じデータで、勾配法による最適化もやってみる。

-
-
-
import numpy as np 
-
-def f(x):
-    return np.sin(x) + 0.2 * x 
-def derf(x):
-    return np.cos(x) + 0.2  
-
-xexact = 8.055339554764814
-
-x = 6 
-xopt = x; yopt=f(x)
-tol = 1.e-2
-eta = 1.e-1
-
-itnum = 10**4
-for i in range(itnum):
-    x += eta * derf(x)
-    y = f(x)
-    if y > yopt:
-        xopt = x
-        yopt = y 
-    if abs(xexact-xopt) < tol :
-        break
-print("探索回数",i, "最適解(x,y)=",xopt,yopt)
-
-
-
-
-
探索回数 53 最適解(x,y)= 8.045494422941772 2.590816292488816
-
-
-
-
-

\(\eta\)を適切に選べれば、より少ない探索回数でより正確な解が求まるが、そんなことができたら苦労はしない…。

-

また今の場合、勾配は式から計算したが、実際には差分をとって微分を近似することになるため探索回数は少なくとも2倍-3倍程度必要になる。

-

言及しなかった重要な事項

-
    -
  • カーネル関数の選択と依存性

  • -
  • ハイパーパラメータの最適化 or サンプリング

  • -
  • 獲得関数の定義・選択と依存性

  • -
  • 数値計算(とくにガウス過程の部分)のTips

  • -
-
-

備忘録: ライブラリの出力に関して

-
-
-
Thetas=[1.0,1.0]
-nxp = np.linspace(-2,12,10)
-nxt = copy.copy(xt);nyt = copy.copy(yt)
-
-n_iter = 10 ## 探索回数の上限
-xopt = 6; yopt = -1.e+30
-SVs=[]
-plot = False
-
-lt=len(nxt); lp=len(nxp)
-Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp)
-mu_yt= np.zeros(lt)
-mu_yp= np.zeros(lp)
-cLinv,logdetK = Mchole(Ktt,lt) 
-mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp)
-sigmaj=[ np.sqrt(Sjoint[j][j]) for j in range(lp)]
-print("train", nxt,nyt)
-print("xp", nxp)
-print("My muj ", mujoint)
-print("sigmaj", sigmaj)
-
-
-
-
-
train [2.04, 6.12] [1.2999286509533796, 1.061537984784846]
-xp [-2.         -0.44444444  1.11111111  2.66666667  4.22222222  5.77777778
-  7.33333333  8.88888889 10.44444444 12.        ]
-My muj  [5.75795234e-03 8.44113811e-02 7.33727607e-01 9.88413223e-01
- 3.06567459e-01 9.73202438e-01 4.32586459e-01 4.31993679e-02
- 2.79241473e-03 1.47812049e-04]
-sigmaj [0.9999901297449515, 0.9978771506830272, 0.8245848824042269, 0.6584175494971636, 0.9813489474851831, 0.4100810951379304, 0.9125129281442049, 0.9991642392577667, 0.9999965079965879, 0.9999999902138795]
-
-
-
-
-
-
-
from sklearn.gaussian_process import kernels as sk_kern
-import sklearn.gaussian_process as skGP 
-# sklearn GP
-
-nxp = np.linspace(-2,12,10)
-nxt = np.array(copy.copy(xt))
-nyt = np.array(copy.copy(yt))
-
-kern = sk_kern.Matern(length_scale=1.0, length_scale_bounds=(1.0,1.0), nu=2.5)
-sGP = skGP.GaussianProcessRegressor(
-        kernel=kern,
-        alpha=1e-15, 
-        optimizer="fmin_l_bfgs_b", 
-        n_restarts_optimizer=0)
-
-sGP.fit(nxt.reshape(-1, 1), nyt)
-print("sGP.kernel_", sGP.kernel_)
-pred_mean, pred_std= sGP.predict(nxp.reshape(-1,1), return_std=True)
-
-print(pred_mean.reshape(-1,))
-print(pred_std)
-
-
-
-
-
sGP.kernel_ Matern(length_scale=1, nu=2.5)
-[-5.75795234e-03 -8.44113811e-02 -7.33727607e-01 -9.88413223e-01
- -3.06567459e-01 -9.73202438e-01 -4.32586459e-01 -4.31993679e-02
- -2.79241473e-03 -1.47812049e-04]
-[0.99999013 0.99787715 0.82458488 0.65841755 0.98134895 0.4100811
- 0.91251293 0.99916424 0.99999651 0.99999999]
-
-
-
-
-
-
-
!pip install GPy
-
-
-
-
-
Collecting GPy
-  Downloading GPy-1.10.0.tar.gz (959 kB)
-     |████████████████████████████████| 959 kB 4.3 MB/s 
-?25hRequirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.19.5)
-Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy) (1.15.0)
-Collecting paramz>=0.9.0
-  Downloading paramz-0.9.5.tar.gz (71 kB)
-     |████████████████████████████████| 71 kB 8.9 MB/s 
-?25hRequirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.29.26)
-Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.4.1)
-Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy) (4.4.2)
-Building wheels for collected packages: GPy, paramz
-  Building wheel for GPy (setup.py) ... ?25l?25hdone
-  Created wheel for GPy: filename=GPy-1.10.0-cp37-cp37m-linux_x86_64.whl size=2565113 sha256=d3f5efe34d8d7393bde5e956d9d3aaa15a46e98c97fa52624778f8952750d950
-  Stored in directory: /root/.cache/pip/wheels/f7/18/28/dd1ce0192a81b71a3b086fd952511d088b21e8359ea496860a
-  Building wheel for paramz (setup.py) ... ?25l?25hdone
-  Created wheel for paramz: filename=paramz-0.9.5-py3-none-any.whl size=102566 sha256=7642fed4b69b594975067d330d9293b5502326530e2cb3589eb51d00117e7bb7
-  Stored in directory: /root/.cache/pip/wheels/c8/95/f5/ce28482da28162e6028c4b3a32c41d147395825b3cd62bc810
-Successfully built GPy paramz
-Installing collected packages: paramz, GPy
-Successfully installed GPy-1.10.0 paramz-0.9.5
-
-
-
-
-
-
-
import GPy
-
-nxp = np.linspace(-2,12,10).reshape(-1,1)
-nxt = np.array(copy.copy(xt)).reshape(-1,1)
-nyt = np.array(copy.copy(yt)).reshape(-1,1)
-
-kern = GPy.kern.Matern52(input_dim=1,variance=1.0,lengthscale=1.0)
-model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,normalizer=None)
-print(model)
-pred_mean, pred_var = model.predict(nxp)
-print("results(default) ", pred_mean.reshape(-1,), "\n",pred_var.reshape(-1,))
-
-model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,noise_var=1.e-15, normalizer=None)
-pred_mean, pred_var = model.predict(nxp)
-print(model)
-print("results(noise_var~0)", pred_mean.reshape(-1,), "\n",pred_var.reshape(-1,))
-
-
-
-
-
Name : GP regression
-Objective : 3.2337691135149766
-Number of Parameters : 3
-Number of Optimization Parameters : 3
-Updates : True
-Parameters:
-  GP_regression.           |  value  |  constraints  |  priors
-  Mat52.variance           |    1.0  |      +ve      |        
-  Mat52.lengthscale        |    1.0  |      +ve      |        
-  Gaussian_noise.variance  |    1.0  |      +ve      |        
-results(default)  [-2.88381322e-03 -4.22766071e-02 -3.67480418e-01 -4.95042500e-01
- -1.53613693e-01 -4.87828001e-01 -2.16840168e-01 -2.16543149e-02
- -1.39973895e-03 -7.40929687e-05] 
- [1.99999013 1.99787943 1.8399713  1.71674076 1.98148809 1.58407415
- 1.91634063 1.9991646  1.99999651 1.99999999]
-
-Name : GP regression
-Objective : 3.2405297752729125
-Number of Parameters : 3
-Number of Optimization Parameters : 3
-Updates : True
-Parameters:
-  GP_regression.           |  value  |  constraints  |  priors
-  Mat52.variance           |    1.0  |      +ve      |        
-  Mat52.lengthscale        |    1.0  |      +ve      |        
-  Gaussian_noise.variance  |  1e-15  |      +ve      |        
-results(noise_var~0) [-5.75795228e-03 -8.44113803e-02 -7.33727600e-01 -9.88413214e-01
- -3.06567456e-01 -9.73202429e-01 -4.32586454e-01 -4.31993675e-02
- -2.79241470e-03 -1.47812047e-04] 
- [0.99998026 0.99575881 0.67994023 0.43351368 0.96304576 0.16816651
- 0.83267985 0.99832918 0.99999302 0.99999998]
-
-
-
-
-

GPyでは、予測誤差がデフォルトで1.0に設定されていることがわかった。

-

これはかなり注意が必要。
-GPに限らず多くの場合、データを標準化(平均0,分散1)して使うので、予測誤差の分散が1.0というデフォルト値を使うというのは、 「GPの予測が、データ全体の広がりと同程度誤差を持つ」ことを仮定していて、場合によっては非現実的な仮定になり得る。
-Webに転がってるGPyを使ったコードだと、あまりこのあたりは認識されていないように思う。

-
-
-

GPyOpt

-

上で自前コードでやったことを、GPyOptを使ってやってみよう。

-
-
-
#使うライブラリのインポート
-!pip install GPy
-!pip install GPyOpt
-import GPy
-import GPyOpt
-import numpy as np 
-import matplotlib.pyplot as plt
-
-
-
-
-
Requirement already satisfied: GPy in /usr/local/lib/python3.7/dist-packages (1.10.0)
-Requirement already satisfied: paramz>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.9.5)
-Requirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.29.26)
-Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.4.1)
-Requirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.19.5)
-Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy) (1.15.0)
-Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy) (4.4.2)
-Collecting GPyOpt
-  Downloading GPyOpt-1.2.6.tar.gz (56 kB)
-     |████████████████████████████████| 56 kB 2.3 MB/s 
-?25hRequirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.19.5)
-Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.4.1)
-Requirement already satisfied: GPy>=1.8 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.10.0)
-Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (1.15.0)
-Requirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (0.29.26)
-Requirement already satisfied: paramz>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (0.9.5)
-Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy>=1.8->GPyOpt) (4.4.2)
-Building wheels for collected packages: GPyOpt
-  Building wheel for GPyOpt (setup.py) ... ?25l?25hdone
-  Created wheel for GPyOpt: filename=GPyOpt-1.2.6-py3-none-any.whl size=83609 sha256=b36359bb607ed1762b6fd67894ef7c988810df30bdafc0694e7c88cd11f5f48c
-  Stored in directory: /root/.cache/pip/wheels/e6/fa/d1/f9652b5af79f769a0ab74dbead7c7aea9a93c6bc74543fd3ec
-Successfully built GPyOpt
-Installing collected packages: GPyOpt
-Successfully installed GPyOpt-1.2.6
-
-
-
-
-
-
-
def f(x): #GPyOptは最小値を探索するのでマイナスをかけておく
-    return - (np.sin(x) + 0.2 * x)
-
-
-oxt = np.array([ 0.0 + 1.02*i for i in range(11)])
-xt = np.array([ oxt[2], oxt[6]])
-yt = f(xt)
-xt = np.array( [ [ x ] for x in xt])
-yt = np.array( [ [ y ] for y in yt])
-
-## BayesOptの準備・実行
-bounds = [{'name': 'x', 'type': 'continuous', 'domain': (-2,12)}]
-res = GPyOpt.methods.BayesianOptimization(f=f,X=xt,Y=yt, 
-                                            kernel=GPy.kern.Matern52(input_dim=len(bounds)),                                           
-                                            domain=bounds,acquisition_type='EI')
-#print("bounds", bounds,len(bounds))
-res.run_optimization(max_iter=10)
-
-## 結果の描画等
-xs = res.X; ys = res.Y
-print("Estimated Opt. x", res.x_opt[0], "y", -res.fx_opt)
-xr = np.arange(-2.0,12.0,0.1)
-yr = - f(xr)
-
-fig = plt.figure(figsize=(12,4))
-ax = fig.add_subplot(111)
-ax.set_xlabel("x"); ax.set_ylabel("y")
-ax.set_xlim(-2.0,12); ax.set_ylim(-2.0,5.0)
-ax.plot(xr,yr,linestyle="dotted",color="red")
-ax.scatter(xs,-ys,marker="o",color="black")
-plt.show()
-plt.close()
-
-
-
-
-
Estimated Opt. x 8.001075118805382 y 2.589416268802192
-
-
-../_images/Python_chapter_BayesianOptimization_21_1.png -
-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_Bayesian_linear_regression.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_Bayesian_linear_regression.html deleted file mode 100644 index 783a27c3..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_Bayesian_linear_regression.html +++ /dev/null @@ -1,676 +0,0 @@ - - - - - - - - ベイズ線形回帰 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

ベイズ線形回帰

-
-

線形回帰 (多項式回帰の例)

-

線形回帰モデル:
-\(y({\bf x},{\bf w})= \sum^{M-1}_{j=0} w_j \phi_j({\bf x}) = {\bf w}^T\boldsymbol{\phi}({\bf x})\)を考える。

-

ここで\(\boldsymbol{\phi}\)は基底関数のベクトルで、 -\(p\)次の多項式回帰の場合は\(\boldsymbol{\phi}=(1, x, x^2, \ldots, x^p)\)といった感じ。

-

実際この場合にベクトルの内積を書き下すと -\({\bf w}^T\boldsymbol{\phi}=w_0 + w_1x+ w_2x^2+ \cdots + w_{p}x^p\)となり、 -\(p\)次多項式になっている。

-

さて目標変数\(t\)が、決定論的な関数\(y({\bf x},{\bf w})\)と平均0,精度\(\beta\equiv 1/\sigma^2\)の誤差\(\epsilon\)の和: \(t=y({\bf x},{\bf w})+\epsilon\)で与えられていると仮定する。

-

つまり、\(t\)の確率分布が -\(p(t|{\bf x},{\bf w},\beta) = \mathcal{N}(t|y({\bf x},{\bf w}),\beta^{-1})\)で与えられるとする。

-

入力\(\boldsymbol{\mathrm{X}}=\{{\bf x_1},{\bf x_2},\ldots, {\bf x_N}\}\)と、 -対応する目標値を\(\boldsymbol{\mathrm{t}}=\{t_1,t_2,\ldots, t_N\}\)と表すことにしておこう。

-

これらのデータ点が上の分布\(p(t|{\bf x},{\bf w},\beta)\)から独立に生成されたと仮定すると、
-データの目標変数についての確率分布は\(p(\boldsymbol{\mathrm{t}}|\boldsymbol{\mathrm{X}},{\bf w},\beta) = \prod^N_{n=1} \mathcal{N}(t_n|{\bf w}^T \boldsymbol{\phi}({\bf x_n}) ,\beta^{-1})\)で与えられる。
-(以下では、確率分布の条件部分にある\({\bf x}\)などを適宜省略する)

-

このとき、対数尤度は -\(\ln p(\boldsymbol{\mathrm{t}}|{\bf w},\beta) = \sum^N_{n=1} \ln \mathcal{N}(t_n|{\bf w}^T\boldsymbol{\phi}({\bf x_n}) ,\beta^{-1}) = \frac{N}{2}\ln\beta - \frac{N}{2}\ln(2\pi) -\beta E_D({\bf w})\)となる。

-

なお\(E_D\)は二乗和誤差関数: -\(E_D({\bf w}) \equiv \frac{1}{2}\sum^N_{n=1} \{ t_n- {\bf w}^T \boldsymbol{\phi}({\bf x_n}) \}\) -である。

-

対数尤度の勾配を書き下して、最尤推定を考えるとすると\(\nabla \ln p(\boldsymbol{\mathrm{t}}|{\bf w},\beta) = \beta \sum^N_{n=1} \{ t_n -{\bf w}^T \boldsymbol{\phi}({\bf x_n}) \} \boldsymbol{\phi}({\bf x_n})^T \)の根が必要。

-

つまり\(0= \sum^N_{n=1} t_n \boldsymbol{\phi}({\bf x_n})^T - {\bf w}^T(\sum^N_{n=1}\boldsymbol{\phi}({\bf x_n})\boldsymbol{\phi}({\bf x_n})^T)\)をときたい。

-

上の式を変形すると\({\bf w} = ( \boldsymbol{\Phi}^T\boldsymbol{\Phi} )^{-1} \boldsymbol{\Phi}^T \boldsymbol{\mathrm{t}}\)が根であることがわかる。
-つまり、最尤推定を与えるパラメータ\({\bf w}_{ML}\)は、計画行列\(\boldsymbol{\Phi}\)を用いて閉じた形で与えられる。

-

なお、計画行列の要素は -\(\boldsymbol{\Phi}_{nj} = \phi_j({\bf x_n})\)で与えられる。

-
-

次の1次元擬似データの回帰を考えてみる。

-
-
-
import numpy as np
-from matplotlib import pyplot as plt
-
-## データ点の生成
-np.random.seed(1234)
-x = np.linspace(-2.0,6.0,1000)
-beta = 1.e+2
-xt = np.linspace(0.0,4.0,20)
-yt = np.sin(xt) + np.array([ np.random.normal(0.0,1.0/np.sqrt(beta)) for i in range(len(xt))])
-
-fig = plt.figure(figsize = (15,5))
-axs = [fig.add_subplot(111)]
-axs[0].scatter(xt,yt,label="Data",color="k",marker="x")
-axs[0].legend()
-plt.show()
-plt.close() 
-
-
-
-
-../_images/Python_chapter_Bayesian_linear_regression_4_0.png -
-
-

これを,numpyモジュールの多項式fit関数と、上の計画行列によって3次式で回帰してみると…

-
-
-
N = len(xt)
-
-## 多項式の次元を固定しておく
-p=3
-
-##numpyのfit
-yp = np.poly1d(np.polyfit(xt, yt, p))(x) 
-
-## 計画行列を用いる方法
-def phi(x,p):
-    return np.array([ x**i for i in range(p+1)])
-Phi = np.zeros((N,p+1))
-for i in range(N):
-    xn = xt[i]
-    tmp = phi(xn,p) 
-    for j in range(p+1):
-        Phi[i][j] = tmp[j]
-S = np.linalg.inv(np.dot(Phi.T,Phi))
-wML = np.dot(S,np.dot(Phi.T,yt))
-yD = [ np.dot(wML,phi(xn,p)) for xn in x ]
-
-#図のplot
-fig = plt.figure(figsize = (20,4))
-axs = [fig.add_subplot(121),fig.add_subplot(122)]
-axs[0].scatter(xt,yt,label="Data",color="k",marker="x")
-axs[0].plot(x,yp,label="np.polyfit",color="r",alpha=0.5)
-axs[0].plot(x,yD,label="DMat",linestyle="dotted", color="g")
-axs[0].legend()
-
-axs[1].plot(x,np.log10(abs(yp-yD)))
-plt.show()
-plt.close() 
-
-
-
-
-
/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:30: RuntimeWarning: divide by zero encountered in log10
-
-
-../_images/Python_chapter_Bayesian_linear_regression_6_1.png -
-
-

となり、ライブラリの出力と計画行列を用いた最尤推定の結果とが
-ピッタリ(ざっくり14桁程度)一致していることがわかる。

-

マニアックな注: np.polyfitもおそらく計画行列を用いて定義されているはず。
-numpyの中身を見てないので不正確かもしれませんが、
-僅かな答えの差は、逆行列計算に由来するものではないかと想像します。

-
-

L2正則化項がある場合への拡張

-

二乗和誤差関数に、L2正則化項を入れた場合: -\(\frac{1}{2}\sum^N_{n=1} \{ t_n- {\bf w}^T \boldsymbol{\phi}({\bf x_n}) \} + \frac{\lambda}{2} {\bf w}^T{\bf w}\) -に拡張してみよう。

-

上と同様に勾配を計算すると、最尤推定を与えるパラメータ\({\bf w}\)は -\({\bf w}_{ML,L2} = (\lambda I + \boldsymbol{\Phi}^T\boldsymbol{\Phi} )^{-1} \boldsymbol{\Phi}^T \boldsymbol{\mathrm{t}}\)
-(つまり計画行列に単位行列を足すだけ)となる。

-

(対数尤度が\(|w|^2\)に比例することからほとんど自明だが)
-あとで示すように「L2正則化を課すこと」は、パラメータのベイズ的取り扱いにおいて
-「事前分布にガウス分布を仮定すること」と等価である。

-
-
-
-

ベイズ線形回帰

-

次に、パラメータ\({\bf w}\)をベイズ的に取り扱う事を考える。

-

このノートでいう[ベイズ的]とはせいぜい「パラメータを点推定する立場より有限の幅をもつ確率分布としてパラメータを考える」という程度の意味である。

-

パラメータ\({\bf w}\)が、平均\(\boldsymbol{\mu}\),共分散\(\boldsymbol{\Sigma}\)で指定される多次元の正規分布に従うと仮定する: \({\bf w} \sim \mathcal{N}(\boldsymbol{\mu},\boldsymbol{\Sigma})\)

-

このとき、パラメータの事後分布は\(p({\bf w}|\boldsymbol{\mathcal{t}}) = \mathcal{N}(\tilde{\boldsymbol{\mu}},\tilde{\boldsymbol{\Sigma}})\)で与えられる。

-

ここで事後分布の平均および共分散は以下のとおりである:
-\(\tilde{\boldsymbol{\Sigma}}^{-1} =\boldsymbol{\Sigma}^{-1}+\beta\boldsymbol{\Phi}^T \boldsymbol{\Phi}, -\tilde{\boldsymbol{\mu}}= \tilde{\boldsymbol{\Sigma}} (\boldsymbol{\Sigma} \boldsymbol{\mu} + \beta \boldsymbol{\Phi}^T \boldsymbol{\mathcal{t}})\)

-

-

ここで簡単のため事前分布をさらに簡略化しよう。
-事前分布の平均\(\boldsymbol{\mu}\)\(0\)(ベクトル)かつ、
-パラメータの事前分布の共分散が対角的(独立な分散をもつ)でなおかつ値が同じ,
-つまり、上の\(\boldsymbol{\Sigma}=\alpha^{-1}I\)とかける場合を考える。

-

このとき、事後分布の平均および共分散は以下のように簡略化される:
-\(\tilde{\boldsymbol{\Sigma}}^{-1} =\alpha I +\beta\boldsymbol{\Phi}^T \boldsymbol{\Phi}\)
-\(\tilde{\boldsymbol{\mu}}= \beta \tilde{\boldsymbol{\Sigma}} \boldsymbol{\Phi}^T \boldsymbol{\mathcal{t}}\)

-

この条件のもとで対数事後確率(log posterior)は
-\(\ln p({\bf w}|\boldsymbol{\mathrm{t}}) = -\frac{\beta}{2}\sum^N_{n=1} \{t_n - {\bf w}^T \phi(x_n) \}^2 -\frac{\alpha}{2} {\bf w}^T{\bf w} + \) (正規分布の係数からくるオマケの定数)となる。

-

したがって正規分布で与えられる事前分布のもとでパラメータ\({\bf w}\)の事後分布を最大化することは、
-L2正則化項がある場合の誤差関数の最小化と(\(\lambda=\beta/\alpha\)とすれば)等価であることがわかる。

-

実用上は\({\bf w}\)の分布を考えたあと、それを予測値の分布として伝播させる必要がある。

-

一般に予測分布を評価する際は、サンプリング法などが必要になるが、”性質の良い”確率分布を用いる場合は、予測分布も閉じた形で書き下すことができる。
-実際、今の場合は予測分布も正規分布になる.

-

未知の点\(x^*\)での値を\(t^*\)と書くことにすると、

-

\(p(t^*|\boldsymbol{\mathrm{t}},\alpha,\beta) = -\int p(t|{\bf w},\beta) p({\bf w}|\boldsymbol{\mathrm{t}},\alpha,\beta) d{\bf w} \)

-

今の場合、ガウス分布の性質から、 -予測分布は以下で与えられる:
-\(p(t^*|{\bf x},\boldsymbol{\mathrm{t}},\alpha,\beta) = \mathcal{N}(t^*|\tilde{\boldsymbol{\mu}}^T\boldsymbol{\phi}({\bf x}),\sigma^2_N({\bf x}))\)

-

ここで、予測分布の分散は\(\sigma^2_N({\bf x})= \frac{1}{\beta}+\boldsymbol{\phi}({\bf x})^T \tilde{\boldsymbol{\Sigma}}\boldsymbol{\phi}({\bf x}) \)

-
-
-
## alpha(事前分布の精度=分散の逆数)は決め打ちとする
-alpha = 1.e-5 #精度が小さい=分散が大きい=パラメータの事前知識が"弱い"
-
-## wの事後分布の計算
-I = np.diag([1.0 for i in range(p+1)])
-Sigma = np.linalg.inv( alpha * I + beta * np.dot(Phi.T, Phi) )
-mu = beta * np.dot(Sigma, np.dot(Phi.T,yt))
-
-## 予測値(その分散)のリストを作成
-y_BLR = []
-for tx in x :
-    tmp = phi(tx,p)
-    mu_p = np.dot(mu,tmp)    
-    term1 = 1.0/beta
-    term2 =  np.dot(tmp,np.dot(Sigma,tmp))
-    sigma_p = term1 + term2 
-    #print("term1", term1, "term2", term2)
-    y_BLR += [ [mu_p, sigma_p] ]
-y_BLR = np.array(y_BLR).T
-
-## plot
-fig = plt.figure(figsize = (10,4))
-axs = [fig.add_subplot(111)]
-axs[0].scatter(xt,yt,label="Data",color="k",marker="x")
-axs[0].plot(x,yD,label="Maximum Likelihood",linestyle="dotted", color="red")
-axs[0].plot(x,y_BLR[0],label="Mean",linestyle="dashed", color="blue")
-axs[0].fill_between(x,y_BLR[0]+np.sqrt(y_BLR[1]),y_BLR[0]-np.sqrt(y_BLR[1]),label="1sigma", color="blue",alpha=0.5)
-axs[0].fill_between(x,y_BLR[0]+3*np.sqrt(y_BLR[1]),y_BLR[0]-3*np.sqrt(y_BLR[1]),label="3sigma", color="gray",alpha=0.3)
-axs[0].legend()
-plt.show()
-plt.close() 
-
-
-
-
-../_images/Python_chapter_Bayesian_linear_regression_12_0.png -
-
-

パラメータの広がりが予測に伝搬され、
-データが無いところで予測が不確かになっていることが見て取れる。

-

注) 上では、データの精度\(\beta\)(分散の逆数)や、パラメータ\({\bf w}\)の精度\(\alpha\)を既知とした。
-実際には、\(\beta\)そのものがわからなかったりする。

-

(編集予定)

-
-
-

ブートストラップ法

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_WebScraping.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_WebScraping.html deleted file mode 100644 index 7bb0c89a..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_chapter_WebScraping.html +++ /dev/null @@ -1,1013 +0,0 @@ - - - - - - - - Web操作・スクレイピング — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

Web操作・スクレイピング

-

Webから情報を抽出・整形・解析したり、
-ブラウザ上での特定の操作を自動化する、といったことも
-Pythonでは比較的容易に実行することができる。

-

Web上にある情報にアクセスしたりする方法は色々あるが、大まかには2つに分類され

-
    -
  1. プログラムでWebページにアクセスして中身(HTML)を読み、そこから情報を抽出する方法

  2. -
  3. ブラウザをプログラムに操作させて特定の作業を実行する方法

  4. -
-

この章では、とくに1.のWebから情報を抽出すること(スクレイピング)に絞ってそのエッセンスを紹介する。
-HTMLとは、Webページを作るための言語のことで、
-みなさんが普段からアクセスするほぼ全てのWebページは、
-HTMLで記述されています。

-

Webから情報を抽出したりする際、共通して言える注意点を述べておく:

-
    -
  • 対象とするページの利用規約を必ず確認する
    -規約でスクレイピングを禁止しているページがある (例: Amazon, Twitter, Instagram, facebook, 金融系などなど)
    -禁止している場合でも、APIが提供されている場合があります
    -※APIはApplication Programming Interfaceの略です。
    -今の場合、大雑把にはデータ提供用の窓口とでも思ってください.

  • -
  • サーバーに負荷をかけない
    -規約で特にスクレイピングを禁止していない場合でも、過度なアクセスをしてはいけません。
    -(どこかの大学の教務ポータルみたいに落ちてしまったら大変です)
    -過度なアクセスは、悪意のあるDos攻撃とみなされてアクセスを制限されたり、
    -最悪の場合、偽計業務妨害罪などの罪に問われる可能性があります。

  • -
-
-

東京都の新型コロナウイルス関連情報の取得

-

スクレイピングを可能とするライブラリは多数存在する。
-代表的なものはrequestsurllib。以下ではrequestsを使います。

-

JavaScriptの実行などがないページならこれでだいたい十分かと思います.
-またBeutifulSoup4というライブラリを使うと、HTMLを構文解析して、
-タグなどを取り除くといった操作が比較的容易に行えます。

-

1つ目の例として、東京都 新型コロナウイルス感染症対策サイトの公開データを取得して
-それをグラフにして可視化してみましょう。まずは必要なライブラリをインポートしておきます。

-
-
-
import requests
-import json
-import datetime
-import matplotlib.pyplot as plt
-!pip install japanize-matplotlib 
-import japanize_matplotlib 
-
-
-
-
-

東京都 新型コロナウイルス感染症対策サイトレポジトリで公開されているデータ(json形式)を読み出す。

-

指定したurlにリクエストを送り、レスポンスをjson形式で取得する

-
-
-
url = "https://raw.githubusercontent.com/tokyo-metropolitan-gov/covid19/development/data/data.json"
-response = requests.get(url)
-data = response.json()
-
-
-
-
-

上のdataを直接printすると表示が冗長になるため
-代わりに、jsonのキーとして何があるかを見てみよう。

-
-
-
data.keys()
-
-
-
-
-
dict_keys(['contacts', 'querents', 'patients_summary', 'inspections_summary', 'lastUpdate', 'main_summary'])
-
-
-
-
-

それぞれ

-
    -
  • contacts: 新型コロナコールセンター相談件数

  • -
  • querents: 帰国者・接触者電話相談センター相談件数

  • -
  • patients_summary: 陽性患者数

  • -
  • inspections_summary: 検査実施日別状況

  • -
  • lastUpdate: 最終更新日時

  • -
  • main_summary: (これはよくわからない)

  • -
-

に対応している。

-

陽性患者数のデータの構造を調べつつ結果を可視化してみよう。
-まずは型を調べてみる。

-
-
-
type(data['patients_summary'])
-
-
-
-
-
<class 'dict'>
-
-
-
-
-

辞書型とわかったのでキーの一覧を見てみよう

-
-
-
data['patients_summary'].keys()
-
-
-
-
-
dict_keys(['date', 'data'])
-
-
-
-
-

同様にしてdata['patients_summary']["data"]が”日付”と”小計”をキーに持つ辞書のリストだと分かる。

-
-
-
data['patients_summary']["data"][0]
-
-
-
-
-
{'日付': '2020-01-24T08:00:00.000Z', '小計': 1}
-
-
-
-
-

日付と陽性患者数をリストに直して、描画してみよう

-
-
-
# "2022-01-01"のような文字列をdatetimeに変換する関数
-def str_to_dt(tstr):
-    tdatetime = datetime.datetime.strptime(tstr, '%Y-%m-%d')
-    tdate = datetime.date(tdatetime.year, tdatetime.month, tdatetime.day)
-    return tdate
-    
-tdat = data['patients_summary']["data"]
-N = len(tdat)
-tdat = data['patients_summary']["data"]
-dates = [ str_to_dt(tdat[i]["日付"].split("T")[0]) for i in range(N)]
-num_patients = [ tdat[i]['小計'] for i in range(N)]
-print(dates)
-print(num_patients)
-
-
-
-
-
-
-
fig = plt.figure(figsize=(15,4))
-plt.title("東京都")
-plt.xlabel("日付")
-plt.ylabel("陽性者数[人]")
-plt.plot(dates,num_patients, color="green")
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter_WebScraping_18_0.png -
-
-
-
-

e-Statのデータを取得する

-

政府統計の総合窓口(e-Stat)
-日本の各府省が公表する統計データを一つにまとめた、
-政府統計のポータルサイトです。

-

e-StatではAPI機能(ユーザー登録が必要)が提供されていて、
-指定されたURLに対してリクエストを送信することで各APIを利用することが出来ます。

-
-

準備1 e-Statの登録

-

以降の内容でも、e-StatのAPI機能を使用するため予めe-Statへの登録が必要です。

-

国内のデータを使って最終課題に取り組みたいという方は
-ここに記載の手順にならって登録しておきましょう。

-
    -
  1. まずこちらのページからメールアドレス(Gmailを推奨します)を入力し、届いたメールから本登録を行う
    -このとき、gmailアカウントによる認証をオンにしておくと、以後のログインが楽。

  2. -
  3. ログインページからログインし、 -右上の[マイページ]に遷移 -

  4. -
  5. [API機能(アプリケーションID発行)]に遷移する

  6. -
  7. 以下の例にならって、名称とURLを入力し、発行ボタンを押す -

  8. -
  9. [appId]に生成された文字列を、どこかに控えておく(appIdを他人と共有してはいけません)

  10. -
-
-
-

準備2 Pandas e-Statのインストール

-

さて、e-Statへの登録ができたでしょうか。

-

早速e-Statにあるデータをどんどん抽出したい
-…のですが、マニュアルを理解してAPIに適切なリクエストを送るというのは、
-それ自体がややハードルが高いかと思います。

-

そこで、このノートブックではsimaki氏が作った
-Python用のライブラリPandas e-Statを使用することにします。
-同氏によるQiitaの解説記事→https://qiita.com/simaki/items/05cc242d27b4e6781d19

-

まずはインストール&インポートします。

-
-
-
!pip install pandas-estat
-import pandas as pd
-## import pandas_estat 
-# 以降では、pandas_estat内の関数は個別にimportすることにする (そうすると短い名前で使える)
-#実行時の依存関係のエラーは当面問題ない(はず)
-
-
-
-
-
Requirement already satisfied: pandas-estat in /usr/local/lib/python3.7/dist-packages (0.3.1)
-Requirement already satisfied: requests<3.0.0,>=2.26.0 in /usr/local/lib/python3.7/dist-packages (from pandas-estat) (2.26.0)
-Requirement already satisfied: pandas<2.0.0,>=1.3.3 in /usr/local/lib/python3.7/dist-packages (from pandas-estat) (1.3.5)
-Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (1.19.5)
-Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (2.8.2)
-Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (2018.9)
-Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas<2.0.0,>=1.3.3->pandas-estat) (1.15.0)
-Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2.10)
-Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2021.10.8)
-Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (1.24.3)
-Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2.0.8)
-
-
-
-
-

次にpandas_estatからAPIを使用するためのIDを指定します

-
-
-
from pandas_estat import set_appid
-appID = "honyahonya" # 引用符内を準備1で発行したappidに置き換える
-set_appid(appID) 
-
-
-
-
-
-
-
-

Pandas e-Statを使ってみよう

-

ライブラリを使ってみましょう.
-read_statslist()関数の引数に”政府統計コード”を指定することで、
-該当する統計データの一覧をpandas.DataFrame形式で取得することができます。
-政府統計コードの一覧はこちら

-

政府統計コードそのものの一覧をdataframe形式取得するコードはそのうち書くつもりです。

-

それでは、さっそくPandas e-statを使ってみましょう。
-以下では、例にならって「サービス産業動向調査」の結果を抽出してみることにしましょう。

-
-
-
from pandas_estat import read_statslist
-statslist = read_statslist("00200544")  # サービス産業動向調査
-statslist
-
-
-
-
-
      TABLE_INF STAT_CODE  ... SUB_CATEGORY_CODE SUB_CATEGORY
-0    0003179100  00200544  ...                02         需給流通
-1    0003179101  00200544  ...                02         需給流通
-2    0003085562  00200544  ...                02         需給流通
-3    0003085612  00200544  ...                02         需給流通
-4    0003090498  00200544  ...                02         需給流通
-..          ...       ...  ...               ...          ...
-137  0003412789  00200544  ...                02         需給流通
-138  0003412790  00200544  ...                02         需給流通
-139  0003412791  00200544  ...                02         需給流通
-140  0003412792  00200544  ...                02         需給流通
-141  0003412793  00200544  ...                02         需給流通
-
-[142 rows x 35 columns]
-
-
-
-
-

次に、これらのデータがどうやって分類されているのかを調べてみましょう。
-列(column)を表示してみると

-
-
-
print(statslist.columns)
-
-
-
-
-
Index(['TABLE_INF', 'STAT_CODE', 'STAT_NAME', 'GOV_ORG_CODE', 'GOV_ORG_NAME',
-       'TABULATION_CATEGORY', 'TABULATION_SUB_CATEGORY1',
-       'TABULATION_SUB_CATEGORY2', 'TABULATION_SUB_CATEGORY3',
-       'TABULATION_SUB_CATEGORY4', 'TABULATION_SUB_CATEGORY5',
-       'TABULATION_CATEGORY_EXPLANATION',
-       'TABULATION_SUB_CATEGORY_EXPLANATION1',
-       'TABULATION_SUB_CATEGORY_EXPLANATION2',
-       'TABULATION_SUB_CATEGORY_EXPLANATION3',
-       'TABULATION_SUB_CATEGORY_EXPLANATION4',
-       'TABULATION_SUB_CATEGORY_EXPLANATION5', 'NO', 'TITLE',
-       'TABLE_EXPLANATION', 'TABLE_CATEGORY', 'TABLE_SUB_CATEGORY1',
-       'TABLE_SUB_CATEGORY2', 'TABLE_SUB_CATEGORY3', 'CYCLE', 'SURVEY_DATE',
-       'OPEN_DATE', 'SMALL_AREA', 'COLLECT_AREA', 'OVERALL_TOTAL_NUMBER',
-       'UPDATED_DATE', 'MAIN_CATEGORY_CODE', 'MAIN_CATEGORY',
-       'SUB_CATEGORY_CODE', 'SUB_CATEGORY'],
-      dtype='object')
-
-
-
-
-

例えば、CYCLE(周期)というものがあるので、
-CYCLEが”月次”(月ごと)になっているデータだけをピックアップして、

-
-
-
statslist = statslist[statslist.CYCLE == "月次"] 
-
-
-
-
-

そのTABLE_INF(統計表ID)とTITLE(タイトル)だけを表示してみましょう

-
-
-
statslist[["TABLE_INF", "TITLE"]]
-
-
-
-
-
     TABLE_INF                                              TITLE
-2   0003085562    事業所・企業等の産業(中分類)別売上高,従業上の地位別事業従事者数(月次)【2013年1月~】
-5   0003191203                     事業活動の産業(中分類)別売上高(月次)【2013年1月~】
-7   0003085489               事業活動の産業(中分類)別需要の状況【2013年1月~2016年12月】
-8   0003085521  事業活動の産業(中分類),事業所・企業等の産業(中分類)別売上高(月次)【2013年1月~12月】
-10  0003094573  事業活動の産業(一部中分類),事業所・企業等の産業(一部中分類)別売上高(月次)【2013年...
-
-
-
-
-

TABLE_INFの数値が[統計表ID]と呼ばれるものです。

-

ではこの中から”事業活動の産業(中分類)別売上高(月次)【2013年1月~】”を読み出してみましょう。
-それにはread_statsdataという関数が用意されているので、
-引数にTABLE_INF(統計表ID)を入力すると…

-
-
-
from pandas_estat import read_statsdata 
-df = read_statsdata("0003191203")  
-df
-
-
-
-
-
     tab_code      表章項目 cat01_code 事業活動の産業  ...    時間軸(月次) unit     value annotation
-0         001  売上高(収入額)      00000      合計  ...    2013年1月  百万円  27331888        NaN
-1         001  売上高(収入額)      00000      合計  ...    2013年2月  百万円  27395304        NaN
-2         001  売上高(収入額)      00000      合計  ...    2013年3月  百万円  35140562        NaN
-3         001  売上高(収入額)      00000      合計  ...    2013年4月  百万円  28676427        NaN
-4         001  売上高(収入額)      00000      合計  ...    2013年5月  百万円  28648626        NaN
-...       ...       ...        ...     ...  ...        ...  ...       ...        ...
-5035      001  売上高(収入額)      20000     その他  ...    2021年5月  百万円    869554        NaN
-5036      001  売上高(収入額)      20000     その他  ...    2021年6月  百万円    956542        NaN
-5037      001  売上高(収入額)      20000     その他  ...  2021年7月 p  百万円    937055        NaN
-5038      001  売上高(収入額)      20000     その他  ...  2021年8月 p  百万円    894658        NaN
-5039      001  売上高(収入額)      20000     その他  ...  2021年9月 p  百万円   1005051        NaN
-
-[5040 rows x 11 columns]
-1.1.5
-
-
-
-
-

これで、データを抽出することができました。

-
-
-
df.columns
-
-
-
-
-
Index(['tab_code', '表章項目', 'cat01_code', '事業活動の産業', 'area_code', '地域',
-       'time_code', '時間軸(月次)', 'unit', 'value', 'annotation'],
-      dtype='object')
-
-
-
-
-

もう属性を少し絞ってみましょう。

-

dataframeの”事業活動の産業”列にどんなものがあるかを抽出し、
-set関数を使って重複を除くと…

-
-
-
set(df["事業活動の産業"])
-
-
-
-
-
{'37通信業',
- '38放送業',
- '39情報サービス業',
- '4*航空運輸業,郵便業(信書便事業を含む)',
- '40インターネット附随サービス業',
- '41映像・音声・文字情報制作業',
- '42鉄道業',
- '43道路旅客運送業',
- '44道路貨物運送業',
- '45水運業',
- '47倉庫業',
- '48運輸に附帯するサービス業',
- '68不動産取引業',
- '69不動産賃貸業・管理業',
- '70物品賃貸業',
- '72専門サービス業(他に分類されないもの)\u3000(※「純粋持株会社」(平成25年1月以降)を除く)',
- '73広告業',
- '74技術サービス業(他に分類されないもの)',
- '75宿泊業',
- '76飲食店',
- '77持ち帰り・配達飲食サービス業',
- '78洗濯・理容・美容・浴場業',
- '79その他の生活関連サービス業\u3000(※「家事サービス業」を除く)',
- '80娯楽業',
- '82aうち社会教育,職業・教育支援施設',
- '82bうち学習塾,教養・技能教授業',
- '82その他の教育,学習支援業',
- '83医療業',
- '84保健衛生\u3000(※「保健所」を除く)',
- '85社会保険・社会福祉・介護事業\u3000(※「社会保険事業団体」(平成25年1月以降)及び「福祉事務所」を除く)',
- '88廃棄物処理業',
- '89自動車整備業',
- '90機械等修理業(別掲を除く)',
- '91職業紹介・労働者派遣業',
- '92その他の事業サービス業',
- '95その他のサービス業',
- 'その他',
- 'サービス産業計',
- '合計',
- 'G情報通信業',
- 'H運輸業,郵便業',
- 'K不動産業,物品賃貸業',
- 'L学術研究,専門・技術サービス業\u3000(※「学術・開発研究機関」(平成25年1月以降)及び「純粋持株会社」(平成25年1月以降)を除く)',
- 'M宿泊業,飲食サービス業',
- 'N生活関連サービス業,娯楽業\u3000(※「家事サービス業」を除く)',
- 'O教育,学習支援業\u3000(※「学校教育」を除く)',
- 'P医療,福祉(※「保健所」、「社会保険事業団体」(平成25年1月以降)及び「福祉事務所」を除く)',
- 'Rサービス業(他に分類されないもの)\u3000(※「政治・経済・文化団体」、「宗教」及び「外国公務」を除く)'}
-
-
-
-
-

“42鉄道業”を見てみましょう。

-
-
-
ndf = df[df["事業活動の産業"] == "42鉄道業"] #dfの中の、"事業活動の産業欄が"42鉄道業"のものを抽出し、ndfと名前をつける
-
-ndf = ndf[ndf["時間軸(月次)"].str.endswith("月")]
-ndf["時間軸(月次)"] = pd.to_datetime(ndf["時間軸(月次)"], format="%Y年%m月")
-ndf = ndf.sort_values("時間軸(月次)")
-
-#必要なところだけ抽出すると...
-ndf[["時間軸(月次)", "value", "unit"]]
-
-
-
-
-
        時間軸(月次)   value unit
-945  2013-01-01  583438  百万円
-946  2013-02-01  529656  百万円
-947  2013-03-01  644219  百万円
-948  2013-04-01  627287  百万円
-949  2013-05-01  581344  百万円
-...         ...     ...  ...
-1042 2021-02-01  332987  百万円
-1043 2021-03-01  424911  百万円
-1044 2021-04-01  402705  百万円
-1045 2021-05-01  341804  百万円
-1046 2021-06-01  360438  百万円
-
-[102 rows x 3 columns]
-1.1.5
-
-
-
-
-

図を描いてみよう

-
-
-
import matplotlib.pyplot as plt
-!pip install japanize-matplotlib 
-import japanize_matplotlib 
-import matplotlib.dates as mdates
-
-
-
-
-
Requirement already satisfied: japanize-matplotlib in /usr/local/lib/python3.7/dist-packages (1.1.3)
-Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from japanize-matplotlib) (3.2.2)
-Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.8.2)
-Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.19.5)
-Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (3.0.6)
-Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.3.2)
-Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (0.11.0)
-Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->japanize-matplotlib) (1.15.0)
-
-
-
-
-
-
-
x = ndf["時間軸(月次)"].values
-y = ndf["value"].values.astype(float) * 1.e-2  # XX億円に換算
-
-fig = plt.figure(figsize=(30, 4))
-ax = fig.add_subplot(111)  
-ax.set_facecolor("#e0e0e0")
-ax.set_ylabel("鉄道業の収益 [億円]")
-ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=range(1, 13, 4)))
-ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y/%m"))
-ax.grid(True,axis="both",color="w", linestyle="dotted", linewidth=0.8)
-ax.plot(x,y,marker="o",color="green")
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_chapter_WebScraping_48_0.png -
-
-

新型コロナウイルスの感染拡大を受けて2020年の1月ごろから
-緊急事態宣言の解除(5月25日)まで、大幅に収益が減っていることが分かる。

-
-
-

備考

-

あらかじめ興味のあるデータ,分類・属性等がわかっている場合は、
-上記のコードの対応するIDなどを変更すればよいし
-コードを拡張して、データ,分類・属性等の一覧表などを適宜表示しながら、
-特定のキーワードを含むものに絞ってデータを取得したりもできる。

-

ちなみに、GoogleColabで提供されているコードスニペット(テンプレートのようなもの)
-を用いることで、プルダウンでデータ,分類・属性等を選んでプロットする、
-といったようにGoogle Colab.上で自分だけのe-Stat分析ツールを作ることもできる
-(最終課題で取り組むのも良い)

-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_Error.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_Error.html deleted file mode 100644 index 09dde143..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_Error.html +++ /dev/null @@ -1,837 +0,0 @@ - - - - - - - - よくあるエラー集 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

よくあるエラー集

-

このノートブックにはPythonを触っていてよく起こりがちなエラーの例をまとめます.
-皆さんの手元で起こったエラーの例も共有したいので、ぜひ教えてください

-

エラーには、いろいろな分類の仕方がありますが代表的なものは以下のとおりです:

-
    -
  • 構文エラー (syntax error)

  • -
  • ランタイムエラー (runtime error) または 例外 (exception)

  • -
  • 論理エラー (logic error)

  • -
-

これらの代表的な例を以下で紹介します。

-

pythonのようなインタプリタ言語では、実行時にコードの有効性が検証されるため、構文エラーはランタイムエラーとも言えますが、エラーメッセージに従って分類することにします。

-
-

構文エラー

-

構文エラーとは、プログラミング言語の文法・構文規則に違反していることによるエラーです。
-代表的なものは

-
    -
  • 括弧や引用符の閉じ忘れ

  • -
  • コロンのつけ忘れ

  • -
  • ピリオドとカンマの間違い

  • -
  • 全角記号の使用

  • -
  • =(代入)と==(等号)の混同

  • -
  • 不適切なインデント

  • -
-

などがあります。

-

引用符のつけ忘れ

-
-
-
print("Hello World)  
-
-
-
-
-
  File "<ipython-input-3-69ef97eb7c7b>", line 1
-    print("Hello World)
-                       ^
-SyntaxError: EOL while scanning string literal
-
-
-
-
-

括弧の閉じ忘れ

-
-
-
print("Hello World" 
-
-
-
-
-
  File "<ipython-input-4-f5966400ee35>", line 1
-    print("Hello World"
-                       ^
-SyntaxError: unexpected EOF while parsing
-
-
-
-
-

ピリオドとカンマの間違い

-
-
-
a = [2.2. 3.14] # ほんとはa = [2.2, 3.14]のつもり
-
-
-
-
-
  File "<ipython-input-10-523925042166>", line 1
-    a = [2.2. 3.14] # ほんとはa = [2.2, 3.14]のつもり
-                 ^
-SyntaxError: invalid syntax
-
-
-
-
-

コロンのつけ忘れ

-
-
-
for i in range(2)
-    print(i)
-
-
-
-
-
  File "<ipython-input-31-47dfaf615d55>", line 1
-    for i in range(2)
-                     ^
-SyntaxError: invalid syntax
-
-
-
-
-

全角記号の使用

-

これは見た目では気が付きづらいので、”invalid character”というSyntaxErrorが出たときは、全角を疑うというのもおすすめです。

-
-
-
1+ #後ろの1が全角になっている
-
-
-
-
-
  File "<ipython-input-14-0b97842722b1>", line 1
-    1+ #後ろの1が全角になっている
-       ^
-SyntaxError: invalid character in identifier
-
-
-
-
-
-
-
1+2 # 和記号+が全角になっている
-
-
-
-
-
  File "<ipython-input-15-729b19eacfc2>", line 1
-    1+2
-      ^
-SyntaxError: invalid character in identifier
-
-
-
-
-
-
-
1 + 1 #これはOK
-
-
-
-
-
2
-
-
-
-
-
-
-
1 + 1 #+と後ろの1の間に全角スペースが入っている
-
-
-
-
-
  File "<ipython-input-17-6a1d737d6e97>", line 1
-    1 + 1
-        ^
-SyntaxError: invalid character in identifier
-
-
-
-
-

=(代入)と==(等号)の混同

-
-
-
a = 2.0
-b = 3.0
-if a = b :  #ほんとは==のつもり
-    print("a equal b!!")
-
-
-
-
-
  File "<ipython-input-19-b667755dbee2>", line 3
-    if a = b :  #ほんとは==のつもり
-         ^
-SyntaxError: invalid syntax
-
-
-
-
-

不適切なインデント

-

下のコードは[予期しないインデント]というエラーがでる。

-
-
-
for i in range(5):
-    print(i) 
-        for j in range(5): ## この行と次の行のブロックが不要にインデントされている
-            print(j)
-
-
-
-
-
  File "<ipython-input-39-47c8681c99ab>", line 3
-    for j in range(5):
-    ^
-IndentationError: unexpected indent
-
-
-
-
-
-
-

ランタイムエラー

-

ランタイムエラーとは、
-書き方そのものはPythonの文法的に誤りではないものの、
-実際にコードを実行するとエラーになってしまうものを指します。

-

非常に多岐に渡りますが、代表的なものとしては、

-
    -
  • 範囲外参照

  • -
  • 定義されていない変数の参照

  • -
  • 意図しない変数の型に対する演算

  • -
  • 0除算

  • -
-

などがあります。

-

範囲外参照

-

要素が2つしかないリストの3番目の要素にアクセスしようとすると、 -当然エラーが出ます。

-
-
-
a = [ "いちご", "りんご"]
-a[2]
-
-
-
-
-
---------------------------------------------------------------------------
-IndexError                                Traceback (most recent call last)
-<ipython-input-27-322d2d1c6a18> in <module>()
-      1 a = [ "いちご", "りんご"]
-----> 2 a[2]
-
-IndexError: list index out of range
-
-
-
-
-

関数の定義域を超えて引数に入れるのもダメです

-
-
-
import math 
-math.log(0.0)
-
-
-
-
-
---------------------------------------------------------------------------
-ValueError                                Traceback (most recent call last)
-<ipython-input-34-f2bde18f41de> in <module>()
-      1 import math
-----> 2 math.log(0.0)
-
-ValueError: math domain error
-
-
-
-
-

定義されていない変数の参照

-

当然、定義されていない変数を使うとエラーが起こります

-
-
-
print(num)
-
-
-
-
-
---------------------------------------------------------------------------
-NameError                                 Traceback (most recent call last)
-<ipython-input-35-55a60ae9504f> in <module>()
-----> 1 print(num)
-
-NameError: name 'num' is not defined
-
-
-
-
-

ノートブック特有の注意点

-

作業途中に定義していた変数がメモリに残っていて、そのおかげで動いているが、 -後日作業を再開した際(新しいセッションで実行したとき)にその変数が未定義となり動かなくなる。 -といったことも稀に起こります。 -とくに、セルを跨いで実行したりするノートブックの編集・実行においては、よく起こるミスです。 -こうしたエラーを避けるには、適宜ランタイムやカーネルなどを再起動して、 -新しいセッションで実行できるか確認するなどの対策が必要です。

-

打ち間違いにも注意です

-
-
-
input = "sample_file.txt"
-print( imput )
-
-
-
-
-
---------------------------------------------------------------------------
-NameError                                 Traceback (most recent call last)
-<ipython-input-28-c91f1af649c8> in <module>()
-      1 input = "sample_file.txt"
-----> 2 print( imput )
-
-NameError: name 'imput' is not defined
-
-
-
-
-

意図しない演算

-

数値と数値の足し算は出来ますが、 -数値と文字のように型が異なる変数を足すことはできません。

-
-
-
"私は"+ 200 + "歳です"
-
-
-
-
-
---------------------------------------------------------------------------
-TypeError                                 Traceback (most recent call last)
-<ipython-input-29-bcf55d6c5ba0> in <module>()
-----> 1 "私は"+ 200 + "歳です"
-
-TypeError: must be str, not int
-
-
-
-
-

和に限らず”演算”は一般に特定の型(同士)のみに定義されています。

-

また、リスト等の要素にアクセスするのに、
-角括弧と間違えて丸括弧を使うミスもよく見られます。

-
-
-
a = [1, 2, 3]
-a[1] #これはOK
-a(1) #これはNG
-
-
-
-
-
---------------------------------------------------------------------------
-TypeError                                 Traceback (most recent call last)
-<ipython-input-2-c7fb72a99bc6> in <module>()
-      1 a = [1, 2, 3]
-      2 a[1] #これはOK
-----> 3 a(1) #これはNG
-
-TypeError: 'list' object is not callable
-
-
-
-
-

0除算

-

0で割ることはできません

-
-
-
300/ 0
-
-
-
-
-
---------------------------------------------------------------------------
-ZeroDivisionError                         Traceback (most recent call last)
-<ipython-input-32-a287468d4b9b> in <module>()
-----> 1 300/ 0
-
-ZeroDivisionError: division by zero
-
-
-
-
-
-
-

論理エラー

-

論理エラーとは、文法的にもOK(syntax errorなし)で、ランタイムエラーも無く、最後までプログラムが実行されるが、「意図した通りに動かない」というものを指します。

-

たとえば「aが負かつ正なら文字列を表示する」という以下のコードは、論理的にはおかしい命令ですが、構文エラーにもランタイムエラーにもなりません

-
-
-
a = 2.0
-if a < 0.0 and a > 0.0: 
-    print("aは正かつ負です!!")
-
-
-
-
-

人間側のエラーとも言えそうですね。
-第1章で説明したように、print文を使ったりしながらこうした論理エラーが無いか調べることもときに必要です。

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_NewtonsMethod.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_NewtonsMethod.html deleted file mode 100644 index d6deba63..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_NewtonsMethod.html +++ /dev/null @@ -1,606 +0,0 @@ - - - - - - - - ニュートン法によるN次元多項式の求根 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

ニュートン法によるN次元多項式の求根

-

\(n\)次元多項式\(f(x) = c_0 + c_1 x + c_2 x^2 + \ldots + c_nx^n\)が与えられた時、
-\(f(x)=0\)となるような解(根)をどのように求めたら良いだろうか?

-

\(n=2\)までの場合については、中学までで習うようによく知られた公式がある。
-\(n=3,4\)の場合についてもそれぞれ、[カルダノの公式]や[フェラリの解法]として知られる
-代数的な求根法が存在する。
-なお、5次以上の代数方程式には代数的な解法※が存在しないことが知られている(アーベル-ルフィニの定理)
-(※方程式の係数の有限回の四則演算および冪根操作で解を表示すること)

-

方程式の解や積分値などが代数的/解析的に解けない場合は、もちろん数値計算の出番となる。

-

このノートブックでは、ニュートン法(あるいはニュートン・ラフソン法)として知られる求根アルゴリズムを紹介する。

-
-

ニュートン法

-

ニュートン法による関数\(f(x)=0\)の求根アルゴリズム自体は非常にシンプルで

-
    -
  1. 初期値\(x \in \mathbb{R} \) (または\(x \in \mathbb{C})\)を決める

  2. -
  3. 上の初期値を\(x_0\)とでも呼ぶことにして、
    -\( x_{t+1} = x_t - f(x_t) / f'(x_t) \)\(x\)を更新し
    -\(x\)の値が収束するまで更新を繰り返す

  4. -
-

というものである。

-

\(\clubsuit\) 進んだ注
-高次元のベクトル\(\boldsymbol{x}\)に拡張することもできる。
-\( \boldsymbol{x}_{t+1} = \boldsymbol{x}_{t} - \partial f(\boldsymbol{x}_t)^{-1} f(\boldsymbol{x}_t)\) -\(\partial f(\boldsymbol{x}_t)\)はヤコビ行列になるが、
-数値計算上の困難が有り、実際に解く場合には様々な工夫が必要となる。

-
-

ニュートン法のアルゴリズムの実装例

-

\(n=5\)の多項式の例を用いて、ニュートン法のアルゴリズムを実装してみよう。
-実数係数の多項式の場合、非ゼロの係数を持つ最大の\(n\)が奇数次ならば、
-関数\(f(x)\)は必ず実軸を横切る(つまり、\(f(x)=0\)の解が存在する。

-

まず係数を適当に… -\(c_0 = 1.0, c_1 = 1.0, c_2 = 2.0, c_3 = 3.0, c_4 = 4.0, c_5 = 5.0\) -とでもして、プロットしてみよう。

-
-
-
import numpy as np 
-from matplotlib import pyplot as plt
-
-
-## 多項式の係数を定義
-cs = np.array( [1.0, 1.0, 2.0, 3.0, 4.0, 5.0] )
-
-## 愚直に多項式とその微分を定義
-def xpoly(x):
-    return np.array([1.0,x,x**2,x**3,x**4,x**5])
-def xpoly_prime(x):
-    return np.array([0.0,1.0,2*x,3*x**2,4*x**3,5*x**4])
-
-# 適当な区間で点を作成して描画してみる
-xr = np.arange(-100,100,1.0) 
-yr = np.array([ np.dot(cs,xpoly(x)) for x in xr])
-fig = plt.figure(figsize = (20,4))
-ax = fig.add_subplot(111)
-ax.plot(xr,yr)
-ax.plot(xr,0.0*yr,linestyle="dotted",color="gray") # y=0
-plt.show()
-plt.close() 
-
-
-
-
-../_images/Python_misc_NewtonsMethod_6_0.png -
-
-

ゼロ点(\(f(x)=0\)となる\(x\))があることはわかるが、このスケールだと具体的な値はよくわからない。

-

次にニュートン法のアルゴリズムに対応する関数を作って解を求めてみよう

-
-
-
def Newton(cs,xini,tolxrel=1.e-6,toly=1.e-6,maxit=1000):
-    xp = xpoly(xini)
-    xpp = xpoly_prime(xini)
-    x = xini
-    itnum = 0
-    while True:
-        y = np.dot(cs,xp)
-        yp = np.dot(cs,xpp)        
-        delta = y / yp
-        x += - delta
-        xp = xpoly(x)
-        xpp = xpoly_prime(x)
-        ynew = np.dot(cs,xp)
-        itnum += 1
-        print("it", itnum, "x",x, "y", y,ynew)
-        if abs(delta/x) < tolxrel and abs(ynew) <toly:
-            break
-        if  itnum == maxit:
-            print("x not converged")
-            return None
-    print("x", xini, "=>", x, " after ",itnum, "iterations")
-    return x 
-
-x_initial = -20.0
-Newton(cs,x_initial)
-
-
-
-
-
it 1 x -16.03067071498258 y -15383219.0 -5041023.966714532
-it 2 x -12.854892481957197 y -5041023.966714532 -1651968.106196959
-it 3 x -10.313885990777683 y -1651968.106196959 -541379.1850391383
-it 4 x -8.28061578625216 y -541379.1850391383 -177429.79752234442
-it 5 x -6.653441486353502 y -177429.79752234442 -58155.11457333112
-it 6 x -5.3510406877452255 y -58155.11457333112 -19063.39609222064
-it 7 x -4.308351359326742 y -19063.39609222064 -6250.001804089965
-it 8 x -3.4733344532483637 y -6250.001804089965 -2049.456302435744
-it 9 x -2.8044032112313464 y -2049.456302435744 -672.1354918462077
-it 10 x -2.268410685784332 y -672.1354918462077 -220.3982199780121
-it 11 x -1.8391438506400222 y -220.3982199780121 -72.1807419252783
-it 12 x -1.4963673552041776 y -72.1807419252783 -23.526420007144324
-it 13 x -1.2256340399442445 y -23.526420007144324 -7.546944476833993
-it 14 x -1.0192792149298004 y -7.546944476833993 -2.3017219833384583
-it 15 x -0.878192974042394 y -2.3017219833384583 -0.6001347172980255
-it 16 x -0.8072662373727413 y -0.6001347172980255 -0.09757282508715664
-it 17 x -0.7905468880551323 y -0.09757282508715664 -0.00434806118170894
-it 18 x -0.789729888238273 y -0.00434806118170894 -9.879715826832669e-06
-it 19 x -0.7897280233719703 y -9.879715826832669e-06 -5.135225578101199e-11
-it 20 x -0.7897280233622771 y -5.135225578101199e-11 5.551115123125783e-16
-x -20.0 => -0.7897280233622771  after  20 iterations
-
-
-
-0.7897280233622771
-
-
-
-
-

\(x=-20.0\)から始めると、20回のiteration(反復)で、
-yの値が\(5.e-16 \simeq 0\)の点が求められている事がわかる。

-

今のようにうまくいく例もある一方で、関数や初期値によっては解に収束しない場合があるので注意が必要

-
-
-
- - - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_ODE.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_ODE.html deleted file mode 100644 index 7ad89f5b..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_ODE.html +++ /dev/null @@ -1,871 +0,0 @@ - - - - - - - - 常微分方程式の数値解法 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

常微分方程式の数値解法

-
-
-
#使用するモジュールのimport
-import numpy as np
-from matplotlib import pyplot as plt
-
-
-
-
-
-

常微分方程式

-

多くの自然現象や社会現象は微分方程式として定式化される。

-

身近な例としてはニュートンの運動方程式にはじまり、 -金融や群集動態、感染症のモデルなどにも当てはまる。

-

このノートでは、微分方程式のうちとくに一変数関数の場合である
-常微分方程式(ordinary differential equation, ODE)について
-いくつかの代表的な数値解法を解説するとともに、
-アルゴリズムを自分で実装してみよう。

-

例えば1階の常微分方程式は、一般に以下の形で書くことが出来る:
-\(dx(t)/dt = f(x,t)\) (Eq. 1)

-

これは、ある質点の時刻\(t\)での座標を\(x(t)\)と呼ぶことにすると、
-質点の位置の変化が\(f(x,t)\)の関数として書けるような状況に相当する。

-

注) 別に\(t\)は時間である必要はないし、
-\(x(t)\)は座標以外の量(金融商品の価格など)何でも構わない。

-

一般に常微分方程式が与えられた時、まずはその解が変数分離などを用いて
-閉じた形で書き下せないかと考えるわけだが、
-実際の多くの問題ではそうは上手く行かず、数値計算が必要となる。

-

以下では、主として\(dx/dt = f(x,t)\)を考えるが、
-高階の微分を含む場合も、

-
-\[\begin{split} -\left[ -\begin{matrix} -x_1 \\ -x_2 \\ -\vdots \\ -x_r -\end{matrix} -\right] -= -\left[ -\begin{matrix} -x \\ -dx/dt \\ -\vdots \\ -d^{r-1}x/dt^{r-1} -\end{matrix} \right] -\end{split}\]
-

と置き換えれば、連立1階常微分方程式:

-
-\[\begin{split} -\left[ -\begin{matrix} -x_2 \\ -x_3 \\ -\vdots \\ -x_{r} -\end{matrix} -\right] -= -\frac{d}{dx} -\left[ -\begin{matrix} -x_1 \\ -x_2 \\ -\vdots \\ -x_{r-1} -\end{matrix} \right] -\end{split}\]
-

とみなすことが出来る。

-

常微分方程式の解を求めるためには、 -適切な条件(初期条件や境界条件)を設定しなければならない。

-

そのうち、変数\(t\)の最初の値(初期値,初期条件)\(t_0\)
-\(x(t=t_0)\)の値が与えられた問題を初期値問題と呼ぶ。
-※\(t_0\)は問題によって0だったり、\(-\infty\)だったりする。

-

解の存在性や下記のリプシッツ条件など適切な条件の元での
-解の一意性の証明等については教科書に譲る。

-

###リプシッツ条件

-

関数\(f\)\(U\)(たとえば\(R^n\)の部分集合) 上でリプシッツ(Lipshitz)連続であるとは、
-正実数\(K\)が存在し、任意の\(x,y \in U\)に対し、
-\(||f(x)-f(y)|| \leq K ||x −y||\)が成立することである。
-以下では\(||\cdot||\)はユークリッドノルムとし、\(K\)をリプシッツ定数と呼ぶ。

-

この\(K\)が存在しているとき、
-前述の常微分方程式の初期値問題は一意の解を持つ。

-
-
-

代表定期な数値解法

-
-

オイラー(Euler)法

-

1階の常微分方程式\(dx(t)/dt=f(x,y)\)を数値的に解く上で
-最も基本的な考え方は時刻(便宜上そう呼ぶ)を
-細かく分割した上で、\(x\)の任意時刻\(t\)での近似値を
-初期値から初めて逐次的に求めていくことである。

-

以下では、その最も単純な例であるオイラー法を説明する。

-

微分の定義: -\(dx(t)/dt = \lim_{h\to 0} \frac{x(t+h) - x(t)}{h}\)から
-微小変分\(h\)を十分小さく取れば、
-\(x_{i+1} = x_{i} + h f(x,t_i)\)という近似式が得られる。

-

つまり、\(i=0\)の初期値\((x_0,t_0=0)\)から順番に上の漸化式を用いて、 \(i\)番目の時刻\(t_i\)での座標\(x_i\)を推定していく。

-

※一般に微小変分\(h\)は各ステップ\(i\)に依存しても良いが、簡単のため共通とした。

-

例: \(dx/dt = -2x^2t\), 初期条件\(x(t=0)=1.0\)のもとで
-\(0 < t \leq 1.0\)での\(x\)の値を予想してみよう:

-
-
-
# f(x,t)のトイモデルとして dx/dt = -2tx^2 というものを考える
-def f(x,t): 
-    return -  2.0*  x * x * t
-#時刻tを間隔hで細かく分割する
-h = 1.e-4
-tr = np.arange(0.0,1.0,h) 
-#初期条件
-x0 = 1.0 
-
-#求解
-x = x0
-xs = [x0]
-for t in tr:
-    x += h * f(x,t)
-    xs += [x]
-
-#描画
-fig = plt.figure(figsize=(10,3))
-plt.xlabel("t");plt.ylabel("x")
-plt.plot(tr,xs[:-1])
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_misc_ODE_14_0.png -
-
-

実は今の初期条件のもとでこの微分方程式は
-閉じた形\(x(t)=x_0/(x_0t^2+1)\)で解が与えられるので、
-真の解と数値解法による近似解を比較できる。

-

差分のlogを取ってみると…以下のようになる:

-
-
-
def fexact(t):
-    return x0/(x0* t*t + 1.0)
-xe = np.array([ fexact(t) for t in tr])
-fig = plt.figure(figsize=(10,3))
-plt.xlabel("t"); plt.ylabel("abs. diff.")
-plt.yscale("log")
-plt.plot(tr,abs(xe-np.array(xs[:-1])))
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_misc_ODE_16_0.png -
-
-

Taylor展開するだけで簡単に調べられるようにEuler法は局所打ち切り誤差が\(O(h^2)\)
-大局打切り誤差が\(\sim O(h^2)\times O(h^{-1})\sim O(h)\)の手法となっている。
-つまり1桁精度を上げたいなら\(h\)を1/10、つまり計算量を10倍にしなくてはならない。

-

上の\(h\)を変えてチェックしてみよう。

-

大局誤差が\(h\)\(p\)乗に比例する手法を一般に\(p\)次公式と呼び
-上のEuler法は1次公式となる。

-

Euler法に少し工夫を加えた修正Euler法は、2次公式であり
-\(h\)を1/10すると、大局誤差は1/100にできる。

-
-
-

4次のルンゲクッタ法 (RK4)

-

次に4次公式の代表例である4次のルンゲクッタ法を紹介しよう。
-古典的ルンゲ=クッタ法などとも呼ばれるこの方法は、
-幾つかの\((x,t)\)に対して\(f(x,t)\)の値を計算し、
-打切り誤差が互いにキャンセルしあうように
-うまく重み付けをして次ステップの\(x\)の値を求めていく方法であり
-様々なところで用いられている。

-

基本的には2変数関数のTaylor展開をやれば更新式を導出できるが -煩雑なので導出については省略することにして結果だけ示すと

-

\(i\)番目のステップでの\(x,t\)の値\(x_i,t_i\)が所与のとき、 -以下の4点での\(f(x,t)\)の(近似)値を用意して
-\( f_1 = f(x_i,t_i), -f_2 = f(x_i+\frac{h}{2} f_1,t_i+\frac{h}{2}),\) -\(f_3 = f(x_i+\frac{h}{2} f_2,t_i+\frac{h}{2}), -f_4 = f(x_i+h f_3,t_i+h) -\)

-

\(x_{i+1} = x_{i} + \frac{h}{6} (f_1+2f_2+2f_3 + f_4 )\) -とすることで、4次公式が得られる。

-

また、前述のような”重み付け”の選択には自由度があり、
-\( f_1 = f(x_i,t_i), -f_2 = f(x_i+\frac{h}{3} f_1,t_i+\frac{h}{3}),\) -\( -f_3 = f(x_i-\frac{h}{3}f_1 + h f_2,t_i+\frac{2h}{3}), -f_4 = f(x_i+hf_1-hf_2+h f_3,t_i+h) -\)

-

\(x_{i+1} = x_{i} + \frac{h}{8} (f_1+3f_2+3f_3 + f_4 )\)

-

という公式も知られている。

-

前者を実装して、先程の例でEuler法と比べてみると…

-
-
-
#求解(RK4)
-xsRK4 = [x0]
-x = x0
-for t in tr:
-    f1 = f(x,t)
-    f2 = f(x+0.5*h*f1, t+0.5*h)
-    f3 = f(x+0.5*h*f2, t+0.5*h)
-    f4 = f(x+h*f3, t+h)
-    x += h*(f1 + 2*f2 + 2*f3 + f4)/6.0
-    xsRK4 += [x]
-#描画
-fig = plt.figure(figsize=(10,3))
-plt.xlabel("t");plt.ylabel("abs. diff.")
-plt.yscale("log")
-plt.plot(tr,abs(xe-np.array(xs[:-1])),label="Euler")
-plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label="RK4")
-plt.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_misc_ODE_19_0.png -
-
-

となり、高精度で解が得られていることが分かる。

-
-
-
-

積分を用いた解法

-

常微分方程式 \(\frac{dx}{dt} = f(x,t)\)は形式的には
-\(x(t') = x(t_0) + \int^{t'}_{t_0} f(x(t),t,) dt\) と書くことが出来る。

-

右辺の積分を数値的に計算することで、
-元の微分方程式の解を求めることを考えよう。

-
-

Adams-Bashforth法

-

以下では特に、Adams-Bashforth法(AB法)と呼ばれる手法を考える。

-

まずは、2次のAB法を考えよう。

-

\(t_i\)\(t_{i+1}\)の間の\(f(x(t),t)\)を、現在居る\(i\)番目のステップと
-1個前の\(i-1\)番目のステップを用いて、1次のLagrange補間で近似してみる。

-

\( -\begin{align} -x_{i+1} &= x_i + \int^{t_{i+1}}_{t_i} P_1(t) dt \\ -P_1(t) &= f_{i-1}L_{i-1}(t) + f_i L_i(t) \\ -L_{i-1} &= \frac{t-t_i}{t_{i-1}-t_i}, L_{i} = \frac{t-t_{i-1}}{t_{i}-t_{i-1}} -\end{align}\)

-

各ステップの刻み幅\(t_{i}-t_{i-1}\) for \(\forall i \)を一定\(h\)としよう。
-このもとで上の積分を評価すると、
-\(x_{i+1} = x_i + \frac{h}{2} (-f_{i-1}+3f_i)\) -という更新式を得る。

-

この手法の局所打切り誤差は(またTaylor展開して)\(O(h^3)\)であり、
-2次の公式となる。一般的な分類に倣えば、この手法は過去の2ステップの情報を利用する、
-陽(explicit)解法かつ2段法(2-step method)となっている。

-

同様にして、一般に\(m\)ステップのAB法(\(n-1\)次のLegendre補間を使用)は\(m\)次公式を与える。
-たとえば4次公式は\(x_{i+1}=x_i + \frac{h}{24}(-9f_{i-3} + 37f_{i-2} -59f_{i-1} +55f_{i})\)

-

Adams-Bashforth法とRunge-Kutta法の違い

-

AB法では、過去に評価した\(f\)の値を用いるため、計算量の増加を防ぐことができる。
-つまり、各\(f\)の評価は1回だけで良い。
-一方で、RK4では各ステップで\(f\)を4回計算する必要がある。

-

これは\(f\)の評価が複雑な場合
-(例えば解きたい微分方程式が行列(連立)になっていて、\(f\)に行列演算を含む場合など)
-Runge-Kutta法よりも、高速に計算できるかもしれない。

-

一方で、\(m\)次のAB法では過去の情報を利用するため、
-はじめの\(m-1\)回については、RK法などで予め求めておく必要がある。
-また、Runge-Kutta法と比較すると、誤差が大きかったり、
-数値的に不安定になりやすいことも知られている。

-
-
-
def AB4(x0,m=4):
-    xsAB = [x0]
-    x = x0
-    fs = [ 0.0 for i in range(m)]
-    for i,t in enumerate(tr):
-        if len(xsAB) < m : #RK4
-            f1 = f(x,t)
-            f2 = f(x+0.5*h*f1, t+0.5*h)
-            f3 = f(x+0.5*h*f2, t+0.5*h)
-            f4 = f(x+h*f3, t+h)
-            x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0
-            fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4
-        else:
-            f1,f2,f3 = fs[1:]
-            f4 = f(x,t)
-            x += h *(-9*f1 +37*f2 -59*f3 +55*f4 )/24.0 
-            fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4
-        xsAB += [x]
-    return xsAB
-
-xsAB4 = AB4(x0)
-#描画
-fig = plt.figure(figsize=(10,3))
-plt.xlabel("t");plt.ylabel("abs. diff.")
-plt.yscale("log")
-plt.plot(tr,abs(xe-np.array(xs[:-1])),label="Euler")
-plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label="RK4")
-plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label="AB4")
-plt.legend()
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_misc_ODE_27_0.png -
-
-
-
-

Adams-Moulton法

-

AB法は、現在\(i\)と過去のステップの情報のみを使用したが、
-\(i+1\)ステップの情報を使う(陰解法)ことで、より高精度の結果を得ることができる。

-

3次のAB法(\(i-2,i-1,i\)の情報)に加えて\(i+1\)番目の情報を用いて
-3次のLagrange補間多項式\(P_3(t)=\sum^2_{j=-1}f_{i-j}L_{i-j}\)のもと
-\(x_{i+1}=x_i + \sum^2_{j=-2} f_{i+j} \int^{t_{i+1}}_{t_i} L_{i+j}(t) dt \) -という
-更新式を考える。愚直に上と同様に各積分を評価すると
-\(x_{i+1}=x_i + \frac{h}{24}(f_{i-2}-5f_{i-1}+19f_{i} +9f_{i+1}) \) -という式が得られる。

-

これは、4次精度の公式になっており、3ステップ(4次)のAdams-Moulton法と呼ばれる。
-右辺にある\(f_{i+1}\)の評価に関する計算コストの分だけ、3次のAB法に比べて増えることになる。

-
-
-

Adams-Bashforth-Moulton法

-

AM法とAB法を組み合わせることで、使いやすい高精度な陽解法を作ろう
-というのが予測子修正子法の発想である。

-

4ステップのAB法を予測子, 4ステップのAM法を修正子として採用すると
-以下の更新式が得られる:

-

\(\begin{align} -x^{P}_{i+1} &= x_i + \frac{h}{24}(-9f_{i-3}+37f_{i-2}-59f_{i-1}+55f_i) \\ -x_{i+1} &= x_i + \frac{h}{24}(f_{i-2}-5f_{i-1}+19f_i + 9f(t_{i+1},x^P_{i+1})) -\end{align} -\)

-
-
-
def ABM(x0,m=4):
-    xsABM = [x0]
-    x = x0
-    fs = [ 0.0 for i in range(m)]
-    for i,t in enumerate(tr):
-        if len(xsABM) < m : #RK4
-            f1 = f(x,t)
-            f2 = f(x+0.5*h*f1, t+0.5*h)
-            f3 = f(x+0.5*h*f2, t+0.5*h)
-            f4 = f(x+h*f3, t+h)
-            x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0
-            fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4
-        else:
-            f1,f2,f3 = fs[1:]; f4 = f(x,t)
-            ## 予測子
-            xp = x + h *(-9*f1+37*f2-59*f3+55*f4) / 24.0            
-            f5 = f(xp,t+h)
-            ## 修正子
-            x += h *(f2 -5*f3 +19*f4 +9*f5 )/24.0 
-            fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4
-        xsABM += [x]
-    return xsABM
-
-xsABM = ABM(x0)
-fig = plt.figure(figsize=(10,3))
-plt.xlabel("t");plt.ylabel("abs. diff.");plt.yscale("log")
-plt.plot(tr,abs(xe-np.array(xs[:-1])),label="Euler")
-plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label="RK4")
-plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label="AB4")
-plt.plot(tr,abs(xe-xsABM[:-1]),label="ABM4")
-plt.legend();plt.show();plt.close()
-
-
-
-
-../_images/Python_misc_ODE_32_0.png -
-
-

1桁程度、AB法よりも精度が改善していることがわかる。

-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_PCA.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_PCA.html deleted file mode 100644 index e43d1a87..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_PCA.html +++ /dev/null @@ -1,1313 +0,0 @@ - - - - - - - - 主成分分析 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

主成分分析

-

このノートブックでは主成分分析(principal component analysis, PCA)を説明する。
-基礎の理解に重点を置くため、scikit-learnなど既存のライブラリにあるPCA関数を利用するだけではなく、
-定式化とnumpyを用いた実装を行う。

-
-
-
from matplotlib import pyplot as plt
-import numpy as np
-
-
-
-
-
-

主成分分析とは?

-

まず主成分分析とはなんだろうか?

-

Wikipediaには

-
-

相関のある多数の変数から相関のない少数で全体のばらつきを最もよく表す
-主成分と呼ばれる変数を合成する多変量解析の一手法

-
-

とある。

-

具体例を考えてみよう。
-ある集団200人の身長(\(x\))と体重(\(y\))のデータが下のように
-得られているとしよう。

-
-
-
mean = [165, 68]
-mvec = [0,0]
-cov=np.array([[1,0.8],[0.8,1.0]])
-np.random.seed(1234)
-x=[]; y=[]; n=200
-for i in range(n):
-    tx,ty = np.random.multivariate_normal(mvec,cov)
-    x += [ mean[0] + 8*tx]
-    y += [ mean[1] + 6*ty]
-x=np.array(x);y=np.array(y)
-xm = np.mean(x);ym = np.mean(y)
-xp = np.arange(140,190,1); yp = np.corrcoef(x,y)[0,1] * (xp-xm) + ym
-
-fig = plt.figure()
-plt.xlim(140,190); plt.ylim(40,100)
-plt.xlabel("height [cm]")
-plt.ylabel("weight [kg]")
-plt.scatter(x,y)
-plt.plot(xp,yp,color="red",linestyle="dotted")
-plt.show();plt.close()
-
-
-
-
-../_images/Python_misc_PCA_6_0.png -
-
-

上では”何らかの方法で”データの分布に沿った直線を描いてみた。

-

この赤色の線を”体の大きさ”とでも呼ぶことにすると、
-元々は身長(x)と体重(y)の2つの量によってこの集団のデータを表現していたが、
-集団に属する個人をこの”体の大きさ”という1つの量で
-大雑把に指定(あるいは特徴づけ)できそうなことがわかる。

-

主成分分析は高次元のデータを特徴づける少数の”軸方向”を見つけて
-その新たな軸に沿った値(主成分)でデータを表現し
-データを低次元空間で近似する方法
と言える。

-

人間が視覚的に理解できる情報は、3次元までである。
-一方でデータを分析していると、多次元(4~数十など)のデータを扱うことが度々あるが、
-主成分分析などを用いて特徴を抽出することで解釈がしやすくなったり、
-大量のデータがあったときその冗長性を削減することができる。

-
-
-

PCAの定式化

-

主成分分析の大雑把なモチベーションがわかったところで
-上の軸方向/主成分の決め方を定式化しておこう。

-

主成分を決める方針は主に、[主成分の分散を最大化する方針]と
-[情報量削減(主成分軸への距離の二乗和)の最小化]の2つがある。
-以下では、前者を採用することにしよう。

-

\(p\)次元の量を持つデータが\(N\)個観測されているとする→\(\{ x_{ni}\} (n=1,...,N, i=1,....p)\)
-このとき\(p\)個の各変数について、平均値を\(\bar{x}_i = \frac{1}{N} \sum_{n=1}^N x_{ni} \)で定義する。

-

このとき、\(p\)次元の成分それぞれの共分散を行列にもつ共分散行列\({\bf C}\)(\(p\times p\)行列)は
-\( -{\bf C} = \frac{1}{N} \sum^N_{n=1,N} ({\bf x}_n - {\bf \bar{x}})\cdot ({\bf x}_n - {\bf \bar{x}})^T -\)
-とかける。

-

次に、各データを成分にもつ行列 -\( -{\bf X} = -\begin{pmatrix} -x_{11} & x_{12} & ... & x_{1p} \\ -x_{21} & x_{22} & ... & x_{2p} \\ -\vdots & \vdots &\ddots & \vdots \\ -x_{n1} & x_{n2} & ... & x_{np} -\end{pmatrix} -\) -と
-成分が1の\(N\)次元列ベクトル\(1_N\)で以下の(\(N\times p\))行列を定義する:
-\( -\tilde{{\bf X}} = {\bf X} - 1_N {\bf \bar{x}}^T -\)

-

これを用いて、もとの共分散行列を書き換えると… -\( {\bf C} = \frac{1}{N} \tilde{{\bf X}}^T \tilde{{\bf X}}\)とかける。

-

次にデータ集合をある\(p\)次元の係数ベクトル\({\bf u}\)\(p\)次元空間上に射影する: -\( -{\bf s}_n = {\bf u}^T \cdot ( {\bf x}_n - {\bf \bar{x}}) -\)
-これを全データ点(\(n=1,2,...,N\))に対して行って\(s_n\)を縦に並べると\( -{\bf S} = \tilde{{\bf X}} {\bf u} -\)と書くことができる。

-

このとき、適当な係数ベクトル\({\bf u}\)のもとでの射影方向の分散は
-\(\frac{1}{N}\sum^N_{i=1} |{\bf s}_i|^2 = \frac{1}{N} ({\bf u}^T\tilde{{\bf X}}^T) (\tilde{{\bf X}}{\bf u}) = {\bf u}^T {\bf C} {\bf u} -\) -となる。

-

今考えたい問題は、この分散を最大化するような射影\({\bf u}\)を見つけることと言い換えられる。

-

加えて、以下ではそのような射影として\({\bf u}^T \cdot {\bf u}=1\)という条件を課すことにする。
-(\(p\)次元空間での正規直交基底間の変換を探すことに対応)

-

そのためには\(J({\bf u}) = {\bf u}^T {\bf C} {\bf u} - \lambda ({\bf u}^T\cdot {\bf u}-1)\)の最大化を考えれば良い(ラグランジュ未定乗数法)
-\(\frac{\partial J}{\partial {\bf u}} = 2 {\bf C} {\bf u} - 2\lambda{\bf u}=0 \)から、今解きたい最適化問題は固有値問題:
-\({\bf C} {\bf u} = \lambda{\bf u}\)に帰着されることがわかる。

-

この表式と上の分散の式から -\(\frac{1}{N}\sum^N_{i=1} |{\bf s}_i|^2 = \lambda\)となり
-未定乗数\(\lambda\)がいま最大化したい分散に対応していることがわかる。

-

最大固有値\(\lambda_1\)に属する固有ベクトルを第1主成分ベクトルと呼ぶ。
-第2主成分からは同様にして、第1主成分ベクトルと直行する固有ベクトルを考えれば
-分散を大きくする軸を順番に決定することができる。

-

また、\(\frac{\lambda_i}{\sum^p_i \lambda_i}\)\(i\)番目の寄与率と呼び
-各主成分が元のデータに含まれる特徴をどの程度表現しているか
-あるいは幾つ主成分を保持しておけば元のデータに含まれる特徴を十分に表現(近似)できるのかの指標として用いられる。

-
-
-

sklearnライブラリを使う方法

-

irisデータを使ってsklearnで主成分分析をやってみよう

-
-
-
from sklearn import datasets
-dataset = datasets.load_iris()
- 
-target_names = dataset.target_names
-targets = dataset.target 
-feature_names = dataset.feature_names
-features = dataset.data
-
-
-
-
-

このデータには、3種類(‘setosa,versicolor,virginica)のアヤメについて
-がく片の長さ・幅と花弁の長さ・幅のデータが入っている。

-
-
-
print(target_names)
-
-
-
-
-
['setosa' 'versicolor' 'virginica']
-
-
-
-
-
-
-
import pandas as pd
-from pandas import DataFrame
-df = DataFrame(features, columns = feature_names)
-df['target'] = target_names[targets]
-df.head()
-
-
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)target
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
-
- - - - - -
-
-
-
-
    -
  • がくの長さ/sepal length (cm)

  • -
  • がくの幅/sepal width (cm)

  • -
  • 花弁の長さ/petal length (cm)

  • -
  • 花弁の幅/petal width (cm)

  • -
-

の4次元のデータで、可視化して理解することは難しい。
-そこで、このデータを3次元/2次元に落とし込んで理解することを目指す。

-
-
-
from sklearn.decomposition import PCA
-import numpy as np
-from mpl_toolkits.mplot3d import Axes3D
-from matplotlib import pyplot as plt
-
-# PCA関数の使用 (3次元)
-pca = PCA(n_components=3)
-pca.fit(features)
-res = pca.fit_transform(features)
-print("固有値",pca.explained_variance_)
-print("固有ベクトル",pca.components_)
-#描画
-fig = plt.figure(figsize = (4, 4))
-ax = Axes3D(fig) 
-for label in np.unique(targets):
-    p = ax.scatter(res[targets == label, 0],
-                   res[targets == label, 1],
-                   res[targets == label, 2],
-                   marker = 'o', s = 20)
-plt.show()
-plt.close()
-
-# PCA関数の使用 (2次元)
-pca = PCA(n_components=2)
-pca.fit(features)
-res = pca.fit_transform(features)
-
-#描画
-fig = plt.figure(figsize = (4, 4))
-plt.xlabel("PC1"); plt.ylabel("PC2")
-for label in np.unique(targets):
-    plt.scatter(res[targets == label, 0],res[targets == label, 1],label=target_names[label])
-plt.legend()
-plt.show()
-plt.close()
-
-
-
-
-
固有値 [4.22824171 0.24267075 0.0782095 ]
-固有ベクトル [[ 0.36138659 -0.08452251  0.85667061  0.3582892 ]
- [ 0.65658877  0.73016143 -0.17337266 -0.07548102]
- [-0.58202985  0.59791083  0.07623608  0.54583143]]
-
-
-../_images/Python_misc_PCA_17_1.png -../_images/Python_misc_PCA_17_2.png -
-
-

このように、4次元のデータを低次元に射影することで
-3種類のアヤメの持つ特徴を可視化できるようになる。

-
-
-

実装してみよう

-

sklearnなどのライブラリは非常に便利だが
-中で行われている計算を確認するには
-複雑に設計されたソースコードを読み解かなければならず
-「本当に自身が意図した計算をやっているのか」が分かりづらい。

-

ライブラリを「使えれば良い」と「中身を分かった上で使う」の間には

-
    -
  • 問題が起きたときの対処能力

  • -
  • 自身で新規な手法を開発して実装する能力

  • -
-

などなど、様々な面で決定的な差が生じる。

-

以下では、必要な計算をなるべくブラックボックスにしないで
-PCAを実装してみよう。

-
-
-
#上のコードと同様 irisデータを取得
-import numpy as np
-import matplotlib.pyplot as plt
-import pandas as pd
-from pandas import DataFrame
-from sklearn import datasets
-dataset = datasets.load_iris()
- 
-target_names = dataset.target_names
-targets = dataset.target 
-feature_names = dataset.feature_names
-features = dataset.data
-
-df = DataFrame(features, columns = feature_names) 
-df.shape
-df.head()
-
-
-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2
-
- - - - - -
-
-
-
-

今のデータは、上の定式化におけるN=150, p =4の場合に相当する事がわかる。

-
-
-
N,p=df.shape
-#データ行列の定義
-X = df.values 
-
-#p=1,2,3,4 各列の平均ベクトル(p×1行列)を定義
-mv = np.array([ np.mean(X[:,i]) for i in range(p) ]).reshape(p,1) 
-
-#共分散行列Cの計算
-C = np.zeros((p,p)) # p×pのゼロ行列を作成
-for i in range(N):
-    d = X[i,:].reshape(p,1) - mv 
-    C += np.dot(d,d.T) / N 
-
-
-
-
-

行列の固有値を求める部分の詳しい説明は、それだけでノートブックが複数必要なので
-Numpyの中にある固有値・固有ベクトルを計算する関数np.linalg.eigを用いる。

-
-
-
vals,vecs = np.linalg.eig(C)
-print("固有値",vals)
-print("固有ベクトル",vecs.T) #固有ベクトルは縦に並んでいることに注意
-
-
-
-
-
固有値 [4.20005343 0.24105294 0.0776881  0.02367619]
-固有ベクトル [[ 0.36138659 -0.08452251  0.85667061  0.3582892 ]
- [-0.65658877 -0.73016143  0.17337266  0.07548102]
- [-0.58202985  0.59791083  0.07623608  0.54583143]
- [ 0.31548719 -0.3197231  -0.47983899  0.75365743]]
-
-
-
-
-

sklearnで計算されたexplained_variance_(固有値に対応)=4.22824171, 0.24267075, 0.0782095
-わずかに値が異なっている。

-

実はsklearnでは不偏分散が使われているため、

-
-
-
#共分散行列Cの計算 (不偏分散, sklearnと整合)
-C = np.zeros((p,p)) # p×pのゼロ行列を作成
-for i in range(N):
-    d = X[i,:].reshape(p,1) - mv 
-    C += np.dot(d,d.T) / (N-1) #分母 N → N-1
-vals,vecs = np.linalg.eig(C)
-print(vals)
-print(vecs.T)
-
-
-
-
-
[4.22824171 0.24267075 0.0782095  0.02383509]
-[[ 0.36138659 -0.08452251  0.85667061  0.3582892 ]
- [-0.65658877 -0.73016143  0.17337266  0.07548102]
- [-0.58202985  0.59791083  0.07623608  0.54583143]
- [ 0.31548719 -0.3197231  -0.47983899  0.75365743]]
-
-
-
-
-

とすると、両者を整合させることができる。
-以降では、上の定式化を修正して不偏分散を用いることにしよう。

-

このように、ライブラリのソースコードを読むか自身で実装した関数と比較することで初めて
-「sklearnでは不偏分散が使われているんだな」ということが分かったりする。

-

細かな実装が式と整合しているかどうかを確かめるのは重要で
-これを怠ると、再現性が損なわれたりバグの温床になる。

-

余談:
-世の中でプログラムを書く人が全員「動けばいいや」の考えだと
-それがいつかサービスやシステムを通して社会(や自分自身)に大きな不利益をもたらすかもしれない。
-(たとえば自動運転の車による事故などを想像してみよう)

-

各データに対する第1主成分軸に沿った”得点”は、
-最大固有値に対応する固有ベクトルvecs[:,0]
-射影になっていることを思い出すと、内積を取ればよい。
-vecs[0]とすると0番目の行ベクトルが取られて誤りになるので注意!

-

各点について第1主成分得点を計算してリストに詰めておこう

-
-
-
PC1s = [ ]
-for i in range(N):
-    x = X[i,:].reshape(p,1) - mv 
-    u = vecs[:,0].reshape(p,1)
-    PC1 = np.dot(u.T,x)
-    PC1s += [PC1]
-    #print("i",i, "PC1",PC1)
-
-
-
-
-

同様にして

-
-
-
PC2s = [ ] 
-for i in range(N):
-    x = X[i,:].reshape(p,1) - mv 
-    u = vecs[:,1].reshape(p,1)
-    PC2 = np.dot(u.T,x)
-    PC2s += [ PC2 ]
-
-
-
-
-

プロットしてみよう

-
-
-
cols = ["blue","orange","green"]
-
-fig = plt.figure(figsize = (4,4))
-plt.xlabel("PC1"); plt.ylabel("PC2")
-for i in range(N):
-    x = PC1s[i]
-    y = PC2s[i]
-    plt.scatter(x,y,color=cols[targets[i]],alpha=0.4)
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_misc_PCA_33_0.png -
-
-

sklearnの出力と上下がひっくり返っている。
-yにマイナスをかけて向きをあわせてみると…

-
-
-
fig = plt.figure(figsize = (4, 4))
-plt.xlabel("PC1"); plt.ylabel("PC2")
-for i in range(N):
-    x = PC1s[i]
-    y = PC2s[i]
-    plt.scatter(x,-y,color=cols[targets[i]],alpha=0.4)
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_misc_PCA_35_0.png -
-
-

sklearnと同じ結果を与える自作コードを作ることが出来ました。

-

上の符号反転について:

-

第2主成分に対応する固有ベクトルは、sklearnと自前関数で得られた値で符号が異なっている。
-今のように、分散を大きくする軸を見つける場合、
-当然軸の反転(固有ベクトル全体の符号)の自由度が残されている。
-実装によって符号が異なるのは、固有値問題を解く際に使用されているソルバー -におけるconventionの違いなどに由来している。

-
-
-
-

\(\clubsuit\) オートエンコーダ(自己符号化器)

-

上で紹介したPCAは、式(or 直交変換の定義)からもわかるように
-空間上に”平坦に”分布するデータの特徴を説明するのにはうってつけです。

-

一方、一般のデータは必ずしも直線的な分布を持っているわけではなく
-空間上で曲がったり複雑な幾何学形状をしていてもおかしくありません。

-

そんなデータに対して、データの冗長性を削減したり特徴をとらえるための方法の一つが
-以下で説明するオートエンコーダです。

-

最も基本的なオートエンコーダは隠れ層がくびれた
-以下のようなニューラルネットワークで構成されます。

-
-
-
%%capture
-#from keras.models import Sequential
-#from keras.layers import Dense
-!pip install ann_visualizer
-from ann_visualizer.visualize import ann_viz
-from graphviz import Source
-from PIL import Image
-import matplotlib.pyplot as plt
-import numpy as np
-
-
-
-
-
-
-
graph = temp = '''
-... digraph G {
-... 
-...      graph[ fontname = "Helvetica-Oblique",
-...             fontsize = 20,
-...             label = "",
-...             size = "15,30" ];
-... 
-...     rankdir = LR;
-...     splines=false;
-...     edge[style=invis];
-...     ranksep= 1.4;
-...     {
-...     node [shape=circle, color=chartreuse, style=filled, fillcolor=chartreuse];
-...     x1 [label=<x<sub>1</sub>>];
-...     x2 [label=<x<sub>2</sub>>]; 
-...     x3 [label=<x<sub>3</sub>>]; 
-...     x4 [label=<x<sub>4</sub>>]; 
-...     x5 [label=<x<sub>5</sub>>]; 
-...     x6 [label=<x<sub>6</sub>>]; 
-... }
-... {
-...     node [shape=circle, color=dodgerblue, style=filled, fillcolor=dodgerblue];
-...     a12 [label=<a<sub>1</sub>>];
-...     a22 [label=<a<sub>2</sub>>];
-...     a32 [label=<a<sub>3</sub>>];
-...     a42 [label=<a<sub>4</sub>>];
-... }
-... {
-...     node [shape=circle, color=coral1, style=filled, fillcolor=coral1];
-...     O1 [label=<y<sub>1</sub>>];
-...     O2 [label=<y<sub>2</sub>>]; 
-...     O3 [label=<y<sub>3</sub>>]; 
-...     O4 [label=<y<sub>4</sub>>];
-...     O5 [label=<y<sub>5</sub>>]; 
-...     O6 [label=<y<sub>6</sub>>]; 
-... }
-...     {
-...         rank=same;
-...         x1->x2->x3->x4->x5->x6;
-...     }
-...     {
-...         rank=same;
-...         a12->a22->a32->a42;
-...     }
-...     {
-...         rank=same;
-...         O1->O2->O3->O4->O5->O6;
-...     }
-...     l0 [shape=plaintext, label="layer 1 (input layer)"];
-...     l0->x1;
-...     {rank=same; l0;x1};
-...     l1 [shape=plaintext, label="layer 2 (hidden layer)"];
-...     l1->a12;
-...     {rank=same; l1;a12};
-...     l3 [shape=plaintext, label="layer 3 (output layer)"];
-...     l3->O1;
-...     {rank=same; l3;O1};
-...     edge[style=solid, tailport=e, headport=w];
-...     {x1; x2;x3;x4;x5;x6} -> {a12;a22;a32;a42};
-...     {a12;a22;a32;a42} -> {O1,O2,O3,O4,O5,O6};
-... }'''
-
-dot = Source(graph)
-dot.format = 'png'
-dot.render('neural_network_01', view=False) 
-
-im = Image.open("neural_network_01.png")
-plt.figure(figsize = (20,10))
-im_list = np.asarray(im)
-plt.imshow(im_list)
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_misc_PCA_41_0.png -
-
-

上には、入出力の次元が6で、隠れ層が1つ(ノード4)の場合のニューラルネットワークの図を描きました。 -オートエンコーダではこのようなニューラルネットワークのパラメータを出力\(y\)\(x\)にできるだけ一致するよう学習させるということを考えます。

-

入力層から隠れ層への信号の伝播を符号化(エンコード)と呼び隠れ層から出力層への信号の伝播を復号化(デコード)と呼びます。 -それぞれを別々に眺めるとエンコーダ部分はもとの入力の情報を圧縮するような働きをしているとみなせますし、一方デコーダ部分は一度圧縮した情報をもとに元の信号を再構成するような働きをします。

-

オートエンコーダはPCAを特殊な場合として含むためPCAの拡張とみなすことができます。
-詳しくは記載しませんが、活性化関数を恒等変換にとって重み行列を直交行列に取り二乗誤差関数を最小化する表式を書き下すとPCAの表式が現れます。

-

上では単純な順伝播型のニューラルネットワークを描きましたがオートエンコーダを構成するアーキテクチャは上記のような単純なANNに限らず畳み込みニューラルネットワークを用いた畳み込みオートエンコーダなども知られています。

-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_Pandas.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_Pandas.html deleted file mode 100644 index 8924f951..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_Pandas.html +++ /dev/null @@ -1,1043 +0,0 @@ - - - - - - - - Pandasの使い方 (基礎) — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

Pandasの使い方 (基礎)

-

Pandasは、データ分析のためのライブラリで
-統計量を計算・表示したり、それらをグラフとして可視化出来たり
-前処理などの地道だが重要な作業を比較的簡単に行うことができます。

-

まずはインポートしましょう。pdという名前で使うのが慣例です。

-
-
-
import pandas as pd 
-
-
-
-
-

pandasでは主にSeriesDataFrameの2つのオブジェクトを扱います。
-SeriesはDataFrameの特殊な場合とみなせるので、以下ではDataFrameのみ説明することにします。

-
-

DataFrame型

-

DataFrameはExcelシートのような二次元のデータを表現するのに利用され
-各種データ分析などで非常に役にたちます。

-
-
-
from pandas import DataFrame
-
-
-
-
-

以下の辞書型をDataFrame型のオブジェクトに変換してみましょう。

-
-
-
data = { '名前': ["Aさん", "Bさん", "Cさん", "Dさん", "Eさん"],
-        '出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'],
-        '生年': [ 1998, 1993,2000,1989,2002],
-        '身長': [172, 156, 162, 180,158]}
-df = DataFrame(data)
-print("dataの型", type(data))
-print("dfの型",type(df))
-
-
-
-
-

jupyter環境でDataFrameを読むと、”いい感じ”に表示してくれる

-
-
-
df
-
-
-
-
-

printだとちょっと無機質な感じに。

-
-
-
print(df)
-
-
-
-
-

info()関数を作用させると、詳細な情報が得られる。
-列ごとにどんな種類のデータが格納されているのかや、 -メモリ使用量など表示することができる。

-
-
-
df.info()
-
-
-
-
-
-
-

DataFrameの要素を確認・指定する方法

-

index: 行方向のデータ項目(おもに整数値(行番号),ID,名前など)
-columns: 列方向のデータの項目(おもにデータの種類)
-をそれぞれ表示してみよう。

-
-
-
df.index
-
-
-
-
-
-
-
df.columns
-
-
-
-
-

行方向を、整数値(行数)ではなく名前にしたければ

-
-
-
data1 = {'出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'],
-        '生年': [ 1998, 1993,2000,1989,2002],
-        '身長': [172, 156, 162, 180,158]}
-df1 = DataFrame(data1)
-df1.index =["Aさん", "Bさん", "Cさん", "Dさん", "Eさん"]
-df1
-
-
-
-
-

などとしてもよい。

-
-

特定の列を取得したい場合

-
-
-
df["身長"]
-
-
-
-
-

とする。
-以下の方法は非推奨とする。

-
-
-
df.身長
-
-
-
-
-

値のリスト(正確にはnumpy.ndarray型)として取得したければ

-
-
-
df["身長"].values
-
-
-
-
-
-
-
df["出身都道府県"].values
-
-
-
-
-

などとすればよい。

-

慣れ親しんだ形に変換したければ、リストに変換すればよい

-
-
-
list(df["出身都道府県"].values)
-
-
-
-
-

ある列が特定のものに一致するもののみを抽出するのも簡単にできる

-
-
-
df[df["出身都道府県"]=="Tochigi"]
-
-
-
-
-

これは

-
-
-
df["出身都道府県"]=="Tochigi"
-
-
-
-
-

が条件に合致するかどうかTrue/Falseの配列になっていて、
-df[ [True/Falseの配列] ]とすると、Trueに対応する要素のみを返す
-フィルターのような役割になっている。

-
-
-

列の追加

-
-
-
#スカラー値の場合"初期化"のような振る舞いをする
-df["血液型"] = "A"
-df
-
-
-
-
-
-
-
#リストで追加
-df["血液型"] = [ "A", "O","AB","B","A"]
-df
-
-
-
-
-
-
-

特定の行を取得したい場合

-

たとえば、行番号がわかっているなら、iloc関数を使えば良い

-
-
-
df.iloc[3]
-
-
-
-
-

値のみ取得したければ先程と同様

-
-
-
df.iloc[3].values
-
-
-
-
-

また、以下のような使い方もできるが

-
-
-
df[1:4] #1から3行目まで
-
-
-
-
-

df[1]といった使い方は出来ない。

-
-
-

より複雑な行・列の抽出

-

上にならって、2000年より前に生まれた人だけを抽出し

-
-
-
df[ df["生年"] < 2000 ]
-
-
-
-
-

さらにこのうち身長が170cm以上の人だけがほしければ

-
-
-
df[(df["生年"] < 2000) & (df["身長"]>170)]
-
-
-
-
-

などとすればよい。
-他にもiloc,locなどを用いれば
-特定の行・列を抽出することができる

-
    -
  • ilocは番号の指定のみに対応

  • -
  • locは名前のみ

  • -
-

欲しい要素の数値もしくは項目名のリスト
-行・列の2つついて指定してやればよい。

-
-
-
df.iloc[[0], [0]] #0行目,0列目
-
-
-
-
-
-
-
#スライスで指定することもできる
-df.iloc[1:4, :3] #1-3行目かつ0-2列目 (スライスの終点は含まれないことに注意)
-
-#スライスの場合は、 1:4が[1,2,3]と同じ働きをするので、括弧[]はいらない
-
-
-
-
-

locを使う場合は、indexの代わりに項目名で指定する。

-

※今の場合、行を指定する項目名が既に整数値なので
-インデックスと見分けが付きづらいことに注意

-
-
-
df.loc[1:4,["名前","身長"]] 
-
-
-
-
-
-
-
df.loc[[1,2,3,4],"名前":"生年"]
-
-
-
-
-

といった具合。

-

locを使う場合、1:4や[1,2,3,4]は
-indexのスライスではなく、項目名を意味し
-Eさんのデータも含まれている事がわかる。

-
-
-
-

Webページにある表をDataFrameとして取得する

-

pandas内のread_html関数を用いれば、
-Webページの中にある表をDataFrame形式で取得することもできます。

-

以下では例としてWikipediaのノーベル物理学賞のページにある、受賞者一覧を取得してみましょう

-
-
-
url = "https://ja.wikipedia.org/wiki/%e3%83%8e%e3%83%bc%e3%83%99%e3%83%ab%e7%89%a9%e7%90%86%e5%ad%a6%e8%b3%9e"
-tables = pd.read_html(url)
-
-
-
-
-
-
-
print(len(tables))
-
-
-
-
-

ページ内に、21個もの表があることがわかります。
-(ほとんどはwikipediaのテンプレート等)

-

たとえば、2010年代の受賞者のみに興味がある場合は

-
-
-
df = tables[12]
-df
-
-
-
-
-
-
-

Pandasで複雑なエクセルファイルを操作する

-

Pandasにはread_excel()という関数が用意されていて、
-多数のシートを含むようなエクセルファイルを開くことも出来る。

-

まずは必要なモジュールをインポートしよう。

-
-
-
import pandas as pd
-from pandas import DataFrame
-
-
-
-
-

今まではGoogle Driveにいれたファイルを読み出していたが、
-Webから直接xlsxファイルを読み込んでみよう。

-
-
-
url = "https://www.mext.go.jp/content/20201225-mxt_kagsei-mext_01110_012.xlsx"
-input_file = pd.ExcelFile(url)
-
-
-
-
-

ブック内のシートの一覧は以下のように取得できる。

-
-
-
sheet_names = input_file.sheet_names
-print("pandas: シート名",sheet_names)
-
-
-
-
-

シートを指定するのは、インデックスかシート名の文字列で行う。

-

“1 穀類”を使うことにして、
-pandasにあるread_excel関数を使ってみよう。
-read_excel関数の最初の引数にはパスの他に、urlも取れる。

-
-
-
df = pd.read_excel(url,sheet_name="1穀類")
-df
-
-
-
-
-

同じものが得られている。

-
-

データの整形

-

次に、今取得したデータフレームのままでは少々扱い辛いので”整形”を考える。
-というのも前から4行ほど表示してみると…

-
-
-
df[0:4] 
-
-
-
-
-

最初の4行ほどに栄養素等の情報が入っているのだが、
-セルが結合されたりしているため、所々にNaNが入っていたりして見辛い。

-

(碁盤目の構造を破壊してしまうため「セルの結合」は機械的な処理と
-やや相性が悪く、プログラミングを用いたデータ分析では嫌われる)

-

各省庁の公開データのフォーマットの統一化は今後に期待することにして…
-まず以下の項目に該当する列だけを抽出する事を考える。

-
-
-
targets = ["食品名", "エネルギー","たんぱく質", "脂質", "炭水化物"]
-
-
-
-
-

該当するデータがどの行・列に格納されているかをコードで指定するのは、
-前述のファイル構造の事情からやや面倒くさい。

-

以下では、その場しのぎ的ではあるが、
-興味のある量が何番目かを指定してまとめてみることにしよう。

-

そのために、1-2行目の要素を表示してみよう。

-
-
-
#1-2行目(エクセルだと2行目)の要素から
-    #半角空白, 全角空白(\u3000)や改行コード\nを取り除いたリストを作って表示してみる
-
-for idx in range(1,3):
-    tmp = df.iloc[idx].values
-    tlist = list(map( lambda s: str(s).replace("\u3000","").replace("\n","").replace(" ",""),tmp))
-    print(tlist)
-#    for target in targets:
-#        tlist.index(target)
-
-
-
-
-

セルの結合により、興味のあるデータがどの列に記述されているかは注意が必要。

-

実際、[エネルギー]という文字列は1行目の6列目(それぞれインデックスでいうと0,5)で取得できるが、
-kJ単位になっていて、kcal単位でほしければ、7列目に格納された値が必要になる。

-

また、エクセルファイルを見るとわかるように、たんぱく質・脂質・炭水化物はさらに細分化されており、
-O列R列など、細かい列の分割が挿入されている. ~~これは大変困る~~

-

単純にたんぱく質・脂質・炭水化物と表記されている列のインデックスはそれぞれ9,12,20となる。
-食品名が格納されている列(3)、エネルギー[kJ単位] (6)と合わせて確認してみよう。

-
-
-
targets = [3,6,9,12,20]
-df.iloc[:,targets]
-
-
-
-
-

もう少し整形したいので、新しいデータフレームのコラムを書き換える。

-

食品名等が記載されているのは10行目以降なので、それを使い
-columnを指定する。

-

さらに、食品名に含まれる余分な文字コードも削除しておこう。

-
-
-
ndf = df.iloc[:,targets] 
-ndf = ndf.iloc[10:,:]
-ndf.columns=["食品名","エネルギー(kcal)","たんぱく質(g)","脂質(g)","炭水化物(g)"]
-ndf["食品名"] = ndf["食品名"].str.replace("\u3000"," ") # 食品名の中にある余分な全角空白(\u3000)を半角スペースに置き換える
-ndf
-
-
-
-
-

次に、食品名の一覧を取得した後、興味のあるもの(日常的に馴染みのあるもの)だけを
-ピックアップしてみよう。

-
-
-
print(list(ndf["食品名"]))
-
-
-
-
-

この中から…

-
    -
  • こむぎ[パン類]食パンリッチタイプ

  • -
  • こむぎ[パン類]フランスパン

  • -
  • こめ[水稲軟めし]精白米

  • -
  • そばそばゆで

  • -
  • こむぎ[うどん・そうめん類]うどんゆで

  • -
-

のみに興味があれば

-
-
-
tshokuhin = ["こむぎ [パン類] 食パン リッチタイプ","こむぎ [パン類] フランスパン","こめ [水稲軟めし] 精白米", "そば そば ゆで", "こむぎ [うどん・そうめん類] うどん ゆで"]
-ndf[ ndf["食品名"].isin(tshokuhin)]
-
-
-
-
-

などとする。

-

‘6野菜類’でも同様に…

-
-
-
df6 = pd.read_excel(url,sheet_name="6野菜類")
-df6.iloc[:,[3,6,9,12,20]]
-ndf6 = df6.iloc[:,[3,6,9,12,20]] 
-ndf6 = ndf6.iloc[10:,:]
-ndf6.columns=["食品名","エネルギー(kcal)","たんぱく質(g)","脂質(g)","炭水化物(g)"]
-ndf6["食品名"] = ndf6["食品名"].str.replace("\u3000"," ") 
-ndf6
-
-
-
-
-

特定のキーワードを含むものを全て取得して、
-食品名を細かく指定したり、対応する行番号のインデックスを取得できたりする

-
-
-
kyabetu = ndf6[ndf6["食品名"].str.contains('キャベツ')]
-kyabetu
-
-
-
-
-
-
-
tomato = ndf6[ndf6["食品名"].str.contains('トマト')]
-tomato
-
-
-
-
-

DataFrame同士を結合してまとめるなどして
-扱いやすいデータに整形していく.

-

縦方向の結合はpandasのconcat(concatenateの略)を使う。

-
-
-
tdf = pd.concat([kyabetu, tomato])
-tdf
-
-
-
-
-
-
-
-

DataFrameのcsv/Excelファイルへの書き出し

-

DataFrameオブジェクトは、pandas内の関数を用いれば、
-簡単にcsvやExcelファイルとして書き出すことができます。

-

先程の、2010年代のノーベル物理学賞受賞者のデータを、
-Google Driveにファイルとして書き出してみましょう。

-
-
-
from google.colab import drive
-drive.mount('/content/drive')
-
-
-
-
-

csvとして書き出す場合

-

適当にパスを指定して、DataFrameオブジェクトに
-to_csv関数を作用させます。

-
-
-
df.to_csv("/content/drive/My Drive/AdDS2021/pd_write_test.csv")
-
-
-
-
-

Excelファイルとして書き出す場合

-

この場合も同様で、to_excel関数を用います。

-
-
-
df.to_excel("/content/drive/My Drive/AdDS2021/pd_write_test.xlsx")
-
-
-
-
-

上記の関数内で文字コードを指定することもできます。
-例: encoding="utf-8_sig", encoding="shift_jis"

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_SingularValueDecomposition.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_SingularValueDecomposition.html deleted file mode 100644 index 5e565732..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_SingularValueDecomposition.html +++ /dev/null @@ -1,747 +0,0 @@ - - - - - - - - 特異値分解と情報削減 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

特異値分解と情報削減

-

このノートブックでは、行列の特異値分解と、その応用例として画像データの”低ランク近似”について説明する。

-

関連する線形代数の知識、とくに諸定理の証明については、適宜線形代数の教科書等を参照すること。

-

純然たる(≒形式的な?)線形代数の教科書には意外とSVDは載っていなかったりするので、工学であるとか数値計算など、応用を意識した教科書を参照するのが良い。

-

Webで無料のものが良ければ、Mathematics for Machine Learningもいいかもしれない
-※著者らのページのリンクからPDFがダウンロードできる。

-
-

特異値分解 (Singular Value Decomposition, SVD)

-

特異値分解は、線形代数の中でも応用上非常に重要である。
-本ノートで説明するような画像処理や情報削減の方法として用いられるだけでなく、量子多体系(物性や素粒子・原子核などの物理学,量子化学などが対象とする系)の計算手法である密度行列くりこみ群(DMRG)法など、自然科学分野の理論計算などの根幹にもなっている汎用性の高い手法である。

-

特異値分解定理:
-任意のランク\(r=[0,\min(m,n)]\)\(m \times n\)行列\(A\)

-
    -
  • \(m \times m\)のユニタリ行列 \(U\)

  • -
  • \(m \times n\)の対角行列\(\Sigma\)

  • -
  • \(n \times n\)のユニタリ行列 \(V\)

  • -
-

を用いて\( -A = U \Sigma V^\dagger -\) -と分解できる。
-上は\(A\)が複素行列の場合の表記で、実行列の場合は、\(U,V\)は直交行列であり、随伴操作(複素共役かつ転置)\(\dagger\)は転置\(T\)となり、対角行列\(\Sigma\)の各成分は非負となる。

-

以下では、特に断らない限り実行列の場合のみを考える。
-\(\Sigma\)の各対角成分を特異値と呼び、慣例的に\(\sigma_1 \geq \sigma_2 \geq ... \geq \sigma_r \geq 0\)となるよう並べられる。
-※一般の\(m \neq n\)の場合は長方行列となるので、上での”対角行列”は正確には、対角ブロックとゼロ行列ブロックを含むような行列を指す。

-

\(m<n\)の場合は例えば以下のような形:
-\( -\begin{pmatrix} -\sigma_1 & 0 &0 & 0 & ... & 0\\ -0& \ddots & 0 & \vdots & \ddots & \vdots \\ -0 & 0 & \sigma_r & 0& ... & 0 -\end{pmatrix} -\)

-

ここで、特異値の数\(r\)は行列の階数(ランク)と一致する。
-値の大きな\(\sigma_1\)から\(\sigma_k\)まで(\(k\leq r\))を保持することで、行列の低ランク近似を得ることができる。

-

もう少し”低ランク近似”と見なせるように、上の表式を\(U,V\)の列ベクトル\(u_1,...,u_m\), \(v_1,...,v_n\)を用いて書き換えてみよう:

-

行列の列ベクトルを用いた表記は -\( -A = -\begin{pmatrix} -u_1 & u_2 & \cdots & u_n -\end{pmatrix} -\begin{pmatrix} -\sigma_1 & ... & 0 \\ -0 & \ddots & 0 \\ -0 & ... & \sigma_n -\end{pmatrix} -\begin{pmatrix} -v_1 & v_2 & \cdots & v_n -\end{pmatrix}^T=\sigma_1 u_1 v_1^T + \sigma_2 u_2 v_2^T + ... + \sigma_r u_r v_r^T -\) -となる(\(r\leq n \))。

-

この表式と各\(\sigma_i\)が非負であることから、\(A\)を表現するのに、\(\sigma_1\)から\(\sigma_r\)を保持すればもとの\(A\)の情報が保たれるし、\(k < r\)までを保持すれば行列のある種の近似を与えていることが理解できる。

-

また、仮にrank \(k\)まででもとの行列\(A\)の”良い”※近似になっているならば、 -保持すべき行列要素はもとの\(mn\)から、\((m+n)r + r\)となり、\(r \ll m,n\)のときメモリの使用量を削減することもできる。
-機械学習で現れる行列演算は行列のサイズ”\(N\)に対して典型的には\(\mathcal{O}(N^2-N^3)\)を要するため、行列のサイズは小さいのに越したことはない。

-

※”良い”というのは曖昧な表現なので、なにか定義が必要である

-
-

\(\clubsuit\)発展的な注

-

なお、\(\sigma_k\)までを保持(\(\sigma_{k+1}=\ldots=\sigma_{n}=0\))した行列を\(\Sigma'\)とし計算した\(A' = U\Sigma'V^T\)は、フロベニウスノルムの意味で行列\(A\)のrank \(k\)における最良の近似を与えることが知られている:
-\(||A-A'||_F = \sqrt{ \sum^m_i \sum^n_j (A_{ij} - A'_{ij} )^2 } \)

-

上記の右辺から、近似が無い\(A=A'\)場合は0(最小)になることがわかる

-

特異値分解自体を自身で実装して使うのはたいへん教育的であるが実用的にはあまりオススメしない。
-というのも、数値誤差への配慮や数値計算の”コツ”を抑えなければ正しく実装するのは難しいだろう。
-(私はSVDのコードを自作したことはないが、Cholesky分解の実装で数値誤差の取り扱いで大変な苦労をした覚えがある)

-

Pythonを始め多くの数値計算に適したプログラミング言語では、代表的な線形代数のアルゴリズムはBLAS(Basic Linear Algebra Subprograms) やLAPACK(Linear Algebra PACKage)と呼ばれるライブラリを読む形で実装されているので、これらをありがたく使わせてもらうのが安全だ。

-
-

余談:

-

吉田が大学1年生で線形代数を初めて勉強したとき、教科書を前から読んだだけでは(代数としての色が強い本だったこともあり)何に使えるのかわからず、なかなか勉強するモチベーションがわかなかった。
-その後、物理や計算科学の分野において,線形代数の種々の概念が現れることを知り少しずつ理解が得られ、今では「理系の大学生に何を勉強すべきかと問われたら「線形代数をやれ」と言うね!」と主張するに至った。特に”空間を張る”とか”基底”といった概念は、2年生になり量子力学を勉強するようになり腑に落ちた覚えがある。

-

行列分解も何のことはない、\(100 \times 100\)のピクセルを持つ画像ファイルを表現するのに、100個の線形独立なベクトル(長さ=100)が必ずしも必要な訳ではなく、少数(\(<100\))の基底で表現することが出来る、と言っているだけだ。 -なぜなら、画像の背景部分などをイメージするとわかるように、画像のある行とある行(またはある列とある列)が互いに線形独立でない部分があるためである。

-
-
-
-
-

Numpy&Scipyを用いたSVD

-

かんたんな行列の例とPythonのライブラリを用いてSVDを実行してみよう。

-
-
-
import numpy as np
-from scipy import linalg
-from numpy.linalg import svd, matrix_rank
-
-# 適当な3×3行列(rank(A)=3)を作成して表示
-A = np.array([ [1,9,6],[2,4,6],[3,8,3] ])
-print("A\n",A, "\nrank", matrix_rank(A))
-
-# SVD(特異値分解)を実行
-U, Sigma, Vd = svd(A)
-print('それぞれの行列(U,S,Vd)の形状を確認 =>', U.shape, Sigma.shape, Vd.shape)
-print('特異値 => ', Sigma) #Sigmaは対角成分のみをベクトルのように持っている事がわかる。
-
-#積がもとのAと一致するかcheck
-print("USVd =>", np.dot(U, np.dot(np.diag(Sigma),Vd) ) )
-
-#Sigmaをrank2で近似してみる ≒ 行列の(2,2)成分を0にする
-Sigma[2] = 0.0
-USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) )
-print("USVd@rank2 =>",  USVd)
-print("||A-USVd||_F ", linalg.norm(A-USVd,"fro"))
-#Sigmaをrank1で近似してみる ≒ 行列の(1,1)&(2,2)成分を0にする
-Sigma[1] = 0.0
-USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) )
-print("USVd@rank1 =>",  USVd)
-print("||A-USVd||_F ", linalg.norm(A-USVd,"fro"))
-
-
-
-
-
A
- [[1 9 6]
- [2 4 6]
- [3 8 3]] 
-rank 3
-それぞれの行列(U,S,Vd)の形状を確認 => (3, 3) (3,) (3, 3)
-特異値 =>  [15.52961563  3.39284204  1.82199376]
-USVd => [[1. 9. 6.]
- [2. 4. 6.]
- [3. 8. 3.]]
-USVd@rank2 => [[2.27571625 8.70200595 5.94787683]
- [1.22318899 4.18145497 6.03173892]
- [2.04499401 8.22307947 3.0390196 ]]
-||A-USVd||_F  1.8219937599763407
-USVd@rank1 => [[2.27747026 8.71226915 5.9321303 ]
- [1.46888535 5.61909622 3.82600794]
- [1.84748528 7.06739811 4.81214776]]
-||A-USVd||_F  3.8511087217022104
-
-
-
-
-

確かに特異値分解ができているが、これだけではどんな恩恵があるのか、
-なぜ低ランク近似を考えるのかあまりピンとこないだろう。

-
-
-

画像データの特異値分解

-

では次に行列として、より具体的なもの、画像を考えてみよう。画像データは

-
    -
  • 縦横に並ぶピクセルの数を行列の行と列の数に対応させる

  • -
  • 各ピクセルの画素値(8ビット,グレースケールで表現するなら、0が黒255が白の256階調)を各”番地”での行列要素の値に対応させる

  • -
-

ことで、自然と行列とみなすことができる。

-

適当な写真をもってきて、簡単のためグレースケールに変換した後、特異値分解をしてみよう。

-

宇都宮大学オリジナルキャラクター「宇~太」の写真を用いる

-
-
-
import requests
-from PIL import Image
-from IPython.display import display
-
-!wget "https://raw.githubusercontent.com/SotaYoshida/Lecture_DataScience/main/notebooks/pic_for_notebook/u_ta.jpeg" -O u_ta.jpeg
-# ls コマンドでファイルを表示
-!ls 
-
-
-
-
-
--2022-10-11 06:41:42--  https://raw.githubusercontent.com/SotaYoshida/Lecture_DataScience/main/notebooks/pic_for_notebook/u_ta.jpeg
-Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.108.133, 185.199.109.133, ...
-Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.
-HTTP request sent, awaiting response... 200 OK
-Length: 146087 (143K) [image/jpeg]
-Saving to: ‘u_ta.jpeg’
-
-
-u_ta.jpeg             0%[                    ]       0  --.-KB/s               
-u_ta.jpeg           100%[===================>] 142.66K  --.-KB/s    in 0.008s  
-
-2022-10-11 06:41:43 (17.1 MB/s) - ‘u_ta.jpeg’ saved [146087/146087]
-
-sample_data  u_ta.jpeg
-
-
-
-
-
-
-
#画像ファイルを読み込み
-img = Image.open('u_ta.jpeg')
-gray_img = img.convert('L')
-gray_img.save('u_ta_mono.jpeg')
-gray_img = gray_img.resize((gray_img.width//3, gray_img.height//3))  #画像をリサイズ
-gray_img 
-
-
-
-
-../_images/Python_misc_SingularValueDecomposition_8_0.png -
-
-
-
-
# SVDを実行
-a = np.asarray(gray_img)
-u, s, v = svd(a)
-fullrank = matrix_rank(a)
-print("full rank => ", fullrank)
-
-# 陽に必要な行列要素の数を計算する関数
-def num_of_me(u,s,v,rank):
-    m,n = u.shape
-    return m * rank + rank + rank*n
-
-#低ランク近似を得る
-for factor in [0.05, 0.1, 0.2, 0.3, 1.0]:
-    rank = int(factor*fullrank)
-    ur = u[:, :rank]
-    sr = np.matrix(linalg.diagsvd(s[:rank], rank,rank))
-    vr = v[:rank, :]
-    b = np.asarray(ur*sr*vr)
-    img = Image.fromarray(np.uint8(b))
-    USVd = np.dot(ur, np.dot(sr,vr))
-    print("rank",rank, " Fnorm ", linalg.norm(a-USVd,"fro"), " # of m.e. ", num_of_me(u,s,v,rank) )
-    display(img)
-
-
-
-
-
full rank =>  196
-rank 9  Fnorm  3371.396392985502  # of m.e.  4743
-
-
-../_images/Python_misc_SingularValueDecomposition_9_1.png -
rank 19  Fnorm  1837.5080112082685  # of m.e.  10013
-
-
-../_images/Python_misc_SingularValueDecomposition_9_3.png -
rank 39  Fnorm  883.9820242926976  # of m.e.  20553
-
-
-../_images/Python_misc_SingularValueDecomposition_9_5.png -
rank 58  Fnorm  513.8683243934796  # of m.e.  30566
-
-
-../_images/Python_misc_SingularValueDecomposition_9_7.png -
rank 196  Fnorm  8.531916171225453e-11  # of m.e.  103292
-
-
-../_images/Python_misc_SingularValueDecomposition_9_9.png -
-
-

幾つかのrankについて元のグレースケール画像との差分(フロベニウスノルム)と、陽に必要な行列要素の数、近似後の画像を表示させてみた。

-

元の行列(rank=196, 行列要素の数103292)に対して -rank=39, 58などでの近似を用いることで、大体2-3万の行列要素で画像を表現できる事がわかる。

-

今の場合は一枚の写真のみでサイズもたかがしれているものの、例えば画像認識タスクを行う機械学習モデルの訓練の場合には、一般に大量の画像データ(とラベル等)が必要になるため、近似で削減できる情報が数分の1スケールだとしても馬鹿にはできない。

-

実際にはSVDを計算するコストも勘定に入れなければフェアな評価は難しく、SVDを陽に用いたアーキテクチャがやりたいタスクに対して最適である保証はないが、実際に画像認識モデルを作り学習を行う際には一考の余地はあると言えるだろう。

-
-

練習問題

-

上では、numpy.linalgにあるsvdでSVDを実装し、scipylinalg.diagsvd関数を用いて低ランク近似を計算した。 -かんたんな行列の例を参考にSVDの結果得られる\(\Sigma\)の行列要素を書き換えて、もとの行列の低ランク近似を計算し、ライブラリの出力と一致するか確かめてみよう。※SVDや行列積などはnumpyを用いて良い。

-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_StyleGAN3.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_StyleGAN3.html deleted file mode 100644 index ccf8cde4..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_StyleGAN3.html +++ /dev/null @@ -1,780 +0,0 @@ - - - - - - - - StyleGAN3+CLIPによる写真生成 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - -
- -
- 目次 -
- -
-
-
-
-
- -
- -
-

StyleGAN3+CLIPによる写真生成

-

このノートブックでは、StyleGAN3+CLIPを用いた顔写真生成をデモンストレーションする。
-*ランタイムタイプはGPUによる実行が推奨

-

参考:

- -

StyleGAN3及びCLIPのライセンス

-
    -
  • StyleGAN3はGAN(敵対的生成ネットワーク)を用いた生成モデルのひとつで、NVIDIAからこちらのライセンスのもと提供されている。

  • -
  • CLIPはOpenAIによる画像とテキスト(自然言語)の関連性を学習し画像分類を行うモデルでMITライセンスのもと公開されているこちら

  • -
-

以下のコードを実行したりする分には問題はないが、別の用途で用いる際にはライセンスの詳細を参照し遵守すること. -なお、このノートブックの作成においてはこちらのレポジトリを参考にした。

-
-

SetUp

-
-
-
#@markdown **準備** 
-# @markdown このセルを実行して、ダウンロード等の準備を行おう
-
-#@markdown ---
-
-!pip install --upgrade torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html
-!git clone https://github.com/NVlabs/stylegan3
-!git clone https://github.com/openai/CLIP
-!pip install -e ./CLIP
-!pip install einops ninja
-
-import sys
-sys.path.append('./CLIP')
-sys.path.append('./stylegan3')
-
-import io
-import os, time, glob
-import pickle
-import shutil
-import numpy as np
-from PIL import Image
-import torch
-import torch.nn.functional as F
-import requests
-import torchvision.transforms as transforms
-import torchvision.transforms.functional as TF
-import clip
-import unicodedata
-import re
-from tqdm.notebook import tqdm
-from torchvision.transforms import Compose, Resize, ToTensor, Normalize
-from IPython.display import display
-from einops import rearrange
-from google.colab import files
-
-device = torch.device('cuda:0')
-print('Using device:', device, file=sys.stderr)
-
-
-
-
-
-
-
#@markdown **必要な関数の準備:** このセルも実行しておこう
-
-def fetch(url_or_path):
-    if str(url_or_path).startswith('http://') or str(url_or_path).startswith('https://'):
-        r = requests.get(url_or_path)
-        r.raise_for_status()
-        fd = io.BytesIO()
-        fd.write(r.content)
-        fd.seek(0)
-        return fd
-    return open(url_or_path, 'rb')
-
-def fetch_model(url_or_path):
-    if "drive.google" in url_or_path:
-      if "18MOpwTMJsl_Z17q-wQVnaRLCUFZYSNkj" in url_or_path: 
-        basename = "wikiart-1024-stylegan3-t-17.2Mimg.pkl"
-      elif "14UGDDOusZ9TMb-pOrF0PAjMGVWLSAii1" in url_or_path:
-        basename = "lhq-256-stylegan3-t-25Mimg.pkl"
-    else:
-        basename = os.path.basename(url_or_path)
-    if os.path.exists(basename):
-        return basename
-    else:
-        if "drive.google" not in url_or_path:
-          !wget -c '{url_or_path}'
-        else:
-          path_id = url_or_path.split("id=")[-1]
-          !gdown --id '{path_id}'
-        return basename
-
-def slugify(value, allow_unicode=False):
-    """
-    Taken from https://github.com/django/django/blob/master/django/utils/text.py
-    Convert to ASCII if 'allow_unicode' is False. Convert spaces or repeated
-    dashes to single dashes. Remove characters that aren't alphanumerics,
-    underscores, or hyphens. Convert to lowercase. Also strip leading and
-    trailing whitespace, dashes, and underscores.
-    """
-    value = str(value)
-    if allow_unicode:
-        value = unicodedata.normalize('NFKC', value)
-    else:
-        value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii')
-    value = re.sub(r'[^\w\s-]', '', value.lower())
-    return re.sub(r'[-\s]+', '-', value).strip('-_')
-
-def norm1(prompt):
-    "Normalize to the unit sphere."
-    return prompt / prompt.square().sum(dim=-1,keepdim=True).sqrt()
-
-def spherical_dist_loss(x, y):
-    x = F.normalize(x, dim=-1)
-    y = F.normalize(y, dim=-1)
-    return (x - y).norm(dim=-1).div(2).arcsin().pow(2).mul(2)
-
-def prompts_dist_loss(x, targets, loss):
-    if len(targets) == 1: # Keeps consitent results vs previous method for single objective guidance 
-      return loss(x, targets[0])
-    distances = [loss(x, target) for target in targets]
-    return torch.stack(distances, dim=-1).sum(dim=-1)  
-
-class MakeCutouts(torch.nn.Module):
-    def __init__(self, cut_size, cutn, cut_pow=1.):
-        super().__init__()
-        self.cut_size = cut_size
-        self.cutn = cutn
-        self.cut_pow = cut_pow
-
-    def forward(self, input):
-        sideY, sideX = input.shape[2:4]
-        max_size = min(sideX, sideY)
-        min_size = min(sideX, sideY, self.cut_size)
-        cutouts = []
-        for _ in range(self.cutn):
-            size = int(torch.rand([])**self.cut_pow * (max_size - min_size) + min_size)
-            offsetx = torch.randint(0, sideX - size + 1, ())
-            offsety = torch.randint(0, sideY - size + 1, ())
-            cutout = input[:, :, offsety:offsety + size, offsetx:offsetx + size]
-            cutouts.append(F.adaptive_avg_pool2d(cutout, self.cut_size))
-        return torch.cat(cutouts)
-
-make_cutouts = MakeCutouts(224, 32, 0.5)
-
-def embed_image(image):
-  n = image.shape[0]
-  cutouts = make_cutouts(image)
-  embeds = clip_model.embed_cutout(cutouts)
-  embeds = rearrange(embeds, '(cc n) c -> cc n c', n=n)
-  return embeds
-
-def embed_url(url):
-  image = Image.open(fetch(url)).convert('RGB')
-  return embed_image(TF.to_tensor(image).to(device).unsqueeze(0)).mean(0).squeeze(0)
-
-class CLIP(object):
-  def __init__(self):
-    clip_model = "ViT-B/32"
-    self.model, _ = clip.load(clip_model)
-    self.model = self.model.requires_grad_(False)
-    self.normalize = transforms.Normalize(mean=[0.48145466, 0.4578275, 0.40821073],
-                                          std=[0.26862954, 0.26130258, 0.27577711])
-
-  @torch.no_grad()
-  def embed_text(self, prompt):
-      "Normalized clip text embedding."
-      return norm1(self.model.encode_text(clip.tokenize(prompt).to(device)).float())
-
-  def embed_cutout(self, image):
-      "Normalized clip image embedding."
-      return norm1(self.model.encode_image(self.normalize(image)))
-  
-clip_model = CLIP()
-
-
-
-
-
-
-
#@title  { run: "auto" }
-#@markdown **モデルの選択** 
-
-
-#@markdown There are 4 pre-trained options to play with:
-#@markdown - FFHQ: Trained with human faces. 
-#@markdown - MetFaces: Trained with paintings/portraits of human faces.
-#@markdown - AFHQv2: Trained with animal faces.
-#@markdown - Cosplay: Trained by [l4rz](https://twitter.com/l4rz) with cosplayer's faces.
-#@markdown - Wikiart: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the Wikiart 1024 dataset.
-#@markdown - Landscapes: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the LHQ dataset.
-
-#@markdown ---
-
-base_url = "https://api.ngc.nvidia.com/v2/models/nvidia/research/stylegan3/versions/1/files/"
-
-Model = 'MetFaces' #@param ["FFHQ", "MetFaces", "AFHQv2", "cosplay", "Wikiart", "Landscapes"]
-
-#@markdown ---
-
-model_name = {
-    "FFHQ": base_url + "stylegan3-t-ffhqu-1024x1024.pkl",
-    "MetFaces": base_url + "stylegan3-r-metfacesu-1024x1024.pkl",
-    "AFHQv2": base_url + "stylegan3-t-afhqv2-512x512.pkl",
-    "cosplay": "https://l4rz.net/cosplayface-snapshot-stylegan3t-008000.pkl",
-    "Wikiart": "https://archive.org/download/wikiart-1024-stylegan3-t-17.2Mimg/wikiart-1024-stylegan3-t-17.2Mimg.pkl",
-    "Landscapes": "https://archive.org/download/lhq-256-stylegan3-t-25Mimg/lhq-256-stylegan3-t-25Mimg.pkl"
-}
-
-network_url = model_name[Model]
-
-with open(fetch_model(network_url), 'rb') as fp:
-  G = pickle.load(fp)['G_ema'].to(device)
-
-zs = torch.randn([10000, G.mapping.z_dim], device=device)
-w_stds = G.mapping(zs, None).std(0)
-
-
-
-
-
-
-

パラメータの指定と実行

-
-
-
#@markdown **Parameters**
-
-#@markdown `texts`: Enter here a prompt to guide the image generation. You can enter more than one prompt separated with
-#@markdown `|`, which will cause the guidance to focus on the different prompts at the same time, allowing to mix and play
-#@markdown with the generation process.
-
-#@markdown `steps`: Number of optimization steps. The more steps, the longer it will try to generate an image relevant to the prompt.
-
-#@markdown `seed`: Determines the randomness seed. Using the same seed and prompt should give you similar results at every run.
-#@markdown Use `-1` for a random seed.
-
-#@markdown ---
-
-texts = "female | smiling | black hair"#@param {type:"string"}
-steps = 100#@param {type:"number"}
-seed = 1234#@param {type:"number"}
-#@markdown ---
-
-if seed == -1:
-    seed = np.random.randint(0,9e9)
-    print(f"Your random seed is: {seed}")
-
-texts = [frase.strip() for frase in texts.split("|") if frase]
-
-targets = [clip_model.embed_text(text) for text in texts]
-
-picmod = 30
-
-tf = Compose([
-  Resize(224),
-  lambda x: torch.clamp((x+1)/2,min=0,max=1),
-  ])
-
-def run(timestring):
-  torch.manual_seed(seed)
-
-  # Init
-  # Sample 32 inits and choose the one closest to prompt
-
-  with torch.no_grad():
-    qs = []
-    losses = []
-    for _ in range(8):
-      q = (G.mapping(torch.randn([4,G.mapping.z_dim], device=device), None, truncation_psi=0.7) - G.mapping.w_avg) / w_stds
-      images = G.synthesis(q * w_stds + G.mapping.w_avg)
-      embeds = embed_image(images.add(1).div(2))
-      loss = prompts_dist_loss(embeds, targets, spherical_dist_loss).mean(0)
-      i = torch.argmin(loss)
-      qs.append(q[i])
-      losses.append(loss[i])
-    qs = torch.stack(qs)
-    losses = torch.stack(losses)
-    # print(losses)
-    # print(losses.shape, qs.shape)
-    i = torch.argmin(losses)
-    q = qs[i].unsqueeze(0).requires_grad_()
-
-  # Sampling loop
-  q_ema = q
-  opt = torch.optim.AdamW([q], lr=0.03, betas=(0.0,0.999))
-  loop = tqdm(range(steps))
-  for i in loop:
-    opt.zero_grad()
-    w = q * w_stds
-    image = G.synthesis(w + G.mapping.w_avg, noise_mode='const')
-    embed = embed_image(image.add(1).div(2))
-    loss = prompts_dist_loss(embed, targets, spherical_dist_loss).mean()
-    loss.backward()
-    opt.step()
-    loop.set_postfix(loss=loss.item(), q_magnitude=q.std().item())
-
-    q_ema = q_ema * 0.9 + q * 0.1
-    image = G.synthesis(q_ema * w_stds + G.mapping.w_avg, noise_mode='const')
-
-    if i % picmod == 0:
-      display(TF.to_pil_image(tf(image)[0]))
-      print(f"Image {i}/{steps} | Current loss: {loss}")
-    pil_image = TF.to_pil_image(image[0].add(1).div(2).clamp(0,1))
-    os.makedirs(f'samples/{timestring}', exist_ok=True)
-    pil_image.save(f'samples/{timestring}/{i:04}.jpg')
-
-try:
-  timestring = time.strftime('%Y%m%d%H%M%S')
-  run(timestring)
-except KeyboardInterrupt:
-  pass
-
-
-
-
-

Stepごとに指示に近づいている(上手くいった一例)。

-

少しずつフェードアウトしてくところや、背景が髪の毛と変化(同化)していく点は不思議。

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_VScode.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_VScode.html deleted file mode 100644 index f3de3a34..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_VScode.html +++ /dev/null @@ -1,789 +0,0 @@ - - - - - - - - コードの編集環境とGitHub Copilot — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -
-

コードの編集環境とGitHub Copilot

-

この章では、Pythonを始め様々なプログラミング言語のソースコードを編集するための環境として、VS Codeを紹介する。
-また、GitHub Copilotという、大規模言語モデルを使ったコード補完ツールを紹介する。

-
-

Note

-

他のノートブックと同様に、MacユーザーはCtrlを適宜Commandに置き換えて読んでほしい。

-
-

免責事項として、本章の記述は2023年7月時点のもの(著者の理解)であり、アップデート等によって内容が不正確となる可能性があることを予めご了承いただきたい。
-また、一般論として、環境構築に伴うエラーの解決は、使用環境,バージョンや設定などに依存するため、本章の記述をそのまま適用できない場合があること、 -インストール等に関する種々のトラブルについて著者は責任を負わないこともあわせてご了承いただきたい。
-これも一般論だが、OSに備わっているバックアップ機能(Windows バックアップ, TimeMachine)などで、常時バックアップは取るようにしよう。

-
-

Visual Studio Code (VS Code)の導入

-

エディタは様々なものがあるが、VS Codeは機能が豊富かつユーザー数が多い(=情報も豊富な)ため、最もオススメしやすいエディタである。
-とくに拡張機能が便利で、言語ごとに様々な拡張機能が用意されている。著者も紆余曲折ありVS Codeを95%位の割合でメインエディタとして使っている。

-
-

インストール方法

-
    -
  1. VScodeのインストールは、公式サイトまたはOS毎のStore系のソフト(Microsoft Store, Mac App Store)からインストールする。

  2. -
  3. インストール後、VScodeを起動すると、日本語化を促されるので、必要であれば指示に従う。

  4. -
  5. 初めてPythonのコードをVS Codeで作成/開く際に、拡張機能のインストールを促されるかもしれない。その時は、インストールを許可しよう。

  6. -
  7. その他、必要に応じて拡張機能を導入したり、フォントを変更したりすると良い。表示サイズなどはショートカットで拡大(Ctrl++)・縮小(Ctrl+-)できる。

  8. -
-
-

Windows+WSLの導入例

-

著者はWindowsユーザーではないので、情報が古い可能性があるがご容赦頂きたい。

-
    -
  1. StoreまたはWebページからインストールする

    - -
  2. -
  3. 起動すると、日本語化を提案してくれるので日本語で使いたければ、インストールして再起動をクリック

  4. -
- -
    -
  1. ターミナルから新しいターミナルを開くと規定のターミナルが開く(Windowsの場合だとpowershell?) -∨記号から、Ubuntu(WSL)を選択すると、Ubuntu(Linux)ターミナルを起動することが出来る

    - - - -
  2. -
-
-
-
-

Pythonコードの編集

-
    -
  1. 適当なPythonファイルを作成してみよう。[ファイル]→[新しいファイル]で新規ファイルを作成する。
    -その際ファイルの種類を入力するか、ファイル名を入力してくださいなどという表示がでるのでpythonと打ち、Pythonファイルを作成する。
    -Untitled-1などというファイルが作成されるので、Ctrl+Sで保存しようとすると、ファイル名を入力するように促される。
    -その際、適当な名前をつけてみよう。例えばsample_code.pyなどとする。

  2. -
  3. ファイルを編集したら、保存(Ctrl+S)しよう。編集内容が残っている場合は(標準では)ファイル名の横に丸◯が表示されるので、わかりやすい。 -Pythonコードだけでなく、様々なファイルを編集したり閲覧したりすることができるので試してみよう。(例: pdfファイルをVS Codeにドラッグ&ドロップしてみよう)

  4. -
  5. 拡張子に応じて、なんのプログラミング言語で書かれたソースコードなのかを推定して、色分けしてくれたりする。

  6. -
  7. また、VS Codeでは、”フォルダを開く”ことで複数のソースコードを効率的に編集したりすることもできる。

  8. -
-
-
-

ターミナルの起動

-

VS Codeでは、ターミナルをVS Code内で起動することができる。
-[ターミナル]タブから新しいターミナル(規定のターミナル)を起動することができ、画面の上下や左右などに分割して表示することができる。
-したがって、ソースコードを編集しながら実行したりといった作業がしやすい。

-

Windowsの場合は、WSL(Windows Subsystem for Linux)をインストールしておくと、Linuxのターミナルを使うことができる。
-MacやLinuxの場合は言うまでもなく、規定のターミナルが開くので、Unix/Linuxコマンドを使えば良い。

-

よく使うLinuxコマンドを下記の表にまとめる:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

コマンド

説明

ls

カレントディレクトリのファイル一覧を表示する

cd

ディレクトリを移動する

pwd

カレントディレクトリのパスを表示する

mkdir

ディレクトリを作成する

rm

ファイルを削除する(ゴミ箱を経由しないので使用には注意すること)

cp

ファイルをコピーする

mv

ファイルを移動する

cat

ファイルの中身を表示する

head

ファイルの先頭を表示する

tail

ファイルの末尾を表示する

grep

ファイルの中から文字列を検索する

echo

文字列を表示する

chmod

ファイルのアクセス権を変更する

sudo

root権限でコマンドを実行する

-

それぞれのコマンドの使い方やオプションについては網羅的に説明することはしないので、適宜調べて使い方を覚えてほしい。
-Chat GPTなどに尋ねてみるのも良い。

-

ターミナルからPythonコードを実行する際は、

-
    -
  1. pythonコマンドでPythonの対話環境を起動して使う

  2. -
  3. pythonコマンドに続けてファイル名を入力し、そのファイルを実行する

  4. -
-

の2つの方法がある。最初は1の方法でも良いが、コードで実現したい作業が大きくなるにつれ、 -作成したソースコードを後者の方法で実行することが多くなるはずだ。

-
python sample_code.py
-
-
-

※システムによってはpython3などとバージョンを明示的に指定しないといけない場合もあるので注意すること。
-Pythonをコマンドラインで使う際に毎回pythonなどと入力するのが面倒なら、 -エイリアスを設定して別ののコマンド(著者はpyとしている)に置き換えてしまうのも良い。

-

(Linuxコマンドやシェルについての知識が少しだけ必要になるが)詳しい方法については「python コマンド エイリアス」などで検索してみよう。

-
-
-
-

授業資料(.ipynb)をVS codeで実行・編集する

-

VS Codeを使うと、ローカル環境で.ipynbファイルを実行・編集することができる。 -著者も、この授業資料の作成にはVS Codeを使っている。

-

以下で紹介するGitHub Copilotとの相性も良いので、今後プログラミング学習を継続するつもりだ、という方は、 -VS Codeでの.ipynbファイルの実行・編集も是非やってみてほしい。

-
-

授業資料のダウンロード方法

-

本授業資料の.ipynbファイルは、GitHubのレポジトリかBookの各ページからダウンロードすることができる。

-
    -
  • 方法1: GitHubのレポジトリからダウンロードする. -<>Codeという緑色のボタンをクリックし、Download ZIPをクリックすると、全てのファイルをダウンロードできる。 -展開したフォルダ内のnotebooksというディレクトリが、本授業資料の.ipynbファイルがある場所である。

    - -
  • -
  • 方法2: Bookの各ページからダウンロードする. ブックの各章の上部にダウンロードボタン(下向き矢印)があるので、そこから.ipynb形式を選択し、ダウンロードすれば良い。

  • -
-
-
-

ipynb形式のファイルをVS Codeで開く&実行する

-

実行には当然Python環境が必要なので、インストール済みであるとする。

-
    -
  1. ターミナルから

    -
    pip3 install jupyter
    -
    -
    -

    などとして、Jupyterをインストールしておく。

    -
  2. -
  3. VS Codeを起動し、ダウンロードしたipynbファイルを開く。

  4. -
  5. コードセルを実行するには、Shift+Enterを押す。または、コードセルの左側にある▶︎をクリックする。このとき、複数のPython環境がインストールされている場合は、どのPython環境で実行するかを選択する必要がある。

  6. -
  7. コードセルの実行結果が表示される。

  8. -
-
-
-
-

GitHub Copilot

-

GitHub Copilotは、GitHubがOpenAIと共同で開発したコード補完ツールである。
-背後には、GPT-3ベースのOpenAI Codexが動いており、文字通りcopilotとして様々なコードやスニペットを提案してくれる。

-

GitHub Copilotは、VS Codeなどの拡張機能としても使用することができる。 -ただし、GitHub Copilotが生成するコードは完璧ではないため、使う際は、提案されたコードを注意深く確認し、必要に応じて修正を行う必要があることは言うまでもない。

-

GitHub Copilotを使うには、まず、GitHub Copilotのベータ版に登録する必要がある。学生は、学生証などを提出することで、無料で登録・使用することができる。上手く使いこなせれば、かなりの生産性向上が期待できるツールであり、私も日々の研究において活用している。

-

もちろん、自身の意図を100%反映したコードを生成してくれるわけではないが、コードの骨組みを作ってくれるため大幅に作業が楽になることも多い。ときに「こんな書き方もあるのか」という気づきを与えてくれたりもする。

-
-

VS Codeへの導入

-
    -
  1. GitHub Copilotに登録する。この際、GitHubアカウントを作成する必要がある。 -既にGitHubアカウントを持っている場合は、そのアカウントでログインする。
    -「Github Copilot 学生申請」などで検索すると、学生向けの登録方法が見つかる。 -認証が済むと、GitHubのアカウントがPROアカウントになり、Copilotを使うことができるようになる。

  2. -
  3. 次に、Copilotのページから、Start my free trialをクリックし、指示に従う。

  4. -
  5. VS Codeのアカウント(人型)のアイコンから、GitHubアカウントにログインする。

  6. -
  7. VS Codeの拡張機能タブから[GitHub Copilot]などと検索したのち、拡張機能をインストールする(2.でインストールが始まるかも)。その後指示に従い、インストールを完了する。

  8. -
-
-
-

試してみよう

-

試しに著者の環境(VS Code)で「適当な二次元データのヒートマップを描画するコードは以下のようになる」などと打つと…
-以下のように、自身で入力した際よりも薄い色でコード(場合によっては複数行)が提案される。

- -

Copilotの提案を受け入れるにはTabキーを押し、棄却する場合にはEscを押せば良い。複数行に渡る場合も同様である。 -こうした作業を繰り返して生成されたコードを実行してみよう。

-
-
-
#適当な二次元データのヒートマップを描画するコードは以下のようになる:
-
-import numpy as np
-import matplotlib.pyplot as plt
-import seaborn as sns
-
-# 2次元データの生成
-x = np.random.randn(1000)
-y = np.random.randn(1000)
-
-# ヒストグラムの描画
-plt.hist2d(x, y, bins=50, cmap='Blues')
-plt.show()
-
-
-
-
-../_images/Python_misc_VScode_4_0.png -
-
-

もう少し具体的にカラーマップも指定してみよう。以下のコード例は -「適当な二次元データのヒートマップを作成するコード、但しカラーマップはjetを用いる。」と入力したあとに提案されたコードである。

-
-
-
import numpy as np
-import matplotlib.pyplot as plt
-import matplotlib.cm as cm
-
-#データの作成
-x = np.arange(0, 10, 0.1)
-y = np.arange(0, 10, 0.1)
-X, Y = np.meshgrid(x, y)
-Z = np.sin(X) + np.cos(Y)
-
-#ヒートマップの作成
-plt.pcolor(X, Y, Z, cmap=cm.jet)
-plt.colorbar()
-plt.show()
-
-
-
-
-../_images/Python_misc_VScode_6_0.png -
-
-

1回目はseabornライブラリを使っていたのに対し、2回目ではmatplotlib.cmからカラーマップcmを呼んでいる事がわかる。 -ランダムなデータの作り方も1回目と2回目、あるいはユーザーの実行ごとに変わったりすることに注意しよう。

-

繰り返しになるが、GitHub Copilotの提案が本当に自身の意図したものとなっているかについては、常にユーザーである我々が注意して確認する必要があることは肝に命じておこう。

-
-
-

練習相手・チューターとしてのCopilot/Chat GPT

-

この授業を履修する皆さんにはぜひ、GitHub CopilotやChat GPTを、自身の学習のための練習相手や24時間対応のTAやチューターのように活用してもらいたい。
-大規模言語モデルを使用したチャットボット(Chat GPT)は、プロンプトと呼ばれる指示文を適切に与えることで、その文脈に沿った文章を生成してくれる(かもしれない)という性質のものである。

-

自分が望むような文章を生成する、あるいは文章生成を”回答”とみなし活用するためには、プロンプトの与え方に工夫が必要になる。
-「何がわからないのかも分からない」状態では質問のしようがないのと同様、指示が漠然としているとおそらく有効な回答を引き出す蓋然性は低くなってしまう。 -プログラミング学習に活用するための適切なプロンプトを工夫することは、それ自体が自身のやりたい作業を言語化するという作業になっていて、一定の学習効果が期待される。

-

皆さんの主体的な学習にむけて、幾つかChat GPTの使用例を紹介してみよう。
-適当な指示文を与えてみる。

- -

もちろん、ここでは具体的なファイル構造を示したりファイルを与えているわけではないので、正しく動く保証も全く無いわけだが、概ねもっともらしいコードを生成してくれている。 -仮に提案されたコードがうまく動かない/使えないとき、うまく行かない理由と関連していそうな情報を与えてやったりすることで、解決策を提示してきたり、補足知識を与えてくれたりするという例も見せよう。

- - -

細かいことを言うと、2.の1つめの画像の提案(encoding="SHIFT-JIS")は、サポートされていないオプションの指定となりエラーになるが、(言語モデルはPythonの文法、とくにPythonの中での文字コードの指定に相当するコードを”理解”しているわけではないため)推論としては真っ当なものになっている。

-

実は上の画像で挙げた例は、実際にPythonでcsvやエクセルファイルを読み書きしようとする際に、よく遭遇するエラーの例になっていて、 -私はそのことを知っているため、上のようなある種”誘導的な”プロンプトを与えることで、より有用な回答を得られるよう仕向けている。 -2.の2つめの画像で、より適切なオプションを指定するためにもう少しヒントをあげているという訳だ。

-

“自身の理解やこれまでの思考・試行を開示した上で質問をする”ことが、他人に質問する際に有効な回答を引き出すための近道であることと同じで、 -言語モデルを対話的に活用する上では、こうしたコツを抑えておくと良いかもしれない。

-

また、大規模言語モデルの性質・特性やその背景にある基礎について理解を深めることも非常に重要な姿勢だと感じる。
-理研AIPシンポジウムでの岡崎直観先生の特別講演Youtubeへのリンクが非常に参考になる。ぜひ一度視聴してみてほしい。

-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_numpy.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_numpy.html deleted file mode 100644 index d7e38f21..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_numpy.html +++ /dev/null @@ -1,835 +0,0 @@ - - - - - - - - Numpyについて — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -

Open In Colab

-
-

Numpyについて

-

この授業で使うノートブックや、巷に転がってるPythonのコードでは、たびたびNumpyというものが使われています。 -この補足ノートではそのNumpyについて説明します。

-

numpyは数値演算ライブラリで、機械学習・画像音声処理などなど様々な場面で使用されるライブラリです。
-その特徴としては色々ありますが、

-
    -
  • 配列を用いた計算が楽かつ高速にできる

  • -
  • その他数学的な処理がパッケージ化されている

  • -
-

といったところでしょうか。

-

1番目の点ですが、一般にPythonのような動的型付け言語に分類される言語は、Cなどの静的言語と呼ばれる言語に比べて、計算時間が長くかかってしまうことが多いです。 -とくに、コンピュータを用いたシミュレーションの至るところに現れる配列の操作や、行列やベクトルに対する演算でその差が顕著なものとなります。

-

一方、Pythonで読み出せるnumpyライブラリは、中身はC言語(およびFortran)で実装されていて、かつBLAS(行列演算ライブラリ)など最適化された線形計算ライブラリを使用できるためPythonの書きやすさを維持したまま、高速な計算を実現することができます。

-

参考: NASAのModeling Gruによる数値演算速度の比較
-https://modelingguru.nasa.gov/docs/DOC-1762
-https://modelingguru.nasa.gov/docs/DOC-2783

-

2番目の点
-numpyでは数学で用いる種々の関数(sin,cos,log,log10, etc.)が定義されていて簡単に読み出すことができます。また、乱数を生成してサイコロを振ったりすることも簡単です。

-
-

numpy.array

-

それではnumpyimportして、使ってみましょう。

-
-
-
import numpy as np #numpyとかくと長いのでnpという名前で使う
-
-a = [ i for i in range(1,5001) ]
-b = np.array(a)
-
-
-
-
-

まずは、1から5000までの整数が並んだリストaと、
-それをnp.array()関数に突っ込んだbを定義してみました。

-
-
-
print("a", a)
-print("b", b)
-
-
-
-
-
a [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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000]
-b [   1    2    3 ... 4998 4999 5000]
-
-
-
-
-

中身は同じものなのですが、bは途中を省略して表示してくれています。気が利いていますね。
-ではtypeを調べてみましょう

-
-
-
print("aの型", type(a))
-print("bの型", type(b))
-
-
-
-
-
aの型 <class 'list'>
-bの型 <class 'numpy.ndarray'>
-
-
-
-
-

aは当然リスト型です。
-一方、bnumpy.ndarrayという型であることがわかりました。

-

numpy.ndarrayというのは、numpyのもとで定義されているN-dimensional array、つまりN次元配列の略です。

-

さて、次にnumpy.array同士の足し算をやってみましょう。
-リスト(2章のノート)の足し算では、リスト同士の結合を意味していました。

-
-
-
aa = a + a 
-print(aa)
-print("aaの長さ", len(aa))
-
-
-
-
-
[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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000]
-aaの長さ 10000
-
-
-
-
-

長さが倍になっています。

-

一方、numpy.arrayであるbを足してみると…

-
-
-
bb= b + b
-print(bb, len(bb))
-
-
-
-
-
[    2     4     6 ...  9996  9998 10000] 5000
-
-
-
-
-

というように、要素同士の和になっていることがわかります (長さは5000のまま)

-

あるいは、3をbにかけてみると

-
-
-
b3 = 3*b
-print(b3,len(b3))
-
-
-
-
-
[    3     6     9 ... 14994 14997 15000] 5000
-
-
-
-
-

となり、すべての要素が3倍されています。

-

これはよくよくみるとスカラー倍が定義できている.つまり、ベクトルとしての性質を持っている事がわかります。

-
-
-

np.dot

-

データ分析をする際「要素ごとの積をとって和を取る」という操作が頻繁に表れます。
-たとえば\(a=[1.0,3.0,4.0]\)\(b=[-2.0,1.0,5.0]\)について\(1 \times (-2) + 3.0 \times 1.0 + 4.0 \times 5.0 = 21\)といった操作です。 -この操作は数学的には、実数を成分にもつベクトルの内積に対応しますがnumpyにはこの機能が備わっています。

-
-
-
a = [1.0,3.0,4.0]
-b = [-2.0,1.0,5.0]
-
-np.dot(a,b)
-
-
-
-
-
21.0
-
-
-
-
-

多項式回帰の際の二乗誤差なども

-

\(\chi^2 = \sum^N_{i=1} (y_i - (ax_i+b))^2\)\(y_i-(ax_i+b)\)\(i\)番目の成分に持つベクトルの自身との内積になるので、簡単に実装することができます。

-
-
-

ブロードキャスト機能

-

numpyにはブロードキャストと呼ばれる機能が備わっていてndarray同士の二項演算では、形状を揃える機能が備わっています。たとえば

-
-
-
x = np.array([1.0, 2.0, 3.0, 4.0])
-
-
-
-
-

というベクトル(1次元のndarray)があったときに、

-
-
-
a = 2.0 
-b = 1.0
-a*x + b 
-
-
-
-
-
array([3., 5., 7., 9.])
-
-
-
-
-

とすると、\(a\)でスカラー倍したのち、全ての成分に\(b\)が足されています。

-

\(x\)\(N\)個成分を持つndarrayとして用意しておいて\(y\)に各点での関数\(f(x_i) (i=1,...,N)\)の出力を対応させたいときも下で見るようにブロードキャスト機能を使えば簡単に実装できます。

-
-
-

arange, linspace

-

np.arrange(始点,終点,公差)np.linspace(始点,終点,数)を使うと始点-終点の領域における等間隔な点を生成することができます。

-
-
-
a = np.arange(0.1, 1.0, 1.e-1) #終点は含まれない
-b = np.linspace(1.0,10.0,10)
-
-print("a", a)
-print("b", b)
-
-
-
-
-
a [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
-b [ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]
-
-
-
-
-

グラフを連続的に線で繋ぎたいときなどに重宝します

-
-
-
x = np.linspace(0.0,10.0, 10)
-a = 2.0; b=-0.5; c = 4
-y = a * x**2 + b * x +c #二次関数
-print("y",y) 
-
-
-
-
-
y [  4.           5.91358025  12.7654321   24.55555556  41.28395062
-  62.95061728  89.55555556 121.09876543 157.58024691 199.        ]
-
-
-
-
-
-
-

行列・線形代数

-

ベクトルと同じように、numpy.arrayでは二次元配列(つまり行列)を考えることも出来て、たとえば 左上から順に整数1,2,3,…という値をもった3行3列の行列を考えたければ

-
-
-
A = np.array( [ [1,2,3],[4,5,6],[7,8,9]] )
-print(A)
-
-
-
-
-
[[1 2 3]
- [4 5 6]
- [7 8 9]]
-
-
-
-
-

とすれば良い、といった具合です。

-

他にも、たとえば

-
-
-
B = np.array( [  [2.0,0.1,-0.2], [0.1,1.3,0.4], [-0.2,0.4,3.0]])
-print("行列B", B)
-print("Bの逆行列は", np.linalg.inv(B))
-print("Bの行列式は", np.linalg.det(B))
-
-
-
-
-
行列B [[ 2.   0.1 -0.2]
- [ 0.1  1.3  0.4]
- [-0.2  0.4  3. ]]
-Bの逆行列は [[ 0.50663777 -0.05147656  0.04063939]
- [-0.05147656  0.80736928 -0.11108101]
- [ 0.04063939 -0.11108101  0.35085343]]
-Bの行列式は 7.3820000000000014
-
-
-
-
-

といったように、線形代数(linalg <- linear algebraの略)で扱うような演算も簡単にできる。

-
-
-

転置 .T

-

numpyは実はMatplotlibを使ったお絵かきでもよくお世話になる。それは、

-
-
-
tmp = [ [1,185,72,141], [2,165,50,543],[3,150,48,334],[4,172,65,123]]
-
-
-
-
-

というような入れ子のリストがあったときに、

-
-

「2番目と3番目の値同士の二次元散布図がかきたい…」

-
-

というようなケースがよくある。

-

このとき、ループをまわしてplotするのはめんどくさい。たとえば「2番目の値だけが入った配列に対して、3番目の値だけが入った配列を用意していっぺんにplotしたい」ときは転置(transpose,T)をつかえば一瞬で実現できる

-
-
-
ntmp = np.array(tmp).T #numpy.arrayに変換してから転置(transpose)を取りなさいという命令 .T
-print(ntmp)
-
-
-
-
-
[[  1   2   3   4]
- [185 165 150 172]
- [ 72  50  48  65]
- [141 543 334 123]]
-
-
-
-
-

2番めと3番目の値だけ取り出したいときは、

-
-
-
print("2番目の要素の配列", ntmp[1])
-print("3番目の要素の配列", ntmp[2])
-
-
-
-
-
2番目の要素の配列 [185 165 150 172]
-3番目の要素の配列 [72 50 48 65]
-
-
-
-
-

とでもすればよいし、図も一度の命令だけで描ける

-

あるいは

-
-
-
print("[:,1]→", np.array(tmp)[:,1])
-print("[:,2]→", np.array(tmp)[:,2])
-
-
-
-
-
[:,1] [185 165 150 172]
-[:,2] [72 50 48 65]
-
-
-
-
-

などとしても良い。

-
-
-
import matplotlib.pyplot as plt
-fig = plt.figure(figsize=(4,4))
-plt.scatter(ntmp[1], ntmp[2]) #要素ごとにループを回したりしなくてよい
-plt.show()
-plt.close()
-
-
-
-
-../_images/Python_misc_numpy_47_0.png -
-
-

文字列を含むリストをndarrayに変換したときの挙動には注意しよう.
-文字列と数値は分けて使うのがオススメ.

-
-
-
t = [ ["Aさん",170,55], ["Bさん",160,50]]
-t = np.array(t)
-data = t.T
-print("t",t, "data",data)
-print("type", type(data[1][0])) #文字列になってしまっている
-
-
-
-
-
t [['Aさん' '170' '55']
- ['Bさん' '160' '50']] data [['Aさん' 'Bさん']
- ['170' '160']
- ['55' '50']]
-type <class 'numpy.str_'>
-
-
-
-
-

(以下、都度追記)

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_python_env_forWin11.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_python_env_forWin11.html deleted file mode 100644 index fb63a81c..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_python_env_forWin11.html +++ /dev/null @@ -1,638 +0,0 @@ - - - - - - - - Pythonの環境構築 (Windows11版) — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
- -
- -
-

Pythonの環境構築 (Windows11版)

-

いくつかの方針が考えられるが、下記の導入を推奨とする。

-
    -
  • Windowsターミナル

  • -
  • Windows Subsystem for Linux2(WSL2)

  • -
-
-

Note

-

授業の受講者で環境構築を希望される方は、事前に相談することを強く推奨します。 -とくにWindowsの場合、作成者(吉田)はWindowsユーザーではないので幾つかの情報が古い恐れがあります。

-
-
-

Windowsターミナルの導入

-

ターミナルとは、CUI(Character User Interface)、つまり
-コマンドなどの文字列のみを用いてコンピュータを操作する環境を指す言葉です。

-

CUIに対して、普段我々が使っているポインタやウィンドウなどは
-GUI(Graphical User Interface)に相当します。

-

何故現代においてもCUIが必要なのか、
-つまりマウスでポインタを動かしたりクリックするのではなく
-一見不便そうな文字列だらけのインターフェースが用いられるのか、
-そこには単に映画やドラマでハッカーの邪悪さを演出する以上の理由があります。

-

計算機(コンピュータ)の発展の歴史的側面、パフォーマンス的側面から
-その理由をすべて説明することはしませんが例えば授業で用いた
-lsコマンドなどはCUIの利便性を表す一例になっていて、
-こうしたいわゆる”機械的”な操作についてはCUIに軍配が挙がります。

-

Windows Terminalは、2019年にマイクロソフトがリリースしたターミナルで
-コマンドプロンプトやPowerShellといったWindows独自のCUIに加えて
-後述のWSLを統合的に扱うことができる環境となっています。

-
    -
  • Windows10の場合

    -

    後々のことも考えてこれを導入しておこう。
    -MS storeでWindows terminalと検索し、 入手を押す

    -
  • -
  • Windows11の場合

    -

    標準で入っているのでWindowsボタンで開くメニューから
    -「terminal」などと検索すると出てくる

    -
  • -
-
-
-

WSL2の導入

-

オペレーティングシステム(OS)の源流を遡ると、大まかには2つに大別される。
-1つがUnix系で歴史が古い。そしてもう1つはお使いのWindowsである。

-

Unixはあるところで枝分かれし、LinuxやMac OSなどもUnix系に含まれる。
-サーバー用途のマシンや、スパコンなどの計算機環境では基本的にLinuxがOSとして採用されている。
-コンピュータの”計算機”としての側面や歴史的経緯から
-プログラミング言語・開発環境などもUnix/Linuxとともに発展してきた部分が大きい。

-

一方でWindowsは、一般家庭でのコンピュータの需要拡大とともに独自の進化を遂げてきた。

-

Windowsユーザーが、プログラミング環境の構築やLinux-likeな作業をしたい場合
-方法は幾つかあるが最近だとWindows Subsystem for Linux (通称WSL)を使うのが
-最も簡単かつ安全な方法の1つとされている。

-

この授業ではLinuxの中のUbuntuというディストリビューションを用意して使うことにしよう。
-Ubuntu自体はLinux OSの中ではGUI環境も良く出来ているディストリビューションで人気が高い。
-~日本語のシステムフォントがひどいWなんとかというOSよりはフォント・レンダリングも美しい~

-
    -
  • 手順1. WSLと仮想マシンプラットフォームの有効化

    -

    スタートメニューから「コントロールパネル」を検索して開く
    -

    -

    コントロールパネルの[プログラム]>[Windowsの機能の有効化または無効化] を選択し

    -
      -
    • 「Linux用Windowsサブシステム」

    • -
    • 「仮想マシン プラットフォーム」

    • -
    -

    の2つにチェックを入れて有効化する(再起動が必要)

    -
  • -
  • 手順2. Windows TerminalからWSLのインストール

    -

    スタートメニューからterminalなどと打ち込んで
    -Windows Terminalで右クリックして[管理者として実行]する
    -このアプリがデバイスに変更を加えることを許可しますか→[はい]

    -

    ターミナルに

    -
    wsl --install
    -
    -
    -

    と打ち込んで実行(Enter)する

    - -

    大量にヘルプが表示される場合は、

    -
    wsl --install -d Ubuntu
    -
    -
    -

    と明示的にUbuntuを指定してインストールする

    -
  • -
  • 手順3. Ubuntuの起動

    -

    Ubuntuのウィンドウが開く※ので
    -指示(Press any key to continue…)に従って適当なキーを押す。

    -

    ※RyzenのCPUが搭載されたマシンを使っていて
    -ウィンドウが開いたときにerror: 0x800701bcが発生している場合は -このページを参考に
    -「Linux カーネル更新プログラム パッケージ」をダウンロードして実行した後、手順1→2を再度行う。

    -
  • -
  • 手順4. Ubuntuの初期設定

    -

    しばらくするとEnter new UNIX username:
    -とLinuxシステム用のusernameを求められるので
    -適当なものを入力してEnterを押す
    -usernameは半角英数字にしよう。あとは…短い方があとあと便利。

    -

    その後 -NewPassword -とパスワードの設定を求められるので打ち込んでEnter

    -

    Retype new password(もっかい打て)と言われるのでもう一度

    -

    ユーザー名が緑色で表示されていて、エラーメッセージ等がなければOK

    - -
  • -
-

上記の手順以降は、スタートメニューからUbuntuと検索してUbuntuを開いても良いし
-Windows terminalのタブの”+”のさらに右にある∨マークから
-Ubuntuを選択すると(あるいはショートカットで)、Windows terminalの上でUbuntuが開く。

-

なお、デフォルトの設定だとUbuntuを開くとUbuntuのホームディレクトリで開くし
-Windows terminalから開くと、Windows側のホームディレクトリにいる状態で開く

-
-
-

WSL下でのPython環境の構築

-

※以下では、直接/Windows TerminalのどちらでUbuntu環境を開いている場合も
-便宜上”Ubuntuターミナル”と呼ぶことにしよう。

-

WSL下にPython環境構築をする方法は以下の通り

-
    -
  • 手順1. aptのupdate/upgrade

    -

    Ubuntuターミナルで以下を入力し実行する

    -
    $sudo apt update
    -$sudo apt upgrade
    -
    -
    -

    注:上の$は打ち込むのではなく、 Ubuntuターミナルの末尾にある$を指し
    -Pythonの対話モードなどで打ち込む場合と区別するための表記。

    -

    sudoはコマンドの頭につけることで管理者権限で実行する、という命令を意味します。
    -実行時に、Ubuntu用に設定したパスワードが要求されます
    -入力しても画面には表示されないので注意しながら打ち込んでEnterを押す。
    -(間違っても再度入力を求めてくれますし、やめたければCtrl+C)

    -

    aptはLinux(Debian系)のパッケージ管理システムです。

    -
    $sudo apt install xxxx
    -
    -
    -

    などとして、様々なものを簡単にインストールすることが出来ます。

    -

    ※PCの時刻設定がきちんと行われていないと、aptのupdateやupgradeに失敗します。

    -
  • -
  • 手順2. Pythonのインストール

    -

    Ubuntuには初めからPython3系が含まれていますが、

    -

    pythonの最新バージョンをpip込みでインストールしましょう。

    -
    $sudo apt install python3-pip -y
    -
    -
    -

    これでpython3.xとpython用のパッケージマネージャpipがインストールされます。

    -
  • -
  • 手順3. Pythonの対話モードに入ってみよう

    -

    インストールが終わったらpython3と打ち込んでEnterを押すと
    -Pythonの対話モードに入ります。対話モードの中で

    -
    >print("Hello")
    -
    -
    -

    などと打ち込んで実行してみましょう。

    -

    打ちかけの作業を消したり、処理を中断する際はCtrl+Cを、
    -対話モードから抜けたければCtrl+Dを入力します
    -(書きかけのコードがあったり処理が実行されているときは先にCtrl+Cで中断してからCtrl+d)

    -
  • -
  • 手順4. ライブラリのインストール

    -

    ライブラリ・モジュールをインストールしたければUbuntuターミナルから

    -
    $pip3 install matplotlib
    -$pip3 install pandas
    -$pip3 install Selenium
    -
    -
    -

    などを実行します。

    -

    Google Colab環境では毎度

    -
    !pip install japanize-matplotlib
    -
    -
    -

    などとしましたが、一度インストールしておけば
    -コードの実行のたびにpipでインストール作業を行う必要はありません。
    -(ライブラリのimportはセッションごとに必要です)

    -
  • -
-

その他、Linuxコマンドの使い方等については元のノートブックを参照

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_python_environment.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_python_environment.html deleted file mode 100644 index ad823beb..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_misc_python_environment.html +++ /dev/null @@ -1,1092 +0,0 @@ - - - - - - - - Pythonの環境構築 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -
-

Pythonの環境構築

-

Windows11をお使いの方はこちらのノートブックを参照してください

-

手元で作業がしたい、という方に向けて
-ローカル環境にPythonを導入する方法をOSごとに紹介する。

-

難易度としてはLinux < Mac << (壁)<< Windowsといった感じ(私見).

-
-

Note

-

授業の受講者で環境構築を希望される方は、事前に相談することを強く推奨します。 -とくにWindowsの場合、作成者(吉田)はWindowsユーザーではないので幾つかの情報が古い恐れがあります。

-
-
-
-
#動画貼り付け用
-from IPython.display import HTML
-from base64 import b64encode
-
-
-
-
-
-

Windowsの場合

-

いくつかの方針が考えられる。

-
    -
  1. Pythonのインストーラを用いてインストールする

    -
      -
    • メリット: Windows環境を汚さない, インストールが楽

    • -
    • デメリット: 他のプログラミング言語などへの拡張性が低い

    • -
    -
  2. -
  3. Linux環境を構築する(推奨)

    -
      -
    • 2-1. Windows Subsystem for Linux(WSL)(推奨)

      -
        -
      • メリット: Windows環境を汚さない, Linuxシェル環境・パッケージマネージャ(Pythonに限らず各種インストールが楽)

      • -
      • デメリット: WSL特有の情報を調べる必要がある

      • -
      -
    • -
    • 2-2. デュアルブート

      -
        -
      • メリット: Windowsとは別に好きなLinuxディストリビューションを共存させられる

      • -
      • デメリット: ディスク領域の分割などが必要 -慣れないとデータを吹っ飛ばす危険あり
        -(外部ストレージ等でのバックアップ必須です)

      • -
      -
    • -
    • 2-3. その他 (Docker環境など)

      -
        -
      • このノートブックでは説明しない

      • -
      -
    • -
    -
  4. -
-
-

1.の方法

-
-
-
HTML(r'<iframe width="560" height="315" src="https://www.youtube.com/embed/z2_nNvpgonY" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>')
-
-
-
-
-
-
-

以下のA)B)いずれかの方法でストアを開き
-Python3.8かPython3.9を選び[入手]する。

-

A) Microsoft Storeを開き、pythonと検索する。

-

B)コマンドプロンプト※を開き、pythonと入力してEnter→Storeが開く。
-(※Win10の左下にある検索バーにcmdと打つと出てくる)
-B)の方法だとstore上で古いpythonが開くかもしれないので
-検索バーから再度pythonと検索しよう。

-

インストールしたpythonの使い方

-

コマンドプロンプト上で

-
python
-
-
-

と実行すると対話モードでpythonが開く。
-スタートメニューからpythonを起動しても同じ。

-
print("Hello World")
-
-
-

や、

-
for i in range(5):
-    print(i)
-
-
-

などを実行してみよう。

-

Python(対話モード)を終了する際はCtrl+Z(もしくはCtrl+Cを実行後にCtrl+Z)→Enterを押すか、

-
exit()
-
-
-

と入力しEnterを押せば良い。

-

Python用のライブラリをインストールする方法

-

コマンドプロンプト上で

-
pip install matplotlib
-pip install pandas
-pip install Selenium
-
-
-

などとする。

-

ソースファイルの編集と実行

-

対話モードだと、長い処理を実現するのには向いていないので、
-作業をソースコードとしてファイルに書き出し、それを実行したくなる。
-実行したい場合は、コマンドプロンプト上で

-
python hogehoge.py
-
-
-

などとするとhogehoge.pyというファイルに書いた処理が実行される。

-

例: デスクトップにあるソースコードを実行する場合

-
chdir Desktop 
-
-
-

などして、適宜カレント(現在いる)ディレクトリの変更をするか

-
python Desktop/hogehoge.py
-
-
-

など実行するソースの(相対 or 絶対)パスの指定が必要になる。

-
-
-

2-1. の方法

-

Windowsの中にLinux(とくにUbuntu)を入れる方法

-

Windows11用の資料も参考になります。

-
-
-
HTML(r'<iframe width="560" height="315" src="https://www.youtube.com/embed/deZTrWYk9vU" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>')
-
-
-
-
-
-
-
    -
  • 手順1.WSLの有効化

    -

    コントロールパネルから[プログラム]->[Windowsの機能の有効化または無効化] を選択し
    -「Windows Subsystem for Linux」にチェックを入れて有効化する(再起動が必要)

    -
  • -
  • 手順2. Ubuntuのインストール

    -

    Microsoft storeでUbuntuと検索し、1番目(単にUbuntuという名前のもの)か、
    -あるいは20.04LTSをインストールする

    -

    ※Windows OSのアップデートをしばらく行っていない場合、入手ボタンが押せない。
    -一般論として、OSのマイナーアップデートは都度行うようにしましょう。
    -(メジャーアップデートは場合による…)

    -
  • -
  • 手順3.Ubuntuの起動・初期設定

    -

    スタートメニューからUbuntuを起動する

    -
      -
    • Enter new UNIX username: Linuxで使うユーザー名を入力する

    • -
    • new password: パスワードを設定する

    • -
    • Retype new password: 確認のため再入力する

    • -
    -

    これで、windows内にlinux環境が構築されます。

    -
  • -
  • 手順4. aptのupdate/upgrade

    -

    Ubuntuターミナルに以下を入力し実行

    -
    $sudo apt update
    -$sudo apt upgrade
    -
    -
    -

    注:上の$は皆さんが入力すべきものではなく、
    -Ubuntuターミナルにある$を指し
    -Pythonの対話モードなどで打ち込む場合と区別するための表記。

    -

    sudoはコマンドの頭につけることで管理者権限で実行する、という命令を意味します。
    -実行時に、Ubuntu用に設定したパスワードが要求されます
    -入力しても画面には表示されないので注意しながら打ち込んでEnterを押す。
    -(間違っても再度入力を求めてくれますし、やめたければCtrl+C)

    -

    aptはLinux(Debian系)のパッケージ管理システム
    -※PCの時刻設定がきちんと行われていないと、aptのupdate/upgradeに失敗します。

    -
  • -
  • 手順5. Pythonのインストール

    -

    Ubuntuには初めからPython3系が含まれていますが、
    -pythonの最新バージョンをpip込みでインストールしましょう。

    -
    $sudo apt install python3-pip -y
    -
    -
    -

    これでpython3.xの最新バージョンと、python用のパッケージマネージャpipがインストールされる

    -
  • -
  • 手順6. ライブラリのインストール

    -

    ライブラリ・モジュールをインストールしたければ

    -
    $pip3 install matplotlib
    -$pip3 install pandas
    -$pip3 install Selenium
    -
    -
    -

    などを実行する。

    -
  • -
-
-
-

Windows環境のどこにLinuxのファイルが保存されるか

-

C:\Users\XXX\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

-

のXXX部分(や場合によってはドライブ部分C:)を皆さんの環境に置き換えたものが、
-Windows内に構築されたLinuxのルートディレクトリ(最上位のディレクトリ)となります。
-Ubuntuを開くと、rootfs以下のhomeディレクトリにログインした状態でターミナルが開きます。

-

パスが上記と微妙に異なる場合は、
-WindowsのユーザーフォルダからAppDataを開いて、
-検索バーでUbuntuと検索すれば、
-該当するディレクトリが見つけられるはずです。
-(隠しフォルダを非表示にしていると見えないかも)

-

Windows11の場合は適当なフォルダ(エクスプローラー)を開くと
-左側にLinuxのペンギンマークがあるので、そこから参照できます。

-
-
-

Linux側からWindows側のファイルにアクセスする

-

WindowsのディスクはLinuxからみた/mnt/以下にマウントされている。
-たとえば、/mnt/c/Users/[ユーザー名]/Downloads -で、Windows側のダウンロードフォルダのパスを指定できる。

-

OneDriveによるバックアップに含まれているフォルダは、
-デフォルトパスから、OneDriveの下に変更されていることがあるので注意。

-

(例: デスクトップはLinuxから見ると/mnt/c/Users/[ユーザー名]/Desktopのはずだが、
-デスクトップフォルダがOneDriveのバックアップ対象になっていると、
-/mnt/c/Users/[ユーザー名]/OneDrive/Desktopなどと変更されてしまうので注意。)

-
-
-

WSLのバージョン確認と更新

-

Windows10を使っていてMS Storeから導入した方で
-GUIを伴う処理を行いたい場合、WSLのバージョンを2にする必要がある。

-

以下の手順でバージョンを確認し、必要なら更新しよう

-
    -
  1. スタートメニューからWindows PowerShellを開く

  2. -
  3. PowerShell上で下記のコマンドを入力し、バージョンを確認する

    -
    > wsl --list --verbose
    -
    -
    -

    出力結果をみてUbuntuのVERSIONが1になっている場合
    -更新を行おう -

    -
  4. -
  5. 更新のための前準備として、https://aka.ms/wsl2kernel -にアクセスし
    -x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージをダウンロードする。
    -ダウンロードが終わったらパッケージを起動して、案内にしたがって実行する

  6. -
  7. PowerShellに戻り、

    -
    wsl --set-version Ubuntu 2
    -
    -
    -

    を実行しwslのバージョンを2に変更する(そこそこ時間がかかる)

    - -
  8. -
-
-
-

WSL環境でMatplotlibのshow()などを使う

-

WSL(今はUbuntu)では、そのままでplt.show()などの
-ウィンドウを開くような操作が使えない。

-

その場合はx11とtkinterを含むpython3をインストールしよう

-
$ sudo apt update
-$ sudo apt upgrde
-$ sudo apt install language-pack-ja
-$ sudo apt install x11-apps
-$ sudo apt install python3-tk
-
-
-

さらにXサーバ(以下ではVcXsrvを選びます)をインストールする:

-
    -
  1. https://sourceforge.net/projects/vcxsrv/ -からDownload

  2. -
  3. ダウンロードしたものを実行

    -

    (デスクトップショートカットは無くても良い) -

    -
  4. -
  5. スタートメニューからXLaunchを実行

    - -

    道なりに進んでAdditional parameters for VcXsrvの欄に-acを入力し進む

    -
  6. -
  7. “Save Configuration”を選択してショートカットを作成することで、次回以降同様の作業をしなくても良いようにできる

  8. -
-
$xlogo
-
-
-

を実行するか、Pythonの対話環境の中で

-
import matplotlib.pyplot as plt
-fig = plt.figure()
-plt.show()
-
-
-

などとやってウィンドウが表示されればOK.

- - -
-
-

2-2.の方法

-

バックアップや起動ディスク等の知識なくデュアルブート環境を構築しようとすると
-最悪の場合すべてのデータを失いますので、こちらを選ぶ場合は予め相談してください。

-

Linux環境を構築をすれば、あとはLinuxを起動し、以下のLinuxの場合の手順に従うだけ。

-
-
-
-

Macの場合

-
-
-
HTML(r'<iframe width="560" height="315" src="https://www.youtube.com/embed/X2FMQYpXtGY" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>')
-
-
-
-
-
-
-

python2.xやpython3.x (xは購入機種・時期によって違う)が元々入っている。

-

Launchpadにある[その他]からターミナルを開き、
-pythonと入力し、タブキーを2回押すと該当するものが表示される。
-以下は一例:

-
python             python2            python2.7-config   python3-config     python3.7-config   python3.7m-config  pythonw            
-python-config      python2.7          python3            python3.7          python3.7m         pythontex          pythonw2.7 
-
-
-

python3がある場合は、 -$python3 -と入力しエンターを押すと、pythonの対話モード(インタラクティブモードとも)が開く※。

-

※初回起動時はXcodeの導入が必要かもしれない
-その場合は、ターミナルに

-
xcode-select --install
-
-
-

を打ち込みインストール作業を行う。
-Xcodeのサイズがでかいので安定したネットワーク下で実行すること.

-

Python(対話モード)が起動できたら

-
print("Hello World")
-
-
-

などと打って、エンターを押すと、文字列"Hello World"が表示されるので試してみよう。

-

pythonの最新のバージョンやその他色々なものを導入したければ
-今後のことも考えてMacにHomebrewと呼ばれるパッケージマネージャを導入しよう。 -参考

-

Homebrewが導入できたら、

-
brew update
-brew upgrade
-brew upgrade python3
-
-
-

と順にターミナルで実行する(暫く掛かるかも).

-

※python3がもともとない場合は、3つめのものを

-
brew install python3
-
-
-

などと置き換える。

-

インストールに成功すれば、python用のパッケージマネージャ(pip)も使えるようになるはず。
-以後は

-
pip install matplotlib
-pip install pandas
-
-
-

などとすると、python用のモジュールがインストールされ、
-pythonからいつでもインポートして使うことができる。

-

MacにDocker環境を入れておけば、aptで色々揃うので、レガシーコードの動作確認等にも役に立つ。

-

M1以降のApple制のCPUを搭載している場合、Pythonのパッケージ管理やDockerの導入などはやや難易度が上がる。 -(※英語で調べれば必要な情報は出てくる)

-
-
-

Linuxの場合

-

Linuxを使っている人が、pythonのインストールができないとは思いにくいが…

-

ターミナルから

-
$sudo apt update -y
-$sudo apt upgrade -y
-$sudo apt dist-upgrade -y
-$sudo apt autoremove -y
-
-
-

などを実行しパッケージマネージャのアップデート等を行った後
-python3系がない場合は

-
$sudo apt install python3
-
-
-

ある場合は

-
$sudo apt upgrade python3
-
-
-

などを実行すればよい。

-

pipがない場合、

-
$sudo apt install python3-pip
-
-
-

を実行する。

-
-
-
-

Linux/Unix ターミナルの操作

-

Linux(WSL)やUnix(Mac)のCUI環境で必要な基本的な操作をまとめる

-
    -
  • Ctrl+C: 入力内容の消去・実行中の作業の中断

  • -
  • Ctrl+D: ターミナル(タブ)を閉じる (Pythonの対話モードから出るときにも使う)

  • -
  • Tab: 入力を補完してくれる

  • -
  • *(半角アスタリスク): ワイルドカード記号

  • -
-

基本的なコマンド

-
    -
  • cd “現在地”を変更する

  • -
-
$cd ./Desktop 
-$cd ../ 
-$cd ~
-$cd -
-
-
-

1つめはhomeディレクトリからデスクトップ(があれば)移動
-2つめは1つ上の階層に移動する
-3つめはホームディレクトリに移動
-4つめは直前にいたディレクトリに移動

-
    -
  • ls ファイルやディレクトリなどを表示する.

  • -
-
$ls 
-$ls ../*.txt
-$ls Picutures/pic_*.png
-
-
-

1つめは現在いるディレクトリ以下のファイル等を表示
-2つめは現在いるディレクトリの1つ上の階層にある.txt拡張子の全ファイルを表示
-3つめは現在ホームディレクトリにいると仮定して、その直下にあるPictures以下にあるpngファイルのうち、冒頭がpic_のものを全て表示

-
    -
  • mv ファイル・ディレクトリの移動・リネーム

    -
    $mv aa.txt ~/Desktop
    -$mv bb.txt ../AdDS/cc.txt
    -
    -
    -

    1つめ: カレントディレクトリにあるaa.txtというファイルをデスクトップに移動
    -2つめ: bb.txtを一つ上の階層にあるAdDSというディレクトリに移動し、cc.txtとリネームする。

    -

    ワイルドカード*で複数ファイルを一気に移動させることもできる。ディレクトリの場合も同様。

    -
  • -
  • mkdir ディレクトリを作る

  • -
-
$mkdir Desktop/AdDS2021
-
-
-
    -
  • rm ファイルやディレクトリを削除する

  • -
-
$rm ./Desktop/report1.txt
-
-
-

ディレクトリを消すときは-rオプションが必要

-
$rm -r ./Desktop/AdDS2021
-
-
-
**rmコマンドで削除したものはゴミ箱に入れられずに削除されるので注意** 
-特にワイルドカードを使って全て削除してしまうとバックアップを取っていないと復元は困難だし、誰も責任をとってくれない。
-(rmコマンドにエイリアスを貼って、ゴミ箱を経由する命令に置き換えたりrmtrash(や類似のもの)を使用するのがオススメ)
-
-
-
    -
  • grep 検索

  • -
-
$grep "Hello World" Desktop/AdDS2021/*py
-
-
-

タブ補完

-

Linux/Unixターミナルでは、タブによる入力補完が使えますので
-ぜひ多用してください。

-

ちなみに今Desktopにいて、そこに
-AdDS2019, AdDS2020, AdDS2021 -というディレクトリがあり、
-最初のものに移動したいとします。 -こんなとき、いちいち

-
$cd AdDS2019
-
-
-

と打つのは面倒だし、打ち間違えたりします。

-
$cd Ad
-
-
-

と打った時点でタブをポンポンと叩くと、
-Desktopに上記のフォルダ以外の”Ad”を含むディレクトリがなければ
-AdDS20まで入力が補完され、
-該当する候補(上の全てのディレクトリ)がターミナル上で表示されます。
-その後1を打って再びタブを叩くと、該当するものは一つですので
-(ambiguityがなくなった時点で)最後まで入力が補完されます。

-

ちなみにPython側からLinuxのコマンドを実行したければ

-
import os
-os.system("ls *.txt")
-
-
-

などとすれば良い。

-
-

Linuxのホームディレクトリの変更

-

WSLを使用する際、Windows側から見るとLinux(Ubuntu)はC:\Users\username\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
-といった階層に入っている。

-

Ubuntuを起動した際に開くターミナルの”位置”(これをホームディレクトリと呼ぶ)は、
-上記のルートディレクトリ(rootfs)直下にあるhomeである。

-

たとえばWindows側のホームディレクトリ C:\Users\[username]以下に
-適当なディレクトリを作って、それをUbuntuのログイン(ホーム)ディレクトリとして設定することも出来る。

-

※ 以下の操作では、emacsやvi(m)などのエディタに慣れていないうちは
-システムファイルに余計な文字を書き込んでしまう危険性があるので
-エディタの使い方を調べてから実行するなど、注意が必要です。
-(不安な場合はZoomで画面を共有しながら一緒にやりましょう)

-

ホームディレクトリの変更方法は、

-
    -
  1. Ubuntuターミナルから、管理者権限で/etc/passwdを開く
    -たとえば、emacsが入っていれば

  2. -
-
$sudo emacs /etc/passwd
-
-
-

なければ

-
$sudo vim /etc/passwd
-
-
-

でファイルを開きます。

-
    -
  1. どこかに

  2. -
-
Ubuntuユーザ名:x:1000:1000:"",,,:/home/ユーザ名:/bin/bash
-
-
-

といった欄があるので/home/ユーザー名部分を、
-Windows側に作成しておいた新しくLinuxのホームディレクトリとしたいディレクトリの
-パスに置き換えて、passwdを上書き保存し、閉じる。

-
    -
  • Emacsの場合 編集は簡単. Ctrl+X -> Ctrl +Sを押して上書き保存. Ctrl+X->Ctrl+Cで閉じる.

  • -
  • vimの場合 iを押すとインサートモードに入り編集可能に. 編集モードから抜けるのはEsc. :wqで保存して終了

  • -
-
    -
  1. Ubuntuを再起動し、エラー等が表示されず、
    -pwdコマンドで現在地を確認して設定したディレクトリになっているか確認しましょう。

  2. -
  3. もともとのホームディレクトリにあった.bashrc(エイリアスなどの情報を書くファイル)を -新しいホームディレクトリに移動させれば完了です。

  4. -
-
$cp -r /home/[user name]/.*  ~/
-
-
-
-

隠しファイル/隠しフォルダ(dot files)について

-

Linuxでは、ファイル名の先頭に.がついているものは隠しファイルと呼ばれ、通常のlsコマンドなどの表示対象外となる。 -隠しファイルを表示するには、lsコマンドに-aオプションをつければよい。

-

とくに、ホームディレクトリには、特定のアプリケーションの設定ファイルなどが隠しファイルとして保存されていることが多く、 -数値計算ライブラリの開発や使用、ソースコードの編集・実行などの際には、隠しファイルを扱うこともある。

-

これら隠しファイルや隠しフォルダは、dot filesと呼ばれることもあり、 -新しい端末を購入したときの設定ファイルの移行などにも使われる。

-

特に複数台の端末を使用している人などは、GitHubなどのリポジトリに自身のdot filesをアップロードしておき、 -新しい端末を購入した際には、そのリポジトリからdot filesをダウンロードして使用することで、 -移行をスムーズにしているようである(私は割とイチから設定するのが好きだったりします)。

-

以下では、代表的なものを少し紹介しておく:

-

.bashrc : bashの設定ファイル

-

エイリアスの設定などを書くことができる. エイリアスとは、例えばコマンドでpythonを使う際、いちいちpythonとかpython3.9などを -指定しなくてもお目当てのpython環境を使用できるようにするためのもの. 例えば、.bashrcに

-
alias py=python3.9
-
-
-

などと書いておけば、pyと打つだけでpython3.9が起動/使用できるようになる.

-

注意としては

-
    -
  1. 使用しているシェルによって、設定ファイルの名前が異なることがある. 例えば、bashの場合は.bashrcだが、zshの場合は.zshrcとなる.

  2. -
  3. 設定ファイルを変更した場合は、sourceコマンドを実行することで、変更を反映させる必要がある. 例えば、.bashrcを変更した場合は、

  4. -
-
$source ~/.bashrc
-
-
-

とするか、ターミナルを再起動する必要がある.

-

エディタの設定ファイル

-

CUI/GUIを問わず、エディタの設定ファイルもホームディレクトリ直下の隠しディレクトリとして保存されることが多い.

-

例えば私の環境だと、~/.emacs,~/.vim,~/.vscode,~/.atomなど、今は使っていないものも含めて、 -エディタの設定ファイルが保存されている。

-

sshの設定ファイル

-

SSHとは、スーパーサイエンスハイスクール…ではなく、Secure Shellの略で、ネットワーク上で安全にリモートコンピュータにログインしたり、 -ファイルを転送したりするためのプロトコルである。

-

例えば研究室内に置かれたワークステーションやスパコンなど別の環境にログインして重い計算を回す、といったときには基本的にはssh公開鍵認証を用いてローカル環境からリモート環境にログインすることになるが、 -その際に使用する鍵や、リモート環境へのログインに必要な情報などが、ホームディレクトリ直下の隠しディレクトリ~/.sshに保存される。

-

例えば、(sshを使ったことがある場合は)~/.ssh/configに、接続先のホスト名やポート番号などが記載されたり、 -逆にリモート側では、~/.ssh/authorized_keysに、接続を許可する公開鍵が記載されていたりする。

-

なお、公開鍵認証とは、リモート環境にログインする際に、公開鍵と秘密鍵のペアを用いて認証を行う方式で、 -秘密鍵はローカル環境に、公開鍵はリモート環境に置いておくことで、安全にログインを行うことができるものである。 -秘密鍵の取り扱いに注意が必要であることは言うまでもない。

-
-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_practice.html b/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_practice.html deleted file mode 100644 index 17f705cb..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/notebooks/Python_practice.html +++ /dev/null @@ -1,776 +0,0 @@ - - - - - - - - 練習帳 — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- - -
-
- -
- -

Open In Colab

-
-

練習帳

-

このノートブックでは、1-8章で抑えておくべき基本事項を確認するための練習問題を与える。

-

CLで収集する授業のリアクションシートには、

-
    -
  • 練習帳のURL

  • -
  • 質問: 授業や資料でわからなかったこと (なければ所感のみでOK)

  • -
  • 所感: その回で理解した/できるようになったことを完結にまとめる

  • -
  • 適当な雑談: 最近ハマっていること

  • -
-

を設定された〆切までに提出すること。これをもって出席とみなす。 -なお、(この授業に限らず)、2/3以上の出席がない場合、履修規程に従い自動的に不可となるため、必ず提出すること。

-

この練習帳の目的は、皆さんが自分自身の理解・疑問点を確認するためであって -練習帳で書いているコードや記述が正しいかどうかは一切授業の評点には関係がない

-

したがって友人に見せてもらったり相談をして体裁を整える必要はまったく無い。 -とにかく、自分の理解を確認するためにコードをどんどん書いてどんどん失敗しよう。

-

質問やその返答を円滑にするための連絡帳のようなものだと思ってもらえれば良い。

-

また、教員に対する質問の見落としを防ぐため、リアクションシート(CL)の方で

-
-

練習帳に詳細な質問とコードを書きました

-
-

などと教えてもらえるとスムーズな対応が可能になります。 -リアクションシートの提出や質問の際は、必ず練習帳の共有リンクを添えてください。

-

慣れないうちは、エラーの原因がわからない場合は、とにかく教員に聞く。 -慣れてくると、自分でエラーメッセージをWebで検索したり、よくあるエラー集などを見て、解決ができるようになる。 -Chat GPTなどに尋ねてみるのも、疑問や問題を言語化し要約する訓練になるので良いかもしれない。 -それでもわからない場合は、エラーメッセージを添えて教員に尋ねよう。

-
-

練習帳のノートブックの共有の仕方

-

以下の手順にならってください。1-3は1度やれば再び行う必要はありません。

-
    -
  1. まずノートブックのコピーを作成し、ファイル名を適当に編集する: 例: 練習帳_氏名_123456X.ipynb (123456Xは学籍番号のつもり)

  2. -
  3. 右上の共有ボタンを押し、「制限付き」を「リンクを知っている全員」に変更 -(共有ボタンが見えない場合、編集権限がないつまり「ノートブックのコピーをつくる」というお約束を忘れていることを意味する)

  4. -
  5. 「リンクを知っている全員」の右にある「閲覧者」を「編集者」に変更する

  6. -
  7. 最後に、ブックマークするか、リンクをコピーしどこかに保存しておこう(2回目以降はCLで一度提出した過去のURLをコピーするのが手っ取り早い)

  8. -
-

元の問題文さえ残っていれば、レイアウトは好きに改変してOK. -コードセル・テキストセルともに自由に追加して構わない。

-
-
-

第1章:Pythonの基礎

-

練習問題:

-
    -
  1. 身長と体重に相当する変数を適当に定義し、BMI(体重kg ÷ 身長mの二乗)を計算した上でprintせよ (自身の身長体重を用いる必要はない)

  2. -
  3. 上で計算したBMIに対応する変数とstr関数を用いて文字列を連結し、”AさんのBMIは22.0です”などと表示させよ。

  4. -
-
-
-
# コードを以下に記載
-
-
-
-
-

1章の振り返り

-

これらの点をチェックし、必要ならコードセルを追加して練習しよう:

-
    -
  • 変数の定義や四則演算の方法が分かる

  • -
  • printstrなどの基本的な関数の使い方がわかる

  • -
  • プログラムの実行順序と、セルを跨いで実行する際の注意点がわかる

  • -
  • 基本的な変数の型とその調べ方が分かる

  • -
-
-
-

第2章:Pythonの基礎2

-

練習問題:

-
    -
  1. 要素に身長(単位:cm)と体重(単位:kg)を持つ適当なリストを定義し、5人のデータ(リスト)を要素にもつ入れ子構造のリストを作成せよ。ただし3人目の身長と体重は必ず175,60とすること(それ以外は適当で構わない)。

  2. -
  3. 上のリストから、5人の平均身長と平均体重をそれぞれ計算するコードを作成せよ。算術平均を取る際は、数字の5などを使うのではなく、リストの長さを使ったり、汎用性の高いコードにすること。

  4. -
  5. 上のリストについて、for文を用いて全員のBMI(体重kg ÷ 身長mの二乗)を計算し、一人ずつBMIを表示させよ。(単位に注意)

  6. -
  7. for文のブロック内でifbreakを用いて、「BMIが20.0以下なら、値を表示したあとにループを終了する」という処理を実現せよ。

  8. -
-
-
-
# コードを以下に記載
-
-
-
-
-

2章の振り返り

-

とくに2章は重要な概念が盛りだくさんなので、必ず練習したり、疑問があれば質問すること!

-

これらの点をチェックし、必要ならコードセルを追加して練習しよう:

-
    -
  • リストの定義や要素へのアクセスの方法(インデックスやスライス)が分かる

  • -
  • リストに要素を加える方法が分かる

  • -
  • if文による条件分岐が分かる

  • -
  • forwhileによるループ処理がわかる

  • -
-
-
-

第3章:関数

-

練習問題:

-
    -
  1. 要素に実数値を持つ適当なリストを2つ以上定義し、任意の長さの実数値のリストについて平均と分散を返り値とする自作関数を作成せよ。

  2. -
  3. 1.で作った自作関数を1つの変数で受け取り(例ret_value=myfunction(mylist))その返り値の型を調べよ。

  4. -
-
-
-
# コードを以下に記載
-
-
-
-
-

3章の振り返り

-

これらの点をチェックし、必要ならコードセルを追加して練習しよう:

-
    -
  • 自作関数の定義の仕方が分かる

  • -
  • 引数(インプット)や返り値(アウトプット)の扱い方が分かる

  • -
-
-
-

第4章:ライブラリ

-

練習問題:

-
    -
  1. 授業で扱ったmath,numpyの何れかを使って、任意の半径rについて円の面積と球の体積を計算する自作関数を作成せよ。

  2. -
  3. matplotlibを用いて、好きな図を作成させノートブック上に表示させよ。その際、matplotlib(とくにmatplotlib.pyplot)の使い方を調べて

    -
      -
    • 色をカラーコードで指定する

    • -
    • グラフを構成するオブジェクトの透過度を設定する

    • -
    -

    など、授業で指定していないオプションを試してみよう。

    -
  4. -
-
-
-
# コードを以下に記載
-
-
-
-
-

4章の振り返り

-

これらの点をチェックし、必要ならコードセルを追加して練習しよう:

-
    -
  • ライブラリのインストールやインポートの仕方が分かる

  • -
  • matplotlibの簡単な使い方が分かる

  • -
  • Webの情報や公式ドキュメントを読んだりして、使い方を調べることができる

  • -
-
-
-

第5章:確率と擬似乱数

-

練習問題:

-
    -
  1. 0からn-1(nは適当な整数)までのn個の整数から、重複なくランダムにn個選ぶ(つまり0からn-1の無作為な並べかえをする)コードを作成せよ。(numpy.random.choiceを使うとよい)

  2. -
  3. 1.を用いて、任意の文字列のリスト(例: 名前のリスト ["Aさん","Bさん",...])をランダムに並び替えて出力するコードを作成せよ。

  4. -
-
-
-
# コードを以下に記載
-
-
-
-
-

5章の振り返り

-

これらの点をチェックし、必要ならコードセルを追加して練習しよう:

-
    -
  • randomnumpy.randomモジュールを用いて、簡単な確率的事象を表現する方法がわかる

  • -
  • 適当な区間内でランダムな整数を生成することができる

  • -
  • 適当な実数の乱数(一様乱数・正規乱数)を生成することができる

  • -
-
-
-

第6章:相関・回帰分析

-

練習問題:

-
    -
  1. 以下のデータx(宇都宮市の月別平均気温)とy(アイスクリーム・シャーベットの消費量)のうち、8月のデータ(気温か消費量のいずれか)をランダムな値に変更し相関係数がどうなるか5通りほどで示せ。なお、値を変更する際は手でリストを書き換えるのではなく、リストの要素を書き換えるコードにすること。

  2. -
  3. 疑似相関について調べ例をあげよ。(できれば自身の興味に近いものや日本の事例などを調べてみること)

  4. -
-
-
-
# コードを以下に記載(追記)
-x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]
-y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]
-
-
-
-
-

6章の振り返り

-

これらの点をチェックし、必要ならコードセルを追加して練習しよう:

-
    -
  • 相関分析の意味を、友人等に説明できる

  • -
  • 長さの等しい2つのリストについて、相関係数を計算することができる

  • -
  • 簡単な場合について自作関数とライブラリの出力が同じであることを確認することができる

  • -
-
-
-

第7章:最適化問題

-

練習問題:

-
    -
  1. 以下に示したデータ(x:年, y:男子100m走の世界記録(秒))について、6章で出てきたpolyfitを使って1-5次式までの多項式でフィッティングしてみよう。

  2. -
-
-
-
# コードを以下に記載(追記)
-y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ]
-x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ]
-
-
-
-
-

7章の振り返り

-

これらの点をチェックし、必要ならコードセルを追加して練習しよう:

-
    -
  • 多項式回帰の意味を、友人等に説明できる

  • -
  • ライブラリを用いて多項式回帰(係数の最適化)を行うことができる

  • -
  • 係数の最適化の結果から、グラフの描画点を生成し、可視化することができる

  • -
-
-
-

第8章:ファイル操作

-

練習問題:

-
    -
  1. Google Colaboratoryから授業で使ったノートを参照し、Google Driveをマウントしtest.txtファイルの中身を表示せよ。その際、Unix/Linuxコマンドであるcatを用いれば良い。

  2. -
  3. matplotlibを用いて適当なグラフを描きGoogleドライブに保存せよ。

  4. -
-

この問題はDriveのマウント・パスの指定などの一連の作業が理解できているかを確認するものなので、エラーが出た場合はそのログや自身が試した工程について、スクリーンショットなども活用しながらできるだけ詳細に報告すること。特に問題なく作業ができた場合は、2の図を送るなどはしなくて構わない。

-

また、プライベートなGoogleアカウントを使用している(※授業では非推奨)場合、相談の際にはプログラムの出力結果やスクリーンショットなどに他人に見られて困るものが映っていないか配慮すること。

-
-
-
# コードを以下に記載(追記)
-#1.のコードのヒント
-!cat path_to_yourfile/test.text
-
-
-
-
-
-

8章の振り返り

-

これらの点をチェックし、必要ならコードセルを追加して練習しよう:

-
    -
  • Google ColaboratoryでGoogle Driveをマウントすることができる

  • -
  • Google Drive上にあるcsvなどのファイルを読み込むことができる

  • -
  • 読み込んだファイルの内容から、必要なデータを取り出してprintしたり、配列を作り、それをグラフとして描いたりすることができる

  • -
-
-
-

最終課題

-

授業の後半で取り組む最終課題については、自由な発想で課題を設計し、取り組んでもらって構わない。 -条件としては、以下のようなものが挙げられる:

-
    -
  • 1人(ないし2名ペア)で取り組むこと

  • -
  • ペアの場合は、それぞれの寄与を明確にし、一人の寄与が十分に認められること

  • -
  • 都度、教員に相談しながら、計画的に進めること

  • -
  • 事前に教員に確認すべき課題の例

    -
      -
    • 個人情報(例えば自営業をしている実家のデータを分析するなど)を含む場合は、それをマスクする処理が可能であること

    • -
    • 特定のサービス・ソフトウェア・アプリに関する分析(ゲームのデータなどは著作権等の理由から多くの場合不可)

    • -
    • アカウントの作成やライセンス等の購入が必要な外部サービスを使用する課題でないこと(≒教員が特段の手続きを経ずとも、課題作成者のサポートや採点・評価が可能なものであること)

    • -
    -
  • -
-

その他、教員が不適切と判断した課題については、課題の変更を求めることがある。

-

何もないところから課題を設計するのは難しい。以下の例を参考に、計画をたてよう:

-

公開データを元に、栃木県のデータを可視化・分析したいとする。 -その際に必要な工程や、分析を行うために学修すべき事項を列挙しながら、課題を設計していく。

-
    -
  • データの収集: 興味のあるデータがオープンデータとして公開されているかを調べる。

    - -
  • -
  • 地図を描き、市町村ごとに特定のデータをカラーマップとして表示する事を考える。

    -
      -
    • そのためには、市町村の境界線のデータが必要になる。例えば、国土数値情報ダウンロードサービスからデータを収集するとする。

    • -
    • 得られたデータを地図上で可視化するために、使えそうなライブラリを探す。例えば、geopandasfoliumが使えそうである。

    • -
    • 簡単なデータから初めて、ライブラリの使い方を学びながら、地図を描くことを目指す。

    • -
    • その他、地図上に関連する(例えば…特定の商業施設やLRTの停留所など)ピンを打ってみる

    • -
    -
  • -
  • 実際のデータを元に、分析を行う

  • -
  • 問題点が生じた場合、その原因を特定し、解決するために必要な知識を学ぶ。(以下試行錯誤…)

  • -
-

といった具合だ。あくまで、例であるので、自身の興味に合わせて課題を設計していくこと。

-
-
- - - - -
- - - - - -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/objects.inv b/Lecture_DataScience_dotfiles/_build/html/objects.inv deleted file mode 100644 index 5c852cad..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/html/objects.inv and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/html/search.html b/Lecture_DataScience_dotfiles/_build/html/search.html deleted file mode 100644 index dfc3d350..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/search.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - - - Search — 実践データサイエンス - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - -
- -
-
- -
- - - - - - - - - - - - - - -
- - -
- -
-
-
-
-
- -
- -

Search

- - - - -

- Searching for multiple words only shows matches that contain - all words. -

- - -
- - - -
- - - -
- -
- - -
- - - -
-
- -
-
-
-
-

- -

-

-
-
-
- - -
-
- - - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/html/searchindex.js b/Lecture_DataScience_dotfiles/_build/html/searchindex.js deleted file mode 100644 index e79675d6..00000000 --- a/Lecture_DataScience_dotfiles/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({docnames:["index","notebooks/Python_chapter0_HowToUse","notebooks/Python_chapter1_Introduction","notebooks/Python_chapter2_ListLoop","notebooks/Python_chapter3_Function","notebooks/Python_chapter4_Matplotlib","notebooks/Python_chapter5_Probability","notebooks/Python_chapter6_Regression","notebooks/Python_chapter7_Optimization","notebooks/Python_chapter8_handling_files","notebooks/Python_chapter_ArtificialNeuralNetwork","notebooks/Python_chapter_BayesianOptimization","notebooks/Python_chapter_Bayesian_linear_regression","notebooks/Python_chapter_WebScraping","notebooks/Python_misc_Error","notebooks/Python_misc_NewtonsMethod","notebooks/Python_misc_ODE","notebooks/Python_misc_PCA","notebooks/Python_misc_Pandas","notebooks/Python_misc_SingularValueDecomposition","notebooks/Python_misc_StyleGAN3","notebooks/Python_misc_VScode","notebooks/Python_misc_numpy","notebooks/Python_misc_python_env_forWin11","notebooks/Python_misc_python_environment","notebooks/Python_practice"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinxcontrib.bibtex":7,sphinx:56},filenames:["index.md","notebooks/Python_chapter0_HowToUse.ipynb","notebooks/Python_chapter1_Introduction.ipynb","notebooks/Python_chapter2_ListLoop.ipynb","notebooks/Python_chapter3_Function.ipynb","notebooks/Python_chapter4_Matplotlib.ipynb","notebooks/Python_chapter5_Probability.ipynb","notebooks/Python_chapter6_Regression.ipynb","notebooks/Python_chapter7_Optimization.ipynb","notebooks/Python_chapter8_handling_files.ipynb","notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb","notebooks/Python_chapter_BayesianOptimization.ipynb","notebooks/Python_chapter_Bayesian_linear_regression.ipynb","notebooks/Python_chapter_WebScraping.ipynb","notebooks/Python_misc_Error.ipynb","notebooks/Python_misc_NewtonsMethod.ipynb","notebooks/Python_misc_ODE.ipynb","notebooks/Python_misc_PCA.ipynb","notebooks/Python_misc_Pandas.ipynb","notebooks/Python_misc_SingularValueDecomposition.ipynb","notebooks/Python_misc_StyleGAN3.ipynb","notebooks/Python_misc_VScode.ipynb","notebooks/Python_misc_numpy.ipynb","notebooks/Python_misc_python_env_forWin11.ipynb","notebooks/Python_misc_python_environment.ipynb","notebooks/Python_practice.ipynb"],objects:{},objnames:{},objtypes:{},terms:{"0":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],"00":[2,8,10,13],"000":4,"00000":13,"0000000000000":8,"00000000000000000000055511151231257827021181583404541015625":2,"0000000424488":8,"0002128303060538":6,"0002538454719":8,"0003085489":13,"0003085521":13,"0003085562":13,"0003085612":13,"0003090498":13,"0003094573":13,"0003179100":13,"0003179101":13,"0003191203":13,"000319167792708":6,"0003412789":13,"0003412790":13,"0003412791":13,"0003412792":13,"0003412793":13,"0004249999886":8,"000z":13,"001":[8,13],"0010499943965":8,"001075118805382":11,"001804089965":15,"00200544":13,"0029708839095104":6,"0029861824182547607":6,"00434806118170894":15,"005917217916256":6,"0067173334130862326":6,"00770445e":10,"008":19,"008000":20,"01":[2,6,8,10,11,13],"0105001695811":8,"0192792149298004":15,"02":[7,8,10,11,13,25],"02367619":17,"02383509":17,"03":[7,10,11,13,20,25],"03067071498258":15,"03173892":19,"0390196":19,"03960749e":10,"04":[8,11,13,20],"04063939":22,"04076394e":10,"0424999999986":8,"04412075":10,"04499401":19,"045494422941772":11,"04lts\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b":24,"05":[6,8,10,11,13,19],"05000000000001":11,"051066857846":10,"05147656":22,"0517009999926":8,"055":11,"055339554764814":11,"05\u304c\u63a2\u7d22\u3055\u308c\u3066\u3044\u3066":11,"05\u523b\u307f\u3067\u3057\u304b\u70b9\u3092\u6253\u3063\u3066\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f":11,"05cc242d27b4e6781d19":13,"06":[7,13,15,19,25],"061537984784846":11,"062043437506205806":6,"06567456e":11,"06567459e":11,"06739811":19,"07548102":17,"07623608":17,"0776881":17,"0782095":17,"0790483266553":10,"08452251":17,"08dc0b8c5704c94eafb9":5,"09757282508715664":15,"09876543":22,"0\u304b1\u306e\u4e8c\u5024\u3092\u53d6\u308b\u30d3\u30c3\u30c8":2,"0\u304b\u30891\u306e\u533a\u9593\u304b\u3089\u4e00\u69d8\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u3066":6,"0\u304b\u30891\u307e\u3067\u306e\u9593\u306e500\u70b9\u3092\u7b49\u9593\u9694\u306b\u53d6\u308b":7,"0\u304b\u308999":6,"0\u304b\u308999\u307e\u3067\u306e100\u500b\u306e\u6574\u6570\u5024\u304b\u3089\u91cd\u8907\u3092\u8a31\u3055\u305a\u306b10\u500b\u9078\u3073\u305f\u3044":6,"0\u304b\u3089\u30ab\u30a6\u30f3\u30c8\u3057\u307e\u3059":3,"0\u304b\u3089n":25,"0\u304c\u9ed2255\u304c\u767d\u306e256\u968e\u8abf":19,"0\u3067":10,"0\u3067\u3059":25,"0\u3067\u5272\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093":14,"0\u3067\u5b9a\u7fa9\u3055\u308c\u308b":8,"0\u3068\u3044\u3046\u306e\u306f":2,"0\u3068\u3044\u3046\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4f7f\u3046\u3068\u3044\u3046\u306e\u306f":11,"0\u3068\u3067\u3082\u3057\u3066":8,"0\u3068\u306a\u308b\u305f\u3081\u52fe\u914d\u306e\u6d88\u5931\u304c\u8d77\u3053\u308a\u306b\u304f\u3044\u306e\u3067\u3059":10,"0\u3068\u307f\u306a\u305b\u308b\u5024":2,"0\u306b\u5909\u66f4\u3057\u3088\u3046\u3068\u3059\u308b\u3068":3,"0\u306b\u6f38\u8fd1\u3057\u307e\u3059":10,"0\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u3063\u305f":11,"0\u306e":6,"0\u306e\u6b63\u898f\u5206\u5e03\u304b\u3089\u306e\u4e71\u6570\u751f\u6210":6,"0\u307e\u3067\u306f0":10,"0\u30924":3,"0\u3092\u5b9a\u7fa9\u3057\u3066":3,"0\u4ee5\u4e0b\u306a\u3089":25,"0\u5217\u76ee":[9,18],"0\u5217\u76ee\u306e\u6642\u523b\u309224\u6642\u9593\u8868\u8a18\u306b\u3057\u3066\u8868\u793a\u3059\u308b":9,"0\u756a\u76ee":4,"0\u756a\u76ee\u306e\u8981\u7d20\u306e\u6570\u3092print\u3057\u3066\u307f\u307e\u3057\u3087\u3046":3,"0\u884c\u76ee":18,"0\u884c\u76ee1\u5217\u306e\u5024":5,"0\u9664\u7b97":14,"0b97842722b1":14,"0e":8,"0m":11,"0x800701bc\u304c\u767a\u751f\u3057\u3066\u3044\u308b\u5834\u5408\u306f":23,"1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25],"10":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25],"100":[3,4,5,6,8,10,15,17,19,20,22],"1000":[3,6,12,15,21,22,24],"10000":[3,6,20,22],"100000":6,"1000000":3,"100000000000009":11,"1000\u56de\u3075\u3063\u3066\u3082100\u4e07\u56de\u964d\u3063\u3066\u3082\u9023\u7d9a\u30675\u56de\u306f\u51fa\u306a\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093":3,"1001":22,"10013":19,"1002":22,"1003":22,"1004":22,"1005":22,"1005051":13,"1006":22,"1007":22,"1008":22,"1009":22,"100\u3064\u307e\u308a":4,"100\u3067\u30a2\u30af\u30bb\u30b9":4,"100\u306b\u3067\u304d\u308b":16,"100\u500b\u306e\u30b5\u30a4\u30b3\u30ed\u306e\u51fa\u76ee\u3092\u4fdd\u6301\u3057\u3066\u304a\u304d\u305f\u3051\u308c\u3070":6,"100\u500b\u306e\u7dda\u5f62\u72ec\u7acb\u306a\u30d9\u30af\u30c8\u30eb":19,"100\u7b49\u5206":8,"100m":7,"101":22,"1010":22,"1011":22,"1012":22,"1013":22,"1014":22,"1015":22,"1016":22,"1017":22,"1018":22,"1019":22,"102":[13,22],"1020":22,"1021":22,"1022":22,"1023":22,"1024":[6,20,22],"1024x1024":20,"1025":22,"102566":11,"1026":22,"1027":22,"1028":22,"1029":22,"103":22,"1030":22,"1031":22,"1032":22,"103292":19,"1033":22,"1034":22,"1035":22,"1036":22,"1037":22,"1038":22,"1039":22,"104":22,"1040":22,"1041":22,"1042":[13,22],"1043":[13,22],"1044":[13,22],"1045":[13,22],"1046":[13,22],"1047":22,"1048":22,"1049":22,"105":22,"1050":22,"1051":22,"1052":22,"1053":22,"105322034013356":6,"1054":22,"1055":22,"1056":22,"1057":22,"1058":22,"1059":22,"106":22,"1060":22,"1061":22,"106196959":15,"1062":22,"1063":22,"1064":22,"1065":22,"1066":22,"1067":22,"1068":22,"1069":22,"107":22,"1070":22,"1071":22,"1072":22,"1073":22,"1074":22,"1075":22,"1076":22,"1077":22,"1078":22,"1079":22,"108":[19,22],"1080":22,"1081":22,"1082":22,"1083":22,"1084":22,"1085":22,"1086":22,"1087":22,"1088":22,"1089":22,"109":[19,22],"1090":22,"1091":22,"1092":22,"1093":22,"1094":22,"1095":22,"1096":22,"1097":22,"1098":22,"1099":22,"10\u3059\u308b\u3068":16,"10\u56de\u547c\u3070\u308c\u307e\u3059":3,"10\u67081\u65e5\u306b\u7de8\u96c6":2,"10\u7b49\u5206":8,"10x":8,"11":[2,5,9,10,11,13,15,17,19,22],"110":[6,19,22],"1100":22,"1101":22,"1102":22,"1103":22,"1104":22,"1105":22,"1106":22,"1107":22,"1108":22,"1109":22,"111":[5,6,7,10,11,12,13,15,22],"1110":22,"11108101":22,"1111":22,"11111111":11,"1112":22,"1113":22,"1114":22,"1115":22,"1116":22,"1117":22,"1118":22,"1119":22,"112":22,"1120":[5,7,22,25],"1121":22,"1122":22,"1123":22,"1124":22,"1125":22,"1126":22,"1127":22,"1128":22,"1129":22,"113":22,"1130":22,"1131":22,"1132":22,"1133":22,"1134":22,"1135":22,"1136":22,"1137":22,"1138":22,"1139":22,"114":22,"1140":22,"1141":22,"1142":22,"1143":22,"1144":22,"1145":22,"11457333112":15,"1146":22,"1147":22,"1148":22,"1149":22,"115":22,"1150":22,"1151":22,"1152":22,"11524231":10,"1153":22,"1154":22,"1155":22,"1156":22,"1157":22,"1158":22,"1159":22,"116":22,"1160":22,"1161":22,"1162":22,"1163":22,"1164":22,"1165":22,"1166":22,"1167":22,"1168":22,"1169":22,"117":22,"1170":22,"1171":22,"1172":22,"1173":22,"1174":22,"1175":22,"1176":22,"1177":22,"1178":22,"1179":22,"118":22,"1180":22,"1181":22,"1182":22,"1183":22,"1184":22,"1185":22,"1186":22,"1187":22,"1188":22,"1189":22,"119":22,"1190":22,"1191":22,"1192":22,"1193":22,"1194":22,"1195":22,"11953":5,"1196":22,"1197":22,"1198":22,"1199":22,"11\u56de":3,"12":[5,6,7,9,10,11,15,17,18,22],"120":22,"1200":22,"1201":22,"1202":22,"1203":22,"1204":22,"1205":22,"1206":22,"1207":22,"1208":22,"1209":22,"121":[6,8,10,11,12,22],"1210":22,"1211":22,"1212":22,"1213":[5,7,22,25],"1214":22,"1215":22,"1216":22,"1217":22,"1218":22,"1219":22,"122":[6,8,10,11,12,22],"1220":22,"1221":22,"1222":22,"1223":22,"12232153e":10,"1224":22,"1225":22,"1226":22,"1227":22,"1228":22,"1229":22,"123":22,"1230":22,"1231":22,"1232":22,"1233":22,"1234":[6,7,9,10,12,17,20,22],"123456x\u306f\u5b66\u7c4d\u756a\u53f7\u306e\u3064\u3082\u308a":25,"1234\u901a\u308a":9,"1235":22,"1236":22,"1237":22,"1238":22,"1239":[5,22],"124":[3,22],"1240":22,"1241":22,"1242":22,"1243":22,"1244":22,"1245":22,"1246":22,"1247":22,"1248":22,"1249":22,"125":22,"1250":22,"1251":22,"1252":22,"1253":22,"1254":22,"1255":22,"1256":22,"1257":22,"1258":22,"1259":22,"126":22,"1260":22,"1261":22,"1262":22,"1263":22,"1264":22,"1265":22,"1266":22,"1267":22,"1268":22,"1269":22,"127":22,"1270":22,"1271":22,"1272":22,"1273":22,"1274":22,"1275":22,"1276":22,"1277":22,"1278":22,"1279":22,"128":22,"1280":22,"1281":22,"1282":22,"1283":22,"1284":22,"1285":22,"1286":22,"1287":22,"1288":22,"1289":22,"129":22,"1290":22,"1291":22,"1292":22,"1293":22,"1294":22,"1295":22,"1296":22,"1297":22,"1298":22,"1299":22,"12\u307e\u3067\u306e\u6570\u5b57\u304c2017\u5e74\u306e1\u6708\u304b\u308912\u6708\u307e\u3067\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3059":9,"12\u6642xx\u5206\u3060\u3051\u306f\u5225\u306e\u53d6\u308a\u6271\u3044\u304c\u5fc5\u8981":9,"12\u6708":13,"12\u67081\u6708":7,"13":[5,6,7,10,13,15,22,25],"130":22,"1300":22,"1301":22,"1302":22,"1303":22,"1304":22,"1305":22,"1306":22,"1307":22,"1308":22,"1309":22,"131":[6,22],"1310":22,"1311":22,"1312":22,"1313":22,"1314":22,"1315":22,"1316":[6,22],"1317":22,"1318":22,"1319":22,"132":[6,22],"1320":[5,22],"1321":22,"1322":22,"1323":22,"1324":22,"1325":22,"1326":22,"1327":22,"1328":22,"1329":22,"133":[6,19,22],"1330":22,"1331":22,"1332":22,"1333":22,"1334":22,"1335":22,"1336":22,"1337":22,"1338":22,"1339":22,"134":22,"1340":22,"1341":22,"1342":22,"1343":22,"1344":22,"1345":22,"1346":22,"1347":22,"1348":22,"1349":22,"135":22,"1350":22,"1351":22,"1352":22,"135225578101199e":15,"1353":22,"1354":22,"1354918462077":15,"1355":22,"1356":22,"1357":22,"1358":22,"1359":22,"136":22,"1360":22,"1361":22,"1362":22,"1363":22,"1364":22,"1365":22,"1366":22,"1367":22,"1368":22,"1369":22,"137":[13,22],"1370":[5,22],"13704":6,"1371":22,"1372":22,"1373":22,"1374":22,"1375":22,"1376":22,"1377":22,"1378":22,"1379":22,"138":[13,22],"1380":22,"1381":22,"1382":22,"1383":22,"1384":22,"1385":22,"1386":22,"1387":22,"1388":22,"1389":22,"139":[13,22],"1390":22,"1391":22,"1392":22,"1393":22,"1394":22,"1395":22,"1396":22,"1397":22,"1398":22,"1399":22,"13\u56de":3,"13f":8,"14":[6,10,14,15,22],"140":[13,17,22],"1400":22,"1401":22,"1402":22,"1403":22,"1404":22,"1405":22,"1406":22,"1407":22,"1408":22,"140808":6,"1409":22,"141":[6,13,22],"1410":22,"1410364":6,"1411":22,"1412":22,"1413":22,"1414":22,"1415":22,"14153816":6,"1416":22,"14164512":6,"1417":22,"1418":22,"1419":22,"142":[5,6,13,19,22],"1420":22,"1421":22,"1422":22,"1423":22,"1424":22,"1425":22,"1426":22,"1427":22,"1428":22,"1429":22,"143":[6,22],"1430":22,"1431":22,"1432":22,"1433":22,"1434":22,"1435":22,"1436":22,"1437":22,"1438":22,"1439":22,"143k":19,"144":[6,22],"1440":22,"1441":22,"1442":22,"1443":22,"1444":22,"1445":22,"1446":22,"1447":22,"1448":22,"1449":22,"145":22,"1450":22,"1451":22,"1452":22,"1453":22,"1454":22,"1455":22,"14557":5,"1456":22,"1457":22,"1458":[6,22],"1459":22,"146":22,"1460":22,"146087":19,"1461":22,"1462":22,"1463":22,"1464":22,"1465":22,"1466":22,"1467":22,"1468":22,"1469":22,"147":22,"1470":22,"1471":22,"1472":22,"1473":22,"1474":22,"1475":22,"1476":22,"1477":22,"1478":22,"1479":22,"148":22,"1480":22,"1481":22,"14818071e":10,"1482":22,"1483":22,"1484":22,"1485":22,"1486":22,"1487":22,"1488":22,"1489":22,"149":22,"1490":22,"1491":22,"1492":22,"1493":22,"1494":22,"1495":22,"1496":22,"1497":22,"1498":22,"1499":22,"14994":22,"14997":22,"14ugddousz9tmb":20,"15":[5,7,8,10,11,12,13,14,15,17,19,22,25],"150":[17,22],"1500":22,"15000":22,"1500000":3,"1500000\u90e8\u5206\u304c":3,"1501":22,"1502":22,"1503":22,"1504":22,"1505":22,"1506":22,"1507":22,"1508":22,"1509":22,"150\u4e07\u672a\u6e80\u3042\u308b\u9650\u308a\u8ced\u3051\u7d9a\u3051\u308b\u3053\u3068\u3092while\u6587\u3067\u8868\u73fe":3,"150\u79d2\u7a0b\u5ea6\u304b\u304b\u308b\u3088\u3046\u3067\u3059":9,"151":22,"1510":22,"1510373285995":10,"1511":22,"1512":22,"1513":22,"1514":22,"1515":22,"1516":22,"1517":22,"1518":22,"1519":22,"152":[5,22],"1520":22,"1521":22,"1522":22,"1523":22,"1524":22,"1525":22,"1526":22,"1527":[5,22],"1528":22,"1529":22,"153":[3,22],"1530":22,"1531":22,"1532":22,"1533":22,"1534":22,"1535":22,"1536":22,"1537":22,"1538":22,"15383219":15,"1539":22,"154":22,"1540":22,"1541":22,"1542":22,"1543":22,"1544":22,"1545":22,"1546":22,"1547":22,"1548":22,"1549":22,"155":[10,22],"1550":22,"1551":22,"1552":22,"1553":22,"1554":22,"1555":22,"1556":22,"1557":22,"1558":22,"1559":22,"156":[18,22],"1560":22,"1561":22,"1562":22,"1563":22,"1564":22,"1565":22,"1566":22,"1567":22,"1568":22,"1569":22,"157":22,"1570":22,"1571":22,"1572":22,"1573":22,"1574":22,"1575":22,"1576":22,"1577":22,"1578":22,"1579":22,"158":[18,22],"1580":22,"1581":22,"1582":22,"1583":22,"1584":22,"1585":22,"1586":22,"1587":22,"1588":22,"1589":22,"159":22,"1590":22,"1591":22,"1592":22,"1593":22,"1594":22,"1595":22,"1596":22,"1597":22,"1598":22,"1599":22,"16":[6,10,11,15,22],"160":22,"1600":22,"1601":22,"1602":22,"1603":22,"1604":22,"1605":22,"1606":22,"1607":22,"1608":22,"1609":22,"161":22,"1610":22,"1611":22,"1612":22,"1613":22,"1614":22,"1615":22,"1616":22,"1617":22,"1618":22,"1619":22,"162":[18,22],"1620":22,"1621":22,"1622":22,"1623":22,"1624":22,"1625":22,"1626":22,"1627":22,"1628":22,"1629":22,"163":22,"1630":22,"1631":22,"1632":22,"1633":22,"1634":22,"1635":22,"1636":22,"1637":22,"1638":22,"1639":22,"164":22,"1640":22,"1641":22,"1642":22,"1643":22,"1644":22,"1645":22,"1646":22,"1647":22,"1648":22,"1649":22,"165":[3,17,22],"1650":22,"1651":22,"1651968":15,"1652":22,"1653":22,"1654":22,"16543149e":11,"1655":22,"1656":22,"1657":22,"1658":22,"1659":22,"166":22,"1660":22,"1661":22,"1662":22,"1663":22,"1664":22,"1665":22,"1666":22,"1667":22,"1668":22,"1669":22,"167":22,"1670":22,"1671":22,"1672":22,"1673":22,"1674":22,"1675":22,"1676":22,"1677":22,"1678":22,"1679":22,"168":22,"1680":22,"1681":22,"16816651":11,"1682":22,"1683":22,"1684":22,"16840168e":11,"1685":22,"1686":22,"1687":22,"1688":22,"1689":22,"169":22,"1690":22,"1691":22,"1692":22,"1693":22,"1694":22,"1695":22,"1696":22,"1697":22,"1698":22,"1699":22,"17":[2,6,10,13,14,15,19,20,22],"170":[5,18,22],"1700":22,"1701":22,"1702":22,"1703":22,"1704":22,"1705":22,"1706":22,"1707":22,"1708":22,"1709":22,"171":22,"1710":22,"1711":22,"1712":22,"1713":22,"1714":22,"1715":22,"1716":22,"1717":22,"1718":22,"1719":22,"172":[18,22],"1720":22,"1721":22,"1722":22,"1723":22,"1724":22,"1725":22,"1726":22,"1727":22,"1728":22,"1729":22,"173":22,"1730":22,"1731":22,"1732":22,"1733":22,"17337266":17,"1734":22,"1735":22,"1736":22,"1737":22,"1738":22,"1739":22,"17391":5,"174":22,"1740":22,"1741":22,"1742":22,"1743":22,"1744":22,"1745":22,"1746":22,"1747":22,"1748":22,"1749":22,"175":22,"1750":22,"1751":22,"1752":22,"1753":22,"1754":22,"1755":22,"1756":22,"1757":22,"1758":22,"1759":22,"176":22,"1760":22,"1761":22,"1762":22,"1763":22,"1764":22,"1765":22,"1766":22,"1767":22,"1768":22,"1769":22,"177":[5,22],"1770":22,"1771":22,"1772":22,"1773":22,"1774":22,"177429":15,"1775":22,"1776":22,"1777":22,"1778":22,"1779":22,"178":[3,22],"1780":22,"1781":22,"1782":22,"1783":22,"1784":22,"1785":22,"1786":22,"1787":22,"1788":22,"1789":22,"179":22,"1790":22,"1791":22,"1792":22,"1793":22,"1794":22,"1795":[5,22],"1796":22,"1797":22,"1798":22,"1799":22,"17\u4e16\u7d00\u306b\u30cb\u30e5\u30fc\u30c8\u30f3\u3068\u30e9\u30a4\u30d7\u30cb\u30c3\u30c4\u304c\u78ba\u7acb\u3057\u305f\u3068\u3059\u308b\u8aac\u3067":8,"18":[3,4,8,10,11,15,22],"180":[3,18,22],"1800":22,"1801":22,"1802":22,"1803":22,"1804":22,"1805":22,"1806":22,"1807":22,"1807419252783":15,"1808":22,"1809":22,"181":22,"1810":22,"1811":22,"1812":22,"1813":22,"1814":22,"18145497":19,"1815":22,"1816":22,"1817":22,"1818":22,"1819":22,"182":22,"1820":22,"1821":22,"1822":22,"1823":22,"1824":22,"1825":22,"1826":22,"1827":22,"1828":22,"1829":22,"183":22,"1830":22,"1831":22,"1832":22,"1833":22,"1834":22,"1835":22,"1836":22,"1837":[19,22],"1838":22,"1839":22,"184":22,"1840":22,"1841":22,"1842":22,"1843":22,"1844":22,"1845":22,"1846":22,"1847":22,"1848":22,"1849":22,"185":[19,22],"1850":22,"1850391383":15,"1851":22,"1852":22,"1853":22,"1854":22,"18541318153565":10,"1855":22,"1856":22,"1857":22,"1858":22,"1859":22,"186":22,"1860":22,"1861":22,"186157537795744":10,"1862":22,"1863":22,"1864":22,"1865":22,"1866":22,"1867":22,"1868":22,"1869":22,"186904695016516":10,"187":22,"1870":22,"1871":22,"1872":22,"1873":22,"1874":22,"1875":22,"1876":22,"18765467254862":10,"1877":22,"1878":22,"1879":22,"188":22,"1880":22,"1881":22,"1882":22,"1883":22,"1884":22,"188407489902666":10,"1885":22,"1886":22,"1887":22,"1888":22,"1889":22,"189":22,"1890":22,"1891":22,"189163166751285":10,"1892":22,"1893":22,"1894":22,"1895":22,"1896":22,"1897":22,"1898":22,"1899":22,"18992172293257":10,"18mopwtmjsl_z17q":20,"19":[5,7,10,11,13,14,15,16,19,22,25],"190":[17,22],"1900":22,"1901":22,"1902":22,"1903":22,"1904":22,"1905":22,"1906":22,"19063":15,"19068317848521":10,"1907":22,"1908":22,"1909":22,"191":22,"1910":22,"1911":22,"1912":22,"1913":22,"1914":22,"19144755457859":10,"1915":22,"19158249":10,"1916":22,"1917":22,"1918":22,"1919":22,"192":22,"1920":22,"1921":22,"1922":22,"19221490236367":10,"1923":22,"1924":22,"1925":22,"1926":22,"19261588":10,"1927":22,"1928":22,"1929":22,"19298621925973":10,"193":22,"1930":22,"1931":22,"1932":22,"1933":22,"1934":22,"1935":22,"1936":22,"1937":22,"19379266944327":10,"1938":22,"1939":22,"194":22,"1940":22,"1941":22,"1942":22,"1943":22,"1944":22,"1945":22,"1946":22,"1947":22,"1948":22,"1949":22,"195":22,"1950":22,"1951":22,"1952":22,"1953":22,"1954":22,"1955":22,"1956":22,"1956281449949":10,"1957":22,"1958":22,"1959":22,"196":[19,22],"1960":[7,22],"1961":22,"1962":22,"1963":22,"1964":[7,22,25],"1965":22,"1966":22,"1967":22,"1968":[7,22,25],"1969":22,"197":22,"1970":22,"1971":22,"1972":22,"1973":22,"1974":22,"1975":22,"1976":22,"1977":22,"1978":22,"1979":22,"198":22,"1980":22,"1981":22,"1982":[10,22],"1983":[7,22,25],"1984":22,"1985":22,"1986":22,"1987":22,"1988":[7,22,25],"1989":[18,22],"198cm\u306810":10,"199":[19,22],"1990":[3,22],"1991":[7,22,25],"1992":22,"1993":[18,22],"1994":[7,22,25],"1995":[3,22],"1996":[7,22,25],"1997":22,"1998":[18,22],"1999":[7,22,25],"19f_":16,"19f_i":16,"1\u304b\u30891\u307e\u3067\u306e\u5024\u3092\u53d6\u308a1":7,"1\u304b\u30891\u307e\u3067\u306e\u9593\u306b\u5206\u5e03\u3057\u3066\u3044\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059":6,"1\u304b\u30893\u884c\u76ee\u307e\u3067":18,"1\u304b\u30895000\u307e\u3067\u306e\u6574\u6570":3,"1\u304b\u30895000\u307e\u3067\u306e\u6574\u6570\u304c\u4e26\u3093\u3060\u30ea\u30b9\u30c8":22,"1\u304b\u308999\u307e\u3067\u3092\u56de\u308b":4,"1\u3064\u304cunix\u7cfb\u3067\u6b74\u53f2\u304c\u53e4\u3044":23,"1\u3064\u306e\u30d1\u30e9\u30d1\u30e9\u6f2b\u753b\u306b\u307e\u3068\u3081\u3066\u307f\u307e\u3057\u3087\u3046":5,"1\u3064\u3081":[1,24],"1\u3064\u3081\u306e\u5f15\u6570\u306fx\u8ef8\u4e0a\u306e\u5024\u3067":5,"1\u3064\u3081\u306e\u884c\u3067\u306f\u307e\u305a\u6388\u696d\u8cc7\u6599\u306egithub\u30ec\u30dd\u30b8\u30c8\u30ea\u3092colab\u74b0\u5883\u3067\u9593\u501f\u308a\u3057\u3066\u3044\u308bgoogle\u306e\u30b5\u30fc\u30d0\u30fc\u4e0a\u306b\u30af\u30ed\u30fc\u30f3":9,"1\u3064\u3081\u306f\u73fe\u5728\u3044\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u7b49\u3092\u8868\u793a":24,"1\u3064\u3081\u306fhome\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304b\u3089\u30c7\u30b9\u30af\u30c8\u30c3\u30d7":24,"1\u3064\u76ee\u306e\u4f8b\u3068\u3057\u3066":13,"1\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u533a\u9593\u3067sample_s":7,"1\u306a\u3069\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u308b\u306e\u3067":21,"1\u306a\u3069\u3068\u3057\u3066\u8a66\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044":10,"1\u306e\u3042\u3068\u306b\u7121\u9650\u306b0\u304c\u7d9a\u304f\u6570\u3092\u6271\u3046\u3053\u3068\u304c\u3067\u304d\u308c\u3070":2,"1\u306e\u7121\u4f5c\u70ba\u306a\u4e26\u3079\u304b\u3048\u3092\u3059\u308b":25,"1\u306e\uff12\u56de\u3067":3,"1\u30b7\u30b0\u30de":6,"1\u4e07\u56de\u8981\u7d20\u306e\u548c\u3092\u8a08\u7b97\u3059\u308b\u3068\u3044\u3046\u8a08\u7b97\u3092\u3057\u3066\u307f\u307e\u3057\u3087\u3046":3,"1\u4eba":25,"1\u500b\u524d\u306e":16,"1\u5217\u76ee":9,"1\u56de\u76ee\u306f":21,"1\u5909\u6570\u306e\u95a2\u6570\u3067\u3042\u308b\u306f\u305a\u304c\u306a\u3044":8,"1\u5e74\u6b21\u306e\u5fc5\u4fee\u79d1\u76ee":7,"1\u670820\u65e5\u4ee5\u964d\u306e\u7d4c\u904e\u65e5\u6570":5,"1\u6708\u304b\u308912\u6708\u306b\u9806\u756a\u306b\u30ea\u30b9\u30c8\u306b\u5165\u308c\u3066\u3044\u304f\u3053\u3068\u306b\u3057\u307e\u3059":5,"1\u6841\u7a0b\u5ea6":16,"1\u6b21\u306elagrange\u88dc\u9593\u3067\u8fd1\u4f3c\u3057\u3066\u307f\u308b":16,"1\u6b21\u5143\u306e\u5834\u5408\u306b\u8a71\u3092\u623b\u3057\u3066":8,"1\u6b21\u5143\u306e\u6b63\u898f\u5206\u5e03\u304c":6,"1\u6b21\u5143\u306endarrai":22,"1\u6b21\u5143\u5165\u529bx\u306b\u5bfe\u3059\u308b\u591a\u9805\u5f0f\u3092\u8a08\u7b97\u3057\u3066\u304f\u308c\u308bpoly1d\u95a2\u6570\u3092\u7528\u3044\u3066\u63cf\u753b\u70b9xp\u3067\u306e\u30e2\u30c7\u30eb\u95a2\u6570\u306e\u5024\u3092\u8a08\u7b97\u3059\u308b":7,"1\u756a\u76ee":24,"1\u756a\u76ee\u306e\u70b9\u3067\u3059\u304c":22,"1\u7a40\u985e":18,"1\u884c\u5217":17,"1\u884c\u76ee":5,"1\u884c\u76ee\u3067\u30d5\u30a1\u30a4\u30eb\u540d":9,"1\u968e\u306e\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f":16,"1_n":17,"1e":[8,11],"1f":5,"1kd0sk8el":5,"1mgaussian_nois":11,"1mgp_regress":11,"1mmat52":11,"1p":17,"1sigma":12,"2":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25],"20":[3,4,5,6,7,8,10,12,15,17,18,22,25],"200":[14,17,19,22],"2000":[3,10,18,22],"20000":[5,9,13],"200000":3,"20000000000001":11,"20005343":17,"2000\u4ef6\u306e\u56de\u7b54\u306f":9,"2000\u5e74\u3088\u308a\u524d\u306b\u751f\u307e\u308c\u305f\u4eba\u3060\u3051\u3092\u62bd\u51fa\u3057":18,"2000\u884c\u76ee\u306b\u306f2000\u4eba\u5206\u306e\u56de\u7b54\u304c\u8a70\u307e\u3063\u3066\u3044\u308b":9,"2001":22,"2002":[7,18,22,25],"2003":22,"2004":22,"2005":[3,7,22,25],"2006":22,"2006\u5e74\u307e\u3067\u3068\u305d\u308c\u4ee5\u964d\u3068\u3067\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb":9,"2007":[7,22,25],"2008":[7,22,25],"2009":[7,22,25],"201":22,"2010":[3,22],"2010\u5e74\u4ee3\u306e\u53d7\u8cde\u8005\u306e\u307f\u306b\u8208\u5473\u304c\u3042\u308b\u5834\u5408\u306f":18,"2011":22,"2012":22,"2013":[13,22],"2013\u5e74":13,"2013\u5e741\u6708":13,"2013\u5e742\u6708":13,"2013\u5e743\u6708":13,"2013\u5e744\u6708":13,"2013\u5e745\u6708":13,"2014":[5,22],"2015":[3,22],"2016":22,"2016\u5e7412\u6708":13,"2017":[9,13,22],"20176990047585":10,"2017\u5e74\u306e\u5b87\u90fd\u5bae\u306e\u5e73\u5747\u6c17\u6e29\u3068\u30a2\u30a4\u30b9\u30af\u30ea\u30fc\u30e0\u306e\u6d88\u8cbb\u91cf\u306e\u76f8\u95a2\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046":5,"2017\u5e74\u306e\u5b87\u90fd\u5bae\u5e02\u306b\u304a\u3051\u308b\u6708\u5225\u306e\u5e73\u5747\u6c17\u6e29":7,"2017\u5e74\u306e\u5bb6\u8a08\u8abf\u67fb":7,"2018":[13,22],"2019":22,"2019\u5e741\u670820\u65e5\u4ee5\u964d\u306e\u7d4c\u904e\u65e5\u6570":5,"2019\u5e742\u670813\u65e5\u307e\u3067\u306e\u30c7\u30fc\u30bf":5,"2019\u5e74\u306b\u30de\u30a4\u30af\u30ed\u30bd\u30d5\u30c8\u304c\u30ea\u30ea\u30fc\u30b9\u3057\u305f\u30bf\u30fc\u30df\u30ca\u30eb\u3067":23,"202":22,"2020":[3,7,13,22],"20201225":18,"2020\u5e74\u5ea6\u524d\u671f\u306e\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30b9\u5165\u9580":9,"2021":[13,15,22],"2021\u5e745\u6708":13,"2021\u5e746\u6708":13,"2021\u5e747\u6708":13,"2021\u5e748\u6708":13,"2021\u5e749\u6708":13,"2022":[13,19,22],"2023":22,"2024":22,"2025":22,"2026":22,"2027":22,"2028":22,"2029":22,"203":22,"2030":22,"2031":22,"2032":22,"2033":22,"2034":22,"2035":22,"2036":22,"2037":22,"2038":22,"2039":22,"204":22,"2040":22,"2041":22,"2042":22,"2043":22,"2044":22,"2045":22,"2046":22,"2047":22,"2048":22,"2049":[15,22],"205":22,"2050":22,"2051":22,"2052":22,"2053":22,"2054":22,"2055":22,"20553":19,"2056":[10,22],"2057":22,"2058":22,"2059":22,"206":22,"2060":22,"2061":22,"2062":22,"2063":22,"20630":5,"2064":22,"2065":22,"2066":22,"2067":22,"2068":22,"2069":22,"207":22,"2070":22,"2071":22,"2072":22,"2073":22,"2074":22,"2075":22,"2076":22,"2077":22,"2078":22,"2079":22,"208":22,"2080":22,"2080\u5e74\u4ee3\u306b\u306f100m\u8d70\u306e\u30bf\u30a4\u30e0\u304c\u30bc\u30ed\u306b\u306a\u3063\u3066\u3057\u307e\u3046\u304a\u304b\u3057\u306a\u4e88\u6e2c\u3060\u3068\u6c17\u304c\u3064\u304f":7,"2081":22,"2082":22,"2083":22,"2084":22,"2085":22,"2086":22,"2087":22,"2088":22,"2089":22,"209":22,"2090":22,"2091":22,"2092":22,"2093":22,"2094":22,"2095":22,"2096":22,"2097":22,"2098":22,"2099":22,"20\u3068\u306a\u308b":18,"20\u4e07\u5931\u3046":3,"20\u56de\u3060\u3051\u5b66\u7fd2\u306e\u69d8\u5b50\u3092\u8868\u793a":10,"20\u56de\u306eiter":15,"21":[3,5,7,13,17,22,25],"210":22,"2100":[7,22],"2101":[7,22],"2102":22,"2103":22,"2104":22,"2105":22,"2106":22,"2107":22,"2108":22,"2109":22,"211":22,"2110":[5,22],"2111":22,"2112":22,"2113":22,"2114":22,"2115":22,"2116":22,"2117":22,"2118":22,"2119":22,"212":22,"2120":22,"2121":22,"2122":22,"2123":22,"2124":22,"2125":22,"2126":22,"2127":22,"2128":22,"2129":22,"213":22,"2130":22,"2131":22,"2132":22,"2133":22,"2134":22,"2135":22,"2136":22,"2137":22,"2138":22,"2139":22,"214":22,"2140":22,"2141":22,"2142":22,"2143":22,"2144":22,"2145":22,"2146":22,"2147":22,"2148":22,"2149":22,"215":22,"2150":22,"2151":22,"2152":22,"2153":22,"2154":22,"2155":22,"2156":22,"2156493\u3067\u3059":3,"2157":22,"2158":22,"2159":22,"216":22,"2160":22,"2161":22,"2162":22,"2163":22,"2164":22,"2165":22,"2166":22,"2167":22,"2168":22,"2169":22,"217":22,"2170":22,"2171":22,"2172":22,"2173":22,"2174":22,"2175":22,"2176":22,"2177":22,"2178":22,"2179":22,"218":22,"2180":22,"2181":22,"2182":22,"2183":22,"2184":22,"2185":22,"2186":22,"2187":22,"21872673e":10,"2188":22,"2189":22,"219":22,"2190":22,"2191":22,"2192":22,"2193":22,"2194":22,"2195":22,"2196":22,"2197":22,"2198":22,"2199":22,"21\u500b\u3082\u306e\u8868\u304c\u3042\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059":18,"22":[5,9,17,22],"220":[15,22],"2200":22,"2201":22,"2202":22,"2203":22,"2204":22,"2205":22,"2206":22,"2207":22,"2208":22,"2209":22,"221":22,"2210":22,"2211":22,"2212":22,"2213":22,"2214":22,"2215":22,"2216":22,"2217":22,"2218":22,"2219":22,"222":22,"2220":22,"2221":22,"2222":22,"22222222":11,"2223":22,"2224":22,"2225":22,"2226":22,"2227":22,"2228":22,"2229":22,"223":22,"2230":22,"22307947":19,"2231":22,"22318899":19,"2232":22,"2233":22,"2234":22,"2235":22,"2236":22,"2237":22,"2238":22,"2239":22,"224":[20,22],"2240":22,"2241":22,"2242":22,"2243":22,"2244":22,"2245":22,"2246":22,"2247":22,"2248":22,"2249":22,"225":22,"2250":22,"2251":22,"2252":22,"2253":22,"2254":22,"2255":22,"2256":22,"2256340399442445":15,"2257":22,"2258":22,"2259":22,"226":22,"2260":22,"2261":22,"2262":22,"2263":22,"2264":22,"2265":22,"2266":22,"2267":22,"2268":22,"2269":22,"227":[8,22],"2270":22,"2271":22,"2272":22,"2273":22,"2274":22,"2275":22,"2276":22,"22766071e":11,"2277":22,"2278":22,"2279":22,"228":22,"2280":22,"2281":22,"2282":22,"22824171":17,"2283":22,"2284":22,"2285":22,"2286":22,"2287":22,"2288":22,"2289":22,"229":22,"2290":22,"2291":22,"2292":22,"2293":22,"2294":22,"2295":22,"2296":[5,22],"2297":22,"2298":22,"2299":22,"23":[5,10,15,22],"230":22,"2300":22,"2301":22,"2302":22,"230205073524374":10,"2303":22,"2304":22,"2305":22,"2306":22,"2307":22,"2308":22,"2309":22,"231":22,"2310":22,"2311":22,"2312":22,"2313":22,"2314":22,"2315":22,"2316":22,"2317":22,"2318":22,"2319":22,"232":22,"2320":22,"2321":22,"2322":22,"2323":22,"2324":22,"2325":22,"2326":22,"2327":22,"2328":22,"2329":22,"233":22,"2330":22,"2331":22,"2332":22,"2333":22,"2334":22,"2335":22,"2336":22,"2337":22,"2337691135149766":11,"2338":22,"2339":22,"234":22,"2340":22,"2341":22,"2342":22,"2343":22,"2344":22,"2345":22,"2346":22,"2347":22,"2348":22,"2349":22,"235":22,"2350":22,"2351":22,"2352":22,"23527933e":10,"2353":22,"2354":22,"2355":22,"2356":22,"2357":22,"2358":22,"2359":22,"236":22,"2360":22,"2361":22,"2362":22,"2363":22,"2364":22,"2365":22,"2366":22,"2367":22,"23670010e":10,"2368":22,"2369":22,"237":[5,22],"2370":22,"2371":22,"2372":22,"2373":22,"2374":22,"2375":22,"2376":22,"2377":22,"2378":22,"2378770684995737":10,"2379":22,"238":22,"2380":22,"2381":22,"2382":22,"2383":22,"2384":22,"2385":22,"2386":22,"2387":22,"2388":22,"2389":22,"239":22,"2390":22,"2391":22,"2392":22,"2393":22,"2394":22,"2395":22,"2396":22,"2397":22,"2398":22,"2399":22,"24":[13,16,22],"240":22,"2400":22,"2401":22,"2402":22,"2403":22,"2404":22,"2405":22,"2405297752729125":11,"2406":22,"2407":22,"2408":22,"2409":22,"241":22,"2410":22,"24105294":17,"2411":22,"2412":22,"2413":22,"2414":22,"2415":22,"2416":22,"2417":22,"2418":22,"2419":22,"242":22,"2420":22,"2421":22,"2422":22,"2423":22,"2424":22,"2425":22,"2426":22,"24267075":17,"2427":22,"2428":22,"2429":22,"243":22,"2430":22,"2431":22,"2432":22,"2433":22,"2434":22,"2435":22,"2436":22,"2437":22,"2438":22,"2439":22,"244":22,"2440":22,"2441":22,"2442":22,"2443":22,"2444":22,"24447765":10,"2445":22,"2446":22,"2447":22,"2448":22,"2449":22,"245":22,"2450":22,"2451":22,"2452":22,"2453":22,"2454":22,"2455":22,"24554":5,"2456":22,"2457":22,"2458":22,"2459":22,"246":22,"2460":22,"2461":22,"2462":22,"2463":22,"2464":22,"2465":22,"2466":22,"2467":22,"2468":22,"2469":22,"247":22,"2470":22,"2471":22,"2472":22,"2473":22,"2474":22,"2475":22,"2476":22,"2477":22,"2478":22,"2479":22,"248":22,"2480":22,"2481":22,"2482":22,"2483":22,"2484":22,"2485":22,"2486":22,"2487":22,"2488":22,"2489":22,"249":[5,22],"2490":22,"2491":22,"2492":22,"24927634e":10,"2493":22,"2494":22,"2495":22,"2496":22,"2497":22,"2498":22,"2499":22,"24t08":13,"25":[3,5,7,22,25],"250":22,"2500":22,"2500000000000":8,"2501":22,"2502":22,"2503":22,"2504":22,"2505":22,"2506":22,"2507":22,"2508":22,"2509":22,"251":22,"2510":22,"2511":22,"2512":22,"2513":22,"2514":22,"2515":22,"2516":22,"2517":22,"2518":22,"2519":22,"252":22,"2520":22,"2521":22,"2522":22,"2523":22,"2524":22,"2525":22,"2526":22,"2527":22,"2528":22,"2529":22,"253":22,"2530":22,"2531":22,"2532":22,"2533":22,"2534":22,"2535":22,"2536":22,"2537":22,"2538":22,"2539":22,"254":22,"2540":22,"2541":22,"2542":22,"2543":22,"2544":22,"2545":22,"2546":22,"2547":22,"254727173274235":6,"2548":22,"2549":22,"255":22,"2550":22,"2551":22,"2552":22,"2553":22,"2554":22,"2555":22,"2556":22,"2557":22,"2558":22,"2559":22,"256":[20,22],"2560":22,"2561":22,"2562":22,"2563":22,"2564":22,"2565":22,"2565113":11,"2566":22,"2567":22,"2568":22,"2569":22,"257":22,"2570":22,"2571":22,"2572":22,"2573":22,"2574":22,"2575":22,"2576":22,"2577":22,"2578":22,"2579":22,"258":22,"2580":22,"2581":22,"2582":22,"2583":22,"2584":22,"2585":22,"2586":22,"2587":22,"2588":22,"2589":22,"259":22,"2590":22,"2591":22,"2592":22,"2593":22,"2594":22,"2595":22,"2596":22,"2597":22,"2598":22,"2599":22,"25\u306a\u306e\u306b\u5bfe\u3057\u3066":10,"25hdone":[5,11],"25hrequir":[5,11],"25l":[5,11],"25mimg":20,"26":[5,7,11,13,22,25],"260":22,"2600":22,"2601":22,"2602":22,"2603":22,"2604":22,"2605":22,"2606":22,"2607":22,"2608":22,"2609":22,"261":22,"2610":22,"2611":22,"2612":22,"2613":22,"26130258":20,"2614":22,"2615":22,"2616":22,"2617":22,"2618":22,"2619":22,"262":22,"2620":22,"2621":22,"2622":22,"2623":22,"2624":22,"2625":22,"2626":22,"2627":22,"2628":22,"2629":22,"263":22,"2630":22,"2631":22,"2632":22,"2633":22,"2634":22,"2635":22,"2636":22,"263654581782899":6,"2637":22,"2638":22,"2639":22,"264":22,"2640":22,"2641":22,"2642":22,"2643":22,"2644":22,"2645":22,"2646":22,"2647":22,"2648":22,"2649":22,"265":22,"2650":22,"2651":22,"2652":22,"2653":22,"2654":22,"2655":22,"2656":22,"2657":22,"2658":22,"2659":22,"266":22,"2660":22,"2661":22,"2662":22,"2663":22,"2664":22,"2665":22,"2666":22,"2667":22,"2668":22,"2669":22,"267":22,"2670":22,"2671":22,"2672":22,"2673":22,"2674":22,"2675":22,"2676":22,"2677":22,"2678":22,"2679":22,"268":22,"2680":22,"2681":22,"2682":22,"2683":22,"2684":22,"268410685784332":15,"2685":22,"2686":22,"26862954":20,"2687":22,"2688":22,"2689":22,"269":22,"2690":22,"2691":22,"2692":22,"2693":22,"2694":22,"2695":22,"2696":22,"2697":22,"2698":22,"2699":22,"27":[13,14,22],"270":22,"2700":22,"2701":22,"2702":22,"2703":22,"2704":22,"2705":22,"2706":22,"2707":22,"2708":22,"2709":22,"271":22,"2710":22,"2711":22,"2712":22,"2713":22,"2714":22,"2715":22,"2716":22,"2717":22,"2718":22,"2719":22,"272":22,"2720":22,"2721":22,"2722":22,"2723":22,"2724":22,"2725":22,"2726":22,"2727":22,"2728":22,"2729":22,"273":22,"2730":22,"2731":22,"2732":22,"2733":22,"27331888":13,"2734":22,"2735":22,"2736":22,"2737":22,"2738":22,"2739":22,"27395304":13,"274":22,"2740":22,"2741":22,"2742":22,"2743":22,"2744":22,"2745":22,"2746":22,"2747":22,"2748":22,"2749":22,"275":22,"2750":22,"2751":22,"2752":22,"2753":22,"2754":22,"2755":22,"2756":22,"2757":22,"27571625":19,"27577711":20,"2758":22,"2759":22,"276":[8,22],"2760":22,"2761":22,"2762":22,"2763":22,"2764":22,"2765":22,"2766":22,"2767":22,"2768":22,"2769":22,"277":[8,22],"2770":22,"2771":22,"2772":22,"2773":22,"2774":22,"27747026":19,"2775":22,"2776":22,"2777":22,"2778":22,"2779":22,"278":[8,22],"2780":22,"2781":22,"2782":22,"2783":22,"2784":22,"2785":22,"2786":22,"2787":22,"2788":[5,22],"2789":22,"279":22,"2790":22,"2791":22,"2792":22,"2793":22,"2794":22,"2795":22,"2796":22,"2797":22,"2798":[5,22],"2799":22,"28":[6,11,14,22],"280":22,"2800":22,"2801":22,"2802":22,"2803":22,"2804":22,"2805":22,"2806":22,"28061578625216":15,"2807":22,"2808":22,"2809":22,"281":[8,22],"2810":22,"2811":22,"2812":22,"2813":22,"2814":22,"2815":22,"2816":22,"2817":22,"2818":22,"2819":22,"282":[5,22],"2820":22,"2821":22,"2822":22,"2823":22,"2824":22,"2825":22,"2826":22,"2827":22,"28276":5,"2828":22,"2829":22,"283":22,"2830":22,"2831":22,"2832":22,"2833":22,"2834":22,"2835":22,"2836":22,"2837":22,"2838":22,"2839":22,"28395062":22,"284":22,"2840":22,"2841":22,"2842":22,"2843":22,"2844":22,"2845":22,"2846":22,"2847":22,"2848":22,"2849":22,"285":22,"2850":22,"2851":22,"2852":22,"2853":22,"2854":22,"2855":22,"2856":22,"2857":22,"2858":22,"2859":22,"286":22,"2860":22,"2861":22,"2862":22,"2863":22,"2864":22,"28648626":13,"2865":22,"2866":22,"2867":22,"28676427":13,"2868":22,"2869":22,"287":[8,22],"2870":22,"2871":22,"2871\u901a\u308a":9,"2872":22,"2873":22,"2874":22,"2875":22,"2876":22,"2877":22,"2878":22,"2879":22,"288":22,"2880":22,"2881":22,"2882":22,"2883":22,"2884":22,"2885":22,"2886":22,"2887":22,"2888":22,"2889":22,"289":22,"2890":22,"2891":22,"2892":22,"2893":22,"2894":22,"2895":22,"2896":22,"2897":22,"2898":22,"2899":22,"29":[10,11,14,22],"290":22,"2900":22,"2901":22,"2902":22,"2903":22,"2904":22,"2905":22,"2906":22,"2907":22,"2908":22,"2909":22,"291":22,"2910":22,"2911":22,"2912":22,"2913":22,"2914":22,"2915":22,"2916":22,"2917":22,"2918":22,"2919":22,"291\u901a\u308a":9,"292":22,"2920":22,"2921":22,"2922":22,"2923":22,"2924":22,"2925":22,"2926":22,"2927":22,"2928":22,"2929":22,"293":22,"2930":22,"2931":22,"2932":22,"2933":22,"29333540781674877":6,"2934":22,"2935":22,"29358546868393":10,"2936":22,"2937":22,"2938":22,"2939":22,"294":22,"2940":22,"2941":22,"2942":22,"2943":22,"2944":22,"2945":22,"2946":22,"2947":22,"2948":22,"2949":22,"295":22,"2950":22,"2951":22,"2952":22,"2953":22,"2954":22,"2955":22,"2956":22,"2957":22,"2958":22,"2959":22,"296":22,"2960":22,"2961":22,"2962":22,"2963":22,"2964":22,"2965":22,"2966":22,"2967":22,"2968":22,"2969":22,"297":22,"2970":22,"2971":22,"2972":22,"2973":22,"2974":22,"2975":22,"2976":22,"2977":22,"2978":22,"2979":22,"298":22,"2980":22,"2981":22,"2982":22,"2983":22,"2984":22,"2985":22,"2986":22,"2987":22,"2988":22,"2989":22,"299":22,"2990":22,"2991":22,"2992":22,"2993":22,"2994":22,"2995":22,"2996":22,"2997":22,"2998":22,"2999":22,"2999286509533796":11,"2\u304c\u9078\u3070\u308c\u308b":4,"2\u3064\u3081":[1,24],"2\u3064\u3081\u306f1\u3064\u4e0a\u306e\u968e\u5c64\u306b\u79fb\u52d5\u3059\u308b":24,"2\u3064\u3081\u306f\u73fe\u5728\u3044\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\uff11\u3064\u4e0a\u306e\u968e\u5c64\u306b\u3042\u308b":24,"2\u3064\u3081\u306fy\u8ef8\u306b\u5bfe\u5fdc\u3059\u308b\u5024\u3067\u3059":5,"2\u3064\u4ee5\u4e0a\u306e\u5909\u6570\u3067\u3042\u308b\u3053\u3068\u3092\u660e\u793a\u7684\u306b\u8868\u3059\u305f\u3081":6,"2\u3064\u76ee\u306e2":3,"2\u3067\u3057\u3087\u3046\u304b":4,"2\u3068\u3057\u3066\u8a08\u7b97\u3059\u308b\u95a2\u6570\u3068\u3058\u3083\u3093\u3051\u3093\u306e\u624b\u306b\u53cd\u6620\u3055\u305b\u308b\u90e8\u5206\u3092\u5206\u3051\u3066\u3082\u826f\u3044":6,"2\u306e\u56f3\u3092\u9001\u308b\u306a\u3069\u306f\u3057\u306a\u304f\u3066\u69cb\u308f\u306a\u3044":25,"2\u306e\u78ba\u7387\u3067":3,"2\u3092\u518d\u5ea6\u884c\u3046":23,"2\u30b7\u30b0\u30de":6,"2\u5217\u76ee":[9,18],"2\u56de\u76ee\u4ee5\u964d\u306fcl\u3067\u4e00\u5ea6\u63d0\u51fa\u3057\u305f\u904e\u53bb\u306eurl\u3092\u30b3\u30d4\u30fc\u3059\u308b\u306e\u304c\u624b\u3063\u53d6\u308a\u65e9\u3044":25,"2\u5e74\u751f\u306b\u306a\u308a\u91cf\u5b50\u529b\u5b66\u3092\u52c9\u5f37\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u8151\u306b\u843d\u3061\u305f\u899a\u3048\u304c\u3042\u308b":19,"2\u6b21\u306eab\u6cd5\u3092\u8003\u3048\u3088\u3046":16,"2\u6b21\u5143":17,"2\u6b21\u5143\u306b\u843d\u3068\u3057\u8fbc\u3093\u3067\u7406\u89e3\u3059\u308b\u3053\u3068\u3092\u76ee\u6307\u3059":17,"2\u6b21\u5143\u30c7\u30fc\u30bf\u306e\u751f\u6210":21,"2\u6b21\u516c\u5f0f\u3067\u3042\u308a":16,"2\u6b21\u5f0f\u306f3\u6b21\u5f0f\u306e":7,"2\u756a\u76ee\u30683\u756a\u76ee\u306e\u5024\u540c\u58eb\u306e\u4e8c\u6b21\u5143\u6563\u5e03\u56f3\u304c\u304b\u304d\u305f\u3044":22,"2\u756a\u76ee\u306e\u5024\u3060\u3051\u304c\u5165\u3063\u305f\u914d\u5217\u306b\u5bfe\u3057\u3066":22,"2\u756a\u76ee\u306e\u70b9":22,"2\u756a\u76ee\u306e\u8981\u7d20\u306e\u914d\u5217":22,"2\u7ae0\u306e\u30ce\u30fc\u30c8":22,"2\u7ae0\u306e\u632f\u308a\u8fd4\u308a":25,"2\u884c\u76ee":[2,5,18],"2\u884c\u76ee\u3067\u306f":9,"2\u884c\u76ee\u3067\u30de\u30a4\u30c9\u30e9\u30a4\u30d6\u306e\u4e0b\u306badds\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u306e\u4f5c\u6210\u3092\u8a66\u307f":9,"2\u884c\u76ee\u306e\u8981\u7d20\u3092\u8868\u793a\u3057\u3066\u307f\u3088\u3046":18,"2_":16,"2_n":12,"2a":[2,8],"2ax_1":8,"2e":8,"2f":[5,9],"2f_2":16,"2f_3":16,"2h":16,"2mimg":20,"2p":17,"2t":16,"2tx":16,"2x":[1,8,16],"3":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,22,24,25],"30":[4,6,11,12,13,17,20,22],"300":[9,10,14,22],"3000":22,"3001":22,"3002":22,"3003":22,"3004":22,"3005":22,"3006":22,"3007":22,"3008":22,"3009":22,"301":22,"3010":22,"3011":22,"3012":22,"3013":22,"3014":22,"3015":22,"3016":22,"3017":22,"3017219833384583":15,"3018":22,"3019":22,"302":22,"3020":22,"3021":22,"3022":22,"3023":22,"3024":22,"3025":22,"3026":22,"3027":22,"3028":22,"3029":22,"303":22,"3030":22,"3031":22,"3032":22,"3033":22,"3034":22,"3035":22,"3036":22,"3037":22,"3038":22,"3039":22,"304":22,"3040":22,"3041":22,"3042":22,"3043":22,"3044":22,"3045":22,"3046":22,"3047":22,"3048":22,"3049":22,"305":22,"3050":22,"3051":22,"3052":22,"3053":22,"3054":22,"3055":22,"3056":22,"30566":19,"3057":22,"3058":22,"3059":22,"306":22,"3060":22,"3061":22,"3062":22,"3063":22,"3064":22,"3065":22,"3066":22,"3067":22,"3068":22,"3069":22,"306942787588895":10,"307":22,"3070":22,"3071":22,"3072":22,"3073":22,"3074":22,"3075":22,"3076":22,"3077":22,"3078":22,"3079":22,"308":22,"3080":22,"3081":22,"3082":22,"3083":22,"308351359326742":15,"3084":22,"3085":22,"3086":22,"3087":22,"3088":22,"3089":22,"309":22,"3090":22,"3091":22,"3092":22,"3093":22,"3094":22,"3095":22,"3096":22,"3097":22,"3098":22,"3099":22,"31":[6,10,14,22],"310":22,"3100":22,"3101":22,"3102":22,"3103":22,"3104":22,"3105":22,"3106":22,"3107":22,"3108":22,"3109":22,"311":22,"3110":22,"3111":22,"3112":22,"3113":22,"3114":22,"3115":22,"3116":22,"3117":22,"3118":22,"3119":22,"312":22,"3120":22,"3121":22,"3122":22,"3123":22,"3124":22,"3125":22,"3126":22,"3127":22,"3128":22,"3129":22,"313":22,"3130":22,"3131":22,"3132":22,"3133":22,"3134":22,"3135":22,"3136":22,"3137":22,"3138":22,"313885990777683":15,"3139":22,"314":[5,22],"3140":22,"3141":22,"3142":22,"3143":22,"3144":22,"3145":22,"3146":22,"3147":22,"3148":22,"31481":5,"3149":22,"315":[22,24],"3150":22,"3151":22,"3152":22,"3153":22,"3154":22,"31548719":17,"3155":22,"3156":22,"3157":22,"3158":22,"3159":22,"316":22,"3160":22,"3161":22,"3162":22,"3163":22,"3164":22,"3165":22,"3166":22,"3167":22,"3168":22,"3169":22,"317":22,"3170":22,"3171":22,"3172":22,"3173":22,"3174":22,"3175":22,"3176":22,"3177":22,"3178":22,"3179":22,"318":22,"3180":22,"3181":22,"3182":22,"3183":22,"3184":22,"3185":22,"3186":22,"3187":22,"3188":22,"3189":22,"319":22,"3190":22,"3191":22,"3192":22,"3193":22,"3194":22,"3195":22,"3196":22,"3197":22,"3197231":17,"3198":22,"3199":22,"31993675e":11,"31993679e":11,"32":[5,14,20,22],"320":22,"3200":22,"3201":22,"3202":22,"3203":22,"3204":22,"3205":22,"3206":22,"3207":22,"3208":22,"3209":22,"321":22,"3210":22,"3211":22,"3212":22,"3213":22,"3214":22,"3215":22,"3216":22,"3217":22,"3218":22,"3219":[5,22],"322":22,"3220":22,"3221":22,"3222":22,"3223":22,"3224":22,"3225":22,"3226":22,"3227":22,"3228":22,"3229":22,"322d2d1c6a18":14,"323":22,"3230":22,"3231":22,"3232":22,"3233":22,"3234":22,"3235":22,"3236":22,"3237":22,"3238":22,"3239":22,"324":[5,22],"3240":22,"3241":22,"3242":22,"3243":22,"3244":22,"3245":22,"3246":22,"3247":22,"3248":22,"3249":22,"325":22,"3250":22,"3251":22,"3252":22,"3253":22,"3254":22,"3255":22,"3256":22,"3257":22,"3258":22,"32586454e":11,"32586459e":11,"3259":22,"326":22,"3260":22,"3261":22,"3262":22,"3263":22,"3264":22,"3265":22,"3266":22,"3267":22,"3268":22,"3269":22,"327":22,"3270":22,"3271":22,"3272":22,"3273":22,"3274":22,"3275":22,"3276":22,"3277":22,"3278":22,"3279":22,"328":22,"3280":22,"3281":22,"3282":22,"3283":22,"3284":22,"3285":22,"3286":22,"3287":22,"32876\u901a\u308a":9,"3288":22,"3289":22,"329":22,"3290":22,"3291":22,"3292":22,"3293":22,"3294":22,"3295":22,"3296":22,"3297":22,"3298":22,"3299":22,"33":[5,22],"330":22,"3300":22,"3301":22,"3302":22,"3303":22,"3304":22,"3305":22,"3306":22,"3307":22,"3308":22,"3309":22,"331":22,"3310":22,"3311":22,"3312":22,"3313":22,"3314":22,"3315":22,"3316":22,"3316648104524687":11,"3317":22,"3318":22,"3319":22,"332":22,"3320":22,"3321":22,"3322":22,"3323":22,"3324":22,"3325":22,"3326":22,"3327":22,"3328":22,"3329":22,"332987":13,"333":22,"3330":22,"3331":22,"3332":22,"3333":22,"33333333":11,"3334":22,"3335":22,"3336":22,"3337":22,"3338":22,"3339":22,"334":22,"3340":22,"3341":22,"3342":22,"3343":22,"3344":22,"3345":22,"3346":22,"3347":22,"3348":22,"3349":22,"335":22,"3350":22,"3351":22,"3352":22,"3353":22,"3354":22,"3355":22,"3356":22,"3357":22,"3358":22,"3359":22,"336":22,"3360":22,"3361":22,"3362":22,"3363":22,"3364":22,"3365":22,"3366":22,"3367":22,"3368":22,"3369":22,"337":22,"3370":22,"3371":[19,22],"3372":22,"33727600e":11,"33727607e":11,"3373":22,"3374":22,"3375":22,"3376":22,"3377":22,"3378":22,"3379":22,"338":22,"3380":22,"3381":22,"3382":22,"3383":22,"3384":22,"3385":22,"3386":22,"3387":22,"3388":22,"3389":22,"339":22,"3390":22,"3391":22,"3392":22,"3393":22,"3394":22,"3395":22,"3396":22,"3397":22,"3398":22,"3399":22,"34":[14,22],"340":22,"3400":22,"3401":22,"3401253124064523":11,"3402":22,"3403":22,"3404":22,"3405":22,"3406":22,"3407":22,"3408":22,"3409":22,"341":22,"3410":22,"3411":22,"3412":22,"3413":22,"3414":22,"3415":22,"34159140e":10,"3416":22,"3417":22,"3418":22,"341804":13,"3419":22,"342":22,"3420":22,"3421":22,"3422":22,"3423":22,"3424":22,"3425":22,"3426":22,"3427":22,"3428":22,"3429":22,"343":22,"3430":22,"3431":22,"3432":22,"3433":22,"3434":22,"3435":22,"3436":22,"3437":22,"3438":22,"3439":22,"344":22,"3440":22,"3441":22,"3442":22,"3443":22,"3444":22,"3445":22,"3446":22,"3447":22,"3448":22,"3449":22,"345":22,"3450":22,"3451":22,"3452":22,"3453":22,"3454":22,"3455":22,"3456":22,"3457":22,"3458":22,"3459":22,"346":22,"3460":22,"3461":22,"3462":22,"3463":22,"3464":22,"3465":22,"3466":22,"3467":22,"3468":22,"3469":22,"347":22,"3470":22,"3471":22,"3472":22,"3473":22,"3474":22,"3475":22,"3476":22,"3477":22,"3478":22,"3479":22,"348":22,"3480":22,"3481":22,"3482":22,"3483":22,"3484":22,"3485":22,"3486":22,"3487":22,"3488":22,"34886":5,"3489":22,"349":22,"3490":22,"3491":22,"3492":22,"3493":22,"3494":22,"3495":22,"3496":22,"3497":22,"3498":22,"3499":22,"35":[10,13,14,22],"350":22,"3500":22,"3501":22,"3502":22,"3503":22,"3504":22,"3505":22,"3506":22,"3507":22,"3508":22,"35085343":22,"3509":22,"351":22,"3510":22,"3510406877452255":15,"3511":22,"3512":22,"3513":22,"3514":22,"35140562":13,"3515":22,"3516":22,"3517":22,"3518":22,"3519":22,"352":22,"3520":22,"3521":22,"3522":22,"3523":22,"3524":22,"3525":22,"3526":22,"3527":22,"3528":22,"3529":22,"353":22,"3530":22,"3531":22,"3532":22,"3533":22,"3534":22,"3535":22,"3536":22,"3537":22,"3538":22,"3539":22,"354":22,"3540":22,"3541":22,"3542":22,"3543":22,"3544":22,"3545":22,"3546":22,"3547":22,"3548":22,"3549":22,"355":22,"3550":22,"3551":22,"3552":22,"3553":22,"3554":22,"3555":22,"3556":22,"3557":22,"3558":22,"3559":22,"356":22,"3560":22,"3561":22,"3562":22,"3563":22,"3564":22,"3565":22,"3566":22,"3567":22,"3568":22,"3569":22,"357":22,"3570":22,"3571":22,"3572":22,"3573":22,"3574":22,"3575":22,"3576":22,"3577":22,"3578":22,"3579":22,"358":22,"3580":22,"3581":22,"3582":22,"3582892":17,"3583":22,"3584":22,"3585":22,"3586":22,"3587":22,"3588":22,"3589":22,"359":22,"3590":22,"3591":22,"3592":22,"3593":22,"3594":22,"3595":22,"3596":22,"3597":22,"3598":22,"3599":22,"36":[6,10,22],"360":22,"3600":22,"3601":22,"3602":22,"3603":22,"3604":22,"360438":13,"3605":22,"3606":22,"3607":22,"3608":22,"3609":22,"361":22,"3610":22,"3611":22,"3612":22,"3613":22,"36138659":17,"3614":22,"3615":22,"3616":22,"3617":22,"3618":22,"3619":22,"362":22,"3620":22,"3621":22,"3622":22,"3623":22,"3624":22,"3625":22,"3626":22,"3627":22,"3628":22,"3629":22,"363":22,"3630":22,"3631":22,"3632":22,"3633":22,"3634":22,"3635":22,"3636":22,"3637":22,"3638":22,"3639":22,"364":22,"3640":22,"3641":22,"3642":22,"3643":22,"3644":22,"3645":22,"3646":22,"3647":22,"3648":22,"3649":22,"365":22,"3650":22,"3651":22,"3652":22,"3653":22,"3654":22,"3655":22,"3656":22,"3657":22,"3658":22,"3659":22,"366":22,"3660":22,"3661":22,"3662":22,"3663":22,"3664":22,"3665":22,"3666":22,"3667":22,"3668":22,"3669":22,"367":22,"3670":22,"3671":22,"3672":22,"3673":22,"3674":22,"3675":22,"3676":22,"3677":22,"3678":22,"3679":22,"368":22,"3680":22,"3681":22,"3682":22,"3683":22,"3684":22,"3685":22,"3686":22,"3687":22,"3688":22,"3689":22,"369":22,"3690":22,"3691":22,"3692":22,"3693":22,"3694":22,"3695":22,"3696":22,"3697":22,"3698":22,"3699":22,"37":[16,22],"370":22,"3700":22,"3701":22,"3702":22,"3703":22,"3704":22,"3705":22,"3706":22,"3707":22,"3708":22,"3709":22,"371":22,"3710":22,"3711":22,"3712":22,"3713":22,"3714":22,"3715":22,"3716":22,"3717":22,"3718":22,"3719":22,"372":22,"3720":22,"3721":22,"3722":22,"3723":22,"3724":22,"3725":22,"3726":22,"3727":22,"3728":22,"3729":22,"373":22,"3730":22,"3731":22,"3732":22,"3733":22,"3734":22,"3735":22,"3736":22,"3736754432320":8,"3737":22,"3738":22,"3739":22,"374":22,"3740":22,"3741":22,"3742":22,"3743":22,"3744":22,"3745":22,"3746":22,"3747":22,"3748":22,"3749":22,"375":22,"3750":22,"3751":22,"3752":22,"3753":22,"3754":22,"3755":22,"37558":5,"3756":22,"3757":22,"3758":22,"3759":22,"3759917290460537":6,"376":22,"3760":22,"3761":22,"3762":22,"3763":22,"3764":22,"3765":22,"3766":22,"3767":22,"3768":22,"3769":22,"377":22,"3770":22,"3771":22,"3772":22,"3773":22,"3774":22,"3775":22,"3776":22,"3777":22,"3778":22,"3779":22,"378":22,"3780":22,"3781":22,"3782":22,"3783":22,"3784":22,"3785":22,"3786":22,"3787":22,"3788":22,"3789":22,"379":22,"3790":22,"3791":22,"3792":22,"3793":22,"3794":22,"3795":22,"3796":22,"3797":22,"3798":22,"3799":22,"37\u901a\u4fe1\u696d":13,"37f_":16,"38":22,"380":22,"3800":22,"3801":22,"3802":22,"3803":22,"3804":22,"3805":22,"3806":22,"3807":22,"3808":22,"3809":22,"3809833709877704":6,"381":22,"3810":22,"3811":22,"3812":22,"3813":22,"3814":22,"3815":22,"3816":22,"3817":22,"3818":22,"3819":22,"382":22,"3820":22,"3820000000000014":22,"3821":22,"3822":22,"3823":22,"3824":22,"3825":22,"3826":22,"3827":22,"3828":22,"3829":22,"383":22,"3830":22,"3831":22,"3832":22,"3833":22,"3834":22,"3835":22,"3836":22,"3837":22,"3838":22,"3839":22,"384":22,"3840":22,"3841":22,"3842":22,"3843":22,"3844":22,"3845":22,"3846":22,"3847":22,"3848":22,"3849":22,"385":22,"3850":22,"3851":22,"3852":22,"3853":22,"3854":22,"3855":22,"3856":22,"3857":22,"3858":22,"3859":[5,22],"386":22,"3860":22,"3861":22,"3862":22,"3863":22,"3864":22,"3865":22,"3866":22,"3867":22,"3868":22,"3869":22,"387":22,"3870":22,"3871":22,"3872":22,"3873":22,"3874":22,"3875":22,"3876":22,"3877":22,"3878":22,"3879":22,"388":22,"3880":22,"3881":22,"3882":22,"3883":22,"3884":22,"3885":22,"3886":22,"3887":22,"3888":22,"3889":22,"389":22,"3890":22,"3891":22,"3892":22,"3893":22,"3894":22,"3895":22,"3896":22,"3897":22,"3898":22,"3899":22,"38\u653e\u9001\u696d":13,"39":[14,19,22],"390":22,"3900":22,"3901":22,"3902":22,"3903":22,"3904":22,"3905":22,"3906":22,"3907":22,"3908":22,"3909":22,"391":22,"3910":22,"3911":22,"3912":22,"3913":22,"3914":22,"3915":22,"3916":22,"3917":22,"3918":22,"3919":22,"392":22,"3920":22,"3921":22,"3922":22,"3923":22,"3924":22,"3925":22,"3926":22,"3927":22,"3928":22,"39284204":19,"3929":22,"393":22,"3930":22,"3931":22,"3932":22,"3933":22,"3934":22,"3935":22,"3936":22,"3937":22,"3938":22,"3939":22,"394":22,"3940":22,"3941":22,"3942":22,"3943":22,"3944":22,"3945":22,"3946":22,"3947":22,"3948":22,"3949":22,"395":22,"3950":22,"3951":22,"3952":22,"3953":22,"3954":22,"3955":22,"3956":22,"3957":22,"3958":22,"3959":22,"396":22,"3960":22,"39609222064":15,"3961":22,"3962":22,"3963":22,"396392985502":19,"3964":22,"3965":22,"3966":22,"3967":22,"3968":22,"3969":22,"397":22,"3970":22,"3971":22,"3972":22,"3973":22,"3974":22,"3975":22,"3976":22,"3977":22,"3978":22,"3979":22,"398":22,"3980":22,"3981":22,"3982":22,"3982199780121":15,"3983":22,"3984":22,"3985":22,"3986":22,"3987":22,"3988":22,"3989":22,"399":22,"3990":22,"3991":22,"3992":22,"3993":22,"3994":22,"3995":22,"3996":22,"3997":22,"39973895e":11,"3998":22,"3999":22,"39\u60c5\u5831\u30b5\u30fc\u30d3\u30b9\u696d":13,"3\u304b\u3089\u5909\u52d5\u3055\u305b\u305f\u3058\u3083\u3093\u3051\u3093\u306e\u5b9f\u88c5\u3082\u3067\u304d\u307e\u3059":6,"3\u3064\u306e\u9818\u57df\u306b":6,"3\u3064\u3081\u306e\u3082\u306e\u3092":24,"3\u3064\u3081\u306f\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5":24,"3\u3064\u3081\u306f\u73fe\u5728\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3044\u308b\u3068\u4eee\u5b9a\u3057\u3066":24,"3\u306a\u3089":8,"3\u306e\u78ba\u7387\u3067\u624b\u3092\u9078\u3076\u95a2\u6570\u3067\u3059\u304c":6,"3\u306f1\u5ea6\u3084\u308c\u3070\u518d\u3073\u884c\u3046\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093":25,"3\u30840":2,"3\u30b7\u30b0\u30de\u3068\u547c\u3093\u3060\u308a\u3057\u307e\u3059":6,"3\u30b9\u30c6\u30c3\u30d7":16,"3\u30d9\u30fc\u30b9\u306eopenai":21,"3\u4e07\u306e\u884c\u5217\u8981\u7d20\u3067\u753b\u50cf\u3092\u8868\u73fe\u3067\u304d\u308b\u4e8b\u304c\u308f\u304b\u308b":19,"3\u4ee5\u4e0a\u306e\u51fa\u5e2d\u304c\u306a\u3044\u5834\u5408":25,"3\u500d\u7a0b\u5ea6\u5fc5\u8981\u306b\u306a\u308b":11,"3\u5217\u76ee":9,"3\u5c64\u306e\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u30c7\u30fc\u30bf\u304b\u3089\u305d\u308c\u3089\u3057\u3044\u95a2\u6570\u3092\u5b66\u7fd2\u3055\u305b\u3066\u307f\u307e\u3057\u305f":10,"3\u6b21\u306eab\u6cd5":16,"3\u6b21\u306eab\u6cd5\u306b\u6bd4\u3079\u3066\u5897\u3048\u308b\u3053\u3068\u306b\u306a\u308b":16,"3\u6b21\u306elagrange\u88dc\u9593\u591a\u9805\u5f0f":16,"3\u6b21\u5143":17,"3\u6b21\u5143\u306e\u5ea7\u6a19\u70b9\u3092\u30e9\u30f3\u30c0\u30e0\u306b100\u500b\u4f5c\u3063\u3066\u3044\u308b":4,"3\u6b21\u5143\u307e\u3067\u3067\u3042\u308b":17,"3\u6b21\u5143\u4ee5\u4e0b\u306b\u5c04\u5f71\u3057\u305f":7,"3\u756a\u76ee\u306e\u5024\u3060\u3051\u304c\u5165\u3063\u305f\u914d\u5217\u3092\u7528\u610f\u3057\u3066\u3044\u3063\u307a\u3093\u306bplot\u3057\u305f\u3044":22,"3\u756a\u76ee\u306e\u8981\u7d20\u306e\u914d\u5217":22,"3\u7a2e\u985e":17,"3\u7a2e\u985e\u306e\u30a2\u30e4\u30e1\u306e\u6301\u3064\u7279\u5fb4\u3092\u53ef\u8996\u5316\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b":17,"3\u7ae0\u306e\u632f\u308a\u8fd4\u308a":25,"3\u884c\u5217":19,"3\u884c\u76ee":[2,5],"3\u884c\u76ee\u304b\u30640":18,"3\u884c\u76ee\u3067\u306f":9,"3\u884c\u76ee\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304d\u305f\u30ec\u30dd\u30b8\u30c8\u30ea\u306b\u3042\u308b":9,"3d":[5,6],"3e":8,"3f_2":16,"3f_3":16,"3f_i":16,"3sigma":12,"3x":[1,8],"4":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,25],"40":[4,5,6,8,10,17,22],"400":[5,8,9,22],"4000":22,"4001":22,"4002":22,"4003":22,"4004":22,"4005":22,"4006":22,"4007":22,"4008":22,"4009":22,"401":22,"4010":22,"4011":22,"4012":22,"4013":22,"4014":22,"4015":22,"4016":22,"4017":22,"4018":22,"4019":22,"402":22,"4020":22,"4021":22,"4022":22,"4023":22,"4024":22,"4025":22,"4026":22,"4027":22,"402705":13,"4028":22,"4029":22,"403":22,"4030":22,"4031":22,"4032":22,"4033":22,"4034":22,"4035":22,"4036":22,"4037":22,"4038":22,"4039":22,"404":22,"4040":22,"4041":22,"4042":22,"4043":22,"4044":22,"4045":22,"4046":22,"4047":22,"4048":22,"4049":22,"405":22,"4050":22,"4051":22,"4052":22,"4053":22,"4054":22,"4055":22,"40554":5,"4056":22,"4057":22,"4058":22,"4059":22,"406":22,"4060":22,"4061":22,"4062":22,"4063":22,"4064":22,"4065":22,"4066":22,"4067":22,"4068":22,"4069":22,"407":22,"4070":22,"4071":22,"4072":22,"4073":22,"4074":22,"4075":22,"4076":22,"4077":22,"4078":22,"4079":22,"408":22,"4080":22,"4081":22,"4082":22,"40821073":20,"4083":22,"4084":22,"4085":22,"4086":22,"4087":22,"4088":22,"4089":22,"409":22,"4090":22,"4091":22,"4092":22,"40929687e":11,"4093":22,"4094":22,"4095":22,"4096":22,"4097":22,"4098":22,"4099":22,"40\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u9644\u968f\u30b5\u30fc\u30d3\u30b9\u696d":13,"41":[10,19,22],"410":22,"4100":22,"4100810951379304":11,"4100811":11,"4101":22,"4102":22,"4103":22,"4104":22,"4105":22,"4106":22,"4107":22,"4108":22,"4109":22,"411":22,"4110":22,"4111":22,"4112":22,"4113":22,"4114":22,"4115":22,"4116":22,"4117":22,"4118":22,"4119":22,"412":22,"4120":22,"4120274":5,"4121":22,"4122":22,"4123":22,"4124":22,"4125":22,"4126":22,"4127":22,"4128":22,"4129":22,"413":22,"4130":22,"4131":22,"4132":22,"4133":22,"4134":22,"4135":22,"4136":22,"4137":22,"4138":22,"4139":22,"414":22,"4140":22,"4141":22,"4142":22,"4143":22,"4144":22,"4145":22,"4146":22,"4147":22,"4148":22,"4149":22,"415":22,"4150":22,"4151":22,"4152":22,"4153":22,"4154":22,"4155":22,"4156":22,"4157":22,"4158":22,"4159":22,"416":22,"4160":22,"4161":22,"4162":22,"4163":22,"4164":22,"4165":22,"4166":22,"4167":22,"4168":22,"4169":22,"417":22,"4170":22,"4171":22,"4172":22,"4173":22,"4174":22,"4175":22,"4176":22,"4177":22,"4178":22,"4179":22,"418":22,"4180":22,"4181":22,"4182":22,"4183":22,"4184":22,"4185":22,"4186":22,"4187":22,"4188":22,"4189":22,"419":22,"4190":22,"4191":22,"4192":22,"4193":22,"4194":22,"4195":22,"4196":22,"4197":22,"4198":22,"4199":22,"41\u6620\u50cf":13,"42":[19,22],"420":22,"4200":22,"4201":22,"4202":22,"4203":22,"4204":22,"4205":22,"4206":22,"4207":22,"4208":22,"4209":22,"421":22,"4210":22,"4211":22,"4212":22,"4213":22,"4214":22,"4215":22,"4216":22,"4217":22,"4218":22,"4219":22,"422":22,"4220":22,"4221":22,"4222":22,"4223":22,"4224":22,"4225":22,"4226":22,"4227":22,"4228":22,"4229":22,"423":22,"4230":22,"4231":22,"4232":22,"4233":22,"4234":22,"4235":22,"4236":22,"4237":22,"4238":22,"4239":22,"424":22,"4240":22,"4241":22,"4242":22,"4243":22,"4244":22,"4245":22,"4246":22,"4247":22,"4248":22,"4249":22,"424911":13,"425":22,"4250":22,"4251":22,"4252":22,"4253":22,"4254":22,"4255":22,"4256":22,"4257":22,"4258":22,"4259":22,"426":22,"4260":22,"4261":22,"4262":22,"4263":22,"4264":22,"4265":22,"4266":22,"4267":22,"4268":22,"426829182338306":10,"4269":22,"427":22,"4270":22,"4271":22,"4272":22,"4273":22,"4274":22,"4275":22,"4276":22,"4277":22,"4278":22,"4279":22,"428":22,"4280":22,"4281":22,"4282":22,"4283":22,"4284":22,"4285":22,"4286":22,"4287":22,"4288":22,"4289":22,"429":22,"4290":22,"4291":22,"4292":22,"4293":22,"4294":22,"4295":22,"4296":22,"4297":22,"4298":22,"4299":22,"42\u9244\u9053\u696d":13,"43":[6,19,22],"430":22,"4300":22,"4301":22,"4302":22,"4303":22,"4304":22,"4305":22,"4306":22,"4307":22,"4308":22,"4309":22,"431":22,"4310":22,"43103":5,"4311":22,"4312":22,"4313":22,"4314":22,"4315":22,"4316":22,"4317":22,"4318":22,"4319":22,"432":22,"4320":22,"4321":22,"4322":22,"4323":22,"4324":22,"4325":22,"4326":22,"4327":22,"4328":22,"4329":22,"433":22,"4330":22,"4331":22,"4332":22,"4333":22,"4334":22,"4335":22,"43351368":11,"4336":22,"4337":22,"4338":22,"4339":22,"434":22,"4340":22,"4341":22,"4342":22,"4343":22,"4344":22,"4345":22,"4346":22,"4347":22,"4348":22,"4349":22,"435":22,"4350":22,"4351":22,"4352":22,"4353":22,"4354":22,"4355":22,"4356":22,"4357":22,"4358":22,"4359":22,"436":22,"4360":22,"4361":22,"4362":22,"4363":22,"4364":22,"4365":22,"4366":22,"4367":22,"4368":22,"4369":22,"437":22,"4370":22,"4371":22,"4372":22,"4373":22,"4374":22,"4375":22,"4376":22,"4377":22,"4378":22,"4379":22,"438":22,"4380":22,"4381":22,"4382":22,"4383":22,"4384":22,"4385":22,"4386":22,"4387":22,"4388":22,"4389":22,"439":22,"4390":22,"4391":22,"4392":22,"4393":22,"4394":22,"4395":22,"4396":22,"4397":22,"4398":22,"4399":22,"43\u9053\u8def\u65c5\u5ba2\u904b\u9001\u696d":13,"44":22,"440":22,"4400":22,"4401":22,"4402":22,"4403":22,"4404":22,"4405":22,"4406":22,"4407":22,"4408":22,"4409":22,"441":22,"4410":22,"4411":22,"44113803e":11,"44113811e":11,"4412":22,"4413":22,"4414":22,"4415":22,"4416":22,"4417":22,"4418":22,"4419":22,"442":22,"4420":22,"4421":22,"4422":22,"4423":22,"4424":22,"4425":22,"4426":22,"4427":22,"4428":22,"4429":22,"443":[19,22],"4430":22,"4431":22,"4432":22,"4433":22,"4434":22,"4435":22,"4436":22,"4437":22,"4438":22,"4439":22,"444":22,"4440":22,"4441":22,"4442":22,"4443":22,"4444":22,"44444444":11,"4445":22,"4446":22,"4447":22,"4448":22,"4449":22,"445":22,"4450":22,"4451":22,"4452":22,"4453":22,"4454":22,"4455":22,"4456":22,"4457":22,"4458":22,"4459":22,"446":22,"4460":22,"4461":22,"4462":22,"4463":22,"4464":22,"4465":22,"4466":22,"4467":22,"4468":22,"4469":22,"447":22,"4470":22,"4471":22,"4472":22,"4473":22,"4474":22,"4475":22,"4476":22,"4477":22,"4478":22,"4479":22,"448":22,"4480":22,"4481":22,"4482":22,"4483":22,"4484":22,"4485":22,"4486":22,"4487":22,"4488":22,"4489":22,"449":22,"4490":22,"4491":22,"4492":22,"4493":22,"4494":22,"4495":22,"4496":22,"4497":22,"4498":22,"4499":22,"44\u9053\u8def\u8ca8\u7269\u904b\u9001\u696d":13,"45":[5,6,22],"450":22,"4500":22,"4501":22,"4502":22,"4503":22,"4504":22,"4505":22,"4506":22,"4507":22,"4508":22,"4509":22,"451":[5,7,22,25],"4510":22,"4511":22,"4512":22,"4513":22,"4514":22,"4515":22,"4516":22,"4517":22,"45171":5,"4518":22,"4519":22,"452":22,"4520":22,"4521":22,"4522":22,"4523":22,"4524":22,"4525":22,"4526":22,"4527":22,"4528":22,"4529":22,"453":22,"4530":22,"4531":22,"4532":22,"4533":22,"4534":22,"4535":22,"4536":22,"4537":22,"4538":22,"4539":22,"454":[8,22],"4540":22,"4541":22,"4542":22,"4543":22,"4544":22,"4545":22,"4546":22,"4547":22,"4548":22,"4549":22,"455":22,"4550":22,"4551":22,"4552":22,"4553":22,"4554":22,"4555":22,"4556":22,"4557":22,"4558":22,"4559":22,"456":22,"4560":22,"4561":22,"4562":22,"4563":22,"456302435744":15,"4564":22,"4565":22,"4566":22,"4567":22,"4568":22,"4569":22,"457":22,"4570":22,"4571":22,"4572":22,"4573":22,"4574":22,"4575":22,"4576":22,"4577":22,"4578":22,"4578275":20,"4579":22,"458":22,"4580":22,"4581":22,"4582":22,"4583":22,"4584":22,"4585":22,"4586":22,"4587":22,"4588":22,"4589":22,"459":22,"4590":22,"4591":22,"4592":22,"4593":[5,22],"4594":22,"4595":22,"4596":22,"4597":22,"4598":22,"4599":22,"45\u6c34\u904b\u696d":13,"45ab67c52851":2,"46":22,"460":22,"4600":22,"4601":22,"4602":22,"4603":22,"4604":22,"4605":22,"4606":22,"4607":22,"4608":22,"4609":22,"461":[5,22],"4610":22,"4611":22,"4612":22,"4613":22,"4614":22,"4615":22,"4616":22,"4617":22,"4618":22,"4619":22,"462":22,"4620":22,"4621":22,"4622":22,"4623":22,"4624":22,"4625":22,"4626":22,"4627":22,"4628":22,"4629":22,"463":22,"4630":22,"4631":22,"4632":22,"4633":22,"4634":22,"4635":22,"4636":22,"4637":22,"4638":22,"4639":22,"464":22,"4640":22,"4641":22,"4642":22,"4643":22,"4644":22,"4645":22,"4646":22,"4647":22,"4648":22,"4649":22,"465":22,"4650":22,"4651":22,"4652":22,"4653":22,"4654":22,"4655":22,"4656":22,"4657":22,"4658":22,"4659":22,"466":22,"4660":22,"4661":22,"4662":22,"4663":22,"4664":22,"46649147797051027":6,"4665":22,"4666":22,"4667":22,"4668":22,"4669":22,"467":22,"4670":22,"4671":22,"4672":22,"4673":22,"4674":22,"4675":22,"4676":22,"4677":22,"4678":22,"4679":22,"468":22,"4680":22,"4681":22,"4682":22,"4683":22,"4684":22,"4685":22,"4686":22,"4687":22,"4688":22,"46888535":19,"4689":22,"469":22,"4690":22,"4691":22,"4692":22,"4693":22,"4694":22,"4695":22,"4696":22,"4697":22,"4698":22,"4699":22,"47":22,"470":22,"4700":22,"4701":22,"4702":22,"4703":22,"4704":22,"4705":22,"4706":22,"4707":22,"4708":22,"4709":22,"471":22,"4710":22,"4711":22,"4712":22,"4713":22,"4714":22,"4715":22,"4716":22,"4717":22,"4718":22,"4719":22,"472":22,"4720":22,"4721":22,"4722":22,"4723":22,"4724":22,"4725":22,"4726":22,"4727":22,"4728":22,"4729":22,"473":22,"4730":22,"4731":22,"4732":22,"4733":22,"4733344532483637":15,"4734":22,"4735":22,"4736":22,"4737":22,"4738":22,"4739":22,"474":22,"4740":22,"4741":22,"4742":22,"4743":[19,22],"4744":22,"4745":22,"4746":22,"4747":22,"4748":22,"4749":22,"475":22,"4750":22,"4751":22,"4752":22,"4753":22,"4754":22,"4755":22,"4756":22,"4757":22,"4758":22,"4759":22,"476":22,"4760":22,"4761":22,"4762":22,"4763":22,"4764":22,"4765":22,"4766":22,"4767":22,"4768":22,"4769":22,"477":22,"4770":22,"4771":22,"4772":22,"4773":22,"4774":22,"4775":22,"4776":22,"4777":22,"4778":22,"4779":22,"477d89cfb689":2,"478":22,"4780":22,"4781":22,"47812047e":11,"47812049e":11,"4782":22,"4783":22,"4784":22,"4785":22,"4786":22,"4787":22,"4788":22,"4789":22,"479":22,"4790":22,"4791":22,"4792":22,"4793":22,"4794":22,"4795":22,"4796":22,"4797":22,"4798":22,"47983899":17,"4799":22,"47\u5009\u5eab\u696d":13,"47c8681c99ab":14,"47dfaf615d55":14,"48":[6,22],"480":22,"4800":22,"4801":22,"4802":22,"4803":22,"4804":22,"4805":22,"4806":22,"4807":22,"4808":22,"4809":22,"481":22,"4810":22,"4811":22,"4812":22,"4813":22,"4814":22,"48145466":20,"4815":22,"4816":22,"4817":22,"4818":22,"4819":22,"482":22,"4820":22,"4821":[5,22],"4822":22,"4823":22,"4824":22,"4825":22,"4826":22,"4827":22,"4828":22,"4829":22,"483":22,"4830":22,"4831":22,"4832":22,"4833":22,"4834":22,"4835":22,"4836":22,"4837":22,"4838":22,"4839":22,"484":22,"4840":22,"4841":22,"4842":22,"4843":22,"4844":22,"4845":22,"4846":22,"4847":22,"4848":22,"4849":22,"485":22,"4850":22,"4851":22,"4852":22,"4853":22,"4854":22,"4855":22,"4856":22,"4857":22,"4858":22,"4859":22,"486":22,"4860":22,"4861":22,"4862":22,"4863":22,"4864":22,"4865":22,"4866":22,"4867":22,"4868":22,"4869":22,"487":22,"4870":22,"4871":22,"4872":22,"4873":22,"4874":22,"4875":22,"4876":22,"4877":22,"4878":22,"4879":22,"488":22,"4880":22,"4881":22,"4882":22,"4883":22,"4884":22,"4885":22,"4886":22,"4887":22,"4888":22,"4889":22,"489":22,"4890":22,"4891":22,"4892":22,"4893":22,"4894":22,"4895":22,"4896":22,"4897":22,"4898":22,"4899":22,"48\u904b\u8f38\u306b\u9644\u5e2f\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u696d":13,"49":[6,10,22],"490":22,"4900":22,"4901":22,"4902":22,"4903":22,"4904":22,"4905":22,"4906":22,"4907":22,"4908":22,"4909":22,"491":22,"4910":22,"4911":22,"4912":22,"4913":22,"4914":22,"4915":22,"4916":22,"4917":22,"4918":22,"4919":22,"492":22,"4920":22,"4921":22,"4922":22,"4923":22,"4924":22,"4925":22,"4926":22,"4927":22,"4928":22,"4929":22,"493":22,"4930":22,"4931":22,"4932":22,"4933":22,"4934":22,"4935":22,"4936":22,"4937":22,"4938":22,"4939":22,"494":22,"4940":22,"4941":22,"4942":22,"4943":22,"4944":22,"4945":22,"4946":22,"4947":22,"4948":22,"4949":22,"495":22,"4950":[4,22],"4950\u56de\u6587\u306e\u8a08\u7b97\u7d50\u679c\u3092print\u3059\u308b\u3068\u90aa\u9b54\u306a\u306e\u3067\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3057\u305f":4,"4951":22,"4952":22,"4953":22,"4954":22,"4955":22,"4956":22,"4957":22,"4958":22,"4959":22,"496":22,"4960":22,"4961":22,"4962":22,"4963":22,"4963673552041776":15,"4964":22,"4965":22,"4966":22,"4967":22,"4968":22,"4969":22,"497":22,"4970":22,"4971":22,"4972":22,"4973":22,"4974":22,"4975":22,"4976":22,"4977":22,"4978":22,"4979":22,"498":22,"4980":22,"4981":22,"4982":22,"4983":22,"4984":22,"4985":22,"4986":22,"4987":22,"4988":22,"4989":22,"499":22,"4990":22,"4991":22,"4992":22,"4993":22,"4994":22,"4995":22,"4996":22,"4997":22,"4998":22,"4999":22,"4\u304c":18,"4\u3064\u3081\u306f\u76f4\u524d\u306b\u3044\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5":24,"4\u3067":6,"4\u306e\u5834\u5408\u306b\u76f8\u5f53\u3059\u308b\u4e8b\u304c\u308f\u304b\u308b":17,"4\u3084":18,"4\u3092\u3068\u308a":3,"4\u30b9\u30c6\u30c3\u30d7\u306eab\u6cd5\u3092\u4e88\u6e2c\u5b50":16,"4\u30b9\u30c6\u30c3\u30d7\u306eam\u6cd5\u3092\u4fee\u6b63\u5b50\u3068\u3057\u3066\u63a1\u7528\u3059\u308b\u3068":16,"4\u5186\u306e\u9762\u7a4d\u306f":6,"4\u5217\u76ee":9,"4\u6b21":16,"4\u6b21\u516c\u5f0f\u304c\u5f97\u3089\u308c\u308b":16,"4\u7ae0\u306e\u632f\u308a\u8fd4\u308a":25,"4\u884c\u76ee":[2,5],"4a":8,"4e":8,"4x":8,"5":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,24],"50":[6,7,10,21,22],"500":[7,10,22],"5000":22,"50000":[3,5,6],"500000":3,"5001":[3,22],"501":22,"502":[5,7,22,25],"503":22,"5035":13,"5036":13,"5037":13,"5038":13,"5039":13,"504":22,"5040":13,"5041023":15,"505":22,"506":22,"50663777":22,"507":22,"508":22,"5080112082685":19,"509":22,"51":[5,22],"510":22,"511":22,"512":22,"512x512":20,"513":[5,19,22],"514":22,"515":22,"516":22,"517":22,"518":22,"519":22,"52":22,"520":22,"521":22,"522":22,"523":22,"5233\u901a\u308a":9,"523925042166":14,"524":22,"525":22,"526":22,"526420007144324":15,"527":22,"528":22,"529":22,"52961563":19,"529656":13,"53":[11,22],"530":22,"531":22,"531916171225453e":19,"532":22,"533":22,"534":22,"535":22,"536":22,"53613693e":11,"537":22,"538":22,"539":22,"54":22,"540":[5,7,22,25],"541":22,"541379":15,"542":22,"543":22,"544":22,"545":22,"54583143":17,"546":22,"546944476833993":15,"547":22,"548":22,"549":22,"55":[3,16,22],"550":22,"551":22,"551115123125783e":[2,15],"552":22,"553":22,"554":22,"555":22,"55555556":22,"556":22,"557":22,"558":22,"559":22,"55a60ae9504f":14,"55f_":16,"55f_i":16,"56":[11,22],"560":[22,24],"561":22,"562":22,"563":22,"564":22,"565":22,"566":22,"567":22,"568":[5,7,22,25],"569":22,"57":22,"570":22,"571":22,"572":[5,7,22,25],"573":22,"574":22,"575":22,"576":22,"577":22,"578":22,"579":22,"58":[3,7,10,19,22,25],"580":22,"58024691":22,"581":[5,22],"581344":13,"58155":15,"582":22,"58202985":17,"58282404e":10,"583":22,"583438":13,"584":22,"58407415":11,"585":22,"586":22,"587":22,"588":22,"589":22,"589416268802192":11,"589889810845086":11,"58\u306a\u3069\u3067\u306e\u8fd1\u4f3c\u3092\u7528\u3044\u308b\u3053\u3068\u3067":19,"59":[16,22],"590":22,"590816292488816":11,"5908498356204":11,"591":22,"592":22,"593":22,"594":22,"595":22,"596":22,"597":22,"59791083":17,"598":22,"599":22,"5996593224718298":6,"59f_":16,"5\u304c\u542b\u307e\u308c\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f\u3067\u3059":3,"5\u3067\u30822\u6841\u7a0b\u5ea6\u306e\u7cbe\u5ea6\u3057\u304b\u306a\u3044":8,"5\u4eba\u306e\u30c7\u30fc\u30bf":25,"5\u4eba\u306e\u5e73\u5747\u8eab\u9577\u3068\u5e73\u5747\u4f53\u91cd\u3092\u305d\u308c\u305e\u308c\u8a08\u7b97\u3059\u308b\u30b3\u30fc\u30c9\u3092\u4f5c\u6210\u305b\u3088":25,"5\u5217\u76ee":9,"5\u56de\u624b\u3092\u8868\u793a\u3055\u305b\u3066\u307f\u308b":6,"5\u65e5\u5f8c\u306e\u81ea\u5206\u3082\u4ed6\u4eba\u306e\u3088\u3046\u306a\u3082\u306e\u3067\u3059":3,"5\u670825\u65e5":13,"5\u6b21\u4ee5\u4e0a\u306e\u4ee3\u6570\u65b9\u7a0b\u5f0f\u306b\u306f\u4ee3\u6570\u7684\u306a\u89e3\u6cd5":15,"5\u6b21\u5f0f\u307e\u3067\u306e\u591a\u9805\u5f0f\u3067\u30d5\u30a3\u30c3\u30c6\u30a3\u30f3\u30b0\u3057\u3066\u307f\u3088\u3046":25,"5\u756a\u76ee\u306e\u884c\u306b\u306f\u3069\u3093\u306a\u5024\u304c\u30bb\u30eb\u306b\u5165\u3063\u3066\u3044\u308b\u306e\u304b\u306a":9,"5\u7ae0\u306e\u632f\u308a\u8fd4\u308a":25,"5\u884c\u76ee":[2,5],"5f_":16,"5x":8,"6":[3,5,6,7,8,9,10,11,12,13,15,16,17,18,19,22,25],"60":[6,22],"600":22,"6001347172980255":15,"601":22,"602":22,"603":22,"604":22,"605":22,"606":22,"6065":5,"607":22,"608":22,"609":22,"60\u3068\u3059\u308b\u3053\u3068":25,"60\u79d2\u7a0b\u5ea6\u306e\u6b63\u78ba\u306a\u5165\u529b\u304c\u53ef\u80fd\u306a\u3089":6,"61":[10,22],"610":22,"6101":5,"6103380608022205e":6,"611":22,"612":22,"613":22,"614":22,"615":22,"616":22,"617":22,"618":22,"6188":5,"619":22,"61909622":19,"62":22,"620":22,"621":22,"622":22,"623":22,"624":22,"625":22,"6250":15,"626":22,"627":22,"627287":13,"628":22,"629":22,"63":22,"630":22,"631":22,"632":22,"633":22,"634":22,"635":22,"636":[10,22],"637":22,"638":22,"639":22,"64":22,"640":22,"641":22,"642":22,"643":22,"644":22,"644219":13,"645":22,"646":22,"647":22,"648":22,"6484":5,"649":22,"65":22,"650":22,"651":22,"652":22,"653":22,"653441486353502":15,"654":22,"6544446417698763":6,"655":22,"656":22,"65658877":17,"657":22,"658":22,"6584175494971636":11,"65841755":11,"659":22,"66":[3,22],"660":22,"661":22,"662":22,"663":22,"664":22,"665":22,"666":22,"66666667":11,"667":22,"66782630e":10,"668":22,"669":22,"66k":19,"67":22,"670":22,"6709999999986":8,"671":22,"67161219":10,"672":[15,22],"673":22,"674":22,"67480418e":11,"675":22,"676":22,"677":22,"678":22,"679":22,"6791118523291146":6,"67994023":11,"68":[6,17,22],"680":22,"681":22,"682":22,"6827":6,"683":22,"684":22,"685":22,"686":22,"687":22,"688":22,"689":22,"68\u4e0d\u52d5\u7523\u53d6\u5f15\u696d":13,"69":[6,7,22,25],"690":22,"691":22,"692":22,"693":22,"6931785449875472":6,"694":22,"6940976770327":10,"69466810466825":10,"695":22,"696":22,"697":22,"698":22,"699":22,"6999999999999997":11,"69\u4e0d\u52d5\u7523\u8cc3\u8cb8\u696d":13,"69ef97eb7c7b":14,"6\u3067\u3059\u304c":6,"6\u3068\u3044\u3063\u305f\u30b3\u30f3\u30de\u3084\u30b9\u30da\u30fc\u30b9\u3067\u533a\u5207\u3089\u308c\u305f\u3082\u306e\u3092\u30ea\u30b9\u30c8\u306b\u683c\u7d0d\u3057\u305f\u3044\u5834\u5408\u306b\u306f":9,"6\u306a\u3089":8,"6\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u308b":5,"6\u306e\u51fa\u308b\u76ee\u306e\u983b\u5ea6\u304c\u78ba\u7387\u304b\u3089\u671f\u5f85\u3055\u308c\u308b\u632f\u308b\u821e\u3044\u306b\u6f38\u8fd1\u3057\u3066\u3044\u304f\u4e8b\u304c\u308f\u304b\u308b":6,"6\u5217\u76ee":9,"6\u5217\u76ee\u306e\u5404\u79d1\u76ee\u306e\u5f97\u610f":9,"6\u7ae0\u3067\u51fa\u3066\u304d\u305fpolyfit\u3092\u4f7f\u3063\u30661":25,"6\u7ae0\u306e\u632f\u308a\u8fd4\u308a":25,"6\u91ce\u83dc\u985e":18,"6a1d737d6e97":14,"6b":5,"6e":8,"7":[2,3,5,6,7,8,9,10,11,13,15,17,19,20,22,24,25],"70":[3,22],"700":22,"701":22,"702":22,"70200595":19,"703":22,"704":22,"705":22,"706":22,"707":22,"708":22,"709":22,"70\u7269\u54c1\u8cc3\u8cb8\u696d":13,"71":[11,22],"710":22,"711":22,"712":22,"71226915":19,"713":22,"714":22,"715":22,"716":22,"71674076":11,"717":22,"718":22,"719":22,"72":[7,15,22,25],"720":22,"721":22,"722":22,"723":22,"724":22,"725":22,"726":22,"727":22,"728":22,"729":22,"729b19eacfc2":14,"72\u5c02\u9580\u30b5\u30fc\u30d3\u30b9\u696d":13,"73":22,"730":22,"73016143":17,"731":22,"732":22,"73202429e":11,"73202438e":11,"733":22,"7333":5,"734":22,"735":22,"736":22,"737":22,"738":22,"739":22,"73\u5e83\u544a\u696d":13,"74":[7,22,25],"740":22,"741":22,"742":22,"743":22,"744":22,"745":22,"746":22,"747":22,"7473508864641":8,"748":22,"749":22,"74\u6280\u8853\u30b5\u30fc\u30d3\u30b9\u696d":13,"75":[6,10,22],"750":22,"751":22,"752":22,"753":22,"75365743":17,"754":[2,22],"755":22,"756":22,"757":22,"75795228e":11,"75795234e":11,"758":22,"759":22,"75\u5bbf\u6cca\u696d":13,"76":[6,22],"760":22,"761":22,"762":22,"763":22,"764":22,"7642fed4b69b594975067d330d9293b5502326530e2cb3589eb51d00117e7bb7":11,"765":22,"7654321":22,"766":22,"767":22,"768":22,"769":22,"76\u98f2\u98df\u5e97":13,"77":[7,22,25],"770":22,"771":22,"772":22,"773":22,"774":22,"775":22,"776":22,"777":22,"77777778":11,"778":22,"779":22,"77\u6301\u3061\u5e30\u308a":13,"78":[7,22,25],"780":22,"781":22,"7818":5,"782":22,"783":22,"784":22,"785":22,"786":22,"787":22,"788":22,"789":22,"7897280233622771":15,"7897280233719703":15,"789729888238273":15,"78\u6d17\u6fef":13,"79":[5,7,22,25],"790":22,"7905468880551323":15,"791":22,"792":22,"79241470e":11,"79241473e":11,"793":22,"794":22,"795":22,"796":22,"797":22,"79752234442":15,"798":22,"799":22,"79\u305d\u306e\u4ed6\u306e\u751f\u6d3b\u95a2\u9023\u30b5\u30fc\u30d3\u30b9\u696d":13,"7\u306e\u3068\u304d":6,"7\u5217\u76ee\u306b\u683c\u7d0d\u3055\u308c\u305f\u5024\u304c\u5fc5\u8981\u306b\u306a\u308b":18,"7\u7ae0\u306e\u632f\u308a\u8fd4\u308a":25,"7e":8,"7m":24,"8":[3,4,5,6,7,9,10,11,13,15,16,17,19,20,22,25],"80":[6,7,22],"800":22,"800000":3,"801":22,"802":22,"803":22,"804":[5,7,22,25],"8044032112313464":15,"805":22,"806":22,"80674027e":10,"807":22,"8072662373727413":15,"80736928":22,"808":22,"809":22,"80\u5a2f\u697d\u696d":13,"81":22,"810":22,"811":22,"8119225385829674":11,"812":22,"81214776":19,"813":22,"814":22,"815":22,"816":22,"817":22,"818":22,"819":22,"82":[5,22],"820":22,"821":22,"8219937599763407":19,"82199376":19,"822":22,"823":22,"824":22,"82458488":11,"8245848824042269":11,"825":22,"826":22,"82600794":19,"827":22,"828":22,"82875279":10,"829":22,"82\u305d\u306e\u4ed6\u306e\u6559\u80b2":13,"82a\u3046\u3061\u793e\u4f1a\u6559\u80b2":13,"82b\u3046\u3061\u5b66\u7fd2\u587e":13,"83":[5,18,22],"830":22,"83009108e":10,"8304":5,"831":22,"832":22,"83267985":11,"833":[5,7,22,25],"834":22,"835":[5,7,22,25],"836":22,"83609":11,"837":22,"8375\u901a\u308a":9,"838":22,"839":22,"8391438506400222":15,"8399713":11,"83\u3067":7,"83\u533b\u7642\u696d":13,"84":[6,7,22,25],"840":22,"841":22,"842":22,"843":22,"844":22,"84412956":10,"845":22,"846":[5,22],"847":22,"84748528":19,"848":22,"849":22,"84\u4fdd\u5065\u885b\u751f":13,"85":[5,7,22,25],"850":22,"851":22,"8511087217022104":19,"852":22,"853":22,"854":22,"854892481957197":15,"855":22,"856":22,"85667061":17,"857":22,"858":22,"859":22,"85\u793e\u4f1a\u4fdd\u967a":13,"86":[6,7,18,22,25],"860":22,"861":22,"862":22,"863":22,"864":22,"865":22,"866":22,"867":22,"868":22,"8683243934796":19,"869":22,"869554":13,"87":22,"870":22,"871":22,"872":22,"873":22,"874":22,"875":22,"876":22,"877":22,"878":22,"878192974042394":15,"87828001e":11,"879":22,"879715826832669e":15,"88":[5,6,22],"880":22,"881":22,"882":22,"883":[19,22],"88381322e":11,"884":22,"88413214e":11,"88413223e":11,"885":22,"886":22,"887":22,"888":22,"88888889":11,"889":22,"88\u5ec3\u68c4\u7269\u51e6\u7406\u696d":13,"89":[6,18,22],"890":22,"891":22,"892":22,"893":22,"894":22,"894658":13,"895":22,"896":22,"897":22,"898":22,"89838996":10,"899":22,"89\u81ea\u52d5\u8eca\u6574\u5099\u696d":13,"8\u304bpython3":24,"8\u3067\u4fdd\u5b58\u3057\u305f\u3044\u3068\u304d\u306f":9,"8\u306b\u5909\u63db\u3059\u308bpython\u30b9\u30af\u30ea\u30d7\u30c8\u66f8\u3051\u3070\u3044\u3044\u3093\u3058\u3083\u306d":9,"8\u306e\u3068\u304d":6,"8\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u306e\u306b\u5bfe\u3057":9,"8\u30d3\u30c3\u30c8":19,"8\u56de":3,"8\u56de\u76ee\u306e\u63a2\u7d22\u3067x":11,"8\u6708\u306e\u30c7\u30fc\u30bf":25,"8\u7ae0\u3067\u6291\u3048\u3066\u304a\u304f\u3079\u304d\u57fa\u672c\u4e8b\u9805\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u7df4\u7fd2\u554f\u984c\u3092\u4e0e\u3048\u308b":25,"8\u7ae0\u306e\u632f\u308a\u8fd4\u308a":25,"8_sig":18,"8e":[8,18],"9":[4,5,6,7,9,10,11,13,15,16,17,18,19,20,22,24,25],"90":[5,9,18,22],"900":[5,22],"901":22,"902":22,"903":22,"904":22,"905":22,"906":22,"907":22,"908":22,"909":22,"90\u6a5f\u68b0\u7b49\u4fee\u7406\u696d":13,"91":22,"910":22,"911":22,"91103332e":10,"912":22,"9125129281442049":11,"91251293":11,"913":22,"91358025":22,"914":22,"915":22,"916":22,"91634063":11,"917":22,"918":22,"919":22,"91\u8077\u696d\u7d39\u4ecb":13,"92":[5,6,7,22,25],"920":22,"921":22,"922":22,"923":22,"924":22,"925":22,"926":22,"927":22,"928":22,"929":22,"92\u305d\u306e\u4ed6\u306e\u4e8b\u696d\u30b5\u30fc\u30d3\u30b9\u696d":13,"93":[7,22,25],"930":[5,7,22,25],"931":22,"932":22,"9321303":19,"933":22,"934":22,"9341":5,"935":22,"936":22,"937":22,"937055":13,"938":22,"939":22,"94":22,"940":22,"941":22,"942":22,"943":22,"944":22,"945":[13,22],"946":[13,22],"947":[13,22],"94787683":19,"948":[13,22],"949":[13,22],"95":[6,7,11,22,25],"950":22,"950000000000012":11,"95042500e":11,"95061728":22,"951":22,"952":22,"953":22,"954":22,"9545":6,"955":22,"956":22,"956542":13,"957":22,"958":22,"959":[11,22],"95\u305d\u306e\u4ed6\u306e\u30b5\u30fc\u30d3\u30b9\u696d":13,"96":[5,6,22],"960":22,"961":22,"962":22,"963":22,"96304576":11,"964":22,"965":[5,7,22,25],"966":22,"966714532":15,"967":22,"968":22,"969":22,"97":[5,6,22],"970":22,"971":22,"972":22,"973":22,"974":22,"975":22,"976":[5,22],"977":22,"97730658e":10,"978":22,"979":22,"98":[6,22],"980":22,"9809649613610115":6,"981":22,"9813489474851831":11,"98134895":11,"98148809":11,"982":22,"9820242926976":19,"9826":5,"983":22,"984":22,"985":22,"986":22,"987":22,"988":22,"989":22,"9890686124916055":6,"99":[6,18,22],"990":22,"991":22,"992":22,"993":22,"994":22,"994590632112357":6,"995":22,"99575881":11,"996":22,"996967770694425":6,"997":22,"9973":6,"99787715":11,"9978771506830272":11,"99787943":11,"998":22,"99832918":11,"999":[10,20,22],"9991169770947":8,"9991642392577667":11,"99916424":11,"9991646":11,"9996":22,"9998":22,"99998026":11,"9999901297449515":11,"99999013":11,"99999302":11,"9999965079965879":11,"99999651":11,"99999998":11,"9999999827633":8,"99999999":11,"9999999902138795":11,"99\u306e\u3068\u304d":4,"9\u304c\u8d77\u52d5":24,"9\u3092\u9078\u3073":24,"9\u4ee5\u4e0a\u306e\u3082\u306e":9,"9\u6b21\u5f0f\u306f":7,"9e":18,"9e9":20,"9f":16,"9f_":16,"\u03c0":5,"\u3042\u3041\u7591\u4f3c\u76f8\u95a2\u3060\u306a":7,"\u3042\u3041\u914d\u616e\u304c\u8db3\u308a\u306a\u3044\u3093\u3060\u306a":5,"\u3042\u3044\u307e\u3044\u3055":9,"\u3042\u3048\u3066":8,"\u3042\u304f\u307e\u3067":25,"\u3042\u3063\u305f\u3068\u304d\u306b":4,"\u3042\u3068\u3067\u793a\u3059\u3088\u3046\u306b":12,"\u3042\u3068\u3067\u8aac\u660e\u3059\u308b\u3088\u3046\u306b\u95a2\u6570\u5185\u3067global\u5909\u6570\u3067\u3042\u308b\u3053\u3068\u3092\u5ba3\u8a00\u3059\u308c\u3070\u95a2\u6570\u306e\u5916\u3067\u3082\u53c2\u7167\u3067\u304d\u307e\u3059":4,"\u3042\u3068\u306f":23,"\u3042\u3068\u306flinux\u3092\u8d77\u52d5\u3057":24,"\u3042\u306a\u305f\u306e\u66f8\u3044\u305f\u30b3\u30fc\u30c9\u304cpython\u306e\u6587\u6cd5\u4e0a\u8a31\u3055\u308c\u306a\u3044\u66f8\u304d\u65b9\u306b\u306a\u3063\u3066\u3044\u308b":2,"\u3042\u306a\u305f\u306f\u3068\u3042\u308b\u533b\u7642\u85ac\u54c1\u306e\u52b9\u679c":8,"\u3042\u306a\u305f\u306f\u539f\u70b9":6,"\u3042\u306a\u305f\u306f\u5909\u6570":8,"\u3042\u306e\u8981\u7d20\u3063\u3066\u3069\u3053\u306e\u756a\u5730\u306b\u3042\u308b\u3093\u3060\u3063\u3051":3,"\u3042\u307e\u308a\u3053\u306e\u3042\u305f\u308a\u306f\u8a8d\u8b58\u3055\u308c\u3066\u3044\u306a\u3044\u3088\u3046\u306b\u601d\u3046":11,"\u3042\u307e\u308a\u306b\u5c0f\u3055\u3044":8,"\u3042\u307e\u308a\u52b9\u7387\u306f\u826f\u304f\u306a\u3044":6,"\u3042\u3089\u304b\u3058\u3081\u5f79\u5272\u304c\u4e0e\u3048\u3089\u308c\u3066\u3044\u308b\u8a00\u8449":2,"\u3042\u3089\u304b\u3058\u3081\u8208\u5473\u306e\u3042\u308b\u30c7\u30fc\u30bf":13,"\u3042\u308a\u304c\u305f\u307f":9,"\u3042\u308b\u3044\u306f":[6,7,9,22],"\u3042\u308b\u3044\u306f20":24,"\u3042\u308b\u3044\u306f\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3067":23,"\u3042\u308b\u3044\u306f\u30cb\u30e5\u30fc\u30c8\u30f3":15,"\u3042\u308b\u3044\u306f\u30e6\u30fc\u30b6\u30fc\u306e\u5b9f\u884c\u3054\u3068\u306b\u5909\u308f\u3063\u305f\u308a\u3059\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3088\u3046":21,"\u3042\u308b\u3044\u306f\u4e21\u8005\u306e\u9593\u306e\u76f8\u95a2\u306b\u8208\u5473\u304c\u3042\u308b\u5834\u5408":5,"\u3042\u308b\u3044\u306f\u5e7e\u3064\u4e3b\u6210\u5206\u3092\u4fdd\u6301\u3057\u3066\u304a\u3051\u3070\u5143\u306e\u30c7\u30fc\u30bf\u306b\u542b\u307e\u308c\u308b\u7279\u5fb4\u3092\u5341\u5206\u306b\u8868\u73fe":17,"\u3042\u308b\u3044\u306f\u5ea7\u6a19\u3068\u3044\u3063\u3066\u3082\u826f\u3044\u3067\u3059\u304c":3,"\u3042\u308b\u3044\u306f\u6587\u7ae0\u751f\u6210\u3092":21,"\u3042\u308b\u3044\u306f\u65e5\u4e2d":9,"\u3042\u308b\u3044\u306f\u672a\u5b9a\u7fa9\u306a\u3089\u30a8\u30e9\u30fc\u3068\u306a\u308b":2,"\u3042\u308b\u3044\u306f\u6a19\u6e96\u504f\u5dee":6,"\u3042\u308b\u3044\u306f\u7279\u5fb4\u3065\u3051":17,"\u3042\u308b\u3044\u306f\u9006\u306b":7,"\u3042\u308b\u3044\u306fjupyternotebook":1,"\u3042\u308b\u3044\u306fnp":9,"\u3042\u308b\u3068\u3053\u308d\u304b\u3089\u306f":10,"\u3042\u308b\u3068\u3053\u308d\u3067s\u306e\u5024\u304c\u8ca0\u306b\u306a\u3063\u3066\u3057\u307e\u3044":3,"\u3042\u308b\u4e00\u3064\u306e\u30b0\u30e9\u30d5\u306e\u4f8b\u3092\u898b\u306a\u304c\u3089":7,"\u3042\u308b\u5024\u304b\u3089\u90fd\u5ea610\u3092\u5f15\u3044\u3066\u3044\u3063\u3066\u5e73\u65b9\u6839\u3092\u53d6\u3063\u305f\u5024\u3092\u8868\u793a\u3059\u308b":3,"\u3042\u308b\u5217\u304c\u7279\u5b9a\u306e\u3082\u306e\u306b\u4e00\u81f4\u3059\u308b\u3082\u306e\u306e\u307f\u3092\u62bd\u51fa\u3059\u308b\u306e\u3082\u7c21\u5358\u306b\u3067\u304d\u308b":18,"\u3042\u308b\u5834\u5408\u306f":24,"\u3042\u308b\u5909\u6570":[6,8],"\u3042\u308b\u6709\u52b9\u7bc4\u56f2":4,"\u3042\u308b\u6761\u4ef6\u3092\u307f\u305f\u3059":2,"\u3042\u308b\u6c7a\u3081\u3089\u308c\u305f\u30e2\u30c7\u30eb\u95a2\u6570":7,"\u3042\u308b\u70b9\u306e":4,"\u3042\u308b\u76f4\u7dda":8,"\u3042\u308b\u7a0b\u5ea6\u306e\u7cbe\u5ea6\u3067\u6253\u3061\u5207\u308b\u3053\u3068\u304c\u5fc5\u8981\u306b\u306a\u308b":2,"\u3042\u308b\u8cea\u70b9\u306e\u6642\u523b":16,"\u3042\u308b\u91cf\u306e\u6700\u5c0f\u5024":8,"\u3042\u308b\u96c6\u56e3200\u4eba\u306e\u8eab\u9577":17,"\u3042\u308b\u9818\u57df\u306b\u542b\u307e\u308c\u305f\u3089\u30b0\u30fc":6,"\u3042\u308b\u9818\u57df\u306b\u542b\u307e\u308c\u305f\u3089\u30c1\u30e7\u30ad":6,"\u3044\u3044\u52a0\u6e1b\u306a\u7406\u89e3":2,"\u3044\u3044\u52a0\u6e1b\u306a\u7406\u89e3\u3068\u3057\u3066\u306f":2,"\u3044\u3044\u611f\u3058":18,"\u3044\u304f\u3064\u304b\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u3088\u3046\u306b":5,"\u3044\u304f\u3064\u304b\u306e\u4ee3\u8868\u7684\u306a\u6570\u5024\u89e3\u6cd5\u3092\u89e3\u8aac\u3059\u308b\u3068\u3068\u3082\u306b":16,"\u3044\u304f\u3064\u304b\u306e\u5f97\u70b9\u3084\u68d2\u30b0\u30e9\u30d5\u306e\u8272\u3092\u5909\u3048\u3066\u30d7\u30ed\u30c3\u30c8\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u3044\u304f\u3064\u304b\u306e\u65b9\u91dd\u304c\u8003\u3048\u3089\u308c\u308b":24,"\u3044\u304f\u3064\u304b\u306e\u65b9\u91dd\u304c\u8003\u3048\u3089\u308c\u308b\u304c":23,"\u3044\u304f\u3064\u304b\u306e\u7279\u5b9a\u306e\u5834\u5408\u306b\u95a2\u3057\u3066":10,"\u3044\u304f\u3089\u3067\u3082\u5c0f\u3055\u304f\u5206\u5272\u3067\u304d\u308b\u305f\u3081\u96c6\u5408\u3068\u3057\u3066\u306f\u975e\u53ef\u7b97\u7121\u9650":2,"\u3044\u305a\u308c\u304b\u306e\u65b9\u6cd5\u3067\u30b9\u30c8\u30a2\u3092\u958b\u304d":24,"\u3044\u305a\u308c\u3082":[6,8,10],"\u3044\u3061\u3044\u3061":24,"\u3044\u3061\u3044\u3061\u95a2\u6570\u306e\u5fae\u5206\u5f62\u3092\u5c0e\u51fa\u3057\u3066\u30b3\u30fc\u30c9\u306b\u3059\u308b\u306e\u306f\u9762\u5012\u306a\u306e\u3067":8,"\u3044\u3061\u3054":[3,14],"\u3044\u3063\u305f\u3044\u306a\u3093\u306e\u305f\u3081\u306b\u30db\u30cb\u30e3\u30e9\u30e9\u306a\u3093\u3066\u3082\u306e\u3092\u5c0e\u5165":2,"\u3044\u3064\u3067\u30821\u30b7\u30b0\u30de\u306e\u4e2d\u306b":6,"\u3044\u3064\u3067\u3082\u3069\u306e\u7aef\u672b\u304b\u3089\u3067\u3082\u958b\u3044\u3066\u4f5c\u696d\u3092\u518d\u958b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":1,"\u3044\u308d\u3044\u308d\u306a\u30c7\u30fc\u30bf\u306e\u6574\u7406\u65b9\u6cd5\u304c\u3042\u308b\u3068\u601d\u3046\u304c\u3053\u3053\u3067\u306f":9,"\u3044\u308d\u3044\u308d\u306a\u5206\u985e\u306e\u4ed5\u65b9\u304c\u3042\u308a\u307e\u3059\u304c\u4ee3\u8868\u7684\u306a\u3082\u306e\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059":14,"\u3044\u308d\u3093\u306a\u5f62\u306e\u30b7\u30f3\u30dc\u30eb\u3092\u63cf\u3044\u305f\u308a\u3057\u3066":5,"\u3044\u308d\u3093\u306a\u5f62\u5f0f\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u8aad\u307f\u8fbc\u3080\u5834\u5408\u306b\u306f":9,"\u3044\u308f\u3086\u308b\u6570\u5024\u8a08\u7b97\u3092\u884c\u3046\u5834\u5408\u306f":2,"\u3046\u3069\u3093":18,"\u3046\u3069\u3093\u3086\u3067":18,"\u3046\u307e\u304f\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3067\u304d\u306a\u304b\u3063\u305f\u5834\u5408\u3084\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u306b\u3088\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u79fb\u52d5\u306a\u3069\u3092\u3084\u3063\u3066\u307f\u305f\u3051\u308c\u3070\u4e0a\u306e4\u884c\u306e\u30b3\u30fc\u30c9\u3092\u30b3\u30fc\u30c9\u30bb\u30eb\u306b\u8cbc\u3063\u3066\u8a66\u3057\u3066\u307f\u3088\u3046":9,"\u3046\u307e\u304f\u7de8\u96c6\u3067\u304d\u305f\u304b400\u884c\u304a\u304d\u307b\u3069\u3067print\u3057\u3066\u30c1\u30a7\u30c3\u30af\u3057\u3066\u307f\u308b":9,"\u3046\u307e\u304f\u884c\u304b\u306a\u3044\u7406\u7531\u3068\u95a2\u9023\u3057\u3066\u3044\u305d\u3046\u306a\u60c5\u5831\u3092\u4e0e\u3048\u3066\u3084\u3063\u305f\u308a\u3059\u308b\u3053\u3068\u3067":21,"\u3046\u307e\u304f\u91cd\u307f\u4ed8\u3051\u3092\u3057\u3066\u6b21\u30b9\u30c6\u30c3\u30d7\u306e":16,"\u3048\u3063\u3068\u3053\u308c\u524d\u304b\u3089\u4f55\u756a\u76ee\u306e\u8981\u7d20\u3060\u3063\u305f\u3063\u3051":3,"\u304a\u305d\u3089\u304f\u5730\u7403\u4e0a\u306b\u3044\u306a\u3044\u3067\u3057\u3087\u3046":9,"\u304a\u307e\u3051":[5,9],"\u304a\u307e\u3051\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af":7,"\u304a\u3082\u306b\u30c7\u30fc\u30bf\u306e\u7a2e\u985e":18,"\u304a\u3082\u306b\u6574\u6570\u5024":18,"\u304a\u3088\u3073fortran":22,"\u304a\u4f7f\u3044\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306edrive\u3092googl":1,"\u304a\u6383\u9664\u30ed\u30dc\u30c3\u30c8\u304c\u5e8a\u3092\u7dba\u9e97\u306b\u3059\u308b\u305f\u3081\u306b\u306f":9,"\u304a\u7b54\u3048\u51fa\u6765\u306a\u3044\u5834\u5408\u3082\u3042\u308a\u307e\u3059\u306e\u3067\u4e88\u3081\u3054\u4e86\u627f\u304f\u3060\u3055\u3044":0,"\u304a\u7d75\u304b\u304d":[7,11],"\u304b\u3064bla":22,"\u304b\u3068\u3044\u3063\u3066":8,"\u304b\u3068\u3044\u3063\u3066\u5206\u5272\u304c\u591a\u3059\u304e\u308b\u3068\u30b3\u30b9\u30c8\u304c\u304b\u3055\u3080":8,"\u304b\u306a\u308a\u306e\u751f\u7523\u6027\u5411\u4e0a\u304c\u671f\u5f85\u3067\u304d\u308b\u30c4\u30fc\u30eb\u3067\u3042\u308a":21,"\u304b\u3082\u3057\u308c\u306a\u3044":21,"\u304b\u3082\u3057\u308c\u307e\u305b\u3093":9,"\u304b\u3089\u306e\u4e00\u69d8\u4e71\u6570":6,"\u304b\u3089\u306f":5,"\u304b\u3089\u3082\u308f\u304b\u308b\u3088\u3046\u306b":17,"\u304b\u3089\u3082\u95b2\u89a7\u3067\u304d\u308b":0,"\u304b\u3089\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306b\u306f\u30de\u30a6\u30f3\u30c8\u3068\u3044\u3046\u4f5c\u696d\u304c\u5fc5\u8981\u3067\u3059":5,"\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b":21,"\u304b\u3089\u30ab\u30e9\u30fc\u30de\u30c3\u30d7":21,"\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b":21,"\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53ce\u96c6\u3059\u308b\u3068\u3059\u308b":25,"\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u306b\u8981\u7d20\u3092\u62bd\u51fa\u3059\u308b":6,"\u304b\u3089\u30ed\u30b0\u30a4\u30f3\u3057":13,"\u304b\u3089\u4e0d\u8981\u306a\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u524a\u9664\u3059\u308b":1,"\u304b\u3089\u5909\u66f4\u3067\u304d\u307e\u3059\u306e\u3067":3,"\u304b\u3089\u59cb\u3081\u308b\u3053\u3068\u3067linux\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u308b":5,"\u304b\u3089\u59cb\u3081\u308b\u3068":15,"\u304b\u3089\u5c11\u3057\u5927\u304d\u304f\u8abf\u6574":6,"\u304b\u3089\u5fa9\u5143\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":1,"\u304b\u3089\u5fae\u5c0f\u91cf":8,"\u304b\u3089\u64cd\u4f5c\u3059\u308b\u65b9\u6cd5\u306f\u4e3b\u306b2\u901a\u308a\u3042\u308a\u307e\u3059":1,"\u304b\u3089\u66f4\u65b0\u3057\u3066\u3044\u304f\u65b9\u6cd5\u3068\u3057\u3066":8,"\u304b\u3089\u72ec\u7acb\u306b\u751f\u6210\u3055\u308c\u305f\u3068\u4eee\u5b9a\u3059\u308b\u3068":12,"\u304b\u3089\u8a3c\u660e\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u306e\u3067":8,"\u304b\u3089\u958b\u304f":0,"\u304b\u3089\u96e2\u308c\u3066\u3044\u304f\u3068\u3069\u3093\u3069\u3093\u5024\u304c\u5c0f\u3055\u304f\u306a\u308b\u95a2\u6570\u306b\u306a\u3063\u3066\u3044\u307e\u3059":6,"\u304b\u3089\u9806\u756a\u306b\u4e0a\u306e\u6f38\u5316\u5f0f\u3092\u7528\u3044\u3066":16,"\u304b\u3089api\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306eid\u3092\u6307\u5b9a\u3057\u307e\u3059":13,"\u304b\u3089download":24,"\u304b\u3089drive\u306b\u76f8\u5f53\u3059\u308b\u30d5\u30a9\u30eb\u30c0\u306b\u30de\u30a6\u30b9\u30aa\u30fc\u30d0\u30fc\u3057\u3066\u7e263\u70b9":1,"\u304b\u3089pdf\u304c\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u308b":19,"\u304b\u3093\u305f\u3093\u306a\u884c\u5217\u306e\u4f8b\u3068python\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u3066svd\u3092\u5b9f\u884c\u3057\u3066\u307f\u3088\u3046":19,"\u304b\u3093\u305f\u3093\u306a\u884c\u5217\u306e\u4f8b\u3092\u53c2\u8003\u306bsvd\u306e\u7d50\u679c\u5f97\u3089\u308c\u308b":19,"\u304c1\u306b\u306a\u308a\u307e\u3059":6,"\u304c4\u3068\u3044\u3063\u305f\u5177\u5408\u3067\u3059":2,"\u304c\u3042\u3063\u305f\u3068\u304d":3,"\u304c\u3042\u3063\u305f\u3068\u304d\u306b":22,"\u304c\u3042\u3063\u3066":5,"\u304c\u3042\u307e\u308a\u5c0f\u3055\u304f\u306a\u3044\u3068\u4e0b\u306e\u7d75\u306e\u3088\u3046\u306b\u6b63\u3057\u304f\u52fe\u914d\u304c\u8a08\u7b97\u3067\u304d\u306a\u3044\u4e00\u65b9\u3067":8,"\u304c\u3042\u308a\u5909\u6570\u540d\u3068\u3057\u3066\u4f7f\u3046\u4e8b\u306f\u3067\u304d\u307e\u305b\u3093":2,"\u304c\u3042\u308b":7,"\u304c\u3042\u308b\u304b":10,"\u304c\u3042\u308b\u3053\u3068\u306f\u308f\u304b\u308b\u304c":15,"\u304c\u3042\u308b\u306e\u304b\u3092\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3057\u3087\u3046":9,"\u304c\u3042\u308b\u306e\u3067":21,"\u304c\u3042\u308c\u3070":24,"\u304c\u3044\u307e\u6700\u5927\u5316\u3057\u305f\u3044\u5206\u6563\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b":17,"\u304c\u304a\u3059\u3059\u3081\u3067\u3059":5,"\u304c\u304d\u3063\u3068\u3053\u306e\u5148":9,"\u304c\u304f\u306e\u5e45":17,"\u304c\u304f\u306e\u9577\u3055":17,"\u304c\u304f\u7247\u306e\u9577\u3055":17,"\u304c\u305f\u304f\u3055\u3093":4,"\u304c\u3064\u3044\u3066\u3044\u308b\u3082\u306e\u306f\u96a0\u3057\u30d5\u30a1\u30a4\u30eb\u3068\u547c\u3070\u308c":24,"\u304c\u3069\u306e\u3088\u3046\u306b\u5909\u5316\u3059\u308b\u304b":8,"\u304c\u3069\u308c\u3060\u3051\u5909\u5316\u3059\u308b\u304b\u3092\u77e5\u308b\u3053\u3068\u304c\u3067\u304d\u308b":8,"\u304c\u3088\u304f\u3042\u308b":1,"\u304c\u308f\u304b\u3063\u3066\u3044\u308c\u3070":8,"\u304c\u30a4\u30ad\u3063\u3066\u308b\u8a33\u3067\u306f\u306a\u3044":9,"\u304c\u30aa\u30b9\u30b9\u30e1\u3067\u3059":4,"\u304c\u30bf\u30fc\u30df\u30ca\u30eb\u4e0a\u3067\u8868\u793a\u3055\u308c\u307e\u3059":24,"\u304c\u4e0e\u3048\u3089\u308c\u305f\u6642":15,"\u304c\u4e0e\u3048\u3089\u308c\u3066\u3044\u308b\u3068\u304d":8,"\u304c\u4e16\u306e\u4e2d\u306b\u306f\u6ea2\u308c\u3066\u3044\u307e\u3059":6,"\u304c\u4e2d\u5fc3":6,"\u304c\u4e88\u3081\u7528\u610f\u3055\u308c\u3066\u3044\u3066":7,"\u304c\u4e8c\u91cd\u306b\u5fc5\u8981\u306a\u7406\u7531\u306f\u30ea\u30b9\u30c8\u540c\u58eb\u306e\u548c\u306e\u6f14\u7b97\u304c\u7d50\u5408\u3068\u306a\u308b\u3053\u3068\u304b\u3089\u7406\u89e3\u3067\u304d\u308b":3,"\u304c\u4e92\u3044\u306b\u7dda\u5f62\u72ec\u7acb\u3067\u306a\u3044\u90e8\u5206\u304c\u3042\u308b\u305f\u3081\u3067\u3042\u308b":19,"\u304c\u4f7f\u3048\u305d\u3046\u3067\u3042\u308b":25,"\u304c\u4fbf\u5229\u3060":6,"\u304c\u5076\u6570\u306e\u5834\u5408\u306f\u5024\u3092\u305d\u306e\u307e\u307e\u8868\u793a\u3057\u3066":3,"\u304c\u5099\u308f\u3063\u3066\u3044\u308b\u306e\u3067":7,"\u304c\u5143\u3005\u5165\u3063\u3066\u3044\u308b":24,"\u304c\u5165\u3063\u305f\u30ea\u30b9\u30c8\u3092\u4f5c\u308b\u3053\u3068":5,"\u304c\u5168\u89d2\u306b\u306a\u3063\u3066\u3044\u308b":14,"\u304c\u5168\u89d2\u306b\u306a\u3063\u3066\u3044\u308b\u305f\u3081":2,"\u304c\u5177\u4f53\u7684\u306a":8,"\u304c\u5206\u304b\u3063\u3066\u3044\u308b\u3053\u3068\u306f\u975e\u5e38\u306b\u7a00\u3067":7,"\u304c\u5206\u304b\u308a\u3065\u3089\u3044":17,"\u304c\u5206\u304b\u308b":25,"\u304c\u5206\u5e03\u3057\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093":6,"\u304c\u542b\u307e\u308c\u308b\u5834\u5408\u3082\u3042\u308a\u307e\u3059":9,"\u304c\u56f2\u3080\u9818\u57df\u306e\u9762\u7a4d":6,"\u304c\u5927\u304d\u3059\u304e\u305f\u308a\u5c0f\u3055\u3059\u304e\u305f\u308a\u3059\u308b\u3068":8,"\u304c\u5927\u304d\u3059\u304e\u3066":8,"\u304c\u5927\u304d\u3059\u304e\u308b\u3068":8,"\u304c\u5927\u304d\u3059\u304e\u308b\u3068\u3042\u3089\u306c\u65b9\u5411\u306b\u98db\u3093\u3067\u3044\u3063\u3066\u3057\u307e\u3046":8,"\u304c\u5947\u6570\u306e\u5834\u5408\u306f3\u306e\u500d\u6570\u304b\u305d\u3046\u3067\u306a\u3044\u304b\u3067\u51e6\u7406\u3092\u5909\u3048\u308b\u4e8b\u3092\u8003\u3048\u308b\u3068":3,"\u304c\u5947\u6570\u6b21\u306a\u3089\u3070":15,"\u304c\u5b58\u3059\u308b":2,"\u304c\u5b58\u5728\u3057":16,"\u304c\u5b58\u5728\u3057\u3066\u3044\u308b\u3068\u304d":16,"\u304c\u5b58\u5728\u3057\u306a\u3044\u3053\u3068\u304c\u77e5\u3089\u308c\u3066\u3044\u308b":15,"\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u3066\u7c21\u5358\u306b\u8aad\u307f\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059":22,"\u304c\u5b9a\u7fa9\u3067\u304d\u3066\u3044\u308b":22,"\u304c\u5b9f\u884c\u3055\u308c\u305f\u3042\u3068\u306b\u30b3\u30b3\u306eprint\u6587\u304c\u5b9f\u884c\u3055\u308c\u308b":4,"\u304c\u5c0f\u3055\u3044\u3068\u5c40\u6240\u7684\u306a\u8c37\u306b\u6355\u307e\u3063\u3066\u3057\u307e\u3063\u3066\u306a\u304b\u306a\u304b\u5927\u5c40\u7684\u306a\u8c37\u306b\u305f\u3069\u308a\u7740\u3051\u306a\u3044":8,"\u304c\u5c0f\u3055\u3059\u304e\u308b\u3068":8,"\u304c\u5fc5\u305a\u3057\u3082\u5fc5\u8981\u306a\u8a33\u3067\u306f\u306a\u304f":19,"\u304c\u5fc5\u8981\u3068\u306a\u308b":8,"\u304c\u5fc5\u8981\u306a\u3044\u5834\u5408\u306f\u5f15\u6570\u306a\u3057\u306e\u95a2\u6570\u3067\u3082\u69cb\u3044\u307e\u305b\u3093\u3057":4,"\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059":2,"\u304c\u5fc5\u8981\u306b\u306a\u308b\u305f\u3081":19,"\u304c\u6210\u308a\u7acb\u3064\u3068\u304d":7,"\u304c\u6210\u7acb\u3059\u308b\u3053\u3068\u3067\u3042\u308b":16,"\u304c\u6240\u4e0e\u306e\u3068\u304d":16,"\u304c\u624b\u3067\u8a08\u7b97\u3067\u304d\u308b\u306a\u3089\u6570\u5024\u8a08\u7b97\u3059\u308b\u5fc5\u8981\u304c\u306a\u3044\u3057":8,"\u304c\u6319\u3052\u3089\u308c":2,"\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u3066":13,"\u304c\u63d0\u6848\u3055\u308c\u308b":21,"\u304c\u66f4\u65b0\u3055\u308c\u30ce\u30f3\u30bc\u30ed\u306e\u5024\u3092\u6301\u3064\u307e\u3067":10,"\u304c\u6700\u5c0f\u3068\u306a\u308b\u70b9\u3092\u63a2\u3059\u306b\u306f\u4e00\u822c\u306b\u3069\u3046\u3059\u308c\u3070\u3088\u3044\u3060\u308d\u3046\u304b":8,"\u304c\u6700\u5c0f\u306b\u306a\u308b\u591a\u9805\u5f0f\u3092\u63a1\u7528\u3059\u308b\u3053\u3068\u306b\u3057\u3088\u3046":7,"\u304c\u6761\u4ef6":8,"\u304c\u6761\u4ef6\u306b\u5408\u81f4\u3059\u308b\u304b\u3069\u3046\u304btrue":18,"\u304c\u6839\u3067\u3042\u308b\u3053\u3068\u304c\u308f\u304b\u308b":12,"\u304c\u6b63\u306e\u5834\u5408\u306f":8,"\u304c\u751f\u3058\u308b":9,"\u304c\u7570\u306a\u308b\u3053\u3068\u3082\u5206\u304b\u308a\u307e\u3059":4,"\u304c\u7570\u306a\u308bid\u3092\u6301\u3063\u3066\u3044\u3066\u3082":3,"\u304c\u767a\u751f\u3059\u308b":2,"\u304c\u793a\u3059\u3068\u304a\u308a\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u3068\u306f\u3069\u3053\u304b\u3089\u3067\u3082\u53c2\u7167\u3067\u304d\u308b\u5909\u6570\u3067":4,"\u304c\u7b49\u3057\u3044\u78ba\u7387\u306b\u5f93\u3046\u4e71\u6570\u3067":6,"\u304c\u7d040":7,"\u304c\u8457\u3057\u304f\u640d\u306a\u308f\u308c\u3066\u3044\u308b\u5371\u967a\u6027":7,"\u304c\u85ac\u54c1\u306e\u526f\u4f5c\u7528\u3060\u3068\u3057\u305f\u3068\u304d":8,"\u304c\u85ac\u54c1\u306e\u6fc3\u5ea6\u3067":8,"\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u5834\u5408":1,"\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067":21,"\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u8a66\u3057\u3066\u307f\u3088\u3046":24,"\u304c\u8907\u7d20\u884c\u5217\u306e\u5834\u5408\u306e\u8868\u8a18\u3067":19,"\u304c\u898b\u3064\u304b\u3063\u305f\u3067\u3057\u3087\u3046\u304b":9,"\u304c\u89b3\u6e2c\u3055\u308c\u3066\u3044\u308b\u3068\u304d":7,"\u304c\u8ca0\u306e\u5834\u5408\u306f":8,"\u304c\u8d77\u3053\u3063\u305f\u5834\u5408\u306e\u51e6\u7406\u306e\u30d6\u30ed\u30c3\u30af":3,"\u304c\u8d77\u52d5\u3067\u304d\u305f\u3089":24,"\u304c\u8db3\u3055\u308c\u3066\u3044\u307e\u3059":22,"\u304c\u8fd4\u3055\u308c\u307e\u3059":4,"\u304c\u9055\u3046":9,"\u304c\u9055\u3063\u305f\u3068\u3057\u3066\u3082\u5225\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3084\u30c7\u30fc\u30bf\u89e3\u6790\u30c4\u30fc\u30eb\u306b\u3082\u5fdc\u7528\u304c\u52b9\u304f":2,"\u304c\u9589\u3058\u305f\u5f62\u3067\u66f8\u304d\u4e0b\u305b\u308b":8,"\u304c\u958b\u304f":24,"\u304c\u975e\u5e38\u306b\u53c2\u8003\u306b\u306a\u308b":21,"\u304c\u975e\u8ca0\u3067\u3042\u308b\u3053\u3068\u304b\u3089":19,"\u304cgoogl":6,"\u304d\u3061\u3093\u3068\u518d\u73fe\u3059\u308b":10,"\u3053\u3046\u3044\u3046\u304a\u307e\u3058\u306a\u3044\u3092\u5531\u3048\u308b":5,"\u3053\u3046\u3044\u3046\u3053\u3068\u306f\u5c0f\u4e2d\u9ad8\u3084\u5927\u5b66\u3067\u3082\u7406\u7531\u4ed8\u304d\u3067\u6559\u3048\u3066\u304f\u308c\u306a\u304b\u3063\u305f\u308a\u3059\u308b\u306e\u3067":9,"\u3053\u3046\u3044\u3046\u968e\u5c64\u69cb\u9020\u306b\u306a\u3063\u3066\u3044\u3066":9,"\u3053\u3046\u3057\u305f0":3,"\u3053\u3046\u3057\u305f\u3044\u308f\u3086\u308b":23,"\u3053\u3046\u3057\u305f\u3068\u304d\u306b\u5fc5\u8981\u306b\u306a\u308b\u306e\u304c\u4ee5\u4e0b\u3067\u6271\u3046":3,"\u3053\u3046\u3057\u305f\u30a2\u30f3\u30b1\u30fc\u30c8\u5206\u6790\u3092\u884c\u3063\u3066\u3044\u308b\u3068":9,"\u3053\u3046\u3057\u305f\u30a8\u30e9\u30fc\u3092\u907f\u3051\u308b\u306b\u306f":14,"\u3053\u3046\u3057\u305f\u30b3\u30c4\u3092\u6291\u3048\u3066\u304a\u304f\u3068\u826f\u3044\u304b\u3082\u3057\u308c\u306a\u3044":21,"\u3053\u3046\u3057\u305f\u4f5c\u696d\u3092\u7e70\u308a\u8fd4\u3057\u3066\u751f\u6210\u3055\u308c\u305f\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u3066\u307f\u3088\u3046":21,"\u3053\u3046\u3057\u305fweb\u64cd\u4f5c\u3092\u81ea\u52d5\u5316\u3059\u308b\u65b9\u6cd5\u3082\u6388\u696d\u3067\u6271\u3044\u307e\u3059":9,"\u3053\u3046\u3057\u3066\u304a\u3051\u3070\u3069\u306e":6,"\u3053\u3046\u3057\u3066\u3057\u307e\u3046":3,"\u3053\u3046\u306a\u308b":5,"\u3053\u3053\u304b\u3089\u4e0b\u304c\u8ffd\u52a0\u3055\u308c\u305f\u90e8\u5206":3,"\u3053\u3053\u304c\u3055\u3063\u304d\u3068\u9055\u3044\u307e\u3059":5,"\u3053\u3053\u3067":[8,9,12,19],"\u3053\u3053\u3067\u306f":[4,5],"\u3053\u3053\u3067\u306f\u3053\u306e\u30e2\u30c7\u30eb\u306e\u8907\u96d1\u3055":7,"\u3053\u3053\u3067\u306f\u5177\u4f53\u7684\u306a\u30d5\u30a1\u30a4\u30eb\u69cb\u9020\u3092\u793a\u3057\u305f\u308a\u30d5\u30a1\u30a4\u30eb\u3092\u4e0e\u3048\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067":21,"\u3053\u3053\u3067\u306fx\u8ef8\u3068y\u8ef8\u306e\u30c7\u30fc\u30bf\u306e\u7a2e\u985e":5,"\u3053\u3053\u3067\u4e8b\u5f8c\u5206\u5e03\u306e\u5e73\u5747\u304a\u3088\u3073\u5171\u5206\u6563\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3042\u308b":12,"\u3053\u3053\u3067\u7c21\u5358\u306e\u305f\u3081\u4e8b\u524d\u5206\u5e03\u3092\u3055\u3089\u306b\u7c21\u7565\u5316\u3057\u3088\u3046":12,"\u3053\u3053\u3067\u904e\u9069\u5408\u3092\u9632\u3050\u305f\u3081\u306b\u30c7\u30fc\u30bf\u3068\u306e\u6574\u5408\u6027":7,"\u3053\u3053\u306b\u8a18\u8f09\u306e\u624b\u9806\u306b\u306a\u3089\u3063\u3066\u767b\u9332\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046":13,"\u3053\u3053\u306b\u8cc7\u6599\u81ea\u4f53\u306e\u8aac\u660e\u3068\u5404\u7a2e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u30b5\u30fc\u30d3\u30b9\u306e\u8aac\u660e\u3092\u307e\u3068\u3081\u3066\u304a\u304f":0,"\u3053\u3053\u306f\u8aad\u307e\u308c\u306a\u3044":2,"\u3053\u3053\u307e\u3067\u3053\u306e\u6388\u696d\u3067\u52c9\u5f37\u3057\u3066\u304d\u305f\u7686\u3055\u3093\u306f\u65e2\u306b":10,"\u3053\u3053\u307e\u3067\u306e\u4e71\u6570\u306e\u751f\u6210\u65b9\u6cd5\u3092\u5fdc\u7528\u3059\u308b\u3068":6,"\u3053\u3053\u307e\u3067\u52c9\u5f37\u3057\u3066\u304d\u305f\u7686\u3055\u3093\u306b\u306f":9,"\u3053\u3061\u3089":[0,2,13,20],"\u3053\u3061\u3089\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af":[5,24],"\u3053\u3061\u3089\u306e\u30e9\u30a4\u30bb\u30f3\u30b9":20,"\u3053\u3061\u3089\u3092\u9078\u3076\u5834\u5408\u306f\u4e88\u3081\u76f8\u8ac7\u3057\u3066\u304f\u3060\u3055\u3044":24,"\u3053\u3063\u3061\u306e\u68d2\u30b0\u30e9\u30d5\u306e\u307b\u3046\u304c\u826f\u3044\u6c17\u304c\u3059\u308b":5,"\u3053\u3068\u304b\u3089":8,"\u3053\u3068\u304c":21,"\u3053\u3068\u304c\u3042\u308b":3,"\u3053\u3068\u304c\u308f\u304b\u308b":17,"\u3053\u3068\u3060":5,"\u3053\u3068\u3067":[16,19],"\u3053\u3068\u3067\u8907\u6570\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u52b9\u7387\u7684\u306b\u7de8\u96c6\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b":21,"\u3053\u3068\u306b\u3057\u3066":10,"\u3053\u3068\u306b\u306a\u308b":0,"\u3053\u3068\u306b\u91cd\u304d\u3092\u304a\u304f\u305f\u3081":10,"\u3053\u3068\u306f\u4e00\u65e6\u5fd8\u308c\u308b\u3053\u3068\u306b\u3057\u3066":8,"\u3053\u3068\u306f\u8a00\u3046\u307e\u3067\u3082\u306a\u3044":21,"\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\u3053\u3068\u3092\u4eee\u5b9a\u3057\u3066\u3044\u3066":11,"\u3053\u3068\u3092\u5fc3\u304c\u3051\u307e\u3057\u3087\u3046":4,"\u3053\u3068\u3092\u610f\u5473\u3057\u3066\u3044\u3066":4,"\u3053\u3068\u3092\u610f\u5473\u3057\u3066\u3044\u308b":2,"\u3053\u306e\u3053\u3068\u306f":[6,8],"\u3053\u306e\u3053\u3068\u3092":[4,10],"\u3053\u306e\u3053\u3068\u3092\u4e88\u8a00\u80fd\u529b\u304c\u306a\u3044":7,"\u3053\u306e\u3068\u304d":[3,8,12,13,17,21,22],"\u3053\u306e\u3068\u304d\u306e\u756a\u5730":3,"\u3053\u306e\u3082\u3068\u3067\u4e0a\u306e\u7a4d\u5206\u3092\u8a55\u4fa1\u3059\u308b\u3068":16,"\u3053\u306e\u3088\u3046\u306a":[2,6],"\u3053\u306e\u3088\u3046\u306a\u3054\u304f\u5c0f\u3055\u306a\u8aa4\u5dee\u304c\u639b\u3051\u7b97\u306b\u3088\u3063\u3066\u5897\u5e45\u3055\u308c\u7121\u8996\u3067\u304d\u306a\u3044\u5f71\u97ff\u3092\u5f15\u304d\u8d77\u3053\u3059\u3053\u3068\u304c\u3057\u3070\u3057\u3070\u3042\u308b\u306e\u3067":2,"\u3053\u306e\u3088\u3046\u306a\u30a2\u30f3\u30b1\u30fc\u30c8\u8abf\u67fb\u306f\u4e8b\u52d9\u4f5c\u696d\u3084\u5352\u696d\u7814\u7a76\u306a\u3069\u3067\u983b\u7e41\u306b\u898b\u3089\u308c":9,"\u3053\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u306e\u66f8\u304d\u65b9\u306f":4,"\u3053\u306e\u3088\u3046\u306a\u51e6\u7406\u3092\u5b9f\u88c5\u3057\u305f\u3044\u5834\u5408\u306b\u306f":3,"\u3053\u306e\u3088\u3046\u306a\u5834\u5408":8,"\u3053\u306e\u3088\u3046\u306a\u5834\u5408\u3067\u306f":3,"\u3053\u306e\u3088\u3046\u306a\u5834\u5408\u306f":2,"\u3053\u306e\u3088\u3046\u306a\u5f62\u72b6\u306e\u5206\u5e03\u3092\u793a\u3059\u30c7\u30fc\u30bf":6,"\u3053\u306e\u3088\u3046\u306afor\u6587\u3068if\u6587\u306a\u3069\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u8981\u7d20\u306e\u63a2\u7d22\u304c\u9762\u5012\u306a\u3089":3,"\u3053\u306e\u3088\u3046\u306b":[3,4,5,7,9,17],"\u3053\u306e\u3088\u3046\u306b\u30b3\u30fc\u30c9\u3092\u5206\u3051\u3066\u3057\u307e\u3046\u3068":2,"\u3053\u306e\u3088\u3046\u306b\u30b9\u30b1\u30fc\u30eb\u306e\u7570\u306a\u308b\u91cf\u304c\u51fa\u3066\u304f\u308b\u72b6\u6cc1\u4e0b\u3067\u306f":8,"\u3053\u306e\u3088\u3046\u306b\u5834\u5408\u306b\u3088\u3063\u3066\u306f\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3082\u6c17\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b":6,"\u3053\u306e\u3088\u3046\u306b\u5909\u6570\u306b\u4ee3\u5165\u3057\u3066\u304a\u304f\u3068\u4fbf\u5229\u3067\u3059":3,"\u3053\u306e\u3088\u3046\u306b\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u5206\u6790\u3084\u6a5f\u68b0\u5b66\u7fd2\u306a\u3069\u306e\u30e2\u30c7\u30eb\u9078\u629e\u3067\u306f":7,"\u3053\u306e\u3088\u3046\u306b\u7b54\u3048\u3092\u77e5\u3063\u3066\u3044\u308b\u72b6\u614b\u304b\u3089\u306f\u3058\u3081\u3066":7,"\u3053\u306e\u30a2\u30d7\u30ea\u304c\u30c7\u30d0\u30a4\u30b9\u306b\u5909\u66f4\u3092\u52a0\u3048\u308b\u3053\u3068\u3092\u8a31\u53ef\u3057\u307e\u3059\u304b":23,"\u3053\u306e\u30a8\u30af\u30bb\u30eb\u3092\u4f7f\u3063\u3066\u5b9f\u969b\u306b\u4f5c\u696d\u3092\u3059\u308b\u306b\u306f":9,"\u3053\u306e\u30a8\u30af\u30bb\u30eb\u3092\u5b9f\u969b\u306b\u958b\u304f\u3068sheet1\u304b\u3089sheet12\u307e\u3067\u304c\u8907\u6570\u90fd\u5e02\u306e\u5bb6\u8a08\u8abf\u67fb\u306e\u30c7\u30fc\u30bf\u3067":9,"\u3053\u306e\u30b3\u30fc\u30c9\u3067\u306f":6,"\u3053\u306e\u30b9\u30b1\u30fc\u30eb\u3060\u3068\u5177\u4f53\u7684\u306a\u5024\u306f\u3088\u304f\u308f\u304b\u3089\u306a\u3044":15,"\u3053\u306e\u30bb\u30eb\u3082\u5b9f\u884c\u3057\u3066\u304a\u3053\u3046":20,"\u3053\u306e\u30bb\u30eb\u3092\u5b9f\u884c\u3057\u3066":20,"\u3053\u306e\u30c7\u30fc\u30bf\u306b\u306f":17,"\u3053\u306e\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066":7,"\u3053\u306e\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066\u5358\u7d14\u306a\u591a\u9805\u5f0f\u56de\u5e30\u3092\u5f53\u3066\u306f\u3081\u308b\u306e\u306f\u304a\u304b\u3057\u3044":7,"\u3053\u306e\u30c7\u30fc\u30bf\u306e\u69d8\u306b\u80cc\u5f8c\u306b\u3042\u308b\u771f\u306e\u95a2\u6570\u304c\u591a\u5cf0\u7684":11,"\u3053\u306e\u30c7\u30fc\u30bf\u3092":7,"\u3053\u306e\u30c7\u30fc\u30bf\u30923\u6b21\u5143":17,"\u3053\u306e\u30c7\u30fc\u30bf\u3092\u898b\u305f\u3060\u3051\u3067\u306f":7,"\u3053\u306e\u30ce\u30fc\u30c8\u3067\u3044\u3046":12,"\u3053\u306e\u30ce\u30fc\u30c8\u3067\u306f":16,"\u3053\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3067\u306f":[10,13,15,19,20,25],"\u3053\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3067\u306f\u4e3b\u6210\u5206\u5206\u6790":17,"\u3053\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3067\u306f\u8aac\u660e\u3057\u306a\u3044":24,"\u3053\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3067\u306f\u8aac\u660e\u3057\u307e\u305b\u3093\u304cexcept\u306e\u5f8c\u306b\u5177\u4f53\u7684\u306a\u4f8b\u5916\u3092\u6307\u5b9a\u3057\u3066\u4f8b\u5916\u306e\u7a2e\u985e\u306b\u5fdc\u3058\u305f\u64cd\u4f5c\u3092\u884c\u3046\u3053\u3068\u3082\u51fa\u6765\u307e\u3059":3,"\u3053\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u306b\u306fpython\u3092\u89e6\u3063\u3066\u3044\u3066\u3088\u304f\u8d77\u3053\u308a\u304c\u3061\u306a\u30a8\u30e9\u30fc\u306e\u4f8b\u3092\u307e\u3068\u3081\u307e\u3059":14,"\u3053\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u306e\u4f5c\u6210\u306b\u304a\u3044\u3066\u306f\u3053\u3061\u3089\u306e":20,"\u3053\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u8abf\u3079\u308b\u3053\u3068\u304c\u3067\u304d\u308c\u3070":6,"\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304b\u308c\u3066\u3044\u308b\u30c6\u30ad\u30b9\u30c8\u3092\u53d6\u5f97\u3057\u3066\u307f\u3088\u3046":9,"\u3053\u306e\u30da\u30fc\u30b8":23,"\u3053\u306e\u4e2d\u304b\u3089":18,"\u3053\u306e\u4e71\u6570\u3092\u30b5\u30a4\u30b3\u30ed\u306e\u51fa\u76ee\u3068\u307f\u306a\u3059\u3053\u3068\u304c\u3067\u304d\u308b":6,"\u3053\u306e\u4ed6\u306b\u3082\u69d8\u3005\u306a\u578b\u304c\u5b58\u5728\u3057\u3066\u3044\u308b":2,"\u3053\u306e\u4f5c\u696d\u3084\u5b9f\u8df5ds\u306b\u9650\u3089\u305a":9,"\u3053\u306e\u4f8b\u306b\u9650\u3089\u305a":1,"\u3053\u306e\u5206\u6563\u3092\u6700\u5927\u5316\u3059\u308b\u3088\u3046\u306a\u5c04\u5f71":17,"\u3053\u306e\u554f\u984c\u306fdrive\u306e\u30de\u30a6\u30f3\u30c8":25,"\u3053\u306e\u5834\u5408":[1,9],"\u3053\u306e\u5834\u5408\u306f\u81ea\u52d5\u3067":1,"\u3053\u306e\u5834\u5408\u3082\u540c\u69d8\u3067":18,"\u3053\u306e\u5f62\u5f0f\u306e\u8cc7\u6599\u3092\u6388\u696d\u5185\u3067\u306f":0,"\u3053\u306e\u624b\u6cd5\u306e\u5c40\u6240\u6253\u5207\u308a\u8aa4\u5dee\u306f":16,"\u3053\u306e\u624b\u6cd5\u306f\u904e\u53bb\u306e2\u30b9\u30c6\u30c3\u30d7\u306e\u60c5\u5831\u3092\u5229\u7528\u3059\u308b":16,"\u3053\u306e\u6388\u696d\u3067\u306f":[2,4],"\u3053\u306e\u6388\u696d\u3067\u306f\u6271\u308f\u306a\u3044":6,"\u3053\u306e\u6388\u696d\u3067\u306f\u6df1\u5165\u308a\u3057\u306a\u3044":7,"\u3053\u306e\u6388\u696d\u3067\u306f\u898b\u305f\u76ee\u304c\u30b9\u30c3\u30ad\u30ea\u3059\u308b\u306e\u3067\u5f8c\u8005\u3092\u3088\u304f\u4f7f\u3044\u307e\u3059":3,"\u3053\u306e\u6388\u696d\u3067\u306flinux\u306e\u4e2d\u306eubuntu\u3068\u3044\u3046\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u7528\u610f\u3057\u3066\u4f7f\u3046\u3053\u3068\u306b\u3057\u3088\u3046":23,"\u3053\u306e\u6388\u696d\u3067\u4f7f\u3046\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3084":22,"\u3053\u306e\u6388\u696d\u3067\u91cd\u8996\u3059\u308b\u306e\u306f":2,"\u3053\u306e\u6388\u696d\u306b\u9650\u3089\u305a":25,"\u3053\u306e\u6388\u696d\u306f\u78ba\u7387":6,"\u3053\u306e\u6388\u696d\u3092\u53d7\u8b1b\u3057\u305f\u308a\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3059\u308b\u306e\u306b\u7686\u3055\u3093\u304cgithub\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u53d6\u5f97\u3057\u305f\u308a\u3053\u306e\u30ea\u30f3\u30af\u3092\u958b\u3044\u305f\u308a\u3059\u308b\u5fc5\u8981\u306f\u7279\u6bb5\u3042\u308a\u307e\u305b\u3093":0,"\u3053\u306e\u6388\u696d\u3092\u5c65\u4fee\u3059\u308b\u7686\u3055\u3093\u306b\u306f\u305c\u3072":21,"\u3053\u306e\u6388\u696d\u8cc7\u6599\u306e\u4f5c\u6210\u306b\u306fv":21,"\u3053\u306e\u6388\u696d\u8cc7\u6599\u540c\u69d8":5,"\u3053\u306e\u64cd\u4f5c\u306f\u6570\u5b66\u7684\u306b\u306f":22,"\u3053\u306e\u6642\u70b9\u3067nline\u306f0":9,"\u3053\u306e\u6642\u9593\u672a\u6e80\u3067\u30a8\u30af\u30bb\u30eb\u3067\u64cd\u4f5c\u3092\u3057\u3066\u540c\u69d8\u306e\u51e6\u7406\u3092\u5b8c\u4e86\u51fa\u6765\u308b\u3068\u3044\u3046\u65b9\u306f":9,"\u3053\u306e\u6709\u9650\u7cbe\u5ea6\u304c\u5b9f\u7528\u4e0a\u306e\u30c8\u30e9\u30d6\u30eb\u3092\u8d77\u3053\u3059\u3053\u3068\u306f\u7121\u3044\u306f\u305a":2,"\u3053\u306e\u6761\u4ef6\u306e\u3082\u3068\u3067\u5bfe\u6570\u4e8b\u5f8c\u78ba\u7387":12,"\u3053\u306e\u69d8\u306a\u5834\u5408":8,"\u3053\u306e\u69d8\u306a\u5834\u5408\u306f":3,"\u3053\u306e\u69d8\u306b\u3057\u3066\u304a\u304f\u3068":10,"\u3053\u306e\u70b9\u306b\u3064\u3044\u3066\u306f":2,"\u3053\u306e\u70b9\u306b\u6c17\u304c\u4ed8\u304b\u305a\u306b\u6642\u9593\u3092\u304b\u306a\u308a\u6eb6\u304b\u3057\u307e\u3057\u305f":3,"\u3053\u306e\u753b\u9762\u304c\u958b\u3044\u305f\u3068\u304d\u306b":1,"\u3053\u306e\u7ae0\u3067\u306f":[6,8,9,10,13,21],"\u3053\u306e\u7ae0\u3067\u306f\u7701\u7565\u3057\u307e\u3059":2,"\u3053\u306e\u7ae0\u306e\u3088\u3046\u306a\u64cd\u4f5c\u306e\u30a8\u30c3\u30bb\u30f3\u30b9\u3092\u6291\u3048\u3066\u304a\u3051\u3070":9,"\u3053\u306e\u7ae0\u306e\u5185\u5bb9\u306f":9,"\u3053\u306e\u7ae0\u306e\u76ee\u7684":[3,4,5,6,7,8,9],"\u3053\u306e\u7df4\u7fd2\u5e33\u306e\u76ee\u7684\u306f":25,"\u3053\u306e\u884c\u3068\u6b21\u306e\u884c\u306e\u30d6\u30ed\u30c3\u30af\u304c\u4e0d\u8981\u306b\u30a4\u30f3\u30c7\u30f3\u30c8\u3055\u308c\u3066\u3044\u308b":14,"\u3053\u306e\u8868\u5f0f\u3068\u4e0a\u306e\u5206\u6563\u306e\u5f0f\u304b\u3089":17,"\u3053\u306e\u8868\u5f0f\u3068\u5404":19,"\u3053\u306e\u88dc\u8db3\u30ce\u30fc\u30c8\u3067\u306f\u305d\u306e":22,"\u3053\u306e\u8a08\u7b97\u81ea\u4f53\u306b\u610f\u5473\u306f\u3042\u308a\u307e\u305b\u3093":3,"\u3053\u306e\u8a66\u884c\u932f\u8aa4\u81ea\u4f53\u3092\u4eba\u529b\u3067\u306f\u306a\u304f\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306b\u3084\u3089\u305b\u308b\u65b9\u6cd5\u306f\u306a\u3044\u304b":10,"\u3053\u306e\u8d64\u8272\u306e\u7dda\u3092":17,"\u3053\u306e\u8fba\u308a\u306e\u3053\u3068\u306f":7,"\u3053\u306e\u8fd1\u4f3c\u306e\u65b9\u6cd5\u3068\u3057\u3066\u901a\u5e38\u7528\u3044\u3089\u308c\u308b\u306e\u304c":2,"\u3053\u306e\u9078\u629e\u306f\u3042\u304f\u307e\u3067\u4f8b\u3067\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f":7,"\u3053\u306e\u95a2\u6570":4,"\u3053\u306e\u95a2\u6570\u3068\u5404\u30c7\u30fc\u30bf\u70b9\u306e\u9f5f\u9f6c\u304c\u4e8c\u4e57\u8aa4\u5dee\u3092\u6700\u5c0f\u306b\u3059\u308b\u4fc2\u6570":7,"\u3053\u306e\u95a2\u6570\u3092\u3042\u3089\u3086\u308bx\u306e\u5024\u3067\u8db3\u3057\u4e0a\u3052\u305f\u3068\u304d\u306b":6,"\u3053\u306e\u969b":21,"\u3053\u306ea\u3055\u3093\u304c":3,"\u3053\u306ecsv\u30d5\u30a1\u30a4\u30eb\u3092excel\u3067\u958b\u3053\u3046\u3068\u3059\u308b\u3068\u304a\u4f7f\u3044\u306e\u74b0\u5883\u306b\u3088\u3063\u3066\u6587\u5b57\u5316\u3051\u3092\u8d77\u3053\u3059\u304b\u3068\u601d\u3044\u307e\u3059":9,"\u3053\u307e\u3081\u306b\u4fdd\u5b58\u3059\u308b\u624b\u30af\u30bb\u3092\u4ed8\u3051\u3066\u304a\u304d\u307e\u3057\u3087\u3046":1,"\u3053\u3080\u304e":18,"\u3053\u308c\u304c\u306a\u306b\u304b\u306f\u3068\u308a\u3042\u3048\u305a\u6c17\u306b\u3057\u306a\u3044":3,"\u3053\u308c\u304c\u6700\u9069\u306a\u63d0\u6848\u304b\u306f\u3055\u3066\u304a\u304d":9,"\u3053\u308c\u3060\u3051\u3067\u306f\u3069\u3093\u306a\u6069\u6075\u304c\u3042\u308b\u306e\u304b":19,"\u3053\u308c\u3060\u3068\u53f3\u8fba\u306e\u30ea\u30b9\u30c8\u3092\u7a7a\u30ea\u30b9\u30c8\u306b\u7d50\u5408\u3059\u308b\u3053\u3068\u306b\u306a\u308b":3,"\u3053\u308c\u3067":[13,24],"\u3053\u308c\u3067\u3082\u4f7f\u3048\u308b\u3057":4,"\u3053\u308c\u3067\u5909\u6570":2,"\u3053\u308c\u3067\u6e96\u5099\u304c\u3067\u304d\u307e\u3057\u305f":5,"\u3053\u308c\u3067python3":[23,24],"\u3053\u308c\u306b\u3042\u3068\uff13\u884c\u307b\u3069\u66f8\u304d\u8db3\u3057\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u3053\u308c\u306b\u3088\u3063\u3066":3,"\u3053\u308c\u306b\u3088\u308b\u3068":9,"\u3053\u308c\u306b\u5c11\u3057\u305a\u3064":3,"\u3053\u308c\u306b\u95a2\u9023\u3057\u305f\u304a\u8a71\u306f\u30d9\u30a4\u30ba\u6700\u9069\u5316\u306e\u56de\u3067\u8aac\u660e\u3057\u307e\u3059":10,"\u3053\u308c\u306b\u95a2\u9023\u3057\u3066":2,"\u3053\u308c\u306f":[3,4,6,8,9,16,18],"\u3053\u308c\u306f\u304b\u306a\u308a\u6ce8\u610f\u304c\u5fc5\u8981":11,"\u3053\u308c\u306f\u3069\u3046\u3057\u3066\u3067\u3057\u3087\u3046":7,"\u3053\u308c\u306f\u3088\u304f\u3088\u304f\u307f\u308b\u3068":22,"\u3053\u308c\u306f\u3088\u304f\u308f\u304b\u3089\u306a\u3044":13,"\u3053\u308c\u306f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u306e\u4ed5\u69d8\u306b\u3088\u308b\u3082\u306e\u3067":3,"\u3053\u308c\u306f\u5225\u306b\u4f5c\u6210\u8005":9,"\u3053\u308c\u306f\u547c\u3073\u51fa\u3055\u308c\u306a\u3044":3,"\u3053\u308c\u306f\u5927\u5909\u56f0\u308b":18,"\u3053\u308c\u306f\u69cb\u6587\u30a8\u30e9\u30fc":2,"\u3053\u308c\u306f\u76f4\u611f\u306b\u53cd\u3057\u3066\u3044\u308b\u3068\u3044\u3046\u70b9\u3067":3,"\u3053\u308c\u306f\u898b\u305f\u76ee\u3067\u306f\u6c17\u304c\u4ed8\u304d\u3065\u3089\u3044\u306e\u3067":14,"\u3053\u308c\u306fgoogle\u30d5\u30a9\u30fc\u30e0\u3067\u4f5c\u6210\u3055\u308c\u305fcsv\u30d5\u30a1\u30a4\u30eb\u306e\u6587\u5b57\u30b3\u30fc\u30c9\u304c\u4e16\u754c\u6a19\u6e96\u306eutf":9,"\u3053\u308c\u306fng":14,"\u3053\u308c\u306fok":[2,14],"\u3053\u308c\u307e\u305f\u52b9\u7387\u306e\u60aa\u3044\u63a2\u7d22\u3068\u306a\u3063\u3066\u3057\u307e\u3046":8,"\u3053\u308c\u307e\u3067\u306b\u5b66\u7fd2\u3057\u305f\u30eb\u30fc\u30d7\u51e6\u7406\u3092\u99c6\u4f7f\u3059\u308b\u3068":9,"\u3053\u308c\u307e\u3067\u306e":5,"\u3053\u308c\u307e\u3067\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f":6,"\u3053\u308c\u307e\u3067\u306e\u7ae0\u3067\u306f":9,"\u3053\u308c\u307e\u3067\u306f":8,"\u3053\u308c\u307e\u3067\u5b66\u7fd2\u3057\u305ffor\u6587\u3084\u95a2\u6570\u306e\u30a4\u30f3\u30c7\u30f3\u30c8\u3068\u3082\u95a2\u9023\u3057\u305f\u8a71\u984c\u3067\u3059":4,"\u3053\u308c\u307e\u3067\u5b66\u7fd2\u3057\u3066\u304d\u305f\u7e70\u308a\u8fd4\u3057\u64cd\u4f5c\u3084\u4f5c\u56f3\u304c\u5f79\u306b\u7acb\u3064":7,"\u3053\u308c\u307e\u3067\u767b\u5834\u3057\u3066\u304d\u305f":4,"\u3053\u308c\u307e\u3067\u7fd2\u3063\u305f\u65b9\u6cd5\u3060\u3051\u3092\u99c6\u4f7f\u3057\u3066b\u3055\u3093\u306e\u5e74\u9f62\u3092\u53d6\u5f97\u3059\u308b\u306b\u306f\u4f8b\u3048\u3070\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u306b\u306a\u308a\u307e\u3059":3,"\u3053\u308c\u3082\u4e00\u822c\u8ad6\u3060\u304c":21,"\u3053\u308c\u3082\u540c\u69d8":3,"\u3053\u308c\u3082syntaxerror\u3068\u306a\u308b":2,"\u3053\u308c\u3089\u304c\u5360\u3081\u308b\u9762\u7a4d\u306f":6,"\u3053\u308c\u3089\u306e\u30c7\u30fc\u30bf\u304c\u3069\u3046\u3084\u3063\u3066\u5206\u985e\u3055\u308c\u3066\u3044\u308b\u306e\u304b\u3092\u8abf\u3079\u3066\u307f\u307e\u3057\u3087\u3046":13,"\u3053\u308c\u3089\u306e\u30c7\u30fc\u30bf\u70b9\u304c\u4e0a\u306e\u5206\u5e03":12,"\u3053\u308c\u3089\u306e\u4ee3\u8868\u7684\u306a\u4f8b\u3092\u4ee5\u4e0b\u3067\u7d39\u4ecb\u3057\u307e\u3059":14,"\u3053\u308c\u3089\u306e\u70b9\u3092\u30c1\u30a7\u30c3\u30af\u3057":25,"\u3053\u308c\u3089\u306f":4,"\u3053\u308c\u3089\u3092\u3042\u308a\u304c\u305f\u304f\u4f7f\u308f\u305b\u3066\u3082\u3089\u3046\u306e\u304c\u5b89\u5168\u3060":19,"\u3053\u308c\u3089\u96a0\u3057\u30d5\u30a1\u30a4\u30eb\u3084\u96a0\u3057\u30d5\u30a9\u30eb\u30c0\u306f":24,"\u3053\u308c\u3092":12,"\u3053\u308c\u3092\u3082\u3063\u3066\u51fa\u5e2d\u3068\u307f\u306a\u3059":25,"\u3053\u308c\u3092\u30b0\u30e9\u30d5\u306b\u3057\u3066\u307f\u308b\u3068":7,"\u3053\u308c\u3092\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u3067\u6271\u304a\u3046\u3068\u3059\u308b\u3068":2,"\u3053\u308c\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u8868\u73fe\u3059\u308b\u306e\u306b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5b9f\u88c5\u304c\u8003\u3048\u3089\u308c\u307e\u3059":3,"\u3053\u308c\u3092\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068\u547c\u3076":24,"\u3053\u308c\u3092\u4f7f\u3046\u3068":3,"\u3053\u308c\u3092\u5168\u30c7\u30fc\u30bf\u70b9":17,"\u3053\u308c\u3092\u5229\u7528\u3057\u3066\u653b\u7565\u3092\u9032\u3081\u305f\u308a":6,"\u3053\u308c\u3092\u5229\u7528\u3059\u308c\u3070":9,"\u3053\u308c\u3092\u5897\u3084\u3059\u307b\u3069\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8868\u73fe\u80fd\u529b\u304c\u4e0a\u304c\u308b\u4e00\u65b9":10,"\u3053\u308c\u3092\u5fdc\u7528\u3059\u308b\u3068":3,"\u3053\u308c\u3092\u6020\u308b\u3068":17,"\u3053\u308c\u3092\u62e1\u5f35\u3057\u3066":3,"\u3053\u308c\u3092\u62e1\u5f35\u3057\u3066\u3044\u3051\u3070\u78ba\u7387\u30921":6,"\u3053\u308c\u3092\u68d2\u30b0\u30e9\u30d5\u306b\u3067\u3082\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u3053\u308c\u3092\u7528\u3044\u3066":17,"\u3053\u308c\u3092\u76f8\u5bfe\u30d1\u30b9\u3068\u5bfe\u6bd4\u3055\u305b\u3066\u7d76\u5bfe\u30d1\u30b9\u3068\u547c\u3093\u3060\u308a\u3059\u308b":9,"\u3053\u308c\u3092\u8003\u3048\u308b\u3068\u306a\u306b\u304c\u5b09\u3057\u3044\u304b\u3068\u3044\u3046\u3068":2,"\u3053\u308c\u3092ls\u30b3\u30de\u30f3\u30c9\u3067\u8868\u793a\u3055\u305b\u3088\u3046\u3068\u3057\u3066":9,"\u3053\u308c\u4ee5\u4e0a":6,"\u3053\u308c\u4ee5\u5916\u306b\u3082":8,"\u3053\u3093\u306a\u3068\u304d":24,"\u3053\u3093\u306a\u611f\u3058":[6,7],"\u3053\u3093\u306a\u66f8\u304d\u65b9\u3082\u3042\u308b\u306e\u304b":21,"\u3054\u81ea\u8eab\u306e\u30d5\u30a1\u30a4\u30eb":1,"\u3054\u81ea\u8eab\u306egoogl":9,"\u3055\u305b\u3066\u307f\u308b\u3068":4,"\u3055\u3063\u304d\u306ea\u3055\u3093\u3068\u30ab\u30b8\u30ce\u306e\u30ae\u30e3\u30f3\u30d6\u30eb\u3092\u4f8b\u306b":3,"\u3055\u3063\u304d\u3088\u308a\u5c0f\u3055\u304f\u306f\u306a\u3063\u3066\u3044\u307e\u3059\u304c":10,"\u3055\u3063\u304d\u3088\u308aloss\u306e\u5024\u304c\u5c0f\u3055\u304f\u306a\u3063\u3066\u3044\u307e\u3059":10,"\u3055\u3063\u304d\u8a08\u7b97\u3057\u305f":7,"\u3055\u3063\u305d\u304fpanda":13,"\u3055\u3066\u76ee\u6a19\u5909\u6570":12,"\u3055\u3066\u7c21\u5358\u306a\u4f8b\u3067\u30d6\u30ed\u30c3\u30af\u3054\u3068\u306e\u51e6\u7406\u306e\u6319\u52d5\u3092\u78ba\u8a8d\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046":3,"\u3055\u3066w":10,"\u3055\u3089\u306b":[3,7,11,18],"\u3055\u3089\u306b1\u3082\uff12\u3082\u6e80\u305f\u3055\u308c\u306a\u3044\u5834\u5408\u306fc\u3092\u5b9f\u884c\u3059\u308b\u3068\u3044\u3046\u5834\u5408\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u306b\u306a\u308b":3,"\u3055\u3089\u306b\u3044\u3046\u3068\u82f1\u8a9e\u3067\u691c\u7d22\u3067\u304d\u308c\u3070\u30a6\u30a7\u30d6\u4e0a\u3067\u53ce\u96c6\u3067\u304d\u308b\u60c5\u5831\u306f\u4f55\u500d\u306b\u3082\u81a8\u308c\u4e0a\u304c\u308b":2,"\u3055\u3089\u306b\u3053\u306e\u3046\u3061\u8eab\u9577\u304c170cm\u4ee5\u4e0a\u306e\u4eba\u3060\u3051\u304c\u307b\u3057\u3051\u308c\u3070":18,"\u3055\u3089\u306b\u305d\u306e\u4e2d\u306b":9,"\u3055\u3089\u306b\u5206\u6bcd\u306e\u5c0f\u3055\u306a":8,"\u3055\u3089\u306b\u9032\u3093\u3060\u6ce8":2,"\u3055\u3089\u306bx\u30b5\u30fc\u30d0":24,"\u3055\u308c\u305f":2,"\u3055\u308c\u305f3\u6b21\u5f0f\u306e\u4fc2\u6570\u3092\u8868\u793a\u3057\u3066\u307f\u305f":7,"\u3055\u308c\u308b\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u306f":4,"\u3055\u308c\u308b\u5909\u6570\u3067\u3042\u308b\u305f\u3081":4,"\u3055\u3093\u3084\u30c9\u30e9":6,"\u3055\u3093\u3092\u5012\u3059\u95a2\u6570\u3092\u4f5c\u3063\u3066\u307f\u308b\u306e\u3082\u9762\u767d\u305d\u3046\u3067\u3059":6,"\u3056\u3063\u304f\u308a14\u6841\u7a0b\u5ea6":12,"\u3057\u304b\u3057":[2,3,8],"\u3057\u304b\u305a\u308c\u3066\u3044\u306a\u3044":8,"\u3057\u305f\u304c\u3063\u3066":[2,3,7,8,10,21],"\u3057\u305f\u304c\u3063\u3066\u5358\u7d14\u306b\u52fe\u914d\u306e\u60c5\u5831\u306e\u307f\u3092\u4f7f\u3046\u6700\u9069\u5316\u624b\u6cd5\u3067\u306f":10,"\u3057\u305f\u304c\u3063\u3066\u53cb\u4eba\u306b\u898b\u305b\u3066\u3082\u3089\u3063\u305f\u308a\u76f8\u8ac7\u3092\u3057\u3066\u4f53\u88c1\u3092\u6574\u3048\u308b\u5fc5\u8981\u306f\u307e\u3063\u305f\u304f\u7121\u3044":25,"\u3057\u305f\u304c\u3063\u3066\u6b63\u898f\u5206\u5e03\u3067\u4e0e\u3048\u3089\u308c\u308b\u4e8b\u524d\u5206\u5e03\u306e\u3082\u3068\u3067\u30d1\u30e9\u30e1\u30fc\u30bf":12,"\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u306f\u306a\u3044":4,"\u3057\u305f\u884c\u5217\u3092":19,"\u3057\u3066\u3044\u304d\u307e\u3057\u3087\u3046":10,"\u3057\u3066\u3044\u304f\u70b9\u306f\u4e0d\u601d\u8b70":20,"\u3057\u3066\u3044\u308b":7,"\u3057\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u305f\u3081":21,"\u3057\u3066\u307f\u3088\u3046":2,"\u3057\u3066\u3084\u308c\u3070":5,"\u3057\u3066\u4f7f\u3046\u306e\u3067":11,"\u3057\u3066\u5f97\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8":9,"\u3057\u306a\u3055\u3044":7,"\u3057\u3070\u3089\u304f\u3059\u308b\u3068":23,"\u3057\u3081\u3058\u304c\u51ac\u306b\u3088\u304f\u58f2\u308c\u308b\u7406\u7531\u307e\u3067\u306f\u306f\u3063\u304d\u308a\u3068\u306f\u5206\u304b\u3089\u306a\u3044":7,"\u3057\u3081\u3058\u306e\u65ec\u306fgoogle\u691c\u7d22\u306b\u3088\u308b\u30689\u6708\u4e0b\u65ec\u304b\u308911\u6708\u521d\u65ec\u3068\u306e\u3053\u3068\u3067":7,"\u3057\u3081\u3058\u306e\u6d88\u8cbb\u652f\u51fa\u306e\u9593\u306e\u76f8\u95a2\u3092\u793a\u3057\u3066\u3044\u308b":7,"\u3057\u3088\u3046":21,"\u3057\u3088\u3046\u3068\u3057\u305f\u304b\u3089\u3067\u3042\u308b":2,"\u3057\u3088\u3046\u3068\u3057\u3066\u3082\u30a8\u30e9\u30fc\u304c\u8d77\u3053\u3063\u3066\u3057\u307e\u3044\u307e\u3059":4,"\u3057\u3088\u3046\u3068\u8003\u3048\u308b\u306e\u306f":8,"\u3058\u3083\u3093\u3051\u3093\u95a2\u6570\u3092\u5de5\u592b\u3057\u305f\u308a":6,"\u3059\u3059\u3093\u3060\u6ce8":10,"\u3059\u3067\u306b\u3042\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u306f\u6d88\u3055\u305a\u306b\u8ffd\u8a18\u3057\u305f\u3044\u5834\u5408\u306f":9,"\u3059\u3067\u306b\u5f97\u3089\u308c\u305f\u60c5\u5831\u304b\u3089\u3055\u3089\u306a\u308b\u60c5\u5831\u3092\u5f15\u304d\u51fa\u3059\u3053\u3068\u3092\u8003\u3048\u3066\u307f\u307e\u3057\u3087\u3046":9,"\u3059\u3079\u3066\u306e\u8981\u7d20\u304c":6,"\u3059\u3079\u3066\u306e\u8981\u7d20\u304c\uff13\u500d\u3055\u308c\u3066\u3044\u307e\u3059":22,"\u3059\u308b\u3053\u3068":8,"\u3059\u308b\u3053\u3068\u3055\u3048\u3067\u304d\u308c\u3070":2,"\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\u3059\u308b\u3068":[3,10],"\u3059\u308b\u3068\u4f59\u5206\u306a\u30b9\u30da\u30fc\u30b9\u304c\u7a7a\u3044\u3066\u3057\u307e\u3046":9,"\u3059\u308b\u3068\u8868\u793a\u304c\u5197\u9577\u306b\u306a\u308b\u305f\u3081":13,"\u3059\u308b\u306e\u304b":2,"\u305a\u308c\u3066\u3044\u3066":8,"\u305c\u3072\u4e00\u5ea6\u8996\u8074\u3057\u3066\u307f\u3066\u307b\u3057\u3044":21,"\u305c\u3072\u591a\u7528\u3057\u3066\u304f\u3060\u3055\u3044":24,"\u305c\u3072\u6559\u3048\u3066\u304f\u3060\u3055\u3044":14,"\u305d\u3046\u3044\u3046\u3068\u304d\u306f":9,"\u305d\u3046\u3059\u308b\u3068\u77ed\u3044\u540d\u524d\u3067\u4f7f\u3048\u308b":13,"\u305d\u3046\u3059\u308c\u3070":8,"\u305d\u3046\u306a\u306e":9,"\u305d\u3046\u3081\u3093\u985e":18,"\u305d\u3053\u304b\u3089":[9,21],"\u305d\u3053\u304b\u3089\u53c2\u7167\u3067\u304d\u307e\u3059":24,"\u305d\u3053\u304b\u3089\u60c5\u5831\u3092\u62bd\u51fa\u3059\u308b\u65b9\u6cd5":13,"\u305d\u3053\u305d\u3053\u6642\u9593\u304c\u304b\u304b\u308b":24,"\u305d\u3053\u3067":[8,13,17],"\u305d\u3053\u3067\u30d9\u30a4\u30ba\u6700\u9069\u5316\u3092\u7528\u3044\u308b\u3053\u3068\u3067\u5927\u5c40\u7684\u306a\u63a2\u7d22\u3068\u5c40\u6240\u7684\u306a\u63a2\u7d22\u3092\u3046\u307e\u304f\u30c8\u30ec\u30fc\u30c9\u30aa\u30d5\u3057\u306a\u304c\u3089\u6700\u9069\u5024\u3092\u63a2\u7d22\u3059\u308b":11,"\u305d\u3053\u3067\u91cd\u8981\u306a\u306e\u304c":8,"\u305d\u3053\u306b":24,"\u305d\u3053\u306b\u306f":23,"\u305d\u3053\u306b\u8aad\u307f\u8fbc\u3093\u3060\u3082\u306e\u3092\u8a70\u3081\u3066\u3044\u304f":9,"\u305d\u3053\u307e\u3067\u4e8c\u4e57\u8aa4\u5dee\u304c\u6e1b\u3063\u3066\u3044\u307e\u305b\u3093":10,"\u305d\u3057\u3066\u3082\u3046\uff11\u3064\u306f\u304a\u4f7f\u3044\u306ewindows\u3067\u3042\u308b":23,"\u305d\u3057\u3066\u30e2\u30c7\u30eb\u9078\u629e\u57fa\u6e96\u91cf":7,"\u305d\u3057\u3066\u56de\u5e30\u306b\u57fa\u3065\u304f\u5206\u6790\u3092\u6307\u3057\u3066":7,"\u305d\u306e\u3046\u3061":16,"\u305d\u306e\u304a\u304b\u3052\u3067\u52d5\u3044\u3066\u3044\u308b\u304c":14,"\u305d\u306e\u3053\u3068\u3092\u70b9\u7dda\u3067\u8868\u73fe\u3057\u3066\u3044\u307e\u3059":8,"\u305d\u306e\u305f\u3081":4,"\u305d\u306e\u305f\u3081\u306b":18,"\u305d\u306e\u305f\u3081\u306b\u306f":[6,10,17,25],"\u305d\u306e\u307e\u307e\u3067plt":24,"\u305d\u306e\u3082\u306e\u304c\u308f\u304b\u3089\u306a\u304b\u3063\u305f\u308a\u3059\u308b":12,"\u305d\u306e\u3088\u3046\u306a\u5834\u5408\u306b\u5de6\u5074\u306b\u3042\u308b\u7a7a\u767d\u3084\u30bf\u30d6\u306e\u307f\u3092\u53d6\u308a\u9664\u304d\u305f\u3051\u308c\u3070":9,"\u305d\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30ed\u30b0\u30a4\u30f3\u3059\u308b":21,"\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u5b9f\u884c\u3059\u308b":21,"\u305d\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u304b\u3089dot":24,"\u305d\u306e\u4e00\u3064\u306e\u4f8b\u3067\u3042\u308b\u4e00\u69d8\u4e71\u6570\u306f":6,"\u305d\u306e\u4e00\u65b9\u3067":7,"\u305d\u306e\u4e2d\u304b\u3089":5,"\u305d\u306e\u4ed6":[2,9,13,21,23,24,25],"\u305d\u306e\u4ed6\u306e\u30b0\u30e9\u30d5":5,"\u305d\u306e\u4ed6\u306e\u6700\u9069\u5316\u624b\u6cd5":8,"\u305d\u306e\u4ed6\u306e\u8a71\u984c":8,"\u305d\u306e\u4ed6\u6570\u5b66\u7684\u306a\u51e6\u7406\u304c\u30d1\u30c3\u30b1\u30fc\u30b8\u5316\u3055\u308c\u3066\u3044\u308b":22,"\u305d\u306e\u4ed6\u69d8\u3005\u306a\u8981\u7d20\u306b\u5de6\u53f3\u3055\u308c\u308b":7,"\u305d\u306e\u4fbf\u5229\u3055\u306b\u6c17\u304c\u3064\u304f\u306f\u305a\u3067\u3059":5,"\u305d\u306e\u5024\u304c1\u306b\u306a\u308b\u3088\u3046\u306b\u3064\u3051\u3066\u3042\u308a\u307e\u3059":6,"\u305d\u306e\u5024\u3092":2,"\u305d\u306e\u5206\u6563":12,"\u305d\u306e\u539f\u56e0\u3092\u7279\u5b9a\u3057":25,"\u305d\u306e\u540d":4,"\u305d\u306e\u56de\u3067\u7406\u89e3\u3057\u305f":25,"\u305d\u306e\u5834\u3057\u306e\u304e\u7684\u3067\u306f\u3042\u308b\u304c":18,"\u305d\u306e\u5834\u5408\u306f":[9,24],"\u305d\u306e\u5834\u5408\u306fx11\u3068tkinter\u3092\u542b\u3080python3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3088\u3046":24,"\u305d\u306e\u5c71\u306e\u9802\u4e0a\u306b\u305f\u3069\u308a\u7740\u304f\u305f\u3081\u306b\u306f":6,"\u305d\u306e\u5f8c":[19,23],"\u305d\u306e\u5f8c1\u3092\u6253\u3063\u3066\u518d\u3073\u30bf\u30d6\u3092\u53e9\u304f\u3068":24,"\u305d\u306e\u5f8c\u6307\u793a\u306b\u5f93\u3044":21,"\u305d\u306e\u5fdc\u7528\u4f8b\u3068\u3057\u3066\u753b\u50cf\u30c7\u30fc\u30bf\u306e":19,"\u305d\u306e\u6069\u6075\u3092\u53d7\u3051\u308b\u305f\u3081\u306b\u306f\u57fa\u672c\u7684\u306a\u4e8b\u9805\u3092\u307e\u305a\u5b66\u4fee\u3057\u306a\u304f\u3066\u306f\u306a\u3089\u306a\u3044":2,"\u305d\u306e\u6587\u8108\u306b\u6cbf\u3063\u305f\u6587\u7ae0\u3092\u751f\u6210\u3057\u3066\u304f\u308c\u308b":21,"\u305d\u306e\u65b0\u305f\u306a\u8ef8\u306b\u6cbf\u3063\u305f\u5024":17,"\u305d\u306e\u65b9\u6cd5\u306f":7,"\u305d\u306e\u6642\u306f":21,"\u305d\u306e\u6700\u3082\u5358\u7d14\u306a\u4f8b\u3067\u3042\u308b\u30aa\u30a4\u30e9\u30fc\u6cd5\u3092\u8aac\u660e\u3059\u308b":16,"\u305d\u306e\u6700\u5c0f\u5316\u3092\u8003\u3048\u308b":7,"\u305d\u306e\u69d8\u306a\u5834\u5408\u306b\u306f\u3082\u3046\u5c11\u3057":8,"\u305d\u306e\u70b9\u3067\u5024\u3092\u8abf\u3079\u308b":8,"\u305d\u306e\u7279\u5fb4\u3068\u3057\u3066\u306f\u8272\u3005\u3042\u308a\u307e\u3059\u304c":22,"\u305d\u306e\u7406\u7531\u306f\u8272\u3005\u3042\u308b\u304c":9,"\u305d\u306e\u7406\u7531\u3092\u3059\u3079\u3066\u8aac\u660e\u3059\u308b\u3053\u3068\u306f\u3057\u307e\u305b\u3093\u304c\u4f8b\u3048\u3070\u6388\u696d\u3067\u7528\u3044\u305f":23,"\u305d\u306e\u76f4\u4e0b\u306b\u3042\u308bpictures\u4ee5\u4e0b\u306b\u3042\u308bpng\u30d5\u30a1\u30a4\u30eb\u306e\u3046\u3061":24,"\u305d\u306e\u7d50\u679c\u306b\u5fdc\u3058\u3066\u51e6\u7406\u3092\u5206\u5c90\u3055\u305b\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u308b":3,"\u305d\u306e\u7d50\u679c\u3092\u30d9\u30af\u30bf\u753b\u50cf\u3068\u3057\u3066\u51fa\u529b\u3057\u305f\u3044":7,"\u305d\u306e\u80cc\u5f8c\u306b\u3042\u308b\u30e1\u30ab\u30cb\u30ba\u30e0":7,"\u305d\u306e\u884c\u3092\u3044\u3064\u7de8\u96c6\u3057\u305f\u306e\u304b":2,"\u305d\u306e\u8fd4\u308a\u5024\u306e\u578b\u3092\u8abf\u3079\u3088":25,"\u305d\u306e\u9078\u3073\u65b9\u306b\u3088\u3063\u3066":8,"\u305d\u306e\u91ce\u83dc\u306f\u30d3\u30cb\u30fc\u30eb\u30cf\u30a6\u30b9\u306a\u3069\u306e\u751f\u7523\u8a2d\u5099\u306e\u5411\u4e0a\u3067\u5e74\u4e2d":7,"\u305d\u306e\u969b":[1,3,6,21,25],"\u305d\u306e\u969b\u306b":9,"\u305d\u306e\u969b\u306b\u4f7f\u7528\u3059\u308b\u9375\u3084":24,"\u305d\u306e\u969b\u306b\u5fc5\u8981\u306a\u5de5\u7a0b\u3084":25,"\u305d\u306e\u969b\u306f\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u4f7f\u3063\u3066\u30d6\u30ed\u30c3\u30af\u3092\u8868\u73fe\u3059\u308b":3,"\u305d\u3070\u305d\u3070\u3086\u3067":18,"\u305d\u3082\u305d\u3082":8,"\u305d\u3082\u305d\u3082\u3069\u3046\u30b0\u30b0\u3063\u3066\u3044\u3044\u304b\u304c\u5206\u304b\u3089\u306a\u3044":3,"\u305d\u3082\u305d\u3082\u5186\u30b0\u30e9\u30d5\u306b\u3057\u306a\u304d\u3083\u3044\u3051\u306a\u3044\u30c7\u30fc\u30bf\u3063\u3066\u3042\u308b\u3093\u3067\u3057\u3087\u3046\u304b":5,"\u305d\u3082\u305d\u3082\u751f\u7523\u91cf\u304c\u51ac\u306b\u591a\u304f":7,"\u305d\u308c\u304b":5,"\u305d\u308c\u304c":8,"\u305d\u308c\u304c\u3044\u3064\u304b\u30b5\u30fc\u30d3\u30b9\u3084\u30b7\u30b9\u30c6\u30e0\u3092\u901a\u3057\u3066\u793e\u4f1a":17,"\u305d\u308c\u304c\u30e9\u30f3\u30c0\u30e0\u6027\u304b\u3089\u304f\u308b\u5076\u7136\u306e\u6319\u52d5\u306a\u306e\u304b":6,"\u305d\u308c\u305e\u308c":13,"\u305d\u308c\u305e\u308c0":6,"\u305d\u308c\u305e\u308c\u306b\u3064\u3044\u3066\u306e\u4e8c\u4e57\u8aa4\u5dee\u306e\u548c":10,"\u305d\u308c\u305e\u308c\u306e0\u756a\u76ee\u306e\u8981\u7d20\u306eid\u3092\u898b\u3066\u307f\u308b\u3068":3,"\u305d\u308c\u305e\u308c\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u4f55\u3092\u6307\u3059\u306e\u304b":5,"\u305d\u308c\u305e\u308c\u306e\u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u3044\u65b9\u3084\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u3064\u3044\u3066\u306f\u7db2\u7f85\u7684\u306b\u8aac\u660e\u3059\u308b\u3053\u3068\u306f\u3057\u306a\u3044\u306e\u3067":21,"\u305d\u308c\u305e\u308c\u306e\u30b5\u30a4\u30b3\u30ed\u306e\u51fa\u76ee\u3092\u7528\u610f\u3057\u3066\u5165\u308c\u5b50\u306e\u30ea\u30b9\u30c8\u306b\u3059\u308b":6,"\u305d\u308c\u305e\u308c\u306e\u30c7\u30fc\u30bf\u3092\u5e73\u5747\u3092\u3072\u3044\u3066\u6a19\u6e96\u504f\u5dee\u3067\u5272\u308b":10,"\u305d\u308c\u305e\u308c\u306e\u5024\u306b":2,"\u305d\u308c\u305e\u308c\u306e\u5bc4\u4e0e\u3092\u660e\u78ba\u306b\u3057":25,"\u305d\u308c\u305e\u308c\u306e\u884c\u306e\u610f\u5473\u3092\u9806\u306b\u8aac\u660e\u3057\u307e\u3059":5,"\u305d\u308c\u305e\u308c\u306e\u884c\u5217":19,"\u305d\u308c\u305e\u308c\u306e\u95a2\u6570\u306e\u5fae\u5206\u3092\u8868\u793a\u3057\u3066\u307f\u308b\u3068":10,"\u305d\u308c\u305e\u308c\u306eid\u3092\u8abf\u3079\u3066print":3,"\u305d\u308c\u305e\u308c\u3092\u5225\u3005\u306b\u773a\u3081\u308b\u3068\u30a8\u30f3\u30b3\u30fc\u30c0\u90e8\u5206\u306f\u3082\u3068\u306e\u5165\u529b\u306e\u60c5\u5831\u3092\u5727\u7e2e\u3059\u308b\u3088\u3046\u306a\u50cd\u304d\u3092\u3057\u3066\u3044\u308b\u3068\u307f\u306a\u305b\u307e\u3059\u3057":17,"\u305d\u308c\u305e\u308c\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3067\u3044\u3046\u30680":18,"\u305d\u308c\u305e\u308c\u8d64\u8272":6,"\u305d\u308c\u3060\u3051\u3067\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u304c\u8907\u6570\u5fc5\u8981\u306a\u306e\u3067":17,"\u305d\u308c\u3067\u306f":[13,22],"\u305d\u308c\u3067\u306f\u91cd\u307f\u3092\u521d\u671f\u5316\u3057\u3066":10,"\u305d\u308c\u3067\u3082\u308f\u304b\u3089\u306a\u3044\u5834\u5408\u306f":25,"\u305d\u308c\u3068\u30825\u3067\u3057\u3087\u3046\u304b":4,"\u305d\u308c\u306b\u3064\u3044\u3066\u306f\u5f8c\u3067\u8aac\u660e\u3057\u307e\u3059":2,"\u305d\u308c\u306b\u306f":13,"\u305d\u308c\u306b\u3088\u308a\u6570\u5024\u8a08\u7b97\u306b\u5927\u304d\u306a\u8aa4\u5dee\u304c\u7d1b\u308c\u8fbc\u3080\u5371\u967a\u6027\u3082\u3042\u308b":8,"\u305d\u308c\u306f":22,"\u305d\u308c\u306f\u6975\u3081\u3066\u9ad8\u3044\u84cb\u7136\u6027\u3067\u5076\u7136\u3060\u308d\u3046":7,"\u305d\u308c\u307e\u3067\u306b\u6307\u5b9a\u3057\u305f\u6761\u4ef6\u3067\u7d75\u3092\u63cf\u3044\u3066\u8868\u793a\u3059\u308b":5,"\u305d\u308c\u307e\u3067\u306e\u4f5c\u696d\u306b\u3082\u4f9d\u5b58\u3059\u308b\u304c":6,"\u305d\u308c\u3089\u306e\u8272\u3084\u7dda\u7a2e":5,"\u305d\u308c\u3089\u306f\u5f8c\u8ff0\u3059\u308b\u3068\u3057\u3066":6,"\u305d\u308c\u3089\u3092\u30b0\u30e9\u30d5\u3068\u3057\u3066\u53ef\u8996\u5316\u51fa\u6765\u305f\u308a":18,"\u305d\u308c\u3089\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u76f8\u95a2\u4fc2\u6570\u306e\u8a08\u7b97\u3092\u77ed\u304f\u5b9f\u88c5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u305f":7,"\u305d\u308c\u3092":22,"\u305d\u308c\u3092\u30b0\u30e9\u30d5\u3068\u3057\u3066\u63cf\u3044\u305f\u308a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":25,"\u305d\u308c\u3092\u30b0\u30e9\u30d5\u306b\u3057\u3066\u53ef\u8996\u5316\u3057\u3066\u307f\u307e\u3057\u3087\u3046":13,"\u305d\u308c\u3092\u30de\u30b9\u30af\u3059\u308b\u51e6\u7406\u304c\u53ef\u80fd\u3067\u3042\u308b\u3053\u3068":25,"\u305d\u308c\u3092\u4e88\u6e2c\u5024\u306e\u5206\u5e03\u3068\u3057\u3066\u4f1d\u64ad\u3055\u305b\u308b\u5fc5\u8981\u304c\u3042\u308b":12,"\u305d\u308c\u3092\u4f7f\u3044":18,"\u305d\u308c\u3092\u5225\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4fdd\u5b58\u3057\u3066\u307f\u307e\u3057\u3087\u3046":9,"\u305d\u308c\u3092\u5b9f\u884c\u3057\u305f\u304f\u306a\u308b":24,"\u305d\u308c\u3092\u5f0f\u3067\u8868\u73fe\u3057\u3088\u3046\u3068\u601d\u3046\u3068":8,"\u305d\u308c\u3092\u89e3\u51cd\u3057\u3066\u304f\u3060\u3055\u3044":5,"\u305d\u308c\u3092ubuntu\u306e\u30ed\u30b0\u30a4\u30f3":24,"\u305d\u308c\u4ee5\u5916\u306f\u9069\u5f53\u3067\u69cb\u308f\u306a\u3044":25,"\u305d\u308c\u4ee5\u964d\u306e\u884c\u3060\u3051\u3092\u30ea\u30b9\u30c8\u306b\u683c\u7d0d\u3059\u308b\u3068\u3044\u3046\u3082\u306e":9,"\u305d\u308c\u81ea\u4f53\u304c":21,"\u305d\u308c\u81ea\u4f53\u304c\u3084\u3084\u30cf\u30fc\u30c9\u30eb\u304c\u9ad8\u3044\u304b\u3068\u601d\u3044\u307e\u3059":13,"\u305d\u308c\u81ea\u4f53\u304c\u4e00\u3064\u306e\u5b66\u554f\u5206\u91ce\u306b\u306a\u3063\u3066\u3044\u308b":7,"\u305d\u308c\u81ea\u4f53\u3092copy\u3057\u305f\u3044\u3068\u304d\u306f":3,"\u305d\u3093\u306a\u3053\u3068\u304c\u3067\u304d\u305f\u3089\u82e6\u52b4\u306f\u3057\u306a\u3044":11,"\u305d\u3093\u306a\u3068\u304d":[4,9],"\u305d\u3093\u306a\u3068\u304d\u306b\u306f":6,"\u305d\u3093\u306a\u3068\u304d\u306f":3,"\u305d\u3093\u306a\u3068\u304d\u306f\u4ee5\u4e0b\u3067\u8003\u3048\u308b\u3088\u3046\u306a":8,"\u305d\u3093\u306a\u3068\u304d\u306f\u4ee5\u4e0b\u306e\u30c1\u30fc\u30c8\u30b7\u30fc\u30c8\u304c\u5f79\u306b\u7acb\u3061\u307e\u3059":5,"\u305d\u3093\u306a\u306e":9,"\u305d\u3093\u306a\u30c7\u30fc\u30bf\u306b\u5bfe\u3057\u3066":17,"\u305d\u3093\u306a\u5149\u306e\u5074\u9762\u3070\u304b\u308a\u306a\u3089\u826f\u3044\u304c":9,"\u305f\u304f\u3055\u3093\u306e\u4eba\u306e\u306a\u3093\u304b\u306e\u5f97\u70b9\u3068\u3067\u3082\u601d\u3063\u3066\u304f\u3060\u3055\u3044":6,"\u305f\u304f\u3055\u3093\u30b7\u30fc\u30c8\u304c\u3042\u308b\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3059":9,"\u305f\u3060\u3057":[4,8,21],"\u305f\u3060\u30573\u4eba\u76ee\u306e\u8eab\u9577\u3068\u4f53\u91cd\u306f\u5fc5\u305a175":25,"\u305f\u3060\u3057\u3053\u306e\u9805\u76ee\u3067\u8ff0\u3079\u308b\u3053\u3068\u306f":3,"\u305f\u3060\u30d5\u30a1\u30a4\u30eb\u306e\u4e92\u63db\u6027\u306a\u3069\u3092\u8003\u616e\u3059\u308b\u3068":2,"\u305f\u3060\u4ee5\u4e0b\u306e\u6587\u5b57\u5217\u3092\u8868\u793a\u3059\u308b\u95a2\u6570":4,"\u305f\u3068\u3048\u3070":[2,3,4,5,6,7,8,9,10,14,16,18,22,24],"\u305f\u3068\u3048\u3070100\u500b":4,"\u305f\u3068\u3048\u30704\u6b21\u516c\u5f0f\u306f":16,"\u305f\u3068\u3048\u30705\u56de\u3075\u3063\u305f\u3060\u3051\u30676\u304c\u9023\u7d9a\u3067\u51fa\u308b\u5947\u8de1\u7684\u306a\u72b6\u6cc1\u3082\u6709\u308a\u3048\u307e\u3059\u3057":3,"\u305f\u3068\u3048\u30709\u6b21\u5f0f\u306f\u30c7\u30fc\u30bf\u3092\u30d4\u30c3\u30bf\u30ea\u3068\u518d\u73fe\u3057\u3066\u3044\u308b\u4e00\u65b9\u3067":7,"\u305f\u3068\u3048\u3070\u30ad\u30e3\u30f3\u30d0\u30b9\u3092\u56db\u5206\u5272\u3057\u3066":5,"\u305f\u3068\u3048\u3070\u30b5\u30a4\u30b3\u30ed\u306e\u4f8b\u3067\u3044\u3046\u3068":6,"\u305f\u3068\u3048\u3070\u30eb\u30fc\u30d7\u3092\u56de\u3057\u3066\u4e71\u6570\u3092\u751f\u6210\u3059\u308b\u3068\u304d\u306b":6,"\u305f\u3068\u3048\u3070\u4eba":6,"\u305f\u3068\u3048\u3070\u4eca\u306e\u30c7\u30fc\u30bf\u3092\uff13\u6b21\u5f0f\u3067\u30d5\u30a3\u30c3\u30c8\u3057\u305f\u3051\u308c\u3070":7,"\u305f\u3068\u3048\u3070\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5909\u6570\u306e\u578b\u306f":2,"\u305f\u3068\u3048\u3070\u4ee5\u4e0b\u306e\u4f8b\u306e\u3088\u3046\u306b":8,"\u305f\u3068\u3048\u3070\u4ee5\u4e0b\u306e\u540d\u524d\u3068\u5e74\u9f62\u306e\u30ea\u30b9\u30c8":3,"\u305f\u3068\u3048\u3070\u4f55\u304b\u306e\u5024\u306e\u5b63\u7bc0\u5909\u52d5\u306a\u3069\u3092\u30a4\u30e1\u30fc\u30b8\u3057\u3088\u3046":8,"\u305f\u3068\u3048\u3070\u4fc2\u6570\u304c\u3081\u3061\u3083\u304f\u3061\u3083\u30c7\u30ab\u30a4":8,"\u305f\u3068\u3048\u3070\u534a\u89d2\u30b9\u30da\u30fc\u30b9\u304c\u5165\u3063\u305f":9,"\u305f\u3068\u3048\u3070\u56de\u5e30\u3092\u884c\u3046\u95a2\u6570\u3068\u3057\u3066":7,"\u305f\u3068\u3048\u3070\u5c0f\u4e2d\u5b66\u6821\u306e\u51fa\u5e2d\u756a\u53f7\u3068\u304b":3,"\u305f\u3068\u3048\u3070\u5e78\u798f\u611f":8,"\u305f\u3068\u3048\u3070\u6574\u6570\u5024\u306f":2,"\u305f\u3068\u3048\u3070\u691c\u67fb\u6570\u3084\u6211\u3005\u306e\u5916\u51fa\u81ea\u7c9b\u3084":7,"\u305f\u3068\u3048\u3070\u6a5f\u68b0\u5b66\u7fd2\u3067\u306f":8,"\u305f\u3068\u3048\u3070\u76ee\u7684\u95a2\u6570\u3092":10,"\u305f\u3068\u3048\u3070\u79c1\u306e\u3088\u3046\u306bgoogl":5,"\u305f\u3068\u3048\u3070\u81ea\u52d5\u904b\u8ee2\u306e\u8eca\u306b\u3088\u308b\u4e8b\u6545\u306a\u3069\u3092\u60f3\u50cf\u3057\u3066\u307f\u3088\u3046":17,"\u305f\u3068\u3048\u3070\u95a2\u6570\u5185":4,"\u305f\u3068\u3048\u3070\u95a2\u6570\u5185\u3067":4,"\u305f\u3068\u3048\u3070googl":1,"\u305f\u3068\u3048\u3070windows\u5074\u306e\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea":24,"\u305f\u3073\u305f\u3073":22,"\u305f\u3093\u3071\u304f\u8cea":18,"\u3060\u3044\u305f\u3044\u3053\u3093\u306a\u30a4\u30e1\u30fc\u30b8":6,"\u3060\u3051\u305a\u3089\u3057\u305f\u70b9\u3067\u306e\u5024\u3092\u4f7f\u3063\u3066\u6570\u5024\u5fae\u5206\u3057\u3066\u307f\u308b\u3068":8,"\u3060\u3051\u3067\u306a\u304f":7,"\u3060\u3051\u3092":18,"\u3060\u3051\u3092\u8868\u793a\u3057\u3066\u307f\u307e\u3057\u3087\u3046":13,"\u3060\u3051\u52d5\u304b\u3057\u305f\u5834\u6240\u3067\u306e\u5024":8,"\u3060\u3063\u305f\u308a\u3059\u308b":16,"\u3060\u3068\u540d\u524d\u304c\u9577\u3044\u306e\u3067":5,"\u3060\u3068\u56f0\u308b\u306e\u3067false\u3067\u3042\u3063\u3066\u307b\u3057\u3044":3,"\u3060\u3068\u601d\u3048\u3070":3,"\u3060\u3068\u7d42\u70b9\u3092\u542b\u307e\u306a\u3044\u306a\u3069":6,"\u3061\u306a\u307f\u306b":[6,7,9,13],"\u3061\u306a\u307f\u306b2\u3064\u306e\u9818\u57df\u306b\u751f\u6210\u3055\u308c\u305f\u4e71\u6570\u306e\u6bd4\u304b\u3089\u5186\u5468\u7387\u3092\u8a08\u7b97\u3059\u308b\u65b9\u6cd5\u3067\u306f":6,"\u3061\u306a\u307f\u306b\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u306f\u30ab\u30b8\u30ce\u3067\u6709\u540d\u306a\u30e2\u30ca\u30b3\u306e\u5730\u540dmont":6,"\u3061\u306a\u307f\u306b\u4e0a\u306e\u30b3\u30fc\u30c9\u306f":3,"\u3061\u306a\u307f\u306b\u4ecadesktop\u306b\u3044\u3066":24,"\u3061\u306a\u307f\u306b\u5c0e\u95a2\u6570":8,"\u3061\u306a\u307f\u306b\u7b54\u3048\u306f":3,"\u3061\u306a\u307f\u306b\u9078\u3093\u3060\u3082\u306e\u3092\u30bd\u30fc\u30c8\u3057\u305f\u3051\u308c\u3070\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3059\u308b":6,"\u3061\u306a\u307f\u306b\u95a2\u6570":6,"\u3061\u306a\u307f\u306bfortran":3,"\u3061\u306a\u307f\u306bpython\u5074\u304b\u3089linux\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u305f\u3051\u308c\u3070":24,"\u3061\u3087\u3063\u3074\u308a\u8a08\u7b97\u306b\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059":10,"\u3063\u307d\u3044":11,"\u3064\u3044\u3067\u306b\u30b3\u30ec\u3082\u30a4\u30f3\u30dd\u30fc\u30c8":5,"\u3064\u307e\u308a":[2,4,6,7,8,9,12,15,16,22,23],"\u3064\u307e\u308a0":2,"\u3064\u307e\u308a0\u304b\u3089n":25,"\u3064\u307e\u308a12\u6642\u306e\u65b9\u5411":5,"\u3064\u307e\u308a1\u6841\u7cbe\u5ea6\u3092\u4e0a\u3052\u305f\u3044\u306a\u3089":16,"\u3064\u307e\u308a\u304a\u91d1\u304c50\u4e07\u4ee5\u4e0b\u304b150\u4e07\u4ee5\u4e0a\u306b\u306a\u3063\u305f\u3089":3,"\u3064\u307e\u308a\u3053\u306e\u4e8c\u6b21\u95a2\u6570\u306f":8,"\u3064\u307e\u308a\u30b5\u30f3\u30d7\u30eb\u6570\u304c":6,"\u3064\u307e\u308a\u30de\u30a6\u30b9\u3067\u30dd\u30a4\u30f3\u30bf\u3092\u52d5\u304b\u3057\u305f\u308a\u30af\u30ea\u30c3\u30af\u3059\u308b\u306e\u3067\u306f\u306a\u304f":23,"\u3064\u307e\u308a\u52dd\u3063\u305f\u5834\u5408":3,"\u3064\u307e\u308a\u5fae\u5206":8,"\u3064\u307e\u308a\u5fae\u5206\u306e\u5024\u306f\u76f4\u7dda\u306e\u50be\u304d\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u3066":8,"\u3064\u307e\u308a\u6975\u5024\u3092\u6301\u3064":8,"\u3064\u307e\u308a\u6d6e\u52d5\u5c0f\u6570\u70b9":2,"\u3064\u307e\u308a\u884c\u5217":22,"\u3064\u307e\u308a\u8a08\u753b\u884c\u5217\u306b\u5358\u4f4d\u884c\u5217\u3092\u8db3\u3059\u3060\u3051":12,"\u3064\u307e\u308a\u8a08\u7b97\u91cf\u309210\u500d\u306b\u3057\u306a\u304f\u3066\u306f\u306a\u3089\u306a\u3044":16,"\u3064\u307e\u308a\uff11\u3064\u3057\u304b\u8c37\u304c\u7121\u3044":8,"\u3064\u307e\u308an\u6b21\u5143\u914d\u5217\u306e\u7565\u3067\u3059":22,"\u3067\u3042\u308a":[16,21],"\u3067\u3042\u308b":[7,12],"\u3067\u3042\u308b\u3053\u3068\u3092\u610f\u5473\u3057\u3066\u3044\u308b":8,"\u3067\u304d\u305d\u3046\u306a\u3053\u3068\u304c\u308f\u304b\u308b":17,"\u3067\u304d\u308b":21,"\u3067\u304d\u308b\u3060\u3051\u5c11\u306a\u3044\u8a66\u884c\u56de\u6570\u3067\u6700\u9069\u306a\u5024\u3092\u898b\u3064\u3051\u308b\u52b9\u7387\u306e\u3088\u3044\u63a2\u7d22\u65b9\u6cd5":8,"\u3067\u304d\u308b\u306e\u304b\u306e\u6307\u6a19\u3068\u3057\u3066\u7528\u3044\u3089\u308c\u308b":17,"\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3053\u3068\u3092\u5b8c\u7d50\u306b\u307e\u3068\u3081\u308b":25,"\u3067\u304d\u308c\u3070\u81ea\u8eab\u306e\u8208\u5473\u306b\u8fd1\u3044\u3082\u306e\u3084\u65e5\u672c\u306e\u4e8b\u4f8b\u306a\u3069\u3092\u8abf\u3079\u3066\u307f\u308b\u3053\u3068":25,"\u3067\u3059\u304c":4,"\u3067\u3059\u306e\u3067":3,"\u3067\u306a\u304a\u304b\u3064\u5024\u304c\u540c\u3058":12,"\u3067\u306e\u5024\u3092":12,"\u3067\u306e\u52fe\u914d\u306f":8,"\u3067\u306e\u5ea7\u6a19":16,"\u3067\u306e\u5ea7\u6a19\u3092":16,"\u3067\u306e\u5fae\u5206\u306f":8,"\u3067\u306e\u5fae\u5206\u3092":8,"\u3067\u306e\u5fae\u5206\u5024\u306f\u5b9a\u7fa9\u306b\u5f53\u3066\u306f\u3081\u3066\u8a08\u7b97\u3059\u308b\u3068":8,"\u3067\u306e\u884c\u5217\u8981\u7d20\u306e\u5024\u306b\u5bfe\u5fdc\u3055\u305b\u308b":19,"\u3067\u306e\u8fd1\u4f3c\u5024\u3092":16,"\u3067\u306e\u95a2\u6570\u5024":8,"\u3067\u306ey\u306e\u5024":7,"\u3067\u306f\u3044\u304f\u3064\u304b\u5fc5\u8981\u306a\u95a2\u6570\u3092\u9069\u5b9c\u5b9a\u7fa9\u3057\u306a\u304c\u3089\u9032\u3081\u3066\u3044\u304d\u307e\u3057\u3087\u3046":10,"\u3067\u306f\u3053\u306e\u4e2d\u304b\u3089":13,"\u3067\u306f\u306a\u304f":[2,8,24],"\u3067\u306f\u306a\u304f\u540d\u524d\u306b\u3057\u305f\u3051\u308c\u3070":18,"\u3067\u306f\u306a\u304f\u691c\u8a3c\u3057\u7d9a\u3051\u308b\u59ff\u52e2\u304c\u91cd\u8981":7,"\u3067\u306f\u4e8c\u6b21\u5143\u914d\u5217":22,"\u3067\u306f\u5148\u982d\u306b\u30a8\u30af\u30b9\u30af\u30e9\u30e1\u30fc\u30b7\u30e7\u30f3\u30de\u30fc\u30af\u3092\u3064\u3051\u308b\u3053\u3068\u3067":1,"\u3067\u306f\u5b9f\u969b\u306b\u4e0a\u306e\u95a2\u6570\u3092\u4f7f\u3063\u3066":10,"\u3067\u306f\u6700\u5f8c\u306b":2,"\u3067\u306f\u6b21\u306b":9,"\u3067\u306f\u6b21\u306b\u884c\u5217\u3068\u3057\u3066":19,"\u3067\u3082\u53ef":5,"\u3067\u3082\u540c\u3058":5,"\u3067\u3082\u540c\u69d8\u306b":18,"\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308c\u3070\u672b\u5c3e\u306e\u8981\u7d20\u306b":3,"\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u59cb\u307e\u308b\u304b\u3082":21,"\u3067\u30b3\u30d4\u30fc":3,"\u3067\u30b3\u30fc\u30c9\u30bb\u30eb\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":1,"\u3067\u30b9\u30ab\u30e9\u30fc\u500d\u3057\u305f\u306e\u3061":22,"\u3067\u30bb\u30eb\u3092\u4ee5\u4e0b\u306b\u8ffd\u52a0\u3057":3,"\u3067\u30c7\u30fc\u30bf\u3092\u8868\u73fe\u3057":17,"\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304d\u307e\u3059":24,"\u3067\u30da\u30fc\u30b9\u30c8\u51fa\u6765\u307e\u3059":3,"\u3067\u30ea\u30b9\u30c8":6,"\u3067\u4e0e\u3048\u3089\u308c\u3066\u3044\u308b\u3068\u4eee\u5b9a\u3059\u308b":12,"\u3067\u4e0e\u3048\u3089\u308c\u307e\u3059":6,"\u3067\u4e0e\u3048\u3089\u308c\u308b":[7,12],"\u3067\u4e0e\u3048\u3089\u308c\u308b\u3068\u3059\u308b":12,"\u3067\u4e2d\u65ad":1,"\u3067\u4ee5\u4e0b\u306e":17,"\u3067\u4f5c\u3063\u305f\u81ea\u4f5c\u95a2\u6570\u30921\u3064\u306e\u5909\u6570\u3067\u53d7\u3051\u53d6\u308a":25,"\u3067\u4f7f\u3046\u30ea\u30b9\u30c8\u306e\u540d\u524d\u306e\u533a\u5225\u306b\u306f\u6570\u5b57\u3092\u4f7f\u3046":4,"\u3067\u4fdd\u5b58\u3057\u3066\u7d42\u4e86":24,"\u3067\u4fdd\u5b58\u3057\u3088\u3046\u3068\u3059\u308b\u3068":21,"\u3067\u50be\u304d\u304c0\u306b\u306a\u308b":8,"\u3067\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u30c7\u30fc\u30bf":13,"\u3067\u5272\u308b\u3053\u3068\u3067\u5186\u5468\u7387\u3092\u6c42\u3081\u3066\u3044\u307e\u3059":6,"\u3067\u53d6\u308a\u7d44\u3080\u3053\u3068":25,"\u3067\u53d6\u5f97\u3067\u304d\u308b\u304c":18,"\u3067\u56f2\u3080\u3053\u3068\u3067\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f":3,"\u3067\u56f2\u3080\u3053\u3068\u3067\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u3067\u56f2\u3080\u3053\u3068\u3067\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":2,"\u3067\u56f2\u3080\u3053\u3068\u3067\u69cb\u6210\u3067\u304d\u307e\u3059":3,"\u3067\u56f2\u3080\u3068latex\u8868\u8a18\u3092\u7528\u3044\u308b\u3053\u3068\u304c\u3067\u304d\u308b":6,"\u3067\u5927\u304d\u3055\u304c\u6307\u5b9a\u3067\u304d\u307e\u3059":5,"\u3067\u5b9a\u7fa9\u3059\u308b":17,"\u3067\u5b9a\u91cf\u5316\u3057":7,"\u3067\u5b9f\u88c5\u3055\u308c\u3066\u3044\u3066":22,"\u3067\u5fae\u5206\u3057\u305f\u5024":8,"\u3067\u5fae\u5206\u5f62\u304c\u8a08\u7b97\u3067\u304d":8,"\u3067\u6271\u3046\u3088\u3046\u306a\u6f14\u7b97\u3082\u7c21\u5358\u306b\u3067\u304d\u308b":22,"\u3067\u62ec\u308a":3,"\u3067\u6307\u5b9a\u3055\u308c\u308b\u591a\u6b21\u5143\u306e\u6b63\u898f\u5206\u5e03\u306b\u5f93\u3046\u3068\u4eee\u5b9a\u3059\u308b":12,"\u3067\u6307\u5b9a\u3057\u305f\u5834\u6240\u306b":5,"\u3067\u6307\u5b9a\u3057\u305f\u6570\u5024\u306e\u7bc4\u56f2":3,"\u3067\u6307\u5b9a\u3059\u308b\u4e8b\u3082\u3067\u304d\u308b":9,"\u3067\u65b0\u898f\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b":21,"\u3067\u6700\u5927\u5024\u3068\u306a\u308a":6,"\u3067\u6700\u5c0f\u3068\u306a\u308b\u305f\u3081":7,"\u3067\u6975\u5024":8,"\u3067\u7279\u5fb4\u3065\u3051\u3089\u308c\u305f\u306e\u306b\u5bfe\u3057":6,"\u3067\u79fb\u52d5\u3059\u308b":9,"\u3067\u7a4d\u5206\u3057\u305f\u5834\u5408\u306b\u306e\u307f":6,"\u3067\u7c21\u7565\u5316\u3057\u3066\u6307\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b":9,"\u3067\u7cbe\u5ea6\u304c\u9006\u306b\u60aa\u304f\u306a\u3063\u3066\u3044\u308b\u306e\u306f":8,"\u3067\u826f\u3044\u5834\u5408\u306f":5,"\u3067\u8272\u3005\u63c3\u3046\u306e\u3067":24,"\u3067\u8868\u793a\u3055\u305b\u305f\u6587\u5b57\u5217\u81ea\u4f53\u3092\u8fd4\u3059\u95a2\u6570":4,"\u3067\u8907\u6570\u30d5\u30a1\u30a4\u30eb\u3092\u4e00\u6c17\u306b\u79fb\u52d5\u3055\u305b\u308b\u3053\u3068\u3082\u3067\u304d\u308b":24,"\u3067\u898b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u3067\u89e3\u304c\u4e0e\u3048\u3089\u308c\u308b\u306e\u3067":16,"\u3067\u8a73\u3057\u304f\u66f8\u3044\u3066\u3044\u307e\u3059":7,"\u3067\u8abf\u3079\u3066\u307f\u3088\u3046":7,"\u3067\u8abf\u3079\u3066\u3082\u5b9a\u6570":8,"\u3067a\u3092\u518d\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3092\u8868\u3057":2,"\u3067check\u3057\u3066\u307f\u3088\u3046":9,"\u3067svd\u3092\u5b9f\u88c5\u3057":19,"\u3067true":3,"\u3067web\u691c\u7d22\u3057\u3066\u307f\u3066":5,"\u30681\u7ae0\u306e":3,"\u30683\u3064\u306b\u3059\u308b\u3068":3,"\u3068\u3042\u3060\u540d\u3092\u4f7f\u3046\u306a\u3089":6,"\u3068\u3042\u308b":17,"\u3068\u3044\u3046":[3,6,9,16],"\u3068\u3044\u30461\u3064\u306e\u91cf\u3067":17,"\u3068\u3044\u30462\u3064\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u5c0b\u306d\u308b\u547d\u4ee4\u306b\u306a\u3063\u3066\u3057\u307e\u3046":9,"\u3068\u3044\u3046\u304a\u7d04\u675f\u3092\u5fd8\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u610f\u5473\u3059\u308b":25,"\u3068\u3044\u3046\u3053\u3068\u304c\u5206\u304b\u3063\u305f\u308a\u3059\u308b":17,"\u3068\u3044\u3046\u3053\u3068\u304c\u8d77\u3053\u308a\u3048\u307e\u3059":10,"\u3068\u3044\u3046\u3053\u3068\u3067":3,"\u3068\u3044\u3046\u3053\u3068\u3067\u5186\u30b0\u30e9\u30d5\u306f\u30aa\u30de\u30b1\u3068\u3057\u307e\u3059":5,"\u3068\u3044\u3046\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304a\u3053\u3046":8,"\u3068\u3044\u3046\u3053\u3068\u3082\u6291\u3048\u3066\u304a\u304f\u3079\u304d\u91cd\u8981\u306a\u70b9\u3068\u306a\u308b":7,"\u3068\u3044\u3046\u3053\u3068\u3092\u4ee5\u4e0b\u3067\u30c7\u30e2\u30f3\u30b9\u30c8\u30ec\u30fc\u30b7\u30e7\u30f3\u3059\u308b":11,"\u3068\u3044\u3046\u3056\u3063\u304f\u308a\u3068\u3057\u305f\u7406\u89e3\u3067\u307e\u305a\u306f\u5927\u4e08\u592b\u3067\u3059":5,"\u3068\u3044\u3046\u3068\u304d\u306b":3,"\u3068\u3044\u3046\u3068\u3053\u308d\u306b\u5c3d\u304d\u308b":9,"\u3068\u3044\u3046\u3068\u3053\u308d\u306e\u53f3\u4e0b\u306b\u3042\u308b":1,"\u3068\u3044\u3046\u3068\u5c11\u3057\u5927\u3052\u3055\u3067\u3057\u3087\u3046\u304b":8,"\u3068\u3044\u3046\u306e\u304c\u4e0a\u306e\u30b3\u30fc\u30c9\u3067\u884c\u3063\u3066\u3044\u308b\u3053\u3068\u3067\u3059":4,"\u3068\u3044\u3046\u306e\u304c\u4e88\u6e2c\u5b50\u4fee\u6b63\u5b50\u6cd5\u306e\u767a\u60f3\u3067\u3042\u308b":16,"\u3068\u3044\u3046\u306e\u306f":[2,5,7,22],"\u3068\u3044\u3046\u306e\u306f\u66d6\u6627\u306a\u8868\u73fe\u306a\u306e\u3067":19,"\u3068\u3044\u3046\u306e\u3082":[2,10,19],"\u3068\u3044\u3046\u306e\u3082\u304a\u3059\u3059\u3081\u3067\u3059":14,"\u3068\u3044\u3046\u306e\u3082\u524d\u304b\u30894\u884c\u307b\u3069\u8868\u793a\u3057\u3066\u307f\u308b\u3068":18,"\u3068\u3044\u3046\u3082\u306e\u304c\u3042\u308b\u306e\u3067":13,"\u3068\u3044\u3046\u3082\u306e\u304c\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059":22,"\u3068\u3044\u3046\u3082\u306e\u3067\u3042\u308b":15,"\u3068\u3044\u3046\u3082\u306e\u3092\u51fa\u3057\u3066\u3044\u308b":9,"\u3068\u3044\u3046\u3082\u306e\u3092\u52c9\u5f37\u3059\u308b":2,"\u3068\u3044\u3046\u3082\u306e\u3092\u6307\u3057\u307e\u3059":14,"\u3068\u3044\u3046\u3082\u306e\u3092\u8003\u3048\u308b":16,"\u3068\u3044\u3046\u3088\u3046\u306a\u30b1\u30fc\u30b9\u304c\u3088\u304f\u3042\u308b":22,"\u3068\u3044\u3046\u3088\u3046\u306a\u5165\u308c\u5b50\u306e\u30ea\u30b9\u30c8\u304c\u3042\u3063\u305f\u3068\u304d\u306b":22,"\u3068\u3044\u3046\u3088\u3046\u306b":22,"\u3068\u3044\u3046\u3088\u3046\u306b\u5dee\u3092\u3068\u308b\u3068\u6975\u5c0f\u306e\u5024\u3060\u3051\u305a\u308c\u3066\u3044\u308b\u4e8b\u304c\u5206\u304b\u308b":2,"\u3068\u3044\u3046\u30a8\u30e9\u30fc\u304c\u3067\u308b":14,"\u3068\u3044\u3046\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3059":3,"\u3068\u3044\u3046\u30aa\u30d7\u30b7\u30e7\u30f3\u3067":5,"\u3068\u3044\u3046\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u30aa\u30f3":6,"\u3068\u3044\u3046\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3057\u3066\u3044\u308b":9,"\u3068\u3044\u3046\u30b3\u30fc\u30c9\u3067\u3059":3,"\u3068\u3044\u3046\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u306e\u304c\u3042\u304f\u307e\u3067\u57fa\u672c\u3067\u3059":4,"\u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c":21,"\u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u3042\u308a":24,"\u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u3063\u3066\u305d\u306e\u4e0b\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9":5,"\u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u308b\u3053\u3068\u306b\u3057\u307e\u3059":5,"\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u3063\u305f\u3068\u3059\u308b":9,"\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u3044\u305f\u51e6\u7406\u304c\u5b9f\u884c\u3055\u308c\u308b":24,"\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u304c\u3042\u308a":9,"\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u305f\u3068\u4eee\u5b9a\u3057\u3066\u8a71\u3092\u9032\u3081\u307e\u3059\u306e\u3067":9,"\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u308a":9,"\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057":9,"\u3068\u3044\u3046\u30d9\u30af\u30c8\u30eb":22,"\u3068\u3044\u3046\u30dc\u30bf\u30f3\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u4eba\u306f\u307e\u305a\u305d\u3061\u3089\u304b\u3089\u3054\u81ea\u8eab\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044":1,"\u3068\u3044\u3046\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u304b":0,"\u3068\u3044\u3046\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u304b":1,"\u3068\u3044\u3046\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u30c6\u30ad\u30b9\u30c8\u30bb\u30eb\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":1,"\u3068\u3044\u3046\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3059\u3068":4,"\u3068\u3044\u3046\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u3067\u307e\u3059\u306e\u3067":5,"\u3068\u3044\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\u306e":6,"\u3068\u3044\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\u3092":5,"\u3068\u3044\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3063\u3066":3,"\u3068\u3044\u3046\u30e2\u30c1\u30d9\u30fc\u30b7\u30e7\u30f3\u304c\u3042\u308a":8,"\u3068\u3044\u3046\u30e6\u30fc\u30b6\u306e":9,"\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3046\u3068":13,"\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u30662\u3064\u306e\u4f5c\u696d\u306b\u4fc2\u308b\u6642\u9593\u3092\u8abf\u3079\u3066\u307f\u308b\u3068":3,"\u3068\u3044\u3046\u30ea\u30b9\u30c8\u304c\u3042\u3063\u305f\u3068\u3057\u3066":3,"\u3068\u3044\u3046\u30ea\u30b9\u30c8\u3067\u3059":3,"\u3068\u3044\u3046\u30ea\u30b9\u30c8\u3068":3,"\u3068\u3044\u3046\u30ea\u30b9\u30c8\u306e\u4e2d\u8eab\u304c\u9806\u756a\u306b\u5f53\u3066\u306f\u3081\u3089\u308c\u3066\u3044\u308b\u4e8b\u304c\u308f\u304b\u308a\u307e\u3059":3,"\u3068\u3044\u3046\u30eb\u30fc\u30d7\u3092\u56de\u3057\u305f\u3044\u6642":3,"\u3068\u3044\u3046\u4e00\u9023\u306e\u64cd\u4f5c\u3092":4,"\u3068\u3044\u3046\u4e0b\u4f4d\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u3042\u308b\u306e\u3067":6,"\u3068\u3044\u3046\u4eba\u3082\u591a\u3044\u304b\u3082\u3057\u308c\u306a\u3044":9,"\u3068\u3044\u3046\u4eba\u3082\u73fe\u308c\u308b\u3053\u3068\u3060\u308d\u3046":7,"\u3068\u3044\u3046\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u306f":14,"\u3068\u3044\u3046\u4f5c\u696d\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b":3,"\u3068\u3044\u3046\u4f5c\u696d\u306b\u306a\u3063\u3066\u3044\u3066":21,"\u3068\u3044\u3046\u4fc2\u6570":8,"\u3068\u3044\u3046\u5024\u3092\u3082\u3063\u305f\uff13\u884c\uff13\u5217\u306e\u884c\u5217\u3092\u8003\u3048\u305f\u3051\u308c\u3070":22,"\u3068\u3044\u3046\u516c\u5f0f\u3082\u77e5\u3089\u308c\u3066\u3044\u308b":16,"\u3068\u3044\u3046\u51e6\u7406\u306b\u306a\u3063\u3066\u3044\u307e\u3059":3,"\u3068\u3044\u3046\u51e6\u7406\u3092\u5b9f\u73fe\u305b\u3088":25,"\u3068\u3044\u3046\u540d\u524d\u3067\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u305f\u306e\u3067":5,"\u3068\u3044\u3046\u540d\u524d\u3067\u4f7f\u3046\u306e\u304c\u6163\u4f8b\u3067\u3059":18,"\u3068\u3044\u3046\u540d\u524d\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b":5,"\u3068\u3044\u3046\u540d\u524d\u306b\u3042\u308f\u305b\u3066\u5b9a\u7fa9\u3057\u3066\u304a\u304f\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093":4,"\u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u307f\u307e\u3057\u3087\u3046":9,"\u3068\u3044\u3046\u540d\u524d\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u969b\u306b\u306f":5,"\u3068\u3044\u3046\u540d\u524d\u306e\u5909\u6570\u3092\u5b9a\u7fa9\u3057\u3088\u3046\u3068\u3057\u3066\u3082":2,"\u3068\u3044\u3046\u547d\u4ee4\u306b\u306a\u3063\u3066\u3044\u308b":1,"\u3068\u3044\u3046\u547d\u4ee4\u3092\u610f\u5473\u3057\u307e\u3059":[23,24],"\u3068\u3044\u3046\u547d\u4ee4\u3092\u884c\u3046\u3068":9,"\u3068\u3044\u3046\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u305f\u3081\u3067\u3059":10,"\u3068\u3044\u3046\u578b\u3067\u3042\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3057\u305f":22,"\u3068\u3044\u3046\u5834\u5408\u306b\u306f":3,"\u3068\u3044\u3046\u5834\u6240\u306b\u30de\u30a6\u30f3\u30c8":1,"\u3068\u3044\u3046\u5834\u6240\u306b\u30de\u30a6\u30f3\u30c8\u3055\u308c\u308b\u306e\u3067":1,"\u3068\u3044\u3046\u5909\u6570\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044":2,"\u3068\u3044\u3046\u5909\u6570\u306b":3,"\u3068\u3044\u3046\u5909\u6570\u306b\u3057\u305f":9,"\u3068\u3044\u3046\u5909\u6570\u306b\u683c\u7d0d\u3057\u3066\u3044\u308b":7,"\u3068\u3044\u3046\u597d\u4f8b":7,"\u3068\u3044\u3046\u5f0f\u304c\u5f97\u3089\u308c\u308b":16,"\u3068\u3044\u3046\u5f15\u304d\u7b97\u90e8\u5206\u3067\u6570\u5024\u8aa4\u5dee\u304c\u767a\u751f\u3057":8,"\u3068\u3044\u3046\u5f15\u6570\u3092\u6307\u5b9a\u3057\u307e\u3057\u305f":5,"\u3068\u3044\u3046\u5f62\u3067\u547c\u3073\u51fa\u305b\u308b\u95a2\u6570\u304c\u3042\u308b":4,"\u3068\u3044\u3046\u6027\u8cea\u306e\u3082\u306e\u3067\u3042\u308b":21,"\u3068\u3044\u3046\u610f\u5473\u3057\u304b\u6301\u305f\u306a\u3044":2,"\u3068\u3044\u3046\u610f\u5473\u3067":2,"\u3068\u3044\u3046\u610f\u5473\u3067\u306f":8,"\u3068\u3044\u3046\u610f\u5473\u3067\u306f\u5fc5\u305a\u3057\u3082\u3042\u308a\u307e\u305b\u3093":10,"\u3068\u3044\u3046\u610f\u8b58\u304c\u91cd\u8981\u3067\u3059":9,"\u3068\u3044\u3046\u62e1\u5f35\u5b50\u306ejupyternotebook\u7528\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4f5c\u6210\u3055\u308c\u3066\u3044\u308b":0,"\u3068\u3044\u3046\u6307\u4ee4\u3092\u4e0e\u3048\u3066\u3044\u308b":7,"\u3068\u3044\u3046\u6307\u5b9a\u3067\u306f\u306a\u304f":9,"\u3068\u3044\u3046\u64cd\u4f5c\u304c\u983b\u7e41\u306b\u8868\u308c\u307e\u3059":22,"\u3068\u3044\u3046\u64cd\u4f5c\u3092\u601d\u3044\u3064\u304d\u307e\u3059":3,"\u3068\u3044\u3046\u64cd\u4f5c\u3092\u8868\u3057\u3066\u3044\u307e\u3059":5,"\u3068\u3044\u3046\u64cd\u4f5c\u3092\u9069\u7528\u3057\u3066\u3044\u308b":9,"\u3068\u3044\u3046\u6587\u5b57\u5217\u3067\u3042\u308b":9,"\u3068\u3044\u3046\u6587\u5b57\u5217\u306e":9,"\u3068\u3044\u3046\u6587\u5b57\u5217\u306f1\u884c\u76ee\u306e6\u5217\u76ee":18,"\u3068\u3044\u3046\u65b9\u306b\u5411\u3051\u3066":24,"\u3068\u3044\u3046\u65b9\u306f":21,"\u3068\u3044\u3046\u66f4\u65b0\u5f0f\u3092\u5f97\u308b":16,"\u3068\u3044\u3046\u6761\u4ef6\u304c\u6c42\u3081\u3089\u308c\u308b":9,"\u3068\u3044\u3046\u6761\u4ef6\u3092\u3044\u308c\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u3068\u3044\u3046\u6761\u4ef6\u3092\u8ab2\u3059\u3053\u3068\u306b\u3059\u308b":17,"\u3068\u3044\u3046\u6982\u5ff5\u304c\u305f\u3073\u305f\u3073\u767b\u5834\u3059\u308b":9,"\u3068\u3044\u3046\u6982\u5ff5\u306b\u3082\u6ce8\u610f\u304c\u5fc5\u8981\u3068\u306a\u308b":2,"\u3068\u3044\u3046\u6982\u5ff5\u306e\u7372\u5f97":5,"\u3068\u3044\u3046\u6c17\u3065\u304d\u3092\u4e0e\u3048\u3066\u304f\u308c\u305f\u308a\u3082\u3059\u308b":21,"\u3068\u3044\u3046\u6f14\u7b97\u3060\u3068\u8a8d\u8b58\u3055\u308c\u3066\u3057\u307e\u3046":2,"\u3068\u3044\u3046\u70b9\u3067":3,"\u3068\u3044\u3046\u70b9\u306b\u601d\u3044\u81f3\u308b\u306e\u3067\u306f\u306a\u3044\u3067\u3057\u3087\u3046\u304b":10,"\u3068\u3044\u3046\u72b6\u6cc1\u3092\u30b3\u30fc\u30c9\u3067\u8868\u73fe\u3059\u308b\u5834\u5408":3,"\u3068\u3044\u3046\u72b6\u6cc1\u4e0b\u304b\u3064":3,"\u3068\u3044\u3046\u767a\u60f3\u304c\u3042\u308b\u3053\u3068\u3092\u671f\u5f85\u3057\u3066\u3044\u307e\u3059":9,"\u3068\u3044\u3046\u76f4\u611f\u306e\u901a\u308a":7,"\u3068\u3044\u3046\u7a0b\u5ea6\u306e\u610f\u5473\u3067\u3042\u308b":12,"\u3068\u3044\u3046\u7acb\u5834\u3092\u3068\u3063\u3066\u307f\u308b":7,"\u3068\u3044\u3046\u7d04\u675f\u3092\u8868\u73fe\u3057\u305f\u3051\u308c\u3070":9,"\u3068\u3044\u3046\u7dd1\u8272\u306e\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057":21,"\u3068\u3044\u3046\u8003\u3048\u65b9\u3067\u3042\u308a\u305d\u306e\u6a19\u6e96\u3092\u5b9a\u3081\u305f\u3082\u306e\u304c\u524d\u8ff0\u306eieee754\u3068\u306a\u308a\u307e\u3059":2,"\u3068\u3044\u3046\u81ea\u4f5c\u95a2\u6570\u3068\u540c\u3058\u65b9\u6cd5\u3067\u547c\u3073\u51fa\u305b\u305f":4,"\u3068\u3044\u3046\u8868\u8a18\u306b\u6163\u308c\u3066\u3044\u306a\u3044\u65b9\u306f":8,"\u3068\u3044\u3046\u898f\u683c\u306e\u3082\u3068\u3067":2,"\u3068\u3044\u3046\u8a18\u53f7\u3067\u8868\u73fe\u3059\u308b":9,"\u3068\u3044\u3046\u8a2d\u8a08\u601d\u60f3\u3067\u3042\u308b":4,"\u3068\u3044\u3046\u8a2d\u8a08\u601d\u60f3\u3067\u3042\u308b\u306e\u306b\u5bfe\u3057":4,"\u3068\u3044\u3046\u8a71\u3060":9,"\u3068\u3044\u3046\u8fd1\u4f3c\u5f0f\u304c\u5f97\u3089\u308c\u308b":16,"\u3068\u3044\u3046\u95a2\u6570":5,"\u3068\u3044\u3046\u95a2\u6570\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u3066":18,"\u3068\u3044\u3046\u95a2\u6570\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u308b\u306e\u3067":13,"\u3068\u3044\u3046\u95a2\u6570\u3092\u4f7f\u3046\u3053\u3068\u3067\u8abf\u3079\u308b\u3053\u3068\u304c\u3067\u304d\u308b":2,"\u3068\u3044\u3046\u95a2\u6570\u3092\u4f7f\u3046\u3053\u3068\u3092\u610f\u5473\u3057\u307e\u3059":5,"\u3068\u3044\u3046\u95a2\u6570\u3092\u8aad\u3093\u3067\u3044\u307e\u3059":5,"\u3068\u3044\u3046\u968e\u5c64\u69cb\u9020\u304c\u3042\u308a":5,"\u3068\u3044\u3046\u98a8\u306b":7,"\u3068\u3044\u3046\u98a8\u306b\u4f7f\u3063\u3066":9,"\u3068\u3044\u3046\uff12\u3064\u306e\u64cd\u4f5c":3,"\u3068\u3044\u3046csv\u30d5\u30a1\u30a4\u30eb\u304c\u5165\u3063\u3066\u3044\u308b":9,"\u3068\u3044\u3046syntaxerror\u304c\u51fa\u305f\u3068\u304d\u306f":14,"\u3068\u3044\u3063\u305f":11,"\u3068\u3044\u3063\u305f2\u884c2\u5217\u306e\u76f8\u95a2\u884c\u5217\u3092\u53d6\u5f97\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u308b":7,"\u3068\u3044\u3063\u305f\u3053\u3068\u304c\u3042\u308b":2,"\u3068\u3044\u3063\u305f\u3053\u3068\u304c\u3088\u304f\u8d77\u3053\u308a\u307e\u3059":10,"\u3068\u3044\u3063\u305f\u3053\u3068\u304c\u8d77\u3053\u308a\u3048\u308b":8,"\u3068\u3044\u3063\u305f\u3053\u3068\u3082":13,"\u3068\u3044\u3063\u305f\u3053\u3068\u3082\u51fa\u3066\u304d\u307e\u3059":9,"\u3068\u3044\u3063\u305f\u3053\u3068\u3082\u7a00\u306b\u8d77\u3053\u308a\u307e\u3059":14,"\u3068\u3044\u3063\u305f\u3068\u304d\u306b\u306f\u57fa\u672c\u7684\u306b\u306fssh\u516c\u958b\u9375\u8a8d\u8a3c\u3092\u7528\u3044\u3066\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u304b\u3089\u30ea\u30e2\u30fc\u30c8\u74b0\u5883\u306b\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u3053\u3068\u306b\u306a\u308b\u304c":24,"\u3068\u3044\u3063\u305f\u3068\u3053\u308d\u3067\u3057\u3087\u3046\u304b":22,"\u3068\u3044\u3063\u305f\u3068\u3053\u308d\u3084googl":1,"\u3068\u3044\u3063\u305f\u3088\u3046\u306a\u30ea\u30b9\u30c8":4,"\u3068\u3044\u3063\u305f\u3088\u3046\u306b":[4,7,22],"\u3068\u3044\u3063\u305f\u3088\u3046\u306b\u5b9a\u7fa9\u3055\u308c\u308b":8,"\u3068\u3044\u3063\u305f\u3088\u3046\u306b\u610f\u56f3\u3057\u306a\u3044\u30a4\u30f3\u30c7\u30f3\u30c8\u306b\u306a\u3063\u3066\u3057\u307e\u3063\u3066":3,"\u3068\u3044\u3063\u305f\u3088\u3046\u306bgoogl":13,"\u3068\u3044\u3063\u305f\u308f\u3051\u3067\u3059":9,"\u3068\u3044\u3063\u305f\u30a4\u30e1\u30fc\u30b8":3,"\u3068\u3044\u3063\u305f\u30a4\u30e1\u30fc\u30b8\u3067\u3059":9,"\u3068\u3044\u3063\u305f\u4f7f\u3044\u65b9\u306f\u51fa\u6765\u306a\u3044":18,"\u3068\u3044\u3063\u305f\u5177\u5408":18,"\u3068\u3044\u3063\u305f\u5177\u5408\u3060":25,"\u3068\u3044\u3063\u305f\u5177\u5408\u3067\u3059":[3,22],"\u3068\u3044\u3063\u305f\u5177\u5408\u306b":9,"\u3068\u3044\u3063\u305f\u5834\u5408\u306f":6,"\u3068\u3044\u3063\u305f\u5f62\u3067":3,"\u3068\u3044\u3063\u305f\u5f62\u3067\u4f7f\u3044\u307e\u3059":5,"\u3068\u3044\u3063\u305f\u610f\u5473\u306e\u306a\u3044\u5909\u6570\u540d\u3067\u5341\u5206\u306a\u306e\u3067\u3059\u304c":3,"\u3068\u3044\u3063\u305f\u611a\u76f4\u306a\u4f8b\u304c\u8003\u3048\u3089\u308c\u308b":9,"\u3068\u3044\u3063\u305f\u611f\u3058":[9,12],"\u3068\u3044\u3063\u305f\u611f\u3058\u3067":9,"\u3068\u3044\u3063\u305f\u64cd\u4f5c\u3067\u3059":22,"\u3068\u3044\u3063\u305f\u64cd\u4f5c\u306f\u5fc5\u8981\u306a\u3044\u304c":9,"\u3068\u3044\u3063\u305f\u65b9\u6cd5\u304c\u601d\u3044\u3064\u304d\u307e\u3059":6,"\u3068\u3044\u3063\u305f\u6982\u5ff5\u306f":19,"\u3068\u3044\u3063\u305f\u6b04\u304c\u3042\u308b\u306e\u3067":24,"\u3068\u3044\u3063\u305f\u72b6\u6cc1\u306b\u4fbf\u5229\u306a\u95a2\u6570\u3067\u3059":3,"\u3068\u3044\u3063\u305f\u72b6\u6cc1\u3082\u8d77\u3053\u308a\u3048\u307e\u3059":3,"\u3068\u3044\u3063\u305f\u8868\u73fe\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059":6,"\u3068\u3044\u3063\u305f\u8981\u671b\u304c\u51fa\u3066\u304d\u307e\u3059":9,"\u3068\u3044\u3063\u305f\u95a2\u6570\u304c\u3042\u308a\u307e\u3059":5,"\u3068\u3044\u3063\u305f\u968e\u5c64\u306b\u5165\u3063\u3066\u3044\u308b":24,"\u3068\u3044\u3063\u305f\u9805\u306f":7,"\u3068\u304b\u3051\u308b":17,"\u3068\u304b\u3051\u308b\u5834\u5408\u3092\u8003\u3048\u308b":12,"\u3068\u304b\u3067\u3082ok":5,"\u3068\u304d\u3060\u3051\u7279\u5b9a\u306e\u4f5c\u696d\u3092\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304f\u3053\u3068\u304c\u51fa\u6765\u307e\u3059":2,"\u3068\u304d\u306b":21,"\u3068\u304d\u306f\u8ee2\u7f6e":22,"\u3068\u304f\u306b":[5,14,22,24,25],"\u3068\u304f\u306b1":13,"\u3068\u304f\u306b\u30ac\u30a6\u30b9\u904e\u7a0b\u306e\u90e8\u5206":11,"\u3068\u304f\u306b\u4e00\u3064\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u8907\u6570\u7d75\u3092\u63cf\u304f\u3068\u304d\u306f\u3053\u308c\u3092\u66f8\u304d\u307e\u3057\u3087\u3046":5,"\u3068\u304f\u306b\u5024\u3092\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u3053\u306e\u5024\u304c\u9078\u3070\u308c\u308b":4,"\u3068\u304f\u306b\u62e1\u5f35\u6a5f\u80fd\u304c\u4fbf\u5229\u3067":21,"\u3068\u304f\u306b\u8af8\u5b9a\u7406\u306e\u8a3c\u660e\u306b\u3064\u3044\u3066\u306f":19,"\u3068\u304f\u306b\uff12\u7ae0\u306f\u91cd\u8981\u306a\u6982\u5ff5\u304c\u76db\u308a\u3060\u304f\u3055\u3093\u306a\u306e\u3067":25,"\u3068\u304f\u306bgoogl":2,"\u3068\u304f\u306bpython\u306e\u4e2d\u3067\u306e\u6587\u5b57\u30b3\u30fc\u30c9\u306e\u6307\u5b9a\u306b\u76f8\u5f53\u3059\u308b\u30b3\u30fc\u30c9\u3092":21,"\u3068\u304f\u306bubuntu":24,"\u3068\u304f\u306bwindows\u306e\u5834\u5408":[23,24],"\u3068\u3057\u305f\u30b0\u30e9\u30d5\u3092\u753b\u50cf\u30d5\u30a1\u30a4\u30eb":5,"\u3068\u3057\u3066":3,"\u3068\u3057\u3066\u3044\u308b":21,"\u3068\u3057\u3066\u306e\u5074\u9762\u3084\u6b74\u53f2\u7684\u7d4c\u7def\u304b\u3089":23,"\u3068\u3057\u3066\u3082\u591a\u304f\u306e\u5834\u5408\u3067\u306f\u4e92\u63db\u6027\u304c\u3042\u308b":6,"\u3068\u3057\u3066\u4e0e\u3048\u308b":6,"\u3068\u3057\u3066\u5358\u7d14\u306a\u591a\u9805\u5f0f\u306e\u307f\u3092\u8003\u3048\u308b\u3053\u3068\u306b\u3059\u308b":7,"\u3068\u3057\u3066\u53d6\u5f97\u3057\u305f\u3051\u308c\u3070":18,"\u3068\u3057\u3066\u591a\u9805\u5f0f\u306e\u4fc2\u6570\u306e\u7d76\u5bfe\u5024\u306e2\u4e57\u548c":7,"\u3068\u3057\u3066\u5b9a\u7fa9\u3057\u305f\u308a\u4ee3\u5165\u3057\u3066\u4fdd\u5b58\u3057\u3066\u304a\u304f\u3053\u3068\u3082\u3067\u304d\u308b":2,"\u3068\u3057\u3066\u5b9a\u7fa9\u3057\u3066\u304a\u3051\u3070\u547c\u3073\u51fa\u3057\u3066\u7c21\u5358\u306b\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059":4,"\u3068\u3057\u3066\u6271\u3046":9,"\u3068\u3057\u3066\u6271\u3046\u3053\u3068\u304c\u3067\u304d\u308b":2,"\u3068\u3057\u3066\u6271\u3048\u308b\u304b\u306f\u5f8c\u3067\u898b\u3066\u3044\u304f\u3053\u3068\u306b\u3057\u3066":2,"\u3068\u3057\u3066\u6388\u696d\u3067\u306f\u30b9\u30ad\u30c3\u30d7\u3059\u308b\u304b\u3082":3,"\u3068\u3057\u3066\u77e5\u3089\u308c\u3066\u3044\u307e\u3059":3,"\u3068\u3057\u3066\u77e5\u3089\u308c\u308b":15,"\u3068\u3057\u3066\u77e5\u3089\u308c\u308b\u6c42\u6839\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3092\u7d39\u4ecb\u3059\u308b":15,"\u3068\u3057\u307e\u3059":[3,5,10],"\u3068\u3057\u3088\u3046":16,"\u3068\u3057\u8a08\u7b97\u3057\u305f":19,"\u3068\u3059\u308b":[6,18,25],"\u3068\u3059\u308b\u304b":24,"\u3068\u3059\u308b\u3053\u3068\u3067":16,"\u3068\u3059\u308b\u3068":[3,7,9,17,18,22],"\u3068\u3059\u308b\u30680\u756a\u76ee\u306e\u884c\u30d9\u30af\u30c8\u30eb\u304c\u53d6\u3089\u308c\u3066\u8aa4\u308a\u306b\u306a\u308b\u306e\u3067\u6ce8\u610f":17,"\u3068\u3059\u308b\u3068\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u3057\u793a\u3059\u30d1\u30b9\u306f":9,"\u3068\u3059\u308b\u3068\u30de\u30a4\u30c9\u30e9\u30a4\u30d6":9,"\u3068\u3059\u308b\u3068\u6307\u5b9a\u3057\u305f\u9589\u533a\u9593\u306e\u6574\u6570\u5024\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":6,"\u3068\u3059\u308b\u306e\u3067\u3064\u307e\u308a\u6642\u8a08\u56de\u308a":5,"\u3068\u3059\u308b\u306e\u3068\u7b49\u4fa1":6,"\u3068\u3059\u308b\u5834\u5408":10,"\u3068\u3059\u308b\u7d4c\u904e\u65e5\u6570\u3068\u3057\u3066\u8868\u3059\u3053\u3068\u306b\u3057\u3066":5,"\u3068\u3059\u308c\u3070":[2,12],"\u3068\u3059\u308c\u3070\u3044\u3044\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059":3,"\u3068\u3059\u308c\u3070\u3088\u3044":1,"\u3068\u3059\u308c\u3070\u3088\u3044\u3067\u3059":3,"\u3068\u3059\u308c\u3070\u3088\u3044\u3067\u3059\u3088\u306d":6,"\u3068\u3059\u308c\u3070\u826f\u3044":[1,22],"\u3068\u305d\u306e\u5fae\u5206":10,"\u3068\u3060\u3051\u899a\u3048\u3066\u304a\u3051\u3070\u5f53\u9762\u306fok\u3067\u3059":3,"\u3068\u3067\u3082\u3057\u3066":15,"\u3068\u3067\u3082\u3057\u307e\u3057\u3087\u3046":8,"\u3068\u3067\u3082\u3059\u308c\u3070\u3088\u3044\u3057":22,"\u3068\u3067\u3082\u540d\u524d\u3092\u3064\u3051\u308b\u3053\u3068\u306b\u3057\u3066":10,"\u3068\u3067\u3082\u547c\u3076\u3053\u3068\u306b\u3057\u3066":15,"\u3068\u3067\u3082\u547c\u3076\u3053\u3068\u306b\u3059\u308b\u3068":17,"\u3068\u3067\u4e8c\u4e57\u8aa4\u5dee\u306e\u5024\u81ea\u4f53\u306f\u540c\u3058\u3060\u304c":8,"\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u306d":8,"\u3068\u306a\u3063\u3066\u3044\u308b":[8,16],"\u3068\u306a\u308a":[2,4,6,8,12,16,17,19,22],"\u3068\u306a\u308a\u307e\u3059":[3,24],"\u3068\u306a\u308b":[8,9,12,15,17,19,24],"\u3068\u306a\u308b\u3068":7,"\u3068\u306a\u308b\u3088\u3046\u306a\u89e3":15,"\u3068\u306a\u308b\u3088\u3046\u4e26\u3079\u3089\u308c\u308b":19,"\u3068\u306b\u304b\u304f":25,"\u3068\u306b\u304b\u304f\u6559\u54e1\u306b\u805e\u304f":25,"\u3068\u306b\u304b\u304f\u8a66\u3057\u3066\u307f\u308b":9,"\u3068\u306e\u9593\u306e\u4e8c\u4e57\u8aa4\u5dee":8,"\u3068\u306e\u9f5f\u9f6c":7,"\u3068\u306f\u305b\u3044\u305c\u3044":12,"\u3068\u306f\u5c11\u3057\u6642\u671f\u306b\u30ba\u30ec\u304c\u3042\u308a":7,"\u3068\u307f\u306a\u3057\u6d3b\u7528\u3059\u308b\u305f\u3081\u306b\u306f":21,"\u3068\u307f\u306a\u3059\u3053\u3068\u304c\u51fa\u6765\u308b":16,"\u3068\u3082\u306b\u4e88\u7d04\u8a9e":3,"\u3068\u3082\u547c\u3076":7,"\u3068\u3082\u8a00\u3044\u304b\u3048\u3089\u308c\u308b\u3067\u3057\u3087\u3046":8,"\u3068\u308a\u3042\u3048\u305a\u306f\u4ee5\u4e0b\u3092\u516c\u5f0f\u7684\u306b\u6291\u3048\u3066\u304a\u3051\u3070\u554f\u984c\u306f\u6709\u308a\u307e\u305b\u3093":8,"\u3068\u308a\u3042\u3048\u305a\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u8eab\u3092\u6570\u884c\u8868\u793a\u3057\u3066\u307f\u308b":9,"\u3068\u30b6\u30c3\u30af\u30ea\u7406\u89e3\u3057\u3066\u304a\u3051\u3070\u5f53\u9762\u306f\u554f\u984c\u306a\u3044\u3067\u3057\u3087\u3046":2,"\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u8a2d\u5b9a\u3092\u6c42\u3081\u3089\u308c\u308b\u306e\u3067\u6253\u3061\u8fbc\u3093\u3067enter":23,"\u3068\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u53cc\u65b9\u306e\u7406\u89e3\u3092\u6df1\u3081\u308b\u4e0a\u3067\u975e\u5e38\u306b\u91cd\u8981":7,"\u3068\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u305d\u3053\u3067\u6b62\u307e\u3063\u3066\u3057\u307e\u3044\u307e\u3059":3,"\u3068\u30e2\u30c7\u30eb\u306e\u8907\u96d1\u3055\u306e\u4f4e\u6e1b":7,"\u3068\u30e9\u30d9\u30eb\u7b49":19,"\u3068\u30ea\u30b9\u30c8":4,"\u3068\u4e00\u81f4\u3059\u308b":19,"\u3068\u4e3b\u5f35\u3059\u308b\u306b\u81f3\u3063\u305f":19,"\u3068\u4e8c\u4e57\u8aa4\u5dee":7,"\u3068\u4f53\u91cd":[17,25],"\u3068\u5165\u529b\u3057":24,"\u3068\u5165\u529b\u3057\u305f\u3042\u3068\u306b\u63d0\u6848\u3055\u308c\u305f\u30b3\u30fc\u30c9\u3067\u3042\u308b":21,"\u3068\u5165\u529b\u3057\u30a8\u30f3\u30bf\u30fc\u3092\u62bc\u3059\u3068":24,"\u3068\u5165\u529b\u3057enter\u3092\u62bc\u305b\u3070\u826f\u3044":24,"\u3068\u5171\u5206\u6563":6,"\u3068\u51fa\u308b\u5834\u5408\u306f":1,"\u3068\u5206\u89e3\u3067\u304d\u308b":19,"\u3068\u5408\u308f\u305b\u3066\u78ba\u8a8d\u3057\u3066\u307f\u3088\u3046":18,"\u3068\u540c\u3058\u3053\u3068\u3092":3,"\u3068\u540c\u3058\u50cd\u304d\u3092\u3059\u308b\u306e\u3067":18,"\u3068\u547c\u3070\u308c":4,"\u3068\u547c\u3070\u308c\u308b":9,"\u3068\u547c\u3070\u308c\u308b\u3082\u306e\u304c\u3042\u308a\u307e\u3059":4,"\u3068\u547c\u3070\u308c\u308b\u3082\u306e\u3067\u3059":13,"\u3068\u547c\u3070\u308c\u308b\u3082\u306e\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b":8,"\u3068\u547c\u3070\u308c\u308b\u3082\u306e\u306e\u4e00\u7a2e\u3067\u3059":4,"\u3068\u547c\u3070\u308c\u308b\u3082\u306e\u3092\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":6,"\u3068\u547c\u3070\u308c\u308b\u3082\u306e\u3092\u6307\u5b9a\u3057\u3066\u6271\u3044\u307e\u3059":5,"\u3068\u547c\u3070\u308c\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u8aad\u3080\u5f62\u3067\u5b9f\u88c5\u3055\u308c\u3066\u3044\u308b\u306e\u3067":19,"\u3068\u547c\u3070\u308c\u308b\u624b\u6cd5\u3092\u8003\u3048\u308b":16,"\u3068\u547c\u3073":19,"\u3068\u547c\u3073\u307e\u3059":[3,17],"\u3068\u547c\u3073\u96a0\u308c\u5c64\u304b\u3089\u51fa\u529b\u5c64\u3078\u306e\u4fe1\u53f7\u306e\u4f1d\u64ad\u3092\u5fa9\u53f7\u5316":17,"\u3068\u547c\u3076\u3053\u3068\u306b\u3057\u3088\u3046":23,"\u3068\u547c\u3076\u3053\u3068\u306b\u3059\u308b":[7,8],"\u3068\u547c\u3076\u3053\u3068\u306b\u3059\u308b\u3068":16,"\u3068\u56de\u7b54\u3057\u305f\u65b9\u306b\u8cea\u554f\u3067\u3059":9,"\u3068\u5909\u6570":2,"\u3068\u5b9a\u7fa9\u3059\u308b":[2,8],"\u3068\u5b9f\u884c\u3059\u308b\u3068\u5bfe\u8a71\u30e2\u30fc\u30c9\u3067python\u304c\u958b\u304f":24,"\u3068\u5e73\u57470":12,"\u3068\u5f8c\u308d\u306e1\u306e\u9593\u306b\u5168\u89d2\u30b9\u30da\u30fc\u30b9\u304c\u5165\u3063\u3066\u3044\u308b":14,"\u3068\u601d\u3046":9,"\u3068\u601d\u3046\u304b\u3082\u3057\u308c\u306a\u3044\u304c":7,"\u3068\u601d\u3046\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c":10,"\u3068\u601d\u3063\u305f\u3068\u304d\u306f\u8981\u7d20\u306e":3,"\u3068\u601d\u3063\u305f\u3089":[2,9],"\u3068\u601d\u3063\u305f\u7686\u3055\u3093\u306e\u305f\u3081\u306b":5,"\u3068\u601d\u308f\u308c\u3066\u640d\u3092\u3057\u3066\u3057\u307e\u3046\u304b\u3082\u3057\u308c\u307e\u305b\u3093":5,"\u3068\u611f\u3058\u308b\u4eba\u3082\u3044\u308c\u3070":4,"\u3068\u6253\u3061\u8fbc\u3093\u3067\u5b9f\u884c":23,"\u3068\u6253\u3061\u8fbc\u3093\u3067enter\u3092\u62bc\u3059\u3068":23,"\u3068\u6253\u3063\u305f\u6642\u70b9\u3067\u30bf\u30d6\u3092\u30dd\u30f3\u30dd\u30f3\u3068\u53e9\u304f\u3068":24,"\u3068\u6253\u3064\u3060\u3051\u3067python3":24,"\u3068\u6253\u3064\u306e\u306f\u9762\u5012\u3060\u3057":24,"\u3068\u660e\u793a\u7684\u306bubuntu\u3092\u6307\u5b9a\u3057\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b":23,"\u3068\u66f4\u65b0\u3059\u308b":8,"\u3068\u66f8\u3044\u3066\u3057\u307e\u3046\u3068":3,"\u3068\u66f8\u3044\u3066\u3082\u540c\u3058\u7d50\u679c\u304c\u5f97\u3089\u308c\u308b":2,"\u3068\u66f8\u304d\u76f4\u305b\u308b\u306e\u3067":7,"\u3068\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u308b":17,"\u3068\u66f8\u304f\u3053\u3068\u304c\u51fa\u6765\u308b":[7,16],"\u3068\u66f8\u304f\u3053\u3068\u306b\u3059\u308b\u3068":[8,10,12],"\u3068\u66f8\u304f\u306e\u3067\u306f\u306a\u304f":3,"\u3068\u66f8\u3051\u308b":7,"\u3068\u677e\u7530\u9078\u624b":3,"\u3068\u691c\u7d22\u3059\u308b\u3068":6,"\u3068\u6a5f\u68b0\u306b\u6559\u3048\u306a\u304f\u3066\u306f\u306a\u3089\u306a\u3044":9,"\u3068\u6c17\u304c\u3064\u304f\u304c":7,"\u3068\u6c17\u304c\u3064\u304f\u3053\u3068\u304c\u51fa\u6765\u308b":7,"\u3068\u70b92":4,"\u3068\u7406\u89e3\u3067\u304d\u308c\u3070\u554f\u984c\u306f\u6709\u308a\u307e\u305b\u3093":6,"\u3068\u76ee\u7684\u5909\u6570":5,"\u3068\u7b49\u4fa1\u3067\u3042\u308b":12,"\u3068\u7d04\u675f\u3092\u3057\u3088\u3046":2,"\u3068\u7f6e\u304d\u63db\u3048\u308c\u3070":16,"\u3068\u8003\u3048\u308b\u3053\u3068\u3082\u3067\u304d\u308b":7,"\u3068\u8868\u3059\u3053\u3068\u306b\u3057\u3066\u304a\u3053\u3046":12,"\u3068\u8868\u8a18":0,"\u3068\u898b\u306a\u305b\u308b\u3088\u3046\u306b":19,"\u3068\u89b3\u6e2c\u5024":8,"\u3068\u89e3\u91c8\u3055\u308c\u5b9f\u884c\u304c\u8a66\u884c\u3055\u308c\u307e\u3059\u304c":4,"\u3068\u8a00\u3044\u63db\u3048\u3089\u308c\u308b":8,"\u3068\u8a00\u3046":7,"\u3068\u8a00\u3046\u306d":19,"\u3068\u8a00\u3046\u5834\u5408\u306f":5,"\u3068\u8a00\u3048\u308b":17,"\u3068\u8a00\u3063\u305f\u308a\u3082\u3059\u308b":7,"\u3068\u8a00\u3063\u3066\u3044\u308b\u3060\u3051\u3060":19,"\u3068\u8a00\u3063\u3066\u3044\u308b\u3088\u3046\u306a\u3082\u306e\u3067\u5927\u5909\u6065\u305a\u304b\u3057\u3044\u601d\u3044\u3092\u3057\u307e\u3059":5,"\u3068\u8a00\u308f\u308c\u308b\u3068\u3075\u3080\u3075\u3080\u3068\u611f\u3058\u308b\u4e00\u65b9\u3067":7,"\u3068\u8a00\u308f\u308c\u308b\u306e\u3067\u3082\u3046\u4e00\u5ea6":23,"\u3068\u8a08\u7b97\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f":10,"\u3068\u8a2d\u5b9a":5,"\u3068\u904e\u53bb\u306e\u30b9\u30c6\u30c3\u30d7\u306e\u60c5\u5831\u306e\u307f\u3092\u4f7f\u7528\u3057\u305f\u304c":16,"\u3068\u95a2\u6570\u3092\u4f8b\u306b\u8aac\u660e\u3057\u307e\u3057\u305f\u304c":4,"\u3068\u9650\u5b9a\u3057\u305f\u306e\u306f":8,"\u3068\u9806\u306b\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u5b9f\u884c\u3059\u308b":24,"\u3068fals":3,"\u3068linux\u30b7\u30b9\u30c6\u30e0\u7528\u306eusername\u3092\u6c42\u3081\u3089\u308c\u308b\u306e\u3067":23,"\u3069\u3046\u3044\u3063\u305f\u8a08\u7b97\u3092\u3059\u308b\u306e\u304b":2,"\u3069\u3046\u3057\u3066\u3082\u5186\u30b0\u30e9\u30d5\u304c\u63cf\u304d\u305f\u3044\u65b9\u3078":5,"\u3069\u3053\u304b\u306b":24,"\u3069\u3053\u304b\u306b\u63a7\u3048\u3066\u304a\u304f":13,"\u3069\u3053\u304b\u306e\u5927\u5b66\u306e\u6559\u52d9\u30dd\u30fc\u30bf\u30eb\u307f\u305f\u3044\u306b\u843d\u3061\u3066\u3057\u307e\u3063\u305f\u3089\u5927\u5909\u3067\u3059":13,"\u3069\u3053\u304b\u3089\u3069\u3053\u307e\u3067\u306e\u533a\u9593\u306e\u9762\u7a4d\u304c\u5168\u4f53\u306b\u5360\u3081\u308b\u5272\u5408\u304c\u4f55":6,"\u3069\u3053\u304b\u3089\u3069\u3053\u307e\u3067\u3092\u62bd\u51fa\u3059\u308b\u304b\u3092\u6307\u5b9a\u3059\u308b":6,"\u3069\u3053\u304c\u304a\u304b\u3057\u3044\u306e\u304b\u5206\u304b\u3089\u306a\u3044\u306e\u3067":3,"\u3069\u3053\u3067\u30eb\u30fc\u30d7\u3092\u9589\u3058\u308b\u306e\u304b\u3092\u30b3\u30e1\u30f3\u30c8\u3057\u3066\u304a\u304f\u3068\u826f\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093":3,"\u3069\u3053\u307e\u3067\u304c\u3069\u306e\u30b0\u30e9\u30d5\u306e\u305f\u3081\u306e\u6307\u793a\u304b\u308f\u304b\u3089\u305a":5,"\u3069\u3061\u3089\u304b\u3068\u3044\u3046\u3068\u5f97\u610f":9,"\u3069\u3061\u3089\u306b\u3082\u8208\u5473\u304c\u3042\u308b":5,"\u3069\u3061\u3089\u3092\u597d\u3080\u304b\u306f":3,"\u3069\u306e\u3088\u3046\u306a\u3082\u306e\u304c":2,"\u3069\u306e\u3088\u3046\u306a\u521d\u671f\u5024\u3092\u63a1\u7528\u3059\u308b\u3079\u304d\u304b\u306b\u95a2\u3057\u3066\u3082":10,"\u3069\u306e\u30c6\u30ad\u30b9\u30c8":9,"\u3069\u306e\u5909\u6570\u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\u306e\u304b\u3092\u660e\u793a\u7684\u306b\u3059\u308b\u305f\u3081":4,"\u3069\u306epython\u74b0\u5883\u3067\u5b9f\u884c\u3059\u308b\u304b\u3092\u9078\u629e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b":21,"\u3069\u308c\u307b\u3069\u306e":7,"\u3069\u3093\u3069\u3093\u30b0\u30e9\u30d5\u3092\u69cb\u6210\u3059\u308b\u8981\u7d20\u3092\u8db3\u3057\u306a\u304c\u3089":5,"\u3069\u3093\u3069\u3093\u4f7f\u3063\u3066\u307f\u3066":3,"\u3069\u3093\u306a":9,"\u3069\u3093\u306a\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b\u304b\u3092ls\u30b3\u30de\u30f3\u30c9\u3067\u78ba\u8a8d\u3057\u3066\u3044\u308b":9,"\u3069\u3093\u306a\u5f62\u72b6\u306emarker\u304c\u4f7f\u3048\u308b\u304b\u8abf\u3079\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u306a\u3044\u3057":0,"\u306a\u3044\u3057\uff12\u540d\u30da\u30a2":25,"\u306a\u304a\u304b\u3064\u5fae\u5206\u306e\u5024\u306f\u3069\u3053\u306e\u5834\u6240":8,"\u306a\u304b\u306a\u304b\u52b9\u7387\u7684\u306b":8,"\u306a\u304b\u306a\u304b\u52c9\u5f37\u3059\u308b\u30e2\u30c1\u30d9\u30fc\u30b7\u30e7\u30f3\u304c\u308f\u304b\u306a\u304b\u3063\u305f":19,"\u306a\u304b\u306a\u304b\u66f4\u65b0\u304c\u9032\u307e\u305a":8,"\u306a\u304b\u306a\u304b\u6700\u9069\u89e3\u306b\u305f\u3069\u308a\u7740\u304b\u306a\u3044":8,"\u306a\u304b\u306a\u304b\u8c37\u306e\u5e95\u306b\u843d\u3061\u8fbc\u307e\u306a\u3044":8,"\u306a\u3051\u308c\u3070":24,"\u306a\u3051\u308c\u3070\u6240\u611f\u306e\u307f\u3067ok":25,"\u306a\u305c\u306a\u3089":19,"\u306a\u305c\u306a\u3089\u958b\u767a\u8005\u304c\u4f5c\u3063\u3066\u3093\u3060\u304b\u3089":5,"\u306a\u305c\u4f4e\u30e9\u30f3\u30af\u8fd1\u4f3c\u3092\u8003\u3048\u308b\u306e\u304b\u3042\u307e\u308a\u30d4\u30f3\u3068\u3053\u306a\u3044\u3060\u308d\u3046":19,"\u306a\u305c\u6a19\u6e96\u5316\u304c\u5fc5\u8981\u306a\u306e\u304b\u306f":10,"\u306a\u305crelu\u304c\u3088\u304f\u4f7f\u308f\u308c\u308b\u69d8\u306b\u306a\u3063\u305f\u304b\u3068\u8a00\u3046\u3068":10,"\u306a\u3069\u304b\u3089\u4e0b\u8a18\u306e\u64cd\u4f5c\u3092\u884c\u3063\u3066\u307f\u307e\u3057\u3087\u3046":1,"\u306a\u3069\u304c\u3042\u308a":9,"\u306a\u3069\u304c\u3042\u308a\u307e\u3059":[10,14],"\u306a\u3069\u304c\u3053\u308c\u306b\u3042\u3066\u306f\u307e\u308b":8,"\u306a\u3069\u304c\u8003\u3048\u3089\u308c\u308b":8,"\u306a\u3069\u3057\u3066":24,"\u306a\u3069\u3067":21,"\u306a\u3069\u3067\u3042\u308b\u7a0b\u5ea6\u99b4\u67d3\u307f\u304c\u3042\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093":3,"\u306a\u3069\u3067\u691c\u7d22\u3057\u3066\u307f\u3088\u3046":21,"\u306a\u3069\u3067\u691c\u7d22\u3059\u308b\u3068":21,"\u306a\u3069\u3068\u3044\u3046\u8868\u793a\u304c\u3067\u308b\u306e\u3067python\u3068\u6253\u3061":21,"\u306a\u3069\u3068\u3057\u3066":[9,21,23],"\u306a\u3069\u3068\u3057\u3066\u3082\u3088\u3044":18,"\u306a\u3069\u3068\u3057\u3066\u3082\u826f\u3044":22,"\u306a\u3069\u3068\u3057\u3066\u4f7f\u3046\u306e\u3082\u4fbf\u5229\u3067\u3059":9,"\u306a\u3069\u3068\u3057\u3066\u540d\u524d\u3092\u3064\u3051\u306a\u304f\u3066\u3082\u4f7f\u3048\u308b":4,"\u306a\u3069\u3068\u3057\u307e\u3057\u305f\u304c":23,"\u306a\u3069\u3068\u3057\u307e\u3059":5,"\u306a\u3069\u3068\u3059\u308b":[3,9,18,21,24],"\u306a\u3069\u3068\u3059\u308b\u3068":[6,24],"\u306a\u3069\u3068\u3059\u308c\u3070":4,"\u306a\u3069\u3068\u3059\u308c\u3070\u3088\u3044":[6,18],"\u306a\u3069\u3068\u3059\u308c\u3070\u826f\u3044":[1,9,24],"\u306a\u3069\u3068\u3084\u3063\u3066\u30a6\u30a3\u30f3\u30c9\u30a6\u304c\u8868\u793a\u3055\u308c\u308c\u3070ok":24,"\u306a\u3069\u3068\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\u3057\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u5834\u5408\u3082\u3042\u308b\u306e\u3067\u6ce8\u610f\u3059\u308b\u3053\u3068":21,"\u306a\u3069\u3068\u5165\u529b\u3059\u308b\u306e\u304c\u9762\u5012\u306a\u3089":21,"\u306a\u3069\u3068\u5909\u66f4\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067\u6ce8\u610f":24,"\u306a\u3069\u3068\u5f15\u6570\u306b\u5165\u529b\u3057\u307e\u3059":4,"\u306a\u3069\u3068\u6253\u3061\u8fbc\u3093\u3067\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046":23,"\u306a\u3069\u3068\u6253\u3063\u3066":24,"\u306a\u3069\u3068\u6253\u3064\u3068":21,"\u306a\u3069\u3068\u6559\u3048\u3066\u3082\u3089\u3048\u308b\u3068\u30b9\u30e0\u30fc\u30ba\u306a\u5bfe\u5fdc\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059":25,"\u306a\u3069\u3068\u65b0\u305f\u306b\u8a2d\u554f\u3092\u5897\u3084\u3057\u3066\u30a2\u30f3\u30b1\u30fc\u30c8\u3092\u3084\u308a\u76f4\u3059\u3068\u3044\u3046\u306e\u306f\u5f97\u7b56\u3067\u306f\u6709\u308a\u307e\u305b\u3093":9,"\u306a\u3069\u3068\u66f8\u3044\u3066\u304a\u3051\u3070":24,"\u306a\u3069\u3068\u66f8\u304f\u306e\u306f\u9762\u5012\u3067\u3059":4,"\u306a\u3069\u3068\u691c\u7d22\u3057\u305f\u306e\u3061":21,"\u306a\u3069\u3068\u691c\u7d22\u3059\u308b\u3068\u51fa\u3066\u304f\u308b":23,"\u306a\u3069\u3068\u6975\u7aef\u306a\u4e3b\u5f35\u3092\u3059\u308b\u4eba\u304c\u6570\u591a\u304f\u73fe\u308c\u305f":7,"\u306a\u3069\u3068\u7f6e\u304d\u63db\u3048\u308b":24,"\u306a\u3069\u3068\u8868\u793a\u3055\u305b\u3088":25,"\u306a\u3069\u3068\u8868\u793a\u3055\u308c\u308b":9,"\u306a\u3069\u3068\u8868\u8a18":0,"\u306a\u3069\u3068\u9055\u3044":6,"\u306a\u3069\u306a\u3069":[1,17],"\u306a\u3069\u306b\u4f7f\u3044\u307e\u3059":3,"\u306a\u3069\u306b\u5f37\u304f\u4f9d\u5b58\u3057\u307e\u3059":10,"\u306a\u3069\u306e":24,"\u306a\u3069\u306e\u3088\u3046\u306b":3,"\u306a\u3069\u306e\u30a8\u30c7\u30a3\u30bf\u306b\u6163\u308c\u3066\u3044\u306a\u3044\u3046\u3061\u306f":24,"\u306a\u3069\u306e\u57fa\u672c\u7684\u306a\u95a2\u6570\u306e\u4f7f\u3044\u65b9\u304c\u308f\u304b\u308b":25,"\u306a\u3069\u306e\u6587\u5b57\u5217\u306e\u30ea\u30b9\u30c8\u306b\u5bfe\u3057\u3066":9,"\u306a\u3069\u306e\u8a18\u53f7\u3082\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u306a\u3044":2,"\u306a\u3069\u306e\u95a2\u6570\u306f":4,"\u306a\u3069\u306elinux":1,"\u306a\u3069\u306f":[3,9],"\u306a\u3069\u306f\u66f8\u3044\u3066\u3082\u66f8\u304b\u306a\u304f\u3066\u3082\u306a\u304f\u3066\u3082ok\u3067\u3059\u304c":4,"\u306a\u3069\u306fpython\u306b\u5099\u3048\u4ed8\u3051\u3089\u308c\u305f":4,"\u306a\u3069\u30820\u304b\u3089\u30ab\u30a6\u30f3\u30c8\u3057\u307e\u3059":3,"\u306a\u3069\u3092":24,"\u306a\u3069\u3092\u30a4\u30e1\u30fc\u30b8\u3057\u3088\u3046":6,"\u306a\u3069\u3092\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059":5,"\u306a\u3069\u3092\u5b9f\u884c\u3057\u3066\u307f\u3088\u3046":24,"\u306a\u3069\u3092\u5b9f\u884c\u3057\u307e\u3059":23,"\u306a\u3069\u3092\u5b9f\u884c\u3057\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u7b49\u3092\u884c\u3063\u305f\u5f8c":24,"\u306a\u3069\u3092\u5b9f\u884c\u3059\u308b":24,"\u306a\u3069\u3092\u5b9f\u884c\u3059\u308c\u3070\u3088\u3044":24,"\u306a\u3069\u3092\u7528\u3044\u308c\u3070":18,"\u306a\u3069\u3092\u898b\u3066":25,"\u306a\u3069\u3092\u8aac\u660e\u3059\u308b\u3053\u3068\u306b\u306a\u308b\u305f\u3081":9,"\u306a\u3069\u3092\u9069\u5b9c\u7701\u7565\u3059\u308b":12,"\u306a\u3069\u30b3\u30e1\u30f3\u30c8\u3092\u9010\u4e00\u66f8\u3044\u3066\u304a\u304f\u306e\u3082\u826f\u3044":2,"\u306a\u3069\u5b9f\u884c\u3059\u308b\u30bd\u30fc\u30b9\u306e":24,"\u306a\u3069\u6700\u9069\u5316\u3055\u308c\u305f\u7dda\u5f62\u8a08\u7b97\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3067\u304d\u308b\u305f\u3081python\u306e\u66f8\u304d\u3084\u3059\u3055\u3092\u7dad\u6301\u3057\u305f\u307e\u307e":22,"\u306a\u306b\u304b\u56f0\u3063\u305f\u3068\u304d\u306b\u4e00\u756a\u983c\u308a\u306b\u306a\u308b\u306e\u306f\u5927\u5143\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u4ee5\u5916\u3042\u308a\u3048\u306a\u3044":5,"\u306a\u306b\u304b\u5b9a\u7fa9\u304c\u5fc5\u8981\u3067\u3042\u308b":19,"\u306a\u306e\u3067":9,"\u306a\u3089\u6700\u5927\u5024":8,"\u306a\u3089\u6700\u5c0f\u5024":8,"\u306a\u3089weight":6,"\u306a\u308b\u3079\u304f\u8907\u96d1\u3059\u304e\u306a\u3044\u95a2\u6570\u304c\u9078\u3070\u308c\u308b\u3088\u3046\u52d8\u5b9a\u3059\u308b\u3053\u3068\u3092\u8003\u3048\u308b":7,"\u306a\u308c\u3066\u304a\u3044\u3066\u304f\u3060\u3055\u3044":3,"\u306a\u308c\u306a\u3044\u3046\u3061\u306f":2,"\u306a\u3093\u304b\u3078\u3093\u3060\u306a":3,"\u306a\u3093\u3060\u3053\u306e\u7a0b\u5ea6\u306e\u30b0\u30e9\u30d5\u306a\u3089excel\u3067\u3082\u7c21\u5358\u306b\u3067\u304d\u308b\u3058\u3083\u3093":5,"\u306a\u3093\u3066\u306e\u304c\u3042\u308b":3,"\u306a\u3093\u3068\u306a\u304f\u3053\u306e\u3042\u305f\u308a\u3092\u63a2\u7d22\u3057\u3088\u3046\u304b\u306a":11,"\u306a\u3093\u306b\u3082\u3057\u306a\u304f\u3066\u3044\u3044\u306e":3,"\u306a\u3093\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u66f8\u304b\u308c\u305f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306a\u306e\u304b\u3092\u63a8\u5b9a\u3057\u3066":21,"\u306a\u3093\u3089\u304b\u306e\u51e6\u74061":3,"\u306a\u3093\u3089\u304b\u306e\u51e6\u74062":3,"\u306a\u30ea\u30b9\u30c8\u3068\u899a\u3048\u3066\u304a\u3051\u3070\u3088\u3044\u3067\u3057\u3087\u3046":3,"\u306a\u5834\u5408":11,"\u306a\u5b9f\u88c5\u306f":9,"\u306a\u64cd\u4f5c\u306b\u3064\u3044\u3066\u306fcui\u306b\u8ecd\u914d\u304c\u6319\u304c\u308a\u307e\u3059":23,"\u306a\u95a2\u6570\u3060\u3068":8,"\u306b\u3042\u308a\u307e\u3059":1,"\u306b\u3042\u308b":[9,19],"\u306b\u3044\u308b\u3068\u3057\u3066":8,"\u306b\u3044\u308c\u3066\u304a\u304d\u307e\u3059":9,"\u306b\u304a\u3051\u308b\u6700\u826f\u306e\u8fd1\u4f3c\u3092\u4e0e\u3048\u308b\u3053\u3068\u304c\u77e5\u3089\u308c\u3066\u3044\u308b":19,"\u306b\u304a\u3051\u308bconvention\u306e\u9055\u3044\u306a\u3069\u306b\u7531\u6765\u3057\u3066\u3044\u308b":17,"\u306b\u304b\u3051\u3066\u307f\u308b\u3068":22,"\u306b\u3057\u305f\u3082\u306e\u3092\u516c\u958b\u3057\u307e\u3057\u305f":5,"\u306b\u3057\u3066\u5b9f\u884c\u3059\u308b\u3068\u30af\u30e9\u30c3\u30b7\u30e5\u3059\u308b":6,"\u306b\u3059\u308b\u304b":6,"\u306b\u3059\u308b\u3053\u3068\u3067":9,"\u306b\u3059\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u307e\u3057\u3087\u3046":5,"\u306b\u305d\u3053\u305d\u3053\u8fd1\u3044\u3082\u306e\u304c\u5f97\u3089\u308c\u3066\u3044\u308b":11,"\u306b\u305d\u306e\u5909\u6570\u304c\u672a\u5b9a\u7fa9\u3068\u306a\u308a\u52d5\u304b\u306a\u304f\u306a\u308b":14,"\u306b\u305d\u308c\u305e\u308c\u4ee3\u5165\u3057\u305f\uff12\u3064\u306e\u6587\u5b57\u5217\u3092\u9023\u7d50\u3057\u305f\u4e00\u3064\u306e\u6587\u5b57\u5217\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":2,"\u306b\u3064\u3044\u3066":[16,22,25],"\u306b\u3064\u3044\u3066\u306e\u5fae\u5206\u306f\u3082\u3061\u308d\u3093":8,"\u306b\u3064\u3044\u3066\u306e\u95a2\u6570":6,"\u306b\u3064\u3044\u3066\u306f\u6700\u9069\u5316\u306e\u7ae0\u3092\u53c2\u7167":11,"\u306b\u3064\u3044\u3066\u5186\u306e\u9762\u7a4d\u3068\u7403\u306e\u4f53\u7a4d\u3092\u8a08\u7b97\u3059\u308b\u81ea\u4f5c\u95a2\u6570\u3092\u4f5c\u6210\u305b\u3088":25,"\u306b\u3064\u3044\u3066\u65b9\u7a0b\u5f0f":7,"\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059":22,"\u306b\u3064\u3044\u3066\u8aac\u660e\u3059\u308b":19,"\u306b\u3064\u3044\u3066\u95a2\u6570":8,"\u306b\u3067\u304d\u308b\u3060\u3051\u4e00\u81f4\u3059\u308b\u3088\u3046\u5b66\u7fd2\u3055\u305b\u308b\u3068\u3044\u3046\u3053\u3068\u3092\u8003\u3048\u307e\u3059":17,"\u306b\u306a\u304a\u3057\u3066\u307f\u3088\u3046":6,"\u306b\u306a\u3063\u305f\u306e\u3067sqrt\u304c\u8a08\u7b97\u3067\u304d\u307e\u305b\u3093":3,"\u306b\u306a\u3063\u3066\u3044\u3066":16,"\u306b\u306a\u3063\u3066\u3044\u306a\u304b\u3063\u305f\u308a":5,"\u306b\u306a\u3063\u3066\u3044\u308b":8,"\u306b\u306a\u3063\u3066\u3044\u308b\u30c7\u30fc\u30bf\u3060\u3051\u3092\u30d4\u30c3\u30af\u30a2\u30c3\u30d7\u3057\u3066":13,"\u306b\u306a\u308a\u307e\u3059":6,"\u306b\u306a\u308b":[2,8],"\u306b\u306a\u308b\u3053\u3068\u304c\u308f\u304b\u308b":19,"\u306b\u306a\u308b\u306e\u3067\u826f\u3044\u304b\u3082\u3057\u308c\u306a\u3044":25,"\u306b\u306f\u3053\u306e\u6a5f\u80fd\u304c\u5099\u308f\u3063\u3066\u3044\u307e\u3059":22,"\u306b\u306f\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8\u3068\u547c\u3070\u308c\u308b\u6a5f\u80fd\u304c\u5099\u308f\u3063\u3066\u3044\u3066":22,"\u306b\u306f\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8\u6a5f\u80fd":7,"\u306b\u306f\u76f8\u95a2\u4fc2\u6570\u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570":7,"\u306b\u3088\u3063\u3066\u305d\u308c\u304c\u5897\u5e45\u3055\u308c\u308b\u305f\u3081":8,"\u306b\u3088\u3063\u3066\u6c7a\u307e\u3063\u3066\u3044\u308b\u8a33\u3067\u306f\u306a\u3055\u305d\u3046\u306a\u5370\u8c61\u3092\u53d7\u3051\u308b":7,"\u306b\u3088\u3063\u3066\u7279\u5fb4\u3065\u3051\u3089\u308c\u307e\u3059":6,"\u306b\u3088\u308a\u4eba\u9593\u5074\u306e\u64cd\u4f5c\u304c\u5897\u3048\u3066":9,"\u306b\u3088\u308b\u30eb\u30fc\u30d7\u51e6\u7406\u304c\u308f\u304b\u308b":25,"\u306b\u3089\u3081\u3063\u3053\u3059\u308b\u305f\u3081\u306b\u5f0f\u3092\u518d\u63b2":7,"\u306b\u30a2\u30af\u30bb\u30b9\u3057":24,"\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3088\u3046\u3068\u3059\u308b\u3068":3,"\u306b\u30a2\u30f3\u30b1\u30fc\u30c8\u3092\u56de\u7b54\u3057\u305f\u591c\u578b":9,"\u306b\u30c1\u30a7\u30c3\u30af\u3092\u5165\u308c\u3066\u6709\u52b9\u5316\u3059\u308b":24,"\u306b\u4ee3\u5165\u3055\u308c\u305f\u5024\u3092\u7528\u3044\u3066\u8a08\u7b97\u304c\u884c\u308f\u308c\u308b\u306e\u3067":2,"\u306b\u4ee5\u4e0b\u306e\u5024\u3092\u4ee3\u5165\u3057\u3066":2,"\u306b\u4f3c\u305f\u3082\u306e\u3068\u3057\u3066":3,"\u306b\u4f9d\u5b58\u3057\u3066\u3082\u826f\u3044\u304c":16,"\u306b\u4fdd\u5b58\u3055\u308c\u308b":24,"\u306b\u5024\u304c\u4ee3\u5165\u3055\u308c":2,"\u306b\u52a0\u3048\u3066":16,"\u306b\u5404\u70b9\u3067\u306e\u95a2\u6570":22,"\u306b\u56fa\u6709\u306e\u540d\u524d":2,"\u306b\u5909\u66f4":25,"\u306b\u5909\u66f4\u3059\u308b":25,"\u306b\u5927\u304d\u306a\u4e0d\u5229\u76ca\u3092\u3082\u305f\u3089\u3059\u304b\u3082\u3057\u308c\u306a\u3044":17,"\u306b\u5bfe\u3057":16,"\u306b\u5bfe\u3057\u3066":[9,16,19],"\u306b\u5bfe\u3057\u3066\u5178\u578b\u7684\u306b\u306f":19,"\u306b\u5bfe\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u305f\u95a2\u6570\u306b\u306a\u3063\u3066\u3044\u308b":4,"\u306b\u5bfe\u3057\u3066\u884c\u3063\u3066":17,"\u306b\u5bfe\u3057\u3066\u8ddd\u96e2\u3092\u8a08\u7b97\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u308b":4,"\u306b\u5bfe\u3059\u308b":5,"\u306b\u5bfe\u3059\u308b\u30b3\u30ed\u30ca\u30a6\u30a4\u30eb\u30b9\u611f\u67d3\u8005":5,"\u306b\u5bfe\u3059\u308b\u4f9d\u5b58\u6027\u304c\u5f37\u304f\u306a\u3063\u3066\u3057\u307e\u3046":8,"\u306b\u5bfe\u3059\u308b\u5f0f\u3068\u3057\u3066\u66f8\u304d\u4e0b\u3059\u3053\u3068\u306f\u3067\u304d\u306a\u3044":8,"\u306b\u5bfe\u3059\u308b\u5f97\u610f":9,"\u306b\u5bfe\u3059\u308b\u5fae\u5206\u306f":8,"\u306b\u5bfe\u3059\u308b\u5fae\u5206\u306f1":8,"\u306b\u5bfe\u3059\u308b\u6709\u9650\u533a\u9593\u3067\u306e\u7a4d\u5206\u3092\u89e3\u6790\u7684\u306b\u6c42\u3081\u308b\u3053\u3068\u306f\u3067\u304d\u305a":6,"\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b":13,"\u306b\u5c11\u3057\u89e6\u308c\u3066\u304a\u304d\u307e\u3059":6,"\u306b\u5c5e\u3059\u308b\u56fa\u6709\u30d9\u30af\u30c8\u30eb\u3092\u7b2c1\u4e3b\u6210\u5206\u30d9\u30af\u30c8\u30eb\u3068\u547c\u3076":17,"\u306b\u5e30\u7740\u3055\u308c\u308b":8,"\u306b\u5e30\u7740\u3055\u308c\u308b\u3053\u3068\u304c\u308f\u304b\u308b":17,"\u306b\u5f93\u3063\u3066\u9069\u5f53\u306a\u30ad\u30fc\u3092\u62bc\u3059":23,"\u306b\u5fc5\u8981\u306a\u5f15\u6570":4,"\u306b\u62e1\u5f35\u3057\u3066\u307f\u3088\u3046":12,"\u306b\u62e1\u5f35\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b":15,"\u306b\u6574\u5f62\u3057\u3066\u304a\u3051\u3070":9,"\u306b\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308b":9,"\u306b\u683c\u7d0d\u3057\u305f\u30c7\u30fc\u30bf\u3092\u3082\u3046\u5c11\u3057\u6271\u3044\u3084\u3059\u3044\u3088\u3046\u306b\u5909\u66f4\u3057\u3088\u3046":9,"\u306b\u683c\u7d0d\u3057\u307e\u3059":5,"\u306b\u6bd4\u4f8b\u3057\u3066\u3044\u307e\u3059":10,"\u306b\u6bd4\u4f8b\u3059\u308b\u3053\u3068\u304b\u3089\u307b\u3068\u3093\u3069\u81ea\u660e\u3060\u304c":12,"\u306b\u6c17\u3092\u914d\u3063\u3066\u307f\u308b\u306e\u3082\u91cd\u8981\u3067\u3059":3,"\u306b\u7279\u5b9a\u306e\u5024\u3092\u4ee3\u5165\u3059\u308c\u3070\u597d\u304d\u306a\u70b9\u3067\u306e\u5fae\u5206\u306e\u5024":8,"\u306b\u751f\u6210\u3055\u308c\u305f\u6587\u5b57\u5217\u3092":13,"\u306b\u76f8\u5f53\u3057\u307e\u3059":[3,5,23],"\u306b\u7740\u76ee\u3059\u308c\u3070":8,"\u306b\u7acb\u3063\u3066\u3044\u3066":6,"\u306b\u7d5e\u3063\u3066\u305d\u306e\u30a8\u30c3\u30bb\u30f3\u30b9\u3092\u7d39\u4ecb\u3059\u308b":13,"\u306b\u7f6e\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044":3,"\u306b\u7f6e\u304d\u63db\u3048\u3066\u3057\u307e\u3046\u306e\u3082\u826f\u3044":21,"\u306b\u7f6e\u304d\u63db\u3048\u3066\u8a66\u3057\u3066\u307f\u3088\u3046":6,"\u306b\u7f6e\u304d\u63db\u3048\u3066\u8aad\u3093\u3067\u307b\u3057\u3044":21,"\u306b\u7f6e\u63db\u3057\u305f\u30c6\u30ad\u30b9\u30c8\u3092\u4f5c\u6210\u3057\u3066":9,"\u306b\u8208\u5473\u304c\u3042\u308b\u5834\u5408\u306b\u306f":5,"\u306b\u884c\u5217\u6f14\u7b97\u3092\u542b\u3080\u5834\u5408\u306a\u3069":16,"\u306b\u8868\u793a\u3057\u3066\u304f\u308c\u308b":18,"\u306b\u8a2d\u5b9a\u3059\u308b":10,"\u306b\u8b72\u308b":11,"\u306b\u8fd1\u3044\u6982\u5ff5\u3060\u3068\u601d\u3063\u3066\u304f\u3060\u3055\u3044":2,"\u306b\u8fd1\u3065\u304f\u306b\u3064\u308c\u5f37\u3044\u6b63":7,"\u306b\u901a\u5e38\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u3066":9,"\u306b\u9077\u79fb":13,"\u306b\u9077\u79fb\u3059\u308b":13,"\u306b\u95a2\u3057\u3066":[9,10],"\u306b\u95a2\u3057\u3066\u8aac\u660e\u3059\u308b":7,"\u306b\u95a2\u3059\u308b\u30eb\u30fc\u30d7\u3092\u56de\u3059\u3060\u3051":7,"\u306b\u95a2\u3059\u308b\u30eb\u30fc\u30d7\u3092\uff12\u56de\u7e70\u308a\u8fd4\u3057\u307e\u3059":3,"\u306b\u95a2\u3059\u308b\u7e70\u308a\u8fd4\u3057":3,"\u306b\u9650\u3089\u306a\u3044":6,"\u306e13\u56de\u3067\u3057\u305f":3,"\u306e1\u3064\u3081\u306e\u753b\u50cf\u306e\u63d0\u6848":21,"\u306e2\u3064\u304c\u3042\u308b":17,"\u306e2\u3064\u306e\u91cf\u306b\u3088\u3063\u3066\u3053\u306e\u96c6\u56e3\u306e\u30c7\u30fc\u30bf\u3092\u8868\u73fe\u3057\u3066\u3044\u305f\u304c":17,"\u306e2\u3064\u3081\u306e\u753b\u50cf\u3067":21,"\u306e2\u3064\u76ee":3,"\u306e4\u6b21\u5143\u306e\u30c7\u30fc\u30bf\u3067":17,"\u306e4\u901a\u308a\u306b\u3064\u3044\u3066":8,"\u306e\u3042\u308b\u7279\u5b9a\u306e\u70b9":8,"\u306e\u3046\u3061":25,"\u306e\u3053\u3068":5,"\u306e\u3053\u3068\u3068\u601d\u3063\u3066\u9802\u3044\u3066\u7d50\u69cb\u3067\u3059":8,"\u306e\u3055\u3089\u306b\u53f3\u306b\u3042\u308b":23,"\u306e\u3064\u3082\u308a":[6,14],"\u306e\u3067\u3059\u304c":[3,13],"\u306e\u3067\u5c11\u3057\u305a\u3064\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u899a\u3048\u308b\u3088\u3046\u306b\u3057\u3088\u3046":1,"\u306e\u3067\u6ce8\u610f":5,"\u306e\u3068\u304d":[2,6,8],"\u306e\u3068\u304d\u30e1\u30e2\u30ea\u306e\u4f7f\u7528\u91cf\u3092\u524a\u6e1b\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b":19,"\u306e\u3068\u3053\u308d\u3067\u66f8\u304d\u307e\u3057\u305f":3,"\u306e\u3068\u3053\u308d\u3067\u6975\u5024":8,"\u306e\u3069\u3061\u3089\u3092\u91cd\u8996\u3059\u308b\u304b\u306e":7,"\u306e\u306a\u3089":10,"\u306e\u306b\u4f7f\u3044\u307e\u3059":3,"\u306e\u306f\u305a\u3060\u304c":24,"\u306e\u307f\u3067\u53c2\u7167\u3067\u304d\u308b\u5909\u6570\u3067\u3059":4,"\u306e\u307f\u3067\u5b9a\u7fa9\u3057\u3088\u3046":2,"\u306e\u307f\u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059":14,"\u306e\u307f\u306b\u8208\u5473\u304c\u3042\u308c\u3070":18,"\u306e\u307f\u3092\u8003\u3048\u308b\u3053\u3068\u306b\u3057\u3066":6,"\u306e\u3082\u3068":16,"\u306e\u3082\u3068\u3067":16,"\u306e\u3082\u3068\u3067\u306e\u5c04\u5f71\u65b9\u5411\u306e\u5206\u6563\u306f":17,"\u306e\u3082\u3068\u3067\u884c\u3063\u305f\u4f55\u3089\u304b\u306e\u6e2c\u5b9a\u7d50\u679c\u3067\u3042\u308b\u5834\u5408":8,"\u306e\u3082\u3068\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b":20,"\u306e\u3082\u306e\u3092\u5168\u3066\u8868\u793a":24,"\u306e\u3082\u306e\u3092\u62bd\u51fa\u3057":13,"\u306e\u3088\u3046\u306a\u3082\u306e\u3092\u4f5c\u3063\u3066\u904a\u3076\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\u306e\u3088\u3046\u306a\u30ea\u30b9\u30c8\u304c\u3042\u3063\u305f\u3068\u304d":3,"\u306e\u3088\u3046\u306a\u4f5c\u696d\u304c\u5fc5\u8981\u3068\u306a\u308a\u307e\u3059":3,"\u306e\u3088\u3046\u306a\u56fa\u5b9a\u89b3\u5ff5\u304c\u306a\u3044":7,"\u306e\u3088\u3046\u306a\u632f\u308b\u821e\u3044\u3092\u3059\u308b":18,"\u306e\u3088\u3046\u306a\u6587\u5b57\u5217\u3092datetime\u306b\u5909\u63db\u3059\u308b\u95a2\u6570":13,"\u306e\u3088\u3046\u306b":[4,6,10],"\u306e\u3088\u3046\u306b\u307e\u305a\u96db\u5f62\u306e\u30ea\u30b9\u30c8":3,"\u306e\u3088\u3046\u306b\u9855\u8457\u306a\u4f8b\u306a\u3089\u3070":7,"\u306e\u3092\u5f37\u304f\u63a8\u5968\u3057\u307e\u3059":1,"\u306e\u30a2\u30a4\u30b3\u30f3\u304b\u3089":21,"\u306e\u30a2\u30e4\u30e1\u306b\u3064\u3044\u3066":17,"\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u53d6\u5f97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u306e\u30b0\u30e9\u30d5\u3092\u63cf\u753b\u3057\u305f\u30b3\u30fc\u30c9\u90e8\u5206\u3067":5,"\u306e\u30b3\u30fc\u30c9\u306e\u30d2\u30f3\u30c8":25,"\u306e\u30bb\u30eb\u3092\u5b9f\u884c\u3057\u5fd8\u308c\u308b\u3068":2,"\u306e\u30c7\u30fc\u30bf\u304c\u4e0b\u306e\u3088\u3046\u306b":17,"\u306e\u30c7\u30fc\u30bf\u3092\u6271\u3046\u3053\u3068\u304c\u5ea6\u3005\u3042\u308b\u304c":17,"\u306e\u30c8\u30a4\u30e2\u30c7\u30eb\u3068\u3057\u3066":16,"\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0":24,"\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3067\u3059":23,"\u306e\u30d4\u30af\u30bb\u30eb\u3092\u6301\u3064\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u73fe\u3059\u308b\u306e\u306b":19,"\u306e\u30da\u30fc\u30b8\u304b\u3089\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9":13,"\u306e\u30da\u30fc\u30b8\u306b\u3042\u308b":18,"\u306e\u30de\u30a6\u30f3\u30c8\u3059\u308b\u969b\u306e\u540d\u524d\u306f\u597d\u304d\u306b\u6c7a\u3081\u3089\u308c\u308b":5,"\u306e\u30e6\u30cb\u30bf\u30ea\u884c\u5217":19,"\u306e\u30ea\u30b9\u30c8\u3068\u306a\u3063\u3066\u3044\u308b\u306f\u305a":9,"\u306e\u30ea\u30b9\u30c8\u3092\u4f5c\u6210":12,"\u306e\u30ea\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u305f\u3044\u3068\u304d\u306b":3,"\u306e\u30eb\u30fc\u30d7\u3067\u306f":3,"\u306e\u4e00\u69d8\u4e71\u6570\u306b\u5f93\u3063\u3066x\u65b9\u5411\u3068y\u65b9\u5411\u306b\u79fb\u52d5\u3059\u308b\u3068\u3057\u307e\u3059":6,"\u306e\u4e0b\u306b\u4f5c\u3063\u305f":9,"\u306e\u4e2d\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b":4,"\u306e\u4e2d\u306b\u3082\u5165\u3063\u3066\u3044\u307e\u305b\u3093\u304b\u3089":3,"\u306e\u4e2d\u8eab\u3092\u66f8\u304d\u63db\u3048\u308b\u64cd\u4f5c":3,"\u306e\u4e3b\u8981\u90e8\u5206":7,"\u306e\u4e8b\u5f8c\u5206\u5e03\u3092\u6700\u5927\u5316\u3059\u308b\u3053\u3068\u306f":12,"\u306e\u4e8c\u5024\u3092\u53d6\u308b\u578b\u3067\u3059":2,"\u306e\u4eba\u306b\u898b\u3089\u308c\u308b\u7279\u5fb4\u304c\u306a\u306b\u304b\u306a\u3044\u304b":9,"\u306e\u4ee3\u308f\u308a\u306b":9,"\u306e\u4ee3\u5165\u90e8\u5206\u3092\u542b\u3080\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u305f\u5f8c\u306a\u3089\u30a8\u30e9\u30fc\u306f\u3067\u306a\u3044":2,"\u306e\u4efb\u610f\u6642\u523b":16,"\u306e\u4f55\u308c\u304b\u3092\u4f7f\u3063\u3066":25,"\u306e\u4f7f\u3044\u65b9\u304c\u306a\u3093\u3068\u306a\u304f\u5206\u304b\u3063\u305f\u3067\u3057\u3087\u3046\u304b":3,"\u306e\u4f7f\u3044\u65b9\u3092\u8abf\u3079\u3066":25,"\u306e\u4fc2\u6570\u3092\u8abf\u6574\u3059\u308b\u3053\u3068":7,"\u306e\u5024\u304c0\u306b\u8fd1\u304f\u306a\u3063\u3066\u3057\u307e\u3046\u3068":10,"\u306e\u5024\u304c\u4e0e\u3048\u3089\u308c\u305f\u554f\u984c\u3092\u521d\u671f\u5024\u554f\u984c\u3068\u547c\u3076":16,"\u306e\u5024\u304c\u5206\u304b\u308b":8,"\u306e\u5024\u304c\u53ce\u675f\u3059\u308b\u307e\u3067\u66f4\u65b0\u3092\u7e70\u308a\u8fd4\u3059":15,"\u306e\u5024\u304c\u5897\u3048\u308b":8,"\u306e\u5024\u304c\u5f8c\u3067\u77e5\u308a\u305f\u3044\u3068\u601d\u3063\u305f\u3068\u304d\u306f":2,"\u306e\u5024\u304c\u6b63\u306a\u3089\u5e73\u65b9\u6839\u3092\u8868\u793a\u3057\u3066":3,"\u306e\u5024\u304c\u6e1b\u308b":8,"\u306e\u5024\u304c\u8a08\u7b97\u3067\u304d\u308b\u306e\u306a\u3089":8,"\u306e\u5024\u3068":8,"\u306e\u5024\u3068\u4e00\u81f4\u3057\u3066\u3044\u308b":7,"\u306e\u5024\u306b\u3088\u3063\u3066\u51e6\u7406\u3092\u884c\u3046\u5834\u5408":3,"\u306e\u5024\u306b\u5fdc\u3058\u3066\u8272\u3092\u3064\u3051\u3066\u3044\u308b":6,"\u306e\u5024\u306f":8,"\u306e\u5024\u306f\u3069\u3046\u306a\u308b\u3067\u3057\u3087\u3046\u304b":4,"\u306e\u5024\u306f\u66f4\u65b0\u3055\u308c\u307e\u305b\u3093":4,"\u306e\u5024\u3092":[6,8],"\u306e\u5024\u3092\u4e88\u60f3\u3057\u3066\u307f\u3088\u3046":16,"\u306e\u5024\u3092\u5c0f\u3055\u304f\u3059\u308b\u3068":9,"\u306e\u5024\u3092\u5f97\u308b\u3088\u3046\u306a\u72b6\u6cc1\u3092\u60f3\u50cf\u3057\u3066\u304f\u3060\u3055\u3044":8,"\u306e\u5024\u3092\u66f4\u65b0\u3059\u308b\u969b\u306b":8,"\u306e\u5024\u3092\u6c42\u3081\u3066\u3044\u304f\u65b9\u6cd5\u3067\u3042\u308a":16,"\u306e\u5024\u3092\u7528\u3044\u308b\u305f\u3081":16,"\u306e\u5024\u3092\u8a08\u7b97\u3057":16,"\u306e\u5024\u3092\u8abf\u3079\u308b\u3068\u8a00\u3063\u3066\u3082\u9650\u754c\u304c\u3042\u308b":8,"\u306e\u5024\u3092\u8fd4\u3059":7,"\u306e\u5024\u3092xp\u306e\u5404\u70b9\u3067\u8a08\u7b97":7,"\u306e\u516c\u958b\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u3066":13,"\u306e\u5177\u4f53\u4f8b\u306b\u3064\u3044\u3066\u306f\u6b21\u306e\u7ae0\u3067\u898b\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u3087\u3046":2,"\u306e\u5177\u4f53\u7684\u306a\u8868\u5f0f\u304c\u308f\u304b\u3089\u306a\u3044\u306e\u3067":8,"\u306e\u5177\u4f53\u7684\u306a\u8868\u5f0f\u3067\u4e0e\u3048\u3089\u308c\u3066\u3044\u308b\u3068\u304d":8,"\u306e\u5199\u771f\u3092\u7528\u3044\u308b":19,"\u306e\u51fa\u529b\u3092\u5bfe\u5fdc\u3055\u305b\u305f\u3044\u3068\u304d\u3082\u4e0b\u3067\u898b\u308b\u3088\u3046\u306b\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8\u6a5f\u80fd\u3092\u4f7f\u3048\u3070\u7c21\u5358\u306b\u5b9f\u88c5\u3067\u304d\u307e\u3059":22,"\u306e\u5206\u5e03\u304c":6,"\u306e\u5206\u5e03\u3092\u8003\u3048\u305f\u3042\u3068":12,"\u306e\u5206\u6563":6,"\u306e\u5217\u30d9\u30af\u30c8\u30eb":19,"\u306e\u521d\u671f\u5024":16,"\u306e\u521d\u671f\u5024\u30920\u306b\u53d6\u3063\u305f\u308a":10,"\u306e\u524d\u306b\u3064\u3044\u3066\u3044\u308b\u4fc2\u6570":6,"\u306e\u53f3\u306b\u3042\u308b":25,"\u306e\u5404\u5bfe\u89d2\u6210\u5206\u3092":19,"\u306e\u5404\u6210\u5206\u306f\u975e\u8ca0\u3068\u306a\u308b":19,"\u306e\u548c\u304c1\u304b\u308912\u307e\u3067\u3092\u8d70\u308b":7,"\u306e\u548c\u3092\u8a08\u7b97":7,"\u306e\u548c\u8a18\u53f7\u306f":7,"\u306e\u57fa\u5e95\u3067\u8868\u73fe\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u308b":19,"\u306e\u5831\u544a\u3084\u554f\u3044\u5408\u308f\u305b\u306b\u3064\u3044\u3066\u306f\u4e0b\u8a18\u306e\u30d5\u30a9\u30fc\u30e0\u3088\u308a\u304a\u9858\u3044\u3057\u307e\u3059":0,"\u306e\u5834\u5408":[3,4],"\u306e\u5834\u5408\u3067\u3059\u3088\u306d":7,"\u306e\u5834\u5408\u306b\u3064\u3044\u3066\u3082\u305d\u308c\u305e\u308c":15,"\u306e\u5834\u5408\u306e\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u56f3\u3092\u63cf\u304d\u307e\u3057\u305f":17,"\u306e\u5834\u5408\u306f":6,"\u306e\u5834\u5408\u306f\u4f8b\u3048\u3070\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5f62":19,"\u306e\u5834\u5408\u306f\u9577\u65b9\u884c\u5217\u3068\u306a\u308b\u306e\u3067":19,"\u306e\u5834\u5408\u3082":8,"\u306e\u5897\u52a0\u5206\u306b\u5bfe\u3057\u3066":8,"\u306e\u5909\u6570\u3067\u5b9a\u7fa9\u3055\u308c\u308b\u95a2\u6570\u3092":7,"\u306e\u591a\u9805\u5f0f\u3067\u30d5\u30a3\u30c3\u30c8\u3057\u3066\u4e88\u6e2c\u3059\u308b":7,"\u306e\u591a\u9805\u5f0f\u306e\u4f8b\u3092\u7528\u3044\u3066":15,"\u306e\u5927\u304d\u3055\u3092\u5909\u3048\u308b\u3053\u3068\u306f":7,"\u306e\u5b66\u7fd2\u306b\u4f7f\u3046\u52fe\u914d\u306e\u8868\u5f0f\u306f":10,"\u306e\u5b66\u7fd2\u306f\u59cb\u307e\u308a\u307e\u305b\u3093":10,"\u306e\u5b9a\u7fa9\u3067\u5bfe\u6570\u3092\u53d6\u3063\u305f\u308a\u3059\u308b\u5834\u5408\u3082\u3042\u308b":8,"\u306e\u5b9a\u7fa9\u3068":7,"\u306e\u5b9a\u7fa9\u306e\u3082\u3068\u3067\u306f3\u6b21\u5f0f\u304c\u9078\u3070\u308c\u308b\u3053\u3068\u306b\u306a\u308b":7,"\u306e\u5b9a\u7fa9\u4e2d\u306e":7,"\u306e\u5b9f\u884c":4,"\u306e\u5bfe\u89d2\u884c\u5217":19,"\u306e\u5e73\u5747\u5024\u3067":7,"\u306e\u5f0f\u306e\u5f62\u304c\u308f\u304b\u3063\u3066\u3044\u3066":8,"\u306e\u5f62\u3067\u66f8\u304d\u4e0b\u305b\u306a\u3044\u5834\u5408\u3082\u3042\u308b":8,"\u306e\u5f62\u72b6\u3092\u78ba\u8a8d":19,"\u306e\u60c5\u5831":16,"\u306e\u60c5\u5831\u304c\u4fdd\u305f\u308c\u308b\u3057":19,"\u306e\u60c5\u5831\u3067\u3042\u308b":8,"\u306e\u624b\u6cd5\u3068\u306a\u3063\u3066\u3044\u308b":16,"\u306e\u6271\u3044\u65b9\u304c\u5206\u304b\u308b":25,"\u306e\u6301\u3064\u6027\u8cea":10,"\u306e\u6319\u52d5\u304b\u3089\u63a8\u6e2c\u3057\u3066":3,"\u306e\u632f\u308b\u821e\u3044":[5,8],"\u306e\u632f\u308b\u821e\u3044\u3088\u308a\u3082\u3080\u3057\u308d":7,"\u306e\u632f\u308b\u821e\u3044\u3092\u4e88\u3081\u77e5\u308b\u3053\u3068\u306f\u3067\u304d\u305a":8,"\u306e\u632f\u308b\u821e\u3044\u3092\u898b\u306a\u304c\u3089\u8a66\u884c\u932f\u8aa4\u3059\u308b\u3053\u3068\u304c\u5fc5\u8981\u306b\u306a\u308b":8,"\u306e\u6388\u696d\u8cc7\u6599\u3067\u3059":0,"\u306e\u63a8\u79fb\u3092\u30d7\u30ed\u30c3\u30c8\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u306e\u6570\u5024\u304c":13,"\u306e\u6587\u8108\u3067\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u8003\u3048\u308b\u969b\u306f":10,"\u306e\u65b9\u3067":25,"\u306e\u65b9\u6cd5\u3060\u3068store\u4e0a\u3067\u53e4\u3044python\u304c\u958b\u304f\u304b\u3082\u3057\u308c\u306a\u3044\u306e\u3067":24,"\u306e\u65b9\u6cd5\u3067\u306f":8,"\u306e\u65b9\u6cd5\u3092\u63a1\u308b\u5834\u5408\u306f":3,"\u306e\u66f4\u65b0\u304c\u53cd\u6620\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059":4,"\u306e\u66f4\u65b0\u3092\u901a\u3057\u3066":3,"\u306e\u66f4\u65b0\u5e45\u304c\u5927\u304d\u3059\u304e\u3066\u8c37\u3092\u307e\u305f\u3044\u3067\u3057\u307e\u3044":8,"\u306e\u6700\u521d\u306e\u5024":16,"\u306e\u6700\u5927\u5316\u3092\u8003\u3048\u308c\u3070\u826f\u3044":17,"\u306e\u6700\u5c0f\u5024\u304c\u898b\u3064\u304b\u308a\u305d\u3046\u3060":8,"\u306e\u6700\u5c0f\u5316":17,"\u306e\u6700\u9069\u89e3\u3092\u898b\u3064\u3051\u3089\u308c\u306a\u3044\u3053\u3068\u304c\u3042\u308b":8,"\u306e\u6709\u7121\u3092\u8abf\u3079\u305f\u3051\u308c\u3070":9,"\u306e\u6839\u304c\u5fc5\u8981":12,"\u306e\u6982\u5ff5\u3067\u3042\u308b":8,"\u306e\u69d8\u306b":9,"\u306e\u6a21\u5f0f\u56f3":4,"\u306e\u6b63\u898f\u5206\u5e03\u306b\u5f93\u3046\u3068\u304d":6,"\u306e\u6b74\u53f2\u306f\u53e4\u304f":8,"\u306e\u6c17\u6301\u3061":9,"\u306e\u6c42\u6839\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u81ea\u4f53\u306f\u975e\u5e38\u306b\u30b7\u30f3\u30d7\u30eb\u3067":15,"\u306e\u6df7\u540c":14,"\u306e\u6e90\u6d41\u3092\u9061\u308b\u3068":23,"\u306e\u70b9\u304c\u6c42\u3081\u3089\u308c\u3066\u3044\u308b\u4e8b\u304c\u308f\u304b\u308b":15,"\u306e\u7279\u5225\u306a\u5834\u5408\u306b\u76f8\u5f53\u3059\u308b":6,"\u306e\u767a\u5c55\u306e\u6b74\u53f2\u7684\u5074\u9762":23,"\u306e\u76f8\u95a2\u3092\u793a\u3059":7,"\u306e\u78ba\u7387\u3067\u52dd\u3063\u305f\u308a\u8ca0\u3051\u305f\u308a\u3059\u308b\u30ae\u30e3\u30f3\u30d6\u30eb\u306b\u76ee\u3092\u3064\u3051\u307e\u3057\u305f":3,"\u306e\u78ba\u7387\u5206\u5e03\u304c":12,"\u306e\u78ba\u7387\u5bc6\u5ea6\u95a2\u6570":6,"\u306e\u78ba\u7387\u5bc6\u5ea6\u95a2\u6570\u306f":6,"\u306e\u7ae0\u3067\u6271\u3044\u307e\u3059":2,"\u306e\u7bc4\u56f2\u3067\u30e9\u30f3\u30c0\u30e0\u306b10000\u30b5\u30f3\u30d7\u30eb\u751f\u6210\u3057\u3066plot\u3057\u3066\u307f\u3088\u3046":6,"\u306e\u7cbe\u5ea6":12,"\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u6307\u5b9a\u3057\u307e\u3059":3,"\u306e\u7d50\u679c\u3092\u62bd\u51fa\u3057\u3066\u307f\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u3087\u3046":13,"\u306e\u7dcf\u548c\u3092\u8a08\u7b97\u3059\u308b\u30b3\u30fc\u30c9\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u306e\u8003\u3048\u3060\u3068":17,"\u306e\u81ea\u7531\u5ea6\u304c\u6b8b\u3055\u308c\u3066\u3044\u308b":17,"\u306e\u884c\u5217\u8981\u7d20\u3092\u66f8\u304d\u63db\u3048\u3066":19,"\u306e\u8981\u7d20\u3044\u305a\u308c\u3082\u306b\u5f71\u97ff\u3057\u307e\u3059":3,"\u306e\u8981\u7d20\u304b\u3089":18,"\u306e\u8981\u7d20\u3060\u3051\u3092\u7de8\u96c6\u3057\u305f\u3064\u3082\u308a\u3067\u3082":3,"\u306e\u89e3\u304c\u5b58\u5728\u3059\u308b":15,"\u306e\u8a08\u7b97":7,"\u306e\u8a08\u7b97\u624b\u6cd5\u3067\u3042\u308b\u5bc6\u5ea6\u884c\u5217\u304f\u308a\u3053\u307f\u7fa4":19,"\u306e\u8a2d\u8a08":11,"\u306e\u8a55\u4fa1\u304c\u8907\u96d1\u306a\u5834\u5408":16,"\u306e\u8a55\u4fa1\u306b\u95a2\u3059\u308b\u8a08\u7b97\u30b3\u30b9\u30c8\u306e\u5206\u3060\u3051":16,"\u306e\u8a55\u4fa1\u306f\uff11\u56de\u3060\u3051\u3067\u826f\u3044":16,"\u306e\u8aa4\u5dee":12,"\u306e\u8db3\u3057\u7b97\u3067\u306f":22,"\u306e\u8ddd\u96e2\u306f":4,"\u306e\u8fd1\u4f3c\u3068\u306a\u3063\u3066\u3044\u308b":2,"\u306e\u8fd4\u308a\u5024":4,"\u306e\u9006\u884c\u5217\u3092\u3069\u3046\u3084\u3063\u3066\u6c42\u3081\u308b\u304b":7,"\u306e\u9078\u629e\u306b\u306f\u81ea\u7531\u5ea6\u304c\u3042\u308a":16,"\u306e\u90e8\u5206\u306f\u7686\u3055\u3093\u306e\u30c7\u30a3\u30b9\u30af\u74b0\u5883\u306b\u4f9d\u5b58":9,"\u306e\u90e8\u5206\u306f\u7686\u3055\u3093\u306e\u30d5\u30a9\u30eb\u30c0\u540d\u306b\u9069\u5b9c\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044":5,"\u306e\u90e8\u5206\u96c6\u5408":16,"\u306e\u914d\u5217":6,"\u306e\u9577\u3055\u304c\u9055\u3046\u5834\u5408":7,"\u306e\u9593\u306b\u306f":17,"\u306e\u9593\u306e":16,"\u306e\u95a2\u6570\u3068\u3057\u3066\u66f8\u304d\u4e0b\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059":8,"\u306e\u95a2\u6570\u3068\u3057\u3066\u66f8\u3051\u308b\u3088\u3046\u306a\u72b6\u6cc1\u306b\u76f8\u5f53\u3059\u308b":16,"\u306e\u95a2\u9023\u6027\u3092\u5b66\u7fd2\u3057\u753b\u50cf\u5206\u985e\u3092\u884c\u3046\u30e2\u30c7\u30eb\u3067mit\u30e9\u30a4\u30bb\u30f3\u30b9\u306e\u3082\u3068\u516c\u958b\u3055\u308c\u3066\u3044\u308b":20,"\u306e\u9818\u57df\u3067\u306e\u6b63\u898f\u5206\u5e03\u3068x\u8ef8\u3068\u304c\u56f2\u3080\u9818\u57df\u3092":6,"\u306e\u9a5a\u7570\u7684\u306a\u76f8\u6027\u3092\u5143\u306b\u4f5c\u3089\u308c\u305f\u5bfe\u6226\u30b7\u30df\u30e5\u30ec\u30fc\u30bf":3,"\u306e\uff12\u3064\u306b\u30c1\u30a7\u30c3\u30af\u3092\u5165\u308c\u3066\u6709\u52b9\u5316\u3059\u308b":23,"\u306e\uff12\u3064\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u6271\u3044\u307e\u3059":18,"\u306e\uff12\u3064\u306e\u65b9\u6cd5\u304c\u3042\u308b":21,"\u306e\uff12\u3064\u3092\u99c6\u4f7f\u3057\u3066":1,"\u306e\uff12\u70b9\u304c\u4ee3\u8868\u7684\u306a\u3068\u3053\u308d\u3067\u3057\u3087\u3046\u304b":6,"\u306eadam":16,"\u306ecui\u74b0\u5883\u3067\u5fc5\u8981\u306a\u57fa\u672c\u7684\u306a\u64cd\u4f5c\u3092\u307e\u3068\u3081\u308b":24,"\u306er\u306fright\u306e\u610f\u5473":9,"\u306erank":19,"\u306etip":11,"\u306eweb\u304b\u3089\u60c5\u5831\u3092\u62bd\u51fa\u3059\u308b\u3053\u3068":13,"\u306exxx\u90e8\u5206":24,"\u306f0\u304b\u3089\u6574\u6570\u30925\u3064":3,"\u306f0\u306b\u9650\u308a\u306a\u304f\u8fd1\u3044":8,"\u306f1\u304b\u308912\u307e\u3067\u306e\u5024\u3092\u53d6\u308a":7,"\u306f3\u306e\u500d\u6570\u3067\u3059":3,"\u306f3\u306e\u500d\u6570\u3067\u306f\u3042\u308a\u307e\u305b\u3093":3,"\u306f\u3042\u308b\u30a2\u30f3\u30b1\u30fc\u30c8\u7d50\u679c\u3092\u307e\u3068\u3081\u305f\u30d5\u30a1\u30a4\u30eb\u306b\u306a\u3063\u3066\u3044\u307e\u3059":9,"\u306f\u3044\u3089\u306a\u3044":18,"\u306f\u3053\u308c\u3089\u306e\u95a2\u6570\u3067\u751f\u6210\u3055\u308c\u308b\u4f5c\u696d\u9818\u57df\u306b\u6163\u4f8b\u7684\u306b\u7528\u3044\u308b\u5909\u6570\u3067\u3059":5,"\u306f\u3055\u3066\u304a\u304d":7,"\u306f\u3058\u3081\u306b":8,"\u306f\u3058\u3081\u306e":16,"\u306f\u3058\u3081\u306e\u3046\u3061\u306f\u5c11\u3005\u9762\u5012\u3067\u3082":3,"\u306f\u3058\u3081\u306f\u30cd\u30c3\u30c8\u306b\u8ee2\u304c\u3063\u3066\u3044\u308b\u8ab0\u304b\u304c\u66f8\u3044\u305f\u30b3\u30fc\u30c9\u3092\u5c11\u3057\u305a\u3064\u6d41\u7528\u3057":5,"\u306f\u305d\u306e\u4e00\u4f8b\u3067\u3059":5,"\u306f\u305d\u308c\u305e\u308c":7,"\u306f\u3061\u3083\u3093\u3068\u7a7a\u306b\u306a\u308b":4,"\u306f\u3069\u306e\u30eb\u30fc\u30d7":3,"\u306f\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb\u3067\u4ee5\u964d\u3067\u306f":9,"\u306f\u30bf\u30d6\u3092\u9589\u3058\u308b":1,"\u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u968e\u5c64\u3092\u610f\u5473\u3057\u3066\u3044\u3066":5,"\u306f\u30d4\u30ea\u30aa\u30c9\u3067\u6307\u5b9a\u3057\u307e\u3059":5,"\u306f\u30e4\u30b3\u30d3\u884c\u5217\u306b\u306a\u308b\u304c":15,"\u306f\u30e6\u30fc\u30af\u30ea\u30c3\u30c9\u30ce\u30eb\u30e0\u3068\u3057":16,"\u306f\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u8a18\u53f7\u3067":9,"\u306f\u4e00\u822c\u306b\u7279\u5b9a\u306e\u578b":14,"\u306f\u4e00\u898b\u554f\u984c\u306a\u3044\u3088\u3046\u306b\u898b\u3048\u308b\u304c":2,"\u306f\u4e8c\u4e57\u548c\u8aa4\u5dee\u95a2\u6570":12,"\u306f\u4ee3\u5165\u306b\u4f7f\u7528\u3055\u308c\u308b":2,"\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059":5,"\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b9a\u7fa9\u3055\u308c":7,"\u306f\u4f55\u5ea6\u5b9f\u884c\u3057\u3066\u3082\u540c\u3058\u7b54\u3048\u306b\u306a\u308b":6,"\u306f\u4f7f\u308f\u305a":2,"\u306f\u4fdd\u5b58":1,"\u306f\u5206\u304b\u3089\u306a\u3044\u306e\u3067":11,"\u306f\u5358\u4e00\u306e\u5024\u3084\u6587\u5b57\u5217\u306b\u9650\u3089\u305a":4,"\u306f\u53b3\u5bc6\u306b0\u306b\u306a\u308b\u3079\u304d\u3067\u3059\u304c1\u7ae0\u3067\u8ff0\u3079\u305f\u3088\u3046\u306b\u5b9f\u6570\u304c\u6709\u9650\u306e\u7cbe\u5ea6\u306a\u306e\u3067\u5fae\u5c0f\u306a\u91cf0\u304b\u3089\u305a\u308c\u3066\u3044\u307e\u3059":5,"\u306f\u5404\u30b9\u30c6\u30c3\u30d7":16,"\u306f\u5408\u8a082":3,"\u306f\u540c\u4e00\u306e":3,"\u306f\u540d\u524d\u306e\u307f":18,"\u306f\u554f\u984c\u306b\u3088\u3063\u30660\u3060\u3063\u305f\u308a":16,"\u306f\u57fa\u5e95\u95a2\u6570\u306e\u30d9\u30af\u30c8\u30eb\u3067":12,"\u306f\u5909\u6570\u306eid\u3092\u78ba\u8a8d\u3059\u308b\u95a2\u6570":3,"\u306f\u591a\u6b21\u5143":8,"\u306f\u5927\u304d\u304f\u62e1\u304c\u308b":7,"\u306f\u5b66\u7fd2\u7387":10,"\u306f\u5b9a\u7fa9\u304b\u3089277\u3068\u306a\u308b\u304c":8,"\u306f\u5b9f\u884c\u3059\u308b\u5ea6\u306b\u7b54\u3048\u304c\u5909\u308f\u308b\u304c":6,"\u306f\u5c0f\u3055\u3059\u304e\u3066":8,"\u306f\u5c0f\u6570\u70b9\u4ee5\u4e0b1\u6841\u307e\u3067\u51fa\u529b\u3057\u306a\u3055\u3044\u3068\u3044\u3046\u547d\u4ee4":5,"\u306f\u5ea7\u6a19\u4ee5\u5916\u306e\u91cf":16,"\u306f\u5f53\u7136\u30ea\u30b9\u30c8\u578b\u3067\u3059":22,"\u306f\u5f62\u5f0f\u7684\u306b\u306f":16,"\u306f\u5fc5\u305a":7,"\u306f\u5fc5\u305a\u5b9f\u8ef8\u3092\u6a2a\u5207\u308b":15,"\u306f\u6253\u3061\u8fbc\u3080\u306e\u3067\u306f\u306a\u304f":23,"\u306f\u6539\u884c\u8a18\u53f7\u3092\u610f\u5473\u3059\u308b":9,"\u306f\u6570\u5024\u6f14\u7b97\u30e9\u30a4\u30d6\u30e9\u30ea\u3067":22,"\u306f\u6587\u5b57\u5217\u3084\u6570\u5b57":3,"\u306f\u65e2\u306b\u5f15\u304d\u7b97\u3068\u3044\u3046\u6f14\u7b97\u3092\u8868\u3059\u306e\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u306e\u3067":2,"\u306f\u6642\u9593\u3067\u3042\u308b\u5fc5\u8981\u306f\u306a\u3044\u3057":16,"\u306f\u6982\u8981\u3092\u3068\u3089\u3048\u305f\u308a\u5fa9\u7fd2\u3092\u3059\u308b\u3068\u304d\u306b\u306f\u898b\u3084\u3059\u304f\u3066\u4fbf\u5229\u3060\u304c":0,"\u306f\u69d8\u3005\u306a\u578b\u304c\u4f7f\u3048\u307e\u3059":3,"\u306f\u6a5f\u68b0\u7684\u306a\u51e6\u7406\u3068":18,"\u306f\u6b63\u78ba\u306b\u306f":19,"\u306f\u6c7a\u3081\u6253\u3061\u3068\u3059\u308b":12,"\u306f\u73fe\u5728\u3082\u3088\u304f\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059":10,"\u306f\u7406\u60f3\u7684\u306a\u6574\u65702\u3067\u3042\u308b\u306e\u306b\u5bfe\u3057\u3066":2,"\u306f\u756a\u53f7\u306e\u6307\u5b9a\u306e\u307f\u306b\u5bfe\u5fdc":18,"\u306f\u7686\u3055\u3093\u304c\u5165\u529b\u3059\u3079\u304d\u3082\u306e\u3067\u306f\u306a\u304f":24,"\u306f\u76ee\u7684\u95a2\u6570\u3067":10,"\u306f\u76f4\u4ea4\u884c\u5217\u3067\u3042\u308a":19,"\u306f\u809d\u306b\u547d\u3058\u3066\u304a\u3053\u3046":21,"\u306f\u81ea\u4f5c\u3057\u305f\u95a2\u6570\u306e\u540d\u524d\u3067":4,"\u306f\u884c\u5217\u306e\u968e\u6570":19,"\u306f\u8ee2\u7f6e":19,"\u306f\u9014\u4e2d\u3092\u7701\u7565\u3057\u3066\u8868\u793a\u3057\u3066\u304f\u308c\u3066\u3044\u307e\u3059":22,"\u306f\u9069\u5f53\u306a\u5024\u3092\u3072\u3068\u3064\u9078\u3079\u3070\u5341\u5206":8,"\u306f\u9589\u3058\u305f\u5f62\u3067\u4e0e\u3048\u3089\u308c\u308b":7,"\u306f\u975e\u30bc\u30ed\u306e\u5b9a\u6570":8,"\u306fstring\u306e\u7565":2,"\u306fwindows\u306e\u65e5\u672c\u8a9e\u74b0\u5883\u3067\u306f":9,"\u306fwindows\u30e6\u30fc\u30b6\u30fc\u3067\u306f\u306a\u3044\u306e\u3067\u5e7e\u3064\u304b\u306e\u60c5\u5831\u304c\u53e4\u3044\u6050\u308c\u304c\u3042\u308a\u307e\u3059":[23,24],"\u3072\u304d\u3059\u3046":4,"\u3072\u3069\u3044\u6709\u69d8\u3067\u3059":5,"\u3072\u3089\u304c\u306a":2,"\u3076\u3069\u3046":3,"\u3079\u304d\u4e57\u306b\u5bfe\u3059\u308b\u30eb\u30fc\u30d7\u3092\u56de\u3059":3,"\u307b\u3068\u3093\u3069\u306fwikipedia\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u7b49":18,"\u307b\u3068\u3093\u3069\u5b66\u7fd2\u304c\u9032\u3093\u3067\u3044\u306a\u3044\u4e8b\u304c\u308f\u304b\u308a\u307e\u3059":10,"\u307b\u3068\u3093\u3069\u5b66\u7fd2\u304c\u9032\u3093\u3067\u3044\u307e\u305b\u3093":10,"\u307b\u306b\u3083\u3089\u3089\u3068\u3044\u3046\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u51fa\u307e\u3059":5,"\u307b\u3093\u3068\u306f":14,"\u307b\u3093\u3068\u306fa":14,"\u307e\u305a\u304a\u6383\u9664\u30ed\u30dc\u30c3\u30c8\u304c\u8d70\u308c\u308b\u3088\u3046\u6383\u9664\u3059\u308b":9,"\u307e\u305a\u3053\u308c\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044":5,"\u307e\u305a\u306f":[9,16,22],"\u307e\u305a\u306f\u305d\u306e\u89e3\u304c\u5909\u6570\u5206\u96e2\u306a\u3069\u3092\u7528\u3044\u3066":16,"\u307e\u305a\u306f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":13,"\u307e\u305a\u306f\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3057\u3087\u3046":18,"\u307e\u305a\u306f\u4ee3\u8868\u7684\u306a\u5024\u3067\u3042\u308b":2,"\u307e\u305a\u306f\u578b\u3092\u8abf\u3079\u3066\u307f\u308b":13,"\u307e\u305a\u306f\u5fc5\u8981\u306a\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3088\u3046":18,"\u307e\u305a\u306f\u5fc5\u8981\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u304a\u304d\u307e\u3059":13,"\u307e\u305a\u306f\u7c21\u5358\u306a\u4f8b\u304b\u3089\u521d\u3081\u3088\u3046":7,"\u307e\u305a\u306f\u884c\u3068\u5217\u306e\u6570\u3092\u53d6\u5f97\u3057\u3066\u307f\u307e\u3059":9,"\u307e\u305a\u306fgoogl":9,"\u307e\u305a\u306fxlsx\u30d5\u30a1\u30a4\u30eb\u3092python\u3067\u8aad\u307f\u8fbc\u3093\u3067":9,"\u307e\u305a\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u306e\u30b3\u30d4\u30fc\u3092\u4f5c\u6210\u3057":25,"\u307e\u305a\u4e3b\u6210\u5206\u5206\u6790\u3068\u306f\u306a\u3093\u3060\u308d\u3046\u304b":17,"\u307e\u305a\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u307e\u305a\u4ee5\u4e0b\u306e\u9805\u76ee\u306b\u8a72\u5f53\u3059\u308b\u5217\u3060\u3051\u3092\u62bd\u51fa\u3059\u308b\u4e8b\u3092\u8003\u3048\u308b":18,"\u307e\u305a\u4fc2\u6570\u3092\u9069\u5f53\u306b":15,"\u307e\u305a\u52fe\u914d\u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570\u3092\u7528\u610f\u3057\u3066\u304a\u304d\u307e\u3059":10,"\u307e\u305a\u56de\u5e30\u3092\u5b66\u3076\u305f\u3081\u306b":7,"\u307e\u305f\u306f":[6,14,15,21],"\u307e\u305f\u306f\u3042\u308b\u5217\u3068\u3042\u308b\u5217":19,"\u307e\u305f\u306fos\u6bce\u306estore\u7cfb\u306e\u30bd\u30d5\u30c8":21,"\u307e\u305f\u30b3\u30fc\u30c9\u90e8\u5206\u306b":2,"\u307e\u305f\u4e8b\u614b\u304c\u53ce\u675f\u3057\u305f\u3042\u3068\u306b":7,"\u307e\u305f\u4eca\u306e\u5834\u5408":11,"\u307e\u305f\u52b9\u7387\u7684\u3067\u306f\u3042\u308a\u307e\u305b\u3093":10,"\u307e\u305f\u5909\u6570\u306e\u982d\u306b\u6570\u5b57\u3092\u4f7f\u3046\u3053\u3068\u3082\u3067\u304d\u306a\u3044":2,"\u307e\u305f\u597d\u304d\u306a\u540d\u524d\u306e\u5909\u6570\u306b\u30ea\u30b9\u30c8\u3092\u4ee3\u5165\u3059\u308b":3,"\u307e\u305f\u8db3\u3057\u7b97\u3068\u639b\u3051\u7b97\u306f\u5b9a\u7fa9\u3067\u304d\u308b\u304c":2,"\u307e\u305ftaylor\u5c55\u958b\u3057\u3066":16,"\u307e\u3060\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306f\u8a13\u7df4\u304c\u306a\u3055\u308c\u3066\u3044\u306a\u3044\u30c7\u30bf\u30e9\u30e1\u306a\u95a2\u6570\u306a\u306e\u3067":10,"\u307e\u3067\u3067\u3082\u3068\u306e\u884c\u5217":19,"\u307e\u3067\u306e\u5834\u5408\u306b\u3064\u3044\u3066\u306f":15,"\u307e\u3067\u306e\u884c\u304c\u5fc5\u8981\u306a\u3044\u306e\u3067":9,"\u307e\u3067\u306en\u500b\u306e\u6574\u6570\u304b\u3089":25,"\u307e\u3067\u3092\u4fdd\u6301":19,"\u307e\u3067\u3092\u4fdd\u6301\u3059\u308c\u3070\u884c\u5217\u306e\u3042\u308b\u7a2e\u306e\u8fd1\u4f3c\u3092\u4e0e\u3048\u3066\u3044\u308b\u3053\u3068\u304c\u7406\u89e3\u3067\u304d\u308b":19,"\u307e\u3067\u4e0a\u66f8\u304d\u3055\u308c\u3066\u3057\u307e\u3063\u3066\u3044\u307e\u3059":3,"\u307e\u3067\u5165\u529b\u304c\u88dc\u5b8c\u3055\u308c":24,"\u307e\u3068\u3081\u305f\u3044png\u3092\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u3067\u6307\u5b9a":5,"\u307f\u305f\u3055\u306a\u3044":2,"\u307f\u306a\u3055\u3093\u304c\u666e\u6bb5\u304b\u3089\u30a2\u30af\u30bb\u30b9\u3059\u308b\u307b\u307c\u5168\u3066\u306eweb\u30da\u30fc\u30b8\u306f":13,"\u3082\u3046\u3061\u3087\u3063\u3068\u304b\u3063\u3053\u3088\u304f\u63cf\u304d\u305f\u3051\u308c\u3070":6,"\u3082\u3046\u5c11\u3057":19,"\u3082\u3046\u5c11\u3057\u5177\u4f53\u7684\u306a\u30c6\u30ad\u30b9\u30c8\u64cd\u4f5c\u3092\u3057\u3066\u307f\u3088\u3046":9,"\u3082\u3046\u5c11\u3057\u5177\u4f53\u7684\u306b\u30ab\u30e9\u30fc\u30de\u30c3\u30d7\u3082\u6307\u5b9a\u3057\u3066\u307f\u3088\u3046":21,"\u3082\u3046\u5c11\u3057\u51dd\u3063\u305f\u3053\u3068\u3092\u3084\u3063\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u3082\u3046\u5c11\u3057\u6574\u5f62\u3057\u305f\u3044\u306e\u3067":18,"\u3082\u3046\u5c11\u3057\u6b63\u898f\u5206\u5e03\u306e\u7279\u5fb4\u7684\u306a\u6027\u8cea\u306b\u3064\u3044\u3066\u898b\u3066\u307f\u307e\u3057\u3087\u3046":6,"\u3082\u3046\u5c11\u3057\u7d30\u304b\u3044\u3053\u3068\u3092\u3044\u3046\u3068":8,"\u3082\u3046\u5c11\u3057\u8907\u96d1\u306a\u6761\u4ef6\u3092\u8868\u73fe\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":3,"\u3082\u3046\u5c11\u3057\u8a73\u7d30\u306a\u6587\u5b57\u5217\u64cd\u4f5c":2,"\u3082\u3046\u5c5e\u6027\u3092\u5c11\u3057\u7d5e\u3063\u3066\u307f\u307e\u3057\u3087\u3046":13,"\u3082\u3057\u304f\u306f":6,"\u3082\u3057\u304f\u306fctrl":24,"\u3082\u3057\u6240\u6301\u91d1\u304c80\u4e07\u672a\u6e80\u306a\u3089continu":3,"\u3082\u3057\u6761\u4ef61\u304c\u6e80\u305f\u3055\u308c\u308c\u3070a\u3092\u5b9f\u884c":3,"\u3082\u3061\u308d\u3093":[2,6,8,9,10,21],"\u3082\u3061\u308d\u3093\u4e8c\u6b21\u95a2\u6570\u306e\u5834\u5408\u306f":8,"\u3082\u3061\u308d\u3093\u6570\u5024\u8a08\u7b97\u306e\u51fa\u756a\u3068\u306a\u308b":15,"\u3082\u3061\u308d\u3093\u79c1\u304c\u624b\u4f5c\u696d\u3067\u5165\u529b\u3057\u305f\u308f\u3051\u3067\u3082\u8ab0\u304b\u306b\u5354\u529b\u3057\u3066\u3082\u3089\u3063\u305f\u308f\u3051\u3067\u3082\u306a\u304f":9,"\u3082\u3061\u308d\u3093csv\u3092\u8aad\u3080\u306e\u306b\u4fbf\u5229\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3082\u3042\u308a\u307e\u3059\u304c":9,"\u3082\u3061\u308d\u3093python\u3067\u306f\u30a4\u30f3\u30c7\u30f3\u30c8\u304c\u6587\u6cd5\u306a\u306e\u3067":9,"\u3082\u3063\u304b\u3044\u6253\u3066":23,"\u3082\u3068\u306e\u5171\u5206\u6563\u884c\u5217\u3092\u66f8\u304d\u63db\u3048\u308b\u3068":17,"\u3082\u3068\u306e\u884c\u5217\u306e\u4f4e\u30e9\u30f3\u30af\u8fd1\u4f3c\u3092\u8a08\u7b97\u3057":19,"\u3082\u3068\u3082\u3068\u306e\u30c7\u30fc\u30bf\u306ffactfulness\u304b\u3089\u6765\u3066\u3044\u308b\u306e\u3067\u30e9\u30a4\u30bb\u30f3\u30b9\u30d5\u30ea\u30fc\u3067\u3059":5,"\u3082\u3068\u3082\u3068\u306e\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3042\u3063\u305f":24,"\u3082\u3068\u3082\u3068\u306fxlrd\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u5b9f\u88c5\u3057\u3066\u3044\u307e\u3057\u305f\u304c":9,"\u3082\u3088\u304f\u7528\u3044\u3089\u308c\u308b":3,"\u3082\u3093\u306e\u3058\u3083\u3093\u3051\u3093\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u89e3\u6790\u3059\u308b\u3053\u3068\u3067":6,"\u3082\u3093\u3084\u30b5\u30b6":6,"\u3082\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u306e\u4e00\u4f8b\u306b\u306a\u3063\u3066\u3044\u308b":9,"\u3082\u4f7f\u3048\u308b\u3068\u4fbf\u5229\u3060":9,"\u3082\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308b\u306f\u305a":24,"\u3082\u53c2\u8003\u306b\u306a\u308a\u307e\u3059":24,"\u3082\u5909\u308f\u308a\u5f97\u308b":8,"\u3082\u5b9a\u91cf\u5316\u3057":7,"\u3082\u78ba\u304b\u3081\u3088\u3046":6,"\u3084\u305d\u308c\u4ee5\u4e0a":8,"\u3084\u3063\u305f\u305c":2,"\u3084\u3063\u3071\u308a\u8272\u3093\u306a\u5834\u9762\u3067\u4e0d\u4fbf\u304c\u751f\u3058\u308b":9,"\u3084\u306f\u308a0\u59cb\u307e\u308a\u3067":3,"\u3084\u306f\u308a6\u306f\u542b\u307e\u308c\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f":3,"\u3084\u3081\u305f\u3051\u308c\u3070ctrl":[23,24],"\u3084\u3084\u3053\u3057\u3044":7,"\u3084\u3084\u30c6\u30af\u30cb\u30ab\u30eb\u3067\u3059\u304c\u91cd\u8981\u306a\u70b9\u3067\u3042\u308b\u5909\u6570\u306e\u30b9\u30b3\u30fc\u30d7\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059":4,"\u3084\u3084\u76f8\u6027\u304c\u60aa\u304f":18,"\u3084\u308a\u305f\u3044\u64cd\u4f5c\u3092\u7cfb\u7d71\u7684\u306b\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u7b2c\u4e00\u6b69\u3067\u3059":9,"\u3084\u30d0\u30a4\u30a2\u30b9\u9805":10,"\u3084\u30d9\u30af\u30c8\u30eb\u7a4d\u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570":7,"\u3084\u5229\u7528\u3059\u308b\u5916\u90e8\u30b5\u30fc\u30d3\u30b9\u7b49\u304c\u5e7e\u3064\u304b\u3042\u308b":0,"\u3084\u5834\u5408\u306b\u3088\u3063\u3066\u306f\u30c9\u30e9\u30a4\u30d6\u90e8\u5206c":24,"\u3084\u6539\u884c\u30b3\u30fc\u30c9":18,"\u3084\u6d3b\u6027\u5316\u95a2\u6570":10,"\u3084\u7b2c1\u7ae0\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3067\u8a66\u3057\u3066\u307f\u3088\u3046":0,"\u3084\u81ea\u5206\u81ea\u8eab":17,"\u3084\u8fd4\u308a\u5024":25,"\u3084\u985e\u4f3c\u306e\u3082\u306e":24,"\u3084lapack":19,"\u3084linux\u3068\u540c\u69d8\u306e\u65b9\u5f0f":9,"\u3084loss":10,"\u3084unix":24,"\u3088\u3046\u306a\u5909\u6570\u540d\u306b\u3057\u307e\u3057\u3087\u3046":3,"\u3088\u3046\u306b\u3057\u307e\u3057\u3087\u3046":2,"\u3088\u3046\u306b\u610f\u8b58\u3057\u3088\u3046":1,"\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u306b\u3064\u3044\u3066\u306f":2,"\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u96c6":25,"\u3088\u304f\u308f\u304b\u3089\u306a\u3044\u90e8\u5206\u306f\u3068\u308a\u3042\u3048\u305a\u98db\u3070\u3057\u8aad\u307f\u3067\u69cb\u3044\u307e\u305b\u3093":5,"\u3088\u304f\u4f7f\u3046linux\u30b3\u30de\u30f3\u30c9\u3092\u4e0b\u8a18\u306e\u8868\u306b\u307e\u3068\u3081\u308b":21,"\u3088\u304f\u66f8\u7c4d\u306a\u3069\u3067\u306f\u5909\u6570\u3092\u7bb1\u3068\u898b\u7acb\u3066\u3066\u7bb1\u306e\u4e2d\u306b\u6570\u5024\u3084\u6587\u5b57\u5217\u3092\u5165\u308c\u308b\u8aac\u660e\u3082\u3088\u304f\u898b\u3089\u308c\u308b\u304c":2,"\u3088\u304f\u77e5\u3063\u3066\u3044\u308b\u3068\u3044\u3046\u65b9\u3082\u3055\u3063\u3068\u76ee\u3092\u901a\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044":8,"\u3088\u304f\u8d77\u3053\u308b\u30df\u30b9\u3067\u3059":14,"\u3088\u304f\u906d\u9047\u3059\u308b\u30a8\u30e9\u30fc\u306e\u4f8b\u306b\u306a\u3063\u3066\u3044\u3066":21,"\u3088\u308a\u4e0a\u4f4d\u306e\u96c6\u5408\u3092\u6307\u3057\u307e\u3059\u304c\u5883\u754c\u306f\u3042\u3044\u307e\u3044\u306a\u5370\u8c61\u3067\u3059":5,"\u3088\u308a\u5177\u4f53\u7684\u306a\u3082\u306e":19,"\u3088\u308a\u5177\u4f53\u7684\u306a\u4f8b\u3092\u3042\u3052\u308b\u306a\u3089":8,"\u3088\u308a\u5c11\u306a\u3044\u63a2\u7d22\u56de\u6570\u3067\u3088\u308a\u6b63\u78ba\u306a\u89e3\u304c\u6c42\u307e\u308b\u304c":11,"\u3088\u308a\u6709\u7528\u306a\u56de\u7b54\u3092\u5f97\u3089\u308c\u308b\u3088\u3046\u4ed5\u5411\u3051\u3066\u3044\u308b":21,"\u3088\u308a\u8907\u96d1\u3067\u9ad8\u6b21\u5143\u306a\u56de\u5e30\u554f\u984c\u306b\u5fdc\u7528\u3057\u305f\u308a":10,"\u3088\u308a\u8907\u96d1\u306a\u6574\u6570\u306e\u96c6\u5408\u3092\u4f5c\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\u3088\u308a\u8907\u96d1\u306a\u6761\u4ef6\u3092\u52a0\u3048\u3066\u3044\u304f\u3053\u3068\u306b\u3057\u307e\u3057\u3087\u3046":3,"\u3088\u308a\u8907\u96d1\u306a\u6761\u4ef6\u3092\u5b9f\u88c5\u3059\u308b\u306e\u306b":3,"\u3088\u308a\u8907\u96d1\u306a\u95a2\u6570\u3092\u8868\u73fe\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":7,"\u3088\u308a\u9069\u5207\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306b\u3082\u3046\u5c11\u3057\u30d2\u30f3\u30c8\u3092\u3042\u3052\u3066\u3044\u308b\u3068\u3044\u3046\u8a33\u3060":21,"\u3088\u308a\u9ad8\u7cbe\u5ea6\u306e\u7d50\u679c\u3092\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u308b":16,"\u3089\u3057\u3044":9,"\u308a\u3093\u3054":[3,14],"\u308f\u304b\u308a\u3084\u3059\u3044":21,"\u308f\u3056\u308f\u3056":8,"\u308f\u305a\u304b\u306b\u5024\u304c\u7570\u306a\u3063\u3066\u3044\u308b":17,"\u30921\u304b\u3089999\u307e\u30672\u305a\u3064\u5909\u3048\u3066\u3044\u3063\u305f\u3068\u304d\u306e\u5024\u3092\u8a70\u3081\u305f\u30ea\u30b9\u30c8\u3092\u4f5c\u6210":3,"\u30922\u56de\u3068":3,"\u3092\u3042\u307e\u308a\u30d0\u30e9\u30d0\u30e9\u306e\u30bb\u30eb\u306b\u66f8\u304b\u305a":2,"\u3092\u3044\u3061\u3044\u3061\u5b9a\u7fa9\u3057\u306a\u3044\u3088\u3046\u306b\u66f8\u304d\u63db\u3048\u308c\u3070":7,"\u3092\u3055\u3063\u304d\u4f5c\u3063\u305fadds\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u306e\u4e2d\u306b\u5225\u540d":9,"\u3092\u305d\u306e\u5fae\u5206\u3057\u305f\u8868\u5f0f\u306b\u4ee3\u5165\u3059\u308b\u3053\u3068\u3067\u52fe\u914d\u6cd5\u306e\u5b9f\u88c5\u304c\u53ef\u80fd\u3068\u306a\u308b":8,"\u3092\u305d\u308c\u305e\u308c\u8868\u793a\u3057\u3066\u307f\u3088\u3046":18,"\u3092\u3064\u304b\u3048\u3070\u4e00\u77ac\u3067\u5b9f\u73fe\u3067\u304d\u308b":22,"\u3092\u3064\u304b\u3063\u3066\u533a\u5207\u308a":3,"\u3092\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u306a\u3044":2,"\u3092\u3064\u3051\u308b\u3068\u305d\u306e\u884c\u306e":2,"\u3092\u3068\u304d\u305f\u3044":12,"\u3092\u3069\u306e\u3088\u3046\u306b\u6c42\u3081\u305f\u3089\u826f\u3044\u3060\u308d\u3046\u304b":15,"\u3092\u307e\u305a\u3084\u3063\u3066\u307f\u3088\u3046":9,"\u3092\u307f\u3066\u7406\u89e3\u3057\u3088\u3046\u3068\u3059\u308b\u751f\u304d\u7269\u3060\u3068\u3044\u3046\u3053\u3068\u306f\u610f\u8b58\u3057\u3066\u304a\u304f\u3079\u304d\u3060\u308d\u3046":7,"\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304f\u3068":21,"\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b":24,"\u3092\u30ad\u30fc\u306b\u6301\u3064\u8f9e\u66f8\u306e\u30ea\u30b9\u30c8\u3060\u3068\u5206\u304b\u308b":13,"\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b":21,"\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068":21,"\u3092\u30b3\u30ed\u30f3":3,"\u3092\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u305f\u308a\u3068\u5229\u70b9\u304c\u591a\u3044":2,"\u3092\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf\u3067":8,"\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u5b9f\u884c\u3057\u305f\u5f8c":23,"\u3092\u30d7\u30ed\u30c3\u30c8\u3057\u3066\u753b\u50cf\u3068\u3057\u3066\u4fdd\u5b58\u3057\u307e\u3059":9,"\u3092\u30d9\u30a4\u30ba\u7684\u306b\u53d6\u308a\u6271\u3046\u4e8b\u3092\u8003\u3048\u308b":12,"\u3092\u30e9\u30f3\u30c0\u30e0\u306a\u5024\u306b\u5909\u66f4\u3057\u76f8\u95a2\u4fc2\u6570\u304c\u3069\u3046\u306a\u308b\u304b5\u901a\u308a\u307b\u3069\u3067\u793a\u305b":25,"\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u4e26\u3073\u66ff\u3048\u3066\u51fa\u529b\u3059\u308b\u30b3\u30fc\u30c9\u3092\u4f5c\u6210\u305b\u3088":25,"\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u751f\u6210":3,"\u3092\u30ea\u30d7\u30b7\u30c3\u30c4\u5b9a\u6570\u3068\u547c\u3076":16,"\u3092\u4e00\u5b9a":16,"\u3092\u4e0e\u3048\u308b\u51e6\u7406\u306b\u306a\u3063\u3066\u3044\u308b":3,"\u3092\u4ed8\u3051\u308b\u3053\u3068\u3067":9,"\u3092\u4ed8\u3057\u305f\u3082\u306e":2,"\u3092\u4ee3\u5165\u3057\u3066":7,"\u3092\u4ee3\u5165\u3057\u3066\u4f7f\u3044\u307e\u3059":4,"\u3092\u4f5c\u3063\u305f\u3053\u3068\u3067\u3057\u305f":3,"\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u3092\u4f5c\u3063\u3066\u307f\u307e\u3059":5,"\u3092\u4f5c\u3063\u3066\u4eba\u6570\u5206\u306e\u9577\u3055\u3092\u6301\u3064\u30ea\u30b9\u30c8\u3092\u4f5c\u3063\u3066\u304b\u3089\u4e2d\u8eab\u3092\u7de8\u96c6\u3057\u3088\u3046\u3068\u8003\u3048\u305f\u5834\u5408":3,"\u3092\u4f5c\u6210":9,"\u3092\u4f5c\u6210\u3057\u3066":3,"\u3092\u4f5c\u6210\u3057\u3066\u8868\u793a":19,"\u3092\u4f5c\u6210\u305b\u3088":25,"\u3092\u4f7f\u3044\u3053\u306a\u3059\u306e\u306f\u5c11\u3005\u30c6\u30af\u30cb\u30ab\u30eb\u306a\u70b9\u3082\u591a\u3044\u306e\u3067":5,"\u3092\u4f7f\u3044\u307e\u3059":[3,5,13],"\u3092\u4f7f\u3046":[3,18],"\u3092\u4f7f\u3046\u3053\u3068\u306b\u3057\u3066":18,"\u3092\u4f7f\u3046\u3068\u3088\u3044":25,"\u3092\u4f7f\u3046\u3068\u59cb\u70b9":22,"\u3092\u4f7f\u3046\u306e\u304c":23,"\u3092\u4f7f\u3046\u5834\u5408":18,"\u3092\u4f7f\u3046\u5834\u5408\u306f":18,"\u3092\u4f7f\u3048\u3070":7,"\u3092\u4f7f\u3063\u305f\u5b9f\u88c5":9,"\u3092\u4f7f\u3063\u3066":[2,3,7,10],"\u3092\u4f7f\u3063\u3066\u3044\u307e\u3059":5,"\u3092\u4f7f\u3063\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u3092\u4f7f\u3063\u3066\u3082ok":9,"\u3092\u4f7f\u3063\u3066\u30ea\u30b9\u30c8\u306b\u5909\u63db\u3059\u308b\u30b9\u30c6\u30c3\u30d7\u304c\u5fc5\u8981\u3067\u3059":9,"\u3092\u4f7f\u3063\u3066\u4e71\u6570\u306e":6,"\u3092\u4f7f\u3063\u3066\u53d6\u308a\u9664\u304f\u3053\u3068\u304c\u3067\u304d\u308b":9,"\u3092\u4f7f\u7528\u3057\u307e\u3059":9,"\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d":3,"\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059":13,"\u3092\u4f7f\u7528\u3059\u308b\u306e\u304c\u30aa\u30b9\u30b9\u30e1":24,"\u3092\u4fdd\u6301\u3059\u308b\u3053\u3068\u3067":19,"\u3092\u4fdd\u6301\u3059\u308c\u3070\u3082\u3068\u306e":19,"\u3092\u5165\u308c\u308b\u65b9\u6cd5":24,"\u3092\u5165\u529b\u3057":13,"\u3092\u5165\u529b\u3059\u308b\u3068":13,"\u3092\u5229\u7528\u3057\u306a\u304c\u3089\u30e9\u30f3\u30c0\u30e0\u306a\u5927\u304d\u3055\u3067\u9032\u3080":6,"\u3092\u5229\u7528\u3059\u308c\u3070\u7c21\u5358\u306b\u5b9f\u884c\u3067\u304d\u308b":7,"\u3092\u524d\u3082\u3063\u3066\u77e5\u308b\u3053\u3068\u306f\u3067\u304d\u305a":8,"\u3092\u52d5\u304b\u3057\u305f\u3068\u304d\u306e\u95a2\u6570\u306e\u5909\u52d5\u5ea6\u5408\u3044\u304c\u3082\u306e\u3059\u3054\u304f\u5927\u304d\u3044":8,"\u3092\u52dd\u624b\u306b\u8a2d\u5b9a\u3057\u305f\u4e0a\u3067\u30e9\u30f3\u30c0\u30e0\u306b\u56de\u7b54\u3092\u4f5c\u6210\u3057\u30d5\u30a9\u30fc\u30e0\u304b\u3089\u81ea\u52d5\u56de\u7b54\u3059\u308bpython\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u66f8\u304d\u307e\u3057\u305f":9,"\u3092\u5341\u5206\u5c0f\u3055\u304f\u53d6\u308c\u3070":16,"\u3092\u534a\u89d2\u30b9\u30da\u30fc\u30b9\u306b\u7f6e\u304d\u63db\u3048\u308b":18,"\u3092\u53c2\u7167":[2,23],"\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044":[5,24],"\u3092\u53c2\u7167\u3059\u308b\u5f62\u3067":3,"\u3092\u53c2\u8003\u306b":23,"\u3092\u53c2\u8003\u306b\u3057\u305f":20,"\u3092\u53c2\u8003\u306b\u3059\u308b\u3053\u3068":6,"\u3092\u53d6\u3063\u3066":6,"\u3092\u53d6\u308a\u306a\u3055\u3044\u3068\u3044\u3046\u547d\u4ee4":22,"\u3092\u53d6\u5f97\u3059\u308b":7,"\u3092\u542b\u3080\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u306a\u3051\u308c\u3070":24,"\u3092\u542b\u3080\u5834\u5408\u306f":25,"\u3092\u542b\u3080\u884c\u304c\u8907\u6570\u3042\u308b\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067\u306f":9,"\u3092\u542b\u3080\u884c\u306b\u5230\u9054\u3059\u308b\u307e\u3067\u306e\u884c\u306f\u7121\u8996\u3057\u3066":9,"\u3092\u547c\u3093\u3067\u3044\u308b\u4e8b\u304c\u308f\u304b\u308b":21,"\u3092\u5897\u3084\u3057\u3066\u3044\u304f":8,"\u3092\u5897\u3084\u3059\u3068\u3060\u3093\u3060\u3093googl":6,"\u3092\u5897\u3084\u305b\u3070":7,"\u3092\u5909\u3048\u305f\u3068\u304d\u306b\u95a2\u6570":8,"\u3092\u5909\u3048\u3066":8,"\u3092\u5909\u3048\u3066\u30c1\u30a7\u30c3\u30af\u3057\u3066\u307f\u3088\u3046":16,"\u3092\u5909\u3048\u3066\u4f55\u56de\u304b\u5b9f\u884c\u3057\u3066\u307f\u3066":6,"\u3092\u5909\u3048\u3066\u8abf\u3079\u308b\u3053\u3068\u3067\u521d\u3081\u3066\u5bfe\u5fdc\u3059\u308b":8,"\u3092\u5909\u3048\u306a\u304c\u3089":8,"\u3092\u5909\u3048\u306a\u304c\u3089\u4f55\u56de\u304b\u6e2c\u5b9a\u3057\u3066":8,"\u3092\u5909\u3048\u306a\u304c\u3089plot\u3057\u3066\u307f\u308b\u3068":6,"\u3092\u5909\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3057\u3066\u307f\u3088\u3046":2,"\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u306f":24,"\u3092\u5909\u66f4\u3059\u308b":24,"\u3092\u5b9a\u7fa9":17,"\u3092\u5b9a\u7fa9\u3057\u3066\u304a\u304f\u3068":7,"\u3092\u5b9a\u7fa9\u3057\u3066\u307f\u307e\u3057\u305f":22,"\u3092\u5b9f\u884c":19,"\u3092\u5b9f\u884c\u3057\u305f\u6642\u70b9\u3067":9,"\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u3092\u5b9f\u884c\u3057wsl\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u30922\u306b\u5909\u66f4\u3059\u308b":24,"\u3092\u5b9f\u884c\u3059\u308b":24,"\u3092\u5b9f\u884c\u3059\u308b\u304b":24,"\u3092\u5c0e\u5165\u3057\u305f\u304c":8,"\u3092\u5e73\u65b9\u5b8c\u6210\u3059\u308b\u3068":8,"\u3092\u5f8c\u3067\u3059\u308b\u306e\u306a\u3089":9,"\u3092\u5fd8\u308c\u308b\u3068":2,"\u3092\u601d\u3044\u51fa\u3057\u3066\u304f\u3060\u3055\u3044":4,"\u3092\u610f\u5473\u3057\u307e\u3059":3,"\u3092\u610f\u8b58\u3057\u306a\u304c\u3089\u5b66\u7fd2\u3057\u3066\u3044\u304f\u3053\u3068\u306b\u3057\u3088\u3046":2,"\u3092\u611f\u3058\u3066\u3082\u3089\u3046\u305f\u3081\u306e\u304a\u8a66\u3057\u7528\u3067\u3059":9,"\u3092\u6253\u3061\u8fbc\u307f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u4f5c\u696d\u3092\u884c\u3046":24,"\u3092\u6271\u3046\u306a\u3069\u306e\u8003\u3048\u65b9\u3082":3,"\u3092\u6291\u3048\u306a\u3051\u308c\u3070\u6b63\u3057\u304f\u5b9f\u88c5\u3059\u308b\u306e\u306f\u96e3\u3057\u3044\u3060\u308d\u3046":19,"\u3092\u62bc\u3057":1,"\u3092\u62bc\u3059":21,"\u3092\u62bc\u3059\u3053\u3068\u3067\u5b9f\u884c\u304c\u3067\u304d\u308b":1,"\u3092\u62bc\u3059\u3053\u3068\u3067\u968f\u6642googl":1,"\u3092\u62bc\u305b\u3070\u826f\u3044":21,"\u3092\u6301\u3064":[3,8],"\u3092\u6301\u30641\u6b21\u5143\u306e\u6b63\u898f\u5206\u5e03\u306b\u3064\u3044\u3066\u6210\u7acb\u3057\u307e\u3059":6,"\u3092\u6301\u3064\u30d9\u30af\u30c8\u30eb":7,"\u3092\u6301\u3064\u6b63\u898f\u5206\u5e03\u3092\u8003\u3048\u305f\u3068\u304d\u306b\u3067\u3082":6,"\u3092\u6301\u3064\u9069\u5f53\u306a\u30ea\u30b9\u30c8\u3092\u5b9a\u7fa9\u3057":25,"\u3092\u6307\u3057":[23,24],"\u3092\u6307\u5b9a\u3057":9,"\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059":5,"\u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\u305f\u3081":6,"\u3092\u6307\u5b9a\u3057\u3066\u4f7f\u3046":9,"\u3092\u6307\u5b9a\u3057\u307e\u3059":[3,4],"\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3067":[6,13],"\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306e":5,"\u3092\u6307\u5b9a\u3059\u308b\u6574\u6570\u306e\u3053\u3068\u3092\u30a4\u30f3\u30c7\u30c3\u30af\u30b9":3,"\u3092\u633f\u5165\u3059\u308b\u306e\u3067\u30d5\u30a1\u30a4\u30eb\u306b\u3042\u308b\u6539\u884c\u8a18\u53f7\u3068\u3042\u308f\u305b\u30662\u56de\u6539\u884c\u3057\u3066\u3057\u307e\u3046":9,"\u3092\u63a1\u7528\u3057\u3066\u3044\u308b":0,"\u3092\u63a1\u7528\u3057\u3066\u3044\u308b\u3088\u3046":9,"\u3092\u63a1\u7528\u3059\u308b\u3053\u3068\u306b\u3057\u3088\u3046":7,"\u3092\u63a8\u5b9a\u3057\u3066\u3044\u304f":16,"\u3092\u63cf\u753b\u3059\u308b":5,"\u3092\u6570\u5024\u7684\u306b\u89e3\u304f\u4e0a\u3067":16,"\u3092\u6587\u5b57\u5217\u3068\u3057\u3066\u4ed6\u306e\u6587\u5b57\u5217\u3068\u7d50\u5408\u3057\u305f\u3044\u3068\u304d\u306f":2,"\u3092\u65e2\u77e5\u3068\u3057\u305f":12,"\u3092\u66f4\u65b0\u3057":15,"\u3092\u66f4\u65b0\u3057\u305f\u63a2\u7d22\u304c\u5fc5\u8981\u3068\u306a\u308b":8,"\u3092\u66f4\u65b0\u3059\u308b\u304b":8,"\u3092\u66f4\u65b0\u3059\u308b\u306a\u3069\u3068\u3044\u3046\u624b\u7d9a\u304d\u306f\u5fc5\u8981\u306a\u3044":8,"\u3092\u66f8\u3044\u305f\u308a\u3059\u308b":1,"\u3092\u66f8\u3044\u305f\u308a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":2,"\u3092\u66f8\u304d\u63db\u3048\u3066\u30d5\u30a1\u30a4\u30eb\u306b\u51fa\u529b\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u3092\u6700\u521d\u306b\u4f5c\u3063\u305f\u3068\u304d\u306b\u306f0\u756a\u76ee\u30681\u756a\u76ee\u306e\u8981\u7d20":3,"\u3092\u6700\u5927\u5316":8,"\u3092\u6700\u5c0f\u5316\u3057\u305f\u3044":8,"\u3092\u6700\u5c0f\u5358\u4f4d\u3068\u3057\u3066\u6570\u5024\u306a\u3069\u5404\u7a2e\u306e\u60c5\u5831\u3092\u8868\u73fe\u3057\u3066\u6271\u3044\u307e\u3059":2,"\u3092\u6700\u9069\u5316\u3059\u308b\u3053\u3068\u3092\u8003\u3048\u3066\u307f\u3088\u3046":7,"\u3092\u691c\u7d22\u3057\u3066\u958b\u304f":23,"\u3092\u6b63\u306b\u5897\u3084\u3059\u3068":8,"\u3092\u6c42\u3081\u308b\u3053\u3068\u306b\u76f8\u5f53\u3059\u308b":7,"\u3092\u6c7a\u3081\u308b":15,"\u3092\u6c7a\u3081\u308b\u3053\u3068\u306b\u76f8\u5f53\u3059\u308b":7,"\u3092\u7406\u89e3\u3057\u3066\u4f7f\u3044\u307e\u3057\u3087\u3046":5,"\u3092\u7406\u89e3\u3057\u3066api\u306b\u9069\u5207\u306a\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u308b\u3068\u3044\u3046\u306e\u306f":13,"\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":25,"\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059":6,"\u3092\u751f\u6210\u3059\u308b\u95a2\u6570\u3067\u3059":3,"\u3092\u7528\u3044\u305f\u66f8\u304d\u65b9\u306e\u307b\u3046\u304c\u30b7\u30f3\u30d7\u30eb\u306a\u306e\u3067":2,"\u3092\u7528\u3044\u305f\u751f\u6210\u30e2\u30c7\u30eb\u306e\u3072\u3068\u3064\u3067":20,"\u3092\u7528\u3044\u3066":[19,25],"\u3092\u7528\u3044\u3066\u5909\u63db\u3059\u308b\u3053\u3068\u3067\u4f5c\u6210\u3055\u308c\u305f\u30b3\u30f3\u30c6\u30f3\u30c4\u306b\u306a\u3063\u3066\u3044\u308b":0,"\u3092\u7528\u3044\u3066\u66f8\u304d\u63db\u3048\u3066\u307f\u3088\u3046":19,"\u3092\u7528\u3044\u3066\u9589\u3058\u305f\u5f62\u3067\u4e0e\u3048\u3089\u308c\u308b":12,"\u3092\u7528\u3044\u308b":17,"\u3092\u7528\u3044\u308b\u3053\u3068\u3067":13,"\u3092\u7528\u3044\u308b\u3068\u826f\u3044":6,"\u3092\u7528\u3044\u308c\u3070":3,"\u3092\u7528\u3044\u308c\u3070\u3088\u3044":6,"\u3092\u7528\u3044\u308c\u3070\u826f\u3044":25,"\u3092\u7528\u610f\u3057":3,"\u3092\u7686\u3055\u3093\u306e\u74b0\u5883\u306b\u7f6e\u304d\u63db\u3048\u305f\u3082\u306e\u304c":24,"\u3092\u76ee\u7684\u95a2\u6570":10,"\u3092\u76f4\u63a5":13,"\u3092\u77e5\u3063\u305f\u4e0a\u3067\u306e\u5b9f\u88c5\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u306b\u6ce8\u610f":9,"\u3092\u77e5\u308a\u305f\u3051\u308c\u3070\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u4e00\u884c\u3067\u53d6\u5f97\u53ef\u80fd\u3067\u3059":3,"\u3092\u77e5\u308b\u3053\u3068\u304c":9,"\u3092\u77e5\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":8,"\u3092\u7a81\u3063\u8fbc\u3093\u3060\u3068\u304d\u306b\u8ddd\u96e2\u3092\u8a08\u7b97\u3057\u3066":4,"\u3092\u7d42\u4e86\u3059\u308b\u969b\u306fctrl":24,"\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u30b3\u30fc\u30c9\u3067\u3082\u5b9f\u88c5\u53ef\u80fd\u306a\u306e\u3067\u767a\u5c55\u7684\u306a\u5185\u5bb9":3,"\u3092\u7de8\u96c6":1,"\u3092\u7e26\u306b\u4e26\u3079\u308b\u3068":17,"\u3092\u7f6e\u3044\u305f\u3068\u4eee\u5b9a\u3057\u3066":9,"\u3092\u8003\u3048\u305f\u304f\u306a\u308b\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059":6,"\u3092\u8003\u3048\u305f\u3068\u304d":8,"\u3092\u8003\u3048\u308b":[12,18],"\u3092\u8003\u3048\u308b\u304c":16,"\u3092\u8003\u3048\u308b\u3053\u3068\u306f\u3067\u304d\u305a":8,"\u3092\u8003\u3048\u308b\u3053\u3068\u3082\u51fa\u6765\u3066":22,"\u3092\u8003\u3048\u308b\u3053\u3068\u3092\u610f\u5473\u3059\u308b":8,"\u3092\u81ea\u4f5c\u3057\u3066\u307f\u307e\u3057\u3087\u3046":4,"\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u308b":25,"\u3092\u8868\u3057\u3066\u3044\u308b":9,"\u3092\u8868\u73fe\u3059\u308b\u3053\u3068\u306b\u306a\u308a":8,"\u3092\u8868\u73fe\u3059\u308b\u306e\u306b":19,"\u3092\u8868\u793a":9,"\u3092\u8868\u793a\u3057\u3066\u307f\u308b\u3068":[7,13],"\u3092\u8907\u6570\u5909\u3048\u306a\u304c\u3089\u6bd4\u8f03\u3057\u305f\u56f3\u3092\u4f5c\u3063\u3066\u307f\u3088\u3046":7,"\u3092\u8981\u3059\u308b\u305f\u3081":19,"\u3092\u8981\u7d20\u306b\u3082\u3064":25,"\u3092\u898b\u3064\u3051\u3066":17,"\u3092\u898b\u3064\u3051\u308b\u3053\u3068\u3068\u8a00\u3044\u63db\u3048\u3089\u308c\u308b":17,"\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046":13,"\u3092\u8996\u8074\u3057\u3066\u3044\u305f\u3060\u3051\u308b\u3068":8,"\u3092\u89b3\u6e2c\u3057\u3066\u77e5\u3063\u3066\u3044\u308b":8,"\u3092\u89e3\u660e\u3059\u308b\u3053\u3068\u3068\u8a00\u3048\u308b":7,"\u3092\u89e3\u6790\u7684\u306b\u89e3\u3051\u306a\u304b\u3063\u305f\u308a\u3059\u308b":8,"\u3092\u8a08\u7b97\u3057":25,"\u3092\u8a08\u7b97\u3057\u305f\u4e0a\u3067print\u305b\u3088":25,"\u3092\u8a2d\u5b9a\u3055\u308c\u305f\u3006\u5207\u307e\u3067\u306b\u63d0\u51fa\u3059\u308b\u3053\u3068":25,"\u3092\u8a2d\u5b9a\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044":16,"\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3082\u51fa\u6765\u307e\u3059":4,"\u3092\u8a66\u3057\u3066\u304a\u3053\u3046":7,"\u3092\u8aac\u660e\u3059\u308b":17,"\u3092\u8aad\u307f":13,"\u3092\u8aad\u307f\u51fa\u3057\u3066\u307f\u307e\u3057\u3087\u3046":13,"\u3092\u8aad\u307f\u51fa\u3059":13,"\u3092\u8abf\u3079\u3066\u307f\u307e\u3057\u3087\u3046":22,"\u3092\u8abf\u3079\u308b\u7814\u7a76\u3092\u3057\u3066\u3044\u308b\u3068\u3057\u3066":8,"\u3092\u8abf\u6574\u3059\u308b\u7cbe\u5ea6\u306b\u9650\u754c\u304c\u3042\u3063\u305f\u308a":8,"\u3092\u8d77\u52d5\u3059\u308b\u3053\u3068\u304c\u3067\u304d":21,"\u3092\u8db3\u3057\u3066\u307f\u308b\u3068":22,"\u3092\u8fd4\u3059\u95a2\u6570\u3092\u4f5c\u6210\u3057\u3066\u307f\u3088\u3046":7,"\u3092\u9038\u8131\u3057\u3066\u3044\u308b":3,"\u3092\u9069\u5207\u306b\u9078\u3079\u308c\u3070":11,"\u3092\u9069\u5b9c":21,"\u3092\u9069\u5f53\u306a\u5024\u3060\u3051\u6e1b\u3089\u3057\u51fa\u76ee\u304c4":8,"\u3092\u9069\u5f53\u306b\u5909\u3048\u3066\u307f\u3088\u3046":7,"\u3092\u9078\u629e\u3057":[23,24],"\u3092\u9078\u629e\u3057\u3066\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3067":24,"\u3092\u9078\u629e\u3059\u308b\u3068":21,"\u3092\u9589\u3058\u308b":24,"\u3092\u958b\u304d":24,"\u3092\u958b\u304f":24,"\u3092\u958b\u304f\u3068":24,"\u3092\u9593\u9055\u3063\u3066\u5168\u89d2\u306b\u3057\u3066\u3057\u307e\u3063\u3066\u305d\u308c\u306b\u6c17\u304c\u4ed8\u304b\u306a\u3044":2,"\u3092\u9664\u304f":13,"\u3092\u9806\u756a\u306b\u7a81\u3063\u8fbc\u3093\u3067\u3044\u304f\u95a2\u6570\u3068\u7406\u89e3\u3057\u3066\u304a\u3051\u3070\u3072\u3068\u307e\u305aok\u3067\u3059":3,"\u3092\u99c6\u4f7f\u3059\u308b\u3053\u3068\u3067":3,"\u3092\uff14\u56de\u8a08\u7b97\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b":16,"\u3092fit\u3057\u306a\u3055\u3044":7,"\u3092n\u6b21\u5143\u30d9\u30af\u30c8\u30eb\u3068\u307f\u306a\u3057\u305f\u3068\u304d\u306e\u7b2c":7,"\u3092python\u3067\u64cd\u4f5c\u3059\u308b\u7c21\u5358\u306a\u65b9\u6cd5\u3092\u5b66\u7fd2\u3059\u308b":9,"\u3092ys\u306b\u5165\u308c\u5b50\u306e\u30ea\u30b9\u30c8\u306b\u3057\u3066\u3044\u304f":7,"\u30a2\u30a4\u30b9\u30af\u30ea\u30fc\u30e0":25,"\u30a2\u30a4\u30b9\u30af\u30ea\u30fc\u30e0\u306e\u6d88\u8cbb\u91cf\u3068\u3082\u306b":5,"\u30a2\u30a6\u30c8\u30d7\u30c3\u30c8":[4,25],"\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u4f5c\u6210\u3084\u30e9\u30a4\u30bb\u30f3\u30b9\u7b49\u306e\u8cfc\u5165\u304c\u5fc5\u8981\u306a\u5916\u90e8\u30b5\u30fc\u30d3\u30b9\u3092\u4f7f\u7528\u3059\u308b\u8ab2\u984c\u3067\u306a\u3044\u3053\u3068":25,"\u30a2\u30b9\u30bf\u30ea\u30b9\u30af":2,"\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u7b49\u306b\u3088\u3063\u3066\u5185\u5bb9\u304c\u4e0d\u6b63\u78ba\u3068\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b\u3053\u3068\u3092\u4e88\u3081\u3054\u4e86\u627f\u3044\u305f\u3060\u304d\u305f\u3044":21,"\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u76f4\u5f8c\u306f\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u3053\u3068\u304c\u3042\u308a\u307e\u3059":5,"\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u3067\u898b\u3066\u307f\u308b\u3068":8,"\u30a2\u30d7\u30ea\u306b\u95a2\u3059\u308b\u5206\u6790":25,"\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u3042\u307e\u308a\u4f9d\u3089\u306a\u3044\u5171\u901a\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8":1,"\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3id\u767a\u884c":13,"\u30a2\u30e1\u30ea\u30ab":6,"\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u7406\u89e3\u7b49\u306e\u76ee\u7684\u3092\u9664\u3044\u3066":8,"\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3092\u81ea\u5206\u3067\u5b9f\u88c5\u3057\u3066\u307f\u3088\u3046":16,"\u30a2\u30f3\u30b1\u30fc\u30c8\u7d50\u679c\u3084\u7523\u696d\u30c7\u30fc\u30bf\u306a\u3069\u304ccsv":9,"\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2":2,"\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3068\u3082\u8a00\u3063\u305f\u308a\u3057\u307e\u3059":10,"\u30a2\u30fc\u30d9\u30eb":15,"\u30a4\u30e1\u30fc\u30b8\u304c\u3064\u304f\u304b\u3068\u601d\u3044\u307e\u3059":8,"\u30a4\u30e1\u30fc\u30b8\u3057\u3084\u3059\u3044\u3088\u3046\u3053\u306e\u4f8b\u306b\u3057\u305f":8,"\u30a4\u30e1\u30fc\u30b8\u3068\u3057\u3066\u306f":6,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u697d":24,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u7d42\u308f\u3063\u305f\u3089":23,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305fpython\u306e\u4f7f\u3044\u65b9":24,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u518d\u8d77\u52d5\u3092\u30af\u30ea\u30c3\u30af":21,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u6210\u529f\u3059\u308c\u3070":24,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u5b8c\u4e86\u3059\u308b":21,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u8a31\u53ef\u3057\u3088\u3046":21,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u4f5c\u696d\u3092\u3059\u308b\u3053\u3068\u306a\u304f":5,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c":21,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u3067\u3042\u308b\u3068\u3059\u308b":21,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u7b49\u306b\u95a2\u3059\u308b\u7a2e\u3005\u306e\u30c8\u30e9\u30d6\u30eb\u306b\u3064\u3044\u3066\u8457\u8005\u306f\u8cac\u4efb\u3092\u8ca0\u308f\u306a\u3044\u3053\u3068\u3082\u3042\u308f\u305b\u3066\u3054\u4e86\u627f\u3044\u305f\u3060\u304d\u305f\u3044":21,"\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u30e2\u30fc\u30c9\u3068\u3082":24,"\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9":2,"\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u304b\u30b7\u30fc\u30c8\u540d\u306e\u6587\u5b57\u5217\u3067\u884c\u3046":18,"\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3068\u8981\u7d20\u3092\u540c\u6642\u306b\u53d6\u5f97\u3057\u3066\u4f7f\u3044\u305f\u3044\u3068\u304d\u306b\u306f":3,"\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3068\u898b\u5206\u3051\u304c\u4ed8\u304d\u3065\u3089\u3044\u3053\u3068\u306b\u6ce8\u610f":18,"\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306e\u30eb\u30fc\u30d7\u3092\u56de\u3057\u3066\u30ea\u30b9\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b":3,"\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3084\u30b9\u30e9\u30a4\u30b9":25,"\u30a4\u30f3\u30c7\u30f3\u30c8\u304c1\u30d6\u30ed\u30c3\u30af\u4e0b\u3052\u3089\u308c\u305f\u64cd\u4f5c\u3092\u5b9f\u884c\u3057\u307e\u3059\u306e\u3067":3,"\u30a4\u30f3\u30c7\u30f3\u30c8\u3067\u30d6\u30ed\u30c3\u30af\u3092\u5b9a\u7fa9\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u3067\u77ed\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c":4,"\u30a4\u30f3\u30c7\u30f3\u30c8\u306b\u3088\u3063\u3066\u3069\u3053\u307e\u3067\u304c\u95a2\u6570\u306e\u30d6\u30ed\u30c3\u30af\u304b\u308f\u304b\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059":4,"\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u4e00\u5f8b\u3067\u6d88\u3059":9,"\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u4e0b\u3052\u308b\u3053\u3068\u3067\u8868\u73fe\u3057\u307e\u3059":3,"\u30a4\u30f3\u30d7\u30c3\u30c8":[4,25],"\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059":13,"\u30a6\u30a3\u30f3\u30c9\u30a6\u304c\u958b\u3044\u305f\u3068\u304d\u306berror":23,"\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304f\u3088\u3046\u306a\u64cd\u4f5c\u304c\u4f7f\u3048\u306a\u3044":24,"\u30a6\u30a4\u30eb\u30b9\u306e\u5909\u7570":7,"\u30a8\u30a4\u30ea\u30a2\u30b9":21,"\u30a8\u30a4\u30ea\u30a2\u30b9\u3068\u306f":24,"\u30a8\u30a4\u30ea\u30a2\u30b9\u306a\u3069\u306e\u60c5\u5831\u3092\u66f8\u304f\u30d5\u30a1\u30a4\u30eb":24,"\u30a8\u30a4\u30ea\u30a2\u30b9\u306e\u8a2d\u5b9a\u306a\u3069\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u308b":24,"\u30a8\u30a4\u30ea\u30a2\u30b9\u3092\u8a2d\u5b9a\u3057\u3066\u5225\u306e\u306e\u30b3\u30de\u30f3\u30c9":21,"\u30a8\u30af\u30b9\u30af\u30e9\u30e1\u30fc\u30b7\u30e7\u30f3\u30de\u30fc\u30af":9,"\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u30fc":24,"\u30a8\u30af\u30bb\u30eb\u3060\u30682\u884c\u76ee":18,"\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb":9,"\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb\u3084\u753b\u50cf":1,"\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u898b\u308b\u3068\u308f\u304b\u308b\u3088\u3046\u306b":18,"\u30a8\u30af\u30bb\u30eb\u7b49\u306e\u64cd\u4f5c":5,"\u30a8\u30c7\u30a3\u30bf":3,"\u30a8\u30c7\u30a3\u30bf\u306e\u4f7f\u3044\u65b9\u3092\u8abf\u3079\u3066\u304b\u3089\u5b9f\u884c\u3059\u308b\u306a\u3069":24,"\u30a8\u30c7\u30a3\u30bf\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb":24,"\u30a8\u30c7\u30a3\u30bf\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b":24,"\u30a8\u30c7\u30a3\u30bf\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3082\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u76f4\u4e0b\u306e\u96a0\u3057\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\u308b\u3053\u3068\u304c\u591a\u3044":24,"\u30a8\u30c7\u30a3\u30bf\u306f\u69d8\u3005\u306a\u3082\u306e\u304c\u3042\u308b\u304c":21,"\u30a8\u30cd\u30eb\u30ae\u30fc":18,"\u30a8\u30e9\u30fc":3,"\u30a8\u30e9\u30fc\u304c\u3067\u305f\u304b\u3068\u601d\u3044\u307e\u3059":3,"\u30a8\u30e9\u30fc\u304c\u51fa\u305f\u5834\u5408\u306f\u305d\u306e\u30ed\u30b0\u3084\u81ea\u8eab\u304c\u8a66\u3057\u305f\u5de5\u7a0b\u306b\u3064\u3044\u3066":25,"\u30a8\u30e9\u30fc\u304c\u51fa\u306a\u3051\u308c\u3070\u304a\u305d\u3089\u304f\u5909\u6570":5,"\u30a8\u30e9\u30fc\u304c\u51fa\u308b":3,"\u30a8\u30e9\u30fc\u304c\u8d77\u3053\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u3092\u56de\u907f\u3059\u308b\u3088\u3046\u306a\u4ed5\u7d44\u307f\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u81ea\u4f53\u306b\u5b9f\u88c5\u3057\u305f\u3044":3,"\u30a8\u30e9\u30fc\u306b\u306f":14,"\u30a8\u30e9\u30fc\u306e\u539f\u56e0\u304c\u308f\u304b\u3089\u306a\u3044\u5834\u5408\u306f":25,"\u30a8\u30e9\u30fc\u306e\u539f\u56e0\u306b\u306a\u308b\u3053\u3068":1,"\u30a8\u30e9\u30fc\u306f\u51fa\u306a\u3044\u3051\u308c\u3069\u610f\u56f3\u3057\u305f\u51fa\u529b\u306b\u306a\u3089\u306a\u3044\u3068\u3044\u3063\u305f\u4e8b\u304c\u8d77\u3053\u308a\u3048\u308b\u306e\u3067":2,"\u30a8\u30e9\u30fc\u3092\u7121\u8996\u3057\u3066\u3068\u306b\u304b\u304f\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u6700\u5f8c\u307e\u3067\u5b9f\u884c\u3055\u305b\u305f\u3044":3,"\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u5f93\u3063\u3066\u5206\u985e\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059":14,"\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6dfb\u3048\u3066\u6559\u54e1\u306b\u5c0b\u306d\u3088\u3046":25,"\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8aad\u3080\u3068\u5206\u304b\u308b\u3088\u3046\u306b":2,"\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u7b49\u304c\u306a\u3051\u308c\u3070ok":23,"\u30a8\u30e9\u30fc\u7b49\u304c\u8868\u793a\u3055\u308c\u305a":24,"\u30a8\u30f3\u30b3\u30fc\u30c9":17,"\u30a8\u30f3\u30bf\u30fc\u3092\u62bc\u3059\u3068":24,"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8":4,"\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u3064\u3051\u308c\u3070\u3088\u3044":24,"\u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0\u30b7\u30b9\u30c6\u30e0":23,"\u30aa\u30fc\u30c8\u30a8\u30f3\u30b3\u30fc\u30c0\u3067\u306f\u3053\u306e\u3088\u3046\u306a\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u51fa\u529b":17,"\u30aa\u30fc\u30c8\u30a8\u30f3\u30b3\u30fc\u30c0\u306fpca\u3092\u7279\u6b8a\u306a\u5834\u5408\u3068\u3057\u3066\u542b\u3080\u305f\u3081pca\u306e\u62e1\u5f35\u3068\u307f\u306a\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059":17,"\u30aa\u30fc\u30d7\u30f3\u30c7\u30fc\u30bf":25,"\u30ab\u30bf\u30ab\u30ca":2,"\u30ab\u30eb\u30c0\u30ce\u306e\u516c\u5f0f":15,"\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3042\u308baa":24,"\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30d1\u30b9\u3092\u8868\u793a\u3059\u308b":21,"\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30d5\u30a1\u30a4\u30eb\u4e00\u89a7\u3092\u8868\u793a\u3059\u308b":21,"\u30ab\u30f3\u30de":9,"\u30ab\u30f3\u30de\u304c\u3042\u308b\u3068\u304d\u306f\u30ab\u30f3\u30de\u3067\u5206\u5272\u3059\u308b":9,"\u30ab\u30f3\u30de\u304c\u30d4\u30ea\u30aa\u30c9\u306b\u306a\u3063\u3066\u3044\u3066":5,"\u30ab\u30f3\u30de\u304c\u30d4\u30ea\u30aa\u30c9\u306b\u306a\u308b\u306a\u3069\u3057\u3066":5,"\u30ab\u30f3\u30de\u3067\u5206\u5272":9,"\u30ab\u30f3\u30de\u3067\u533a\u5207\u308b\u3053\u3068\u3067\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u30ab\u30f3\u30de\u533a\u5207\u308a\u306e\u30c6\u30ad\u30b9\u30c8":9,"\u30ab\u30f3\u30de\u533a\u5207\u308a\u306e\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb":9,"\u30ab\u30fc\u30cd\u30eb\u66f4\u65b0\u30d7\u30ed\u30b0\u30e9\u30e0":[23,24],"\u30ab\u30fc\u30cd\u30eb\u95a2\u6570\u306e\u9078\u629e\u3068\u4f9d\u5b58\u6027":11,"\u30ac\u30a6\u30b7\u30a2\u30f3":6,"\u30ac\u30a6\u30b9\u5206\u5e03":6,"\u30ac\u30a6\u30b9\u5206\u5e03\u306e\u6027\u8cea\u304b\u3089":12,"\u30ac\u30a6\u30b9\u7a4d\u5206":6,"\u30ac\u30a6\u30b9\u904e\u7a0b\u306e\u30ab\u30fc\u30cd\u30eb":11,"\u30ac\u30a6\u30b9\u904e\u7a0b\u306e\u57fa\u672c\u3084\u8a73\u7d30\u306f":11,"\u30ad\u30e3\u30d9\u30c4":18,"\u30ad\u30e3\u30f3\u30d0\u30b9\u306e\u4e0a\u306b\u5c0f\u3055\u306a\u4f5c\u696d\u9818\u57df":5,"\u30ad\u30e3\u30f3\u30d0\u30b9\u3092\u9589\u3058\u308b":5,"\u30ad\u30fc\u3068\u5024\u306e\uff12\u3064\u306e\u8981\u7d20\u3092\u3042\u308f\u305b\u6301\u3064\u578b\u3067\u3059":3,"\u30ad\u30fc\u306b\u8aad\u307f\u66ff\u3048\u3066\u304f\u3060\u3055\u3044":1,"\u30ad\u30fc\u3092\u62bc\u3057":21,"\u30af\u30c3\u30bf\u6cd5\u306a\u3069\u3068\u3082\u547c\u3070\u308c\u308b\u3053\u306e\u65b9\u6cd5\u306f":16,"\u30af\u30e9\u30b9\u306b\u3064\u3044\u3066\u306e\u8aac\u660e\u3092\u884c\u308f\u306a\u3044\u305f\u3081":4,"\u30af\u30ea\u30a8\u30a4\u30c6\u30a3\u30d6":15,"\u30b0\u30b0\u308b":5,"\u30b0\u30b0\u308c\u3070\u81ea\u5206\u3067\u3060\u3044\u305f\u3044\u89e3\u6c7a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u30b0\u30e9\u30d5\u304c\u63cf\u753b\u3067\u304d\u305f\u3089":8,"\u30b0\u30e9\u30d5\u306b\u3057\u3066\u307f\u308b":10,"\u30b0\u30e9\u30d5\u306b\u3057\u3066\u307f\u308b\u3068":10,"\u30b0\u30e9\u30d5\u306e\u63cf\u753b\u70b9\u3092\u751f\u6210\u3057":25,"\u30b0\u30e9\u30d5\u3092\u306a\u3081\u3089\u304b\u306b\u3059\u308b\u305f\u3081\u306b":7,"\u30b0\u30e9\u30d5\u3092\u63cf\u3044\u3066\u307f\u308b\u3068\u3053\u3093\u306a\u611f\u3058":7,"\u30b0\u30e9\u30d5\u3092\u69cb\u6210\u3059\u308b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u900f\u904e\u5ea6\u3092\u8a2d\u5b9a\u3059\u308b":25,"\u30b0\u30e9\u30d5\u3092\u9023\u7d9a\u7684\u306b\u7dda\u3067\u7e4b\u304e\u305f\u3044\u3068\u304d\u306a\u3069\u306b\u91cd\u5b9d\u3057\u307e\u3059":22,"\u30b0\u30e9\u30d5\u9593\u306e\u7e26\u306e\u9593\u9694hspace\u3092default\u5024":6,"\u30b0\u30ec\u30fc\u30b9\u30b1\u30fc\u30eb\u3067\u8868\u73fe\u3059\u308b\u306a\u3089":19,"\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570":4,"\u30b0\u30fc":6,"\u30b2\u30fc\u30e0\u306e\u30c7\u30fc\u30bf\u306a\u3069\u306f\u8457\u4f5c\u6a29\u7b49\u306e\u7406\u7531\u304b\u3089\u591a\u304f\u306e\u5834\u5408\u4e0d\u53ef":25,"\u30b2\u30fc\u30e0\u3084":6,"\u30b2\u30fc\u30e0\u3092\u958b\u59cb":3,"\u30b3\u30a4\u30f3\u306e\u8868\u88cf\u3092\u6c7a\u3081\u308b":3,"\u30b3\u30a4\u30f3\u3092\u6295\u3052\u3066\u6c7a\u3081\u308b\u306e\u306f":3,"\u30b3\u30a4\u30f3\u3092\u6295\u3052\u3066\u8868\u304c\u51fa\u305f\u3089\u639b\u3051\u91d1\u30922\u500d\u306b\u3059\u308b":3,"\u30b3\u30b3\u306f\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u6271\u3044":4,"\u30b3\u30b3\u3092\u8ffd\u52a0\u3057\u305f":6,"\u30b3\u30b9\u30c8\u304c\u9ad8\u3044\u5834\u5408\u306f\u3042\u307e\u308a\u826f\u3044\u65b9\u7b56\u3067\u306f\u306a\u3044":11,"\u30b3\u30c4":19,"\u30b3\u30d4\u30fc":9,"\u30b3\u30d4\u30fc\u3092\u7de8\u96c6\u3057\u3066\u3044\u308b\u5834\u5408\u306f":1,"\u30b3\u30de\u30f3\u30c9":[9,21],"\u30b3\u30de\u30f3\u30c9\u3067":5,"\u30b3\u30de\u30f3\u30c9\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a":19,"\u30b3\u30de\u30f3\u30c9\u3067\u73fe\u5728\u5730\u3092\u78ba\u8a8d\u3057\u3066\u8a2d\u5b9a\u3057\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u307e\u3057\u3087\u3046":24,"\u30b3\u30de\u30f3\u30c9\u3067\u884c\u3046\u3053\u3068\u3082\u3067\u304d\u308b":9,"\u30b3\u30de\u30f3\u30c9\u3067python\u306e\u5bfe\u8a71\u74b0\u5883\u3092\u8d77\u52d5\u3057\u3066\u4f7f\u3046":21,"\u30b3\u30de\u30f3\u30c9\u306a\u3069\u306e\u6587\u5b57\u5217\u306e\u307f\u3092\u7528\u3044\u3066\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3092\u64cd\u4f5c\u3059\u308b\u74b0\u5883\u3092\u6307\u3059\u8a00\u8449\u3067\u3059":23,"\u30b3\u30de\u30f3\u30c9\u306a\u3069\u306e\u8868\u793a\u5bfe\u8c61\u5916\u3068\u306a\u308b":24,"\u30b3\u30de\u30f3\u30c9\u306a\u3069\u306fcui\u306e\u5229\u4fbf\u6027\u3092\u8868\u3059\u4e00\u4f8b\u306b\u306a\u3063\u3066\u3044\u3066":23,"\u30b3\u30de\u30f3\u30c9\u306b":24,"\u30b3\u30de\u30f3\u30c9\u306b\u7d9a\u3051\u3066\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5165\u529b\u3057":21,"\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067":24,"\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8":24,"\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u3084powershell\u3068\u3044\u3063\u305fwindows\u72ec\u81ea\u306ecui\u306b\u52a0\u3048\u3066":23,"\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u4e0a\u3067":24,"\u30b3\u30e2\u30f3\u30ba":15,"\u30b3\u30ed\u30ca\u30a6\u30a4\u30eb\u30b9\u306e\u611f\u67d3\u8005\u6570\u306e\u63a8\u79fb\u306f\u65e5\u4ed8\u306b\u5bfe\u3059\u308b\u95a2\u6570\u3068\u3057\u3066\u793a\u3055\u308c\u308b\u4e8b\u304c\u591a\u3044":7,"\u30b3\u30ed\u30ca\u30a6\u30a4\u30eb\u30b9\u306e\u611f\u67d3\u8005\u6570\u306e\u63a8\u79fb\u3082\u5358\u306a\u308b\u6642\u9593\u306b\u5bfe\u3059\u308b\uff11\u5909\u6570\u306e\u95a2\u6570\u3067\u3042\u308b\u306f\u305a\u306a\u3069\u304c\u306a\u304f":7,"\u30b3\u30ed\u30f3":[3,4],"\u30b3\u30ed\u30f3\u306e\u3064\u3051\u5fd8\u308c":14,"\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30d1\u30cd\u30eb":23,"\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30d1\u30cd\u30eb\u304b\u3089":24,"\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30d1\u30cd\u30eb\u306e":23,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf":23,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u304c\u6271\u3048\u308b\u6709\u9650\u306e\u7cbe\u5ea6\u306e\u3082\u3068\u3067\u5341\u52062":2,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u304c\u7121\u9650\u306e\u7cbe\u5ea6\u3092\u6301\u3063\u3066\u3044\u308c\u3070":2,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3067\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3084\u30d1\u30b9\u3092\u6307\u5b9a\u3059\u308b\u3068\u304d\u306f\u901a\u5e38\u3053\u306e\u3088\u3046\u306a":5,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3067\u4f55\u304b\u306e\u51e6\u7406\u3092\u5b9f\u73fe\u3057\u305f\u3044\u3068\u304d\u3084":6,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3067\u5b9f\u6570\u5024\u3092\u8868\u73fe\u3059\u308b\u969b":2,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3067\u78ba\u7387":6,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306b\u3068\u3063\u3066\u306f\u5909\u6570\u3067\u306f\u306a\u304f":2,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306b\u306f":9,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306b\u30b2\u30fc\u30e0\u306e\u64cd\u4f5c\u3092\u3084\u3089\u305b\u3066":6,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306e":23,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306e\u4e0a\u3067\u3082\u5b9f\u73fe\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u305a":6,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u3092\u7528\u3044\u305f\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u81f3\u308b\u3068\u3053\u308d\u306b\u73fe\u308c\u308b\u914d\u5217\u306e\u64cd\u4f5c\u3084":22,"\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u3067\u306f":2,"\u30b3\u30f3\u30de\u533a\u5207\u308a\u306e\u30c6\u30ad\u30b9\u30c8":9,"\u30b3\u30fc\u30b7\u30fc\u30b7\u30e5\u30ef\u30eb\u30c4\u306e\u4e0d\u7b49\u5f0f\u3092\u7528\u3044\u308b\u304b":7,"\u30b3\u30fc\u30c9":[1,3],"\u30b3\u30fc\u30c9\u3067\u5b9f\u73fe\u3057\u305f\u3044\u4f5c\u696d\u304c\u5927\u304d\u304f\u306a\u308b\u306b\u3064\u308c":21,"\u30b3\u30fc\u30c9\u306b\u3057\u3066\u3044\u304f\u306e\u304c\u3088\u3044\u3067\u3057\u3087\u3046":9,"\u30b3\u30fc\u30c9\u306b\u30d0\u30b0\u304c\u3042\u308b\u305b\u3044\u306a\u306e\u304b\u3092\u7279\u5b9a\u3057\u305f\u304f\u306a\u308b":6,"\u30b3\u30fc\u30c9\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6539\u5584\u3059\u308b\u4f5c\u696d\u304c\u5fc5\u8981\u3068\u306a\u308a\u307e\u3059":3,"\u30b3\u30fc\u30c9\u306e\u4e2d\u3067\u4e00\u5ea6\u8a08\u7b97\u3057\u3066":4,"\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u304c\u4f4e\u304f\u306a\u3063\u305f\u308a\u30df\u30b9\u306e\u539f\u56e0\u306b\u306a\u308b\u306e\u3067":3,"\u30b3\u30fc\u30c9\u306e\u5b9f\u884c\u306e\u305f\u3073\u306bpip\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u4f5c\u696d\u3092\u884c\u3046\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093":23,"\u30b3\u30fc\u30c9\u306e\u9aa8\u7d44\u307f\u3092\u4f5c\u3063\u3066\u304f\u308c\u308b\u305f\u3081\u5927\u5e45\u306b\u4f5c\u696d\u304c\u697d\u306b\u306a\u308b\u3053\u3068\u3082\u591a\u3044":21,"\u30b3\u30fc\u30c9\u3084\u30ce\u30fc\u30c8\u304c\u8907\u96d1\u306b\u306a\u3063\u3066\u304f\u308b\u3068":2,"\u30b3\u30fc\u30c9\u3092\u30b9\u30c3\u30ad\u30ea\u3055\u305b\u308b\u4e0a\u3067\u91cd\u8981\u3067\u3059":3,"\u30b3\u30fc\u30c9\u3092\u4ee5\u4e0b\u306b\u8a18\u8f09":25,"\u30b3\u30fc\u30c9\u3092\u4f5c\u308b\u4e8b\u304c\u3067\u304d\u308b":7,"\u30b3\u30fc\u30c9\u3092\u4f5c\u6210\u305b\u3088":25,"\u30b3\u30fc\u30c9\u3092\u5927\u5e45\u306b\u7c21\u7565\u5316\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b\u305f\u3081":5,"\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u524d\u306b":3,"\u30b3\u30fc\u30c9\u3092\u62e1\u5f35\u3057\u3066":13,"\u30b3\u30fc\u30c9\u3092\u7c21\u7565\u5316\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":4,"\u30b3\u30fc\u30c9\u3092\u7de8\u96c6\u3057\u3066\u3044\u308b\u3046\u3061\u306b":3,"\u30b3\u30fc\u30c9\u3092\u7de8\u96c6\u3059\u308b\u969b\u306b\u65e5\u672c\u8a9e\u306e\u5909\u6570\u306a\u3069\u3092\u5229\u7528\u3057\u3066\u3044\u308b\u3068":2,"\u30b3\u30fc\u30c9\u30bb\u30eb":25,"\u30b3\u30fc\u30c9\u30bb\u30eb\u3067\u306f\u306a\u308b\u3079\u304f\u534a\u89d2\u82f1\u6570\u5b57\u306e\u307f\u3092\u4f7f\u3046\u3068\u3044\u3046\u306e\u304c":2,"\u30b3\u30fc\u30c9\u30bb\u30eb\u306b\u306f\u30b3\u30e1\u30f3\u30c8\u3092\u9664\u3044\u3066":1,"\u30b3\u30fc\u30c9\u30bb\u30eb\u306b\u30de\u30a6\u30b9\u30aa\u30fc\u30d0\u30fc\u3057\u305f\u969b\u306b\u73fe\u308c\u308b\u518d\u751f\u30dc\u30bf\u30f3\u306e\u3088\u3046\u306a\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u304b":1,"\u30b3\u30fc\u30c9\u30bb\u30eb\u306b\u8a18\u8ff0\u3057\u305fpython\u30b3\u30fc\u30c9\u306f":1,"\u30b3\u30fc\u30c9\u30bb\u30eb\u306e\u5b9f\u884c\u7d50\u679c\u304c\u8868\u793a\u3055\u308c\u308b":21,"\u30b3\u30fc\u30c9\u30bb\u30eb\u306e\u5de6\u5074\u306b\u3042\u308b":21,"\u30b3\u30fc\u30c9\u30bb\u30eb\u306e\u5de6\u5074\u306b\u8868\u793a\u3055\u308c\u308b\u62ec\u5f27":2,"\u30b3\u30fc\u30c9\u30bb\u30eb\u3092\u5b9f\u884c\u3059\u308b\u306b\u306f":21,"\u30b4\u30df\u7bb1\u3092\u7d4c\u7531\u3057\u306a\u3044\u306e\u3067\u4f7f\u7528\u306b\u306f\u6ce8\u610f\u3059\u308b\u3053\u3068":21,"\u30b4\u30df\u7bb1\u3092\u7d4c\u7531\u3059\u308b\u547d\u4ee4\u306b\u7f6e\u304d\u63db\u3048\u305f\u308armtrash":24,"\u30b5\u30a4\u30b3\u30ed\u306e\u4f8b\u306e\u5834\u5408\u3060\u3068":3,"\u30b5\u30a4\u30b3\u30ed\u306f":6,"\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u3063\u3066":8,"\u30b5\u30af\u30c3\u3068\u53d6\u5f97\u3067\u304d\u308b\u306e\u304c\u4fbf\u5229\u306a\u3068\u304d\u3082\u3042\u308a\u307e\u3059":3,"\u30b5\u30b6":6,"\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u6307\u5b9a\u3068\u306a\u308a\u30a8\u30e9\u30fc\u306b\u306a\u308b\u304c":21,"\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0":[6,11],"\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u6cd5\u306a\u3069\u304c\u5fc5\u8981\u306b\u306a\u308b\u304c":12,"\u30b5\u30f3\u30d7\u30eb\u3042\u3063\u3066\u3082\uff14\u6841\u304f\u3089\u3044\u3057\u304b\u5408\u3063\u3066\u3044\u306a\u3044":6,"\u30b5\u30f3\u30d7\u30eb\u306e\u6570\u3092\u6307\u5b9a\u3057":6,"\u30b5\u30f3\u30d7\u30eb\u3092\u4f7f\u3046\u306e\u3067\u306f\u306a\u304f":6,"\u30b5\u30f3\u30d7\u30eb\u6570\u304c\u5897\u3048\u308b\u306b\u3064\u308c\u3066":6,"\u30b5\u30f3\u30d7\u30eb\u6570\u3092\u4e00\u6841\u305a\u3064\u5897\u3084\u3059":6,"\u30b5\u30f3\u30d7\u30eb\u6570\u3092\u4f55\u901a\u308a\u304b\u4f5c\u3063\u3066":6,"\u30b5\u30fc\u30d0\u30fc\u306b\u8ca0\u8377\u3092\u304b\u3051\u306a\u3044":13,"\u30b5\u30fc\u30d0\u30fc\u7528\u9014\u306e\u30de\u30b7\u30f3\u3084":23,"\u30b5\u30fc\u30d3\u30b9\u7523\u696d\u52d5\u5411\u8abf\u67fb":13,"\u30b5\u30fc\u30d3\u30b9\u7523\u696d\u8a08":13,"\u30b7\u30b0\u30e2\u30a4\u30c9\u95a2\u6570":10,"\u30b7\u30b0\u30e2\u30a4\u30c9\u95a2\u6570\u306e\u5fae\u5206":10,"\u30b7\u30b9\u30c6\u30e0\u306b\u3088\u3063\u3066\u306f":21,"\u30b7\u30b9\u30c6\u30e0\u30d5\u30a1\u30a4\u30eb\u304c\u5165\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u591a\u3044\u305f\u3081":9,"\u30b7\u30b9\u30c6\u30e0\u30d5\u30a1\u30a4\u30eb\u306b\u4f59\u8a08\u306a\u6587\u5b57\u3092\u66f8\u304d\u8fbc\u3093\u3067\u3057\u307e\u3046\u5371\u967a\u6027\u304c\u3042\u308b\u306e\u3067":24,"\u30b7\u30e3\u30fc\u30d9\u30c3\u30c8\u306e\u5e73\u5747\u6d88\u8cbb\u91d1\u984d":7,"\u30b7\u30e3\u30fc\u30d9\u30c3\u30c8\u306e\u6d88\u8cbb\u91cf":25,"\u30b7\u30e3\u30fc\u30d9\u30c3\u30c8\u306e\u6d88\u8cbb\u91d1\u984d":[5,7],"\u30b7\u30f3\u30b0\u30eb\u30af\u30a9\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3":2,"\u30b7\u30fc\u30c8":9,"\u30b7\u30fc\u30c8\u3092\u6307\u5b9a\u3059\u308b\u306e\u306f":18,"\u30b7\u30fc\u30c8\u540d":[9,18],"\u30b9\u30ab\u30e9\u30fc":7,"\u30b9\u30ab\u30e9\u30fc\u500d":22,"\u30b9\u30ab\u30e9\u30fc\u5024\u306e\u5834\u5408":18,"\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u306a\u3069\u3082\u6d3b\u7528\u3057\u306a\u304c\u3089\u3067\u304d\u308b\u3060\u3051\u8a73\u7d30\u306b\u5831\u544a\u3059\u308b\u3053\u3068":25,"\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3092\u53ef\u80fd\u3068\u3059\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u591a\u6570\u5b58\u5728\u3059\u308b":13,"\u30b9\u30b1\u30fc\u30eb\u306e\u5927\u304d\u306a\u91cf\u306b\u5b66\u7fd2\u304c\u5f15\u3063\u5f35\u3089\u308c\u308b":10,"\u30b9\u30b3\u30fc\u30d7\u306e\u6982\u5ff5\u3092\u7372\u5f97\u3059\u308b":4,"\u30b9\u30bf\u30fc\u30c8\u30e1\u30cb\u30e5\u30fc\u304b\u3089":23,"\u30b9\u30bf\u30fc\u30c8\u30e1\u30cb\u30e5\u30fc\u304b\u3089python\u3092\u8d77\u52d5\u3057\u3066\u3082\u540c\u3058":24,"\u30b9\u30bf\u30fc\u30c8\u30e1\u30cb\u30e5\u30fc\u304b\u3089terminal\u306a\u3069\u3068\u6253\u3061\u8fbc\u3093\u3067":23,"\u30b9\u30bf\u30fc\u30c8\u30e1\u30cb\u30e5\u30fc\u304b\u3089ubuntu\u3068\u691c\u7d22\u3057\u3066ubuntu\u3092\u958b\u3044\u3066\u3082\u826f\u3044\u3057":23,"\u30b9\u30bf\u30fc\u30c8\u30e1\u30cb\u30e5\u30fc\u304b\u3089ubuntu\u3092\u8d77\u52d5\u3059\u308b":24,"\u30b9\u30bf\u30fc\u30c8\u30e1\u30cb\u30e5\u30fc\u304b\u3089window":24,"\u30b9\u30bf\u30fc\u30c8\u30e1\u30cb\u30e5\u30fc\u304b\u3089xlaunch\u3092\u5b9f\u884c":24,"\u30b9\u30c6\u30c3\u30d7\u306e\u60c5\u5831\u3092\u4f7f\u3046":16,"\u30b9\u30c6\u30c3\u30d7\u306eab\u6cd5":16,"\u30b9\u30c6\u30c3\u30d7\u3092\u5b9a\u7fa9":6,"\u30b9\u30d1\u30b3\u30f3\u306a\u3069\u306e\u8a08\u7b97\u6a5f\u74b0\u5883\u3067\u306f\u57fa\u672c\u7684\u306blinux\u304cos\u3068\u3057\u3066\u63a1\u7528\u3055\u308c\u3066\u3044\u308b":23,"\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306a\u3069\u306f":9,"\u30b9\u30da\u30fc\u30b9\u3084\u6539\u884c\u3082\u3057\u304f\u306f\u30bf\u30d6\u3054\u3068\u306b\u6587\u5b57\u5217\u3092\u533a\u5207\u3063\u305f\u30ea\u30b9\u30c8\u3092\u8fd4\u3059":9,"\u30b9\u30da\u30fc\u30b9\u30ad\u30fc\u3092\u7528\u3044\u3066\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u6307\u5b9a\u3059\u308b\u306e\u3068\u3067":3,"\u30b9\u30da\u30fc\u30b9\u8ad6\u4e89":3,"\u30b9\u30e9\u30a4\u30b9\u3067\u6307\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b":18,"\u30b9\u30e9\u30a4\u30b9\u306e\u5834\u5408\u306f":18,"\u30b9\u30e9\u30a4\u30b9\u306e\u7d42\u70b9\u306f\u542b\u307e\u308c\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f":18,"\u30b9\u30e9\u30c3\u30b7\u30e5":9,"\u30b9\u30e9\u30c3\u30b7\u30e5\u3092\u4f7f\u7528":9,"\u30b9\u30fc\u30d1\u30fc\u30b5\u30a4\u30a8\u30f3\u30b9\u30cf\u30a4\u30b9\u30af\u30fc\u30eb":24,"\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u7ba1\u7406":1,"\u30bb\u30df\u30b3\u30ed\u30f3":2,"\u30bb\u30eb\u304c\u7d50\u5408\u3055\u308c\u305f\u308a\u3057\u3066\u3044\u308b\u305f\u3081":18,"\u30bb\u30eb\u306e\u30b3\u30fc\u30c9\u3092\u9010\u6b21\u5b9f\u884c\u3057\u305f\u5834\u5408":2,"\u30bb\u30eb\u306e\u5b9f\u884c\u3092\u505c\u6b62\u3057\u305f\u3044\u5834\u5408":1,"\u30bb\u30eb\u306e\u7d50\u5408":18,"\u30bb\u30eb\u306e\u7d50\u5408\u306b\u3088\u308a":18,"\u30bb\u30eb\u3092\u307e\u305f\u3044\u3067\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3042\u308b\u306e\u3067":2,"\u30bb\u30eb\u3092\u8de8\u3044\u3067\u5b9f\u884c\u3057\u305f\u308a\u3059\u308b\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u306e\u7de8\u96c6":14,"\u30bb\u30eb\u3092\u8de8\u3044\u3067\u5b9f\u884c\u3059\u308b\u969b\u306e\u6ce8\u610f\u70b9\u304c\u308f\u304b\u308b":25,"\u30bb\u30eb\u5185\u3067":1,"\u30bc\u30ed":5,"\u30bc\u30ed\u3060\u3088":3,"\u30bc\u30ed\u70b9":15,"\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2":25,"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u7de8\u96c6":24,"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u7de8\u96c6\u3057\u306a\u304c\u3089\u5b9f\u884c\u3057\u305f\u308a\u3068\u3044\u3063\u305f\u4f5c\u696d\u304c\u3057\u3084\u3059\u3044":21,"\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb":1,"\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u7de8\u96c6\u3068\u5b9f\u884c":24,"\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306f":0,"\u30bf\u30a4\u30c8\u30eb":13,"\u30bf\u30a4\u30d7":2,"\u30bf\u30b0\u306a\u3069\u3092\u53d6\u308a\u9664\u304f\u3068\u3044\u3063\u305f\u64cd\u4f5c\u304c\u6bd4\u8f03\u7684\u5bb9\u6613\u306b\u884c\u3048\u307e\u3059":13,"\u30bf\u30b3\u8db3\u732b":1,"\u30bf\u30d6":[3,24],"\u30bf\u30d6\u304b\u3089\u65b0\u3057\u3044\u30bf\u30fc\u30df\u30ca\u30eb":21,"\u30bf\u30d6\u304c\u96a0\u308c\u3066\u3044\u308b":9,"\u30bf\u30d6\u306b\u3088\u308b\u5165\u529b\u88dc\u5b8c\u304c\u4f7f\u3048\u307e\u3059\u306e\u3067":24,"\u30bf\u30d6\u3084\u6539\u884c\u30b3\u30fc\u30c9\u3092\u6d88\u53bb\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":9,"\u30bf\u30d6\u30ad\u30fc\u30922\u56de\u62bc\u3059\u3068\u8a72\u5f53\u3059\u308b\u3082\u306e\u304c\u8868\u793a\u3055\u308c\u308b":24,"\u30bf\u30d6\u88dc\u5b8c":24,"\u30bf\u30d7\u30eb\u306b\u3057\u306a\u3044\u3068":3,"\u30bf\u30d7\u30eb\u306e\u51e6\u7406\u306b\u304b\u304b\u3063\u305f\u6642\u9593":3,"\u30bf\u30d7\u30eb\u306e\u65b9\u304c\u5b9f\u884c\u6642\u9593\u304c\u77ed\u3044\u4e8b\u304c\u308f\u304b\u308a\u307e\u3059":3,"\u30bf\u30d7\u30eb\u306f":3,"\u30bf\u30d7\u30eb\u306f\u4e38\u62ec\u5f27":3,"\u30bf\u30d7\u30eb\u3084\u8f9e\u66f8\u578b\u3082\u3046\u307e\u304f\u7d44\u307f\u5408\u308f\u305b\u306a\u304c\u3089\u4f7f\u3048\u308b\u3068\u826f\u3044\u3067\u3059":3,"\u30bf\u30d7\u30eb\u3092\u4f7f\u3046\u306e\u3082\u4e00\u3064\u306e\u624b\u3067\u3059":3,"\u30bf\u30d7\u30eb\u3092\u4f7f\u3046\u30e1\u30ea\u30c3\u30c8\u3068\u3057\u3066\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059":3,"\u30bf\u30d7\u30eb\u3092\u4f7f\u3063\u305f\u8a08\u7b97":3,"\u30bf\u30d7\u30eb\u3092\u5b9a\u7fa9":3,"\u30bf\u30fc\u30df\u30ca\u30eb":[21,24],"\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089":[21,24],"\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089\u65b0\u3057\u3044\u30bf\u30fc\u30df\u30ca\u30eb\u3092\u958b\u304f\u3068\u898f\u5b9a\u306e\u30bf\u30fc\u30df\u30ca\u30eb\u304c\u958b\u304f":21,"\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089python\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u969b\u306f":21,"\u30bf\u30fc\u30df\u30ca\u30eb\u3068\u306f":23,"\u30bf\u30fc\u30df\u30ca\u30eb\u306b":[23,24],"\u30bf\u30fc\u30df\u30ca\u30eb\u3092\u518d\u8d77\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b":24,"\u30bf\u30fc\u30df\u30ca\u30eb\u3092\u8d77\u52d5\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u308b":21,"\u30bf\u30fc\u30df\u30ca\u30eb\u3092v":21,"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u304c\u7d42\u308f\u3063\u305f\u3089\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u8d77\u52d5\u3057\u3066":24,"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f":21,"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u3082\u306e\u3092\u5b9f\u884c":24,"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308c\u3070\u826f\u3044":21,"\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u7b49\u306e\u6e96\u5099\u3092\u884c\u304a\u3046":20,"\u30c0\u30d6\u30eb\u30af\u30a9\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3":2,"\u30c0\u30d6\u30eb\u30af\u30a9\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u306e\u9664\u53bb":9,"\u30c1\u30e7\u30ad":6,"\u30c4\u30fc\u30eb":3,"\u30c6\u30a3\u30c3\u30b7\u30e5\u914d\u308a\u306e":2,"\u30c6\u30a4\u30e9\u30fc\u5c55\u958b\u304b\u3089\u793a\u3059\u3053\u3068\u304c\u3067\u304d\u308b":8,"\u30c6\u30ad\u30b9\u30c8":1,"\u30c6\u30ad\u30b9\u30c8\u30bb\u30eb\u3068\u3082\u306b\u81ea\u7531\u306b\u8ffd\u52a0\u3057\u3066\u69cb\u308f\u306a\u3044":25,"\u30c6\u30ad\u30b9\u30c8\u30bb\u30eb\u306e\u5185\u5bb9\u3092\u30b3\u30fc\u30c9\u30bb\u30eb\u306a\u3069\u306b\u30b3\u30d4\u30fc":3,"\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb":9,"\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3068\u540c\u3058\u65b9\u6cd5\u3092\u3068\u308b":9,"\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3084csv\u30d5\u30a1\u30a4\u30eb":9,"\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304d\u8fbc\u3093\u3067\u4fdd\u5b58\u3057\u3066\u307f\u307e\u3059":9,"\u30c6\u30af\u30cb\u30c3\u30af\u3067\u306f\u306a\u3044":2,"\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u306b\u5206\u3051\u308b\u3053\u3068\u306f\u305b\u305a":10,"\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u3088\u3046\u306a\u3082\u306e":13,"\u30c7\u30a3\u30b9\u30af\u9818\u57df\u306e\u5206\u5272\u306a\u3069\u304c\u5fc5\u8981":24,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068\u3057\u3066\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3082\u51fa\u6765\u308b":24,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3044\u308b\u3068\u3059\u308b\u3068":9,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5834\u5408\u3082\u540c\u69d8":24,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5909\u66f4\u3092\u3059\u308b\u304b":24,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u79fb\u52d5":24,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u308b":24,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3059\u308b":21,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u6d88\u3059\u3068\u304d\u306f":24,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u79fb\u52d5\u3059\u308b":21,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f5c\u6210":1,"\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d\u304c\u53e4\u3044":5,"\u30c7\u30b3\u30fc\u30c9":17,"\u30c7\u30b8\u30bf\u30eb\u30c8\u30e9\u30f3\u30b9\u30d5\u30a9\u30fc\u30e1\u30fc\u30b7\u30e7\u30f3\u306a\u3069\u3068\u3044\u3063\u305f\u6a19\u8a9e\u3068\u306f\u88cf\u8179\u306b":9,"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u306b\u3042\u308b\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u5834\u5408":24,"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u306flinux\u304b\u3089\u898b\u308b\u3068":24,"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u306f\u7121\u304f\u3066\u3082\u826f\u3044":24,"\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30d5\u30a9\u30eb\u30c0\u304conedrive\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u5bfe\u8c61\u306b\u306a\u3063\u3066\u3044\u308b\u3068":24,"\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u8a2d\u5b9a\u3060\u3068ubuntu\u3092\u958b\u304f\u3068ubuntu\u306e\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u958b\u304f\u3057":23,"\u30c7\u30d5\u30a9\u30eb\u30c8\u30d1\u30b9\u304b\u3089":24,"\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u304c\u8907\u6570\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u95a2\u6570\u3092\u4f5c\u3063\u305f\u5834\u5408\u306b\u306f":4,"\u30c7\u30e1\u30ea\u30c3\u30c8":24,"\u30c7\u30e5\u30a2\u30eb\u30d6\u30fc\u30c8":24,"\u30c7\u30fc\u30bf":[5,13],"\u30c7\u30fc\u30bf1\u500b\u3042\u305f\u308a":10,"\u30c7\u30fc\u30bf1\u500b\u3042\u305f\u308a\u3069\u308c\u307b\u3069\u8aa4\u5dee":10,"\u30c7\u30fc\u30bf1\u500b\u3042\u305f\u308a\u306e\u8aa4\u5dee":10,"\u30c7\u30fc\u30bf\u304b\u3089\u5c24\u3082\u3089\u3057\u3044\u4e88\u6e2c\u3092\u4e0e\u3048\u308b\u95a2\u6570\u3092\u69cb\u7bc9\u3057\u3066\u307f\u307e\u3057\u3087\u3046":10,"\u30c7\u30fc\u30bf\u304c50kg":10,"\u30c7\u30fc\u30bf\u304c\u6301\u3064\u3079\u304d\u6027\u8cea\u3092\u4e88\u3081\u77e5\u3063\u3066\u3044\u308b\u306e\u3067":7,"\u30c7\u30fc\u30bf\u304c\u7121\u3044\u3068\u3053\u308d\u3067\u4e88\u6e2c\u304c\u4e0d\u78ba\u304b\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u898b\u3066\u53d6\u308c\u308b":12,"\u30c7\u30fc\u30bf\u304c\u7121\u3044\u65e5\u306e\u5024\u306f0\u3067\u306f\u306a\u304fnone":5,"\u30c7\u30fc\u30bf\u3068\u306e\u4e8c\u4e57\u8aa4\u5dee\u3092\u8a08\u7b97\u3057\u3066\u307f\u308b\u3068":10,"\u30c7\u30fc\u30bf\u3068\u306e\u6574\u5408\u6027\u3092\u9ad8\u3081\u308b":7,"\u30c7\u30fc\u30bf\u3068\u30e2\u30c7\u30eb\u306e\u9f5f\u9f6c\u3092\u8868\u3059\u91cf":10,"\u30c7\u30fc\u30bf\u3068\u30e2\u30c7\u30eb\u9593\u306e\u9f5f\u9f6c\u3092\u8868\u73fe\u3059\u308b\u65b9\u6cd5\u306f\u3044\u304f\u3064\u304b\u3042\u308b\u304c":7,"\u30c7\u30fc\u30bf\u3068ann\u306e\u30a2\u30a6\u30c8\u30d7\u30c3\u30c8\u306e\u4e8c\u4e57\u8aa4\u5dee\u3092\u76ee\u7684\u95a2\u6570\u3068\u3057\u3066\u5b9a\u3081\u308b\u3053\u3068\u306b\u3057\u307e\u3059":10,"\u30c7\u30fc\u30bf\u3068ann\u306e\u51fa\u529b\u9593\u306e\u4e8c\u4e57\u8aa4\u5dee\u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570\u3092\u4f5c\u3063\u3066\u304a\u304f":10,"\u30c7\u30fc\u30bf\u306b":7,"\u30c7\u30fc\u30bf\u306b\u904e\u9069\u5408\u3057\u3084\u3059\u304f\u306a\u308b":10,"\u30c7\u30fc\u30bf\u306b\u9069\u5408\u3059\u308b\u3082\u306e\u304c\u5b58\u5728\u3057\u3066\u3082\u304a\u304b\u3057\u304f\u306f\u306a\u3044":7,"\u30c7\u30fc\u30bf\u306e\u306f\u4ee5\u5f8c\u306b\u3042\u308b":7,"\u30c7\u30fc\u30bf\u306e\u4f5c\u6210":21,"\u30c7\u30fc\u30bf\u306e\u500b\u6570\u306b\u5fdc\u3058\u3066\u5c0f\u9818\u57df\u306e\u6570\u3092\u81ea\u52d5\u3067\u5909\u3048\u305f\u3044\u5834\u5408\u306f":6,"\u30c7\u30fc\u30bf\u306e\u5024\u3060\u3051\u3092\u307f\u3066\u95c7\u96f2\u306b\u5206\u6790\u3059\u308b\u3060\u3051\u3067\u306f\u30c0\u30e1\u3067":7,"\u30c7\u30fc\u30bf\u306e\u5024\u3092\u4e2d\u5fc30":10,"\u30c7\u30fc\u30bf\u306e\u5197\u9577\u6027\u3092\u524a\u6e1b\u3057\u305f\u308a\u7279\u5fb4\u3092\u3068\u3089\u3048\u308b\u305f\u3081\u306e\u65b9\u6cd5\u306e\u4e00\u3064\u304c":17,"\u30c7\u30fc\u30bf\u306e\u5206\u5e03\u306b\u6cbf\u3063\u305f\u76f4\u7dda\u3092\u63cf\u3044\u3066\u307f\u305f":17,"\u30c7\u30fc\u30bf\u306e\u53ce\u96c6":25,"\u30c7\u30fc\u30bf\u306e\u6570":7,"\u30c7\u30fc\u30bf\u306e\u6570\u3067\u5272\u3063\u305f\u308a\u5e73\u65b9\u6839\u3092\u53d6\u3063\u305f\u5024\u3092\u63a1\u7528\u3059\u308b\u3053\u3068\u3082\u3042\u308b":8,"\u30c7\u30fc\u30bf\u306e\u6570\u5024\u306b\u5bfe\u3059\u308b\u8aa4\u5dee\u304c\u5360\u3081\u308b\u5272\u5408\u306b\u7740\u76ee\u3059\u308c\u3070":8,"\u30c7\u30fc\u30bf\u306e\u6a19\u6e96\u5316\u3068\u547c\u3073\u307e\u3059":10,"\u30c7\u30fc\u30bf\u306e\u7279\u5fb4\u3092\u305d\u3053\u305d\u3053\u3046\u307e\u304f\u6349\u3048\u305f\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3078\u3068\u5b66\u7fd2\u304c\u9032\u307f\u307e\u3057\u305f":10,"\u30c7\u30fc\u30bf\u306e\u751f\u6210\u7528\u95a2\u6570":11,"\u30c7\u30fc\u30bf\u306e\u76ee\u6a19\u5909\u6570\u306b\u3064\u3044\u3066\u306e\u78ba\u7387\u5206\u5e03\u306f":12,"\u30c7\u30fc\u30bf\u306e\u7cbe\u5ea6":12,"\u30c7\u30fc\u30bf\u306e\u80cc\u5f8c\u306b\u3042\u308b\u30e1\u30ab\u30cb\u30ba\u30e0\u304c\u4f55\u304b\u3092\u8003\u3048\u305f\u308a\u7406\u8ad6\u7684\u306a\u89e3\u6790\u3092\u3057\u3066\u521d\u3081\u3066":7,"\u30c7\u30fc\u30bf\u306e\u80cc\u666f\u3084\u30c9\u30e1\u30a4\u30f3\u77e5\u8b58\u304c\u4e0d\u53ef\u6b20\u3067\u3042\u308b":7,"\u30c7\u30fc\u30bf\u306e\u8a18\u8ff0\u306b\u6cd5\u5247\u6027\u3068\u6a5f\u68b0\u5224\u8aad\u6027\u3092\u3082\u305f\u305b\u308b\u610f\u8b58\u3092\u5168\u54e1\u304c\u6301\u3064\u3053\u3068\u304c\u91cd\u8981\u306a\u3088\u3046\u306b\u601d\u3046":9,"\u30c7\u30fc\u30bf\u306e\u9805\u76ee":9,"\u30c7\u30fc\u30bf\u306ex":7,"\u30c7\u30fc\u30bf\u306f":10,"\u30c7\u30fc\u30bf\u306f\u30ea\u30b9\u30c8\u3068\u3057\u3066\u65e2\u306b\u4e0e\u3048\u3089\u308c\u305f\u72b6\u614b\u304b\u3089\u89e3\u6790\u3092\u884c\u3063\u305f\u304c":9,"\u30c7\u30fc\u30bf\u306f\u5168\u3066\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u8a13\u7df4\u30c7\u30fc\u30bf\u3068\u3057\u3066\u4f7f\u3046\u3053\u3068\u3068\u3057\u307e\u3059":10,"\u30c7\u30fc\u30bf\u306fsin\u95a2\u6570\u306b\u9069\u5f53\u306a\u30ce\u30a4\u30ba\u3092\u8db3\u3057\u3066\u4f5c\u3089\u308c\u3066\u3044\u308b":7,"\u30c7\u30fc\u30bf\u3084\u95a2\u6570":7,"\u30c7\u30fc\u30bf\u3092\u3088\u304f\u8aac\u660e\u3059\u308b\u4e00\u65b9\u3067":7,"\u30c7\u30fc\u30bf\u3092\u4f4e\u6b21\u5143\u7a7a\u9593\u3067\u8fd1\u4f3c\u3059\u308b\u65b9\u6cd5":17,"\u30c7\u30fc\u30bf\u3092\u5206\u6790\u3059\u308b\u305f\u3081\u306b\u306f":7,"\u30c7\u30fc\u30bf\u3092\u62bd\u51fa\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f":13,"\u30c7\u30fc\u30bf\u3092\u6a19\u6e96\u5316":11,"\u30c7\u30fc\u30bf\u3092\u81ea\u7531\u306b\u8db3\u3057\u3066\u307f\u306a\u304c\u3089":5,"\u30c7\u30fc\u30bf\u3092\u90e8\u5206\u7684\u306b\u4f7f\u3046\u3053\u3068\u3067\u5b66\u7fd2\u304c\u505c\u6ede\u3059\u308b\u3053\u3068\u3092\u9632\u3050":10,"\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30b9\u5165\u9580\u3067\u3082\u76f8\u95a2\u5206\u6790\u3092\u5b66\u7fd2\u3057\u305f\u3053\u3068\u304b\u3068\u601d\u3044\u307e\u3059":7,"\u30c7\u30fc\u30bf\u5168\u4f53\u306e\u5e83\u304c\u308a\u3068\u540c\u7a0b\u5ea6\u8aa4\u5dee\u3092\u6301\u3064":11,"\u30c7\u30fc\u30bf\u5206\u6790":5,"\u30c7\u30fc\u30bf\u5206\u6790\u306a\u3069\u3067\u975e\u5e38\u306b\u3088\u304f\u4f7f\u308f\u308c\u308bnumpy\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u3042\u308a\u307e\u3059":5,"\u30c7\u30fc\u30bf\u5206\u6790\u306e\u305f\u3081\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3067":18,"\u30c7\u30fc\u30bf\u5206\u6790\u3092\u3059\u308b\u4e0a\u3067\u6700\u3082\u3088\u304f\u51fa\u3066\u304f\u308b\u76ee\u7684\u95a2\u6570\u306f\u30ab\u30a4\u81ea\u4e57":8,"\u30c7\u30fc\u30bf\u5206\u6790\u3092\u3059\u308b\u969b":22,"\u30c7\u30fc\u30bf\u70b9\u306e\u751f\u6210":12,"\u30c7\u30fc\u30bf\u884c\u5217\u306e\u5b9a\u7fa9":17,"\u30c7\u30fc\u30bf\u89e3\u6790\u3068\u3044\u3046\u3088\u308a\u306f":9,"\u30c8\u30de\u30c8":18,"\u30c8\u30ec\u30fc\u30c9\u30aa\u30d5\u3067\u30e2\u30c7\u30eb\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u591a\u3044":7,"\u30c8\u30f3\u30c7\u30e2\u8ad6\u6587\u3060\u3068\u601d\u308f\u308c\u3066\u8ab0\u306b\u3082\u8aad\u307e\u308c\u306a\u3044\u5371\u967a\u6027":5,"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8":9,"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306a\u3069\u306e\u30d5\u30a9\u30eb\u30c0\u306f\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u76f4\u4e0b\u306b\u914d\u7f6e\u3055\u308c\u3066\u3044\u308b":9,"\u30c9\u30e9\u30a4\u30d6\u306b\u30b3\u30d4\u30fc\u3092\u4fdd\u5b58":1,"\u30c9\u30eb\u30de\u30fc\u30af\u3067\u56f2\u3080\u3068\u6570\u5f0f\u3092\u8868\u793a\u3055\u305b\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":1,"\u30c9\u30ed\u30c3\u30d7\u3057\u3066\u307f\u3088\u3046":21,"\u30cb\u30e5\u30fc\u30c8\u30f3\u306f\u5fae\u5206\u306e\u6982\u5ff5\u3092\u72ec\u81ea\u306b\u5b9a\u5f0f\u5316\u3057":8,"\u30cb\u30e5\u30fc\u30c8\u30f3\u6cd5\u306b\u3088\u308b\u95a2\u6570":15,"\u30cb\u30e5\u30fc\u30c8\u30f3\u6cd5\u306e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3092\u5b9f\u88c5\u3057\u3066\u307f\u3088\u3046":15,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u30c7\u30fc\u30bf\u5024\u3068\u306e\u9593\u306b\u3069\u308c\u304f\u3089\u3044\u8aa4\u5dee\u304c\u3042\u308b\u304b\u3068\u3044\u3046\u3068":10,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u3088\u308b\u56de\u5e30":7,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u4e88\u6e2c\u304c55kg\u306710":10,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u4e88\u6e2cyp\u306f":10,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u51fa\u529b\u306f\u6a19\u6e96\u5316\u3057\u305f\u5024\u306b\u5bfe\u3057\u3066\u5b66\u7fd2\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u306b\u6ce8\u610f":10,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u5b66\u7fd2\u304c\u3046\u307e\u304f\u9032\u3080\u304b\u3069\u3046\u304b\u306f\u4e00\u822c\u306b":10,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u5b66\u7fd2\u304c\u5f15\u3063\u5f35\u3089\u308c\u3066\u3057\u307e\u3044\u307e\u3059":10,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u69cb\u9020\u3092\u3088\u308a\u8907\u96d1\u5316\u3057\u305f\u308a\u3057\u306a\u304c\u3089":10,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u7cbe\u5ea6":10,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u63a1\u7528\u3059\u308b\u7acb\u5834\u3092\u63a1\u308b\u3053\u3068\u3082\u53ef\u80fd":7,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092python\u3067\u8868\u73fe\u3057\u3066\u307f\u308b":10,"\u30cd\u30a4\u30d4\u30a2\u6570":8,"\u30cd\u30b9\u30c8\u3055\u308c\u305f\u30ea\u30b9\u30c8\u3068\u3044\u3063\u305f\u308a\u3057\u307e\u3059":3,"\u30cd\u30b9\u30c8\u3055\u308c\u305f\u30ea\u30b9\u30c8\u3092\u30b3\u30d4\u30fc\u3057\u3066\u5225\u3005\u306b\u6271\u3044\u305f\u3044\u5834\u5408\u306f\u7279\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3067":3,"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u69cb\u9020":10,"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u91cd\u307f\u3084\u30d0\u30a4\u30a2\u30b9\u3092\u3069\u306e\u3088\u3046\u306a\u5024\u304b\u3089\u59cb\u3081\u308b\u304b\u306b\u5b66\u7fd2\u304c\u4f9d\u5b58\u3059\u308b\u5834\u5408\u3082\u3042\u308a\u307e\u3059":10,"\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u4e0a\u3067\u5b89\u5168\u306b\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u305f\u308a":24,"\u30ce\u30a4\u30ba\u3067\u751f\u6210\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059":10,"\u30ce\u30fc\u30c8\u3092\u958b\u304f\u305f\u3073\u306b\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093":5,"\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u306e\u30b3\u30d4\u30fc\u3092\u3064\u304f\u308b":25,"\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u306e\u6a2a\u306bgithub\u306e\u30ed\u30b4":1,"\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u306e\u5b9f\u4f53":1,"\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u7279\u6709\u306e\u6ce8\u610f\u70b9":14,"\u30ce\u30fc\u30c94":17,"\u30ce\u30fc\u30d9\u30eb\u7269\u7406\u5b66\u8cde":18,"\u30cf\u30a4\u30d1\u30fc\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u6700\u9069\u5316":11,"\u30cf\u30a4\u30d5\u30f3":9,"\u30d0\u30a4\u30a2\u30b9":10,"\u30d0\u30a4\u30a2\u30b9\u306e\u66f4\u65b0":10,"\u30d0\u30a4\u30c8\u3092\u76e3\u8996\u3059\u308b":2,"\u30d0\u30b0\u306e\u539f\u56e0\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059":3,"\u30d0\u30b0\u3092\u4f5c\u3063\u3066\u3057\u307e\u3046":3,"\u30d0\u30b0\u3092\u898b\u3064\u3051\u3084\u3059\u304f\u3059\u308b":10,"\u30d0\u30c3\u30af\u30a2\u30c3\u30d7":21,"\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3084\u8d77\u52d5\u30c7\u30a3\u30b9\u30af\u7b49\u306e\u77e5\u8b58\u306a\u304f\u30c7\u30e5\u30a2\u30eb\u30d6\u30fc\u30c8\u74b0\u5883\u3092\u69cb\u7bc9\u3057\u3088\u3046\u3068\u3059\u308b\u3068":24,"\u30d0\u30c3\u30af\u30b9\u30e9\u30c3\u30b7\u30e5":9,"\u30d0\u30c4\u5370":5,"\u30d0\u30fc\u30b8\u30e7\u30f3\u3084\u8a2d\u5b9a\u306a\u3069\u306b\u4f9d\u5b58\u3059\u308b\u305f\u3081":21,"\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u78ba\u8a8d\u3059\u308b":24,"\u30d1\u30b9":[5,9],"\u30d1\u30b9\u304c\u4e0a\u8a18\u3068\u5fae\u5999\u306b\u7570\u306a\u308b\u5834\u5408\u306f":24,"\u30d1\u30b9\u306b\u3064\u3044\u3066\u306f\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u306e\u30ce\u30fc\u30c8\u306b\u8a73\u3057\u3044\u8a18\u8ff0\u304c\u3042\u308a\u307e\u3059":5,"\u30d1\u30b9\u306b\u3064\u3044\u3066\u306f\u5f8c\u306e\u7bc0\u3067\u8a73\u3057\u304f\u8aac\u660e\u3057\u307e\u3059":9,"\u30d1\u30b9\u306b\u7f6e\u304d\u63db\u3048\u3066":24,"\u30d1\u30b9\u306e\u6307\u5b9a\u304c\u5fc5\u8981\u306b\u306a\u308b":24,"\u30d1\u30b9\u306e\u6307\u5b9a\u306a\u3069\u306e\u4e00\u9023\u306e\u4f5c\u696d\u304c\u7406\u89e3\u3067\u304d\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3082\u306e\u306a\u306e\u3067":25,"\u30d1\u30b9\u306e\u6307\u5b9a\u306e\u4ed5\u65b9\u306b\u306f\u305d\u306e\u4ed6\u306b\u3082\u65b9\u6cd5\u304c\u3042\u308a":9,"\u30d1\u30b9\u3092\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":1,"\u30d1\u30b9\u3092\u30b3\u30d4\u30fc":1,"\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u8a2d\u5b9a\u3059\u308b":24,"\u30d1\u30bd\u30b3\u30f3\u306b\u5b58\u5728\u3059\u308bshift":9,"\u30d1\u30c3\u30b1\u30fc\u30b8":23,"\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u591a\u304f\u306fgithub\u4e0a\u3067\u958b\u767a":5,"\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b":24,"\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3":24,"\u30d1\u30c3\u30b1\u30fc\u30b8\u5316":4,"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5dee\u304c\u9855\u8457\u306b\u306a\u3063\u305f\u308a":3,"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7684\u5074\u9762\u304b\u3089":23,"\u30d1\u30e9\u30d1\u30e9\u6f2b\u753b":5,"\u30d1\u30e9\u30e1\u30fc\u30bf":12,"\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u30d9\u30a4\u30ba\u7684\u53d6\u308a\u6271\u3044\u306b\u304a\u3044\u3066":12,"\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u4e8b\u524d\u5206\u5e03\u306e\u5171\u5206\u6563\u304c\u5bfe\u89d2\u7684":12,"\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u4e8b\u524d\u77e5\u8b58\u304c":12,"\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u4e8b\u5f8c\u5206\u5e03\u306f":12,"\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u5024\u3092\u66f4\u65b0\u3057\u3066\u307f\u307e\u3057\u3087\u3046":10,"\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u5024\u3092\u77e5\u308b\u3053\u3068":8,"\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u5e83\u304c\u308a\u304c\u4e88\u6e2c\u306b\u4f1d\u642c\u3055\u308c":12,"\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u70b9\u63a8\u5b9a\u3059\u308b\u7acb\u5834\u3088\u308a\u6709\u9650\u306e\u5e45\u3092\u3082\u3064\u78ba\u7387\u5206\u5e03\u3068\u3057\u3066\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u8003\u3048\u308b":12,"\u30d1\u30e9\u30e1\u30fc\u30bf\u66f4\u65b0\u306e\u30b9\u30b1\u30fc\u30eb\u3092\u6c7a\u3081\u308b\u30d1\u30e9\u30e1\u30fc\u30bf":10,"\u30d1\u30f3\u985e":18,"\u30d1\u30fc":6,"\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u306e\u30d3\u30f3\u306e\u59cb\u70b9":6,"\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u306e\u63cf\u753b":21,"\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u3092\u63cf\u753b":6,"\u30d2\u30f3\u30c81":3,"\u30d2\u30f3\u30c82":3,"\u30d2\u30fc\u30c8\u30de\u30c3\u30d7\u306e\u4f5c\u6210":21,"\u30d3\u30c3\u30c8\u304c\uff12\u3064\u4f7f\u3048\u308b\u3068\u3059\u308b\u306a\u3089\u3070":2,"\u30d3\u30c3\u30c8\u3092\u7528\u3044\u305f\u8868\u73fe\u30681\u5bfe1\u5bfe\u5fdc\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":2,"\u30d4\u30c3\u30af\u30a2\u30c3\u30d7\u3057\u3066\u307f\u3088\u3046":18,"\u30d4\u30c3\u30bf\u30ea":12,"\u30d4\u30ea\u30aa\u30c9":9,"\u30d4\u30ea\u30aa\u30c9\u3068\u30ab\u30f3\u30de\u306e\u9593\u9055\u3044":14,"\u30d4\u30ea\u30aa\u30c9\u3084\u30b9\u30e9\u30c3\u30b7\u30e5\u3092\u99c6\u4f7f\u3057\u3066\u73fe\u5728\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304b\u3089\u306e":9,"\u30d4\u30f3\u3092\u6253\u3063\u3066\u307f\u308b":25,"\u30d5\u30a1\u30a4\u30eb":[1,2,21,24],"\u30d5\u30a1\u30a4\u30eb\u304c\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u4e0a\u3067\u3069\u3053\u306b\u3042\u308b\u304b\u3092\u6307\u3057\u793a\u3059\u6587\u5b57\u5217\u306f\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9":9,"\u30d5\u30a1\u30a4\u30eb\u304c\u4e0a\u66f8\u304d\u3055\u308c\u3066\u7a7a\u30d5\u30a1\u30a4\u30eb\u306b\u306a\u308b\u306e\u3067\u6ce8\u610f\u3057\u307e\u3057\u3087\u3046":9,"\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u3089\u308c\u305f\u3067\u3057\u3087\u3046\u304b":5,"\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u5834\u5408\u306f":9,"\u30d5\u30a1\u30a4\u30eb\u3067\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u304c\u591a\u3044\u3067\u3059\u304c":9,"\u30d5\u30a1\u30a4\u30eb\u306b\u3088\u3063\u3066\u306f\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u3059\u308b\u305f\u3081\u306b\u5de6\u5074\u306b\u30bf\u30d6":9,"\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304b\u308c\u3066\u3044\u308b\u30c6\u30ad\u30b9\u30c8\u3092":9,"\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30af\u30bb\u30b9\u6a29\u3092\u5909\u66f4\u3059\u308b":21,"\u30d5\u30a1\u30a4\u30eb\u306e\u30d6\u30e9\u30a6\u30b8\u30f3\u30b0\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f":1,"\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u304b\u3089\u6587\u5b57\u5217\u3092\u691c\u7d22\u3059\u308b":21,"\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u8eab\u3092\u8868\u793a\u3059\u308b":21,"\u30d5\u30a1\u30a4\u30eb\u306e\u5148\u982d\u3092\u8868\u793a\u3059\u308b":21,"\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u306b\u306f\u4f7f\u7528\u3057\u306a\u3044\u3053\u3068\u304c\u63a8\u5968\u3055\u308c\u308b":9,"\u30d5\u30a1\u30a4\u30eb\u306e\u5834\u6240\u3092\u6307\u5b9a\u3059\u308b":9,"\u30d5\u30a1\u30a4\u30eb\u306e\u672b\u5c3e\u3092\u8868\u793a\u3059\u308b":21,"\u30d5\u30a1\u30a4\u30eb\u306e\u7a2e\u985e\u3092\u5165\u529b\u3059\u308b\u304b":21,"\u30d5\u30a1\u30a4\u30eb\u306f\u304d\u3061\u3093\u3068\u9589\u3058\u308b":9,"\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30ea\u30f3\u30af":5,"\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306a\u3069\u3092\u8868\u793a\u3059\u308b":24,"\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u60c5\u5831\u3092\u8868\u793a\u3059\u308b\u30b3\u30de\u30f3\u30c9\u3067\u3059":5,"\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u524a\u9664\u3059\u308b":24,"\u30d5\u30a1\u30a4\u30eb\u3092":9,"\u30d5\u30a1\u30a4\u30eb\u3092\u3044\u308c\u3066\u304f\u3060\u3055\u3044":9,"\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\u3059\u308b":21,"\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057":9,"\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3059\u308b":21,"\u30d5\u30a1\u30a4\u30eb\u3092\u79fb\u52d5\u3059\u308b":21,"\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u305f\u3089":21,"\u30d5\u30a1\u30a4\u30eb\u3092\u8ee2\u9001\u3057\u305f\u308a\u3059\u308b\u305f\u3081\u306e\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u3042\u308b":24,"\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u30c6\u30ad\u30b9\u30c8\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5\u3092\u8a66\u3057\u3066\u307f\u3088\u3046":9,"\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f":21,"\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u3068\u304d\u306bencoding\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b":9,"\u30d5\u30a1\u30a4\u30eb\u540d\u306e\u5148\u982d\u306b":24,"\u30d5\u30a1\u30a4\u30eb\u540d\u306e\u6a2a\u306b\u4e38":21,"\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044":21,"\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5165\u529b\u3059\u308b\u3088\u3046\u306b\u4fc3\u3055\u308c\u308b":21,"\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u9069\u5f53\u306b\u7de8\u96c6\u3059\u308b":25,"\u30d5\u30a1\u30a4\u30eb\u5f62\u5f0f":0,"\u30d5\u30a1\u30a4\u30eb\u7b49\u8868\u793a":1,"\u30d5\u30a1\u30a4\u30eb\u81ea\u4f53\u304c\u5927\u91cf\u306b\u3042\u308a":9,"\u30d5\u30a3\u30eb\u30bf\u30fc\u306e\u3088\u3046\u306a\u5f79\u5272\u306b\u306a\u3063\u3066\u3044\u308b":18,"\u30d5\u30a7\u30e9\u30ea\u306e\u89e3\u6cd5":15,"\u30d5\u30a9\u30eb\u30c0":9,"\u30d5\u30a9\u30eb\u30c0\u306b":9,"\u30d5\u30a9\u30eb\u30c0\u3092\u958b\u304f":21,"\u30d5\u30a9\u30f3\u30c8\u3092\u5909\u66f4\u3057\u305f\u308a\u3059\u308b\u3068\u826f\u3044":21,"\u30d5\u30a9\u30fc\u30e0\u3067\u4f5c\u6210\u3057\u305f\u30a2\u30f3\u30b1\u30fc\u3067":9,"\u30d5\u30e9\u30f3\u30b9\u30d1\u30f3":18,"\u30d5\u30ed\u30d9\u30cb\u30a6\u30b9\u30ce\u30eb\u30e0":19,"\u30d5\u30ed\u30d9\u30cb\u30a6\u30b9\u30ce\u30eb\u30e0\u306e\u610f\u5473\u3067\u884c\u5217":19,"\u30d6\u30c3\u30af\u304b\u3089\u958b\u3044\u305f\u30ce\u30fc\u30c8\u30d6\u30c3\u30af":1,"\u30d6\u30c3\u30af\u306e\u5404\u7ae0\u306e\u4e0a\u90e8\u306b\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30dc\u30bf\u30f3":21,"\u30d6\u30c3\u30af\u30de\u30fc\u30af\u3059\u308b\u304b":25,"\u30d6\u30c3\u30af\u5185\u306e\u30b7\u30fc\u30c8\u306e\u4e00\u89a7\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u53d6\u5f97\u3067\u304d\u308b":18,"\u30d6\u30e9\u30a6\u30b6\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u64cd\u4f5c\u3055\u305b\u3066\u7279\u5b9a\u306e\u4f5c\u696d\u3092\u5b9f\u884c\u3059\u308b\u65b9\u6cd5":13,"\u30d6\u30e9\u30a6\u30b6\u4e0a\u3067\u306e\u7279\u5b9a\u306e\u64cd\u4f5c\u3092\u81ea\u52d5\u5316\u3059\u308b":13,"\u30d6\u30e9\u30a6\u30b6\u64cd\u4f5c":9,"\u30d6\u30ed\u30c3\u30af":3,"\u30d6\u30ed\u30c3\u30af\u3068\u547c\u3070\u308c\u308b\u51e6\u7406\u5358\u4f4d\u3067\u307e\u3068\u3081\u3066\u5b9f\u884c\u3055\u308c\u308b\u3053\u3068\u3082\u3042\u308b\u304c":2,"\u30d6\u30ed\u30c3\u30af\u306b\u3064\u3044\u3066\u306f":4,"\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u306a\u30a2\u30ab\u30a6\u30f3\u30c8\u3068\u306f\u5225\u306b":1,"\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u306agoogle\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b":25,"\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0":23,"\u30d7\u30eb\u30c0\u30a6\u30f3\u3067\u30c7\u30fc\u30bf":13,"\u30d7\u30ec\u30bc\u30f3\u3067\u56f3\u304c\u6ef2\u3093\u3067\u3044\u308b\u30b9\u30e9\u30a4\u30c9\u3092\u898b\u305b\u3066\u3044\u308b\u3068":5,"\u30d7\u30ec\u30bc\u30f3\u306e\u30b9\u30e9\u30a4\u30c9\u306b\u8f09\u305b\u308b\u753b\u50cf\u306f\u53ef\u80fd\u306a\u9650\u308a":5,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u306f":4,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u30c9\u5b9a\u756a\u306e":6,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u975e\u5e38\u306b\u91cd\u8981\u306a\u6982\u5ff5\u3067\u3042\u308b\u914d\u5217\u3084\u7e70\u308a\u8fd4\u3057\u51e6\u7406\u306b\u3064\u3044\u3066\u5b66\u3076":3,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u3088\u308b\u30c7\u30fc\u30bf\u5206\u6790\u306f":2,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e":9,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u4e2d\u3067":3,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u3084\u3063\u3066\u521d\u3081\u3066\u6c17\u304c\u3064\u304f":9,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u7528\u3044\u305f\u30c7\u30fc\u30bf\u5206\u6790\u3067\u306f\u5acc\u308f\u308c\u308b":18,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3092\u7528\u3044\u305f\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u3092\u3059\u308b\u767a\u60f3\u304c\u3042\u308b\u304b\u3069\u3046\u304b":9,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u5b66\u7fd2\u306b\u6d3b\u7528\u3059\u308b\u305f\u3081\u306e\u9069\u5207\u306a\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u5de5\u592b\u3059\u308b\u3053\u3068\u306f":21,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u74b0\u5883\u306e\u69cb\u7bc9\u3084linux":23,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e":23,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u306e\u6587\u6cd5":14,"\u30d7\u30ed\u30b0\u30e9\u30e0":[2,23,24],"\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u6b63\u3057\u304f\u52d5\u3044\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u6700\u3082\u5358\u7d14\u304b\u3064\u5f37\u529b\u306a\u65b9\u6cd5\u3067\u3042\u308b":2,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306e\u7b49\u53f7\u306f":2,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u305d\u308c\u305e\u308c":10,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f\u901a\u5e38":2,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u30c7\u30fc\u30bf\u3092\u6a5f\u68b0\u7684\u306b\u8aad\u307f\u51fa\u3057\u3066\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067":9,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u6271\u3046\u4e88\u5b9a\u304c\u3042\u308b":9,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3067web\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u4e2d\u8eab":13,"\u30d7\u30ed\u30b0\u30e9\u30e0\u306a\u3069\u3092\u66f8\u304f\u4eba\u306b\u306f\u5384\u4ecb\u306a\u4ed5\u69d8\u3060\u3063\u305f\u308a\u3059\u308b":9,"\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3057\u3066\u3057\u307e\u3063\u305f\u307b\u3046\u304c\u9065\u304b\u306b\u4fbf\u5229\u3067\u3059":9,"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4e2d\u3067\u6271\u3046\u5909\u6570\u306b\u306f\u69d8\u3005\u306a":2,"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u9806\u5e8f\u3068":25,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f7f\u3046\u3054\u5229\u76ca\u306f\u305d\u308c\u307b\u3069\u611f\u3058\u3089\u308c\u306a\u3044\u304c":7,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3057\u3066\u7d75\u3092\u63cf\u3051\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3089":5,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u3044\u3066\u3044\u304f\u3046\u3061\u306b":3,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304f\u307e\u3067\u3082\u306a\u304f\u5e73\u65b9\u5b8c\u6210\u3067\u6c42\u3081\u3089\u308c\u308b\u304c":8,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u3051\u308b\u4eba\u306b\u3068\u3063\u3066\u306f\u82e6\u75db\u306a\u72b6\u6cc1\u3082\u591a\u3044":9,"\u30d7\u30ed\u30b0\u30e9\u30e0\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3059\u308b\u969b":3,"\u30d7\u30ed\u30b0\u30e9\u30e0\u5185\u3067\u306e\u95a2\u6570\u3068\u623b\u308a\u5024":4,"\u30d7\u30ed\u30c3\u30c8\u3057\u3066\u307f\u3088\u3046":[15,17],"\u30d7\u30ed\u30f3\u30d7\u30c8\u3068\u547c\u3070\u308c\u308b\u6307\u793a\u6587\u3092\u9069\u5207\u306b\u4e0e\u3048\u308b\u3053\u3068\u3067":21,"\u30d7\u30ed\u30f3\u30d7\u30c8\u306e\u4e0e\u3048\u65b9\u306b\u5de5\u592b\u304c\u5fc5\u8981\u306b\u306a\u308b":21,"\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u4e0e\u3048\u308b\u3053\u3068\u3067":21,"\u30d9\u30a4\u30ba\u6700\u9069\u5316":8,"\u30d9\u30a4\u30ba\u6700\u9069\u5316\u3092\u7528\u3044\u305f\u5b9f\u9a13\u8a08\u753b\u6cd5\u3092\u898b\u3066\u307f\u3088\u3046":11,"\u30d9\u30a4\u30ba\u7684":12,"\u30d9\u30a4\u30ba\u7dda\u5f62\u56de\u5e30":7,"\u30d9\u30af\u30c8\u30eb":[6,7,12],"\u30d9\u30af\u30c8\u30eb\u3068\u3057\u3066\u306e\u6027\u8cea\u3092\u6301\u3063\u3066\u3044\u308b\u4e8b\u304c\u308f\u304b\u308a\u307e\u3059":22,"\u30d9\u30af\u30c8\u30eb\u3068\u540c\u3058\u3088\u3046\u306b":22,"\u30d9\u30af\u30c8\u30eb\u306e\u5185\u7a4d\u306e\u5f62\u3067\u3044\u305a\u308c\u3082\u8868\u3059\u3053\u3068\u304c\u3067\u304d\u308b":7,"\u30d9\u30ea\u30fc\u3068\u3061\u304e":25,"\u30da\u30a2\u306e\u5834\u5408\u306f":25,"\u30da\u30fc\u30b8\u5185\u306b":18,"\u30da\u30fc\u30b9\u30c8\u3057\u305f\u3051\u308c\u3070":3,"\u30db\u30fc\u30af\u30b9":3,"\u30db\u30fc\u30e0":24,"\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068\u3044\u3046\u3082\u306e\u304c\u6307\u5b9a\u3055\u308c\u3066\u304a\u308awindows\u306a\u3089":9,"\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u306f":24,"\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5909\u66f4\u65b9\u6cd5\u306f":24,"\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306f":9,"\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u76f4\u4e0b\u306e\u96a0\u3057\u30c7\u30a3\u30ec\u30af\u30c8\u30ea":24,"\u30dc\u30bf\u30f3\u304b":1,"\u30dd\u30a4\u30f3\u30bf\u6e21\u3057":3,"\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u7b49\u306e\u6307\u793a\u306b\u5f93\u3044\u64cd\u4f5c\u3092\u884c\u3044\u307e\u3059":5,"\u30de\u30a4\u30c9\u30e9\u30a4\u30d6\u76f4\u4e0b\u306b":[5,9],"\u30de\u30a4\u30ca\u30b9":2,"\u30de\u30a4\u30da\u30fc\u30b8":13,"\u30de\u30a6\u30f3\u30c8\u3059\u308b\u5834\u6240\u306f\u81ea\u7531\u306b\u9078\u3079\u307e\u3059":1,"\u30de\u30a6\u30f3\u30c8\u3067\u304d\u3066\u3044\u308c\u3070":5,"\u30de\u30af\u30ed\u30fc\u30ea\u30f3\u5c55\u958b":8,"\u30de\u30b7\u30f3\u7528":24,"\u30de\u30cb\u30a2\u30c3\u30af\u306a\u6ce8":12,"\u30de\u30cb\u30e5\u30a2\u30eb":13,"\u30de\u30eb\u30b3\u30d5\u9023\u9396\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u6cd5":6,"\u30de\u30fc\u30af":3,"\u30de\u30fc\u30af\u304b\u3089":23,"\u30de\u30fc\u30af\u3092\u3064\u3051\u308b\u3053\u3068\u3067linux\u3084mac":5,"\u30df\u30b9\u3092\u9632\u3050\u305f\u3081\u306e\u4e00\u3064\u306e\u65b9\u6cd5\u306b\u3082\u306a\u3063\u3066\u3044\u308b":2,"\u30e1\u30a4\u30f3\u30b3\u30fc\u30c9":4,"\u30e1\u30a4\u30f3\u30d7\u30ed\u30b0\u30e9\u30e0\u3068\u95a2\u6570\u5185\u3068\u3067\u5909\u6570\u306e\u547d\u540d\u898f\u5247\u3092\u533a\u5225\u3057\u3066\u304a\u304f":4,"\u30e1\u30a4\u30f3\u90e8\u5206\u306e\u30b3\u30fc\u30c9":3,"\u30e1\u30b8\u30e3\u30fc\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306f\u5834\u5408\u306b\u3088\u308b":24,"\u30e1\u30bd\u30c3\u30c9":4,"\u30e1\u30bd\u30c3\u30c9\u306f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5bfe\u3057\u3066\u4f55\u3089\u304b\u306e\u64cd\u4f5c\u3092\u884c\u3046":4,"\u30e1\u30bd\u30c3\u30c9\u3092\u7528\u3044\u308b\u3053\u3068\u3082\u591a\u3044\u305f\u3081":4,"\u30e1\u30bf\u30eb":6,"\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306a\u3069\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":18,"\u30e1\u30e2\u5e33\u30a2\u30d7\u30ea\u3084word\u3067\u3082\u3067\u304d\u307e\u3059\u304c":9,"\u30e1\u30ea\u30c3\u30c8":24,"\u30e1\u30ed\u30f3":3,"\u30e2\u30b8\u30e5\u30fc\u30eb\u306a\u3069\u3068\u547c\u3076":5,"\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u3064\u3044\u3066\u306f4\u7ae0\u3067\u8aac\u660e\u3057\u307e\u3059":3,"\u30e2\u30b8\u30e5\u30fc\u30eb\u306e":3,"\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u3088\u304f\u4f7f\u3046":6,"\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u4f7f\u3044\u65b9\u3084\u5b9f\u88c5\u306b\u3064\u3044\u3066\u306f":6,"\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u9806\u306b":5,"\u30e2\u30b8\u30e5\u30fc\u30eb\u306f\u6a19\u6e96\u3067\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b\u305f\u3081":5,"\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u3051\u308c\u3070":24,"\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u3051\u308c\u3070ubuntu\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089":23,"\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059":5,"\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4e00\u5ea6":5,"\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3048\u3070\u7c21\u5358\u306b\u4e71\u6570\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":6,"\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u7528\u3044\u3066":25,"\u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u306b\u7528\u610f\u3055\u308c\u3066\u3044\u308b\u95a2\u6570\u3092\u5229\u7528\u3059\u308b\u3068\u304d\u306f\u901a\u5e38":5,"\u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u306e":5,"\u30e2\u30b8\u30e5\u30fc\u30eb\u540d":5,"\u30e2\u30c7\u30eb\u306e\u8907\u96d1\u3055":7,"\u30e2\u30c7\u30eb\u306e\u8907\u96d1\u3055\u3092\u6291\u3048\u308b":7,"\u30e2\u30c7\u30eb\u306e\u9078\u629e":20,"\u30e2\u30c7\u30eb\u3092\u7acb\u3066\u3066\u7d42\u308f\u308a":7,"\u30e2\u30c7\u30eb\u3092\u9078\u629e\u3059\u308b\u305f\u3081\u306e\u57fa\u6e96":7,"\u30e2\u30c7\u30eb\u9078\u629e\u3092\u884c\u3063\u305f\u308a":10,"\u30e2\u30c7\u30eb\u9078\u629e\u57fa\u6e96\u91cf":7,"\u30e2\u30c7\u30eb\u95a2\u6570":7,"\u30e2\u30c7\u30eb\u95a2\u6570\u3068\u30c7\u30fc\u30bf\u3068\u306e\u9f5f\u9f6c\u3092\u6700\u5c0f\u5316\u3059\u308b\u3088\u3046\u306b\u30e2\u30c7\u30eb\u95a2\u6570\u306e\u4fc2\u6570\u3092\u6c7a\u5b9a\u3059\u308b\u3053\u3068\u3092":7,"\u30e2\u30f3\u304c\u51fa\u73fe\u3059\u308b\u78ba\u7387\u306a\u3069\u3092\u8a2d\u5b9a\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093":6,"\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u6cd5":6,"\u30e6\u30fc\u30b6\u30fc\u304c\u3088\u304f\u4f7f\u3046\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u3084\u5199\u771f":9,"\u30e6\u30fc\u30b6\u30fc\u540d":[9,24],"\u30e6\u30fc\u30b6\u30fc\u540d\u304c\u7dd1\u8272\u3067\u8868\u793a\u3055\u308c\u3066\u3044\u3066":23,"\u30e6\u30fc\u30b6\u30fc\u767b\u9332\u304c\u5fc5\u8981":13,"\u30e6\u30fc\u30b6\u540d":24,"\u30e8\u30d3\u30ce\u30ea\u305f\u304f\u307f\u6c0f\u306e":8,"\u30e9\u30a4\u30aa\u30f3\u30ba":3,"\u30e9\u30a4\u30bb\u30f3\u30b9":15,"\u30e9\u30a4\u30c8\u30e6\u30fc\u30b6\u30fc\u306f\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3088\u308a\u4e0a\u306e\u968e\u5c64\u3092\u3042\u307e\u308a\u89e6\u3089\u306a\u3044\u3053\u3068\u304c\u63a8\u5968\u3055\u308c\u3066\u3044\u308b":9,"\u30e9\u30a4\u30d6\u30e9\u30ea":[23,24],"\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u5165\u308c\u3066\u30dd\u30f3\u30c3":8,"\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":[23,24],"\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3084\u30a4\u30f3\u30dd\u30fc\u30c8\u306e\u4ed5\u65b9\u304c\u5206\u304b\u308b":25,"\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u8aad\u3080\u304b\u81ea\u8eab\u3067\u5b9f\u88c5\u3057\u305f\u95a2\u6570\u3068\u6bd4\u8f03\u3059\u308b\u3053\u3068\u3067\u521d\u3081\u3066":17,"\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u3044\u65b9\u3092\u5b66\u3073\u306a\u304c\u3089":25,"\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u51fa\u529b\u3068\u4e00\u81f4\u3059\u308b\u304b\u78ba\u304b\u3081\u3066\u307f\u3088\u3046":19,"\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u51fa\u529b\u3068\u8a08\u753b\u884c\u5217\u3092\u7528\u3044\u305f\u6700\u5c24\u63a8\u5b9a\u306e\u7d50\u679c\u3068\u304c":12,"\u30e9\u30a4\u30d6\u30e9\u30ea\u306eimport\u306f\u30bb\u30c3\u30b7\u30e7\u30f3\u3054\u3068\u306b\u5fc5\u8981\u3067\u3059":23,"\u30e9\u30a4\u30d6\u30e9\u30ea\u306f":22,"\u30e9\u30a4\u30d6\u30e9\u30ea\u3092":17,"\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046":6,"\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4e00\u5207\u4f7f\u308f\u306a\u3044\u65b9\u6cd5":7,"\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3046\u3068csv\u3092\u30b5\u30af\u30c3\u3068\u8aad\u307f\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u308b":9,"\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u3044\u305f\u306e\u306b\u5bfe\u3057":21,"\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u307f\u307e\u3057\u3087\u3046":13,"\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u3066\u591a\u9805\u5f0f\u56de\u5e30":25,"\u30e9\u30a4\u30d6\u30e9\u30ea\u7b49\u3067\u7528\u610f\u3055\u308c\u3066\u3044\u308b\u30af\u30e9\u30b9":4,"\u30e9\u30a4\u30e0\u306b\u4f1a\u5fc3\u306e\u4e00\u6483\u3092\u98df\u3089\u308f\u305b\u3066\u30ec\u30d9\u30eb\u30a2\u30c3\u30d7\u3057\u307e\u304f\u308b\u52d5\u753b\u306a\u3069\u304c\u6614\u306f\u3084\u308a\u307e\u3057\u305f":6,"\u30e9\u30b0\u30e9\u30f3\u30b8\u30e5\u672a\u5b9a\u4e57\u6570\u6cd5":17,"\u30e9\u30b9\u30bf\u5f62\u5f0f\u3067\u306f\u306a\u304f\u30d9\u30af\u30bf\u5f62\u5f0f":5,"\u30e9\u30d5\u30bd\u30f3\u6cd5":15,"\u30e9\u30d9\u30eb":5,"\u30e9\u30f3\u30af":19,"\u30e9\u30f3\u30bf\u30a4\u30e0":1,"\u30e9\u30f3\u30bf\u30a4\u30e0\u306b\u63a5\u7d9a\u3057\u3066\u304f\u3060\u3055\u3044":1,"\u30e9\u30f3\u30bf\u30a4\u30e0\u3092\u518d\u8d77\u52d5":1,"\u30e9\u30f3\u30bf\u30a4\u30e0\u30a8\u30e9\u30fc\u3068\u306f":14,"\u30e9\u30f3\u30bf\u30a4\u30e0\u30a8\u30e9\u30fc\u3082\u7121\u304f":14,"\u30e9\u30f3\u30bf\u30a4\u30e0\u30bf\u30a4\u30d7\u306fgpu\u306b\u3088\u308b\u5b9f\u884c\u304c\u63a8\u5968":20,"\u30e9\u30f3\u30c0\u30e0\u306a\u30c7\u30fc\u30bf\u306e\u4f5c\u308a\u65b9\u3082\uff11\u56de\u76ee\u3068\uff12\u56de\u76ee":21,"\u30e9\u30f3\u30c0\u30e0\u306b\u52dd\u3061\u8ca0\u3051\u3092\u6c7a\u3081\u308b\u305f\u3081random\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3044\u307e\u3059":3,"\u30e9\u30f3\u30c0\u30e0\u306b\u63a2\u7d22\u3059\u308b":8,"\u30e9\u30f3\u30c0\u30e0\u306b\u751f\u6210\u3057\u305f\u91cd\u307f":10,"\u30e9\u30f3\u30c0\u30e0\u30a6\u30a9\u30fc\u30af\u3084\u305d\u306e\u6d3e\u751f\u306e\u65b9\u6cd5\u306f":6,"\u30e9\u30f3\u30c0\u30e0\u6027":6,"\u30ea\u30a2\u30af\u30b7\u30e7\u30f3\u30b7\u30fc\u30c8":25,"\u30ea\u30a2\u30af\u30b7\u30e7\u30f3\u30b7\u30fc\u30c8\u306e\u63d0\u51fa\u3084\u8cea\u554f\u306e\u969b\u306f":25,"\u30ea\u30b9\u30c8":[1,4,6,9,22,25],"\u30ea\u30b9\u30c8\u3067\u4ee3\u7528\u3067\u304d\u308b":3,"\u30ea\u30b9\u30c8\u3067\u8ffd\u52a0":18,"\u30ea\u30b9\u30c8\u3068\u30bf\u30d7\u30eb\u3092\u7528\u610f\u3057\u3066":3,"\u30ea\u30b9\u30c8\u306b\u3042\u3068\u304b\u3089\u8981\u7d20\u3092\u52a0\u3048\u305f\u304f\u306a\u308b\u3068\u304d\u3082\u3042\u308a\u307e\u3059":3,"\u30ea\u30b9\u30c8\u306b\u3044\u308c\u305f\u3082\u306e\u3092\u3044\u3063\u307a\u3093\u306b\u6271\u3046\u3068\u304d\u306b":3,"\u30ea\u30b9\u30c8\u306b\u4f3c\u305f\u578b\u3068\u3057\u3066\u30bf\u30d7\u30eb\u3068\u8f9e\u66f8\u304c\u3042\u308a\u307e\u3059":3,"\u30ea\u30b9\u30c8\u306b\u5165\u3063\u3066\u3044\u308b\u8981\u7d20\u306e\u6570\u306f":3,"\u30ea\u30b9\u30c8\u306b\u540d\u524d\u3092\u5272\u308a\u632f\u308b":3,"\u30ea\u30b9\u30c8\u306b\u5909\u63db\u3059\u308c\u3070\u3088\u3044":18,"\u30ea\u30b9\u30c8\u306b\u5bfe\u3057\u3066":[4,5],"\u30ea\u30b9\u30c8\u306b\u683c\u7d0d\u3059\u308b\u60c5\u5831\u306b\u8840\u6db2\u578b\u3092\u52a0\u3048\u305f\u308a\u3059\u308b\u969b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3059\u308c\u3070\u3088\u3044":3,"\u30ea\u30b9\u30c8\u306b\u8981\u7d20\u3092\u52a0\u3048\u308b\u65b9\u6cd5\u304c\u5206\u304b\u308b":25,"\u30ea\u30b9\u30c8\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u304c\u7528\u610f\u3055\u308c\u305f\u7bc4\u56f2":3,"\u30ea\u30b9\u30c8\u306e\u30b9\u30e9\u30a4\u30b9\u306b\u3064\u3044\u3066\u306f2\u7ae0\u3092\u53c2\u7167":9,"\u30ea\u30b9\u30c8\u306e\u30ea\u30b9\u30c8":3,"\u30ea\u30b9\u30c8\u306e\u30ea\u30b9\u30c8\u3092\u4f5c\u6210":3,"\u30ea\u30b9\u30c8\u306e\u4e2d\u306e\u8981\u7d20\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u304d\u306f":3,"\u30ea\u30b9\u30c8\u306e\u4e2d\u8eab\u3092\u9806\u756a\u306b\u8868\u793a\u3055\u305b\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u30ea\u30b9\u30c8\u306e\u5024\u3092\u5f8c\u3067\u5909\u66f4\u3059\u308b\u3053\u3068\u304c\u306a\u3044\u306a\u3089":3,"\u30ea\u30b9\u30c8\u306e\u51e6\u7406\u306b\u304b\u304b\u3063\u305f\u6642\u9593":3,"\u30ea\u30b9\u30c8\u306e\u5834\u5408\u306f\u3082\u3046\u5c11\u3057\u6319\u52d5\u304c\u8907\u96d1\u3067\u3059":4,"\u30ea\u30b9\u30c8\u306e\u5b9a\u7fa9\u3084\u8981\u7d20\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306e\u65b9\u6cd5":25,"\u30ea\u30b9\u30c8\u306e\u672b\u5c3e\u306b\u8981\u7d20\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u305f":4,"\u30ea\u30b9\u30c8\u306e\u8981\u7d20\u306b\u3067\u304d\u308b\u306e\u306f\u6570\u5024\u3060\u3051\u3067\u306f\u306a\u304f":3,"\u30ea\u30b9\u30c8\u306e\u8981\u7d20\u306b\u9806\u756a\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b":3,"\u30ea\u30b9\u30c8\u306e\u8981\u7d20\u306f\u5f8c\u304b\u3089\u66f4\u65b0\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\u30ea\u30b9\u30c8\u306e\u8981\u7d20\u3092\u66f8\u304d\u63db\u3048\u308b\u30b3\u30fc\u30c9\u306b\u3059\u308b\u3053\u3068":25,"\u30ea\u30b9\u30c8\u306e\u8db3\u3057\u7b97\u306f\u8981\u7d20\u3054\u3068\u306e\u548c\u3067\u306f\u306a\u304f":3,"\u30ea\u30b9\u30c8\u306e\u9577\u3055\u3092\u4f7f\u3063\u305f\u308a":25,"\u30ea\u30b9\u30c8\u306f":3,"\u30ea\u30b9\u30c8\u306f\u8981\u7d20\u3092":3,"\u30ea\u30b9\u30c8\u307f\u305f\u3044\u306a\u3082\u306e":3,"\u30ea\u30b9\u30c8\u3084\u6587\u5b57\u5217\u306a\u3069\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5bfe\u3057\u3066":4,"\u30ea\u30b9\u30c8\u3084ndarrai":6,"\u30ea\u30b9\u30c8\u3084range\u306a\u3069\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u306b\u8981\u7d20\u3092\u9078\u3073\u305f\u3044\u3068\u304d\u306b\u306f":6,"\u30ea\u30b9\u30c8\u3088\u308a\u3082\u65e9\u304f\u51e6\u7406\u304c\u5b9f\u884c\u3055\u308c\u308b":3,"\u30ea\u30b9\u30c8\u3092":5,"\u30ea\u30b9\u30c8\u3092\u30bf\u30d7\u30eb\u306b\u3059\u308b\u306a\u3069":3,"\u30ea\u30b9\u30c8\u3092\u4f7f\u3063\u305f\u8a08\u7b97":3,"\u30ea\u30b9\u30c8\u3092\u4fdd\u6301\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\u30ea\u30b9\u30c8\u3092\u5165\u308c\u5b50\u306b\u3059\u308b\u969b\u306b\u306f":3,"\u30ea\u30b9\u30c8\u3092\u5b9a\u7fa9":3,"\u30ea\u30b9\u30c8\u3092\u8868\u793a":3,"\u30ea\u30b9\u30c8\u3092\u8fd4\u3059\u3053\u3068\u3082\u51fa\u6765\u307e\u3059":4,"\u30ea\u30b9\u30c8\u3092\u9023\u7d50":9,"\u30ea\u30b9\u30c8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u81ea\u4f53\u306eid\u306f\u5f15\u304d\u7d99\u304c\u308c\u3066\u3044\u3066":4,"\u30ea\u30b9\u30c8\u5185\u5305\u8868\u8a18\u3068\u547c\u3070\u308c\u308b\u66f8\u304d\u65b9\u304c\u3042\u308a\u307e\u3059":3,"\u30ea\u30b9\u30c8\u5185\u5305\u8868\u8a18\u3092\u4f7f\u3063\u305f\u5b9f\u88c5":9,"\u30ea\u30b9\u30c8\u5185\u8981\u7d20":4,"\u30ea\u30b9\u30c8\u540c\u58eb":3,"\u30ea\u30b9\u30c8\u540c\u58eb\u306e\u5358\u306a\u308b\u7d50\u5408":3,"\u30ea\u30b9\u30c8\u540c\u58eb\u306e\u7d50\u5408\u3092\u610f\u5473\u3057\u3066\u3044\u307e\u3057\u305f":22,"\u30ea\u30b9\u30c8\u64cd\u4f5c\u306e\u6ce8\u610f\u70b9":2,"\u30ea\u30b9\u30c8\u7b49\u306e\u8981\u7d20\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306e\u306b":14,"\u30ea\u30b9\u30c8a\u306e\u9577\u3055\u306f":3,"\u30ea\u30b9\u30c8names\u306f":3,"\u30ea\u30c3\u30c1\u30bf\u30a4\u30d7":18,"\u30ea\u30cd\u30fc\u30e0":24,"\u30ea\u30d7\u30b7\u30c3\u30c4\u6761\u4ef6":16,"\u30ea\u30e2\u30fc\u30c8\u74b0\u5883\u306b\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u969b\u306b":24,"\u30ea\u30e2\u30fc\u30c8\u74b0\u5883\u3078\u306e\u30ed\u30b0\u30a4\u30f3\u306b\u5fc5\u8981\u306a\u60c5\u5831\u306a\u3069\u304c":24,"\u30ea\u30f3\u30af\u3092\u30b3\u30d4\u30fc\u3057\u3069\u3053\u304b\u306b\u4fdd\u5b58\u3057\u3066\u304a\u3053\u3046":25,"\u30ea\u30f3\u30af\u3092\u77e5\u3063\u3066\u3044\u308b\u5168\u54e1":25,"\u30ea\u30f3\u30af\u5207\u308c\u306a\u3069":0,"\u30eb\u30d5\u30a3\u30cb\u306e\u5b9a\u7406":15,"\u30eb\u30fc\u30d7":3,"\u30eb\u30fc\u30d7\u3068\u3082\u547c\u3073\u307e\u3059":3,"\u30eb\u30fc\u30d7\u306b\u5165\u308c\u30665\u56de\u304f\u3089\u3044\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046":6,"\u30eb\u30fc\u30d7\u3084\u95a2\u6570\u304c\u5c0e\u5165\u3055\u308c\u308b\u3068\u5c11\u3057\u4e8b\u60c5\u304c\u7570\u306a\u308a":2,"\u30eb\u30fc\u30d7\u3092\u307e\u308f\u3057\u3066plot\u3059\u308b\u306e\u306f\u3081\u3093\u3069\u304f\u3055\u3044":22,"\u30eb\u30fc\u30d7\u3092\u56de\u3057\u3066\u4e00\u884c\u305a\u3064\u8868\u793a\u3055\u305b\u308b\u3068":9,"\u30eb\u30fc\u30d7\u3092\u7528\u3044\u3066\u30ea\u30b9\u30c8\u306e\u4e2d\u8eab\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u65b9\u6cd5\u306f\u4e3b\u306b2\u901a\u308a\u3067":3,"\u30eb\u30fc\u30d7\u51e6\u7406\u306f":3,"\u30eb\u30fc\u30d7\u51e6\u7406\u3092\u4f7f\u3046\u3053\u3068\u3067":3,"\u30eb\u30fc\u30eb\u4f5c\u308a":4,"\u30ec\u30a4\u30a2\u30a6\u30c8\u306f\u597d\u304d\u306b\u6539\u5909\u3057\u3066ok":25,"\u30ec\u30ac\u30b7\u30fc\u30b3\u30fc\u30c9\u306e\u52d5\u4f5c\u78ba\u8a8d\u7b49\u306b\u3082\u5f79\u306b\u7acb\u3064":24,"\u30ec\u30b9\u30dd\u30f3\u30b9\u3092json\u5f62\u5f0f\u3067\u53d6\u5f97\u3059\u308b":13,"\u30ec\u30dd\u30b8\u30c8\u30ea":[13,20,21],"\u30ec\u30dd\u30fc\u30c8\u306b\u8cbc\u308a\u4ed8\u3051\u305f\u308a":5,"\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3082\u7f8e\u3057\u3044":23,"\u30ed\u30b0\u30a4\u30f3":1,"\u30ed\u30b0\u30a4\u30f3\u30da\u30fc\u30b8":13,"\u30ed\u30fc\u30ab\u30eb\u5909\u6570":4,"\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u3068\u306f":4,"\u30ed\u30fc\u30ab\u30eb\u5909\u6570\u3068\u307f\u306a\u3055\u308c\u3066\u51e6\u7406\u304c\u884c\u308f\u308c\u308b\u305f\u3081\u3067\u3059":4,"\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u3067":21,"\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u306bpython\u3092\u5c0e\u5165\u3059\u308b\u65b9\u6cd5\u3092os\u3054\u3068\u306b\u7d39\u4ecb\u3059\u308b":24,"\u30ef\u30a4\u30c9\u30b7\u30e7\u30fc\u306a\u3069\u3067\u7dcf\u548c\u304c100":5,"\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9":24,"\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u8a18\u53f7":24,"\u4e00\u3064\u306b\u307e\u3068\u3081\u3066\u66f8\u304f\u306e\u304c\u30aa\u30b9\u30b9\u30e1":2,"\u4e00\u3064\u306e\u30b0\u30e9\u30d5\u306b6\u3064\u306e\u9818\u57df\u3092\u7528\u610f\u3057\u3066\u4f5c\u753b\u3059\u308b":6,"\u4e00\u4eba\u305a\u3064bmi\u3092\u8868\u793a\u3055\u305b\u3088":25,"\u4e00\u4eba\u306e\u5bc4\u4e0e\u304c\u5341\u5206\u306b\u8a8d\u3081\u3089\u308c\u308b\u3053\u3068":25,"\u4e00\u5b9a\u306e\u30eb\u30fc\u30eb":9,"\u4e00\u5b9a\u306e\u5b66\u7fd2\u52b9\u679c\u304c\u671f\u5f85\u3055\u308c\u308b":21,"\u4e00\u5ea6\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u3051\u3070":23,"\u4e00\u5ea6\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u3063\u3066\u3057\u307e\u3046\u3068":5,"\u4e00\u5ea6\u30ed\u30fc\u30ab\u30eb\u306b\u4fdd\u5b58\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30d6\u30e9\u30a6\u30b6\u306a\u3069\u304b\u3089\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u65b9\u6cd5\u306f\u3082\u3061\u308d\u3093":9,"\u4e00\u5ea6\u5b9a\u7fa9\u3055\u308c\u308c\u3070\u95a2\u6570\u306b\u5f15\u6570\u3068\u3057\u3066\u6e21\u3055\u306a\u304f\u3066\u3082\u53c2\u7167\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":4,"\u4e00\u5ea6\u5b9a\u7fa9\u3057\u305f\u5909\u6570\u306f":2,"\u4e00\u5fdcnormalvariate\u3082\u4f7f\u3063\u3066\u307f\u308b":6,"\u4e00\u65b9":[4,8,17,22],"\u4e00\u65b9\u3067":[2,4,8,16],"\u4e00\u65b9\u3067\u30c7\u30fc\u30bf\u3092\u5206\u6790\u3057\u3066\u3044\u308b\u3068":17,"\u4e00\u65b9\u3067\u5909\u6570\u306e\u30b9\u30b3\u30fc\u30d7\u304c\u5206\u304b\u308a\u3065\u3089\u3044\u3053\u3068\u304c\u3057\u3070\u3057\u3070\u3042\u308a\u307e\u3059":4,"\u4e00\u65b9\u3067\u5b9f\u6570\u306f":2,"\u4e00\u65b9\u3067\u7d2b":8,"\u4e00\u65b9\u3067relu\u95a2\u6570\u306fx":10,"\u4e00\u65b9\u3067windows\u306f":23,"\u4e00\u65b9\u30c7\u30b3\u30fc\u30c0\u90e8\u5206\u306f\u4e00\u5ea6\u5727\u7e2e\u3057\u305f\u60c5\u5831\u3092\u3082\u3068\u306b\u5143\u306e\u4fe1\u53f7\u3092\u518d\u69cb\u6210\u3059\u308b\u3088\u3046\u306a\u50cd\u304d\u3092\u3057\u307e\u3059":17,"\u4e00\u6642\u7684\u306a\u5909\u6570\u3092\u4f7f\u3046\u5834\u5408\u306f":3,"\u4e00\u69d8\u4e71\u6570":25,"\u4e00\u69d8\u4e71\u6570\u3092\u7528\u3044\u305f\u5186\u5468\u7387\u306e\u8a08\u7b97":6,"\u4e00\u6b21\u5143\u306e\u5358\u5cf0\u7684\u306a\u95a2\u6570\u306e\u6700\u5c0f\u5024\u3092\u63a2\u7d22\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b":8,"\u4e00\u756a\u5916\u5074\u306e\u62ec\u5f27\u304b\u3089\u6570\u3048\u3066":3,"\u4e00\u756a\u5c0f\u3055\u3044":8,"\u4e00\u7dd2\u306b\u3057\u3066\u3044\u308b\u3064\u3082\u308a\u306a\u306e\u306b\u30a8\u30e9\u30fc\u304c\u51fa\u308b":5,"\u4e00\u7dd2\u306b\u52c9\u5f37\u3057\u3066\u3044\u304d\u307e\u3057\u3087\u3046":5,"\u4e00\u7dd2\u306b\u5c11\u3057\u305a\u3064\u6163\u308c\u3066\u3044\u3053\u3046":2,"\u4e00\u81f4\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308b":12,"\u4e00\u822c\u306b":[4,7,8,10,16],"\u4e00\u822c\u306b\u306f\u3072\u3089\u304c\u306a\u3084\u6f22\u5b57\u306a\u3069\u5168\u89d2\u6587\u5b57\u3092\u5909\u6570\u306b\u6307\u5b9a\u3059\u308b\u3053\u3068\u306f\u907f\u3051\u305f\u307b\u3046\u304c\u7121\u96e3\u3067\u3042\u308b":2,"\u4e00\u822c\u306b\u306f\u771f\u306e\u95a2\u6570":11,"\u4e00\u822c\u306b\u4e88\u6e2c\u5206\u5e03\u3092\u8a55\u4fa1\u3059\u308b\u969b\u306f":12,"\u4e00\u822c\u306b\u4ee5\u4e0b\u306e\u5f62\u3067\u66f8\u304f\u3053\u3068\u304c\u51fa\u6765\u308b":16,"\u4e00\u822c\u306b\u5927\u91cf\u306e\u753b\u50cf\u30c7\u30fc\u30bf":19,"\u4e00\u822c\u306b\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u304c\u4e0e\u3048\u3089\u308c\u305f\u6642":16,"\u4e00\u822c\u306b\u5fae\u5c0f\u5909\u5206":16,"\u4e00\u822c\u306b\u76f4\u7dda\u3088\u308a\u3082\u8907\u96d1\u306a\u5f62\u3092\u3057\u3066\u3044\u3066":8,"\u4e00\u822c\u306b\u8003\u3048\u305f\u3044\u95a2\u6570\u306b\u95a2\u3057\u3066\u9069\u5207\u306a":8,"\u4e00\u822c\u306bpython\u306e\u3088\u3046\u306a\u52d5\u7684\u578b\u4ed8\u3051\u8a00\u8a9e\u306b\u5206\u985e\u3055\u308c\u308b\u8a00\u8a9e\u306f":22,"\u4e00\u822c\u306e":19,"\u4e00\u822c\u306e\u30c7\u30fc\u30bf\u306f\u5fc5\u305a\u3057\u3082\u76f4\u7dda\u7684\u306a\u5206\u5e03\u3092\u6301\u3063\u3066\u3044\u308b\u308f\u3051\u3067\u306f\u306a\u304f":17,"\u4e00\u822c\u306e\u554f\u984c\u3067\u306f":8,"\u4e00\u822c\u5bb6\u5ead\u3067\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306e\u9700\u8981\u62e1\u5927\u3068\u3068\u3082\u306b\u72ec\u81ea\u306e\u9032\u5316\u3092\u9042\u3052\u3066\u304d\u305f":23,"\u4e00\u822c\u7684\u306a\u5206\u985e\u306b\u5023\u3048\u3070":16,"\u4e00\u822c\u8ad6\u3068\u3057\u3066":[21,24],"\u4e00\u884c\u3067\u66f8\u304f\u306a\u3089":7,"\u4e00\u898b":6,"\u4e00\u898b\u30ba\u30eb\u3063\u307d\u3044\u304c":7,"\u4e00\u898b\u4e0d\u4fbf\u305d\u3046\u306a\u6587\u5b57\u5217\u3060\u3089\u3051\u306e\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u304c\u7528\u3044\u3089\u308c\u308b\u306e\u304b":23,"\u4e00\u90e8\u4e2d\u5206\u985e":13,"\u4e00\u90e8\u5b66\u79d1\u3092\u9664\u304f":9,"\u4e09\u629e\u3067\u7b54\u3048\u3066\u307f\u3066\u304f\u3060\u3055\u3044":3,"\u4e09\u89d2\u95a2\u6570":[5,8],"\u4e0a\u304b\u3089\u51e6\u7406\u304c\u5b9f\u884c\u3055\u308c\u308b":2,"\u4e0a\u304b\u3089\u898b\u305f\u89d2\u5ea6\u3092\u8abf\u6574\u3067\u304d\u308b":5,"\u4e0a\u3067":5,"\u4e0a\u3067\u306e":19,"\u4e0a\u3067\u306f":[2,4,5,8,12,17,19],"\u4e0a\u3067\u306f\u5192\u982d\u306b":9,"\u4e0a\u3067\u306f\u5358\u7d14\u306a\u9806\u4f1d\u64ad\u578b\u306e\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u63cf\u304d\u307e\u3057\u305f\u304c\u30aa\u30fc\u30c8\u30a8\u30f3\u30b3\u30fc\u30c0\u3092\u69cb\u6210\u3059\u308b\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306f\u4e0a\u8a18\u306e\u3088\u3046\u306a\u5358\u7d14\u306aann\u306b\u9650\u3089\u305a\u7573\u307f\u8fbc\u307f\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u7528\u3044\u305f\u7573\u307f\u8fbc\u307f\u30aa\u30fc\u30c8\u30a8\u30f3\u30b3\u30fc\u30c0\u306a\u3069\u3082\u77e5\u3089\u308c\u3066\u3044\u307e\u3059":17,"\u4e0a\u3067\u306fcalc_tloss\u306e\u5f15\u6570\u306bacf\u3068\u3044\u3046\u5909\u6570\u3092\u6307\u5b9a\u3057":10,"\u4e0a\u3067\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3092\u958b\u304f\u306b\u306f":0,"\u4e0a\u3067\u30ea\u30d7\u30b7\u30c3\u30c4":16,"\u4e0a\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u30a4\u30f3\u30c7\u30c3\u30af\u30b9":4,"\u4e0a\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5909\u6570\u3092\u4f7f\u3063\u3066\u56db\u5247\u6f14\u7b97\u3092\u3057\u3066\u307f\u3088\u3046":2,"\u4e0a\u3067\u5b9a\u7fa9\u3057\u305f\u6700\u5c0f\u4e8c\u4e57\u6cd5\u306f":7,"\u4e0a\u3067\u793a\u3057\u305f\u4f8b\u3067\u306f":10,"\u4e0a\u3067\u7d39\u4ecb\u3057\u305fpca\u306f":17,"\u4e0a\u3067\u81ea\u5206\u3060\u3051\u306ee":13,"\u4e0a\u3067\u81ea\u524d\u30b3\u30fc\u30c9\u3067\u3084\u3063\u305f\u3053\u3068\u3092":11,"\u4e0a\u3067\u8a08\u7b97\u3057\u305fbmi\u306b\u5bfe\u5fdc\u3059\u308b\u5909\u6570\u3068str\u95a2\u6570\u3092\u7528\u3044\u3066\u6587\u5b57\u5217\u3092\u9023\u7d50\u3057":25,"\u4e0a\u3067\u8aac\u660e\u3057\u305f\u3088\u3046\u306a\u624b\u9806\u3067\u30ea\u30b9\u30c8\u306a\u3069\u306b\u683c\u7d0d\u3059\u308c\u3070\u4eca\u307e\u3067\u884c\u3063\u305f\u3088\u3046\u306a\u89e3\u6790\u3084\u30b0\u30e9\u30d5\u63cf\u753b\u304c\u5b9f\u884c\u3067\u304d\u308b":9,"\u4e0a\u3067googl":9,"\u4e0a\u3068\u540c\u3058\u3088\u3046\u306b\u8003\u3048\u3066\u307f\u307e\u3057\u3087\u3046":8,"\u4e0a\u3068\u540c\u3058\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b":9,"\u4e0a\u3068\u540c\u69d8\u306b\u52fe\u914d\u3092\u8a08\u7b97\u3059\u308b\u3068":12,"\u4e0a\u306b\u306a\u3089\u3063\u3066":18,"\u4e0a\u306b\u306f":17,"\u4e0a\u306b\u793a\u3057\u305f\u306e\u306f":7,"\u4e0a\u306e":[3,5,6,7,8,9,12,13,16,23,24],"\u4e0a\u306e1\u884c\u305a\u3064\u8868\u793a\u3059\u308b\u30b3\u30fc\u30c9\u3067\u306f":9,"\u4e0a\u306e\u3088\u3046\u306a\u3042\u308b\u7a2e":21,"\u4e0a\u306e\u3088\u3046\u306a\u30e9\u30f3\u30c0\u30e0\u30a6\u30a9\u30fc\u30af\u3067\u306f\u52b9\u7387\u304c\u60aa\u3044\u306e\u3067":6,"\u4e0a\u306e\u3088\u3046\u306a\u57fa\u672c\u7684\u306a\u64cd\u4f5c\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3082\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059":9,"\u4e0a\u306e\u3088\u3046\u306b":3,"\u4e0a\u306e\u3088\u3046\u306b\u610f\u56f3\u3057\u306a\u3044\u5f15\u6570\u3092\u5165\u308c\u305f\u3068\u304d\u306e\u6319\u52d5\u306a\u3069\u3082\u8a2d\u5b9a\u3059\u308b\u3068":7,"\u4e0a\u306e\u30b3\u30fc\u30c9\u3067":3,"\u4e0a\u306e\u30b3\u30fc\u30c9\u3067\u306f":3,"\u4e0a\u306e\u30b3\u30fc\u30c9\u3068\u540c\u69d8":17,"\u4e0a\u306e\u30b3\u30fc\u30c9\u306f":[3,5],"\u4e0a\u306e\u30b3\u30fc\u30c9\u306f2":3,"\u4e0a\u306e\u30b3\u30fc\u30c9\u306f\u3053\u306e\u8fd4\u308a\u5024\u3092":7,"\u4e0a\u306e\u30b3\u30fc\u30c9\u306f\u30e1\u30e2\u30ea\u3092\u98df\u3046\u306e\u3067":6,"\u4e0a\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057":5,"\u4e0a\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u5f8c\u306b\u30a8\u30e9\u30fc\u304c\u51fa\u3066\u3044\u306a\u3051\u308c\u3070googl":5,"\u4e0a\u306e\u30b3\u30fc\u30c9\u3092\u5c11\u3057\u88dc\u8db3\u3057\u3066\u304a\u304f\u3068":7,"\u4e0a\u306e\u30b3\u30fc\u30c9\u30bb\u30eb\u3092\u5b9f\u884c\u3059\u308b\u305f\u3073\u306b\u7b54\u3048\u304c\u5909\u308f\u308b\u3053\u3068":6,"\u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u6587\u5b57\u5217\u3067":9,"\u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u3092googl":9,"\u4e0a\u306e\u30ea\u30b9\u30c8\u304b\u3089":25,"\u4e0a\u306e\u30ea\u30b9\u30c8\u306b\u3064\u3044\u3066":25,"\u4e0a\u306e\u30ea\u30b9\u30c8\u3092":3,"\u4e0a\u306e\u30ed\u30b1\u30c3\u30c8\u306e\u5f62\u3092\u3057\u305f\u30dc\u30bf\u30f3\u306b\u30de\u30a6\u30b9\u30aa\u30fc\u30d0\u30fc\u3057\u3066":0,"\u4e0a\u306e\u4e00\u6b21\u5143\u306e\u4f8b\u3092\u3082\u3063\u3068\u7c21\u7565\u5316\u3059\u308b\u3053\u3068\u306b\u3057\u3066":8,"\u4e0a\u306e\u4f8b\u3067":[2,3],"\u4e0a\u306e\u4f8b\u3067\u3044\u3046\u3068":3,"\u4e0a\u306e\u4f8b\u3067\u306f\uff12\u3064\u306e\u30ea\u30b9\u30c8\u3092\u5f15\u6570\u3068\u3057\u307e\u3057\u305f":4,"\u4e0a\u306e\u4f8b\u306e\u3088\u3046\u306b100\u500b\u306e\u70b9\u306e3\u6b21\u5143\u5ea7\u6a19\u306b\u5bfe\u5fdc\u3059\u308b\u30ea\u30b9\u30c8\u304c\u3042\u308b\u5834\u5408":4,"\u4e0a\u306e\u5168\u3066\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea":24,"\u4e0a\u306e\u5185\u5bb9\u3084":9,"\u4e0a\u306e\u521d\u671f\u5024\u3092":15,"\u4e0a\u306e\u56f3\u3067\u306f":6,"\u4e0a\u306e\u5834\u5408":4,"\u4e0a\u306e\u591a\u9805\u5f0f\u56de\u5e30\u3067\u306f":7,"\u4e0a\u306e\u5b9a\u5f0f\u5316\u306b\u304a\u3051\u308bn":17,"\u4e0a\u306e\u5b9a\u5f0f\u5316\u3092\u4fee\u6b63\u3057\u3066\u4e0d\u504f\u5206\u6563\u3092\u7528\u3044\u308b\u3053\u3068\u306b\u3057\u3088\u3046":17,"\u4e0a\u306e\u5b9a\u7fa9\u306f":8,"\u4e0a\u306e\u5f0f\u3092\u5909\u5f62\u3059\u308b\u3068":12,"\u4e0a\u306e\u5fae\u5206\u306e\u5b9a\u7fa9\u3084":8,"\u4e0a\u306e\u6587\u5b57\u5217\u3067":9,"\u4e0a\u306e\u6b63\u898f\u5206\u5e03\u306e\u8003\u3048\u65b9\u3092\u62e1\u5f35\u3057\u3066":6,"\u4e0a\u306e\u753b\u50cf\u306e\u3088\u3046\u306b":1,"\u4e0a\u306e\u7b26\u53f7\u53cd\u8ee2\u306b\u3064\u3044\u3066":17,"\u4e0a\u306e\u8868\u5f0f\u3092":19,"\u4e0a\u306e\u8a08\u753b\u884c\u5217\u306b\u3088\u3063\u30663\u6b21\u5f0f\u3067\u56de\u5e30\u3057\u3066\u307f\u308b\u3068":12,"\u4e0a\u306e\u8ef8\u65b9\u5411":17,"\u4e0a\u306e\u95a2\u6570\u306e":6,"\u4e0a\u306ecalc_tloss\u95a2\u6570\u304c\u4f7f\u3044\u307e\u308f\u305b\u307e\u3059\u306d":10,"\u4e0a\u306eeuler\u6cd5\u306f1\u6b21\u516c\u5f0f\u3068\u306a\u308b":16,"\u4e0a\u306ej\u306e\u30eb\u30fc\u30d7\u5185\u3067":4,"\u4e0a\u306els\u3068\u3044\u3046\u30b3\u30de\u30f3\u30c9\u306f":5,"\u4e0a\u306eopen":1,"\u4e0a\u306f":19,"\u4e0a\u3092\u898b\u308b\u3068":3,"\u4e0a\u624b\u304f\u3044\u3063\u305f\u4e00\u4f8b":20,"\u4e0a\u624b\u304f\u4f7f\u3044\u3053\u306a\u305b\u308c\u3070":21,"\u4e0a\u66f8\u304d":9,"\u4e0a\u8a18\u306e\u3088\u3046\u306a\u96e2\u6563\u7684\u306a\u4e71\u6570\u3068\u306f\u7570\u306a\u308a":6,"\u4e0a\u8a18\u306e\u3088\u3046\u306b":2,"\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u306e\u5bfe\u5fdc\u3059\u308bid\u306a\u3069\u3092\u5909\u66f4\u3059\u308c\u3070\u3088\u3044\u3057":13,"\u4e0a\u8a18\u306e\u30e2\u30c7\u30eb\u9078\u629e\u57fa\u6e96\u91cf":7,"\u4e0a\u8a18\u306e\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea":24,"\u4e0a\u8a18\u306e\u53f3\u8fba\u304b\u3089":19,"\u4e0a\u8a18\u306e\u624b\u9806\u4ee5\u964d\u306f":23,"\u4e0a\u8a18\u306e\u8a18\u53f7\u3084\uff12\u30d0\u30a4\u30c8\u4ee5\u4e0a\u306e\u6587\u5b57\u306f\u30d5\u30a1\u30a4\u30eb":9,"\u4e0a\u8a18\u306e\u95a2\u6570\u5185\u3067\u6587\u5b57\u30b3\u30fc\u30c9\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":18,"\u4e0a\u8a18\u3092map\u95a2\u6570\u306b\u3057\u3066\u307f\u3088\u3046":9,"\u4e0b\u3067\u8aac\u660e\u3057\u307e\u3059":2,"\u4e0b\u306b\u51f8\u306a\u4e8c\u6b21\u95a2\u6570\u306e\u6700\u5c0f\u5024\u3092":8,"\u4e0b\u306e\u3088\u3046\u306b":3,"\u4e0b\u306e\u30b0\u30e9\u30d5\u306fy\u8ef8\u306e\u5bfe\u6570\u30b9\u30b1\u30fc\u30eb\u3092\u3068\u3063\u3066\u307f\u307e\u3057\u305f":5,"\u4e0b\u306e\u30b3\u30fc\u30c9\u306f":14,"\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u9069\u5f53\u306b\u3044\u3058\u3063\u3066\u904a\u3093\u3067\u307f\u3066\u304f\u3060\u3055\u3044":5,"\u4e0b\u306e\u30ea\u30b9\u30c8\u3092\u4f5c\u6210\u3059\u308b":3,"\u4e0b\u306e\u56f3\u306f":7,"\u4e0b\u4ed8\u304d\u6dfb\u5b57":7,"\u4e0b\u5411\u304d\u77e2\u5370":21,"\u4e0b\u8a18\u306e\u3088\u3046\u306a\u753b\u9762\u304c\u958b\u304f":1,"\u4e0b\u8a18\u306e\u5c0e\u5165\u3092\u63a8\u5968\u3068\u3059\u308b":23,"\u4e0d\u504f\u5206\u6563":17,"\u4e0d\u5b89\u306a\u5834\u5408\u306fzoom\u3067\u753b\u9762\u3092\u5171\u6709\u3057\u306a\u304c\u3089\u4e00\u7dd2\u306b\u3084\u308a\u307e\u3057\u3087\u3046":24,"\u4e0d\u5b8c\u5168\u306a\u30b3\u30fc\u30c9\u3067\u3059":3,"\u4e0d\u5e78\u611f":8,"\u4e0d\u6b63\u78ba\u306a\u8a18\u8ff0\u304c\u542b\u307e\u308c\u3066\u3044\u3066\u304b\u3048\u3063\u3066\u7406\u89e3\u3092\u9060\u3056\u3051\u308b\u5371\u967a\u6027\u3082\u3042\u308b":5,"\u4e0d\u9069\u5207\u306a\u30a4\u30f3\u30c7\u30f3\u30c8":14,"\u4e16\u306e\u4e2d\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304f\u4eba\u304c\u5168\u54e1":17,"\u4e16\u306e\u4e2d\u306b":6,"\u4e16\u306e\u4e2d\u306b\u3042\u3075\u308c\u308bcsv":9,"\u4e16\u306e\u4e2d\u306b\u306f":9,"\u4e16\u306e\u4e2d\u306b\u306f\u591a\u304f\u306e\u5186\u30b0\u30e9\u30d5\u306e\u8aa4\u7528\u304c\u6ea2\u308c\u3066\u3044\u307e\u3059":5,"\u4e16\u5e2f\u3042\u305f\u308a\u306e\u30a2\u30a4\u30b9\u30af\u30ea\u30e0":[5,7],"\u4e16\u5e2f\u3042\u305f\u308a\u306e\u30a2\u30a4\u30b9\u30af\u30ea\u30fc\u30e0":5,"\u4e16\u5e2f\u3054\u3068\u306e\u30a2\u30a4\u30b9\u30af\u30ea\u30fc\u30e0":7,"\u4e16\u754c\u5168\u4f53\u3067\u306e\u65b0\u578b\u30b3\u30ed\u30ca\u30a6\u30a4\u30eb\u30b9\u611f\u67d3\u8005\u6570":5,"\u4e16\u754c\u53f2":5,"\u4e16\u754c\u53f2\u3068\u3057\u3066":5,"\u4e16\u754c\u6a19\u6e96":9,"\u4e21\u8005\u306f\u305d\u306e\u8a2d\u8a08\u601d\u60f3\u304c\u7570\u306a\u308b\u305f\u3081":4,"\u4e21\u8005\u306f\u57fa\u672c\u7684\u306b\u540c\u3058\u3060\u304c":6,"\u4e21\u8005\u3092\u6574\u5408\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u308b":17,"\u4e26\u3079\u65b9\u3068\u306a\u3063\u3066\u3044\u308b\u3082\u306e\u304c\u591a\u304f":9,"\u4e2d\u3067\u884c\u308f\u308c\u3066\u3044\u308b\u8a08\u7b97\u3092\u78ba\u8a8d\u3059\u308b\u306b\u306f":17,"\u4e2d\u5206\u985e":13,"\u4e2d\u56fd":6,"\u4e2d\u5b66\u306e\uff15\u79d1\u76ee":9,"\u4e2d\u5b66\u307e\u3067\u3067\u7fd2\u3046\u3088\u3046\u306b\u3088\u304f\u77e5\u3089\u308c\u305f\u516c\u5f0f\u304c\u3042\u308b":15,"\u4e2d\u5b66\u6570\u5b66\u304b\u3089\u306f\u3058\u3081\u308b\u5fae\u5206\u7a4d\u5206":8,"\u4e2d\u5fc3":6,"\u4e2d\u5fc3\u3068\u5206\u6563":6,"\u4e2d\u5fc3\u4ed8\u8fd1\u306b\u305f\u304f\u3055\u3093\u5206\u5e03\u3057\u3066\u3044\u308b\u69d8\u5b50\u304c\u898b\u3066\u53d6\u308c\u307e\u3059":6,"\u4e2d\u5fc3\u5dee\u5206\u3068\u3044\u3046":8,"\u4e2d\u7565":4,"\u4e2d\u8eab\u306f\u540c\u3058\u3082\u306e\u306a\u306e\u3067\u3059\u304c":22,"\u4e2d\u8eab\u306fc\u8a00\u8a9e":22,"\u4e2d\u8eab\u3092\u5206\u304b\u3063\u305f\u4e0a\u3067\u4f7f\u3046":17,"\u4e3b\u3068\u3057\u3066":16,"\u4e3b\u306b\u5b66\u8853\u7684\u306a\u5206\u91ce\u3067":6,"\u4e3b\u6210\u5206":17,"\u4e3b\u6210\u5206\u3068\u547c\u3070\u308c\u308b\u5909\u6570\u3092\u5408\u6210\u3059\u308b\u591a\u5909\u91cf\u89e3\u6790\u306e\u4e00\u624b\u6cd5":17,"\u4e3b\u6210\u5206\u306e\u5206\u6563\u3092\u6700\u5927\u5316\u3059\u308b\u65b9\u91dd":17,"\u4e3b\u6210\u5206\u306e\u6c7a\u3081\u65b9\u3092\u5b9a\u5f0f\u5316\u3057\u3066\u304a\u3053\u3046":17,"\u4e3b\u6210\u5206\u3092\u6c7a\u3081\u308b\u65b9\u91dd\u306f\u4e3b\u306b":17,"\u4e3b\u6210\u5206\u5206\u6790\u306a\u3069\u3092\u7528\u3044\u3066\u7279\u5fb4\u3092\u62bd\u51fa\u3059\u308b\u3053\u3068\u3067\u89e3\u91c8\u304c\u3057\u3084\u3059\u304f\u306a\u3063\u305f\u308a":17,"\u4e3b\u6210\u5206\u5206\u6790\u306e\u5927\u96d1\u628a\u306a\u30e2\u30c1\u30d9\u30fc\u30b7\u30e7\u30f3\u304c\u308f\u304b\u3063\u305f\u3068\u3053\u308d\u3067":17,"\u4e3b\u6210\u5206\u5206\u6790\u306f":17,"\u4e3b\u6210\u5206\u8ef8\u3078\u306e\u8ddd\u96e2\u306e\u4e8c\u4e57\u548c":17,"\u4e57":8,"\u4e57\u306b\u6bd4\u4f8b\u3059\u308b\u624b\u6cd5\u3092\u4e00\u822c\u306b":16,"\u4e71\u6570\u304c\u3069\u306e\u3088\u3046\u306b\u6d3b\u7528\u3055\u308c\u3066\u3044\u308b\u304b":6,"\u4e71\u6570\u306b\u3088\u308a\u751f\u6210\u3059\u308b\u30b5\u30f3\u30d7\u30eb\u306e\u6570\u3092\u5897\u3084\u3057\u3066\u3044\u3063\u3066":6,"\u4e71\u6570\u306e\u751f\u6210\u524d\u306b":6,"\u4e71\u6570\u3092\u4f7f\u3063\u3066\u3058\u3083\u3093\u3051\u3093\u3092\u3059\u308b\u95a2\u6570\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u3087\u3046":6,"\u4e71\u6570\u3092\u4f7f\u3063\u3066\u5186\u5468\u7387\u3092\u6c42\u3081\u308b\u65b9\u6cd5\u3082":6,"\u4e71\u6570\u3092\u6271\u3046\u6982\u8981\u3092\u5b66\u3076":6,"\u4e71\u6570\u3092\u751f\u6210\u3057\u3066\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u3063\u305f\u308a\u3059\u308b\u3053\u3068\u3082\u7c21\u5358\u3067\u3059":22,"\u4e71\u6570\u3092\u751f\u6210\u3059\u308b\u524d\u306b\u6bce\u56deseed\u304c1\u306b\u56fa\u5b9a\u3055\u308c\u308b\u306e\u3067":6,"\u4e71\u6570\u3092\u751f\u6210\u3059\u308b\u65b9\u6cd5\u306f\u3044\u304f\u3064\u3082\u3042\u308b\u304c\u4ee3\u8868\u7684\u306a\u3082\u306e\u306f\u30e1\u30eb\u30bb\u30f3\u30cc\u30c4\u30a4\u30b9\u30bf\u3068\u547c\u3070\u308c\u308b\u65b9\u6cd5\u3067":6,"\u4e71\u6570\u3092\u7528\u3044\u3066\u3044\u308b\u306e\u3067":3,"\u4e88\u3081\u4ee5\u4e0b\u306e\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066":9,"\u4e88\u3081\u5168\u3066\u306e\u8981\u7d20\u304c\u6574\u6570\u3060\u3068\u5206\u304b\u3063\u3066\u3044\u3066\u6574\u6570\u306b\u5bfe\u3059\u308b\u6f14\u7b97":9,"\u4e88\u3081\u5206\u304b\u308b\u3053\u3068\u306f\u306a\u304f":10,"\u4e88\u3081\u540d\u524d\u3068\u5e74\u9f62\u3068\u3044\u3046\uff12\u3064\u306e\u95a2\u4fc2\u306e\u3042\u308b\u91cf\u3092\u8f9e\u66f8\u3068\u3057\u3066\u5b9a\u7fa9\u3057\u3066\u3057\u307e\u3048\u3070\u3088\u3044\u306e\u3067\u3059":3,"\u4e88\u3081\u77e5\u308b\u3053\u3068\u306f\u4e00\u822c\u306b\u306f\u3067\u304d\u307e\u305b\u3093\u304c":10,"\u4e88\u671f\u3057\u306a\u3044\u3053\u3068\u304c\u8d77\u3053\u308b":3,"\u4e88\u671f\u3057\u306a\u3044\u30a4\u30f3\u30c7\u30f3\u30c8":14,"\u4e88\u671f\u3057\u306a\u3044\u6319\u52d5\u306e\u539f\u56e0\u306b\u3082\u306a\u308a\u307e\u3059\u306e\u3067\u3042\u307e\u308a\u30aa\u30b9\u30b9\u30e1\u3057\u307e\u305b\u3093":4,"\u4e88\u671f\u305b\u305a":3,"\u4e88\u671f\u305b\u306c\u4e8b\u304c\u8d77\u304d\u305f\u5834\u5408\u306b\u30eb\u30fc\u30d7\u51e6\u7406\u3092\u7d42\u308f\u3089\u305b\u3066\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d42\u4e86\u3059\u308b\u3068\u304d":3,"\u4e88\u6e2c":8,"\u4e88\u6e2c\u306e\u8aa4\u5dee":8,"\u4e88\u6e2c\u5024":12,"\u4e88\u6e2c\u5206\u5e03\u306e\u5206\u6563\u306f":12,"\u4e88\u6e2c\u5206\u5e03\u306f\u4ee5\u4e0b\u3067\u4e0e\u3048\u3089\u308c\u308b":12,"\u4e88\u6e2c\u5206\u5e03\u3082\u9589\u3058\u305f\u5f62\u3067\u66f8\u304d\u4e0b\u3059\u3053\u3068\u304c\u3067\u304d\u308b":12,"\u4e88\u6e2c\u5b50":16,"\u4e88\u6e2c\u8aa4\u5dee\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u30671":11,"\u4e88\u6e2c\u8aa4\u5dee\u306e\u5206\u6563\u304c1":11,"\u4e88\u7d04\u8a9e\u306a\u306e\u3067\u8272\u304c\u5909\u308f\u3063\u3066\u307e\u3059\u306d":3,"\u4e88\u7d04\u8a9e\u306e\u5f79\u5272\u306b\u3064\u3044\u3066\u306f\u767b\u5834\u3057\u305f\u305d\u306e\u90fd\u5ea6\u8aac\u660e\u3057\u307e\u3059":2,"\u4e88\u7d04\u8a9e\u306f\u8272\u3067\u5206\u304b\u308b":2,"\u4e88\u8a00\u80fd\u529b\u304c\u306a\u3044\u30e2\u30c7\u30eb\u3068\u3057\u3066":7,"\u4e8b\u524d\u306b\u6559\u54e1\u306b\u78ba\u8a8d\u3059\u3079\u304d\u8ab2\u984c\u306e\u4f8b":25,"\u4e8b\u524d\u306b\u76f8\u8ac7\u3059\u308b\u3053\u3068\u3092\u5f37\u304f\u63a8\u5968\u3057\u307e\u3059":[23,24],"\u4e8b\u524d\u5206\u5e03\u306b\u30ac\u30a6\u30b9\u5206\u5e03\u3092\u4eee\u5b9a\u3059\u308b\u3053\u3068":12,"\u4e8b\u524d\u5206\u5e03\u306e\u5e73\u5747":12,"\u4e8b\u524d\u5206\u5e03\u306e\u7cbe\u5ea6":12,"\u4e8b\u5b9f":7,"\u4e8b\u5f8c\u5171\u5206\u6563\u884c\u5217\u306e\u8a08\u7b97":11,"\u4e8b\u5f8c\u5206\u5e03\u306e\u5e73\u5747\u304a\u3088\u3073\u5171\u5206\u6563\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u7c21\u7565\u5316\u3055\u308c\u308b":12,"\u4e8b\u696d\u6240":13,"\u4e8b\u696d\u6d3b\u52d5\u306e\u7523\u696d":13,"\u4e8b\u696d\u6d3b\u52d5\u306e\u7523\u696d\u6b04\u304c":13,"\u4e8c\u4e57\u548c\u8aa4\u5dee\u95a2\u6570\u306b":12,"\u4e8c\u4e57\u8aa4\u5dee":7,"\u4e8c\u4e57\u8aa4\u5dee\u306e\u5024\u306f25\u3067\u3059\u304c":10,"\u4e8c\u4e57\u8aa4\u5dee\u306e\u5024\u306f324\u3068\u306a\u308a\u307e\u3059":10,"\u4e8c\u4e57\u8aa4\u5dee\u306e\u6700\u5c0f\u5316":7,"\u4e8c\u4e57\u8aa4\u5dee\u3092\u8003\u3048\u308b\u969b":8,"\u4e8c\u5ea6\u3068\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u7121\u3044\u3088\u3046\u306a\u5024\u306b\u306e\u307f\u4f7f\u3046\u3088\u3046\u306b\u3057\u307e\u3057\u3087\u3046":4,"\u4e8c\u6b21\u5143\u306e\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u306b\u3059\u308b\u3068":6,"\u4e8c\u6b21\u5143\u306e\u5834\u5408\u306b":6,"\u4e8c\u6b21\u5143\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0":5,"\u4e8c\u6b21\u95a2\u6570":[8,22],"\u4eba":[5,13],"\u4eba\u3054\u3068\u306b\u30c7\u30fc\u30bf\u304c\u533a\u5207\u3089\u308c\u3066\u3044\u306a\u3044\u306e\u3067\u6271\u3046\u306e\u306b\u4e0d\u4fbf\u3068\u306a\u308b":3,"\u4eba\u306e":2,"\u4eba\u578b":21,"\u4eba\u751f\u3082":8,"\u4eba\u9593\u304c\u3067\u304d\u308b\u3053\u3068\u306f":7,"\u4eba\u9593\u304c\u3088\u304f\u77e5\u3063\u3066\u3044\u308b\u5358\u7d14\u306a\u5f0f":7,"\u4eba\u9593\u304c\u5230\u5e95\u51fa\u6765\u306a\u3044\u3088\u3046\u306a\u4f5c\u696d\u52b9\u7387\u3092\u5b9f\u73fe\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u5834\u5408\u3082\u591a\u3044":9,"\u4eba\u9593\u304c\u624b\u3067\u64cd\u4f5c\u3092\u3059\u308b\u3068\u3044\u3046\u306e\u306f\u6642\u3068\u3057\u3066\u975e\u73fe\u5b9f\u7684\u3067\u3059":9,"\u4eba\u9593\u304c\u76ee\u3067\u898b\u308b\u30d5\u30a9\u30eb\u30c0\u540d\u3068\u6a5f\u68b0\u306b\u4e0e\u3048\u308b\u3079\u304d\u30d1\u30b9\u304c\u7570\u306a\u308b\u3068\u3044\u3046\u306e\u306f":9,"\u4eba\u9593\u304c\u8996\u899a\u7684\u306b\u7406\u89e3\u3067\u304d\u308b\u60c5\u5831\u306f":17,"\u4eba\u9593\u306e\u7d4c\u9a13\u306b\u4f9d\u308b\u90e8\u5206\u3092\u5ba2\u89b3\u7684\u306a\u65b9\u6cd5\u3067\u7f6e\u304d\u63db\u3048\u305f\u5b9f\u9a13\u8a08\u753b\u306e\u65b9\u6cd5\u8ad6\u306e\u5f37\u529b\u3055\u3092\u611f\u3058\u308b\u3053\u3068\u304c\u76ee\u7684\u306a\u306e\u3067\u96e3\u3057\u3044\u3068\u3053\u308d\u306f\u30b9\u30ad\u30c3\u30d7\u3057\u3066\u3082\u69cb\u308f\u306a\u3044":11,"\u4eba\u9593\u306f\u7269\u4e8b\u3092\u7406\u89e3\u3059\u308b\u3068\u304d\u306b\u672c\u6765d\u6b21\u5143":7,"\u4eba\u9593\u5074\u306e\u30a8\u30e9\u30fc\u3068\u3082\u8a00\u3048\u305d\u3046\u3067\u3059\u306d":14,"\u4eba\u9593\u5074\u306e\u624b\u9593\u304c\u5fc5\u8981\u306b\u306a\u3063\u3066\u3057\u307e\u3046":9,"\u4eba\u985e\u53f2\u306e\u3069\u306e\u6642\u70b9\u3067\u30a2\u30a4\u30c7\u30a2\u304c\u78ba\u7acb\u3057\u305f\u3068\u3059\u308b\u304b\u306f\u8af8\u8aac\u3042\u308b\u304c":8,"\u4eca\u3067\u306f":19,"\u4eca\u306e\u3088\u3046\u306a1\u6b21\u5143\u5165\u529b\u30c7\u30fc\u30bf\u306e\u5834\u5408\u3088\u308a\u3082\u3080\u3057\u308d\u591a\u5909\u6570\u3092\u6271\u3046\u969b\u3092\u8003\u3048\u3066\u307f\u308b\u3068\u308f\u304b\u308a\u307e\u3059":10,"\u4eca\u306e\u3088\u3046\u306a\u30b5\u30f3\u30d7\u30eb\u6570\u304c\u5927\u304d\u304f\u7570\u306a\u308b\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u3092\u6bd4\u8f03\u3059\u308b\u5834\u5408":6,"\u4eca\u306e\u3088\u3046\u306b":17,"\u4eca\u306e\u3088\u3046\u306b\u3046\u307e\u304f\u3044\u304f\u4f8b\u3082\u3042\u308b\u4e00\u65b9\u3067":15,"\u4eca\u306e\u30c7\u30fc\u30bf\u306f":17,"\u4eca\u306e\u4f8b\u3067\u306f\u3082\u3061\u308d\u3093":9,"\u4eca\u306e\u4f8b\u3067\u306f\u5dee\u306f\u4eba\u9593\u306b\u3068\u3063\u3066\u306f\u6c17\u306b\u306a\u3089\u306a\u3044\u7a0b\u5ea6\u306e\u5dee\u3067\u3059\u304c":3,"\u4eca\u306e\u5358\u5cf0\u7684\u306a\u95a2\u6570\u306e\u5834\u5408":8,"\u4eca\u306e\u5834\u5408":[3,6,7,9,12,13,18],"\u4eca\u306e\u5834\u5408\u3067\u3044\u3046\u3068":9,"\u4eca\u306e\u5834\u5408\u306f\u4e00\u679a\u306e\u5199\u771f\u306e\u307f\u3067\u30b5\u30a4\u30ba\u3082\u305f\u304b\u304c\u3057\u308c\u3066\u3044\u308b\u3082\u306e\u306e":19,"\u4eca\u306e\u5834\u5408\u306f\u4e88\u6e2c\u5206\u5e03\u3082\u6b63\u898f\u5206\u5e03\u306b\u306a\u308b":12,"\u4eca\u306e\u5834\u5408\u30ea\u30b9\u30c8":4,"\u4eca\u306e\u6240\u6301\u91d1\u306f":3,"\u4eca\u306f3\u6b21\u5f0f":7,"\u4eca\u306f500\u70b9":7,"\u4eca\u306f90\u5ea6":5,"\u4eca\u306f\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u3080\u306e\u3067\u306f\u306a\u304f":9,"\u4eca\u306f\u30d9\u30af\u30c8\u30eb":10,"\u4eca\u306f\u4f7f\u3063\u3066\u3044\u306a\u3044\u3082\u306e\u3082\u542b\u3081\u3066":24,"\u4eca\u306f\u5e74\u9f62":3,"\u4eca\u306fubuntu":24,"\u4eca\u307e\u3067\u306fgoogl":18,"\u4eca\u3082\u6642\u3005\u3042\u308b":6,"\u4eca\u53d6\u5f97\u3057\u305f\u30c7\u30fc\u30bf\u30d5\u30ec\u30fc\u30e0\u306e\u307e\u307e\u3067\u306f\u5c11\u3005\u6271\u3044\u8f9b\u3044\u306e\u3067":18,"\u4eca\u56de\u4f7f\u7528\u3059\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046":7,"\u4eca\u56de\u8003\u3048\u305f\u3088\u3046\u306a\u9023\u7d9a\u7684\u306a\u5909\u6570\u306b\u5bfe\u3057\u3066":8,"\u4eca\u5f8c\u306e\u3053\u3068\u3082\u8003\u3048\u3066mac\u306bhomebrew\u3068\u547c\u3070\u308c\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u3092\u5c0e\u5165\u3057\u3088\u3046":24,"\u4eca\u5f8c\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3067\u3082\u305f\u3073\u305f\u3073numpy\u304c\u7528\u3044\u3089\u308c\u307e\u3059":5,"\u4eca\u5f8c\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u5b66\u7fd2\u3092\u7d99\u7d9a\u3059\u308b\u3064\u3082\u308a\u3060":21,"\u4eca\u5f8c\u591a\u7528\u3057\u307e\u3059":2,"\u4eca\u6c17\u306b\u306a\u308b\u65b9\u306f\u672b\u5c3e\u3092\u30c1\u30a7\u30c3\u30af":9,"\u4eca\u8003\u3048\u305f\u3044\u554f\u984c\u306f":17,"\u4eca\u8003\u3048\u305f\uff13\u5c64\u306e\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3067\u306f":10,"\u4eca\u8003\u3048\u3066\u3044\u308b\u30c7\u30fc\u30bf\u306e\u5834\u5408":7,"\u4eca\u89e3\u304d\u305f\u3044\u6700\u9069\u5316\u554f\u984c\u306f\u56fa\u6709\u5024\u554f\u984c":17,"\u4ecb\u8b77\u4e8b\u696d":13,"\u4ed5\u69d8\u304c\u5909\u66f4\u306b\u306a\u308b\u53ef\u80fd\u6027\u3042\u308a":1,"\u4ed6\u306b\u306f":9,"\u4ed6\u306b\u3082":[3,5,18,22],"\u4ed6\u306b\u3082scikit":7,"\u4ed6\u306b\u5206\u985e\u3055\u308c\u306a\u3044\u3082\u306e":13,"\u4ed6\u306e\u30c7\u30fc\u30bf\u3067\u306f\u3069\u3046\u3067\u3057\u3087\u3046":7,"\u4ed6\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3068\u540c\u69d8\u306b":21,"\u4ed6\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3068\u540c\u69d8":5,"\u4ed6\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u306a\u3069\u3078\u306e\u62e1\u5f35\u6027\u304c\u4f4e\u3044":24,"\u4ed6\u306e\u591a\u304f\u306e\u30bd\u30d5\u30c8\u3067\u3082\u5171\u901a\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u306a\u306e\u3067":1,"\u4ed6\u306e\u65b9\u6cd5\u3082\u3082\u3061\u308d\u3093\u3042\u308b":9,"\u4ed6\u306e\u6761\u4ef6\u304c\u63c3\u3063\u305f\u72b6\u6cc1\u4e0b\u3067\u6bd4\u8f03\u3057\u306a\u3051\u308c\u3070\u78ba\u5ea6\u306e\u9ad8\u3044\u8b70\u8ad6\u306f\u96e3\u3057\u3044":7,"\u4ed6\u4eba\u306b\u8cea\u554f\u3059\u308b\u969b\u306b\u6709\u52b9\u306a\u56de\u7b54\u3092\u5f15\u304d\u51fa\u3059\u305f\u3081\u306e\u8fd1\u9053\u3067\u3042\u308b\u3053\u3068\u3068\u540c\u3058\u3067":21,"\u4ed6\u8005\u304c\u4f5c\u6210\u3057\u305f":1,"\u4ee3\u308f\u308a\u306b":13,"\u4ee3\u5165":[4,14],"\u4ee3\u6570\u3068\u3057\u3066\u306e\u8272\u304c\u5f37\u3044\u672c\u3060\u3063\u305f\u3053\u3068\u3082\u3042\u308a":19,"\u4ee3\u6570\u7684\u306a\u6c42\u6839\u6cd5\u304c\u5b58\u5728\u3059\u308b":15,"\u4ee3\u8868\u7684\u306a\u3082\u306e\u3068\u3057\u3066\u306f":[2,14],"\u4ee3\u8868\u7684\u306a\u3082\u306e\u306f":[13,14],"\u4ee3\u8868\u7684\u306a\u3082\u306e\u306f\u8ca0\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u304c\u81ea\u7136\u306b\u4f7f\u3048\u308b\u3053\u3068\u3067\u3057\u3087\u3046\u304b":3,"\u4ee3\u8868\u7684\u306a\u3082\u306e\u3092\u5c11\u3057\u7d39\u4ecb\u3057\u3066\u304a\u304f":24,"\u4ee3\u8868\u7684\u306a\u7dda\u5f62\u4ee3\u6570\u306e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306fbla":19,"\u4ee5\u4e0a\u306e\u7406\u7531\u304c\u3042\u308a\u307e\u3059":23,"\u4ee5\u4e0b":[9,22],"\u4ee5\u4e0b\u3067\u306f":[5,6,7,8,9,10,11,12,13,16,17,18,19,23,24],"\u4ee5\u4e0b\u3067\u306f\u305d\u306e\u3088\u3046\u306a\u5c04\u5f71\u3068\u3057\u3066":17,"\u4ee5\u4e0b\u3067\u306f\u3081\u3093\u3069\u304f\u3055\u3044\u306e\u3067":6,"\u4ee5\u4e0b\u3067\u306f\u4ee3\u8868\u7684\u306a\u30b0\u30e9\u30d5\u3092\u4f8b\u306b":5,"\u4ee5\u4e0b\u3067\u306f\u4f8b\u3068\u3057\u3066wikipedia\u306e":18,"\u4ee5\u4e0b\u3067\u306f\u6700\u3082\u30dd\u30d4\u30e5\u30e9\u30fc\u306a\u8aa4\u5dee\u306e\u4e8c\u4e57\u548c\u3092\u63a1\u7528\u3059\u308b\u3053\u3068\u3068\u3057":7,"\u4ee5\u4e0b\u3067\u306f\u7279\u306b":16,"\u4ee5\u4e0b\u3067\u306f\u81ea\u5206\u304c\u7acb\u3066\u305f\u30e2\u30c7\u30eb\u3092\u8868\u73fe\u3059\u308b\u95a2\u6570\u306e\u3053\u3068\u3092":7,"\u4ee5\u4e0b\u3067\u306f\uff11\u6b21\u5143\u306e\u5834\u5408\u306e\u307f\u6271\u3046\u3053\u3068\u306b\u3059\u308b":8,"\u4ee5\u4e0b\u3067\u306fdataframe\u306e\u307f\u8aac\u660e\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3059":18,"\u4ee5\u4e0b\u3067\u306fgoogl":9,"\u4ee5\u4e0b\u3067\u306fvcxsrv\u3092\u9078\u3073\u307e\u3059":24,"\u4ee5\u4e0b\u3067\u3082\u305d\u308c\u306b\u5023\u3046":10,"\u4ee5\u4e0b\u3067\u7d39\u4ecb\u3059\u308bgithub":21,"\u4ee5\u4e0b\u3067\u8003\u3048\u305f\u3044\u554f\u984c\u306e\u30dd\u30f3\u30c1\u7d75":8,"\u4ee5\u4e0b\u3067\u8aac\u660e\u3059\u308b\u30aa\u30fc\u30c8\u30a8\u30f3\u30b3\u30fc\u30c0\u3067\u3059":17,"\u4ee5\u4e0b\u3067\u95a2\u6570\u306e\u4e2d\u8eab\u3092\u8a18\u8ff0\u3059\u308b\u30d6\u30ed\u30c3\u30af\u304c\u958b\u59cb\u3059\u308b":4,"\u4ee5\u4e0b\u306b":24,"\u4ee5\u4e0b\u306b\u30de\u30a6\u30f3\u30c8\u3055\u308c\u3066\u3044\u308b":24,"\u4ee5\u4e0b\u306b\u4f8b\u3092\u793a\u3059\u3088\u3046\u306alinux\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3067\u304d\u308b":9,"\u4ee5\u4e0b\u306b\u793a\u3057\u305f\u30c7\u30fc\u30bf":25,"\u4ee5\u4e0b\u306b\u793a\u3059\u3088\u3046\u306b":4,"\u4ee5\u4e0b\u306e":[3,9],"\u4ee5\u4e0b\u306e2\u7a2e\u985e\u306e\u30ea\u30b9\u30c8\u3092\u7528\u610f\u3057\u307e\u3059":3,"\u4ee5\u4e0b\u306e2\u884c\u306e\u30b3\u30fc\u30c9\u306f":2,"\u4ee5\u4e0b\u306e4\u70b9\u3067\u306e":16,"\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u3082\u306e\u304c\u6319\u3052\u3089\u308c\u308b":25,"\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b3\u30fc\u30c9\u306b\u306a\u308a\u307e\u3059":3,"\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3067\u69cb\u6210\u3055\u308c\u307e\u3059":17,"\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u4f7f\u3044\u65b9\u3082\u3067\u304d\u308b\u304c":18,"\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u72b6\u6cc1\u3092\u8003\u3048\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u4ee5\u4e0b\u306e\u3088\u3046\u306b":[2,21],"\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3059\u308b":7,"\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308b":[3,16],"\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u7c21\u5358\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059":5,"\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059":5,"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u305f\u3061\u3092\u4f55\u3082\u3044\u3058\u3089\u305a\u306b\u5b9f\u884c\u3059\u308b\u3068":9,"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u306f":9,"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u306f\u5165\u529b":10,"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u305d\u306e\u307e\u307e\u4f7f\u3044\u305f\u3044\u3068\u3044\u3046\u65b9\u306f":9,"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u305d\u306e\u307e\u307e\u4f7f\u3044\u305f\u3051\u308c\u3070":5,"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u305f\u308a\u3059\u308b\u5206\u306b\u306f\u554f\u984c\u306f\u306a\u3044\u304c":20,"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u3066":[4,5],"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068":[3,5],"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u4f8b\u306f":21,"\u4ee5\u4e0b\u306e\u30bf\u30d7\u30eb":3,"\u4ee5\u4e0b\u306e\u30c7\u30fc\u30bf":25,"\u4ee5\u4e0b\u306e\u30ea\u30f3\u30af\u306b":5,"\u4ee5\u4e0b\u306e\u4f8b\u306b\u306a\u3089\u3063\u3066":13,"\u4ee5\u4e0b\u306e\u4f8b\u3092\u53c2\u8003\u306b":25,"\u4ee5\u4e0b\u306e\u4f8b\u3092\u8003\u3048\u3066\u307f\u3088\u3046":7,"\u4ee5\u4e0b\u306e\u5185\u5bb9\u306f":[1,4,8],"\u4ee5\u4e0b\u306e\u51e6\u7406\u306f":3,"\u4ee5\u4e0b\u306e\u51e6\u7406\u306f\u5b9f\u884c\u3057\u306a\u3044":3,"\u4ee5\u4e0b\u306e\u52fe\u914d\u306e\u8a08\u7b97\u306f":10,"\u4ee5\u4e0b\u306e\u624b\u9806\u3067\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u78ba\u8a8d\u3057":24,"\u4ee5\u4e0b\u306e\u624b\u9806\u306b\u306a\u3089\u3063\u3066\u304f\u3060\u3055\u3044":25,"\u4ee5\u4e0b\u306e\u64cd\u4f5c\u3067\u306f":24,"\u4ee5\u4e0b\u306e\u6587\u5b57\u5217\u3092\u8868\u793a\u3059\u308b\u95a2\u6570":4,"\u4ee5\u4e0b\u306e\u65b9\u6cd5\u306f\u975e\u63a8\u5968\u3068\u3059\u308b":18,"\u4ee5\u4e0b\u306e\u66f4\u65b0\u5f0f\u304c\u5f97\u3089\u308c\u308b":16,"\u4ee5\u4e0b\u306e\u69d8\u306b\u8868\u73fe\u3055\u308c\u307e\u3059":6,"\u4ee5\u4e0b\u306e\u8f9e\u66f8\u578b\u3092dataframe\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3057\u3066\u307f\u307e\u3057\u3087\u3046":18,"\u4ee5\u4e0b\u306ea":24,"\u4ee5\u4e0b\u306elinux\u306e\u5834\u5408\u306e\u624b\u9806\u306b\u5f93\u3046\u3060\u3051":24,"\u4ee5\u4e0b\u306eprint\u6587\u304c\u8aad\u307e\u308c\u308b":3,"\u4ee5\u4e0b\u306f":3,"\u4ee5\u4e0b\u306f\u4e00\u4f8b":24,"\u4ee5\u4e0b\u3092\u5b9f\u884c\u3057":1,"\u4ee5\u4e0b\u3092\u8aad\u3093\u3060\u4e0a\u3067\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044":9,"\u4ee5\u4e0b\u8a66\u884c\u932f\u8aa4":25,"\u4ee5\u524d\u306e\u52fe\u914d\u306e\u60c5\u5831\u3082\u6709\u52b9\u6d3b\u7528\u3059\u308b\u624b\u6cd5\u3067\u3059":10,"\u4ee5\u5916\u306e\u597d\u304d\u306a\u30b7\u30f3\u30dc\u30eb\u3092\u9078\u3093\u3067\u4e0a\u306e\u30b0\u30e9\u30d5\u306e\u4e8c\u756a\u76ee\u3092\u30d7\u30ed\u30c3\u30c8\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u4ee5\u5f8c\u306e\u30b3\u30fc\u30c9\u306f":9,"\u4ee5\u5f8c\u306e\u30ed\u30b0\u30a4\u30f3\u304c\u697d":13,"\u4ee5\u5f8c\u306f":24,"\u4ee5\u964d":5,"\u4ee5\u964d\u3067\u306f":[2,13,17],"\u4ee5\u964d\u3067\u306f\u3053\u306e\u6163\u4f8b\u306b\u306a\u3089\u3063\u3066":2,"\u4ee5\u964d\u3067\u306fmatplotlib\u3068\u547c\u3070\u308c\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066":5,"\u4ee5\u964d\u306b\u66f8\u304b\u308c\u305f\u3053\u3068\u306f\u7121\u8996\u3055\u308c\u308b\u306e\u3067\u30b3\u30e1\u30f3\u30c8":2,"\u4ee5\u964d\u306e":2,"\u4ee5\u964d\u306e\u5185\u5bb9\u3067\u3082":13,"\u4ee5\u964d\u306e\u51e6\u7406\u3092\u7121\u8996\u3059\u308b":3,"\u4ee5\u964d\u306e\u6a5f\u68b0\u5b66\u7fd2\u306e\u8ad6\u6587\u3067\u306f":10,"\u4eee\u306b\u52fe\u914d\u306e\u8a08\u7b97\u304c\u3067\u304d\u305f\u3068\u3057\u3066\u3082":11,"\u4eee\u306b\u63d0\u6848\u3055\u308c\u305f\u30b3\u30fc\u30c9\u304c\u3046\u307e\u304f\u52d5\u304b\u306a\u3044":21,"\u4eee\u306brank":19,"\u4eee\u60f3\u30de\u30b7\u30f3":23,"\u4efb\u610f\u306e":[6,16],"\u4efb\u610f\u306e\u30e9\u30f3\u30af":19,"\u4efb\u610f\u306e\u534a\u5f84":25,"\u4efb\u610f\u306e\u6587\u5b57\u5217\u306e\u30ea\u30b9\u30c8":25,"\u4efb\u610f\u306e\u9577\u3055\u304c3\u306e\u6570\u5024\u30ea\u30b9\u30c8\u306b\u5bfe\u3057\u30663\u6b21\u5143\u7a7a\u9593\u3067\u306e\u8ddd\u96e2\u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570":4,"\u4efb\u610f\u306e\u9577\u3055\u306e\u5b9f\u6570\u5024\u306e\u30ea\u30b9\u30c8\u306b\u3064\u3044\u3066\u5e73\u5747\u3068\u5206\u6563\u3092\u8fd4\u308a\u5024\u3068\u3059\u308b\u81ea\u4f5c\u95a2\u6570\u3092\u4f5c\u6210\u305b\u3088":25,"\u4efb\u610f\u306e\uff12\u3064\u306e\u70b9\u306e\u8ddd\u96e2\u3092\u6c42\u3081\u308b\u64cd\u4f5c\u304c\u5fc5\u8981\u3060\u3063\u305f\u3068\u3057\u307e\u3059":4,"\u4f01\u696d\u7b49\u306e\u7523\u696d":13,"\u4f1a\u793e\u3084\u5927\u5b66\u306a\u3069\u6240\u5c5e\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u4f55\u3089\u304b\u306e\u610f\u601d\u6c7a\u5b9a\u306b\u7528\u3044\u3089\u308c\u308b\u3053\u3068\u3082\u591a\u3044\u3053\u3068\u3067\u3057\u3087\u3046":9,"\u4f3c\u305f\u3088\u3046\u306a\u30b0\u30e9\u30d5\u30924\u3064\u540c\u6642\u306b\u63cf\u3044\u305f\u308a\u3059\u308b\u306e\u306b\u4fbf\u5229\u3067\u3059":5,"\u4f46\u3057\u30ab\u30e9\u30fc\u30de\u30c3\u30d7\u306fjet\u3092\u7528\u3044\u308b":21,"\u4f4d\u306e\u5272\u5408\u3067\u30e1\u30a4\u30f3\u30a8\u30c7\u30a3\u30bf\u3068\u3057\u3066\u4f7f\u3063\u3066\u3044\u308b":21,"\u4f4d\u7f6e":24,"\u4f4e\u30e9\u30f3\u30af\u8fd1\u4f3c":19,"\u4f4e\u30e9\u30f3\u30af\u8fd1\u4f3c\u3092\u5f97\u308b":19,"\u4f4f\u3093\u3067\u308b\u5e02\u533a\u753a\u6751\u306e\u30ea\u30b9\u30c8\u3092":3,"\u4f4f\u6240\u8ffd\u52a0\u5f8c":3,"\u4f53\u306e\u5927\u304d\u3055":17,"\u4f53\u91cd":3,"\u4f53\u91cd\u3068\u8eab\u9577":10,"\u4f53\u91cd\u306e\u4e8c\u4e57":3,"\u4f53\u91cd\u306f":3,"\u4f53\u91cd\u3092\u4e8c\u4e57\u3057\u3066\u8eab\u9577\u306b\u304b\u3051\u5408\u308f\u305b\u305f\u91cf":3,"\u4f53\u91cdkg":25,"\u4f55\u304b\u304a\u304b\u3057\u3044":2,"\u4f55\u304b\u76f4\u611f\u3068\u53cd\u3059\u308b\u3088\u3046\u306a\u632f\u308b\u821e\u3044\u3092\u30b3\u30fc\u30c9\u304c\u793a\u3057\u305f\u969b":6,"\u4f55\u304c\u308f\u304b\u3089\u306a\u3044\u306e\u304b\u3082\u5206\u304b\u3089\u306a\u3044":21,"\u4f55\u3067\u3082\u69cb\u308f\u306a\u3044":16,"\u4f55\u306b\u3067\u3082\u8a00\u3048\u308b\u3053\u3068\u3060\u304c":7,"\u4f55\u306b\u4f7f\u3048\u308b\u306e\u304b\u308f\u304b\u3089\u305a":19,"\u4f55\u3082\u306a\u3044\u3068\u3053\u308d\u304b\u3089\u8ab2\u984c\u3092\u8a2d\u8a08\u3059\u308b\u306e\u306f\u96e3\u3057\u3044":25,"\u4f55\u3089\u304b\u306e\u64cd\u4f5c\u3092\u884c\u3044":4,"\u4f55\u3089\u304b\u306e\u65b9\u6cd5\u3067":17,"\u4f55\u3089\u304b\u306e\u76ee\u7684\u95a2\u6570":8,"\u4f55\u3089\u304b\u306e\u78ba\u5b9a\u7684\u306a\u65b9\u6cd5\u3067\u4e71\u6570\u5217":6,"\u4f55\u3089\u304b\u306e\u95a2\u6570":7,"\u4f55\u56de\u3082\u5fc5\u8981\u306b\u306a\u308b\u51e6\u7406\u306f":4,"\u4f55\u56de\u51e6\u7406\u3092\u7e70\u308a\u8fd4\u305b\u3070\u826f\u3044\u304b\u4e88\u3081\u77e5\u308b\u3053\u3068\u306f\u307b\u3068\u3093\u3069\u4e0d\u53ef\u80fd\u3068\u306a\u308b":3,"\u4f55\u56de\u6570\u5b57\u304cprint\u3055\u308c\u308b\u3067\u3057\u3087\u3046\u304b":3,"\u4f55\u5ea6\u304b\u5b9f\u884c\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044":3,"\u4f55\u6545\u73fe\u4ee3\u306b\u304a\u3044\u3066\u3082cui\u304c\u5fc5\u8981\u306a\u306e\u304b":23,"\u4f55\u756a\u76ee\u306e\u968e\u5c64\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u3092\u8003\u3048\u308b\u3053\u3068\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059":3,"\u4f59\u8ac7":[3,5,6,17],"\u4f5c\u56f3":6,"\u4f5c\u6210\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u307f\u307e\u3057\u3087\u3046":9,"\u4f5c\u6210\u3057\u305f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u5f8c\u8005\u306e\u65b9\u6cd5\u3067\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u591a\u304f\u306a\u308b\u306f\u305a\u3060":21,"\u4f5c\u6210\u3057\u305f\u5186\u30b0\u30e9\u30d5\u304c\u304a\u304b\u3057\u3044\u3068":5,"\u4f5c\u6210\u8005":[23,24],"\u4f5c\u696d\u3092\u304d\u3061\u3093\u3068":2,"\u4f5c\u696d\u3092\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3068\u3057\u3066\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u51fa\u3057":24,"\u4f5c\u696d\u9014\u4e2d\u306b\u5b9a\u7fa9\u3057\u3066\u3044\u305f\u5909\u6570\u304c\u30e1\u30e2\u30ea\u306b\u6b8b\u3063\u3066\u3044\u3066":14,"\u4f5c\u8005\u306f\u79c1\u3067\u306f\u3042\u308a\u307e\u305b\u3093":3,"\u4f7f\u3044\u305f\u3044\u3068\u304d\u306b\u306f":3,"\u4f7f\u3044\u3084\u3059\u3044\u9ad8\u7cbe\u5ea6\u306a\u967d\u89e3\u6cd5\u3092\u4f5c\u308d\u3046":16,"\u4f7f\u3044\u65b9\u3092\u8abf\u3079\u308b\u3053\u3068\u304c\u3067\u304d\u308b":25,"\u4f7f\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30a4\u30f3\u30dd\u30fc\u30c8":11,"\u4f7f\u3046\u969b\u306f":21,"\u4f7f\u3048\u305d\u3046\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u63a2\u3059":25,"\u4f7f\u3048\u306a\u3044\u3068\u304d":21,"\u4f7f\u3048\u308c\u3070\u826f\u3044":17,"\u4f7f\u3063\u3066\u307f\u307e\u3057\u3087\u3046":22,"\u4f7f\u7528\u3057\u3066\u3044\u308b\u30b7\u30a7\u30eb\u306b\u3088\u3063\u3066":24,"\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":21,"\u4f7f\u7528\u3059\u308b\u30c7\u30fc\u30bf\u3092\u8a13\u7df4\u30c7\u30fc\u30bf":10,"\u4f7f\u7528\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u306eimport":16,"\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b":24,"\u4f7f\u7528\u4f8b\u304c\u601d\u3044\u6d6e\u304b\u3070\u306a\u3051\u308c\u3070":3,"\u4f7f\u7528\u74b0\u5883":21,"\u4f8b":[2,3,5,8,10,13,16,18,21,24,25],"\u4f8b1":[8,25],"\u4f8b2":[8,25],"\u4f8b3":8,"\u4f8b\u3048\u3070":[3,13,21,24,25],"\u4f8b\u3048\u30701\u968e\u306e\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u306f":16,"\u4f8b\u3048\u3070\u30b3\u30de\u30f3\u30c9\u3067python\u3092\u4f7f\u3046\u969b":24,"\u4f8b\u3048\u3070\u56de\u5e30\u306e\u5834\u5408":8,"\u4f8b\u3048\u3070\u753b\u50cf\u8a8d\u8b58\u30bf\u30b9\u30af\u3092\u884c\u3046\u6a5f\u68b0\u5b66\u7fd2\u30e2\u30c7\u30eb\u306e\u8a13\u7df4\u306e\u5834\u5408\u306b\u306f":19,"\u4f8b\u3048\u3070\u7814\u7a76\u5ba4\u5185\u306b\u7f6e\u304b\u308c\u305f\u30ef\u30fc\u30af\u30b9\u30c6\u30fc\u30b7\u30e7\u30f3\u3084\u30b9\u30d1\u30b3\u30f3\u306a\u3069\u5225\u306e\u74b0\u5883\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u91cd\u3044\u8a08\u7b97\u3092\u56de\u3059":24,"\u4f8b\u3048\u3070\u79c1\u306e\u74b0\u5883\u3060\u3068":24,"\u4f8b\u3048\u3070\u81ea\u55b6\u696d\u3092\u3057\u3066\u3044\u308b\u5b9f\u5bb6\u306e\u30c7\u30fc\u30bf\u3092\u5206\u6790\u3059\u308b\u306a\u3069":25,"\u4f8b\u3048\u3070\u89e3\u304d\u305f\u3044\u5fae\u5206\u65b9\u7a0b\u5f0f\u304c\u884c\u5217":16,"\u4f8b\u3067\u3042\u308b\u306e\u3067":25,"\u4f8b\u3068\u3057\u3066":4,"\u4f8b\u306b\u306a\u3089\u3063\u3066":13,"\u4f8b\u3092\u793a\u305d\u3046":9,"\u4f8b\u3092\u898b\u305b\u308b\u305f\u3081\u306b":3,"\u4f8b\u3092\u898b\u306a\u304c\u3089\u7406\u89e3\u3057\u3066\u3044\u304d\u307e\u3057\u3087\u3046":4,"\u4f8b\u5916":[3,14],"\u4f8b\u5916\u3042\u308a":10,"\u4fbf\u5b9c\u4e0a":23,"\u4fbf\u5b9c\u4e0a\u305d\u3046\u547c\u3076":16,"\u4fc2\u6570":7,"\u4fc2\u6570\u306e\u6700\u9069\u5316":25,"\u4fc2\u6570\u306e\u6700\u9069\u5316\u306e\u7d50\u679c\u304b\u3089":25,"\u4fdd\u5065\u6240":13,"\u4fdd\u5b58":[1,21],"\u4fdd\u5b58\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u4ed6\u4eba\u3068\u5171\u6709\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":5,"\u4fdd\u5b58\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u304f\u3060\u3055\u3044":1,"\u4fdd\u6301\u3059\u3079\u304d\u884c\u5217\u8981\u7d20\u306f\u3082\u3068\u306e":19,"\u4fe1\u66f8\u4fbf\u4e8b\u696d\u3092\u542b\u3080":13,"\u4fee\u6b63\u5b50":16,"\u500b\u306e\u4fc2\u6570":7,"\u500b\u306e\u5404\u5909\u6570\u306b\u3064\u3044\u3066":17,"\u500b\u306e\u5909\u6570\u304c":6,"\u500b\u306e\u70b9":7,"\u500b\u306e\u70b9\u3067":7,"\u500b\u4eba\u60c5\u5831":25,"\u500b\u6210\u5206\u3092\u6301\u3064ndarray\u3068\u3057\u3066\u7528\u610f\u3057\u3066\u304a\u3044\u3066":22,"\u500b\u89b3\u6e2c\u3055\u308c\u3066\u3044\u308b\u3068\u3059\u308b":17,"\u500d\u7cbe\u5ea6\u5b9f\u6570\u306e\u5834\u5408":2,"\u5024":[2,3,7],"\u5024\u304c\u6b63\u3057\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u4f5c\u696d":7,"\u5024\u3068\u8a00\u3048\u308b":7,"\u5024\u306a\u3057":[4,5],"\u5024\u306e\u307f\u53d6\u5f97\u3057\u305f\u3051\u308c\u3070\u5148\u7a0b\u3068\u540c\u69d8":18,"\u5024\u306e\u30ea\u30b9\u30c8":18,"\u5024\u306e\u4ee3\u5165\u306f":2,"\u5024\u306e\u5927\u304d\u306a":19,"\u5024\u306f0\u306b\u306a\u3063\u3066\u3044\u308b":8,"\u5024\u306f\u306a\u3093\u3060\u3063\u3051\u306a":2,"\u5024\u3084\u5909\u6570\u306a\u3069\u3092\u62ec\u5f27":3,"\u5024\u3084\u5909\u6570\u3092\u307e\u3068\u3081\u3066\u51e6\u7406\u3057\u305f\u304f\u306a\u308a\u307e\u3059":3,"\u5024\u3092":5,"\u5024\u3092\u30ea\u30b9\u30c8\u306e\u3088\u3046\u306b\u683c\u7d0d\u3057\u3066\u304a\u304d\u305f\u3044":3,"\u5024\u3092\u5165\u308c\u305f\u3044\u3082\u306e\u306e\u540d\u524d":2,"\u5024\u3092\u5909\u66f4\u3059\u308b\u969b\u306f\u624b\u3067\u30ea\u30b9\u30c8\u3092\u66f8\u304d\u63db\u3048\u308b\u306e\u3067\u306f\u306a\u304f":25,"\u5024\u3092\u66f4\u65b0\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u30a8\u30e9\u30fc\u3092\u5410\u3044\u3066\u6559\u3048\u3066\u304f\u308c\u308b":3,"\u5024\u3092\u66f4\u65b0\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b":2,"\u5024\u3092\u683c\u7d0d\u3059\u308b\u7bb1\u3068\u3044\u3046\u3088\u308a\u306f\u5024\u304c\u4fdd\u7ba1\u3055\u308c\u308b\u4f4f\u6240\u3092\u793a\u3059\u3082\u306e":3,"\u5024\u3092\u7528\u610f\u3057\u3066":16,"\u5024\u3092\u8868\u793a\u3057\u305f\u3042\u3068\u306b\u30eb\u30fc\u30d7\u3092\u7d42\u4e86\u3059\u308b":25,"\u504f\u5fae\u5206\u3067\u66f8\u304f\u3068":8,"\u507d":[2,5],"\u507d\u8a08\u696d\u52d9\u59a8\u5bb3\u7f6a\u306a\u3069\u306e\u7f6a\u306b\u554f\u308f\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059":13,"\u50be\u3044\u3066\u308b\u65b9\u5411\u306b\u3069\u308c\u304f\u3089\u3044\u306e\u30b9\u30b1\u30fc\u30eb\u3067":8,"\u50be\u304d":8,"\u50be\u5411":9,"\u50c5\u304b\u306a\u7b54\u3048\u306e\u5dee\u306f":12,"\u5104\u5186":13,"\u5143\u3005\u306f\u8eab\u9577":17,"\u5143\u306e\u3088\u3046\u306a\u30ea\u30b9\u30c8\u306e\u5f62\u3067\u4f7f\u3044\u305f\u3044\u5834\u5408\u306f":9,"\u5143\u306e\u30b9\u30b1\u30fc\u30eb\u306b\u623b\u3055\u306a\u3044\u3068\u3044\u3051\u306a\u3044":10,"\u5143\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af":23,"\u5143\u306e\u554f\u984c\u6587\u3055\u3048\u6b8b\u3063\u3066\u3044\u308c\u3070":25,"\u5143\u306e\u5fae\u5206\u65b9\u7a0b\u5f0f\u306e\u89e3\u3092\u6c42\u3081\u308b\u3053\u3068\u3092\u8003\u3048\u3088\u3046":16,"\u5143\u306e\u884c\u5217":19,"\u5148\u7a0b\u306e":18,"\u5148\u7a0b\u306e\u30b0\u30e9\u30d5\u304cgoogl":5,"\u5148\u7a0b\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b\u304bls\u30b3\u30de\u30f3\u30c9\u3067\u78ba\u304b\u3081\u3066\u307f\u3088\u3046":9,"\u5148\u7a0b\u306e\u4f8b\u3067euler\u6cd5\u3068\u6bd4\u3079\u3066\u307f\u308b\u3068":16,"\u5148\u7a0b\u306e\u56f3":5,"\u5148\u7a0b\u306e\u81ea\u4f5c\u95a2\u6570":4,"\u5148\u7a0b\u306e\u81ea\u4f5c\u95a2\u6570\u3092\u547c\u3093\u3067\u3044\u308b":4,"\u5148\u7a0b\u306efor\u30eb\u30fc\u30d7\u3067strip\u95a2\u6570\u3092\u9069\u7528\u3057\u3066\u3084\u308b\u3068":9,"\u5148\u7a0b\u306emath\u3082numpy\u3067\u7f6e\u304d\u63db\u3048\u53ef":5,"\u5148\u982d\u304c\u5c0f\u6587\u5b57\u306b\u306a\u3063\u3066\u3044\u308b":9,"\u514d\u8cac\u4e8b\u9805\u3068\u3057\u3066":21,"\u5165\u308c\u5b50\u306b":3,"\u5165\u308c\u5b50\u306b\u3057\u305f\u30ea\u30b9\u30c8\u306e\u8981\u7d20\u3092\u898b\u305f\u308a":3,"\u5165\u308c\u5b50\u306e\u30ea\u30b9\u30c8\u3092\u4f5c\u308b\u3068\u304d\u306f":3,"\u5165\u308c\u5b50\u69cb\u9020\u306e\u30ea\u30b9\u30c8":25,"\u5165\u51fa\u529b\u306e\u6b21\u5143\u304c6\u3067":17,"\u5165\u529b":12,"\u5165\u529b\u3057\u3066\u3082\u753b\u9762\u306b\u306f\u8868\u793a\u3055\u308c\u306a\u3044\u306e\u3067\u6ce8\u610f\u3057\u306a\u304c\u3089\u6253\u3061\u8fbc\u3093\u3067enter\u3092\u62bc\u3059":[23,24],"\u5165\u529b\u3092\u88dc\u5b8c\u3057\u3066\u304f\u308c\u308b":24,"\u5165\u529b\u5185\u5bb9\u306e\u6d88\u53bb":24,"\u5165\u529b\u5c64":10,"\u5165\u529b\u5c64\u304b\u3089\u96a0\u308c\u5c64\u3078\u306e\u4fe1\u53f7\u306e\u4f1d\u64ad\u3092\u7b26\u53f7\u5316":17,"\u5165\u624b":24,"\u5165\u624b\u3092\u62bc\u3059":23,"\u5165\u624b\u30dc\u30bf\u30f3\u304c\u62bc\u305b\u306a\u3044":24,"\u5168\u3066\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u308b":21,"\u5168\u3066\u306e\u6210\u5206\u306b":22,"\u5168\u3066\u306e\u884c\u304c\u8aad\u307f\u8fbc\u307e\u308c":9,"\u5168\u3066\u306e\u91cf\u3092\u5e73\u7b49\u306b\u6271\u3046":10,"\u5168\u3066\u3092":9,"\u5168\u4f53\u306e68":6,"\u5168\u4f53\u306e\u6570":6,"\u5168\u5b66\u5411\u3051\u306e\u6388\u696d\u3068\u3044\u3046\u3053\u3068\u3082\u3042\u3063\u3066":8,"\u5168\u7136\u3060\u3081\u3067\u3059\u306d":10,"\u5168\u7d44\u307f\u5408\u308f\u305b":4,"\u5168\u884c":9,"\u5168\u884c\u306b\u6e21\u3063\u3066\u8aad\u307f\u8fbc\u307f\u30e1\u30e2\u30ea\u306b\u30b9\u30c8\u30a2\u3059\u308b\u95a2\u6570\u306b\u306a\u3063\u3066\u3044\u308b":9,"\u5168\u89d2\u306e\u5207\u308a\u66ff\u3048\u5fd8\u308c\u306a\u3069\u304c\u751f\u3058\u3046\u308b\u306e\u3067":2,"\u5168\u89d2\u3092\u7591\u3046":14,"\u5168\u89d2\u30b9\u30da\u30fc\u30b9\u306a\u3069\u304c\u6c17\u3065\u304b\u305a\u306b\u6df7\u5165\u3057\u3066":1,"\u5168\u89d2\u6587\u5b57\u306f\u4f7f\u308f\u306a\u3044":1,"\u5168\u89d2\u7a7a\u767d":18,"\u5168\u89d2\u8a18\u53f7\u306e\u4f7f\u7528":14,"\u5168\u89d2\u8a18\u53f7\u7b49":9,"\u5168\u90fd\u5e02\u306e\u6708\u5225\u5e73\u5747\u6c17\u6e29\u3068\u5168\u54c1\u76ee\u306e\u4e16\u5e2f\u5e73\u5747\u652f\u51fa\u306e\u3046\u3061":9,"\u516c\u5dee":22,"\u516c\u5f0f\u30b5\u30a4\u30c8":21,"\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8":9,"\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3084web\u304b\u3089\u60c5\u5831\u3092\u63a2\u3059":9,"\u516c\u5f0fdocument":6,"\u516c\u958b\u3055\u308c\u3066\u3044\u3066":5,"\u516c\u958b\u30c7\u30fc\u30bf\u3092\u5143\u306b":25,"\u516c\u958b\u9375\u3068\u79d8\u5bc6\u9375\u306e\u30da\u30a2\u3092\u7528\u3044\u3066\u8a8d\u8a3c\u3092\u884c\u3046\u65b9\u5f0f\u3067":24,"\u516c\u958b\u9375\u306f\u30ea\u30e2\u30fc\u30c8\u74b0\u5883\u306b\u7f6e\u3044\u3066\u304a\u304f\u3053\u3068\u3067":24,"\u516c\u958b\u9375\u8a8d\u8a3c\u3068\u306f":24,"\u5171\u5206\u6563":12,"\u5171\u5206\u6563\u3092":6,"\u5171\u5206\u6563\u3092\u8a08\u7b97\u3057\u3066\u307f\u308b\u3068":6,"\u5171\u5206\u6563\u884c\u5217":11,"\u5171\u5206\u6563\u884c\u5217c\u306e\u8a08\u7b97":17,"\u5171\u6709\u30dc\u30bf\u30f3\u304c\u898b\u3048\u306a\u3044\u5834\u5408":25,"\u5171\u901a\u3057\u3066\u8a00\u3048\u308b\u6ce8\u610f\u70b9\u3092\u8ff0\u3079\u3066\u304a\u304f":13,"\u5171\u901a\u8a66\u9a13\u306e\u5f97\u70b9\u306e\u5206\u5e03\u306a\u3069\u3082":6,"\u5177\u4f53\u4f8b\u3092\u8003\u3048\u3066\u307f\u3088\u3046":17,"\u5177\u4f53\u7684\u306a\u7528\u9014\u3068\u3057\u3066\u306f":3,"\u5185\u306b":5,"\u5185\u306e":[5,18],"\u5185\u306e\u6574\u6570\u3067\u30b3\u30fc\u30c9\u306e\u5b9f\u884c\u9806\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":2,"\u5185\u306e\u95a2\u6570\u3092\u7528\u3044\u308c\u3070":18,"\u5185\u7a4d\u3092\u53d6\u308c\u3070\u3088\u3044":17,"\u5186":[5,7],"\u5186\u3060":3,"\u5186\u306b\u5bfe\u3057\u3066\u5360\u3081\u308b\u5272\u5408\u304c\u660e\u3089\u304b\u306b\u9593\u9055\u3063\u3066\u3044\u305f\u308a\u3068":5,"\u5186\u3092\u8ced\u3051\u308b\u305e":3,"\u5186\u30b0\u30e9\u30d5\u3068\u3044\u3046\u306e\u306f\u4f5c\u6210\u3059\u308b\u969b\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3057":5,"\u5186\u5468\u7387pi":5,"\u5186\u5f27\u306e\u4e2d\u306b\u5165\u3063\u305f\u500b\u6570":6,"\u5186\u8a18\u53f7":9,"\u5186\u8a18\u53f7\u3067\u8868\u793a\u3055\u308c\u308b":9,"\u518d\u3073\u30ab\u30b8\u30ce\u306e\u4f8b\u3067\u8003\u3048\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u518d\u3073\u5b66\u7fd2\u3092\u3057\u3066\u307f\u307e\u3057\u3087\u3046":10,"\u518d\u73fe\u6027\u304c\u640d\u306a\u308f\u308c\u305f\u308a\u30d0\u30b0\u306e\u6e29\u5e8a\u306b\u306a\u308b":17,"\u518d\u73fe\u6027\u306e\u3042\u308b\u30b3\u30fc\u30c9\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":6,"\u518d\u751f\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044":8,"\u518d\u8d77\u52d5\u304c\u5fc5\u8981":[23,24],"\u518d\u8d77\u52d5\u3057\u305f\u3044\u5834\u5408":1,"\u5192\u982d\u304c":24,"\u5192\u982d\u306b\u3082\u66f8\u3044\u305f\u3068\u304a\u308a":8,"\u5192\u982d\u306e":7,"\u5192\u982d\u306e\u4e8c\u756a\u76ee\u306e\u30d5\u30a1\u30a4\u30eb":9,"\u51e1\u4f8b":5,"\u51e6\u7406":2,"\u51e6\u74061":3,"\u51e6\u74062":3,"\u51e6\u7406\u304c\u8907\u96d1\u5316\u3057\u3066\u304f\u308b\u3068\u3069\u3053\u3067\u305d\u306e\u5909\u6570\u304c\u5b9a\u7fa9\u3055\u308c\u305f\u308a\u66f4\u65b0\u3055\u308c\u305f\u308a\u3057\u3066\u3044\u308b\u304b\u304c\u308f\u304b\u308a\u3065\u3089\u304f":4,"\u51e6\u7406\u306b\u3057\u3070\u3057\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059":5,"\u51e6\u7406\u3092\u4e2d\u65ad\u3059\u308b\u969b\u306fctrl":23,"\u51e6\u7406\u3092\u884c\u3044\u307e\u3059\u306e\u3067":9,"\u51e6\u7406a":9,"\u51e6\u7406a\u306e\u305f\u3081\u306e\u95a2\u6570":9,"\u51e6\u7406b":9,"\u51fa\u3066\u304f\u308burl\u306b\u9077\u79fb":1,"\u51fa\u529b\u3068\u3082\u306b1\u6b21\u5143\u304b\u3064":10,"\u51fa\u529b\u3092\u3044\u3063\u305f\u3093\u5168\u90e8\u6d88\u3057\u305f\u3044":1,"\u51fa\u529b\u3092\u3059\u3079\u3066\u6d88\u53bb":1,"\u51fa\u529b\u540d\u3068\u4fdd\u5b58\u5834\u6240\u3092\u6307\u5b9a\u3059\u308b":5,"\u51fa\u529b\u5c64\u304b\u3089\u306a\u308b\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u4f7f\u3063\u3066":10,"\u51fa\u529b\u5c64\u3067\u306e\u30d0\u30a4\u30a2\u30b9\u3092\u6b63\u898f\u4e71\u6570\u3067\u521d\u671f\u5316":10,"\u51fa\u529b\u7d50\u679c\u3092\u307f\u3066ubuntu\u306eversion\u304c1\u306b\u306a\u3063\u3066\u3044\u308b\u5834\u5408":24,"\u51fa\u5e2d\u756a\u53f7\u306e\u30ea\u30b9\u30c8\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u306b\u9078\u3076":6,"\u51fa\u6765\u308b\u3060\u3051\u5c24\u3082\u3089\u3057\u3044\u95a2\u6570\u3092\u898b\u3064\u3051":7,"\u51fa\u8eab\u90fd\u9053\u5e9c\u770c":18,"\u5206\u5272\u304c\u5c11\u306a\u3059\u304e\u308b\u3068\u5341\u5206\u306a\u7cbe\u5ea6\u3067\u6700\u9069\u89e3\u304c\u898b\u3064\u304b\u3089\u306a\u3044":8,"\u5206\u5272\u3059\u308b\u533a\u9593\u306e\u4e2d\u592e\u3092x\u306b\u63c3\u3048\u308b\u65b9\u5f0f":8,"\u5206\u5272\u3059\u308b\u533a\u9593\u3092\u4e2d\u592e\u3092x\u306b\u63c3\u3048\u308b\u65b9\u5f0f\u3060\u3068":8,"\u5206\u5b50":7,"\u5206\u5b50\u3084\u5206\u6bcd\u306b\u73fe\u308c\u308b":7,"\u5206\u5e03\u3059\u308b\u30c7\u30fc\u30bf\u306e\u7279\u5fb4\u3092\u8aac\u660e\u3059\u308b\u306e\u306b\u306f\u3046\u3063\u3066\u3064\u3051\u3067\u3059":17,"\u5206\u5e03\u306f\u771f\u306b\u306f\u6b63\u898f\u5206\u5e03\u306b\u306a\u3063\u3066\u3044\u306a\u3044\u306e\u3067":6,"\u5206\u65631":11,"\u5206\u65631\u306b\u5909\u63db\u3057\u3066\u6271\u3046\u306e\u304c\u57fa\u672c\u3067\u3059":10,"\u5206\u6563\u304c\u5927\u304d\u3044":12,"\u5206\u6563\u306e\u5e73\u65b9\u6839":6,"\u5206\u6563\u306e\u9006\u6570":12,"\u5206\u6563\u3092\u5927\u304d\u304f\u3059\u308b\u8ef8\u3092\u898b\u3064\u3051\u308b\u5834\u5408":17,"\u5206\u6563\u3092\u5927\u304d\u304f\u3059\u308b\u8ef8\u3092\u9806\u756a\u306b\u6c7a\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":17,"\u5206\u6790\u3057\u305f\u3044":25,"\u5206\u6790\u3092\u884c\u3046":25,"\u5206\u6790\u3092\u884c\u3046\u305f\u3081\u306b\u5b66\u4fee\u3059\u3079\u304d\u4e8b\u9805\u3092\u5217\u6319\u3057\u306a\u304c\u3089":25,"\u5206\u6bcd":[7,17],"\u5206\u6bcd\u306e\u5024\u3092\u8fd4\u3059":7,"\u5206\u985e":13,"\u5207\u308a\u6368\u3066\u9664\u7b97":2,"\u5217":13,"\u5217\u3054\u3068\u306b\u3069\u3093\u306a\u7a2e\u985e\u306e\u30c7\u30fc\u30bf\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u306e\u304b\u3084":18,"\u5217\u306b\u3069\u3093\u306a\u3082\u306e\u304c\u3042\u308b\u304b\u3092\u62bd\u51fa\u3057":13,"\u5217\u306b\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u30b3\u30fc\u30c9\u3067\u6307\u5b9a\u3059\u308b\u306e\u306f":18,"\u5217\u306e\u6570":9,"\u5217\u306e\uff12\u3064\u3064\u3044\u3066\u6307\u5b9a\u3057\u3066\u3084\u308c\u3070\u3088\u3044":18,"\u5217\u3092\u62bd\u51fa\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":18,"\u5217\u65b9\u5411":6,"\u5217\u65b9\u5411\u306e\u30c7\u30fc\u30bf\u306e\u9805\u76ee":18,"\u521d\u3081\u304b\u3089\u305d\u308c\u3092\u6559\u3048\u308d":7,"\u521d\u3081\u3066python\u306e\u30b3\u30fc\u30c9\u3092v":21,"\u521d\u3081\u306b\u30d2\u30c3\u30c8\u3057\u305f\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u8fd4\u3057\u307e\u3059":3,"\u521d\u56de\u8d77\u52d5\u6642\u306fxcode\u306e\u5c0e\u5165\u304c\u5fc5\u8981\u304b\u3082\u3057\u308c\u306a\u3044":24,"\u521d\u5b66\u8005\u304c\u3064\u307e\u3065\u304d\u3084\u3059\u3044\u70b9\u3067\u3082\u3042\u308a\u307e\u3059":4,"\u521d\u5b66\u8005\u304c\u9665\u308a\u3084\u3059\u3044\u843d\u3068\u3057\u7a74\u3067\u3059":3,"\u521d\u5b66\u8005\u306b\u3068\u3063\u3066":3,"\u521d\u671f\u5024":[8,15,16],"\u521d\u671f\u5024\u304b\u3089\u521d\u3081\u3066\u9010\u6b21\u7684\u306b\u6c42\u3081\u3066\u3044\u304f\u3053\u3068\u3067\u3042\u308b":16,"\u521d\u671f\u5024\u304c\u60aa\u3044":10,"\u521d\u671f\u5024\u3067\u306e\u4e8c\u4e57\u8aa4\u5dee":10,"\u521d\u671f\u5024\u30920\u306b":7,"\u521d\u671f\u5024w":10,"\u521d\u671f\u5316":18,"\u521d\u671f\u6761\u4ef6":16,"\u521d\u671f\u6761\u4ef6\u3084\u5883\u754c\u6761\u4ef6":16,"\u521d\u671f\u8a2d\u5b9a":24,"\u521d\u6b69\u7684\u306a\u76f8\u95a2\u5206\u6790\u3068\u56de\u5e30\u5206\u6790\u304cpython\u3067\u51fa\u6765\u308b\u3088\u3046\u306b\u306a\u308b":7,"\u5225\u306b":16,"\u5225\u306e\u5909\u6570\u3068\u3057\u3066\u518d\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u308b":4,"\u5225\u306e\u7528\u9014\u3067\u7528\u3044\u308b\u969b\u306b\u306f\u30e9\u30a4\u30bb\u30f3\u30b9\u306e\u8a73\u7d30\u3092\u53c2\u7167\u3057\u9075\u5b88\u3059\u308b\u3053\u3068":20,"\u5225\u58f2\u4e0a\u9ad8":13,"\u5225\u63b2\u3092\u9664\u304f":13,"\u5225\u9014\u30d0\u30c3\u30af\u30b9\u30e9\u30c3\u30b7\u30e5\u3092\u5165\u308c\u3066":9,"\u5225\u9700\u8981\u306e\u72b6\u6cc1":13,"\u5229\u76ca\u304c\u3042\u308b\u5024\u3092\u8d85\u3048\u308b\u307e\u3067\u682a\u306e\u58f2\u8cb7\u3092\u304f\u308a\u304b\u3048\u3059":3,"\u5236\u9650\u4ed8\u304d":25,"\u524a\u9664":9,"\u524d\u51e6\u7406\u306a\u3069\u306e\u5730\u9053\u3060\u304c\u91cd\u8981\u306a\u4f5c\u696d\u3092\u6bd4\u8f03\u7684\u7c21\u5358\u306b\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059":18,"\u524d\u8005\u306e\u307b\u3046\u304c\u9ad8\u901f\u3089\u3057\u3044":6,"\u524d\u8005\u306f2\u500d":8,"\u524d\u8005\u3092\u5b9f\u88c5\u3057\u3066":16,"\u524d\u8005\u3092\u63a1\u7528\u3059\u308b\u3053\u3068\u306b\u3057\u3088\u3046":17,"\u524d\u8ff0\u306e\u3088\u3046\u306a":16,"\u524d\u8ff0\u306e\u3088\u3046\u306a\u691c\u8a3c\u30c7\u30fc\u30bf\u306b\u5bfe\u3059\u308b\u6c4e\u5316\u6027\u80fd\u3067\u8a55\u4fa1\u3057\u307e\u3059":10,"\u524d\u8ff0\u306e\u3088\u3046\u306b\u611a\u76f4\u306breport1\u30d5\u30a9\u30eb\u30c0\u3092\u6307\u5b9a\u3059\u308b\u3068\u304d\u306f":9,"\u524d\u8ff0\u306e\u30d5\u30a1\u30a4\u30eb\u69cb\u9020\u306e\u4e8b\u60c5\u304b\u3089\u3084\u3084\u9762\u5012\u304f\u3055\u3044":18,"\u524d\u8ff0\u306e\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u306e\u521d\u671f\u5024\u554f\u984c\u306f\u4e00\u610f\u306e\u89e3\u3092\u6301\u3064":16,"\u5272\u308a\u7b97":2,"\u52a0\u3048\u3066":17,"\u52b4\u50cd\u8005\u6d3e\u9063\u696d":13,"\u52b9\u7387\u7684\u306b\u6700\u9069\u89e3\u304c\u63a2\u7d22\u51fa\u6765\u3066\u3044\u308b":11,"\u52d5\u3051\u3070\u3044\u3044\u3084":17,"\u52d5\u753b\u8cbc\u308a\u4ed8\u3051\u7528":24,"\u52dd\u3061":3,"\u52dd\u3061\u306e\u5834\u5408":3,"\u52dd\u3063\u305f":3,"\u52dd\u3063\u305f\u3089\u9023\u52dd\u6570\u3092\u30d7\u30e9\u30b91\u3059\u308b":3,"\u52fe\u914d":[6,8],"\u52fe\u914d\u304c\u5c0f\u3055\u3044\u306a\u3089\u52fe\u914d\u306b\u304b\u3051\u308b\u5b66\u7fd2\u7387\u3092\u5927\u304d\u304f\u3059\u308c\u3070\u3048\u3048\u3093\u3068\u3061\u3083\u3044\u307e\u3093\u306e":10,"\u52fe\u914d\u3060\u3063\u3066":8,"\u52fe\u914d\u306e\u307f\u306b\u57fa\u3065\u304f\u5358\u7d14\u306a\u6700\u9069\u5316\u624b\u6cd5\u3067\u306f\u5c40\u6240\u89e3\u306b\u505c\u7559\u3059\u308b\u5371\u967a\u3082\u3042\u308b":11,"\u52fe\u914d\u306e\u60c5\u5831\u3060\u3051\u3067\u306a\u304f\u305d\u308c\u307e\u3067\u306e\u66f4\u65b0\u306e\u5c65\u6b74\u3092\u6d3b\u7528\u3057\u305f\u5404\u7a2e\u306e\u6700\u9069\u5316\u624b\u6cd5\u304c\u3088\u304f\u7528\u3044\u3089\u308c\u308b":8,"\u52fe\u914d\u306e\u8a08\u7b97\u3092\u5177\u4f53\u7684\u306b\u6c42\u3081\u308b\u306e\u306b\u4f7f\u3046":10,"\u52fe\u914d\u306f\u5f0f\u304b\u3089\u8a08\u7b97\u3057\u305f\u304c":11,"\u52fe\u914d\u3082\u8a08\u7b97\u3067\u304d\u306a\u3044":11,"\u52fe\u914d\u3092\u8a08\u7b97\u3059\u308b\u3068\u3053\u308d\u307e\u3067\u306f\u540c\u3058":10,"\u52fe\u914d\u3092\u8a08\u7b97\u3059\u308b\u969b\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306e\u6570\u5024\u7cbe\u5ea6\u306b\u306f\u9650\u308a\u304c\u3042\u308a\u307e\u3059\u306e\u3067":8,"\u52fe\u914d\u3092\u8fd4\u308a\u5024\u3068\u3057\u3066\u4e0e\u3048\u308b\u95a2\u6570\u3092\u5b9a\u7fa9\u3057\u307e\u3059":10,"\u52fe\u914d\u6cd5\u306b\u3088\u308b\u6700\u9069\u5316\u3082\u3084\u3063\u3066\u307f\u308b":11,"\u52fe\u914d\u6cd5\u306e\u4ed6\u306b\u3082\u305f\u304f\u3055\u3093\u554f\u984c\u306b\u5fdc\u3058\u3066\u6700\u9069\u5316\u624b\u6cd5\u304c\u7528\u3044\u3089\u308c\u308b":8,"\u52fe\u914d\u6cd5\u3092\u4f7f\u3046\u7406\u7531\u306f":8,"\u52fe\u914d\u6d88\u5931\u3068\u3082\u3044\u3046":10,"\u52fe\u914d\u964d\u4e0b\u6cd5\u3067\u30d1\u30e9\u30e1\u30fc\u30bf\u3092100\u56de\u66f4\u65b0\u3057\u3066\u307f\u308b":8,"\u52fe\u914d\u964d\u4e0b\u6cd5\u3067\u6c42\u3081\u3066\u307f\u3088\u3046":8,"\u52fe\u914d\u964d\u4e0b\u6cd5\u3068\u306f":10,"\u52fe\u914d\u964d\u4e0b\u6cd5\u306e\u69d8\u306b\u305d\u306e\u90fd\u5ea6\u306e\u52fe\u914d\u306e\u60c5\u5831\u3060\u3051\u3092\u4f7f\u3046\u306e\u3067\u306f\u306a\u304f":10,"\u52fe\u914d\u964d\u4e0b\u6cd5\u306f":10,"\u52fe\u914d\u964d\u4e0b\u6cd5\u3092\u62e1\u5f35\u3057\u305f":10,"\u5316\u5b66":5,"\u533a\u9593\u3067\u306e\u78ba\u7387":6,"\u533a\u9593\u306a\u3069\u3068\u547c\u3076\u3053\u3068\u3082\u591a\u3044\u3067\u3059":6,"\u5341\u4e80\u9078\u624b":3,"\u5341\u4e80vs\u677e\u7530\u30b7\u30df\u30e5\u30ec\u30fc\u30bf":3,"\u5341\u5206\u30e9\u30f3\u30c0\u30e0\u3060\u3068\u307f\u306a\u305b\u308b\u6570\u306e\u96c6\u5408":6,"\u5341\u9032\u6570\u306b\u63db\u7b97\u3057\u306616\u6841\u7a0b\u5ea6\u306e\u7cbe\u5ea6":2,"\u5343\u8449\u5e02\u3067\u306e\u5e73\u5747\u6c17\u6e29\u3068":7,"\u5348\u524d":9,"\u5348\u5f8c":9,"\u534a\u89d2":2,"\u534a\u89d2\u306e\u30a2\u30b9\u30bf\u30ea\u30b9\u30af\u306f\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u8a18\u53f7":1,"\u534a\u89d2\u306e\u30b9\u30e9\u30c3\u30b7\u30e5":5,"\u534a\u89d2\u30a2\u30b9\u30bf\u30ea\u30b9\u30af":24,"\u534a\u89d2\u30b7\u30e3\u30fc\u30d7\u8a18\u53f7":2,"\u534a\u89d2\u30b9\u30da\u30fc\u30b9":9,"\u534a\u89d2\u30b9\u30da\u30fc\u30b94\u3064\u5206":3,"\u534a\u89d2\u62ec\u5f27\u3092\u4f7f\u3063\u3066":3,"\u534a\u89d2\u7a7a\u767d":18,"\u5358\u306b1":6,"\u5358\u306b\u4e71\u6570\u3068\u547c\u3076\u3053\u3068\u306b\u3057\u307e\u3059":6,"\u5358\u306b\u6620\u753b\u3084\u30c9\u30e9\u30de\u3067\u30cf\u30c3\u30ab\u30fc\u306e\u90aa\u60aa\u3055\u3092\u6f14\u51fa\u3059\u308b":23,"\u5358\u306bubuntu\u3068\u3044\u3046\u540d\u524d\u306e\u3082\u306e":24,"\u5358\u4e00\u306e\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306b\u5927\u91cf\u306e\u884c\u306b\u6e21\u3063\u3066\u60c5\u5831\u304c\u3042\u308b\u5834\u5408":9,"\u5358\u4f4d":25,"\u5358\u4f4d\u306b\u6ce8\u610f":25,"\u5358\u5cf0\u7684":8,"\u5358\u7d14\u306b\u305f\u3093\u3071\u304f\u8cea":18,"\u539f\u56e0\u3068\u3057\u3066\u8003\u3048\u3089\u308c\u308b\u306e\u306f":10,"\u539f\u5b50\u6838\u306a\u3069\u306e\u7269\u7406\u5b66":19,"\u539f\u7406\u7684\u306b\u306f":[3,6],"\u53b3\u5bc6\u306b\u306f\u4e21\u8005\u306f\u9055\u3046\u306e\u3067\u3059\u304c":3,"\u53b3\u5bc6\u306b\u306f\u9055\u3046":2,"\u53b3\u5bc6\u6027\u306f\u304b\u306a\u308a\u72a0\u7272\u306b\u3057\u3066\u5fae\u5206\u306e\u6982\u5ff5\u3092\u5c0e\u5165\u3057\u3066\u3044\u308b":8,"\u53b3\u5bc6\u6027\u306f\u5c11\u3005\u72a0\u7272\u306b\u3057":6,"\u53c2\u7167":7,"\u53c2\u7167\u5143\u304c\u540c\u3058":3,"\u53c2\u7167\u6e21\u3057":3,"\u53c2\u8003":[0,7,8,9,20,22,24],"\u53c2\u8003\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8":5,"\u53c2\u8003\u30ea\u30f3\u30af":9,"\u53ca\u3073":13,"\u53cb\u4eba\u7b49\u306b\u8aac\u660e\u3067\u304d\u308b":25,"\u53cd\u5fa9":15,"\u53cd\u6620\u3057\u305f\u30b3\u30fc\u30c9\u3092\u751f\u6210\u3057\u3066\u304f\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u304c":21,"\u53ce\u5165\u984d":13,"\u53d6\u308a\u7d44\u3093\u3067\u3082\u3089\u3063\u3066\u69cb\u308f\u306a\u3044":25,"\u53d6\u5f97":11,"\u53d7\u8cde\u8005\u4e00\u89a7\u3092\u53d6\u5f97\u3057\u3066\u307f\u307e\u3057\u3087\u3046":18,"\u53e4\u3044\u30b2\u30fc\u30e0\u3060\u3068":6,"\u53e4\u3044\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3060\u3068shift":9,"\u53e4\u5178\u7684\u30eb\u30f3\u30b2":16,"\u53ef\u80fd\u306a\u3089":9,"\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059":3,"\u53ef\u8996\u5316\u3057\u3066\u7406\u89e3\u3059\u308b\u3053\u3068\u306f\u96e3\u3057\u3044":17,"\u53ef\u8996\u5316\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":25,"\u53f3\u4e0a\u306b\u304a\u4f7f\u3044\u306egoogle\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30a2\u30a4\u30b3\u30f3\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u4eba\u306f\u305d\u306e\u307e\u307e\u4ee5\u4e0b\u3078":1,"\u53f3\u4e0a\u306e":13,"\u53f3\u4e0a\u306e\u5171\u6709\u30dc\u30bf\u30f3\u3092\u62bc\u3057":25,"\u53f3\u4e0b\u3060\u3088":5,"\u53f3\u8fba\u306b\u3042\u308b":16,"\u53f3\u8fba\u306e\u7a4d\u5206\u3092\u6570\u5024\u7684\u306b\u8a08\u7b97\u3059\u308b\u3053\u3068\u3067":16,"\u5404":16,"\u5404\u30b5\u30f3\u30d7\u30eb\u3054\u3068\u306b":6,"\u5404\u30b5\u30f3\u30d7\u30eb\u306e\u91cd\u307f\u3092\u7b49\u4fa1\u306b\u3059\u308b":6,"\u5404\u30b9\u30c6\u30c3\u30d7\u306e\u523b\u307f\u5e45":16,"\u5404\u30c7\u30fc\u30bf\u306b\u5bfe\u3059\u308b\u7b2c1\u4e3b\u6210\u5206\u8ef8\u306b\u6cbf\u3063\u305f":17,"\u5404\u30c7\u30fc\u30bf\u3092\u6210\u5206\u306b\u3082\u3064\u884c\u5217":17,"\u5404\u30d4\u30af\u30bb\u30eb\u306e\u753b\u7d20\u5024":19,"\u5404\u4e3b\u6210\u5206\u304c\u5143\u306e\u30c7\u30fc\u30bf\u306b\u542b\u307e\u308c\u308b\u7279\u5fb4\u3092\u3069\u306e\u7a0b\u5ea6\u8868\u73fe\u3057\u3066\u3044\u308b\u304b":17,"\u5404\u5217\u306e\u5e73\u5747\u30d9\u30af\u30c8\u30eb":17,"\u5404\u56de\u7b54\u9805\u76ee\u540c\u58eb\u306e\u95a2\u4fc2\u304c\u77e5\u308a\u305f\u3044":9,"\u5404\u6b21\u6570\u3067\u306e\u591a\u9805\u5f0f\u306e\u30e2\u30c7\u30eb\u306e\u8907\u96d1\u3055":7,"\u5404\u70b9\u3067\u306ez\u306e\u5024\u3092\u5b9a\u7fa9\u306b\u5247\u3063\u3066\u8a08\u7b97\u3057":6,"\u5404\u70b9\u3067\u5fae\u5c0f\u306bx\u3092\u305a\u3089\u3057\u305f\u5834\u5408\u306e\u89b3\u6e2c\u304c\u5fc5\u8981":11,"\u5404\u70b9\u306b\u3064\u3044\u3066\u7b2c1\u4e3b\u6210\u5206\u5f97\u70b9\u3092\u8a08\u7b97\u3057\u3066\u30ea\u30b9\u30c8\u306b\u8a70\u3081\u3066\u304a\u3053\u3046":17,"\u5404\u7701\u5e81\u306e\u516c\u958b\u30c7\u30fc\u30bf\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u7d71\u4e00\u5316\u306f\u4eca\u5f8c\u306b\u671f\u5f85\u3059\u308b\u3053\u3068\u306b\u3057\u3066":18,"\u5404\u79d1\u76ee":5,"\u5404\u79d1\u76ee\u3054\u3068\u306e\u5f97\u610f":9,"\u5404\u79d1\u76ee\u306e\u5024\u3060\u3051\u306e\u30ea\u30b9\u30c8":9,"\u5404\u79d1\u76ee\u306e\u540d\u524d":5,"\u5404\u79d1\u76ee\u306e\u5e73\u5747\u30b9\u30b3\u30a2":9,"\u5404\u7a2e\u306e\u30b0\u30e9\u30d5\u3092\u4f5c\u6210\u3059\u308b\u65b9\u6cd5\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046":5,"\u5404\u7a2e\u306e\u697d\u3057\u3044\u5b9f\u793e\u4f1a\u306e\u554f\u984c\u306b\u5fdc\u7528\u3057\u3066\u3044\u304d\u307e\u3059":10,"\u5404\u7a2e\u30c7\u30fc\u30bf\u5206\u6790\u306a\u3069\u3067\u975e\u5e38\u306b\u5f79\u306b\u305f\u3061\u307e\u3059":18,"\u5404\u7a2e\u62ec\u5f27":9,"\u5404\u7ae0\u306e\u5192\u982d\u306b\u7528\u610f\u3055\u308c\u305f":0,"\u5404\u9805\u76ee\u306e\u5f97\u70b9\u3092\u9069\u5f53\u306a\u30ea\u30b9\u30c8":9,"\u5404p\u3067\u306efit\u306e\u7d50\u679c":7,"\u5408\u8a08":13,"\u5408\u8a08\u5f97\u70b9\u306f":5,"\u5409\u7530":[4,9,23,24],"\u5409\u7530\u304c\u5927\u5b66\uff11\u5e74\u751f\u3067\u7dda\u5f62\u4ee3\u6570\u3092\u521d\u3081\u3066\u52c9\u5f37\u3057\u305f\u3068\u304d":19,"\u540c\u3058\u304f":6,"\u540c\u3058\u3068\u3053\u308d\u3092\u4f55\u5ea6\u304b\u884c\u304d\u6765\u3059\u308b\u306e\u3067\u660e\u3089\u304b\u306b\u7121\u99c4\u304c\u591a\u3044":8,"\u540c\u3058\u3082\u306e\u304c\u5f97\u3089\u308c\u3066\u3044\u308b":18,"\u540c\u3058\u3082\u306e\u3092\u53c2\u7167\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059":3,"\u540c\u3058\u30c7\u30fc\u30bf\u3067":11,"\u540c\u3058\u51e6\u7406\u3092\u7e70\u308a\u8fd4\u3057\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u540c\u3058\u64cd\u4f5c\u3092\u7e70\u308a\u8fd4\u3059\u5834\u5408":9,"\u540c\u3058\u7b54\u3048\u306b\u3057\u305f\u3051\u308c\u3070\u4e71\u6570\u3092\u56fa\u5b9a\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046":6,"\u540c\u3058google\u306e\u30b5\u30fc\u30d3\u30b9\u3067\u3042\u308bgoogl":5,"\u540c\u5316":20,"\u540c\u58eb":14,"\u540c\u58eb\u306e\u4e8c\u9805\u6f14\u7b97\u3067\u306f":22,"\u540c\u69d8\u306b\u3057\u3066":[13,16,17],"\u540c\u69d8\u306e\u30b3\u30de\u30f3\u30c9\u304c\u4f7f\u3048\u307e\u3059":5,"\u540c\u6c0f\u306b\u3088\u308bqiita\u306e\u89e3\u8aac\u8a18\u4e8b":13,"\u540d\u306b\u4f7f\u308f\u306a\u3044\u306e\u304c\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u306b\u3068\u3063\u3066\u306f\u7121\u96e3\u306a\u306e\u3060":9,"\u540d\u524d":[3,18],"\u540d\u524d\u306a\u3069":18,"\u540d\u524d\u306e\u30ea\u30b9\u30c8":25,"\u540d\u79f0\u3068url\u3092\u5165\u529b\u3057":13,"\u5468\u671f":13,"\u547c\u79f0\u3059\u308b":0,"\u548c":22,"\u548c\u306b\u9650\u3089\u305a":14,"\u548c\u3092\u5148\u306b\u8a08\u7b97\u3057\u3066\u7a4d\u3092\u53d6\u308a":7,"\u548c\u8a18\u53f7":14,"\u554f\u984c\u304c\u3042\u308c\u3070\u30a8\u30e9\u30fc\u304c\u8d77\u304d\u306a\u3044\u3068\u5bfe\u51e6\u3057\u3088\u3046\u304c\u306a\u3044":3,"\u554f\u984c\u304c\u8d77\u304d\u305f\u3068\u304d\u306e\u5bfe\u51e6\u80fd\u529b":17,"\u554f\u984c\u3054\u3068\u306b\u4f55\u304c\u6700\u9069\u306a\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u69cb\u9020\u3060\u3063\u305f\u308a\u6d3b\u6027\u5316\u95a2\u6570\u306a\u306e\u304b\u306f":10,"\u554f\u984c\u70b9\u304c\u751f\u3058\u305f\u5834\u5408":25,"\u56db\u5247\u6f14\u7b97\u306a\u3069":9,"\u56de":[3,6],"\u56de\u306b\u3064\u3044\u3066\u306f":16,"\u56de\u308a\u304f\u3069\u3044\u306a":5,"\u56de\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u3063\u305f\u5834\u5408\u306e\u51fa\u76ee\u3092\u305d\u308c\u305e\u308c\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u306b\u3057\u3066\u307f\u308b\u3068":6,"\u56de\u5e30":7,"\u56de\u5e30\u306b\u7528\u3044\u308b\u95a2\u6570\u306e\u59a5\u5f53\u6027\u304c\u691c\u8a3c\u3067\u304d\u308b\u3068\u3044\u3046\u70b9\u306b\u6ce8\u610f\u3057\u3088\u3046":7,"\u56de\u5e30\u554f\u984c\u3060\u3051\u3067\u306f\u306a\u304f\u5206\u985e\u554f\u984c":10,"\u56de\u5e30\u554f\u984c\u306b\u304a\u3051\u308b\u4ee3\u8868\u7684\u306a\u6d3b\u6027\u5316\u95a2\u6570\u3068\u3057\u3066\u306f":10,"\u56de\u6570\u3060\u3051\u8868\u793a\u3057\u3088\u3046":4,"\u56de\u7b54":21,"\u56de\u7b54\u3057\u305f\u6642\u523b":9,"\u56e0\u679c\u63a8\u8ad6":7,"\u56e0\u679c\u95a2\u4fc2\u3092\u7d10\u89e3\u304f\u3053\u3068\u306f":7,"\u56f3\u306a\u3069\u3092\u542b\u3093\u3060\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u4f5c\u6210\u3068python\u306a\u3069\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u5b9f\u884c\u3092\u63d0\u4f9b\u3059\u308b\u74b0\u5883\u3067":0,"\u56f3\u306b\u3057\u305f\u306e\u306f":7,"\u56f3\u306b\u306f\u30bf\u30a4\u30c8\u30eb\u3092\u3064\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":5,"\u56f3\u306b\u30d7\u30ed\u30c3\u30c8\u3057\u3066\u307f\u308b\u3068":10,"\u56f3\u306eplot":12,"\u56f3\u3082\u4e00\u5ea6\u306e\u547d\u4ee4\u3060\u3051\u3067\u63cf\u3051\u308b":22,"\u56f3\u3092\u304b\u3044\u3066\u307f\u3088\u3046":8,"\u56f3\u3092\u4fdd\u5b58\u3059\u308b\u7528\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u3063\u3066\u304a\u304d\u307e\u3057\u3087\u3046":5,"\u56f3\u3092\u518d\u63b2":8,"\u56f3\u3092\u63cf\u3044\u3066\u307f\u3088\u3046":13,"\u56f3\u3092\u63cf\u304f\u30ad\u30e3\u30f3\u30d0\u30b9\u3092\u7528\u610f\u3057\u3066\u3044\u308b\u3088\u3046\u306a\u30a4\u30e1\u30fc\u30b8\u3067\u3059":5,"\u56f3\u4e2d\u306b":8,"\u56fa\u6709\u30d9\u30af\u30c8\u30eb":17,"\u56fa\u6709\u30d9\u30af\u30c8\u30eb\u306f\u7e26\u306b\u4e26\u3093\u3067\u3044\u308b\u3053\u3068\u306b\u6ce8\u610f":17,"\u56fa\u6709\u30d9\u30af\u30c8\u30eb\u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570":17,"\u56fa\u6709\u30d9\u30af\u30c8\u30eb\u5168\u4f53\u306e\u7b26\u53f7":17,"\u56fa\u6709\u5024":17,"\u56fa\u6709\u5024\u306b\u5bfe\u5fdc":17,"\u56fa\u6709\u5024\u554f\u984c\u3092\u89e3\u304f\u969b\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u30bd\u30eb\u30d0\u30fc":17,"\u56fd":7,"\u56fd\u5185\u306e\u30c7\u30fc\u30bf\u3092\u4f7f\u3063\u3066\u6700\u7d42\u8ab2\u984c\u306b\u53d6\u308a\u7d44\u307f\u305f\u3044\u3068\u3044\u3046\u65b9\u306f":13,"\u56fd\u571f\u6570\u5024\u60c5\u5831\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30b5\u30fc\u30d3\u30b9":25,"\u56fd\u6570\u82f1\u793e\u7406":9,"\u56fd\u8a9e":[5,9],"\u56fd\u8a9e\u304c\u5f97\u610f":9,"\u56fd\u8a9e\u3068\u82f1\u8a9e\u306e\u5f97\u70b9\u3092100\u70b9\u6e80\u70b9\u306b\u63db\u7b97\u3057":5,"\u5730\u56f3\u306b\u8f09\u3063\u3066\u3044\u306a\u3044\u5c71\u304c\u3042\u3063\u305f\u3068\u4eee\u5b9a\u3057\u3066":6,"\u5730\u56f3\u3092\u63cf\u304d":25,"\u5730\u56f3\u3092\u63cf\u304f\u3053\u3068\u3092\u76ee\u6307\u3059":25,"\u5730\u56f3\u4e0a\u306b\u95a2\u9023\u3059\u308b":25,"\u5730\u57df":13,"\u578b":2,"\u578b\u3067":2,"\u578b\u3067\u306f\u306a\u304f":9,"\u578b\u3068\u3044\u3046\u3082\u306e\u306b\u5909\u66f4\u3057\u3066\u4f7f\u3046\u4e8b\u304c\u591a\u3044\u3067\u3059":5,"\u578b\u3068\u547c\u3070\u308c\u308b\u3082\u306e\u306b\u3059\u308c\u3070\u7c21\u5358\u306b\u5b9f\u884c\u3067\u304d\u307e\u3059":3,"\u578b\u306b\u3057\u3066\u304a\u304f\u307b\u3046\u304c\u826f\u3044\u3053\u3068\u3082\u3042\u308b\u3060\u308d\u3046":9,"\u578b\u306b\u5909\u63db\u3059\u308b\u306b\u306f":5,"\u578b\u306e2":2,"\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u751f\u6210\u3059\u308b\u95a2\u6570\u3067":3,"\u578b\u306f":3,"\u578b\u3092\u59cb\u3081\u3068\u3059\u308b":3,"\u57fa\u5e95":19,"\u57fa\u672c\u7684\u306a\u30a2\u30a4\u30c7\u30a2\u306f\u540c\u69d8\u306a\u306e\u3067":8,"\u57fa\u672c\u7684\u306a\u30b3\u30de\u30f3\u30c9":24,"\u57fa\u672c\u7684\u306a\u5909\u6570\u306e\u578b\u3068\u305d\u306e\u8abf\u3079\u65b9\u304c\u5206\u304b\u308b":25,"\u57fa\u672c\u7684\u306b":2,"\u57fa\u672c\u7684\u306b\u306f2\u5909\u6570\u95a2\u6570\u306etaylor\u5c55\u958b\u3092\u3084\u308c\u3070\u66f4\u65b0\u5f0f\u3092\u5c0e\u51fa\u3067\u304d\u308b\u304c":16,"\u57fa\u672c\u7684\u306b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u306f":2,"\u57fa\u790e\u306e\u7406\u89e3\u306b\u91cd\u70b9\u3092\u7f6e\u304f\u305f\u3081":17,"\u5834\u5408":25,"\u5834\u5408\u306a\u3069\u304c\u3042\u308a\u307e\u3059":3,"\u5834\u5408\u306b\u3088\u3063\u3066\u306f\u8907\u6570\u884c":21,"\u5834\u5408\u306b\u3088\u3063\u3066\u306f\u975e\u73fe\u5b9f\u7684\u306a\u4eee\u5b9a\u306b\u306a\u308a\u5f97\u308b":11,"\u5834\u5408\u306b\u3088\u308a\u3051\u308a":6,"\u5834\u5408\u306b\u3088\u308a\u3051\u308a\u3067\u3059\u304c":3,"\u5834\u5408\u306f0":19,"\u5834\u5408\u3092\u8003\u3048\u3066\u307f\u3088\u3046":8,"\u58c1":24,"\u58f2\u4e0a\u9ad8":13,"\u5909\u6570":[2,3,4,9,16],"\u5909\u6570\u304c1\u6b21\u5143\u306e\u5834\u5408\u306e\u6b63\u898f\u5206\u5e03\u306b\u9650\u308b":6,"\u5909\u6570\u304c2\u6b21\u5143":8,"\u5909\u6570\u3054\u3068\u306b\u6a19\u6e96\u7684\u306a\u30b9\u30b1\u30fc\u30eb\u304c\u9055\u3046\u5024\u3092\u6271\u3046\u5834\u5408":10,"\u5909\u6570\u306b\u5225\u306e\u540d\u524d\u3092\u3064\u3051\u308b":2,"\u5909\u6570\u306e\u30b9\u30b3\u30fc\u30d7":2,"\u5909\u6570\u306e\u30b9\u30b3\u30fc\u30d7\u306b\u95a2\u3057\u3066\u6df7\u4e71\u3092\u907f\u3051\u308b\u624b\u52a9\u3051\u3068\u306a\u308b\u65b9\u6cd5\u306f":4,"\u5909\u6570\u306e\u5024\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u306f":2,"\u5909\u6570\u306e\u578b\u304c\u8abf\u3079\u305f\u304f\u306a\u3063\u305f\u3068\u304d\u306f":2,"\u5909\u6570\u306e\u5b9a\u7fa9\u3068\u7c21\u5358\u306a\u6f14\u7b97":3,"\u5909\u6570\u306e\u5b9a\u7fa9\u3084\u56db\u5247\u6f14\u7b97\u306e\u65b9\u6cd5\u304c\u5206\u304b\u308b":25,"\u5909\u6570\u306e\u5ba3\u8a00\u3092\u4f7f\u3046\u3079\u304d\u5834\u5408\u3068\u3057\u3066\u306f":4,"\u5909\u6570\u306f\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u307e\u3059":4,"\u5909\u6570\u306f\u5024\u304c\u4fdd\u7ba1\u3055\u308c\u308b\u30e1\u30e2\u30ea\u4e0a\u306e\u4f4f\u6240\u3092\u793a\u3059\u3082\u306e\u3068\u3044\u3046\u306e\u304c\u6b63\u78ba":2,"\u5909\u6570\u540d\u306a\u3069\u306b\u3072\u3089\u304c\u306a\u3092\u4f7f\u3046\u3053\u3068\u306b\u7531\u6765\u3057\u3066\u8d77\u3053\u308a\u304c\u3061\u306a\u30d0\u30b0\u3068\u3057\u3066\u306f":2,"\u5909\u6570\u540d\u306b\u3072\u3089\u304c\u306a\u7b49\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u81ea\u4f53\u306f\u53ef\u80fd\u3067":2,"\u5909\u6570\u540d\u306b\u5168\u89d2\u6587\u5b57":2,"\u5909\u6570\u540d\u306b\u5168\u89d2\u6587\u5b57\u306f\u4f7f\u308f\u306a\u3044":2,"\u5909\u6570\u540d\u306f\u57fa\u672c\u7684\u306b\u534a\u89d2\u82f1\u6570\u5b57":2,"\u5909\u6570a\u306e\u578b":3,"\u5909\u6570heights\u306e\u578b\u3092print":3,"\u5909\u6570heights\u3092print":3,"\u5909\u66f4\u3092\u53cd\u6620\u3055\u305b\u308b\u5fc5\u8981\u304c\u3042\u308b":24,"\u5916\u56fd\u516c\u52d9":13,"\u5916\u90e8\u30b9\u30c8\u30ec\u30fc\u30b8\u7b49\u3067\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u5fc5\u9808\u3067\u3059":24,"\u591a\u304f\u306e\u30c7\u30fc\u30bf\u9593\u306e\u76f8\u95a2\u95a2\u4fc2\u3092\u7cfb\u7d71\u7684\u306b\u8abf\u3079\u305f\u3044":7,"\u591a\u304f\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u3082\u63a1\u7528\u3055\u308c\u3066\u3044\u308b":6,"\u591a\u304f\u306e\u81ea\u7136\u73fe\u8c61\u3084\u793e\u4f1a\u73fe\u8c61\u306f\u5fae\u5206\u65b9\u7a0b\u5f0f\u3068\u3057\u3066\u5b9a\u5f0f\u5316\u3055\u308c\u308b":16,"\u591a\u304f\u306f\u305d\u306e\u5fae\u5206":8,"\u591a\u5909\u6570\u306e\u5834\u5408\u3092\u8003\u3048\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":6,"\u591a\u6570\u306e\u30b7\u30fc\u30c8\u3092\u542b\u3080\u3088\u3046\u306a\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u3053\u3068\u3082\u51fa\u6765\u308b":18,"\u591a\u6b21\u5143":17,"\u591a\u6b21\u5143\u6b63\u898f\u5206\u5e03\u304b\u3089\u30b5\u30f3\u30d7\u30eb\u3057\u3066\u307f\u307e\u3057\u3087\u3046":6,"\u591a\u6b21\u5143\u6b63\u898f\u5206\u5e03\u306f":6,"\u591a\u6b21\u5143\u6b63\u898f\u5206\u5e03\u3084\u591a\u5909\u6570\u6b63\u898f\u5206\u5e03\u306a\u3069\u3068\u547c\u3070\u308c\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3059":6,"\u591a\u9805\u5f0f":8,"\u591a\u9805\u5f0f\u3067\u56de\u5e30\u3092\u884c\u3046\u5834\u5408\u306b\u306f":7,"\u591a\u9805\u5f0f\u306e\u4fc2\u6570\u3092\u5b9a\u7fa9":15,"\u591a\u9805\u5f0f\u306e\u6b21\u5143":7,"\u591a\u9805\u5f0f\u306e\u6b21\u5143\u3092\u56fa\u5b9a\u3057\u3066\u304a\u304f":12,"\u591a\u9805\u5f0f\u306e\u6b21\u5143p\u3092\u6c7a\u3081\u308b":7,"\u591a\u9805\u5f0f\u3092plot\u3059\u308b\u305f\u3081\u306ex\u306e\u5024\u3092\u6e96\u5099":7,"\u591a\u9805\u5f0f\u56de\u5e30\u306e\u610f\u5473\u3092":25,"\u591a\u9805\u5f0f\u56de\u5e30\u306e\u969b\u306b\u7528\u3044\u305f\u30c7\u30fc\u30bf\u3068\u540c\u3058sin\u95a2\u6570":10,"\u591a\u9805\u5f0f\u56de\u5e30\u306e\u969b\u306e\u4e8c\u4e57\u8aa4\u5dee\u306a\u3069\u3082":22,"\u591c\u4e2d":9,"\u5927\u304d\u3055\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u3059\u308b\u3053\u3068\u3067":6,"\u5927\u307e\u304b\u306b\u306f2\u3064\u306b\u5927\u5225\u3055\u308c\u308b":23,"\u5927\u307e\u304b\u306b\u306f\uff12\u3064\u306b\u5206\u985e\u3055\u308c":13,"\u5927\u4f532":19,"\u5927\u5b66\u306e\u6388\u696d\u3067\u4f7f\u3046\u5c02\u7528\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u65b0\u898f\u4f5c\u6210\u3059\u308b":1,"\u5927\u5b66\u306e\u6570\u5b66\u306e\u6559\u79d1\u66f8\u306b\u8f09\u3063\u3066\u3044\u308b\u95a2\u6570\u306e\u9023\u7d9a\u6027\u3084\u5fae\u5206\u306e\u53b3\u5bc6\u306a\u5b9a\u7fa9\u306f\u975e\u5e38\u306b\u91cd\u8981\u3067\u3059":8,"\u5927\u5b66\u5165\u8a66\u30bb\u30f3\u30bf\u30fc":6,"\u5927\u5c40\u6253\u5207\u308a\u8aa4\u5dee\u304c":16,"\u5927\u5c40\u8aa4\u5dee\u304c":16,"\u5927\u5c40\u8aa4\u5dee\u306f1":16,"\u5927\u5e45\u306b\u53ce\u76ca\u304c\u6e1b\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u308b":13,"\u5927\u6570\u306e\u6cd5\u5247":6,"\u5927\u898f\u6a21\u8a00\u8a9e\u30e2\u30c7\u30eb\u306e\u6027\u8cea":21,"\u5927\u898f\u6a21\u8a00\u8a9e\u30e2\u30c7\u30eb\u3092\u4f7f\u3063\u305f\u30b3\u30fc\u30c9\u88dc\u5b8c\u30c4\u30fc\u30eb\u3092\u7d39\u4ecb\u3059\u308b":21,"\u5927\u898f\u6a21\u8a00\u8a9e\u30e2\u30c7\u30eb\u3092\u4f7f\u7528\u3057\u305f\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8":21,"\u5927\u91cf\u306b\u30d8\u30eb\u30d7\u304c\u8868\u793a\u3055\u308c\u308b\u5834\u5408\u306f":23,"\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u304c\u3042\u3063\u305f\u3068\u304d\u305d\u306e\u5197\u9577\u6027\u3092\u524a\u6e1b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":17,"\u5927\u91cf\u306e\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u3092\u30c9\u30e9\u30a4\u30d6\u306b\u751f\u6210\u3059\u308b\u306e\u3067":9,"\u5927\u91cf\u306e\u95a2\u6570\u3092\u8003\u3048\u3066\u5fae\u5206\u3057\u305f\u8868\u5f0f\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f":8,"\u5927\u96d1\u628a\u306b\u306f\u30c7\u30fc\u30bf\u63d0\u4f9b\u7528\u306e\u7a93\u53e3\u3068\u3067\u3082\u601d\u3063\u3066\u304f\u3060\u3055\u3044":13,"\u5927\u96d1\u628a\u306b\u6307\u5b9a":17,"\u5927\u96d1\u628a\u306b\u8a00\u3048\u3070":[4,8],"\u5929\u4f53\u306e\u8ecc\u9053\u306a\u3069\u3092\u4e88\u6e2c\u3059\u308b\u306a\u3069\u306e\u5049\u5927\u306a\u529f\u7e3e\u3092\u6b8b\u3057\u305f":8,"\u592a":19,"\u5965\u884c\u65b9\u5411\u306b\u50be\u3044\u305f\u5186\u30b0\u30e9\u30d5\u3082\u8aa4\u3063\u305f\u5370\u8c61\u3092\u4e0e\u3048\u307e\u3059":5,"\u597d\u304d\u306a\u56f3\u3092\u4f5c\u6210\u3055\u305b\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u4e0a\u306b\u8868\u793a\u3055\u305b\u3088":25,"\u59cb\u70b9":[3,22],"\u5a2f\u697d\u696d":13,"\u5b50":5,"\u5b63\u7bc0\u3054\u3068\u306b\u9069\u5f53\u306b\u8272\u3092\u5857\u3063\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u5b63\u7bc0\u3054\u3068\u306e\u751f\u7523\u91cf\u304c\u307b\u307c\u540c\u3058":7,"\u5b66\u6821\u6559\u80b2":13,"\u5b66\u751f\u306f":21,"\u5b66\u751f\u5411\u3051\u306e\u767b\u9332\u65b9\u6cd5\u304c\u898b\u3064\u304b\u308b":21,"\u5b66\u751f\u7533\u8acb":21,"\u5b66\u751f\u8a3c\u306a\u3069\u3092\u63d0\u51fa\u3059\u308b\u3053\u3068\u3067":21,"\u5b66\u7fd2":10,"\u5b66\u7fd2\u304c\u3046\u307e\u304f\u884c\u3063\u3066\u305d\u3046\u3067\u3059\u306d":10,"\u5b66\u7fd2\u304c\u9032\u307e\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3046":10,"\u5b66\u7fd2\u3059\u308b\u306b\u3064\u308c\u3066\u52fe\u914d\u306e\u5024\u304c\u5c0f\u3055\u304f\u306a\u3063\u3066\u5b66\u7fd2\u304c\u9032\u307e\u306a\u3044":10,"\u5b66\u7fd2\u306e\u69d8\u5b50\u3092\u90fd\u5ea6print\u3057\u3066\u307f\u308b":10,"\u5b66\u7fd2\u306e\u9014\u4e2d\u3067\u52fe\u914d\u304c\u307b\u3068\u3093\u30690\u306b\u306a\u3063\u3066\u3057\u307e\u3063\u3066":10,"\u5b66\u7fd2\u306e\u904e\u7a0b\u3067\u5076\u7136":10,"\u5b66\u7fd2\u524d\u306eloss":10,"\u5b66\u7fd2\u5f8c\u306e\u4e8c\u4e57\u8aa4\u5dee":10,"\u5b66\u7fd2\u5f8c\u306eloss":10,"\u5b66\u7fd2\u652f\u63f4\u696d":13,"\u5b66\u7fd2\u7387":[8,10,11],"\u5b66\u7fd2\u7387\u3092\u5358\u7d14\u306b\u5927\u304d\u304f\u3057\u3066\u3057\u307e\u3046\u3068":10,"\u5b66\u7fd2\u7387\u3092\u5909\u3048\u306a\u304c\u3089\u9069\u5f53\u306a\u5024\u3092\u63a2\u7d22\u3059\u308b\u3068\u3044\u3046\u306e\u306f":11,"\u5b66\u8853":13,"\u5b87":19,"\u5b87\u5927\u592a\u90ce\u3055\u3093":3,"\u5b87\u90fd\u5bae\u5927\u5b66\u30aa\u30ea\u30b8\u30ca\u30eb\u30ad\u30e3\u30e9\u30af\u30bf\u30fc":19,"\u5b87\u90fd\u5bae\u5e02":[3,5,7],"\u5b87\u90fd\u5bae\u5e02\u306e\u6708\u5225\u5e73\u5747\u6c17\u6e29":25,"\u5b89\u5168\u306a":7,"\u5b89\u5168\u306b\u30ed\u30b0\u30a4\u30f3\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u308b\u3082\u306e\u3067\u3042\u308b":24,"\u5b89\u5b9a\u3057\u305f\u5473\u3067\u751f\u7523\u304c\u3067\u304d\u308b":7,"\u5b89\u6613\u306a\u611f\u67d3\u8005\u6570\u4e88\u6e2c\u3067\u5371\u967a\u3092\u717d\u3063\u305f\u308a":7,"\u5b8c\u5168\u306b\u8868\u73fe\u3067\u304d\u308b\u9053\u7406\u306f\u306a\u3044":7,"\u5b97\u6559":13,"\u5b9a\u5f0f\u5316\u3068numpy\u3092\u7528\u3044\u305f\u5b9f\u88c5\u3092\u884c\u3046":17,"\u5b9a\u7fa9":[2,8],"\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u5909\u6570\u306e\u53c2\u7167":14,"\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u5909\u6570\u3092\u4f7f\u3046\u3068\u30a8\u30e9\u30fc\u304c\u8d77\u3053\u308a\u307e\u3059":14,"\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u5909\u6570\u3092\u7528\u3044\u305f\u30b3\u30fc\u30c9\u304c\u3042\u308c\u3070python\u3067\u306f":4,"\u5b9a\u7fa9\u3057\u305f\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u969b\u306b\u306f":4,"\u5b9a\u7fa9\u306b\u306a\u3089\u3063\u3066\u8a08\u7b97\u3059\u308b\u3068":8,"\u5b9a\u7fa9\u306b\u5373\u3057\u3066\u5fae\u5206\u306e\u5024\u3092\u8a08\u7b97\u3057\u3066\u3044\u307e\u3057\u305f\u304c":8,"\u5b9a\u7fa9\u57df":8,"\u5b9f\u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u6700\u9069\u89e3\u306f":7,"\u5b9f\u306f\u4e0a\u306e\u753b\u50cf\u3067\u6319\u3052\u305f\u4f8b\u306f":21,"\u5b9f\u306f\u4eca\u306e\u521d\u671f\u6761\u4ef6\u306e\u3082\u3068\u3067\u3053\u306e\u5fae\u5206\u65b9\u7a0b\u5f0f\u306f":16,"\u5b9f\u306fnumpy\u306b\u3042\u308b\u95a2\u6570":7,"\u5b9f\u306fsklearn\u3067\u306f\u4e0d\u504f\u5206\u6563\u304c\u4f7f\u308f\u308c\u3066\u3044\u308b\u305f\u3081":17,"\u5b9f\u6570\u306e\u6709\u9650\u6841\u5185\u306e\u8fd1\u4f3c":2,"\u5b9f\u6570\u3092\u6210\u5206\u306b\u3082\u3064\u30d9\u30af\u30c8\u30eb\u306e\u5185\u7a4d\u306b\u5bfe\u5fdc\u3057\u307e\u3059\u304c":22,"\u5b9f\u6570\u4fc2\u6570\u306e\u591a\u9805\u5f0f\u306e\u5834\u5408":15,"\u5b9f\u6570\u5024":[2,4],"\u5b9f\u73fe":7,"\u5b9f\u7528\u4e0a\u306f":12,"\u5b9f\u793e\u4f1a\u3067\u6271\u3046\u30c7\u30fc\u30bf\u306f":8,"\u5b9f\u884c":11,"\u5b9f\u884c\u3054\u3068\u306b\u8cb7\u3063\u305f\u308a\u8ca0\u3051\u305f\u308a\u7d50\u679c\u304c\u5909\u308f\u308a\u307e\u3059":3,"\u5b9f\u884c\u3055\u308c\u308b\u306e\u306f1\u56de\u3060\u3051\u3067\u3059":3,"\u5b9f\u884c\u3057\u305f\u3044\u5834\u5408\u306f":24,"\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u74b0\u5883\u306f\u3044\u304f\u3064\u304b\u3042\u308b\u304c":0,"\u5b9f\u884c\u3059\u308b\u3068\u30a8\u30e9\u30fc\u304c\u51fa\u308b":2,"\u5b9f\u884c\u3059\u308b\u65b9\u5f0f":0,"\u5b9f\u884c\u306a\u3069\u306e\u969b\u306b\u306f":24,"\u5b9f\u884c\u306b\u304a\u3044\u3066\u306f":14,"\u5b9f\u884c\u306b\u306f\u5f53\u7136python\u74b0\u5883\u304c\u5fc5\u8981\u306a\u306e\u3067":21,"\u5b9f\u884c\u306e\u305f\u3073\u306b\u3044\u3061\u3044\u3061\u30de\u30a6\u30b9\u306b\u624b\u3092\u3084\u308b\u306e\u306f\u9762\u5012\u306a\u306e\u3067":1,"\u5b9f\u884c\u306e\u4e2d\u65ad":1,"\u5b9f\u884c\u306e\u5ea6\u306b\u7b54\u3048\u304c\u5909\u308f\u308a\u307e\u3057\u305f":6,"\u5b9f\u884c\u306f\u3067\u304d\u3066\u3082\u4fdd\u5b58\u306f\u3067\u304d\u307e\u305b\u3093":1,"\u5b9f\u884c\u4e2d\u306e\u4f5c\u696d\u306e\u4e2d\u65ad":24,"\u5b9f\u884c\u5217\u306e\u5834\u5408\u306f":19,"\u5b9f\u884c\u524d":4,"\u5b9f\u884c\u5f8c":4,"\u5b9f\u884c\u6642\u306b":[23,24],"\u5b9f\u884c\u6642\u306b\u30b3\u30fc\u30c9\u306e\u6709\u52b9\u6027\u304c\u691c\u8a3c\u3055\u308c\u308b\u305f\u3081":14,"\u5b9f\u884c\u6642\u306e\u4f9d\u5b58\u95a2\u4fc2\u306e\u30a8\u30e9\u30fc\u306f\u5f53\u9762\u554f\u984c\u306a\u3044":13,"\u5b9f\u88c5\u306b\u3088\u3063\u3066\u7b26\u53f7\u304c\u7570\u306a\u308b\u306e\u306f":17,"\u5b9f\u88c5\u306e\u90fd\u5408\u4e0a":11,"\u5b9f\u969b":[4,12,18],"\u5b9f\u969b\u3053\u306e\u5834\u5408\u306b\u30d9\u30af\u30c8\u30eb\u306e\u5185\u7a4d\u3092\u66f8\u304d\u4e0b\u3059\u3068":12,"\u5b9f\u969b\u306b":6,"\u5b9f\u969b\u306b1\u91cd\u306e\u62ec\u5f27\u3067\u8a66\u3057\u3066\u307f\u3088\u3046":3,"\u5b9f\u969b\u306b\u3044\u308d\u3093\u306a\u30c7\u30fc\u30bf\u3092\u6271\u3046\u969b\u306b\u306f":3,"\u5b9f\u969b\u306b\u306f":[10,12],"\u5b9f\u969b\u306b\u306f\u305d\u3046\u4e0a\u624b\u304f\u306f\u884c\u304b\u306a\u3044\u3053\u3068\u3082\u591a\u3044":9,"\u5b9f\u969b\u306b\u306f\u30ab\u30f3\u30de\u533a\u5207\u308a\u3067\u306f\u306a\u304f\u30bf\u30d6\u533a\u5207\u308a\u3067\u3042\u3063\u305f\u308a":9,"\u5b9f\u969b\u306b\u306f\u5dee\u5206\u3092\u3068\u3063\u3066\u5fae\u5206\u3092\u8fd1\u4f3c\u3059\u308b\u3053\u3068\u306b\u306a\u308b\u305f\u3081\u63a2\u7d22\u56de\u6570\u306f\u5c11\u306a\u304f\u3068\u30822\u500d":11,"\u5b9f\u969b\u306b\u306fsvd\u3092\u8a08\u7b97\u3059\u308b\u30b3\u30b9\u30c8\u3082\u52d8\u5b9a\u306b\u5165\u308c\u306a\u3051\u308c\u3070\u30d5\u30a7\u30a2\u306a\u8a55\u4fa1\u306f\u96e3\u3057\u304f":19,"\u5b9f\u969b\u306b\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3046\u3082\u306e\u3092\u6307\u3057\u307e\u3059":14,"\u5b9f\u969b\u306b\u30b3\u30fc\u30c9\u7528\u306e\u30bb\u30eb\u306b\u3053\u308c\u3089\u306e\u8a9e\u53e5\u3092\u5165\u529b\u3059\u308b\u3068\u4e0b\u8a18\u306e\u3088\u3046\u306b\u9ed2\u3067\u306f\u306a\u304f\u5225\u306e\u8272\u3067\u8868\u793a\u3055\u308c\u307e\u3059":2,"\u5b9f\u969b\u306b\u30c7\u30fc\u30bf\u3092\u6271\u3046\u969b\u306f":9,"\u5b9f\u969b\u306b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u4e71\u6570\u3092\u4f7f\u3063\u3066\u4f55\u304b\u306e\u4f5c\u696d\u3092\u5b9f\u88c5\u3057\u305f\u3044\u3068\u304d\u306f":6,"\u5b9f\u969b\u306b\u753b\u50cf\u8a8d\u8b58\u30e2\u30c7\u30eb\u3092\u4f5c\u308a\u5b66\u7fd2\u3092\u884c\u3046\u969b\u306b\u306f\u4e00\u8003\u306e\u4f59\u5730\u306f\u3042\u308b\u3068\u8a00\u3048\u308b\u3060\u308d\u3046":19,"\u5b9f\u969b\u306b\u81ea\u8eab\u3067\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u305f\u308a\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304f\u5834\u5408\u306b\u306f":0,"\u5b9f\u969b\u306b\u89e3\u304f\u5834\u5408\u306b\u306f\u69d8\u3005\u306a\u5de5\u592b\u304c\u5fc5\u8981\u3068\u306a\u308b":15,"\u5b9f\u969b\u306bplot\u3057\u3066\u307f\u3066\u3082":10,"\u5b9f\u969b\u306bpython\u3067csv\u3084\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u66f8\u304d\u3057\u3088\u3046\u3068\u3059\u308b\u969b\u306b":21,"\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u3092\u5143\u306b":25,"\u5b9f\u969b\u306e\u30c7\u30fc\u30bf\u3092\u89e6\u3063\u3066\u3044\u308b\u3068":9,"\u5b9f\u969b\u306e\u5834\u5408":6,"\u5b9f\u969b\u306e\u591a\u304f\u306e\u554f\u984c\u3067\u306f\u305d\u3046\u306f\u4e0a\u624b\u304f\u884c\u304b\u305a":16,"\u5b9f\u969b\u4e0a\u306e\u4f8b\u3067\u3082\u5fae\u5206\u306e\u5024\u306f":8,"\u5b9f\u969b\u4e0a\u306e\u96e3\u3057\u3055\u304c\u9055\u3046\u3068\u306f\u3044\u3048":8,"\u5bb6\u4e8b\u30b5\u30fc\u30d3\u30b9\u696d":13,"\u5bc6\u5ea6":6,"\u5bd2\u3044\u5b63\u7bc0\u306b\u306f\u934b\u304c\u98df\u3079\u305f\u304f\u306a\u308b\u304b\u3089":7,"\u5bfe\u5fdc\u3059\u308b":7,"\u5bfe\u5fdc\u3059\u308b\u5024\u3092\u8db3\u3057\u4e0a\u3052\u308b\u3053\u3068\u3092\u610f\u5473\u3059\u308b":7,"\u5bfe\u5fdc\u3059\u308b\u76ee\u6a19\u5024\u3092":12,"\u5bfe\u5fdc\u3059\u308b\u884c\u756a\u53f7\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u53d6\u5f97\u3067\u304d\u305f\u308a\u3059\u308b":18,"\u5bfe\u6570":5,"\u5bfe\u6570\u5c24\u5ea6\u304c":12,"\u5bfe\u6570\u5c24\u5ea6\u306e\u52fe\u914d\u3092\u66f8\u304d\u4e0b\u3057\u3066":12,"\u5bfe\u6570\u5c24\u5ea6\u306f":12,"\u5bfe\u6570\u95a2\u6570":5,"\u5bfe\u6570\u95a2\u6570\u306e\u5b9a\u7fa9":8,"\u5bfe\u89d2\u30d6\u30ed\u30c3\u30af\u3068\u30bc\u30ed\u884c\u5217\u30d6\u30ed\u30c3\u30af\u3092\u542b\u3080\u3088\u3046\u306a\u884c\u5217\u3092\u6307\u3059":19,"\u5bfe\u89d2\u884c\u5217":19,"\u5bfe\u8a71\u30e2\u30fc\u30c9":24,"\u5bfe\u8a71\u30e2\u30fc\u30c9\u304b\u3089\u629c\u3051\u305f\u3051\u308c\u3070ctrl":23,"\u5bfe\u8a71\u30e2\u30fc\u30c9\u3060\u3068":24,"\u5bfe\u8a71\u30e2\u30fc\u30c9\u306e\u4e2d\u3067":23,"\u5bfe\u8c61":9,"\u5bfe\u8c61\u3068\u3059\u308b":10,"\u5bfe\u8c61\u3068\u3059\u308b\u30da\u30fc\u30b8\u306e\u5229\u7528\u898f\u7d04\u3092\u5fc5\u305a\u78ba\u8a8d\u3059\u308b":13,"\u5bfe\u8c61\u306e\u5404\u8981\u7d20\u306b\u5bfe\u3057\u3066\u4e00\u62ec\u3067\u64cd\u4f5c\u3092\u9069\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":9,"\u5bfe\u8c61\u3092\u30c9\u30e9\u30c3\u30b0\u3057\u3066":3,"\u5bfe\u8c61\u3092\u4efb\u610f\u3068\u3059\u308b\u547d\u4ee4\u306b\u76f8\u5f53\u3057\u307e\u3059":9,"\u5bfe\u8c61\u3092\u4efb\u610f\u306b":1,"\u5c02\u9580":13,"\u5c04\u5f71\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u601d\u3044\u51fa\u3059\u3068":17,"\u5c0f\u6570\u70b9\u4ee5\u4e0b\u306e\u6841\u6570\u3092\u7121\u9650\u6841\u8003\u616e\u3059\u308b\u306e\u306f":2,"\u5c0f\u8a08":13,"\u5c11\u3005\u6163\u308c\u304c\u5fc5\u8981\u3067\u3059":3,"\u5c11\u3057\u305a\u3064\u30d5\u30a7\u30fc\u30c9\u30a2\u30a6\u30c8\u3057\u3066\u304f\u3068\u3053\u308d\u3084":20,"\u5c11\u3057\u305a\u3064\u81ea\u4f5c\u95a2\u6570\u306b\u6163\u308c\u3066\u304d\u305f\u3089":7,"\u5c11\u3057\u4e8b\u60c5\u304c\u7570\u306a\u308a\u307e\u3059":3,"\u5c11\u3057\u5b9f\u884c\u306b\u6642\u9593\u304c\u304b\u304b\u308a\u307e\u3059":8,"\u5c11\u3057\u5f85\u3063\u3066\u304f\u3060\u3055\u3044":1,"\u5c11\u6570":19,"\u5c40\u6240\u7684\u306a\u5ce0\u306b\u6355\u307e\u308b\u3053\u3068\u3092\u907f\u3051\u308b\u3053\u3068\u3082\u3067\u304d\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093":6,"\u5c4a\u3044\u305f\u30e1\u30fc\u30eb\u304b\u3089\u672c\u767b\u9332\u3092\u884c\u3046":13,"\u5c55\u958b\u3057\u305f\u30d5\u30a9\u30eb\u30c0\u5185\u306e":21,"\u5c5e\u6027\u7b49\u304c\u308f\u304b\u3063\u3066\u3044\u308b\u5834\u5408\u306f":13,"\u5c5e\u6027\u7b49\u306e\u4e00\u89a7\u8868\u306a\u3069\u3092\u9069\u5b9c\u8868\u793a\u3057\u306a\u304c\u3089":13,"\u5c5e\u6027\u7b49\u3092\u9078\u3093\u3067\u30d7\u30ed\u30c3\u30c8\u3059\u308b":13,"\u5c65\u4fee\u898f\u7a0b\u306b\u5f93\u3044\u81ea\u52d5\u7684\u306b\u4e0d\u53ef\u3068\u306a\u308b\u305f\u3081":25,"\u5c71\u3042\u308a\u8c37\u3042\u308a":8,"\u5c71\u306e\u50be\u659c\u306e\u60c5\u5831":6,"\u5de1\u56de\u30bb\u30fc\u30eb\u30b9\u30de\u30f3\u554f\u984c\u3084\u30ca\u30c3\u30d7\u30b5\u30c3\u30af\u554f\u984c\u306a\u3069\u304c\u542b\u307e\u308c\u308b":8,"\u5de5\u592b\u3084\u9069\u5207\u306a\u51e6\u7406\u304c\u5fc5\u8981\u306b\u306a\u308b\u3053\u3068\u3082\u3042\u308b":2,"\u5de5\u5b66\u3067\u3042\u308b\u3068\u304b\u6570\u5024\u8a08\u7b97\u306a\u3069":19,"\u5de6\u306e":0,"\u5de6\u4e0a\u304b\u3089\u9806\u306b\u6574\u65701":22,"\u5de6\u4e0a\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u540d\u306e\u96a3\u304cgoogl":1,"\u5de6\u5074\u306blinux\u306e\u30da\u30f3\u30ae\u30f3\u30de\u30fc\u30af\u304c\u3042\u308b\u306e\u3067":24,"\u5dee\u5206\u306elog\u3092\u53d6\u3063\u3066\u307f\u308b\u3068":16,"\u5df7\u306b\u8ee2\u304c\u3063\u3066\u308bpython\u306e\u30b3\u30fc\u30c9\u3067\u306f":22,"\u5e02":9,"\u5e02\u5834\u306b\u51fa\u56de\u308b\u91cf\u304c\u591a\u3044\u304b\u3089":7,"\u5e02\u753a\u6751\u3054\u3068\u306b\u7279\u5b9a\u306e\u30c7\u30fc\u30bf\u3092\u30ab\u30e9\u30fc\u30de\u30c3\u30d7\u3068\u3057\u3066\u8868\u793a\u3059\u308b\u4e8b\u3092\u8003\u3048\u308b":25,"\u5e02\u753a\u6751\u306e\u5883\u754c\u7dda\u306e\u30c7\u30fc\u30bf\u304c\u5fc5\u8981\u306b\u306a\u308b":25,"\u5e2f\u30b0\u30e9\u30d5\u306a\u3069\u306e\u307b\u3046\u304c\u3088\u3063\u307d\u3069\u91cf\u306e\u6bd4\u8f03\u306b\u3082\u5411\u3044\u3066\u3044\u307e\u3059":5,"\u5e30\u56fd\u8005":13,"\u5e38\u306b\u30e6\u30fc\u30b6\u30fc\u3067\u3042\u308b\u6211\u3005\u304c\u6ce8\u610f\u3057\u3066\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3053\u3068":21,"\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u306e\u89e3\u3092\u6c42\u3081\u308b\u305f\u3081\u306b\u306f":16,"\u5e38\u6642\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306f\u53d6\u308b\u3088\u3046\u306b\u3057\u3088\u3046":21,"\u5e38\u7528":5,"\u5e452\u304c\u4f7f\u3044\u3084\u3059\u3051\u308c\u3070\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044":3,"\u5e45\u3068\u82b1\u5f01\u306e\u9577\u3055":17,"\u5e45\u306e\u30c7\u30fc\u30bf\u304c\u5165\u3063\u3066\u3044\u308b":17,"\u5e73\u5747":12,"\u5e73\u57470":[6,11],"\u5e73\u5747\u3068\u5206\u6563\u3082\u8a08\u7b97\u3057\u3066\u307f\u308b":6,"\u5e73\u5747\u3068\u6a19\u6e96\u504f\u5dee\u3092\u8a08\u7b97\u3057\u305f\u3068\u304d\u306b":6,"\u5e73\u5747\u3092":6,"\u5e73\u5747\u3092\u8a08\u7b97":7,"\u5e73\u5747\u5024\u306e\u5468\u308a\u306b\u5e83\u304c\u3063\u305f\u5206\u5e03\u306b\u306a\u3063\u3066\u3044\u308b\u3093\u3060\u306a":6,"\u5e73\u5747\u5024\u3092":17,"\u5e73\u5747\u6c17\u6e29":[5,7],"\u5e73\u5747\u6c17\u6e29\u3068\u30a2\u30a4\u30b9\u306e\u6d88\u8cbb\u306b\u306f\u76f8\u95a2\u304c\u3042\u308a\u305d\u3046":7,"\u5e73\u5766\u306b":17,"\u5e73\u621025\u5e74\uff11\u6708\u4ee5\u964d":13,"\u5e74":25,"\u5e74\u4ee3\u3054\u3068\u306b\u5225\u3005\u306b\u306a\u3063\u305f\u305f\u304f\u3055\u3093\u306e\u30b0\u30e9\u30d5\u3092":5,"\u5e74\u6708\u65e5":9,"\u5e7e\u3064\u304b\u306e":16,"\u5e7e\u3064\u304b\u306e\u30e9\u30a4\u30d6\u30e9\u30ea":5,"\u5e7e\u3064\u304b\u306erank\u306b\u3064\u3044\u3066\u5143\u306e\u30b0\u30ec\u30fc\u30b9\u30b1\u30fc\u30eb\u753b\u50cf\u3068\u306e\u5dee\u5206":19,"\u5e7e\u3064\u304b\u4f8b\u3092\u4f5c\u3063\u3066":4,"\u5e7e\u3064\u304bchat":21,"\u5e83\u7fa9\u306e":8,"\u5e8a\u306b\u7269\u304c\u6563\u4e71\u3057\u3066\u3044\u306a\u3044":9,"\u5e95\u304c10":5,"\u5ea6\u5408\u3044":7,"\u5ea7\u6a19":3,"\u5ea7\u6a19\u3060\u3068\u601d\u3063\u3066\u304f\u3060\u3055\u3044":4,"\u5ea7\u6a19\u306e\u7d50\u5408\u30ea\u30b9\u30c8":4,"\u5ea7\u6a19\u3092\u7d50\u5408\u3057\u305f\u30ea\u30b9\u30c8\u3068\u8ddd\u96e2\u3092\u8fd4\u3059":4,"\u5f0f":[7,17],"\u5f0f\u304b\u3089\u8a08\u7b97\u3055\u308c\u308b\u5024\u3092\u3064\u304b\u3063\u30663\u6b21\u5143\u306e\u56f3\u3092\u63cf\u304f\u3068":6,"\u5f15\u304d\u7b97":2,"\u5f15\u6570":[4,5,6,25],"\u5f15\u6570\u306a\u3057":5,"\u5f15\u6570\u306a\u3057\u3067":4,"\u5f15\u6570\u306b":13,"\u5f15\u6570\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u5024":4,"\u5f15\u6570\u306f\u901a\u5e38\u95a2\u6570\u306e\u4e2d\u3067\u884c\u3046\u64cd\u4f5c\u306b\u5fc5\u8981\u306a\u5909\u6570\u3092\u6307\u5b9a\u3057\u307e\u3059":4,"\u5f15\u6570\u3092\u53d6\u308a\u4f55\u3089\u304b\u306e\u64cd\u4f5c\u3092\u3059\u308b\u3068\u3044\u3046\u70b9\u3067\u306f\u540c\u3058\u3060\u304c":4,"\u5f15\u6570\u3092\u6307\u5b9a\u3059\u308b\u969b\u306b":4,"\u5f15\u6570namae\u3092\u4f7f\u3063\u3066":4,"\u5f15\u7528\u7b26\u306e\u3064\u3051\u5fd8\u308c":14,"\u5f15\u7528\u7b26\u5185\u3092\u6e96\u50991\u3067\u767a\u884c\u3057\u305fappid\u306b\u7f6e\u304d\u63db\u3048\u308b":13,"\u5f31\u3044":12,"\u5f37\u3044\u3068\u3044\u3046\u306e\u306f\u66d6\u6627\u306a\u8868\u73fe\u3067\u7d76\u5bfe\u7684\u306a\u7dda\u5f15\u304c\u3042\u308b\u8a33\u3067\u306f\u7121\u3044\u3053\u3068\u306b\u6ce8\u610f":7,"\u5f37\u3044\u8ca0\u306e\u76f8\u95a2\u304c\u898b\u3066\u53d6\u308c\u307e\u3059\u304c":7,"\u5f53\u7136":[3,14],"\u5f53\u7136\u3067\u3059\u304c":[5,10],"\u5f53\u7136\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3059":14,"\u5f53\u7136\u8ef8\u306e\u53cd\u8ee2":17,"\u5f62\u5f0f\u3067\u4f5c\u6210\u3055\u308c\u305f\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092":0,"\u5f62\u5f0f\u3067\u53d6\u5f97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":13,"\u5f62\u5f0f\u306e\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u7ba1\u7406\u3068\u5171\u6709\u306b\u306f":0,"\u5f62\u5f0f\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u7de8\u96c6\u3057\u305f\u308a\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":1,"\u5f62\u5f0f\u306e\u30d5\u30a1\u30a4\u30eb\u4e00\u89a7\u3092\u8868\u793a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u308b":9,"\u5f62\u5f0f\u306e\u6570\u5f0f\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u3066":1,"\u5f62\u5f0f\u3092\u9078\u629e\u3057":21,"\u5f62\u5f0f\u7684\u306a":19,"\u5f62\u72b6\u3092\u63c3\u3048\u308b\u6a5f\u80fd\u304c\u5099\u308f\u3063\u3066\u3044\u307e\u3059":22,"\u5f71":7,"\u5f79\u5272\u3068\u3057\u3066\u306f":5,"\u5f8c\u3005\u306e\u3053\u3068\u3082\u8003\u3048\u3066\u3053\u308c\u3092\u5c0e\u5165\u3057\u3066\u304a\u3053\u3046":23,"\u5f8c\u3067\u81ea\u5206\u3084\u4ed6\u4eba\u304c\u898b\u305f\u3068\u304d\u306b\u306a\u3093\u306e\u5909\u6570\u306e\u3064\u3082\u308a\u304b\u5206\u304b\u308b":3,"\u5f8c\u306b\u7d9a\u304f\u30d6\u30ed\u30c3\u30af\u3092\u5b9f\u884c\u3057\u307e\u3059":3,"\u5f8c\u307b\u3069\u5909\u6570\u306e":2,"\u5f8c\u308d\u304b\u3089x\u756a\u76ee\u306e\u8981\u7d20\u3068\u3044\u3063\u305f\u3088\u3046\u306b":3,"\u5f8c\u308d\u306e1\u304c\u5168\u89d2\u306b\u306a\u3063\u3066\u3044\u308b":14,"\u5f8c\u65e5\u4f5c\u696d\u3092\u518d\u958b\u3057\u305f\u969b":14,"\u5f8c\u8005\u306f1":8,"\u5f8c\u8005\u306f\u78ba\u7387\u5206\u5e03\u306a\u3069\u3092\u6271\u3046\u3068\u304d\u306b\u4fbf\u5229\u306a\u30aa\u30d7\u30b7\u30e7\u30f3\u3068\u306a\u308b\u304c":6,"\u5f8c\u8ff0":9,"\u5f8c\u8ff0\u306ewsl\u3092\u7d71\u5408\u7684\u306b\u6271\u3046\u3053\u3068\u304c\u3067\u304d\u308b\u74b0\u5883\u3068\u306a\u3063\u3066\u3044\u307e\u3059":23,"\u5f90\u3005\u306b":9,"\u5f93\u696d\u4e0a\u306e\u5730\u4f4d\u5225\u4e8b\u696d\u5f93\u4e8b\u8005\u6570":13,"\u5f97\u3089\u308c\u305f\u30c7\u30fc\u30bf\u3092\u5730\u56f3\u4e0a\u3067\u53ef\u8996\u5316\u3059\u308b\u305f\u3081\u306b":25,"\u5f97\u3089\u308c\u3066\u3044\u308b\u3068\u3057\u3088\u3046":17,"\u5f97\u70b9":17,"\u5f97\u70b9\u7387\u306f":5,"\u5fae\u5206\u304c0\u3068\u3044\u3046\u306e\u306f\u95a2\u6570\u306e\u5f62\u304c\u305d\u3053\u3067\u8c37\u3084\u5ce0\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u610f\u5473\u3059\u308b":8,"\u5fae\u5206\u304c\u767a\u6563\u3057\u3066\u3057\u307e\u3046\u3068\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u66f4\u65b0\u306b\u306f\u5b9f\u7528\u4e0a\u610f\u5473\u3092\u306a\u3055\u306a\u3044\u305f\u3081":8,"\u5fae\u5206\u306e\u5024\u306e\u3053\u3068\u3092\u6307\u3057\u3066":8,"\u5fae\u5206\u306e\u5024\u306e\u524d\u306b\u30de\u30a4\u30ca\u30b9\u304c\u3064\u3044\u3066\u3044\u308b\u7406\u7531\u3082\u7d0d\u5f97\u3067\u304d\u308b\u304b\u3068\u601d\u3044\u307e\u3059":8,"\u5fae\u5206\u306e\u5024\u3082plot\u3057\u3066\u307f\u308b\u3068":8,"\u5fae\u5206\u306e\u5b9a\u7fa9":16,"\u5fae\u5206\u306e\u5b9a\u7fa9\u306b\u7acb\u3061\u8fd4\u3063\u3066\u8003\u3048\u3066\u307f\u308b\u3068":8,"\u5fae\u5206\u65b9\u7a0b\u5f0f\u306e\u3046\u3061\u3068\u304f\u306b\u4e00\u5909\u6570\u95a2\u6570\u306e\u5834\u5408\u3067\u3042\u308b":16,"\u5fae\u5999\u306a\u9055\u3044\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f":6,"\u5fae\u5c0f\u5909\u5206":16,"\u5fc3\u914d\u3059\u308b\u5fc5\u8981\u304c\u306a\u3044":7,"\u5fc5\u305a":1,"\u5fc5\u305a\u4f55\u3089\u304b\u306e":2,"\u5fc5\u305a\u63d0\u51fa\u3059\u308b\u3053\u3068":25,"\u5fc5\u305a\u6b63\u306e\u5024\u3067\u3042\u308b\u3053\u3068":7,"\u5fc5\u305a\u7df4\u7fd2\u3057\u305f\u308a":25,"\u5fc5\u305a\u7df4\u7fd2\u5e33\u306e\u5171\u6709\u30ea\u30f3\u30af\u3092\u6dfb\u3048\u3066\u304f\u3060\u3055\u3044":25,"\u5fc5\u8981\u304c\u306a\u3051\u308c\u3070return\u6587\u3092\u660e\u793a\u7684\u306b\u66f8\u304b\u306a\u304f\u3066\u3082\u5927\u4e08\u592b\u3067\u3059":4,"\u5fc5\u8981\u3067\u3042\u308c\u3070\u6307\u793a\u306b\u5f93\u3046":21,"\u5fc5\u8981\u306a\u3068\u3053\u308d\u3060\u3051\u62bd\u51fa\u3059\u308b\u3068":13,"\u5fc5\u8981\u306a\u3068\u3053\u308d\u307e\u3067\u3092\u5225\u306e\u30ea\u30b9\u30c8\u306b\u683c\u7d0d\u3057\u3066\u3057\u307e\u304a\u3046":9,"\u5fc5\u8981\u306a\u3089\u30b3\u30fc\u30c9\u30bb\u30eb\u3092\u8ffd\u52a0\u3057\u3066\u7df4\u7fd2\u3057\u3088\u3046":25,"\u5fc5\u8981\u306a\u3089\u66f4\u65b0\u3057\u3088\u3046":24,"\u5fc5\u8981\u306a\u30c7\u30fc\u30bf\u3092\u53d6\u308a\u51fa\u3057\u3066print\u3057\u305f\u308a":25,"\u5fc5\u8981\u306a\u52fe\u914d\u306f4\u7a2e\u985e\u3067":10,"\u5fc5\u8981\u306a\u623b\u308a\u5024\u3092\u53d6\u5f97\u3059\u308b":4,"\u5fc5\u8981\u306a\u884c\u756a\u53f7\u304c\u5206\u304b\u3063\u3066\u3044\u308b\u5834\u5408\u306f":9,"\u5fc5\u8981\u306a\u8a08\u7b97\u3092\u306a\u308b\u3079\u304f\u30d6\u30e9\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u306b\u3057\u306a\u3044\u3067":17,"\u5fc5\u8981\u306a\u95a2\u6570\u306e\u6e96\u5099":20,"\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u4fee\u6b63\u3092\u884c\u3046\u5fc5\u8981\u304c\u3042\u308b":21,"\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u62e1\u5f35\u6a5f\u80fd\u3092\u5c0e\u5165\u3057\u305f\u308a":21,"\u5fdc\u7528\u3092\u610f\u8b58\u3057\u305f\u6559\u79d1\u66f8\u3092\u53c2\u7167\u3059\u308b\u306e\u304c\u826f\u3044":19,"\u6027\u5225":9,"\u6027\u5225\u3068\u5404\u79d1\u76ee\u306e\u5024\u3092\u540c\u3058\u968e\u5c64\u3067\u7d50\u5408":9,"\u6027\u8cea\u304c\u826f\u3044":6,"\u6027\u8cea\u306e\u826f\u3044":12,"\u60aa\u3044\u4f8b":2,"\u60aa\u610f\u306e\u3042\u308bdos\u653b\u6483\u3068\u307f\u306a\u3055\u308c\u3066\u30a2\u30af\u30bb\u30b9\u3092\u5236\u9650\u3055\u308c\u305f\u308a":13,"\u60c5\u5831\u304c\u53e4\u3044\u53ef\u80fd\u6027\u304c\u3042\u308b\u304c\u3054\u5bb9\u8d66\u9802\u304d\u305f\u3044":21,"\u60c5\u5831\u3060\u3051\u3092\u62bd\u51fa\u3057\u3066\u5c0f\u3055\u306a\u30d5\u30a1\u30a4\u30eb\u306b\u307e\u3068\u3081\u308b\u3068\u3044\u3063\u305f\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059":9,"\u60c5\u5831\u3082\u8c4a\u5bcc\u306a":21,"\u60c5\u5831\u91cf\u524a\u6e1b":17,"\u610f\u56f3\u3057\u305f\u3082\u306e\u3068\u9055\u3046\u6319\u52d5\u3092\u8d77\u3053\u3057\u305f\u539f\u56e0\u306f":3,"\u610f\u56f3\u3057\u305f\u30ea\u30b9\u30c8":5,"\u610f\u56f3\u3057\u305f\u5024\u306b\u306a\u3089\u306a\u3044":2,"\u610f\u56f3\u3057\u305f\u52d5\u304d\u3068\u9055\u3046\u306a":2,"\u610f\u56f3\u3057\u305f\u5909\u6570\u306e\u5024\u304c\u304d\u3061\u3093\u3068\u5f15\u304d\u7d99\u304c\u308c\u3066\u3044\u308b\u304b\u6ce8\u610f\u304c\u5fc5\u8981":2,"\u610f\u56f3\u3057\u305f\u6319\u52d5\u306b\u306a\u308b\u30d6\u30ed\u30c3\u30af\u3067\u4f7f\u3046\u3053\u3068":6,"\u610f\u56f3\u3057\u305f\u901a\u308a\u306b\u52d5\u304b\u306a\u3044":14,"\u610f\u56f3\u3057\u306a\u3044\u3059\u308a\u629c\u3051\u304c\u306a\u3044\u304b\u30c1\u30a7\u30c3\u30af\u3059\u308b\u306e\u304c\u826f\u3044\u3067\u3057\u3087\u3046":3,"\u610f\u56f3\u3057\u306a\u3044\u30ea\u30b9\u30c8\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093":5,"\u610f\u56f3\u3057\u306a\u3044\u53c2\u7167\u304c\u8d77\u304d\u3066\u4f59\u8a08\u306a\u30d0\u30b0\u306e\u6e29\u5e8a\u306b\u306a\u308b":4,"\u610f\u56f3\u3057\u306a\u3044\u5909\u6570\u306e\u578b\u306b\u5bfe\u3059\u308b\u6f14\u7b97":14,"\u610f\u56f3\u3057\u306a\u3044\u6f14\u7b97":14,"\u610f\u56f3\u3057\u306a\u3044\u7d75\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059":5,"\u611a\u76f4\u306b\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u3044\u308b\u4e8b\u3082\u3042\u308a\u5c11\u3005\u6ce5\u81ed\u3044\u90e8\u5206\u304c\u591a\u3044\u304c":9,"\u611a\u76f4\u306b\u4e0a\u3068\u540c\u69d8\u306b\u5404\u7a4d\u5206\u3092\u8a55\u4fa1\u3059\u308b\u3068":16,"\u611a\u76f4\u306b\u591a\u9805\u5f0f\u3068\u305d\u306e\u5fae\u5206\u3092\u5b9a\u7fa9":15,"\u611f\u67d3\u75c7\u306e\u30e2\u30c7\u30eb\u306a\u3069\u306b\u3082\u5f53\u3066\u306f\u307e\u308b":16,"\u611f\u67d3\u8005\u6570\u3068\u91cd\u50b7\u8005\u6570":5,"\u6163\u308c\u3066\u304f\u308b\u3068":[5,25],"\u6163\u308c\u3066\u304f\u308b\u3068\u3044\u308d\u3093\u306a\u56f3\u3092\u4f5c\u3063\u305f\u308a":5,"\u6163\u308c\u306a\u3044\u3046\u3061\u306f":[2,3,25],"\u6163\u308c\u306a\u3044\u3046\u3061\u306f0\u304b\u3089\u30ab\u30a6\u30f3\u30c8\u3059\u308b\u306e\u3092\u5909\u306b\u601d\u3046\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c":3,"\u6163\u308c\u306a\u3044\u3046\u3061\u306f\u30bf\u30d7\u30eb\u3084\u8f9e\u66f8\u3092\u4f7f\u308f\u305a\u30ea\u30b9\u30c8\u3060\u3051\u899a\u3048\u3066\u304a\u3051\u3070\u554f\u984c\u306a\u3044\u306e\u3067\u3059\u304c":3,"\u6163\u308c\u306a\u3044\u3046\u3061\u306f\u6df7\u540c\u3059\u308b\u304b\u3068\u601d\u3046\u306e\u3067":0,"\u6163\u308c\u306a\u3044\u3068\u30c7\u30fc\u30bf\u3092\u5439\u3063\u98db\u3070\u3059\u5371\u967a\u3042\u308a":24,"\u6163\u308c\u308b\u307e\u3067\u306f\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059":3,"\u6163\u308c\u89aa\u3057\u3093\u3060\u5f62\u306b\u5909\u63db\u3057\u305f\u3051\u308c\u3070":18,"\u6163\u4f8b\u7684\u306b":19,"\u6210\u5206\u304c":7,"\u6210\u5206\u304c1\u306e":17,"\u6210\u5206\u306f":7,"\u6210\u5206\u30920\u306b\u3059\u308b":19,"\u6210\u529f\u3059\u308b\u3068":5,"\u6211\u3005\u304c\u601d\u3046\u307b\u3069\u5bb9\u6613\u3067\u306f\u306a\u304f":7,"\u6211\u3005\u304c\u666e\u6bb5\u30b2\u30fc\u30e0\u306a\u3069\u3067\u6271\u3046\u4e71\u6570\u306f\u64ec\u4f3c\u4e71\u6570\u3068\u547c\u3070\u308c\u308b\u3079\u304d\u3082\u306e\u3067\u3059":6,"\u6211\u3005\u304c\u666e\u6bb5\u898b\u3066\u3044\u308b\u60c5\u5831\u306e\u4e2d\u306b\u306f":7,"\u6211\u3005\u304c\u73fe\u5b9f\u4e16\u754c\u3067\u89b3\u6e2c\u3059\u308b\u3053\u3068\u306e\u3067\u304d\u308b\u7a2e\u3005\u306e":7,"\u6211\u3005\u306e\u8eab\u306e\u56de\u308a\u306b\u3042\u308b\u591a\u304f\u306e\u554f\u984c\u306f\u6700\u9069\u5316\u554f\u984c\u306b\u5e30\u7740\u3055\u308c\u308b":8,"\u6211\u3005\u306f\u3053\u306e\u30c7\u30fc\u30bf\u304c100\u8d70\u306e\u4e16\u754c\u8a18\u9332\u306e\u30bf\u30a4\u30e0\u306e\u63a8\u79fb\u3067\u3042\u308b\u3053\u3068":7,"\u6211\u3005\u4eba\u9593\u304c\u30b0\u30e9\u30d5\u306b\u3057\u3066\u7406\u89e3\u3067\u304d\u308b\u306e\u306f\u305f\u304b\u3060\u304b\uff13\u6b21\u5143":7,"\u6211\u3005\u4eba\u9593\u304c\u4e71\u6570\u3092\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3066\u6271\u3046\u969b\u306b\u306f":6,"\u623b\u308a\u5024":4,"\u623b\u308a\u5024\u306f":4,"\u623b\u308a\u5024\u3092\u8fd4\u3059":4,"\u6240\u3005\u306bnan\u304c\u5165\u3063\u3066\u3044\u305f\u308a\u3057\u3066\u898b\u8f9b\u3044":18,"\u6240\u611f":25,"\u6240\u6301\u91d1\u304c80\u4e07\u4ee5\u4e0a\u306e\u3068\u304d\u3060\u3051":3,"\u624b\u3067\u7f6e\u304d\u63db\u3048\u305f\u308a\u3059\u308b\u307b\u3046\u304c\u9065\u304b\u306b\u901f\u3044\u3067\u3059\u304c\u3053\u3046\u3057\u305fpython\u306b\u3088\u308b\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u3092\u899a\u3048\u3066\u304a\u304f\u3068":9,"\u624b\u306e\u79fb\u52d5\u3092\u6700\u5c0f\u9650\u306b\u3059\u308b\u3053\u3068\u3067\u4f5c\u696d\u3092\u697d\u306b\u3057\u305f\u308a\u62bc\u3057\u9593\u9055\u3044\u3092\u9632\u3050\u3053\u3068\u3082\u3067\u304d\u308b":1,"\u624b\u30920":6,"\u624b\u4f5c\u696d\u304c\u975e\u73fe\u5b9f\u7684\u306a\u69d8\u3005\u306a\u72b6\u6cc1\u3067\u3082":9,"\u624b\u5143\u3067\u4f5c\u696d\u304c\u3057\u305f\u3044":24,"\u624b\u5143\u306b50\u4e07\u4ee5\u4e0a":3,"\u624b\u6301\u3061100\u4e07\u304b\u3089\u30b2\u30fc\u30e0\u3092\u958b\u59cb\u3057\u3066":3,"\u624b\u6301\u3061\u304c50\u4e07\u4ee5\u4e0a150\u672a\u6e80\u3042\u308b\u9650\u308a\u8ced\u3051\u3092\u7d9a\u3051\u308b\u30b3\u30fc\u30c9":3,"\u624b\u6cd5\u304c\u3046\u307e\u304f\u30c7\u30fc\u30bf\u3092\u8aac\u660e\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u691c\u8a3c\u3057\u305f\u308a\u3059\u308b":7,"\u624b\u98061":[23,24],"\u624b\u98062":[23,24],"\u624b\u98063":[23,24],"\u624b\u98064":[23,24],"\u624b\u98065":24,"\u624b\u98066":24,"\u6253\u3061\u304b\u3051\u306e\u4f5c\u696d\u3092\u6d88\u3057\u305f\u308a":23,"\u6253\u3061\u9593\u9055\u3044\u306b\u3082\u6ce8\u610f\u3067\u3059":14,"\u6253\u3061\u9593\u9055\u3048\u305f\u308a\u3057\u307e\u3059":24,"\u6253\u5207\u308a\u8aa4\u5dee\u304c\u4e92\u3044\u306b\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u3042\u3046\u3088\u3046\u306b":16,"\u6271\u3044\u305f\u3044\u30d5\u30a1\u30a4\u30eb\u306e":9,"\u6271\u3044\u3084\u3059\u3044":6,"\u6271\u3044\u3084\u3059\u3044\u30c7\u30fc\u30bf\u306b\u6574\u5f62\u3057\u3066\u3044\u304f":18,"\u6280\u304c\u6025\u6240\u306b\u5f53\u305f\u308b\u78ba\u7387\u3084\u8272\u9055\u3044\u306e\u30dd":6,"\u6280\u80fd\u6559\u6388\u696d":13,"\u6280\u8853\u30b5\u30fc\u30d3\u30b9\u696d":13,"\u62bd\u51fa\u3055\u308c\u305f\u6570\u306b\u91cd\u8907\u304c\u3042\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u304b\u3081\u3066\u307f\u3088\u3046":6,"\u62e1\u5f35":8,"\u62e1\u5f35\u5b50":9,"\u62e1\u5f35\u5b50\u306b\u5fdc\u3058\u3066":21,"\u62e1\u5f35\u6a5f\u80fd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u4fc3\u3055\u308c\u308b\u304b\u3082\u3057\u308c\u306a\u3044":21,"\u62e1\u5f35\u6a5f\u80fd\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b":21,"\u62ec\u5f27":[2,5,18],"\u62ec\u5f27\u306e\u9589\u3058\u5fd8\u308c":14,"\u62ec\u5f27\u3084\u5f15\u7528\u7b26\u306e\u9589\u3058\u5fd8\u308c":14,"\u6307\u5b9a\u3055\u308c\u305furl\u306b\u5bfe\u3057\u3066\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u4fe1\u3059\u308b\u3053\u3068\u3067\u5404api\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059":13,"\u6307\u5b9a\u3057\u305f\u30d1\u30b9\u306b\u3042\u308b\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u3044\u308b":9,"\u6307\u5b9a\u3057\u305f\u533a\u9593\u3067\u306e\u4e00\u69d8\u4e71\u6570\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":6,"\u6307\u5b9a\u3057\u305furl\u306b\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u308a":13,"\u6307\u5b9a\u3057\u306a\u304f\u3066\u3082\u304a\u76ee\u5f53\u3066\u306epython\u74b0\u5883\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u306e\u3082\u306e":24,"\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u81ea\u52d5\u3067\u56f3\u306e\u30b5\u30a4\u30ba\u304c\u6c7a\u307e\u308a\u307e\u3059":5,"\u6307\u6570\u95a2\u6570":[5,6,8],"\u6307\u793a":23,"\u6307\u793a\u304c\u6f20\u7136\u3068\u3057\u3066\u3044\u308b\u3068\u304a\u305d\u3089\u304f\u6709\u52b9\u306a\u56de\u7b54\u3092\u5f15\u304d\u51fa\u3059\u84cb\u7136\u6027\u306f\u4f4e\u304f\u306a\u3063\u3066\u3057\u307e\u3046":21,"\u6307\u793a\u306b\u5f93\u3046":21,"\u6319\u52d5\u304c\u602a\u3057\u3044\u306a":1,"\u6319\u52d5\u3092\u7406\u89e3\u3057\u3066\u307f\u307e\u3057\u3087\u3046":4,"\u6388\u696d\u3067\u306f\u3053\u308c\u3092":0,"\u6388\u696d\u3067\u306f\u3084\u3089\u305a":9,"\u6388\u696d\u3067\u306f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u5f37\u529b\u3055\u3092\u4f53\u611f\u3057\u3066\u3082\u3089\u3046\u305f\u3081\u306b":1,"\u6388\u696d\u3067\u306f\u547c\u3073\u65b9\u304c\u6df7\u5728\u3057\u3066\u3044\u308b\u304b\u3068\u601d\u3044\u307e\u3059":5,"\u6388\u696d\u3067\u306f\u5b9f\u969b\u306b\u6700\u9069\u5316\u3067\u5fc5\u8981\u306a\u6570\u5b66\u7684\u306a\u64cd\u4f5c\u3092\u3059\u308b\u30b3\u30fc\u30c9\u3092\u4f5c\u3063\u305f\u308a\u3059\u308b\u8a33\u3067\u306f\u306a\u3044\u304c":8,"\u6388\u696d\u3067\u306f\u5fc5\u305a\u3057\u3082\u5fc5\u8981\u3067\u306f\u306a\u3044":3,"\u6388\u696d\u3067\u306f\u975e\u63a8\u5968":25,"\u6388\u696d\u3067\u3082\u7d39\u4ecb\u3057\u307e\u3059":8,"\u6388\u696d\u3067\u516c\u958b\u3057\u3066\u3044\u308b\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u306e\u540d\u524d\u306f\u57fa\u672c\u7684\u306b\u534a\u89d2\u82f1\u6570\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u306e\u307f\u3067\u69cb\u6210\u3055\u308c\u3066\u3044\u308b":9,"\u6388\u696d\u3067\u6271\u3046\u5bfe\u8c61\u306e\u5834\u5408\u306f":2,"\u6388\u696d\u3067\u6271\u3046\u7a0b\u5ea6\u306e\u5185\u5bb9\u3067\u3042\u308c\u3070\u30b0\u30b0\u308c\u3070\u3060\u3044\u305f\u3044\u306e\u3053\u3068\u306f\u89e3\u6c7a\u3067\u304d\u308b\u3057":2,"\u6388\u696d\u3067\u6271\u3046\u7a0b\u5ea6\u306e\u5185\u5bb9\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306b\u95a2\u3059\u308b\u7591\u554f\u306f":3,"\u6388\u696d\u3067\u6271\u3063\u305f":25,"\u6388\u696d\u3067\u6307\u5b9a\u3057\u3066\u3044\u306a\u3044\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8a66\u3057\u3066\u307f\u3088\u3046":25,"\u6388\u696d\u3067\u8aac\u660e\u3059\u308b\u3068\u304a\u308a":10,"\u6388\u696d\u306b\u5148\u7acb\u3063\u3066google\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u65b0\u898f\u53d6\u5f97\u3092\u304a\u9858\u3044\u3057\u307e\u3059":0,"\u6388\u696d\u306e\u5192\u982d\u3067\u8aac\u660e\u3059\u308b\u3088\u3046\u306b":2,"\u6388\u696d\u306e\u53d7\u8b1b\u8005\u3067\u74b0\u5883\u69cb\u7bc9\u3092\u5e0c\u671b\u3055\u308c\u308b\u65b9\u306f":[23,24],"\u6388\u696d\u306e\u5f8c\u534a\u3067\u53d6\u308a\u7d44\u3080\u6700\u7d42\u8ab2\u984c\u306b\u3064\u3044\u3066\u306f":25,"\u6388\u696d\u306e\u8cc7\u6599\u306e\u3088\u3046\u306b":3,"\u6388\u696d\u3084\u8cc7\u6599\u3067\u308f\u304b\u3089\u306a\u304b\u3063\u305f\u3053\u3068":25,"\u6388\u696d\u53d7\u8b1b\u8005\u304b\u3089\u306e\u4e0d\u5177\u5408\u5831\u544a\u95a2\u3057\u3066\u306f\u6388\u696d\u3084cl\u7b49\u3067\u8fd4\u7b54\u3057\u307e\u3059":0,"\u6388\u696d\u5916\u306e\u554f\u3044\u5408\u308f\u305b\u306b\u3064\u3044\u3066\u306f":0,"\u6388\u696d\u8cc7\u6599\u306f":0,"\u639b\u3051\u7b97":2,"\u639b\u3051\u7b97\u8a18\u53f7\u306f":2,"\u639b\u3051\u91d1\u304c20\u4e07\u304b\u306450":3,"\u639b\u3051\u91d1\u3092\u30bb\u30c3\u30c8":3,"\u639b\u3051\u91d1\u3092\u30ec\u30a4\u30ba":3,"\u639b\u3051\u91d1\u3092\u30ec\u30a4\u30ba\u3059\u308b\u304b\u3069\u3046\u304b\u60a9\u3093\u3067":3,"\u63a2\u7d22\u56de\u6570":11,"\u63a2\u7d22\u56de\u6570\u306e\u4e0a\u9650":11,"\u63a2\u7d22\u70b9\u304c\u5897\u3048\u308b\u306b\u3064\u308c\u3066":11,"\u63a5\u7d9a\u3092\u8a31\u53ef\u3059\u308b\u516c\u958b\u9375\u304c\u8a18\u8f09\u3055\u308c\u3066\u3044\u305f\u308a\u3059\u308b":24,"\u63a5\u7d9a\u5148\u306e\u30db\u30b9\u30c8\u540d\u3084\u30dd\u30fc\u30c8\u756a\u53f7\u306a\u3069\u304c\u8a18\u8f09\u3055\u308c\u305f\u308a":24,"\u63a5\u89e6\u8005\u96fb\u8a71\u76f8\u8ac7\u30bb\u30f3\u30bf\u30fc\u76f8\u8ac7\u4ef6\u6570":13,"\u63a8\u5968":24,"\u63a8\u5968\u3055\u308c\u308b\u65b9\u6cd5\u3068\u3044\u3046\u306e\u306f\u5b58\u5728\u3057\u3066\u3044\u307e\u3059":10,"\u63a8\u8ad6\u3068\u3057\u3066\u306f\u771f\u3063\u5f53\u306a\u3082\u306e\u306b\u306a\u3063\u3066\u3044\u308b":21,"\u63cf\u753b":[16,17],"\u63cf\u753b\u3057\u305f\u3044\u3082\u306e":5,"\u63cf\u753b\u3057\u3066\u307f\u3088\u3046":13,"\u63d0\u6848\u3055\u308c\u305f\u30b3\u30fc\u30c9\u3092\u6ce8\u610f\u6df1\u304f\u78ba\u8a8d\u3057":21,"\u640d\u5931":8,"\u640d\u5931\u95a2\u6570":8,"\u640d\u5931\u95a2\u6570\u3068\u547c\u3076":8,"\u64cd\u4f5c":9,"\u64ec\u4f3c\u7684\u306b\u3067\u3082\u30e9\u30f3\u30c0\u30e0\u6027\u304c\u62c5\u4fdd\u3055\u308c\u3066\u3044\u308b\u3068\u3044\u3046\u306e\u306f\u4fbf\u5229\u3060\u304c":6,"\u64ec\u4f3c\u76f8\u95a2\u3067\u3042\u308b\u3068\u3072\u308d\u304f\u8a8d\u8b58\u3055\u308c\u3066\u3044\u306a\u3044\u60c5\u5831\u3082\u3042\u308b\u306f\u305a\u3060":7,"\u6539\u3081\u3066":9,"\u6539\u884c\u3055\u308c\u308b":9,"\u6539\u884c\u30b3\u30fc\u30c9\u3092\u660e\u793a\u7684\u306b\u542b\u3080\u6587\u5b57\u5217\u3092\u4e00\u884c\u305a\u3064\u8868\u793a\u3057\u305f\u305f\u3081":9,"\u6539\u884c\u6587\u5b57\u306e\u9664\u53bb":9,"\u653e\u7269\u7dda":8,"\u653f\u5e9c\u7d71\u8a08":9,"\u653f\u5e9c\u7d71\u8a08\u306e\u30dd\u30fc\u30bf\u30eb\u30b5\u30a4\u30c8\u3067\u3059":13,"\u653f\u5e9c\u7d71\u8a08\u306e\u7dcf\u5408\u7a93\u53e3":13,"\u653f\u5e9c\u7d71\u8a08\u30b3\u30fc\u30c9":13,"\u653f\u5e9c\u7d71\u8a08\u30b3\u30fc\u30c9\u305d\u306e\u3082\u306e\u306e\u4e00\u89a7\u3092dataframe\u5f62\u5f0f\u53d6\u5f97\u3059\u308b\u30b3\u30fc\u30c9\u306f\u305d\u306e\u3046\u3061\u66f8\u304f\u3064\u3082\u308a\u3067\u3059":13,"\u653f\u5e9c\u7d71\u8a08\u30b3\u30fc\u30c9\u306e\u4e00\u89a7\u306f\u3053\u3061\u3089":13,"\u653f\u6cbb":13,"\u653f\u7b56":7,"\u6559\u54e1\u304c\u4e0d\u9069\u5207\u3068\u5224\u65ad\u3057\u305f\u8ab2\u984c\u306b\u3064\u3044\u3066\u306f":25,"\u6559\u54e1\u304c\u7279\u6bb5\u306e\u624b\u7d9a\u304d\u3092\u7d4c\u305a\u3068\u3082":25,"\u6559\u54e1\u306b\u5bfe\u3059\u308b\u8cea\u554f\u306e\u898b\u843d\u3068\u3057\u3092\u9632\u3050\u305f\u3081":25,"\u6559\u54e1\u306b\u76f8\u8ac7\u3057\u306a\u304c\u3089":25,"\u6559\u54e1\u3084ta\u3068\u53d7\u8b1b\u8005\u9593\u3067drive\u3092\u898b\u306a\u304c\u3089\u76f8\u8ac7\u3059\u308b\u3053\u3068\u3082\u3042\u308a\u5f97\u308b":1,"\u6559\u5e2b\u3042\u308a\u5b66\u7fd2":10,"\u6559\u79d1\u66f8\u306a\u3069\u3067\u884c\u5217\u3084\u30d9\u30af\u30c8\u30eb\u306e\u8981\u7d20\u3092\u6307\u5b9a\u3059\u308b\u306e\u306b1":3,"\u6559\u79d1\u66f8\u3092\u524d\u304b\u3089\u8aad\u3093\u3060\u3060\u3051\u3067\u306f":19,"\u6559\u80b2\u652f\u63f4\u65bd\u8a2d":13,"\u6559\u990a":13,"\u6563\u5e03\u56f3":[5,6],"\u6563\u5e03\u56f3\u3068\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u3092\u307e\u3068\u3081\u3066\u63cf\u304f":6,"\u6563\u5e03\u56f3\u306b\u3059\u308b\u3068":[6,7],"\u6563\u5e03\u56f3\u3092\u63cf\u304f\u3068":5,"\u656c\u79f0\u3092":9,"\u6570":22,"\u6570\u30f6\u6708\u7d4c\u3064\u3068\u3068\u3053\u308d\u3069\u3053\u308d\u6587\u8a00\u304c\u5909\u66f4\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059":1,"\u6570\u4e07\u4eba\u306e\u30c7\u30fc\u30bf\u304c1\u884c\u305a\u3064\u8a18\u8f09\u3055\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u6761\u4ef6\u306b\u30d2\u30c3\u30c8\u3059\u308b\u4eba\u306e":9,"\u6570\u5024":4,"\u6570\u5024\u3067\u8868\u73fe\u3067\u304d\u308b\u3068\u4eee\u5b9a":8,"\u6570\u5024\u3068\u6570\u5024\u306e\u8db3\u3057\u7b97\u306f\u51fa\u6765\u307e\u3059\u304c":14,"\u6570\u5024\u3068\u6587\u5b57\u306e\u3088\u3046\u306b\u578b\u304c\u7570\u306a\u308b\u5909\u6570\u3092\u8db3\u3059\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093":14,"\u6570\u5024\u306f\u3082\u3061\u308d\u3093\u6587\u5b57\u5217\u3082":2,"\u6570\u5024\u3092\u8981\u7d20\u306b\u6301\u3064\u30ea\u30b9\u30c8\u3092\u4f7f\u3063\u3066\u6f14\u7b97\u3084\u30b0\u30e9\u30d5\u3092\u63cf\u753b\u3059\u308b\u3068\u304d\u306f":5,"\u6570\u5024\u3092\u8981\u7d20\u306b\u6301\u3064\u914d\u5217\u306e\u8a08\u7b97":5,"\u6570\u5024\u30ea\u30b9\u30c8\u306e\u8981\u7d20\u306ep\u4e57\u548c\u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570":4,"\u6570\u5024\u5fae\u5206\u306e\u7c21\u5358\u306a\u4f8b\u3092\u793a\u3057\u3066\u304a\u3053\u3046":8,"\u6570\u5024\u5fae\u5206\u306e\u7cbe\u5ea6\u306f":8,"\u6570\u5024\u7684\u306b\u3084\u308b\u306e\u304b\u89e3\u6790\u7684\u306b\u6c42\u3081\u308b\u306e\u304b":7,"\u6570\u5024\u7684\u306b\u4e0d\u5b89\u5b9a\u306b\u306a\u308a\u3084\u3059\u3044\u3053\u3068\u3082\u77e5\u3089\u308c\u3066\u3044\u308b":16,"\u6570\u5024\u7684\u306b\u52fe\u914d\u3092\u8a08\u7b97\u3059\u308b\u306b\u306f":11,"\u6570\u5024\u7684\u306b\u6c42\u3081\u308b\u3053\u3068\u306f\u3067\u304d\u308b":6,"\u6570\u5024\u8a08\u7b97":11,"\u6570\u5024\u8a08\u7b97\u304c\u5fc5\u8981\u3068\u306a\u308b":16,"\u6570\u5024\u8a08\u7b97\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u958b\u767a\u3084\u4f7f\u7528":24,"\u6570\u5024\u8a08\u7b97\u4e0a\u306e\u56f0\u96e3\u304c\u6709\u308a":15,"\u6570\u5024\u8aa4\u5dee\u3078\u306e\u914d\u616e\u3084\u6570\u5024\u8a08\u7b97\u306e":19,"\u6570\u5341\u306a\u3069":17,"\u6570\u5343\u3068\u304b\u6570\u4e07":9,"\u6570\u5b57\u3068\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u306e\u7a7a\u30ea\u30b9\u30c8\u3092\u4f5c\u308a":9,"\u6570\u5b57\u306e5\u306a\u3069\u3092\u4f7f\u3046\u306e\u3067\u306f\u306a\u304f":25,"\u6570\u5b57\u306e\u30ea\u30b9\u30c8\u3068\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u306e\u30ea\u30b9\u30c8\u3092\u5206\u3051\u305f\u3044\u3068\u3059\u308b":9,"\u6570\u5b57\u30ab\u30f3\u30de\u3067\u533a\u5207\u308b":5,"\u6570\u5b66":9,"\u6570\u5b66\u3067\u591a\u7528\u3055\u308c\u308b\u5186\u5468\u7387":5,"\u6570\u5b66\u306a\u3069\u3067\u5fc5\u8981\u306a\u6f14\u7b97\u306f\u4ee5\u964d\u3067\u6271\u3046":3,"\u6570\u5b66\u3084\u7269\u7406\u3092\u3084\u3063\u3066\u3044\u308b\u3068\u51fa\u3066\u304f\u308b\u8868\u73fe\u3067":7,"\u6570\u5b66\u7684\u90e8\u5206\u3084\u30b3\u30fc\u30c9\u306e\u8a73\u7d30\u3088\u308a\u3082":11,"\u6570\u5f0f":0,"\u6570ia":5,"\u6570iib":5,"\u6574\u5f62":[13,18],"\u6574\u6570":[2,3],"\u6574\u6570\u3068\u3057\u3066\u306e2":2,"\u6574\u6570\u5024":18,"\u6574\u6570\u5024\u3092\u4ee3\u5165\u3057\u305f":2,"\u6574\u6570\u578b\u306b\u5909\u63db\u3059\u308b":9,"\u6574\u7406\u3057\u305f\u3082\u306e\u3092\u30ea\u30b9\u30c8\u3068\u3057\u3066\u307e\u3068\u3081\u308b\u305f\u3081\u306e\u7a7a\u306e\u30ea\u30b9\u30c8":9,"\u6575\u5bfe\u7684\u751f\u6210\u30cd\u30c3\u30c8\u30ef\u30fc\u30af":20,"\u6587\u304c\u306a\u3044\u5834\u5408\u306f":4,"\u6587\u3067\u306f":3,"\u6587\u3067\u30a8\u30e9\u30fc\u304c\u751f\u3058\u3055\u305b\u308b\u5834\u5408":7,"\u6587\u3068":3,"\u6587\u306b\u3088\u308b\u6761\u4ef6\u5206\u5c90\u304c\u5206\u304b\u308b":25,"\u6587\u306e\u30b3\u30fc\u30c9\u306b\u306f":3,"\u6587\u306e\u30d6\u30ed\u30c3\u30af\u5185\u3067":25,"\u6587\u306e\u4e2d\u3067":3,"\u6587\u306e\u5225\u306e\u4f7f\u3044\u65b9\u3068\u3057\u3066":3,"\u6587\u306f":3,"\u6587\u3092\u4f7f\u3044\u307e\u3059":3,"\u6587\u3092\u4f7f\u3063\u3066\u3044\u308b\u306b\u3082\u95a2\u308f\u3089\u305a\u6b63\u3057\u304f\u30a4\u30f3\u30c7\u30f3\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3059":3,"\u6587\u3092\u4f7f\u3063\u3066\u547d\u984c\u306e\u771f\u507d\u3092\u5224\u5b9a\u3059\u308b\u3053\u3068\u3067":3,"\u6587\u3092\u4f7f\u3063\u3066\u6761\u4ef6\u5206\u5c90\u3092\u4f5c\u308b\u3068\u304d\u306f":3,"\u6587\u3092\u59cb\u3081\u69d8\u3005\u306a\u51e6\u7406\u306e\u969b\u306b\u4e00\u9023\u306e\u4f5c\u696d":3,"\u6587\u3092\u7528\u3044\u3066\u5168\u54e1\u306ebmi":25,"\u6587\u3092\u9014\u4e2d\u3067\u629c\u3051\u51fa\u3059\u306e\u306b\u4f7f\u3044\u307e\u3059":3,"\u6587\u3092\uff12\u3064\u3068\u3082\u3059\u308a\u629c\u3051\u3066\u3057\u307e\u3044":3,"\u6587\u5316\u56e3\u4f53":13,"\u6587\u5b57\u30b3\u30fc\u30c9\u306b\u3088\u308b\u30a8\u30e9\u30fc\u304c\u51fa\u308b\u304b\u3082\u3057\u308c\u306a\u3044":9,"\u6587\u5b57\u30b3\u30fc\u30c9\u306b\u95a2\u9023\u3057\u305f\u4f59\u8ac7":9,"\u6587\u5b57\u5217":[2,9,24],"\u6587\u5b57\u5217\u304b\u30b3\u30e1\u30f3\u30c8\u306b\u306e\u307f\u4f7f\u3046":2,"\u6587\u5b57\u5217\u3068\u5024\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u3088\u3046\u306a\u30ea\u30b9\u30c8\u3082\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u6587\u5b57\u5217\u3068\u6570\u5024\u306f\u5206\u3051\u3066\u4f7f\u3046\u306e\u304c\u30aa\u30b9\u30b9\u30e1":22,"\u6587\u5b57\u5217\u306b\u306a\u3063\u3066\u3057\u307e\u3063\u3066\u3044\u308b":22,"\u6587\u5b57\u5217\u306b\u306f":2,"\u6587\u5b57\u5217\u306b\u542b\u307e\u308c\u308b\u7a7a\u767d":9,"\u6587\u5b57\u5217\u306b\u5909\u63db\u3057\u3066\u3084\u3089\u306a\u304f\u3066\u306f\u306a\u3089\u306a\u3044":2,"\u6587\u5b57\u5217\u306b\u5bfe\u3057\u3066\u5f15\u304d\u7b97\u3084\u5272\u308a\u7b97\u3092\u884c\u304a\u3046\u3068\u3059\u308b\u3068\u30a8\u30e9\u30fc\u3092\u5410\u304f":2,"\u6587\u5b57\u5217\u306e\u30ea\u30b9\u30c8\u3082\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u6587\u5b57\u5217\u306e\u53f3\u5074\u306b\u7a7a\u767d\u3084\u6539\u884c\u30b3\u30fc\u30c9\u304c\u5165\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u660e\u78ba\u306a\u5834\u5408\u306f":9,"\u6587\u5b57\u5217\u306f":2,"\u6587\u5b57\u5217\u3092\u542b\u3080\u30ea\u30b9\u30c8\u3092ndarray\u306b\u5909\u63db\u3057\u305f\u3068\u304d\u306e\u6319\u52d5\u306b\u306f\u6ce8\u610f\u3057\u3088\u3046":22,"\u6587\u5b57\u5217\u3092\u8868\u793a\u3059\u308b":21,"\u6587\u5b57\u5217\u3092\u9664\u53bb\u3057\u3066\u6570\u5024":9,"\u6587\u5b57\u5217\u64cd\u4f5c":2,"\u6587\u5b57\u60c5\u5831\u5236\u4f5c\u696d":13,"\u6587\u5b57\u901a\u308a\u306e\u610f\u5473\u3067":8,"\u6587\u5b57\u901a\u308acopilot\u3068\u3057\u3066\u69d8\u3005\u306a\u30b3\u30fc\u30c9\u3084\u30b9\u30cb\u30da\u30c3\u30c8\u3092\u63d0\u6848\u3057\u3066\u304f\u308c\u308b":21,"\u6587\u6cd5\u7684\u306b\u3082ok":14,"\u659c\u9762\u306e\u50be\u304d\u306b\u6cbf\u3063\u3066\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u66f4\u65b0\u3057\u3066\u3044\u3051\u3070\u3044\u305a\u308c":8,"\u65b0\u3057\u3044\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u5b9f\u884c\u3057\u305f\u3068\u304d":14,"\u65b0\u3057\u3044\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u5b9f\u884c\u3067\u304d\u308b\u304b\u78ba\u8a8d\u3059\u308b\u306a\u3069\u306e\u5bfe\u7b56\u304c\u5fc5\u8981\u3067\u3059":14,"\u65b0\u3057\u3044\u30c7\u30fc\u30bf\u30d5\u30ec\u30fc\u30e0\u306e\u30b3\u30e9\u30e0\u3092\u66f8\u304d\u63db\u3048\u308b":18,"\u65b0\u3057\u3044\u30d5\u30a1\u30a4\u30eb":21,"\u65b0\u3057\u3044\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\u3055\u305b\u308c\u3070\u5b8c\u4e86\u3067\u3059":24,"\u65b0\u3057\u3044\u7aef\u672b\u3092\u8cfc\u5165\u3057\u305f\u3068\u304d\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u79fb\u884c\u306a\u3069\u306b\u3082\u4f7f\u308f\u308c\u308b":24,"\u65b0\u3057\u3044\u7aef\u672b\u3092\u8cfc\u5165\u3057\u305f\u969b\u306b\u306f":24,"\u65b0\u3057\u304f\u4e0a\u66f8\u304d\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u305f\u3044\u5834\u5408\u306f":9,"\u65b0\u578b\u30b3\u30ed\u30ca\u30a6\u30a4\u30eb\u30b9\u306e\u611f\u67d3\u62e1\u5927\u3092\u53d7\u3051\u30662020\u5e74\u306e1\u6708\u3054\u308d\u304b\u3089":13,"\u65b0\u578b\u30b3\u30ed\u30ca\u30a6\u30a4\u30eb\u30b9\u611f\u67d3\u75c7\u5bfe\u7b56\u30b5\u30a4\u30c8":13,"\u65b0\u578b\u30b3\u30ed\u30ca\u30b3\u30fc\u30eb\u30bb\u30f3\u30bf\u30fc\u76f8\u8ac7\u4ef6\u6570":13,"\u65b0\u898f":3,"\u65b9\u5411\u3078":10,"\u65b9\u6cd51":[9,21],"\u65b9\u6cd52":[9,21],"\u65b9\u6cd5\u306f\u5e7e\u3064\u304b\u3042\u308b\u304c":9,"\u65b9\u6cd5\u306f\u5e7e\u3064\u304b\u3042\u308b\u304c\u6700\u8fd1\u3060\u3068window":23,"\u65b9\u7a0b\u5f0f\u306e\u4fc2\u6570\u306e\u6709\u9650\u56de\u306e\u56db\u5247\u6f14\u7b97\u304a\u3088\u3073\u51aa\u6839\u64cd\u4f5c\u3067\u89e3\u3092\u8868\u793a\u3059\u308b\u3053\u3068":15,"\u65b9\u7a0b\u5f0f\u306e\u89e3\u3084\u7a4d\u5206\u5024\u306a\u3069\u304c\u4ee3\u6570\u7684":15,"\u65e2\u306b\u3042\u308b\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u8aad\u307f\u8fbc\u3080\u306e\u3067":9,"\u65e2\u306b\u30d5\u30a9\u30eb\u30c0\u3042\u308a\u307e\u3059\u3088":5,"\u65e2\u306b\u4f55\u56de\u304b\u3084\u3063\u305f\u3088\u3046\u306bgoogl":9,"\u65e2\u306b\u73fe\u308c\u305f":4,"\u65e2\u306b\u8ab0\u304b\u304c\u4f5c\u6210\u3057\u305f\u4f55\u3089\u304b\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u8aad\u307f\u8fbc\u3093\u3067\u64cd\u4f5c\u3059\u308b\u5834\u5408\u3082\u591a\u3044":9,"\u65e2\u306bgithub\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6301\u3063\u3066\u3044\u308b\u5834\u5408\u306f":21,"\u65e2\u77e5\u306e\u30c7\u30fc\u30bf\u306e\u8a18\u8ff0\u80fd\u529b":7,"\u65e5\u4ed8":[5,13],"\u65e5\u4ed8\u3068\u967d\u6027\u60a3\u8005\u6570\u3092\u30ea\u30b9\u30c8\u306b\u76f4\u3057\u3066":13,"\u65e5\u4ed8\u306b\u5bfe\u3057\u3066\u967d\u6027\u8005\u6570\u306e\u63a8\u79fb\u3092\u30d7\u30ed\u30c3\u30c8\u3057\u3066\u5909\u52d5\u306e\u4e88\u60f3\u3092\u7acb\u3066\u308b\u3053\u3068\u306f\u7c21\u5358\u3060\u304c":7,"\u65e5\u4ed8\u306f":5,"\u65e5\u5e38\u7684\u306b\u99b4\u67d3\u307f\u306e\u3042\u308b\u3082\u306e":18,"\u65e5\u5e73\u5747\u6c17\u6e29":9,"\u65e5\u672c":6,"\u65e5\u672c\u306e\u5404\u5e9c\u7701\u304c\u516c\u8868\u3059\u308b\u7d71\u8a08\u30c7\u30fc\u30bf\u3092\u4e00\u3064\u306b\u307e\u3068\u3081\u305f":13,"\u65e5\u672c\u5730\u56f3":5,"\u65e5\u672c\u8a9e\u3067\u66f8\u304b\u308c\u305f\u4ee5\u4e0b\u306e\u8a18\u4e8b\u3082\u304a\u3059\u3059\u3081\u3067\u3059":5,"\u65e5\u672c\u8a9e\u306e\u30b7\u30b9\u30c6\u30e0\u30d5\u30a9\u30f3\u30c8\u304c\u3072\u3069\u3044w\u306a\u3093\u3068\u304b\u3068\u3044\u3046os\u3088\u308a\u306f\u30d5\u30a9\u30f3\u30c8":23,"\u65e5\u672c\u8a9e\u30d5\u30a9\u30f3\u30c8\u3092\u4f7f\u3046\u305f\u3081\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092google\u306e\u30b5\u30fc\u30d0\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059":5,"\u65e5\u672c\u8a9e\u5316\u3092\u4fc3\u3055\u308c\u308b\u306e\u3067":21,"\u65e5\u672c\u8a9e\u5316\u3092\u63d0\u6848\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u65e5\u672c\u8a9e\u3067\u4f7f\u3044\u305f\u3051\u308c\u3070":21,"\u65e9\u901fe":13,"\u65ec":7,"\u660e\u5f8c\u65e5\u306e\u65b9\u5411\u306b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u66f4\u65b0\u3059\u308b\u305b\u3044\u3067\u76ee\u7684\u95a2\u6570\u304c\u767a\u6563\u3057\u3066\u3057\u307e\u3044\u307e\u3059":10,"\u660e\u793a\u7684\u306a\u9805\u76ee\u4ee5\u5916\u306e\u60c5\u5831\u3082\u62bd\u51fa\u3057\u305f\u3044":9,"\u660e\u793a\u7684\u306b\u5404\u30b5\u30f3\u30d7\u30eb\u306e":6,"\u660e\u793a\u7684\u306butf":9,"\u6614\u66f8\u3044\u305f\u304b\u306a\u308a\u8aad\u307f\u306b\u304f\u3044\u30b3\u30fc\u30c9\u306a\u306e\u3067\u3042\u307e\u308a\u771f\u5263\u306b\u8aad\u307e\u306a\u3044\u3067\u304f\u3060\u3055\u3044":9,"\u662f\u975e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u4f7f\u304a\u3046":1,"\u663c\u578b":9,"\u6642\u523b":9,"\u6642\u523bt\u3092\u9593\u9694h\u3067\u7d30\u304b\u304f\u5206\u5272\u3059\u308b":16,"\u6642\u671f\u306b\u3088\u3063\u3066\u9055\u3046":24,"\u6642\u9593\u304c\u3042\u3063\u305f\u3089":8,"\u6642\u9593\u306b\u4f59\u88d5\u304c\u3042\u308c\u3070":9,"\u6642\u9593\u3092\u8a08\u6e2c\u3059\u308b\u305f\u3081\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30dd\u30fc\u30c8":3,"\u6642\u9593\u8ef8":13,"\u666e\u6bb5\u6211\u3005\u304c\u4f7f\u3063\u3066\u3044\u308b\u30dd\u30a4\u30f3\u30bf\u3084\u30a6\u30a3\u30f3\u30c9\u30a6\u306a\u3069\u306f":23,"\u666e\u901a\u306b\u3084\u308b\u3068\u81a8\u5927\u306a\u6642\u9593\u304c\u304b\u304b\u308b\u69d8\u3005\u306a\u51e6\u7406\u3092\u9ad8\u901f\u5316":9,"\u6687\u304c\u3042\u308c\u3070\u3084\u3063\u3066\u307f\u3088\u3046":7,"\u66ab\u304f\u639b\u304b\u308b\u304b\u3082":24,"\u66f4\u306b\u8a00\u3046\u3068\u5b9f\u306f":7,"\u66f4\u65b0\u3055\u308c\u305f\u91cd\u307f":10,"\u66f4\u65b0\u306e\u305f\u3081\u306e\u524d\u6e96\u5099\u3068\u3057\u3066":24,"\u66f4\u65b0\u306e\u5e45\u3092\u5f90\u3005\u306b\u6e1b\u8870\u3055\u305b\u308b\u306a\u3069\u306e\u5de5\u592b\u304c\u5fc5\u8981\u306b\u306a\u308b":8,"\u66f4\u65b0\u3092\u884c\u304a\u3046":24,"\u66f4\u65b0\u524d\u306e\u5024\u3092":8,"\u66f4\u65b0\u5f0f\u3092\u8003\u3048\u308b":16,"\u66f4\u65b0\u5f8c\u306e\u5024\u3092":8,"\u66f8\u304b\u308c\u305f\u6761\u4ef6\u304c\u6210\u7acb\u3057\u305f\u5834\u5408":3,"\u66f8\u304d\u304b\u3051\u306e\u30b3\u30fc\u30c9\u304c\u3042\u3063\u305f\u308a\u51e6\u7406\u304c\u5b9f\u884c\u3055\u308c\u3066\u3044\u308b\u3068\u304d\u306f\u5148\u306bctrl":23,"\u66f8\u304d\u51fa\u3057":9,"\u66f8\u304d\u65b9\u305d\u306e\u3082\u306e\u306fpython\u306e\u6587\u6cd5\u7684\u306b\u8aa4\u308a\u3067\u306f\u306a\u3044\u3082\u306e\u306e":14,"\u66f8\u304f\u3068":5,"\u66f8\u985e":9,"\u6700\u3082":10,"\u6700\u3082\u30aa\u30b9\u30b9\u30e1\u3057\u3084\u3059\u3044\u30a8\u30c7\u30a3\u30bf\u3067\u3042\u308b":21,"\u6700\u3082\u30b7\u30f3\u30d7\u30eb\u306a\u52fe\u914d\u3092\u4f7f\u3063\u305f\u6700\u9069\u5316\u624b\u6cd5\u3067\u3059\u304c":10,"\u6700\u3082\u4ee3\u8868\u7684\u306a\u3082\u306e\u306f":8,"\u6700\u3082\u5358\u7d14":9,"\u6700\u3082\u5358\u7d14\u306a":10,"\u6700\u3082\u5358\u7d14\u306a\u6c42\u6839\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3067\u3042\u308b\u30cb\u30e5\u30fc\u30c8\u30f3\u6cd5\u306b\u3064\u3044\u3066\u306e\u8aac\u660e\u306b\u3064\u3044\u3066\u306f\u304a\u307e\u3051\u306e\u30cb\u30e5\u30fc\u30c8\u30f3\u6cd5\u306e\u7ae0\u306b\u8a18\u8f09\u304c\u3042\u308b":8,"\u6700\u3082\u57fa\u672c\u7684\u306a\u30aa\u30fc\u30c8\u30a8\u30f3\u30b3\u30fc\u30c0\u306f\u96a0\u308c\u5c64\u304c\u304f\u3073\u308c\u305f":17,"\u6700\u3082\u57fa\u672c\u7684\u306a\u8003\u3048\u65b9\u306f\u6642\u523b":16,"\u6700\u3082\u58f2\u308c\u3066\u3044\u308b\u6642\u671f":7,"\u6700\u3082\u6a19\u6e96\u7684\u306a\u3082\u306e\u3068\u3057\u3066":9,"\u6700\u3082\u7c21\u5358\u304b\u3064\u5b89\u5168\u306a\u65b9\u6cd5\u306e\uff11\u3064\u3068\u3055\u308c\u3066\u3044\u308b":23,"\u6700\u3082\u91cd\u8981\u306a\u6982\u5ff5\u306e\u4e00\u3064":3,"\u6700\u4e0a\u4f4d\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea":24,"\u6700\u521d\u304b\u3089\u3084\u308a\u306a\u304a\u3057\u3066\u307f\u308b\u3068":10,"\u6700\u521d\u306e0\u884c\u76ee\u306f\u3069\u3046\u3044\u3046\u30c7\u30fc\u30bf\u304c\u5165\u3063\u3066\u3044\u308b\u304b":9,"\u6700\u521d\u306e4\u884c\u307b\u3069\u306b\u6804\u990a\u7d20\u7b49\u306e\u60c5\u5831\u304c\u5165\u3063\u3066\u3044\u308b\u306e\u3060\u304c":18,"\u6700\u521d\u306e\u3082\u306e\u306b\u79fb\u52d5\u3057\u305f\u3044\u3068\u3057\u307e\u3059":24,"\u6700\u521d\u306e\u56f3\u306e\u3088\u3046\u306b\u591a\u5cf0\u7684":8,"\u6700\u521d\u306e\u624b\u6301\u3061\u91d1\u3092\u5b9a\u7fa9":3,"\u6700\u521d\u306e\u639b\u3051\u91d1\u3092\u4e00\u65e65\u4e07\u5186\u306b\u3059\u308b\u3053\u3068\u306b\u3057\u3066":3,"\u6700\u521d\u306f1\u306e\u65b9\u6cd5\u3067\u3082\u826f\u3044\u304c":21,"\u6700\u521d\u306f\u7279\u5b9a\u306e\u3082\u306e\u306b\u5408\u308f\u305b\u305f\u30b3\u30fc\u30c9\u3092\u4f5c\u308a":9,"\u6700\u5927":8,"\u6700\u592710\u56de\u307e\u3067\u7e70\u308a\u8fd4\u3059\u3053\u3068\u3092for\u6587\u3067\u8868\u73fe":3,"\u6700\u592710\u56de\u30b2\u30fc\u30e0\u3092\u3084\u308b\u304c\uff11\u56de\u3067\u3082\u8ca0\u3051\u308c\u3070\u5373\u5ea7\u306b\u8ced\u3051\u3092\u3084\u3081\u305f\u3044":3,"\u6700\u5927\u5024":6,"\u6700\u5927\u5024\u3068\u305d\u308c\u3092\u4e0e\u3048\u308b\u5909\u6570":8,"\u6700\u5927\u5024\u306b6\u3092\u63a1\u7528\u3057\u305f\u3053\u3068\u3067":6,"\u6700\u5927\u5024\u306e6\u3082\u542b\u307e\u308c\u3066\u3044\u308b\u3053\u3068\u306b\u6ce8\u610f":6,"\u6700\u5927\u5316\u3057\u305f\u3044\u95a2\u6570\u306e\u3053\u3068\u3092\u76ee\u7684\u95a2\u6570\u3068\u547c\u3076":8,"\u6700\u5927\u56fa\u6709\u5024":17,"\u6700\u5927\u56fa\u6709\u5024\u306b\u5bfe\u5fdc\u3059\u308b\u56fa\u6709\u30d9\u30af\u30c8\u30eb":17,"\u6700\u5c0f":19,"\u6700\u5c0f\u4e8c\u4e57\u6cd5":7,"\u6700\u5c0f\u4e8c\u4e57\u6cd5\u3068\u306f":7,"\u6700\u5c0f\u4e8c\u4e57\u6cd5\u3092\u3082\u3046\u5c11\u3057\u304d\u3061\u3093\u3068\u5b9a\u7fa9\u3057\u3088\u3046":7,"\u6700\u5c0f\u5024":[6,8],"\u6700\u5c0f\u5024\u306b1":6,"\u6700\u5c0f\u5024\u3092\u63a2\u7d22\u3059\u308b\u3053\u3068\u306f\u9023\u7d9a\u6700\u9069\u5316\u3068\u547c\u3070\u308c":8,"\u6700\u5c0f\u5316":8,"\u6700\u5c0f\u5316\u3059\u308b\u3088\u3046\u306b\u95a2\u6570":7,"\u6700\u5c0f\u5316\u3067\u306a\u304f\u6700\u5927\u5316\u3092\u8003\u3048\u308b\u5834\u5408\u306f\u30de\u30a4\u30ca\u30b9\u7b26\u53f7\u306f\u4e0d\u8981\u3067":8,"\u6700\u5c24\u63a8\u5b9a\u3092\u4e0e\u3048\u308b\u30d1\u30e9\u30e1\u30fc\u30bf":12,"\u6700\u5c24\u63a8\u5b9a\u3092\u8003\u3048\u308b\u3068\u3059\u308b\u3068":12,"\u6700\u5f8c\u306b":[7,9,25],"\u6700\u5f8c\u306b\u8868\u793a\u3055\u308c\u308b":4,"\u6700\u5f8c\u306bsquar":7,"\u6700\u5f8c\u306e\u884c\u306b\u3042\u308b":3,"\u6700\u5f8c\u306e\u8981\u7d20\u307e\u3067\u542b\u307e\u308c\u307e\u3059":3,"\u6700\u5f8c\u307e\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u5b9f\u884c\u3055\u308c\u308b\u304c":14,"\u6700\u5f8c\u307e\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u6700\u5f8c\u307e\u3067\u5165\u529b\u304c\u88dc\u5b8c\u3055\u308c\u307e\u3059":24,"\u6700\u60aa\u306e\u5834\u5408":13,"\u6700\u60aa\u306e\u5834\u5408\u3059\u3079\u3066\u306e\u30c7\u30fc\u30bf\u3092\u5931\u3044\u307e\u3059\u306e\u3067":24,"\u6700\u7d42\u66f4\u65b0\u65e5\u6642":13,"\u6700\u7d42\u7684\u306a\u6240\u6301\u91d1\u306f":3,"\u6700\u7d42\u7de8\u96c6":1,"\u6700\u7d42\u8ab2\u984c\u3067\u53d6\u308a\u7d44\u3080\u306e\u3082\u826f\u3044":13,"\u6700\u8fd1\u3060\u3068\u65e5\u672c\u8a9e\u3067\u66f8\u304b\u308c\u305f\u60c5\u5831\u306b\u6c17\u8efd\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u306e\u306f\u826f\u3044\u3053\u3068\u3060\u304c":5,"\u6700\u8fd1\u3067\u306f\u30e1\u30e2\u5e33\u3067\u3082utf":9,"\u6700\u8fd1\u306e\u50be\u5411\u3068\u3057\u3066":10,"\u6700\u8fd1\u306e\u591a\u304f\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u306f\u5168\u89d2\u6587\u5b57\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b":2,"\u6700\u8fd1\u30cf\u30de\u3063\u3066\u3044\u308b\u3053\u3068":25,"\u6700\u9069\u306a\u30e2\u30c7\u30eb":8,"\u6700\u9069\u5316":[7,10],"\u6700\u9069\u5316\u3055\u308c\u305f\u4fc2\u6570\u3068":7,"\u6700\u9069\u5316\u3057\u305f\u3044\u91cf":[8,10],"\u6700\u9069\u5316\u306e\u57fa\u790e\u306b\u3064\u3044\u3066\u5b66\u3093\u3067\u3044\u304f\u3053\u3068\u306b\u3057\u3088\u3046":8,"\u6700\u9069\u5316\u306e\u624b\u6cd5\u3092\u5fdc\u7528\u3057\u305f\u308a":8,"\u6700\u9069\u5316\u306e\u624b\u6cd5\u81ea\u4f53\u306b":8,"\u6700\u9069\u5316\u3084\u78ba\u7387\u5206\u5e03\u304b\u3089\u306e\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u304c\u5fc5\u8981\u306a\u72b6\u6cc1\u4e0b\u3067\u3088\u304f\u7528\u3044\u3089\u308c":6,"\u6700\u9069\u5316\u3092\u8a73\u3057\u304f\u3084\u308d\u3046\u3068\u3059\u308b\u3068\u305d\u308c\u3060\u3051\u3067\u534a\u671f\u306e\u6388\u696d\u3058\u3083\u8db3\u308a\u306a\u3044\u304f\u3089\u3044\u306a\u306e\u3067":8,"\u6700\u9069\u5316\u554f\u984c":8,"\u6700\u9069\u5316\u554f\u984c\u3068\u306f":8,"\u6700\u9069\u5316\u554f\u984c\u306e\u30a4\u30e1\u30fc\u30b8\u3092\u63b4\u307f":8,"\u6700\u9069\u5316\u554f\u984c\u3092\u8003\u3048\u3066\u3044\u308b\u3053\u3068\u306b\u76f8\u5f53\u3059\u308b":8,"\u6700\u9069\u5316\u554f\u984c\u3092\u89e3\u304f\u5834\u5408\u306b\u6700\u5c0f\u5316":8,"\u6700\u9069\u5316\u624b\u6cd5\u3084\u5b66\u7fd2\u7387\u306e\u8a2d\u5b9a\u304c\u9069\u5207\u3067\u306a\u3044":10,"\u6700\u9069\u5316\u624b\u6cd5\u3084\u624b\u6cd5\u5185\u306e\u30d1\u30e9\u30e1\u30fc\u30bf":10,"\u6700\u9069\u89e3":11,"\u6708":[5,9,13],"\u6708\u3054\u3068":13,"\u6708\u6b21":13,"\u6709\u9650":6,"\u6709\u9650\u306e\u5024\u3092\u3082\u3064\u5834\u5408":8,"\u6709\u9650\u306e\u5024\u3092\u6301\u3064\u5834\u5408":8,"\u6709\u9650\u306e\u5c0f\u3055\u306a\u5024\u3067":8,"\u6709\u9650\u306e\u7cbe\u5ea6\u3092\u63a1\u7528\u3057\u3066\u3044\u308b\u90fd\u5408\u4e0a":2,"\u6709\u9650\u6b21\u5143\u306e\u591a\u9805\u5f0f\u3084\u6307\u6570\u95a2\u6570":7,"\u671b\u3080\u3082\u306e\u3092\u6301\u3063\u3066\u304f\u308b\u306e\u306f\u9762\u5012\u3067\u3059":3,"\u671b\u3080\u3088\u3046\u306b\u30b2\u30fc\u30e0\u3092\u30b9\u30a4\u30b9\u30a4\u653b\u7565\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":6,"\u672a\u5b9a\u4e57\u6570":17,"\u672a\u77e5\u306e\u70b9":12,"\u672a\u77e5\u306e\u70b9\u3067\u306e\u5024\u306e\u4e88\u6e2c\u7cbe\u5ea6":7,"\u672c\u30b3\u30f3\u30c6\u30f3\u30c4\u306f\u5b87\u90fd\u5bae\u5927\u5b66\u306e\u57fa\u76e4\u79d1\u76ee":0,"\u672c\u30ce\u30fc\u30c8\u3067\u8aac\u660e\u3059\u308b\u3088\u3046\u306a\u753b\u50cf\u51e6\u7406\u3084\u60c5\u5831\u524a\u6e1b\u306e\u65b9\u6cd5\u3068\u3057\u3066\u7528\u3044\u3089\u308c\u308b\u3060\u3051\u3067\u306a\u304f":19,"\u672c\u5f53\u306b\u81ea\u8eab\u304c\u610f\u56f3\u3057\u305f\u8a08\u7b97\u3092\u3084\u3063\u3066\u3044\u308b\u306e\u304b":17,"\u672c\u5f53\u306f\u77e5\u308a\u5f97\u306a\u3044":7,"\u672c\u6388\u696d\u3067\u306f\u74b0\u5883\u69cb\u7bc9\u3084\u305d\u308c\u306b\u304b\u304b\u308b\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u3092\u6700\u5c0f\u5316\u3059\u308b\u305f\u3081\u306b":0,"\u672c\u6388\u696d\u8cc7\u6599\u306e":21,"\u672c\u6765\u30c7\u30fc\u30bf\u3092\u4e0a\u306e\u69d8\u306b\u8907\u6570\u7528\u9014\u306b\u5206\u3051\u306a\u304c\u3089":10,"\u672c\u7ae0\u3067\u306f":9,"\u672c\u7ae0\u306e\u8a18\u8ff0\u306f2023\u5e747\u6708\u6642\u70b9\u306e\u3082\u306e":21,"\u672c\u7ae0\u306e\u8a18\u8ff0\u3092\u305d\u306e\u307e\u307e\u9069\u7528\u3067\u304d\u306a\u3044\u5834\u5408\u304c\u3042\u308b\u3053\u3068":21,"\u672c\u8b1b\u7fa9\u3067\u306f\u8cc7\u6599":0,"\u672c\u8b1b\u7fa9\u8cc7\u6599\u306b\u95a2\u3059\u308b\u4e0d\u5177\u5408":0,"\u672c\u8cc7\u6599\u306f":0,"\u6761\u4ef61":3,"\u6761\u4ef61\u306f\u6e80\u305f\u3055\u308c\u306a\u3044\u304c\u6761\u4ef62\u304c\u6e80\u305f\u3055\u308c\u308c\u3070b\u3092":3,"\u6761\u4ef6\u3068\u3057\u3066\u306f":25,"\u6761\u4ef6\u306bhit\u3057\u305f\u90fd\u5e02\u306e\u54c1\u76ee\u3068\u6c17\u5019\u30c7\u30fc\u30bf\u3092\u9010\u6b21print\u3059\u308b\u304b\u3069\u3046\u304b":9,"\u6761\u4ef6\u3092\u6e80\u305f\u3059\u3068\u304d\u306fa":3,"\u6761\u4ef6\u5206\u5c90":2,"\u6761\u4ef6\u5206\u5c90\u306b\u30e2\u30ec\u304c\u306a\u3044\u304b":3,"\u6761\u4ef6\u5206\u5c90\u3092\u8868\u73fe\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u6761\u4ef6\uff12":3,"\u6771\u4eac\u90fd":13,"\u67d0\u6f2b\u753b\u306e\u5730\u4e0b\u30c1\u30f3\u30c1\u30ed\u7de8\u306e\u3088\u3046\u306a\u30a4\u30ab\u30b5\u30de\u30b5\u30a4\u30b3\u30ed\u3092\u4f7f\u7528\u3059\u308b\u3068\u30b0\u30c3\u3068\u78ba\u7387\u306f\u3042\u304c\u308a\u307e\u3059":3,"\u6803\u6728\u770c":[3,5],"\u6803\u6728\u770c\u306e\u30c7\u30fc\u30bf\u3092\u53ef\u8996\u5316":25,"\u6839":[8,15],"\u6839\u3092\u6c42\u3081\u305f\u3044\u3060\u3051\u306a\u3089":8,"\u6848\u5185\u306b\u3057\u305f\u304c\u3063\u3066\u5b9f\u884c\u3059\u308b":24,"\u68c4\u5374\u3059\u308b\u5834\u5408\u306b\u306f":21,"\u68d2\u30b0\u30e9\u30d5\u304c\u63cf\u3051\u305f\u3067\u3057\u3087\u3046\u304b":5,"\u68d2\u30b0\u30e9\u30d5\u3092\u63cf\u304f\u95a2\u6570":5,"\u691c\u67fb\u5b9f\u65bd\u65e5\u5225\u72b6\u6cc1":13,"\u691c\u7d22":24,"\u691c\u7d22\u30d0\u30fc\u304b\u3089\u518d\u5ea6python\u3068\u691c\u7d22\u3057\u3088\u3046":24,"\u691c\u7d22\u30d0\u30fc\u3067ubuntu\u3068\u691c\u7d22\u3059\u308c\u3070":24,"\u691c\u8a3c\u30c7\u30fc\u30bf":10,"\u696d\u52d9\u306e\u30c7\u30b8\u30bf\u30eb\u5316":9,"\u6975\u5024\u3092\u4e0e\u3048\u308b":8,"\u697d\u3061\u3093\u306b\u4f5c\u696d\u3092\u7d42\u308f\u3089\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u308b":9,"\u6982\u306d\u3082\u3063\u3068\u3082\u3089\u3057\u3044\u30b3\u30fc\u30c9\u3092\u751f\u6210\u3057\u3066\u304f\u308c\u3066\u3044\u308b":21,"\u6982\u8981\u3092\u7406\u89e3\u3057\u305f\u308a\u5fa9\u7fd2\u3059\u308b\u969b\u306b\u306f\u3053\u3061\u3089\u306e\u30d6\u30c3\u30af\u3092\u95b2\u89a7\u3057\u3066\u304f\u3060\u3055\u3044":0,"\u69cb\u6587\u30a8\u30e9\u30fc":2,"\u69cb\u6587\u30a8\u30e9\u30fc\u3068\u306f":14,"\u69cb\u6587\u30a8\u30e9\u30fc\u306b\u3082\u30e9\u30f3\u30bf\u30a4\u30e0\u30a8\u30e9\u30fc\u306b\u3082\u306a\u308a\u307e\u305b\u3093":14,"\u69cb\u6587\u30a8\u30e9\u30fc\u306f\u30e9\u30f3\u30bf\u30a4\u30e0\u30a8\u30e9\u30fc\u3068\u3082\u8a00\u3048\u307e\u3059\u304c":14,"\u69cb\u6587\u898f\u5247\u306b\u9055\u53cd\u3057\u3066\u3044\u308b\u3053\u3068\u306b\u3088\u308b\u30a8\u30e9\u30fc\u3067\u3059":14,"\u69cb\u9020":9,"\u69d8":9,"\u69d8\u3005\u306a\u3068\u3053\u308d\u3067\u7528\u3044\u3089\u308c\u3066\u3044\u308b":16,"\u69d8\u3005\u306a\u3082\u306e\u3092\u7c21\u5358\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059":23,"\u69d8\u3005\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u305f\u308a\u95b2\u89a7\u3057\u305f\u308a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u3067\u8a66\u3057\u3066\u307f\u3088\u3046":21,"\u69d8\u3005\u306a\u8fd4\u308a\u5024\u3092\u6301\u3064\u95a2\u6570\u3092\u5b9a\u7fa9\u3067\u304d\u307e\u3059":4,"\u69d8\u3005\u306a\u95a2\u6570\u306e\u5f62\u3092\u8003\u3048\u308b\u5fc5\u8981\u304c\u3042\u308b":8,"\u69d8\u3005\u306a\u9762\u3067\u6c7a\u5b9a\u7684\u306a\u5dee\u304c\u751f\u3058\u308b":17,"\u6a19\u6e96\u3067\u306f":21,"\u6a19\u6e96\u3067\u5165\u3063\u3066\u3044\u308b\u306e\u3067windows\u30dc\u30bf\u30f3\u3067\u958b\u304f\u30e1\u30cb\u30e5\u30fc\u304b\u3089":23,"\u6a19\u6e96\u504f\u5dee":6,"\u6a19\u6e96\u504f\u5dee1":6,"\u6a19\u6e96\u504f\u5dee\u03c3":7,"\u6a19\u6e96\u504f\u5dee\u304c1":6,"\u6a19\u6e96\u5316\u3055\u308c\u305f":10,"\u6a19\u6e96\u5316\u3055\u308c\u305f\u8aa4\u5dee":10,"\u6a2a":5,"\u6a2am\u500b\u306e\u9818\u57df\u3092\u7528\u610f\u3057\u305f\u5834\u5408\u306e":6,"\u6a5f\u68b0\u306b\u3068\u3063\u3066\u3082\u5927\u5909\u306a\u306e\u3067":2,"\u6a5f\u68b0\u306e\u89e3\u91c8\u306bambigu":9,"\u6a5f\u68b0\u5224\u8aad\u3092\u5168\u304f\u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u30c7\u30fc\u30bf\u306e\u66f8\u304d\u65b9":9,"\u6a5f\u68b0\u5b66\u7fd2":[5,22],"\u6a5f\u68b0\u5b66\u7fd2\u3067\u73fe\u308c\u308b\u884c\u5217\u6f14\u7b97\u306f\u884c\u5217\u306e\u30b5\u30a4\u30ba":19,"\u6a5f\u68b0\u5b66\u7fd2\u306a\u3069\u306e\u5206\u6790\u3067\u306f":10,"\u6a5f\u68b0\u5b66\u7fd2\u306a\u3069\u306e\u5206\u91ce\u3067":8,"\u6a5f\u68b0\u5b66\u7fd2\u306a\u3069\u69d8\u3005\u306a\u5206\u91ce\u3067\u6d3b\u8e8d\u3057\u3066\u3044\u307e\u3059":6,"\u6a5f\u68b0\u5b66\u7fd2\u306e\u624b\u6cd5\u3092\u4f7f\u3046\u3053\u3068\u3082\u3042\u308a\u307e\u3059":8,"\u6a5f\u68b0\u5b66\u7fd2\u306e\u6587\u8108\u3067\u306f":8,"\u6a5f\u68b0\u7684":23,"\u6a5f\u7a2e\u4f9d\u5b58\u6587\u5b57\u306a\u3069\u306f\u3082\u3061\u308d\u3093":9,"\u6a5f\u80fd\u3092\u3044\u304f\u3064\u304b\u7d39\u4ecb\u3059\u308b":6,"\u6b21\u306b":[1,2,3,5,7,9,12,13,17,18,21],"\u6b21\u306b4\u6b21\u516c\u5f0f\u306e\u4ee3\u8868\u4f8b\u3067\u3042\u308b4\u6b21\u306e\u30eb\u30f3\u30b2\u30af\u30c3\u30bf\u6cd5\u3092\u7d39\u4ecb\u3057\u3088\u3046":16,"\u6b21\u306b\u305d\u308c\u3092\u4fdd\u5b58\u3057\u3066":5,"\u6b21\u306b\u30c7\u30fc\u30bf\u96c6\u5408\u3092\u3042\u308b":17,"\u6b21\u306b\u30cb\u30e5\u30fc\u30c8\u30f3\u6cd5\u306e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306b\u5bfe\u5fdc\u3059\u308b\u95a2\u6570\u3092\u4f5c\u3063\u3066\u89e3\u3092\u6c42\u3081\u3066\u307f\u3088\u3046":15,"\u6b21\u306b\u4e2d\u8eab\u304c\u540c\u3058":3,"\u6b21\u306bnumpi":22,"\u6b21\u306e\u3088\u3046\u306b\u5e74\u9f62\u3068\u51fa\u8eab\u770c\u306e\u30ea\u30b9\u30c8\u3092\u5024\u306b\u3082\u3064\u8f9e\u66f8\u306b\u3057\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068":4,"\u6b21\u306e\u591a\u9805\u5f0f\u3067\u30c7\u30fc\u30bf":7,"\u6b21\u306e\u591a\u9805\u5f0f\u306f":7,"\u6b21\u306e\u591a\u9805\u5f0f\u3092\u7279\u5225\u306a\u5834\u5408\u3068\u3057\u3066\u542b\u3080\u305f\u3081":7,"\u6b21\u306e\u591a\u9805\u5f0f\u56de\u5e30\u306e\u5834\u5408\u306f":12,"\u6b21\u306e\u7ae0\u306e":2,"\u6b21\u306e\uff11\u6b21\u5143\u64ec\u4f3c\u30c7\u30fc\u30bf\u306e\u56de\u5e30\u3092\u8003\u3048\u3066\u307f\u308b":12,"\u6b21\u306eab\u6cd5\u3067\u306f\u904e\u53bb\u306e\u60c5\u5831\u3092\u5229\u7528\u3059\u308b\u305f\u3081":16,"\u6b21\u306elegendre\u88dc\u9593\u3092\u4f7f\u7528":16,"\u6b21\u306f":3,"\u6b21\u307e\u3067\u306e\u4fc2\u6570\u3092\u95a2\u6570\u304c\u30c7\u30fc\u30bf\u3068\u6574\u5408\u3059\u308b\u3088\u3046\u306b":7,"\u6b21\u5143\u306e\u4fc2\u6570\u30d9\u30af\u30c8\u30eb":17,"\u6b21\u5143\u306e\u591a\u9805\u5f0f":7,"\u6b21\u5143\u306e\u591a\u9805\u5f0f\u306e\u6700\u9069\u5316\u306f":7,"\u6b21\u5143\u306e\u6210\u5206\u305d\u308c\u305e\u308c\u306e\u5171\u5206\u6563\u3092\u884c\u5217\u306b\u3082\u3064\u5171\u5206\u6563\u884c\u5217":17,"\u6b21\u5143\u306e\u91cf\u3092\u6301\u3064\u30c7\u30fc\u30bf\u304c":17,"\u6b21\u5143\u30d9\u30af\u30c8\u30eb\u540c\u58eb\u306e\u5185\u7a4d\u306e\u5b9a\u7fa9\u3068\u3092\u898b\u6bd4\u3079\u308b\u3068\u793a\u305b\u308b":7,"\u6b21\u5143\u5217\u30d9\u30af\u30c8\u30eb":17,"\u6b21\u5143\u591a\u9805\u5f0f":[7,15],"\u6b21\u5143\u6b63\u898f\u5206\u5e03\u306b\u5f93\u3046\u3068\u304d":6,"\u6b21\u5143\u7a7a\u9593\u3067\u306e\u6b63\u898f\u76f4\u4ea4\u57fa\u5e95\u9593\u306e\u5909\u63db\u3092\u63a2\u3059\u3053\u3068\u306b\u5bfe\u5fdc":17,"\u6b21\u5143\u7a7a\u9593\u4e0a\u306b\u5c04\u5f71\u3059\u308b":17,"\u6b21\u516c\u5f0f\u3068\u547c\u3073":16,"\u6b21\u516c\u5f0f\u3092\u4e0e\u3048\u308b":16,"\u6b21\u56de\u4ee5\u964d\u540c\u69d8\u306e\u4f5c\u696d\u3092\u3057\u306a\u304f\u3066\u3082\u826f\u3044\u3088\u3046\u306b\u3067\u304d\u308b":24,"\u6b21\u591a\u9805\u5f0f\u306b\u306a\u3063\u3066\u3044\u308b":12,"\u6b21\u5f0f":7,"\u6b21\u70b9\u306e\u8a08\u7b97\u70b9\u3092\u6c7a\u3081\u308b":11,"\u6b21\u90ce\u69cb\u6587\u3092\u4f5c\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\u6b32\u3057\u3044\u8981\u7d20\u306e\u6570\u5024\u3082\u3057\u304f\u306f\u9805\u76ee\u540d\u306e\u30ea\u30b9\u30c8":18,"\u6b63\u3057\u3044\u7b54\u3048\u3092\u4e0e\u3048\u306a\u3044":3,"\u6b63\u3057\u3044\u9806\u756a\u3067\u5b9f\u884c\u3057\u306a\u3044\u3068\u30a8\u30e9\u30fc\u304c\u51fa\u305f\u308a":2,"\u6b63\u3057\u304f\u52d5\u304f\u4fdd\u8a3c\u3082\u5168\u304f\u7121\u3044\u308f\u3051\u3060\u304c":21,"\u6b63\u306e\u5024":8,"\u6b63\u306e\u76f8\u95a2\u304c\u3042\u308b\u3053\u3068\u304c\u898b\u3066\u53d6\u308c\u308b":7,"\u6b63\u5247\u5316\u3067\u30b0\u30b0\u3063\u3066\u307f\u3088\u3046":7,"\u6b63\u5b9f\u6570":16,"\u6b63\u65b9\u5f62\u306e\u9762\u7a4d\u304c1\u3067\u3042\u308b\u3053\u3068\u3092\u4f7f\u3046":6,"\u6b63\u78ba\u306a\u5b9a\u7fa9\u3068\u3057\u3066\u306f\u30e9\u30a4\u30d6\u30e9\u30ea":5,"\u6b63\u78ba\u306b\u306f\u30af\u30e9\u30b9":4,"\u6b63\u78ba\u306b\u306f\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9":9,"\u6b63\u78ba\u306b\u306fnumpi":18,"\u6b63\u793e\u54e1":2,"\u6b63\u898f\u4e71\u6570":25,"\u6b63\u898f\u5206\u5e03":6,"\u6b63\u898f\u5206\u5e03\u304c\u91cd\u8981\u3067\u3042\u308b\u7406\u7531\u306f\u3044\u304f\u3064\u304b\u3042\u308a\u307e\u3059\u304c":6,"\u6b63\u898f\u5206\u5e03\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u30c1\u30a7\u30c3\u30af":6,"\u6b63\u898f\u5206\u5e03\u306b\u53ce\u675f\u3057\u3066\u3044\u304f\u69d8\u5b50\u304c\u898b\u3089\u308c\u307e\u3059":6,"\u6b63\u898f\u5206\u5e03\u306b\u5f93\u3046\u4e71\u6570\u3092\u751f\u6210\u3059\u308b\u306b\u306f":6,"\u6b63\u898f\u5206\u5e03\u306b\u5f93\u3046\u78ba\u7387\u5909\u6570\u304c\u305f\u304f\u3055\u3093\u3042\u308b":6,"\u6b63\u898f\u5206\u5e03\u306b\u5f93\u3063\u3066\u3044\u308b\u5834\u5408":6,"\u6b63\u898f\u5206\u5e03\u306b\u8fd1\u3044\u3053\u3068\u304c\u77e5\u3089\u308c\u3066\u3044\u307e\u3059":6,"\u6b63\u898f\u5206\u5e03\u306e\u4fc2\u6570\u304b\u3089\u304f\u308b\u30aa\u30de\u30b1\u306e\u5b9a\u6570":12,"\u6b63\u898f\u5206\u5e03\u306f\u591a\u304f\u306e\u7279\u5fb4\u7684\u306a\u6027\u8cea\u3092\u6709\u3057\u3066\u3044\u307e\u3059":6,"\u6b63\u89e3\u304c1000\u306e\u3068\u3053\u308d\u30921010\u3068\u4e88\u6e2c\u3057\u305f\u5834\u5408":8,"\u6b63\u89e3\u304c10\u306e\u3068\u3053\u308d\u309220\u3068\u4e88\u6e2c\u3057\u305f\u5834\u5408":8,"\u6b63\u8ca0\u306e\u5024\u3092\u3068\u308b":6,"\u6b73\u3067\u3059":14,"\u6b8b\u308a\u306f\u30d1\u30fc":6,"\u6bce\u56de\u540c\u3058\u30c7\u30fc\u30bf\u306b\u306a\u308b\u3088\u3046\u306b\u4e71\u6570\u306e\u7a2e\u3092\u56fa\u5b9a\u3057\u3066\u304a\u304f":10,"\u6bce\u56de\u540c\u3058\u4e71\u6570\u306b\u306a\u3063\u3066\u3057\u307e\u3046\u306e\u3067":6,"\u6bce\u56de\u756a\u5730\u3092\u6307\u5b9a\u3057\u305f\u308a\u30eb\u30fc\u30d7\u3067\u8981\u7d20\u3092\u56de\u3057\u3066":3,"\u6bce\u56de\u8abf\u3079\u305f\u3044\u70b9\u3067\u5b9a\u7fa9\u306b\u7acb\u3061\u8fd4\u308b\u3068\u3044\u3046\u306e\u306f\u9762\u5012\u3067\u3059":8,"\u6bce\u79d2\u3054\u3068\u306b":6,"\u6bce\u9031\u571f\u66dc\u3084\u65e5\u66dc\u306b\u30c9\u30e9":6,"\u6bd4\u8f03\u7684\u65b0\u3057\u3044\u54c1\u7a2e\u3067\u3007\u3007\u3068\u3044\u3048\u3070\u79cb":7,"\u6c0f\u304c\u4f5c\u3063\u305f":13,"\u6c17\u304c\u5229\u3044\u3066\u3044\u307e\u3059\u306d":22,"\u6c17\u304c\u5229\u3044\u3066\u3044\u308b":4,"\u6c17\u306b\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f":9,"\u6c17\u306b\u306a\u308b\u65b9\u306f":7,"\u6c17\u5019\u30c7\u30fc\u30bf\u304b\u3089\u4f5c\u6210\u3057\u305f\u6563\u5e03\u56f3\u3067":7,"\u6c17\u6e29":5,"\u6c17\u6e29\u304b\u6d88\u8cbb\u91cf\u306e\u3044\u305a\u308c\u304b":25,"\u6c17\u6e29\u3068\u7279\u5b9a\u306e\u91ce\u83dc\u306e\u8cfc\u8cb7\u610f\u6b32\u306e\u771f\u306e\u95a2\u4fc2\u3092\u77e5\u308a\u305f\u3051\u308c\u3070":7,"\u6c34\u7a32\u8edf\u3081\u3057":18,"\u6c42\u89e3":16,"\u6c4e\u5316\u6027\u80fd":7,"\u6c4e\u5316\u6027\u80fd\u306e\u8a55\u4fa1\u306b\u4f7f\u3063\u305f\u308a\u3057\u307e\u3059":10,"\u6c4e\u7528\u6027\u306e\u9ad8\u3044":9,"\u6c4e\u7528\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u306b\u3059\u308b\u3053\u3068":25,"\u6c7a\u307e\u3063\u305f\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u69cb\u9020\u306e\u5834\u5408\u306b\u5bfe\u3057\u3066\u66f8\u304b\u308c\u3066\u3044\u308b\u305f\u3081":10,"\u6c7a\u307e\u3063\u305f\u64cd\u4f5c\u304c\u5fc5\u8981\u306a\u5834\u5408":9,"\u6c7a\u5b9a\u8ad6\u7684\u306a\u95a2\u6570":12,"\u6cc9":3,"\u6cd5\u306a\u3069":19,"\u6ce8":[2,4,5,6,7,8,9,10,12,16,23,24],"\u6ce82":5,"\u6ce8\u610f":[5,8,9],"\u6ce8\u610f\u304c\u5fc5\u8981":2,"\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059":[3,24],"\u6ce8\u610f\u3068\u3057\u3066\u306f":24,"\u6ce8\u610f\u70b9\u3068\u3057\u3066\u306f":6,"\u6ce8\u91c8":2,"\u6d3b\u6027\u5316\u95a2\u6570\u306e\u4e00\u3064":10,"\u6d3b\u6027\u5316\u95a2\u6570\u3092\u6052\u7b49\u5909\u63db\u306b\u3068\u3063\u3066\u91cd\u307f\u884c\u5217\u3092\u76f4\u4ea4\u884c\u5217\u306b\u53d6\u308a\u4e8c\u4e57\u8aa4\u5dee\u95a2\u6570\u3092\u6700\u5c0f\u5316\u3059\u308b\u8868\u5f0f\u3092\u66f8\u304d\u4e0b\u3059\u3068pca\u306e\u8868\u5f0f\u304c\u73fe\u308c\u307e\u3059":17,"\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570":2,"\u6d74\u5834\u696d":13,"\u6df1\u5165\u308a\u306f\u3057\u307e\u305b\u3093\u304c":6,"\u6df7\u4e71\u3057\u305f\u5834\u5408\u306f\u3053\u306e\u9055\u3044\u3092\u610f\u8b58\u3059\u308b\u3088\u3046\u306b\u3059\u308b\u3068\u826f\u3044":4,"\u6df7\u4e71\u3057\u306a\u3044\u3088\u3046\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b":4,"\u6df7\u4e71\u3059\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093":3,"\u6e29\u5ea6":8,"\u6e2c\u5b9a":11,"\u6e2c\u5b9a\u8aa4\u5dee\u306e\u3088\u3046\u306a\u3082\u306e\u306b\u307e\u3067\u904e\u9069\u5408\u3057\u3066\u3057\u307e\u3063\u3066\u3044\u308b":7,"\u6e80\u305f\u3055\u306a\u3044\u3068\u304d\u306fb\u3092\u3057\u305f\u3044":3,"\u6e96\u5099":20,"\u6f14\u7b97":14,"\u6f14\u7b97\u3057\u305f\u7d50\u679c\u3092\u5225\u306e\u5909\u6570":2,"\u6f14\u7b97\u3092\u9ad8\u901f\u306b\u884c\u3046\u3053\u3068\u304c\u53ef\u80fd\u3068\u3044\u3046\u70b9\u304c\u3042\u308a\u307e\u3059":5,"\u6f22\u5b57":2,"\u70ad\u6c34\u5316\u7269":18,"\u70ad\u6c34\u5316\u7269\u3068\u8868\u8a18\u3055\u308c\u3066\u3044\u308b\u5217\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306f\u305d\u308c\u305e\u308c9":18,"\u70ad\u6c34\u5316\u7269\u306f\u3055\u3089\u306b\u7d30\u5206\u5316\u3055\u308c\u3066\u304a\u308a":18,"\u70b9":8,"\u70b91":4,"\u70b9\u3067":5,"\u7121\u304f\u306a\u3044":5,"\u7121\u6599\u3067\u767b\u9332":21,"\u7121\u6599\u7248\u306715gb\u307e\u3067":5,"\u7121\u9650\u306b\u5c0f\u3055\u3044":8,"\u7121\u9650\u306b\u9577\u3044\u7591\u4f3c\u4e71\u6570\u306e\u7f85\u5217\u306e\u4e2d\u304b\u308910\u500b\u4e26\u3093\u3060\u6570\u3092\u9078\u3076\u3068\u304d\u306b":6,"\u7121\u9650\u306e\u6570\u306e\u95a2\u6570\u3092\u8003\u3048\u308c\u3070":7,"\u7121\u9650\u5c0f":8,"\u7121\u9650\u5c0f\u306e\u5e45\u3067\u95a2\u6570\u3092\u76f4\u7dda\u3067\u8fd1\u4f3c\u3057\u3066\u50be\u304d\u3092\u8a08\u7b97\u3057\u3066\u3044\u308b":8,"\u713c\u304d\u306a\u307e\u3057\u6cd5":8,"\u7169\u96d1\u306a\u306e\u3067\u5c0e\u51fa\u306b\u3064\u3044\u3066\u306f\u7701\u7565\u3059\u308b\u3053\u3068\u306b\u3057\u3066\u7d50\u679c\u3060\u3051\u793a\u3059\u3068":16,"\u7248\u3092\u7ba1\u7406":1,"\u7269\u4e8b\u306e\u56e0\u679c\u95a2\u4fc2\u3092\u65ad\u5b9a\u3059\u308b\u3088\u3046\u306a\u8a00\u8aac\u306b\u5bfe\u3057\u3066\u306f\u4e00\u6b69\u5f15\u3044\u3066\u898b\u308b\u59ff\u52e2\u3082\u91cd\u8981\u306a\u3088\u3046\u306b\u601d\u3046":7,"\u7269\u4f53\u691c\u77e5\u306a\u3069\u306a\u3069":10,"\u7269\u54c1\u8cc3\u8cb8\u696d":13,"\u7269\u6027\u3084\u7d20\u7c92\u5b50":19,"\u7269\u7406":5,"\u7269\u7406\u3084\u8a08\u7b97\u79d1\u5b66\u306e\u5206\u91ce\u306b\u304a\u3044\u3066":19,"\u7269\u7406\u5b66\u304b\u3089\u7740\u60f3\u3092\u5f97\u305f\u6700\u9069\u5316\u624b\u6cd5\u3082\u3088\u304f\u7528\u3044\u3089\u308c\u308b":8,"\u7279\u306b":[3,19],"\u7279\u306b\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u3092\u4f7f\u3063\u3066\u5168\u3066\u524a\u9664\u3057\u3066\u3057\u307e\u3046\u3068\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u53d6\u3063\u3066\u3044\u306a\u3044\u3068\u5fa9\u5143\u306f\u56f0\u96e3\u3060\u3057":24,"\u7279\u306b\u4f7f\u3063\u3066\u306a\u3044":4,"\u7279\u306b\u554f\u984c\u306a\u304f\u4f5c\u696d\u304c\u3067\u304d\u305f\u5834\u5408\u306f":25,"\u7279\u306b\u5fc5\u8981\u306a\u3044":8,"\u7279\u306b\u65ad\u3089\u306a\u3044\u9650\u308a\u5b9f\u884c\u5217\u306e\u5834\u5408\u306e\u307f\u3092\u8003\u3048\u308b":19,"\u7279\u306b\u8907\u6570\u53f0\u306e\u7aef\u672b\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u4eba\u306a\u3069\u306f":24,"\u7279\u306b\u96a0\u308c\u5c64\u306e\u6570\u304c\u591a\u3044\u6df1\u5c64\u5b66\u7fd2\u306b\u304a\u3044\u3066":10,"\u7279\u5225\u306a\u65b9\u5411\u3078\u306e\u6307\u5411\u306f\u306a\u304f\u5b8c\u5168\u306b\u30e9\u30f3\u30c0\u30e0\u3067\u3059\u304c":6,"\u7279\u5b9a\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306a\u3069\u304c\u96a0\u3057\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u591a\u304f":24,"\u7279\u5b9a\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u542b\u3080\u3082\u306e\u306b\u7d5e\u3063\u3066\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u305f\u308a\u3082\u3067\u304d\u308b":13,"\u7279\u5b9a\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u542b\u3080\u3082\u306e\u3092\u5168\u3066\u53d6\u5f97\u3057\u3066":18,"\u7279\u5b9a\u306e\u30b5\u30fc\u30d3\u30b9":25,"\u7279\u5b9a\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8":1,"\u7279\u5b9a\u306e\u4f5c\u696d\u304c\u30d1\u30c3\u30b1\u30fc\u30b8\u5316\u3055\u308c\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u7fa4\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u3066\u3053\u308c\u3089\u3092\u30e9\u30a4\u30d6\u30e9\u30ea":5,"\u7279\u5b9a\u306e\u5024\u3092\u7279\u5225\u8996\u3057\u306a\u3044":10,"\u7279\u5b9a\u306e\u5546\u696d\u65bd\u8a2d\u3084lrt\u306e\u505c\u7559\u6240\u306a\u3069":25,"\u7279\u5b9a\u306e\u6761\u4ef6\u3092\u6e80\u305f\u3059\u5834\u5408\u306b\u306e\u307f\u9069\u7528\u3059\u308b\u51e6\u7406\u3092\u66f8\u304d\u305f\u3044":3,"\u7279\u5b9a\u306e\u72b6\u6cc1\u3067\u306f":9,"\u7279\u5b9a\u306e\u884c":18,"\u7279\u6027\u3084\u305d\u306e\u80cc\u666f\u306b\u3042\u308b\u57fa\u790e\u306b\u3064\u3044\u3066\u7406\u89e3\u3092\u6df1\u3081\u308b\u3053\u3068\u3082\u975e\u5e38\u306b\u91cd\u8981\u306a\u59ff\u52e2\u3060\u3068\u611f\u3058\u308b":21,"\u7279\u6b8a\u306a\u30ea\u30b9\u30c8\u306e\u7d50\u5408\u3092\u3057\u3066\u8fd4\u3059\u95a2\u6570":4,"\u7279\u7570\u5024":19,"\u7279\u7570\u5024\u306e\u6570":19,"\u7279\u7570\u5024\u5206\u89e3\u306f":19,"\u7279\u7570\u5024\u5206\u89e3\u3092\u3057\u3066\u307f\u3088\u3046":19,"\u7279\u7570\u5024\u5206\u89e3\u5b9a\u7406":19,"\u7279\u7570\u5024\u5206\u89e3\u81ea\u4f53\u3092\u81ea\u8eab\u3067\u5b9f\u88c5\u3057\u3066\u4f7f\u3046\u306e\u306f\u305f\u3044\u3078\u3093\u6559\u80b2\u7684\u3067\u3042\u308b\u304c\u5b9f\u7528\u7684\u306b\u306f\u3042\u307e\u308a\u30aa\u30b9\u30b9\u30e1\u3057\u306a\u3044":19,"\u72b6\u614b\u3067\u306f\u8cea\u554f\u306e\u3057\u3088\u3046\u304c\u306a\u3044\u306e\u3068\u540c\u69d8":21,"\u72b6\u6cc1\u3092\u6539\u5584\u3059\u308b\u305f\u3081\u306b\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u5f90\u3005\u306b\u66f4\u65b0":10,"\u72b6\u6cc1\u3092\u8003\u3048\u3088\u3046":8,"\u72ec\u7acb\u306a\u5206\u6563\u3092\u3082\u3064":12,"\u7372\u5f97\u95a2\u6570\u306e\u5b9a\u7fa9":11,"\u7372\u5f97\u95a2\u6570\u3084\u52fe\u914d\u3068\u3044\u3063\u305f\u3082\u306e\u304c\u5b9a\u7fa9\u3055\u308c\u308b\u3068\u3055\u3089\u306a\u308b\u5fdc\u7528\u304c\u8003\u3048\u3089\u308c\u307e\u3059":6,"\u7372\u5f97\u95a2\u6570\u3092\u8a08\u7b97":11,"\u73fe\u5728":[9,16],"\u73fe\u5728\u3044\u308b":24,"\u73fe\u5728\u306e\u4e16\u754c\u6a19\u6e96\u3067\u3042\u308b":2,"\u73fe\u5728\u5730":24,"\u73fe\u5728\u5c45\u308b":16,"\u73fe\u5b9f\u306e\u30c7\u30fc\u30bf\u89e3\u6790\u306e\u72b6\u6cc1\u3067\u306f":7,"\u73fe\u5b9f\u4e16\u754c\u3067\u3082":6,"\u7406\u5bb9":13,"\u7406\u5de5\u7cfb\u5206\u91ce\u3067\u306f":3,"\u7406\u60f3\u7684\u306a":6,"\u7406\u60f3\u7684\u306a\u5834\u5408":6,"\u7406\u7531\u306f":[2,9],"\u7406\u7814aip\u30b7\u30f3\u30dd\u30b8\u30a6\u30e0\u3067\u306e\u5ca1\u5d0e\u76f4\u89b3\u5148\u751f\u306e\u7279\u5225\u8b1b\u6f14":21,"\u7406\u79d1":9,"\u7406\u7cfb\u306e\u5927\u5b66\u751f\u306b\u4f55\u3092\u52c9\u5f37\u3059\u3079\u304d\u304b\u3068\u554f\u308f\u308c\u305f\u3089":19,"\u7406\u89e3":21,"\u7406\u8ad6\u3092\u7406\u89e3\u3057\u305f\u308a\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u306f\u91cd\u8981\u306a\u30d7\u30ed\u30bb\u30b9\u3068\u306a\u308b":7,"\u74b0\u5883\u3067\u306f":[2,9],"\u74b0\u5883\u3067\u306f\u30e6\u30fc\u30b6\u30fc\u306f":1,"\u74b0\u5883\u69cb\u7bc9\u306b\u4f34\u3046\u30a8\u30e9\u30fc\u306e\u89e3\u6c7a\u306f":21,"\u751f\u5e74":18,"\u751f\u6210\u3055\u308c\u308b\u753b\u50cf\u306e\u6570\u304c\u3068\u3093\u3067\u3082\u306a\u304f\u5897\u3048\u308b\u306e\u3067\u3084\u3089\u306a\u3044\u3067\u304f\u3060\u3055\u3044":9,"\u751f\u7523\u91cf\u3068\u5e73\u5747\u6c17\u6e29\u306e\u9593\u306b":7,"\u7528\u610f\u3057\u305f\u95a2\u6570\u304c\u30c7\u30fc\u30bf\u306b\u904e\u5ea6\u306b\u9069\u5408\u3059\u308b\u3042\u307e\u308a":7,"\u7528\u9014\u3068\u3057\u3066\u306f":3,"\u7537\u5b50100m\u306e\u4e16\u754c\u8a18\u9332\u306e\u63a8\u79fb":7,"\u7537\u5b50100m\u8d70\u306e\u4e16\u754c\u8a18\u9332":25,"\u7537\u6027\u6bd4":5,"\u753b\u50cf\u304c\u3044\u3063\u3071\u3044\u751f\u6210\u3055\u308c\u308b\u3068\u9762\u5012\u306a\u306e\u3067\u753b\u50cf\u3092\u4fdd\u5b58\u3059\u308b\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u3066\u304a\u304f":9,"\u753b\u50cf\u306e":1,"\u753b\u50cf\u306e\u3042\u308b\u884c\u3068\u3042\u308b\u884c":19,"\u753b\u50cf\u306e\u80cc\u666f\u90e8\u5206\u306a\u3069\u3092\u30a4\u30e1\u30fc\u30b8\u3059\u308b\u3068\u308f\u304b\u308b\u3088\u3046\u306b":19,"\u753b\u50cf\u3092\u3044\u3061\u3044\u3061plot\u3057\u3066\u4fdd\u5b58\u3059\u308b\u5fc5\u8981\u304c\u306a\u3044\u5834\u5408f\u3092\u63a8\u5968":9,"\u753b\u50cf\u3092\u30ea\u30b5\u30a4\u30ba":19,"\u753b\u50cf\u3092\u8003\u3048\u3066\u307f\u3088\u3046":19,"\u753b\u50cf\u30c7\u30fc\u30bf\u306f":19,"\u753b\u50cf\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u307f":19,"\u753b\u50cf\u751f\u6210":10,"\u753b\u50cf\u97f3\u58f0\u51e6\u7406\u306a\u3069\u306a\u3069\u69d8\u3005\u306a\u5834\u9762\u3067\u4f7f\u7528\u3055\u308c\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059":22,"\u753b\u9762\u306e\u4e0a\u4e0b\u3084\u5de6\u53f3\u306a\u3069\u306b\u5206\u5272\u3057\u3066\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":21,"\u756a\u3060\u3068\u3044\u3046\u3053\u3068\u3067\u3059":3,"\u756a\u53f7":2,"\u756a\u5730":[3,19],"\u756a\u76ee":3,"\u756a\u76ee\u3067\u3059":3,"\u756a\u76ee\u3068\u3044\u3046\u306e\u306f0\u304b\u3089\u6570\u3048\u3066":3,"\u756a\u76ee\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306e":16,"\u756a\u76ee\u306e\u30b9\u30c6\u30c3\u30d7\u3068":16,"\u756a\u76ee\u306e\u30b9\u30c6\u30c3\u30d7\u3092\u7528\u3044\u3066":16,"\u756a\u76ee\u306e\u5bc4\u4e0e\u7387\u3068\u547c\u3073":17,"\u756a\u76ee\u306e\u60c5\u5831\u3092\u7528\u3044\u3066":16,"\u756a\u76ee\u306e\u6210\u5206\u306b":7,"\u756a\u76ee\u306e\u6210\u5206\u306b\u6301\u3064\u30d9\u30af\u30c8\u30eb\u306e\u81ea\u8eab\u3068\u306e\u5185\u7a4d\u306b\u306a\u308b\u306e\u3067":22,"\u756a\u76ee\u306e\u6642\u523b":16,"\u756a\u76ee\u306e\u8981\u7d20\u3067\u3042\u308b\u3053\u3068\u3092\u8868\u3057":7,"\u756a\u76ee\u306e\u8981\u7d20\u306f\u5f8c\u308d\u304b\u3089\u4e8c\u756a\u76ee\u3068\u3044\u3063\u305f\u5177\u5408\u3067\u3059":3,"\u756a\u76ee\u3092\u66f4\u65b0\u3059\u308b\u969b\u306b\u306f":10,"\u7591\u4f3c":[3,10],"\u7591\u4f3c\u76f8\u95a2\u306b\u3064\u3044\u3066\u8abf\u3079\u4f8b\u3092\u3042\u3052\u3088":25,"\u7591\u4f3c\u76f8\u95a2\u3092\u307e\u3068\u3081\u305f\u304a\u3082\u3057\u308d\u3044\u30b5\u30a4\u30c8":7,"\u7591\u554f\u304c\u3042\u308c\u3070\u8cea\u554f\u3059\u308b\u3053\u3068":25,"\u7591\u554f\u3084\u554f\u984c\u3092\u8a00\u8a9e\u5316\u3057\u8981\u7d04\u3059\u308b\u8a13\u7df4":25,"\u7591\u554f\u70b9\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u3067\u3042\u3063\u3066":25,"\u767a\u5c55\u7684\u306a\u5185\u5bb9\u3067\u3059":3,"\u767a\u5c55\u7684\u306a\u6ce8":19,"\u767a\u884c\u30dc\u30bf\u30f3\u3092\u62bc\u3059":13,"\u767e\u4e07\u5186":13,"\u7686\u3055\u3093\u304c\u30b3\u30d4\u30fc\u3092\u3059\u308b\u306a\u3069\u3057\u306a\u3044\u9650\u308a":1,"\u7686\u3055\u3093\u304c\u81ea\u5206\u81ea\u8eab\u306e\u7406\u89e3":25,"\u7686\u3055\u3093\u304c\u958b\u3044\u3066\u3044\u308b\u306e\u306fgithub\u304b\u3089\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u305f\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3067\u3042\u3063\u3066":1,"\u7686\u3055\u3093\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30de\u30a4\u30c9\u30e9\u30a4\u30d6\u76f4\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u4e00\u89a7\u304c\u8868\u793a\u3055\u308c\u307e\u3059":5,"\u7686\u3055\u3093\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306egoogl":5,"\u7686\u3055\u3093\u306e\u4e3b\u4f53\u7684\u306a\u5b66\u7fd2\u306b\u3080\u3051\u3066":21,"\u7686\u3055\u3093\u306e\u624b\u5143\u3067\u8d77\u3053\u3063\u305f\u30a8\u30e9\u30fc\u306e\u4f8b\u3082\u5171\u6709\u3057\u305f\u3044\u306e\u3067":14,"\u7686\u3055\u3093\u306e\u751f\u304d\u65b9\u3084\u50cd\u304d\u65b9\u306b\u5927\u304d\u306a\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u3068\u79c1\u306f\u8003\u3048\u3066\u3044\u307e\u3059":9,"\u7686\u3055\u3093\u81ea\u8eab\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u306f\u3042\u308a\u307e\u305b\u3093":1,"\u76ee\u304c1":8,"\u76ee\u7684\u306f\u6570\u5024\u8a08\u7b97\u306b\u306a\u308c\u308b\u305f\u3081\u306a\u306e\u3067\u6c17\u306b\u3057\u306a\u3044\u3053\u3068\u306b\u3059\u308b":8,"\u76ee\u7684\u3092\u679c\u305f\u3057\u305f\u306e\u3067\u3082\u3046\u30eb\u30fc\u30d7\u3092\u7e70\u308a\u8fd4\u3059\u5fc5\u8981\u304c\u306a\u3044\u3068\u304d":3,"\u76ee\u7684\u95a2\u6570":8,"\u76ee\u7684\u95a2\u6570\u304c\u4e8c\u4e57\u8aa4\u5dee\u304b\u3064\u5168\u30c7\u30fc\u30bf\u3067\u306e\u52fe\u914d\u306e\u548c\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306b\u306e\u307f\u6b63\u3057\u3044":10,"\u76ee\u7684\u95a2\u6570\u306e\u9078\u3073\u65b9\u306f\u554f\u984c\u306b\u3088\u3063\u3066\u307e\u3061\u307e\u3061\u3067":8,"\u76ee\u7684\u95a2\u6570\u306e\u9078\u629e":8,"\u76ee\u7684\u95a2\u6570\u306f\u8eab\u9577\u306e\u4e88\u6e2c\u7cbe\u5ea6\u306b\u3088\u308a\u5f37\u304f\u4f9d\u5b58\u3059\u308b\u3053\u3068\u306b\u306a\u308a":10,"\u76ee\u7684\u95a2\u6570\u3092\u5fae\u5206\u3057\u305f\u52fe\u914d\u306e\u5024\u306e\u307f\u3092\u4f7f\u3063\u3066\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u66f4\u65b0\u3059\u308b\u65b9\u6cd5\u3067\u3059":10,"\u76ee\u7684\u95a2\u6570\u3092\u640d\u5931\u95a2\u6570":8,"\u76f4\u4e0b\u306b\u3042\u308bhome\u3067\u3042\u308b":24,"\u76f4\u4ea4\u5909\u63db\u306e\u5b9a\u7fa9":17,"\u76f4\u611f\u306b\u53cd\u3059\u308b\u306e\u3060\u3051\u3069":3,"\u76f4\u63a5":23,"\u76f4\u7dda\u306e\u4f8b":8,"\u76f4\u7dda\u306e\u50be\u304d":8,"\u76f4\u7dda\u306e\u5834\u5408\u306e":8,"\u76f4\u7dda\u4ee5\u5916\u306e\u95a2\u6570\u306b":8,"\u76f8\u5bfe":24,"\u76f8\u5bfe\u30d1\u30b9":9,"\u76f8\u5bfe\u7684\u306a\u983b\u5ea6":6,"\u76f8\u8ac7\u306e\u969b\u306b\u306f\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u51fa\u529b\u7d50\u679c\u3084\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u306a\u3069\u306b\u4ed6\u4eba\u306b\u898b\u3089\u308c\u3066\u56f0\u308b\u3082\u306e\u304c\u6620\u3063\u3066\u3044\u306a\u3044\u304b\u914d\u616e\u3059\u308b\u3053\u3068":25,"\u76f8\u95a2\u306e\u3042\u308b\u591a\u6570\u306e\u5909\u6570\u304b\u3089\u76f8\u95a2\u306e\u306a\u3044\u5c11\u6570\u3067\u5168\u4f53\u306e\u3070\u3089\u3064\u304d\u3092\u6700\u3082\u3088\u304f\u8868\u3059":17,"\u76f8\u95a2\u3092\u6301\u3064\u304b\u3092\u8868\u3059\u91cf\u3068\u3057\u3066\u76f8\u95a2\u4fc2\u6570\u3092\u7b97\u51fa\u3057\u3066\u307f\u3088\u3046":7,"\u76f8\u95a2\u4fc2\u6570":7,"\u76f8\u95a2\u4fc2\u6570\u306a\u3069\u306e\u60c5\u5831\u3092\u542b\u3093\u3060\u3082\u3046\u5c11\u3057\u304b\u3063\u3053\u3044\u3044\u56f3\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u76f8\u95a2\u4fc2\u6570\u306e\u7d76\u5bfe\u5024\u304c0":9,"\u76f8\u95a2\u4fc2\u6570\u306e\u8a08\u7b97\u306f":7,"\u76f8\u95a2\u4fc2\u6570\u3092\u8a08\u7b97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":25,"\u76f8\u95a2\u5206\u6790\u3067\u4f7f\u7528\u3055\u308c\u305f\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb":9,"\u76f8\u95a2\u5206\u6790\u306e\u610f\u5473\u3092":25,"\u76f8\u95a2\u5206\u6790\u306f\u4ee5\u964d\u306e\u7ae0\u3067\u6271\u3046\u306e\u3067\u5177\u4f53\u4f8b\u306f\u7701\u7565\u3057\u307e\u3059":9,"\u76f8\u95a2\u95a2\u4fc2\u306f\u56e0\u679c\u95a2\u4fc2\u3092\u542b\u610f\u3057\u306a\u3044":7,"\u771f":2,"\u771f\u3063\u5148\u306b\u601d\u3044\u3064\u304f\u306e\u304c":5,"\u771f\u306b\u7406\u60f3\u7684\u306a\u30b5\u30a4\u30b3\u30ed\u306a\u3089\u30701\u304b\u30896\u306e\u76ee\u304c\u51fa\u308b\u78ba\u7387\u306f\u7b49\u3057\u304f1":6,"\u771f\u306e\u610f\u5473\u3067\u306e\u4e71\u6570\u3068\u533a\u5225\u3059\u308b\u610f\u5473\u3067":6,"\u771f\u306e\u89e38":11,"\u771f\u306e\u89e3\u3068\u6570\u5024\u89e3\u6cd5\u306b\u3088\u308b\u8fd1\u4f3c\u89e3\u3092\u6bd4\u8f03\u3067\u304d\u308b":16,"\u771f\u306e\u95a2\u6570":7,"\u771f\u306e\u95a2\u6570\u3068\u3044\u3046\u306e\u306f\u4e00\u822c\u306b":7,"\u771f\u507d\u5024":2,"\u77ed\u3044\u65b9\u304c\u3042\u3068\u3042\u3068\u4fbf\u5229":23,"\u7814\u7a76\u7b49\u3067":2,"\u7881\u76e4\u76ee\u306e\u69cb\u9020\u3092\u7834\u58ca\u3057\u3066\u3057\u307e\u3046\u305f\u3081":18,"\u78ba\u304b\u306b":8,"\u78ba\u304b\u306b\u4e0a\u3067\u4e0e\u3048\u305f\u5171\u5206\u6563\u306e\u5404\u6210\u5206\u3068\u3082\u3061\u3083\u3093\u3068\u4e00\u81f4\u3057\u3066\u3044\u307e\u3059":6,"\u78ba\u304b\u306b\u4e0a\u306e\u76f8\u95a2\u884c\u5217\u306e":7,"\u78ba\u304b\u306b\u7279\u7570\u5024\u5206\u89e3\u304c\u3067\u304d\u3066\u3044\u308b\u304c":19,"\u78ba\u304b\u3081\u3066\u307f\u3088\u3046":8,"\u78ba\u7387\u3068\u3057\u3066\u6271\u3044\u3084\u3059\u304f\u306a\u308a\u307e\u3059":6,"\u78ba\u7387\u3068\u64ec\u4f3c\u4e71\u6570\u306b\u3064\u3044\u3066\u6271\u3044\u307e\u3059":6,"\u78ba\u7387\u5206\u5e03\u3067\u3042\u308b":6,"\u78ba\u7387\u5206\u5e03\u306e\u6761\u4ef6\u90e8\u5206\u306b\u3042\u308b":12,"\u78ba\u7387\u5206\u5e03\u3092\u7528\u3044\u308b\u5834\u5408\u306f":12,"\u78ba\u7387\u7684\u306a\u4e8b\u8c61":6,"\u78ba\u7387\u7684\u52fe\u914d\u964d\u4e0b\u6cd5":10,"\u78ba\u8a8d\u306e\u305f\u3081\u518d\u5165\u529b\u3059\u308b":24,"\u793e\u4f1a":9,"\u793e\u4f1a\u4fdd\u967a\u4e8b\u696d\u56e3\u4f53":13,"\u793e\u4f1a\u798f\u7949":13,"\u795e\u306e\u307f\u305e\u77e5\u308b":7,"\u7981\u6b62\u3057\u3066\u3044\u308b\u5834\u5408\u3067\u3082":13,"\u798f\u7949":13,"\u798f\u7949\u4e8b\u52d9\u6240":13,"\u79c1\u3068\u7686\u3055\u3093\u3067\u7d50\u679c\u304c\u5909\u308f\u3089\u306a\u3044\u3088\u3046\u4e71\u6570\u306eseed\u3092\u56fa\u5b9a":7,"\u79c1\u306e\u30e2\u30c7\u30eb\u306f\u3053\u3093\u306a\u306b\u6b63\u3057\u304b\u3063\u305f":7,"\u79c1\u306e\u4f5c\u6210\u4f8b":5,"\u79c1\u306e\u540d\u524d\u306fxxx\u3067\u3059":2,"\u79c1\u306f":[4,14],"\u79c1\u306f\u305d\u306e\u3053\u3068\u3092\u77e5\u3063\u3066\u3044\u308b\u305f\u3081":21,"\u79c1\u306f\u5272\u3068\u30a4\u30c1\u304b\u3089\u8a2d\u5b9a\u3059\u308b\u306e\u304c\u597d\u304d\u3060\u3063\u305f\u308a\u3057\u307e\u3059":24,"\u79c1\u306f\u6559\u990a\u306e\u306a\u3044\u4eba\u3067\u3059":5,"\u79c1\u306f\u7530\u4e2d\u3067\u3059":4,"\u79c1\u306fsvd\u306e\u30b3\u30fc\u30c9\u3092\u81ea\u4f5c\u3057\u305f\u3053\u3068\u306f\u306a\u3044\u304c":19,"\u79c1\u3082\u3088\u304f\u904e\u53bb\u306e\u81ea\u5206\u304c\u4f5c\u6210\u3057\u305f\u30b3\u30fc\u30c9\u3092\u6d41\u7528\u3057\u3066\u4f5c\u56f3\u3057\u3066\u3044\u307e\u3059":5,"\u79c1\u3082\u4e00\u9023\u306e\u8b1b\u7fa9\u8cc7\u6599\u4f5c\u6210\u6642\u306bgithub\u304b\u3089\u958b\u3044\u305f\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3092\u76f4\u63a5\u7de8\u96c6\u3057\u3066\u6570\u6642\u9593\u5206\u306e\u4f5c\u696d\u5185\u5bb9\u3092\u6d88\u3057\u3066\u3057\u307e\u3063\u305f\u3053\u3068\u304c\u4f55\u5ea6\u3082\u3042\u308a\u307e\u3059":1,"\u79c1\u3082\u521d\u3081\u3066\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3067\u914d\u5217\u3092\u4f7f\u3063\u305f\u3068\u304d\u306b":3,"\u79c1\u3082\u65e5\u3005\u306e\u7814\u7a76\u306b\u304a\u3044\u3066\u6d3b\u7528\u3057\u3066\u3044\u308b":21,"\u79c1\u3082\u7c21\u5358\u306a\u30b3\u30fc\u30c9\u3060\u3068":3,"\u79c1\u898b":24,"\u79d2":25,"\u79d8\u5bc6\u9375\u306e\u53d6\u308a\u6271\u3044\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3042\u308b\u3053\u3068\u306f\u8a00\u3046\u307e\u3067\u3082\u306a\u3044":24,"\u79d8\u5bc6\u9375\u306f\u30ed\u30fc\u30ab\u30eb\u74b0\u5883\u306b":24,"\u79fb\u52d5":24,"\u79fb\u884c\u3092\u30b9\u30e0\u30fc\u30ba\u306b\u3057\u3066\u3044\u308b\u3088\u3046\u3067\u3042\u308b":24,"\u7a0b\u5ea6\u3067\u306f\u5fae\u5206\u306e\u5024\u306e\u8aa4\u5dee\u304c1":8,"\u7a0b\u5ea6\u306e\u4eba\u306e\u5f97\u70b9\u306f1\u30b7\u30b0\u30de\u9818\u57df":6,"\u7a0b\u5ea6\u306e\u610f\u5473":7,"\u7a2e":6,"\u7a2e\u3005\u306e\u30c7\u30fc\u30bf\u89e3\u6790\u3084\u5b66\u8853\u7684\u5206\u91ce\u3067\u306e\u8a08\u7b97\u3092\u306f\u3058\u3081\u4e16\u306e\u4e2d\u306e\u591a\u304f\u306e\u554f\u984c\u306f":8,"\u7a2e\u3005\u306e\u5206\u6790\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059":9,"\u7a40\u985e":18,"\u7a4d\u304c\u3082\u3068\u306ea\u3068\u4e00\u81f4\u3059\u308b\u304bcheck":19,"\u7a4d\u5206":8,"\u7a4d\u5206\u5024":6,"\u7a7a\u306e\u30ea\u30b9\u30c8\u306b\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u8aad\u3093\u3060\u8981\u7d20\u3092\u8a70\u3081\u3066\u3044\u304f\u3068\u3044\u3063\u305f\u64cd\u4f5c\u3082\u5b9f\u73fe\u3067\u304d\u308b":9,"\u7a7a\u30ea\u30b9\u30c8\u306b\u65e2\u5b58":3,"\u7a7a\u6c17\u611f":7,"\u7a7a\u9593\u3092\u5f35\u308b":19,"\u7a7a\u9593\u4e0a\u3067\u66f2\u304c\u3063\u305f\u308a\u8907\u96d1\u306a\u5e7e\u4f55\u5b66\u5f62\u72b6\u3092\u3057\u3066\u3044\u3066\u3082\u304a\u304b\u3057\u304f\u3042\u308a\u307e\u305b\u3093":17,"\u7a7a\u9593\u4e0a\u306b":17,"\u7a7a\u9593\u4e0a\u306b\u30d7\u30ed\u30c3\u30c8\u3057\u305f\u969b\u306b\u30d7\u30e9\u30c8\u30fc\u304c\u5b58\u5728\u3059\u308b":10,"\u7b2c1\u4e3b\u6210\u5206\u30d9\u30af\u30c8\u30eb\u3068\u76f4\u884c\u3059\u308b\u56fa\u6709\u30d9\u30af\u30c8\u30eb\u3092\u8003\u3048\u308c\u3070":17,"\u7b2c1\u7ae0\u3067\u8aac\u660e\u3057\u305f\u3088\u3046\u306b":14,"\u7b2c2\u4e3b\u6210\u5206\u304b\u3089\u306f\u540c\u69d8\u306b\u3057\u3066":17,"\u7b2c2\u4e3b\u6210\u5206\u306b\u5bfe\u5fdc\u3059\u308b\u56fa\u6709\u30d9\u30af\u30c8\u30eb\u306f":17,"\u7b2c2\u56de\u3067\u8aac\u660e\u3057\u305f\u6575\u5bfe\u7684\u751f\u6210\u30cd\u30c3\u30c8\u30ef\u30fc\u30af":10,"\u7b49\u3057\u3044\u6570\u306b\u306a\u308b\u3079\u304d\u3060\u304c":2,"\u7b49\u4fa1\u3067\u3042\u308b\u3053\u3068\u304c\u308f\u304b\u308b":12,"\u7b49\u53f7":14,"\u7b49\u53f7\u306e\u53f3\u306b\u5024\u3092\u66f8\u304f\u3053\u3068\u3067\u884c\u3046":2,"\u7b49\u53f7\u306e\u5de6\u306b\u5909\u6570":2,"\u7b49\u53f7\u8a18\u53f7":2,"\u7b54\u3048\u304c\u5177\u4f53\u7684\u306a\u5f62\u3067\u66f8\u304d\u4e0b\u305b\u308b":7,"\u7b54\u3048\u306fc":3,"\u7b97\u8853\u5e73\u5747\u3092\u53d6\u308b\u969b\u306f":25,"\u7ba1\u7406\u696d":13,"\u7ba1\u7406\u8005\u3068\u3057\u3066\u5b9f\u884c":23,"\u7ba1\u7406\u8005\u6a29\u9650\u3067":24,"\u7bc4\u56f2\u5916\u53c2\u7167":[4,14],"\u7c21\u5358\u3067\u3059\u306d":5,"\u7c21\u5358\u306a\u30c7\u30fc\u30bf\u304b\u3089\u521d\u3081\u3066":25,"\u7c21\u5358\u306a\u4f5c\u696d\u306a\u3089\u30ea\u30b9\u30c8\u3067\u3082\u4ee3\u7528\u3067\u304d\u308b\u306e\u3067\u5fc5\u9808\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u304c":5,"\u7c21\u5358\u306a\u5834\u5408\u306b\u3064\u3044\u3066\u81ea\u4f5c\u95a2\u6570\u3068\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u51fa\u529b\u304c\u540c\u3058\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":25,"\u7c21\u5358\u306a\u78ba\u7387\u7684\u4e8b\u8c61\u3092\u8868\u73fe\u3059\u308b\u65b9\u6cd5\u304c\u308f\u304b\u308b":25,"\u7c21\u5358\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u308a\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u308b":5,"\u7c21\u5358\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":22,"\u7c21\u5358\u306bcsv\u3084excel\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u66f8\u304d\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059":18,"\u7c21\u5358\u306e\u305f\u3081\u30b0\u30ec\u30fc\u30b9\u30b1\u30fc\u30eb\u306b\u5909\u63db\u3057\u305f\u5f8c":19,"\u7c21\u5358\u306e\u305f\u3081\u5171\u901a\u3068\u3057\u305f":16,"\u7cbe\u5ea6":[2,12],"\u7cbe\u5ea6\u304c\u5c0f\u3055\u3044":12,"\u7cbe\u5ea6\u304c\u6539\u5584\u3059\u308b\u69d8\u5b50\u3092\u898b\u3066\u307f\u3088\u3046":6,"\u7cbe\u5ea6\u304c\u82e5\u5e72\u6539\u5584\u3055\u308c\u308b":8,"\u7cbe\u767d\u7c73":18,"\u7cfb\u7d71\u7684\u306a\u4f5c\u696d\u3092\u53ef\u80fd\u306b\u3057\u30df\u30b9":2,"\u7d04":6,"\u7d14\u7136\u305f\u308b":19,"\u7d14\u7c8b\u6301\u682a\u4f1a\u793e":13,"\u7d1b\u3089\u308f\u3057\u3044":6,"\u7d30\u304b\u3044\u3053\u3068\u3092\u7121\u8996\u3059\u308b\u3068":6,"\u7d30\u304b\u3044\u3053\u3068\u3092\u8a00\u3046\u3068":21,"\u7d30\u304b\u3044\u3068\u3053\u308d\u306b\u3053\u3060\u308f\u3063\u305f\u308a\u3057\u305f\u304f\u306a\u308a\u307e\u3059":5,"\u7d30\u304b\u3044\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u3044\u65b9":9,"\u7d30\u304b\u3044\u5217\u306e\u5206\u5272\u304c\u633f\u5165\u3055\u308c\u3066\u3044\u308b":18,"\u7d30\u304b\u3044\u56f3\u306e\u66f8\u304d\u65b9\u306f\u8ffd\u3005":5,"\u7d30\u304b\u3044\u6ce8":3,"\u7d30\u304b\u3044\u90e8\u5206\u306f\u5206\u304b\u3089\u306a\u304f\u3066\u3082\u5fc3\u914d\u306f\u4e0d\u8981\u3067\u3059":5,"\u7d30\u304b\u304f\u5206\u5272\u3057\u305f\u4e0a\u3067":16,"\u7d30\u304b\u306a\u5b9f\u88c5\u304c\u5f0f\u3068\u6574\u5408\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u304b\u3081\u308b\u306e\u306f\u91cd\u8981\u3067":17,"\u7d30\u304b\u306a\u6587\u6cd5\u3084\u30a8\u30e9\u30fc\u306e\u539f\u56e0\u306e\u7279\u5b9a\u306b\u3064\u3044\u3066\u306f":2,"\u7d30\u304b\u306a\u6ce8":6,"\u7d42\u70b9":[3,6,22],"\u7d42\u70b9\u3067\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306e\u7bc4\u56f2\u3092\u6307\u5b9a\u3057\u3066":3,"\u7d42\u70b9\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306b\u76f8\u5f53\u3059\u308b\u8981\u7d20\u306f\u53d6\u308a\u51fa\u3055\u308c\u306a\u3044\u3053\u3068\u306b\u6ce8\u610f\u3057\u307e\u3057\u3087\u3046":3,"\u7d42\u70b9\u306e\u9818\u57df\u306b\u304a\u3051\u308b\u7b49\u9593\u9694\u306a\u70b9\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":22,"\u7d42\u70b9\u306f\u542b\u307e\u308c\u306a\u3044":22,"\u7d44\u306e\u4e00\u69d8\u4e71\u6570\u3092\u767a\u751f\u3055\u305b\u3066":6,"\u7d44\u307f\u5408\u308f\u305b\u6700\u9069\u5316\u3068\u306f\u533a\u5225\u3055\u308c\u308b":8,"\u7d44\u307f\u8fbc\u307f\u95a2\u6570":4,"\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3068\u306f\u5225\u306b\u30e6\u30fc\u30b6\u30fc\u304c\u72ec\u81ea\u306e\u95a2\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":4,"\u7d44\u5408\u305b\u6700\u9069\u5316\u306b\u306f":8,"\u7d4c\u6e08":13,"\u7d50\u679c\u304c\u5b9f\u884c\u3054\u3068\u306b\u540c\u3058\u306b\u306a\u308b\u3088\u3046\u4e71\u6570\u3092\u56fa\u5b9a":10,"\u7d50\u679c\u306e\u63cf\u753b\u7b49":11,"\u7d50\u679c\u3092\u30ea\u30b9\u30c8\u306b\u683c\u7d0d":8,"\u7d71\u8a08\u306e\u6388\u696d\u3067\u306f\u306a\u3044\u306e\u3067":6,"\u7d71\u8a08\u5b66":6,"\u7d71\u8a08\u8868\u306b\u304a\u3051\u308b\u6a5f\u68b0\u5224\u8aad\u53ef\u80fd\u306a\u30c7\u30fc\u30bf\u306e\u8868\u8a18\u65b9\u6cd5\u306e\u7d71\u4e00\u30eb\u30fc\u30eb\u306e\u7b56\u5b9a":9,"\u7d71\u8a08\u8868id":13,"\u7d71\u8a08\u91cf\u3092\u8a08\u7b97":18,"\u7d76\u5bfe":24,"\u7d76\u671b":10,"\u7dca\u6025\u4e8b\u614b\u5ba3\u8a00\u304c\u51fa\u3055\u308c\u5831\u9053\u304c\u52a0\u71b1\u3057\u3066\u3044\u305f\u9803\u306b\u306f":7,"\u7dca\u6025\u4e8b\u614b\u5ba3\u8a00\u306e\u89e3\u9664":13,"\u7dcf\u52d9\u7701\u7d71\u8a08\u5c40\u306f\u4ee4\u548c2\u5e742\u6708\u306b":9,"\u7dd1\u306e\u7dda\u3067\u793a\u3057\u305f\u3088\u3046\u306a":8,"\u7dd1\u8272\u3067\u5857\u308a\u3064\u3076\u3057\u307e\u3057\u305f":6,"\u7dda\u3060\u3051\u3058\u3083\u306a\u304f\u70b9\u3092\u63cf\u304f\u3053\u3068\u3082\u51fa\u6765\u308b":5,"\u7dda\u3084\u68d2":5,"\u7dda\u3084\u70b9\u7b49\u306e\u8aac\u660e":5,"\u7dda\u5f62\u4ee3\u6570\u306e\u4e2d\u3067\u3082\u5fdc\u7528\u4e0a\u975e\u5e38\u306b\u91cd\u8981\u3067\u3042\u308b":19,"\u7dda\u5f62\u4ee3\u6570\u306e\u6559\u79d1\u66f8\u306b\u306f\u610f\u5916\u3068svd\u306f\u8f09\u3063\u3066\u3044\u306a\u304b\u3063\u305f\u308a\u3059\u308b\u306e\u3067":19,"\u7dda\u5f62\u4ee3\u6570\u306e\u7a2e\u3005\u306e\u6982\u5ff5\u304c\u73fe\u308c\u308b\u3053\u3068\u3092\u77e5\u308a\u5c11\u3057\u305a\u3064\u7406\u89e3\u304c\u5f97\u3089\u308c":19,"\u7dda\u5f62\u4ee3\u6570\u3092\u3084\u308c":19,"\u7dda\u5f62\u56de\u5e30\u30e2\u30c7\u30eb":12,"\u7de8\u96c6":1,"\u7de8\u96c6\u3055\u308c\u305f\u3082\u306e\u306fgoogl":1,"\u7de8\u96c6\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":21,"\u7de8\u96c6\u306f\u7c21\u5358":24,"\u7de8\u96c6\u3082\u662f\u975e\u3084\u3063\u3066\u307f\u3066\u307b\u3057\u3044":21,"\u7de8\u96c6\u30e2\u30fc\u30c9\u304b\u3089\u629c\u3051\u308b\u306e\u306fesc":24,"\u7de8\u96c6\u4e88\u5b9a":12,"\u7de8\u96c6\u5185\u5bb9\u304c\u6b8b\u3063\u3066\u3044\u308b\u5834\u5408\u306f":21,"\u7de8\u96c6\u524d":9,"\u7de8\u96c6\u5f8c":9,"\u7de8\u96c6\u6a29\u9650\u304c\u306a\u3044\u3064\u307e\u308a":25,"\u7de8\u96c6\u8005":25,"\u7df4\u7fd2":3,"\u7df4\u7fd2\u3057\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u7df4\u7fd2\u554f\u984c":[3,25],"\u7df4\u7fd2\u5e33\u3067\u66f8\u3044\u3066\u3044\u308b\u30b3\u30fc\u30c9\u3084\u8a18\u8ff0\u304c\u6b63\u3057\u3044\u304b\u3069\u3046\u304b\u306f\u4e00\u5207\u6388\u696d\u306e\u8a55\u70b9\u306b\u306f\u95a2\u4fc2\u304c\u306a\u3044":25,"\u7df4\u7fd2\u5e33\u306b\u8a73\u7d30\u306a\u8cea\u554f\u3068\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u307e\u3057\u305f":25,"\u7df4\u7fd2\u5e33\u306eurl":25,"\u7df4\u7fd2\u5e33_\u6c0f\u540d_123456x":25,"\u7e26":5,"\u7e26\u65b9\u5411\u306e\u7d50\u5408\u306fpandas\u306econcat":18,"\u7e26\u6a2a\u306b\u4e26\u3076\u30d4\u30af\u30bb\u30eb\u306e\u6570\u3092\u884c\u5217\u306e\u884c\u3068\u5217\u306e\u6570\u306b\u5bfe\u5fdc\u3055\u305b\u308b":19,"\u7e26\u8ef8\u306e\u30b9\u30b1\u30fc\u30eb\u3092\u63c3\u3048\u3066\u6bd4\u8f03\u3059\u308b\u307b\u3046\u304c\u826f\u3044":6,"\u7e26n\u500b":6,"\u7e2e\u5c0f":21,"\u7e70\u308a\u8fd4\u3057\u306b\u306a\u308b\u304c":21,"\u7e70\u308a\u8fd4\u3057\u306e\u64cd\u4f5c\u306f\u95a2\u6570\u306b\u3059\u308b":4,"\u7e70\u308a\u8fd4\u3057\u306e\u6570\u304c\u524d\u3082\u3063\u3066\u308f\u304b\u3089\u306a\u3044\u30b1\u30fc\u30b9\u306b\u906d\u9047\u3059\u308b\u3053\u3068\u304c\u3042\u308b":3,"\u7e70\u308a\u8fd4\u3059\u56de\u6570\u3092\u8a2d\u5b9a":3,"\u7f6e\u63db\u3084":9,"\u7f8e\u5bb9":13,"\u7fa4\u99ac\u770c":[3,5],"\u8003\u3048\u305f\u3044\u5024\u3092\u76f4\u63a5\u30eb\u30fc\u30d7\u3067\u6271\u3046\u306e\u3067\u306f\u306a\u304f\u9593\u63a5\u7684\u306a\u5024":3,"\u8003\u3048\u305f\u3044\u91cf\u3092\u6570\u5f0f\u3068\u3057\u3066\u5b9a\u7fa9\u3057\u3066\u305d\u308c\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u5909\u63db\u3057":7,"\u8003\u3048\u65b9":7,"\u8077\u696d":13,"\u80cc\u5f8c\u306b\u3042\u308b":7,"\u80cc\u5f8c\u306b\u3042\u308b\u30e2\u30c1\u30d9\u30fc\u30b7\u30e7\u30f3\u3084\u6982\u5ff5\u3092\u7406\u89e3\u3057\u3066\u304a\u304f\u3053\u3068\u306f":8,"\u80cc\u5f8c\u306b\u306f":21,"\u80cc\u666f\u304c\u9aea\u306e\u6bdb\u3068\u5909\u5316":20,"\u80cc\u666f\u8272\u306a\u3069\u3092\u5909\u3048\u3064\u3064\u5f90\u3005\u306b\u671b\u3080\u3088\u3046\u306a\u30b0\u30e9\u30d5\u306b\u3057\u3066\u3044\u304d\u307e\u3059":5,"\u8102\u8cea":18,"\u81a8\u5927\u306a\u884c\u306e\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306b\u5bfe\u3057\u3066":9,"\u81ea\u4f53\u3092\u3069\u3046\u6c7a\u3081\u308b":7,"\u81ea\u4f5c\u95a2\u6570\u306e\u5b9a\u7fa9\u306e\u4ed5\u65b9\u304c\u5206\u304b\u308b":25,"\u81ea\u5206\u304c\u3084\u308a\u305f\u3044\u64cd\u4f5c\u3092\u304d\u3061\u3093\u3068\u8a00\u8a9e\u5316\u3059\u308b":9,"\u81ea\u5206\u304c\u5b9f\u73fe\u3057\u305f\u3044\u64cd\u4f5c":2,"\u81ea\u5206\u304c\u5b9f\u73fe\u3057\u305f\u3044\u64cd\u4f5c\u306b\u3042\u308f\u305b\u3066\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u63db\u3048\u308b\u5fc5\u8981\u304c\u3042\u308b":9,"\u81ea\u5206\u304c\u671b\u3080\u3088\u3046\u306a\u6587\u7ae0\u3092\u751f\u6210\u3059\u308b":21,"\u81ea\u5206\u304c\u8208\u5473\u306e\u3042\u308b\u554f\u984c\u3092\u6700\u9069\u5316\u554f\u984c\u306b\u5e30\u7740\u3055\u305b\u3066\u89e3\u304f\u305f\u3081\u306b\u306f\u4e0d\u53ef\u6b20\u3060":8,"\u81ea\u5206\u3060\u3051\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3092\u4f5c\u6210\u3057\u305f\u308a":1,"\u81ea\u5206\u3067\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092web\u3067\u691c\u7d22\u3057\u305f\u308a":25,"\u81ea\u5206\u3067\u30af\u30e9\u30b9\u306a\u3044\u3057\u30e1\u30bd\u30c3\u30c9\u3092\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u306f\u306a\u3044\u3068\u306f\u601d\u3046\u304c":4,"\u81ea\u5206\u306e\u63cf\u304d\u305f\u3044\u30b0\u30e9\u30d5\u306b\u8fd1\u3065\u3051\u3066\u3044\u304f\u306e\u304c\u826f\u3044\u3067\u3057\u3087\u3046":5,"\u81ea\u5206\u306e\u7406\u89e3\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u30b3\u30fc\u30c9\u3092\u3069\u3093\u3069\u3093\u66f8\u3044\u3066\u3069\u3093\u3069\u3093\u5931\u6557\u3057\u3088\u3046":25,"\u81ea\u5206\u306e\u76ee\u7684\u306e\u305f\u3081\u306b\u3069\u3046\u3059\u308c\u3070\u826f\u3044\u304b\u985e\u63a8\u3057\u306a\u304c\u3089\u6539\u826f\u3057\u3066\u3044\u3063\u3066":5,"\u81ea\u52d5\u5316\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u3067":9,"\u81ea\u7136\u3068\u884c\u5217\u3068\u307f\u306a\u3059\u3053\u3068\u304c\u3067\u304d\u308b":19,"\u81ea\u7136\u5bfe\u6570":[5,8],"\u81ea\u7136\u79d1\u5b66":6,"\u81ea\u7136\u79d1\u5b66\u3084\u7d71\u8a08\u5b66\u306a\u3069\u3067\u69d8\u3005\u306a\u3053\u3068\u3092\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u305f\u3044\u3068\u304d":6,"\u81ea\u7136\u79d1\u5b66\u5206\u91ce\u306e\u7406\u8ad6\u8a08\u7b97\u306a\u3069\u306e\u6839\u5e79\u306b\u3082\u306a\u3063\u3066\u3044\u308b\u6c4e\u7528\u6027\u306e\u9ad8\u3044\u624b\u6cd5\u3067\u3042\u308b":19,"\u81ea\u7136\u8a00\u8a9e":20,"\u81ea\u7531\u306a\u767a\u60f3\u3067\u8ab2\u984c\u3092\u8a2d\u8a08\u3057":25,"\u81ea\u8eab\u3067\u3044\u308d\u3093\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3068\u304d\u306f":3,"\u81ea\u8eab\u3067\u5165\u529b\u3057\u305f\u969b\u3088\u308a\u3082\u8584\u3044\u8272\u3067\u30b3\u30fc\u30c9":21,"\u81ea\u8eab\u3067\u65b0\u898f\u306a\u624b\u6cd5\u3092\u958b\u767a\u3057\u3066\u5b9f\u88c5\u3059\u308b\u80fd\u529b":17,"\u81ea\u8eab\u306e\u3084\u308a\u305f\u3044\u4f5c\u696d\u3092\u8a00\u8a9e\u5316\u3059\u308b":21,"\u81ea\u8eab\u306e\u5b66\u7fd2\u306e\u305f\u3081\u306e\u7df4\u7fd2\u76f8\u624b\u308424\u6642\u9593\u5bfe\u5fdc\u306eta\u3084\u30c1\u30e5\u30fc\u30bf\u30fc\u306e\u3088\u3046\u306b\u6d3b\u7528\u3057\u3066\u3082\u3089\u3044\u305f\u3044":21,"\u81ea\u8eab\u306e\u610f\u56f3\u3092100":21,"\u81ea\u8eab\u306e\u7406\u89e3\u3084\u3053\u308c\u307e\u3067\u306e\u601d\u8003":21,"\u81ea\u8eab\u306e\u8208\u5473\u306b\u5408\u308f\u305b\u3066\u8ab2\u984c\u3092\u8a2d\u8a08\u3057\u3066\u3044\u304f\u3053\u3068":25,"\u81ea\u8eab\u306e\u8eab\u9577\u4f53\u91cd\u3092\u7528\u3044\u308b\u5fc5\u8981\u306f\u306a\u3044":25,"\u81f3\u3063\u3066\u81ea\u7136\u306a\u767a\u60f3\u3068\u3044\u3048\u308b":8,"\u8208\u5473\u304c\u3042\u308b\u65b9\u306f\u4e0b\u8a18\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u306a\u3069\u3067\u8abf\u3079\u3066\u307f\u3088\u3046":8,"\u8208\u5473\u304c\u3042\u308c\u3070\u4eba\u751f\u3067\u4e00\u5ea6\u306f\u3084\u3063\u3066\u307f\u3066\u304f\u3060\u3055\u3044":8,"\u8208\u5473\u306b\u5fdc\u3058\u3066\u5b66\u7fd2\u3057\u3066\u304f\u3060\u3055\u3044":3,"\u8208\u5473\u306e\u3042\u308b\u3082\u306e":18,"\u8208\u5473\u306e\u3042\u308b\u30c7\u30fc\u30bf\u304c":7,"\u8208\u5473\u306e\u3042\u308b\u30c7\u30fc\u30bf\u304c\u3069\u306e\u5217\u306b\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308b\u304b\u306f\u6ce8\u610f\u304c\u5fc5\u8981":18,"\u8208\u5473\u306e\u3042\u308b\u30c7\u30fc\u30bf\u304c\u30aa\u30fc\u30d7\u30f3\u30c7\u30fc\u30bf\u3068\u3057\u3066\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u8abf\u3079\u308b":25,"\u8208\u5473\u306e\u3042\u308b\u533a\u9593":8,"\u8208\u5473\u306e\u3042\u308b\u8981\u7d20":3,"\u8208\u5473\u306e\u3042\u308b\u91cf\u304c\u4f55\u756a\u76ee\u304b\u3092\u6307\u5b9a\u3057\u3066\u307e\u3068\u3081\u3066\u307f\u308b\u3053\u3068\u306b\u3057\u3088\u3046":18,"\u822a\u7a7a\u904b\u8f38\u696d":13,"\u826f\u3044":[10,19],"\u826f\u3044\u4f8b":2,"\u826f\u3055":10,"\u8272\u3092\u30ab\u30e9\u30fc\u30b3\u30fc\u30c9\u3067\u6307\u5b9a\u3059\u308b":25,"\u8272\u3093\u306a\u65b9\u6cd5\u304c\u8003\u3048\u3089\u308c\u308b":8,"\u8272\u5206\u3051\u3057\u3066\u304f\u308c\u305f\u308a\u3059\u308b":21,"\u82b1\u5f01\u306e\u5e45":17,"\u82b1\u5f01\u306e\u9577\u3055":17,"\u82e6\u624b\u610f\u8b58\u306e\u76f8\u95a2\u3092\u8abf\u3079\u305f\u3044":9,"\u82e6\u624b\u610f\u8b58\u306e\u8abf\u67fb\u3092\u60f3\u5b9a\u3057\u305f\u7591\u4f3c\u30a2\u30f3\u30b1\u30fc\u30c8\u3067\u3059":9,"\u82e6\u624b\u610f\u8b58\u3092":9,"\u82f1\u8a9e":[5,9],"\u82f1\u8a9e\u3067\u8abf\u3079\u308c\u3070\u5fc5\u8981\u306a\u60c5\u5831\u306f\u51fa\u3066\u304f\u308b":24,"\u82f1\u8a9e\u306b\u3064\u3044\u3066\u306f\u3069\u3046\u3067\u3057\u3087\u3046\u304b":9,"\u8328\u57ce\u770c":3,"\u8457\u8005\u306e\u7406\u89e3":21,"\u8457\u8005\u306f":21,"\u8457\u8005\u306fwindows\u30e6\u30fc\u30b6\u30fc\u3067\u306f\u306a\u3044\u306e\u3067":21,"\u8457\u8005\u3082":21,"\u8457\u8005\u3082\u7d06\u4f59\u66f2\u6298\u3042\u308av":21,"\u8457\u8005\u3089\u306e\u30da\u30fc\u30b8\u306e\u30ea\u30f3\u30af":19,"\u865a\u6570\u3092\u5c0e\u5165\u3059\u308c\u3070\u5b9a\u7fa9\u3067\u304d\u307e\u3059\u304c":3,"\u8840\u6db2\u578b":[3,18],"\u8840\u6db2\u578b\u3092\u8ffd\u52a0\u3057\u305f\u3051\u308c\u3070\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3059\u308c\u3070\u3088\u3044":3,"\u884c":[9,18],"\u884c\u3054\u3068\u306b\u30b9\u30da\u30fc\u30b9\u304c\u751f\u3058\u3066\u3044\u308b\u7406\u7531\u306b\u3064\u3044\u3066\u306f\u5f8c\u3067\u8aac\u660e\u3057\u307e\u3059":9,"\u884c\u3092\u6307\u5b9a\u3059\u308b\u9805\u76ee\u540d\u304c\u65e2\u306b\u6574\u6570\u5024\u306a\u306e\u3067":18,"\u884c\u5217":[6,7,17,19],"\u884c\u5217\u306e":19,"\u884c\u5217\u306e\u30b5\u30a4\u30ba\u306f\u5c0f\u3055\u3044\u306e\u306b\u8d8a\u3057\u305f\u3053\u3068\u306f\u306a\u3044":19,"\u884c\u5217\u306e\u4f4e\u30e9\u30f3\u30af\u8fd1\u4f3c\u3092\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u308b":19,"\u884c\u5217\u306e\u5217\u30d9\u30af\u30c8\u30eb\u3092\u7528\u3044\u305f\u8868\u8a18\u306f":19,"\u884c\u5217\u306e\u56fa\u6709\u5024\u3092\u6c42\u3081\u308b\u90e8\u5206\u306e\u8a73\u3057\u3044\u8aac\u660e\u306f":17,"\u884c\u5217\u306e\u7279\u7570\u5024\u5206\u89e3\u3068":19,"\u884c\u5217\u306e\u975e\u5bfe\u89d2\u8981\u7d20\u304c\u76f8\u95a2\u4fc2\u6570\u3067\u3059":5,"\u884c\u5217\u3084\u30d9\u30af\u30c8\u30eb\u306b\u5bfe\u3059\u308b\u6f14\u7b97\u3067\u305d\u306e\u5dee\u304c\u9855\u8457\u306a\u3082\u306e\u3068\u306a\u308a\u307e\u3059":22,"\u884c\u5217\u3092\u5b9a\u7fa9\u3059\u308b":17,"\u884c\u5217\u5206\u89e3\u3082\u4f55\u306e\u3053\u3068\u306f\u306a\u3044":19,"\u884c\u5217\u6f14\u7b97\u30e9\u30a4\u30d6\u30e9\u30ea":22,"\u884c\u5217\u8981\u7d20\u306e\u6570103292":19,"\u884c\u5217b":22,"\u884c\u6570":18,"\u884c\u6570\u306f":9,"\u884c\u65b9\u5411\u306e\u30c7\u30fc\u30bf\u9805\u76ee":18,"\u884c\u65b9\u5411\u306e\u9806\u756a\u306b\u30ab\u30a6\u30f3\u30c8\u3059\u308b":6,"\u884c\u65b9\u5411\u3092":18,"\u884c\u756a\u53f7":18,"\u884c\u756a\u53f7\u304c\u308f\u304b\u3063\u3066\u3044\u308b\u306a\u3089":18,"\u8868\u73fe\u3067\u304d\u308b\u30c7\u30fc\u30bf\u306e\u5e45":7,"\u8868\u793a":15,"\u8868\u793a\u3055\u308c\u308b\u4fc2\u6570\u306f\u6b21\u6570\u304c\u9ad8\u3044\u3068\u3053\u308d\u304b\u3089":7,"\u8868\u793a\u3057\u305f\u308a":18,"\u8868\u793a\u30b5\u30a4\u30ba\u306a\u3069\u306f\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3067\u62e1\u5927":21,"\u8868\u7ae0\u9805\u76ee":13,"\u8868\u8a18\u306b\u76f4\u305b":5,"\u88dc\u8db3":3,"\u88dc\u8db3\u30ce\u30fc\u30c8":11,"\u88dc\u8db3\u77e5\u8b58\u3092\u4e0e\u3048\u3066\u304f\u308c\u305f\u308a\u3059\u308b\u3068\u3044\u3046\u4f8b\u3082\u898b\u305b\u3088\u3046":21,"\u8907\u6570\u306e\u30b3\u30fc\u30c9\u3092\uff11\u884c\u306b\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u308b\u6a5f\u80fd\u3092\u7528\u3044\u305f":2,"\u8907\u6570\u306e\u30bb\u30eb\u306b\u307e\u305f\u304c\u308b\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3044\u304f\u3046\u3061\u306b\u5909\u6570\u306b\u610f\u56f3\u3057\u306a\u3044\u3082\u306e\u304c\u5165\u3063\u3066\u3044\u305f\u308a\u306a\u3093\u304b\u5909\u3060\u306a":1,"\u8907\u6570\u306e\u5024\u3067\u3082\u53ef\u80fd\u3067\u3059\u3057":4,"\u8907\u6570\u306epython\u74b0\u5883\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f":21,"\u8907\u6570\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6240\u6301\u3057\u3066\u3044\u308b\u65b9\u306f\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u9078\u629e\u3092\u3057\u3066":5,"\u8907\u6570\u5e74\u5ea6\u306b\u6e21\u308b\u30c7\u30fc\u30bf\u3092\u89e3\u6790\u3057\u305f\u3044":7,"\u8907\u6570\u884c\u306b\u6e21\u308b\u5834\u5408\u3082\u540c\u69d8\u3067\u3042\u308b":21,"\u8907\u6570\u8981\u7d20\u3092\u5165\u308c\u308b\u969b\u306f\u30ab\u30f3\u30de\u3067\u533a\u5207\u308a\u307e\u3059":3,"\u8907\u7d20\u5171\u5f79\u304b\u3064\u8ee2\u7f6e":19,"\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u306e\u53d6\u308a\u6271\u3044\u3092\u7c21\u5358\u306b\u3057\u3066\u304f\u308c\u305f\u308a":2,"\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u3092\u6271\u3046\u969b\u306b":3,"\u8907\u96d1\u306a\u51e6\u7406\u306b\u306a\u3063\u3066\u30b3\u30fc\u30c9\u304c\u306a\u304b\u306a\u304b\u8a08\u7b97\u3092\u5b8c\u4e86\u3057\u306a\u3044\u3068\u304d\u306b\u306f":3,"\u8907\u96d1\u306a\u51e6\u7406\u306b\u306a\u308b\u3068":3,"\u8907\u96d1\u306a\u72b6\u6cc1\u306b\u306a\u308b\u3068":3,"\u8907\u96d1\u306b\u8a2d\u8a08\u3055\u308c\u305f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u8aad\u307f\u89e3\u304b\u306a\u3051\u308c\u3070\u306a\u3089\u305a":17,"\u8981\u3089\u306a\u3044\u3068\u3053\u308d\u306f\u6368\u3066\u3066\u3082\u826f\u3044":9,"\u8981\u51fa\u5178":9,"\u8981\u7d20\u304c2\u3064\u3057\u304b\u306a\u3044\u30ea\u30b9\u30c8\u306e\uff13\u756a\u76ee\u306e\u8981\u7d20\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3088\u3046\u3068\u3059\u308b\u3068":14,"\u8981\u7d20\u304c\u305f\u304f\u3055\u3093\u306e\u30ea\u30b9\u30c8\u3092\u7c21\u5358\u306b\u3064\u304f\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":3,"\u8981\u7d20\u304c\u5909\u66f4\u4e0d\u53ef":3,"\u8981\u7d20\u3054\u3068\u306b\u30eb\u30fc\u30d7\u3092\u56de\u3057\u305f\u308a\u3057\u306a\u304f\u3066\u3088\u3044":22,"\u8981\u7d20\u3054\u3068\u306e\u548c\u306b\u306a\u3063\u3066\u307b\u3057\u3044\u3088\u3046\u306a\u6c17\u3082\u3057\u307e\u3059\u304c":3,"\u8981\u7d20\u3054\u3068\u306e\u548c\u306e\u3088\u3046\u306a":3,"\u8981\u7d20\u3054\u3068\u306e\u7a4d\u3092\u3068\u3063\u3066\u548c\u3092\u53d6\u308b":22,"\u8981\u7d20\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u304d\u306f\u30bf\u30d7\u30eb\u306e\u3068\u304d\u3067\u3082\u3084\u306f\u308a\u89d2\u62ec\u5f27\u3092\u4f7f\u3046":3,"\u8981\u7d20\u306b\u5b9f\u6570\u5024\u3092\u6301\u3064\u9069\u5f53\u306a\u30ea\u30b9\u30c8\u30922\u3064\u4ee5\u4e0a\u5b9a\u7fa9\u3057":25,"\u8981\u7d20\u306b\u8eab\u9577":25,"\u8981\u7d20\u306e\u6570\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u8981\u7d20\u3092\u53d6\u308a\u51fa\u3059\u305f\u3081\u306e\u30ad\u30fc":3,"\u8981\u7d20\u540c\u58eb\u306e\u548c\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059":22,"\u898b\u305f\u76ee":2,"\u898b\u308b\u4eba\u306b\u3088\u3063\u3066\u9055\u3046\u6349\u3048\u65b9\u306b\u306a\u3063\u305f\u308a\u3057\u307e\u3059":4,"\u898b\u901a\u3057\u3084\u3059\u304f\u306a\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3059":5,"\u898f\u5b9a\u306e\u30bf\u30fc\u30df\u30ca\u30eb":21,"\u898f\u5b9a\u306e\u30bf\u30fc\u30df\u30ca\u30eb\u304c\u958b\u304f\u306e\u3067":21,"\u898f\u7d04\u3067\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3092\u7981\u6b62\u3057\u3066\u3044\u308b\u30da\u30fc\u30b8\u304c\u3042\u308b":13,"\u898f\u7d04\u3067\u7279\u306b\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u3092\u7981\u6b62\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u3067\u3082":13,"\u89d2\u62ec\u5f27\u3068\u9593\u9055\u3048\u3066\u4e38\u62ec\u5f27\u3092\u4f7f\u3046\u30df\u30b9\u3082\u3088\u304f\u898b\u3089\u308c\u307e\u3059":14,"\u89e3\u306e\u4e00\u610f\u6027\u306e\u8a3c\u660e\u7b49\u306b\u3064\u3044\u3066\u306f\u6559\u79d1\u66f8\u306b\u8b72\u308b":16,"\u89e3\u306e\u5b58\u5728\u6027\u3084\u4e0b\u8a18\u306e\u30ea\u30d7\u30b7\u30c3\u30c4\u6761\u4ef6\u306a\u3069\u9069\u5207\u306a\u6761\u4ef6\u306e\u5143\u3067\u306e":16,"\u89e3\u51cd\u3057\u305f\u30d5\u30a9\u30eb\u30c0\u3092\u81ea\u8eab\u306egoogl":5,"\u89e3\u6790\u3057\u305f\u3044\u30c7\u30fc\u30bf\u304c2\u7a2e\u985e\u3060\u3051\u306a\u3089":7,"\u89e3\u6790\u3057\u305f\u308a":13,"\u89e3\u6790\u306e\u624b\u6cd5\u3092\u5b66\u3076\u969b\u306b\u306f":7,"\u89e3\u6790\u7684\u306b\u5fae\u5206\u304c\u3067\u304d\u308b\u95a2\u6570\u3092\u4f7f\u3063\u3066":8,"\u89e3\u6790\u7684\u306b\u89e3\u3051\u306a\u3044\u5834\u5408\u306f":15,"\u89e3\u6c7a\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b":25,"\u89e3\u6c7a\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u77e5\u8b58\u3092\u5b66\u3076":25,"\u89e3\u6c7a\u7b56\u3092\u63d0\u793a\u3057\u3066\u304d\u305f\u308a":21,"\u89e3\u6cd5\u304b\u3064\uff12\u6bb5\u6cd5":16,"\u8a00\u3044\u63db\u3048\u308c\u3070":7,"\u8a00\u53ca\u3057\u306a\u304b\u3063\u305f\u91cd\u8981\u306a\u4e8b\u9805":11,"\u8a00\u8a9e\u3054\u3068\u306b\u69d8\u3005\u306a\u62e1\u5f35\u6a5f\u80fd\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u308b":21,"\u8a00\u8a9e\u30e2\u30c7\u30eb\u306fpython\u306e\u6587\u6cd5":21,"\u8a00\u8a9e\u30e2\u30c7\u30eb\u3092\u5bfe\u8a71\u7684\u306b\u6d3b\u7528\u3059\u308b\u4e0a\u3067\u306f":21,"\u8a00\u8a9e\u5316":2,"\u8a08\u753b\u3092\u305f\u3066\u3088\u3046":25,"\u8a08\u753b\u7684\u306b\u9032\u3081\u308b\u3053\u3068":25,"\u8a08\u753b\u884c\u5217":12,"\u8a08\u753b\u884c\u5217\u306e\u8981\u7d20\u306f":12,"\u8a08\u753b\u884c\u5217\u3092\u7528\u3044\u308b\u65b9\u6cd5":12,"\u8a08\u7b97":11,"\u8a08\u7b97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":8,"\u8a08\u7b97\u306e\u307f":9,"\u8a08\u7b97\u6642\u9593\u304c\u9577\u304f\u304b\u304b\u3063\u3066\u3057\u307e\u3046\u3053\u3068\u304c\u591a\u3044\u3067\u3059":22,"\u8a08\u7b97\u6a5f":23,"\u8a08\u7b97\u91cf\u306e\u5897\u52a0\u3092\u9632\u3050\u3053\u3068\u304c\u3067\u304d\u308b":16,"\u8a18\u53f7\u304b\u3089":21,"\u8a18\u53f7\u3068\u3057\u3066\u306e\u7a7a\u767d\u3067\u3059":9,"\u8a18\u53f7\u3092\u542b\u3080\u884c\u4ee5\u964d\u3060\u3051\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u3069\u3046\u3059\u308c\u3070\u3044\u3044\u3067\u3057\u3087\u3046\u304b":9,"\u8a2d\u5b9a":3,"\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u304c\u7570\u306a\u308b\u3053\u3068\u304c\u3042\u308b":24,"\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u5909\u66f4\u3057\u305f\u5834\u5408\u306f":24,"\u8a2d\u8a08\u3059\u308b\u304b\u3082\u91cd\u8981\u306a\u8a71\u984c\u3060\u304c":7,"\u8a55\u4fa1\u304c\u53ef\u80fd\u306a\u3082\u306e\u3067\u3042\u308b\u3053\u3068":25,"\u8a66\u3057\u306b\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u3066\u56f3\u3092\u4fdd\u5b58\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"\u8a66\u3057\u306b\u8457\u8005\u306e\u74b0\u5883":21,"\u8a66\u884c\u3057\u305f\u3044\u51e6\u7406\u306e\u30d6\u30ed\u30c3\u30af":3,"\u8a66\u884c\u3092\u958b\u793a\u3057\u305f\u4e0a\u3067\u8cea\u554f\u3092\u3059\u308b":21,"\u8a66\u884c\u932f\u8aa4\u304c\u5fc5\u8981\u3067\u3059":10,"\u8a72\u5f53\u3059\u308b\u3082\u306e\u306f\u4e00\u3064\u3067\u3059\u306e\u3067":24,"\u8a72\u5f53\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u898b\u3064\u3051\u3089\u308c\u308b\u306f\u305a\u3067\u3059":24,"\u8a72\u5f53\u3059\u308b\u30c7\u30fc\u30bf\u304c\u3069\u306e\u884c":18,"\u8a72\u5f53\u3059\u308b\u5019\u88dc":24,"\u8a72\u5f53\u3059\u308b\u7d71\u8a08\u30c7\u30fc\u30bf\u306e\u4e00\u89a7\u3092":13,"\u8a72\u5f53\u30d5\u30a1\u30a4\u30eb\u7b49":9,"\u8a73\u3057\u3044\u65b9\u6cd5\u306b\u3064\u3044\u3066\u306f":21,"\u8a73\u3057\u304f\u306f":5,"\u8a73\u3057\u304f\u306f\u8a18\u8f09\u3057\u307e\u305b\u3093\u304c":17,"\u8a73\u7d30\u306a\u60c5\u5831\u304c\u5f97\u3089\u308c\u308b":18,"\u8a8d\u8a3c\u304c\u6e08\u3080\u3068":21,"\u8a98\u5c0e\u7684\u306a":21,"\u8aa4\u3063\u305f\u5185\u5bb9\u306b\u7de8\u96c6\u3057\u3066\u3057\u307e\u3063\u305f\u5834\u5408\u3082googl":1,"\u8aa4\u5909\u63db\u3092\u7f6e\u63db\u3059\u308b\u304f\u3089\u3044\u306a\u3089":9,"\u8aa4\u5dee\u304c\u5927\u304d\u304b\u3063\u305f\u308a":16,"\u8aa4\u5dee\u95a2\u6570":8,"\u8aac\u660e":21,"\u8aac\u660e\u5909\u6570":5,"\u8aad\u307f\u8fbc\u3080\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\u306e\u6307\u5b9a":9,"\u8aad\u307f\u8fbc\u3093\u3060\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u304b\u3089":25,"\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059":0,"\u8ab0\u304b\u306b\u30b9\u30e9\u30a4\u30c9\u3092\u6e21\u3059\u3068\u304d\u306f\u8efd\u91cf\u5316\u3059\u308b":5,"\u8ab0\u304b\u306b\u9001\u3063\u305f\u308a\u3059\u308b\u5fc5\u8981\u304c\u51fa\u3066\u304f\u308b\u3068\u601d\u3044\u307e\u3059":5,"\u8ab0\u3082\u8cac\u4efb\u3092\u3068\u3063\u3066\u304f\u308c\u306a\u3044":24,"\u8ab2\u984c\u306e\u5909\u66f4\u3092\u6c42\u3081\u308b\u3053\u3068\u304c\u3042\u308b":25,"\u8ab2\u984c\u3092\u8a2d\u8a08\u3057\u3066\u3044\u304f":25,"\u8ab2\u984c\u4f5c\u6210\u8005\u306e\u30b5\u30dd\u30fc\u30c8\u3084\u63a1\u70b9":25,"\u8abf\u6574":7,"\u8ad6\u6587\u3067\u30e9\u30b9\u30bf\u753b\u50cf\u3092\u4f7f\u3046\u5834\u5408\u306f":5,"\u8ad6\u7406\u30a8\u30e9\u30fc\u3068\u306f":14,"\u8ad6\u7406\u7684\u306b\u306f\u304a\u304b\u3057\u3044\u547d\u4ee4\u3067\u3059\u304c":14,"\u8b58\u5225\u5b50":2,"\u8c37\u3092\u884c\u3063\u305f\u308a\u6765\u305f\u308a\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u308b":8,"\u8ca0":7,"\u8ca0\u3051":3,"\u8ca0\u3051\u305f":3,"\u8ca0\u3051\u305f\u306e\u3067\u5e30\u308a\u307e\u3059":3,"\u8ca0\u3051\u305f\u3089\u9023\u7d9a\u52dd\u3061\u6570\u30920\u306b\u30ea\u30bb\u30c3\u30c8":3,"\u8ca0\u3051\u306e\u5834\u5408":3,"\u8ca0\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\u8ca0\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u99c6\u4f7f\u3057\u3066\u3084\u3063\u3066\u307f\u307e\u3057\u3087\u3046":3,"\u8ca0\u306e\u5834\u5408\u306f\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3060\u3051\u3092\u8868\u793a\u3057\u3066\u30a8\u30e9\u30fc\u304c\u8d77\u304d\u305f\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\u3059\u308b":3,"\u8ce2\u3044":8,"\u8cea\u554f":25,"\u8cea\u554f\u3084\u305d\u306e\u8fd4\u7b54\u3092\u5186\u6ed1\u306b\u3059\u308b\u305f\u3081\u306e\u9023\u7d61\u5e33\u306e\u3088\u3046\u306a\u3082\u306e\u3060\u3068\u601d\u3063\u3066\u3082\u3089\u3048\u308c\u3070\u826f\u3044":25,"\u8cea\u70b9\u306e\u4f4d\u7f6e\u306e\u5909\u5316\u304c":16,"\u8cfc\u8cb7\u610f\u6b32\u306f\u5fc5\u305a\u3057\u3082":7,"\u8d64":6,"\u8d64\u8272":11,"\u8d77\u52d5\u3057\u3066\u304b\u3089\u306e\u7d4c\u904e\u6642\u9593\u304c\u4e71\u6570\u306e\u7a2e\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u591a\u3044\u3088\u3046\u3067":6,"\u8d77\u52d5\u3059\u308b\u3068":21,"\u8d85":10,"\u8db3\u3057\u7b97":2,"\u8db3\u3057\u7b97\u3084\u6574\u6570\u5024\u3068\u306e\u639b\u3051\u7b97\u304c\u9069\u7528\u3067\u304d\u308b":2,"\u8ddd\u96e2":4,"\u8ddd\u96e2\u306f":4,"\u8eab\u8fd1\u306a\u4f8b\u3068\u3057\u3066\u306f\u30cb\u30e5\u30fc\u30c8\u30f3\u306e\u904b\u52d5\u65b9\u7a0b\u5f0f\u306b\u306f\u3058\u307e\u308a":16,"\u8eab\u9577":[3,18],"\u8eab\u9577\u304c180cm":10,"\u8eab\u9577\u3068\u4f53\u91cd\u306b\u76f8\u5f53\u3059\u308b\u5909\u6570\u3092\u9069\u5f53\u306b\u5b9a\u7fa9\u3057":25,"\u8eab\u9577\u306f\u5165\u308c\u5b50\u306b\u306a\u3063\u3066\u3044\u308b\u30ea\u30b9\u30c8\u306e":3,"\u8eab\u9577\u3084\u4f53\u91cd\u306e\u5206\u5e03\u3084":6,"\u8eab\u9577\u3092\u3088\u308a\u91cd\u8996\u3059\u308b":10,"\u8eab\u9577\u3092\u3088\u308a\u9ad8\u3044\u7cbe\u5ea6\u3067\u63a8\u6e2c\u3057\u305f\u3044\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3092\u69cb\u7bc9\u3057\u305f\u3044\u306a\u3089\u8a71\u306f\u5225\u3067\u3059\u304c":10,"\u8eab\u9577\u3092for\u6587\u3092\u4f7f\u3063\u3066\u3069\u3093\u3069\u3093\u8db3\u3057\u3066\u3044\u304f":3,"\u8eab\u9577m\u306e\u4e8c\u4e57":25,"\u8ecc\u8de1\u3092\u30d7\u30ed\u30c3\u30c8\u3057\u3066\u307f\u307e\u3057\u3087\u3046":6,"\u8ef8\u30e9\u30d9\u30eb\u306e\u6307\u5b9a":5,"\u8ef8\u65b9\u5411":17,"\u8f9b\u3044\u3067\u3059":1,"\u8f9e\u66f8\u306b\u3057\u306a\u3044\u3068":3,"\u8f9e\u66f8\u3092\u4f5c\u308b\u969b\u306b\u306f":3,"\u8f9e\u66f8\u578b\u3068\u308f\u304b\u3063\u305f\u306e\u3067\u30ad\u30fc\u306e\u4e00\u89a7\u3092\u898b\u3066\u307f\u3088\u3046":13,"\u8f9e\u66f8\u578b\u306f":3,"\u8f9e\u66f8\u578b\u306f\u4f7f\u3044\u3053\u306a\u305b\u308c\u3070\u4fbf\u5229\u3067\u3059\u304c":3,"\u8f9e\u66f8\u578b\u306f\u6ce2\u62ec\u5f27":3,"\u8fd1\u4f3c":[2,16,17],"\u8fd1\u4f3c\u304c\u7121\u3044":19,"\u8fd1\u4f3c\u3067\u524a\u6e1b\u3067\u304d\u308b\u60c5\u5831\u304c\u6570\u5206\u306e\uff11\u30b9\u30b1\u30fc\u30eb\u3060\u3068\u3057\u3066\u3082\u99ac\u9e7f\u306b\u306f\u3067\u304d\u306a\u3044":19,"\u8fd1\u4f3c\u306b\u306a\u3063\u3066\u3044\u308b\u306a\u3089\u3070":19,"\u8fd1\u4f3c\u5f8c\u306e\u753b\u50cf\u3092\u8868\u793a\u3055\u305b\u3066\u307f\u305f":19,"\u8fd1\u4f3c\u7684\u306b":[6,8],"\u8fd4\u3059":4,"\u8fd4\u308a\u5024":7,"\u8fd4\u308a\u5024\u3068\u3082\u547c\u3076":4,"\u8ffd\u8a18":[9,25],"\u9006\u306b\u30b3\u30fc\u30c9\u3067\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb":1,"\u9006\u306b\u30ea\u30e2\u30fc\u30c8\u5074\u3067\u306f":24,"\u9006\u884c\u5217\u8a08\u7b97\u306b\u7531\u6765\u3059\u308b\u3082\u306e\u3067\u306f\u306a\u3044\u304b\u3068\u60f3\u50cf\u3057\u307e\u3059":12,"\u900f\u904e\u5ea6\u3084\u592a\u3055":5,"\u9014\u4e2d\u3067\u3046\u3063\u304b\u308a\u30bf\u30d6\u3084\u30d6\u30e9\u30a6\u30b6\u3092\u9589\u3058\u3066\u3057\u307e\u3046\u3068\u4f5c\u696d\u5185\u5bb9\u304c\u6d88\u3048\u3066\u3057\u307e\u3044\u307e\u3059":1,"\u901a\u308a\u306b\u5bfe\u3057\u3066\u6bce\u56de":4,"\u901a\u5e38\u306e":24,"\u901a\u5e38\u306f\u305d\u308c\u3067\u826f\u3044":3,"\u901a\u5e38\u306f\u6a19\u6e96\u5316\u3092\u884c\u3044\u307e\u3059":10,"\u901a\u79f0wsl":23,"\u9023\u7acb":16,"\u9023\u7acb1\u968e\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f":16,"\u9023\u7d9a\u30676\u304c5\u56de\u3067\u308b\u307e\u3067\u30b5\u30a4\u30b3\u30ed\u3092\u3075\u308b":3,"\u9023\u7d9a\u3067\u3042\u308b\u3068\u306f":16,"\u9023\u7d9a\u3067\u52dd\u3063\u305f\u5834\u5408":3,"\u9023\u7d9a\u52dd\u6570\u3068\u639b\u3051\u91d1\u3092\u8a2d\u5b9a\u3059\u308b":3,"\u9023\u7d9a\u52dd\u6570\u3092\u8a18\u9332\u3059\u308b\u5909\u6570hit\u3092\u5b9a\u7fa9":3,"\u9023\u7d9a\u7684\u306a\u6570\u306b\u3064\u3044\u3066\u4e71\u6570\u304c\u5fc5\u8981\u306b\u306a\u308b\u5834\u5408\u3082\u3042\u308b":6,"\u9032\u3093\u3060\u6ce8":[6,7,8,15],"\u904e\u53bb\u306b\u8a55\u4fa1\u3057\u305f":16,"\u904e\u5ea6\u306a\u30a2\u30af\u30bb\u30b9\u306f":13,"\u904e\u5ea6\u306a\u30a2\u30af\u30bb\u30b9\u3092\u3057\u3066\u306f\u3044\u3051\u307e\u305b\u3093":13,"\u904e\u9069\u5408":7,"\u904e\u9069\u5408\u3092\u907f\u3051\u308b":7,"\u9053\u306a\u308a\u306b\u9032\u3093\u3067addit":24,"\u9055\u3063\u3066\u3044\u305f\u3089":10,"\u9055\u3063\u3066\u3044\u3066\u3082":10,"\u9069\u5207\u306a\u6761\u4ef6":16,"\u9069\u5b9c\u3054\u81ea\u8eab\u306e\u74b0\u5883\u306b\u30d1\u30b9\u3092\u7f6e\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044":9,"\u9069\u5b9c\u30ab\u30ec\u30f3\u30c8":24,"\u9069\u5b9c\u30e9\u30f3\u30bf\u30a4\u30e0\u3084\u30ab\u30fc\u30cd\u30eb\u306a\u3069\u3092\u518d\u8d77\u52d5\u3057\u3066":14,"\u9069\u5b9c\u5bfe\u5fdc\u3059\u308b\u3082\u306e\u306b\u7f6e\u304d\u63db\u3048\u3066\u8aad\u3093\u3067\u3044\u305f\u3060\u3051\u308b\u3068\u52a9\u304b\u308a\u307e\u3059":1,"\u9069\u5b9c\u7686\u3055\u3093\u306e\u5834\u5408\u306b\u7f6e\u304d\u63db\u3048\u3066\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044":9,"\u9069\u5b9c\u7dda\u5f62\u4ee3\u6570\u306e\u6559\u79d1\u66f8\u7b49\u3092\u53c2\u7167\u3059\u308b\u3053\u3068":19,"\u9069\u5b9c\u7f6e\u304d\u63db\u3048\u308b":9,"\u9069\u5b9c\u8abf\u3079\u3066\u4f7f\u3044\u65b9\u3092\u899a\u3048\u3066\u307b\u3057\u3044":21,"\u9069\u5f53\u306a":6,"\u9069\u5f53\u306a3":19,"\u9069\u5f53\u306a\u3082\u306e\u3092\u5165\u529b\u3057\u3066enter\u3092\u62bc\u3059":23,"\u9069\u5f53\u306a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u3063\u3066":24,"\u9069\u5f53\u306a\u30c7\u30fc\u30bf\u3092\u751f\u6210\u3057\u3066\u304a\u304f":7,"\u9069\u5f53\u306a\u4e8c\u6b21\u5143\u30c7\u30fc\u30bf\u306e\u30d2\u30fc\u30c8\u30de\u30c3\u30d7\u3092\u4f5c\u6210\u3059\u308b\u30b3\u30fc\u30c9":21,"\u9069\u5f53\u306a\u4e8c\u6b21\u5143\u30c7\u30fc\u30bf\u306e\u30d2\u30fc\u30c8\u30de\u30c3\u30d7\u3092\u63cf\u753b\u3059\u308b\u30b3\u30fc\u30c9\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308b":21,"\u9069\u5f53\u306a\u4fc2\u6570\u30d9\u30af\u30c8\u30eb":17,"\u9069\u5f53\u306a\u5199\u771f\u3092\u3082\u3063\u3066\u304d\u3066":19,"\u9069\u5f53\u306a\u533a\u9593\u3067\u70b9\u3092\u4f5c\u6210\u3057\u3066\u63cf\u753b\u3057\u3066\u307f\u308b":15,"\u9069\u5f53\u306a\u533a\u9593\u306ex\u306e\u5024\u3092\u7528\u610f\u3059\u308b":10,"\u9069\u5f53\u306a\u533a\u9593\u5185\u3067\u30e9\u30f3\u30c0\u30e0\u306a\u6574\u6570\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":25,"\u9069\u5f53\u306a\u540d\u524d\u3092\u3064\u3051\u3066\u307f\u3088\u3046":21,"\u9069\u5f53\u306a\u5b9f\u6570\u306e\u4e71\u6570":25,"\u9069\u5f53\u306a\u6307\u793a\u6587\u3092\u4e0e\u3048\u3066\u307f\u308b":21,"\u9069\u5f53\u306a\u6574\u6570\u5024":6,"\u9069\u5f53\u306a\u96d1\u8ac7":25,"\u9069\u5f53\u306apython\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u307f\u3088\u3046":21,"\u9069\u5f53\u306b\u30d1\u30b9\u3092\u6307\u5b9a\u3057\u3066":18,"\u9078\u629e\u3068\u4f9d\u5b58\u6027":11,"\u90e8\u5206\u306e\u5de5\u592b\u304c\u5fc5\u8981":6,"\u90e8\u5206\u3092":24,"\u90e8\u5206\u3092\uff15\u56de\u7e70\u308a\u8fd4\u3057\u3066\u4ed6\u306e\u6587\u5b57\u5217\u3068\u3064\u306a\u304e\u5408\u308f\u305b\u305f\u9577\u3044\u6587\u5b57\u5217\u3092\u4f5c\u308b\u3053\u3068\u3082\u3067\u304d\u308b":2,"\u90e8\u5206\u7684\u306b\u53d6\u308a\u51fa\u3059\u3053\u3068\u304c\u51fa\u6765\u307e\u3059":3,"\u90f5\u4fbf\u696d":13,"\u90fd\u5ea6":[8,25],"\u90fd\u5ea6\u8ffd\u8a18":22,"\u90fd\u9053\u5e9c\u770c\u3054\u3068\u306e\u53d6\u308a\u7d44\u307f":7,"\u914d\u5217":3,"\u914d\u5217\u3092\u4f5c\u308a":25,"\u914d\u5217\u3092\u7528\u3044\u305f\u8a08\u7b97\u304c\u697d\u304b\u3064\u9ad8\u901f\u306b\u3067\u304d\u308b":22,"\u914d\u9054\u98f2\u98df\u30b5\u30fc\u30d3\u30b9\u696d":13,"\u91cd\u307f":[6,10],"\u91cd\u307f\u3084\u30d0\u30a4\u30a2\u30b9\u306e\u521d\u671f\u5024":10,"\u91cd\u307f\u4ed8\u3051":16,"\u91cd\u307f\u884c\u5217w":10,"\u91cd\u50b7\u8005\u6570":5,"\u91cd\u8907\u3059\u308b\u4f5c\u696d\u3082\u591a\u3044\u306e\u3067\u3053\u308c\u3089\u306e\u30b3\u30fc\u30c9\u306f\u30b3\u30fc\u30c9\u30bb\u30eb\u306b\u306f\u66f8\u304b\u306a\u304b\u3063\u305f\u304c":9,"\u91cd\u8907\u3059\u308b\u8981\u7d20\u304c\u3042\u308b\u5834\u5408":3,"\u91cd\u8907\u306a\u304f\u30e9\u30f3\u30c0\u30e0\u306bn\u500b\u9078\u3076":25,"\u91cd\u8981":3,"\u91cf":6,"\u91cf\u5b50\u5316\u5b66\u306a\u3069\u304c\u5bfe\u8c61\u3068\u3059\u308b\u7cfb":19,"\u91cf\u5b50\u591a\u4f53\u7cfb":19,"\u91d1\u878d\u3084\u7fa4\u96c6\u52d5\u614b":16,"\u91d1\u878d\u5546\u54c1\u306e\u4fa1\u683c\u306a\u3069":16,"\u91d1\u878d\u7cfb\u306a\u3069\u306a\u3069":13,"\u9244\u306e\u3088\u3046\u306a\u30b2\u30fc\u30e0\u3092\u4f5c\u308b\u3068\u304d\u306b\u3082\u30b5\u30a4\u30b3\u30ed\u306e\u51fa\u76ee\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3057":6,"\u9244\u9053\u696d\u306e\u53ce\u76ca":13,"\u9577\u3044\u30ea\u30b9\u30c8\u3092\u4f5c\u3063\u3066":3,"\u9577\u3044\u51e6\u7406\u3092\u5b9f\u73fe\u3059\u308b\u306e\u306b\u306f\u5411\u3044\u3066\u3044\u306a\u3044\u306e\u3067":24,"\u9577\u3055":19,"\u9577\u3055100\u306e\u30ea\u30b9\u30c8\u306bindex":4,"\u9577\u30552\u306e\u30ea\u30b9\u30c8\u306b\u306a\u3063\u3066\u3044\u308b":5,"\u9577\u30553\u306e\u30ea\u30b9\u30c8":5,"\u9577\u3055\u304c\u500d\u306b\u306a\u3063\u3066\u3044\u307e\u3059":22,"\u9577\u3055\u306b\u540d\u524d\u3092\u3064\u3051\u3066\u9069\u5f53\u306a\u5909\u6570\u3068\u3057\u3066\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\u9577\u3055\u306e\u7b49\u3057\u3044\uff12\u3064\u306e\u30ea\u30b9\u30c8\u306b\u3064\u3044\u3066":25,"\u9577\u3055\u306f":3,"\u9577\u3055\u306f5000\u306e\u307e\u307e":22,"\u9577\u3055\u3084\u968e\u5c64\u306e\u7570\u306a\u308b2\u3064\u306e\u30ea\u30b9\u30c8\u3067\u3082\u53ef\u80fd\u3067\u3059":3,"\u9589\u3058\u305f\u5f62":[7,16],"\u9589\u3058\u305f\u5f62\u3067\u66f8\u304d\u4e0b\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059":6,"\u9589\u3058\u305f\u5f62\u3067\u66f8\u304d\u4e0b\u305b\u306a\u3044\u304b\u3068\u8003\u3048\u308b\u308f\u3051\u3060\u304c":16,"\u9589\u3058\u308b":24,"\u9589\u533a\u9593\u3069\u3061\u3089\u306b\u306a\u308b\u304b\u306frounding\u306b\u4f9d\u5b58\u3059\u308b\u3089\u3057\u3044":6,"\u958b\u304f\u969b\u306b":21,"\u958b\u59cb\u5730\u70b9":6,"\u958b\u767a\u74b0\u5883\u306a\u3069\u3082unix":23,"\u958b\u767a\u7814\u7a76\u6a5f\u95a2":13,"\u9593\u9055\u3048\u3066\u4f5c\u3063\u305f\u30ea\u30b9\u30c8":5,"\u9593\u9055\u3063\u3066\u3082\u518d\u5ea6\u5165\u529b\u3092\u6c42\u3081\u3066\u304f\u308c\u307e\u3059\u3057":[23,24],"\u9593\u9694":3,"\u95a2\u6570":[2,3,5,8,15,16],"\u95a2\u6570\u304b":3,"\u95a2\u6570\u304c\u4fbf\u5229":9,"\u95a2\u6570\u304c\u9589\u3058\u305f\u5f62\u3067\u4e0e\u3048\u3089\u308c\u3066\u3044\u308b\u3068\u304d":8,"\u95a2\u6570\u3067\u3059":6,"\u95a2\u6570\u3067\u6587\u5b57\u306e\u7f6e\u63db\u304c\u53ef\u80fd\u3067\u3059":9,"\u95a2\u6570\u3068\u3044\u3046\u3082\u306e\u3092\u4f7f\u3046":2,"\u95a2\u6570\u306a\u3069\u3082\u4fbf\u5229\u3067\u3059\u304c":2,"\u95a2\u6570\u306a\u3069\u3092\u5b9f\u884c\u3057\u3066\u30ea\u30b9\u30c8\u306e\u9577\u3055":5,"\u95a2\u6570\u306b\u306f\u5f15\u6570\u3068\u3057\u3066\u5909\u6570\u3092\u6e21\u3057\u3066":4,"\u95a2\u6570\u306b\u5165\u308c\u308b\u3082\u306e\u3092":4,"\u95a2\u6570\u306b\u5165\u308c\u308b\u5f15\u6570\u306f\u4ee3\u540d\u8a5e\u306e\u3088\u3046\u306a\u3082\u306e\u3067":4,"\u95a2\u6570\u306b\u7a81\u3063\u8fbc\u3093\u3060":22,"\u95a2\u6570\u306e\u4e2d\u3067":4,"\u95a2\u6570\u306e\u4e2d\u3067\u4f7f\u3046\u5909\u6570\u3092\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u3068\u3057\u3066\u5ba3\u8a00\u3059\u308c\u3070":4,"\u95a2\u6570\u306e\u4e2d\u3067\u5b9a\u7fa9":4,"\u95a2\u6570\u306e\u4e2d\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5909\u6570":4,"\u95a2\u6570\u306e\u4e2d\u306elabels\u3068\u3044\u3046\u5f15\u6570\u306btlabels\u3092\u7a81\u3063\u8fbc\u3080\u3068\u3044\u3046\u610f\u5473":5,"\u95a2\u6570\u306e\u4e2d\u8eab\u81ea\u4f53\u306f\u4e00\u884c\u3067\u304b\u3051\u3066\u3057\u307e\u3044\u307e\u3059":7,"\u95a2\u6570\u306e\u5024\u304c\u5909\u52d5\u3059\u308b\u5ea6\u5408\u3044\u304c\u3069\u308c\u304f\u3089\u3044\u304b\u3092\u8868\u3057\u3066\u3044\u307e\u3059":8,"\u95a2\u6570\u306e\u5185\u3068\u5916\u3068\u3067":4,"\u95a2\u6570\u306e\u5185\u90e8":4,"\u95a2\u6570\u306e\u5185\u90e8\u3067\u5b9a\u7fa9":4,"\u95a2\u6570\u306e\u51fa\u529b\u306e\u7d50\u679c\u3092\u4f55\u5ea6\u3082\u5f8c\u3067\u518d\u5229\u7528\u3059\u308b\u5834\u5408":3,"\u95a2\u6570\u306e\u524d\u306b\u534a\u89d2\u30b9\u30da\u30fc\u30b9\u304c4\u3064\u3042\u308b\u306e\u306b\u6c17\u304c\u3064\u3044\u305f\u3067\u3057\u3087\u3046\u304b":3,"\u95a2\u6570\u306e\u53f3\u5074\u306e\u62ec\u5f27":2,"\u95a2\u6570\u306e\u5916\u3067\u3082\u305d\u306e\u5909\u6570\u3092\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059":4,"\u95a2\u6570\u306e\u5916\u3067\u53c2\u7167\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093":4,"\u95a2\u6570\u306e\u5916\u306b\u5024\u3092\u6e21\u3059":4,"\u95a2\u6570\u306e\u5b9a\u7fa9\u57df\u3092\u8d85\u3048\u3066\u5f15\u6570\u306b\u5165\u308c\u308b\u306e\u3082\u30c0\u30e1\u3067\u3059":14,"\u95a2\u6570\u306e\u5b9f\u884c\u524d":4,"\u95a2\u6570\u306e\u5b9f\u884c\u5f8c":4,"\u95a2\u6570\u306e\u5f15\u6570\u306b":13,"\u95a2\u6570\u306e\u5f15\u6570\u306b\u306f\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u3092\u4f7f\u3046\u306a\u3069\u306e\u5de5\u592b":4,"\u95a2\u6570\u306e\u5f15\u6570\u3092":3,"\u95a2\u6570\u306e\u5f62\u3092\u898b\u3066\u306a\u3093\u3068\u306a\u304f":6,"\u95a2\u6570\u306e\u8868\u73fe\u529b":7,"\u95a2\u6570\u306e\u8fd4\u308a\u5024\u306fmap":9,"\u95a2\u6570\u306f":[3,9],"\u95a2\u6570\u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u672b\u5c3e\u306b\u6539\u884c":9,"\u95a2\u6570\u306f\u5f15\u6570\u306b\u4f55\u3082\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070":9,"\u95a2\u6570\u306f\u5f15\u6570\u3092\u53d6\u308a":4,"\u95a2\u6570\u306f\u975e\u8ca0\u306e\u5f15\u6570\u306b\u5bfe\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u306e\u3067\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3059":3,"\u95a2\u6570\u3082\u30e1\u30bd\u30c3\u30c9\u3082":4,"\u95a2\u6570\u3084\u305d\u306e\u52fe\u914d\u304c\u305d\u3082\u305d\u3082\u66f8\u304d\u4e0b\u305b\u306a\u304b\u3063\u305f\u308a":8,"\u95a2\u6570\u3084\u521d\u671f\u5024\u306b\u3088\u3063\u3066\u306f\u89e3\u306b\u53ce\u675f\u3057\u306a\u3044\u5834\u5408\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f\u304c\u5fc5\u8981":15,"\u95a2\u6570\u3092\u3042\u308b\u70b9\u304b\u3089\u3061\u3087\u3053\u3063\u3068\u3060\u3051\u52d5\u304b\u3057\u305f\u3068\u304d\u306b":8,"\u95a2\u6570\u3092\u3069\u3093\u3069\u3093\u8907\u96d1\u306a\u3082\u306e\u306b\u3057\u3066\u3044\u304f\u306b\u3064\u308c\u3066":7,"\u95a2\u6570\u3092\u4f5c\u7528\u3055\u305b\u307e\u3059":18,"\u95a2\u6570\u3092\u4f5c\u7528\u3055\u305b\u308b\u3068":18,"\u95a2\u6570\u3092\u4f5c\u7528\u3055\u305b\u308b\u3068\u3044\u3046\u64cd\u4f5c\u3092\u4e00\u5ea6\u306b\u884c\u3044\u307e\u3059":9,"\u95a2\u6570\u3092\u4f7f\u3046\u305f\u3081\u306e1\u884c":3,"\u95a2\u6570\u3092\u4f7f\u3046\u3068":9,"\u95a2\u6570\u3092\u4f7f\u3046\u306e\u304c\u3088\u3044":6,"\u95a2\u6570\u3092\u4f7f\u3048\u3070":6,"\u95a2\u6570\u3092\u4f7f\u3048\u3070\u826f\u3044":18,"\u95a2\u6570\u3092\u4f7f\u3063\u3066":3,"\u95a2\u6570\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046":2,"\u95a2\u6570\u3092\u4f7f\u3063\u3066\u30ea\u30b9\u30c8\u5185\u306e":3,"\u95a2\u6570\u3092\u4f7f\u3063\u3066\u91cd\u8907\u3092\u9664\u304f\u3068":13,"\u95a2\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u3067\u4f5c\u696d\u3092":4,"\u95a2\u6570\u3092\u5b9a\u7fa9\u3059\u308b\u3068\u304d\u306b":4,"\u95a2\u6570\u3092\u6271\u3046\u7b2c\uff13\u7ae0\u3067\u89e3\u8aac\u3057\u307e\u3059":2,"\u95a2\u6570\u3092\u7528\u3044\u3066\u4f4e\u30e9\u30f3\u30af\u8fd1\u4f3c\u3092\u8a08\u7b97\u3057\u305f":19,"\u95a2\u6570\u3092\u7528\u3044\u3066\u914d\u5217\u306e\u30b3\u30d4\u30fc\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3067\u56de\u907f\u3067\u304d\u307e\u3059":3,"\u95a2\u6570\u3092\u7528\u3044\u307e\u3059":[5,18],"\u95a2\u6570\u3092\u7528\u3044\u308b\u969b\u306b":4,"\u95a2\u6570\u3092\u7528\u3044\u308c\u3070":18,"\u95a2\u6570\u5185\u3067\u306e\u4ee3\u5165\u306a\u3069\u3067\u306f\u306a\u3044\u5834\u5408":4,"\u95a2\u6570\u5185\u306e\u64cd\u4f5c\u306b\u95a2\u6570\u5916\u304b\u3089\u306e\u60c5\u5831":4,"\u95a2\u6570\u540d\u306e\u5f8c\u308d\u306e\u30ab\u30c3\u30b3\u306b\u306f":4,"\u95a2\u6570\u81ea\u4f53\u306f3\u884c\u3067\u66f8\u3051\u3066\u3057\u307e\u3046":7,"\u95a2\u6570calc_d_print":4,"\u95a2\u6570zahyo":4,"\u95a2\u9023\u3057\u305f\u8a71\u984c\u3068\u3057\u3066\u306f":2,"\u95a2\u9023\u3059\u308b\u7dda\u5f62\u4ee3\u6570\u306e\u77e5\u8b58":19,"\u95b2\u89a7\u8005":25,"\u9664\u53bb\u306b\u3082":9,"\u9670\u89e3\u6cd5":16,"\u967d":16,"\u967d\u306b\u5fc5\u8981\u306a\u884c\u5217\u8981\u7d20\u306e\u6570":19,"\u967d\u306b\u5fc5\u8981\u306a\u884c\u5217\u8981\u7d20\u306e\u6570\u3092\u8a08\u7b97\u3059\u308b\u95a2\u6570":19,"\u967d\u6027\u60a3\u8005\u6570":13,"\u967d\u6027\u60a3\u8005\u6570\u306e\u30c7\u30fc\u30bf\u306e\u69cb\u9020\u3092\u8abf\u3079\u3064\u3064\u7d50\u679c\u3092\u53ef\u8996\u5316\u3057\u3066\u307f\u3088\u3046":13,"\u967d\u6027\u8005\u6570":13,"\u968f\u4f34\u64cd\u4f5c":19,"\u96a0\u3057\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u3053\u3068\u3082\u3042\u308b":24,"\u96a0\u3057\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a\u3059\u308b\u306b\u306f":24,"\u96a0\u3057\u30d5\u30a9\u30eb\u30c0\u3092\u975e\u8868\u793a\u306b\u3057\u3066\u3044\u308b\u3068\u898b\u3048\u306a\u3044\u304b\u3082":24,"\u96a0\u308c\u5c64":10,"\u96a0\u308c\u5c64\u304c1\u3064":17,"\u96a0\u308c\u5c64\u3067\u306e\u30d0\u30a4\u30a2\u30b9b":10,"\u96a0\u308c\u5c64\u3067\u4f5c\u7528\u3055\u305b\u308b\u6d3b\u6027\u5316\u95a2\u6570\u3092\u5b9a\u7fa9\u3057\u3066\u304a\u304d\u307e\u3057\u3087\u3046":10,"\u96a0\u308c\u5c64\u306e\u30ce\u30fc\u30c9\u306e\u6570\u3092\u6307\u5b9a":10,"\u96c6\u56e3\u306b\u5c5e\u3059\u308b\u500b\u4eba\u3092\u3053\u306e":17,"\u96e2\u6563\u7684\u306a\u5909\u6570\u3092\u542b\u3080\u96e2\u6563\u6700\u9069\u5316":8,"\u96e3\u3057\u305d\u3046\u306a\u5f0f\u3067\u3059\u304c":6,"\u96e3\u6613\u5ea6\u3068\u3057\u3066\u306flinux":24,"\u96f0\u56f2\u6c17\u3092\u5473\u308f\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059":6,"\u9700\u7d66\u6d41\u901a":13,"\u9752":8,"\u9752\u8272":6,"\u975e\u30bc\u30ed\u306e\u4fc2\u6570\u3092\u6301\u3064\u6700\u5927\u306e":15,"\u975e\u5897\u52a0\u95a2\u6570\u3067\u3042\u308b\u3053\u3068":7,"\u975e\u5e38\u306b\u591a\u5c90\u306b\u308f\u305f\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u5b58\u5728\u3057\u3066\u3044\u3066\u8ab0\u3067\u3082\u6c17\u8efd\u306b\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3057":5,"\u975e\u5e38\u306b\u591a\u5c90\u306b\u6e21\u308a\u307e\u3059\u304c":14,"\u975e\u5e38\u306b\u5f37\u3044\u6b63\u306e\u76f8\u95a2\u3092\u793a\u3059\u3053\u3068\u304c\u5206\u304b\u308b":7,"\u975e\u5e38\u306b\u8907\u96d1\u306a\u30e2\u30c7\u30eb\u306b\u306a\u3063\u3066\u3044\u308b":7,"\u975e\u5e38\u306b\u91cd\u8981\u306a\u53cd\u9762":4,"\u975e\u63a8\u5968":2,"\u9762\u5012":9,"\u9762\u5012\u3060\u304b\u3089\u30ea\u30b9\u30c8\u3067\u3084\u3063\u3061\u3083\u3046":3,"\u97f3\u58f0":13,"\u97f3\u58f0\u306a\u3069\u3092\u4f5c\u6210\u3057googl":1,"\u9805\u76ee\u540d\u3092\u610f\u5473\u3057":18,"\u9806\u756a":5,"\u9806\u756a\u306b\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046":3,"\u9811\u5f35\u3063\u3066\u5b66\u7fd2\u3057\u3088\u3046":9,"\u9818\u57df\u306e\u9762\u7a4d\u304c\u8fd1\u304f\u306a\u308b\u3088\u3046\u306a\u8a2d\u5b9a\u3067\u8a08\u7b97\u3059\u308b\u65b9\u304c\u7cbe\u5ea6\u304c\u826f\u3044":6,"\u98df\u30d1\u30f3":18,"\u98df\u30d1\u30f3\u30ea\u30c3\u30c1\u30bf\u30a4\u30d7":18,"\u98df\u54c1\u540d":18,"\u98df\u54c1\u540d\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u5217":18,"\u98df\u54c1\u540d\u306b\u542b\u307e\u308c\u308b\u4f59\u5206\u306a\u6587\u5b57\u30b3\u30fc\u30c9\u3082\u524a\u9664\u3057\u3066\u304a\u3053\u3046":18,"\u98df\u54c1\u540d\u306e\u4e00\u89a7\u3092\u53d6\u5f97\u3057\u305f\u5f8c":18,"\u98df\u54c1\u540d\u306e\u4e2d\u306b\u3042\u308b\u4f59\u5206\u306a\u5168\u89d2\u7a7a\u767d":18,"\u98df\u54c1\u540d\u3092\u7d30\u304b\u304f\u6307\u5b9a\u3057\u305f\u308a":18,"\u98df\u54c1\u540d\u7b49\u304c\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u306e\u306f10\u884c\u76ee\u4ee5\u964d\u306a\u306e\u3067":18,"\u98f2\u98df\u30b5\u30fc\u30d3\u30b9\u696d":13,"\u9ad8\u6821\u3067\u5fae\u5206\u3092\u52c9\u5f37\u3057\u3066\u3044\u306a\u3044\u3068\u3044\u3046\u65b9\u306b\u5411\u3051\u3066\u672b\u5c3e\u306b\u6570\u5b66\u7684\u6e96\u5099\u306e\u9805\u3092\u8a2d\u3051\u3066\u3042\u308b\u306e\u3067\u30c1\u30a7\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044":8,"\u9ad8\u6b21\u5143\u306e\u30c7\u30fc\u30bf\u3092\u7279\u5fb4\u3065\u3051\u308b\u5c11\u6570\u306e":17,"\u9ad8\u6b21\u5143\u306e\u30d9\u30af\u30c8\u30eb":15,"\u9ad8\u7cbe\u5ea6\u3067\u89e3\u304c\u5f97\u3089\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u308b":16,"\u9ad8\u89e3\u50cf\u5ea6\u3067jpeg\u3084png\u3092\u4f5c\u3063\u3066\u30b9\u30e9\u30a4\u30c9\u3067\u4f7f\u3063\u3066":5,"\u9ad8\u901f\u306a\u8a08\u7b97\u3092\u5b9f\u73fe\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":22,"\u9ad8\u901f\u306b\u8a08\u7b97\u3067\u304d\u308b\u304b\u3082\u3057\u308c\u306a\u3044":16,"\u9ad8\u968e\u306e\u5fae\u5206\u3092\u542b\u3080\u5834\u5408\u3082":16,"\uff10\u304b\u3089\u6570\u3048\u30661\u756a\u76ee":3,"\uff11":14,"\uff11\u56de\u306e\u30c7\u30fc\u30bf\u306e\u89b3\u6e2c":11,"\uff11\u5bfe\uff11\u5bfe\u5fdc\u3059\u308b":2,"\uff11\u6b21\u5143\u56f3":5,"\uff11\u70b9\u6ce8\u610f\u70b9\u3068\u3057\u3066\u306f":2,"\uff11\u7ae0\u306e\u632f\u308a\u8fd4\u308a":25,"\uff11\u91cd\u30ab\u30c3\u30b3":3,"\uff12":2,"\uff12\u3064\u306e\u30ea\u30b9\u30c8\u3092\u5f15\u6570\u306b\u6301\u3061":7,"\uff12\u3064\u306e\u30ea\u30b9\u30c8\u3092\u7d50\u5408\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":3,"\uff12\u3064\u306e\u91cf\u304c\u3042\u3063\u3066":5,"\uff12\u56de\u76ee\u3067\u306f":21,"\uff12\u56de\u76ee\u4ee5\u964d\u306f\u4e0a\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u3066\u3082":5,"\uff12\u6b21\u306e\u516c\u5f0f\u3068\u306a\u308b":16,"\uff12\u756a\u3081\u3068\u6574\u5408\u3059\u308b\u3088\u3046\u306b\u30d1\u30b9\u3092\u9078\u3073\u307e\u3057\u305f\u304c":1,"\uff12\u756a\u3081\u3068\uff13\u756a\u76ee\u306e\u5024\u3060\u3051\u53d6\u308a\u51fa\u3057\u305f\u3044\u3068\u304d\u306f":22,"\uff12\u7ae0\u3067\u5b66\u7fd2\u3057\u305f\u30ea\u30b9\u30c8\u5185\u5305\u8868\u8a18\u3092\u7528\u3044\u3066":6,"\uff12\uff10\uff11\uff10\u5e74\u4ee3\u306e\u30ce\u30fc\u30d9\u30eb\u7269\u7406\u5b66\u8cde\u53d7\u8cde\u8005\u306e\u30c7\u30fc\u30bf\u3092":18,"\uff13\u3064\u306e\u5909\u6570\u304c\u3042\u308b\u72b6\u6cc1":7,"\uff13\u3092":22,"\uff13\u7ae0\u4ee5\u964d\u3067\u8ffd\u3005\u898b\u3066\u3044\u304f\u3053\u3068\u306b\u3057\u307e\u3057\u3087\u3046":2,"\uff14\u6b21\u5143\u306e\u30c7\u30fc\u30bf\u3092\u4f4e\u6b21\u5143\u306b\u5c04\u5f71\u3059\u308b\u3053\u3068\u3067":17,"\uff14\u6b21\u7cbe\u5ea6\u306e\u516c\u5f0f\u306b\u306a\u3063\u3066\u304a\u308a":16,"\uff17\u500b\u30c7\u30fc\u30bf\u304c\u3042\u308c\u3070":5,"\uff47\u60c5\u5831\u901a\u4fe1\u696d":13,"\uff48\u904b\u8f38\u696d":13,"\uff4b\u4e0d\u52d5\u7523\u696d":13,"\uff4c\u5b66\u8853\u7814\u7a76":13,"\uff4d\u5bbf\u6cca\u696d":13,"\uff4e\u751f\u6d3b\u95a2\u9023\u30b5\u30fc\u30d3\u30b9\u696d":13,"\uff4f\u6559\u80b2":13,"\uff50\u533b\u7642":13,"\uff52\u30b5\u30fc\u30d3\u30b9\u696d":13,"\uff58\u306e\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0":6,"a\u304c0\u3088\u308a\u5927\u304d\u3044\u5834\u5408":3,"a\u304c\u8ca0\u304b\u3064\u6b63\u306a\u3089\u6587\u5b57\u5217\u3092\u8868\u793a\u3059\u308b":14,"a\u304cb\u3068\u7b49\u3057\u3044\u304b\u3069\u3046\u304b":2,"a\u304cb\u3088\u308a\u5c0f\u3055\u3044\u304b\u3069\u3046\u304b":2,"a\u3055\u3093":[3,18,22,25],"a\u3055\u3093\u306b\u52dd\u8ca0\u306e\u305f\u3073\u306b\u6240\u6301\u91d1\u3092\u53eb\u3070\u305b\u308b\u30b3\u30fc\u30c9\u306f":3,"a\u3055\u3093\u306e\u307e\u307e\u3067\u3042\u3063\u3066\u307b\u3057\u3044\u30ea\u30b9\u30c8":3,"a\u3055\u3093\u306e\u4f53\u91cd\u3092\u4fee\u6b63\u3057\u305f\u3051\u308c\u3070":3,"a\u3055\u3093\u306e\u4f53\u91cd\u3092\u66f4\u65b0":3,"a\u3055\u3093\u306e\u5171\u901a\u30c6\u30b9\u30c8\u306e\u5f97\u70b9\u3092\u30ea\u30b9\u30c8":5,"a\u3055\u3093\u306e\u5f97\u70b9":5,"a\u3055\u3093\u306e\u8eab\u9577":3,"a\u3055\u3093\u306ebmi\u306f22":25,"a\u3055\u3093\u306f100\u4e07\u5186\u3092\u624b\u306b\u30ab\u30b8\u30ce\u306b\u3084\u3063\u3066\u304d\u3066":3,"a\u3055\u3093\u512a\u79c0\u3067\u3059\u306d":5,"a\u3068\u7b54\u3048\u305f\u4eba":5,"a\u3068b\u304c\u4e00\u7dd2\u3060\u3088":2,"a\u3068b\u304c\u9055\u3046\u3058\u3083\u306a\u3044\u304b":2,"a\u306b2\u3092\u52a0\u3048\u305f\u5024":2,"a\u306e\u30ea\u30b9\u30c8\u306e\u4e2d\u304b\u3089\uff14\u3092\u53d6\u308a\u51fa\u3057\u305f\u3044\u5834\u5408\u3069\u3046\u3059\u308c\u3070\u3044\u3044\u306e\u304bprint\u95a2\u6570\u3092\u4f7f\u3044\u306a\u304c\u3089\u8003\u3048\u3066\u307f\u307e\u3057\u3087\u3046":3,"a\u306e\u578b":22,"a\u306eb\u4e57":2,"a\u306f\u6b63\u304b\u3064\u8ca0\u3067\u3059":14,"a\u306fb\u3088\u308a\u3082\u5927\u304d\u3044":3,"a\u306fb\u3088\u308a\u3082\u5c0f\u3055\u3044":3,"a\u3092\u3044\u308d\u3093\u306a\u5024\u306b\u5909\u3048\u3066\u5b9f\u884c\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044":3,"a\u578b":3,"a\u884cb\u5217\u306e\u5c0f\u9818\u57df\u306f":6,"aa\u306e\u9577\u3055":22,"ab\u6cd5":16,"ab\u6cd5\u3067\u306f":16,"ab\u6cd5\u306f":16,"ab\u6cd5\u3088\u308a\u3082\u7cbe\u5ea6\u304c\u6539\u5584\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308b":16,"abcd\u3042\u3044\u3046\u3048\u304a":9,"ac\u3092\u5165\u529b\u3057\u9032\u3080":24,"acf\u306bsigmoid\u3092\u6307\u5b9a\u3057\u307e\u3057\u305f":10,"adam\u304c\u6700\u3082\u3088\u304f\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059":10,"adam\u3067\u4f7f\u7528\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf":10,"adam\u3068\u547c\u3070\u308c\u308b\u5225\u306e\u6700\u9069\u5316\u624b\u6cd5\u3092\u8a66\u3057\u3066\u307f\u307e\u3057\u3087\u3046":10,"adam\u306e2\u901a\u308a\u306e\u6700\u9069\u5316\u624b\u6cd5\u3092\u7528\u3044\u3066\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u66f4\u65b0\u3059\u308b\u3053\u3068\u3068\u3057\u307e\u3059":10,"adam\u306f":10,"adam\u306f2014\u5e74\u306b\u63d0\u5531\u3055\u308c\u305f\u6bd4\u8f03\u7684\u65b0\u3057\u3044\u624b\u6cd5\u3067":10,"adds2019\u3078\u306e\u76f8\u5bfe\u30d1\u30b9\u306f":9,"algebra\u306e\u7565":22,"am\u6cd5\u3068ab\u6cd5\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067":16,"ambiguity\u304c\u306a\u304f\u306a\u3063\u305f\u6642\u70b9\u3067":24,"api\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059":13,"api\u306fappl":13,"api\u6a5f\u80fd":13,"appid\u3092\u4ed6\u4eba\u3068\u5171\u6709\u3057\u3066\u306f\u3044\u3051\u307e\u305b\u3093":13,"apt\u306eupd":[23,24],"apt\u306eupdate\u3084upgrade\u306b\u5931\u6557\u3057\u307e\u3059":23,"apt\u306flinux":[23,24],"array\u3067\u3042\u308b":22,"array\u306b\u5909\u63db\u3057\u3066\u304b\u3089\u8ee2\u7f6e":22,"array\u540c\u58eb\u306e\u8db3\u3057\u7b97\u3092\u3084\u3063\u3066\u307f\u307e\u3057\u3087\u3046":22,"array\u578b\u306e\u30d9\u30af\u30c8\u30eb\u3067\u3082\u5bfe\u5fdc\u53ef\u80fd\u306a\u8868\u5f0f":10,"autopct\u306f":5,"ax\u3068\u3044\u3046\u898b\u6163\u308c\u306a\u3044\u3082\u306e\u304c\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f":5,"ax\u306b\u95a2\u3057\u3066\u306f":5,"ax\u3092\u7528\u3044\u3066":6,"b0\u3068\u6d3b\u6027\u5316\u95a2\u6570\u306bsigmoid\u3092\u9078\u3093\u3060\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u30c7\u30fc\u30bf\u306e\u5024\u306e\u4e8c\u4e57\u8aa4\u5dee\u306f":10,"b0\u306e\u521d\u671f\u5024\u3067\u306e\u52fe\u914d\u306e\u5024\u306f":10,"b\u3055\u3093":[3,18,22,25],"b\u3055\u3093\u306e\u4f53\u91cd\u306a\u3069\u3092print\u95a2\u6570\u3067\u8868\u793a\u3057\u3066\u307f\u307e\u3057\u3087\u3046":3,"b\u3055\u3093\u306e\u5024":3,"b\u3055\u3093\u306e\u5e74\u9f62":3,"b\u3068\u7b54\u3048\u305f\u4eba":5,"b\u306e\u578b":22,"b\u306e\u884c\u5217\u5f0f\u306f":22,"b\u306e\u9006\u884c\u5217\u306f":22,"b\u306fa\u3088\u308a\u3082\u5927\u304d\u3044":3,"b\u3092a\u3067\u5272\u3063\u305f\u4f59\u308a":2,"b\u578b":3,"bash\u306e\u5834\u5408\u306f":24,"bash\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb":24,"bashforth\u6cd5\u3068rung":16,"bashrc\u306b":24,"bayesopt\u306e\u6e96\u5099":11,"bin\u306e\u657050\u306f\u3044\u3044\u52a0\u6e1b\u306b\u9078\u3093\u3060":6,"blog\u306e\u8a18\u4e8b":9,"bmi\u304c20":25,"book\u306e\u5404\u30da\u30fc\u30b8\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b":21,"break":[2,11,15,25],"c\u3055\u3093":[3,18],"c\u3055\u3093\u306e\u500b\u4eba\u60c5\u5831\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u969b\u306f":3,"c\u3067\u4e2d\u65ad\u3057\u3066\u304b\u3089ctrl":23,"c\u3067\u9589\u3058\u308b":24,"c\u3068\u7b54\u3048\u305f\u4eba":5,"c\u306a\u3069\u306e\u9759\u7684\u8a00\u8a9e\u3068\u547c\u3070\u308c\u308b\u8a00\u8a9e\u306b\u6bd4\u3079\u3066":22,"c\u3092":23,"c\u3092\u5b9f\u884c\u5f8c\u306bctrl":24,"c\u8a00\u8a9e\u306a\u3069\u3092\u5b66\u7fd2\u3057\u3066\u3044\u308c\u3070":3,"carlo\u306b\u7531\u6765":6,"cholesky\u5206\u89e3":11,"cholesky\u5206\u89e3\u306e\u5b9f\u88c5\u3067\u6570\u5024\u8aa4\u5dee\u306e\u53d6\u308a\u6271\u3044\u3067\u5927\u5909\u306a\u82e6\u52b4\u3092\u3057\u305f\u899a\u3048\u304c\u3042\u308b":19,"cl\u3067\u53ce\u96c6\u3059\u308b\u6388\u696d\u306e\u30ea\u30a2\u30af\u30b7\u30e7\u30f3\u30b7\u30fc\u30c8\u306b\u306f":25,"class":[2,9,13,20,22],"clip\u306fopenai\u306b\u3088\u308b\u753b\u50cf\u3068\u30c6\u30ad\u30b9\u30c8":20,"clip\u3092\u7528\u3044\u305f\u9854\u5199\u771f\u751f\u6210\u3092\u30c7\u30e2\u30f3\u30b9\u30c8\u30ec\u30fc\u30b7\u30e7\u30f3\u3059\u308b":20,"close\u3057\u306a\u3044\u3068":5,"code\u3067\u306e":21,"code\u3067\u306f":21,"code\u3067\u4f5c\u6210":21,"code\u306a\u3069\u306e\u62e1\u5f35\u6a5f\u80fd\u3068\u3057\u3066\u3082\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":21,"code\u306b\u30c9\u30e9\u30c3\u30b0":21,"code\u306e\u30a2\u30ab\u30a6\u30f3\u30c8":21,"code\u306e\u62e1\u5f35\u6a5f\u80fd\u30bf\u30d6\u304b\u3089":21,"code\u306f\u6a5f\u80fd\u304c\u8c4a\u5bcc\u304b\u3064\u30e6\u30fc\u30b6\u30fc\u6570\u304c\u591a\u3044":21,"code\u309295":21,"code\u3092\u30b3\u30d4\u30fc\u3057\u67a0\u5185\u306b\u8cbc\u308a\u4ed8\u3051\u3066enter\u3092\u62bc\u3059":1,"code\u3092\u4f7f\u3046\u3068":21,"code\u3092\u4f7f\u3063\u3066\u3044\u308b":21,"code\u3092\u7d39\u4ecb\u3059\u308b":21,"code\u3092\u8d77\u52d5\u3057":21,"code\u5185\u3067\u8d77\u52d5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":21,"codex\u304c\u52d5\u3044\u3066\u304a\u308a":21,"colab\u304b\u3089googl":1,"colab\u306e\u5de6\u5074\u306b\u3042\u308b\u30d5\u30a9\u30eb\u30c0\u30de\u30fc\u30af\u3092\u30af\u30ea\u30c3\u30af\u3057":1,"colab\u306etex\u3060\u3068\u3046\u307e\u304f\u592a\u5b57\u306b\u306a\u3089\u306a\u3044\u304c\u591a\u6210\u5206":6,"colab\u307e\u305f\u306f\u30ed\u30b1\u30c3\u30c8\u30de\u30fc\u30af\u304b\u3089colab\u3092\u958b\u3044\u3066\u307f\u3088\u3046":1,"colab\u4e0a\u3067\u306f\u8a08\u7b97\u304c\u53b3\u3057\u304f\u306a\u3063\u3066\u304f\u308b":6,"colab\u4e0a\u3067\u5b9f\u884c\u3057\u3066291\u679a\u306e\u753b\u50cf\u304c\u751f\u6210\u3055\u308c\u308b\u307e\u3067\u306b80":9,"colab\u74b0\u5883\u3067\u306f\u6bce\u5ea6":23,"colaboratory\u304b\u3089\u6388\u696d\u3067\u4f7f\u3063\u305f\u30ce\u30fc\u30c8\u3092\u53c2\u7167\u3057":25,"colaboratory\u3067\u306f":1,"colaboratory\u3067\u3082\u4f55\u3082\u7279\u5225\u306a\u3053\u3068\u3092\u3057\u306a\u304f\u3066\u3082\u3072\u3089\u304c\u306a\u304c\u4f7f\u3048\u308b":2,"colaboratory\u3067googl":25,"colaboratory\u3068\u3044\u3046\u30b5\u30fc\u30d3\u30b9\u3092\u5229\u7528\u3057\u3066":0,"colaboratory\u306e":1,"colaboratory\u306e\u4f7f\u3044\u65b9":0,"colaboratory\u3084\u95a2\u9023\u30b5\u30fc\u30d3\u30b9\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306b\u4f34\u3044":1,"colaboratory\u4e0a\u3067\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u3092\u958b\u304f\u3068":1,"colaboratory\u4e0a\u3067jupyt":0,"column\u3092\u6307\u5b9a\u3059\u308b":18,"concatenate\u306e\u7565":18,"const":20,"copilot\u304c\u751f\u6210\u3059\u308b\u30b3\u30fc\u30c9\u306f\u5b8c\u74a7\u3067\u306f\u306a\u3044\u305f\u3081":21,"copilot\u3068\u3044\u3046":21,"copilot\u3068\u306e\u76f8\u6027\u3082\u826f\u3044\u306e\u3067":21,"copilot\u306b\u767b\u9332\u3059\u308b":21,"copilot\u306e\u30d9\u30fc\u30bf\u7248\u306b\u767b\u9332\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b":21,"copilot\u306e\u30da\u30fc\u30b8":21,"copilot\u306e\u63d0\u6848\u304c\u672c\u5f53\u306b\u81ea\u8eab\u306e\u610f\u56f3\u3057\u305f\u3082\u306e\u3068\u306a\u3063\u3066\u3044\u308b\u304b\u306b\u3064\u3044\u3066\u306f":21,"copilot\u306e\u63d0\u6848\u3092\u53d7\u3051\u5165\u308c\u308b\u306b\u306f":21,"copilot\u306f":21,"copilot\u3084chat":21,"copilot\u3092\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b":21,"copilot\u3092\u4f7f\u3046\u306b\u306f":21,"copy\u3068\u3044\u3046\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b":3,"corrplot\u3092\u63cf\u304f\u76f8\u95a2\u4fc2\u6570\u306ethreshold":9,"counterclock\u306f\u53cd\u6642\u8a08\u56de\u308a\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092fals":5,"csv\u3068\u3057\u3066\u66f8\u304d\u51fa\u3059\u5834\u5408":18,"csv\u3068\u8b33\u3063\u3066\u304a\u3044\u3066":9,"csv\u3084xlsx\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u30b5\u30af\u30c3\u3068\u6271\u3048\u308b\u3088\u3046\u306b\u306a\u308b":9,"csv\u30d5\u30a1\u30a4\u30eb":9,"csv\u30d5\u30a1\u30a4\u30eb\u306b\u8a18\u8f09\u3055\u308c\u305f\u60c5\u5831\u3092\u6574\u7406\u3057\u3066\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u6271\u3044\u3084\u3059\u304f\u3059\u308b\u3053\u3068\u3092\u8003\u3048\u307e\u3059":9,"cui\u306b\u5bfe\u3057\u3066":23,"cycle\u304c":13,"d\u3055\u3093":18,"d\u306f\uff13\u3088\u308a\u305a\u3063\u3068\u5927\u304d\u3044":7,"d\u3092\u5165\u529b\u3057\u307e\u3059":23,"data2\u306e0\u756a\u76ee\u30681\u756a\u76ee\u306eid\u304c\u540c\u3058":3,"data2\u306e\u6700\u521d\u306e\u8981\u7d20":3,"data\u306e\u578b":18,"dataframe\u306e":13,"dataframe\u306fexcel\u30b7\u30fc\u30c8\u306e\u3088\u3046\u306a\u4e8c\u6b21\u5143\u306e\u30c7\u30fc\u30bf\u3092\u8868\u73fe\u3059\u308b\u306e\u306b\u5229\u7528\u3055\u308c":18,"dataframe\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b":18,"dataframe\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f":18,"dataframe\u540c\u58eb\u3092\u7d50\u5408\u3057\u3066\u307e\u3068\u3081\u308b\u306a\u3069\u3057\u3066":18,"debian\u7cfb":[23,24],"default":[4,11],"define\u306e\u7565":4,"descent\u3068\u540c\u6761\u4ef6\u3067\u30b9\u30bf\u30fc\u30c8\u3059\u308b\u305f\u3081seed\u3092\u56fa\u5b9a":10,"desktop\u306b\u4e0a\u8a18\u306e\u30d5\u30a9\u30eb\u30c0\u4ee5\u5916\u306e":24,"df\u306e\u4e2d\u306e":13,"df\u306e\u578b":18,"directory\u306e\u7565":5,"directory\u30b3\u30de\u30f3\u30c9":9,"docker\u74b0\u5883\u306a\u3069":24,"drive\u3067":9,"drive\u306b\u3042\u308b\u30d5\u30a1\u30a4\u30eb\u306bgoogl":5,"drive\u306b\u3044\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u51fa\u3057\u3066\u3044\u305f\u304c":18,"drive\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304a\u3044\u3066\u304f\u3060\u3055\u3044":9,"drive\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066colab\u304b\u3089\u8aad\u307f\u8fbc\u307f\u3067\u304d\u308b\u307e\u3067\u306b\u5c11\u3057\u6642\u9593\u304c\u304b\u304b\u308b\u5834\u5408\u304c\u3042\u308b":9,"drive\u306b\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u4fdd\u5b58\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":1,"drive\u306b\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u66f8\u304d\u51fa\u3057\u3066\u307f\u307e\u3057\u3087\u3046":18,"drive\u306b\u4e00\u5b9a\u6642\u9593\u3067\u81ea\u52d5\u3067\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3055\u308c\u308b\u306e\u3067\u5b89\u5fc3\u3067\u3059\u3057":1,"drive\u306b\u4fdd\u5b58\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u3092\u8aad\u307f\u8fbc\u3093\u3060\u308a":1,"drive\u306b\u4fdd\u5b58\u3055\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u306f":5,"drive\u306b\u4fdd\u5b58\u3057\u305f":9,"drive\u306b\u4fdd\u5b58\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":1,"drive\u306b\u4fdd\u5b58\u3059\u308b\u65b9\u6cd5\u3068\u3057\u3066\u306f":9,"drive\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059":1,"drive\u306e\u30de\u30a4\u30c9\u30e9\u30a4\u30d6\u306e":9,"drive\u306e\u30de\u30a4\u30c9\u30e9\u30a4\u30d6\u76f4\u4e0b\u306eadds\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u306e\u4e0b\u306b":5,"drive\u306e\u30de\u30a6\u30f3\u30c8\u304c\u3067\u304d\u305f\u3089":9,"drive\u306e\u30ed\u30b4\u304c\u3064\u3044\u305f\u30b0\u30ec\u30fc\u304c\u304b\u3063\u305f\u30d5\u30a9\u30eb\u30c0\u30de\u30fc\u30af":1,"drive\u306e\u30ed\u30b4\u304c\u3064\u3044\u305f\u30d5\u30a9\u30eb\u30c0\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b":1,"drive\u306e\u30ed\u30b4\u306b\u306a\u3063\u3066\u3044\u308b\u306f\u305a":1,"drive\u306e\u4e2d\u306b\u3042\u308b\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u66f8\u304d\u3057\u305f\u308a\u3068\u3044\u3063\u305f\u64cd\u4f5c\u3092\u884c\u3046\u305f\u3081":9,"drive\u306e\u4e2d\u306b\u5165\u3063\u3066\u3044\u308bcsv":1,"drive\u306e\u597d\u304d\u306a\u5834\u6240\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044":5,"drive\u3092":1,"drive\u3092\u30de\u30a6\u30f3\u30c8\u3057\u305f\u5f8c\u306b\u30de\u30a4\u30c9\u30e9\u30a4\u30d6\u76f4\u4e0b\u306b\u3042\u308bpng\u753b\u50cf\u306e\u30ea\u30b9\u30c8\u3092\u8868\u793a\u3055\u305b\u305f\u3051\u308c\u3070":1,"drive\u3092\u30de\u30a6\u30f3\u30c8\u3057\u305f\u72b6\u614b\u3067\u306a\u3051\u308c\u3070\u5b9f\u884c\u3057\u3066\u3082\u591a\u304f\u304c\u30a8\u30e9\u30fc\u3068\u306a\u308b":9,"drive\u3092\u30de\u30a6\u30f3\u30c8\u3057\u307e\u3059":9,"drive\u3092\u30de\u30a6\u30f3\u30c8\u3057test":25,"drive\u3092\u30de\u30a6\u30f3\u30c8\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":25,"drive\u3092\u4e00\u5ea6\u30de\u30a6\u30f3\u30c8\u3057\u305f\u5f8c\u3067\u30d1\u30b9\u304c\u308f\u304b\u3089\u306a\u304f\u306a\u3063\u305f\u3068\u304d\u306b\u306f\u5de6\u306e":1,"drive\u3092\u958b\u304f\u3068colab_pic\u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u4f5c\u6210\u3055\u308c\u3066\u3044\u308b\u304b\u3068\u601d\u3044\u307e\u3059":5,"drive\u3092drive\u3068\u3044\u3046\u540d\u524d\u3067\u30de\u30a6\u30f3\u30c8\u3059\u308b":5,"drive\u4e0a\u3067\u30d5\u30a1\u30a4\u30eb\u306e\u4e0a\u3067\u53f3\u30af\u30ea\u30c3\u30af":1,"drive\u4e0a\u306b\u3042\u308bcsv\u306a\u3069\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080\u3053\u3068\u304c\u3067\u304d\u308b":25,"drive\u4e0a\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u305f\u308a":5,"drive\u4e0a\u306e\u6307\u5b9a\u3057\u305f\u30d5\u30a9\u30eb\u30c0\u306b":5,"drive\u76f4\u4e0b\u306b\u3042\u308bxxx":1,"e\u3055\u3093":18,"e\u3055\u3093\u306e\u30c7\u30fc\u30bf\u3082\u542b\u307e\u308c\u3066\u3044\u308b\u4e8b\u304c\u308f\u304b\u308b":18,"emacs\u304c\u5165\u3063\u3066\u3044\u308c\u3070":24,"emacs\u306e\u5834\u5408":24,"emacs\u3084vi":24,"enter\u3092\u62bc\u3059\u304b":24,"error\u306a\u3057":14,"euler\u6cd5\u306b\u5c11\u3057\u5de5\u592b\u3092\u52a0\u3048\u305f\u4fee\u6b63euler\u6cd5\u306f":16,"excel\u304cshift":9,"excel\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u66f8\u304d\u51fa\u3059\u5834\u5408":18,"excel\u30d5\u30a1\u30a4\u30eb\u306f\u304a\u307e\u3051":9,"excel\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u51fa\u3057\u3066\u81ea\u52d5\u3067\u4f5c\u753b\u3092\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0":1,"f\u3092\u63a8\u5968":9,"false\u3067\u91cd\u8907\u3092\u8a8d\u3081\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3067\u304d\u308b":6,"false\u306e\u914d\u5217":18,"false\u306e\u914d\u5217\u306b\u306a\u3063\u3066\u3044\u3066":18,"false\u3092\u305d\u308c\u305e\u308c\u52dd\u3061\u8ca0\u3051\u306b\u5bfe\u5fdc\u3055\u305b\u3089\u308c\u308b\u306e\u3067":3,"figsize\u3092\u5909\u3048\u3066\u8a66\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"filename\u306b\u5143\u30d5\u30a1\u30a4\u30eb\u3068\u540c\u3058\u3082\u306e\u3092\u6307\u5b9a\u3059\u308b\u3068":9,"files\u3068\u547c\u3070\u308c\u308b\u3053\u3068\u3082\u3042\u308a":24,"files\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304a\u304d":24,"files\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067":24,"final":2,"fit\u3057\u305fp\u6b21\u5143\u306e\u4fc2\u6570\u3092\u3082\u3064\u591a\u9805\u5f0f\u306b":7,"float":[2,4,13,20],"function":[5,10,11,20],"function\u306a\u3069\u3068\u547c\u3073\u307e\u3059":10,"function\u306a\u3069\u3068\u8a00\u3063\u305f\u308a\u3082\u3059\u308b":8,"function\u3092":10,"function\u3092\u30d1\u30e9\u30e1\u30fc\u30bf":10,"gb\u7a0b\u5ea6":6,"gdpvswomeninschool\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u3092\u7f6e\u3044\u305f\u3068\u3057\u307e\u3059":5,"gif\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3":5,"gif\u30d5\u30a1\u30a4\u30eb\u304c\u751f\u6210\u3055\u308c\u3066\u3044\u308b\u3068\u601d\u3044\u307e\u3059":5,"github\u304copenai\u3068\u5171\u540c\u3067\u958b\u767a\u3057\u305f\u30b3\u30fc\u30c9\u88dc\u5b8c\u30c4\u30fc\u30eb\u3067\u3042\u308b":21,"github\u3068\u547c\u3070\u308c\u308b\u74b0\u5883\u3092\u5229\u7528\u3057\u3066\u3044\u3066":0,"github\u306a\u3069\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u81ea\u8eab\u306edot":24,"github\u306e":21,"github\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u304cpro\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u306a\u308a":21,"github\u306e\u30ec\u30dd\u30b8\u30c8\u30ea\u304bbook\u306e\u5404\u30da\u30fc\u30b8\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":21,"github\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u30ed\u30b0\u30a4\u30f3\u3059\u308b":21,"github\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b":21,"github\u4e0a":1,"global\u5909\u6570":4,"global\u5909\u6570\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u306f":4,"global\u5909\u6570\u306e\u5ba3\u8a00":4,"gmail\u3092\u63a8\u5968\u3057\u307e\u3059":13,"gmail\u30a2\u30ab\u30a6\u30f3\u30c8\u306b\u3088\u308b\u8a8d\u8a3c\u3092\u30aa\u30f3\u306b\u3057\u3066\u304a\u304f\u3068":13,"google\u306e\u30af\u30e9\u30a6\u30c9\u74b0\u5883\u4e0a\u3067jupyt":0,"google\u306e\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3084":9,"googlecolab\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b\u30b3\u30fc\u30c9\u30b9\u30cb\u30da\u30c3\u30c8":13,"googledrive\u306b":5,"gp\u306b\u9650\u3089\u305a\u591a\u304f\u306e\u5834\u5408":11,"gp\u306e\u4e88\u6e2c\u304c":11,"gpt\u306a\u3069\u306b\u5c0b\u306d\u3066\u307f\u308b\u306e\u3082":25,"gpt\u306a\u3069\u306b\u5c0b\u306d\u3066\u307f\u308b\u306e\u3082\u826f\u3044":21,"gpt\u306e\u4f7f\u7528\u4f8b\u3092\u7d39\u4ecb\u3057\u3066\u307f\u3088\u3046":21,"gpt\u3092":21,"gpy\u3067\u306f":11,"gpyopt\u306f\u6700\u5c0f\u5024\u3092\u63a2\u7d22\u3059\u308b\u306e\u3067\u30de\u30a4\u30ca\u30b9\u3092\u304b\u3051\u3066\u304a\u304f":11,"gpyopt\u3092\u4f7f\u3063\u3066\u3084\u3063\u3066\u307f\u3088\u3046":11,"gru\u306b\u3088\u308b\u6570\u5024\u6f14\u7b97\u901f\u5ea6\u306e\u6bd4\u8f03":22,"gui\u3092\u4f34\u3046\u51e6\u7406\u3092\u884c\u3044\u305f\u3044\u5834\u5408":24,"gui\u3092\u554f\u308f\u305a":24,"hello\u3068\u30d7\u30ea\u30f3\u30c8\u3059\u308b":2,"hit\u304c0\u306e\u72b6\u614b\u3067\u306f\u4f55\u3082\u3057\u306a\u3044":9,"homebrew\u304c\u5c0e\u5165\u3067\u304d\u305f\u3089":24,"html\u3067\u8a18\u8ff0\u3055\u308c\u3066\u3044\u307e\u3059":13,"html\u3068\u306f":13,"html\u3092\u69cb\u6587\u89e3\u6790\u3057\u3066":13,"i\u306f\u30c0\u30df\u30fc\u5909\u6570":4,"i\u306fj":4,"i\u30920\u304b\u30894\u307e\u3067\u5909\u5316\u3055\u305b\u306a\u304c\u3089i\u3092print\u3059\u308b\u4f5c\u696d\u3092\u7e70\u308a\u8fd4\u3057\u306a\u3055\u3044":3,"i\u3092\u62bc\u3059\u3068\u30a4\u30f3\u30b5\u30fc\u30c8\u30e2\u30fc\u30c9\u306b\u5165\u308a\u7de8\u96c6\u53ef\u80fd\u306b":24,"i\u756a\u76ee":6,"id\u304c\u7b49\u3057\u3044\u304b":3,"if\u306e\u7565":3,"if\u6587\u306f\u5165\u308c\u5b50\u69cb\u9020\u306b\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b":3,"import":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24],"index\u306e\u30b9\u30e9\u30a4\u30b9\u3067\u306f\u306a\u304f":18,"index\u306e\u4ee3\u308f\u308a\u306b\u9805\u76ee\u540d\u3067\u6307\u5b9a\u3059\u308b":18,"indexing\u3068\u547c\u3070\u308c\u308b\u8a00\u8a9e\u306e\u5229\u70b9\u306f\u3044\u304f\u3064\u304b\u3042\u308a\u307e\u3059\u304c":3,"indexing\u3092\u4f7f\u3046\u3053\u3068\u3082\u591a\u3044\u305f\u3081":3,"input_str\u304c":9,"int":[2,6,7,9,12,14,16,19,20],"interface\u306e\u7565\u3067\u3059":13,"ipynb\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b\u5834\u6240\u3067\u3042\u308b":21,"ipynb\u30d5\u30a1\u30a4\u30eb\u306e\u5b9f\u884c":21,"ipynb\u30d5\u30a1\u30a4\u30eb\u306f":21,"ipynb\u30d5\u30a1\u30a4\u30eb\u3092\u5b9f\u884c":21,"iris\u30c7\u30fc\u30bf\u3092\u4f7f\u3063\u3066sklearn\u3067\u4e3b\u6210\u5206\u5206\u6790\u3092\u3084\u3063\u3066\u307f\u3088\u3046":17,"iris\u30c7\u30fc\u30bf\u3092\u53d6\u5f97":17,"j\u306b\u53ef\u80fd\u306a\u6574\u6570\u3092\u5165\u308c\u3066":3,"javascript\u306e\u5b9f\u884c\u306a\u3069\u304c\u306a\u3044\u30da\u30fc\u30b8\u306a\u3089\u3053\u308c\u3067\u3060\u3044\u305f\u3044\u5341\u5206\u304b\u3068\u601d\u3044\u307e\u3059":13,"jis\u3067\u66f8\u304b\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u5168\u3066utf":9,"jis\u3068\u3044\u3046\u6642\u4ee3\u9045\u308c\u306a\u6587\u5b57\u30b3\u30fc\u30c9\u3067csv\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3053\u3046\u3068\u3059\u308b\u305f\u3081\u3067\u3059":9,"jis\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u3082":9,"json\u306e\u30ad\u30fc\u3068\u3057\u3066\u4f55\u304c\u3042\u308b\u304b\u3092\u898b\u3066\u307f\u3088\u3046":13,"json\u5f62\u5f0f":13,"julia\u306a\u3069\u306f1\u304b\u3089\u30ab\u30a6\u30f3\u30c8\u3057\u307e\u3059":3,"jupyter\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304f":21,"jupyter\u74b0\u5883\u3067dataframe\u3092\u8aad\u3080\u3068":18,"kcal\u5358\u4f4d\u3067\u307b\u3057\u3051\u308c\u3070":18,"kj\u5358\u4f4d":18,"kj\u5358\u4f4d\u306b\u306a\u3063\u3066\u3044\u3066":18,"kutta\u6cd5\u3068\u6bd4\u8f03\u3059\u308b\u3068":16,"kutta\u6cd5\u306e\u9055\u3044":16,"kutta\u6cd5\u3088\u308a\u3082":16,"l2\u6b63\u5247\u5316\u3092\u8ab2\u3059\u3053\u3068":12,"l2\u6b63\u5247\u5316\u9805\u304c\u3042\u308b\u5834\u5408\u306e\u8aa4\u5dee\u95a2\u6570\u306e\u6700\u5c0f\u5316\u3068":12,"l2\u6b63\u5247\u5316\u9805\u3092\u5165\u308c\u305f\u5834\u5408":12,"label\u3068\u547c\u3076":5,"launchpad\u306b\u3042\u308b":24,"learn\u306a\u3069\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3082\u3088\u308a\u9ad8\u5ea6\u306a\u95a2\u6570\u306e\u30d5\u30a3\u30c3\u30c6\u30a3\u30f3\u30b0\u304c\u53ef\u80fd":7,"learn\u306a\u3069\u65e2\u5b58\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u3042\u308bpca\u95a2\u6570\u3092\u5229\u7528\u3059\u308b\u3060\u3051\u3067\u306f\u306a\u304f":17,"learning\u3082\u3044\u3044\u304b\u3082\u3057\u308c\u306a\u3044":19,"left\u306e\u3064\u3082\u308a":5,"length\u306e\u7565":3,"like\u306a\u4f5c\u696d\u3092\u3057\u305f\u3044\u5834\u5408":23,"linux\u3067\u306f":24,"linux\u3067\u4f7f\u3046\u30e6\u30fc\u30b6\u30fc\u540d\u3092\u5165\u529b\u3059\u308b":24,"linux\u3068\u3068\u3082\u306b\u767a\u5c55\u3057\u3066\u304d\u305f\u90e8\u5206\u304c\u5927\u304d\u3044":23,"linux\u306e\u30bf\u30fc\u30df\u30ca\u30eb\u3092\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u308b":21,"linux\u3084mac":23,"linux\u3092\u4f7f\u3063\u3066\u3044\u308b\u4eba\u304c":24,"linux\u30b3\u30de\u30f3\u30c9\u3067\u3042\u308b":25,"linux\u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u3044\u65b9\u7b49\u306b\u3064\u3044\u3066\u306f":23,"linux\u30b3\u30de\u30f3\u30c9\u3084\u30b7\u30a7\u30eb\u306b\u3064\u3044\u3066\u306e\u77e5\u8b58\u304c\u5c11\u3057\u3060\u3051\u5fc5\u8981\u306b\u306a\u308b\u304c":21,"linux\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3048\u3070\u826f\u3044":21,"linux\u30b7\u30a7\u30eb\u74b0\u5883":24,"linux\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b":24,"linux\u74b0\u5883\u3092\u69cb\u7bc9\u3092\u3059\u308c\u3070":24,"linux\u7528windows\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0":23,"ls\u30b3\u30de\u30f3\u30c9":9,"m1\u4ee5\u964d\u306eapple\u5236\u306ecpu\u3092\u642d\u8f09\u3057\u3066\u3044\u308b\u5834\u5408":24,"m\u6708":13,"mac\u306a\u3089":[1,9],"mac\u306bdocker\u74b0\u5883\u3092\u5165\u308c\u3066\u304a\u3051\u3070":24,"mac\u306e\u5834\u5408\u306f":3,"mac\u3084linux\u306e\u5834\u5408\u306f\u8a00\u3046\u307e\u3067\u3082\u306a\u304f":21,"mac\u30e6\u30fc\u30b6\u30fc\u306e\u4eba\u306f\u9069\u5b9c\u4e0b\u8a18\u306e\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30ad\u30fc":1,"mac\u30e6\u30fc\u30b6\u30fc\u306f":21,"mac\u6a19\u6e96\u306enumbers\u3067\u958b\u304f\u3068\u6587\u5b57\u5316\u3051\u3057\u307e\u305b\u3093":9,"macos\u306e\u5834\u5408":9,"markdown\u30c6\u30ad\u30b9\u30c8":0,"marker\u306e\u5024\u3092\u6307\u5b9a\u3059\u308c\u3070":5,"matplotlib\u306e\u7c21\u5358\u306a\u4f7f\u3044\u65b9\u304c\u5206\u304b\u308b":25,"matplotlib\u306f\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5909\u3048\u308b\u3060\u3051\u3067\u6307\u5b9a\u3057\u305f\u62e1\u5f35\u5b50\u3067\u63cf\u753b\u3057\u3066\u304f\u308c\u308b\u306e\u3067\u8272\u3005\u8a66\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"matplotlib\u306f\u69d8\u3005\u306a\u30b0\u30e9\u30d5\u304c\u63cf\u3051\u308b\u4e00\u65b9\u3067\u5c11\u3005\u30c6\u30af\u30cb\u30ab\u30eb\u306a\u90e8\u5206\u304c\u591a\u3044\u306e\u3067":5,"matplotlib\u306f\u6a19\u6e96\u3060\u3068\u65e5\u672c\u8a9e\u304c\u6587\u5b57\u5316\u3051\u3057\u3066\u8c46\u8150\u306e\u3088\u3046\u306b\u8868\u793a\u3055\u308c\u3066\u3057\u307e\u3046\u306e\u3067":5,"matplotlib\u3092\u4f7f\u3063\u305f\u4f5c\u753b\u3092\u8a66\u3057\u3066\u307f\u307e\u3057\u3087\u3046":5,"matplotlib\u3092\u7528\u3044\u3066\u9069\u5f53\u306a\u30b0\u30e9\u30d5\u3092\u63cf\u304dgoogle\u30c9\u30e9\u30a4\u30d6\u306b\u4fdd\u5b58\u305b\u3088":25,"microsoft\u306ewindow":9,"moulton\u6cd5\u3068\u547c\u3070\u308c\u308b":16,"n\u306f\u9069\u5f53\u306a\u6574\u6570":25,"n\u3092\u53d6\u308a\u9664\u3044\u305f\u30ea\u30b9\u30c8\u3092\u4f5c\u3063\u3066\u8868\u793a\u3057\u3066\u307f\u308b":18,"naive\u306b2\u5c64\u4ee5\u4e0a\u306e\u96a0\u308c\u5c64\u3092\u6301\u3064\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u62e1\u5f35\u3059\u308b\u306e\u306fstraightfoward\u3067\u306f\u306a\u304f":10,"nasa\u306emodel":22,"ndarray\u306e\u30b5\u30a4\u30ba\u306f":6,"ndarray\u578b":18,"ndf\u3068\u540d\u524d\u3092\u3064\u3051\u308b":13,"new":[8,23,24],"nhl\u306e\u5024\u306b\u4f9d\u308a\u307e\u3059\u304c":10,"nline\u3068\u3044\u3046\u540d\u524d\u3067\u4e0a\u66f8\u304d":9,"nootebook\u3067\u306f":1,"nootebook\u3092\u7de8\u96c6":0,"notebook\u3092\u7de8\u96c6":0,"notebook\u3092\u958b\u304f":0,"notebook\u74b0\u5883\u3067\u306f":2,"numpy\u3067\u306f\u6570\u5b66\u3067\u7528\u3044\u308b\u7a2e\u3005\u306e\u95a2\u6570":22,"numpy\u3068\u304b\u304f\u3068\u9577\u3044\u306e\u3067np\u3068\u3044\u3046\u540d\u524d\u3067\u4f7f\u3046":22,"numpy\u306e":5,"numpy\u306e\u3082\u3068\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308bn":22,"numpy\u306e\u30ce\u30fc\u30c8\u3092\u53c2\u7167":7,"numpy\u306e\u4e2d\u306b\u3042\u308b\u56fa\u6709\u5024":17,"numpy\u306e\u4e2d\u8eab\u3092\u898b\u3066\u306a\u3044\u306e\u3067\u4e0d\u6b63\u78ba\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c":12,"numpy\u306e\u5927\u304d\u306a\u7279\u5fb4\u306b":5,"numpy\u306efit":12,"numpy\u306erandom\u95a2\u6570\u3092\u4f7f\u3046\u3068\u304d\u306fnp":7,"numpy\u306f\u5b9f\u306fmatplotlib\u3092\u4f7f\u3063\u305f\u304a\u7d75\u304b\u304d\u3067\u3082\u3088\u304f\u304a\u4e16\u8a71\u306b\u306a\u308b":22,"numpy\u3092np\u3068\u3044\u3046\u540d\u524d\u3067\u4f7f\u3046":5,"numpy\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u591a\u9805\u5f0ffit\u95a2\u6570\u3068":12,"numpy\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3046\u3068\u5b9f\u306f\u3082\u3046\u5c11\u3057\u30b7\u30f3\u30d7\u30eb\u306b\u66f8\u3051\u308b":7,"nvidia\u304b\u3089":20,"o\u5217r\u5217\u306a\u3069":18,"o\u578b":3,"object\u3068\u547c\u3070\u308c\u308b\u3082\u306e\u306a\u306e\u3067":9,"office\u306a\u3069":1,"onedrive\u306b\u3088\u308b\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u30d5\u30a9\u30eb\u30c0\u306f":24,"onedrive\u306e\u4e0b\u306b\u5909\u66f4\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f":24,"open\u3057\u305f\u30d5\u30a1\u30a4\u30eb":9,"os\u306a\u3069\u3082unix\u7cfb\u306b\u542b\u307e\u308c\u308b":23,"os\u306b\u3082\u3088\u308b\u304c":9,"os\u306b\u5099\u308f\u3063\u3066\u3044\u308b\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u6a5f\u80fd":21,"os\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u3057\u3070\u3089\u304f\u884c\u3063\u3066\u3044\u306a\u3044\u5834\u5408":24,"os\u306e\u30de\u30a4\u30ca\u30fc\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306f\u90fd\u5ea6\u884c\u3046\u3088\u3046\u306b\u3057\u307e\u3057\u3087\u3046":24,"os\u306e\u4e2d\u3067\u306fgui\u74b0\u5883\u3082\u826f\u304f\u51fa\u6765\u3066\u3044\u308b\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u4eba\u6c17\u304c\u9ad8\u3044":23,"p\u306e\u30bc\u30ed\u884c\u5217\u3092\u4f5c\u6210":17,"p\u3092\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070p":4,"pandas\u3067\u306f\u4e3b\u306b":18,"pandas\u306b\u3042\u308bread_excel\u95a2\u6570\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046":18,"pandas\u306b\u306fread_excel":18,"pandas\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u305f\u5b9f\u88c5\u306b\u5909\u66f4\u3057\u307e\u3057\u305f":9,"pandas_estat\u5185\u306e\u95a2\u6570\u306f\u500b\u5225\u306bimport\u3059\u308b\u3053\u3068\u306b\u3059\u308b":13,"passwd\u3092\u4e0a\u66f8\u304d\u4fdd\u5b58\u3057":24,"pc\u306e\u6642\u523b\u8a2d\u5b9a\u304c\u304d\u3061\u3093\u3068\u884c\u308f\u308c\u3066\u3044\u306a\u3044\u3068":[23,24],"pca\u3092\u5b9f\u88c5\u3057\u3066\u307f\u3088\u3046":17,"pca\u95a2\u6570\u306e\u4f7f\u7528":17,"pdf\u3084eps\u306a\u3069":5,"pdf\u30d5\u30a1\u30a4\u30eb\u3092v":21,"picture\u3078\u306e\u76f8\u5bfe\u30d1\u30b9\u306f":9,"pip\u304c\u306a\u3044\u5834\u5408":24,"plot\u3059\u308b":9,"png\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3057\u305f\u3044\u5834\u5408\u306f":1,"png\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3057\u305f\u3044\u5834\u5408\u306f\u3084\u306f\u308a":1,"png\u306a\u3069":5,"png\u30d5\u30a1\u30a4\u30eb\u3092\u307e\u3068\u3081\u3066gif\u306b\u3059\u308b\u30b3\u30fc\u30c9\u306f\u4ee5\u4e0b\u306e\u3068\u304a\u308a\u3067\u3059":5,"polyfit\u3082\u304a\u305d\u3089\u304f\u8a08\u753b\u884c\u5217\u3092\u7528\u3044\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u306f\u305a":12,"polyfit\u95a2\u6570\u3067\u6700\u9069\u5316\u3057":7,"powershell\u306b\u623b\u308a":24,"powershell\u3092\u958b\u304f":24,"powershell\u4e0a\u3067\u4e0b\u8a18\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5165\u529b\u3057":24,"print\u3059\u308b\u5148\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u6307\u5b9a\u3067\u304d\u307e\u3059":9,"print\u3060\u3068\u3061\u3087\u3063\u3068\u7121\u6a5f\u8cea\u306a\u611f\u3058\u306b":18,"print\u6587\u3092\u4f7f\u3063\u305f\u308a\u3057\u306a\u304c\u3089\u3053\u3046\u3057\u305f\u8ad6\u7406\u30a8\u30e9\u30fc\u304c\u7121\u3044\u304b\u8abf\u3079\u308b\u3053\u3068\u3082\u3068\u304d\u306b\u5fc5\u8981\u3067\u3059":14,"python3\u304c\u3042\u308b\u5834\u5408\u306f":24,"python3\u304c\u3082\u3068\u3082\u3068\u306a\u3044\u5834\u5408\u306f":24,"python3\u7cfb\u304c\u306a\u3044\u5834\u5408\u306f":24,"python\u304b\u3089\u3044\u3064\u3067\u3082\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u308b":24,"python\u3067\u306f":[2,3,4,5,6],"python\u3067\u306f\u6bd4\u8f03\u7684\u5bb9\u6613\u306b\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b":13,"python\u3067\u306f\u7279\u5b9a\u306e\u578b\u540c\u58eb\u306e\u307f\u306b\u8a31\u3055\u308c\u305f\u7279\u6b8a\u306a\u6f14\u7b97\u7b49\u3082\u3042\u308b":2,"python\u3067\u306f\u8981\u7d20\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306f\uff11\u304b\u3089\u3067\u306f\u306a\u304f":3,"python\u3067\u306f\u901a\u5e38\u30a4\u30f3\u30c7\u30f3\u30c8\u5e45\u306f4\u3064\u306e\u534a\u89d2\u30b9\u30da\u30fc\u30b9\u3067\u6307\u5b9a\u3055\u308c\u307e\u3059":3,"python\u3067\u30b0\u30e9\u30d5\u3092\u4f5c\u308b\u969b\u306e\u57fa\u672c\u306f":5,"python\u3067\u30c7\u30fc\u30bf\u89e3\u6790\u3092\u3059\u308b\u305f\u3081\u306e\u4e0b\u6e96\u5099\u306b\u76f8\u5f53\u3059\u308b":9,"python\u3067\u6271\u3046\u5b9f\u6570\u5024\u306f":2,"python\u3067\u8aad\u307f\u51fa\u305b\u308b":22,"python\u3068\u5165\u529b\u3057\u3066ent":24,"python\u3068\u691c\u7d22\u3059\u308b":24,"python\u306a\u3089\u30b5\u30af\u30c3\u3068\u5b9f\u88c5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":6,"python\u306b\u304a\u3051\u308b\u95a2\u6570\u306e\u5b9a\u7fa9\u3068\u95a2\u6570\u304c\u8fd4\u3059\u5024":4,"python\u306b\u306f":2,"python\u306b\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u308b\u95a2\u6570\u3067":4,"python\u306b\u9650\u3089\u305a\u5404\u7a2e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u697d":24,"python\u306e\u3088\u3046\u306a\u30a4\u30f3\u30bf\u30d7\u30ea\u30bf\u8a00\u8a9e\u3067\u306f":14,"python\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u3092\u7528\u3044\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b":24,"python\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":[23,24],"python\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u3067\u304d\u306a\u3044\u3068\u306f\u601d\u3044\u306b\u304f\u3044\u304c":24,"python\u306e\u30b3\u30fc\u30c9\u3092\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066python\u304b\u3089\u8aad\u3080\u3068\u304d\u306a\u3069\u304c\u3053\u308c\u306b\u8a72\u5f53":9,"python\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406\u3084docker\u306e\u5c0e\u5165\u306a\u3069\u306f\u3084\u3084\u96e3\u6613\u5ea6\u304c\u4e0a\u304c\u308b":24,"python\u306e\u30e9\u30a4\u30d6\u30e9\u30ea":5,"python\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u7d30\u304b\u306a\u4f7f\u3044\u65b9\u3092\u8abf\u3079\u308b\u6642":5,"python\u306e\u4ed6\u306b\u3082c":3,"python\u306e\u5bfe\u8a71\u30e2\u30fc\u30c9":24,"python\u306e\u5bfe\u8a71\u30e2\u30fc\u30c9\u304b\u3089\u51fa\u308b\u3068\u304d\u306b\u3082\u4f7f\u3046":24,"python\u306e\u5bfe\u8a71\u30e2\u30fc\u30c9\u306a\u3069\u3067\u6253\u3061\u8fbc\u3080\u5834\u5408\u3068\u533a\u5225\u3059\u308b\u305f\u3081\u306e\u8868\u8a18":[23,24],"python\u306e\u5bfe\u8a71\u30e2\u30fc\u30c9\u306b\u5165\u3063\u3066\u307f\u3088\u3046":23,"python\u306e\u5bfe\u8a71\u30e2\u30fc\u30c9\u306b\u5165\u308a\u307e\u3059":23,"python\u306e\u5bfe\u8a71\u74b0\u5883\u306e\u4e2d\u3067":24,"python\u306e\u6587\u6cd5\u3084\u4f5c\u6cd5":2,"python\u306e\u6700\u65b0\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3084\u305d\u306e\u4ed6\u8272\u3005\u306a\u3082\u306e\u3092\u5c0e\u5165\u3057\u305f\u3051\u308c\u3070":24,"python\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3092pip\u8fbc\u307f\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3057\u3087\u3046":[23,24],"python\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3067\u4f7f\u3046\u969b\u306b\u6bce\u56de":21,"python\u3092\u59cb\u3081\u591a\u304f\u306e\u6570\u5024\u8a08\u7b97\u306b\u9069\u3057\u305f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u306f":19,"python\u3092\u59cb\u3081\u69d8\u3005\u306a\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u7de8\u96c6\u3059\u308b\u305f\u3081\u306e\u74b0\u5883\u3068\u3057\u3066":21,"python\u3092\u7528\u3044\u305f\u5404\u7a2e\u30b0\u30e9\u30d5\u306e\u63cf\u753b":5,"python\u30b3\u30fc\u30c9\u3060\u3051\u3067\u306a\u304f":21,"python\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b":21,"python\u7528\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3":24,"python\u7528\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3pip\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u308b":24,"python\u7528\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c":24,"python\u7528\u306e\u30e9\u30a4\u30d6\u30e9\u30ea":13,"python\u7528\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u65b9\u6cd5":24,"r\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u5fc5\u8981":24,"random\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u306f\u534a\u958b\u533a\u9593":6,"random\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u95a2\u6570\u3092\u4f7f\u3046\u3068\u304d\u306frandom":7,"read_excel\u95a2\u6570\u306e\u6700\u521d\u306e\u5f15\u6570\u306b\u306f\u30d1\u30b9\u306e\u4ed6\u306b":18,"relu\u95a2\u6570\u3067\u306f\u6700\u59271":10,"relu\u95a2\u6570\u3092\u6d3b\u6027\u5316\u95a2\u6570\u306b\u4f7f\u3046\u3068\u304d\u306fhe\u306e\u521d\u671f\u5024\u3068\u3044\u3046\u3082\u306e\u304c\u63a8\u5968\u3055\u308c\u3066\u3044\u308b":10,"report2\u3078\u306e\u76f8\u5bfe\u30d1\u30b9\u306f":9,"report\u304c\u521d\u3081\u3066\u767a\u8868\u3055\u308c\u305f2019\u5e741\u670820\u65e5\u3092\u8d77\u70b9":5,"return":[2,4,5,6,7,8,9,10,11,12,13,15,16,19,20],"right\u306e\u3064\u3082\u308a":5,"rk4\u3067\u306f\u5404\u30b9\u30c6\u30c3\u30d7\u3067":16,"rk\u6cd5\u306a\u3069\u3067\u4e88\u3081\u6c42\u3081\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308b":16,"rm\u30b3\u30de\u30f3\u30c9\u3067\u524a\u9664\u3057\u305f\u3082\u306e\u306f\u30b4\u30df\u7bb1\u306b\u5165\u308c\u3089\u308c\u305a\u306b\u524a\u9664\u3055\u308c\u308b\u306e\u3067\u6ce8\u610f":24,"rm\u30b3\u30de\u30f3\u30c9\u306b\u30a8\u30a4\u30ea\u30a2\u30b9\u3092\u8cbc\u3063\u3066":24,"root\u3092\u3068\u308b":7,"root\u6a29\u9650\u3067\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b":21,"rootfs\u4ee5\u4e0b\u306ehome\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u30ed\u30b0\u30a4\u30f3\u3057\u305f\u72b6\u614b\u3067\u30bf\u30fc\u30df\u30ca\u30eb\u304c\u958b\u304d\u307e\u3059":24,"ryzen\u306ecpu\u304c\u642d\u8f09\u3055\u308c\u305f\u30de\u30b7\u30f3\u3092\u4f7f\u3063\u3066\u3044\u3066":23,"s1\u304b\u3089s12\u307e\u3067\u304c\u6c17\u5019\u30c7\u30fc\u30bf\u306b\u306a\u3063\u3066\u3044\u3066":9,"s\u306e\u5024\u304c":3,"s\u3092\u62bc\u3057\u3066\u4e0a\u66f8\u304d\u4fdd\u5b58":24,"seed\u3092":7,"seed\u3092\u7528\u3044\u308b":7,"segments\u306e\u7565\u3067":5,"series\u306fdataframe\u306e\u7279\u6b8a\u306a\u5834\u5408\u3068\u307f\u306a\u305b\u308b\u306e\u3067":18,"sheet1\u306e\u4e2d\u8eab\u3092\u306e\u305e\u3044\u3066\u307f\u307e\u3057\u3087\u3046":9,"shell\u306e\u7565\u3067":24,"sigma\u306f\u5bfe\u89d2\u6210\u5206\u306e\u307f\u3092\u30d9\u30af\u30c8\u30eb\u306e\u3088\u3046\u306b\u6301\u3063\u3066\u3044\u308b\u4e8b\u304c\u308f\u304b\u308b":19,"sigma\u3092rank1\u3067\u8fd1\u4f3c\u3057\u3066\u307f\u308b":19,"sigma\u3092rank2\u3067\u8fd1\u4f3c\u3057\u3066\u307f\u308b":19,"sigmoid\u3088\u308a\u3082\u4ee5\u4e0b\u306erelu\u95a2\u6570\u304c\u4f7f\u308f\u308c\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3059":10,"sigmoid\u95a2\u6570\u306e\u5fae\u5206sigmoid_der\u3092acfder\u3068\u3044\u3046\u540d\u524d\u3067\u4f7f\u3046":10,"sigmoid\u95a2\u6570\u306f\u5fae\u5206\u306e\u5024\u304c\u6700\u5927\u30670":10,"sigmoid\u95a2\u6570\u306fx":10,"sigmoid\u95a2\u6570\u3092acf\u3068\u3044\u3046\u540d\u524d\u3067\u4f7f\u3046":10,"sigmoid\u95a2\u6570\u4ee5\u5916\u306e\u6d3b\u6027\u5316\u95a2\u6570\u3092\u4f7f\u3046\u969b\u306b\u3082":10,"sin\u95a2\u6570":7,"sin\u95a2\u6570\u306b\u6b63\u898f\u4e71\u6570\u306b\u5f93\u3046\u8aa4\u5dee\u3092\u52a0\u3048\u305f\u5024\u3092\u8fd4\u3059\u95a2\u6570":7,"sklearn\u3067\u306f\u4e0d\u504f\u5206\u6563\u304c\u4f7f\u308f\u308c\u3066\u3044\u308b\u3093\u3060\u306a":17,"sklearn\u3067\u8a08\u7b97\u3055\u308c\u305f":17,"sklearn\u3068\u540c\u3058\u7d50\u679c\u3092\u4e0e\u3048\u308b\u81ea\u4f5c\u30b3\u30fc\u30c9\u3092\u4f5c\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3057\u305f":17,"sklearn\u3068\u6574\u5408":17,"sklearn\u3068\u81ea\u524d\u95a2\u6570\u3067\u5f97\u3089\u308c\u305f\u5024\u3067\u7b26\u53f7\u304c\u7570\u306a\u3063\u3066\u3044\u308b":17,"sklearn\u306a\u3069\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u975e\u5e38\u306b\u4fbf\u5229\u3060\u304c":17,"sklearn\u306e\u51fa\u529b\u3068\u4e0a\u4e0b\u304c\u3072\u3063\u304f\u308a\u8fd4\u3063\u3066\u3044\u308b":17,"sqrt\u304c\u8a08\u7b97\u3067\u304d\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059":3,"sqrt\u306e\u8a08\u7b97\u3067\u30a8\u30e9\u30fc\u304c\u3042\u308a\u307e\u3057\u305f":3,"ssh\u3068\u306f":24,"ssh\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb":24,"ssh\u3092\u4f7f\u3063\u305f\u3053\u3068\u304c\u3042\u308b\u5834\u5408\u306f":24,"startangle\u306f\u5186\u30b0\u30e9\u30d5\u306e\u59cb\u70b9\u3092":5,"stat\u3067\u306f":13,"stat\u306b\u3042\u308b\u30c7\u30fc\u30bf\u3092\u3069\u3093\u3069\u3093\u62bd\u51fa\u3057\u305f\u3044":13,"stat\u306eapi\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u4e88\u3081":13,"stat\u3078\u306e\u767b\u9332\u304c\u3067\u304d\u305f\u3067\u3057\u3087\u3046\u304b":13,"stat\u3078\u306e\u767b\u9332\u304c\u5fc5\u8981\u3067\u3059":13,"stat\u3092\u4f7f\u3063\u3066\u307f\u307e\u3057\u3087\u3046":13,"stat\u5206\u6790\u30c4\u30fc\u30eb\u3092\u4f5c\u308b\u3053\u3068\u3082\u3067\u304d\u308b":13,"step\u3054\u3068\u306b\u6307\u793a\u306b\u8fd1\u3065\u3044\u3066\u3044\u308b":20,"step\u306e\u6570":6,"step\u56de\u3060\u3051\u66f4\u65b0\u3092\u7e70\u308a\u8fd4\u3059":8,"store\u304b\u3089\u5c0e\u5165\u3057\u305f\u65b9\u3067":24,"store\u304c\u958b\u304f":24,"store\u3067ubuntu\u3068\u691c\u7d22\u3057":24,"store\u3067window":23,"store\u307e\u305f\u306f":21,"store\u3092\u958b\u304d":24,"string\u306e\u7565":2,"strip\u95a2\u6570\u3092\u3082\u3061\u3044\u3066":9,"studenta\u3078\u306e\u76f8\u5bfe\u30d1\u30b9\u306f":9,"stylegan3\u306fgan":20,"stylegan3\u53ca\u3073clip\u306e\u30e9\u30a4\u30bb\u30f3\u30b9":20,"sudo\u306f\u30b3\u30de\u30f3\u30c9\u306e\u982d\u306b\u3064\u3051\u308b\u3053\u3068\u3067\u7ba1\u7406\u8005\u6a29\u9650\u3067\u5b9f\u884c\u3059\u308b":[23,24],"super":20,"svd\u3084\u884c\u5217\u7a4d\u306a\u3069\u306fnumpy\u3092\u7528\u3044\u3066\u826f\u3044":19,"svd\u3092\u5b9f\u884c":19,"svd\u3092\u967d\u306b\u7528\u3044\u305f\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u304c\u3084\u308a\u305f\u3044\u30bf\u30b9\u30af\u306b\u5bfe\u3057\u3066\u6700\u9069\u3067\u3042\u308b\u4fdd\u8a3c\u306f\u306a\u3044\u304c":19,"sympy\u306a\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3084mathematica\u306a\u3069\u306e\u30c4\u30fc\u30eb\u3092\u4f7f\u3046\u306e\u3082\u4e00\u3064\u306e\u624b\u3067\u3059":8,"t\u79d2\u5f8c\u306b\u7acb\u3063\u3066\u308b\u5834\u6240\u3084":6,"tab\u30ad\u30fc\u3092\u4f7f\u3063\u3066\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u6307\u5b9a\u3059\u308b\u306e\u3068":3,"taylor\u5c55\u958b\u3059\u308b\u3060\u3051\u3067\u7c21\u5358\u306b\u8abf\u3079\u3089\u308c\u308b\u3088\u3046\u306beuler\u6cd5\u306f\u5c40\u6240\u6253\u3061\u5207\u308a\u8aa4\u5dee\u304c":16,"terminal\u304b\u3089\u958b\u304f\u3068":23,"terminal\u304b\u3089wsl\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":23,"terminal\u3067\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3066":23,"terminal\u3068\u691c\u7d22\u3057":23,"terminal\u306e\u3069\u3061\u3089\u3067ubuntu\u74b0\u5883\u3092\u958b\u3044\u3066\u3044\u308b\u5834\u5408\u3082":23,"terminal\u306e\u30bf\u30d6\u306e":23,"terminal\u306e\u4e0a\u3067ubuntu\u304c\u958b\u304f":23,"terminal\u306f":23,"tlabels\u306f":5,"trial\u3092\u30af\u30ea\u30c3\u30af\u3057":21,"true":[2,3,5,6,7,9,11,13,15,18,20],"true\u306b\u5bfe\u5fdc\u3059\u308b\u8981\u7d20\u306e\u307f\u3092\u8fd4\u3059":18,"true\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6307\u5b9a":6,"try":[2,3,20],"txt\u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u3092\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u306b\u79fb\u52d5":24,"txt\u3068\u30ea\u30cd\u30fc\u30e0\u3059\u308b":24,"txt\u3092\u4e00\u3064\u4e0a\u306e\u968e\u5c64\u306b\u3042\u308badds\u3068\u3044\u3046\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u79fb\u52d5\u3057":24,"txt\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u8eab\u3092\u8868\u793a\u305b\u3088":25,"txt\u62e1\u5f35\u5b50\u306e\u5168\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a":24,"ubuntu\u306b\u306f\u521d\u3081\u304b\u3089python3\u7cfb\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u304c":[23,24],"ubuntu\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":24,"ubuntu\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u304c\u958b\u304f":23,"ubuntu\u306e\u521d\u671f\u8a2d\u5b9a":23,"ubuntu\u306e\u8d77\u52d5":[23,24],"ubuntu\u3092\u518d\u8d77\u52d5\u3057":24,"ubuntu\u3092\u8d77\u52d5\u3057\u305f\u969b\u306b\u958b\u304f\u30bf\u30fc\u30df\u30ca\u30eb\u306e":24,"ubuntu\u3092\u9078\u629e\u3059\u308b\u3068":23,"ubuntu\u3092\u958b\u304f\u3068":24,"ubuntu\u30bf\u30fc\u30df\u30ca\u30eb":23,"ubuntu\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089":24,"ubuntu\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u4ee5\u4e0b\u3092\u5165\u529b\u3057\u5b9f\u884c\u3059\u308b":23,"ubuntu\u30bf\u30fc\u30df\u30ca\u30eb\u306b\u3042\u308b":24,"ubuntu\u30bf\u30fc\u30df\u30ca\u30eb\u306b\u4ee5\u4e0b\u3092\u5165\u529b\u3057\u5b9f\u884c":24,"ubuntu\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u672b\u5c3e\u306b\u3042\u308b":23,"ubuntu\u30e6\u30fc\u30b6\u540d":24,"ubuntu\u7528\u306b\u8a2d\u5b9a\u3057\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u8981\u6c42\u3055\u308c\u307e\u3059":[23,24],"ubuntu\u81ea\u4f53\u306flinux":23,"unix\u3067\u7528\u3044\u3089\u308c\u308b\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b":1,"unix\u306f\u3042\u308b\u3068\u3053\u308d\u3067\u679d\u5206\u304b\u308c\u3057":23,"unix\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u306f":24,"upgrade\u306b\u5931\u6557\u3057\u307e\u3059":24,"url\u3082\u53d6\u308c\u308b":18,"username\u306f\u534a\u89d2\u82f1\u6570\u5b57\u306b\u3057\u3088\u3046":23,"var":6,"vcxsrv\u306e\u6b04\u306b":24,"vim\u306e\u5834\u5408":24,"vscode\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f":21,"vscode\u3092\u8d77\u52d5\u3059\u308b\u3068":21,"w\u306e\u4e8b\u5f8c\u5206\u5e03\u306e\u8a08\u7b97":12,"web\u304b\u3089\u60c5\u5831\u3092\u62bd\u51fa":13,"web\u304b\u3089\u60c5\u5831\u3092\u62bd\u51fa\u3057\u305f\u308a\u3059\u308b\u969b":13,"web\u304b\u3089\u76f4\u63a5xlsx\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u307f\u3088\u3046":18,"web\u3067\u7121\u6599\u306e\u3082\u306e\u304c\u826f\u3051\u308c\u3070":19,"web\u306b\u8ee2\u304c\u3063\u3066\u308bgpy\u3092\u4f7f\u3063\u305f\u30b3\u30fc\u30c9\u3060\u3068":11,"web\u306e\u60c5\u5831\u3084\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u8aad\u3093\u3060\u308a\u3057\u3066":25,"web\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0":9,"web\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0\u306a\u3069":5,"web\u30da\u30fc\u30b8":21,"web\u30da\u30fc\u30b8\u306e\u4e2d\u306b\u3042\u308b\u8868\u3092dataframe\u5f62\u5f0f\u3067\u53d6\u5f97\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":18,"web\u30da\u30fc\u30b8\u3092\u4f5c\u308b\u305f\u3081\u306e\u8a00\u8a9e\u306e\u3053\u3068\u3067":13,"web\u4e0a\u306b\u3042\u308b\u60c5\u5831\u306b\u30a2\u30af\u30bb\u30b9\u3057\u305f\u308a\u3059\u308b\u65b9\u6cd5\u306f\u8272\u3005\u3042\u308b\u304c":13,"while":[2,3,14,15,25],"while\u6587":3,"while\u6587\u304c\u7d42\u308f\u308a":3,"who\u306esitu":5,"wikipedia\u306b\u306f":17,"win\uff11\uff10\u306e\u5de6\u4e0b\u306b\u3042\u308b\u691c\u7d22\u30d0\u30fc\u306bcmd\u3068\u6253\u3064\u3068\u51fa\u3066\u304f\u308b":24,"windows10\u306e\u5834\u5408":23,"windows10\u3092\u4f7f\u3063\u3066\u3044\u3066m":24,"windows11\u306e\u5834\u5408":23,"windows11\u306e\u5834\u5408\u306f\u9069\u5f53\u306a\u30d5\u30a9\u30eb\u30c0":24,"windows11\u3092\u304a\u4f7f\u3044\u306e\u65b9\u306f":24,"windows11\u7528\u306e\u8cc7\u6599":24,"windows\u3067\u8a00\u3046\u3068\u3053\u308d\u306e":5,"windows\u3068\u3044\u3063\u305f\u611f\u3058":24,"windows\u3068\u306f\u5225\u306b\u597d\u304d\u306alinux\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u5171\u5b58\u3055\u305b\u3089\u308c\u308b":24,"windows\u306a\u3089":1,"windows\u306e\u30c7\u30a3\u30b9\u30af\u306flinux\u304b\u3089\u307f\u305f":24,"windows\u306e\u30e6\u30fc\u30b6\u30fc\u30d5\u30a9\u30eb\u30c0\u304b\u3089appdata\u3092\u958b\u3044\u3066":24,"windows\u306e\u4e2d\u306blinux":24,"windows\u306e\u5834\u5408":9,"windows\u306e\u5834\u5408\u3060\u3068powershel":21,"windows\u306e\u5834\u5408\u306f":21,"windows\u306e\u6a5f\u80fd\u306e\u6709\u52b9\u5316\u307e\u305f\u306f\u7121\u52b9\u5316":[23,24],"windows\u30bf\u30fc\u30df\u30ca\u30eb":23,"windows\u30e6\u30fc\u30b6\u30fc\u304c":23,"windows\u5074\u304b\u3089\u898b\u308b\u3068linux":24,"windows\u5074\u306b\u4f5c\u6210\u3057\u3066\u304a\u3044\u305f\u65b0\u3057\u304flinux\u306e\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068\u3057\u305f\u3044\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e":24,"windows\u5074\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30d5\u30a9\u30eb\u30c0\u306e\u30d1\u30b9\u3092\u6307\u5b9a\u3067\u304d\u308b":24,"windows\u5074\u306e\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3044\u308b\u72b6\u614b\u3067\u958b\u304f":23,"windows\u5185\u306b\u69cb\u7bc9\u3055\u308c\u305flinux\u306e\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea":24,"windows\u5185\u306blinux\u74b0\u5883\u304c\u69cb\u7bc9\u3055\u308c\u307e\u3059":24,"windows\u74b0\u5883\u3067\u4f5c\u6210\u3055\u308c\u305f\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u6271\u3046\u969b\u306f\u8aad\u307f\u8fbc\u307f\u3067":9,"windows\u74b0\u5883\u3092\u6c5a\u3055\u306a\u3044":24,"wsl\u3068\u4eee\u60f3\u30de\u30b7\u30f3\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u6709\u52b9\u5316":23,"wsl\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u30922\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b":24,"wsl\u306e\u6709\u52b9\u5316":24,"wsl\u3092\u4f7f\u7528\u3059\u308b\u969b":24,"wsl\u4e0b\u306bpython\u74b0\u5883\u69cb\u7bc9\u3092\u3059\u308b\u65b9\u6cd5\u306f\u4ee5\u4e0b\u306e\u901a\u308a":23,"wsl\u7279\u6709\u306e\u60c5\u5831\u3092\u8abf\u3079\u308b\u5fc5\u8981\u304c\u3042\u308b":24,"x\u3068\u306a\u308b\u3088\u3046\u306a\u95a2\u6570\u3067\u3059":10,"x\u3068python\u7528\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3pip\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059":23,"x\u3068x\u306e\u76f8\u95a2":7,"x\u3068y\u306e\u5024\u3092":6,"x\u3068y\u306e\u76f8\u95a2":7,"x\u3068y\u306e\u9577\u3055\u304c\u9055\u3046\u5834\u5408\u3084\u9577\u30550\u306e\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3092\u51fa\u3059":7,"x\u306e\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0":6,"x\u306e\u5168\u533a\u9593\u3067\u306e\u7a4d\u5206":6,"x\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3068":24,"x\u306f\u8cfc\u5165\u6a5f\u7a2e":24,"x\u3084python3":24,"x\u3092\u9069\u5f53\u306a\u533a\u9593\u306b\u5206\u5272":8,"x\u65b9\u5411y\u65b9\u5411\u3044\u305a\u308c\u3082":6,"x\u6708y\u65e5":1,"x\u8ef8\u304b\u3089\u898b\u3066\u4f55\u5ea6\u306e\u3068\u3053\u308d\u306b\u3068\u308b\u304b\u3067":5,"x\u8ef8\u304c0\u304b\u3089\u59cb\u307e\u308b\u6574\u6570\u5024":5,"x\u8ef8\u3068\u95a2\u6570":6,"x\u8ef8\u3068y\u8ef8\u65b9\u5411\u3067\u30c7\u30fc\u30bf\u306e\u6570\u304c\u5408\u3063\u3066\u3044\u306a\u3044\u3068\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3057\u307e\u3059":5,"x\u8ef8\u306e\u30c7\u30fc\u30bf\u3092\u6307\u5b9a\u3057\u306a\u304f\u3066\u3082plot\u3057\u3066\u304f\u308c\u308b":5,"x\u8ef8\u3092gdp":5,"x\u8ef8\u7528\u306e\u30ea\u30b9\u30c8\u304c\u6570\u5024\u4ee5\u5916\u306e\u3068\u304d\u306f\u6574\u6570\u5024\u3092\u5272\u308a\u5f53\u3066\u3066\u30d7\u30ed\u30c3\u30c8\u3057\u3066\u304f\u308c\u307e\u3059":5,"xcode\u306e\u30b5\u30a4\u30ba\u304c\u3067\u304b\u3044\u306e\u3067\u5b89\u5b9a\u3057\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u4e0b\u3067\u5b9f\u884c\u3059\u308b\u3053\u3068":24,"xlsx\u5f62\u5f0f\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u306a\u304f\u306a\u308b\u3068\u306e\u3053\u3068\u3067":9,"xp\u3067\u306e\u5bfe\u5fdc\u3059\u308b\u5024\u306e\u30ea\u30b9\u30c8":7,"xx\u5104\u5186\u306b\u63db\u7b97":13,"xxx\u306e\u3068\u3053\u308d\u3092\u81ea\u5206\u306e\u540d\u524d\u306b\u3057\u3066\u307f\u307e\u3057\u3087\u3046":2,"y\u3068x\u306e\u76f8\u95a2":7,"y\u3068y\u306e\u76f8\u95a2":7,"y\u306b\u30de\u30a4\u30ca\u30b9\u3092\u304b\u3051\u3066\u5411\u304d\u3092\u3042\u308f\u305b\u3066\u307f\u308b\u3068":17,"y\u306e\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0":6,"y\u306e\u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u3092\u63cf\u304f":6,"y\u306e\u30e1\u30c3\u30b7\u30e5\u70b9\u3092\u3044\u3063\u3071\u3044\u3064\u304f\u3063\u3066":6,"y\u306e\u5024\u304c":15,"y\u306e\u5024\u3068\u591a\u9805\u5f0f\u306e\u6b21\u5143p\u3092\u5f15\u6570\u3068\u3057\u3066\u4e0e\u3048":7,"y\u306e\u5024\u306b\u5f93\u3063\u3066\u5b66\u7fd2\u3055\u308c\u3066\u3044\u308b\u306e\u3067":10,"y\u306e\u914d\u5217\u9593\u306e\u76f8\u95a2\u884c\u5217\u3092\u8a08\u7b97\u3057\u307e\u3059":5,"y\u5e74":13,"y\u8ef8\u309224\u6b73\u304b\u308935\u6b73\u306e\u5e73\u5747\u5c31\u5b66\u5e74\u6570\u306e\u5973\u6027":5,"y\u8ef8\u3092\u5bfe\u6570\u30b9\u30b1\u30fc\u30eb\u306b\u5909\u63db":5,"youtube\u3078\u306e\u30ea\u30f3\u30af":21,"z\u304c\u5b9f\u6570\u5024\u3067\u3082np":10,"zip\u5f62\u5f0f\u3067\u4fdd\u5b58\u3055\u308c\u308b\u306e\u3067":5,"zsh\u306e\u5834\u5408\u306f":24,A:[3,7,10,18,19,22,24],BY:15,NO:13,No:9,The:20,There:20,_:[2,4,6,8,12,15,16,19,20],__init__:[9,20],__main__:9,__name__:9,_at_:9,_decor:6,_f:19,_i:17,_n:17,_t:15,a0feb3e303b1:2,a12:17,a22:17,a287468d4b9b:14,a2:2,a32:17,a42:17,a6:18,a9:18,a_0:7,a_1:7,a_1x:7,a_2:7,a_2x:7,a_3:7,a_:19,a_i:[7,8],a_p:7,aa:[22,24],aaa:4,ab4:16,ab:[6,8,9,11,12,15,16,18],abc:4,abcd:[4,9],abm4:16,abm:16,acceleromet:24,acf:10,acfder:10,acquisit:11,acquisition_typ:11,ad:[18,24],adagrad:8,adam:8,adamw:20,adaptive_avg_pool2d:20,add:[5,9,20,24],add_ax:5,add_subplit:6,add_subplot:[5,6,7,8,9,10,11,12,13,15],adds2019:[9,24],adds2020:[9,24],adds2021:[5,9,18,24],adds20:24,afhqv2:20,after:15,ai:5,aka:24,algebra:19,alia:24,align:[5,16],all:9,allow:[20,24],allow_unicod:20,allowfullscreen:24,alpha:[5,6,7,8,9,11,12,17],alphanumer:20,alreadi:[5,11,13],also:20,amazon:13,ampm:9,an:[6,20],analysi:17,ani:[5,9,11,23],anim:[8,20],ann:10,ann_visu:17,ann_viz:17,anneal:8,annot:13,api:20,app:[21,24],appdata:24,append:[3,4,8,20],append_imag:5,appid:13,apt:[23,24],apx:8,ar:20,arang:[6,7,8,11,15,16,17,21],archiv:20,arcsin:20,area_cod:13,aren:20,arg:6,argmax:11,argmin:20,argument:6,arrai:[5,6,9,10,11,12,15,16,17,19],arrang:22,artistanim:8,asarrai:[17,19],ascii:20,assert:2,astyp:13,atom:24,author:1,authorized_kei:24,auto:20,autopct:5,autoplai:24,autoremov:24,await:19,ax1:[5,6,10],ax2:[6,10],ax:[6,7,8,9,10,11,12,13,15,17],ax_1:8,ax_i:22,axb:11,axbl:5,axbr:5,axes3d:[5,6,17],axi:[5,9,13],axl:6,axr:6,axt:11,axtl:5,axtr:5,azim:6,b0:10,b36359bb607ed1762b6fd67894ef7c988810df30bdafc0694e7c88cd11f5f48c:11,b3:[18,22],b64encod:24,b667755dbee2:14,b:[1,2,3,6,7,8,9,10,14,18,19,20,22,24],b_0:10,backward:20,bar:[5,7,17],barh:5,base64:24,base:3,base_url:20,basenam:20,bash:24,bashrc:24,basic:19,bayesianoptim:11,bayesopt_initi:11,bb:[22,24],bbb:4,bbox_inch:11,bc:18,bcf55d6c5ba0:14,begin:[16,17,19],bet:3,beta1:10,beta2:10,beta:[12,20],beutifulsoup4:13,bf:[12,17],bin:[5,6,21,24],bit:2,bl:5,black:[6,11,20],blob:20,blue:[5,6,8,9,11,12,17,21],bmi:25,boldsymbol:[6,12,15],book:0,both:[5,9,13],bottom:5,bound:11,br:5,brew:24,bs:10,build:[5,11],built:[5,11],bx:8,bymonth:13,bytesio:20,c01:10,c02:10,c2:6,c7fb72a99bc6:14,c8:11,c91f1af649c8:14,c:[2,3,6,7,8,9,15,17,20,22,23,24],c_0:15,c_1:15,c_2:[4,15],c_3:15,c_4:15,c_5:15,c_nx:15,cach:[5,11],calc_d:4,calc_d_print:4,calc_der:10,calc_tloss:10,calcei:11,calcor:9,calcsj:11,call:[2,14],callabl:14,can:20,canonicalgrouplimit:24,captur:17,cat01_cod:13,cat:[20,21,25],caus:20,causat:7,cc:[15,20,24],cd:[21,24],cdot:[7,12,16,17,19],ce28482da28162e6028c4b3a32c41d147395825b3cd62bc810:11,center:5,certifi:13,chapter8_data:9,charact:[9,14,20,23],charset:13,chartreus:17,chat:25,chdir:24,cheatsheet:5,chi2:7,chi:[7,8,22],chmod:21,choic:[3,6,25],choleski:11,choos:20,circl:17,cl:25,clamp:20,climat:9,clinv:11,clip:20,clip_model:20,clipboard:24,cll:11,clone:[9,20],close:[5,6,7,8,9,10,11,12,13,15,16,17,22],closest:20,clubsuit:[2,8,15,19],cm:[5,6,17,21,25],cmap:[5,6,21],co:[5,8,11,21,22],coeff:7,coin:3,col:[8,17],colab:[0,1,2,3,9,13,18,20],colab_p:5,colaboratori:1,collect:[5,11],collect_area:13,color:[5,6,7,8,9,10,11,12,13,15,17],colorbar:[5,6,21],column:[13,17,18],com:[5,9,13,19,20,24],command:[1,21],comp:7,complex:7,compon:17,components_:17,compos:20,concat:18,config:24,configur:24,connect:19,consit:20,constraint:11,contact:13,contain:18,content:[1,5,9,18,20],continu:[2,9,11,23],converg:15,convert:[19,20],copi:[3,11],copydata:3,copyright:15,cor_coeff:7,cor_coeff_np:7,coral1:17,corr_:9,corrcoef:[5,7,9,17],correl:7,cosplai:20,cosplay:20,cosplayfac:20,count:6,counterclock:5,cov1:[5,6],cov2:6,cov:[6,17],covid19:13,cp37:11,cp37m:11,cp:[21,24],creat:[5,11],create_toy_data:[7,10],cs:15,csv:18,csv_file:9,csv_line:9,ctrl:[1,3,21,24],cu111:20,cuda:20,cui:[23,24],current:20,cut_pow:20,cut_siz:20,cutn:20,cutout:20,cycl:13,cycler:[5,13],cython:11,d1:11,d3def1:5,d3f5efe34d8d7393bde5e956d9d3aaa15a46e98c97fa52624778f8952750d950:11,d:[3,4,7,12,13,16,17,20,23,24],d_1_100:4,d_1_2:4,d_:7,dagger:19,dai:13,dash:[6,11,12,20],data1:[3,18],data2:3,data:[3,5,6,7,9,10,11,12,13,17,18,22],datafram:[13,17,18],dataset:[17,20],date:[9,13],dateformatt:13,datetim:13,dateutil:[5,13],db0:10,db:10,dd1ce0192a81b71a3b086fd952511d088b21e8359ea496860a:11,ddot:[17,19],decod:20,decomposit:17,decor:11,deepcopi:3,deepcopydata:3,def:[2,4,5,6,7,8,9,10,11,12,13,15,16,19,20],defin:[2,14],del:2,delta:[8,15],denomin:7,dens:17,densiti:6,derf:11,descent:10,desktop:24,det:[6,22],determin:20,develop:13,deviat:7,devic:20,deztrwyk9vu:24,df1:18,df6:18,df:[8,9,13,17,18],dfdx:8,diag:[12,19],diagsvd:19,dict:[3,13],dict_ag:3,dict_kei:13,diff:[6,7,8,16],differ:20,differenti:16,digraph:17,dim:20,dimension:22,directori:[5,9,11],displai:[19,20,24],dist:[5,6,11,12,13,24],distanc:[4,20],div:20,divid:12,divis:14,django:20,dmat:12,dmrg:19,doc:[3,22],document:9,dodgerblu:17,doe:7,domain:[11,14],dot:[5,6,7,8,9,10,11,12,13,15,17,19],doument:9,download:[5,11,20,21,24],dpi:9,drive:[1,5,9,18,20],dt:16,dtype:13,durat:5,dv:10,dw:10,dx:[6,8,16],e0e0e0:[9,13],e3:18,e5:18,e6:11,e7:18,e8:18,e9e0cde099cc40f972b8dd23367308f7705ae06cd6d4714658:5,e:[7,8,9,10,11,12,15,16,17,19,20,22,25],e_d:12,ebook:9,ec:6,echo:21,edg:17,edgecolor:[7,10],ei:11,eig:17,einop:20,elapc:9,elev:[5,6],elif:[2,3,5,9,20],els:[2,3,5,8,9,16,20],emac:24,emb:[20,24],embed:20,embed_cutout:20,embed_imag:20,embed_text:20,embed_url:20,encod:[9,18,20,21],encode_imag:20,encode_text:20,encount:12,encrypt:24,end:[3,16,17,19],endswith:13,enter:[1,20,21,23,24],enumer:[3,8,9,10,16],eof:14,eol:14,ep:[5,8,10],epsilon:[8,12],eq:16,equal:14,equat:16,equiv:12,erfc:11,err:7,error:[6,7,14],esc:21,estat:13,estim:11,eta:[8,10,11],etc:[8,11,22,24],everi:20,exact_fp:8,excelfil:[9,18],except:[2,3,14,20],exist:20,exist_ok:20,exit:24,exp:[1,5,6,8,10,11],explained_variance_:17,explicit:[6,16],f1:16,f2:16,f2bde18f41d:14,f3:16,f4:16,f4b79909d06560d80efbd01142270456e2403c260cad143b4647081c91d3a36c:5,f5966400ee35:14,f5:[11,16],f7:11,f9652b5af79f769a0ab74dbead7c7aea9a93c6bc74543fd3ec:11,f:[1,2,6,7,8,9,10,11,15,16,20,22],f_1:16,f_2:16,f_3:16,f_4:16,f_:16,f_i:16,fa:11,face:20,facebook:13,facecolor:[7,10],factor:19,fals:[2,3,5,6,9,10,11,17,20],fd:20,featur:17,feature_nam:17,femal:20,fetch:20,fetch_model:20,fexact:16,ffhq:20,ffhqu:20,fig:[5,6,7,8,9,10,11,12,13,15,16,17,22,24],fig_scatt:8,figsiz:[5,6,7,8,9,10,11,12,13,15,16,17,22],figur:[5,6,7,8,9,10,11,12,13,15,16,17,22,24],file:[2,5,9,14,20],filenam:[1,5,9,11],fill:17,fill_between:[6,11,12],fillcolor:17,fit:[11,17],fit_transform:17,fitadam:10,fitgd:10,fmin_l_bfgs_b:11,fnorm:19,focu:20,folder:5,folium:25,follow:6,fontnam:17,fontsiz:[5,9,17],foral:16,format:[13,17],forward:20,fp2:8,fp:[8,20],frac:[1,6,7,8,10,12,16,17],framebord:24,frase:20,free:21,fro:19,from:[1,2,5,6,7,8,9,11,12,13,15,16,17,18,19,20,24],fromarrai:19,fs:16,full:19,fullrank:19,func_join:4,func_update_list:4,futurewarn:6,fx_opt:11,g:[10,12,17,18,20],g_ema:20,gauss:[4,6],gaussian:6,gaussian_process:11,gaussianprocessregressor:11,gca:5,gdown:20,gdpvswomen:5,gdpvswomeninschool:5,gdrive:5,gener:20,geopanda:25,geq9:6,geq:19,get:[13,20],get_test_data:5,gif:5,git:[9,20],github:[5,9,20],githubusercont:[13,19],give:20,glob:[5,20],global:[2,4],gmt:9,go:18,googl:[0,2,3,9,18,20,23,25],gov:[13,22],gov_org_cod:13,gov_org_nam:13,gp:11,gpregress:11,gpy:11,gradient:10,grai:[6,8,12,15],graph:17,graphic:23,graphviz:17,gray_img:19,green:[5,6,8,9,11,13,17],grep:[21,24],grid:[5,9,13],ground:10,group:5,gui:23,guid:20,guidanc:20,gyroscop:24,gz:[5,11],h1:[5,6],h2:6,h:[9,16,20],hair:20,head:[17,21],header:9,headport:17,height:[3,17,19,24],hello:[2,14,23,24],helvetica:17,here:20,hf_1:16,hf_2:16,hidden:17,hist2d:[5,6,21],hist:6,hit:[3,4,9],hm:9,hogehog:[9,24],hokkaido:18,home:[9,24],honyahonya:13,hspace:6,html:[3,8,13,20,24],http:[3,5,9,13,18,19,20,22,24],human:20,hyphen:20,i:[3,4,5,6,7,8,9,10,11,12,13,14,16,17,20,22,24],iT:9,i_kakei:9,i_plac:9,id:[3,4,18,20],identifi:14,idna:13,idx:18,ieee:2,ifram:24,ignor:20,ii:9,ij:19,ik:9,ikakei:9,ikik:9,iloc:[9,18],im:17,im_list:17,imag:[5,17,19,20],img:19,immut:3,impli:7,imput:14,imshow:[5,17],in_list:4,ind:11,ind_kakei:9,indent:14,indentationerror:14,index:[13,14,18],indexerror:14,indic:9,info:18,infti:[6,16],infty_:6,init:20,inp:9,inpf:9,input:[2,14,17,20],input_dim:11,input_fil:[9,18],input_str:9,inspections_summari:13,instagram:13,instal:[5,7,9,11,13,17,20,21,23,24],integ:6,interfac:23,interv:8,inv:[11,12,22],invalid:[2,14],invi:17,io:20,ipykernel_launch:12,ipynb:[0,1,25],ipython:[2,14,19,20,24],isin:18,item:[5,9,13,20],iter:[11,15],itnum:[3,11,15],j:[3,4,11,12,14,16,17],j_k:9,j_t:9,ja:[3,18,24],janken:6,japan:[5,7,13,23],japanize_matplotlib:[5,7,9,13],japanmap:5,jet:[5,6,21],ji:21,jj:9,jointplot:6,jp:[3,18],jpeg:19,jpg:[5,20],jsdjv:5,jshtml:8,json:13,jth:10,jupyt:[0,1,2,21],justin:20,justinpinknei:20,k:[5,7,9,11,12,16,19],kakei:9,kakei_cor_p:9,kb:[11,19],kcal:18,keep:20,keepdim:20,kei:[3,13,23],kera:17,kern:11,kernel:11,kernel_:11,kernelmat:11,keyboardinterrupt:20,keyword:6,kg:[17,25],kiwisolv:[5,13],kpp:11,kpt:11,ktt:11,kudamono:3,kvalu:9,kyabetu:18,kyoto:18,l0:17,l1:[4,17],l2:[4,12],l3:17,l4rz:20,l:[7,19],l_:16,l_i:16,label:[5,6,7,8,10,11,12,16,17],lam:7,lambda:[2,5,7,12,17,18,20],lambda_1:17,lambda_i:17,landscap:20,languag:24,last:[2,14],lastupd:13,latex:1,layer:17,ldot:[12,15,19],lead:20,lecture_datasci:[9,19],left:[5,6,16],legend:[5,6,7,8,10,11,12,16,17],len:[3,4,5,6,7,8,9,10,11,12,13,16,18,20,22],length:[17,19],length_scal:11,length_scale_bound:11,lengthscal:11,leq1:7,leq:[16,19],lhq:20,lib:[5,6,11,12,13],librari:3,librarya:5,likelihood:12,lim_:[8,16],linalg:[6,11,12,17,19,22],line:[2,9,14],linear:[19,22],linestyl:[5,6,7,8,9,11,12,13,15,17],linewidth:[5,6,9,13],linspac:[6,7,8,10,11,12],linux2:23,linux:[9,21,23],linux_x86_64:11,lipshitz:16,list1:4,list2:4,list:[3,4,5,9,11,14,18,22,24],list_a:5,lista:4,listb:4,liter:14,ll:19,ln:[8,11,12],ln_a:3,load:20,load_iri:17,loc:[7,11,18],local:[4,5,6,11,12,13,24],localst:24,log10:[5,6,7,8,12,22],log:[5,6,8,11,12,14,16,22],logdetk:11,logic:14,loglii:11,longer:20,loop:[3,5,8,20],loss:[8,10,20],lower:20,lowercas:20,lp:11,lr:[17,20],ls:[1,5,9,19,21,23,24],lstrip:9,lt:11,m:[1,6,9,12,13,16,19,20,24],m_i:19,m_or_f:9,mac:[9,21,24],machin:19,main:19,main_categori:13,main_category_cod:13,main_summari:13,make:[5,9],make_cutout:20,make_time_24h:9,makecutout:20,makedir:20,manual_se:20,map:[5,9,18,20],markdown:20,marker:[5,6,7,9,11,12,13,17],master:20,mat52:11,matern52:11,matern:11,math:[3,5,14,25],mathbb:15,mathcal:[12,19],mathemat:19,mathrm:12,matplot:5,matplotlib:[6,7,8,9,10,11,12,13,15,16,17,21,22,23,24,25],matrix:[16,19],matrix_rank:19,mattz:3,max:20,max_it:11,max_siz:20,maximum:12,maxit:15,mb:[5,11,19],mchole:11,mdate:13,mean:[6,7,9,10,11,12,17,20],media:24,men:7,meshgrid:[6,21],metfac:20,metfacesu:20,method:[11,16,20],metropolitan:13,mext:18,mext_01110_012:18,mhat:10,microsoft:[21,24],min:[19,20],min_siz:20,misinterpret:6,miss:9,mix:20,mkdir:[1,5,9,21,24],ml:12,mn:19,mnt:24,model:[11,17,20],model_nam:20,modelingguru:22,modul:[2,14,20],module1:5,module2:5,monei:3,month:[5,9,13],monthloc:13,more:20,most:[2,14],mount:[1,5,9,18],mpl_toolkit:[5,6,17],mplot3d:[5,6,17],ms:[1,23,24],mt:10,mu1:[5,6],mu2:6,mu:[6,12],mu_p:12,mu_yp:11,mu_yt:11,muj:11,mujoint:11,mul:20,multimod:11,multivariate_norm:[5,6,11,17],must:[7,14],mv:[9,17,21,24],mvec:17,mxt_kagsei:18,my:[1,5,9,11,18,21],my_criteria:7,mydriv:[1,5,9],myfunct:25,mylist:25,mynam:4,myname_return:4,n1:17,n2:17,n:[4,6,7,9,10,11,12,13,15,16,17,18,19,20,22],n_:[12,17,22],n_compon:17,n_i:7,n_iter:11,n_j:19,n_restarts_optim:11,na:6,nabla:12,nama:4,name:[2,3,4,11,14,24],nameerror:[2,14],nan:13,nasa:22,nb:6,nbyte:6,nc:6,ndarrai:[3,5,6,22],ndf6:18,ndf:[13,18],nepoch:10,neq:19,net:[20,24],network_url:20,neural_network_01:17,newpassword:23,newton:15,nfkc:20,nfkd:20,ngc:20,nhl:10,ni:17,ninja:20,nj:12,nline:9,nlist:4,nmesh:6,nn:20,no_grad:20,node:17,noise_mod:20,noise_var:11,none:[2,4,5,7,9,10,11,15,20],nonloc:2,norm1:20,norm:[19,20],normal:[7,10,11,12,13,20],normalvari:6,notebook:[0,2,19,20,21],np:[5,6,7,8,9,10,11,12,15,16,17,19,20,21],nr:9,nrank:19,ns:[6,9],nsampl:9,nth:[8,9],ntmp:22,nu:11,num:[2,5,6,9,14],num_of_m:19,num_pati:13,num_pic:9,number:[6,9,11,20],numer:7,numpi:[3,6,7,8,9,10,11,12,13,15,16,17,20,21,25],nvidia:20,nvlab:20,nxp:11,nxt:11,ny:10,nyt:11,o1:17,o2:17,o3:17,o4:17,o5:17,o6:17,o:[5,6,7,9,11,13,16,17,18,19],object:[11,13,14,20],obliqu:17,od:16,offseti:20,offsetx:20,ok:19,old:8,omb1:10,omb2:10,onc:8,one:20,onedr:24,onli:6,open:[0,5,9,17,19,20],open_d:13,openai:20,opt:[11,20],optim:[11,20],option:20,orang:[5,6,8,9,17],ordinari:16,org:[3,18,20],os:[5,20,23,24],other:6,oup:9,oupdir:9,oupf:5,out:[3,14],output:[9,17],output_str:9,overall_total_numb:13,oxt:11,oyt:11,p100:4,p1:4,p2:4,p:[3,4,6,7,8,12,13,16,17],p_1:16,p_3:16,p_:[8,16],p_i:17,p_kakei:9,pack:24,packag:[5,6,11,12,13,19,24],pad_inch:11,paint:20,panda:[9,17,18,23,24],pandas_estat:13,paper:6,param:20,paramet:[11,20,24],paramz:11,pars:[9,14],partial:[8,10,15,17],pass:[2,6,20],passwd:24,password:[23,24],path:[9,20],path_id:20,path_to_yourfil:25,patients_summari:13,pc1:17,pc2:17,pca:17,pcolor:21,pd:[9,13,17,18],pd_write_test:18,pdf:[5,9,11],person:3,petal:17,phi:[11,12],phi_j:12,pi:[5,6,7,10,12],pi_approx:6,pi_approx_mem:6,pic_:24,pic_for_notebook:19,pickl:20,picmod:20,pictur:[5,9,24],picur:9,picutur:24,pie:5,pil:[5,17,19,20],pil_imag:20,pinknei:20,pip3:[21,23,24],pip:[5,7,9,11,13,17,20,23,24],pkl:20,place:9,plai:20,plaintext:17,plot:[6,7,8,10,11,12,13,15,16,17],plot_cor:9,plot_obj:8,plot_surfac:[5,6],plotgp0:11,plotgp:11,plt:[5,6,7,8,9,10,11,12,13,15,16,17,21,22,24],plt_scatter:8,pltmode:9,pm:6,pmatrix:[17,19],png:[1,5,9,17,24],point:[2,9],poly1d:[7,12],polyfit:12,pop:11,porf0pajmgvwlsaii1:20,portrait:20,posit:6,posterior:12,pow:20,pre:20,pred_mean:11,pred_std:11,pred_var:11,predict:11,pref_cod:5,pref_nam:5,premod:9,press:23,previou:20,princip:17,print:[2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,22,23,24,25],printlog:9,prior:11,process:20,prod:12,prof:9,program:13,project:[5,6,24],prompt:20,prompts_dist_loss:20,ps:[6,7],pthre:9,purpl:8,pwd:[21,24],py3:[5,11],py:[5,6,11,12,20,21,24],pylab:5,pypars:[5,13],pyplot:[5,6,7,8,9,10,11,12,13,15,16,17,21,22,24,25],python2:24,python3:[5,6,11,12,13,21,23,24],python:[3,5,13,21,24],python_handling_test:9,pythontex:24,pythonw2:24,pythonw:24,pytorch:20,pytz:13,q:20,q_ema:20,q_magnitud:20,qiita:[5,13],qs:20,quantiti:9,querent:13,r:[5,6,7,9,11,12,15,16,19,20,24,25],rais:[2,7],raise_for_statu:20,rand:[6,11,20],randint:[6,20],randn:[20,21],random:[3,4,5,6,7,10,11,12,17,20,21,25],rang:[3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,20,22,24],rank1:19,rank2:19,rank:[17,19],rankdir:17,ranksep:17,ratio:5,raw:[13,19],rb:20,rc:8,rcparam:5,re:[11,17,20],read_csv:9,read_excel:[9,18],read_html:18,read_statsdata:13,read_statslist:13,readkakei:9,readkik:9,readlin:9,rearrang:20,recent:[2,14],red:[5,6,7,9,11,12,17],reflect:8,regress:11,relev:20,relu:10,relu_d:10,remov:[9,20],render:17,repeat:20,replac:[2,6,9,18],report1:[9,24],report2:9,request:[13,19,20],requir:[5,11,13],requires_grad_:20,research:20,reshap:[11,17],resiz:[19,20],resolv:19,respons:[13,19],result:[3,6,11,20],ret:4,ret_valu:25,return_std:11,retyp:[23,24],rgb:20,right:[6,7,11,16],rm:[9,21,24],rock:6,roll:6,root:[3,5,11],rootf:24,row:13,rp:6,rstrip:9,run:20,run_optim:11,rung:16,runtim:14,runtimewarn:12,rwidth:6,s:[1,3,5,6,7,9,10,11,12,17,18,19,20,21],s_d:7,s_kakei:9,s_kikou:9,s_n:[7,17],s_x:7,s_y:7,same:[17,20],sampl:[6,20],sample1:[5,6],sample2:6,sample_cod:21,sample_data:19,sample_fil:14,sample_s:[7,10],sample_text:9,satisfi:[5,7,11,13],save:[5,19,20,24],save_al:5,savefig:[5,9,11],scale:[7,10],scan:14,scatter:[6,7,8,9,10,11,12,17,22],scatter_utsunomiya_ic:5,scikit:17,scipi:[11,19],scissor:6,seaborn:[6,21],seasoncolor:[5,9],sec:9,secur:24,seed:[7,10,12,17,20],seek:20,select:24,selenium:[23,24],self:[9,20],sent:19,sepal:17,separ:20,sequenti:17,seri:18,set:[13,24],set_appid:13,set_facecolor:[5,9,13],set_major_formatt:13,set_major_loc:13,set_postfix:20,set_titl:[5,6,9],set_xlabel:[5,6,7,9,10,11],set_xlim:[7,11],set_xscal:6,set_ylabel:[5,6,7,9,10,11,13],set_ylim:[7,11],set_yticklabel:11,set_zlabel:[5,6],setosa:17,setup:[5,11],sgd:10,sgp:11,sha256:[5,11],shape:[7,9,10,17,19,20],share:5,sheet1:9,sheet:9,sheet_nam:[9,18],sheetnam:9,shift:21,shift_ji:[9,18],should:20,show:[5,6,7,8,10,11,12,13,15,16,17,21,22,24],shutil:20,sidei:20,sidex:20,sigma:[6,11,12,19],sigma_1:19,sigma_2:19,sigma_:19,sigma_i:19,sigma_k:19,sigma_n:19,sigma_p:12,sigma_r:19,sigmaj:11,sigmoid:10,sigmoid_d:10,sim:[12,16],simaki:13,simeq:15,similar:20,simul:8,sin:[5,7,8,10,11,12,21,22],singl:20,six:[5,11,13],size:[5,7,10,11,17,20],sjoint:11,sk_kern:11,skgp:11,sklearn:[11,17],skotaro:5,slugifi:20,small_area:13,smile:20,sn:[6,21],sname:9,snapshot:20,solid:17,sort:[5,6],sort_valu:13,sorted_arrai:6,sota:[9,15],sotayoshida:[9,19],sourc:[17,24],sourceforg:24,space:20,special:11,sphere:20,spherical_dist_loss:20,spline:17,split:[2,9,13,20],sqrt:[3,6,7,10,11,12,19,20],squar:[3,8,20],squeez:20,sr:19,src:24,ss:4,ssh:24,stack:20,standard:7,start:21,startangl:5,startswith:20,stat:[9,13,25],stat_cod:13,stat_nam:13,statslist:13,std:[6,7,10,20],stderr:20,step:[6,8,16,20],stochast:10,store:[5,11,21],str:[2,3,4,5,6,7,8,9,13,14,18,20,25],str_:22,str_to_dt:13,strftime:20,string:[14,20],strip:[2,9,20],strptime:13,studenta:9,studentb:9,style:17,stylegan3t:20,sub:[17,20],sub_categori:13,sub_category_cod:13,sub_module1_1:5,sub_module1_2:5,subplots_adjust:6,subprogram:19,subsystem:[21,23,24],successfulli:[5,11],sudo:[21,23,24],sum:[3,4,5,6,7,8,12,16,17,19,20,22],sum_:17,sum_i:[7,8],sump:4,support:5,survey_d:13,sv:11,sy:20,syntax:[2,14],syntaxerror:[2,14],synthesi:20,system:24,t0:3,t1:3,t2:3,t3:3,t:[4,5,6,7,8,9,10,11,12,13,15,16,17,19,20],t_0:16,t_1:12,t_2:12,t_:16,t_i:16,t_n:12,tab:[21,24],tab_cod:13,tabl:18,table_categori:13,table_explan:13,table_inf:13,table_sub_category1:13,table_sub_category2:13,table_sub_category3:13,tabulation_categori:13,tabulation_category_explan:13,tabulation_sub_category1:13,tabulation_sub_category2:13,tabulation_sub_category3:13,tabulation_sub_category4:13,tabulation_sub_category5:13,tabulation_sub_category_explanation1:13,tabulation_sub_category_explanation2:13,tabulation_sub_category_explanation3:13,tabulation_sub_category_explanation4:13,tabulation_sub_category_explanation5:13,tail:21,tailport:17,taken:20,tar:[5,11],target:[5,10,17,18,20],target_nam:17,tau:11,tb0:10,tb:[6,10],tbin:6,tc:6,tcol:[5,9],tdat:13,tdate:13,tdatetim:13,tdb0:10,tdb:10,tdf:18,tdv:10,tdw:10,temp:17,term1:12,term2:12,termin:23,test2:9,test:[9,25],test_replac:9,testfunc:4,text1:2,text2:2,text:[2,5,9,20,25],tf:[8,9,20],than:20,theta:11,thetar:11,thi:9,ti:9,tight:11,tild:[7,12,17],time:[3,9,16,17,19,20,22],time_cod:13,timemachin:21,timestr:20,titl:[5,7,13,20],tk:24,tktp:11,tl:[5,8,9],tlabel:5,tlist2:3,tlist:[3,18],tloss:10,tmp:[3,4,6,9,10,11,12,18,22],tmpa:11,to_csv:18,to_datetim:13,to_excel:18,to_pil_imag:20,to_tensor:20,tochigi:18,token:20,tokyo:[13,18],tol:11,toli:15,tolxrel:15,tomato:18,top:5,torch:20,torch_stabl:20,torchvis:20,total:[3,5],totensor:20,tplace:9,tqdm:20,tr:[5,16],traceback:[2,14],trail:20,train:[11,20],trajectori:6,transax:5,transform:[5,20],transpos:22,trow:9,truncation_psi:20,truth:10,tshokuhin:18,tstep:8,tstr:13,ttext:9,tv:10,tvalu:9,tw:10,twitter:[13,20],tx:[5,12,17],txt:[9,14,24],ty:[5,17],type:[2,3,4,5,9,11,13,18,20,22],typeerror:14,u3000:[13,18],u:[16,17,19],u_1:19,u_2:19,u_m:19,u_n:19,u_r:19,u_ta:19,u_ta_mono:19,ubuntu:[21,23,24],ubuntuonwindows_79rhkp1fndgsc:24,uint8:19,undefin:2,underscor:20,unexpect:14,unicodedata:20,uniform:6,uniqu:17,unit:[13,20],unix:[5,9,21,23,25],unsqueez:20,untitl:21,updat:[11,23,24],updateadam:10,updated_d:13,upgrad:[20,23,24],upgrd:24,upper:[7,11],ur:19,url:[13,18,20],url_or_path:20,urllib3:13,urllib:13,us:20,user:[9,23,24],usernam:[23,24],usp:5,usr:[5,6,11,12,13],usvd:19,utf:[9,18],util:20,v2:20,v8bim3uytnslofc6:5,v:[3,10,19],v_1:19,v_2:19,v_kakei:9,v_kikou:9,v_n:19,v_r:19,val:17,valid:6,valu:[3,9,11,13,17,18,20],valueerror:[7,14],variabl:6,varianc:11,vcxsrv:24,vd:19,vdot:[1,16,17,19],ve:11,vec:[7,17],verbos:[10,24],versicolor:17,version:[6,20,24],vhat:10,view:17,view_init:[5,6],vim:24,virginica:17,viridi:5,visual:17,vit:20,vr:19,vs:[9,10,20],vs_kakei:9,vs_kikou:9,vscode:24,vt:10,w:[1,5,6,9,10,12,13,17,20],w_0:12,w_1x:12,w_2x:12,w_:12,w_avg:20,w_i:10,w_j:12,w_std:20,wb:9,weight:[6,17],wget:[19,20],wheel:[5,11],which:20,whitespac:20,whl:[5,11,20],width:[5,17,19,24],wiki:18,wikiart:20,wikipedia:18,window:[23,24],without:6,wml:12,world:[14,24],wq:24,wqvnarlcufzysnkj:20,write:[20,24],ws:9,wsl2:[23,24],wsl2kernel:24,wsl:[21,23,24],www:[18,20,24],x0:16,x11:24,x1:[5,6,17],x2:[6,17],x2fmqypxtgi:24,x3:17,x4:17,x5:17,x64:24,x6:17,x:[1,4,5,6,7,8,9,10,11,12,13,15,16,17,20,21,22,24,25],x_0:[15,16],x_0t:16,x_1:[7,8,12,16],x_2:[7,12,16],x_3:16,x_:[8,15,16,17],x_and_f:8,x_d:7,x_i:[7,8,16,22],x_initi:15,x_n:12,x_opt:11,x_r:16,x_sig1:6,x_sig2:6,x_sig3:6,x_t:15,xaxi:13,xbar:7,xbest:11,xcode:24,xe:16,xexact:11,xii:3,xini:15,xlabel:[5,7,13,16,17],xlim:[8,17],xlogo:24,xlsx:[9,18],xm:17,xn:12,xnew:[8,11],xold:8,xopt:11,xp:[7,10,11,15,16,17],xpoli:15,xpoly_prim:15,xpp:15,xr:[6,8,11,15],xs:[5,6,11,16],xsab4:16,xsab:16,xsabm:16,xsrk4:16,xt:[10,11,12],xxx:[1,5,9,24],xxxx:23,xy:6,xybest:11,y1:[5,6],y2:6,y:[4,5,6,7,8,9,10,11,12,13,15,16,17,20,21,22,23,24,25],y_1:7,y_2:7,y_blr:12,y_d:7,y_i:[7,8,22],y_sev:5,yakiu:3,ybar:7,ybest:11,yd:12,year:[3,7,9,13],yield:2,ylabel:[5,7,13,16,17],ylim:[5,8,17],ym:17,ymean:10,ynew:[11,15],yopt:11,yoshida:15,you:20,your:20,youtub:24,yp:[7,8,10,12,15,17],yp_relu:10,yp_sigmoid:10,yr1:6,yr2:6,yr3:6,yr:[6,8,11,15],ys:[6,7,11],ysampl:11,yscale:[5,16],ystd:10,yt:[10,11,12],ytrue:[7,11],ytruth:10,yy:5,z2:6,z2_nnvpgoni:24,z:[4,5,6,10,11,21,24],z_dim:20,zahyo_and_d:4,zero:[10,11,12,14,17],zero_grad:20,zerodivisionerror:14,zip:21,zorder:[5,9],zs:20,zshrc:24},titles:["\u8cc7\u6599:\u5b9f\u8df5\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30b9","Google Colaboratory\u306e\u4f7f\u3044\u65b9","1. Python\u306e\u57fa\u672c \u305d\u306e\uff11:","2. Python\u306e\u57fa\u672c \u305d\u306e\uff12:","3. \u95a2\u6570","4. \u30e9\u30a4\u30d6\u30e9\u30ea/\u30d1\u30c3\u30b1\u30fc\u30b8/\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u30c7\u30fc\u30bf\u306e\u53ef\u8996\u5316(Matplotlib)","5. \u78ba\u7387\u3068\u7591\u4f3c\u4e71\u6570","6. \u76f8\u95a2\u30fb\u56de\u5e30\u5206\u6790","7. \u6700\u9069\u5316\u554f\u984c\u306e\u57fa\u790e","8. \u30d5\u30a1\u30a4\u30eb\u30fb\u6587\u5b57\u5217\u64cd\u4f5c","\u6a5f\u68b0\u5b66\u7fd2: \u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u3088\u308b\u56de\u5e30","\u30d9\u30a4\u30ba\u6700\u9069\u5316\u306b\u3088\u308b\u5b9f\u9a13\u8a08\u753b\u6cd5","\u30d9\u30a4\u30ba\u7dda\u5f62\u56de\u5e30","Web\u64cd\u4f5c\u30fb\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0","\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u96c6","\u30cb\u30e5\u30fc\u30c8\u30f3\u6cd5\u306b\u3088\u308bN\u6b21\u5143\u591a\u9805\u5f0f\u306e\u6c42\u6839","\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u306e\u6570\u5024\u89e3\u6cd5","\u4e3b\u6210\u5206\u5206\u6790","Pandas\u306e\u4f7f\u3044\u65b9 (\u57fa\u790e)","\u7279\u7570\u5024\u5206\u89e3\u3068\u60c5\u5831\u524a\u6e1b","StyleGAN3+CLIP\u306b\u3088\u308b\u5199\u771f\u751f\u6210","\u30b3\u30fc\u30c9\u306e\u7de8\u96c6\u74b0\u5883\u3068GitHub Copilot","Numpy\u306b\u3064\u3044\u3066","Python\u306e\u74b0\u5883\u69cb\u7bc9 (Windows11\u7248)","Python\u306e\u74b0\u5883\u69cb\u7bc9","\u7df4\u7fd2\u5e33"],titleterms:{"1":24,"100\u30e1\u30fc\u30c8\u30eb\u8d70\u306e\u30bf\u30a4\u30e0":7,"2":24,"4\u6b21\u306e\u30eb\u30f3\u30b2\u30af\u30c3\u30bf\u6cd5":16,"\u304a\u307e\u3051":6,"\u3058\u3083\u3093\u3051\u3093\u95a2\u6570":6,"\u305d\u306e\uff11":2,"\u305d\u306e\uff12":3,"\u3068\u601d\u3063\u305f\u3089":1,"\u306a\u3069\u3092\u4f7f\u3046":24,"\u306a\u3093\u304b\u6319\u52d5\u304c\u5909\u3060\u306a":1,"\u306b\u3064\u3044\u3066":24,"\u306e\u56fa\u5b9a":6,"\u306e\u5c0e\u5165":21,"\u306e\u65b9\u6cd5":24,"\u3088\u304f\u3042\u308b\u30a8\u30e9\u30fc\u96c6":14,"\u3088\u308a\u8907\u96d1\u306a\u884c":18,"\u3092VS":21,"\u30a2\u30f3\u30b1\u30fc\u30c8\u5206\u6790":9,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5":21,"\u30a4\u30f3\u30c7\u30c3\u30af\u30b9":3,"\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306e\u53d6\u5f97":3,"\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb\u306e\u64cd\u4f5c":9,"\u30aa\u30a4\u30e9\u30fc":16,"\u30aa\u30fc\u30c8\u30a8\u30f3\u30b3\u30fc\u30c0":17,"\u30b3\u30fc\u30c9\u306e\u7de8\u96c6\u74b0\u5883\u3068github":21,"\u30b3\u30fc\u30c9\u30bb\u30eb":1,"\u30b7\u30a7\u30eb\u30b3\u30de\u30f3\u30c9\u3068\u30c9\u30e9\u30a4\u30d6\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9":1,"\u30b9\u30af\u30ec\u30a4\u30d4\u30f3\u30b0":13,"\u30b9\u30e9\u30a4\u30b9\u3092\u7528\u3044\u305f\u90e8\u5206\u30ea\u30b9\u30c8\u306e\u53d6\u5f97":3,"\u30bf\u30d7\u30eb":3,"\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u64cd\u4f5c":24,"\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u8d77\u52d5":21,"\u30c1\u30e5\u30fc\u30bf\u30fc\u3068\u3057\u3066\u306ecopilot":21,"\u30c6\u30ad\u30b9\u30c8\u30bb\u30eb":1,"\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306e\u64cd\u4f5c":9,"\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306e\u66f8\u304d\u51fa\u3057":9,"\u30c6\u30ad\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u3066\u5185\u5bb9\u3092\u8aad\u307f\u51fa\u3059":9,"\u30c6\u30ad\u30b9\u30c8\u90e8\u5206\u3078\u306e\u6570\u5f0f\u306e\u633f\u5165":1,"\u30c7\u30fc\u30bf\u306e\u4e0b\u51e6\u7406":10,"\u30c7\u30fc\u30bf\u306e\u6574\u5f62":18,"\u30cb\u30e5\u30fc\u30c8\u30f3\u6cd5":15,"\u30cb\u30e5\u30fc\u30c8\u30f3\u6cd5\u306b\u3088\u308bn\u6b21\u5143\u591a\u9805\u5f0f\u306e\u6c42\u6839":15,"\u30cb\u30e5\u30fc\u30c8\u30f3\u6cd5\u306e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u5b9f\u88c5\u4f8b":15,"\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u3088\u308b\u56de\u5e30":10,"\u30ce\u30fc\u30c8\u30d6\u30c3\u30af":0,"\u30d1\u30b9\u306e\u6307\u5b9a":9,"\u30d1\u30c3\u30b1\u30fc\u30b8":5,"\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u6307\u5b9a\u3068\u5b9f\u884c":20,"\u30d5\u30a1\u30a4\u30eb":9,"\u30d5\u30a1\u30a4\u30eb\u540d\u306b\u4f7f\u7528\u3059\u3079\u304d\u3067\u306a\u3044\u6587\u5b57":9,"\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c":25,"\u30d6\u30c3\u30af":0,"\u30d6\u30ed\u30c3\u30af\u3068\u30a4\u30f3\u30c7\u30f3\u30c8":3,"\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8\u6a5f\u80fd":22,"\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u6cd5":12,"\u30d6\u30fc\u30eb":2,"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3068\u30b9\u30b3\u30fc\u30d7":4,"\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306e\u5b9f\u6570\u306e\u53d6\u308a\u6271\u3044":2,"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u9806":2,"\u30d9\u30a4\u30ba\u6700\u9069\u5316\u306b\u3088\u308b\u5b9f\u9a13\u8a08\u753b\u6cd5":11,"\u30d9\u30a4\u30ba\u7dda\u5f62\u56de\u5e30":12,"\u30e2\u30b8\u30e5\u30fc\u30eb":5,"\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u30c7\u30fc\u30bf\u306e\u53ef\u8996\u5316":5,"\u30e2\u30c7\u30eb\u306e\u8907\u96d1\u3055\u3068\u30e2\u30c7\u30eb\u9078\u629e":7,"\u30e9\u30a4\u30d6\u30e9\u30ea":[5,25],"\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u3044\u65b9\u3092\u8abf\u3079\u308b":5,"\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u51fa\u529b\u306b\u95a2\u3057\u3066":11,"\u30e9\u30f3\u30bf\u30a4\u30e0\u30a8\u30e9\u30fc":14,"\u30e9\u30f3\u30c0\u30e0\u30a6\u30a9\u30fc\u30af":6,"\u30ea\u30b9\u30c8":3,"\u30ea\u30b9\u30c8\u306b\u8981\u7d20\u3092\u52a0\u3048\u308b":3,"\u30ea\u30b9\u30c8\u306e\u7d50\u5408":3,"\u30ea\u30b9\u30c8\u306e\u8981\u7d20\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b":3,"\u30ea\u30b9\u30c8\u5185\u5305\u8868\u8a18":3,"\u30ea\u30b9\u30c8\u64cd\u4f5c\u306e\u6ce8\u610f\u70b9":3,"\u30eb\u30fc\u30d7\u51e6\u7406":3,"\u30eb\u30fc\u30d7\u51e6\u7406\u3092\u9014\u4e2d\u3067\u629c\u3051\u305f\u3044\u5834\u5408":3,"\u4e00\u69d8\u5206\u5e03\u304b\u3089\u306e\u4e71\u6570\u751f\u6210":6,"\u4e0a\u3067\u4f5c\u3063\u305f\u30b0\u30e9\u30d5\u306e\u4fdd\u5b58":5,"\u4e0d\u5177\u5408\u5831\u544a\u307e\u305f\u306f\u554f\u3044\u5408\u308f\u305b":0,"\u4e38\u62ec\u5f27":3,"\u4e3b\u6210\u5206\u5206\u6790":17,"\u4e3b\u6210\u5206\u5206\u6790\u3068\u306f":17,"\u4e71\u6570\u306e\u7a2e":6,"\u4e88\u7d04\u8a9e":2,"\u4ee3\u8868\u5b9a\u671f\u306a\u6570\u5024\u89e3\u6cd5":16,"\u4f59\u8ac7":[9,19],"\u4f59\u8ac71":7,"\u4f59\u8ac72":7,"\u4f8b\u5916\u51e6\u7406":3,"\u5099\u5fd8\u9332":11,"\u5099\u8003":13,"\u5186\u30b0\u30e9\u30d5":5,"\u5217\u306e\u62bd\u51fa":18,"\u5217\u306e\u8ffd\u52a0":18,"\u52fe\u914d\u306e\u8a08\u7b97\u306b\u3064\u3044\u3066":8,"\u52fe\u914d\u6cd5":8,"\u52fe\u914d\u964d\u4e0b\u6cd5":10,"\u56de\u5e30\u5206\u6790":[7,25],"\u578b":3,"\u57fa\u790e":18,"\u5909\u6570\u306e\u30b9\u30b3\u30fc\u30d7\u306b\u3064\u3044\u3066":4,"\u5909\u6570\u306e\u578b":2,"\u5909\u6570\u306e\u5b9a\u7fa9\u3068\u7c21\u5358\u306a\u6f14\u7b97":2,"\u5909\u6570\u540d\u306b\u95a2\u3059\u308b\u7d04\u675f":2,"\u5909\u6570\u540d\u306e\u898f\u5247":3,"\u591a\u5909\u6570\u6b63\u898f\u5206\u5e03":6,"\u591a\u9805\u5f0f\u56de\u5e30\u306e\u4f8b":12,"\u5b9f\u884c\u3059\u308b":21,"\u5b9f\u88c5\u3057\u3066\u307f\u3088\u3046":17,"\u5b9f\u8df5\u30c7\u30fc\u30bf\u30b5\u30a4\u30a8\u30f3\u30b9":0,"\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f":16,"\u5e38\u5fae\u5206\u65b9\u7a0b\u5f0f\u306e\u6570\u5024\u89e3\u6cd5":16,"\u5fa9\u7fd2":7,"\u5fae\u5206":8,"\u5fae\u5206\u306e\u57fa\u672c\u7684\u306a\u8003\u3048\u65b9":8,"\u6307\u5b9a\u3059\u308b\u65b9\u6cd5":18,"\u6388\u696d\u3067\u4f7f\u3046\u30d5\u30a1\u30a4\u30eb\u306e\u6e96\u5099":9,"\u6388\u696d\u8cc7\u6599":21,"\u6388\u696d\u8cc7\u6599\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u65b9\u6cd5":21,"\u6563\u5e03\u56f3\u306e\u63cf\u753b":5,"\u6570\u5024\u7684\u306b\u52fe\u914d\u3092\u8a08\u7b97\u3059\u308b\u5834\u5408":8,"\u6570\u5b66\u7684\u6e96\u5099":8,"\u6587\u5b57\u5217\u64cd\u4f5c":9,"\u65b0\u578b\u30b3\u30ed\u30ca\u30a6\u30a4\u30eb\u30b9\u611f\u67d3\u75c7\u306e\u967d\u6027\u8005\u6570\u306e\u63a8\u79fb\u306b\u95a2\u3057\u3066":7,"\u6700\u3082\u57fa\u672c\u7684\u306a\u6700\u9069\u5316\u624b\u6cd5":8,"\u6700\u7d42\u8ab2\u984c":25,"\u6700\u9069\u5316\u554f\u984c":25,"\u6700\u9069\u5316\u554f\u984c\u306e\u57fa\u790e":8,"\u6700\u9069\u5316\u624b\u6cd5\u306b\u95a2\u3059\u308b\u307e\u3068\u3081":10,"\u6761\u4ef6\u5206\u5c90":3,"\u6771\u4eac\u90fd\u306e\u65b0\u578b\u30b3\u30ed\u30ca\u30a6\u30a4\u30eb\u30b9\u95a2\u9023\u60c5\u5831\u306e\u53d6\u5f97":13,"\u68d2\u30b0\u30e9\u30d5":5,"\u69cb\u6587\u30a8\u30e9\u30fc":14,"\u6a5f\u68b0\u5b66\u7fd2":10,"\u6b63\u898f\u5206\u5e03\u304b\u3089\u306e\u4e71\u6570\u751f\u6210":6,"\u6b63\u898f\u5206\u5e03\u306b\u95a2\u3057\u3066":6,"\u6cd5":16,"\u6ce2\u62ec\u5f27":3,"\u6d6e\u52d5\u5c0f\u6570\u70b9":2,"\u6e96\u50991":13,"\u6e96\u50992":13,"\u7121\u4f5c\u70ba\u62bd\u51fa":6,"\u7279\u5b9a\u306e\u5217\u3092\u53d6\u5f97\u3057\u305f\u3044\u5834\u5408":18,"\u7279\u5b9a\u306e\u884c\u3092\u53d6\u5f97\u3057\u305f\u3044\u5834\u5408":18,"\u7279\u7570\u5024\u5206\u89e3":19,"\u7279\u7570\u5024\u5206\u89e3\u3068\u60c5\u5831\u524a\u6e1b":19,"\u753b\u50cf\u30c7\u30fc\u30bf\u306e\u7279\u7570\u5024\u5206\u89e3":19,"\u7591\u4f3c\u4e71\u6570\u306b\u3064\u3044\u3066":6,"\u76f8\u95a2":[7,25],"\u76f8\u95a2\u5206\u6790":7,"\u76f8\u95a2\u5206\u6790\u3068\u56e0\u679c\u95a2\u4fc2":7,"\u78ba\u7387\u3068\u64ec\u4f3c\u4e71\u6570":25,"\u78ba\u7387\u3068\u7591\u4f3c\u4e71\u6570":6,"\u7a4d\u5206\u3092\u7528\u3044\u305f\u89e3\u6cd5":16,"\u7b2c1\u7ae0":25,"\u7b2c2\u7ae0":25,"\u7b2c3\u7ae0":25,"\u7b2c4\u7ae0":25,"\u7b2c5\u7ae0":25,"\u7b2c6\u7ae0":25,"\u7b2c7\u7ae0":25,"\u7b2c8\u7ae0":25,"\u7c21\u5358\u306a\u4f8b\u3067\u306e\u30d7\u30ed\u30b0\u30e9\u30e0":8,"\u7c21\u5358\u306a\u6f14\u7b97":2,"\u7dda\u306e\u63cf\u753b":5,"\u7dda\u5f62\u4ee3\u6570":22,"\u7dda\u5f62\u56de\u5e30":12,"\u7de8\u96c6\u3059\u308b":21,"\u7df4\u7fd2":5,"\u7df4\u7fd2\u554f\u984c":19,"\u7df4\u7fd2\u5e33":25,"\u7df4\u7fd2\u5e33\u306e\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u306e\u5171\u6709\u306e\u4ed5\u65b9":25,"\u7df4\u7fd2\u76f8\u624b":21,"\u8003\u3048\u305f\u3044\u554f\u984c\u306e\u30a4\u30e1\u30fc\u30b8":8,"\u81ea\u5df1\u7b26\u53f7\u5316\u5668":17,"\u884c\u5217":22,"\u8907\u96d1\u306a\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb\u306e\u64cd\u4f5c":9,"\u89e3\u6790\u7684\u306b\u5fae\u5206\u304c\u8a08\u7b97\u3067\u304d\u308b\u5834\u5408":8,"\u8a66\u3057\u3066\u307f\u3088\u3046":21,"\u8ad6\u7406\u30a8\u30e9\u30fc":14,"\u8cc7\u6599":0,"\u8cc7\u6599\u306e\u4f7f\u3044\u65b9":0,"\u8ee2\u7f6e":22,"\u8f9e\u66f8\u578b":3,"\u9154\u6b69":6,"\u91cd\u8981\u306a\u6ce8":1,"\u95a2\u6570":[4,25],"\u95a2\u6570\u3068\u30e1\u30bd\u30c3\u30c9":4,"\u95a2\u6570\u306e\u5b9a\u7fa9":4,"\u95a2\u6570\u5185\u3067\u306e\u30ea\u30b9\u30c8\u66f4\u65b0":4,"\u96a0\u3057\u30d5\u30a1\u30a4\u30eb":24,"\u96a0\u3057\u30d5\u30a9\u30eb\u30c0":24,"\u96fb\u5b50\u30d5\u30a1\u30a4\u30eb\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8":9,"bashforth\u6cd5":16,"break":3,"clip\u306b\u3088\u308b\u5199\u771f\u751f\u6210":20,"clubsuit\u304a\u307e\u3051":[5,9],"clubsuit\u305d\u306e\u4ed6\u306e\u6700\u9069\u5316\u624b\u6cd5":8,"clubsuit\u305d\u306e\u4ed6\u306e\u8a71\u984c":8,"clubsuit\u4e00\u69d8\u4e71\u6570\u3092\u7528\u3044\u305f\u5186\u5468\u7387\u306e\u8a08\u7b97":6,"clubsuit\u767a\u5c55\u7684\u306a\u6ce8":19,"clubsuit\u76ee\u7684\u95a2\u6570\u306e\u9078\u629e":8,"clubsuitwhile\u6587":3,"code\u3067\u5b9f\u884c":21,"code\u3067\u958b\u304f":21,"code\u3078\u306e\u5c0e\u5165":21,"colaboratory\u306e\u4f7f\u3044\u65b9":1,"dataframe\u306e\u8981\u7d20\u3092\u78ba\u8a8d":18,"dataframe\u306ecsv":18,"dataframe\u578b":18,"drive\u304b\u3089\u30d5\u30a1\u30a4\u30eb\u306e\u30a4\u30f3\u30dd\u30fc\u30c8":1,"drive\u306e\u30de\u30a6\u30f3\u30c8\u3068":5,"excel\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u66f8\u304d\u51fa\u3057":18,"for\u6587":3,"gif\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u306e\u4f5c\u6210":5,"if\u6587":3,"ipynb\u5f62\u5f0f\u306e\u30d5\u30a1\u30a4\u30eb\u3092v":21,"l2\u6b63\u5247\u5316\u9805\u304c\u3042\u308b\u5834\u5408\u3078\u306e\u62e1\u5f35":12,"linux\u306e\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5909\u66f4":24,"linux\u306e\u5834\u5408":24,"linux\u5074\u304b\u3089windows\u5074\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b":24,"mac\u306e\u5834\u5408":24,"map\u95a2\u6570":9,"matplotlib\u3092\u7528\u3044\u305f\u4f5c\u56f3":5,"moulton\u6cd5":16,"numpy\u306b\u3064\u3044\u3066":22,"pandas\u3067\u8907\u96d1\u306a\u30a8\u30af\u30bb\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u64cd\u4f5c\u3059\u308b":18,"pandas\u306e\u4f7f\u3044\u65b9":18,"pca\u306e\u5b9a\u5f0f\u5316":17,"poly1d\u95a2\u6570":7,"python\u3067\u306e\u4e71\u6570\u751f\u6210":6,"python\u3067\u306e\u6587\u5b57\u5217\u64cd\u4f5c":2,"python\u306e\u57fa\u672c":[2,3],"python\u306e\u57fa\u790e":25,"python\u306e\u57fa\u790e2":25,"python\u306e\u74b0\u5883\u69cb\u7bc9":[23,24],"python\u30b3\u30fc\u30c9\u306e\u7de8\u96c6":21,"replace\u95a2\u6570":9,"scipy\u3092\u7528\u3044\u305fsvd":19,"sklearn\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3046\u65b9\u6cd5":17,"split\u95a2\u6570":9,"stat\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":13,"stat\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3059\u308b":13,"stat\u306e\u767b\u9332":13,"stat\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046":13,"strip\u95a2\u6570":9,"web\u30da\u30fc\u30b8\u306b\u3042\u308b\u8868\u3092dataframe\u3068\u3057\u3066\u53d6\u5f97\u3059\u308b":18,"web\u64cd\u4f5c":13,"windows11\u7248":23,"windows\u306e\u5834\u5408":24,"windows\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u5c0e\u5165":23,"windows\u74b0\u5883\u306e\u3069\u3053\u306blinux\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u4fdd\u5b58\u3055\u308c\u308b\u304b":24,"wsl2\u306e\u5c0e\u5165":23,"wsl\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u78ba\u8a8d\u3068\u66f4\u65b0":24,"wsl\u306e\u5c0e\u5165\u4f8b":21,"wsl\u4e0b\u3067\u306epython\u74b0\u5883\u306e\u69cb\u7bc9":23,"wsl\u74b0\u5883\u3067matplotlib\u306eshow":24,adam:[10,16],arang:22,arrai:22,ax:5,bashforth:16,bool:2,chat:21,clubsuit:[3,4,5,6,7,9,17],code:21,colab:5,continu:3,copilot:21,csv:9,decomposit:19,dot:[22,24],e:13,euler:16,file:24,github:21,googl:[1,5],gpt:21,gpyopt:11,index:3,ipynb:21,licens:15,linspac:22,linux:24,matplotlib:5,np:22,numpi:[5,19,22],panda:13,plot:5,polyfit:7,rk4:16,scatter:5,seed:6,setup:20,singular:19,studio:21,stylegan3:20,svd:19,t:22,tupl:3,unix:24,valu:19,visual:21,vs:21,window:21}}) \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter0_HowToUse.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter0_HowToUse.ipynb deleted file mode 100644 index 6c153bba..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter0_HowToUse.ipynb +++ /dev/null @@ -1,179 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Google Colaboratoryの使い方\n", - "\n", - ":::{note}\n", - "以下の内容は、Google Colaboratoryや関連サービスのアップデートに伴い、数ヶ月経つとところどころ文言が変更されている場合があります。適宜対応するものに置き換えて読んでいただけると助かります。\n", - ":::\n", - ":::{note}\n", - "Macユーザーの人は適宜下記のコントロールキー`Ctrl`を`command`(`⌘`)キーに読み替えてください。\n", - ":::\n", - "\n", - "Google Colaboratory上でノートブックを開くと、下記のような画面が開く。(上のOpen in ColabまたはロケットマークからColabを開いてみよう!)\n", - "\n", - "![](pic_for_notebook/pic_0_1.png)\n", - "\n", - "\n", - "この画面が開いたときに、右上にお使いのGoogleのアカウントのアイコンが表示されている人はそのまま以下へ、\"ログイン\"というボタンが表示されている人はまずそちらからご自身のアカウントにログインしてください。 \n", - "授業ではプログラミングの強力さを体感してもらうために、**Google Driveの中に入っているcsv/excelファイルを読み出して自動で作画をするプログラム**を書いたりする。\n", - "その際、教員やTAと受講者間でdriveを見ながら相談することもあり得る。プライベートなアカウントとは別に、**大学の授業で使う専用のアカウントを新規作成する**のを強く推奨します。\n", - "\n", - "\n", - "Google Colaboratory(あるいはJupyterNotebook)環境ではユーザーは\n", - "- **テキストセル**\n", - "- **コードセル**\n", - "\n", - "の2つを駆使して、自分だけのノートブックを作成したり、他者が作成した`.ipynb`形式のファイルを開いて編集したりプログラムを実行することができる。\n", - "\n", - "\n", - "## テキストセル\n", - "[+テキスト]というボタンを押すとテキストセルを追加することができます。\n", - "\n", - "\n", - "### テキスト部分への数式の挿入\n", - "\n", - "Jupyter Nootebookでは$\\LaTeX$形式の数式をサポートしていて、ドルマークで囲むと数式を表示させることもできます。 \n", - "$f(x) = \\frac{1}{2}\\exp{(-2x^2 + 3x + 5)}$\n", - "\n", - "\n", - "## コードセル\n", - "[+コード]というボタンを押すか、特定のショートカット`Ctrl + M B`でコードセルを追加することができる。\n", - "\n", - "コードセルに記述したPythonコードは、コードセルにマウスオーバーした際に現れる再生ボタンのようなアイコンをクリックするか、セル内で`Ctrl+Enter`を押すことで実行ができる。\n", - "実行のたびにいちいちマウスに手をやるのは面倒なので、是非ショートカットを使おう。\n", - "この例に限らず、手の移動を最小限にすることで作業を楽にしたり押し間違いを防ぐこともできる。\n", - "アプリケーションにあまり依らない共通のショートカット(`Ctrl+S`(`⌘+S`)は保存,`Ctrl+W`(`⌘+W`)はタブを閉じる, などなど)ので少しずつショートカットを覚えるようにしよう。\n", - "\n", - "\n", - "**コードセルにはコメントを除いて、全角文字は使わない**ように意識しよう。\n", - "**全角スペースなどが気づかずに混入して、エラーの原因になること**がよくある。\n", - "\n", - "## 重要な注\n", - "\n", - "ブックから開いたノートブック\n", - "```{margin}\n", - "ノートブックの実体(ソースファイル)は[GitHub上](https://github.com/SotaYoshida/Lecture_DataScience)にあります\n", - "```\n", - "は、皆さんがコピーをするなどしない限り、実行はできても保存はできません。\n", - "```{warning}\n", - "**必ず、[ドライブにコピーを保存]ボタンか、[ファイル]->[ドライブにコピーを保存]を押し、\"ご自身のファイル\"を編集・保存するようにしてください**\n", - "![](pic_for_notebook/pic_0_2.png)\n", - "```\n", - "\n", - "上の画像のように、ノートブックのファイル名の横にGitHubのロゴ(タコ足猫)が表示されている場合、\n", - "皆さんが開いているのはGitHubからインポートされたノートブックであって、皆さん自身のファイルではありません。 \n", - "途中でうっかりタブやブラウザを閉じてしまうと作業内容が消えてしまいます。\n", - "\n", - "私も一連の講義資料作成時にGitHubから開いたノートブックを直接編集して数時間分の作業内容を消してしまったことが何度もあります...。辛いです。\n", - "\n", - "コピーを編集している場合は、左上のノートブック名の隣がGoogle driveのロゴになっているはず。 \n", - "この場合、編集されたものはGoogle Driveに一定時間で自動でバックアップされるので安心ですし、いつでもどの端末からでも開いて作業を再開することができます。 \n", - "![](https://drive.google.com/uc?export=view&id=1IibFQS1TVq6xDhG62AP9yG2Sy0c89Zut)\n", - "\n", - "\n", - "```{margin}\n", - "MS Officeなど、他の多くのソフトでも共通のショートカットなので、こまめに保存する手クセを付けておきましょう。\n", - "保存!保存!!保存!!!\n", - "```\n", - "Windowsなら`Ctrl+ S`, Macなら`Command + S`を押すことで随時Google Driveにバックアップを保存することができます。 \n", - "誤った内容に編集してしまった場合もGoogle Colaboratoryの\"最終編集: X月Y日\"といったところやGoogle Drive上でファイルの上で右クリック→\"版を管理\"から復元することができます。\n", - "\n", - "## なんか挙動が変だな、と思ったら。\n", - "\n", - "複数のセルにまたがるコードを実行していくうちに変数に意図しないものが入っていたりなんか変だな、挙動が怪しいな、と思ったら[ランタイム]や[編集]などから下記の操作を行ってみましょう。\n", - "\n", - "* セルの実行を停止したい場合: [ランタイム]→[実行の中断]で中断 (or [セッションの管理]から不要なセッションを削除する)\n", - "* 再起動したい場合: [ランタイム]→[ランタイムを再起動]\n", - "* 出力をいったん全部消したい: [編集]→[出力をすべて消去]\n", - "\n", - "## Google Driveからファイルのインポート\n", - "\n", - "Google Colaboratoryでは、Google Driveに保存されたファイルの内容を読み込んだり、逆にコードでテキストファイル,エクセルファイルや画像,音声などを作成しGoogle Driveに保存することができます。\n", - "\n", - "お使いのアカウントのDriveをGoogle colab.から操作する方法は主に2通りあります。\n", - "\n", - "1つめ: \n", - "以下を実行し、出てくるURLに遷移 \n", - "authorization codeをコピーし枠内に貼り付けてEnterを押す \n", - "(Google colabからgoogle driveのファイルにアクセスできるようになります)\n", - "\n", - "```Python\n", - "from google.colab import drive\n", - "drive.mount('/content/drive/') ##google driveを/content/という場所にマウント (2番めと整合するようにパスを選びましたが、マウントする場所は自由に選べます)\n", - "```\n", - "\n", - "たとえばgoogle drive直下にあるXXX.pngというファイルを指定したい場合は\n", - "```Python\n", - "filename = \"/content/drive/My Drive/XXX.png\"\n", - "```\n", - "とすれば良い。\n", - "\n", - "2つめ: \n", - "Google Colabの左側にあるフォルダマークをクリックし、(「ファイルのブラウジングを有効にするには、ランタイムに接続してください。」と出る場合は、少し待ってください) \n", - "次に、Google driveのロゴがついたフォルダをクリックする(画像の、[ファイル]というところの右下にある、driveのロゴがついたグレーがかったフォルダマーク) \n", - "![](https://drive.google.com/uc?export=view&id=1RMjCaZN7emkVBqlYF-gFMcG8FRnw-9Xv)\n", - "\n", - "この場合は自動で```/content/drive```という場所にマウントされるので(仕様が変更になる可能性あり) \n", - "google drive直下にあるXXX.pngというファイルを指定したい場合はやはり\n", - "```Python\n", - "filename = \"/content/drive/My Drive/XXX.png\"\n", - "```\n", - "などとすれば良い。 \n", - "また、driveを一度マウントした後でパスがわからなくなったときには左の[ファイル]からdriveに相当するフォルダにマウスオーバーして縦3点$\\vdots$から[パスをコピー]で、パスをクリップボードにコピーすることができます。\n", - "\n", - "\n", - "## シェルコマンドとドライブ内のファイルのパス\n", - "\n", - "Google Colab.では先頭にエクスクラメーションマークをつけることで\n", - "* ls (リスト,ファイル等表示)\n", - "* mkdir (ディレクトリ作成)\n", - "\n", - "などのLinux/Unixで用いられるコマンドを実行することもできる。 \n", - "たとえばGoogle Driveをマウントした後にマイドライブ直下にあるpng画像のリストを表示させたければ\n", - "```bash\n", - "!ls /content/drive/MyDrive/*.png \n", - "```\n", - "とすればよい。\n", - "なお、半角のアスタリスクはワイルドカード記号「対象を任意に」という命令になっている。\n", - "\n", - "\n", - "\n" - ] - } - ], - "metadata": { - "colab": { - "include_colab_link": true, - "name": "Python_chapter0_HowToUse.ipynb", - "provenance": [] - }, - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter0_HowToUse.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter0_HowToUse.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter1_Introduction.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter1_Introduction.ipynb deleted file mode 100644 index fad6fc3a..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter1_Introduction.ipynb +++ /dev/null @@ -1,1010 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rk52fX27r7hj" - }, - "source": [ - "# Pythonの基本 その1:\n", - "\n", - "授業の冒頭で説明するように、プログラミングによるデータ分析は、複雑なデータの取り扱いを簡単にしてくれたり、系統的な作業を可能にしミス(精度)をコントロールすることが出来たりと利点が多い。しかし、その恩恵を受けるためには基本的な事項をまず学修しなくてはならない。\n", - "\n", - ":::{margin}\n", - "さらにいうと英語で検索できればウェブ上で収集できる情報は何倍にも膨れ上がる.\n", - ":::\n", - "この授業で重視するのは**Pythonの文法や作法、テクニックではない**。というのも、自分が実現したい操作・作業をきちんと**言語化**することさえできれば、授業で扱う程度の内容であればググればだいたいのことは解決できるし、インターフェース(見た目)が違ったとしても別のプログラミング言語やデータ解析ツールにも応用が効く。 \n", - "\n", - "したがって、以降では「いったいなんのためにホニャララなんてものを導入(定義)するのか?」を意識しながら学習していくことにしよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9f041YDhyHKb" - }, - "source": [ - "## 変数の定義と簡単な演算\n", - "\n", - "**「\"値\"に固有の名前(識別子)を付したもの」** を**変数**と定義する。\n", - "\n", - "どのようなものが\"値\"として扱えるかは後で見ていくことにして、まずは代表的な値である**実数値**,**整数**を変数として定義してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_emEY3U-SGBk" - }, - "outputs": [], - "source": [ - "a = 2.0 \n", - "b = 5" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CUJ8eEf8x2bs" - }, - "source": [ - "これで変数```a```と変数```b```に値が代入され\"定義\"された。 \n", - "プログラムでは通常、等号記号(`=`)は代入に使用される。値の代入は、等号の左に変数(値を入れたいものの名前)、等号の右に値を書くことで行う。\n", - "\n", - "注: よく書籍などでは変数を箱と見立てて箱の中に数値や文字列を入れる説明もよく見られるが、変数は値が保管されるメモリ上の住所を示すものというのが正確。関連した話題としては、次の章の**リスト操作の注意点**を参照.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kSahHBeguqRX" - }, - "source": [ - "## 簡単な演算\n", - "次に、上で定義された変数を使って四則演算をしてみよう。\n", - "\n", - "足し算" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "PLwBPo2OyCvc", - "outputId": "e803fa31-9566-4d87-a253-a3a99ee33753" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "7.0" - ] - }, - "execution_count": 6, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "a+b " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1ntUEuJWyBoC" - }, - "source": [ - "引き算" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "1IpzKL9TyW2k", - "outputId": "08807a99-86e7-40a3-f556-bd67d6cf2338" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "-3.0" - ] - }, - "execution_count": 7, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "a-b" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S4-CasuLyiJM" - }, - "source": [ - "掛け算 掛け算記号は`*`(アスタリスク)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "ZQCmuN-IyiZQ", - "outputId": "80bc16fe-5012-4c2e-db6a-001609a5d640" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "10.0" - ] - }, - "execution_count": 8, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "a*b" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "割り算" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a/b" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uYolSMVnyiiz" - }, - "source": [ - "演算した結果を別の変数`c`として定義したり代入して保存しておくこともできる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "8Z5Q-TN0yirc" - }, - "outputs": [], - "source": [ - "c=a*b " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_eyM3WdUyiyP" - }, - "source": [ - "`c`の値が後で知りたいと思ったときは、以下のように`print`関数というものを使う" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "dS6W58sfyi8w", - "outputId": "0b78e406-7d9d-4f8c-d584-4cd1195f3680" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "10.0\n" - ] - } - ], - "source": [ - "print(c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SvfvgAEu2hAq" - }, - "source": [ - "変数の値を確認することは、プログラムが正しく動いているかを確認する最も単純かつ強力な方法である。 \n", - "慣れないうちは「値はなんだっけな?」「何かおかしい、意図した動きと違うな」と思ったら`print`してみよう。\n", - "\n", - "またコード部分に`#`(半角シャープ記号)をつけるとその行の`#`以降に書かれたことは無視されるのでコメント(注釈)を書いたりすることができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MArtGR067qrB" - }, - "outputs": [], - "source": [ - "print(\"Hello\") # Helloとプリントする(ここは読まれない)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "なれないうちは**どういった計算をするのか**、**その行をいつ編集したのか**などコメントを逐一書いておくのも良い。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "uNWje7ZmSPQh" - }, - "outputs": [], - "source": [ - "## 10月1日に編集\n", - "print(b//a) # 切り捨て除算 \n", - "print(b%a) # bをaで割った余り\n", - "print(a**b) # aのb乗" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "上の例で、`#`を忘れると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 135 - }, - "id": "CVrAtuQS7zqd", - "outputId": "a02ec808-9b4b-4ce3-cbd6-5d75b0561b7f" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(\"Hello\") Helloとプリントする\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "print(\"Hello\") Helloとプリントする" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "F5KhEPy9ngiO" - }, - "source": [ - "構文エラー(SyntaxError)が発生する。\n", - "基本的に`SyntaxError:`は**あなたの書いたコードがPythonの文法上許されない書き方になっている**ことを意味している。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(\"Hello\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "は一見問題ないように見えるが、`print`関数の右側の括弧`(`が全角になっているため、これもSyntaxErrorとなる。\n", - "細かな文法やエラーの原因の特定については、一緒に少しずつ慣れていこう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qYviUyHp50-g" - }, - "source": [ - "一度定義した変数は、値を更新することもできる。\n", - "\n", - "```a = a + 2```は、\"aに2を加えた値\"でaを再定義することを表し、```a += 2 ```と書いても同じ結果が得られる。(`+=` を用いた書き方のほうがシンプルなので、今後多用します)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "kShmmBdw6Bfg" - }, - "outputs": [], - "source": [ - "a = 2.0 \n", - "a += 4.0; print(\"2行目\", a) \n", - "a -= 3.0; print(\"3行目\", a)\n", - "a *= 3.0; print(\"4行目\", a)\n", - "a /= 3.0; print(\"5行目\", a)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "上では、セミコロン(`;`)で、複数のコードを1行に書くことができる機能を用いた。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ksTr3vgORMth" - }, - "source": [ - "## 変数名に関する約束\n", - "\n", - "この授業では**変数名に全角文字(ひらがな・カタカナ・漢字)は使わず、文字列かコメントにのみ使う**と約束をしよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lHrhJ0kP3sqB" - }, - "outputs": [], - "source": [ - "#非推奨\n", - "あ=1.0\n", - "print(あ)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "e7-sDw8n3Vnh" - }, - "source": [ - "上記のように、変数名にひらがな等を使用すること自体は可能で、Google Colaboratoryでも何も特別なことをしなくてもひらがなが使える。また、最近の多くのプログラミング言語は全角文字をサポートしている。\n", - "ただファイルの互換性などを考慮すると、一般にはひらがなや漢字など全角文字を変数に指定することは避けたほうが無難である。\n", - "\n", - "また、変数名などにひらがなを使うことに由来して起こりがちなバグとしては「括弧()を間違って全角にしてしまってそれに気が付かない」といったことがある。コードを編集する際に日本語の変数などを利用していると、半角・全角の切り替え忘れなどが生じうるので、コードセルではなるべく半角英数字のみを使うというのが、ミスを防ぐための一つの方法にもなっている。\n", - "\n", - "以降ではこの慣例にならって、変数名に全角文字は使わない。変数名は基本的に半角英数字, アンダースコア`_`のみで定義しよう。\n", - "```+-%/=```などの記号も使うことができない。たとえば```-```は既に引き算という演算を表すのに使用されているので、```a-b``` という名前の変数を定義しようとしても、コンピュータにとっては変数ではなく[a マイナス b]という演算だと認識されてしまう。\n", - "また変数の頭に数字を使うこともできない。 例: ```2a```\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "9nJInAMR8xBc" - }, - "outputs": [], - "source": [ - "a=5.0\n", - "a2 = a*2.0 #これはOK" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "-AQ_v6oN80VD", - "outputId": "8341c2a7-9ebb-4730-d47a-1b1ce7f2ac1b" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 2a = a*2.0 #これは構文エラー(SyntaxError)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "2a = a*2.0 #これは構文エラー(SyntaxError)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "67WnrlQFvGzc" - }, - "source": [ - "その他、よくあるエラーについては[こちら](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_misc_Error.html)を参照" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Xzh2hrEGQyoh" - }, - "source": [ - "## Pythonでの文字列操作\n", - "\n", - "Pythonでは、数値はもちろん文字列も**値**として扱うことができる。文字列は`\"\"`(ダブルクォーテーション)か`''`(シングルクォーテーション)で囲むことで定義することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Uf5RoETJQf9T" - }, - "outputs": [], - "source": [ - "text = \"私の名前はXXXです\" ## XXXのところを自分の名前にしてみましょう。\n", - "print(text)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vu7JQswcQima" - }, - "source": [ - "文字列には、足し算や整数値との掛け算が適用できる。たとえば\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1KfLiGbXSGtu" - }, - "outputs": [], - "source": [ - "text1 = \"ティッシュ配りの\"\n", - "text2 = \"バイトを監視する\"\n", - "print(text1 + text2) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gapLeKPbSS9X" - }, - "source": [ - "とすれば、`text1`と`text2`にそれぞれ代入した2つの文字列を連結した一つの文字列を表示することができる。\n", - "また、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lkPrilk0Smn1" - }, - "outputs": [], - "source": [ - "a = 2\n", - "print(str(a)+\"人の\"+text1+ text2 * 5 +\"正社員\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SXWbu7hERxhk" - }, - "source": [ - "とすれば、`text2`部分を5回繰り返して他の文字列とつなぎ合わせた長い文字列を作ることもできる。\n", - "\n", - "1点注意点としては、整数値を代入した`a`を文字列として他の文字列と結合したいときは、\n", - "`str()`関数(`str`はstringの略)を使って、文字列に変換してやらなくてはならない。\n", - "これに関連して、後ほど変数の**型**というものを勉強する。\n", - "\n", - "また足し算と掛け算は定義できるが、文字列に対して引き算や割り算を行おうとするとエラーを吐く。\n", - "\n", - "**※もう少し詳細な文字列操作**\n", - "`replace`関数,`split`関数,`strip`関数なども便利ですが、この章では省略します。以降の\"ファイル・文字列操作\"の章で扱います。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cA-K0W0gdUVm" - }, - "source": [ - "## プログラムの実行順 \n", - "\n", - "基本的にプログラミングでは、上から処理が実行される。 \n", - "(ループや関数が導入されると少し事情が異なり、ブロックと呼ばれる処理単位でまとめて実行されることもあるが、この点については、2・3章以降で追々見ていくことにしましょう)\n", - "\n", - "以下の2行のコードは、実行するとエラーが出る。 \n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "Nxtzf6oydyPo", - "outputId": "7928123b-07af-4bbb-c159-969ac7098e58" - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mnum\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'num' is not defined" - ] - } - ], - "source": [ - "print(num)\n", - "num=2" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pDZNSdGSXLLS" - }, - "source": [ - "理由は、エラーメッセージを読むと分かるように、```num```という変数が定義されていない(not defined/undefined)のに、その値を`print`しようとしたからである。\n", - "\n", - "\n", - "\n", - "もちろん```num=2```の代入部分を含むコードを実行した後ならエラーはでない。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "iGbewJx35Cv-", - "outputId": "39440ce3-4345-42f7-c5f9-ef3d405a7cdc" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2\n" - ] - } - ], - "source": [ - "num=2\n", - "print(num)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "diGHO3vHByMP" - }, - "source": [ - "とくにGoogle Colab(Jupyter Notebook)環境では、**セルをまたいでコードを実行することがあるので、意図した変数の値がきちんと引き継がれているか注意が必要**になる。また**変数のスコープ**という概念にも注意が必要となる(関数を扱う第3章で解説します).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nvVmV3T2eNNg" - }, - "source": [ - "Jupyter Notebook環境では、セルのコードを逐次実行した場合**コードセルの左側に表示される括弧[ ]内の整数でコードの実行順を確認することができる**。コードやノートが複雑になってくると、正しい順番で実行しないとエラーが出たり、エラーは出ないけれど意図した出力にならないといった事が起こりえるので、注意が必要。慣れないうちは、処理(プログラム)をあまりバラバラのセルに書かず、一つにまとめて書くのがオススメ\n", - "\n", - "**良い例**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "i04YCgvREx3D" - }, - "outputs": [], - "source": [ - "a = 2\n", - "f = a**2 + 3*a + 1\n", - "print(f)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "M9wpT6pdE94M" - }, - "source": [ - "**悪い例**\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NZz13R9wE5d-" - }, - "outputs": [], - "source": [ - "a = 5" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "tSEolkA1FBIb" - }, - "outputs": [], - "source": [ - "f = a**2 + 3*a + 1\n", - "print(f)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QWdmQhl7FOdy" - }, - "source": [ - "このようにコードを分けてしまうと、```f```では最後に```a```に代入された値を用いて計算が行われるので、```a=5```のセルを実行し忘れると、意図した値にならない。(あるいは未定義ならエラーとなる)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iZWBifqG1hiM" - }, - "source": [ - "## 変数の型   \n", - "プログラムの中で扱う変数には様々な\"型\"(`type`, タイプ)が存する。\n", - "代表的なものとしては、 \n", - "- `float`: 浮動小数点数(≒実数の有限桁内の近似)\n", - "- `int`: 整数 \n", - "- `str`: 文字列 (stringの略) \n", - "- `bool`: 真偽値 (下で説明します) \n", - "\n", - "が挙げられ、この他にも様々な型が存在している。 \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CiI90I_KBFp4" - }, - "source": [ - "たとえば以下のように変数の型は```type()```という関数を使うことで調べることができる。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lk5U6eRixEmS" - }, - "outputs": [], - "source": [ - "a=2\n", - "b=2.0\n", - "print( type(a), type(b))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SeEQBeHX_Ajq" - }, - "source": [ - "```{margin} 浮動小数点\n", - "いい加減な理解としては、\"実数値\"に近い概念だと思ってください。\n", - "\"いい加減な理解\"というのは\"厳密には違う\"という意味で、それについては後で説明します。\n", - "```\n", - "`a=2`は`int`(整数)型で、`b`(=2.0)は`float`、つまり浮動小数点(floating point)。\n", - "\n", - "Pythonでは特定の型同士のみに許された特殊な演算等もある。変数の型が調べたくなったときは```type```関数を使ってみよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ju30-9Eg_mkm" - }, - "source": [ - "### プログラムでの実数の取り扱い" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uV441Uk-5U6g" - }, - "source": [ - "整数としての2(つまり`int`型の2)は理想的な整数2であるのに対して、`float`型の2.0というのは、 \n", - "「コンピュータが扱える有限の精度のもとで十分2.0とみなせる値」という意味しか持たない。\n", - "\n", - "変数`a`に以下の値を代入して`print`してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_bHmWs7-70G_" - }, - "outputs": [], - "source": [ - "a = 2.00000000000000000000055511151231257827021181583404541015625\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Cil16n_8jY5E" - }, - "source": [ - "コンピュータで実数値を表現する際、小数点以下の桁数を無限桁考慮するのは、機械にとっても大変なので、ある程度の精度で打ち切ることが必要になる。\n", - "\n", - "Pythonで扱う実数値は、現在の世界標準である[IEEE 754](https://ja.wikipedia.org/wiki/IEEE_754)という規格のもとで、十進数に換算して16桁程度の精度(倍精度実数の場合)の近似となっている、とザックリ理解しておけば当面は問題ないでしょう。\n", - "\n", - "たとえば、`0.3`と`0.1+0.1+0.1`は、コンピュータが無限の精度を持っていれば(つまり0.3や0.1のあとに無限に0が続く数を扱うことができれば)等しい数になるべきだが、有限の精度を採用している都合上\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "guk4yu1W-ceA", - "outputId": "997d7dab-636b-4a3b-8602-8c7105b5f980" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-5.551115123125783e-17\n" - ] - } - ], - "source": [ - "print(0.3 - (0.1+0.1+0.1))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "fVklyhDm-0do" - }, - "source": [ - "というように差をとると極小の値だけずれている事が分かる。\n", - "\n", - "授業で扱う対象の場合は、この有限精度が実用上のトラブルを起こすことは無いはず。\n", - "一方で(研究等で)いわゆる数値計算を行う場合は、このようなごく小さな誤差が掛け算によって増幅され無視できない影響を引き起こすことがしばしばあるので、工夫や適切な処理が必要になることもある。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9pzeE-C812cT" - }, - "source": [ - "$\\clubsuit$ さらに進んだ注\n", - "\n", - "コンピューターでは、0か1の二値を取るビット(bit)を最小単位として数値など各種の情報を表現して扱います。\n", - "たとえば整数値は、ビットを用いた表現と1対1対応させることができます。ビットが2つ使えるとするならば、[00]が1, [01]が2,[10]が3,[11]が4といった具合です。\n", - "\n", - "一方で実数は、いくらでも小さく分割できるため集合としては非可算無限(それぞれの値に、1対1対応する\"番号\"をつけることができない)となり、これをコンピューターで扱おうとすると、必ず何らかの\"近似\"が必要になります。\n", - "この近似の方法として通常用いられるのが、**浮動小数点**という考え方でありその標準を定めたものが前述のIEEE754となります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0rTMkwwu542w" - }, - "source": [ - "## 予約語\n", - "\n", - "Pythonには、あらかじめ役割が与えられている言葉(**予約語**)があり変数名として使う事はできません。 \n", - "\n", - "実際にコード用のセルにこれらの語句を入力すると下記のように黒ではなく別の色で表示されます。このような場合は**変数に別の名前をつける**ようにしましょう。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NZupgRYXzOqc" - }, - "outputs": [], - "source": [ - "# 予約語は色で分かる\n", - "False, None, True, and, as, assert, break, \n", - "class, continue, def, del, elif, else, except, \n", - "finally, for, from, global, if, import, in, is, \n", - "lambda, nonlocal,not, or, pass, raise, return, \n", - "try, while, with, yield" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "予約語の役割については登場したその都度説明します。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2clzBTJo47u2" - }, - "source": [ - "## ブール(bool)\n", - "真偽値(`bool`,ブール)は`True`(真)と`False`(偽)の二値を取る型です。たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ft3Id7uO5VtR" - }, - "outputs": [], - "source": [ - "a=2.0; b = 5.0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "v3Dkiheo5ZE7" - }, - "source": [ - " のとき、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jlQpKJu6xTv-" - }, - "outputs": [], - "source": [ - "print(a < b) # aがbより小さいかどうか" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "e6CjUOwrxcgH" - }, - "outputs": [], - "source": [ - "print(a == b) # aがbと等しいかどうか プログラムでの等号は=ではなく==です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GjZXvoth5lZv" - }, - "source": [ - "これを考えるとなにが嬉しいかというと、ある条件をみたす(みたさない)ときだけ特定の作業をするプログラムを書くことが出来ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "wHr_li34xe8s" - }, - "outputs": [], - "source": [ - "if a==b: \n", - " print(\"aとbが一緒だよ!!やったぜ!!!\")\n", - "else:\n", - " print(\"aとbが違うじゃないか!!!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xyNnie55N77B" - }, - "source": [ - "このような**条件分岐**の具体例については次の章で見ることにしましょう。 " - ] - } - ], - "metadata": { - "colab": { - "include_colab_link": true, - "name": "Python_chapter1_Introduction.ipynb", - "provenance": [] - }, - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.10" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter1_Introduction.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter1_Introduction.txt deleted file mode 100644 index 603e9a21..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter1_Introduction.txt +++ /dev/null @@ -1,92 +0,0 @@ -a = 2.0 -b = 5 - -a+b - -a-b - -a*b - -a/b - -c=a*b - -print(c) - -print("Hello") # Helloとプリントする(ここは読まれない) - -## 10月1日に編集 -print(b//a) # 切り捨て除算 -print(b%a) # bをaで割った余り -print(a**b) # aのb乗 - -print("Hello") Helloとプリントする - -print("Hello") - -a = 2.0 -a += 4.0; print("2行目", a) -a -= 3.0; print("3行目", a) -a *= 3.0; print("4行目", a) -a /= 3.0; print("5行目", a) - -#非推奨 -あ=1.0 -print(あ) - -a=5.0 -a2 = a*2.0 #これはOK - -2a = a*2.0 #これは構文エラー(SyntaxError) - -text = "私の名前はXXXです" ## XXXのところを自分の名前にしてみましょう。 -print(text) - -text1 = "ティッシュ配りの" -text2 = "バイトを監視する" -print(text1 + text2) - -a = 2 -print(str(a)+"人の"+text1+ text2 * 5 +"正社員") - -print(num) -num=2 - -num=2 -print(num) - -a = 2 -f = a**2 + 3*a + 1 -print(f) - -a = 5 - -f = a**2 + 3*a + 1 -print(f) - -a=2 -b=2.0 -print( type(a), type(b)) - -a = 2.00000000000000000000055511151231257827021181583404541015625 -print(a) - -print(0.3 - (0.1+0.1+0.1)) - -# 予約語は色で分かる -False, None, True, and, as, assert, break, -class, continue, def, del, elif, else, except, -finally, for, from, global, if, import, in, is, -lambda, nonlocal,not, or, pass, raise, return, -try, while, with, yield - -a=2.0; b = 5.0 - -print(a < b) # aがbより小さいかどうか - -print(a == b) # aがbと等しいかどうか プログラムでの等号は=ではなく==です。 - -if a==b: - print("aとbが一緒だよ!!やったぜ!!!") -else: - print("aとbが違うじゃないか!!!") diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter2_ListLoop.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter2_ListLoop.ipynb deleted file mode 100644 index 0c56ccf4..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter2_ListLoop.ipynb +++ /dev/null @@ -1,2025 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9f041YDhyHKb" - }, - "source": [ - "# Pythonの基本 その2: \n", - "\n", - "\n", - "[この章の目的]\n", - "プログラミングで非常に重要な概念である配列や繰り返し処理について学ぶ。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FxEjmIHu3StG" - }, - "source": [ - "## リスト\n", - "\n", - "実際にいろんなデータを扱う際には、値や変数をまとめて処理したくなります。\n", - "こうしたときに必要になるのが以下で扱う**リスト**型を始めとする**配列**です。\n", - "\n", - "リストは、値や変数などを括弧[ ]で括り、カンマで区切ることで作ることができます。\n", - "例: ```[1.0, 2.0, 3.0]``` \n", - "また好きな名前の変数にリストを代入する(リストに名前を割り振る)こともできます" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "dxpkCjfvjsDD" - }, - "outputs": [], - "source": [ - "heights=[178.0, 180.0, 153.0]\n", - "\n", - "# 変数heightsをprint\n", - "print(heights)\n", - "\n", - "# 変数heightsの型をprint\n", - "print(\"変数aの型(type)は\", type(heights)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CI7AqILkzWYY" - }, - "source": [ - "リストの要素にできるのは数値だけではなく、文字列のリストも作ることができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "a7c5bw5O36CC" - }, - "outputs": [], - "source": [ - "names = [ \"Aさん\", \"Bさん\", \"宇大太郎さん\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SkfATN0Jj_Oo" - }, - "source": [ - "リストに入っている要素の数は、`len()`関数(lengthの略)で見ることができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "nexyb9lAkJC0" - }, - "outputs": [], - "source": [ - "print(\"リストnamesは\", names)\n", - "print(\"長さは\", len(names))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7NWIj0tWzxGa" - }, - "source": [ - "当然、長さに名前をつけて適当な変数として定義することもできます。\n", - "**関数の出力の結果を何度も後で再利用する場合**などは、このように変数に代入しておくと便利です。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "yQWDGLFCmszW" - }, - "outputs": [], - "source": [ - "ln_a = len(names)\n", - "print(\"リストaの長さは\", len(names), \"で、型は\", type(ln_a)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gjwXE2cJz05q" - }, - "source": [ - "文字列と値を組み合わせたようなリストも作ることができます。 \n", - "例:名前、身長、体重 => ```[\"Aさん\", 178, 66]```\n", - "\n", - "また、これを拡張して、入れ子に(リストのリストを作成)することもできます。\n", - "``` [ [\"Aさん\", 178,66], [\"Bさん\", 180, 70] ]```" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8kVQe42tkK-D" - }, - "source": [ - "### リストの要素にアクセスする, インデックス(index)\n", - "\n", - "リストの中の要素にアクセスするときは、半角括弧を使って[整数]といった形で\"番地\"を指定します。 \n", - "このときの番地(あるいは座標といっても良いですが)を指定する整数のことをインデックス(index)と呼びます。\n", - "\n", - "**【重要】Pythonでは要素にアクセスするためのインデックスは1からではなく、0からカウントします!**\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "kRMlRuwhj2Rc" - }, - "outputs": [], - "source": [ - "a = [\"Aさん\", 178, 66]\n", - "print(a[0])\n", - "print(a[1])\n", - "print(a[2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ci65y6MBoSvU" - }, - "source": [ - "ですので、`a[3]`にアクセスしようとすると、\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mkON3qP1occT" - }, - "outputs": [], - "source": [ - "print(a[3])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zHlSjTaJn9UU" - }, - "source": [ - "list index out of range (リストのインデックスが用意された範囲(range)を逸脱している)というエラーが出ます。 \n", - "慣れないうちは0からカウントするのを変に思うかもしれませんが、これはプログラミング言語の仕様によるもので、Pythonの他にもC/C++なども0からカウントします。(ちなみにFORTRAN, Juliaなどは1からカウントします。)\n", - "\n", - "こうした0-based indexingと呼ばれる言語の利点はいくつかありますが、代表的なものは負のインデックスが自然に使えることでしょうか?\n", - "\n", - "理工系分野では、教科書などで行列やベクトルの要素を指定するのに1-based indexingを使うことも多いため、混乱するかもしれません。慣れるまでは注意が必要です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "D_hxwmblo4GK" - }, - "outputs": [], - "source": [ - "a = [\"Aさん\", 178, 66]\n", - "print(a)\n", - "print(a[-1])\n", - "print(a[-2])\n", - "print(a[-3])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "--1OHCHKo9An" - }, - "source": [ - "`[-1]`でアクセスすれば末尾の要素に、`[-2]`番目の要素は後ろから二番目といった具合です。\n", - "\n", - "長いリストを作って「えっとこれ前から何番目の要素だったっけ...?」というときに、 \n", - "後ろからX番目の要素といったように、サクッと取得できるのが便利なときもあります。\n", - "\n", - "入れ子にしたリストの要素を見たり、使いたいときには、少々慣れが必要です。 \n", - "```a = [ [[1,2], [3,4]], 5, 6]``` \n", - "このような場合では、一番外側の括弧から数えて、 \n", - "何番目の階層になっているかを考えることが必要になります。 \n", - "練習してみましょう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_yXPKxkk1XYh" - }, - "source": [ - "**練習**\n", - "\n", - ":::{margin} 変数名の規則\n", - "授業の資料のように、一時的な変数を使う場合は`a`や`tmp`といった意味のない変数名で十分なのですが\n", - "自身でいろんなコードを書くときは**後で自分や他人が見たときになんの変数のつもりか分かる**ような変数名にしましょう。\n", - "5日後の自分も他人のようなものです。\n", - ":::\n", - "1. [+コード]でセルを以下に追加し、下のリストを作成する \n", - " ```tmp = [ [\"Aさん\", 178,66], [\"Bさん\", 180, 70] ]```\n", - "2. ```tmp[i][j]```のi,jに可能な整数を入れて、Aさんの身長、Bさんの体重などをprint関数で表示してみましょう。\n", - "3. 2.と同じことを、負のインデックスを駆使してやってみましょう。\n", - "4. ```a = [ [[1,2], [3,4]], 5, 6]```を作成して、\n", - " len(a[0]) #0番目の要素の数をprintしてみましょう。\n", - "5. ```print(a[0][0][1])```を実行してみましょう。\n", - "6. 4.5.の挙動から推測して、aのリストの中から4を取り出したい場合どうすればいいのかprint関数を使いながら考えてみましょう。\n", - "\n", - "\n", - ":::{note}\n", - "テキストセルの内容をコードセルなどにコピー&ペーストしたければ、対象をドラッグして、`Ctrl+C`でコピー,`Ctrl+V`でペースト出来ます(Macの場合は`Ctrl`を`⌘`に置き換えてください)\n", - ":::" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZB9epIx_VAQ6" - }, - "source": [ - "### リストの結合\n", - "\n", - "2つのリストを結合することもできます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "YUsuP81s3_BG" - }, - "outputs": [], - "source": [ - "a=[1,3]\n", - "b=[2,4]\n", - "c= a+b\n", - "print(c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hfEDbcvd6bFE" - }, - "source": [ - "\n", - "上のリストを\"座標\"だと思えば、要素ごとの和になってほしいような気もしますが、リストの足し算は要素ごとの和ではなく\"リストの結合\"を意味します。\n", - "\n", - "> 補足: 要素ごとの和のような、数学などで必要な演算は以降で扱う```numpy```というモジュールを使って`ndarray`型と呼ばれるものにすれば簡単に実行できます\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CDhimmq_0x-q" - }, - "source": [ - "長さや階層の異なる2つのリストでも可能です." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "b3DFZtE602hP" - }, - "outputs": [], - "source": [ - "c=[1,2,\"Aさん\"]\n", - "d=[[5,6],[7,8]]\n", - "c+d" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ovAjU_321ROI" - }, - "source": [ - "### リストに要素を加える" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s568X9r-4c6J" - }, - "source": [ - "リストにあとから要素を加えたくなるときもあります. \n", - "そんなときは ```append```関数か```+=```を使います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "b_1nWHpd4ptJ" - }, - "outputs": [], - "source": [ - "A = [\"Aさん\", 178,66] \n", - "A.append(\"O型\")\n", - "print(\"A\", A)\n", - "\n", - "B = [ \"Bさん\", 180,70] \n", - "B += [\"A型\"]\n", - "print(B)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qpkIcDzA8S4X" - }, - "source": [ - "厳密には両者は違うのですが、この授業では見た目がスッキリするので後者をよく使います。 \n", - "入れ子のリストを作るときは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lqfalNz788Rx" - }, - "outputs": [], - "source": [ - "data = [ ]\n", - "data += [ [\"Aさん\",178,66] ]\n", - "data += [ [\"Bさん\",180,70] ]\n", - "print(\"data\", data)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wT8k9-LB9Y74" - }, - "source": [ - "などとする。空リストに既存(新規)のリストを追加したいときに、上のように`[ ]`が二重に必要な理由はリスト同士の和の演算が結合となることから理解できる。\n", - "実際に1重の括弧で試してみよう:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "GRI40dgS1U-u" - }, - "outputs": [], - "source": [ - "data2 = [ ]\n", - "data2 += [\"Aさん\", 178,66] # 1重カッコ これだと右辺のリストを空リストに結合することになる\n", - "data2 += [ \"Bさん\",180,70] # これも同様\n", - "print(data2)\n", - "print(\"data2\", data2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "u3Q7Qi8mnE4l" - }, - "source": [ - "こうしてしまう(リスト同士の単なる結合)と、人ごとにデータが区切られていないので扱うのに不便となる。\n", - "\n", - "リストに格納する情報に血液型を加えたりする際は以下のようにすればよい" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_l9GJWZ98srB" - }, - "outputs": [], - "source": [ - "### 名前,身長,体重,血液型,住んでる市区町村のリストを\n", - "a = [ \"Aさん\", 178, 66, \"A型\"]\n", - "print(a)\n", - "a += [\"宇都宮市\"]\n", - "print(\"住所追加後\", a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cdCiouyW2oqJ" - }, - "source": [ - "リストの要素は後から更新することもできます.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "XIATihMK9Lh6" - }, - "outputs": [], - "source": [ - "data = [ [\"Aさん\", 178,66],[\"Bさん\",180,70] ]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vdRIu-li9Oqe" - }, - "source": [ - "というリストがあったとして、Aさんの体重を修正したければ、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "fZ0mjwjn2uXd" - }, - "outputs": [], - "source": [ - "data[0][2] = 58 #Aさんの体重を更新\n", - "print(data) #リストを表示" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "血液型を追加したければ以下のようにすればよい。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "data[0] += [ \"A型\"]\n", - "data[1] += [ \"B型\"]\n", - "\n", - "print(data)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "a0gQkWzeUqgj" - }, - "source": [ - "### インデックスの取得" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V_MaDugdUs2T" - }, - "source": [ - "\n", - "```index```関数を使ってリスト内の、[興味のある要素]のインデックスを取得することができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DsvZFrmmU4iz" - }, - "outputs": [], - "source": [ - "tlist = [ \"いちご\", \"りんご\", \"ぶどう\"]\n", - "tlist.index(\"りんご\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZIyt7579U7bR" - }, - "source": [ - "重複する要素がある場合、初めにヒットしたインデックスを返します。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WD1qkBNvU8fH" - }, - "outputs": [], - "source": [ - "tlist2 = [ \"いちご\", \"りんご\", \"ぶどう\",\"メロン\",\"りんご\"]\n", - "tlist2.index(\"りんご\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "97rfD_PvVKU2" - }, - "source": [ - "複雑なデータを扱う際に「あれ、あの要素ってどこの番地にあるんだっけ?」といった状況に便利な関数です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rYMz3ClOhp9D" - }, - "source": [ - "### スライスを用いた部分リストの取得" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GSRzB_IPiPCO" - }, - "source": [ - "以下の```a```のようなリストがあったとき、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mkyfjA4ZiPtu" - }, - "outputs": [], - "source": [ - "a= [ \"years\", 1990, 1995, 2000, 2005, 2010, 2015, 2020]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0WmC8_qwiZPi" - }, - "source": [ - "始点,コロン(`:`),終点でインデックスの範囲を指定して、部分的に取り出すことが出来ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "z2fish5zixSf" - }, - "outputs": [], - "source": [ - "a[2:5]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "COx3lOQZjCFo" - }, - "source": [ - "終点のインデックスに相当する要素は取り出されないことに注意しましょう。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "XasfLIqRjHbe" - }, - "outputs": [], - "source": [ - "a[1:]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sG4YvJTQjIE0" - }, - "source": [ - "とすると、最後の要素まで含まれます。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LWya_HtMjKXw" - }, - "source": [ - "負のインデックスを使用することもできます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MKJ5-cJPi_xy" - }, - "outputs": [], - "source": [ - "a[1:-1]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BsLWAvmb3JDd" - }, - "source": [ - "### $\\clubsuit$ リスト操作の注意点 \n", - "\n", - "授業で扱う程度の内容のプログラミングに関する疑問は、ググれば自分でだいたい解決することができます。 \n", - "ただしこの項目で述べることは(初学者にとって)「直感に反するのだけど、どこがおかしいのか分からないので**そもそもどうググっていいかが分からない**」という点で、少し事情が異なります。 \n", - "\n", - "例を見せるために、以下の2種類のリストを用意します.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "IUJ1-lAY3T0n" - }, - "outputs": [], - "source": [ - "data1 = [[ \"Aさん\", 178,66], [ \"Bさん\",180,70] ]\n", - "tmp = [\"Aさん\", 178,66]\n", - "data2 =[ tmp, tmp] \n", - "\n", - "print(\"data1\", data1)\n", - "print(\"data2\", data2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "t2FS4d0U3-rq" - }, - "source": [ - "`data2`のようにまず雛形のリスト`tmp`を作って人数分の長さを持つリストを作ってから中身を編集しようと考えた場合、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w-uX1Alb4OOi" - }, - "outputs": [], - "source": [ - "data2[1][0]=\"Bさん\"\n", - "data2[1][1]=180\n", - "data2[1][2]=70" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iQwPT_WN4WG_" - }, - "source": [ - "という操作を思いつきます。このとき、`data2`の2つ目(0から数えて1番目)の要素だけを編集したつもりでも`data2`を`print`すると\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rkK0uOpz4huX" - }, - "outputs": [], - "source": [ - "print(data2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rVVjGsPu4jhj" - }, - "source": [ - "data2の最初の要素(Aさんのままであってほしいリスト)まで上書きされてしまっています。 \n", - "これは直感に反しているという点で、初学者が陥りやすい落とし穴です。\n", - "\n", - "※C言語などを学習していれば、参照渡し(ポインタ渡し)などである程度馴染みがあるかもしれません。\n", - "\n", - "「値を格納する箱というよりは値が保管される住所を示すもの」と1章の[変数の定義と簡単な演算]のところで書きました。 \n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xt1Q_B0f5QYL" - }, - "outputs": [], - "source": [ - "tmp = [\"Aさん\", 178,66]\n", - "data2 =[ tmp, tmp] \n", - "print(id(data2[0]), id(data2[1])) #それぞれのidを調べてprint\n", - "print(\"idが等しいか\", id(data2[0])== id(data2[1])) #id()は変数のidを確認する関数" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HktuZ7f85_FY" - }, - "source": [ - "今の場合、`data2`を最初に作ったときには0番目と1番目の要素(リスト)は同一の`id`を持つ`tmp`というリストです。 \n", - "したがって`tmp`の中身を書き換える操作(`data2[1][0]=\"Bさん\"`)は、`tmp`の更新を通して`data2`の要素いずれもに影響します。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LU95twWnrFGG" - }, - "source": [ - "このように、(特に)リストを入れ子にする際には、注意が必要です。なんかへんだな?と思ったときは要素の`id`に気を配ってみるのも重要です. \n", - "上のコードで、意図したものと違う挙動を起こした原因は、リスト`tmp`を参照する形で`data2`を作ったことでした。 \n", - "これは`copy`モジュールの`copy`関数を用いて配列のコピーを作成することで回避できます。(モジュールについては4章で説明します)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Bor6WGZzrIXO" - }, - "outputs": [], - "source": [ - "import copy #copyというモジュールをインポートする\n", - "tmp=[\"Aさん\",178,66]\n", - "data2 = [ copy.copy(tmp), copy.copy(tmp)]\n", - "print(id(data2[0]) == id(data2[1])) # ← data2の0番目と1番目のidが同じ(参照元が同じ)だと困るのでFalseであってほしい" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EZQPPyoaryQS" - }, - "source": [ - " また、リストのリスト(ネストされたリストといったりします)それ自体をcopyしたいときは、\n", - "```copy.deepcopy()```を使います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WkRQ4_klncVY" - }, - "outputs": [], - "source": [ - "import copy\n", - "data = [[ \"Aさん\", 178,66], [\"Bさん\",180,70] ]\n", - "\n", - "copydata = copy.copy(data)\n", - "deepcopydata = copy.deepcopy(data)\n", - "\n", - "\n", - "print(id(data), id(copydata),id(deepcopydata))\n", - "print(id(data[0]), id(copydata[0]), id(deepcopydata[0]))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "di-HvKQhpV4c" - }, - "source": [ - "上を見ると```data```というリストと```copydata```という\"リスト同士\"が異なるidを持っていても、それぞれの0番目の要素のidを見てみると、同じものを参照していることがわかります。 \n", - "このように、ネストされたリストをコピーして別々に扱いたい場合は特に注意が必要で、```deepcopy```のような作業が必要となります。(私も初めてプログラミングで配列を使ったときに、この点に気が付かずに時間をかなり溶かしました)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "66r8pzgrfwOi" - }, - "source": [ - "## 条件分岐 (if文)\n", - "\n", - "`if`文では、書かれた条件が成立した場合、後に続くブロックを実行します。 \n", - "`if`文を使って命題の真偽を判定することで、条件分岐を表現することができます。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "JOz7cyvQf2NX" - }, - "outputs": [], - "source": [ - "a=3.0; b =-0.3\n", - "if a > b: \n", - " print(\"aはbよりも大きい\")\n", - "if b > a:\n", - " print(\"bはaよりも大きい\") ##これは呼び出されない" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QF6tLC7agluM" - }, - "source": [ - "条件を満たすときはA,満たさないときはBをしたい、という場合には```else```を使う。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SacEU4f0gsmv" - }, - "outputs": [], - "source": [ - "if a< b:\n", - " print(\"aはbよりも小さい\")\n", - "else:\n", - " print(\"a>=b\") " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "t0pZV6Ghg31K" - }, - "source": [ - "```elif```(else ifの略)を用いれば、もう少し複雑な条件を表現することができる。\n", - "\n", - "たとえば、もし条件1が満たされればAを実行、条件1は満たされないが条件2が満たされればBを、さらに1も2も満たされない場合はCを実行するという場合は下記のようなコードになる:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "a68DTqL-hak5" - }, - "outputs": [], - "source": [ - "if a < b: #条件1\n", - " print(\"ab\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "fOvfCVFUiL1d" - }, - "source": [ - "if文は入れ子構造にすることもできる。その際はインデントを使ってブロックを表現する。\n", - "\n", - "たとえば`a`が偶数の場合は値をそのまま表示して、`a`が奇数の場合は3の倍数かそうでないかで処理を変える事を考えると、以下のようになる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ioNZB5iAiM_d" - }, - "outputs": [], - "source": [ - "if a % 2 == 0 :\n", - " print(a)\n", - "else:\n", - " if a % 3 == 0 :\n", - " print(str(a)+\"は3の倍数です\")\n", - " else:\n", - " print(str(a)+\"は3の倍数ではありません\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5qWPQPGMii74" - }, - "source": [ - "`if`文を使って条件分岐を作るときは**条件分岐にモレがないか**注意が必要です。例えば、変数`a`の値によって処理を行う場合" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Tv3MJC6ukVIM" - }, - "source": [ - "```py\n", - "if a > 0:\n", - " ## なんらかの処理1\n", - "if a < 0:\n", - " ## なんらかの処理2\n", - "```\n", - "\n", - "と書いてしまうと、`a=0`の場合、`if`文を2つともすり抜けてしまい、バグの原因になることがあります。はじめのうちは少々面倒でも```else```を使って、意図しないすり抜けがないかチェックするのが良いでしょう。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2oZ3vaYb3s1t" - }, - "outputs": [], - "source": [ - "a = 0 #aをいろんな値に変えて実行してみてください\n", - "if a > 0: #aが0より大きい場合\n", - " print(\"処理1:a+2=\", a+2)\n", - "elif a<0: \n", - " print(\"処理2:a*2=\", a*2) \n", - "else:\n", - " print(\"ゼロだよ?なんにもしなくていいの?\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1ecruqL3pHA4" - }, - "source": [ - "## ループ処理\n", - "\n", - "ループ処理は、プログラミングの中で**最も重要な概念の一つ**です。 \n", - "ループ処理を使うことで、同じ処理を繰り返し行うことができます。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cQKuOTIcJxYE" - }, - "source": [ - "### for文" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-hI7Tnwf79LU" - }, - "source": [ - "まず以下のコードを実行してみましょう:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "VgjXia0upIya" - }, - "outputs": [], - "source": [ - "for i in range(5):\n", - " print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vLdv2seGpj7Z" - }, - "source": [ - "上のコードは、\n", - ">iを0から4まで変化させながらiをprintする作業を繰り返しなさい\n", - "\n", - "という処理になっています。順番に見ていきましょう: \n", - "まず`range()`関数は、`range`型のオブジェクトを生成する関数で、`range(5)`は0から整数を5つ(0,1,2,3,4)を生成する関数です。やはり0始まりで、5が含まれないことに注意です。 \n", - "なお`range`関数の引数を`range(始点,終点,間隔)`と3つにすると、より複雑な整数の集合を作ることもできます。 \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HJ_Q30y-qNZv" - }, - "outputs": [], - "source": [ - "for i in range(0,6,2):\n", - " print(i) #やはり6は含まれないことに注意" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YMq8UkMY1UVt" - }, - "source": [ - "```in```(予約語なので色が変わってますね)は、`i`に`range()`で指定した数値の範囲(リストみたいなもの)を順番に突っ込んでいく関数と理解しておけばひとまずOKです。\n", - "\n", - "次に、リストの中身を順番に表示させてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DosIH6zO1aeW" - }, - "outputs": [], - "source": [ - "kudamono = [\"いちご\", \"りんご\",\"ぶどう\",\"メロン\"] #リストを定義\n", - "for tmp in kudamono:\n", - " print(tmp)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Mi49kwOX1iJ0" - }, - "source": [ - "上のコードでは、`tmp`という変数に`kudamono`というリストの中身が順番に当てはめられている事がわかります。 \n", - "ループを用いてリストの中身にアクセスする方法は主に2通りで、\n", - "\n", - "1. インデックスのループを回してリストにアクセスする\n", - "2. リストの要素に順番にアクセスする\n", - "\n", - "で、上のコードは2.に相当します。上の例で、1.の方法を採る場合は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SnMf5IBXAtuY" - }, - "outputs": [], - "source": [ - "for i in range( len(kudamono) ) :\n", - " print( kudamono[i] )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QbiNRP3tAwgD" - }, - "source": [ - "とすればよいです。\n", - "\n", - "インデックスと要素を同時に取得して使いたいときには```enumerate```関数を使って" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1sBjeAU3A8CJ" - }, - "outputs": [], - "source": [ - "for i, tmp in enumerate(kudamono):\n", - " print(i, tmp)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_iaSPpKgBBha" - }, - "source": [ - "とします。これによって○泉○次郎構文を作ることもできます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "3tNkMDDMBLi0" - }, - "outputs": [], - "source": [ - "for i, tmp in enumerate(kudamono):\n", - " print(tmp,\"は\"+str(i)+\"番目です\",str(i)+\"番目というのは0から数えて\"+str(i)+\"番だということです。\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s_IqtFV6rvKv" - }, - "source": [ - "### ブロックとインデント" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FE1LiUrVqrbU" - }, - "source": [ - "さて、上の`for`文のコードには、関数の前に半角スペースが4つあるのに気がついたでしょうか? \n", - "Pythonでは、`for`文を始め様々な処理の際に一連の作業\"ブロック\"を、**半角スペース4つ分**インデントを下げることで表現します。\n", - "\n", - "下のように、`for`文を使っているにも関わらず正しくインデントされていない場合はエラーが出ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ItpayRhWyBIZ" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - "print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "z1T_hDMgyCHI" - }, - "source": [ - "さて簡単な例でブロックごとの処理の挙動を確認しておきましょう。 \n", - "\n", - "**練習問題** \n", - "\n", - "以下のコードを実行すると、何回数字がprintされるでしょうか? \n", - "コードを実行する前に、三択で答えてみてください。 \n", - "\n", - "A. 8回\n", - "\n", - "B. 11回\n", - "\n", - "C. 13回" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "qM5QYdcJs5O-" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - " print(i) \n", - " for j in range(5):\n", - " print(i,j)\n", - "print(i,j)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tZxftTZBszWq" - }, - "source": [ - "`i`に関する繰り返し(ループとも呼びます)は、i=0,1の2回で、インデントが1ブロック下げられた操作を実行しますので、\n", - "`print(i)`を2回と、`j`に関するループを2回繰り返します。`j`はj=0,1,2,3,4をとり、`j`のループでは```print(i,j)```は合計2×5=10回呼ばれます。最後の行にある```print(i,j)```はどのループ(ブロック)の中にも入っていませんから、実行されるのは1回だけです。 \n", - "ということで、答えはC.の13回でした。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "llWzeLsx2kDq" - }, - "source": [ - "慣れないうちは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "VAgzCZ6K2lUI" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - " print(i)\n", - " for j in range(5):\n", - " print(i,j)\n", - " ## End j loop\n", - "## End i loop" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1geoDWVC2sjM" - }, - "source": [ - "などのように、どこでループを閉じるのかをコメントしておくと良いかもしれません。 \n", - "コードを編集しているうちに" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "USOd9Zdp2zaU" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - " print(i)\n", - "for j in range(5):\n", - " print(i,j)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jWjLB9Dy243B" - }, - "source": [ - "といったように意図しないインデントになってしまって、 \n", - "正しい答えを与えない(バグを作ってしまう)可能性があります。\n", - "\n", - "> 細かい注) Pythonでは通常インデント幅は4つの半角スペースで指定されます。 \n", - "Google Colab. では、 [ツール]→[設定]→[エディタ]から変更できますので、幅2が使いやすければ変更してください。 \n", - "また、プログラムファイルを編集する際、Tabキーを使ってインデントを指定するのと、スペースキーを用いてインデントを指定するのとで、どちらを好むかは、[タブ/スペース論争]として知られています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_r-xOslCuYQt" - }, - "source": [ - "**練習**\n", - "\n", - "リスト\n", - "```data = [ [\"Aさん\", 178,66] , [\"Bさん\",180,70], [\"Cさん\", 165,55]]```を用意し、 \n", - "[体重を二乗して身長にかけ合わせた量]の総和を計算するコードを作ってみましょう。\n", - "\n", - "ヒント1: 身長は入れ子になっているリストの[1]番目,体重は[2]番目 \n", - "ヒント2: total=0.0を定義して、体重の二乗×身長をfor文を使ってどんどん足していく。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "FJpla_3Fvbjw" - }, - "outputs": [], - "source": [ - "###以下は、不完全なコードです。これにあと3行ほど書き足してみましょう。 \n", - "###ちなみに答えは 2156493です.\n", - "data = [ [\"Aさん\", 178,66] , [\"Bさん\",180,70], [\"Cさん\", 165,55]]\n", - "total = 0.0\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Uf275kXcK-JN" - }, - "source": [ - "さて、ループ(for文)の使い方がなんとなく分かったでしょうか? \n", - "どんどん使ってみて、なれておいてください。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qucZen5vJ9PE" - }, - "source": [ - "他にも、たとえば、 1, 10, 100, 1000, 10000,...というループを回したい時、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "o7dH6aHKKP4i" - }, - "outputs": [], - "source": [ - "for i in [1,10,100,1000,10000]:\n", - " print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JTg8PfD3KW5U" - }, - "source": [ - "と書くのではなく、べき乗に対するループを回す" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Lwz3s8taKcvF" - }, - "outputs": [], - "source": [ - "for p in range(5):\n", - " print(10**p)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8qLiZx-VKhh-" - }, - "source": [ - "など、考えたい値を直接ループで扱うのではなく間接的な値(今の場合`p`)を扱うなどの考え方も、コードをスッキリさせる上で重要です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gPHPdQWAvKxc" - }, - "source": [ - "### リスト内包表記\n", - "\n", - "`for`文の別の使い方として、リスト内包表記と呼ばれる書き方があります。 \n", - "これを使うと、要素がたくさんのリストを簡単につくることができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oNiE_0IHwpUm" - }, - "outputs": [], - "source": [ - "a = [ i for i in range(1,1000,2) ] ## i を1から999まで2ずつ変えていったときの値を詰めたリストを作成\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2NxxShOxNFCH" - }, - "source": [ - "### break ループ処理を途中で抜けたい場合\n", - "\n", - "`break`は`for`文を途中で抜け出すのに使います。用途としては**目的を果たしたのでもうループを繰り返す必要がないとき**や**予期せぬ事が起きた場合にループ処理を終わらせてプログラムを終了するとき**などに使います.\n", - "\n", - "以下のような状況を考えてみましょう\n", - "\n", - "> Aさんは100万円を手にカジノにやってきて、 \n", - "掛け金が20万かつ50%の確率で勝ったり負けたりするギャンブルに目をつけました。 \n", - "\n", - "このAさんが [最大10回ゲームをやるが1回でも負ければ即座に賭けをやめたい]という状況をコードで表現する場合、以下のようなコードになります:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HPC5NF3FNUo3" - }, - "outputs": [], - "source": [ - "import random #これがなにかはとりあえず気にしない\n", - "\n", - "# 最初の手持ち金を定義\n", - "money = 1000000\n", - "\n", - "# ゲームを開始, 最大10回まで繰り返すことをfor文で表現\n", - "for i in range(10): \n", - " result = random.choice([True,False])\n", - " if result: # result==True, つまり勝った場合\n", - " money += 200000\n", - " print(\"勝った!!\")\n", - " else :\n", - " money -= 200000\n", - " print(\"負けたので帰ります\")\n", - " break\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`random.choice([True,False])`は1/2の確率で`True`か`False`を与える処理になっている。\n", - "True/Falseをそれぞれ勝ち負けに対応させられるので、その結果に応じて処理を分岐させていることが分かる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EGUKtqjeeyk9" - }, - "source": [ - "### $\\clubsuit$While文\n", - "\n", - "`for`に似たものとして`while`もよく用いられる。 \n", - "\n", - "`while`文は、原理的には`for`文と`break`を組み合わせたコードでも実装可能なので発展的な内容($\\clubsuit$マーク)として授業ではスキップするかも...\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "snmJfYawx-7u" - }, - "source": [ - "\n", - "プログラムを書いていくうちに、繰り返しの数が前もってわからないケースに遭遇することがある。たとえば\n", - "\n", - "* 連続で6が5回でるまでサイコロをふる\n", - "* 利益がある値を超えるまで株の売買をくりかえす\n", - "\n", - "といったイメージ。この様な場合は、何回処理を繰り返せば良いか予め知ることはほとんど不可能となる。\n", - "\n", - "サイコロの例の場合だと、たとえば5回ふっただけで6が連続で出る奇跡的な状況も有りえますし、1000回ふっても100万回降っても連続で5回は出ないかもしれません。(某漫画の地下チンチロ編のようなイカサマサイコロを使用するとグッと確率はあがります)このような処理を実装したい場合には`while`文を使います.\n", - "\n", - "さっきのAさんとカジノのギャンブルを例に\n", - "> 手持ち100万からゲームを開始して\n", - ">「手持ちが50万以上150未満ある限り賭けを続けるコード」\n", - "\n", - "を作ってみましょう\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "IDmdI51Mx-Tp" - }, - "outputs": [], - "source": [ - "import random #ランダムに勝ち負けを決めるためrandomというライブラリを使います\n", - "\n", - "money = 1000000\n", - "\n", - "#手元に50万以上-150万未満ある限り賭け続けることをwhile文で表現\n", - "while 500000 <= money < 1500000: \n", - " ## choice([True,False])でTrue(勝ち)とFalse(負け)をランダムに生成 \n", - " result = random.choice([True,False])\n", - " if result: # 勝ちの場合\n", - " money += 200000 \n", - " print(\"勝った!!\")\n", - " else : #負けの場合 20万失う\n", - " money -= 200000\n", - " print(\"負けた..\")\n", - "\n", - "# 500000 <= money < 1500000部分が\"False\"、つまりお金が50万以下か150万以上になったら\n", - "# while文が終わり、以下のprint文が読まれる\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "b9q7gVgWATh0" - }, - "source": [ - "といった具合です. 使用例が思い浮かばなければ「`while`なんてのがある」とだけ覚えておけば当面はOKです. \n", - "ちなみに上のコードは`random`モジュールの(疑似)乱数を用いているので、実行ごとに買ったり負けたり結果が変わります。何度か実行してみてください。\n", - "\n", - ">余談 これを応用すると↓のようなものを作って遊ぶこともできます(作者は私ではありません)。 \n", - "十亀vs松田シミュレータ https://mattz.xii.jp/yakiu/yakiu.html \n", - "(十亀選手(ライオンズ)と松田選手(ホークス)の驚異的な相性を元に作られた対戦シミュレータ)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iwv7BiM8NG47" - }, - "source": [ - "### $\\clubsuit$ continue\n", - "`continue`文は、`for`や`while`文の中で[以降の処理を無視する]のに使います. \n", - "具体的な用途としては[特定の条件を満たす場合にのみ適用する処理を書きたい]場合などがあります.再びカジノの例で考えてみましょう.\n", - "\n", - "まず、Aさんに勝負のたびに所持金を叫ばせるコードは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "eWE2Z2jVObxz" - }, - "outputs": [], - "source": [ - "import random\n", - "money = 1000000\n", - "while 500000 <= money < 1500000:\n", - " result = random.choice([True,False])\n", - " if result:\n", - " money += 200000 \n", - " else :\n", - " money -= 200000\n", - " print(\"今の所持金は...\"+str(money)+\"円だ\")\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eMPfQSziPEOP" - }, - "source": [ - "となります。これに少しずつ、より複雑な条件を加えていくことにしましょう. \n", - "\n", - "最初の掛け金を一旦5万円にすることにして[連続で勝った場合、コインを投げて表が出たら掛け金を2倍にする]という条件をいれてみましょう。これをプログラムで表現するのには以下のような実装が考えられます.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "M1F8_JYdPJFI" - }, - "outputs": [], - "source": [ - "import random\n", - "money = 1000000\n", - "\n", - "# 連続勝数を記録する変数hitを定義\n", - "hit = 0 \n", - "# 掛け金をセット\n", - "bet = 50000 \n", - "\n", - "# メイン部分のコード\n", - "while 500000 <= money < 1500000:\n", - " result = random.choice([True,False])\n", - " if result :\n", - " money += bet \n", - " hit +=1 #勝ったら連勝数をプラス1する\n", - " else :\n", - " money -= bet\n", - " hit = 0 #負けたら連続勝ち数を0にリセット\n", - " print(\"今の所持金は...\"+str(money)+\"円だ\")\n", - "\n", - " # コインの表裏を決める\n", - " coin = random.choice([True,False])\n", - " if hit >= 2 and coin: \n", - " bet = bet * 2\n", - " print(\"掛け金をレイズ!\",\"次は\"+str(bet)+\"円を賭けるぞ!!\")\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "A8XHg35QQtD0" - }, - "source": [ - "さらに**掛け金をレイズするかどうか悩んで、コインを投げて決めるのは、所持金が80万以上のときだけ**という、\n", - "より複雑な条件を実装するのに`continue`を使ってみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "5AgDgp8fQ3He" - }, - "outputs": [], - "source": [ - "import random\n", - "money = 1000000\n", - "\n", - "#連続勝数と掛け金を設定する\n", - "hit = 0 \n", - "bet = 50000 \n", - "while 500000 < money < 1500000:\n", - " result = random.choice([True,False])\n", - " if result:\n", - " money += bet \n", - " hit +=1 \n", - " else :\n", - " money -= bet\n", - " hit = 0 \n", - " print(\"今の所持金は...\"+str(money)+\"円だ\") \n", - "\n", - " # ここから下が追加された部分\n", - " if money < 800000:\n", - " continue # もし所持金が80万未満ならcontinue(以下の処理は実行しない)\n", - "\n", - " coin = random.choice([True,False])\n", - " if hit >= 2 and coin :\n", - " bet = bet * 2\n", - " print(\"掛け金をレイズ!\",\"次は\"+str(bet)+\"円を賭けるぞ!!\")\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p_ZvXiuc2ece" - }, - "source": [ - "### 例外処理" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6hnBZUQ1XpUW" - }, - "source": [ - "以下の処理は[ある値から都度10を引いていって平方根を取った値を表示する]というコードです\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "dWDJaf9G2hPi" - }, - "outputs": [], - "source": [ - "import math #sqrt(square root)関数を使うための1行\n", - "s = 124\n", - "#for i in range(20):\n", - "while True:\n", - " s -= 10\n", - " print(math.sqrt(s)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZX5FTHyOYdcF" - }, - "source": [ - "しかし、あるところでsの値が負になってしまい、sqrtが計算できなくなってしまいます(虚数を導入すれば定義できますが、`math`の`sqrt()`関数は非負の引数に対して定義されていますのでエラーが出ます)\n", - "\n", - "エラーが出る(≒予期しないことが起こる)とプログラムはそこで止まってしまいます。 \n", - "通常はそれで良い(問題があればエラーが起きないと対処しようがない)のですが、複雑な状況になると「エラーを無視してとにかくプログラムを最後まで実行させたい」「エラーが起こるときにエラーを回避するような仕組みをプログラム自体に実装したい」といった状況も起こりえます.\n", - "\n", - "上の例でいうと「`s`の値が正なら平方根を表示して、負の場合はエラーメッセージだけを表示してエラーが起きた回数をカウントする」という作業が必要な場合は以下のように \n", - "- ```try:``` 試行したい処理のブロック \n", - "- ```except:``` 例外(エラー)が起こった場合の処理のブロック \n", - "という2つの操作(`try`,`except`ともに予約語)を駆使することで、最後までプログラムを実行させることができます." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "7nhzIqnHZDRJ" - }, - "outputs": [], - "source": [ - "import math\n", - "s = 124\n", - "hit = 0 \n", - "for i in range(20):\n", - " s -= 10\n", - " try:\n", - " print(math.sqrt(s)) \n", - " except : \n", - " print(\"sの値が\"+str(s)+\"になったのでsqrtが計算できません\")\n", - " hit += 1\n", - "print(str(hit)+\"回 sqrtの計算でエラーがありました\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vcWhB2ld2EjT" - }, - "source": [ - "このノートブックでは説明しませんがexceptの後に具体的な例外を指定して例外の種類に応じた操作を行うことも出来ます。https://docs.python.org/ja/3/library/exceptions.html" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N7bZPiJyEpx-" - }, - "source": [ - "## $\\clubsuit$ タプル・辞書型\n", - "\n", - "発展的な内容です。 \n", - "以下のタプル・辞書型は使いこなせれば便利ですが、授業では必ずしも必要ではない(リストで代用できる)ので、興味に応じて学習してください。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5JH8ZSsU2lL8" - }, - "source": [ - "### タプル(tuple)型, 丸括弧\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FYc9ztofGU8M" - }, - "source": [ - "リストに似た型としてタプルと辞書があります。 \n", - "タプルは\"immutable\"(要素が変更不可)なリストと覚えておけばよいでしょう。\n", - "リストは要素を`[]`で囲むことで作ることができました。タプルは丸括弧`()`で囲むことで作ることができます" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4CNAqWljyjS1" - }, - "outputs": [], - "source": [ - "a = (1.0, 2.0, 3.0)\n", - "print(a, type(a))\n", - "\n", - "print(a[0]) ##要素にアクセスするときはタプルのときでもやはり角括弧を使う" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "I1IILsgUyk4T" - }, - "source": [ - "値をリストのように格納しておきたい、という状況下かつ、リストの値を後で変更することがないなら\n", - "タプルを使うのも一つの手です. \n", - "タプルを使うメリットとしては以下の通りです: \n", - "* (予期せず)値を更新しようとするとエラーを吐いて教えてくれる\n", - "* (場合によりけりですが)リストよりも早く処理が実行される(ことがある)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "d-wmV-24zIa9" - }, - "outputs": [], - "source": [ - "##たとえば...\n", - "a = (1.0, 2.0, 3.0)\n", - "##たとえば...2つ目の2.0を4.0に変更しようとすると....\n", - "a[1] = 4.0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Xp-zrOGUzclF" - }, - "source": [ - "↑エラーがでたかと思います。\n", - "\n", - "次に中身が同じ(1から5000までの整数)リストとタプルを用意して、1万回要素の和を計算するという計算をしてみましょう.\n", - "この計算自体に意味はありません。 \n", - "`time`というライブラリを使って2つの作業に係る時間を調べてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "RNRVJHBvzrRR" - }, - "outputs": [], - "source": [ - "import time #時間を計測するためのライブラリをインポート\n", - "itnum=10000 #繰り返す回数を設定\n", - "\n", - "#リストを使った計算\n", - "t0= time.time() \n", - "a = [ i for i in range(1,5001) ] #リストを定義\n", - "for i in range(itnum):\n", - " sum(a)\n", - "t1 = time.time()\n", - "\n", - "#タプルを使った計算\n", - "t2= time.time() \n", - "b = ( i for i in range(1,5001)) #タプルを定義\n", - "for i in range(itnum):\n", - " sum(b)\n", - "t3 = time.time()\n", - "\n", - "print(\"リストの処理にかかった時間\", t1-t0)\n", - "print(\"タプルの処理にかかった時間\", t3-t2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_DFBdeB61zTN" - }, - "source": [ - "タプルの方が実行時間が短い事がわかります. \n", - "今の例では差は人間にとっては気にならない程度の差ですが、複雑な処理になってコードがなかなか計算を完了しないときには、リストをタプルにするなど、コードのパフォーマンスを改善する作業が必要となります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "X69TUPNt2nfh" - }, - "source": [ - "### 辞書型, 波括弧\n", - "\n", - "辞書型は、キーと値の2つの要素をあわせ持つ型です. \n", - "リストにいれたものをいっぺんに扱うときに、毎回番地を指定したりループで要素を回して、望むものを持ってくるのは面倒です。\n", - "\n", - "たとえば以下の名前と年齢のリスト\n", - "```\n", - "data=[[ \"Aさん\",25],[\"Bさん\",21],[\"Cさん\",18]]\n", - "```\n", - "\n", - "があったとき、これまで習った方法だけを駆使してBさんの年齢を取得するには例えば以下のようなコードになります" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oWV6iYr520v5" - }, - "outputs": [], - "source": [ - "data=[[ \"Aさん\",25],[\"Bさん\",21],[\"Cさん\",18]]\n", - "\n", - "for person in data:\n", - " if person[0] == \"Bさん\" :\n", - " print(\"Bさんの年齢=\", person[1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QfC_TsDD3mYh" - }, - "source": [ - "このようなfor文とif文などを組み合わせた要素の探索が面倒なら、予め名前と年齢という2つの関係のある量を辞書として定義してしまえばよいのです。\n", - "\n", - "辞書型は波括弧`{}`で囲むことで構成できます.\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "GgnqzQYq4XbS" - }, - "outputs": [], - "source": [ - "Dict_age = {'Aさん' : 25, 'Bさん': 21, 'Cさん': 18}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n25YgOic5Gnp" - }, - "source": [ - "Bさんの値(今は年齢)を知りたければ以下のように一行で取得可能です." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "bHh_DVUZ5KTH" - }, - "outputs": [], - "source": [ - "Dict_age[\"Bさん\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HP-pNfHg4Y5e" - }, - "source": [ - "辞書を作る際には、 要素を取り出すためのキー(key)と値(value)の組み合わせで指定します.\n", - "その際\n", - "```\n", - "{\"key\" : value}\n", - "```\n", - "と`key`と`value`をコロン:をつかって区切り、複数要素を入れる際はカンマで区切ります. \n", - "`key`は文字列や数字(たとえば小中学校の出席番号とか)を使用することができ`value`は様々な型が使えます。\n", - "\n", - "値(`value`)として、リストを保持することもできます.次のように年齢と出身県のリストを値にもつ辞書にしてみましょう.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "PWzZQh4p5lqC" - }, - "outputs": [], - "source": [ - "Dict = {'Aさん' : [25,\"栃木県\"], 'Bさん': [21,\"茨城県\"], 'Cさん': [18,\"群馬県\"]}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cDz_Xk0I6D1k" - }, - "source": [ - "Cさんの個人情報にアクセスする際は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "gqsBmc4o6Rkn" - }, - "outputs": [], - "source": [ - "Dict[\"Cさん\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "E9fJ-WT76ROd" - }, - "source": [ - "とすればいいことがわかります.\n", - "\n", - "慣れないうちはタプルや辞書を使わずリストだけ覚えておけば問題ないのですが(私も簡単なコードだと、面倒だからリストでやっちゃう)複雑な処理になると(タプルにしないと)パフォーマンス差が顕著になったり(辞書にしないと)コードの可読性が低くなったりミスの原因になるので、タプルや辞書型もうまく組み合わせながら使えると良いです。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter2_ListLoop.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter2_ListLoop.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter2_ListLoop.txt deleted file mode 100644 index e171b97a..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter2_ListLoop.txt +++ /dev/null @@ -1,375 +0,0 @@ -heights=[178.0, 180.0, 153.0] - -# 変数heightsをprint -print(heights) - -# 変数heightsの型をprint -print("変数aの型(type)は", type(heights)) - -names = [ "Aさん", "Bさん", "宇大太郎さん"] - -print("リストnamesは", names) -print("長さは", len(names)) - -ln_a = len(names) -print("リストaの長さは", len(names), "で、型は", type(ln_a)) - -a = ["Aさん", 178, 66] -print(a[0]) -print(a[1]) -print(a[2]) - -print(a[3]) - -a = ["Aさん", 178, 66] -print(a) -print(a[-1]) -print(a[-2]) -print(a[-3]) - -a=[1,3] -b=[2,4] -c= a+b -print(c) - -c=[1,2,"Aさん"] -d=[[5,6],[7,8]] -c+d - -A = ["Aさん", 178,66] -A.append("O型") -print("A", A) - -B = [ "Bさん", 180,70] -B += ["A型"] -print(B) - -data = [ ] -data += [ ["Aさん",178,66] ] -data += [ ["Bさん",180,70] ] -print("data", data) - -data2 = [ ] -data2 += ["Aさん", 178,66] # 1重カッコ これだと右辺のリストを空リストに結合することになる -data2 += [ "Bさん",180,70] # これも同様 -print(data2) -print("data2", data2) - -### 名前,身長,体重,血液型,住んでる市区町村のリストを -a = [ "Aさん", 178, 66, "A型"] -print(a) -a += ["宇都宮市"] -print("住所追加後", a) - -data = [ ["Aさん", 178,66],["Bさん",180,70] ] - -data[0][2] = 58 #Aさんの体重を更新 -print(data) #リストを表示 - -data[0] += [ "A型"] -data[1] += [ "B型"] - -print(data) - -tlist = [ "いちご", "りんご", "ぶどう"] -tlist.index("りんご") - -tlist2 = [ "いちご", "りんご", "ぶどう","メロン","りんご"] -tlist2.index("りんご") - -a= [ "years", 1990, 1995, 2000, 2005, 2010, 2015, 2020] - -a[2:5] - -a[1:] - -a[1:-1] - -data1 = [[ "Aさん", 178,66], [ "Bさん",180,70] ] -tmp = ["Aさん", 178,66] -data2 =[ tmp, tmp] - -print("data1", data1) -print("data2", data2) - -data2[1][0]="Bさん" -data2[1][1]=180 -data2[1][2]=70 - -print(data2) - -tmp = ["Aさん", 178,66] -data2 =[ tmp, tmp] -print(id(data2[0]), id(data2[1])) #それぞれのidを調べてprint -print("idが等しいか", id(data2[0])== id(data2[1])) #id()は変数のidを確認する関数 - -import copy #copyというモジュールをインポートする -tmp=["Aさん",178,66] -data2 = [ copy.copy(tmp), copy.copy(tmp)] -print(id(data2[0]) == id(data2[1])) # ← data2の0番目と1番目のidが同じ(参照元が同じ)だと困るのでFalseであってほしい - -import copy -data = [[ "Aさん", 178,66], ["Bさん",180,70] ] - -copydata = copy.copy(data) -deepcopydata = copy.deepcopy(data) - - -print(id(data), id(copydata),id(deepcopydata)) -print(id(data[0]), id(copydata[0]), id(deepcopydata[0])) - -a=3.0; b =-0.3 -if a > b: - print("aはbよりも大きい") -if b > a: - print("bはaよりも大きい") ##これは呼び出されない - -if a< b: - print("aはbよりも小さい") -else: - print("a>=b") - -if a < b: #条件1 - print("ab") - -if a % 2 == 0 : - print(a) -else: - if a % 3 == 0 : - print(str(a)+"は3の倍数です") - else: - print(str(a)+"は3の倍数ではありません") - -a = 0 #aをいろんな値に変えて実行してみてください -if a > 0: #aが0より大きい場合 - print("処理1:a+2=", a+2) -elif a<0: - print("処理2:a*2=", a*2) -else: - print("ゼロだよ?なんにもしなくていいの?") - -for i in range(5): - print(i) - -for i in range(0,6,2): - print(i) #やはり6は含まれないことに注意 - -kudamono = ["いちご", "りんご","ぶどう","メロン"] #リストを定義 -for tmp in kudamono: - print(tmp) - -for i in range( len(kudamono) ) : - print( kudamono[i] ) - -for i, tmp in enumerate(kudamono): - print(i, tmp) - -for i, tmp in enumerate(kudamono): - print(tmp,"は"+str(i)+"番目です",str(i)+"番目というのは0から数えて"+str(i)+"番だということです。") - -for i in range(2): -print(i) - -for i in range(2): - print(i) - for j in range(5): - print(i,j) -print(i,j) - -for i in range(2): - print(i) - for j in range(5): - print(i,j) - ## End j loop -## End i loop - -for i in range(2): - print(i) -for j in range(5): - print(i,j) - -###以下は、不完全なコードです。これにあと3行ほど書き足してみましょう。 -###ちなみに答えは 2156493です. -data = [ ["Aさん", 178,66] , ["Bさん",180,70], ["Cさん", 165,55]] -total = 0.0 - - -for i in [1,10,100,1000,10000]: - print(i) - -for p in range(5): - print(10**p) - -a = [ i for i in range(1,1000,2) ] ## i を1から999まで2ずつ変えていったときの値を詰めたリストを作成 -print(a) - -import random #これがなにかはとりあえず気にしない - -# 最初の手持ち金を定義 -money = 1000000 - -# ゲームを開始, 最大10回まで繰り返すことをfor文で表現 -for i in range(10): - result = random.choice([True,False]) - if result: # result==True, つまり勝った場合 - money += 200000 - print("勝った!!") - else : - money -= 200000 - print("負けたので帰ります") - break - -print("最終的な所持金は..."+str(money)+"円だ") - -import random #ランダムに勝ち負けを決めるためrandomというライブラリを使います - -money = 1000000 - -#手元に50万以上-150万未満ある限り賭け続けることをwhile文で表現 -while 500000 <= money < 1500000: - ## choice([True,False])でTrue(勝ち)とFalse(負け)をランダムに生成 - result = random.choice([True,False]) - if result: # 勝ちの場合 - money += 200000 - print("勝った!!") - else : #負けの場合 20万失う - money -= 200000 - print("負けた..") - -# 500000 <= money < 1500000部分が"False"、つまりお金が50万以下か150万以上になったら -# while文が終わり、以下のprint文が読まれる - -print("最終的な所持金は..."+str(money)+"円だ") - -import random -money = 1000000 -while 500000 <= money < 1500000: - result = random.choice([True,False]) - if result: - money += 200000 - else : - money -= 200000 - print("今の所持金は..."+str(money)+"円だ") - -print("最終的な所持金は..."+str(money)+"円だ") - -import random -money = 1000000 - -# 連続勝数を記録する変数hitを定義 -hit = 0 -# 掛け金をセット -bet = 50000 - -# メイン部分のコード -while 500000 <= money < 1500000: - result = random.choice([True,False]) - if result : - money += bet - hit +=1 #勝ったら連勝数をプラス1する - else : - money -= bet - hit = 0 #負けたら連続勝ち数を0にリセット - print("今の所持金は..."+str(money)+"円だ") - - # コインの表裏を決める - coin = random.choice([True,False]) - if hit >= 2 and coin: - bet = bet * 2 - print("掛け金をレイズ!","次は"+str(bet)+"円を賭けるぞ!!") - -print("最終的な所持金は..."+str(money)+"円だ") - -import random -money = 1000000 - -#連続勝数と掛け金を設定する -hit = 0 -bet = 50000 -while 500000 < money < 1500000: - result = random.choice([True,False]) - if result: - money += bet - hit +=1 - else : - money -= bet - hit = 0 - print("今の所持金は..."+str(money)+"円だ") - - # ここから下が追加された部分 - if money < 800000: - continue # もし所持金が80万未満ならcontinue(以下の処理は実行しない) - - coin = random.choice([True,False]) - if hit >= 2 and coin : - bet = bet * 2 - print("掛け金をレイズ!","次は"+str(bet)+"円を賭けるぞ!!") - -print("最終的な所持金は..."+str(money)+"円だ") - -import math #sqrt(square root)関数を使うための1行 -s = 124 -#for i in range(20): -while True: - s -= 10 - print(math.sqrt(s)) - -import math -s = 124 -hit = 0 -for i in range(20): - s -= 10 - try: - print(math.sqrt(s)) - except : - print("sの値が"+str(s)+"になったのでsqrtが計算できません") - hit += 1 -print(str(hit)+"回 sqrtの計算でエラーがありました") - -a = (1.0, 2.0, 3.0) -print(a, type(a)) - -print(a[0]) ##要素にアクセスするときはタプルのときでもやはり角括弧を使う - -##たとえば... -a = (1.0, 2.0, 3.0) -##たとえば...2つ目の2.0を4.0に変更しようとすると.... -a[1] = 4.0 - -import time #時間を計測するためのライブラリをインポート -itnum=10000 #繰り返す回数を設定 - -#リストを使った計算 -t0= time.time() -a = [ i for i in range(1,5001) ] #リストを定義 -for i in range(itnum): - sum(a) -t1 = time.time() - -#タプルを使った計算 -t2= time.time() -b = ( i for i in range(1,5001)) #タプルを定義 -for i in range(itnum): - sum(b) -t3 = time.time() - -print("リストの処理にかかった時間", t1-t0) -print("タプルの処理にかかった時間", t3-t2) - -data=[[ "Aさん",25],["Bさん",21],["Cさん",18]] - -for person in data: - if person[0] == "Bさん" : - print("Bさんの年齢=", person[1]) - -Dict_age = {'Aさん' : 25, 'Bさん': 21, 'Cさん': 18} - -Dict_age["Bさん"] - -Dict = {'Aさん' : [25,"栃木県"], 'Bさん': [21,"茨城県"], 'Cさん': [18,"群馬県"]} - -Dict["Cさん"] diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter3_Function.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter3_Function.ipynb deleted file mode 100644 index 042d4f18..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter3_Function.ipynb +++ /dev/null @@ -1,661 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7Id5T1JiYLyY" - }, - "source": [ - "# 関数\n", - "\n", - "[この章の目的]プログラム内での関数と戻り値,スコープの概念を獲得する。\n", - "\n", - "ここでは、Pythonにおける関数の定義と関数が返す値[戻り値(返り値とも呼ぶ)]、ややテクニカルですが重要な点である変数のスコープについて説明します。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "39hwOTPKHdBK" - }, - "source": [ - "## 関数の定義" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8YqBoNnXHjDe" - }, - "source": [ - "既に現れた```print```や```len```などはPythonに備え付けられた\"組み込み関数\"と呼ばれるものの一種です。以下に示すように、組み込み関数とは別にユーザーが独自の関数を定義することができます。\n", - "\n", - "たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oeG9EoBPYflr" - }, - "outputs": [], - "source": [ - "p1 = [2.0, 4.0, -5.0]\n", - "p2 = [1.0, 3.0, -4.0]\n", - "#...中略\n", - "p100 = [5.5,-2.0, 3.0]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "f-1OoOC3ZFfW" - }, - "source": [ - "といったようなリスト(ある点の$x,y,z$座標だと思ってください)がたくさん(たとえば100個)あったときに、任意の2つの点の距離を求める操作が必要だったとします。\n", - "そんなとき${}_{100}C_2=4950$通りに対して毎回" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lrWeMpk5ZGy6" - }, - "outputs": [], - "source": [ - "d_1_2 = ( (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2 ) ** 0.5\n", - "d_1_100 = ( (p1[0] - p100[0])**2 + (p1[1] - p100[1])**2 + (p1[2] - p100[2])**2 ) ** 0.5" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lyuVwV40Ytk8" - }, - "source": [ - "などと書くのは面倒です。このように、何回も必要になる処理は、**関数**として定義しておけば呼び出して簡単に使うことができます。 \n", - "\n", - "例として「任意の長さが3の数値リストに対して3次元空間での距離を計算する関数」を自作してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "f0iYOWb5Zfcp", - "outputId": "b42f1ff6-dd82-4cb7-e8a3-4f4a29676c14" - }, - "outputs": [], - "source": [ - "def calc_d(l1,l2): \n", - " return ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5\n", - "\n", - "t = calc_d(p1,p2) \n", - "print(\"点1\",p1, \"と点2\", p2, \"の距離は\", t, \"です\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "r6JbFf61Zv3l" - }, - "source": [ - "`calc_d`は自作した関数の名前で、関数名の後ろのカッコには**引数**(ひきすう)を指定します。\n", - "\n", - "リスト(```l1```)とリスト(```l2```)を突っ込んだときに距離を計算して```return```する(返す)という一連の操作を```def```(defineの略)した、というのが上のコードで行っていることです。\n", - "コロン`:`は「以下で関数の中身を記述するブロックが開始する」ことを意味していて、インデントによってどこまでが関数のブロックかわかるようになっています。(ブロックについては```if```や```for```を思い出してください)\n", - "\n", - "定義した関数を使用する際には、この関数```calc_d()```に必要な引数(変数,今の場合リスト)```l1,l2```を代入して使います。\n", - "関数に入れる引数は代名詞のようなもので、関数に入れるものを`l1`,`l2`という名前にあわせて定義しておく必要はありません。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "vfn_uW7jsk1x", - "outputId": "fdbad61a-ab09-423b-daae-9dca5c621215" - }, - "outputs": [], - "source": [ - "print(calc_d(p1,p100)) #←これでも使えるし\n", - "print(calc_d([20.0, 1.0,-5.0], [-2.0, 3.0,5.5])) #←などとして名前をつけなくても使える" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JYEIUOkRx34k" - }, - "source": [ - "上の例のように100個の点の3次元座標に対応するリストがある場合,\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rQeQdGnqytj6", - "outputId": "57e68e0c-4e6c-49c9-de91-51e56a20adea" - }, - "outputs": [], - "source": [ - "import random \n", - "lists = [ [ random.gauss(0,1) for n in range(3)] for i in range(100)] #3次元の座標点をランダムに100個作っている n,iはダミー変数(特に使ってない)\n", - "hit = 0\n", - "for j in range(100):\n", - " for i in range(j+1,100): # i>j\n", - " distance = calc_d( lists[j], lists[i])\n", - " #print(j,i, distance) # 4950回文の計算結果をprintすると邪魔なのでコメントアウトした\n", - " hit += 1 \n", - "print(hit) #回数だけ表示しよう\n", - "#上のjのループ内で、iはj+1から99までを回る。 j+1= 100つまり j=99のとき range(j+1,100)はちゃんと空になる\n", - "#つまり、長さ100のリストにindex=100でアクセス(範囲外参照)したりすることはない。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YsUvuSp0hHta" - }, - "source": [ - "などとすれば、全組み合わせ(${}_{100}C_2$)に対して距離を計算することが出来る。 \n", - "上で使われているインデックス($j,i$)の模式図: \n", - "\n", - "\n", - "引数は通常関数の中で行う操作に必要な変数を指定します。上の例では2つのリストを引数としました。\n", - "\n", - "関数内の操作に関数外からの情報(インプット)が必要ない場合は引数なしの関数でも構いませんし、関数の外に値を渡す(アウトプット)必要がなければreturn文を明示的に書かなくても大丈夫です。`return`文がない場合は```None```(値なし)が返されます。\n", - "\n", - "幾つか例を作って、挙動を理解してみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "hKXXnar5huWZ", - "outputId": "654717fd-5230-412a-f84d-9fd88761d9aa" - }, - "outputs": [], - "source": [ - "def name(): #引数なしで、ただ以下の文字列を表示する関数\n", - " print(\"私は田中です\")\n", - "\n", - "def myname(namae): #引数namaeを使って、以下の文字列を表示する関数\n", - " print(\"私は\"+str(namae)+\"です\")\n", - "\n", - "def myname_return(namae): # myname()で表示させた文字列自体を返す関数\n", - " return \"私は\"+str(namae)+\"です\"\n", - "\n", - "print(\"name()の実行→\", name()) ## name()が実行されたあとにココのprint文が実行される。\n", - "\n", - "print(\"myname()の返り値→\", myname(\"吉田\"))\n", - "\n", - "print(\"myname_return()の返り値→\", myname_return(\"吉田\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KfNDxdUVaxhm" - }, - "source": [ - "戻り値```return```は単一の値や文字列に限らず、複数の値でも可能ですし、リストを返すことも出来ます。\n", - "\n", - "先程の自作関数```calc_d```の場合、戻り値は`float`(実数値)ですが" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_6vSVbsia69R", - "outputId": "c951d169-b3bf-4f2d-c5f8-3bbcb2caa21a" - }, - "outputs": [], - "source": [ - "def calc_d_print(l1,l2):\n", - " return \"距離は\"+str( ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5 )+\"です\"\n", - "\n", - "def zahyo_and_d(l1,l2):\n", - " d = calc_d(l1,l2) #関数の中で、先程の自作関数を呼んでいる\n", - " return [l1,l2],d #座標を結合したリストと距離を返す\n", - "\n", - "ret = calc_d_print(p1,p2)\n", - "print(\"関数calc_d_print→\", ret,type(ret))\n", - "\n", - "\n", - "ret = zahyo_and_d(p1,p2)\n", - "print(\"関数zahyo→ \", ret,type(ret))\n", - "print(\"座標の結合リスト\",ret[0],\"距離\",ret[1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "oVUqT1cDbijH" - }, - "source": [ - "といったように、様々な返り値を持つ関数を定義できます。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gwbplPrRy35O" - }, - "source": [ - "関数を定義するときに、引数にデフォルト値(とくに値を指定しなければこの値が選ばれる)を設定することも出来ます。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "EGy5tiLSzKHq", - "outputId": "1c4fc107-7cf3-43d8-b6be-1f7e296db0d2" - }, - "outputs": [], - "source": [ - "#数値リストの要素のp乗和を計算する関数\n", - "def sump(tmp,p=2): \n", - " return sum([tmp[i]**p for i in range(len(tmp))])\n", - "\n", - "list1 = [10.0,20.0,30.0,40.0]\n", - "print(\"default\", sump(list1)) #pを指定しなければp=2が選ばれる\n", - "print(\"p=1\", sump(list1,p=1))\n", - "print(\"p=2\", sump(list1,2))\n", - "print(\"p=3\", sump(list1,3))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hOiz1XSGKDyx" - }, - "source": [ - "上の場合、引数を指定する際に`p=`などは書いても書かなくてもなくてもOKですが、デフォルト値が複数設定されている関数を作った場合には、どの変数を指定しているのかを明示的にするため、`p=3`などと引数に入力します。\n", - "関数を定義することで作業を*パッケージ化*し、コードを簡略化することができます。「繰り返しの操作は関数にする」ことを心がけましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Hi4Bw-xWK3d5" - }, - "source": [ - "## 変数のスコープについて\n", - "\n", - "以下の内容は、これまで学習したfor文や関数のインデントとも関連した話題です。非常に重要な反面、初学者がつまづきやすい点でもあります。\n", - "\n", - "一般に、プログラミングでは[グローバル変数]と[ローカル変数]と呼ばれるものがあります。その名(global/local)が示すとおりグローバル変数とはどこからでも参照できる変数で、ローカル変数とは、ある有効範囲(たとえば関数内)のみで参照できる変数です。\n", - "例を見ながら理解していきましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SDXBYARcMssS" - }, - "outputs": [], - "source": [ - "a = 2\n", - "list1 = [10.0,20.0,30.0,40.0]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Hz1s_N4CM5GE" - }, - "source": [ - "のように、関数内での代入などではない場合、変数はグローバル変数として定義されます。 \n", - "そのため、一度定義されれば関数に引数として渡さなくても参照することができます" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "lqCI3oOSNCWs", - "outputId": "681dbaae-556a-457c-d82e-32a9291921c6" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " print(a)\n", - "\n", - "a = 2\n", - "testfunc()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sXaRD7zMO7gq" - }, - "source": [ - "一方、関数の中で定義(代入)されるローカル変数は、関数の外で参照することはできません。 \n", - "(注: あとで説明するように関数内でglobal変数であることを宣言すれば関数の外でも参照できます)\n", - "\n", - "以下のコードを実行して,関数の中で定義された変数`abcd`を`print`しようとしてもエラーが起こってしまいます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 202 - }, - "id": "0C7YGdYCPGZ0", - "outputId": "4f82d90c-791e-4946-f384-526d3178cb72" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " abcd = 1.000\n", - "testfunc()\n", - "print(abcd)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Skv7X7b3N2vc" - }, - "source": [ - "では、次のコードを実行すると、最後に表示される`a`の値はどうなるでしょうか? \n", - "2でしょうか?それとも5でしょうか?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "MRy8oApxN8em", - "outputId": "321ced5c-3002-4eee-e298-7a172cf3effc" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " a = 5\n", - "a= 2\n", - "testfunc()\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wNbcnDiiOPqV" - }, - "source": [ - "となり`a`の値は更新されません。これは`testfunc`の中で定義されている`a`は、関数の内部で定義(代入)される変数であるため、ローカル変数とみなされて処理が行われるためです。\n", - "実際`id`を`print`させてみると、関数の内と外とで`id`が異なることも分かります。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "feLgu_e4OPcc", - "outputId": "6e647e2f-2a1c-411a-ef4b-365e61e9e906" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " a = 5\n", - " print(\"関数の内部\", a, id(a))\n", - " \n", - "a= 2 \n", - "print(\"関数の実行前\", a, id(a))\n", - "testfunc()\n", - "print(\"関数の実行後\", a, id(a)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-y5mwt3OPiFY" - }, - "source": [ - "一方で、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "csjHT3p_Pl3D", - "outputId": "6a5ad181-d94e-4f56-da8c-aa85f4a3c604" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " global abc, a #global変数の宣言\n", - " abc = 5\n", - " a += 2\n", - "\n", - "a=2\n", - "print(\"実行前\")\n", - "print(\"a\",a , id(a))\n", - "testfunc()\n", - "print(\"実行後\")\n", - "print(\"a\", a, id(a)) #別の変数として再定義されていることが分かる\n", - "print(\"abc\", abc)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qctKvajGMmO9" - }, - "source": [ - ":::{margin} プログラミング言語とスコープ\n", - "Pythonでは、インデントでブロックを定義したりすることで短いコードを書くことができますが、一方で変数のスコープが分かりづらいことがしばしばあります。たとえば関数内で、定義されていない変数を用いたコードがあればPythonでは「global変数で定義されているのでは?」と解釈され実行が試行されますが、このことを「気が利いている」と感じる人もいれば「意図しない参照が起きて余計なバグの温床になる」と、見る人によって違う捉え方になったりします。\n", - ":::\n", - "\n", - "といったように、関数の中で使う変数をグローバル変数として宣言すれば、関数の外でもその変数を使うことができます。\n", - "`global`変数の宣言を使うべき場合としては...コードの中で一度計算して、二度と変更する必要が無いような値にのみ使うようにしましょう。\n", - "\n", - "ただし、このようなコードの書き方は、処理が複雑化してくるとどこでその変数が定義されたり更新されたりしているかがわかりづらく、予期しない挙動の原因にもなりますのであまりオススメしません。\n", - "[関数には引数として変数を渡して、必要な戻り値を取得する]というコードを書くのがあくまで基本です。\n", - "\n", - "また、関数を用いる際に、変数のスコープに関して混乱を避ける手助けとなる方法は...メインプログラムと関数内とで変数の命名規則を区別しておく: \n", - "たとえば...メインコード(global変数)で使うリストの名前の区別には数字を使う、関数の引数にはアルファベットを使うなどの工夫(ルール作り)がオススメです。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "RKaOuz0HQsVh" - }, - "outputs": [], - "source": [ - "def func_join(listA,listB): #特殊なリストの結合をして返す関数\n", - " return listA + 2 * listB \n", - "\n", - "list1 = [ 2.0,30.0,18.0]\n", - "list2 = [ 9.0,4.0,8.0]\n", - "nlist = func_join(list1,list2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6TUuABHM4ei0" - }, - "source": [ - "### $\\clubsuit$ 関数内でのリスト更新\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vRetz7vT4iyg" - }, - "source": [ - "上では、数値(float)と関数を例に説明しましたが、リストの場合はもう少し挙動が複雑です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5rZLX1Vh4p2f", - "outputId": "ca13440a-d6b6-44c9-8521-f6ea3ce39efe" - }, - "outputs": [], - "source": [ - "def func_update_list(in_list):\n", - " in_list[0] = \"AAA\"\n", - "\n", - "tmp = [ \"SS\", 1,2,3]\n", - "print(\"実行前\", tmp, id(tmp), id(tmp[0]))\n", - "func_update_list(tmp)\n", - "print(\"実行後\", tmp,id(tmp),id(tmp[0])) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5w-Zo7Pw5YyA" - }, - "source": [ - "リストオブジェクト自体のidは引き継がれていて、リスト内要素(0番目)の更新が反映されていることがわかります。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "OgGkbM7u-k15", - "outputId": "8283c13a-5d99-48cc-b879-ea53284581a3" - }, - "outputs": [], - "source": [ - "def func_update_list(in_list):\n", - " in_list[0] = \"AAA\" \n", - " in_list = [\"BBB\", 0,1,2] ##ココはローカル変数扱い\n", - " return in_list\n", - "\n", - "tmp = [ \"SS\", 1,2,3]\n", - "print(\"実行前\", tmp, id(tmp), id(tmp[0]))\n", - "ret = func_update_list(tmp)\n", - "print(\"実行後\", tmp,id(tmp),id(tmp[0])) \n", - "print(\"ret\", ret,id(ret),id(ret[0])) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 関数とメソッド\n", - "\n", - "これまで登場してきた`print`や`len`などの関数は、Pythonに組み込まれている関数で、`関数()`という自作関数と同じ方法で呼び出せた。\n", - "\n", - "一方で、リストや文字列などのオブジェクトに対して、`オブジェクト.関数()`という形で呼び出せる関数がある。\n", - "これらは**メソッド**と呼ばれ、オブジェクト(正確にはクラス)に対して定義された関数になっている。\n", - "\n", - "たとえば、リストに対して`append`というメソッドを呼び出すと、リストの末尾に要素を追加することができた" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = [1,2,3]\n", - "a.append(4)\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "関数もメソッドも、引数を取り何らかの操作をするという点では同じだが、両者はその設計思想が異なるため、混乱しないように注意する必要がある。\n", - "大雑把に言えば、**関数は引数を取り、何らかの操作を行い、戻り値を返す**という設計思想であるのに対し、**メソッドはオブジェクトに対して何らかの操作を行う**という設計思想である。\n", - "\n", - "この授業では、クラスについての説明を行わないため、自分でクラスないしメソッドを定義することはないとは思うが、\n", - "ライブラリ等で用意されているクラス・メソッドを用いることも多いため、混乱した場合はこの違いを意識するようにすると良い。" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyM6vO7bZgJuLDdF+5NjdpNA", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter3_Function.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "file_extension": ".jl", - "mimetype": "application/julia", - "name": "python", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter3_Function.jl b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter3_Function.jl deleted file mode 100644 index 7d23285d..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter3_Function.jl +++ /dev/null @@ -1,140 +0,0 @@ -p1 = [2.0, 4.0, -5.0] -p2 = [1.0, 3.0, -4.0] -#...中略 -p100 = [5.5,-2.0, 3.0] - -d_1_2 = ( (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2 ) ** 0.5 -d_1_100 = ( (p1[0] - p100[0])**2 + (p1[1] - p100[1])**2 + (p1[2] - p100[2])**2 ) ** 0.5 - -def calc_d(l1,l2): - return ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5 - -t = calc_d(p1,p2) -print("点1",p1, "と点2", p2, "の距離は", t, "です") - -print(calc_d(p1,p100)) #←これでも使えるし -print(calc_d([20.0, 1.0,-5.0], [-2.0, 3.0,5.5])) #←などとして名前をつけなくても使える - -import random -lists = [ [ random.gauss(0,1) for n in range(3)] for i in range(100)] #3次元の座標点をランダムに100個作っている n,iはダミー変数(特に使ってない) -hit = 0 -for j in range(100): - for i in range(j+1,100): # i>j - distance = calc_d( lists[j], lists[i]) - #print(j,i, distance) # 4950回文の計算結果をprintすると邪魔なのでコメントアウトした - hit += 1 -print(hit) #回数だけ表示しよう -#上のjのループ内で、iはj+1から99までを回る。 j+1= 100つまり j=99のとき range(j+1,100)はちゃんと空になる -#つまり、長さ100のリストにindex=100でアクセス(範囲外参照)したりすることはない。 - -def name(): #引数なしで、ただ以下の文字列を表示する関数 - print("私は田中です") - -def myname(namae): #引数namaeを使って、以下の文字列を表示する関数 - print("私は"+str(namae)+"です") - -def myname_return(namae): # myname()で表示させた文字列自体を返す関数 - return "私は"+str(namae)+"です" - -print("name()の実行→", name()) ## name()が実行されたあとにココのprint文が実行される。 - -print("myname()の返り値→", myname("吉田")) - -print("myname_return()の返り値→", myname_return("吉田")) - -def calc_d_print(l1,l2): - return "距離は"+str( ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5 )+"です" - -def zahyo_and_d(l1,l2): - d = calc_d(l1,l2) #関数の中で、先程の自作関数を呼んでいる - return [l1,l2],d #座標を結合したリストと距離を返す - -ret = calc_d_print(p1,p2) -print("関数calc_d_print→", ret,type(ret)) - - -ret = zahyo_and_d(p1,p2) -print("関数zahyo→ ", ret,type(ret)) -print("座標の結合リスト",ret[0],"距離",ret[1]) - -#数値リストの要素のp乗和を計算する関数 -def sump(tmp,p=2): - return sum([tmp[i]**p for i in range(len(tmp))]) - -list1 = [10.0,20.0,30.0,40.0] -print("default", sump(list1)) #pを指定しなければp=2が選ばれる -print("p=1", sump(list1,p=1)) -print("p=2", sump(list1,2)) -print("p=3", sump(list1,3)) - -a = 2 -list1 = [10.0,20.0,30.0,40.0] - -def testfunc(): - print(a) - -a = 2 -testfunc() - -def testfunc(): - abcd = 1.000 -testfunc() -print(abcd) - -def testfunc(): - a = 5 -a= 2 -testfunc() -print(a) - -def testfunc(): - a = 5 - print("関数の内部", a, id(a)) - -a= 2 -print("関数の実行前", a, id(a)) -testfunc() -print("関数の実行後", a, id(a)) - -def testfunc(): - global abc, a #global変数の宣言 - abc = 5 - a += 2 - -a=2 -print("実行前") -print("a",a , id(a)) -testfunc() -print("実行後") -print("a", a, id(a)) #別の変数として再定義されていることが分かる -print("abc", abc) - -def func_join(listA,listB): #特殊なリストの結合をして返す関数 - return listA + 2 * listB - -list1 = [ 2.0,30.0,18.0] -list2 = [ 9.0,4.0,8.0] -nlist = func_join(list1,list2) - -def func_update_list(in_list): - in_list[0] = "AAA" - -tmp = [ "SS", 1,2,3] -print("実行前", tmp, id(tmp), id(tmp[0])) -func_update_list(tmp) -print("実行後", tmp,id(tmp),id(tmp[0])) - -def func_update_list(in_list): - in_list[0] = "AAA" - in_list = ["BBB", 0,1,2] ##ココはローカル変数扱い - return in_list - -tmp = [ "SS", 1,2,3] -print("実行前", tmp, id(tmp), id(tmp[0])) -ret = func_update_list(tmp) -print("実行後", tmp,id(tmp),id(tmp[0])) -print("ret", ret,id(ret),id(ret[0])) - -a = [1,2,3] -a.append(4) -print(a) diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib.ipynb deleted file mode 100644 index 932e16a7..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib.ipynb +++ /dev/null @@ -1,1292 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OCa-xyVjiadQ" - }, - "source": [ - "# ライブラリ/パッケージ/モジュールとデータの可視化(Matplotlib)\n", - "\n", - "[この章の目的]\n", - "* [ライブラリ]という概念の獲得\n", - "* Pythonを用いた各種グラフの描画\n", - "\n", - "\n", - ":::{margin} ライブラリ/パッケージ/モジュール\n", - "授業では呼び方が混在しているかと思います。正確な定義としてはライブラリ/パッケージ/モジュールの順に、より上位の集合を指しますが境界はあいまいな印象です。\n", - ":::\n", - "Pythonでは(他のプログラミング言語と同様)特定の作業がパッケージ化されたプログラム群が用意されていてこれらをライブラリ/パッケージ/モジュールなどと呼ぶ\n", - "Pythonのライブラリ/パッケージの多くはGitHub上で開発・公開されていて、簡単にインストールしたりインポートして使うことができる。 \n", - "\n", - "データ分析, AI・機械学習, エクセル等の操作, Webスクレイピングなど、非常に多岐にわたるライブラリが存在していて誰でも気軽に使うことができますし、幾つかのライブラリ/モジュールは標準で組み込まれているため、インストール作業をすることなく、以下のように簡単にインポートして使うことができます。\n", - "\n", - "たとえば`math`という名前のモジュールをインポートする際には\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "hGBW_qTNkvRq" - }, - "outputs": [], - "source": [ - "import math" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "It2WtKEtkwNT" - }, - "source": [ - "とします。簡単ですね。\n", - " \n", - "上のコードを実行し`math`モジュールを一度`import`してやれば、数学で多用される円周率```pi```,対数関数```log(),log10()```,指数関数```exp```,三角関数```sin,cos```などを使うことができます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KbRzvsm95XU_" - }, - "source": [ - "モジュール内に用意されている関数を利用するときは通常 \n", - "```モジュール名.関数```や```モジュール名.関数(引数)```といった形で使います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "9BbEO3a8k0VH" - }, - "outputs": [], - "source": [ - "print(math.log(2.0)) #自然対数 \n", - "print(math.log10(2.0)) #常用(底が10)対数\n", - "print(math.exp(2.0)) #指数関数\n", - "print(math.pi) #円周率pi (引数なし)\n", - "print(math.sin(math.pi)) # sin(pi)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cGKN5FijmR8v" - }, - "source": [ - "注:sin(π)は厳密に0になるべきですが1章で述べたように実数が有限の精度なので微小な量0からずれています" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "69y4fMDWSB11" - }, - "source": [ - "## Numpy" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FIsrOtnTR4qZ" - }, - "source": [ - "データ分析などで非常によく使われるNumpyというライブラリがあります。 \n", - "Numpyの大きな特徴に、数値を要素に持つ配列の計算・演算を高速に行うことが可能という点があります。\n", - "\n", - "簡単な作業ならリストでも代用できるので必須ではありませんが、コードを大幅に簡略化することもできるため、今後ノートブックでもたびたびNumpyが用いられます。\n", - "詳しくは[こちらのノートブック](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/main/notebooks/Python_misc_numpy.ipynb)を参照してください." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_RjUF-6603dn" - }, - "outputs": [], - "source": [ - "#先程のmathもnumpyで置き換え可\n", - "import numpy as np #numpyをnpという名前で使う\n", - "print(np.log(2.0))\n", - "print(np.log10(2.0))\n", - "print(np.exp(2.0))\n", - "print(np.pi)\n", - "print(np.sin(np.pi))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "以降、数値を要素に持つリストを使って演算やグラフを描画するときは、`numpy`の`ndarray`型というものに変更して使う事が多いです。 \n", - "リストを`ndarray`型に変換するには、numpyの`array`関数を用います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "list_a = [ 1.23, 9341.22, -32.33] \n", - "list_a = np.array(list_a)\n", - "print(list_a, type(list_a))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "XD-dP853zCmO" - }, - "source": [ - "## Matplotlibを用いた作図\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SGAFbBQJnplQ" - }, - "source": [ - "\n", - "以降ではMatplotlibと呼ばれるライブラリを使って、各種のグラフを作成する方法を見ていきましょう.\n", - "\n", - "Matplotlibは様々なグラフが描ける一方で少々テクニカルな部分が多いので**細かい部分は分からなくても心配は不要です** \n", - "「こういうおまじないを唱える(書くと)こうなる」というざっくりとした理解でまずは大丈夫です。 \n", - "\n", - ":::{margin} ライブラリの使い方を調べる\n", - "Pythonのライブラリの細かな使い方を調べる時、真っ先に思いつくのが**ググる**ことだ。\n", - "最近だと日本語で書かれた情報に気軽にアクセスできるのは良いことだが、(この授業資料同様)不正確な記述が含まれていてかえって理解を遠ざける危険性もある。\n", - "なにか困ったときに一番頼りになるのは大元のライブラリの公式ドキュメント以外ありえない。なぜなら開発者が作ってんだから。\n", - ":::\n", - "はじめはネットに転がっている誰かが書いたコードを少しずつ流用し、自分の目的のためにどうすれば良いか類推しながら改良していって、 \n", - "自分の描きたいグラフに近づけていくのが良いでしょう。(私もよく過去の自分が作成したコードを流用して作図しています)\n", - "\n", - "慣れてくるといろんな図を作ったり、細かいところにこだわったりしたくなります。 そんなときは以下のチートシートが役に立ちます. \n", - "https://github.com/matplotlib/cheatsheets \n", - "\n", - "\n", - "まず、以下のコードを実行して、`matplotlib`内の`pyplot`モジュールをインポートします. \n", - "`matplot.pyplot`だと名前が長いので```plt```という名前で使えるように```import XXX as YY``` などとします.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "oevjB6tvA97n" - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt \n", - "\n", - "from matplotlib import pyplot as plt #でも同じ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-KUcnUBIg2W2" - }, - "source": [ - "いくつかのライブラリにはディレクトリのように\n", - "```\n", - "LibraryA \n", - "├ module1.py \n", - "│ └─ sub_module1_1.py \n", - "│ └─ sub_module1_2.py \n", - "├ module2.py \n", - "︙ \n", - "```\n", - "という階層構造があり\"子\"はピリオドで指定します. \n", - "上の```matplotlib.pyplot```はその一例です." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ycksu5i7BsWp" - }, - "source": [ - "次に、Matplotlibは標準だと日本語が文字化けして豆腐のように表示されてしまうので、 \n", - "日本語フォントを使うためのライブラリをGoogleのサーバにインストールします" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Qwb9pJyCAcfC", - "outputId": "29634cc6-f768-4511-fd59-4ebc352de8dd" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting japanize-matplotlib\n", - " Downloading japanize-matplotlib-1.1.3.tar.gz (4.1 MB)\n", - "\u001b[K |████████████████████████████████| 4.1 MB 5.1 MB/s \n", - "\u001b[?25hRequirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from japanize-matplotlib) (3.2.2)\n", - "Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.19.5)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.4.7)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (0.10.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.8.2)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.3.2)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from cycler>=0.10->matplotlib->japanize-matplotlib) (1.15.0)\n", - "Building wheels for collected packages: japanize-matplotlib\n", - " Building wheel for japanize-matplotlib (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for japanize-matplotlib: filename=japanize_matplotlib-1.1.3-py3-none-any.whl size=4120274 sha256=f4b79909d06560d80efbd01142270456e2403c260cad143b4647081c91d3a36c\n", - " Stored in directory: /root/.cache/pip/wheels/83/97/6b/e9e0cde099cc40f972b8dd23367308f7705ae06cd6d4714658\n", - "Successfully built japanize-matplotlib\n", - "Installing collected packages: japanize-matplotlib\n", - "Successfully installed japanize-matplotlib-1.1.3\n" - ] - } - ], - "source": [ - "!pip install japanize-matplotlib #!から始めることでLinuxコマンドを使うことができる。\n", - "import japanize_matplotlib\n", - "import numpy as np #ついでにコレもインポート" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QPB383yO9SFq" - }, - "source": [ - "Pythonでグラフを作る際の基本は、**データ(描画したいもの)が入ったリストを作ること**です。\n", - "\n", - "リストに対して、線や棒、いろんな形のシンボルを描いたりして、どんどんグラフを構成する要素を足しながら、 \n", - "それらの色や線種、透過度や太さ,背景色などを変えつつ徐々に望むようなグラフにしていきます。\n", - "\n", - "以下では代表的なグラフを例に、Matplotlibを使った作画を試してみましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "88mhl_c22S4-" - }, - "source": [ - "### 棒グラフ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "j98rkXdk03-h" - }, - "source": [ - "Aさんの共通テストの得点をリスト(括弧[ ]内に、数字カンマで区切る)に格納します。 \n", - "順番(各科目の名前(ラベル))は、国語,英語,数IA,数IIB,化学,物理,世界史として... " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WWBmSr7L0_6s" - }, - "outputs": [], - "source": [ - "data = [152, 170, 82, 85, 79, 92, 88]\n", - "label = [\"国語\",\"英語\", \"数IA\", \"数IIB\", \"化学\", \"物理\", \"世界史\"]\n", - "total = sum(data)\n", - "#print(\"合計得点は\", total, \"点で、得点率は\"+str(total/900)+\"%です\")\n", - "print(\"合計得点は\", total, \"点で、得点率は\"+str(\"%6.1f\" % (100* total/900))+\"%です\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4gaNmr3CefUn" - }, - "source": [ - "Aさん優秀ですね。これを棒グラフにでもしてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "S0rBmtTL3YsB" - }, - "outputs": [], - "source": [ - "plt.figure( figsize=(10,2) ) \n", - "plt.bar(label,data,align='center',width=0.5,color=\"red\") \n", - "plt.xlabel(\"各科目\"); plt.ylabel(\"Aさんの得点\") \n", - "plt.show() \n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4SV4bCn9nxqV" - }, - "source": [ - "棒グラフが描けたでしょうか。それぞれの行の意味を順に説明します。 \n", - "\n", - "* 1行目: \n", - "```plt.figure(figsize=(10,2)) ``` \n", - "ここでは、`matplotlib.pyplot`内の`figure`という関数を読んでいます。 \n", - "上で`matplotlib`モジュール内の`pyplot`というモジュールを \n", - "`plt`という名前でインポートしたので`plt.figure`というのは、 \n", - "`pyplot`内の`figure`という関数を使うことを意味します。 \n", - "役割としては、図を描くキャンバスを用意しているようなイメージです。 \n", - "ここでは```figsize=(10,2)```という引数を指定しました。 \n", - "(指定しなければ自動で図のサイズが決まります) \n", - "figsize=(横,縦)で大きさが指定できます、figsizeを変えて試してみましょう \n", - "\n", - "* 2行目: \n", - "```plt.bar(label,data,align='center',width=0.5,color=\"red\")``` \n", - "`pyplot`内の`bar`という関数(棒グラフを描く関数)を使っています。 \n", - "1つめの引数はx軸上の値で、2つめはy軸に対応する値です。 \n", - "x軸用のリストが数値以外のときは整数値を割り当ててプロットしてくれます \n", - "(7個データがあれば、x=0,1,...,6に割り当てられる)\n", - "\n", - "* 3行目: \n", - "```plt.xlabel(\"各科目\"); plt.ylabel(\"Aさんの得点\") ``` \n", - "ここではx軸とy軸のデータの種類(ラベル/labelと呼ぶ)を指定しています。 \n", - "\n", - "* 4行目: \n", - "```plt.show()``` \n", - "それまでに指定した条件で絵を描いて表示する\n", - "\n", - "* 5行目: \n", - "```plt.close() ```キャンバスを閉じる。 \n", - "とくに一つのプログラムで複数絵を描くときはこれを書きましょう。 \n", - "(closeしないと、どこまでがどのグラフのための指示かわからず \n", - "意図しない絵になることがあります)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QJU3ua-h6JS0" - }, - "source": [ - "#### **練習** \n", - "国語と英語の得点を100点満点に換算し、 \n", - "いくつかの得点や棒グラフの色を変えてプロットしてみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "nmcYXrZACP4n" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EJpfw2KwCPdV" - }, - "source": [ - "\n", - "\n", - "---\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BzWX1S4I3ERW" - }, - "source": [ - "### 円グラフ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lH6qwevuz3Wo" - }, - "source": [ - "世の中には多くの円グラフの誤用が溢れています。 \n", - "ワイドショーなどで総和が100%になっていなかったり、 \n", - "円に対して占める割合が明らかに間違っていたりと、ひどい有様です。 \n", - "\n", - "他にも、奥行方向に傾いた円グラフも誤った印象を与えます。 \n", - "このように、円グラフというのは作成する際に注意が必要ですし、 \n", - "作成した円グラフがおかしいと「私は教養のない人です」 \n", - "と言っているようなもので大変恥ずかしい思いをします。 \n", - "\n", - "そもそも円グラフにしなきゃいけないデータってあるんでしょうか? \n", - "帯グラフなどのほうがよっぽど量の比較にも向いています。\n", - "\n", - "あれ...無くない?ということで円グラフはオマケとします。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "onNa3DTcgq-y" - }, - "outputs": [], - "source": [ - "#どうしても円グラフが描きたい方へ (下のコードを適当にいじって遊んでみてください)\n", - "tlabels = [\"Aと答えた人\",\"Bと答えた人\",\"Cと答えた人\"]\n", - "ratio = [513,142, 249]\n", - "\n", - "plt.figure(figsize=(4,4)) \n", - "plt.pie(ratio,labels=tlabels,counterclock=False, startangle=90,autopct=\"%.1f%%\")\n", - "plt.show()\n", - "plt.close() \n", - "# labels=tlabelsは、 pie()関数の中のlabelsという引数にtlabelsを突っ込むという意味\n", - "# label(ラベル)とは、凡例(legend)のこと。それぞれのオブジェクトが何を指すのか\n", - "# counterclockは反時計回りのオプションをFalse(偽)とするのでつまり時計回り(回りくどいな...)\n", - "# startangleは円グラフの始点を、x軸から見て何度のところにとるかで、今は90度(つまり12時の方向)と設定.\n", - "# autopctは「値を%表記に直せ」というオプションで、 %.1f%%は小数点以下1桁まで出力しなさいという命令." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "efNzOCmBlOyj" - }, - "outputs": [], - "source": [ - "tlabels = [\"Aと答えた人\",\"Bと答えた人\",\"Cと答えた人\"]\n", - "ratio = [513,142, 249]\n", - "\n", - "plt.figure(figsize=(10,3)) \n", - "plt.ylim([-1,1]) #plt.ylim(-1,1)でも可\n", - "xs = 0.0\n", - "for i in range(len(tlabels)):\n", - " tx = ratio[i]\n", - " ty = 0.0\n", - " plt.barh([ty],width=tx,left=xs,label=tlabels[i]+\"(\"+str(ratio[i])+\"人, \"+str(\"%4.1f\" % (100*ratio[i]/sum(ratio)))+\"%)\")\n", - " xs += ratio[i]\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Bvlp1LLbpLut" - }, - "source": [ - "こっちの棒グラフのほうが良い気がする" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6iN_Tl4millJ" - }, - "source": [ - "### plot: 線の描画\n", - "\n", - "説明変数$x$と目的変数$y$があって、 \n", - "とくに**$x$に対する$y$の振る舞い**に興味がある場合には```plot```を使います。\n", - "\n", - "たとえば、日付($x$)に対するコロナウイルス感染者($y$)の推移をプロットしてみましょう。\n", - "日付は、WHOのSituation Reportが初めて発表された2019年1月20日を起点(ゼロ)とする経過日数として表すことにして...\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 539 - }, - "id": "N0LR-xQii7b3", - "outputId": "0254ee47-8280-4fec-fb06-81463204cafc" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtIAAAEFCAYAAADOuQCgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZyN5f/H8dc1GGMf2yBMtCJZMkWlGkXZSX0lSkTSQouKtl/afC2JRIsv0TcVlexblsbyrcgyoey7CUmDLGNmzPX74zpzZoYZxjTmnuX9fDzux7nPdd/nzOeMY+Y917nu6zLWWkRERERE5MIEeF2AiIiIiEhOpCAtIiIiIpIBCtIiIiIiIhmgIC0iIiIikgEK0iIiIiIiGZDf6wIyqkyZMrZKlSpelyEiIiIiudiqVav+tNaWTe1Yjg3SVapUYeXKlV6XISIiIiK5mDFmV1rHNLRDRERERCQDFKRFRERERDJAQVpEREREJANy7Bjp1MTFxbF3715iYmK8LkUkTwoKCqJSpUoUKFDA61JEREQuulwVpPfu3UuxYsWoUqUKxhivyxHJU6y1HDp0iL1791K1alWvyxEREbnoctXQjpiYGEqXLq0QLeIBYwylS5fWJ0IiIpJn5KogDShEi3hI//9ERCQvyXVBOq+y1npdgoiIiOQVp0/D99/Dm296XYmnFKQvgmPHjgHwyiuv+BeNadq0qf/41KlTqVatGuHh4Vx99dXUqlWL8PBwrrjiCiIiIs56vvj4eO68806aNWvGqVOnUv2a99xzDwcPHvQ//8iRI9NVa1xcHLt372bPnj0X8hL93nnnHZYtWwbAxo0b+fLLL3nzzTcZOnSoP9y3adOGkJAQbr75ZipWrMjo0aP9j2nbtm2Gvu6FioyM5IEHHjjvef379+ebb75J9/OuWLGC2bNnp3n85MmT/Pzzz+l+voSEhPOe079/fyIjI3nqqadSvB9++uknJkyY4L9/7733nve5WrZs6d+PiIhgzZo1/vvDhw9nzJgxTJ8+nWHDhnH69Gm6dOmSzlciIiK5TkIC/O9/0Ls3VKoEt98OgwbBH394XZlnctXFhtlFy5YtUw3EybVo0YImTZowb948ypQpQ7169Zg6dWqq5z733HM89dRTlChRgvvuu4///ve/FC9e3H/8yJEjHD9+nLJlU129EnCBeejQoezdu5fo6GiCgoLYunUra9eu5Y477qBTp05UrlzZf/7x48cZMWIEP//8M9HR0YSEhPDwww9z1113AS5A3n333YSGhjJ+/HgKFizItddeS6dOnWjVqhVFixb1P9e0adPo0KEDI0eOpH///vTo0YO2bdvSsGHDFDWuWrWKRx99NNX6ly5dSqFChQDYvHkzHTt2TPW8zz77jOrVq6f5fchM27Zto1u3bkybNu2sY19//TXHjh2jUaNGvP7668ycOfOsc44ePcodd9yBMQZjDAEBAezcuZPZs2dTt25d/3lt2rTh0KFD/vt//fUXEydOpHz58tx1110MHz6cWrVqkZCQQOHChVm4cCFvvvkmv/76K/Xq1eP+++/nueee8z8+MjKSp59+GoB169YRHh5OYGAgxYsX54svvvCfd+TIEeLj4/njjz+oVasWW7Zs4eDBg/7XUrduXSpWrPjPv5EiIpJ9WQurVsGkSW7bswcKFoQWLaBDB3dbuLDXVXom9wbpp5+GyMjMfc46dWD48DQPz5kzh6FDh/LLL7/QuHFjtm3bxvz58ylWrBiRkZE0btyYPn36AFCgQAGCgoLInz9/iv3kYmJiePbZZ7npppto0aIF4IZwNGvWjFdeeYVmzZoB8PnnnxMeHk6HDh3Yv38/GzZsICYmxt+z+sEHH1CjRg2uv/567r//fkJDQ5k2bRpz5sxh2rRpREdHs2TJEv/XjY6O5r777uP555+nRo0abN68mSeeeILnnnuOzZs306tXL+rUqcNLL71EpUqVWLp0KV27dmXIkCFUrFiRw4cPc/jwYYoVK8a2bdsYMWIEy5cvp1evXkRGRtK3b99Uv3/16tVLddn38PBwTp8+7b9/4sQJatasyfjx41Oc16VLF44fP+6/f9NNN3HixAnA9QwfPHiQOnXqAHDJJZf4e5JnzpxJz549qVSpEgBz587lnXfeYffu3cyePdv/mORWr15N586dmTRpEpdddtlZxw8fPkxcXFyqrzNR8eLFU/RWnzhxgvr161OjRo0U550+fZrXXnuNTZs2AVC+fHmWLVvGlVdeyY033kidOnWIi4tj2rRp3HTTTZQvX57p06fTs2dPnn32WSIiIjh8+DDBwcEcOXKE4OBg//euW7du9OvXj9dff51XX32VtWvXUrlyZZYuXcr333/PmjVrCA0N5bvvvqNx48aUKVOGRYsWsXr1akaNGqUgLSKSG1kL69e74DxxImzbBgUKwF13wYAB0Lo1JOvQy8tyb5D2QLNmzWjWrBnh4eEsWLCAV155hbZt2xIWFkbTpk2ZO3cu4IZeTJ06lZ9++ol9+/ZRsGBBZs+ezd69e/0fx69atYr+/ftTr149xo8fz9tvv03+/PkpV64cHTp0YNq0acTGxnLbbbfx1ltv8eyzzzJx4kSOHj3KjTfeyKlTpxgxYgS1atXy13fHHXcA8OeffzJq1CjmzZvH4cOH6du3L1WrVuXAgQOUK1eOF154gTfeeIMGDRowYMAAateuTeHChXn//fepVasWPXv25KeffiI6Opq5c+dSsWJFpkyZwsmTJ5kyZQorVqzgkksuoX379jRq1IiBAwfSp08f3nvvPfr378+gQYOyZEjHDz/84N9funQpX375JR988EGq53bv3p3+/funaGvSpAklSpRI0ZaQkMCwYcP4+uuvKVOmDNdcc02qz3f8+HFKlSp1Vvvff/9NsWLFUn3M+++/zyOPPELBggXPOrZhwwa++OILTpw4wYgRI9i+fTs7duyge/fugPvD7JlnnuGpp56iW7duDBs2jGeffZaAgAD279/P448/zpAhQ4iKivL/0RQTE8O2bdtYsGAB3bt3Z9u2bQAUKlSI1q1bs3nzZkJCQoiLi6NRo0bMmTOHvn37Ehsby1VXXZXmaxcRkRxq82YXnCdNgt9+g4AAuOMOePFFuPtuSOX3Wl6Xe4P0OXqOvda2bVuqVKnCoEGD+O6770hISKBr167069eP8PBwAGrVqsXUqVPJly8fAB999BHBwcF06NAhxXNNmDCBxx57zH9/yJAhtGnThqJFi/LSSy8xefLks4LZnDlzaNWqFQEBAZQqVYonnniCSpUqUa5cOQB+/fVXGjRoAMCiRYv8wy3y5ctHmTJl/ENDFixYQFRUFFFRUWzZsoVy5crRp08fPvroI+rUqeN/LY8//jg9e/ZMUcNbb73FyJEj+f333zPnm3oe27dvJzQ0NN3nnzp1in379qWYD3nWrFm89dZb3HvvvXz77bdpDi8BiIqKombNmina4uPjadu2LSNGjDgrhK5YsYKPP/6YzZs3n/Vcx48fJzY2lubNm7N7927i4+MpU6YMhw4dYuzYsVx55ZU0adKEoUOHMnjwYLZv3+4f3nLNNddQuXJlrrvuOipWrEjFihUJCwtj8uTJvPDCC1hrWb58OcuXL6dQoULMmTMHcOOlmzRpQnR0NF26dKFw4cJERkaycOFCSpUq5X9/iIhIDrdzZ9KwjTVrwBi45Rb44AO45x4ICfG6wmwt9wbpbOLRRx+lWLFi/P3334D7+P6DDz5g+fLlXHfddQQGBgJQv359Zs2axVdffcWrr75K1apV+eWXX/xDQaKiosifPz9jxowBXGCuW7cuDzzwABEREaxcuZLp06ezefNmunbtys6dO3nwwQdp06YNU6ZM8Y8vBjde+siRI/77t912W4qaE1el27VrF4UKFaJ06dL+x0VFRVG2bFlCQkKYM2cONWrU4KmnnuKhhx6ibdu2BAUFnfU9ePLJJ7n99tsB90fEqlWrqFChAkWKFOH111/PlO/z+UyYMIHBgweneqx58+YpLgYFGDNmzFm95pdffjmzZ8+mZMmS7N+//5xf7/vvv+ell17yf59jY2Pp0aMH7dq1OytEr1q1iueff54HHniAtm3b8tlnn1GyZEkAfvzxR0JDQ6lZsyYhISEkJCQwZcoUGjRowDXXXMOrr77K1KlT+e6771izZg3dunUjLi6OJUuWYIzhlltu8f97lilTBmstH374IeXKlaN9+/Z07drVX8fjjz/u3//9998ZNGgQJ06cYN68ecTGxjJx4kR/b3jiGGsREcmBoqLg669d7/Py5a6tfn0YNgz+9S/QsL10U5C+iB566CFeeOEFihcvzqpVqwB3cVflypV57rnnaNasGS+++CLgxukuWLCAVatW+ccD165dmwULFgBp90gnioqK4r///S+tWrWib9++nDp1ihYtWnDjjTeycuVKbrnlFv+5zZs355ZbbuHWW289K0QDhISEsGrVKoYMGULv3r0BFwSffvppOnXq5J8ruF+/ftSvX59JkyYRFxeX5kIce/fupXHjxv46CxQoQIjvL9zOnTv7z5s9ezYvvfTSWY/funXrWW0zZ84kLCwsRdvOnTt58sknU7QlJCTwf//3f4SGhqa4gC+5gIAAAgKSJrCZM2cOY8eOZfHixSnOq1atWqqPP9OoUaO45ZZbKFmyJEeOHGH//v3ccccd3HvvvTzxxBP+8+Lj4xk9ejTjxo1j+vTpVKhQgW+//ZZGjRoxY8YMKleuTFhYGI888gihoaH+oR0APXr04Msvv+T999+n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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_35_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsUAAAEFCAYAAAALy5oxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZzNZf/H8dc1dtmXsc+MUknIMmiTGUuiLMktUrJEWkmi5e53a6GkxS2lRLRoUbKVpTCD6s7aRLJFyIQQYzfDXL8/rjlzzmzWmTkzc97Px+M8zpzv+Z5zruEY77nO5/pcxlqLiIiIiEggC/L3AERERERE/E2hWEREREQCnkKxiIiIiAQ8hWIRERERCXgKxSIiIiIS8PL7ewAA5cqVs2FhYf4ehoiIiIjkcatWrdpnrS2f+niOCMVhYWGsXLnS38MQERERkTzOGLM9veN+LZ8wxrQzxoyPi4vz5zBEREREJMD5NRRba2dba/uVLFnSn8MQERERkQCnhXYiIiIiEvByRE1xehISEti5cycnTpzw91BEAlLhwoWpWrUqBQoU8PdQREREslyODcU7d+6kePHihIWFYYzx93BEAoq1lv3797Nz506qV6/u7+GIiIhkuRy70O7EiROULVtWgVjED4wxlC1bVp/UiIgEgldegaiolMeiotzxAJKjF9opEIv4j/79iYgEiEaNoEsXbzCOinK3GzXy77iyWY4tnwh01lqFEhERkUD1yisulEZGeo9FRcGKFTBkyPk/X2IiHD0Khw/DoUPu2vfSvTu0awe33w7z5sHUqSlfOwDkje4TWTztf+TIEQD+/e9/J28ycssttyTfP2PGDGrWrElERARXXnkldevWJSIigho1ahAdHZ3m+U6dOsXNN99MmzZtOHnyZLqveccdd7B3797k5x87duw5jTUhIYEdO3bw559/ns+3mOzVV1/l+++/B2DDhg18+umnvPDCC7z22mtYawHo0KEDwcHB3HDDDVSpUoXx48cnP6Zjx44X9LrnKyYmhrvvvvus5w0bNowvv/zynJ93+fLlzJkzJ8P7jx8/zooVK875+RITE896zrBhw4iJiWHAgAEp3g8//fQTH3/8cfLtzp07n/W5brvttuSvo6Oj+fnnn5Nvjx49mgkTJjBr1izeeOMNTp8+Tc+ePc/xOxERkWzlmb397jvYvh0mToROndx9X3wB778P//0vvPgiDB0KDzwAd98NHTpA8+bu8TVrQuXKULw45MsHJUpAlSpw1VXQuDG0aAEdO8I997jnOnoUPv7YPVeABWLIKzPFnjeO57caz7T/1KmZ8vS33XZbuuHW16233kqrVq2YP38+5cqVo2HDhsyYMSPdcwcPHsyAAQMoWbIkd955Jx9++CElSpRIvj8uLo6jR49SvnyaHQiTJSQk8Nprr7Fz504OHDhA4cKF+f3331mzZg0tWrSge/fuVKtWLfn8o0ePMmbMGFasWMGBAwcIDg6md+/etG7dGnBh8PbbbyckJITJkydTqFAh6tSpQ/fu3WnXrh3FihVLfq6ZM2fStWtXxo4dy7Bhw+jXrx8dO3bkxhtvTDHGVatWcf/996c7/qVLl1KkSBEANm3axF133ZXueR999BFXXXVVhn8OmWnLli306dOHmTNnprnviy++4MiRI0RGRvLcc8/x9ddfpznn0KFDtGjRAmMMxhiCgoLYtm0bc+bMoX79+snndejQgf379yff/ueff/jss8+oWLEirVu3ZvTo0dStW5fExESKFi3KwoULeeGFF1i3bh0NGzakW7duDB48OPnxMTExDBw4EIC1a9cSERFBwYIFKVGiBJ988knyeXFxcZw6dYq///6bunXrsnnzZvbu3Zv8vdSvX58qVapc/B+kiIicH2vh779h40bYtMldb9wIhQvDzTenPHfo0LSPL1TIBd8SJdx18eJQvjxcemnKY55L6mMlSsAvv0D//u4ybpzLUwEWjHNHKB44EGJiznxO5crQujVUqgS7drnfgp57zl3SU68ejB59xqecO3cur732Gr/88gstW7Zky5YtfPfddxQvXpyYmBhatmzJ448/DkCBAgUoXLgw+fPnT/G1rxMnTjBo0CCuv/56br31VsCVSbRp04Z///vftGnTBoApU6YQERFB165d2b17N+vXr+fEiRPJM55vv/02tWrVolGjRnTr1o2QkBBmzpzJ3LlzmTlzJgcOHGDJkiXJr3vgwAHuvPNOnnjiCWrVqsWmTZt46KGHGDx4MJs2beKRRx6hXr16PP3001StWpWlS5fSq1cvRo0aRZUqVTh48CAHDx6kePHibNmyhTFjxrBs2TIeeeQRYmJiGJreP1CgYcOG6W7fHRERwenTp5NvHzt2jNq1azN58uQU5/Xs2ZOjR48m377++us5duwY4GZs9+7dS7169QCoXLly8gzv119/Tf/+/alatSoA8+bN49VXX2XHjh3MmTMn+TG+Vq9eTY8ePfj888+59NJL09x/8OBBEhIS0v0+PUqUKJFiFvnYsWM0adKEWrVqpTjv9OnT/Oc//2Hjxo0AVKxYke+//57LL7+c6667jnr16pGQkMDMmTO5/vrrqVixIrNmzaJ///4MGjSI6OhoDh48SKlSpYiLi6NUqVLJf3Z9+vThySef5LnnnuPZZ59lzZo1VKtWjaVLlxIVFcXPP/9MSEgI3377LS1btqRcuXIsWrSI1atX89ZbbykUi4hkpePHYfNmb+j1DcC+TQcKFYLLL4cmTSA0FH74Ae64A/r2TT/YXmzrzKgoF4Y9k4vNm6ecbAwQuSMUn4vSpV0g3rEDQkLc7YvUpk0b2rRpQ0REBAsWLODf//43HTt2JDw8nFtuuYV58+YBrrxhxowZ/PTTT+zatYtChQoxZ84cdu7cmfyR96pVqxg2bBgNGzZk8uTJDB8+nPz581OhQgW6du3KzJkziY+Pp1mzZrz44osMGjSIzz77jEOHDnHddddx8uRJxowZQ926dZPH16JFCwD27dvHW2+9xfz58zl48CBDhw6levXq7NmzhwoVKjBkyBCef/55rr32WkaMGME111xD0aJFefPNN6lbty79+/fnp59+4sCBA8ybN48qVaowffp0jh8/zvTp01m+fDmVK1emS5cuREZG8vLLL/P444/z3//+l2HDhjFy5MhsKZv48ccfk79eunQpn376KW+//Xa65953330MGzYsxbFWrVqRelFnYmIib7zxBl988QXlypXj6quvTvf5jh49SpkyZdIcP3z4MMWLF0/3MW+++SZ9+/alUKFCae5bv349n3zyCceOHWPMmDFs3bqVP/74g/vuuw9wv2Q99thjDBgwgD59+vDGG28waNAggoKC2L17Nw8++CCjRo0iNjY2+RegEydOsGXLFhYsWMB9993Hli1bAChSpAjt27dn06ZNBAcHk5CQQGRkJHPnzmXo0KHEx8dzxRVXZPi9i4iIj7PV+iYmws6d3rDrG4B37HCzwh5Vq8KVV7p63iuvdJcrrnA5Jl8+7yffzz7rZm8fegiuvz7zv6cVK1IG4MhId3vFCoXi7GKMaQe0q1GjxplPPMuMLpD2jfOf/2TbX2THjh0JCwtj5MiRfPvttyQmJtKrVy+efPJJIiIiAKhbty4zZswgX758ALzzzjuUKlWKrl27pniujz/+mAceeCD59qhRo+jQoQPFihXj6aefZtq0aWlC1ty5c2nXrh1BQUGUKVOGhx56iKpVq1KhQgUA1q1bx7XXXgvAokWLkksa8uXLR7ly5ZLLLxYsWEBsbCyxsbFs3ryZChUq8Pjjj/POO+9Qr1695O/lwQcfpH///inG8OKLLzJ27Fj++uuvzPlDPYutW7cSEhJyzuefPHmSXbt2pei5+8033/Diiy/SuXNnvvrqqwxLOABiY2OpXbt2imOnTp2iY8eOjBkzJk2gXL58Oe+++y6bNm1K81xHjx4lPj6etm3bsmPHDk6dOkW5cuXYv38/EydO5PLLL6dVq1a89tprvPLKK2zdujW5hOTqq6+mWrVqNGjQgCpVqlClShXCw8OZNm0aQ4YMwVrLsmXLWLZsGUWKFGHu3LmAqy9u1aoVBw4coGfPnhQtWpSYmBgWLlxImTJlkt8fIiJyFp6Szffec/W506e7etxGjWDKFDcTfPy49/zixV3YvfFGF3g94ffyy+GSSzJ+Hd9SUE8pQ1bN3qa3cE/lE9nLWjsbmB0eHt73op4oG984999/P8WLF+fw4cOA+4j87bffZtmyZTRo0ICCBQsC0KRJE7755humTp3Ks88+S/Xq1fnll1+Syy1iY2PJnz8/EyZMAFz4rV+/PnfffTfR0dGsXLmSWbNmsWnTJnr16sW2bdu455576NChA9OnT0+uxwVXX+zb67lZs2YpxuzZkWz79u0UKVKEsmXLJj8uNjaW8uXLExwczNy5c6lVqxYDBgzg3nvvpWPHjhQuXDjNn8HDDz9M8+bNAfcLwapVq6hUqRKXXHIJz2VUrpLJPv74Y17JYCFl27ZtUyyEBJgwYUKa2ezLLruMOXPmULp0aXbv3n3G14uKiuLpp59O/nOOj4+nX79+dOrUKU0gXrVqFU888QR33303HTt25KOPPqJ00icX//vf/wgJCaF27doEBweTmJjI9OnTufbaa7n66qt59tlnmTFjBt9++y0///wzffr0ISEhgSVLlmCMoWnTpsl/n+XKlcNay7hx46hQoQJdunShV69eyeN48MEHk7/+66+/GDlyJMeOHWP+/PnEx8fz2WefJc9Se2qSRURypYvt1BAfD/v2wd693mvfS+pj+/e7Lg0eQUEQG+vCbsuW3hnfK6+EihXhQrpJafY22+WN8olseuPce++9DBkyhBIlSrBq1SrALWyqVq0agwcPpk2bNjz11FOAq2tdsGABq1atSq6fveaaa1iwYAGQ8UyxR2xsLB9++CHt2rVj6NChnDx5kltvvZXrrruOlStX0rRp0+Rz27ZtS9OmTbnpppvSBGKA4OBgVq1axahRo3j00UcBF+oGDhxI9+7dk1u/PfnkkzRp0oTPP/+chISEDDdu2LlzJy1btkweZ4ECBQgODgagR48eyefNmTOHp59+Os3jf//99zTHvv76a8LDw1Mc27ZtGw8//HCKY4mJifzf//0fISEhKRav+QoKCiIoyNtYZe7cuUycOJHFixenOK9mzZrpPj61t956i6ZNm1K6dGni4uLYvXs3LVq0oHPnzjz00EPJ5506dYrx48czadIkZs2aRaVKlfjqq6+IjIxk9uzZVKtWjfDwcPr27UtISEhy+QRAv379+PTTT3nzzTcpUaIEN998MzfffDNxcXHcdddd9O7dm/Lly7N582bGjBmTXPt78uRJWrduTXR0NJMmTeLXX39NHo9vPfZdd93Fd999R7t27Vi9ejVdu3aldu3aNG7cmEmTJhEfH59umYeISK7gu+A+IgLmznUdFV58EebMyTjceo6ls4kY4MJs2bJu0Vr58m69UtOm7usVK2D+fNepYfRoSJoUyzSavc12eSMUZ/EbJyYmJrl0ILXo6GiaNGnCunXrKFWqVJr7GzZseEGvWaVKFX788UeKFStGo0aN2LlzZ5qA6FGxYkWmT5/OM888Q8+ePbn77rt54YUXku9//fXX6devH61atUpeHLho0aLkxXcAn332GYULF+bGG28kPDycAwcOpOhe4atHjx7J4fedd96hXLly6bYLa9u2LW3btk1z/PXXX0+e7QQoU6YMI0aMoF+/finOGz9+fPKstseUKVM4cuQI48aNS3dsvn777TdGjhzJn3/+yfz58zOs/T2TNWvWMH/+fKYmdTIpXbo05cqVY8SIETRo0CDFuT169CAsLIwlS5Ykz+R36tSJoKAgxo4dy8iRIylQoACvv/46I0aMYOHChcybN48vvviCNWvWcPDgQR599FHef/99KlWqxKRJk/jggw94+eWX2bRpE6VKlaJPnz707t2b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+DDMneuC8DffuJ3lSpaE9u1dEL755rSzwb60qYaIiEhg82soNsa0A9rVqFHDn8OQXOqff2D2bLer3Lffurrg4GC46y4XhCMj1T9YREREzo1fa4qttbOttf1K+n6WLZIkvQ01du1yGxC2auUCcM+erotE//5u6+W//oJ334XWrRWIRURE5NypfEJypNQbamzfDj16uA4SAJdfDk88AXfcAQ0bgjH+G6uIiIjkfgrFkiM980zKHebABeKSJeGHH6BWLQVhERERyTwKxZIj7diR/vFDh+Dqq7N3LCIiIpL3qU+x5ChHjriewhntPq4NNURERCQrKBRLjrF4MdStC++843oKFymS8n5tqCEiIiJZRaFY/O7YMRg4ECIiXKeJJUtgzhx47z0IDXW1w6GhMH68egmLiIhI1lBNsfjVDz+4tmq//w6PPAIvvQSXXOLu04YaIiIikl00Uyx+cfw4DB4MTZvCqVMQFQVjxngDsYiIiEh20kyxZLtly9zs8IYNbtONV16B4sX9PSoREREJZJoplmxz8iQ8/TRcfz0cPeq2Zh43ToFYRERE/E8zxZItVq2Ce++FdeugTx947TW3EYeIiIhITqCZYslS8fHwn/9AkyZw4IDrKjFhggKxiIiI5CyaKZYs88svrnY4JgZ69IDRo6F0aX+PSkRERCQtzRRLpktIgBdfhEaNYNcumDEDPvhAgVhERERyLs0US6Zat87VDq9aBV27wtixULasv0clIiIicmaZPlNsjClujJlkjHnHGHNvZj+/5EynTsHIkdCgAWzfDl98AZ9+qkAsIiIiuUNWlE/UAd6w1vYHWmXB80sOs3Ej3HgjPPkktGvnZos7d/b3qERERETO3TmFYmNMZ2PMVGPMjlTHuxhjlhtjVhljXgOw1v5orV1jjKkHHM+CMYufTZkCYWEQFARlykDt2rB5s5sZ/uILCA729whFREREzs+5zhTvBR4ECnoOGGNCgRdws8HhQFVjzB1J910PDAAGZvSExph+xpiVxpiVe/fuvcDhS3abMgX69XMlEta6NmvWwgsvuBpiY/w9QhEREZHzd06h2Fq72Fq7L9XhW4Bp1to4a60F3gU6GmOCge5AH2vt0TM853hrbbi1Nrx8+fIXOn7JZs88A8eOpTx2+rTbqllEREQkt7qYmuKywG6f27uAYKAXUAkYb4wZdxHPLznQjh3n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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_35_1.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# 感染者数と重傷者数\n", - "y= [282,314,None,581,846,1320,2014,2798,4593, 6065,7818,9826,11953,14557,17391,20630,\n", - " 24554,28276,31481,34886, 37558.40554,43103,45171] #2019年2月13日までのデータ\n", - "\n", - "y_sev=[51,51,None,96,177,237,324,461,976,1239,\n", - " 1370,1527,1795,2110,2296,2788,3219,3859,4821,6101,6188,6484,7333,8304]\n", - "\n", - "plt.figure(figsize=(12,4)) \n", - "plt.xlabel(\"2019年1月20日以降の経過日数\")\n", - "plt.plot(range(len(y)),y, label=\"世界全体での新型コロナウイルス感染者数\",color=\"red\")\n", - "#x軸が0から始まる整数値(0,1,...)で良い場合は、x軸のデータを指定しなくてもplotしてくれる\n", - "plt.plot(y_sev, label=\"重傷者数\",color=\"blue\") \n", - "plt.legend() ##凡例(線や点等の説明)を描画する\n", - "plt.show()\n", - "plt.close() \n", - "\n", - "plt.figure(figsize=(12,4)) \n", - "plt.xlabel(\"1月20日以降の経過日数\")\n", - "plt.yscale(\"log\") ## y軸を対数スケールに変換\n", - "plt.plot(range(len(y)), y, marker=\"x\",label=\"世界全体での新型コロナウイルス感染者数\",color=\"red\") ## markerの値を指定すれば、線だけじゃなく点を描くことも出来る。\n", - "plt.plot(y_sev, label=\"重傷者数\",marker=\"o\",color=\"blue\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5Hbzfjw0pqhu" - }, - "source": [ - "下のグラフはy軸の対数スケールをとってみました。 \n", - "*データが無い日の値は0ではなくNone(値なし)にすることに注意しましょう*" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AP4eGtKElufB" - }, - "source": [ - "**注意** \n", - "当然ですが、x軸とy軸方向でデータの数が合っていないとエラーを起こします。 \n", - "\n", - "「一緒にしているつもりなのにエラーが出る...」と言う場合は \n", - "len()関数などを実行してリストの長さ/要素の数をチェックしてみましょう。 \n", - "カンマがピリオドになるなどして、意図しないリストになっているかもしれません。 \n", - "\n", - "例: \n", - "(意図したリスト) [2,3,5] ←長さ3のリスト \n", - "(間違えて作ったリスト) [2.3, 5] ←カンマがピリオドになっていて、長さ2のリストになっている \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EiGt8E4VoWEI" - }, - "source": [ - "\n", - "\n", - "**練習**: \n", - "「matplotlib marker」でWeb検索してみて、どんな形状のmarkerが使えるか調べてみましょう。 \n", - "その中から\"x\"(バツ印)以外の好きなシンボルを選んで上のグラフの二番目をプロットしてみましょう。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Oy34IWVsCLZv" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H15gDDnkmz5p" - }, - "source": [ - "### scatter: 散布図の描画\n", - "\n", - "$x$と$y$、2つの量があって、どちらにも興味がある、 \n", - "あるいは両者の間の相関に興味がある場合、散布図を描くと、見通しやすくなることが多いです。\n", - "\n", - "以下では、2017年の宇都宮の平均気温とアイスクリームの消費量の相関を見てみましょう。 \n", - "気温・アイスクリームの消費量ともに、1月から12月に順番にリストに入れていくことにします。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 304 - }, - "id": "ZpNvApJ-nVKv", - "outputId": "377c58ab-36c5-4194-e701-9be33e08a4a0" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_41_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]\n", - "\n", - "plt.figure(figsize=(4,4)) \n", - "plt.title(\"宇都宮市\") ## 図にはタイトルをつけることができます\n", - "plt.xlabel(\"平均気温 (℃)\") #軸ラベルの指定\n", - "plt.ylabel(\"世帯あたりのアイスクリーム・シャーベットの消費金額 (円)\")\n", - "plt.scatter(x,y)\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B-535rGQpYsg" - }, - "source": [ - "相関係数などの情報を含んだもう少しかっこいい図を作ってみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 348 - }, - "id": "bOGBYPK7pgJZ", - "outputId": "05eba7a2-d3a0-4e48-afa4-416483f3b606" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_43_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]\n", - "\n", - "r = np.corrcoef(x,y) ## x,yの配列間の相関行列を計算します \n", - "corrcoef=r[0,1] ## 行列の非対角要素が相関係数です。 r[0,1], 0行目1列の値\n", - "\n", - "def seasoncolor(month): #季節ごとに適当に色を塗ってみましょう\n", - " if month <= 2 or month ==12:\n", - " return \"blue\"\n", - " elif 3 <= month <=5:\n", - " return \"green\"\n", - " elif 6 <= month <=8:\n", - " return \"red\"\n", - " elif 9<= month <=11:\n", - " return \"orange\"\n", - " else:\n", - " print(\"month\",month, \" is not supported\")\n", - "\n", - "fig = plt.figure(figsize=(5,5))\n", - "ax = fig.add_subplot(111) ## 注2\n", - "ax.set_facecolor(\"#D3DEF1\")\n", - "ax.set_title(\"宇都宮市\")\n", - "ax.set_xlabel(\"平均気温 (℃)\")\n", - "ax.set_ylabel(\"世帯あたりのアイスクリーム・シャーベットの消費金額 (円)\")\n", - "ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - "for i in range(len(x)):\n", - " tcol=seasoncolor(i+1)\n", - " ax.scatter(x[i],y[i],marker=\"o\",s=10,color=tcol,zorder=20000,alpha=0.7)\n", - " ax.text(x[i],y[i],str(i+1)+\"月\",color=\"k\",fontsize=8)\n", - "ax.text(0.1,0.9, \"r=\"+str(\"%5.2f\" % corrcoef), transform=ax.transAxes,fontsize=12)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WTDhlmHY7r2p" - }, - "source": [ - "### $\\clubsuit$ ```ax (matplotlib.axes) ```" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qQHLqX9ntOur" - }, - "source": [ - "\n", - "上では、axという見慣れないものが導入されました。\n", - "\n", - "キャンバスの上に小さな作業領域```axes```を指定するための```add_subplot```や```add_axes```といった関数があります。\n", - "```ax```はこれらの関数で生成される作業領域に慣例的に用いる変数です。\n", - "\n", - "たとえばキャンバスを四分割して、似たようなグラフを4つ同時に描いたりするのに便利です。\n", - "\n", - "```axes```を使いこなすのは少々テクニカルな点も多いので、よくわからない部分はとりあえず飛ばし読みで構いません。 \n", - "慣れてくると、その便利さに気がつくはずです。 \n", - "細かい図の書き方は追々、一緒に勉強していきましょう。\n", - "\n", - "axに関しては、日本語で書かれた以下の記事もおすすめです \n", - "https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 319 - }, - "id": "5btbwRL4YCJq", - "outputId": "252c4ae4-b687-4c45-ff80-62e92db6ede9" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_46_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "data = [152, 170, 82,85,79,92,88]\n", - "label = [\"国語\",\"英語\", \"数IA\", \"数IIB\", \"化学\", \"物理\", \"世界史\"]\n", - "\n", - "fig = plt.figure(figsize=(10,5))\n", - "axTL= fig.add_subplot(2,2,1) #TL: Top Leftのつもり\n", - "axTR = fig.add_subplot(2,2,2) #TR: Top Rightのつもり \n", - "axBL = fig.add_subplot(2,2,3) #BL: Bottom Leftのつもり\n", - "axBR = fig.add_subplot(2,2,4) #BR: Bottom rightのつもり\n", - "axTL.plot(y_sev)\n", - "axTR.scatter(x,y)\n", - "axBL.bar(label,data,align='center',width=0.5,color=\"red\") \n", - "axBR.text(0.5,0.4,\"右下だよ\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "161cPa6nrVJG" - }, - "source": [ - "### Google Driveのマウントと、Google Colab.上で作ったグラフの保存\n", - "\n", - "プログラムを実行して絵を描けるようになったら、次にそれを保存して、レポートに貼り付けたり、 \n", - "誰かに送ったりする必要が出てくると思います。 \n", - "\n", - "Google Colab.では、同じGoogleのサービスであるGoogle drive上にファイルを保存したり(無料版で15GBまで) \n", - "保存したファイルを他人と共有することができます。\n", - "\n", - "皆さんのアカウントのGoogle DriveにあるファイルにGoogle Colab.からアクセスするためにはマウントという作業が必要です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Cr7sAeT37OSo" - }, - "outputs": [], - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive') # ←のマウントする際の名前は好きに決められる。drive.mount('gdrive')とかでもOK" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "fKJKV7iQj_kt" - }, - "source": [ - "上のコードを実行し(複数アカウントを所持している方はアカウントの選択をして)\n", - "ポップアップ等の指示に従い操作を行います。成功すると、Mounted at ほにゃららというメッセージが出ます。\n", - "\n", - "上のコードは「google driveをdriveという名前でマウントする」という操作を表しています。 \n", - "マウントできていれば、以下のコードを実行すると、 \n", - "皆さんのアカウントのマイドライブ直下のファイル一覧が表示されます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "6CyxsW43aDh0" - }, - "outputs": [], - "source": [ - "!ls ./drive/MyDrive" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Mem3umDTc21A" - }, - "source": [ - "Google Colab.からは、!マークをつけることでLinuxやMac(Unix)同様のコマンドが使えます。 \n", - "上のlsというコマンドは(List Segmentsの略で)ファイルやディレクトリの情報を表示するコマンドです。\n", - "\n", - "半角のスラッシュ```/```はディレクトリ階層を意味していて、windowsで言うところの¥に相当します。\n", - "\n", - "コンピュータでディレクトリやパスを指定するときは通常このような**パス**と呼ばれるものを指定して扱います。 \n", - "※パスについてはファイル操作のノートに詳しい記述があります。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tWWrxd0N_z4k" - }, - "source": [ - "次に、GoogleDriveに、図を保存する用のフォルダを作っておきましょう. \n", - "\n", - "mkdir(make directoryの略)コマンドで、マイドライブ直下に```Colab_pic```というディレクトリを作ることにします." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ou5uXl-U_zV9" - }, - "outputs": [], - "source": [ - "!mkdir './drive/MyDrive/Colab_pic' " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "t3G421FJjMMG" - }, - "source": [ - "上のコードを実行後にエラーが出ていなければGoogle driveを開くとColab_picというディレクトリが作成されているかと思います。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dlHHaqPA_8we" - }, - "source": [ - "一度フォルダを作ってしまうと、2回目以降は上のコードを実行しても「既にフォルダありますよ!!」というメッセージがでますので \n", - "ノートを開くたびに実行する必要はありません。 \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "enGmvm6gAVoE" - }, - "source": [ - "これで準備ができました。試しに以下のコードを実行して図を保存してみましょう。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "PHW-hUepA0dD" - }, - "outputs": [], - "source": [ - "### 先程の図\n", - "fig = plt.figure(figsize=(6,6))\n", - "ax = fig.add_subplot(1,1,1) \n", - "ax.set_facecolor(\"#D3DEF1\")\n", - "ax.set_title(\"宇都宮市\")\n", - "ax.set_xlabel(\"平均気温 (℃)\")\n", - "ax.set_ylabel(\"世帯あたりのアイスクリム・シャーベットの消費金額 (円)\")\n", - "ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - "for i in range(len(x)):\n", - " tcol=seasoncolor(i+1)\n", - " ax.scatter(x[i],y[i],marker=\"o\",s=10,color=tcol,zorder=20000,alpha=0.7)\n", - " ax.text(x[i],y[i],str(i+1)+\"月\",color=\"k\",fontsize=8)\n", - "ax.text(0.1,0.9, \"r=\"+str(\"%5.2f\" % corrcoef), transform=ax.transAxes,fontsize=12)\n", - "plt.savefig(\"./drive/My Drive/Colab_pic/scatter_Utsunomiya_ice.pdf\") ##### ここがさっきと違います! \n", - "#plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LdmUlNpQjwEL" - }, - "source": [ - "Google drive上の指定したフォルダに、ファイルが作られたでしょうか? \n", - "matplotlibはファイル名を変えるだけで指定した拡張子で描画してくれるので色々試してみましょう \n", - "(.jpg,.pdf,.eps,.pngなど)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uICk2RZ5uFwD" - }, - "source": [ - "**余談** \n", - "プレゼンのスライドに載せる画像は可能な限り、ラスタ形式ではなくベクタ形式(pdfやepsなど)がおすすめです。 \n", - "(それか、高解像度でjpegやpngを作ってスライドで使って、誰かにスライドを渡すときは軽量化する) \n", - "プレゼンで図が滲んでいるスライドを見せていると「あぁ配慮が足りないんだな」と思われて損をしてしまうかもしれません。 \n", - "論文でラスタ画像を使う場合は「トンデモ論文だと思われて誰にも読まれない危険性」を理解して使いましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WHPD2iPs0JlX" - }, - "source": [ - "**練習**\n", - "これまでの(棒グラフ,円グラフ,1次元図,散布図)のグラフを描画したコード部分で、 \n", - "データを自由に足してみながら、plt.show()を書き換えてファイルに出力してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "IOyDWeNzUzou" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FS7A2eX6daYK" - }, - "source": [ - "### gifアニメーションの作成" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "u5BC24cadfQH" - }, - "source": [ - "「なんだこの程度のグラフならExcelでも簡単にできるじゃん...」と思った皆さんのために、もう少し凝ったことをやってみましょう。 \n", - "gifアニメーション(パラパラ漫画)を作ってみます。 \n", - "\n", - "以下のリンクに、x軸をGDP,y軸を24歳から35歳の平均就学年数の女性/男性比(%)としたグラフを画像ファイル(png)にしたものを公開しました。 \n", - "(もともとのデータはFACTFULNESSから来ているのでライセンスフリーです) \n", - "https://drive.google.com/drive/folders/1kD0Sk8EL-JSDJv-V8Bim3UytNSlofc6s?usp=sharing\n", - "\n", - "1. まずこれをダウンロードしてください。\n", - "2. ZIP形式で保存されるので、それを解凍してください\n", - "3. 解凍したフォルダを自身のGoogle Driveの好きな場所にアップロードしてください \n", - "※以下のコードをそのまま使いたければ```AdDS```というディレクトリを作ってその下にアップロード\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qH7GKz_yfRhO" - }, - "source": [ - "たとえば私のようにGoogle Driveのマイドライブ直下のAdDSというフォルダの下に \n", - "GDPvsWomenInSchoolというフォルダを置いたとします\n", - "\n", - "参考スクリーンショット(ディレクトリ名が古い(AdDS2021)ので注意): \n", - "![](https://drive.google.com/uc?export=view&id=12v-XLgCHTpOehkJ2pmJIZ7zcaGIH4OZv) \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "C79BzM_hhBT3" - }, - "source": [ - "年代ごとに別々になったたくさんのグラフを、1つのパラパラ漫画にまとめてみましょう\n", - "\n", - "先程のグラフがgoogle driveに保存されているかどうかは、以下のコマンドで確認できます(アップロードして直後はファイルが見つからないことがあります)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "uFfxkEk-hGsO" - }, - "outputs": [], - "source": [ - "!ls ./drive/MyDrive/AdDS/GDPvsWomenInSchool/*.png" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8k2AXhuTfqJF" - }, - "source": [ - "AdDS/GDPvsWomenInSchool/の部分は皆さんのフォルダ名に適宜変更してください.\n", - "\n", - "pngファイルをまとめてgifにするコードは以下のとおりです。(処理にしばし時間がかかります)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Uqdk5CaBdgJi" - }, - "outputs": [], - "source": [ - "from PIL import Image\n", - "import glob\n", - "\n", - "files = sorted(glob.glob('./drive/My Drive/AdDS/GDPvsWomenInSchool/GDPvsWomen*.png')) ##まとめたいpngをワイルドカードで指定\n", - "images = list(map(lambda file: Image.open(file), files))\n", - "\n", - "oupf = './drive/My Drive/Colab_pic/GDPvsWomen.gif' ##出力名と保存場所を指定する\n", - "images[0].save(oupf, save_all=True, append_images=images[1:], duration=400, loop=0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eiu1iJjEokt6" - }, - "source": [ - "エラーが出なければおそらく変数```oupf```で指定した場所に、gifファイルが生成されていると思います。\n", - "\n", - "\n", - "私の作成例([ファイルへのリンク](https://drive.google.com/file/d/1Y4EkRP3U-aUcziBOoHyxuBZWbT7ZGL-k/view?usp=sharing))は以下のとおりです \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7rVhvZASjDPK" - }, - "source": [ - "### $\\clubsuit$おまけ\n", - "\n", - "その他のグラフ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "9nJ-tBtxjFJ2" - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "from mpl_toolkits.mplot3d import axes3d\n", - "from mpl_toolkits.mplot3d.axes3d import get_test_data\n", - "import os\n", - "\n", - "X, Y, Z = get_test_data()\n", - "fig = plt.figure(figsize=(10,5))\n", - "ax = fig.gca(projection='3d')\n", - "ax.set_xlabel(\"x\")\n", - "ax.set_ylabel(\"y\")\n", - "ax.set_zlabel(\"target function\")\n", - "ax.view_init(elev=45)#上から見た角度を調整できる\n", - "ax.plot_surface(X, Y, Z,cmap=plt.cm.viridis)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c34ap-zmHd5s" - }, - "source": [ - "二次元ヒストグラム" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "n00yqPx9Hf1E" - }, - "outputs": [], - "source": [ - "import matplotlib.cm as cm\n", - "import numpy as np\n", - "\n", - "mu1 = [ 3.0, 2.0]\n", - "cov1 = [ [1.0, 0.7],[0.7,1.0]]\n", - "numS = 50000\n", - "\n", - "sample1 = np.random.multivariate_normal(mu1,cov1,numS)\n", - "x1, y1 = sample1.T\n", - "\n", - "fig = plt.figure(figsize=(6,5))\n", - "ax1 = fig.add_subplot(111)\n", - "H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet)\n", - "ax1.scatter(mu1[0],mu1[1],color=\"k\",marker=\"x\")\n", - "ax1.set_title('sample1')\n", - "ax1.set_xlabel('x'); ax1.set_ylabel('y')\n", - "fig.colorbar(H1[3],ax=ax1)\n", - "plt.show()\n", - "plt.close()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n2vmy-cwzHVi" - }, - "source": [ - "日本地図" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "eFGbkhOQzH27" - }, - "outputs": [], - "source": [ - "!pip install japanmap\n", - "from japanmap import pref_names,pref_code,groups,picture\n", - "import matplotlib.pyplot as plt\n", - "from pylab import rcParams" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "KkH_HRkYMmUw" - }, - "outputs": [], - "source": [ - "plt.figure(figsize=(6,6))\n", - "plt.imshow(picture({'栃木県': 'red', '群馬県': 'blue'}))" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter4_Matplotlib.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib.txt deleted file mode 100644 index 15334e39..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib.txt +++ /dev/null @@ -1,242 +0,0 @@ -import math - -print(math.log(2.0)) #自然対数 -print(math.log10(2.0)) #常用(底が10)対数 -print(math.exp(2.0)) #指数関数 -print(math.pi) #円周率pi (引数なし) -print(math.sin(math.pi)) # sin(pi) - -#先程のmathもnumpyで置き換え可 -import numpy as np #numpyをnpという名前で使う -print(np.log(2.0)) -print(np.log10(2.0)) -print(np.exp(2.0)) -print(np.pi) -print(np.sin(np.pi)) - -import numpy as np - -list_a = [ 1.23, 9341.22, -32.33] -list_a = np.array(list_a) -print(list_a, type(list_a)) - -import matplotlib.pyplot as plt - -from matplotlib import pyplot as plt #でも同じ - -!pip install japanize-matplotlib #!から始めることでLinuxコマンドを使うことができる。 -import japanize_matplotlib -import numpy as np #ついでにコレもインポート - -data = [152, 170, 82, 85, 79, 92, 88] -label = ["国語","英語", "数IA", "数IIB", "化学", "物理", "世界史"] -total = sum(data) -#print("合計得点は", total, "点で、得点率は"+str(total/900)+"%です") -print("合計得点は", total, "点で、得点率は"+str("%6.1f" % (100* total/900))+"%です") - -plt.figure( figsize=(10,2) ) -plt.bar(label,data,align='center',width=0.5,color="red") -plt.xlabel("各科目"); plt.ylabel("Aさんの得点") -plt.show() -plt.close() - - - -#どうしても円グラフが描きたい方へ (下のコードを適当にいじって遊んでみてください) -tlabels = ["Aと答えた人","Bと答えた人","Cと答えた人"] -ratio = [513,142, 249] - -plt.figure(figsize=(4,4)) -plt.pie(ratio,labels=tlabels,counterclock=False, startangle=90,autopct="%.1f%%") -plt.show() -plt.close() -# labels=tlabelsは、 pie()関数の中のlabelsという引数にtlabelsを突っ込むという意味 -# label(ラベル)とは、凡例(legend)のこと。それぞれのオブジェクトが何を指すのか -# counterclockは反時計回りのオプションをFalse(偽)とするのでつまり時計回り(回りくどいな...) -# startangleは円グラフの始点を、x軸から見て何度のところにとるかで、今は90度(つまり12時の方向)と設定. -# autopctは「値を%表記に直せ」というオプションで、 %.1f%%は小数点以下1桁まで出力しなさいという命令. - -tlabels = ["Aと答えた人","Bと答えた人","Cと答えた人"] -ratio = [513,142, 249] - -plt.figure(figsize=(10,3)) -plt.ylim([-1,1]) #plt.ylim(-1,1)でも可 -xs = 0.0 -for i in range(len(tlabels)): - tx = ratio[i] - ty = 0.0 - plt.barh([ty],width=tx,left=xs,label=tlabels[i]+"("+str(ratio[i])+"人, "+str("%4.1f" % (100*ratio[i]/sum(ratio)))+"%)") - xs += ratio[i] -plt.legend() -plt.show() -plt.close() - - - -# 感染者数と重傷者数 -y= [282,314,None,581,846,1320,2014,2798,4593, 6065,7818,9826,11953,14557,17391,20630, - 24554,28276,31481,34886, 37558.40554,43103,45171] #2019年2月13日までのデータ - -y_sev=[51,51,None,96,177,237,324,461,976,1239, - 1370,1527,1795,2110,2296,2788,3219,3859,4821,6101,6188,6484,7333,8304] - -plt.figure(figsize=(12,4)) -plt.xlabel("2019年1月20日以降の経過日数") -plt.plot(range(len(y)),y, label="世界全体での新型コロナウイルス感染者数",color="red") -#x軸が0から始まる整数値(0,1,...)で良い場合は、x軸のデータを指定しなくてもplotしてくれる -plt.plot(y_sev, label="重傷者数",color="blue") -plt.legend() ##凡例(線や点等の説明)を描画する -plt.show() -plt.close() - -plt.figure(figsize=(12,4)) -plt.xlabel("1月20日以降の経過日数") -plt.yscale("log") ## y軸を対数スケールに変換 -plt.plot(range(len(y)), y, marker="x",label="世界全体での新型コロナウイルス感染者数",color="red") ## markerの値を指定すれば、線だけじゃなく点を描くことも出来る。 -plt.plot(y_sev, label="重傷者数",marker="o",color="blue") -plt.legend() -plt.show() -plt.close() - - - -x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8] -y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502] - -plt.figure(figsize=(4,4)) -plt.title("宇都宮市") ## 図にはタイトルをつけることができます -plt.xlabel("平均気温 (℃)") #軸ラベルの指定 -plt.ylabel("世帯あたりのアイスクリーム・シャーベットの消費金額 (円)") -plt.scatter(x,y) -plt.show() -plt.close() - -x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8] -y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502] - -r = np.corrcoef(x,y) ## x,yの配列間の相関行列を計算します -corrcoef=r[0,1] ## 行列の非対角要素が相関係数です。 r[0,1], 0行目1列の値 - -def seasoncolor(month): #季節ごとに適当に色を塗ってみましょう - if month <= 2 or month ==12: - return "blue" - elif 3 <= month <=5: - return "green" - elif 6 <= month <=8: - return "red" - elif 9<= month <=11: - return "orange" - else: - print("month",month, " is not supported") - -fig = plt.figure(figsize=(5,5)) -ax = fig.add_subplot(111) ## 注2 -ax.set_facecolor("#D3DEF1") -ax.set_title("宇都宮市") -ax.set_xlabel("平均気温 (℃)") -ax.set_ylabel("世帯あたりのアイスクリーム・シャーベットの消費金額 (円)") -ax.grid(True,axis="both",color="w", linestyle="dotted", linewidth=0.8) -for i in range(len(x)): - tcol=seasoncolor(i+1) - ax.scatter(x[i],y[i],marker="o",s=10,color=tcol,zorder=20000,alpha=0.7) - ax.text(x[i],y[i],str(i+1)+"月",color="k",fontsize=8) -ax.text(0.1,0.9, "r="+str("%5.2f" % corrcoef), transform=ax.transAxes,fontsize=12) -plt.show() -plt.close() - -data = [152, 170, 82,85,79,92,88] -label = ["国語","英語", "数IA", "数IIB", "化学", "物理", "世界史"] - -fig = plt.figure(figsize=(10,5)) -axTL= fig.add_subplot(2,2,1) #TL: Top Leftのつもり -axTR = fig.add_subplot(2,2,2) #TR: Top Rightのつもり -axBL = fig.add_subplot(2,2,3) #BL: Bottom Leftのつもり -axBR = fig.add_subplot(2,2,4) #BR: Bottom rightのつもり -axTL.plot(y_sev) -axTR.scatter(x,y) -axBL.bar(label,data,align='center',width=0.5,color="red") -axBR.text(0.5,0.4,"右下だよ") -plt.show() -plt.close() - -from google.colab import drive -drive.mount('/content/drive') # ←のマウントする際の名前は好きに決められる。drive.mount('gdrive')とかでもOK - -!ls ./drive/MyDrive - -!mkdir './drive/MyDrive/Colab_pic' - -### 先程の図 -fig = plt.figure(figsize=(6,6)) -ax = fig.add_subplot(1,1,1) -ax.set_facecolor("#D3DEF1") -ax.set_title("宇都宮市") -ax.set_xlabel("平均気温 (℃)") -ax.set_ylabel("世帯あたりのアイスクリム・シャーベットの消費金額 (円)") -ax.grid(True,axis="both",color="w", linestyle="dotted", linewidth=0.8) -for i in range(len(x)): - tcol=seasoncolor(i+1) - ax.scatter(x[i],y[i],marker="o",s=10,color=tcol,zorder=20000,alpha=0.7) - ax.text(x[i],y[i],str(i+1)+"月",color="k",fontsize=8) -ax.text(0.1,0.9, "r="+str("%5.2f" % corrcoef), transform=ax.transAxes,fontsize=12) -plt.savefig("./drive/My Drive/Colab_pic/scatter_Utsunomiya_ice.pdf") ##### ここがさっきと違います! -#plt.show() -plt.close() - - - -!ls ./drive/MyDrive/AdDS/GDPvsWomenInSchool/*.png - -from PIL import Image -import glob - -files = sorted(glob.glob('./drive/My Drive/AdDS/GDPvsWomenInSchool/GDPvsWomen*.png')) ##まとめたいpngをワイルドカードで指定 -images = list(map(lambda file: Image.open(file), files)) - -oupf = './drive/My Drive/Colab_pic/GDPvsWomen.gif' ##出力名と保存場所を指定する -images[0].save(oupf, save_all=True, append_images=images[1:], duration=400, loop=0) - -import matplotlib.pyplot as plt -from mpl_toolkits.mplot3d import axes3d -from mpl_toolkits.mplot3d.axes3d import get_test_data -import os - -X, Y, Z = get_test_data() -fig = plt.figure(figsize=(10,5)) -ax = fig.gca(projection='3d') -ax.set_xlabel("x") -ax.set_ylabel("y") -ax.set_zlabel("target function") -ax.view_init(elev=45)#上から見た角度を調整できる -ax.plot_surface(X, Y, Z,cmap=plt.cm.viridis) -plt.show() -plt.close() - -import matplotlib.cm as cm -import numpy as np - -mu1 = [ 3.0, 2.0] -cov1 = [ [1.0, 0.7],[0.7,1.0]] -numS = 50000 - -sample1 = np.random.multivariate_normal(mu1,cov1,numS) -x1, y1 = sample1.T - -fig = plt.figure(figsize=(6,5)) -ax1 = fig.add_subplot(111) -H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet) -ax1.scatter(mu1[0],mu1[1],color="k",marker="x") -ax1.set_title('sample1') -ax1.set_xlabel('x'); ax1.set_ylabel('y') -fig.colorbar(H1[3],ax=ax1) -plt.show() -plt.close() - - -!pip install japanmap -from japanmap import pref_names,pref_code,groups,picture -import matplotlib.pyplot as plt -from pylab import rcParams - -plt.figure(figsize=(6,6)) -plt.imshow(picture({'栃木県': 'red', '群馬県': 'blue'})) diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_35_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_35_0.png deleted file mode 100644 index 20a06b7d..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_35_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_35_1.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_35_1.png deleted file mode 100644 index 881e9ab2..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_35_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_41_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_41_0.png deleted file mode 100644 index 6777a5e1..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_41_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_43_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_43_0.png deleted file mode 100644 index 0c00da9c..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_43_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_46_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_46_0.png deleted file mode 100644 index ebc664ae..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter4_Matplotlib_46_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability.ipynb deleted file mode 100644 index c9a81658..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability.ipynb +++ /dev/null @@ -1,1732 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 確率と疑似乱数\n", - "\n", - "[この章の目的]\n", - "コンピュータで確率・乱数を扱う概要を学ぶ。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OgC7tgxYLNx4" - }, - "source": [ - "この章では、確率と擬似乱数について扱います。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4rzt6Nw35wtJ" - }, - "outputs": [], - "source": [ - "#ライブラリをインポートしておきましょう\n", - "import random\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8Pc1kC3ELQF3" - }, - "source": [ - "## 疑似乱数について\n", - "\n", - "コンピュータで何かの処理を実現したいときや、自然科学や統計学などで様々なことをシミュレーションしたいとき、[確率的な事象]を考えたくなることがよくあります。 \n", - "\n", - "たとえば人◯ゲームや◯鉄のようなゲームを作るときにもサイコロの出目が必要になりますし、技が急所に当たる確率や色違いのポ◯モンが出現する確率などを設定しなければなりません.\n", - "\n", - "真に理想的なサイコロならば1から6の目が出る確率は等しく1/6ですが、このような\"理想的な\"サイコロは、現実世界でも、コンピュータの上でも実現することはできず、我々人間が乱数をシミュレーションして扱う際には、何らかの確定的な方法で乱数列(**十分ランダムだとみなせる数の集合**)を生成することになります。\n", - "\n", - "真の意味での乱数と区別する意味で、我々が普段ゲームなどで扱う乱数は擬似乱数と呼ばれるべきものです。以下ではめんどくさいので、単に乱数と呼ぶことにします。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EDPi_vGwQ3lb" - }, - "source": [ - "**$\\clubsuit$ 細かな注**\n", - "\n", - "乱数を生成する方法はいくつもあるが代表的なものはメルセンヌツイスタと呼ばれる方法で、多くのプログラミング言語でも採用されている。\n", - "```{margin}\n", - "ちなみにモンテカルロはカジノで有名なモナコの地名Monte Carloに由来。\n", - "```\n", - "また[モンテカルロ法]と検索すると(主に学術的な分野で)乱数がどのように活用されているか、雰囲気を味わうことができます。 \n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "DeY7-UhTPrpm" - }, - "source": [ - "## Pythonでの乱数生成\n", - "\n", - "Pythonでは`random`モジュールを使えば簡単に乱数を使用することができる。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Jz-0jgJnLG3L", - "outputId": "6b61c6b6-c249-4413-8223-49fa276e3826" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "random.randint(1,6)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "b1m6sjIoLJTu" - }, - "source": [ - "のように`random.randint(最小値,最大値)`とすると指定した閉区間の整数値をランダムに生成することができる。 \n", - "上のコードセルを実行するたびに答えが変わること(ランダム性)も確かめよう。\n", - "\n", - "今の場合、最小値に1、最大値に6を採用したことで、この乱数をサイコロの出目とみなすことができる。 \n", - "(```range```などと違い、最大値の6も含まれていることに注意! 紛らわしい...。)\n", - "\n", - "100個のサイコロの出目を保持しておきたければ、2章で学習したリスト内包表記を用いて" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "zc0Q1VTiLoRU", - "outputId": "ffaced8e-d9de-42f0-d871-2865312c788c" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 4, 5, 3, 4, 2, 2, 5, 5, 6, 1, 2, 6, 3, 2, 4, 3, 6, 6, 5, 5, 6, 4, 4, 2, 3, 3, 5, 4, 6, 6, 6, 6, 4, 3, 2, 1, 5, 6, 4, 3, 2, 5, 2, 6, 4, 3, 6, 1, 3, 5, 2, 6, 3, 2, 3, 3, 3, 1, 4, 1, 5, 2, 6, 4, 4, 4, 3, 2, 3, 6, 6, 3, 1, 2, 6, 1, 3, 1, 6, 2, 5, 2, 6, 5, 2, 1, 1, 4, 1, 2, 3, 1, 2, 5, 2, 3, 6, 2, 3]\n" - ] - } - ], - "source": [ - "a = [random.randint(1,6) for i in range(100)]\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y7fYRqZyM6R5" - }, - "source": [ - "などとすればよい。$10^p$回 ($p=1,2,...,6)$回サイコロを振った場合の出目をそれぞれヒストグラムにしてみると... \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 353 - }, - "id": "wXlYsFMLSRBo", - "outputId": "d8defd9e-3de9-433f-8a90-84684107b1c1" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_11_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# サンプルの数を指定し、それぞれのサイコロの出目を用意して入れ子のリストにする\n", - "ps = [1,2,3,4,5,6]\n", - "Ns = [10**p for p in ps ]\n", - "results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ]\n", - "\n", - "# ヒストグラムのビンの始点,終点,ステップを定義\n", - "tbin = np.arange(0.5,7.5,1) \n", - "\n", - "# 作図 (axを用いて、一つのグラフに6つの領域を用意して作画する)\n", - "# add_subplit(n,m,i)で、縦n個, 横m個の領域を用意した場合の i番目(列方向,行方向の順番にカウントする. a行b列の小領域は i = (a-1)*m + b)\n", - "fig = plt.figure(figsize=(20,5))\n", - "axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1 ) ] #データの個数に応じて小領域の数を自動で変えたい場合は\"(2,3\"部分の工夫が必要。\n", - "for i in range(len(axs)):\n", - " axs[i].set_xlabel(\"Roll\")\n", - " axs[i].set_ylabel(\"Count\")\n", - " axs[i].set_title(\"$n=10^\"+str(ps[i])+\"$\") #$$で囲むとlatex表記を用いることができる\n", - " axs[i].hist(results[i],bins=tbin,rwidth=0.5) #ヒストグラムを描画\n", - "#グラフ間の縦の間隔hspaceをdefault値(0.3)から少し大きく調整\n", - "plt.subplots_adjust(hspace=0.45) \n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y-fe9b34H3Vf" - }, - "source": [ - "1-6の出る目の頻度が確率から期待される振る舞いに漸近していく事がわかる. c.f. 大数の法則" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eG-f9mSG2BzL" - }, - "source": [ - "今のようなサンプル数が大きく異なるヒストグラムを比較する場合、縦軸のスケールを揃えて比較するほうが良い。**相対的な頻度**になおしてみよう。 \n", - "そのためには、```density```というオプションをオン(`True`)にするか、明示的に各サンプルの\"重み\"を```weights```でリスト(`ndarray`)として与える。\n", - "\n", - "後者は確率分布などを扱うときに便利なオプションとなるが、この授業では扱わない。 \n", - "```density=True```は\"各サンプルの重みを等価にする\"という```weights```の特別な場合に相当する. \n", - "つまりサンプル数が$N$ならweights=[すべての要素が$1/N$の配列(リストやndarray)]とするのと等価。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 353 - }, - "id": "p30xWe7Y16zV", - "outputId": "fef2f58e-baa3-4928-d145-18acd82f60d3" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_14_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "ps = [1,2,3,4,5,6]\n", - "Ns = [10**p for p in ps ]\n", - "results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ]\n", - "tbin = np.arange(0.5,7.5,1) \n", - "fig = plt.figure(figsize=(20,5))\n", - "axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1) ]\n", - "for i in range(len(axs)):\n", - " axs[i].set_xlabel(\"Roll\")\n", - " axs[i].set_ylabel(\"Count\")\n", - " axs[i].set_title(\"$n=10^\"+str(ps[i])+\"$\") \n", - " axs[i].hist(results[i],bins=tbin,rwidth=0.5,density=True) #density=Trueオプションを指定\n", - " axs[i].plot([1,6],[1/6,1/6],color=\"gray\",linestyle=\"dashed\") #ココを追加した\n", - "plt.subplots_adjust(hspace=0.45) \n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mv4HquL-oEeb" - }, - "source": [ - "\n", - "---\n", - "\n", - "以下では、`random`モジュールのよく使う(?)機能をいくつか紹介する." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JULqiaqvQ1xs" - }, - "source": [ - ">また、`numpy`にも```numpy.random```という下位のモジュールがあるので、 `random`を`numpy.random`としても多くの場合では互換性がある。```import numpy as np```とあだ名を使うなら`random`を`np.random`に置き換えて試してみよう。 \n", - "※ `randint`の場合は、`np.random.randint`だと終点を含まないなど、微妙な違いがあるので注意。モジュールの使い方や実装については[公式Document](https://numpy.org/doc/stable/reference/random/generated/numpy.random.randint.html?highlight=randint#numpy.random.randint)を参考にすること。これは`numpy`に限らない。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "obMICxycf5C7" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LzCSWKWDRucl" - }, - "source": [ - "## 無作為抽出" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UgwUfAjUoNuu" - }, - "source": [ - "リストやrangeなどからランダムに要素を選びたいときには```random.choice```が便利だ。 \n", - "(たとえば[出席番号のリストからランダムに選ぶ]などをイメージしよう) \n", - "\n", - "ループに入れて5回くらい実行してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "7FZXoHS2M7G9", - "outputId": "a7c84ce0-f365-4114-e01a-2619f6fe7abc" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a=> 6 \tb=> 75 \tc=> 日本\n", - "a=> 1 \tb=> 13 \tc=> アメリカ\n", - "a=> 1 \tb=> 88 \tc=> 中国\n", - "a=> 6 \tb=> 10 \tc=> 中国\n", - "a=> 1 \tb=> 98 \tc=> 日本\n" - ] - } - ], - "source": [ - "for i in range(5):\n", - " ## 引数(リスト)からランダムに要素を抽出する\n", - " a = random.choice([1,3,5,6]) \n", - "\n", - " ## 引数(range,0から99)からランダムに要素を抽出する\n", - " b = random.choice(range(100)) \n", - "\n", - " ## 引数(リスト)からランダムに要素を抽出する\n", - " c = random.choice([\"日本\",\"アメリカ\",\"中国\"]) \n", - " \n", - " print(\"a=>\", a, \"\\tb=>\", b, \"\\tc=>\", c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "y-PR19-BQsjw" - }, - "source": [ - "「0から99までの100個の整数値から重複を許さずに10個選びたい」といった場合は、\n", - "```numpy.random```の```choice```関数を使うのがよい。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "XStnPUmjQ1KC", - "outputId": "8e676f8f-f6d1-4837-c37d-3a198bcb5b6b" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([86, 28, 99, 31, 17, 92, 89, 50, 76, 69])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "np.random.choice(range(100),10,replace=False) # replace = True/Falseで重複を認めるかどうかを指定できる " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kBUApMPPotU-" - }, - "source": [ - "(上の関数の`replace=True` or `replace=False`を変えて何回か実行してみて、抽出された数に重複があるかどうかを確かめてみよう)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_zRfhX355dSk" - }, - "source": [ - "ちなみに選んだものをソートしたければ以下のようにする:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "mbRw7qky5g6N", - "outputId": "bfb5fe6c-5a80-4243-dfa6-707b133dd84e" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0, 13, 17, 36, 48, 49, 75, 84, 96, 97]\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "sorted_array = sorted( np.random.choice(range(100),10,replace=False) )\n", - "\n", - "print(sorted_array)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Sb2yCyYhRrT_" - }, - "source": [ - "## 一様分布からの乱数生成\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sirCg9xiKY5U" - }, - "source": [ - "上記のような離散的な乱数とは異なり、連続的な数について乱数が必要になる場合もある。\n", - "\n", - "その一つの例である一様乱数は、ある\"有限\"区間での確率(密度)が等しい確率に従う乱数で、 \n", - "```random.uniform()```関数を使えば、指定した区間での一様乱数を生成することができる。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "qk74yCgrUAcR", - "outputId": "7cedd8d8-18e5-4777-8d00-b5dd0e59eecd" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3.6791118523291146" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "random.uniform(1,10) #[1,10)または[1,10]からの一様乱数 (randomモジュールでは半開区間/閉区間どちらになるかはroundingに依存するらしい)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "utoYGaTWo2KQ" - }, - "source": [ - "xとyの値を[-1,1]の範囲でランダムに10000サンプル生成してplotしてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 336 - }, - "id": "7V2JoDACo88B", - "outputId": "4dc89e14-0649-461f-f5ce-d097c80f5d97" - }, - "outputs": [ - { - "data": { - "image/png": "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J9RPjDum6PV9nEf9hEU7EhERERERERERqSgNtRMRERERERERkapQ4klERERERERERKpCiScREREREREREakKJZ5ERERERERERKQqlHgSEREREREREZGqUOJJRERERERERESqQoknERERERERERGpCiWeRGrIzOaY2Wtm9h4zu8jMdpjZdfWOS0REGoP6CRERKcfMvmFm/y14/YCZ/Wk9YxIZiznn6h2DyHnFzP4n8B7gPwP7nXN/WeeQRESkgaifEBGRUsxsGrDWOfdhM2sC3gDmOud+UdfARMpQ4kmkxsxsAtAP/Adwg3Pu3TqHJCIiDUT9hIiIlGNmzwP/A7gC+JJz7tY6hyRSVnO9AxA5D70XuBj4T+T/RfvX9Q1HREQajPoJEREp5/vA54GpwA/qG4rI2FTxJFJjZrYeeAKYDrQ451bVOSQREWkg6idERKScqDJ2G/l/oLhGlbHS6FTxJFJDZvY54DfOub8zswuAzWa2yDm3sd6xiYhI/amfEBGRsTjnTprZi8ARJZ3kbKCKJxEREREREZGzRDSp+L8Cn3LOvVHveETG0lTvAERERERERERkbGY2E9gDbFDSSc4WqngSEREREREREZGqUMWTiIiIiIiIiIhUhRJPIiIiIiIiIiJSFUo8iYiIiIiIiIhIVSjxJCIiIiIiIiIiVaHEk4iIiIiIiIiIVIUSTyIiIiIiIiIiUhX/H5T5IkaeiJfGAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_30_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "num = 10000\n", - "xs = [ random.uniform(-1,1) for i in range(num)]\n", - "ys = [ random.uniform(-1,1) for i in range(num)]\n", - "\n", - "# 3つの領域に、散布図・xのヒストグラム・yのヒストグラムを描く\n", - "fig = plt.figure(figsize=(20,5))\n", - "axs = [fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)]\n", - "axs[0].scatter(xs,ys,color=\"green\",s=0.5,alpha=0.4) \n", - "axs[0].set_xlabel(\"x\");axs[0].set_ylabel(\"y\")\n", - "axs[1].set_xlabel(\"x\");axs[1].set_ylabel(\"count\")\n", - "axs[2].set_xlabel(\"y\");axs[2].set_ylabel(\"count\")\n", - "axs[1].hist(xs,bins=50,ec=\"w\") #xのヒストグラム (binの数50はいい加減に選んだ)\n", - "axs[2].hist(ys,bins=50,ec=\"w\") #yのヒストグラム 同じく\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lMYjaSEPc6NC" - }, - "source": [ - "**$\\clubsuit$** 散布図とヒストグラムをまとめて描く\n", - "\n", - "もうちょっとかっこよく描きたければ`seaborn`というモジュールの`jointplot`を用いると良い。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 497 - }, - "id": "C4rRe6-AdOHa", - "outputId": "82de3397-78e0-4c1c-fda6-6f4cba78ee0e" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", - " FutureWarning\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbcAAAGoCAYAAADFF6ulAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9fXBd13Uv9jsWSeC+hLy8qRSRMmzDstKSniKkQzokX+iYSSqZTvxsF+Wb1mFVCorHvs+NIDJTGa/SmJbpjhNEnQeQnufeqBlCjIYvqs1i7DzZpqVniQ75QmiEVBRRh0xii3gOFNGVy5tLuQZAUz7942IdrrPOWnvviw+KAvZvBgPgnH32Xvtzfey1107SNEVERERERMRiwlveaAIiIiIiIiLmG5G5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw7L3mgCZono4hkREbGUkbzRBNzoiJpbRERERMSiQ2RuERERERGLDpG5RURE4La33YYkSVr+ue1tt73RpEdEqEjepBFK3pRELwRue9tteGXilZa/W9uxFv/4D/+44GXNppyI648kSbDjsR0tf3finhN4k64hb3bEPTcP3qwOJREzeGXilVkvStejrNmUM1tcL+Z7PQWKiIiI2SEyt4hFg+vFfK+nQLEYMRvh4C3L34Kf/fRnLZcVBYqli8jcbiDMViNYjLhubfGWpkluMeFGH0ezFUKiQBHRCiJzC8D1lDRvZLPf9cR1M4H+bPG1+XU1Hy9C4WA2iPvRNx4icwvA9ZI0r+uieb0Wpbj4LW7c6MLBLMbfbJjOjb4fvRSxpJjbjW6uua64XovSLMqZdVk3Omax0M7WAhAxgxud+UYsGJYUc4uOABFvKGa50MbF+TojWhsWBZYUc4uIiIjwImp7iwIxQklERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw6RuUVERERELDpE5hYRERERsegQmVtERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw6RuUVERERELDpE5hYRERERsegQmVtERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw6RuUVERERELDpE5hYRERERsegQmVtERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6JCkafpG09AykiQ5DuDmWXx6M4AfzTM5c8WNRtONRg9w49F0o9ED3Hg03Wj0ADceTXOh50dpmu6cT2IWG96UzG22SJJkNE3TzW80HRw3Gk03Gj3AjUfTjUYPcOPRdKPRA9x4NN1o9Cw2RLNkRERERMSiQ2RuERERERGLDkuNuT36RhOg4Eaj6UajB7jxaLrR6AFuPJpuNHqAG4+mG42eRYUltecWEREREbE0sNQ0t4iIiIiIJYDI3CIiIiIiFh0ic4uIiIiIWHSIzC0iIiIiYtEhMreIiIiIiEWHNyVz27lzZwog/sSf+BN/lupPMBb5emniTcncfvSjGyk8XERERMSNi6W6Xr4pmVtERERERIQLkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw7zwtySJDmcJMn/kyTJ/228T5IkOZQkyfeSJDmbJMmvsHd7kiT5+5mfPfNBT0RERETE0sZ8aW6PAdjpeP9BAL808/MJAP8bACRJ8gsAPgtgC4BfBfDZJEkq80RTRERERMQSxbwwtzRN/xLAJUeSjwD4s7SJEQCrkyRZC+ADAJ5O0/RSmqZ1AE/DzSQjIiIiIiK8uF57bm8F8A/s/4mZZ9bzBUV9sv6GpFsIyLLrk3UnPfRuLjRrZcrnVprriTeyX643xuvjQf0eAjmGtG9D8vONxeuJ2dBhfePLa+ziWMtlRcw/3jQOJUmSfCJJktEkSUZfffXVWedTn6zj0HOHvBPWlS40P5nnbOkNLbs+WUf/qX4Mjgya9Tv03CGM18ez71qlTyvz0HOHMHZxLJenlsbVRiHtPBc65yO/2X47229C8xyvj6P6ZBUHThxw9nsoQxocGUT/qX61LykN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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_32_1.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "import seaborn as sns\n", - "sns.jointplot(xs,ys,color=\"green\",s=2,alpha=0.5)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GfCEsChab-8L" - }, - "source": [ - "### じゃんけん関数\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N53MCJmFcCOH" - }, - "source": [ - "乱数を使ってじゃんけんをする関数を作ってみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "PpBWvAI4gMT-" - }, - "outputs": [], - "source": [ - "def Janken( ): \n", - " r = [\"グー\",\"チョキ\",\"パー\"]\n", - " return r[random.randint(0,2)] " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "H5AqdOWPhvu1", - "outputId": "176292e9-259c-4812-cb65-38f8ac8255a1" - }, - "outputs": [ - { - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'チョキ'" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "Janken()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "9v7W2jAYWcjq", - "outputId": "d71b3607-e10d-410e-a023-b6f43770287b" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "パー\n", - "パー\n", - "パー\n", - "グー\n", - "パー\n" - ] - } - ], - "source": [ - "#あるいは、手を0,1,2として計算する関数とじゃんけんの手に反映させる部分を分けても良い\n", - "\n", - "def Janken():\n", - " return random.randint(0,2)\n", - "RPS = [\"グー\",\"チョキ\", \"パー\"] #integer to Rock-Paper-Scissors\n", - "\n", - "#5回手を表示させてみる\n", - "for i in range(5): \n", - " print(RPS[Janken()])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qWL3blMmgUz0" - }, - "source": [ - "今の場合```Janken()```は、単に1/3の確率で手を選ぶ関数ですが、これを拡張していけば確率を1/3から変動させたじゃんけんの実装もできます。 \n", - "たとえば、0から1の区間から一様乱数を発生させて、ある領域に含まれたらグー、ある領域に含まれたらチョキ、残りはパー、とすればよいですよね?\n", - "\n", - "じゃんけん関数を工夫したり、サザ◯さんやドラ◯もんのじゃんけんのパターンを解析することで、 \n", - "毎週土曜や日曜にドラ◯もんやサザ◯さんを倒す関数を作ってみるのも面白そうです。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AuCckqr2i5jE" - }, - "source": [ - "### $\\clubsuit$一様乱数を用いた円周率の計算\n", - "\n", - "プログラミングでド定番の、乱数を使って円周率を求める方法も \n", - "Pythonならサクッと実装することができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "6TEeSxCVjJt6", - "outputId": "bd0afdda-67b5-4547-bde4-18a06023d5d4" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3.13704" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def pi_approx(p):\n", - " num = 10**p\n", - " x = np.random.rand(num)\n", - " y = np.random.rand(num)\n", - " return 4*np.sum(x*x+y*y < 1.0) / num\n", - "\n", - "pi_approx(5) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QegeQ0ycjXxC" - }, - "source": [ - "このコードでは、$10^p$組の一様乱数を発生させて、 \n", - "円弧の中に入った個数/全体の数(num)で割ることで円周率を求めています。 \n", - "(1/4円の面積は$\\pi$/4で、正方形の面積が1であることを使う) \n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dNBjTYMDlKEv" - }, - "source": [ - "乱数により生成するサンプルの数を増やしていって、精度が改善する様子を見てみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 372 - }, - "id": "rr99Qw8xlKUW", - "outputId": "cd5c524a-ba4e-4315-e611-c6d165f7c8c4" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "p= 1 \t pi_approx 2.8 log10(abs(diff)) -0.46649147797051027\n", - "p= 2 \t pi_approx 2.92 log10(abs(diff)) -0.6544446417698763\n", - "p= 3 \t pi_approx 3.1 log10(abs(diff)) -1.3809833709877704\n", - "p= 4 \t pi_approx 3.1316 log10(abs(diff)) -2.000319167792708\n", - "p= 5 \t pi_approx 3.1458 log10(abs(diff)) -2.3759917290460537\n", - "p= 6 \t pi_approx 3.140808 log10(abs(diff)) -3.105322034013356\n", - "p= 7 \t pi_approx 3.1410364 log10(abs(diff)) -3.254727173274235\n", - "p= 8 \t pi_approx 3.14153816 log10(abs(diff)) -4.263654581782899\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_43_1.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "np.random.seed(1234)\n", - "sum = []\n", - "for p in range(1,9): #サンプル数を一桁ずつ増やす\n", - " tmp = pi_approx(p)\n", - " sum += [[10**p, np.log10(abs(tmp-np.pi))]]\n", - " print(\"p=\",p, \"\\t\", \"pi_approx\", tmp, \"log10(abs(diff))\", np.log10(abs(tmp-np.pi)))\n", - "sum = np.array(sum).T\n", - "\n", - "fig= plt.figure(figsize=(10,3))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"Sample number\")\n", - "ax.set_ylabel(\"Diff. in log10\")\n", - "ax.set_xscale(\"log\")\n", - "ax.plot(sum[0], sum[1],marker=\"o\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eXm9gIwmm8eN" - }, - "source": [ - "あまり効率は良くない($10^8$サンプルあっても4桁くらいしか合っていない)。 \n", - "ちなみに2つの領域に生成された乱数の比から円周率を計算する方法では、領域の面積が近くなるような設定で計算する方が精度が良い。 \n", - "\n", - "なお、上のコードはメモリを食うので、これ以上$p$を増やすとだんだんGoogle Colab上では計算が厳しくなってくる。それまでの作業にも依存するが、$p\\geq9$にして実行するとクラッシュする。このように場合によってはメモリ使用量も気にする必要がある。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "f6QZ9qjDfsqn", - "outputId": "a50d0030-b569-4546-8b90-89988d3e455b" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "p=7のとき => ndarrayのサイズは~ 0.16 GB程度\n", - "p=8のとき => ndarrayのサイズは~ 1.6 GB程度\n" - ] - }, - { - "data": { - "text/plain": [ - "3.14164512" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "def pi_approx_mem(p):\n", - " num = 10**p\n", - " x = np.random.rand(num)\n", - " y = np.random.rand(num)\n", - " print(\"p=\"+str(p)+\"のとき => ndarrayのサイズは~\", (x.nbytes+y.nbytes) / 1000**3 , \" GB程度\")\n", - " return 4*np.sum(x*x+y*y < 1.0) / num\n", - "\n", - "pi_approx_mem(7)\n", - "pi_approx_mem(8) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2NsCW4t6VDhJ" - }, - "source": [ - "## 正規分布からの乱数生成\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rzhAnv6SpCDB" - }, - "source": [ - "正規分布は多くの特徴的な性質を有しています. \n", - "それらは後述するとして...正規分布に従う乱数を生成するには \n", - "```random.gauss()```もしくは```random.normalvariate()``` を用いればよい. \n", - "※両者は基本的に同じだが、前者のほうが高速らしい" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4G-CT2njVm_z" - }, - "outputs": [], - "source": [ - "a = random.gauss(0.0, 1.0) #平均0.0,標準偏差1.0の正規分布からの乱数生成" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0N_wucnuV4I7" - }, - "source": [ - "サンプル数を何通りか作って、正規分布になっているかチェック" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 391 - }, - "id": "fUlcUJTpVIDU", - "outputId": "7ad9c280-2b3a-4e5a-91ca-337b168cfa0d" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_50_0.png" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mu,sigma a: 0.0067173334130862326 1.005917217916256\n", - "mu,sigma b: -0.062043437506205806 0.9809649613610115\n", - "mu,sigma c: 0.0029861824182547607 1.0029708839095104\n", - "mu,sigma c: 2.6103380608022205e-05 1.0002128303060538\n" - ] - } - ], - "source": [ - "Na = 100; Nb = 1000; Nc = 100000\n", - "a = [ random.gauss(0.0, 1.0) for i in range(Na)] \n", - "b = [ random.gauss(0.0, 1.0) for i in range(Nb)] \n", - "c = [ random.gauss(0.0, 1.0) for i in range(Nc)] \n", - "c2 = [ random.normalvariate(0.0, 1.0) for i in range(Nc)] #一応normalvariateも使ってみる\n", - "\n", - "fig = plt.figure(figsize=(30,5))\n", - "axs = [ fig.add_subplot(141),fig.add_subplot(142),fig.add_subplot(143),fig.add_subplot(144)]\n", - "axs[0].hist(a,bins=50,density=True,rwidth=0.8)\n", - "axs[1].hist(b,bins=50,density=True,rwidth=0.8)\n", - "axs[2].hist(c,bins=50,density=True,rwidth=0.8)\n", - "axs[3].hist(c2,bins=50,density=True,rwidth=0.8)\n", - "plt.show()\n", - "plt.close()\n", - "\n", - "#平均と分散も計算してみる\n", - "print(\"mu,sigma a:\",np.mean(a), np.std(a))\n", - "print(\"mu,sigma b:\",np.mean(b), np.std(b))\n", - "print(\"mu,sigma c:\",np.mean(c), np.std(c))\n", - "print(\"mu,sigma c:\",np.mean(c2), np.std(c2))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tOJ2sDbAWsmp" - }, - "source": [ - "サンプル数が増えるにつれて、正規分布に収束していく様子が見られます. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rryfI2IcbZvG" - }, - "source": [ - "## 乱数の種(seed)の固定" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QWSXDIgFcFE7" - }, - "source": [ - "これまでのプログラムでは、実行の度に答えが変わりました。 \n", - "\n", - "擬似的にでもランダム性が担保されているというのは便利だが、 \n", - "実際にプログラミングで乱数を使って何かの作業を実装したいときは、 \n", - "何か直感と反するような振る舞いをコードが示した際、 \n", - "それがランダム性からくる偶然の挙動なのか、コードにバグがあるせいなのかを特定したくなる。 \n", - "そんなときには、\n", - "```random.seed(適当な整数値)``` \n", - "を使って乱数の\"種\"を指定することで、再現性のあるコードにすることができます。 \n", - "たとえばサイコロの例でいうと" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "muv9OX6Lctxd", - "outputId": "bf8ee0ef-d88a-43b1-ef7b-3243a1475f6d" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[3, 3, 4, 2, 3, 3, 2, 6, 2, 6]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "[ random.randint(1,6) for i in range(10)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "D4e9eLKBc03z" - }, - "source": [ - "は実行する度に答えが変わるが" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QyIpj2cCc3Nu", - "outputId": "a61edc46-9f1e-4faa-9ca4-1e34a69042ba" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[4, 1, 1, 1, 5, 1, 6, 6, 1, 1]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "random.seed(1234) \n", - "[ random.randint(1,6) for i in range(10)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dG_z5FK6c8gT" - }, - "source": [ - "は何度実行しても同じ答えになる。これは、乱数の生成前に\"種\"を指定しているため。\n", - "\n", - "イメージとしては、「無限に長い疑似乱数の羅列の中から10個並んだ数を選ぶときに、 \n", - "どこからどこまでを抽出するかを指定する」のが、 \n", - "この```random.seed```関数です(細かいことを無視すると、だいたいこんなイメージ). \n", - "\n", - "注意点としては、たとえばループを回して乱数を生成するときに\n", - "``` \n", - "for i in range(10):\n", - " random.seed(1)\n", - " print( random.uniform(0,1) )\n", - "```\n", - "などとすると、乱数を生成する前に毎回seedが1に固定されるので \n", - "毎回同じ乱数になってしまうので、意図した挙動になるブロックで使うこと。\n", - "\n", - "\n", - "**余談** \n", - "古いゲームだと、起動してからの経過時間が乱数の種になっていることが多いようで、 \n", - "このパターンを調べることができれば、 \n", - "原理的には(1/30~1/60秒程度の正確な入力が可能なら)望むようにゲームをスイスイ攻略することもできます。\n", - "\n", - "これを利用して攻略を進めたり、コンピュータにゲームの操作をやらせて、 \n", - "メタル◯ライムに会心の一撃を食らわせてレベルアップしまくる動画などが昔はやりました(今も時々ある)。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V0zLmxiTqQkj" - }, - "source": [ - "## 正規分布に関して\n", - "\n", - "この授業は確率・統計の授業ではないので、深入りはしませんが、 \n", - "正規分布(ガウス分布,ガウシアン)に少し触れておきます. \n", - "(厳密性は少々犠牲にし、変数が1次元の場合の正規分布に限る)\n", - "\n", - "正規分布が重要である理由はいくつかありますが、\n", - "* 世の中に(近似的に)正規分布に従う確率変数がたくさんある\n", - "* \"性質が良い\"(扱いやすい)確率分布である\n", - "\n", - "の2点が代表的なところでしょうか。 \n", - "たとえば、身長や体重の分布や、大学入試センター/共通試験の得点の分布なども、正規分布に近いことが知られています。\n", - "\n", - "ある変数$x$が中心$\\mu$、標準偏差$\\sigma$の正規分布に従うとき、 \n", - "$x$の確率密度関数$f(x)$は、以下の様に表現されます.\n", - "\n", - "$f(x) = \\frac{1}{\\sqrt{2\\pi \\sigma^2}}\\exp{(-\\frac{(x-\\mu)^2}{2\\sigma^2})}$\n", - "\n", - "一見、難しそうな式ですが、$x=\\mu$で最大値となり、 \n", - "$x$が$\\mu$から離れていくとどんどん値が小さくなる関数になっています。\n", - "\n", - "関数の形を見てなんとなく「平均値の周りに広がった分布になっているんだな」 \n", - "と理解できれば問題は有りません。\n", - "\n", - "実際に、上の$x$についての関数$f(x)$の値を、$\\mu$や$\\sigma$を変えながらplotしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "S1dZcJafx2SK", - "outputId": "d23cee0c-ad63-4934-abd1-854f5605ddb3" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_59_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "def gaussian(mu,sigma,xr):\n", - " return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2)\n", - "\n", - "xr = np.arange(-6.0,6.0,0.01)\n", - "yr1 = gaussian(0.0,1.0,xr); yr2 = gaussian(1.0,2.0,xr); yr3=gaussian(-2.0,0.5,xr)\n", - "\n", - "fig= plt.figure(figsize=(12,4))\n", - "plt.plot(xr,yr1,label=\"mu=0.0, sigma=1.0\")\n", - "plt.plot(xr,yr2,label=\"mu=1.0, sigma=2.0\")\n", - "plt.plot(xr,yr3,label=\"mu=-2.0, sigma=0.5\")\n", - "plt.plot([-7,7],[0,0],color=\"gray\", linestyle=\"dotted\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "29z5n4TqCt4B" - }, - "source": [ - "こんな感じ。このような形状の分布を示すデータ(量)が世の中には溢れています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UDYHtsge7Pp0" - }, - "source": [ - "指数関数$\\exp$の前についている係数$1/\\sqrt{2\\pi \\sigma^2}$は、 \n", - "この関数をあらゆるxの値で足し上げたときに、その値が1になるようにつけてあります. \n", - "つまり、x軸と関数$f(x)$が囲む領域の面積=xの全区間での積分$\\int^{\\infty}_{-\\infty}f(x) dx $が1になります. \n", - "\n", - "こうしておけばどの$\\mu,\\sigma$を持つ正規分布を考えたときにでも、 \n", - "「どこからどこまでの区間の面積が全体に占める割合が何%だ」といった表現が可能になります。 \n", - "つまり、確率として扱いやすくなります。\n", - "\n", - "> ちなみに関数$\\exp{\\left(-\\frac{(x-\\mu)^2}{2\\sigma^2}\\right)}$は、$x$に対する有限区間での積分を解析的に求めることはできず(数値的に求めることはできる)、$x \\in [-\\infty,\\infty]$で積分した場合にのみ、閉じた形で書き下すことができます。 \n", - "その際、積分値$\\int^\\infty_{-\\infty}\\exp{\\left(-\\frac{(x-\\mu)^2}{2\\sigma^2}\\right)}$が、$\\sqrt{2\\pi \\sigma^2}$になります。 c.f. ガウス積分\n", - "\n", - "以下では$\\mu=0.0$, $\\sigma=1.0$のみを考えることにして、もう少し正規分布の特徴的な性質について見てみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "q9MT3YZ2_xZQ", - "outputId": "3d8809db-b465-4bef-f591-67728484e5b2" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_62_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "def gaussian(mu,sigma,xr):\n", - " return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2)\n", - "\n", - "fig= plt.figure(figsize=(14,4))\n", - "axs = [ fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)]\n", - "xr = np.arange(-5.0,5.0,0.01)\n", - "yr = gaussian(0.0,1.0,xr)\n", - "for i in range(3):\n", - " axs[i].plot(xr,yr,label=\"mu=0.0, sigma=1.0\")\n", - " axs[i].plot([-4,4],[0,0],color=\"gray\", linestyle=\"dotted\")\n", - "x_sig1 = np.arange(-1.0,1.0,0.01)\n", - "x_sig2 = np.arange(-2.0,2.0,0.01)\n", - "x_sig3 = np.arange(-3.0,3.0,0.01)\n", - "axs[2].fill_between(x_sig3, 0.0*x_sig3, gaussian(0.0,1.0,x_sig3),color=\"green\",alpha=0.9)\n", - "axs[1].fill_between(x_sig2, 0.0*x_sig2, gaussian(0.0,1.0,x_sig2),color=\"blue\",alpha=0.9)\n", - "axs[0].fill_between(x_sig1, 0.0*x_sig1, gaussian(0.0,1.0,x_sig1),color=\"red\",alpha=0.9)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "407lr-tuAn6f" - }, - "source": [ - "上の図では、$\\mu \\pm 1\\sigma$, $\\mu \\pm 2\\sigma$, $\\mu \\pm 3\\sigma$の領域での正規分布とx軸とが囲む領域を、それぞれ赤色、青色、緑色で塗りつぶしました。 \n", - "(1シグマ, 2シグマ, 3シグマと呼んだりします)\n", - "\n", - "これらが占める面積は、それぞれ0.6827, 0.9545,0.9973(いずれも\"約\")となり、 \n", - "68%,95%,99%区間などと呼ぶことも多いです。 \n", - "このことは、任意の$\\mu,\\sigma$を持つ1次元の正規分布について成立します。\n", - "\n", - "正負の値をとる$x$(たくさんの人のなんかの得点とでも思ってください)の分布が \n", - "平均0.0,標準偏差が1.0の**正規分布に従っている場合**(理想的な場合)なら、 \n", - "全体の68%程度の人の得点は1シグマ領域(赤)、 \n", - "つまり-1から1までの間に分布していることになります。\n", - "\n", - "もちろん、実際の場合、分布は真には正規分布になっていないので、 \n", - "平均と標準偏差を計算したときに、いつでも1シグマの中に \n", - "全体の68%が分布しているわけではありません。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "g3oE50i_s5g0" - }, - "source": [ - "### $\\clubsuit$ おまけ: 多変数正規分布\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "a30dQ8kttEdq" - }, - "source": [ - "上の正規分布の考え方を拡張して、多変数の場合を考えることもできます。\n", - "\n", - "2つ以上の変数であることを明示的に表すため、\n", - "多次元正規分布や多変数正規分布などと呼ばれることが多いです。\n", - "\n", - "1次元の正規分布が、中心と分散(あるいは標準偏差(分散の平方根))で特徴づけられたのに対し、\n", - "多次元正規分布は、中心(ベクトル)と共分散(行列)によって特徴づけられます。\n", - "\n", - "$N$個の変数が、\n", - "平均を$\\boldsymbol{\\mu}$,共分散を$\\Sigma$とする$N$次元正規分布に従うとき、\n", - "$\\boldsymbol{x}$の確率密度関数は\n", - "\n", - "$\\frac{1}{\\sqrt{(2\\pi)^N |\\Sigma|}} \\exp{\\left( -\\frac{1}{2}(\\boldsymbol{x}-\\boldsymbol{\\mu})^T \\Sigma^{-1} (\\boldsymbol{x}-\\boldsymbol{\\mu}) \\right)}$\n", - "\n", - "で与えられます。\n", - "\n", - "注) $x$←がGoogle ColabのTeXだとうまく太字にならないが多成分(ベクトル)のつもり\n", - "\n", - " \n", - " \n", - "二次元の場合に、適当な$\\mu$と$\\Sigma$を取って、多次元正規分布からサンプルしてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "eEhR7h_Q_sG-" - }, - "outputs": [], - "source": [ - "mu1 = [ 3.0, 2.0]\n", - "cov1 = [ [1.0, 0.7],[0.7,1.0]]\n", - "mu2 = [ -2.0, -0.5 ]\n", - "cov2 = [ [0.6, -0.3],[-0.3,1.0]]\n", - "numS = 50000\n", - "\n", - "sample1 = np.random.multivariate_normal(mu1,cov1,numS)\n", - "sample2 = np.random.multivariate_normal(mu2,cov2,numS)\n", - "\n", - "x1, y1 = sample1.T\n", - "x2, y2 = sample2.T" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Lk-DKB0TIBcH" - }, - "source": [ - "散布図にすると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "oF_6fwL3H_wv", - "outputId": "433f20dc-c446-400a-d9e9-5f8f1280a5a7" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_68_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "fig= plt.figure(figsize=(10,5))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\");ax.set_ylabel(\"y\")\n", - "ax.scatter(x1,y1, s=5,color=\"green\", alpha=0.2,label=\"sample 1\")\n", - "ax.scatter(x2,y2, s=5,color=\"orange\", alpha=0.2,label=\"sample 2\")\n", - "ax.scatter(mu1[0], mu1[1], marker=\"x\", color=\"blue\", alpha=0.9,label=\"mean 1\")\n", - "ax.scatter(mu2[0], mu2[1], marker=\"x\", color=\"red\", alpha=0.9,label=\"mean 2\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4oNT4TCKF7R0" - }, - "source": [ - "こんな感じ。\n", - "\n", - "二次元のヒストグラムにすると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "cps0KeLqF85P", - "outputId": "62f898f6-3787-4f81-ac0c-61d83d8d7542" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_70_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.cm as cm\n", - "\n", - "fig = plt.figure(figsize=(12,4))\n", - "ax1 = fig.add_subplot(121)\n", - "H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet)\n", - "ax1.scatter(mu1[0],mu1[1],s=80,color=\"w\",marker=\"x\")\n", - "ax1.set_title('sample1')\n", - "ax1.set_xlabel('x'); ax1.set_ylabel('y')\n", - "plt.colorbar(H1[3],ax=ax1)\n", - "\n", - "ax2 = fig.add_subplot(122)\n", - "H2 = ax2.hist2d(x2,y2, bins=40, cmap=cm.jet)\n", - "ax2.scatter(mu2[0],mu2[1],s=80,color=\"w\",marker=\"x\")\n", - "ax2.set_title('sample2')\n", - "ax2.set_xlabel('x'); ax2.set_ylabel('y')\n", - "plt.colorbar(H2[3],ax=ax2)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OaZwSal6DI54" - }, - "source": [ - "中心付近にたくさん分布している様子が見て取れます。\n", - "\n", - "各サンプルごとに、$x$,$y$の分散、共分散を計算してみると...\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5EAvo8YhEtJE", - "outputId": "62b67f10-2c7d-4f6c-c91d-83b18a8046a5" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sample1\n", - "var(x) 0.994590632112357 var(y) 0.9890686124916055 cov(x,y) 0.6931785449875472\n", - "Sample2\n", - "var(x) 0.5996593224718298 var(y) 0.996967770694425 cov(x,y) -0.29333540781674877\n" - ] - } - ], - "source": [ - "print(\"Sample1\")\n", - "print(\"var(x)\", np.var(x1), \"var(y)\", np.var(y1), \"cov(x,y)\", np.cov(x1,y1)[0,1])\n", - "\n", - "print(\"Sample2\")\n", - "print(\"var(x)\", np.var(x2), \"var(y)\", np.var(y2), \"cov(x,y)\", np.cov(x2,y2)[0,1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PCrFiZDgFthf" - }, - "source": [ - "確かに上で与えた共分散の各成分ともちゃんと一致しています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5JbFvkfifi2X" - }, - "source": [ - "-- \n", - "\n", - "ちなみに...サンプルを使うのではなく、 \n", - "式から計算される値をつかって3次元の図を描くと" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SnbjKTj-fjHZ" - }, - "outputs": [], - "source": [ - "nmesh= 1024 \n", - "x = np.linspace(-6, 6, nmesh)\n", - "y = np.linspace(-6, 6, nmesh)\n", - "X, Y = np.meshgrid(x, y)\n", - "\n", - "Z = np.exp( -0.5 * ( (X-mu1[0])* cov1[0][0] * (X-mu1[0]) + (Y-mu1[1])*cov1[1][1]* (Y-mu1[1]) - 2 * (X-mu1[0])*cov1[0][1]* (Y-mu1[1]) )) / ( 2*np.pi * np.sqrt(np.linalg.det(cov1)) )\n", - "Z2 = np.exp( -0.5 * ( (X-mu2[0])* cov2[0][0] * (X-mu2[0]) + (Y-mu2[1])*cov2[1][1]* (Y-mu2[1]) - 2 * (X-mu2[0])*cov2[0][1]* (Y-mu2[1]) )) / ( 2*np.pi * np.sqrt(np.linalg.det(cov2) ))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5ekW3SwDfouI", - "outputId": "3a618e18-5217-43ec-a579-c575bc207c27" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABGoAAAFUCAYAAAB8/9p8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9eZgjd33/+S7dV0utvu/7PmzP0TOGZAmEB4ydrBM/IbsmlwmPnyTEj5cjB04gDr8sCSTkx7PZ5SFhgQQSQkyWfR5MsrsDBhxjIJnu6bm6Z3pmenqmPdNzdEt9qdWts6r2j+FbUypVSSWpJFX3fF7P4wemJZXqqyqp3vW53pwoiiAIgiAIgiAIgiAIgiCqj6XaO0AQBEEQBEEQBEEQBEHcgwI1BEEQBEEQBEEQBEEQJoECNQRBEARBEARBEARBECaBAjUEQRAEQRAEQRAEQRAmgQI1BEEQBEEQBEEQBEEQJoECNQRBEARBEARBEARBECbBludx8u4mCIIgiIMNV+0dIFQhDUYQBEEQBxtNDUYVNQRBEARBEARBEARBECaBAjUEQRAEQRAEQRAEQRAmgQI1BEEQBEEQBEEQBEEQJoECNQRBEARBEARBEARBECaBAjUEQRAEQRAEQRAEQRAmgQI1BEEQBEEQBEEQBEEQJoECNQRBEARBEARBEARBECbBVu0dIAiCeJAQRRGiKEIQBPA8j1QqBZvNBpfLVe1dIwiCIAiCOLAwDcbzPHieRzqdhsvlgs1Gt8SE+aCzkiAIokwoBQETBaIoSo8LggBBEOBwOGCxUJEjQRAEQRBEqcg1FkuM8Tyf8Rye52GxWGC1WsFxXJX2lCDUoUANQRCEASgFQTqdBs/zGUEZi8UCjuOk/wAglUoBAJLJJJxOJwkFgiAIgiCIApBXKss1mByO4yQdxuB5HoIgIJVKwW63kwYjTAUFagiCIApEHpRJp9OagoCJgnzbslgsEEWRhAJBEARBEEQOWKWyXIMJgpDxHLWgjBZWq1WqrKEWKMJM0NlIEASRA3mWhgVkWFBmaWkJjY2NCAQCugWBGiyoQ0KBIAiCIAjiHvJKZabDWFDmzJkzOHToUEFBGeW2WdUzx3FIpVKwWCzUhk6YBrobIAiC+AmFZmnS6TTsdnvJF3VlKxT1ShMEQRAE8aAgN1qQJ8WUGowFUjiOgyiKsFqtJb2vvPKZVTY7HA7SYIQpoEANQRAPJGrzZAotnU2n04ZWvzDhkUwmSSgQBEEQBHHgUHNe0prpl0uDseeXgnzbHMdJgSK73V7ytgmiVChQQxDEgSaf8xJDnqXRi1GBGhIKBEEQBEEcNPIZLQD3q4rl1cX5EASh5GpmpQ5k751OpyUnKIKoJhSoIQjiwFBIlqYQQaAFz/MlXciVFTxAplCwWq3UK00QBEEQhOkx0mghH0YlypT7IW9DL2X2IEEYAQVqCILYlyizNKlUqmyCIBdGXMS1hEI0GoXP56NgDUEQBEEQpkE5009utCCKYob+Kkeww4hADdtPJczcYXd3F16vl4I1RNWgQA1BEKZH7rwkr5SRU05BUE609pfjOMzOzuLNb34zzashCIIgCKIqqLWPl2KHbQRGBWq0EmHpdBrnz5/Ho48+Sk6cRNWgM48gCFMhz9KkUimsr6/D7/dnPMcMQRkjhthpZXPkj7MAFQkFgiAIgiDKhdx5iVWUJJNJOJ3OrFl61dZg5ZgRKIe5P5FlN1FNSPkTBFE15K1LalkanuextLSEI0eOmK6ipNT5NACQTCY1L/7y0mESCgRBEARBGEU+owVRFLGxsYHd3V309vaaToOxOX7FIooiEomEZrCHuW8CIMtuompQoIYgiLIjz9LIe5mVpbNK5yVBEGC1Wk15cSwkm8Mst3d2dqT/4vE4rFYrRFHEo48+mhWEYYEgZtlNQoEgCIIgiELJ57yUy2jhoGiwvb097OzsIBqNYmdnR0qABQIBjI+PZ72GBWrIiZOoJhSoIQjCUApxXspXOpuvNaiaaIkEURQRj8elgEw0GkUikYDD4UBNTQ1qamrQ0tICl8uFdDqN27dv48qVKxgZGcnYjjybQ0KBIAiCIIh8GOm8ZHYNpqaHBEGQgjLsP57n4fF4UFNTg7q6OnR1dcHhcCCRSODy5csIhUJobGzM2E4ymYTdbifLbqKqUKCGIIiiyZelAZCRoSn0gi8IgmnbfVjFy+7ublaWxuVyoaamBoFAAB0dHTkrYbq6ujA3N4dwOIyGhgbp76yCBgAJBYIgCIIgMpDPkymH85KZNVg6nYbT6UQkEslIjImiCK/Xi5qaGjQ2NqKvr0+z8objOIyNjeHMmTMIBAKS5gLuaTCv1ys9j/2t2rN5iAcLCtQQBKELI7M0ejGTSFBmaTY2NpBOp5FKpbKyNIXAcRwmJiYwOzsLv98vvZ5lc+TPA0goEARBEMSDhtIOuxLOS2bSYOl0WkqI7ezsYH19HXa7HYFAADU1NWhtbYXP5ys4keV0OjE0NIS5uTkcPnxY+uySySSCwaD0PFbZnEqlMiptCKKcUKCGIIgslILA6CyNXgRBqMrFkLkd5MrSeL1epNNpdHd3l/ReFosFDocDg4ODmJ+fx6FDh8BxXEbrE4OEAkEQBEEcbNQqlathh12t1qdUKpVRqby7uwur1Qqfz4eamhp0dnZCFEV0dXWhpqam6Pdh62tsbEQoFMLNmzfR1dUFAJoajOd5WCwWcuIkKgKdZQTxgKM29b8agkBr38qdzVFmaXZ3d8FxnBSU0crS7O3tlXyhlreINTU1IRwOY2VlBZ2dnZIlphISCgRBEASx/9HjvMT0VzU0WCUqahKJRIYGi8VisNls0ky/np4euN3urP0QBKEkDaRMBA4PD2N6ehp1dXXw+XyagRoA5MRJVAxS+QTxgCB3XpJnaW7evImmpiapzaZaQRk1jBYJerI0Xq9X13um02m4XK6S90kpFE6ePIlgMIhkMqmaKSKhQBAEQRD7Cy2jheXlZXR3d+d0XqoWRmowZoctH/KrNFpoamqC2+3WtfZCXJ9ywdZntVoxMTGBubk5HD9+XKpcVkJOnEQloUANQRxACsnSbG1toampyZQDaksRCcVmafRihEhQlhXLhYLP59N0eCKhQBAEQRDmRGm0kEqlNGf6ra+vo6+vr0p7mptiNZgoiojFYhlBGWa0wBJjbW1tcDqdResXIzSY8r1ZFfXly5dVH5e/jpw4iUpAgRqC2Ofkc17Kl6VhN/1mRE9/tNFZGr2UKhKU7WUMv9+P1tZW3LhxAwMDA5qvJ6FAEARBENUll/MSw0yVyoWgR4MpjRai0SjS6TTcbjdqamoQDAaLMlowYt+KeX13dzdmZ2eRTqc1X0tOnESloEANQewjquG8VE2U2ZxKZGn0YlQ2R+04dXd34+rVq9jZ2YHb7dZ8LdsPEgoEQRAEUV6q4bxUTZQaTBAEqVKZ/a8oivB4PJLRQm9v775IHmkFajiOw+joKH784x+rzqmRPw8gJ06ivFCghiBMSq4sjZHOS2atqGFZmt3dXVy5cqViWRq9lBqoYe1panAcB5fLhcXFRdTW1pJQIAiCIIgKIq9UNpvRQiXgeR7xeBzhcBh37txBNBoFACkp1tLSgv7+/qqYGhihWQVB0ExwcRyHmpqaDCdOrecJgiAFdA7ieUBUFwrUEIQJeNCyNEq0sjTM2ciMWZpCAjWiKCIej2e1ZwHAm970JtXtWCwWDAwM4MKFC3jkkUdIKBAEQRCEwciNFuRJMaUGq5bzUiVIpVIZM/329vbAcRzS6TR8Ph/a29vh8/lMU6mdK8ii9fzd3d0MjZlKpVBTU4NDhw5lPT+VSknrlVt2q8E0GM/z5MRJGA6dUQRRYdTmyVQzKFPpihqe5zMEQa4szZ07d5BOpxEMBiu2f3rRGrInimJGv/bOzo5UCeTz+RAIBNDR0QGbzYbV1VVcvHgRDz30UNa2OY5DU1MTQqGQZNmtBQkFgiAIgsiNlvOS2ky/gxqUSSaTGfqEGS0wDdbd3Q2PxwOLxYILFy6gubkZXq+32rudQa5EGc/zUlCGaUxRFOH1eqWZhX19fRBFEYuLi7h9+zba2toytsESX/39/RmW3WqQEydRTkjRE0SZKMR56aAKAq0sTU1Nja4sjdH23EYjimKGINjZ2QHP81K/dn19PXp6elQrgdLpNJqbm7G9vY07d+6gtbVVekxuCzkyMiJZdpNQIAiCIIj8qDkvsX+za+ZBmumnRGm0EI1GEY/HYbfbdRstmFWDpdNpWK1WpNPpDI25u7sLjuOkoExrayt8Pp9q9U0qlcLQ0BDOnj2L2tpaeDwe6TEWqFFadmt9FuTESZQLCtQQhAHkytIsLy8jGAyitrZW03mpmhhVUVNIlkYvhZa3lhNle9bu7i5mZ2czhuj19fUV1A5lsVgwNjaG6elp1NbWSoOD5QPsmFCYn5/HsWPHSCgQBEEQhAz5TD+5BgOAubk5TE5OStrrIFadMqMFedAimUzC6XRKQZnW1la4XK6CtAHTKWZAnvjb2NjAzs4Ozp07J2nMzs5OeL3egvbX4XBgdHQUc3NzmJqakl7LPjvgvmX3lStXMDIyorkti8VCTpyE4Ry8XyuCKDNqWZp8zktmutgpKTRQY0SWppD3qsbnlq89i1XCTE1NlfQ+HMfBbrdjbGxMEgocx2U5Dfj9fjQ3N2NxcRHDw8Oa2yOhQBAEQRxklDP98hktHLRh+3rbq1mgoRTk1UeVRCvxx6qxGxsb4fV6MTg4WPR7sHMlGAyivr4e165dw8DAAID7M2oYzLI7HA6joaFBc5tsrg85cRJGQYEagshBLuclRr5eZovFkvWa/UK5sjR6qUTZbTqdzhAEetqzjLDmBu63LAWDQQSDQVy7dg39/f0ZrU+Mnp4ezM7OYn19HfX19Tm3SUKBIAiC2O+otY8XOtOPabD9WEkjH4LLkkaCIEjul7naq416/3JqMFEUs4IyehJ/a2trhq65r68PMzMzaGhoQG1tbVayjOM4TE5O4tSpU/D7/eTESVSM/ferRRBlolzOSzabzdSBGlZRU8ksjV6MFgnJZDJrZo7VapUEgd72rFQqZWigBgD6+/sloaAUCey5ExMTmJ2dxdTUFAkFgiAI4kCg5bzE83zGNawUDWb2QI2yknd3dzdjCG5zc3PF7bCN1GBq7pfKxF9LS4uuxJ/RyTKLxYLJyUmcPXsWx44dU9VgTqcTg4ODZNlNVBRz/2oRRJmQty4Vm6XRixkrauRZmq2tLUQiEXAcV7EsjV5YaWoxyNuzlFkan8+HhoYGeDyeorZvhOhTrk0uFBoaGhAIBLJe43K5MDg4qMuye2FhAR0dHaivryehQBAEQZiCQowWrFbrgdRgrJI3Go0iFothZmYGHMdJ7dXt7e3wer1Vr4otVoOxamy5BkulUnC5XKipqSk58ZdOpzWTVXoQBCGr5d/j8aCnpwcLCwuqgRoAaGpqQjgc1mXZPTMzg0cffdT0AULC3NDZQxxotLI0yqBMOZ2XrFYrksmk4dvVS74sjcfjQUdHB+rq6qq2j1royeawLI18jYlEAg6Ho+AsjV6MzuYwPB4Purq6cP36dTQ2Nqq+Rq9ldywW29cl3wRBEMT+RjnTL5cddrmMFqxWa5bmqyT5KnkdDgeOHDli6jmGuRAEIaMaOxqNIp1Ow+PxwOfzoa6uDl1dXSUFVpSw7ZeCmttXa2sr1tbWkEgkNINkw8PDeS27gXvHnZw4iVIh9U4cGHI5L7HHmSCoZEuI1WqtWDZHnqWRWxXmytLEYrGqZ220UAZq8mVp/H4/2tvby15ualSgRo329nYsLi5ie3sbwWBQ9Tl6LLsTiQRcLhcJBYIgCKLsyIMyrH08n9FCJaiUBss3b0WrkndlZWXfXJ+VM3N2dnYgimKG+2Vvb2/Zq7GN0GBqGpHjOIyPj+PVV19FLBaTnDjl6LHsZoYObJg1tUARxUKBGmJfIhcE8Xg8o3KG/RhWQxCoUS6RkC9L09XVpdsO2wh7bqMRBAGJRAIbGxtYW1vLmJlTU1ODYDBoeJZGL6WKBGajrZYR4jgOHo8HKysrUiWQEj2W3aIoSplEEgoEQRCEUciNFpj2yOW8VE3KocGU81ai0SgSiQScTqeUGDO6krfSsKTnyspKRjW2fH0DAwNVSfSVqsHUxh0wrFYrXC5XhhOnknyW3ayqm82rISdOolgoUEOYHrkgkFfKMBYWFtDd3Q2fz2fKFo9SRUKxWRq9FGrPXQ7UnA3YsXa73aaZmcMoRCQoy4J3dnaktT3yyCOora3Neg3P8xgZGcHc3ByOHj2qelxzWXbLjydZdhMEQRDFks95aXZ2FkePHjVFUEYNIzQYu4az5JjavJX9nAzRqsZOpVLgOM40M3MYhWiwdDqd1f4P3NNmb3rTm7K2w5Jofr8f169fR19fn+p2c1l2s6AdcN+Jk+M4U96jEOaGzhjCVCidl+R22FpZGofDIf0ImpFCRMKDkqVRBmW0nA3m5+fR3t5eci+y0Wj1RwuCkCEI2NrkZcF9fX2wWCzY2dnBxYsXcfz4cVXx09DQgPX1dSwvL6O3t1d1P3p6enDq1Kksy26lvTcJBYIgCCIfavNk9BgtlGu+jBEUosFY0kh+Hed5XrqGl2PeSqVJpVIZiaNc1dgzMzNob2+v9i5noRWoSaVSWUEZq9Uq6efOzk54vV4IgoDV1VVcunQJExMTGdtgg4QHBgYwPT2N+vp6VXMHuROn0rKbuVmx57F9NmI4NvFgQYqdqBr5sjSAPuclu92OVCpV7t0tGi2RYJYsTTkratQyGfKZOW1tbTmzNKW4PpWTdDoNi8WC7e3tjKAMAGltra2t8Pl8qmsTBAEejwednZ24dOkSxsfHpcfkx2JwcFASCn6/P2s7HMdhcnIyy7Jb6VhAQoEgCIJgFOK8lE+Dmd3+WkuD5UsascSKWdelB7n7JXOYstlsUlCmlGrsasLOWabBotEo9vb2YLPZJA3W3d2t2f7P8zxaWlpw6dIlrK6uorm5WXqMJbqYE+e5c+dw7Ngx1fOAOXEqLbvlFTUAWXYTxbN/f32IfYOW8xLP81kZmWJKZx0Oh+kDNcqy0oOcpZGXzqplMgqZGaTH9akSKANO6+vrWF9fRyAQKMpKk4ngjo4OnDlzBmtra2hqagJwT0Cw7VgsFkxMTOD8+fOalTculwsDAwMZlt1KkQCQUCAIgngQKbfzEkuWmTWgYbFYkEgksLW1lZU0YkGZXImV/YAoihlBmUq4X1YS5dp2d3dx4cIF+P1++Hw+NDY2FhxwslgsGB8fx8zMDAKBgDQPUJ7o8nq96OrqwuXLlzMSanKYZbfciTORSGQZPTANZuagJmE+6EwhDKWQLI1RmX273S71nJoBZZaGlZbevHnTlFmaYipqlDNzlFmanp4eQ7I01QjU6Ak48TyP/v7+oluy5G18ExMTklBwOp1Z1TA+nw8dHR24fPkyxsbGVLfX3NyMcDiMW7duoaOjQzVQA5BQIAiCOMgogzKpVKrszkssUKPmkFMNlK09kUhECmQUmzQqN4VUD2u5XzqdTkmDtbW1wel0lqTBqjG7UG/AaW5uDocPHy7pvTiOg8PhwMjICObn53HkyBFwHJelwdrb2xEKhbIqb+QMDw9nOHFqJcsAkBMnURCk1ImiKXeWRi/VbH3Sau2RZ2kGBgZw5swZzZvsapMrUKO8aEaj0YxBxjU1NWhqaoLb7S7L8ZW7eJWDXAEnn8+nWTprRKBDPmNpaGgI8/PzOHz4cJZIAIDOzs6syhslw8PDmJ6eRjAYzBmoAUgoEARB7HfkRgvKmX6MSjgv2e12JJPJsm0/F3pae2KxGLa2tjAwMFCVfcwH02Bqx0jeIs/+U7pfdnZ2ql7vS6Xcrecs4CTX0Gy2S66AkxH7Jd9GfX09QqEQ3njjDfT09CCZTKKmpkZ6LrPsVlbeyFFadufTYGyd+7G6iagsFKghdCEPyqTT6SznJaB6dtiVan3SGsBWSmuPmVAOMtZ70Sz3Phn1eSqzNKUEnNisl2JRBsYaGxsRDodx48YNuN3urECNWuWNEpvNJgmFQCCgOtOGbQsAWXYTBEHsE5RGC8XO9CsHldBgTJ/Ib+qVlRbNzc2q1/BUKqVpxWwm5O6XbJ3yFvlKu18aWdGsFXBSzmTUE3Died6Q/ZKfJ0NDQzh58iTq6+tVk2VqlTdK/H4/Wltbsbi4mGXooHxfcuIk9EKBGiILZZZmY2ND6rXUcl6qJuWoqDmoA9gY8ovmxsYGQqEQrl27VtRFs5wUU1GjR9CV2qstimLJvexKoTE0NITp6Wk0NjaqXryVlTe5LLvlvdJqkFAgCIIwJ/JK5VgshlgsltVWZDYNZmRFjVZrj8vlyjAi0Js0KtWeuxzIW+Tj8ThmZ2cBQKrGbmpqqnqLfLGBGkEQsoIyyoBTd3d30TMZjWrdlp87bHDw3Nwc3G63qi5SVt6owSy78znRkhMnoRc6Ox5w9GRpLl++jKmpKVMIAjVsNlvRgZpSsjT7hXwXTY/Hg2AwiNbW1mrvahb5WuaMFnR6KUfvNiudnZ2d1SzRllfedHd3qz6np6cH165dw+7ubtYwOzkkFAiCIKqHmtGCfKYfAESjUdy6dQujo6Om1SClzAnU0ify1p5SjRaqHajJ1yJvt9vx8MMPm85MQk9Fs7wKiP0nCEKGc1Zvb6+hCSEta+5S8fl8aGtrw/Xr1zWPhbzyRt4exWBtUq+//rpqZY78ecC9ai9y4iRyQer8AUJtnoye0tlc/bNmwGKx6LpxrtZNPXvvSiAIgiQI2P+KoigFZdQGGS8vL+8Lp4Nq9mqXAzUBxAJnoVAIHR0dqq9jlTd1dXWaQsHpdOLq1asIBoN5hQJZdhMEQZQXpdGC3pl+Ho8HiUTC1L/PDodDV0WNHn1i9E09UNlATSqVygjK7O3twWKx5GyRX1tbM2XLvLKimVUBRSIRKeAktzNvbm5Gf39/2RM/RgVq1L5TXV1dWFxcxPb2NhobG7Mel1feHDt2TFU7cxwHn8+X4cSp9f6iKJITJ5ETCtQcQApxXtJTOut0OpFIJEwz0V8PlcjSFILFYjHcwYjn+QxBEI1GAUASBC0tLRgYGNgXQRgl7PilUilcuXKl6r3ayn0r9oLKjlkkEkFHR4eq2HC5XNjb28P6+jrq6+uzHmeVN/Pz85pCwWKxoL+/X5dQIMtugiAI49ByXpInvPTO9CulYrhSqLWf69EnlbipB8oXqCnWjGA/kE6nsb29jXg8josXL2ZUAfn9frS3t8Pr9VZFX5YSqEmlUtje3kYymURXV1fW4xzHweVy4cqVKwgEAqr3CD6fD+3t7ZpOnIlEAn6/HxzHURs6UTIUqNnnVMJ5yeVyIR6PmzZQw6qCVlZWpBLMSmRpCoEJhWIv2Ol0OmuQMcdxkiBob2+Hz+cravvF2HMbSa4smyAIprMz19sfrVXu7PP5IIoiFhcXMTExkfW6VCqF0dFRzM/PY2pqSlUoMEexK1euYHR0NOMxFkhqbm5GKBSSLLu1IKFAEARRHPKZfnINJqeUeTLsNWauauY4DrFYDDdu3DBcnxiBxWIpKVDDqh6MMiNQUm0NpqwC2t3dhcVigdPphMViMZ1Rht5ADTtmkUhEmjVpt9vh8/mws7MDl8uFlpaWjNewe6aBgQHMz8/j0KFDqse0s7MTp0+fRigUyqq8YY5PfX19GZbdaigrm83yGRPmwRx3PoQutLI0csrhvORyuZBIJAzbXiloZWlSqRRSqZRpq0hYoEbPjXAymcwqnbVarZIgMDpLU0mRoHX8WJZGefyY3bSZUBMJaoG0XOXOiUQCi4uLqnbbyWQSPp8PAwMDOSti2NC6cDiMhoYG6e9yW8iRkRHpM/R6varrIaFAEASRH+VMP7kddjmNFpirkhlmmGhVkSSTSdjtdlNWkRSyL7ncL+XVQKWYESipZACuEH0ZiURw+/Zt1RbraqLUYPJAGgvKxONxTQMJQRAQj8dx4cIF1NbWZtht8zwPq9WKpqYmhEIhzYoY5sR56tQp+P3+jJZ7psGU1c9a5yFZdhO5oECNSVE6L8kFAaNSU/+dTidisVhZ30MNtV5frSzNwsIC6uvrNS2Jq41WRieXZbTP59vX7lK5KkpqamqqWjpbCvF4HDzP44033igqkMYqwMbGxjA7O5tlt80cpfJVxHAch8nJSUkoMBEvD9TYbDaMj49L/dQkFAiCIPIjT4oxHVYtO2yn0yndeFYKURSz3C9zVZFMT0+b0pAgF7nmFsrdLyvRFlyOZJmavizEvdTodn0jYMdMFEUsLS0hGo1KmoetK9+sSVEU4XA4MDw8nGW3LR8APDIygpMnT6Kurk410eV0OlWdOJPJpPR85sS5uLiI4eFhzXXJK5ttNhtpMEKCAjUmQI/zUjWtGF0uF7a2tsr6HlpZGnZTn+/mtxwW3UZisVgQi8Uy5uYYbRldLEZU1KiVzlqt1pwD9PYDauclw+l0Fh1IY33Q+ey2WUVMXV0dPB5P1uNOpxODg4MZJbpKp4FAIIDm5mZcvXoVQ0NDOfeJhAJBEA8Sas5Leo0WKkW5q5rZza/8Gs6C9kyftLa25tQn7Pph1mu8KIpZ1bzpdBoejwc+n6/icwvllKrBlEE1FpSRH79i9GW1j6dWII3neSkAUkwgjVW/NTQ0IBwOZ9hty/WT1WrNm+hqbGxEKBTCzZs3pZk3iUQCdXV10nN6enowOzurOXeQQU6chBp0JlQYZZZmY2MDFosl4yasmoJADTajxggKzdLohZUGmwG1iwvrjw0Gg2V1l6oEpQbV9FLK0N5iyFXdJD8vw+EwotFoVm9zMSgv8so122w2jI2NYW5uDlNTU6qfqbJElwk0OT09PTh16hQJBYIgHljUnJfu3LmDhoYG6WaZaa+DrMFyuSeyKpJC3RPtdjvS6bQp2rPULKP39vbwxhtvmGZuoZxCgwxarVl6K0oKea9KfQf0uHqyQNrly5fR0tKCQCBQ9PuxdQ0ODmJ6elqy21a2GAYCATQ1NeVMdA0PD0uVNz6fL6Oqmb3XxMQEZmdnNecOyveJLLsJOaTEy4RalkbuvMSIRqMQBMF0PaBy9NUcIi8AACAASURBVFovKjEiS6OXalXUyN2l2DrVLi43b95EbW1tzpvkapErm6M3eFGOCwoTzeXYrnJdhVQ3lWoNqRQ/8ou8zWbLuoiz82ZpaQmDg4Oq22QlusFgEMlkMuv3hLVJzc7O4tixY5oClYQCQRAHgXxGC8C937tQKISamhrNGV5mwOl0SvPcCkEZsIhGo+B5Hl6vFz6fz1D3RKbBKh2oUc69Y5bRSnepM2fOYGxszLTXNDUNJg9eMLfIdDqd1ZpVaFBNL+WqqNFyZdXr6mmkBpPPkTl+/Lg0a0lOb28vZmZmsLGxkVEpw7BarZJl9/Hjx7MCNcC9YGu+uYMAWXYT2VCgxgDUsjR6nZc8Hg9CoVC1dl0Xesoyy5Wl0Yvdbsfe3l5Zts3IJXryXVzKZQ9pFGpZGiNKZ0vBCJFQjuwTG7pbCvL3kguF0dFR1fOnr68PMzMz2NzcVB2uLN8Gm22kRC4UHn744ZxCIZlMYmtrCy0tLSQUCIIwNfKgDGsf12u04PV6EYvFTB2o0dP6pBWwYPqkubm5rHbYdrs9YzZHOWBD+9k6C5l7xzSYGStFmcY2W2uWERpMTTcLglCSK2upgRogU4PJXTSdTmfWfQpLdJ0+fVoz0SXfhiAIqudgc3MzwuGwLsvuSCQCu92O2traElZJHATM94u1T7h+/TrC4TBGRkakoAz74hfivOT1erG8vFzmvS0dq9Uq/ThWMkujF6Nbn3iez1pjKaLHTIEaeaVTJBJBOBwGz/MIh8OGl86WQqEiQe9gwFKDhSyjVSxq5cSs33p5eVl1/ywWCyYnJ3HmzBkcP35c9bxj27h58yb6+/tV31uvZffu7q7UEmCW8nCCIAjG66+/jt7eXgQCgZKclzweT9mTPKXChgkz5C6D0WjUFIP6jdZgqVQqq3VJPrS/q6uroBZrMwVqlBp6c3MT58+fl46fWVqzCtVggiBkBZvKESw0IlmmhLloxuNxVW3kdrvR19eHixcv4uGHH865jXQ6rfk+8urnXJbdq6urqKmpgd/vN+3cJ6IyVP8Xa5+yvLyMb3zjG/iLv/iLknqZzT4El2VpBEHAwsICEolERbM0einlc8znTtTW1lay6KlWoCZXpRPL0jgcDlgslpw37tUgV390If3MRlOqSNBq6erp6cGPfvQjzW17PB709PRgYWEBk5OTqs/p6enB0tISdnd34Xa7VZ+jx7I7kUjA5XKRZTdBEKbk3//933H06FG8853vLEmDeTwebG5uGrx3xsHslOPxOObn50sOWJSLUjSYcm4hm3un151ID9XSYHqSfolEAgMDA6qGAdUklwbL13LW2toKn89XlmChVsVKISi/L2yOzA9/+EPNapfW1laEQiHcvn0bbW1tWY9zHIfR0VH8+Mc/zjJ1YOi17E4kEmhsbCQnToICNcUyPj6OT3ziEyVfHFnmh+f5qtsU58rSsBK8tra2qu+nGnpFAsvSyEtnK+FOZLFYyh6QK7bvN5FIZDlcmAGWzcm1Lr/fX/EKLqPLbuV/a2lpwcrKClKplOp62traEAqFcPfuXdVhxsxN6vLlywgEAqrb0GPZHY/HpdlDJBQIgjAbk5OTuHz5Mt71rneVtB2zVNSwuRRaM+EsFgu6u7vh8/lM+Vusp/281PlwpcB0djnRSvqxoIxW8GJlZaWs+1UsTIPlS2ZWuoKr1CHHWq93uVzweDxYXl5GXV2d6nNGR0elRJdaMkwURdTU1OScRaPHsjsWi8HtdkMURUkPmvF7T5QfCtQUSVNTE8LhsCHbYkKhkgOFWZZGb1npysoKOI4zZZAGuN+aJUfLnYitsaenB263uyKZKJvNZqgYVHM1EEUxo++3r69PV0DBCHtuo5Cva2NjA5ubm5idnZWCMoWsq1wUWj6tPA93d3fR3t6u2p4kiiJaWlqwsLCAhx56KOtxjuMwPj6O6elp1NbWZrVgsWqdvr6+nLNo8jkZxONx+P1+yXKVhAJBEGZiYmICJ06cKHk7Nput4pUWuWanyYfgygMWe3t7sNlspv0NVibLtFqRy+FOpAejj7M8sck0NMdx0toKSfqZSYPJ13X37l3JGa3cycxyofZdi8VimJycVB0MbLFYYLfbcfv2bbS3t2c9brfbM5w4leduMplEIBCAIAg5W8zzOXHKB3PzPA+LxVL1zgWiOtBRL4FgMKg5BbwQyhmoyZelYYNH85WVulwubG9vG75/RsCyNOl0GteuXTPM8ttISsnmVHtIYLmQlwRHIpGs0lmW0RgfH6/2rmaQq6KGfdcikUhGCbff74fP50NTUxOsVivm5ubQ2NgIv9+f8fpUKoXW1lbcuHEDd+7cQWtra9Z72O12jIyMYG5uDkePHs04p9m+tbS0IBwOa4oN4J6TwalTp1R/w+LxuBQE4jiOhAJBEKZiZGQEV65cMWRbNptNs4qxVJRtutFoVHV2Wj6HF2bRrdXSWk2Ymcb29jYWFxdVW5E7OzvLZiahh1I0WL55Od3d3aZoPyuUfOuqra2F3+9Xrd6tFvla4vXMKYzH41hYWFCd9ycIAsbGxqQ5MmrtaMFgEMFgENeuXctKuDHHp66urpwt5nInTjXLbuU6U6kULBbLvjvHiNIh1V0C4+PjuHTpEt785jeXtB2Px4Pd3d2S96eYLI1eXC4X1tbWSt7HUsm1RkEQ4PP5DLP8NhKr1aqrvagaJaaVyOawYFMkEtG9ru3tbezs7JR1v4qBBUOUJdyxWCyjhLu5uVk1OJhMJjE+Pi7ZQcrXzPqax8bGpKoZNWFeX1+PcDiM5eVl9Pb2Sn+X20LKZ9GoiY1clt3KQA1AQoEgCPPgcrmQTCYNcaZhybJAIFDSduQVoew6rmw/7u7uLmp2mh7np0qgtUaXy4VUKlUVMwk96NVglZiXo6QSGixfhbnauuLxuOmq6NmYiGLnFLJzoLOzE5cvX1ZNBNpstoyqGbXfl/7+fkxPT6OhoSHjd4NpMD0t5lqW3cpkIDs/WJWNme5tiPJDgZoSmJiYwMLCgiGBmkIturV+pArN0uhF6TpQCfSukd2YnjlzBsFg0HQCAVAfZJdKpbKCMpWYl1NujCoJNkKAG4Gyr353dxczMzMlWZf7fD60t7fjypUrGB0dlf7OAjV2ux2jo6OYn5/PqpphDA4OYnp6GvX19VJljjxQIxcKWmLD5XKhv78/q01KOayPhAJBEGajt7cXb7zxRkawuhiKCdTkGxJrdJuu0+lELBYzZFt6ybfGpqYmaY2CIGB2drbkCvNyodRgWvNy7HY7/H5/zmSL0Ri9feW6iq0wN5MGY+fh1tYWotEoZmZm8s5f1ILjOHR2duLMmTMIhUJobGwEcG+97DMJBoOoq6vD9evXVdvUmRPnuXPncOzYMel7nkgkJDenfC3mgLoTpzxRJt9nQRCQTqdNeY9DlA8K1JTAxMQE/vmf/7nk7bjd7pwX4HJmafRis9lyWs6Vip5BuPnWyHqkzfgjJggCYrEYlpeXEY1GpX5zFpSpZulsKdmccpYEyy+alUKtYos5ILE1uVwuHDt2rOR96+rqwuzsLMLhMBoaGgBkZlLq6upUq2YYFosFExMTOH/+vFSZIw/UAPeEQkNDA5aWljA4OKi6H6xNigkFrc+dhAJBEGaCVTUbEajJ1dpd7JBYI3G5XNja2irb9ktdoxlu6LVgrVlbW1uSlmaV2NWYl6O1j8W8ppzDmUsd2lsM7F6AtY8rzSMCgQB4nsfExETR78FxnNRWf+rUKfj9fjidzqz7h/7+fszMzGRVzTC8Xm9WZY5Sg+VqMWconTi1AjXAve+pxWIxXaUTUT4oUFMC4+PjWFhYKHk7rCRTFMWsIbHlztLohf1IGPHDLQiC9APM/rfYQbhy7HY7kslk1S0O1bIZ7Cba5XKhsbHR8NLZUtAbqCmmdLYUtGysjUJvP7Oyr355ebnkNTKhMDExgdnZWfj9fikIKd/2wMBAVtWMHJ/Ph46ODly+fBljY2NZIgEA+vr6MDMzg83NTQSDQdX9kQsFi8WiOktALhTIspsgiGozMTGBixcv4vHHHy9pOx6PB3fu3AGgnXyodqUrm1FjBOWq5jXDQFyt6zrHcbDb7WhoaFC9rlcTPXoiV9t/uYJN5a6oKcYUg1XUFIv8HHU6nRgcHMSFCxdw6NChLEttlgxTVs3I6ejowNmzZ7G6uipZrcu3wXTe6dOns1rMGco2KbVADdsWcL8N3Sz3EER5ORCBmhMnTuADH/gAeJ7Hs88+ixdeeCHj8c985jP44he/CJvNhsbGRvz93/89uru7AQBf+cpX8IlPfAIA8LGPfQzPPPMMAGB2dhbvfe97EYvF8MQTT+Bv/uZvsr4UdXV1JWU45BmMZDKJ6elpWK3WimZpCsHhcEgXBr0oB+GyH1j5zJyBgQFD1uhwOMpugS2nkGyGIAg4e/asqYay5cKo0tlSMFIk5Opn9vl8mv3MavtUypqVPfLyHuWHH3446/lqVTNKOjs7cfr0aYRCISQSiayADptFo0cozM/PY2BgQFUksG0BIMtugiAkqqXBJiYm8M1vfrPo/ZZf5zY3NzE9PV32eSTFwvRXoWglWMpRzcvaiyqlWbUqsdXmlIRCIUSjUal61WzIAwjFJpGMxkgNlq+NTq8pRi4zB73Iv89NTU0IhUJYWVmBx+PJ0oBerxddXV2a82xYZc7MzAxqa2sz3JoYbrdbtcVcTiAQkCy7WVW61r6TE+eDxb4P1PA8j+eeew6vvPIKOjo6MDU1hSeffBJjY2PScw4dOoRTp07B4/Hgb//2b/GHf/iH+PrXv46NjQ38t//233Dq1ClwHIcjR47gySefRDAYxPvf/3584QtfwPHjx/HEE0/gxIkTqlmbxsbGjB5HLfJlaWpra9Ha2qpq02YW2DA7rYtDrtkkbCaHz+crW4ReaQ9pJOzCKQ86FZLNsFgsugbZVRpRFKWA4bVr1wwvnS2FYoMi+YbM1dXVFd0qaIRIADLLxJubm7G2toaVlRXVbSurZpSwjA37jVNbl9vtRm9vr6btN3BPKDQ2NuLGjRuq1Tvy9yOhQBAEUF0NNjQ0hKtXr+bdR1aNIL9+K69zTqcTR48eNW2lYL7K13wOn5VIsDANVo5AjVq1Oc/zGdXmvb29mm25anMCzQDTYOFwGKurq7qH4laCYjVYvgRtKUnoUjWYWlfAyMgITp48iba2NtXPub29HaFQCGtra2hqasp63OFwYHh4GHNzc5pdBy0tLQiFQjmdOJllN8dxOe8pyYnzwWLfH+Hp6WkMDAygr68PAPD000/j5ZdfzhAJb3vb26T//+ijj+KrX/0qAODb3/423vGOd0h9g+94xztw4sQJvPWtb0UkEsGjjz4KAPiN3/gNfPOb31QN1LD2J/mXqpip8UxImBk2UNjv9yOZTGb8EJvBrtButxsybC9f9UUx2Qwz3Mxqlc5yHAer1Yrm5uaq92kr91fPwOF8s42MdKAwOpvDGB0dxX/+539qWq/Kq2bULuBOpxNDQ0M4f/68pqBra2uTLLvb2tpUn9Pb24vXX39d1U5SuQYSCgRBVFODORwO8DyfUcWRqxqB3SiqXedWV1eRSCRMaX/NsFqtUutpuRw+S4EFarQqMvViVPWFHDMEarT0Cs/zsNvtaGxsNJVjlh4NxvN8xnrK7VTKzv9iUVuT1WrF+Pg4zp49qzrvSl41EwgEVLV/Q0MD1tbWcrZljY6O6nLifP3113OukZw4Hyz2vcK+desWOjs7pX93dHTg5MmTms//0pe+JF3s1V5769atjOnb8r8rEUURra2t+Na3voWXX34ZPM/jV37lV3RZ9CrxeDwIh8O6111J5IGntbU1LC8vm7I82G63IxKJFPQaI4YYm5FCSmfD4TAikUjeqrBKoyy7VetnFgShovObjBAJathsNnR3d2NpaUk1IyOvmgkEAqrnIzt+q6ur6OrqUn0fuVBQuyHhOA7BYBB37tzJmZ0koUAQBFBdDZZOp9HS0oK/+qu/wvLyMoaHh/HTP/3TRVUjMOcnswVq5NfyVCqFs2fPQhCEsjl8lgKbE1gI8uqLSCSC3d1dAMZUX8ixWCwVDdTkmr/i9/sz9MqVK1fQ1NSE2traiu2fHpQajFXNR6NRRCKRoh09SyGdTpc8h1Kr9cjtdmNjY0NVPzkcDgwNDWF+fh6HDx9W3UZ3dzdu376NnZ0d1dYlPbbfLpcLDocDi4uLGZbdamsgJ84Hg30fqCmEr371qzh16hRee+21orfx7W9/G9/73vek7Lbf74fNZsN73vMePProo+jp6SnqC8NEQjVRKw+Ox+NSe4/P54PdbsfIyIgpfxTyzajRM7gs181pqZRr0F6+Vp98YrUU16dywQJorGXQiIyaERRTUSOfZbS9vQ2Px6NaseJyueDxeHDt2jVVO0g2+G5+fh6HDh1S/Q66XC6srKygrq5OsoiUY7fbM4SC2jZ4nkd3d3fOfmqAhAJBEIVRqgYTBAFf/OIXcfr0aZw/fx6JRALpdBqNjY34hV/4BRw/frzo9nGmwarZfq5MHEWjUenG1OfzwefzobGxEc3NzVXbx1zk02DK9vjd3V1YLBZJX5bzRp+ZdpQDeQUQCzYxveL3+/POYjSjBkulUkgkErhz5w5isVjWwOlqOZUWkyyT23tHIhGpok6J1+vF1tYWtra2VINmjY2NCIfDuHnzpmowJ51Oo76+HvPz8zh+/LjqZ1NbW4v6+npcu3YNAwMDqvtrt9tht9uzAtZKyInzwWDfB2ra29tx8+ZN6d8rKyuq/X/f/e538ed//ud47bXXpC9oe3s7/uM//iPjtW9961vR3t6OlZUV1W2mUim8/e1vx+///u+jqakJ29vb+Lmf+zm85z3vKWkdDocDiUSipG0UQjHlwXt7e1haWjLtDZl8Rg27cEYiEUkQmOFGv1TXrEq3+lQCrWMF3LtwmmmoNs/zOc+ZfM4MPp8PKysrCAaDWXaPyWQSzc3NuHv3rqYdpHzwnTwTDdzPfjH3AC2hEAwGEQwGNQNC8XgcnZ2d2NnZydlPDZBQIIgHnUpqMFa998wzz+Chhx6C1+vFN77xDZw7dw5PPPFESevweDy4e/duSdsohGISRysrK0in0xXbx0KRazCtuYzVao83qvWJVQDJ9QqzMff7/Ya3+lQCrWOVSCRgt9vR1NRUlaCMGvk0WC6N7Pf7UVNTg0uXLuH48eNZ20mlUhgZGcHFixc1XZ6GhoZw8uRJ1WRYIpGQzCmuXLmCkZER1X1kTpz19fVZTpwsEKW07FaDLLsfDPZ9oGZqagqLi4u4fv062tvb8dJLL+FrX/taxnPOnDmD3/7t38aJEycyBkE99thj+OM//mNsbm4CAL7zne/gk5/8JOrq6uD3+/Ff//VfOH78OP7xH/8Rzz//PADg53/+5zO2HQgEpAtsKTfgHMdJpZlGf9lKrbhgsGHCZoMNw41EIohEIpiZmTHlhdNisRR0nqgNzxMEoWQbcyWVzOaolTlrHavl5WV4PB7VgEUh3PjOd3DlS1+Cb2MDOzdvAjU16HvqKfT90R8V/J1NpVLS560MykQikbzODKlUCj6fDxcuXMhycUomk3C73ZicnMS5c+c0XZ6Gh4cxPT2Nurq6jAs4G/TNMniLi4sYHh5WXUd/f78kFJSZI/YblK+fGiChQBAPOpXWYM8++2zGticmJvD1r3+95HV4PB6p7cZolMNVWTJCPk9GT+LI5XJhe3u7LPtYCmyI8cbGBnZ2dnDnzh3TtccXE6jJZZBhZKtPJTWYlguY2rE6ffo0WltbTTWHTl7VXIy9dzKZhMViwaVLlzAxMZGx7VQqhZqaGnR1dak+Dtw7jyYmJlSTYczeu6urC7OzswiHw6ouYxaLBZOTkzh79mxWQIhZcystu7XOMbLsPviY59tXJDabDZ/97Gfx2GOPged5vO9978P4+DhefPFFHD16FE8++ST+4A/+ANFoFL/8y78MAOjq6sK3vvUt1NXV4U/+5E8wNTUFAHjxxReloXaf+9znJGvIxx9/XHWQMKO1tRWrq6slWy+73W7EYjHVlgW95JuMX0rFhRmci1KpVJbgYaWzNTU1sNlsOHLkiCki/0qYUFDbt3IMz6s2cvt5tSFzHR0dOV3ASrWGTO7s4P/5hV/A8unTEAUBbQA4AG4Apz71KcS/8AUMfPe7cKpUlShhFWhbW1tIJpMIh8NF22VquTglk0kEAgF4vV50dnZqujxpXcCZSADuuwesr6+rlvJrCQW5y4P8fbT6qQESCgTxIFNtDTYwMIBr166VvA673W5ItYp8jofRw1VdLhfW1tZK3sdikbfxytvj2VxGljgYGxsz3XUgX6DGbBVARqB2rApxATPSnrtU2L1NNBrFG2+8gb29vaI1cltbG9bX17NcnJiTJXN5Wl1dVW0z1EqGJRIJeL1eaabg7Ows/H6/ahLc4/Ggp6cHFy9ezHDiZIEa4F4hQFNTE65evYqhoSHN9ZAT58GGyxPFNVfTpEn5vd/7PbzlLW/Bz/7sz5a0nevXr8Pr9arav6mR7+aetVoYeXN/6tQpHD58uCI/3vmcpWpqarIunNPT0zh27FjZ960Yzp8/j6GhIdjt9izrQlZVIj9ulapO2NzcRDgcxuDgYNHbUOs9l/czMxFXyHmztLQk9fMWys7yMv7lp34K0Z0d6W8uAHW4F6xx2O1o4DgEAQyePJkRrGFBGVbaLK9AS6fTGcMbC4UFU+x2O06fPo3u7m4p4zI3N4fu7m74/X6IoogzZ86gs7NTc8jz0tISBEGQjtva2hq2t7elf8fjcczOzuLYsWOagdlbt25hc3NTyhzF43FcuHABR44c0XwfLQRBgNVqJaGwP6EDZk5Ig+ngyJEjeOWVV0puv5ydncXDDz+sWzPlurln1z4jZ66kUinMzc3h8OHDhmwvF/naeOW25uz3PhaL4erVq5icnCz7/hXDzMwMpqam8laVMG1ZqetYKVoHuG/NLtcsSvv5mpqagl3AZmZmcPTo0YpfzwVByNLI7N5ma2sLIyMjCAQCRWlkVrnM87y0PpZg+/GPf4w3v/nN0vOUj8sRRRGnTp1Cf3+/FFy+ePEiWltbpXam1dVV3L59O+dQ4HPnzqGpqQmtra0A7rU3sjmB8vfp6+vLeX6IoghRFGG32/dVQpeQ0PyS0dE0gImJCSwsLJQcqMk1UDhfdUJbW1tF2nuYRXepU9eVqEX+iymdZVU/ZskCyI9bNBrFuXPnMgIY7e3tOatKzEilMk/FHsfE+jpeeetbwaXuuU/YAaQBxAF47cBeCkimUhCcACfacOtdPwv3v/1/iFrtWW2BdXV1Ga5fi4uLCAaDRbuAsRZHuYsTy7jIK2KYHWQulyfW57y5uYlgMCi1PjFcLhf6+/tzDgVua2tDKBTC3bt30dLSkpHNkb/PqVOnsLGxIQkSrbWRZTdBEJVmaGgIS0tLmjMh9MI0mN/vz3pMrlGi0WjOlpFyYbPZyjKjphCXyFzIZ9SYBflxi8VimJ6eLqiqxGyoVTWxa7/P54Pf70dra6th1uzl/lyUbYHM3lrL9WtmZgbBYLDkURNKFyclDocDw8PDmi5PTMOdPn1aSoYpNVhzczNCoVDOocBjY2OYnp5GbW0t3G434vF4hmMUs+yenZ3F1NRUTlMQgJw4DyKkpg1gYmICP/jBD0rejsfjwfr6eobTjVp1QiUs8LRgc2qKDdRolc7KszQtLS1FX2SYUNDTgmI0am1ZyqqSzs5O01kw5uqPLqSf2WiKCtSIIn74s2+DPbKNHo8Dm/F7KWmLBfAE3LDGY8BPdORaisNUbRpXVzfh+KMPof5L/5K3LbAY16fM3bv/OTudTgwMDODChQt45JFHMgI17PFcLk9MKJw5cwbHjx9HIpHIsoRsaWlBKBTSHArMAkJMKKgFatQEiRokFAiCqAbj4+NYWFgwJFCzu7sLh8ORU6M0NzdX5eae4zjpel3se8uHrTK9UszMQjWMGthbDFoBDHlVidPp1HQ7rCZaGkxPVVN7e/u+cV1UC8oUM0+ylHNfTmNjo2TO0NramvW+DQ0NCIVCmi5PbrcbfX19uHjxIh5++OGsQA2AvEOB7XY7RkdHpRbzeDyeVUXNkm7sfciJ88HiQAVqTpw4gQ984APgeR7PPvssXnjhhYzHf/CDH+CDH/wgzp8/j5deegnvfve7AQCvvvoqPvShD0nPu3TpEl566SX84i/+It773vfitddekwaafvnLX8YjjzySsd3R0VFcunSpqH2W3whHIhFsbGxIEVWfz2e6vlhWUaMHPRcZpbNUqdjtduk9yolaVYnNZstpXSh3MzIT7LNn52IkEsnIGPr9fvh8vopnnuTzUvSy9MEPYOfWbSQFHuuRGAJ2+73qGQGIbsbQ5gKsdmAjBQiCCB5Agx/Y+dFJdF/8Efif/h9zbr/UQA2QKTJYxuX27dsQRTHre57L5Qm4d2PR29uLhYUFWCwW1cF1o6OjOHnypOZQYLvdjpGREczNzaGhoSErUAPcEyT5qnPY2kgoEMSDSbU02MTEBE6ePImnnnqqoP1VVpJsbGwgkUhI7jDl0CilUojGKefMQjUqNRS3WG35xhtvmOY4ymGfm9L0o9g5eGaA5/msdnjlrKZqVZPL33N4eBgnT56Ex+NRDU7mcnkC7s0oZRqOtX/LYbP+5ufnNWf91dXVIRgM4vr166rJMuBe0i0cDpNl9wPIgQnU8DyP5557Dq+88go6OjowNTWFJ598MmMYZ1dXF7785S/jr//6rzNe+7a3vQ1nz54FAGxsbGBgYADvfOc7pcc//elPS4JCDZ/Ph1gsljPLoYz2R6NR1cFec3Nzqtlzs+ByuVSdEeQXGebAlE6nK36RcTgchpfeGlVVwly9zID8XNzY2MDu7i52d3ernjGUoxa4UIOJ0c0f/QgX//X/QjSdQvoniRNPjYjkjy8TtgAAIABJREFUxv3nbqWAtwjAjz0ORPaSWAfQbwHOpwTwn3g/8H+/FfDWqL0NAOMDNcD9jIvWoG4tlydGa2sr1tbWsLOzg76+vqzHbTYbxsbGcg4Frq+vRzgcxtraGgYGBlT3I191jnx9q6urUnaWIIiDTzU12MTEBL7yla/k3D897pcNDQ1YWVlRdXsxC6yqWamlzGJIUGrFjxKj2rIYZmiNV56LoVAIACT9VUpVUzWQt/hHIpGyuWMZEQRUnpdWq1UKpKg5jDKXp/n5eU33JeaQqbV/gUAADQ0NWFpa0pz1x5w4lZXVcgqx7F5aWsLAwAC1oR8ADswRnJ6exsDAgHSj8vTTT+Pll1/OEAk9PT0AkPPH4hvf+AYef/zxglt7Ojo6pEinnmi/Vg8pCzSY9Qfa5XJhfX09q3wxnU7D4/HA5/NV9SJTSo80G8imNSXf7/eXVFVitVor7pqlpxzY5/MhHA5jdHS0ovuWDzVBxYIyrOpnZ2dHEqPRD/8viCSTSAv3L5axeGY//x4PiC4rjro4/CAFbPg9GNncQ2uAw87tCJpe/BXE/vu/ae5TOp0ueg6UIAiqF3KbzYaRkRHMzs6qCtx8GRnWvvTqq69qnl/BYBB1dXW4fv06+jVcrgYHB/Hqq6/mnIGg17J7bW0NTqdTsvomCOJgU00N1tvbi+XlZenf8koSdp3geV6y7dWqJBEEAbFYTPf7VgOn0yk53mgZEijnelQSNkenmGy+nmBaKdqSabBKBmpEUcyykFaei8y5VK+RSDXJZxzR1dVVttEMRrSeq2n3QCAAn8+nmoQGIGl/Lfclu92OoaEhnDt3TvM9lDMFlVgsFkxMTOBHP/oReJ5XXWchlt23b99GT08PrFaraRP/hD4OTKDm1q1bGa0BHR0dOHnyZMHbeemll/DhD384428f/ehH8Wd/9md4+9vfjk996lMZkXue57G4uAiLxYIXXngBN2/exPHjx/Frv/ZrRUX7vV6v1CNtBpSlsyxaLggCampq0NjYiN7eXtOU2OkN1LBgmjzgpBzIVsqsHDXK3b9dbDlwJBIx5Q85yxBubm6qZghbWlowMDAAq9WK8P/+v2ExtJF17Lf3AJ8VSMs+9r06EbW3E5jsBFZ27w3vbuZE3PQEYL3yGmyvfx3p/+F/Vt0nvVU+ytcwF6lUKqUaKPF4PHA6nbh+/bpqVQzLyFy7dk214sVut8PlcuHixYuaLg0sY1NfX686J8liscDlcuHq1atoaGhQFfl6qnOAe+5RbrebLLsJ4gGhWhosHo/j/PnzSCaT+PVf/3VcvnwZv/u7v4tjx45JN799fX26bvAsFovknmKW3yzljfH29jaAe1WQPp/PdIYETIPl04TyWTlaAQwj27KA+xqsXFUGbE3yRJK81UxLL0cikbLsT6mIooiNjY2yG0fopdhADbuP2dragsfjUQ0Cs0TW1taWqj7q7e3FzMyMpqlCPg2nnCmotg6n0wmXy4VLly5pVvXpsexmwUiWfKY29P3NgQnUGMGdO3cwNzeHxx57TPrbJz/5SbS0tCCZTOK3fuu38Jd/+Zd48cUX8fGPfxzf+973EI1GMTQ0BLfbjbq6Onz605+WbNaKgbkOVKNlQE/pbF9fH86cOYPx8fGK758e7PZ7zj1y2I2yvDSTlc6yoEwlBrIZGagxshy4Un3luVAbMsdEQW1tbc4MoZhKIfo3n4HP68JmIpn5GACv34XtzftzlaJeL2qxg/abwN2We3+zpgG/IwouDTi/9DGkf/p/Aoo4F5THhbUAut1u+Hw+bG9vw+PxZP1GJJNJ1NbWYm1tDQ0NDaquI0woNDQ0ZAkJURSleUJvvPGGlLmWY7FYMDk5ibNnz+LYsWOqQoHjOHR2duLSpUua3/Ha2tq8ZbxMHJBQIAhCL3o12PPPP48Pf/jDmJ+fh8ViwUMPPYTa2lq8613vwuc+97msoeqF4HK5pEBzpdHjqJhMJrG+vq7521tt1JJlyoTfzs4OBEHICGDoDaaVgpEaTG1NoihKgaZC1mQGDaZ27sViMYTDYdTU1KC3t7eiluVq6KlozmXt7fV6sbS0hEAgkBWsSafT6OzsxMWLF1X1EXNf0jJVSCQSqK+vx9raGurr61XbqNhMwYsXL+Khhx7Kejwej8Pv9yOVSmF1dRXNzc2qa+zt7c3pxMnm3LB5NeUMThLl58Acufb2dty8eVP698rKSs45Cmr867/+K5566qmMLyC7oXI6nfjN3/xNqbf6l37pl/ChD31I+jKeOXMGn/nMZ0oK0gD3nZ/KjZbdt97SWTNlnOTY7Xbs7e3h7t27WaWzPp8PtbW1VRvIZrVai2rLKnc5cKXRO/n//PnzGB4ezptR23v+t5AOb6MTItYtgKPWgXaLAHssDZEDLC0+7O3FkUr85Pk/EUQcgCEeiDsBVwLw3+bBjwCWrTDs3/40Uu/6w5zvW+hx4XkeyWQS8/PzCAaDGQPjWOVTX18fzp8/j+PHj2d993IFWlimaXBwECdPnkR9fb3qzYrH40FXV5dqxoYJxY6ODpw5cwZra2uapdi5ynjZbwP7fSChQBAHn0pqsJqaGjz//POYmJiQfl8/9alPSS29pcCSZeUO1BQ7+25vb0+3oUM1sNls2Nrakq7x1ZqVo0axgZpyz/+ptJbWc+653W7Mzs5qVm1UA2VFjfy4RCIRybBDy9o7lUrB7/dLbeTyzz2ZTKK+vh52u12zosXtdkvmDcpASyKRgMvlQldXl6aGA4C2tjaEQiHcuXMn636RBYhZUi4QCKgOFpZbdqsFjWKxWMaIBnLi3N8cGOU8NTWFxcVFXL9+He3t7XjppZfwta99raBt/Mu//As++clPZvyNfZlEUcQ3v/lN6cs7OTmZ8byRkRFcvny5tEXgnkiQix0jUJbOljroq5QeZCNR9v5Go1Ekk0nwPA+fz4f6+np0d3ebJoChRyTku/mvq6szfE3lzOaUMvlfTy+5sLmB9W/++73gAIBDzQHsrW6Dky2nUYhiog74gQis3QV29+73IftDgGXSC9zYhS0BcAGA2+Dh+PbfIvXYH0hVNaIoSo4Zi4uLWcdFb5m23GFJ3qLESsV9Ph86Ojpw5coV1ZlBWoEW1rbH+pzZ4Ds1odDe3o5QKJSVsWHbYCW6TCioBTVzZZfkrgUkFAjiwaCSGsxms+Hw4cMZz5uYmMBrr71W8jpYoKa+vr7kbQH3Z99FIpGcRhJ6Z9+xYcJmQC3pkkwm4XK50NzcXNVZOWro0WBqawKgefNvFOXSYLncPHOdezzPm+p6zbTk3t4eFhYWso5LW1ubruMSDAaxvb2N5eVl9Pb2Sn9nlb/19fUIhUKaiSoWaLl79y5aWlqkv8tHJ3R0dODy5csZ87nkjI2NYXp6GrW1tRkB4Xg8DqfTCYfDoaoT5TDLbjUnTnmgmZw49z/7PlDDbjZsNhs++9nP4rHHHgPP83jf+96H8fFxvPjiizh69CiefPJJzMzM4KmnnsLm5ib+7d/+DX/6p3+KCxcuAACWl5dx8+ZN/MzP/EzG9n/1V38VoVAIoijikUcewd/93d+p7ofb7UYymSx5UJnT6SzpIqyndLbUnlImFCoZqMlnM8l6fwFgfn5etfWj2ihFQjV6tNUwKlBj9OR/PVVbsU/+r0js3fu+1DiAJL+LmGIp8Ugc3j3gHVbgux0u7O4qspGtPHDjJ/+fxSQiCSRP/DGW+39TOi4s+FDscWHrYUJA3qIkn/Tf2dmJ06dPIxwOq9ptqwVa5C4gTLRoBXvY8GFlxkYeYHE4HBgeHsbc3ByOHDmiehzcbjf6+vqkMl72HJbNkb8fCQWCOJiYRYNNTEzg85//fMnr8Xg8WF1dLeq1pRhJ6MVisVTclADQrsJWJl1CoRDi8XhOC+FqodRgehJJXq+37IEmozSY0jhCGRAsxM2zmlXzWlXXFosFdru95OMyMDCA6elp1NfXS23m8hZtuT5SS1TJAy1MMyUSCcmJiWm4UCiExsbGrNfb7XaMjo5ifn4+IxATj8elikDmxKkMKMnRsuyOxWIZ7fHsN8MMCXaicPZtoGZ9fR0LCwt47rnncPToUTz++ON46qmncOXKlYzn/dmf/Zn0/6emprCysqK6vZ6eHty6dSvr79///vd171NPTw9u3LhRUpCAtQzoCfgo7b6LtY0uFKfTiXg8Dp/PZ+h2Gbl6TPOVmYqimNO1ploIgoBEIoFIJILLly+X1M9sBiox+V8QhJznrsinsf7PLwEAapr9iK1GIIbSsLqs4OP3xVg8AsAG2HjgbckUvm2zAbh/joi+JMQxF7iLcYh7AJoALhSF/8pLaDj+B9Lwv729PVy7dk21J1gP8kHEg4ODmJ6eRkNDA3w+H5LJpNRGySpaTp06Bb/fn1U9JRcStbW1UnBXLii6urowOzurGexhGZv5+XkpECMP1ABAQ0MDQqEQbty4ge7ubtU1tba2IhwOZ1h2KwM1AAkFgjhomE2DdXV1GVKNzCpq8qF3Tlw5gtPs97RcFQ+pVCorKCO/vudKuqjNCTQD6XQaiUQCq6uruHv3btkspCuBskqLmWHI3TxLNcOolDuWPCjD2pe0qq5XVlZgsVhUZ/jphVX2TkxMSO5JVqs1I1nmcDgwNDSECxcu4NChQ1mfoVpltFyDKTWcWrCnrq4OoVAoIxATj8czAjvyVnatNatZdsdiMbS1tWU8j+M4pNNpWCwW01S4EfrYH3eFP+EjH/kIXnvtNWxubkIQBHR2dmJ5eRlvectb8PnPfx5dXV04duxY1fZvfHwcCwsLJVdzuN1uxGIx6Uunx2K5kEh5qbBhe0agjJzn6zHNhxmGsmkFmpxOJwRBqGqPthr5PrNKVGnl2jct9j77CSR2duFrA2K377kmcAA8Xgt2ZIGa1C7A198bGOxM8HhTF8AnAOtPjBaEqADbQ3HwFwEh4YVlMAZuTYDVk0BT6P9Fuu7XAJRuDSlfj9VqlSy3jx07liESgHvB0IGBAVy8eDGrrBW4LyTm5+dx+PDhrEANEwqzs7OqwR4AWZU9ykANAAwNDWF6ehp1dXWasx+Ult17e3uqooKEAkHsb8yswZhr3d7eXkHW3kocDkfWLDmzzYljybJS1skw+vrucDiQTCbzP7GMaAWagPvtw5V0K8pHLg2WT//7/f6Sq7TUKEegJl8FU0dHR04Hs3Q6XdI5L/+MfT4fWltbsbi4iJGRkSxHz8bGRqytrWFlZSXDzY6h1E+sco7hdDoxODioGewB7ifsWCCGtT4x2FzCXDNv1Cy71ZJlyjZ0qmzeP5jjTjEPPM/DarVibGwMU1NTOHLkCAKBAOrq6vCxj30MH/3oR/GFL3wB169fx7Fjx3DixAl84AMfAM/zePbZZ/HCCy9kbO8HP/gBPvjBD+L8+fN46aWX8O53v1t6zGq1SvNnurq68K1vfQsAcP36dTz99NNYX1/HkSNH8E//9E9ZF+XJyUksLCzg8ccfL3qtoijCbrfjzp074DhOtXRWzWK5krhcLmxtbRX8Oj2ls0aVmVaqbLOQfuZYLIarV6+qWv+ZBTXRZrPZpPWYYfI/AIg8j/X/4+9h9zmQCGWKQps9+yKf8AKee66maLwBxN8M7J24929+616AB50AtneBeg6iF7BYo3Bc+gzSw8YHagDA7/ejubkZV69eVbUzbW5uxtraWka1ipzGxkaEw2HcvHkTyWQyK5DicrkwMDCACxcu4JFHHlE9ZkNDQ1LGRl52y7BarXln3igtu2OxmKpbAQkFgtif7BcNNjo6iitXruCRRx4peq2srejWrVuIRqNSm3WlW5JzwdrPC71pLXaAcSGouT6Vk0ICTaxiq1zV4KWi1jrHhtRWWv+XqqG19H4pFUxGa7Du7m7Mzs5qGriMjIzg5MmTqKurkxLncuT6SZlsA4CmpiaEQiHNYA+r7GGBGGWwB4CumTdKy272e622dkEQyIlzn7EvAjXshHvmmWcAAC+//DLOnj0LURSxtbWF559/HsFgEE888QR4nsdzzz2HV155BR0dHZiamsKTTz6ZcYJ3dXXhy1/+suTgJMftduPs2bNZf//IRz6CD33oQ3j66afxO7/zO/jSl76E97///RnPGR8fx8svv6x7Xax0lg35YqWzHMfBZrOhs7Ozag5FuWDZnFwYPcC4EGw2W1lcZrRKNJVuRVqBJqvVaqq2LCbaNjc3sbW1henp6Yq0zhlB/PN/hcTaFryNHBLRzMcEFbOOvWYvPNv3hwh7OoB4oxVCiIewcW9msOUwILzKgYOI9ENeWDf3YLEuw7L5nxCCbzJcJAD3yv1nZmak+S1KWLVKXV2dqgsJEwpOpzOr1BW4F+wJhUJZPcwMlrGZm5uDy+VSdRjIN/MGyLTsVsvmyNdPQoEg9hf7SYMtLCzoDtRoufmk02ns7e2ZrvqVkU+DsdaYXPNKChlgXAjlDNSUGmhiLS5mQB6UCYfDiMfjWFlZyWqdq5b+L6SiplJ632gNJq88Vjtn5JXPU1NTWfsvN2/QCmzlC/bIAzHK/WN0dnbizJkzmjNvgPuW3eFwOOfnTJbd+499c5Q2NzfxD//wD/je976Hzs5O9Pf3o66uTpq67XQ68Z3vfAeHDh3CwMAA+vr6AABPP/00Xn755QyRwFqTChlq+v3vf19yMHjmmWfw8Y9/PEskDA0NYXFxUXUbuQbH+ny+jNLZSCSCW7duqc6WMAPK1qdqtsaowYRCKT9C+ap/8pVoqmG1WqsyBBDIPfnf6XTC6/VqVl1UC7V9kYZK//3/CXdzDRKrKr3w0exh3DF/pqjl0oDnMQ+iX90BH7r3N4sH4JMceIhA/R6E215Yx6JwXPzviP/UN8oSqGFC4Yc//KHq8202G0ZHR6VqFeXrWcXL9PS0ZoaX9TDX1dWpZmB9Ph/a2tqwtLSkGqgB7t1Y5RqOB9y37GY3BFqQUCCI/cd+0GATExP4zne+o7qNQqpfl5eX4Xa7TVv96nK5sLt7L/HAbvjla5M70Bgxr6QQLBZLRQbjFhNoKtaeu1TyzTNyu90IBoOas+CqgVagJt98wnLq/VI0mCAIquely+VCZ2cnlpaWVF8XCARQX1+Pa9euYWBgIOtx9v26fv266utZsEfemvT/s/fu4W3cdfroOzO6S9bdlmzJ92tiJ83FidOW0kDp9pCy2XbLPgRKC4TSPZwuW57frwsFuu1SWNqecrgsPfzY5bdQykMvLLuQzVkILUvblLbY8S2+JbYT24nt2Jbvut9Gc/5Qv+ORNCPJd7nofeB5GmskzUij+b7zfj6f900GMR+Wuj8QJnFKed4IfXHEBCHhdkA+iXMnYUewZI7j0NnZCbfbjQcffBDNzc2ihp5utxsvv/xyQouZ0+lEa2tr1u8VDAbR3NwMmUyGhx9+GHfccQfm5+dhNBr5C4TT6RQ1vSMeJD6fDz09PdDpdFAoFJIJRVI3M9ma2W0HyA1/IBBAb2/vlhkYrwZkRlqqqp+MTAvPRlUDtiqtYbXO/8FgEIuLizkl0gDx373QLI9UO4s7X0WldQGcksGleYBLalJiZwFaBcQE2kw46WPngoDa4EGgDGCvAhzi40+xGyhQLAU5OEQoP2gtA9n4WXBcFNFodNUeBMKuOY/HI1qd1Wg0UCgUGBwcTIjcJjCZTDAajRgdHeVvfoTQ6/VgGAZXr15FXV1dyuPJo0li53FZWRmGhoawuLgoKhALSYDBYBD9HIjJ8Ztvvik6yiXcDsgThTzy2CnYKRysqakJ3/3ud7GwsIC2tjbs3r0bXq83rUGpGLRaLS/k5BLIeuL3+zE7O4ulpSX+hl94bNvdrbgaoWYrjHEJtkKoSV7zs/Ezunbt2rYV8aRAvsPFxcUUbrxdRdi1CDXEM9LtdiMSiYhyJJPJBJqmMTU1heLi4pTHSRHKarWKird2ux0jIyOYn5+HxWJJeZyMJl2+fBm1tbUpj1MUhaqqKnR0dKT4DRIk+xJKJXHabDbMzMykHV0TcrDtvlbkkRk7QqgB4ifg5z73OdEfwY9+9CN87GMfW5cTOMGVK1fgcDgwMjKC97///dizZw+fxiKGYDCI3t5edHZ2oqOjAxMTE7jppptQV1eH+++/HwcOHFh16ywZ3dlupLvhp2kaVVVV2y7KiCFd622uGuOuBRtFcHLh+xMzYPb7/ZiYmODN8ki1U/2/PwNaXQB61g1TvRYL/fHKoqJEBWtlGLpADFwJ4PYbMOHyINgXQzjIAFj5TXF+BoyRhermAvh+6kGEUkLBhUA7OXBRCmA4cCYAFAvQFGS+ryMavTetJ0Amw0mapnHx4sWUtnziSxWJRBIit4UgcZJWq1X0OqdQKLC0tITFxUWYTKaUx41GY9qqEBC/xg4ODkqaDxNzvL6+PklzPNLuTEyQpZCP7M4jj52FXOVgCwsL6OrqQmdnJzo7O3Hu3Dl86EMfwu7du/HlL395TcaxGo0GLpdr3ceyHqRbT0gRavfu3Tk3Gg9Ip1IJjXFJd6+w+0ev12+qB8tGCzWZ1nyz2Yzy8vKMBZ5cWP+SuTHp+if8eKtFGTFkEmqEPJLYE5BwEp1OB6/XK+r5Fw6HYbVaMTIyApPJlNJZTEbEu7u7cfjw4ZR9CIfDsFgsuHjxIg4fPixapKqsrMS5c+ckORrLsjCbzWmFGOJLmC6JU6VSQS6XS3obEpDO5nwSZ+5jRwg1FEXhhhtuAADcf//9uPvuu3HzzTeD4zicOXMGv/zlL3Hs2DHY7XY4HI6EiMaJiYm0J2syyLZVVVU4evQourq6cNddd2FpaYm/SJDXZFkWH/jAB9DQ0ICDBw/i05/+NKxWK5qamvDnf/7n6zpmcuO2FT+gbFKlkm/4fT4fZDJZTiwwySCf3VYY520VNtv5fyuTsoS+AMmLKWlB12q16OzsTDFPo7v/AGZmFJiKH6OpgMUCBRQ1USgKBEFPvXM8ZRTUoWUUGoArdzBYupToGxQOGCHDPNRaD5ZKFPBQDCwcIIvEEJBZoMA8aFUMsRDAFaqgvPoTRGUf5RfoTARNzHAyHA7j8uXLKVUbslAmR24nHLdInCQBIcR79uxBZ2cnWlpaRMlMuqpQKBSCWq1GaWlpWiGmqKiINzAuKytLeTwQCMBkMiEcDuPatWuivjnCY8oThTzyyH3kKgdrbW3FF7/4RRw4cAAHDhzAo48+irGxMfzHf/zHugxjSfLmVoHjuASvnOTR+OQbfo7jsLCwkJMiDRDnYOFwGBzHJRyTMBhDr9dvWny5FNYj1KT7jjbCZHorOVimgmVlZSXfaS1V2NkOCJOZknlk8ihjSUlJQmIsy7KwWq3o7+/nEyoJSAe+3W5HX18fDh48mHJOajQalJaWYnBwEI2NjQmPhcNhaDQa2O12ySIVRVFpOVowGITZbIbf75fkV0DmJM5AIIDKykpcvnwZRqMx4xhUNBrlfVHzyE3smG+GKLsf+tCH8OSTT+K73/0ubrzxRvz+97/H5z//eX5O+tChQxgeHsbo6CgcDgdefPFFfq45ExYXF6HRaKBUKjE3N4c333wTX/jCF0BRFN73vvfhF7/4BU6cOIGf/OQn+Iu/+AswDJPiLTE+Po6enp51CzVk/CldJWktEHOVX0uqFPGpyRWiIPRgmZubQygUwtTUFPR6/aYa520Gttr5fzMjzTP5AkgZMMdiMdFjU/78/wYgAxWNd0xpFoMoPwgYFhL3P6w0Q4l50AAqZ1nM18uByQDwTndxxBf/DwYAd4sabFQO0H7QADwWDtolQBYBIrQGlNwPT7gACtkvMDl5B0ZGRviYyGwJGmlrbmhoQHt7e0LVhhjrZmptJV4yyaa+5PlqtRqVlZUYGBjA3r17U/YhXVWIRHNnSikAgPr6et4cL/lmyO/3Q61W8x1ARqMxbRdSnijkkcfOQC5ysJaWFrz22msJr9HU1ISLFy+iubl5zcdKROTNSI/kfdYEa+JqRuOBlQ6MrUq3zAQxD5bu7m5+jdxuY1yCbIWadJ6Ser0+q+9oNdhMDkZEGdJ5nW3BMhAI5MS5BayIMuFwGBcuXMiaRyZDLpdj165dvDkwOT7CoUjktlTHitPpRFdXF1wuF4qKivi/k64wu93OJ3WKFanScbRgMAidTofS0lJJfgUkJnG2tLSkdDgFAgE4nc60JsgE5Pij0SgYhsmZ7zuPROwYZswwDDiOw/Hjx3H8+HF84xvfwN/93d/hrrvugtvtxtLSEoxGIxiGwTPPPIPbbrsNLMvi5MmTaGxsxKOPPorm5mYcP34c586dw5133onFxUWcPn0ajz32GPr7+3HhwgX89V//Nb9IP/zww3xF/6mnnsKJEyfwyCOPYP/+/fj0pz8tup+NjY146aWX1n28Go0GPp9vXUJNJgOz9SyeJHVgo4WkbJBuJIsYbfl8PtFZ0FyAkFwlizJkjjZXnP9XAzFRZjWpWEIIKyc8gl4wQ63AtGCEqUEP/aIHSBZqKBrCT8w860bor0xgXloEADCLK9XSwgIvFiN2/t+0GsA76fOLcj2K4Ief4aAp+Q2UnpOwWq1rJmhKpRINDQ0JVRthrGNhYWFaoaSsrAwdHR2Ym5vjvWSEM83FxcVwuVyYnp7mb5yE0Gg0KCsrw8WLFxP8cIhQA2ROKSBEobe3N4UoBAIB3ksiky8OkCcKeeSxU7CTONh6hRogfq0Wi8tdDcRGejmO40WZ9aRKyWSybelGzNRNajKZEI1GUVRUJOpjtJ0QE2qShTOPxwOO43iRqbCwEFVVVTuikBCJRBJG4ZNFmcLCwqy7yEU52BYgXXEPwKp4pBCEdxPPv7GxMVRWVgKICzXkXqa2thZtbW2wWCwpQgnx4SNefeTaEAqFeK60e/dutLa2wmQyifpklpSUYHZ2NqWzOhgMwmq1puVXBKTzfGhoCA0NDQmPkdRNmqb5JM5090L5JM7cR+5feQQgJ9APf/hDnDp1Cp2dnZicnMRba0YNAAAgAElEQVSPfvQjdHR04Bvf+AY4jsOxY8dw7NixhOc+/vjj/H8fOnQIExMTKa9/ww03oLe3V/S9q6qq0NbWlnEfa2pqMDIysprDEoVGo8Hi4mLW22ezeCYbmK0HKpUKoVBqus5GYi0jWQDg8XiwvLy8qfu2FnAcB47jMD09zRODXBBl1lLNIYspIQWrNWvMBLH5dvm/PwmEg6Ai8X2NNlOQjbrBFhnATCR+3wpfokcRxQJcuQ/zN5lheWMBsvmVc1cVY8GVRoBr8X/LQiw8hRoUzPrhk6kBFlCyAci018AprkEuTzWbywbkHLVYLHC5XHzVRijUAIkdK8lCiTBOknjJCIUaQiRIN4tYipPD4cDs7GyCH45QqMkmpUCv18Nut2N4eBj19fX83wOBAF9JEkZ254lCHnnsfOwEDtbU1IT//M//XM1hiYIUy7Jdj5NvMMVGeoWjGOsF4WCbKdSsddzH6/VuWkT3ehEOhzE5Ocl/VxslnK0Ha+FgUqP9G9VFvpp47rViNcW9WCyGzs7ONftgCYWnmpoatLa2wmq1oqCgIMFmQsh/xIQS4tXX39/Pj4iHQiFelMyU1AnExZy2traEzmrSNQ9I8yshysvLU4p2QOL3RsbdFxYW0oqmeb+a3MaOEmqA+GjRT3/6U/zqV79CcXEx9u3bh9tvvx2vv/46gOzjHjcL5CRfr7+MRqMRTTUA0rdlbsSsbDZQKpVwu90b9nobNZIFpDcT3ipIOf+HQiH4/f4NF87Wg0yfJ8uyCd9LsiizUalYQoiRBMXb/w7M0QBYxKwqMBPxWCeWDiKZ+jJLqf4CYVoBwyEfIr1KyJdCiDA05Gx8JElmja4INR4W4UMGYNYPOhjGstEIg98Nt1oBf+R/Afjfqz6eZBJWV1eH1tZWWCyWlGsFIQpSbasqlQrV1dX8LHRySoBcLk/p2hGCiDnnzp2DwWDgxxiF884kpeDSpUuiKQlAPGK3vb09IemAVHMICFGQMtAT7lM+sjuPPHIfuc7Bmpqa8NRTT637dcj4udgNTjQaTRFlkgsVa6n6rwakq3k9XjxCEF5J/D4Ir1zNSBZBLnAwqW6mYDCIWCwGu92OmpqaTf2OskUmDiYc7U/uIt+s0f6NFmqyEWXSFffI6OV6QD4f4vlHxoeSi2V6vR42m02S/ySPiCdzMLPZnNK1IwThaL29vWhububFHuFriPGr5GNJLtqRzmThNsQXR8rkWPi5kOdv9zU8j0TsOEZcWlqK559/PqFlLBaL4eabb97GvUpEbW0tRkZGJJXQbEBunnK1LZPs31qwmSNZwNaThNU4//f09MDhcIh2OmwniJAgJKButxt+v59P8tksUUZqf4Skg770GuBaABViwdEAVxQFPRN/TDYfAsdQoNgVMYSZDYGzxCO3CaKQwUB5MX+nDfIfzyBMyyFn4501DMfC49CiYNIHuTsCutIHvAUo3BHMNuhhuLwET9AAGdOHKAKQIbvod+HxCD8z4ZwxaUcWwmAwpE1pstvtfPtsKBRKMZUjs9ZXrlxBRUVFyvMVCgXq6+t5MUfMb4qkFEhVYwgJ6OjowKFDh6BQKFLI1GqJQj6yO488chu5zsFsNtuGJDZpNBrMzs4iGo2mGK9ux5qYjPVwsHS8kniwrIdXyuXyLY03Jx4mRMhI9jARdjOdO3dO0n9tO0E4WLrRftL1sxV+i+vxPxKKMiQwYr0d12uJ5k6G8HjIeTE8PJwi1ACZU5rq6+t5U1/S6S8E8emzWCyiXUAWiwVzc3O8mJP8eQv5lRR3UqlUCUmcgUAghUuq1WpUV1ejv78f1113XcbIblIgz3c25w52nFDzne98B8FgEBqNBvfeey+fXiLWwXLmzBk8+OCDYFkW9913Hx5++OGEx8+ePYvPf/7z6OnpwYsvvogPf/jDAIDu7m589rOfhdvtBsMw+MpXvoKPfOQjAIBPfvKTeP311/l5xmeffTYlbrexsREDAwOrFmqELuaEELS3t/MXt+1qyxSDUqnMavRpq0eygI2PYBRivc7/m7lvqwUhoGQhbWtrA8Mw/PlWVla2LQQUSK3mKH7zNKip+PnGlevAzKyQQDoCRG1KyK6tkFYqDLAFFBjPingTZeMCgsk8A/cuNWhKBiD+mgGfDnP71KifvAS5NwZ1gRvzNiNU7iB8dgVwGfC5LSg0j2OSewHl7MlVH1PywkcIscvlEq3akG6UwsJCUS+oXbt2obW1FTqdLqH1lUDYtSOWDmC1WnnjPOHok3B/M4ksKpUKNTU16O/vx549e0TPFbVajaqqqqwiu4E8Ucgjj1xGrnMwiqJgMBh4z5zVQJiGs7y8jMXFRXg8Hv4mORciiglUKhWWlpYybpfMK8V8cja6s0ShUGxasWwjvfC2G0SUcblc8Hq9cLlckMvl/PiS2Gj/ViHbjppMoozT6VzXGDzBeoUaMeGpvLwc7e3tCAaDKa9NOla6urpEU5qID19fX59oJzDp2unp6UFLS4vo+VhbW4vW1lbe2ysZpHs6ncgi7O5RKpWivjiksLeayO5cTfX9U8T23/FnCfIj279/P4aGhjA5OYmFhQUYjUbRCizLsnjggQfwyiuvwOl04tChQzh+/HhC3G9ZWRmeffZZfPOb30x4rkajwXPPPYfa2lpcu3YNBw8exG233cYv+k8//TRPKMSwZ8+ejLPUmdJwiouLEQ6HUVNTkzY1ZbtA03TKOAcRZYStsyQdR6fTwWKxJERM5jo2w/l/u4Sa5Kqgz+fjRRmdTgelUonm5uacIKBAEkmIhkAPDILyx8AZGVABX+r2BgVwLbG66CswQe9ZWNkmSgPx/yH6PjMWPQro4QEAKHwhGGsWEZHJII9E4AupsVxth7N9BH69HG61DoEQA5kiilDkd8AqhRqp+fOqqipcuXJFVPQkC/358+dFF3pCFDo7O0W7bpLbe8W+WxL1KEWCshFZbDYb370jRhKAuMkxIQrpIrvzs9J55JGb2EkcrLGxEYODg2hpaZHcRsrjg4gyVVVV6O/vx8GDB9fycW06yOiTENnwyo30yZECiedeLzKNXa/XC2+rwHEcwuFwwii80G9RpVJBoVCgtrY2Z26OY7FYCifI5E24md1lG91RQ/7d1NSEN954Q1Rs0Wg0qKioSAlfIDAajTCbzRgfHxd9P51OB6fTmZLUSSBM4pSK0c5GZCEBECTBSwy7du3ifXHySZw7CzvmWyA/sJtvvhk33XQTwuEwXwGemJjAd77zHVitVjz88MNgWRZtbW2oqalBVVUVAODEiRM4depUAkkgIwHJFxVhdbukpIRXLLOtzjQ2NuK5557j/01ukskCSi5uBQUF0Ol0kouNVquF3+/PSaGGRFdOTk7y1Zqt9slJB3LDl+2CsVUjZlsh1AhFGTK+xDCMZFUwFothamoqp8gOuVmfmpqC9rX/Bwp1EDiiQMwjh3w6VaiJ6FVQINEzaUmlgrDhlAoDeKdpxKqexJS6gfelUfsC0Cn9GGmoRFXfKLx+LbSVc1C8FUY0KMdCUQFonwxXUIeIbA6zbA8KY6kR2ARCzyW32w23242SkhKUlZUlbEdIzsjICIqKilLOL61Wi9LSUgwODiZcuwhMJhNomsb09DSqq6tTHhe294p1+BE/nNbWVsnfSzYiS0NDA9566620hnXEQC+byG6Xy5WRUOSRRx5bh53GwS5cuMALNZnGSaQ8Psh6nYvdGWS8aHx8fNt8ctLt22o7anJl7Hq9yBSCodfrU/wW5+bm4Ha7c0akAeLfB8uykufXVn8fqxVqkjm91+vF7t27U7qTVSoVlEolLly4gD179qS8TklJCVwuV0L4ghDl5eW4cuUKlpeXRTufS0tL0dnZmWL6S6DT6WA2m9OGx2QSWQiP6+zsFBWUAKw6iXNychJlZWU5dU7+qWLHCDUAsLS0hMuXL+PgwYM8QTh37hxOnz4NjuPwvve9D0D8pJ2cnEyYQ3U6nWhtbV31e7a1tSEcDifcBH3lK1/B448/jltuuQVPPvlkgrfD0tISrly5guHhYdx1110YHR3FP/3TP6GoqAg6nW5VFzdiZrfdkBIxotEogsFgTsYXyuVyRKNR0e4dcjzCzp+tcv7faKFG2KpNxuWEokxFRQW0Wm1OX2zFOpdINc5oNMLMvQVlrRucFqDeFhf+ArIwkusRUSZxWyag4oUaAIjWyXmhRuvzI8YB8kYZ0AcE/GpUOMZxrdAGn1cDqkgD5ZgPo1QJKrh5dChfxf8RiAs1yaJMsueSyWRCUVERLl68KFrxYFkWZWVlGBwcRGNjY8qxOZ1OdHZ2YnZ2FoWFhSmPKxQK/jGxWWjS3itlSqdQKKBSqdImDAiJgljXjEwmg81mw8zMjKTgsxqiMDY2Bp1Ot645+TzyyGNjkescjOM4TExMYGlpCa+++ipeeOEFaDQaPPbYY2mTIqWg0WgQCAQ2zLB3rZDyyQmFQmAYJudEDBIdLoV0Hb6bPXa92iJeOkiJMmsJwdhOiHUuhcNhaLVaFBUV5cT5lU6okbpHIZy+qKgIFosFAwMDKd3F0WgUKpUKLMuKijHC8AWj0Zji5ReJRGA0GtHf34/Dhw9LjlC1t7fzpr/J0Ov1mJ+flxRzsuFOBoMBcrkcLpdLlCcC2SdxchyHkZER2O32fBJnDiB37qyzwOzsLE6ePInf/e530Ov1+OpXv4o33ngD99xzD+6++27J1rG1YmpqCvfccw9+8pOf8D+MJ554Ana7HeFwGPfffz+eeuopfPKTn8RDDz2EoaEhGAwG7N+/HxzH4Qtf+AIOHDiw5q4SrVaLa9eubeQhZYSUU76YiDE8PAyTyZQ2zWW7QFpvZTJZ2uPZauf/9Qg1YqKMsFWbiACrvaiuJRpyrRAmS5DvIzlZoqqqCh6PB3NzcygzRKGQvxPjygFcTRS4nPiaQVsBIrUyuGu1YKgYglEDPFfl4GKJ2y0E1CgUnKqagiiuOe0omZgGzXHwhrQodo7Aq9Eg7IsvpgtVJlAeBXQV1xAdMoGjKOipaSxhFD2j3WCXuBRRxul0Qi6XIxaL7wD5bOvr6/nIa+F3xHEcSktL0dXVJSrGCBd6g8GQsNATIaOpqYl/7eRzOZMpXTAYhNFohNvtlhRz5HJ5AlGQOsdMJlNaEmA0GtOaJBOQ2Nl8ZHceeeQOcpWDtbS04Nvf/jampqZQWlqK+vp6hMNhfP/730dlZeWabzBJsWwrhZpIJJLSWUKKLzqdLqEj9ty5cyguLs6566OQU2QqJm217w/hYKt9v2ySSR0Ox5rWq63kYFKJZcmdS6Ojo/x6nQsgQk02okxVVRVomgbLsvx3wXEcCgsLU/gJ+Q53794tKcYoFArU1dWhr68PBw4cSPh+Q6EQtFotbDabZLFNqVTyXn779u1LOT9CoRAqKiowODgoKeZkw50oioLP50sbx51NZDfxLMyPoecGdpRQU11djWPHjuGhhx7Cr3/9azAMgx/84AdwOBwYGxtL+IE4HI6EucGJiYm0JkrJcLvduP322/GP//iPOHLkCP93knSgVCrxqU99Ct/85jfx0EMP4Wtf+xpqa2v5i//HP/5xaLXadUd0b2ZHTfI8s8/nA8dxWc8zryd1YDMgdP73er3o6+tLqNJs1Xx2OmQr1EQikYR55uT5+bWKMlsJMVEmFovx42RFRUWSnUuxWAwURUF56QnQSx5wWhrUtRhohMDpKVBuDhwF+N+rh4rywhILQEFHAQ7QMgFYKoGhwkr4vFpo3xmVKvAlnquqAAffTRrghfi/g0ENdCofxhtLEXvnZ2cpd2PUWwIjxWHSaISM4uCCFTFOjpnKbtwUPJEgyhCQlCeKovjzjWEYmEwmjIyMpIwpkaqNmBgDSC/0hLzodDqUlJRIzkInR3oLQYxBa2tr0yYMEFFWbP+BeDR3TU0NBgYG0sZxV1dXp01TIN89TdN5opBHHjmEXOVgn/nMZ/DjH/84IYnquuuuE71OrQabzcHW2xGrUCj4G81cgPB4gsEg2tra+PWpoKAAlZWV285bGIZJWa+TkUmUWW8yaTI26/PIVpQRE63IOrydEIoy09PTYFkWExMTGUUZIP4dkqhp4qnpcDjQ09OTYDROikHpxBgAKCwsTIjkJiAdVE6nU7LYBqx4+U1OTsLpdCY8FgwGYbFY0oo5wIrIYrVaRcdAKYrC3r170/K4bEIifD4ff93JR3ZvP3aUUEPTNJ544gkMDAzgoYcewvDwMF544QV4vV7U1NSgu7sb3/rWt3Dw4EEcOnQIw8PDGB0dhcPhwIsvvojnn38+q/cJh8O48847ce+996YY1k1NTaG4uBgcx+FXv/oVmpqaoNFoUkYGyIy01LxgNsjUProaSDmzr8cpX6VSbWkEoxCZnP8NBgOMRiPsdvu27J8UyIIiRCZTQ6n5+Y3CRrxuprjP1Y6TEaGDnm0FFWXBvaNbUAD8dWaouxYQuFUObcANcAATiCFiYiAPr3y2OlUYzD0xjP/CgdLRSWg9id42TDCCqroxLBktMC7Nwx2wwGqcRbhejuBMfDyp2HwNg66K+D5ZYoiEZVhmShFjAnBrB4AIJSrKiC1qNE3D6XSip6eHH1MSVvYyVV1I7KzQVI6QBCBuzNnR0SHZFWO32/nnC71mSDR3NgkD1dXVaGtrg9VqTZnHJtGQmUgA6QDq7u4WbRUmryMUo/JEIY88th+5ysGEAg2B2WyWvBZmCxLRvRHItM6vpfhCimXbIdRkOh61Wo19+/blnMhO0zSi0WjCuFy60eWNFmWksN6Omo32+CG8ZquQqVNGpVLBZrPBYrFkFGWk9jsWi6G+vh4DAwM89xCm1UmJMQT19fVobW2F2WzmuweJ/1CmYhsQ9/Ijkd7CEXjSwWI0GiXFHCDRfDiZO0UiEchksqx4nDAkYu/evSnbEG/UfBJnbmBHCTVA/AdJzOj27NmDv/zLvwQAXLhwAV1dXfzJHY1G8cwzz+C2224Dy7I4efIkGhsb8eijj6K5uRnHjx/HuXPncOedd2JxcRGnT5/GY489hv7+fvz85z/H2bNnMT8/j2effRbASgTk3XffjdnZWXAch3379uEHP/iB6H7u2bMHZ8+eXffxJl9IskE6FX21PjnpoFQqMTc3t67XyAZrcf6fnJzMmRhsITiOg8fjwdjYWAK5IXGMmy3KbAQ2WpSReo8C/x9BL00jplWCuraSirRkUQEfMEATSIwm9aitMIdn+H9rAhGobAFoP+yF6zkrjEuJZsOsH2CYGHoO1+O9L7+F5VCciDUV9+P1uZtWtjO+I9pYJzEdKIRXw8IW82OOVuA1TQ9ujx1BNpDJZOA4DvX19fw8c/Jvm1RdpBz+SSS32WyGWq3mSQKwIoCkq6aIec0Eg0F+LpokDExNTYkaBxOicP78+RSiQIhdNklRJE2BEAUhfD4fT2LyRCGPPHILO4WDNTU14eLFi7jxxhvXfKxqtRqBQGDVz1urefFqQZKfxExMNxJElCHdytnwltnZ2ZzrhuQ4DhzHYW5uDlNTUymijNFoRFlZ2ZYnk672PEgWZTbD42ejfHykXjudKEMSVUkHOhnpYVk2a1FGDAzDQKVSweFwYGhoCLt37+Y7agjExBjh8xsbG9HX18d7xZDRJyD+e6ytrZUstkl5zQgLblJiDoFGo0F5eXmK+XEgEOA5XTZJUcXFxZibmxPdxu/38149xNOJcNU8B9t67DihRuok2bVrF9/y/8tf/hJzc3P4zGc+g2PHjiVs9/jjj/P/fejQIUxMTKS81sc//nF8/OMfF32f3//+91ntZ2NjI/75n/85q23TgbTeSi3EmUzZNtMETKVSicYKrwcbVRWQy+Xw+VLTgbYSyXGMZEyMpmlYLJYdLcpstvFyLBZD0ezzoBeDiBXQEH5C3mo5SvqXUp4zpTTBjBWhhg7EUyfMimVc/Ugp8INlBGk5VLF30iiCccPiXfsGEf5vBQLvCDUMxSFSunI8rDIu+CmYCCIqFTT0EsaDVswpbFiQDwCh7IQaYIUo2O12DA8Po6SkJIUUkqhFIsYIkbzQh0Ih3tQTQEI1Zd++fSnvL5fLsWvXrgSvGVLNISBikFQ6kzCJiow6kK4XgmySokpKSniiINwmOelOGNktk8ly+veSRx7vduwkDjYwMLAuoYaMyUiZmmeKXV6tefFqsRkcLJPIZLPZsuItJPlJzHx+K8BxHAKBAH8cbrcb0WiUX0eKioq2RZSRglRHjZiRNE3TPMffLI+fjRJq1iLKEAhFmcrKSpw/fx42m23N4h85nsLCQszNzWF2dhbhcDjhHBUTY4QwGAywWCwYHR1FdXV1yuhhUVERXC6XZFcMifQmzycgx52NcXBJSQlmZ2cxPT3NTw0IhRoguzhuqW2ExTKyb6T7O5dCY/5UsOM+cY/Hg3PnzqGyshKVlZVYWlrCwsICJicn8fbbb+PMmTMoKSnB1772tW3dz/Ly8oT57LVCKNTkmikbMftcKzbT+X8t8ZDrQTpyo9frebK2tLSEubk50Zi/7UY2osxWGS/HuBhU7otg1UrQgm6aRacNNf4xsGoGTCCpYyop5UnrXwbLUWAoDmUF47jwF/WwehehggsAoA96AACFunn0NTWDDawcV0nhihCk5kJYiJlgphfh85lhMCwhCAosFcU8vPhv+ipuiSXGbkuBLHR2ux19fX2Yn59PIYrJC3UyITaZTDAajRgbGwNFUSnPlxpxIjCbzfzzKysrU4Qa8v6EqIgRcqfTie7ubrhcLhQVFaWQBCAex51O8CHbJEd2+/3+lFEGMitNUVSeKOSRxzZip3CwpqYmPPfcc+t+HeIDo1AoEAwG4fV6+c6S7U74USqVcLvdmTcUwWaLTORz2woQUUZ4LNFoFGq1mjf5J6LM5cuXc8okF1gxE87EibeS468lcTFTt3W2ogwZJRc+LpPJUFFRgaGhIVHD3mxB0zQYhkFtbS16enpgMplSCuHJYkwyhF4xwm4YgkxdMcSnz2q1pkwDACvpTFLGwRRFJZgfq1Qq+P3+BA6WjeCTTYcPeT8gPl7FMEy+WLbF2HGMV6lUQiaT4emnn8brr7+OhoYGFBcX80adjzzyCN7znvck3LycOXMGDz74IFiWxX333YeHH3444TXPnj2Lz3/+8+jp6cGLL76YMBP9k5/8BF//+tcBAI888gg+8YlPAAA6OjrwyU9+EoFAAMeOHcN3v/vdhJOXpmkolUrRG5hsQFpNCSkYHx/POTNZoZt6pv3YapFJoVBsmlBDRBlCCsiMeDbkZqPjudcKYUQ5IQQdHR3bIsqIQR38BeTz8whrLVDF4sJKTMNArnCDjgLLFisMEzMJz1FEEv2cGC6GJVoPIxcnsvW1g2gbO4TC+XeEmpCbF3K45gAwvCL0aLggpjk77NQ0jNwyOiMH8AHlf8Mbk4HlaJTKZ+Cl9FCxNP5dPoNbQtkJNQB4IlJXV5cwKiAEIQ9ETElGTU0NWltbodVqRcUYIpJIxWnX1NSgra2Nn/dOFj8yGQcLIysNBoPodS5boiDs8KFpOqWaQ94PyBOFPPLYbuwUDtbY2IiLFy+u6RiFviWRSAQ9PT3gOI5f5/V6PZxO57Yn0mUb6CAVI01EGb1ej+Li4g3t/NmsYhnHcfD7/QnHIhRlzGYzysvLJTtlcoWDCUWZ+fl5vpN8uwqvycjUUbORogwg7uuXDDLSQwpEawVN01AoFKisrMTw8DDKylL5W1VVlaQfH03TaGpqwvnz58FxXMZiW/KxCZ/f1NSUUCgjqKysTGscrFAo0NDQgN7eXjQ3NyMQCKTsZzZx3MnbEBPp5OsAERPzSZxbjx0n1CgUCrz3ve9FTU0NnnjiCUxNTWFychIajQaVlZUp5rEsy+KBBx7AK6+8AqfTiUOHDuH48eP8jDUQN+F89tln8c1vfjPhuQsLC/jqV7+K9vZ2UBSFgwcP4vjx4zCZTPjsZz+LH/7wh2hpacGxY8dw5swZfPCDH0x4/q5duzA4OCg6giCE2IgM6cbQ6XQIhUKSLuDbDblcnjKHLBUjvZXO/xtBErKpOK2W3GwHSUgWZZIjyouLi+F2u3Ho0KEt3a90KJj6L1BRFoprC/zfvKVm6ANxY8cZbQEMSBRqNFzq9+3hCmBEXKihKWD6+kJE/0sGGRcFw8WwGDLApFpGY2k//tB3K/88md+Lt8It+EvDKdjYBfhj8etKAe3BZV8t6nSD8EasiHBhzMt8aKMWcZjLPqaeCLlGoxFzc3OiVZPa2lq0trbCarWioKAg5fl79uxBa2srysvLU55LBJC+vj40NzennJ+EKPT09EjuYzrjYCB+LSaR41arVVQQMplMom2+ydsIYyeTZ8YJ8kQhjzy2HzuFg5lMJiwvL2csJCWPyCT7lhBjXLHr7HZDqVSmjD6JJRaREdmt7PxZb8c1IC3KkORIi8WCioqKVY3CbAcHk+qUEfLIpaUlNDQ0bOl+pYNQqEkWZYQJnpslyoiBoig0NDSgo6MDRqNxzWNr5P3NZjM4jsPCwoIkxzp//jxaWlpSipZarRZOpxPDw8OivyOpESfh80tLSzE8PJzihSN8f6nQBQCwWCyYm5vD2NgYH8KQDCI4pUviJB1Ci4uLUCgUks0FwjH0XPKeerdjxwk1BKSKbDAY0l7c2traUFNTg6qqKgDAiRMncOrUqQSSUFFRASD14vHb3/4Wt956K581f+utt+LMmTM4evQo3G43Hxl577334le/+lWKUEOSn4hQQ24yxEZkiClbcjdGLBbDzMxMzt6UyOVyzMzM8AtRrsRIr1aokao4bXRb82aThFgslpKGlSzKiEWU58r5FSfNCzC4BuDVm1GwEBdqPCUmXqQBAMhT4zXl4VRPojCngdDgRmMIoHvfDWjuiht9+91xoYamgYCgccUsW8B0QTxi0UjPYVlGwR9Rw0kt4FW2CXUYxJTbhGrzZXDRIH4qG8XhyM4F9H4AACAASURBVOqEmkgkws+lz8zMpIzDETGlr68PLS0tKdcnnU4HuVyOiYkJUSHFbDZjdnZWsitHp9PBZrNJjmimMw4msFqtmJ2dxczMjKjYBKy0+VosFtHKELBCFMxmM9/2LIY8Ucgjj9zATuBgRUVFmJ2d5avvmboxhCMyBAsLC5ifn1/LR7TpIN4RLpeL7/IlIpNOp9uyxCIxrNYnkOO4lA4NlmXXJcqIYbM5mFCUIT6LmbrH3W43lpeXN22fVoNYLAa/349AIICRkRH4fL5N75RZDRQKBWpqanDhwgXRxKJsQVEUQqEQGIbB+Pg4bDZbSmcLEWOGhoZ4/y0hyGNSkdyZil1OpxPj4+OSv08p42AhSEFPmGSWfJx79uxBV1cXWlpaRHmcMLK7urpaVDgi2wH5JM6txo4VapIhVTWZnJxMiFlzOp1obW3N6jXFnjs5OZliEkX+nrw/NpsNv/nNb9De3o5QKIR777131fO/NE3zTvXbfTMt5vwfjUYRi8Vgs9lyyhw3UwUteXyJGIJtdsVpI0lCOlGGtDKLiTK5guTKHyGZDv2/o8i1jAinBwBEZQxk2iggKBxqY/6U11P5Uk0Vl9xmQLA+xsI0Co6OwdtTAB3rgc+rA97poDU6lsByNBgqhgLGC8oUwZTLjmLlNKgo0Ll0ECXqSSzR8cVc5o+AtsTATEXhMgfxa0RwjBYnkZFIBG63m/+/3++HXC6HTqdDRUUF+vv7YTQaUxZacp0YHh5GfX19yusyDAO/3y8ZQ5uuKweIV2TGx8cxNzfHJz8JIWYcnIy6ujq8+uqriMVSxTMgu8oQ2YaM30khTxTyyCM3kWscLBqNori4GN/73vcwMzOD2tpa3Hzzzau+8ddqtRviN7heSHX+hMNheL3ebRVlxJDOo4aIAWKijFAM2AwxnhRJNgKZRJmKigpotdqseOR647nXAvI9CLvGiSgTi8VgtVpRXV29baKMFAoLC+FyuSTTKZNBuCbhX8Ius+LiYuj1en6EKPm7Ki0tRUdHhyhHCofD0Ov1GBoaEo3kztSVQ1EULBYLpqamRL1ugLgg7nK5EoyDk9+jqakJb7/9NmKxmCjfJ92OYimbBCStc2RkRHQUTLjP5NjzSZxbg3eNUJMLJwuZr+7o6MD09DSsVis8Hg/uu+8+HDlyBBUVFWvaT7VajWAwuKXu+dk6/09NTfFCTa6BCFzJbcBCUWarZ81pml6TUPNuFWVIO7bBYFhJQLrwCDzv1yM6rwb3mgdT1TaUBq4lvJ45vJDyHiqfBzFVfMSJwBNUJgg1piAHnc6NNytbcNul34ENrvymdDIfeoJHsF/5FgBAFqJxIXAQxcr/AuONYTxSir3m85ApWVydLoXSH4LLVQgZopiNxPD/+hZxzFzEizLkOH0+X4KxdFFREd9lFovFwLIsqqur0dfXhwMHDqSchxUVFWhvbxdtXSWVEKlIbkIUent7cfjw4ZTzIxQKwW63Y3BwEHq9XrSV2Ol0oqurS3IunGEYKJVKXLp0CRaLRZSsZVMZ0mg0sFqtGavXeaKQRx65h1z4HZ4+fRq//e1v0dXVhUAgALlcjrKyMtx11104cuTImgxkFQrFhicrZcJqzHH7+vpgt9slDdu3C6SrOVkM8Hq9YFk2IfWnqqpqy0zi11osy+SzuJ6RfjLWu5lIJ8qIdcr09PTwItN2ijJSsNsr8POfn0UgcAV//dcHodXGuYuQaxJhhogyer2ej2Anogjp0NVqtbh69WrKiCNFUWhqakJHRwcMBkMCxyKJUeXl5ZKR3KQrZ3BwMKGLkCAajfLP379/v6g3DPEDJMbByVAqlVCr1ZKdP8BKUlS6JM7i4mJcunQJgUBA9HHhPuUju7cO7xqhRgoOhyOhGjIxMSGZKy/23Ndeey3huUePHoXD4UiIlCSvyTAMbrzxRnzuc59DcXExOI7Dvn378NGPfnRdx0CSnzZDqBGOY63FHFepVGJxcXHD92stSBYDgsEg2traeHKTCxUn0iGVDkJRhtzocxzHe/zsNFGGiGNiokxyF0Y06gKck5ArlTBbZ3DF74DdNZfyHmo2jCWdFUbvymOKWASzaisKgyt/Y9ikRW8p/n4Vtw9h8XtGLHlXzoVCehmnAod5oSY8R+Fi1Ib3A6AWgXAxAzUTAAIxXJ6rgEHhweBSHQpVU5iSFWNqaRn/16AHJ+WLvChTXV2dlrwRsmM0GjE/P4+JiYmECjKwQhQ6OzsTWleJ6ZtKpUJVVRXfCpwMnU6HkpISDA8Pp4woBAIB6HQ6mEwmSaJB3p8YB4v9fmiaRnFxMYaGhiTHIMQiJZOhUqkgk8kwNTWVkvyUvE95opBHHrmPreRgKpUKH/nIR/DEE0+goKAAf/zjH/Ev//IvuP3229e8/xRFgabpDYsrTsZ6zXGVSiWCwWBOCDVCLxO3243FxUV0dHTwXUxFRUWorq7e1uQ+ErmeDpspymwFxMQx4imTbSR2SUkJxsfH0dDQsO2ijNsdQnf3DLq6ZtDZOY2RkSWMjCxiaSkuoF686MIXvtCYIsoQzi8mbhAQ8am8vBznz5+HxWKBTqdL2EalUqG6uhoDAwO47rrr+L+TLhibzcYnbYpd20pLS9HZ2Sk6IhUMBlFdXQ2/3y/K/4AVP8C+vj4cPHgw5bwLBAIwGo3w+/2SY1jASsqmVMgEEL+ezMzMwOFwpL2m5CO7tw7v+k/30KFDGB4exujoKBwOB1588UU8//zzWT33tttuw5e//GVeiHj55ZfxxBNPwGw2Q6/X449//CNaWlrw3HPP4XOf+xwaGxsTxgMoioJWq4XX60354a8GRKhZb5zgZjj/Z5s6sNHIZABoMBjg8XjQ0NCQ9iK91Uj+XFmWTSA2yaJMSUnJu1aUIcSXEGGKouBnfwzO6IN5Kh6PHdtDQf6KePv0osEMn0oOd0kJfCoVgsEYlL4ACqdXhBodlVg5i4TiyVA6vQ8X6w9CtrxSKVVTS2B3cVge1cOgcoMJcKDqopgdt0IWiiJWIEPP0HWgCzh4DEaU+sbhN6tg1S1ifsQAtdKPl1TVuGPRiObm7H+rhChUVlaiu7sbFoslZYFUq9WoqKhI6EgRmu4WFxfzrcBiAkdZWRk6OjpSRqRCoRB0Oh3vNSNFNBQKBerq6kS7fohYUl5eLtkiDKxUhkgct9jv0ufzoaamBoODgzAajWnF6TxRyCOP3MdWcrBbb7014fm7d+/G4ODguo9BrVYjEAikHcvMBpvhw7JdHCxT6o/dbs+5kAIgtaNGSpQhvpFb4bO4no6ajRBlxDplnE4nuru7sbi4uKVR5l5vmBdkurpm0N09DbtdhzfeSBw/vO46AywWGTQaGufPz6C7uwwf+tDuNfF9EtlNxJDDhw+niFN2uz2FYwnHlXbt2oXW1laYzeYU3kKKXe3t7SkjUuQ1Ghoa+OeLXWesVivm5uZw5coV3tOLwO/3Q6PRoK6uTvQ9CORyeUIaldg5HYlE0NjYmDatkxwT2V54/uSx8XjXs1uZTIZnnnkGt912G1iWxcmTJ9HY2IhHH30Uzc3NOH78OM6dO4c777wTi4uLOH36NB577DH09/fDbDbj7//+7/mF5tFHH+VN7b7//e/z0ZAf/OAHU0zsCHbv3o2LFy+iubl5zceg0WgwPT29qudslfO/SqXa9LbgTKKMmAEgAMzOzvKiQS6AiDLhcBgXLlyA1+sFgD9ZUUbswu5VvgWLRwkaMfgpNUoxBVdhGeyuKwnbXdZUYbrFiBt1Q3Bgiv97l6kZb106gtLXJ1AamoAymijyyKMrhNZ48yVMvLTixl+g8oGiOZydbMGfV78CZjkGyIC3Rw5DLfMjDD0uz1VByYYQ28WA6ubAFTFYHjYgAiVspXOIeNW452wUJ1+ZxGOPFUOlym7xIkShrq6OH1NK/l2SWWViPJw80yysliSf88L2XeGIVDAY5LdtaGjgny9WSSksLMTs7CzGx8cTZphJNLfwPaTGqORyOR/HLTYP7vf7odfreTLR3NycJwp55LGDsZ0cTK/X82PC6+E5pFi2GqFmq3xYVCoVzyU2C5mSI20227Z3ymSDSCQCr9eL5eVl9PX18Ymk2x1+kS02S5QRA0VR2LVrF7q6unDo0KFN+W49njD6+lxob59GZ+c0urtncOXKMkpL9bh0aaVT/9o1N667zvCOoEVjfj6Mnp5lNDcX49y5OP97+OG3ccstu7AWuk8+BzJ+LRVnvWvXrgSOFQqF+GtCciR38jmkVCpRW1sr2rlMURQYhuEFEjGhCIh7Dra1tcFisSR4DhIORt6jr69PdIwKiKfhmUwmjIyMpKRREZ5uMpkyxnqT/eY4DpFIJJ/EuYnI7avqBuHYsWM4duxYwt8ef/xx/r8PHTqU0EYrxMmTJ3Hy5MmUvzc3N6Ovry/jezc2Nm6IUJPOPT+d/8dmO/9vtIO+cDbb6/XC7XZnTGWQgkKh2DDTuNWCiDLCBRUA31nlcDig1WrfFaIM8QIiyFaUSUaAG4OcuQSVP55+MM8YURqZQrCQAVwr2/U5mlFb24tlbQGQVEgMzmvQ1PxHuBt06HqhGbK5ACDoJNWF3Px/6wu98FclrurskgyTpnhHCeNlwYLCtLEIBctBLANg65WwzQUwBg20uvgNQyRiR6F8GbFpNSwuP7yNBfhlO4O+v3LhkUdMaGnJ/Lsjn49Op4PRaMTo6CifkkKQPKucLNTI5XI0NDRItseKte8KhRoh0RATigCgvr6er/qQc5mQBPIeNTU1kmNUQDyNikRKJqdRkQVfoVBkjPUmn0meKOSRR25jOzlYSUlJ1qajUiAcTGqkIF13yWb7sCiVSszNpY4HrxVrTY4UAxlR3Q4RXdgp43a7+URSUlTIpfElsY4aodBH+HCyt89mpy+pVCqUl5djaGhI1F9lNfB6w+jtdaGjY0WUGRpaQFNTIXp7VxI91WoaBQUx7NtnBMfRWFgIY2LCi9lZFm53CF7vCqe/fHkRVqsac3MBLC8H8OSTb+Gpp96/pv0jn1VJSQl6e3uxtLSUklKZzLFCoRAvHANxEcRoNEombRYVFcHlcvFm6KQjmMBgMKCwsFBSIGEYRjQJNBAI8PtBku6kxqiAlSTO5DQqocWGMLJbKtYbyCdxbgX+JISa7cSePXtw+vTpdb2GXC5HNBof2chm5GerfVjWuhivJSpzNVhtRPdawbJsCrEhY296vT5FlDl37hwKCgpygiAA8e8hFovxEZ9Cw2Uy55tJlCH/z1aUEYNX9r8gD8qgjPnhpwpQHIqrM3rLSmXlcl0jmkrbAQAFbGqrcCz+M4Fe54X6E/1o/df3Yg96+cd10USTtICRRiQqg1wWfyLl4UDtYzHVVQKnLogrUIPZz+J6L41/A8BZYqgyGDEGAJVamLgogg0FuCm8jEsBC2oOuvHbQAFk02bQr2vw6KN+3HILh//xP5SQydJ/3+QzLC0txfnz52G1WqHX6xO2ISNI/f39sFqtKb9zi8UCl8slaooHrLTvEkM5lmUTbh6MRiPMZrNotQVIJAqk6pPsn2Wz2TA7O5uSzCJETU0N2traYDabeaLAsmwC+SdEIV2sN5AnCnnkkYc0mpqacOHChXULNcTkXNhdQtb97ewuWU9Xc6bR6/X64RHuulYOly2IKEMKY0SUIZ0yVVVVvCgTDocxMDCw7jG2jUYkEsHU1FRC9xU5p4qKirYtEpuMVUuNNIvB5wvj/HkXhobm8cYbE7woE4txOHy4GG1t8S4YlYqGz+fDjTda4fPF3hFlfOjqWsZ73lOKP/xhZdzp2jUvbrjBgbfemoROJ0dlpREGgxJqtRzDwwu4cmUZzzzTgSNHHLjzztSEzGwgk8nAcRzq6+sxMDAgmtQk5FhiSU01NTVpkzZJ57LZbAbHcSndz1VVVWhra5MUSMjvUugHKCyWkfdIN0YllcQp7BoURnaLBVUQCJM4SWd4HhuLPymh5syZM3jwwQfBsizuu+8+PPzwwwmPkwjtjo4OWCwWvPTSS6ioqMDPfvYzPP300/x2PT096OzsxL59+3D06FFMTU3xP5KXX345IRmlsbERTz311Jr2V9hdEg6H0dHRAZZlN0zI2CgolcqMI0aZRJm1zGZnwmYINasVZcRAjAm344Im1SkTDAb5iM+tEGXEEJW1omA5/n7zTAlKI3FvAbNqEXMqC5ZKSlBTuiK6cL4wkHTqh8NR/r/lCha7Pt6Nc787gEPaTgCAQbEML1bOMbkqilcHbsaf7f1vAIBTD0wzAMpbsBcRXIEaMRqYk5WA5IMvU3oAPgwzMRSyFIYYCrWMAt26IrzHM40KqgyKgzForCpofqtE67kIHngghq9/nUZhYXqxhhCFhoYG9Pf3J1RNCEg05ezsrKgQUldXx7fHinljkfZdKfGjuroabW1tKdUWAr1eD5vNhkuXLqGuro43shNCOEaVjigIYyvJnHXyNulivYE8Ucgjj52C7eJgFy5cwC233LLq/SXdJcvLy5ifn0d7e3uCKGO321FTU7Ot1xy5XC4Zgy1Eui7fzRq9JhxsIzmqMFVRTJQpLCxM2ymz0V3gq4XYSFwkEgHLsohEIigsLERFRUXORGKTEajOzs6U1CMA8Psj73jEuHD+/Aza26cwOBgXZex2LbzeELzeKFQqGsXFarBsEC0tVkxNBTEx4cPIiB9TU2HYbFpcvboywvf22xPYvduCK1eWUVlpgtGoRDQaw9GjZXj99asJXTjXX+/A2Fi8E/tv//ZlXH+9A3b72nxBSYqlw+GQTGqqq6tDa2srAEhGckslbQo7l6urq0XH1DPxHuIHSDwHhX6F5BgyjVFpNBqUlZXh4sWLaGpqAhD3CBRyMBLZnWyinIzkMfRcKUK/W/AnI9SwLIsHHngAr7zyCpxOJw4dOoTjx48n/Aj/9V//FSaTCZcuXcKLL76IL37xi3jppZdw99134+677wYA9Pb24o477sC+ffv45/3sZz+THG0iFexMyCRk6HQ6lJaWbqmpV7YgqQPkgkOORbiYrtcwby2Qy+Xw+/1rfr6UKEOIjcPhgE6nW/VCSRbgzSZ3maLJhaJMR0dHQpvkZosyyfBS/ZDHJmEMTSMIDeyh0YTHz9UfwG3m3yX8zUzPIhlqOlGYM2qW0fmeA7C/4USpbgIGpRuLoSLIlXGiVmT0YbpiL8DGhZpiHYdpAOcLTDi8PAkg3tEyrlCBCDUhrHxv5pgGYEJYpuTw0nJEoyzmZyiYLTGMXqXhaOAQY5WYnuFwxx0xPP88C5FGlwQwDAOVSgW73Y7h4WHU16dWh+rr6/H666+LVonJIi1liif0iRH7DYqJKMkgkeELCwsp1RwgTkbIPkgZ0mm1WpSWluLixYtobGxMIQlAnExUVFRgYGBANNGKIE8U8sgjt7FdHGzPnj149dVXs9q/dEKGTCbDvn37cs6HhVzrhD48G1FQ2ggQEWmt3SuZRJmioiJ+lClbkELZVkBMlEn2lKmoqEA4HMbly5cTggByKRJbqVSioqICPT0XEIlY0Nk5jelpL3796xEMDc2Dfae7+cgROy5cmIdSSaGkRAO9Xob6eh1GR/2YmPBidNSP0VE/DhywJ4gygUAUarUMOp0M5eVGGI0qsCzHF976+la4XmGhBkajCouLK3Pvly8vornZDrmcgtvtw5e+9Cp+/OM/X9OxknCCoqIi9Pf3i3YSkc7i1tZW0e9Ep9OhuLhYNGkTWOlcHh8fF+2a0Wg0KC8vTxBRhBD6AZLrXvJvwGAwoKioiC+oicHhcGBubo5P4vT7/Sn7U1xcnDHWm7x/Polzc5BbK84moq2tDTU1Nbzvw4kTJ3Dq1KkEknDq1Cn8wz/8AwDgwx/+MP7mb/4mxYTuhRdewIkTJ7J+X4qiYDAYsLy8zFen1+L8f+XKlW3zW0kHEhE8MzPDj84Ij8VqtW6IYd5asBqPGiGxIS3AGyHKiGEzKjok0UtIaqREGbFOGa1Wi4WFBdhstk0XZcTgk/0rWL8WNGK4JKtDU7Sbf2ySLoasMgzakzjqZJXNwxtVQydbGWfSeBO9nBgmBkrJ4Q+lB/BXc1OQMSwCS1rIbXGvmsqKAP5I0wjO74Uq1gP1OwRuXBXBXu/KguWno1BwaoSpAFiEYI5ZsUDPAVEFIA9hko5AyQGzhkLMXYzCaKNhBIewDaA8gG+BgsFO43/+TwbPPBOGRDo1gBVjYbvdjr6+PiwsLCTMQQPgyerY2BjsdnvKoqjX69Mu0iSZQMr7iogoUhUlYWQ4ANFRS4PBkNGQjiRLuFyulI4aAhLrnY/sziOPnYvt4mC7du1KSX5ai5AxOzu7ZTf4qwHpurh69Sp8Pt+mcpfVYjUcLBwOJ3DijRBlxLBZ64KUebTQU0aqU0ahUCAUCvEd88D2iTIEgUAEPT2ud5KXZnD58hJaWyd5UUalYmCxKCGTAaWlGhgMCgSDYRw+bENHhwujo6RIuoyDB+24etXDv3Zn5zTe8x4HFhdDMJnioszMjA8HDhTj7NnEdKf3vMeJP/xhxb/K6w3jppuc8Puj/PPGxpZht+vQ3h4vivf3u3H0aDk+8Qnp4k46EHGMhDuIhSPo9XrIZDJJflNeXo729vaUpE2C6upqnD17VrRrGUgNj0gG8Rzs6+uTvL+qrKzkC2rJHBKI/xZ2797N+x6KFcuAlaAKo9GYj+zeBvzJfJKTk5MJHQNOp5NvXRPbRiaTwWAwYH5+PkFNfemll3Dq1KmE533qU58CwzC466678MgjjyRcgKPRKIqLi/Gtb30Lk5OT2Lt3L44cObJq53+NRgOPx5N2m82G1EJE0zTkcjnKysq2TZQRg9ToEyFpRNRIJjZOp3NTiQ1N0+sSaoQx6+QYViPKiHXKNDQ0oKOjA4WFhVv+/Xm9YQT0f4R9eR4RjoEjMAK88xNiORpXC+1QLy2LPnfaa0ONcYz/t0nhTtkmvKiE6cgy3vzFrbhZewYWdQEiiG9HUfHfVL+qBQf9PVByEZDL4ri6GEDcpJGFD7LYXoSZHoDyIsjtBjCHCBdFYUyNeSqARr8MnRotKg1+eKdVgIzBOM1A7QbKallMdNGwyzmcOKHEmTOhtOkEDMPws9K9vb1oaWlJWfhisRgsFoukn0xlZWVaM7jCwkLMz8/D4/GIzlI7nU50dXVhdnZW1ERTrVajsrISAwMDkuQ3kyGd0CBZp9NJdgwKiUI+sjuPPHYetouDkRHyJ554AufPn8c999wDm822aiGDJD9t56g5y7IJ/Itwl2g0img0uuncZbWQ4mBSogyJxN4oUSZbcByHq6dPY+z0aYSmpxEDYN27F/X33YcCEVPY9YgyUp0ydXV1GBoakjTh30wEg1H09rr4SGyfL4JTp4Z4UQYA9uwxgWEAh0MFo1EJmmYgkzFwuQIYG/MDiAszFRUGyGSJHHd62oe9e4tQUKBALMbB5fKht3cOGo0c/f0rRtgTEx7U1Jj4xCeVisHiYhB/9meV8HjCmJnx4cqVZbz88hhaWkrQ2nqNf25Pjws33ujEm29OQKGg8C//0oGjR8tRXi4uhGQCTdNQKBR8R6+wgw8AP/GwsLAgajxMRpiSkzaFr280GjE5OYny8vKU7jYhNzIYDKLWEna7HZOTk5LR7sKCmpTPjEKhQENDA3p7e1NGqAhkMhnfhZ2P7N565JnsKtDa2gqNRpPQivazn/0MDocDHo8Hd911F37605/CZDLhzJkz6OrqQigU4k/Yu+66C0eOHEnroC0FjUaDmZmZjTyctBCLAUxeiEiKwdLSEmZmZtZ0XJsJ0na7vLwsKcqUlpZCq9Vu6QWFYZisK3ObIcqIQaFQoKqqCoODg6KtlhuFSIRFb+8sOjqm0NExjfb2aez/0DK+8qV5mKkFnA/W4Dr5JX77swU3YI+mGwusnvCABCxGLUDc2hcAYNHMIZq0jUEeXzxCd4YR/UMVmIgKK9QxLticVauw32+FKrYi1IyoaFAcBY7iEKG8uMBVoBw9iFJevIUS7EMXVIwXimANYppR6JYAaICSIgb/3wUd3mfyQxGgoa3mMHiBQdQPWEsA7xiFp5+W4e//PnlPE0GIQmlpKS5cuIA9e/YkPB6LxXhT3sLCwhTjYbJIS806h8NhlJaW8iNSUkShvb0der1etGvGarWCpmnJbheyD11dXaJiExA/9+rr69Hd3Y1du3aJfhZyuTxt9KXw/YA8Ucgjj3cjsuFgzz33HJaWltDe3o6BgQF+NDsWi+HBBx/EgQMH1hS2QISadMbmG4loNJrQ9UO4C+kwEXKXkZERFBQUpKwB2w25XA6Px8MXBHJBlElG91NP4dy3v43AO2PyNAAWwMDrr+ON730PpXV1WJiawu4HHkDRhz+8IaKMGCwWC2ZmZjA9PZ22c3S9CAaj6Oub5UWZ7u4ZRKMxDAwkJoft2qWH3x+FwSAHTTNYXo5g/34bWluncfXqythRcsfL1JQXR4+WweuNIBbjMDvrx9jYMpzOArz5ZmKyW0WFAVNT8REopZJBVZURTmcBbDYtZmZ8GB1dQn//HBYXg/B4QvB4Vpjb4OA8CgvVcLvDqKoywmxWg+M4XH99CdraptDdPYf77/81fvObE6Dp1Z9b5HsiKZXJHCcUCkGlUqGurk6SY6lUKlRVVeHChQuio9ssy6KkpESyc5lwI6kkTwB857RUR3I2PjMWiwWzs7Np04VNJhNfGKypqZHcLp/EufH4kxFqHA4HxsdXWuomJibgcDhEt3E6nYhGo1heXk6o8L744ov46Ec/mvIcIO7E/bGPfQxtbW248847ceLECTz55JMoKCjAa6+9hn/7t3/DBz/4wTXvv1qtRiAQyLzhGpApWrKoqChtisF6Ugc2EmLVJp/Ph6mpqW0TZcQgNfq0VaKMFGw2G6anpyU7KFYLlo3h4sUFdHRMobMzHsl45coyZDIa09MrC8L/+e23QPtkiMUAoyoYZ0kAcDpV9wAAIABJREFUxiMlqDUPAADMBW5MXyuEnUn0pQlEE7srNIogJpdNKDCsvH5lsQxjAGJMDIO7r4MjIngNKgwlRyFEc5hQvg9qLgAg/pphOgB1rAZ+ZhgxKopuugB1nBYh+DBGKfH+WCHAeNC2WAKHZhThQBS2GI2QgoWBjmEmGMbgkBpHa2Io1XNQ3gi0/SeNlkYWTz0lx+HDMdx2m7RgR74/q9WK+fn5hBZY8t3TNI2mpib09PSI+smkm3UOBoOwWCyQyWSSs9RKpRK1tbXo7+/H/v37UxZdv98Pq9WKkZERyW4XjUbDd95I+cxYrVZQFIVr166hoqJCdBuTyQSTySTZQURAURQuXboEi8UiOhaWRx55bD22ioOdO3cON954Ix566CHs3r0bcrkcX/rSl3Dw4EFcf/31a95/jUaDxcXFzBuuAdFoNIW70DQtKsqIIVc4GOmUERb4CFfJBVFGiLnXXsPv/vZv4RobS/h7DHFnOg5xKrI4NAQKwOVvfxuuH/4QFR/5CPb/wz+AS/JC2whPmdraWrS3t8NsNm9IcmsolCjKdHZOQy5n0Nk5nbBdZeX/z96bBzd231e+n3uxA8QOrgB3spu9t7qbvai7tcttS6/0PGMncerFepGXmsl4S6YyIzvJc1yZZCYpZzKTKb/YVY6eY3vitBL72YpjW7biqNVaeuXS4tLs5r6CJAiS2Hfc9wd4LwACYC9aWm/EU9VVEnBxcQHi3t/3nu/5nmOkqSmnlFGpVKyvpwkGswSDKaan8x2y1dUkNTVGlpdzj2m1IoFAgkceaSIez+DzRZmcDPDSS1Ps3u1kcDBP/ly6tEB3dz1XrnjRakXa2uxUVWl58sl2bt5cZXIywPXrfq5f93P6dKOiqoFc4tOJE256ery0tdlxOnOkjEYj8sYb81y/7le27erKXy9ee22Or33tKp//fPddfX/y37Kjo4P+/n7sdruibJETn2RT3hs3brBnz56SfcipWeWaWYlEgtbW1i2Vyy6XC5/PVzHJM5lM0tTUtKXa5XZ8Zurr65mfnycYDFYkfAuTOG8V2X3lyhW6u7vf1QTi/1XxviFquru7GR0dZXJyErfbzdmzZ/ne975XtM1TTz3Ft7/9bU6cOMH3v/99HnnkEeVCnM1m+fu//3teffVVZft0Os36+joul4tUKsU//dM/8dhjj5WkC+zZs4c/+qM/ekvHL4qisuC9lUWuEinzVqIl5fnadxOVJMCbC5urV6+WvQG9l1CpVKTTacXotxwpY7FY7kn6UldXF729vdhstjsagcpmJcbGVrl6dXGjKFjkzTd9HDxYwxtvzCvbabUC+/dbqa62IAgiPl+S+w7MsBivZiVp4ZTmTWXbKVM1u1Tjyv/PBxqocxQTNdJ6Fjb5vSTDViggajQFqtDZ6jWs0RoEriuPmSWRhJDhvKGOJyMjyuNposzTRTWjALikFKK0A0nVR72UICI1oxNvMpKs4mjaQqoqRmbNyao5wT5J4rJoockYxxfVMnVdZOeOLJ1NWS4Nq3josQx/+IcaTp9OsMXIr+JX09nZSX9/PzabDZ1ORzqdVs7Rqqoq3G43N2/eLKtIkWedl5eXi9JQZANwp9O55Sx1TU0NPp+Pubm5otEFyMVCmkwmPB4Pg4ODHDlypOz16VY+M+l0GqPRiNfrxel0lh3Fgtxc9+1EdodCIRoaGrYju7exjfcI3s0abDOZI0d0nzlz5q6P32g0Mj8/f+sNb4FypIxKpVJUvs3NzRiNxjta03U63TtGIlXCZlImHo+j0WiUGqy2tpZsNsv09PSWHfh7gdjXv07/979PbNNNpAqoBTTA5giQZCKBIIqM/tVfMfHccxz8sz+j/Zln3lajX41GQ2dnJyMjI1um7JRDIpHm+vUVrl7NkzLXr69w4EANV6/miRmNRqC720YiISmkzNxcmGPHGoqUMYASh517nUhdXRVtbVbW1+PMza2xuJhgYMBHV5eTmzf9FArFA4EkRqOaVCpLW5sNl8uISiVw3301DA6uMDKSI1eMRjUul4F0Ov/iN96YY88eF+l0FpfLiCRJrKzEOHCglitXvBWPEXLGwo8+2kI4nCQcjvCtb/Xz+OOt7Np1e9HimyHXYLIfjKxsKRwTcrvdShJnObJFHt0uJHoK9793716uXr2K1WotO3q0VZJnLBajsbGRbDbL5ORkxSbW7t27uXTpUkWfmXg8Tn19PYODgxVDJG43iRNy14dsNvuuBKf8r473DVGjVqv52te+xpkzZ8hkMnziE59gz549fPnLX+bIkSM89dRTfPKTn+TjH/84HR0dOBwOzp49q7z+/PnzNDY2KkZ4kGNDz5w5o0TrPfbYY3z6058ueW/ZC+KtQu6abBWDXQg5WrLQMG8zKfN2REvKJNI7hTuRAG+GLMO7lx2czUoZmV2XCzOZlJFvKN/NSOzNkN39R0dHy0ox5eMbG1tjYGCZS5cW6O/PyWcTiQzNzValEyKKMD29yrFjNhIJgWAwzexshKtX1xW57OlPruE1uonVOYkltOhnshxRD3I5dh+7WkeL3nc9VWqGpsqUkYLaLWTIzy5rKFYv3dTuYqd0EYQcuWgi50Tj1YBf3Yyc7pQVMlwUaviwpCUjJHFKCd6kmU76qJdinBfqOSn0I5AlEWvAZIgwONyMcCxKdgzoEKgxRLk0Z+D0oTTXr6nY1ZShOS6R0gt4vSLPPafic5/b2q9I9ltpb29XlC2JRKJoQW9qaiqKayzE5llnucMhEzW3mqWGHIF36dIlHA5HUYJHLBbDaDQq8uCpqSlay8z0w9Y+M9FoFJPJRGtra8VRLPm7uJ1CIR6PYzAYtiO7t7GN9wjuZQ22d+9efvrTn76l478b1UohKRMMBolGo6hUKqV2uRtSptKxxePxW294l0gmk0VBBYWkjMVioa6uTllLNr/uvRCCURjgETn3z6h+9hPUQEcqQd/GNi69gCMjkE3lCAM1lIxRqzZU7ZlEgp7f/m3CP/sZh37wg7e1vnS5XCwuLlY0kQVIJjMMDi5vEDJL9PUtMjy8gtttxusNkUhsfAY1hMNhDhywIIpqAoE0s7Nhhocj2Gx65ufz3n8XLy6wY4eDmzdX0WhE2tpsCILAhz7Uxvj4OpOT69y44efGDT8nTriZnc0r/EdGciqYCxfmaGuz43IZNmK9nZw7N8ONG6vcuLEKQHd3PalUnpSJRtPY7Xp0OhXV1SYEAVZWYiQSGWZng8rrQE580rG+ntj4fAKhUJIHH2wknc6yshJjcjLAyy9P09pq4+bNdQA+9amf8MorH0etvvPzTD43rVYrq6urirIlHo8rtVThmHg5skWj0dDV1VVE9MheepCruzs6OhgaGirrUbRVkqecuik3sVwuV1mDYjkWXE7i3PwekUgEm81GVVVVxVEsuL0kTrn+EgRhO4nzbcD7hqgBeOKJJ3jiiSeKHitUuuj1ev7hH/6h7GsfeughLl68WPSYyWSip6fntt7b4XBU7FjfLuQZ6XJEzVakjMViob6+nqqqqnfshuXtipwuJGXkwuZ2SZlyUKvV72pX/VbjSxaLRbnxrq+vLyJlJEl6V0mZSqirq2NxcRG/34/D4WB8fJ3BwWJSJhhMct99tfT15X2T6uv12O1w6JCdcDjL7GyE+fkY6bRILJYiGEwq2/b0LNLaauPUM4ssaprRxNN49AtMVTeze20MY32pKXBWW0oGmjWlJsNixlhEzWgoLhTjgorl7BPUqH4IgKngb/CmtgHIR4PryKLO7iKjuoaDOD8V6zmQtVItRbmscmDL1OBWxfjnQD0fdg6yENbwSFzLnD1Nq1oN1RY6QiFSegNiVmItKzAxKeCuB4tD4j/9Jy2/8iuxW6ZAQS7S0e/3Mz8/j8FgKJKUFsY1liNbtFotO3bsKBphymQyCtEhz1JXmmOWC4WBgYGiQiEWiylpArJfjtPpLCudlWPByylvZKLGbDbT0NBQUR0E+UKhnG8P5JPoZAJ5u1DYxjbeG7hXNdjOnTu5efPmXRxxHoXKnnLrciqVKlLKbCZlWlpaMJlM78h16O0cfZLrlzslZcpBrVa/60RNxVRVjRrz7/0uwZ5+UvEcBZPJQo0K0GiwJVJkC2oBq6UKfzBctO8QxTdNN37+c4xHj7Lz/HnELUzu7xQ7d+7k6tWrG+MlKoaGfNy44ef11+fo61tiaGiFZDLDyZNuXn89pyZRqyGTSXLkiI1olI3GWJiRkTDHjzdw8WK+eZVKZenosDM/H0KtFmhttVFdbcRgUKNWi4yNrSnkSl2diWg0VUSuDA35cLurUKmy1NRUodNpWFmJ0tFhZ2RkFflUEwTYt6+GN9/M65N6exd5+OEmEomcn4/fH2NkZJXu7voSRU+h/41KJWC16ujsdBAMJlhdjTE5uc7AgI99+6oZGChWW6fTWbRacYPACfGNb/Ty2c8euau/h1yTNzc3c+3aNZxOZ0ns/K3IFqfTyfLychHRU3gvV1tbq4wnbR4JhVzKVG1tbUmSZzKZVFIu9+7dy7Vr1yo2sbYaH49Go0rt1tfXV6LALkRDQwMrKysVR6nC4TBVVVVKEqesPtquwe4O7yui5l5iz549jIyMcPLkybveh0zUWK1WIpFI0RwwoCg03mlSphxkw77CC9etUI6UEUVR+RxNTU1v2VNGNhR+J4iaQlJG/gzlxpc2K2UymQyrq6s0NDTcc1KmEJIkMTm5Tm/vEjduhPnpT3/A5GScQCBXAO7b52JgIDdzXFurI5GIcvp0DT5fktnZCF5vHK83zunTjfT25r0IlpYiHD/uZmBgifZ2B1arlmg0Deo0tOuxGlZZCVQh6iUMtjg/WXmYh+2vlhyfUZ8nZca8bYyttqC1G5g1NuOQAhjjvQhSFCFT/LdWUVzAqkny/4od/FvJCkIAA/kCZFEtYM46iIu5Lo5dSjLIDjq5hpU4kiCQynbh2HA2XqaFFm2Q12L1CJmcJDUwbaK2Kcn0gIbadpH0RR3XnRLtRom+WZFHjmd45VUVxw+mMelEvvpVDf/1v25dzMq/k5aWFq5du4bb7S6Z/b2VcV11dTXLy8vMzc3h8XhKnpfnmCuNJ1mtVqqrq4viKOVujnyMW/nlQI6w9vl8JcqbSCSiXDuampro7e3d0itpq2Mt3Nd2ZPc2trENvV5PKpWqSLLcLgwGg0JcbEXKtLa2YjQa37XrTSXfu1uhEikjG/3eCSlTDu+02roiKVOQqtrS0gLz88w8+gChYICCfhEAjQKEUhmymw7TkQqzWQcfBVxA4S4mhocx799Pw+Ag4lv040ilMgwNrdDfv8SlSz4++9lvMTERIZnM4HDokSSJtbUEKhU0NuqJRMKcOOFieTnJ3FyE2dkYCwtxduxwMD6eb3ZdvLjAkSP19PXlGmQ1Nbnf5pkzrZw7N8Po6Bqjozkl9OnTjUXGwouLEU6caMDni1FdbUQUBVZXY1RVablyxcvMTN7DZscOByqVoKRFCULOJPjkyVy9IZMrfX1LaDQiPl9elXP1qpfWViuTkwFEEVpabGSzEh/8YBszM0EmJtYYG8v9O3asvsiXZmDAx6lTucSn1lYbtbUmRFGgs9PO+fOzzM3F+P3fP8f993s4dGiLrtgWkJW5srmv0WgsqcFuRbYUjjDJHjeF6OrqUkakyo0ntbS0cOXKFSVuW54WkM9Pk8m0pV8OUFF5I0dzy4TPZgX2Zmw1ShUOh0tqsMLG4DbuDO/Lb+3FF1/kC1/4AplMhk996lN88YtfLHo+kUjw9NNP09PTg9Pp5Pnnn6elpYWpqSl27drFzp07ATh+/Djf+MY3AOjp6eE3f/M3icViPPHEE/zlX/5l0eImz0jfKVEjR0nLzvnBYLBobMbtdmMyme65tF/u6FQiat6JuezbgVarfVs6OptJGbmo0ev1SnFWX19fdnxps1Kmrq6OpaUlIpHIPU3KypEyi4yM+HnjjTn6+5cUSWlHh42JiQDZLNTUaHG5dBgMEvv3O5iaCrO0lGBpKYHVmkSvVxGJ5L/jixfn2bnTQSYjUVOTu4AvL0fZu7emKE7x6P8lYjJkSWTVtFhyM9ThtJE1femIE4Crzs/g8G6umzqwnV5FRRJJErgoGAE7+vQZulclbNlilY2KGIWXOhUJAoLIbOZDNKrOoietPJ8W4qxlD2HgnwGwkeRl0cleyUoVuaLiDaGJA1KukHlJrGWvOic5H4m5UJGlZ87Ikw0hZlZE2jrSXFnQcrA2QETUc7JTTSIucHhHlt4hNeZ0mJERDV6vRH391sWwrMTasWMH169fLxoBkLGVcR3kOnWXL1+mqqqq7Cz0rl27tozBbmtr4/Lly0oc5eY4x6qqKjwez5bS2c7OzhLlTSQSUUgZuVDYKm1KEISKo1SFRYK87XZk9za28d7Avai/IHftmpqaKnvd3AqyUiYYDBIOh+nv7y9a910u17tKylSCfENUqYZ6p0mZdxq3S8qUpGpOjTP96EMkI1FWNpWCGgE6JOjJlJr6p5IlD+VeQzFREwBCCwssHjlC/Ztv3vb3l0plGB7OkTIzM0F+8YtJhoZ8JBI5wu348TpGRoKIYo6Usdm0WK16FhcTzM6GmZ2NMzsbZ9++6iJSJpORiMczGAwq3G6LQq5EoymcToNCdgCYTBpcLiPz8yHl9ZcuzXP0aD0qlYgoCqytxenvX6ary8mFC8UeTYX+MKKYU7GcOdO2oXiJMzm5zpUrXiU2W0Y8nuHw4Tp8vhiCAK2tVmpqTJjNWqqqtIyPrzExsc7ExDoej5m1tRjxeJ6IvHlzjepqA1VVWmprTajVOVPjnTsdjIysMjGxvnFMArt3uxgc9JFOS3ziE//ExYu/iV5/53WAfF4ZjUacTider7dsbSKTLQ6Ho6SGKhxhcrvdJc8XxmAfPXq05Lckj6nLcdvpdLpkwsLtduPz+SoqYuSG2mblTeHkgazAHhwc5NChQ2V/0/IoVTkT43A4TFNTk3LMsJ3E+VbwvqtaM5kMn/nMZ3jppZfweDx0d3fz1FNPFd1UPPfcc9jtdsbGxjh79izPPvsszz//PJBjI/v7+0v2+1u/9Vt885vf5NixYzzxxBO8+OKLRSlPe/fu5bvf/e4tj23z+JIgCMr4ksfjYXp6mkOHDr1N38bbh8IZ6XtFypSDRqO5Y6KmHCkjs993SspUUsrs2rWLa9eu0d3d/a6QbFNT68oss98f5R//cYy1tfxM++HD1ayvJ6iulkkZgQceqOfq1WWWl5MsL+dKk5MnPQSD+ZnhQCBBe3stOp2a+voqNBqRtbU4kgQTE6tFzv1+f0xJDNDr1ez8DQNO4yiBoA23LTdCNeHz0OTyks6oUKvyC3MmI3J5qhvz/hA2e/79s0ICVcZORpUgrk7zag24UwfYJXlRCRMAiISBvPGssEG4/Ehs5HOSs4ioSRLj52IHH5NeJitkMJMkLYgkMvswbLxuUKxifzr33yFBRUrMkVGvxRx0VmUYDYsEQrkFfHRUxO3JMn7Dwo56PxdedHL0RJYrb4gcOpbFZNFy7mcJ/vIvBf70T7f+Hci/o6qqKjQaDevr62WVMVsZ18mL69DQ0B2PJ0G+UOjv76e7u1t5rBCNjY1bKmLKKW82R0vqdLpbFgqVIrvD4XDRZ9suFLaxjfcG7lX9BXlV81ZEjWyQuzlKunDdlySpYjLdvYROpyOZTCpNs0Klr+ynIX+Od5OUuZux+LsmZcjXYIIgoAr4MX74IQxEebWM4GiHCMYM6LQqEsniDVIZMBkgsiH6qFapaMxksANqgwqJDHEtLGEmFAihmZjA98QT1PzsZyXvI8df5+KwFxkdXeONN+YUUkavV2G360ilMng8eux2LclkkhMnqunpWVFIGQjS3V3P2Fi+GSWrSbzeMDU1JoVcOXq0gVdemS2qwY4fdyuJTQCxWIojR+pobDSjVousrsaZmlpndTXO9HSgaNxpYSGMxaIlGEwq5IpKJfLoo81MTa2ysBBlYmKd2dkgLS1WRaED8Prrc9x3Xy39/Us0N1uprTWh0Yh88INtnD8/y8REgImJ3Gc6fboxp7jewNxciFOnPMzOBqmry9WYgUACk0nDxYsLTE7mv4uuLmeRoiebldBqRY4fr0eSsvj9Ef7oj17lP//nh0t/DLcBuX5wu91MTU0Ri8VKyJpCsqWcF4zFYqGmpgav16uQGYWw2+04HI6K6ZYGg4HW1lauX7+Ox+MpIXsqeRIWQlbeyGmg6XS65Pysrq5mZWWlYtqUfKzlIrsLVc3yMW1Hdt893ndEzeXLl+no6FAW64997GO88MILRYXCCy+8wFe+8hUAPvrRj/LZz352S/mm1+slGAxy/PhxAJ5++ml+9KMfFRUKe/bs4fr1fNKMTMrI40uyQW6hUqaqqqropkKSJMbH8yk47wXIpIz8Oebm5t4Rs7y7xa2ImtshZerq6hTVgOx/Ib/2bj1lDAYD9fX1TE5Ovu2JCFNTOWlpX98Sk5PrnD8/w8pKXmJaW2sgHk/icmmprtai12tJJjO0tlqYnAzi8+VIGa1WhdttIhzOd2veeGOO48cbNhZANaFQgrGxNfbsqS7ptpw61chrr+VGoBwOA21tVlwuAzMzERay6zjtfgyaBNoNRcpqxEJr9TxadYrrS7vZVzsAQDyh459HHsfRvUpV3EGGaNH7GAQz4YLxpnVRy7eE/52nMy+jFfsRhRCFRA1C7ruICiJTmQ9iJQDkCA1JkIhLajTZvSRU1zCRO7ZzQjuPS4PKLqYLoqZUUn7RadPAKDAdV9NgyjLvF3nQneaVOTVZyUQmIzAyILL/ZJar51Xs3gO1tQm+9S2JZ5+VsNtvrarJZrMbaQ3rhEKhkoSkcsZ1hbDZbJhMJmKxGOUgjydNT0+XvSGR4yiHh4crql1ulWKwWXlTThZbXV2Nz+djdna2bEED5WeuI5FIydz0dqGwjW3ce9yr+gtyzbLh4WHFI6cSKSMrTMpFSQeDwbcl+enthFy/JBIJBgcHyWazaLXae0LKlINcg1UiaiRJIhqNFpkV3xUps7F/pQbLZND/ymOI0SgGA7hTMJEPg6RRDaYNPsChV+FNljI5NhMYNXBYBOt67vmsIBCP5f5bFwMrIUSDDuIJgufPo/n9P2D21z6vkDKhUJIf/vAm8XiefLjvPiepVAa3O0fKaLVqNBo1a2sJ5ubizM3l6o7WVhubf/ozMwF27XJgsxlQqQRWV+Ncv+5Hr1cX1WAqlUBXl1NJVxIEWFoK84EPtBKNplhbizM5GeCVV2Y5edJd5A8zNrbG6dONvPpqrn5racmRK06nnpmZEJOT6wq5cvBgLePjeUVOKpVFknLpUg0NZoVciccz1NaamJoKMDWVI1fMZi0Wi5ZotFiRffhwHWq1iEYjEgwmefPNZdra7EWKbIATJ9xFnzkcTvLBD7YRCCQIhZJMTQXo7V3aUPTk0qL+x/+4ygc/2M4DD5SvKW4FtVqt3CMMDw+XHfO22+1YrdaK4Qqtra1MT0+TTJaXbbW3t3P58uWKxsCFKZrlphhuRxEjK2+WlpYwGAxlR63kUS2Hw1ExiXNzZLckSWXrObl23U7ivHO874ia+fn5oohZj8fDpUuXKm6jVquxWq1KatPk5CT33XcfFouFP/7jP+b06dPMz88XdbY9Hk/RYh6JRBgeHsbv9/Oxj32MsbEx/vzP/5y6uro7MsiVF6N7FXdWSSljNpuVhJW9e/e+pzrWGo1GuSG9nfGlW5EyarX6bfOUaWpq4urVq2Vvtm8XMzOBjTjsJcXY95e/nCra5tAhJ5DB5dJiNGpJJCQ6Omy8/rqXlZX8QnHkSB2Tk3lSJpnMUFNjwmJRo1YLZLNqpqYCzM6GWF+PEYnkC4+hIR91dSYWFyOo1QLt7XZA4gMfaGVkxM/MTJDV1dzf4fTpJmo+qcaqDrMUtLPHMgbA/KqHHY25/55dqWVf7QCJpJaXhh/DeV9ORWPQWCi29wOttMlcW4gREo18i4d5JiOhFSaB/Dkvka/W/lF08/FMpOjlTinFZfZygGsYNgigYdHEQ+k82bOU1aKRICVAXMrShsQEArEYWFQS8ymBk2RZACQ12I0Sb87pua8zQN+olX17JerqsgwPqTh9OkssKvDXfy3xH/5D8YIqx9AHg0FFei/7OLW1tSlRipt/i7JxXSWSw2azMTMzQyAQKFsIdHZ2cunSpYpR2W63m/n5+YrXIZ1OR2dnJ4ODg4p58WY0NjbS19eH1+utOJK0c+dOJW1qcyyljM2R3dFotOzYljwasF0obGMb9wb3ov4CWF5eZm1tjZdffpmXX34ZtVrNV77yFWXdL0fKlIPsE3gvIElS2fQluakkExsej+c9RUTLRI1er78tUqa5uRm1Wn1npEwZaD/zEcTxyVzmtgBNpjxRYzRoqY3nax9rJom3zD7aTVDrB7GALBEkCUEEqeDwpESCxioIpWDma1/jR89d5s9CjwM5wqS52UgiocZu16LRqIlE0hw+XMuVK0vMz+eVzZtHhKam1nn00RaWl9cwGPSEwxkmJwO0ttpLGmMHDtQUjTA1NlpobDRTXW3cIGXWmZwMEImkSCQyivcgQH//Mm63mfn5EM3NFurqcmvtww83c+WKt4hcOXSormjUvb8/R4RMTq7hcKix2cwEg0lOnmzk3LkZpqfzNeWJE24WF/P1ViiU5ODBGpqbrWg0okKuBAKJEkXP4mJe0QPQ0FCFKAo88kgzq6sxpqYCzM2FWFqKVFT09PUt4XBo+W//7RIHD9ZisdzaU0g+5+R/sVgMrVZLQ0MDarW64pi3XEO5XK6SGkqelJiZmVH2U4jb8fvbvXs3r776quIXuBmyIqZSDViovJH9QDdDpVKxd+/eO0riLDeOVfie20mcd473HVHzVlBfX8/MzAxOp5Oenh4+/OEPMzQ0VHZbSZJ4+umnGRoaQqfTceDAAXQ6Hc888wyaEoOzAAAgAElEQVQPPvjgbUdsb4bBYCAajd71jf3t4k5jJVOpFIODg+8ZkkYmZaLRKH6/n0AgcE9JmXIQBIGuri6uX7/OkSNHbvkes7NBhZTp7V1kaSnC2Nhq0eyuxaLB7dZjNmswGNQkkzA/H8Nk0jMykl8wBQH27q1mcNBXtP/HH28hHk8TiaSZng5w6ZK3yHkfYG0tXlRQNDaaaWgwY7frmJsLMza2qiQGeDxm1teLY0MXFkI8ekZFk22ZNZ8FLLAcdNLWMKVsk5RMZLMCvxx4HOfhtYJXl6ozNBTfdOcUN0aiIvxPHuH/zP4IMSuSFXOLfkbIFwoxQeA6u4H8e9ukFP+iquF4to4kedXJTfKLXUTMsCuk501LnJg+Q8MoTNRBtgr2r2R5DRUra9Bgz+IXRXYZs7wRVaHVG/G4IgzOGDDr0jQ0qAmFTPT3zaPX63nmmSyxWF6hJpMyFouF5uZmhdCVCYfa2lpGR0cV34ZC7NixoyLJkUgkaGtrY2hoqGwhIBcKlYggQRCor69nfHy8rCkeQE1NDT6fj7m5uaKbs8J97N27l4sXL5YliyBfKAwMDJQ9DvlY5ULhyJEjymPl3g/YLhS2sY3/H+JO6i+A69ev86UvfYnJyUmqq6s5ePAg4XCYr3/963R1dd3Vmq5Wq+/KtPdOUY6USSQSilJGDirQ6XTKdW1xcZFEIvGeIWlkUiaZTDI5OalEqL8TpMxmqF74LqqfvoQkAFoRIZvFrAZzjY7QcoI2axKxQFBqUulgU+jAfR0WmrJB/JsULQKgMUCyoL8jZWEdFQ5dhi5Tit9IXmS06whTxnbC4QyCIDI7GygiZWpr00XEgyDkxsNPn/YgSbC+nmBiYp1z52Zoa7Py5pv5hM2LF+c5dKiO3t6ct19zswW9Xs2TT7YzMxNkcjKgkCunTzcW1XnLy1FFiSLXbhqNiFotEgzGmZ4OKuRKe7uNRKI4pHx+PkR7uxWn04RWqyIUyh2nKIoMDgbIufaAWi2yc6eTGzfypr/T0wEef7yFWCxDOJxkamqdV1+dK1H0BAKJIkVPXZ0Jj8dMTY0JrzfM9HSAhYUwCwthDhyo4dq1fKpUKpVVRp5sNj1NTVYMBhXJZJaWFgtTU0F+8Ysp/uN//Be+8Y1i1V0qlSoiZaLRaNE5V1dXpxC6cg02NDTEysoKLperaF+3qqHS6TTNzc3K+NFm3MrvT05ik4nqcuf9VjUg5JQ3O3fuZHh4uKKy/06SOIeHh2loaKjoVbp5DP29cq16r+N9R9S43W5mZ/OJNHNzcyXu3PI2Ho+HdDpNIBDA6XQiCIJyQ3L48GHa29u5efMmbrebubm5on16PB4+//nPs2PHDqV7+9u//dvo9fq7Jmkg39F5O4maW5EytxMreS9iGGVspZTR6XSIokhnZ+c9JWUqwWw243A4mJmZKRozmZ8P0du7qPzr719m505HUbcF4MgRG+FwBqNRTSIBXm+MhgY7V64U94f27CleRFwuAy6XgQce8BCJpJmZCbK0FKWnZxEQFPUL5Nz4m5rMzMyEqK010thoQRQFHn+8hStXvMzOhpidzXVyTp70FBFHc3MhHn20hXg8QzotMTERINIax6SLEEvr6HTlorCXfLXs2FDWAJiaQ5zv+wC2IpIGspRK4DffbicJkstmgIAI/yg9RYt0k9hGAZEVYqglSG/8nG8KLszSMgkh1ym1bsR5e6VD1JL/vq+JFgySQEyQCKjSiCMWOBonqMkw1qvC9ESGRBXMvCig7ZawusG2KtGPSPJ1gX0PZ1FnRTJ9OtKWDFW1GbxjGYJBCVe1xGuvxfnOd0L86q/qaGxsLBl9LIRMNNTX1zMwMKCkABR9LwXGdYWR2gDxeBy32002m61YCMieDJWIoFQqhdvt3lJeK5sXOxyOihLd2tpalpeXlQSDzbBYLFseB+Sui83NzUoaQyVsFwrb2Ma9w7tVf7ndbtxuN3/xF39Ba2urcp4fOnSIHTt2vKU1Xq513i5VXqXx661ImXLQ6/UEAoGKz7+T2EopAzlPDI/H846QMiUIrqF99vMIQLbOgriab1DV1Ogw6RMYZ4pfYoomEFQgbZQuh1zQmQySqXAYEa0OTWRTmqQ+A0nQpKFDneE3gj/iX488ozx/+rSHV1/N/04NBjWHD9cRDCYIBBJMTgYYGfGj19fQ379ctO9sFtRqgXRaoqnJTH29GaNRTXd3PSMjfoVcqarSYjZrCYfzaqELF3LhDpFIioYGM1ptTrkiGwHLtRtQFPcNMD6+zqOPNhMMJtHp1Aq50tpq4+LFrRU9LpcBt7uK2lojoVBSIVfS6SzJZEYJrgDo61vG4zEzNxeipsZIU5MVQYDHHmuhr2+JxcWIosQ5cqSO1dU84XXt2jKnTnkYGfHT1GTFZNIQjaZoarLy8svTRZ48x441MDWV+z1897uDPPRQHceP2wkGg0QikaIY+pqami1NwmXLgx07djAwMIDVai25JsgN4Uq1i8fjYWVlpaLxr+z3V44Igty9jNVqrTimfjuNLpfLhSiKhEKhkudkyEmclY4D8uNYCwsLJbVoIbYju+8c7zuipru7m9HRUSYnJ3G73Zw9e5bvfe97Rds89dRTfPvb3+bEiRN8//vf55FHHkEQBHw+Hw6HA5VKxcTEBKOjo7S1teFwOLBYLFy8eJFjx47xne98h8997nMl8Why8tODDz5418dvMpmUOO67gZxgUClW8nZImXIoJD7eyRPvTj1l4vE4IyMjaDSae07KVIJOV80//MNrrK1NMjjop7d3CUGARCKtdFsA1Oose/dWbUiJc6RMX1+Azk4Hvb35rsXqqpcjR+q4ejXXbXG5DOh0uW7L4mJEkYeeOzfDqVOeDXJGfm2cY8cauHQphtNpoLnZismkRqUSiUaTLC1FWVrKLXwej5lUqri7ODzs4+jRBrRaNfF4Tqb7y1/OceJEA5cu5cijx36ninrNBKE1C6qaOVaCdlqbpor2E15povm+EHGKF4/Upq4XgEDxMWTFOGpJIC3kSJ0plYiQ/hA1nFW2sSCyuhHLnRTSRLPdqFSvAFC18R4/FNv4d9n8cQWFNK0BB8O2daJClrlJLTsPqVhWZYjE4EQElo2wtCJyUsgguOD1n4h0PCaR7cqwMiARac/gnTPQ1B5EW5dm1W8mHJJ4+GEHv/jFGi+8YOff//vKi1wh5Jn9rq4uZSHeLKEtF6kNKETmrYx/m5ubuXr1alkiKBaL0djYSCaTqSivVavV7NmzR0kxKHe+qVQqDAbDll40zc3N9PT04Pf7cTqdZbdpaGhgdnb2lkT4dqGwjW3cG7yb9ZfFYikxTO/o6GBycrLiuMDtwGQyEY1GK6oAt8Lt1C+3Q8qUg2wi/E5jK1JGTsEqVMosLS2RSCSUqO63lZQpA91vfQQhmkQyqhFDwaLn6kgTWy19jZgGqxvW58Fdb6BTk2tUqbIgGiC7yc7NVpMgUtxDIpISsWzUFKos/G/paT7hucL/M9dNU5OFdFri8cdbWVwMK2qXqakABw/WMDCQV7z09y8rihePx4zbXYVGo6Kjw86rr04zMxNiZiZXF5044SYUyteI4XCSjg47oijQ0FC1Qa4kyGQkxsfXmJvL11O1taYiRQ+A1xvm/vvdqFQi4XCOXHnllVna2+3cuJFv/sk+MnLtWFNjRKNR8eST7czOrjMzE1TIlVOnGpWxfMgpeo4fb+DixQVcLsMGuaJGo1GRTGZYXo4q5EpLi7WIdAKYnAzQ0mLGbjdSVaUlFksxMxPEaNQoCiPIJT7t2eNiaCgfNT487OP4cSfRaIpEIs2f/MlFzp79IO3t7XeV3CaKIlqtlubmZoaHhzlw4EDJNi0tLSU1VCaTUWK1tzL+3ZyAudnvL51OK+PhlcbUZSXQVo0utVqN3++vaMNwq+OQsXv3bs6fP09tbW35L6xgf9uR3beP9903pFar+drXvsaZM2fIZDJ84hOfYM+ePXz5y1/myJEjPPXUU3zyk5/k4x//OB0dHTgcDs6ezd3gnT9/ni9/+ctoNBpEUeQb3/iGcuL91V/9lRIP+aEPfajEyA5yRM03v/nNt3T8RqOR5eXlW2/IrUmZ1tbWtzVWUp5FrnQS3ykqzWTfyfiS0WhEr9cTDAbLMtbvNhYWQgwO+rh0aUEZYfL5ohw/XsfFi8PKdna7ht27q0gkTAops7gYp66utmjRg1zMo9xtcToNNDVZsFh0nDzpZmxsnaWlCCsrMYxGDXa7nqWlvGb3woV5urqcLC9HaG62UlWlJR5P8+CDjbzyyix+f75C2TwClVPLNBMOp9BoRPz+GOPj64TDSW7c8CnO+wB9fUscOlSHrspA+5EFHIZ1dGJOuTI/66Frz4385wnZSLeoEbMu2DQ5nhRCbP61SpQasumSImldnsAZEOp4IPMAGtV5AMwSrG7sKCXE+aFwP5+QLpISEhg39rcuaFiV8q77CUFibtwOh3PRjzW2NM65KuZbAtQ608z0qgiczhVq45ezVO9LIElVZEbDWDwS4wMWjrQmCDdmmRm3oFUFMZokohGBgQE9e/cmCAZFrlxJ0d19e91alUqFVqulsbGxooS2tbWVK1euKJHaQNECuZXxr5zy1NPTw9GjR4s6RrIXzK3ktZXIosL9dHR0MDw8XHEfcqHQ09NDd3d32WuMIAg4HA68Xi+xWKysT03httuFwja28e7iXtZfkA91eCtEjaxqvhVR806SMuWg1WrfdqLmTkmZza8VRZGamhr6+/tpamoqOyL7dkJ89aeIr214HnkMMF3c6LE1CKRGyr/WYgZ9J5xMFLMymirY9BBCGZuiaFyAwo+XgK91vog3W8fPZhqZmQnS1eXk5k0/hV/V8nIUk0mNzZZToGi1amKxFO3tNsbH1xVyRaMRaWw0K+lIkKvfTpxoIJ2W0OvVinJl1y6nEpsto3CUKAeJkyc9hMNJIpEU09NBJiYCmM26olEiyNWYGo1IKpVVyBWLRcv997sZHV1TyBWjUYPDoWd9Pa+uv3Bhjl27nCwtRWlutijkygMPNHL+/GxR0MWpU54iBczUVICHHmpifT2O2awlHs8wPx+ipqaKy5eLa8Pdu12IIsp3azKp0OszHDhgJZWS8PuTLC3FGRkJo1aLyvv+yZ9c43vf+3DpH/Q2IJOMTqcTv9+P1+ulvr6+aBu5dunt7VWaafJ9DOSNf4eGhsr6+el0Ojo6OhgaGuLgwYPK89lsVlH1bDViBeXJokJkMhn279+/pRfN7fgOajQa9Hq9Mm5aiYTdTuK8MwhbuelDmTmDbdw1gsEgH/rQh3jxxRfveh/ZbJbe3l7Fi0HGrUgZi8XytpIy5XD9+nXcbnfZ2N9bYSujPDmFwWQylSVlgCKFzGalTCKRoLe3t+IF6J2C1xumr2+Ra9eWuXrVS1/fEktLEaxWHWq1gN+fk2/abBrq6/UYjSLRqITPl1IWkc3zt5B3unc49Aq5YjZr6OtbxusNl2xXiIMHa5ieDtLcbFEWvnQ6y+Cgr8i4rbraSDJZbDjX0GCiqclMLBZDFPVMTwdYXY1z8GAudrEQp0830tOzws6dTkwmLYuLUUKhFHX/1sLjv3WDTFJkb9UYOk0ClSaDVpdb2CVJIJM9xJxqlV0ZBynV5aL9CpKAgTiSkCdhDNlmvGJx52wpuh+/MT9bnc0cpV9U83npLCnRy1TmSYZVucubWlJzVvgwv5O5DKrXUWWO89eq3CzuzkyaqYKY8NAr+9lxYpopbRzzhTZuzJlwfGQG3Y/tjIzb2f3IKgs/rmJ9TcsDD8Q5/53cYnzmSJqfn80RAo/sSfMvP8n996GuGWan6vD5BA4eXKC/38+nP+3gv//32ycVs9ksqVSKkZERPB5PWUIyGo0qZm8qlYoLFy5w//3357+vpSW8Xi8HDhwoe43wer34fD7279+vPPb6669z//33IwgCwWCQ4eHhiqoZSZK4cuUKnZ2d2O32oucuXrxId3c3kUhE8cyptHAvLS2xsLBQVLAU4tq1a7hcLubn58tGY24+JkmSlPHI9zm2ZUXvTWzXYG8jfvCDH9DX18ezzz571/vw+/2sr68XRecWkjJyDZNMJotIGbkT/U7WYJcvX+bo0aN39VqZlCn8DIWkjFyDlSNlZHVAJaXM8vIyS0tL7Nu37+4/3K2wNIbhsycgm0S4nkbKCggFzSL0kN0P6z2Qmi19eXAvNCVAt4nrCgDhTaNS6CFabL2HJECzE8QCBwCxBcJWLXsu/jvmk7kmyenTjYyPr+F2m5VxIptNx7lzxW9SqIqWcfRoHfF4Eo0mF+4wMxNEp1MRDCYIh/NvbLFoMRo1yriQy2WgtdWGzaZjdTXOzEwQny9HiMgmu4WQPQjlxp9cY/b0LBU1+mRlTCH27atmdjZIdbWamhobyWSWRCLDjRt+JY4cwOk0IEkUjdlXVxvp6LChUuXUNQsLIRYWwuze7Sry2QE2lN+59zYaVbjdRqqrNQQCaVZXUywuxpCk0nEuQFED6fUijY1V/OEfPsS/+lfl1Sa3g3Q6TSqV4tq1axw+fLisqnd+fp7V1VX27duH3+9neXm5yPNlaGgIi8VS1s8PYGBgAIfDoYyKRqNRbty4wX333QfA1NQU8Xicrq6usq+PxWLKfVBhwy2dTtPT08OxY8eUyPFKXjQAw8PDSghOObz++uvU1NQgCMItE21lsmlb2QxsUYO9b1uJL774Il/4whfIZDJ86lOf4otf/GLR84lEgqeffpqenh6cTifPP/88LS0tvPTSS3zxi19UZPNf/epXeeSRRwB46KGH8Hq9Sif3F7/4RdFNk8ViIRwOv6XxIFEUyWQy+P1+wuGwQsqo1WplMXW5XO84KVMOtyu9vVV6gSzVe7s8ZXS6nOfH+Pg4O3bseOsftAy83jD9/UuMj69x7tyMYvYLcOJEPRcu5Nh/m01Dba2G6mo9gYCBpaU4y8sx1tdT7N6di1Is5E79/hgGgxq9Xk1zsxWzWUsqlWHXLifXr/uVWV2tVoXHUyxZvHBhnqNH60gkspjNOmXhK99tKZ6fTiTS3H+/m3A4lxAwP59bMO12A8PDASQp39XxesNYrTqy2SwdHU5MplwxsGtXNT09xYvr8V/VM8I+4gYjc6Z2mvumOXEsn/pRld3PkCqnTQ6SZbMmQhIkNFk7SSEvZ00LpbO1Vq0ef0E+lIEMEUHH+eyTnJCew0gW+bqYFtIYpQxnxX38hnQZTcF41YSooTNuYFyf25dFFyVywwT74ojCGoGYlcNeNYkaCcYhNWHF0yyxvgZDb+qwVEkEwwITMyK1DomlVYF4Bg7tz9D7pgpBYyKbXWD//jp0Oifg59vfXuNLX3JQW3t7l2fZr6azs5Nr165hs9lKFCdGo5HGxkZu3rxJe3t7yfOyT4zX6y2Jtoackaf8fH19vXINk89Li8VCbW0tY2NjZc8xuavU19dXMqIlp9jdjkS3trYWn89XkvQiIxKJsG/fPqLRaFFkdzlsR3ZvYxv3DveiBtu7dy9/93d/95aOWx7T9Pl8ZUkZOXnpXlxTbjcVtJCUkYmZO1XK3Mn4Uk1NDV6vd0uPi7cCSZJI/d+/i9EcBQ3QCMLEJo6zDUQRNDXliZqmNtD1lz4uqESg+DsgDioHZArGqAQJUlbQ5UsTpABYa5NcPvodfp0/JRTJMDa2hkYjFvkIlgt3mJkJcuZMG9FoikgkxcxMgMuXF0uUzVCcFiUrXmprjfh8UWZnQ4qqurPTzuTkOul0/rtZWMilKalUIi0tucZfIpFh375qBgZ8iqpapRLo6HAUETUXLy5w//0NRCJpzGbtRo0ZZu/eal57bY7R0fy2m487mczVmJFImlQqi9cb3iB4jIyMrBSpjtbX4xiNaqLRNAaDioYGI8lklEOHrCwtpVhYiDI6GmJ6WkVjoxmvN0/+vP76PAcP1jIyskJbmx2HQ08mI/HYYy38y79MMzoa5DOfeZGjRxtwu+/O+1O+J2lvb2dwcJDDhw+XnPsNDQ0KYZnJZErIHNnPz+l0lvXZ27VrF5cvX8Zut2M0GktUw7caDzcYDLS1tZWMaEUiEeX95H1sdZ7Ko1Z2u71E/Sxfk+UkTpfLpai4K31v20mct8b7kqjJZDJ85jOf4aWXXsLj8dDd3c1TTz1VZKj53HPPYbfbGRsb4+zZszz77LM8//zzuFwufvzjH9PQ0MDg4CBnzpwpioL827/92xK1SyEaGhpYXFwskcdVQjmlTCKRwOfzYbPZ7hkpUw46nY54vLjN8G6TMpXgdrvp6ekhGAzeleKnEIuLYfr6lrh2bYnBQR8XLswrnQuTSYPJpGJ5OY7FoqauTk8iEefkyRpGR0MKKXPjRpgjR+pZXs4POg8P+zl2rJbhYT/t7Q6qqnQkEml27nTyy19OsbaW/267u4t/P8lkBqtVx7591VitOlKp7IYrfoTV1RjRaF5dEgolqakxKhLTqioNoVCSxx5rJhRKKQvmiy9OFiULAAwNrShFgdtdRWOjBZVKRKdTce7cAn19+SrF4dDjdpuIxbJ0dbkIVmsJmbMEVNW0u6ZJRTR4nfWkUyrUmgy6rINRMS979YtRSm/FQS1ZSVJA1BAAyVLER+s3nQ9acp//dZWNw5kHMZCh8PJXLaWYFg2QOYSKPAmVEiSWho1wKEfUVOnjXBx3c3j3OtV1OrgJEwO1dLXl/v6jUypOuXLv5V8XeLw1zUsDaiZWBO5TZ/GJIlMrImt9cfbv17GybsPvD+H3L3LqlJXqahU+X4bnnlvn937v9gtaURTRaDRKoVBOmurxeOjt7cXr9Zbt+OzatUtZgMuNDe3evVspFCRJKtlHS0sLV65cqSivNRqNtLa2cv36daWzmkwmixZoWaK7lRdNV1eXchyFBsWyOlQUxaJCYasRhe1CYRvbePdxr2qw9vZ2JiYmbvs4JUkiHo+XjC/F43EsFgtWqxWPx/OOj/TcLuQabPN1sZCUCYVCpNNphZRxOp00NTW940a/O3fupL+/H7vd/paUzZIkMTa2Rl/fEmNjq5w/P8vQm7PMPPlyLhRSDdQBhX9mA0jmjcQme+k+DcdAZyW3wSZ+RzSXr6019mKiBiClL55+koK53TXoVvld71d5avj/AHKkTCGcTgMul5EHHmgiEkkyOxtkeTnK5csLiKJQNIJ+5YqX5mYL09NB7HY9LS1WRFHgAx9o5c03l1lcjCiK7BMn3EXEyujoGqdPe3jzTR8tLdaNBl4ao1HDuXMzRTXmwYPFytxMRkKtFti/vxqLJV9jjo2tk0pli167uhpTAigAjEY1gUCCD3yghWAwyeJihOnpAD//+VSRMgZgeHhFIXV0OhG320hVlUBjo5nZ2QQLCzHGx3P7PXSojvn5fL2WTGYQRQGTSU1joxWn00A2KxGNpjAYNAwP5+vGqiot9fVVzM+HCASS/Jt/8zN+/ONfuat7KfmcsFqtrK6ulvXbK/SjcblcJfcharWa3bt3MzAwQHd3d8l5plar2bVrF4ODg3R3dyuj54X7l8fDN6tmZNTX1yuGv3JDLhqNKteLwn1U8qLZyqA4HA4rIRiFkd1bjZdvR3bfGu9Louby5ct0dHTQ1tYGwMc+9jFeeOGFoiLhhRde4Ctf+QoAH/3oR/nsZz+LJEmKzAxy886xWKxiPG057Nmzh+Hh4bJEjUzKyKRGLBYrq5QZGxvD6XRu6ax9L6DX61leXsbn81VML7hXkdhyFPbw8PBtRWHLWFqK0Ne3RF/fIisrUV54YbRovKi7u4bFxQhms5r6ej0mkwajUYsgiCwtRQkGc9t2dtqVUScZs7NBGhqqqK42bnQjsvh8UfR6VZHrv0ol0NWVU9vIGBlZ4dFHm0kkMko3or9/iZMnS7sthZ0Mo1FNY6OZpiYLq6txZcHs719mxw4H4+NrRd4y8/NBLJZcZ7C11YbZrCUaTbFnj5OhIT/z84WjVh4uXMiROu3tdurrzWQycONGjDfeWKH56y2gd2GP5RbZyA0T1kMhtMkDZOklLrWRFPOfMS4k0WbtJMVi1z5xk85GEjLopCoSBQoa7aYOmJq8LPhvxIP8emaMwi6ZJR0HrZ6/Te/h1+M/gYJ7+8VwLR3pAIvqBA6bSDKrom7ZiWjM7XNqWcc+V54I0yUFREEiKwnEQtBWnWXCJ5LIwsmOLK/eVNFYL3DzWoK9R7TQqmV6MslrrwV48EEDmUycn/wkxO/+rhOt9vaKBvn3bLPZWFlZKas4KYzDrqurK9nH5kJhc8Gi0WgU4+K2trYSMkf2symcxd4MWZmzuLhIXV0d0Wi0qHu0lSdO4XGWMygu7DBtFwrb2MZ7F/eqBpPrC7nzW4hypEyhUqaQlLly5UpRmtR7BTqdjkAgcEekjKyOfKeNfvV6PW63m4mJidv2CJIkifHxdfr6FhWV8s9+Nl5kgLt/v4P/+cR3MKk21mBLjpRByKlcAGjNqVYANJvECqIVquQJDRuwySTYGMuwXrgv+XU6UNnB2ApxjQGrMYZGB4IOpGkgDWSAGGCEJz2j/I7qdb6z8Bhabc54d2kpoihezp2bLgl3WFuLc/RoA35/DJtNR0uLDbNZg1qtIpHIjffIBInHYyYYLFa0Dw+vKHWbxZJTVc/MhKiuNpaM1G8egRodXeUDH2ghGk2TTmfxeiMMD69w8mQjr71WLEkqJFv0ehWtrTY8HjMNDVXMzKyxuJhgYMBHIJDA54sSi+XrpZs3V3E6DQSDcTweE2azikAgyIEDNoaGAkxM5Ou6gwdrmJvLN/N6exc5dcrN8nIMl8uwYToe5fDhes6fLz7G48fdRUlV0WiSI0dqaWoyk0qlmJ5e5a//up9Pf/o+7gay10pzczPXrl3D6XSWJF3KfjTDw8NlwxtsNhtOp5PJycmyamC73Y7NZmNycpJ0Ol2iVtHr9bS3tyt+NuVQqMwxGAxEIpEiZYxery/riXRG23EAACAASURBVFOISurncDisfObCyO7CkfnN2E7ivDXel0TN/Px80Xydx+Ph0qVLFbdRq9VYrVb8fn+RHOwHP/gBhw4dKioQnnnmGVQqFR/5yEf4gz/4g5IfnZz8tHfvXmZnZ3G5XGVJmerq6opKGdnM7l4TNYlEokgpE4vFlM70vSRlKqGqqgqHw8Hs7CzNzc0lzy8v50mZwUEfw8Mr3LiRb5kYDCqsVg1ms5q6Ot2GRDTNkSM1XL26TCiUX1COHWtQ0pEg18l46KFGVlcTyoK5sBCiudlaErl98GANPt9ywfuqqasz4XIZSaczCrkyMOAjHi9OhurtXVRiDg0GNW1tuQv5mTOtjI6uMTUVYHBwhcHBlY2ownw34ubNVU6f9nD16iJtbTbsdj3pdBaDQcPLL08X+dB0dTlRqSCzMXJcV2dCpRJ57LFWBgZWGR8PMz4eVratd1cTe7AFfdUarqplMgmBmrbcdzuqauBAJsqgKk/SyFBL1STlykkS0EmtrGY78dNBFgEzCewsoiNGQpX//lWbkqCQ8iRZUFBzOdIB1pvKY+ZMDLCxoLOSUhc799tNGbRztdAyg9aQ+65fvVbDQ8fzfzfvnA4BCQmBUBaOVWe5sKwCm4BuREJllLC2wqt/I3LsX2dQJ1TMjmfoeT3JmTMGZqcTZLMCi4t6btzIzar/8IdV/NqvlS7mlSAXCq2trVy7dg2Hw1EiodXpdIrxXbkRTLvdjtVqZWpqitbW1pL3cDqd+Hw+Zmdny0paDQYDra2tFRdnuat0+fJlbDZbUTdHRmGxUckzx2q1UlNTUzRqJXdzZMiR3YUKnnLYLhS2sY13F/eyBuvs7GR0dBS1Wk06nVbCBlKplBJUcCuljF6vJxaLlR1ReLdQTikTi8XQarXU1NTcU1KmEjweD1evXi2bLiNJEhMT60rIgkzKFPrktbVZCIeTVFdrqa7Woder+dWuczyqm84RI6rcP0EAaoFFQA9SVV5wq1KDaIbsxsR01encSBQATkqIGjEB6lrIFNjFaFrAfBD0e+T9biheLEAdSHsh64fEVZFsBHTGLKIA/6X1l/zN2EF6e2NKlHa5cAevN7yheMmNEz30UBPnzs0U1WCnTnlYXCwOd3jgAQ9rawlFVe31hnE69SVeNzt2OFCpBKUpJ4/XP/BAI8lkhqWlKNPTAd54YwGLRcvCQr62unBhTmkc6nQq2tpsqNUiTzzRxs2ba0xOrjM0tMLQUE4Zs7CQr71mZoKcOFHPlSuLCikDEjqdhv7+OJOT+ffZudNRZAMA4PNF2bXLic2mV5RG16+votOpuHkzX6uPj68VNTcFAZaXw5w500okkmJ1Nc7k5Drnzs1y6pSHCxdyI2df+tI5Hn64hY6OMrKr24Dc7NmxY4eifNl8XskEzfr6etl7uLa2Ni5fvlxRDdzR0cHly5dRq9Vlx9Tr6upYXl4uUs0UQqPRsGvXLqUhF41GS1KabjViDuXVz+FwuKgJKEd2lzNZLsR2EufWeF8SNW8HhoaGePbZZ/nFL/4/9t48OJL7vO/+dE/PfWNwDQb3Lo49yeXel7jiUqQUKsor24kp+ZXzWnodHxXnTSVvYueSErkcO5ETx45ku2yn3pId0bKsi7JpySLFew8ssPcu9gAWx2CAwWCAue+j+/2jMT3TwGCXpA7a5j5VWyyiGz2Nnpn+Pf19vsd3tZ996UtfIhAIkE6n+fEf/3H+5E/+hJ/+6Z9mbW2NixcvcvHiRV566SXu3LnDV77yFT74wQ/yyU9+kvb2dqxW61v+cNpsNqLR6IN3/AHWRqO8ZvIlg8HAtWvX6Onp2RTX/TclEruWgCOKTm7dSnL58jKXLy8jy/DCC9O6ffft8+F0GujsVJkysixiNkuMj6+QTlcAdYEdHPRojvi1Cocz7NvXid0uaQvm2FiYtjYr167VQZjFxbROm2yzSVQqMqdPB4hGc6RSMsFgildfDXLyZI/OuG1lJacZBlsshnVwxYrNpi66tQUT1JjDpaU0slxf+aamYnR02PB6rRpFNBLJEQg4dJGGwCYJVKFQ4emntxEMxojHZRYXsywvL9Hf79amJS0tFnbs6CAWq7J82o/HpmBcqGAcrlK97kbaox5vWjTSLruBzWlmCuqDt6n6KONCL/MiDCgd3DHUuikn0Ep3tZvR6hQO8Q2qQhFxQxJUNhtT8zdr187QQX+xQNysgiKtDcPVvxSGkZQslfWvo9NW5sVrHRzqXUJcNz1ezRlhtd5oxsoiB1wy4ykDcQSSr4N9r0LKALeuGDj541UKAIrApb8QOf1j642zLHBv2sjoaJpMxsKdOyaGhtxMTSX5nd9ZeltADTRvFJoxY4xG45Z+NENDQ4yNjdHa2to0qnF4eJjXXnttS+1xbXGusWY2ViMzx+12Nz1OZ2enRtGtmedtrNp3uSa1apzmvNVzqdXDRuFhPay/XfVWe7BPfOITzM/PMzExwcWLF5mYmODZZ5+lp6eHT37yk5w6depty5dqw7IfFVDzVuVLiUSCdDpNV1fXuw7KNKsas/n27du0tGznyhUVlLl8OUI2W2ZiQp/ks3u3B6NRoa3NhMViolhUOHasizffXCIaLeF3J/mlp7+FKbQ+mHGhITKpPiuu5Tyl4yKmrJ5hm2s1YUmXqHQYsHgahjpbWJTUgBpZEvA+rWDvBsEC6H10kXMq00YQwdAG1qdlwmErXetAjrko88KPPcexL/0smUyJoSEv2WyJ/n4PLpeJclmmXJbJ58s6xktbmw2326wDrW7fXuPgwQ6KxQJWq51IJMuZM4vs2OHTsaqDwdQmxoskCXzoQ4OsrRVYWckyN5fk3LlFjh0L6HpMNe7bw9JSBqNRZHDQS2urBZPJgCCoA8hbt1QwpNZDNjKyJybC9PbakeUqHo8RQRAIh1MMD7uZnEzort1GxsvUVIzTp/vJZMqIokA8roIrvb3uTSEZe/e268CkWqx5W5tN+72ZmSTJpNoXNkrJJibCDAy4mZ1N4nCI/Pqvn+EP/uDvYTC8/e9I7Xtlt9tpaWlhZmamqaGuJEmEw2E6Ozs33UNqbOCrV69y+PDhTSzfWsrTuXPn7huTfT8Ze0tLi8bM2eo+tpXEvFaN7OdaEudGdk7tXGqDuYdJnO+s3pNXIxAIsLBQp8WFQqFNDwO1fbq7u6lUKiSTSQ01DIVCfPSjH+WP//iPdfS02jGcTicf//jHuXDhAt3d3fzqr/4q+/fvZ//+/fy3//bf+Lmf+zleeumld3z+tSbhh1VvBZS5X/pSTb/9boMytVpdzXH5ckRrCu7eXSUUOksmU1+gzWaR3l4rJpOI02miWhWIRAr09Xm4cUPP9NjodL+yktViqstlmeXlLMFgkkDAuUmG5PFYNd1ujfHi99txu82EwxmN8bK4aKFarZBK1SmiFy4sMTDgZnExzeCgd901X+H97+/ljTdCTE7Wz/PYsQDT0/XR0NxckpMnu4lEcrS2WtevSx6fz7pp0duxw6eLOXQ6jVitEqdO9ZBOl5mZSTA3l2RhIcXIiI/FxbqZbyZT4tixbqJRhatX45w5o045PJ8/hrs1hDcZQ6lC7660NrgKyB2UqNIMqMkrdkLVZ7jUsFiVGmRMtarIIv+fcZjuUoAPl75HVl4DV30qIpr0DBuDGb6++gQf6PwTKkIVewOwsyAYOZjwMOlNrL9PFfIVA23L7cie+vTr0j0PJlGhJAsslwQYB8OowmJBIBeBE2aZG1n183/mmyJH/qF6QcslgfPfkTh4sMD4uMTUlIGeHoVQKMrOnWa6u1Wg5sqVLG+8keTkyfvHwDZWjanmcDhwuVxNmTGFQoGhoSFu3rzZdCF/UNyjKIq4XC5CoRC9vb1Nv+ONi3MzPxyfz8fq6irRaLQpWASbzfM2VqPU6tChQ2QymU0GeI0MHrfb/bBReFgP629A/Sh7sIWFBS5cuMD+/fs5ceIEIyMj3L59m3/37/7dOz7/H2YP9k48ZWqgjNPpZH5+nr6+Pg14+pvQg83OJjS28qVLy6TTWS5efFW3T1+fnbY2I62tZqxWFZTJZKqUSnDrVv0h3GZLEwg4WVxM89ef/N/Y1uo9UlUSMKybzNiH8yjXwVjeYAQMOPYrVGbBfERCaEiQZPNSBYDkgqIPXD9pxCGv9wqVzfuJFcAGNUKvIIJruILSAsIVoASPicv895+5w59Nvp9wWDXefVCUdiZT4n3v6yGTKVOtKkQiKqva73dw/XoSGnz1UqkSFouBQqGKyaSCKzabkVOnegmF0szOJpicXGN6OkF3t5OZmTpgcvasarx748YKAwMe2tpUVv9TT/Xz6qsL3Lmzxp076r4nTvRoIA2o4Mdjj7XicIi43RKCANlsFZPJyJ07WUKhOrOmu9uJ3S6RzVYazrvI8ePdCAIkEkVmZhK8+mqQ/n43U1P1XvbcuUUttQmgp8eJ1SrxzDPbWFhQ/775+RTz8ylOnOjWGTSvreU5eNDP2loev99Bd7eavCUI6utHowW+/OVbjI628q/+1ZHmH4YHVI3ZHAgEuHbtGm1tbZuYMYIgaDLzQ4cObRoM2e12uru7uXPnjk4OWiuHw4EkSdy7d69pQtODZOxQZ+aUSqWmku+tJOaNtVFq1UxSajQaH3gutWsCDyO7m9V7shs9ePAgU1NTzM7OEggE+PKXv8xzzz2n2+cjH/kIX/ziFzl69Chf/epXeeKJJxAEgUQiwTPPPMNv/MZvcPz4cW3/SqVCIpGgtbWVcrnMX/7lX/Lkk0/yxBNPaIkEtSoWi99X8pPJZKJUKj14x7dQ9wNlnE7nfeVLzZgyO3bs4Pbt2xw4cOBdmUqvreXXWTIR7b99fW7dogewZ4+DXE7G6TShKCLRaBGPx8a1a1FqTBkAk0nCZBIpldTF3m6XkGWFxx/voVisy5BeeSWI3+/QSYnOnVvU4rVVxosXl8vEM89s4/btNebmkhpF9OTJHt2CGY8XOHiwk8uXl9m2rYXWVptmlrq4mNb51XR3OzEaRSqVekNy69YqjzzSjt2uTjHW1vJcvBghEHBsagoOHPBrkyxJEpBlhQ99aBuxWIFIRJ22nDkT4siRLp1+ulpVSCQKjIx4cLksZDIit2/H+c53Qhw86EeSRPbt6yTa6iPnKyEtyTiGsgxXPIQM6uu5ZRu3xSzITvQ4PLhkP1cZYd6gB3CywoZcTKCYTYPHQchk5w+NH+b/qgaBOW27YNY3axWhzI2ylw/mH6NiG8fSANSUBbh7tR3D4wmqApgsajPx0hU/Tz5xR9tvIWfgkCRzpmQgVxVIJuGwXeZsxoC/V+bsX4kM/x8Klj6F5XmR2y+JDI7IzNwRSSQEstkUJ09aOXPGQn9/BwsLGSYni8zPRxkZqdDW5uBrX4u8LaAG6o1Cb2+vFlfdyIwpFAo4HA7NmK7Zd9XpdOL3+7l7927TuMdKpYLf798yoamRNbPVvWBoaIhgMEi1Wt20DR5srgf1JIObN282lVHVzqWR6vuwUXhYD+vdrR9lD/bzP//zuuPeu3ePb37zm9/X+dtsNsLh8IN3fEB9P6BMM6aMxWKhq6uLxcXF+ybe/TBrbq4GyqiDsWvXVmhvt+ke6gF273ZQqYDVaqRUgqWlHDt3tm+KUm5MNAKw2Yzs3t3KPzt9lT32KLVcgZTTgquhNxArUHlcwBjfnHBvtCpU3i/R6tqQUrqFn7zFCZaPiljkhr67impevKEVzwoS9gYUx14so1hAOAhcBWlN5hef/DP+05d7SeatJJNFWlutmgGwxWIgkShw+nQfuVxFY7z89V9vDne4fj2qXR+jUVhnvNjYs6eNqSlVhnT79to6+8avG96VSlVMJgNGo0BfnwrKiKJAoVDB5TIzNRXXABKHw4TPZ9X5M54/H2LvXi+yXEUUIZuVmZyMs2NHC5cv6xn/GxOfRBFOneojmSySTBaZnU0yObnaNCpcUdAY611dDgIBJw6HkSNHurh1a42FhTQLC2lsNonWVhvpdP0NOXt2kT172ohEsvT2urFaDWSzZR5/vIfXXlvQ/T2N4Nh//s9nePrpQfbu1Rsqv9WSJAlFURgdHeXmzZs6Zky1WkUQBDwej8a6afZd7enp4dKlS00TmKrVKmazmWw2u2VCU6OfTc0LrLFEUWRkZISJiYktk+LcbjdtbW3cu3dvS1+pzs5OVldXCQaDWw64vF4vXq/3LSVxAg+TODfUexKokSSJz3/+8zz99NNUq1U++clPsmvXLj796U9z4MABPvKRj/CpT32KT3ziE2zfvp2Wlha+/OUvA/D5z3+e6elpPvvZz/LZz34WUCMg7XY7Tz/9NOVymWq1ypNPPsnP/uzPNn39np4eQqHQljn0D6oaKPJWYhgbayMo02j0+05AmWZVY93cT9v4g6pYLM/VqxEuXqyDMtlsiXJZ1lFEU6k8O3c6MJkkFEVkdbXIzZtZ+vutXLlSB0eWlrKalAhUGZLDYeSppwZZXc2tM2VSXLgQ3sSqKRarOBzqtavpdltarEiSyI4dPqam4prjvNttxmgUdRTRc+cWNU1uoynarl0+rl5d03nlbFz0lpbSnD49QCZTQhQFYrE8s7MJjEZxEyijNnWqNlkQWDeaM3LqVA+RSI6ZmQR37sSYn0/S2akHns6fX+Lw4S5isQLt7Q6KxSpTU3E6OixcvJjUGDg+nxWzWWLv3jaiUSPRn+ljoCWML6MuiiWxDoQ5FQ8hMc1tEQ4rRqqCypbxVPt4XexAFIts/KSlyCMoEkrDTdztrDMlqoLInxuG2FvpQ5JeU98fIY+gKNrvFEV1Mf/9tcP8kuWWLpIbIFeSeHSdVVOTOyUKRoRIXVNcVgRiV8CyW6EgC7T3yNz5nojrhELHgEJ4XqRwVaF7RGF5HmKrAo/uz5OJW1hZEfH5nLzxxiK7dzuoVusJANksuFxW3nxzkTNn4J/8Ez87d7692MhaozAyMrKJGVNjjLS0tBCNRpmfn6e/v3/TMfr6+rZMYKpUKgwODjIxMbFlylPNz2ar4wuCgNlsZnJykkOHDjW9l9XM9baiEEM9yWCryRDoqb7NmpbGc4KHjcLDelg/zHo3e7CBgQHm5+e/r/N/J4yaH1X6Uk9PDxMTE3R2djYFrn+QNT+vB2WuXIkwMODRDXQA2tokRkYc2GwmSiWFpaUc4XCFYrFMJlN/WL50KbKe7qOydFtbresy6wHW1vKa8e5LL07xlf/x59CgVrcFCtCYwiSAEFA2ec4AmOUqpkFhE8ii1H6vEdtpActpYGozMwcbm45BmwgNGJ5QgZJJxFyW4VEwXFMorYn8xc89x5O/+7P4/Q4GBtwkEqrR7tyc6j84Ourj7t01XUz10lIap9NILldhcLAOrhw82MGVKyvcuRPjzp0YoigwMtKik+OPj4c5fLiLaDRHR4ddkxMdO9bDa68FdSDOsWMBXe+YyZTYscOJzyciipDLySwt5UkmK4TDWW2QCRAMZmhpsRKLqcBTIODU4rAXFuIsLeUIBlVwZe/edq5fr4M6ly9HtNfu7LTT3e3EajUyNORlbGxpPclU/bwcPtyl6/NzuQoOh4m2Nis9PW7sdjXOW403L+lkdS6Xic5Ou5bWCvW0KUVRiMWS/Mt/+RIvvPCTmEzvLGDAYDBgNpvp6uri7t27GvOlWCxqLONt27Zx4cIF2traNqVA1cIfJiYmNiUw1fyxRkdH75vQVGPNNEuZqr2G0+nckrkDqmfO+Pg48Xgcr7e5d8/o6Chnz569b8JmLYnT5/PdN7K7xmx+mMRZL0HZ6Nakr/tufFjvrH7lV36FAwcO8PTTT7/jY9y8eZO+vr5NesBaPQiUcTgcW8qXakDMO/WUqVQqjI+Ps3///i01lG+34vEC16+vcOFCmCtXVFBmbi65CbSw2UR273ZRKqGBMktLWfbubd/kct/dbScSyVEuK5oMqb3djiwrLCykmJtLIssKJpOBQMDB7GxS9/uPPtrB5GRUJ0Oy20288sq8jt2y8RxBlU+treU1aunaWh5JEpicXNUtzH6/nUQiTz6v/lAQVHPetjYbsqxo+ttCocrISMumqVWjNrmvz0Vnp4O2NitzcylmZhLkcioI0QhQ1WrHDh+hUIqBAS9ut5lMpsTKSo5qVdQtcADHjnWTTJaxWl1cvRqnXJZxuUzsOLydqc9uZ3jwHv1tc/TLTpYN6sSkU/YwLVQ08ORDlRBJKYgt38Eb5l4qovrztkqBgqTnGVtkJymxvkj3VNs4a6jzlkUFrsu7+b+Vm5ilVwC4ppwguf5aFsXACwtPAvBx5x1GXLf4fcP++nU/285q3IDn791mW9bBN76rggRec4VqxUCqqh5n9GKV1h3wpmzg8EqVsb8ycPyZKlTgzJ+pC/yT+yq89G0VEz++r8jCjQyVqhe3W+bW5BQABgM88USBqakyc3NlururhEJqY/Gxj3XzR3/09pMIaovd0tISlUqFkZERFEXh3LlzHDt2TNtnbGyM3bt3N/WjKRQKmxKYar9z9OhR8vm8Jj1qtqje7/jFYpFr167R3t5OLpdrSuGtHWN8fJyRkZEtF/h0Os3Y2BjHjh3b0jeidpzR0dH7NhRQn3rdTyr1d6weIlJ/M+thD/ZDqEOHDvHCCy80lWW+1bpw4QKHDh1quu1BoIzT6cRutzcFZQRB0P69U0+ZZDLJ9PQ0jz322A8MbA4GVQDhwoUlTUoejxcYHm7RMXy9XiNDQypbRmXK5InFCk37oEcf9XLligoQtLRY13sUO6ureRYWUlqfMTDgIRRKacDDc//2K3zs1CSVJQHpewrVgIChrP+qVLYJIIL03c1focIBI6a5CmJ+87b8JQlrer3fMAOfQvW+udbkohjYpNgu7jJgntOzREv7RUzp9fe5Crm0CWtPiX/wBz/FX1xXmQqHDnVx4YLe9ObEiW7Ong0xOOjVQBmbTeL11xcoFuuv8eijHTqjYYDBQXWNa2+3I0ki8XiBRKJAPl/VQBRQB4tdXfr+1u+30tOjgmT5vMzSUoFstsLRo12cO7fxHOspUJ2ddnp6XLS2WgmHVbZ5LZVqxw4fd+7ogaeuLgepVBGLRaKvz43NJlEoVMlmSzopv8EgMDSk/5yByrbKZss4nSYKhQqhUJpt2zybPmcbWVlOp5EjRwLk8+V14DBNKJRmcNDD4mJau7b/4l8c4ld/9XHeadV6sJs3bzIwMIDP5yMWixGJRLR+J5PJcO3ataZ+NACRSIRwOKwLVohGo8RiMUZGRlheXmZ5eXnL4IX7HX9paYlCoUA8Hqe3t7dpEhWg9XlbpXkC3L17l3A4zMmTJ7e8X+VyubeUxKkoCpVKBZPJ9AN7hvxbUFveqA21+MMt6r4bH9Y7q0gkwvT0NEeOvDMNJEA2m0UQBOx2O8VikUQiwfLyMsFgkPn5eeLxOIqiaBKG7u5u2tvbNZ+G2he21gxIkoQkSRiNRiRJwmAwvOMEFFEUMZvNBINB2tvfPnUwkShw7twizz9/ly984SKf/vRrfPrTr/Pii7O8/vo8V69GSSSK2GwiBkOVgQE7bW02jEYDsViRpaUCra0Orl9fI51WgYhIJMuRIwFCoTQWi4HhYR+dnU4CARMGg0Q8XiASUacZfr+d69ejmuN8taoQCDhJJgts397C6KiPnh4nsiyTTJZYWsqwsJBiYSHN6moOp9NENlv3UYlEsuzf30lvr5u+PjcOh5Hbt9fo7XUxNhZmYSHF6mqelZUcx493Ewym1t8b8PlsPPZYB3Y7tLY6yWTKhMPqxOLChTDRaI5yWUZRwOVSwRRZVujpcbJjRytWq0RHh41USgVZFhfTzM+nMJsNRKP1iWAolOaxxzqwWo2Mjvro63ORTpcYGmrhwoUwwaDaNKXTJfr7XayuFvB6rTzyiB+/38P16wm6uhxMTCSxWiUOHx4kGrUT/QfDdO5L8L6OFGlTijbFQEpUmwSp7CQp1ZsNX6qAFYUL5kFKYv1z142NjFBvLAC8sot0A1BjxciSUDeDVARQlFZeFzs5UjWCuEBJ6SWx/nmuCAorqX7KiFwvtXLSFuWSVAcB/HEL12btnOguUrSWmJpSqaWFqshxpcrsOs9nsKpw8xUR+07wSwrB6yKhewI7RmXuXVP3aXEqDPpkgssiJrPA3M0MZnMRt9tCpZwmn1ffv0BA5Nq1WXbuNOLzGWltrZBMVrl+PcWzzwbwet/eglX77jocDoLBIDabDYPBQDQa1bwcahTcGzduEAgENn3fa/eE+fl5LRkgn8+TTCbx+/2aMXHj9o3nsNXxawDy9u3bmZ+fx2QybelF09LSwvXr1/H7/U2bgFQqhSzLWtJBs/vWWzlO47lNTU3R0dHxXpFA/ad3+wQeVtP6j+/2CfxdrDfeeIPBwcGm96y3WsvLy7S3tyMIArlcjlgsRjgcZn5+nlAoRCaTQZIkPB4PgUCA7u5ufD4fTqcTs9ms3aNqQzGj0YjBYND+azAYNMDm7ZbFYiGZTFKpVJoC8A+qUCjFmTMLPPfcTX7rty7wK7/yCp/73Bizswm++tU7zM4myOcreDxGOjok/H41kKBahVisRLkssrJSZGEhq4ULRKM5OjvtpFIlWlosjI76sNvNdHYakGW1H1lezjI9Hae318Xt23V6TCJR4PjxbhKJAu87rvDrP/XnIAgYPAqJFQvG1ioNoY8AKLsAI4g3N/xcBE6CnBcxNJFFxUUn9tX13uLjqElQClRiIqKs3z+hmLHk9aCM7BIwZPT7VTsagCQRjC1VqoLA39t1l//y4nFAlRxZLBJdXY71HsxNKqUmOE1NxQmF0iwsqAO2XbvadGlRy8tZTp3qxWZT2L69Ba/XyuJihqEhH2fPLhIMpohGc6TTJfbsadf5Cvp8Zrq7zfh8Em63mVJJYW2tiCyLRCJFlpcLGkCWSBTx+axkMiXa223s2NGK0SgyPNyiRW8vLWWYno7T1+dierrOWF9dnihmJwAAIABJREFUzXP8eA+pVJG+Pis7drRjtUoMDHiYnFwjHM4QDKZYWsrQ1eXU/X2KAu3tNrq6nAwNeenstK8bE2dIp0vcvr3G0lKGTKZEJJKlr8+tAUQ2m4TNZmTfvg7a2mwYDCLRaI579xL09Lg5f35RS06NxwscPRogGExhMglEo1n27fMTCLz97xCgSRQ9Hg+Tk5P4/X5SqRSCIGjsFJPJhCzLLC8vNwVKHA4H0WiUarWqfZfX1tYwmUy43W5te6VSacqaMZlMKIrS9PjLy8s4nU56e3u5fv06HR0dTQGU2nPhVn0eqOCR2WwmnU5vYmA3HkcURYLB4H3vvYIgMDc3Ry6Xw+PxvFeYzVv2YO95oOY73/kOzzzzDL/9279NLpfjxIkTuu3FYpGf+qmf4t/8m3/Dl770JT7wgQ9oU91f//Vf52d+5mf4whe+wPDwsEbNf9AxZVnmW9/6Fh/+8Iff9vnWQJl4PE4kEmFxcXETKNPT0/MjA2W2KpvNxtLSEmaz+b5T6USiwPnzi7z44hy//dsX+PSnX+c//IfXee65mxQKFb773VkSiSJWq4jPJzE05MTrVV3nY7Eia2slOjrcXLmyqoupdjhMZDIlTCZ1ERke9iFJIh6PheXlLCsrORYWUkQiBUwmRWfaWwMtnE4zIyMt9Pa6SadLjIy0cOlSRANlwuEshw75NWAFoFyucuhQF52dDvr61HjFZLKI2Sxx/foKwaAKylQqqju+wSBo6H1fnwuXy8zwcAsOh5FMpkw0mmNmJonLZeb27bi2YC4vZzlypItQSDXWUyMLrYyO+ohGcxooMzeXpKfHpfO/qQFPJpPIjh2tDAy48XgsJJMlVlez3LuXYGEhTSxWIBzOMjDgIRYrYDQa2LWrDa/XxshIO5OTGRYWciwt5dbTCmDvXje5XAe3b5fYd7CP6E+1sO3QAlbzEi0liVWjOj3zJa0E7fpJYovRy6zkJrXhubhLtpIQ9V1Yq+IiJtbBG1ERiAobYp7lFlYFA2OCnyfkAiUkIg0P3aVcNwlZZYFkyq0U7Hnk9a9AV9rMzIKVtYiN9pE17t2tL3DOSQWlC7KywICoMHVRZF9vFdktELoogiLgKCtkkgLlikAVuP1SlYNH4eaUiNeUJ7Yms7aa533vE1lYKFGtQrVqIJ2OEo0WWFzM0toqEInE8fslUqkSTz3V3HT3fiWKIrIs4/F4uHnzJm63m0KhoANQzWYzlUqF1dXVpgus0+lkeVmlsjscDpLJJOVyWdNFb9y+scxmM9VqlUgkotNSr62tYTAY8Hq9GoBSS4/bWLUFfmFhoekCH41GcTqdGI1G4vF4UylW7TiCIBAKhe4LIq+uriJJEi6XS3tg+jteD4Gav5n1H9/tE/hh17vRg929e5dcLseuXbve1rnWmDKxWIx4PM7y8jJLS0tkMhntXvajBmW2qtrD4Vb31FotLqZ57bUg3/rWXT73uTF++Zdf4b/+1/N87Wt3CIczXLy4TC6ngjJGo8zoqAu324wsC8RiRcLhAtu2tTIxsaKBMtlsmQMH/CwspPB6VVBmYMBNZ6eDQqHCyooKyiwspJEkiUgkp2Na5HJlfD4L/f1uhoZa8PsdhMNZbDaJz/3C79HvSSCuP0/mrCbss2WdXKnaKmDoAMEA3NBLmYqPGTF3VClXJKSlzXKmpNGNM5QlfsSOdXd94JYtmjAX9KBMsc2MZVUfbqBIIG7IO5CdAobGk6hApUfAXqowst1AxHQcSRLp7XVx9eqKBsqsrOTo7HSwuqqX2XV1qf1lrXfL59UBXqmkcOdOnJWVHKVSlaWlDENDXi3lqK3NjNEos22bDbvdSKWiEIuVWFzMMzTUzuXLq5qMKZMpc/Cgn4WFNK2tVkZHW+ntdeL3O8hmy6ysqKBMMJhCUdTQjkY5fz5fob3dRn+/m+FhLx0ddpaW0tjtJqanUxooMzeXZN++Dh1LO5stcepUH36/A7/fgcEgcO9egu3bvbz5ZojFxQypVIl8vsLOna2aHMpiMbBtm5f+fjcdHXaMRgOrq3kikSyZTJnl5awOAFpby+H328nlKgwNeRkd9aEoCoODXoLBNNFontdfD/KP//GedyyBAvV7bzKZWFhYQBRFrFarDkB1u93Mz89jNpubDqt8Ph83btygra0No9HI8vIyLpdL29fn83Hz5k1t+8ZyuVwEg0GMRqNODlnrg2w2GxaLhXv37tHZ2dn0PlTr82rPmhtrbm6O0dFR5ufnsdlsWz73OZ1OIpHIlsepVa3Xqz2jvpd7sPe09KlarTI8PMyLL75Id3c3Bw8e5E//9E91Wr3f/d3f5dq1a/z+7/8+X/7yl/nGN77Bn/3ZnzE5OcnHPvYxLly4wNLSEk8++SR3794FeOAxC4UCJ0+e5OWXX77v+dXkS7V/+XxeM/o1Go0kEgntuBvfx+9XvvSDqHw+z9WrVzXH8GSyyJUrEW7cWGF8PMylS8vcu6cCCOqkpUAuV8ViEenqsuDxmDEaJcLhPKFQFllWNO1tM4lPTR9diwl0Ok28/LJehtRc4uMml6sQCHg0GVKxWCUcTlNoWJhdLtM6E0Vd9AQBtm3z0tPjpFyWNRlSLlfh4EE/4+N6s8FG6q+64DlpbbVqTvU1E7RmNNb+fjehUJLWVhs9PW4sFolCocLqak5HWTWZDJuc/Gt/d7ksa2Zq8/OpTTGOG6+PzSaxfXsLHR021tZK3LoV0xox9Zr3MT4e5ZFHOjAaLVy+nKBclhkddeL1Bgg+0of/lxL0WMtcYJCnXDMYvZeoCFUsSisRsW78JykiNrmXnDiNsuF+vKfqZs6gf88Gq35uG+qfAVERWCCA3HAzt1e2cV5UFzKjIvNxeYarxjrgE1t6jMsVFYDxonBUSnC5S93+6JKTb7+kggofPbXENybqIMmBYBWTHc76DBxXqpz5XwYEUeH9/2eVl/9A7R7ddoUdVZnzy+ri3rpcIrEKjz1hQMnlGH9DbbwOHpRZWpqht7eNixerjI7GuHZNfe9FEdra0kQiZSRJ4PLlDzM4+PYnO7Uko1pMtcfj2WQMpygK4+PjDA0NNdUhl8tlLTklGo0iyzJ9fX1NtzeTEyiKwsTEBIODgxoYdPfuXTwejwaYRCIRlpaWePTRR5suyoqicPXqVTo7OzdFbd+4cYOenh6cTucDZVL3O06tbt26RXt7O16vV2uy/o43Cn+n/7i/xfWwB/sh9GAvvPACr7zyCp/5zGe2PLet5Eu1h6xCoYDdbqerq+u+8qV3swcLh8MkEglNZrG4mObyZbXvevXVeS5fjmjM2gMHOpiYUNcej8dIe7sZn89MJiOzvFzQ+p7OTjvpdFGX2GOzGXG7zeTzZfr73TgcZkqlCpK02SevUY5dq337PBSLIi0tNioVmXA42zT44B99NMtz/+w3SZXMeCW1f0iYbbi+naOhnaBySECyql+d6stgCKo/VwSo/KSIUZLJJ41YX96cIDmvtOJeKGL/iSxGof6+JrM23LN6wCTvM2G9qzepUUTADg2/qgJHLfqvcn6HRF424YgVGPy3/w+LUVWqtNEwOBBwsndvG+l0mUxGNd5NJotNpWSNaUgtLWY6Osw4HCLZbJVwuEg8rp5ra6uValXRWCegghydnY51xosbh0OVE5nNhk2vs9HDBuDxx3uIx4u4XCZKJZmlpTR+v2NTHzwy0sL0dFwDdaxWiUceacdkkiiVKpoXpMUi0dJiIRSqs39EUWDnTh83bqxiNIps2+bF57Pgdlu4ezfG3FxS6/c3JmeBajkwPh7WEq3Edeb2xYthXa/f3e0kkSiQyaifj0996hF+53ee4p1WTQJ1584dKpUK27Zt29RnNZOZN1Y8Hmd6epoDBw5w9epVhoaGdKBLPB5nampqy8CEYrHIxMSEFqUNcO7cOZ0/4M2bN3G5XFv6p9b6vMcee2wTEHPmzBmOHTtGoVC4rxz+Qcep1dmzZzl8+LDmj/oe8KvZsgd7T5oJ1+rChQts375dM5d89tlnef7553UL+vPPP0+NdfQTP/ET/NN/+k9RFIXnn3+eZ599FrPZzMDAgGbaBDzwmBaLhUqlgizL2uK9EZQpFAo6T5n29nYtblFRFKrVKktLS5qhcCMr5m8CVT+VKnLlSpTvfS/JF7/4PGfPrnHvXlyTEx061M69ewksFhG/34LbbWR01MnMTIZQKMvMTA7IceBAJ8Fg/eFalhUNcOjr8+DzWVAU1ezMbjfqNKwWi6q9bWS8jI8vcfx4twb6xGJ5ZmYSDA/bNy08jdpbQVA11Dt2+EinS1p84PR0HFEUmJ6O6SZCwWAKl8tEKlWiu9tJV5cTURQ4ebKHa9dWCAbTBINpBAF27WrTOdVfuRLh6NEAMzNxenpcWK1GstkSvb0OXn99keXlerNw+HCXDqgplaq0tFhwu9txONTGaWFBZdZkMkVNCgZw6dKyzrivu9uJoih86EODzMwkuHcvwbVrqgD7+PEeDaRRI4/bMJkEDh7sYWwsAeTweo10d7cyOSmwe68J09934BDsXBbcSIYqX7P08nTJxG7jNNcMeo+bDrmbMwY4IjuJCmndtmLTZxX9z2RBoUU2sNrQHTmoL7xlQWRqbRe+tqusGdTmxFpJASpQkwDOveAl8MkcawYZLPXf/e7ZDrqcVZaK68kaHjjzDZHhfyJTWD8NRRaYf13EbFQolgWSWYHZewInjlZ5866B/p0CE9+D8RerPP1M/ft586aILJdYXAzS0mKkq8uJweDk7t0c2WyVvr52IpFFKhWFX/u16/yv/3WsybW4f9XuBz6fj/n5ecrlzc1pY9R1Mx1yLcXpxo0bOJ3OTYyVxu379+/f1CjUjt/YiORyOV0kb0dHB9FodEsj8lqk5fj4+KbY70wmg91uRxRF9uzZc18ddGNk91bx4el0mm3btj2M7H5YD+uHWO9WD7Z7925+7/d+T/v/B4EyzYx+4/E4q6urWh/3boMyG0tlw2T49rdvEItNcv78Misrau9gNIr4/Tai0Rxut0RHh4VqtcTJkx3cuZNiZSVPIlEGMhw/3s3163Wj2eXlLCdOdHPt2sp6GIGZUqmK2WzgjTcWuHKlbtqyfbtXCy+o1eJimkcf7cDhMFKpyCwvZ7l1K4PbbWBysi53mp9PaqmZoHqp/NovfJGSKOFZB2kUwOItUh0SEK+vAzNGAYO1/nqKX4Cg+v+lPRLmdb87ZYvnPrOpQvUjBh1IA6g+NRvKlGyylspQ8QhIsfo5iGsKSqsevCkoJlpacxQFked++as8/v9+is5OO06niVOnekkmi8zPJ1lcTBOPF/B6LTrJ0tmzi+za5ePmzTU8HhOdnRYqlRxHj7Zw61aKWKxILKZKuE6e7GFysg5arK7mtdSk/n6V+V0qVbXrHovVAZxAYHOU9vR0nAMHOrFYJA1YO3NmkaEhrw7UCYXSOmDObDYgigIf/OAg0WiGxcUUy8sFzp9f4ujRgC6gI5crs22b6hljMAgauGI2G9izp01LswI1oMNiMeiGsufOLTI66qNUqtDe7kCSBGKxAocOdXHu3KLOPHkj6BUKpXniiT6y2TLlcoEzZ+Z58cVZPvCBgc0fgrdQtaH59u3bOXfuXFMgxWKxMDg4yOTkJI888sim7V6vF5fLxdzcHPl8fhPA8aCUJ7PZzPbt27UobVABpEa23ejoKGNjY7S0tNw3QXNjWmilUtFYL7Ukzlu3brF3796m1+NBkd01j0CDwaD51dSecd+L9Z7uPBcXF3XIYXd3N2NjY1vuI0kSbrebtbU1FhcXdR4z3d3dLC6qD/oPOmY4HMbpdPLP//k/Z2pqimeffZZHHnlkS1CmVrX0pRpltvZg0zjZfjcqnS5x5YqavDQzk+C114JMTcU0UKa93UQiUcZkEujqsuJymahUKuza1cKtW3FmZ1VQxmAQGBz0IDfogCcmljl8uItEoqBFVK+u5jl4sIvXX9ej5RsNw0qlKoODHgIBpy4NSTWpy+ic6ufnC3g8xvXmRJUhVasyH/hAP8vLWWZnk8zNqf8OHPBz40bdqf7u3Zh2ow8EnHR1OTCbJex2ibGxJUKhtDYVePTRdp1TfQ1kCgQcdHY6sNlUp/rl5QyVisLERH2yYjSK9PbaCQazutc+fbqPUknWzNQmJpY5caJ70zSh8fq0tFjo63PT3m6jrc3G3FxSO8+ODjvFYkW36N24scITT3STTFa5dy/DjRtpII3JJHLgQBeS5OHq1TLLyyb27Omj/JiT4UGJaM7GnFnkCW+GCwK8InfQo6zQGIHeX23nVYN6A7YrDqLogZqUsLkZqrA50tmjiKxSP2cLegPiosFA6Pp+Oh85R0mQabUL2mkoCBglgdYrHtb2x6iY6sfJlgwcTVVYqlng2EFRBAxjMvHD9QXm3pzIqUCFV+fU22rXsMKZPxc59A+rmBQBUFBkgdvXDezfn2BhwcPKChw82MH4+BKxWJlXX41jNq+Sy5Xo7bVTLlc5eNAIiCwuxrhxY43du5vrf+9XoihiMBhwu91aQtJGkzar1Up/fz+3b99m9+7dm47h8/lYWVlhbW1NB7A0br9fypPFYmHbtm1aI5LL5TY1G6Ojo1y4cIGWlpamFGCTybQp9rsGXNeAFJvNRn9/P7du3WLPnj1Nr0djZPfG+HBFUbTUp1o9jOx+WA/rB1/vRg8myzKFQoGFhQV+4Rd+gTt37vBrv/ZrOByOB6YvNYIybW1thEIhyuXyO/KB+UFWOJzRki9XV3M8//yUTuKxa5eTlZUcLpdEZ6cFu92I1WqkWJSJRHIkk+owrLvbqZOQAw2AjEljSywspPD7HZsCGjYyiZeW0jz5ZD+ZTJlqVSESUQ1me3tdm1ga/f12IhG1NzKZRAYGvLS1WTlxoptIJEu//xKDrhXSghXrOtOh4DZiNZWp9ApwXT1OJmDGTQO9pmG5FEbqvaVk2txDABT22+hUljb9XGwC7BgqChm3DUdSz7SR7QI0ADWCAhWrgJRteP31PlfyKhwLhPjQU2G+/V0/y8tZjh8P6GKqc7ky27eroIXbbaSz04LFIgIV/H4r4XCeREJ93zweMwaDBA39z/nzKqhjMIi4XGbKZXndw6ZFl4YEm0GLtbUcjz/eSyZTRpbV93BuLklXl3PTe5jPqwycYrGK0SgyOOjBapV4//t7CYXSzM4muXVrbd0fxsniYl2+fu7cIvv3d3L58jL9/R4tmeqppwbWnynqceHHj3frEq2SySKDgx1YLBKdnQ6MRpFEoki1KhMKpZmZqQ8zW1os+HxWTQ4GsLCQ4vHHu6lWBY219PLL8+vsJhU8/Pmf/zYTE5/E631nBuSiKCJJEiaTienp6aYDLb/fz8rKCuFwGL/fv+kYQ0NDjI2Naf3IxnpQylPjMKy9vX1TD2gwGNi1axfXr1/XlBAbq6WlhdXVVR0glM1mdbL3WhJnzTOwWd0vsjuTyWjHq12jUqmkk5G+l+o9DdT8KOuLX/wiX/va15ifn6ezsxNZlvH5fPziL/6iNrndCpTZakozMDDA+Pg4HR0d31d6wdupdLrE1av1OMZkssh3vztDo/Lq0Ud9GI0qKON2m1AU6OuDS5eSGigDKhukEZSpVtWEpaEhr5aGtLqaW58o5HUR1aFQiq4uh6ZNFUVYXs5w+nQfxWKVWEyVIb36apAjRwI6ACcYTOlokTUZkslUYXW1RCiUY34+pcmDbt9e0/19oVAKh8OIw2Gip8eFxSKRy5UZHVX3rU09VLZMK4lEHZi5cmWF972vh0ymrMUHhkJphodbNgErhw516RYTm83I9u0+vF4DRqONcDjL4mKaGzfUB/uNbJnubiehUBqHw8jgoAdRhKefHuDmzVVCobQ2NTl+vFs3QYlEshw61Ek2W8JsNhCLFQgG85w7F6a11U0ioTYAO3a04nY7uXQpzv79bg4ebGNtzU2gx4v8EyZuzoh4dih0GKpcldRz2y8IXJR7aV3Pr/TKVibE+gN5ibohcK3WhAJWBZ0kqiBszMSEjfi/tAGowSRzecXHjy3spNR7A5dZacSL8Ljh1dfcPDGaIb+hiVu9J7Brn8zNokh5/RRvXTHwvr1VZoT6yUWnBfZvr3JxzoCjQ2XaXPq6yBP/qH4uc3MGisUc+XyckycDKIobUBvDQkHhwIEu3nxzlmAwQzCY4fhxD2fOzADw7//9eb75zWc2/e1bValUIpVKkUqlSCaTZLNZ+vv7tanKxkWvq6uLlZUVVlZWmnq4DA8P8/LLL296gGncPjY2pvkzbKzOzk5WVlZYXFzUImcbS5Ik3aSlWaPg8/lYXV1lbm6OgYEBbQFvrAc1PNC84QB9fCY8bBQe1sP6216KovCv//W/Znx8nEQiwfbt2ykWi5w+fZrPfOYztLW13ReU2aoHGx0d5c6dO00fun5YtbycWY/EXubmzVVu3Ijq2AEWiwG324jTKdHZadYkLLWEpVSqzlA+ejRAJKIPFTh1qpdYLK890IfDGdrabJsSiUZGWhBFNCaxxWLQWMOViqyBMq+/voDPZ9VJWM6dW2TPnjauX48iSQKDg15aWqwcOyYSjcLcXJI7d9a4c2eNEyd6mJqK8/z/+EuqioijUO9VZLv6fojtCgqqdqDgM+mAmpjVQztxop1O2sz1czBJMiWXhKnBn7DQaiJwbJnChAlLUd9jlPLN39+s174ZqJGaSHcN6rCmVlKiCm1gEBXKHQKf+6Wv8u3v/hKgsmV27mxhYSGN32/BahUol4scPtzK2NgqyQYmz4kT3YTD9f42kShy9KiftbUsLpcZSTISDmepVBRu317VsZuKxYrG/AYVIEulSpw61UuxWCUazTE7m+C7351lz552jWENKvO7JoGqMV7a223s2tXKvXsJZmYSWlz4wYN+DWQBdYhqMIgYjQKtrSa6u72YzdK6r42dmZmEJt9XAzHszM/XmfFnz4Y4erSLalU953S6xL17cXbvbmvCjNcDT5Iksm9fJ7lciUymzPx8kvn5FCaTgdnZBJVK/fqEQik8HjOJRJFstsh/+S9n+Y3feKLZx6BpKYpCPp/X9WA1H5qFhQV6e3s3/c7OnTu5cOECXq9303OdKIrs2LGD8fFxnSKjcfvu3bs1oKWZN1VtGGYwGJoOw9xuN+3t7dy7d2+TRL5WNUDI5/Phdrs1RvPGv2NsbAyPx7NlEudWkd3pdFrXPzZGdkuS9J7rwd7TQE0gEGBhof5wHAqFNk2Ka/t0d3dTqVRIJpP4fL77/m6znz/66KM8/vjj9PX1IQgCv/mbv8nZs2d1SOLblS8ZDAa2bdvG1NTUlpPj76cymRJXr65w+fIyly4tk06X+M53ZnTgSl+fA7NZoLPTitttRBAMFApVbDYTc3N1UMZoFPD7bYRC9SfjixfDvO993VQqCoIAa2sFpqbiHDzo1wEroL/ZCgJ0dNgZHW1lcNCjecPcu5dAUdQYycab7d27a3i9FuLxAt3dTgIBB4IAp071cunSsiZDAhgeduhkSLdurXH8eDfT0zGdDMntNvPKK0GdAdq+fXqTU0VRbzD79nVozdLCQopr11YwGEQdCBOL5dm2zaN59jidRgqFCh/60CCxWEFLlnr55SCHD3cwNlZn2kQiWY0tU4sZ93gs2GxGjEYDc3MJrl1TGUA9PS7d6wJcvrzM8LALk0nEYFBIJMpcvBhh795WLl2qL675fBW3W2Lbtn5CoRK3bmWANXp7nRSLRm7fTjA83IrppJPVooToKXFNMXDalWZMABcKk2KVFA4+UfWyLMYpKh1kGj7qq2xeWMqCQodsw6CYMCpuZEyICrTLBZKGNYqC2mhZ2AAebGDilCV1+9dv9/EpTwzZWNRttzvUz8zcX7Xi/ajeI8jqhsyrIB1TSBvqi8TFr4sM+hVmltSfubvgxvMi/R+QKa4PKyplgTe/IXHiRIo331QXrIGBds6eneONN4J4vQbe9z4zyaTIrVsFgkH9InTpUhqfz8LaWoEXX1zgxRcX+MAHNmuIy+Wy1hCkUilyuRxGoxGXy4Xb7cbv92MymahWq6RSKZaWljbd72qyoPHxcdxu9yYAxGAwYDabmZycbDpxqTUKN27c4PDhw03vYzt37uT8+fNbao49Hg8+n4+ZmRnNHHRj1SZLPp+Pcrm8qUnYKG/aSge9seEANUFqI8jU2Ci8B7TSD+th/UjqR9WDdXd3c/LkSX75l39Z88g6efIkgiDg8/nesXzJ6XTicDgIh8NbTo6/n4pEshpT5tKlZRQFvv3te7p99u/36UCZalXAajUyNhYhna5Qm0Z0dVmQJEHXGwWDKfbta8duN1EuqzKkc+cWCQQcWs9Q369DY3mYzQYMBoEPfnAb8XhBe6AfG1Ol5Y0+gPl8hbY2G6FQGkmqS1gsFoldu1qZmopz926Mu3dZH+zJOrbE2NgiP/2Ty4z41ojKXjqqak9SMYpYDeoaLpph1d+CLIh0OFZ118frSFIRRdJHvLRtYOsW2006oKb4ASNuqUTSZccS1QM1pi2eloo2/XpQbRPItZhZ63WBAEJOwTyTwVnV913G1QrKdrWfNRoUhvrW+Mynr/KNb56kUoFqtUK5XOXu3fo5u1wmOjpsOnBNBUy6EEVRYy2NjS1z4EAnFy7o2TKNA0qjUQ3XGBryEo8XWF1VGefXrq2we3cbN29GdQPKWCy/Hp9d0RgvkiRy5IjqDzk9HWd6Oo7BoPpI1qRUAOPjYQ4f9hMOZ/D7nRiNqmfl8eM9vPpqkHC43s8eOdKl66vz+Qp+v4P2dhsWi5F0uqSBK6lUUfORAbh6dYVAwKkNS30+K/l8haee6mdtraAZNP/1X89w5IietTQ1Fdeuj8tl0lhkdruRGzdWWVxM8z//50UOHQrwYz82sulzoCgKxWJRB8qUSiWsVisul4uWlhb6+/sRRZFKpcLVq1fx+XybepcHycgNBgN2u52pqSlGRjafh8NXQ2ymAAAgAElEQVThoKuri7t372reVI3VOAxrJjGHOgkgHo839SysScyvXr3K4cOHyWQym+Twtde5cePGlr45W0nV0+n0pkGhIAhUKhXNs+a9VO9pM+FKpcLw8DDf+973CAQCHDx4kOeee06XBPCFL3yB69eva0Z2X//61/nKV77CzZs3+fjHP64Z2Z0+fZqpqSkURXngMUGVP50+fZq/+qu/ekcR1o115coVent7t0w6eSuVzdZAGbUhuHZthVKpqpvUAOza5SaTKeF2mxBFA8lkGb/fydmz+mnL8eMBzpypL9YGg8DevU4slroMaWYmQUeHnUgkqyUfgboYmUyqW7sgQF+fG7/fgctlYnExw+xsQou/PnTI32Qx6uaNN1QZUiDgwGSSsNlUGVKj7Gj37jadhAnA77chy1W6u72aDGllJUe5XNUtHqIoMDrawuRk3RPH4zFz6JCffL5CoVBlcTHN0lKmqalZo27XbpcYHPTS1eUgmSwSDmcJBpMoimrcl83q2TI2m4TTKRGPl9i2TZ1EybLKRnrzzQXdxKSZ6dvhw+3ri65IqSQTjZbw+SzcvZvULcwOh4mWFjuKItDX5yWRqDA5GWdw0EssJiKKBkZH/Vy4kKOvz40odrFtXwDx70ssdgoY+2QmFRmbP01OgOMinBfVpujHhGV8YpxXDBvkNwoEqBsKu2UrktxHUGnn/IZ9i5EWiorCU7YwO+x3sYgCbzbgPH1VF38p1GWBQ2WJ86+pYJpdqvCxA9P8UaIOBBwNKZw7rzZdH/pIjL8+60Fej+E+Wa3yxp8bOPGPq9yxiUT/sL7onG6v8FrEQKUqcKK7ypt/ZCCwTablmML1P66f0M6dszidZm7fbmVoqMTExNWG90RmbCy4nlrgobdXpeDKsjqxbGkRWVwMI0kGens9/OEfPkE+n9Wagmw2i8FgwOVyaf9sNlvTxbFSqVCpVLhy5cqWZm7RaJSFhQX27dunO0a1WuXChQt0dHRQrVa3nLjMzs5SKpWaNhIA8/PzzMzMcOrUqabnKMvyA02BM5mMlhQlSVJTA7xYLMb09PSWjQKotN2a6bkkSdy7dw+bzbaJiaMoCoqiaGl5f8fqvTWi+ttTD3uwH1IP9q1vfYvf+q3f4lvf+tZ9U5EeVOVymYmJCQ4cOPB9gbgrK1kuXYpw5coyly5FCIcz3LixopNoOxzq2u9wGLDbjciyyNpaEZvNpGMswGYZks1m4JFHPBgMVs0bZn4+yZEjmwMWGnsjk0lkcNBLIOCgWKwSiahS8EpFxuEwYbdLOuBAFAWGh1uYmorpTFvtdonXXlvQ9XrNeqO9ez3EYmUCAbcmYfnfn/scj3jnSGSteFABj4jNTUdrXdIyd7kHQZDpM+v/FoCps31sOziPuOEuF7zlo3fd5yS904bzw+rfsRjsIDAb2XgYclMWbMWC7mdz3d303Fhi8agf26NZWlsSrFVs+AQ9yyZWMuPIlalcNGArrku3jhqxrEdEVUWB5QEbPT3/EkVR+46NbBCTSeTkyV4KhQqyrGgA2cCAh7k5PRtEjUuXSSSKGuOls9OO1WpkYSHF7GxCey82GhhDXSpfT1ASsduNvPFGiFyu3o9uFX4hyzKdnWr/nU4XicUK5PNlVv9/9t40RpL8PO/8ReR933cdWXdV33f39AyHGlIyJa9WuyK81sKCZEsWZKzthbWwAUNLWKYNyN4vBmRZ+uBjBXltCgKttbVeSCIhkpaWM9PT13RPH9Vd3XVkVZ6V931nxH6IysiKrqohOYQx9HDeTzOZWRmRmdHxf/7P+zzPW5wQVgaDSDzu0ly7gYCF8+eD9HrSweCLGqVSR5MZOa7D+NbtNhGPK5PFSqU26XRTVdwrDco27faElHM6jVitBhqNHvPzHlwuE8OhhCgK3LqV1mDhw3jd6zVz9+4v4PEYNI2xbreL2WzWYLBXG10wGe7QbDbZ2to6UTn87NkzrFbrkWiLfD5PtVqlVquxsLBw7L5PlmXu379PPB7XTNo8XLdv38ZsNh+bhwPKMJiTMgvHlUwmqdfr9Ho91tbWjsWSL1++RBTFI/amw5VOpymXy6rg4M6dO1y4cOGINWuMwcxm8ydRVXPiB/qhJmoA/viP/5hf+ZVfYTQa8Yu/+It86Utf4td+7de4cuUKP/VTP0W32+Xnfu7nePDgAV6vl9///d9XZfK//uu/zu/8zu+g1+v5jd/4DX7iJ37ixPc8rr761a/y9a9/nX/xL/7F9/UZXp2u9J2q3R5o7EsPH+7j9VqOqFiWlx10u4MDz6uOanXIYCBRKnXodCaLrc1mwOEwqkSGKMLCgpeZGQfd7kjNhul2R5w75+HRIy2gOLxYz846CYft+HyWg8WkRrOpdDZWV31sbGhtSKGQjXa7j8NhIhZzYDLpabeVsX2vToY6dy6g6RKBklTfaGhtSJGIkYcPted4OE0flJv85cthhkOJXk9JuE+lGurEqcNp+sokJjvb2zWsVj1zc4rixek08uxZib29uqpSOi7J//XXp7hzJ8P8vAe/XwlPFkWB995LaxbmmRnnEdLL5VJC5kwmAUmSqdWG5HJd5uddbGxoP+P42E6nkaUlHxaLkV5P4smThub3jsUcrKyEKBRsPH7c5o03Znn50sqpU1M4Pi+SnxVJz4hkpuB1R4X3bTIBWaatH9E9uBWdkUZg2qUrHL3FXJdy1IUOztES/48QpSuIXBvpuKPT2pG8JRcvBxNg/JP6Gh73FkmjAt6CkplvMiESQpLI+rcmm+9Lrj4bEYHWwf3xarbL3XcUX6xeJ7E4LfO8qQD4m4YR7/47HUaTzNQvyaR/V6DXU/7upn2EaIC3CzouTI14+G+Uv5lbk+hWIZsZg64yb7+dwO83srY2zd27z9RJAxcumHj4cEM9t7NnHTx+vKv+vyIRlslmFZDzt/7WDL/4i8sqILDZbN/1wjVWhjQaDRKJxIkkxnic9+GuS7PZZHNzk/Pnz3/olKjxlKeTgEQqlSKbzeL3+5mbOz6gr91uf2goMMDe3h57e3ucPn362PMAZbqUXq8/NmDv8PlUq1XOnDnDw4cPWVxcPHbU+CcYKHyiPswnqD7FYP8VMdgv/dIv8dZbb/HTP/3T39dnyGaz1Go1VldXv6vXFwptFXu9/76imJmachyZhnT5sptabYDDoShlCoUuMzMubt/WNqfW1nwavGO16jl/PoROJzIcjtjfb7O7W8NoFHC7zZqBBOOBBk+eFA5yRRSc4XKZeflSmaQzVrgct1m+ejXC/fvZA+uLkisiSTIffLCv2Rj7/RYGA0nTLDOZRNbWAphMOlVlkUjUCIcNvHyp4Mlf/vsP+V9+/QmOTI+Fl5Njl6bd+ITJdMtkIUKoWMD4quUZ+EBe5vzoxZHHH9fXOPvNZ0iiQO9vGLA4FKyZLEaYfpo98vp0OUIso31880Ic39kyHufEmtMYmXGgJXTKOideX53hUCC7FSF8L09x3kbkENlUOm/j3/3uKf63X/nvMBhEFhcVgqzdHqqKl8FAOnZy1rhBKQgwN6coXtxuEy9eFEin2yrWWFtTcPRhp184bKPdHuBymYhGFcVLs9mn1Rry8uUkckAQ4OzZozj6R35khmazj8VioNlUFC+nTvmPYNkrV8Ka3EWv18yFCyEGA4lCoUq5PCKfb+P3Kzj6sCXfZNIRiyk42uEwMDfnweUyYrcbePy4qLHWvZpXOX7s/v3sgc3OzGgko9MppMzh5mY87iKXa2qmQPl8ZkIhC0ajQL/fJxq18Gu/dhaXy6UhZb5XDJZMJlVnxKs1Go24ffs2586d02CR3d1ddDodfr//Q6dEjadIHZ7ydLgePHhAp9Ph9OnTqpr41cpkMhSLxRNDgWVZ5sGDBzQaDd58882P3HQbT+IMhUKEw2HeffddXn/99WNfO1Y/fgIncX5K1PwglizLfOELX+Af/IN/wOXLl7+v99re3kYUxSMhnu32gCdP8ty/v39gYdonmazjcBjJZideZYNBYG3NDiiho7XakGSyyZUrYW7d0i4IhxdrUYR43M3qqpdara/akDqdIUtLHra2KpoFweUyIMtQrw/UbBiTSdnYPniwr7EdHZbaTo49xeZmhakph7oouFwm/uzP9jSvO47lP3MmgMEgqNOQUqkGnc4Qg0HUsPw6nUA0aiKZVBaJ8aIQi9k1NiQ4viM0HnFtNuvURcFs1rOzUyWRqKmLgqKg6R4Zc+n3mzGZ9Ac5PUpCv9msPxLcd+VKgHv3JgumIMBrr40nSMk0myMymQ5ra14ePtTKgeNxF9lsk15vhNdrYX7ehdVqQJYF3n03q1m4rl+f4v79ChcuhJFlAw8eVJEkmZkZJ3NzM+h0LmTZiXnOz+icjupZAcOszGMd2ANV6gJcGfZ4YFZ+Z50M0YadVfcWO/omr9aPDiX+nAgvxQk7f2Ok5z2dFoAt1hzc7kw6FheQ+eC5kb+0sks9+hIBgbvyZNKHQYbcNyey+rhRItSRuH3QaD2bq/H47Uny4GekIe+FdAxkgYvWEQ9+Rzn/5XMS/S4ktg8ImOiIt/9PHTf++oitqkjhq5P77ZtvlkjuudnZ0XHhQp+HD5+oz332s0NGI9jelslmh0SjRdLpyfcxPz9ge3sCPs6fd/LBB8o17XQaef/9nyUSOZrM/93UGCjs7u6qU1NereFwqHY2xh7jQqFApVJheXn5OxIp447McUBiY2NDnVBw6tSpY4PvQEugHFeyLPOtb32L06dPnzhqW5Ik7ty5w9ra2omA5PDI7u3tbW7cuHEi6T0GCsd1y/4brk8U4vkE1acY7L9iFYtFPv/5z/ONb3zj2Ckn322NO9jLy8tH7mXFYltVyoybY3a78UjTKRazYLUK2GxGZFmkWOxRKvXw+7X5LgDnzk3yQsZ253jcRbncVcNeJUk+tvGzsmJnY6OJwSAyN+fG77dgNuvJZptsblZUUsbjMSMIaDbLBoPI7KwTSYJg0IZeL1CpdLHbjUeIg+OO/fnPz9Js9jEYdNTrfRKJKrOzLh4/1m78o1EbxWKb0WjIN5L/CVdkRE8ycPbbL7CNumQdISIeLb57YZlj+f2dI79NV2/k2cwiF1+sH3lusx9n8Y8SPH5tlbOfea4+nmkGid7PH3n9i8ECyxuK9UwWIfGFGNbrHUKFsuZ1I1kASdYYuXuiAZN/okSpt+zkd10sGiYKoGLUwTAs8j/+2N/nwfsjdSBGMlnX2ME8HjOiKFAqdVTFi9Go2NHu3MlqFC+vNhlBwa3b21V18EWj0cPlMh0Z0DHOETpcp0/7sVj0WCxKc3N3t0avN8JmM3yo6tzlUhQvsZidQqGjKs6V81FIpsN17VqUO3cyWK0TO7/RqFj5d3Ym6u9QyEa3O9QQgBaLnmjUjl6vU5ubhUIbu914ZE/xKqkjivDmmzFqtS6yLFGp9MhkOiwtuVhfnxCDv/3bX+Cv/bXjCYzvpobDIaPRiEePHp2ITer1+hGb+bNnzwgGg/h8vu9IpORyOXK5HOfPnz9Caty6dUuTZ3NSM+yDDz4gGAyemPXX6XT49re/zWc/+9kTMdF303Qbj+w+deoU29vbJ+6JP8HK5hMxmG489vCE+tAnP63vrwRB4MqVK/ztv/23+bmf+7nvix10uVxsbGzQ65n56lef86//9UP+8T9+m1/91f/Cy5dV/s2/ecjjxwWKxTaSNGJ52YrfbyIatWG1GqjXB9hsVl68qJHJdKhUekiSTKczxGhUUtxFUWHq7XYDKytelSjJ59u8fFnB77fw+HFBnRZULnd5/fUp9vbqTE87WFvzEQxa8ft1NBoj8nnlZr27W8flMqvkx7gMBh0Oh56VFT8LC278fiuZTJPhUOLlywp7e3VyuRZ7e3VWVnwasqXXG/GZz0wRizkIhRQAtrVVZWlJCe3NZJo0mwN6vRFnzwZVT6vNpmd52UckYsXjMWAymSgU2uzvt6jXe+RyTQqFSTcqn28RjTrodocsLXlZWVE2+gsLHnZ2auTzbfb26mxvVzl1yq8JRGs0+ly/HsFo1LOy4mN21oXJpMPrVb7HZLJBMtmgVOocLIoDDYFiteqIRIyEwyYcDiOdzohksoXDYeHZsxrVqvL6XK7N9etR0ukGoqiMzIxEbKyt+en1FEtXJtM8CFQT1QkNoihw9mwIi8XE/HyAd9+tkc12sdn0XL8e58UL0OsNlMs2nOEYpkWR4pRI0iOw7RZ4zd1mWz9iWpbZNsjIB9f3lYGR99pm1vQDqkYtAF3ue9gdzPLYoN0kBxDIvaK+mRnp2elPCACzANWigfWSB0s9QCxYoIiLvqC8lySAJWOjM1T+fwRsf03H66dGJE0CMb2O3IvJ+wUbMnM2mT2diFkP1YfK+Zf2Ba5HRmwVlfcJuGSy74vsrwvMXZEYZgU6TeW1M9NDtraSXLpk4+lTI6KYV3/DSMTAu+9u0mhUicX6zMzIeL0SPp8Bp1NPLOZAlnt4vSYCARN6vY5Tp9z4fAJ+v4GdnQZf+MJHGxc5Di93Op1sbW3hdruPLLKiKOJwOFhfXycWiyEIAqVSCYPBgMvlwmAwIAgCqVTqWPvmeCHd29sjFNLmNyWTSaLRKIFAgMePHxONRo8lRhwOB5lMBlEUj1W4CIJAOp2mWq0SDoePtTAIgoDH4+Hx48dEIpFjjzPOqnj8WBkd8p0m6el0uu/LLvEDWP/o4z6BT+vY+vLHfQKf5LJalUmSf/RHf8Rbb731kd9HEAScTifPnz8nlxP5ylee8tu/fY8vfenP+Uf/6G2ePSvy1a8+Y2OjTL3ep9Ppc/68i2DQTChkRa8XyWTarK2FuHMnz/5+h0ZjwHAosbjoIZtVNsBms+4An9gObCVK1t3+fpt8vq02ksab2Eymyfy8m3q9x8KCh9VV34ENxk422yGfb5NMKtN4Vlf9JBITdUe3O+T8+QAGg47VVR/xuAu73YjFYuDZsxKpVIO9vTqFQvtg8p42W8ZgEDl1ys/srAuPx0y3O+T58xJut5l793Kq+jefb/PaazGVjAoELExNOZibs/A//K87XPuxbSRBRMeIouwjWi1Q9HvxiFq8mAoHMe4PsQy02XMvp2aRQgLhpFZhDSCIEiQEbD/VwqyfNAkH6LGkekdev28MEtgv0TMaSf73PuI3cgiihLGpVfuKAtSwY2HynnpZomk0YzxoOJmMfVpTNqotG+6B8vu2+kZ68xaivh2++nuKOqtS6fL66zH29urMzDhYXfUTDtuYnnaSzyu/ezqt/BYmk458vqUhAEcjCZ/PRDRqZnU1iM9nYXe3hsmkY329yN5e/SD4uc6FC0EN2TIcSrz55jTRqINg0MpoJLOzU2Nuzs3bb6fIZpu020P6/RGLi171b8d7hEjETjhsAwTyeQVH5/NtGo2exi6XyTRZWvLQaHSZm3OythZAEJTA6q2tKvv7Co7e2alx5kxQg6NbrQGXL4cxmfSsrvqYmXFiMOgwm/U8f15kb0/B0eVy9yB7Co3q3GwWWViwEwqZsFhE2u0R29t13G4zT55UqNUGSBIUCl1u3oyRTCrX6cZGgb/4Fxdxuz/6FChZlnG5XKyvrx+LgUwmE71ej3K5rGZrpVIpwuEwBoMBh8NBLpc7+M6P4iO73U4+n0eSJE3unizL7O3tqRmAmUzmxAgOn8/HkydPCAaDJzbkms0mxWKRSCRy7D7WYDAgiiLJZPIIFhyXTqfDbrfz7Nkz3G73iZat8ft/Asd1n4jBPiVqPuYKBAI8f/6c3d1dLl68+JHfRxAEzGYzW1sJ/s7feYc7d7IUCm1EEQRhyPy8jXDYis1moNEYkEx2iMU8PHhQUEmZw8SKIp90MTPjZHXVh9Goo9kcqAu73W7iyZOCZmHW60X6/RGhkJ21NR9zcx7a7QEWi4Hd3TrpdJNUqkkm02F62ka5PFkI9/dbvPnmNH6/lcVFxddcKnVYWvLx3ntp9vbqZLNN6vUep0/7NcoDp9PE8rKH6WmnZlFQ8l6abG9XVaVOLtdietpJtdrDatWzsuLFZjNw+rSf4VCiVOoeLFpNQiETGxsT4NJqDbhyJUIupywqq6s+IhE7breZdLrJ/n6LZLJOMtlgNJLpdocaa1K93mV52cPCgofZWRcOh5Fnz8p4vWYePFCUTsVih0ymyY0bUU0XzWIROXPGicdjwOkcj9XsMjPj5uHDCpVKn+FQRpIUb3Kt1kOWFZvSqVP+g7GF1oOOm/Ibbm1VicUcGuJJluHNN2fw+120WpBItEkmWyQSVT772SgzM2HKZQsbGz2uX4+RTDqZji/gmBHpzgmMVgQC0zJFHTScTXoCrOggIyrfQ0wWeFS1M0RAkHUYrJNuzVInxFdrU/hFKJm0QcBmWaD6ClETk3RsdQ+NUAYGRWUhyXdM7GejnPH3yBomf+cvmym1ldf0ZQFrSib9SGDhssRIL1J8Ntl8zxll3vlDkbM3ZFJ9gcHjyQIUkWTCAZl0XUSvh/pjAWkk0NwWOHVmSCqhvI/XK7C3VyKVqnL27BC/f8T+vvLZSiUJUawyGsk0GkM6HZFMpkwu16JSUYBJLGZgc7NIudxmf1/pgj59WiKTaXP/fo5r1yIsLBwvJ/1uy+Vy8ezZM5WM0XzvZjOdTodarYbH4yGXy6n5NzAhUsYBd6+Ww+Egm1Wk4oeBxM7ODvF4HJPJhCzL5HI5AoHAkb8fEygnAYV+v0+xWGRhYYHNzU3C4fCxQGEskz2JVAJU4qVYLBKPx08kzsdhdp8w2e2nRM0PZn354z6BT3pdunSJf/gP/yE3b95UN0MfpYxGI81mk0eP8vzdv/v/HZAyPaxWEb9fRyRiIRSyYjCIlMs9mk2ZRkMikWioGXTpdIOFBQ/lcheTScfKiheHw8TZs35kGUolhVzZ3q4Sjzt5+DCvbsp7vREXLoTIZpsqKTM15cRuN6ob5GSyQTbbpt1WNp+H8Vux2ObUKR/xuJu5ORdOp4kXLyqEQjbef3+fvT0liDWXa2k2rAAOh5Hr16OEw3a8Xgvd7pBstkUwaOX27YzGkm2zGWm1+kiSjM9nYW3Nj91uZGrKoRI32WyLfKnN3/vXt3E7OtTbFizGIZIDHNk2bkcVvTA594LRR9+no12w4G9NVA8SUDzrxGgf4N+cYLlxWYQeT+JrzEW0ShKREfq9o5MNSyYP9lKL3C8Eia8p65pBGNFrGdHLWrJmT47gR3vMvM6H0zghQmRE+kt6WkMjjkYXPRKtGQuBpQGlYgSruMzcnIdmc0AwaOPFi4pKymxvVzl/PqiqUkC5Pt56awav16Li6Gq1Szzu4cGDotrcbDYHxGIOisUJ9nM6lSmmim3Kiiyj/hbd7pCNjbKaDZlK1Tl7NkA+38ZiUXC006lcp4qNqc3+vnKdzs66NFmQvd6ItTU/xWJbxdFKlqSSS7m/3yGZrJNKNajVelgsBjqdiZp6f7/JpUshZmddh3B0iZkZJ7dvZ9XmZj7fVvczk89o4MwZDx6PAZtNd4CjOzgcRp4+rVKpTJqhRqMeWZbp9yWCQStrawqOnp110mj0yWRaPHy4z8/+7JmPjAUOh5fv7+8fi4HcbjdbW1vY7XbMZrOKncbH/E5Eyvj5QCCgKpv7/T6lUoloNIrT6SSVSp2I4caPb2xsEI1Gj3zWUqmE0WhEFEXa7faJ9qaTsODhslgs5HI5ZFk+USE9/t5+mDDYp0TND0C99tpr/M2/+Tf54he/eOJ0kpNqOBxSrVbZ39+nVCrRalXxek10Okp2TLM5pFTqEww6efiwSKXSU29EOp1ArzdCkmTicRcrKz6MRpFIxE6l0iWfb5NKKRt6n8+isUrt77e4cUMZr7266mN+3oNeL7K05OXRozzpdPOAXGmxuOjRLCYAfr+e6WkPS0selanf329RLHZ48aJywNQPyOVazMw41RHXTqcRu93ExYshvF4LgqBIGhOJGjMzTm7dyqikTKcz5PLlMMlkQ+1ELS56DhQ2MsViV2XqO50hxWJbA1yaTQmPR0806lSZ+mKxQzhsZ329qJIye3t1rl3TEiuNRo8f+ZFZgkEr8bgCekqlLpGInTt3siSTSidqMJBwuUw0Gj3VIhYMmrFaZSIRE06nkX5fplTqkcv1sFrNbG5OZLDZbItz53zs73cIBCycOhXA4zGxthagXO6o3Zbd3RqxmFPTMZNlxSM8N+dmft6L2Wwkm1W+/6kpNy9fKgvc9LSDc+fCfPBBBbfbjChaWFiYYWPDwPT0IuG4RDegozIvUHMKOFoyK90RNoeE0yjx9FC2jLdqIi0r5EphZOC0LU9XkJhrR/iDxsGNWRYYWLTdrB6y4jw/dF8OyyLbh6xPAwScNZGepLyoM9LhfGJhITQkZ1HOIVI3kalNVDPRhkypImLOgHBKprI+IWpmrTJ7T0WErIxuWcCahU5bee9pn8wHvy+ycF0mURQwZZTpToOewMJ0G59PIps1UK/DaFRElgVyuS7T012i0S4Oh5lcTubKFSvpdP3gepW4ds1LKjUBFrGYk/39yW+mkKlRVX323nsZfuEXzmIwfO/qDkEQEAQBnU6HJEmUSqVjNyoej4cXL17gdDopFAqEQiHV83xYiRIKhT4UKIyBhCzLpFIpdTSl0+lkb28Po9F47BjH8RjJFy9eHOnYjCcrxONxyuUyvV7vRHvTd1LngDJtoN/v0+v1Tsy8AX6oQMKn9bHWlz/uE/iklyiKnD59mi996Uv8zM/8zPf877rb7VIul8nlcjQaDfT6Gt2uiMmkTF0sl5W1e3HRz927+9TrymZ3TKykUg2MRgU7LS971ZyXSmXcVKnTaPQpldr0eofIiUKbSMRKIGBldVVR5FarPaamnDx9WjxQ5NZJJhV8cphY6XRGXLjgZnraw9ycC5fLRL3ex++3ce9eViVl+v0RVquBVmug5uiFwza8XgtLSx7cbjP9vkKu7OxUMRpF1teLar5HNtvk2mxASNEAACAASURBVLUI6XQTr9fM6qoPv1/Z9I4bf9lsk0SiRjRqZ2NjYiH6G19J8ubVFwjASG/EKAwQRSiLHqZGWvvKtmcanXlEq2omWpkoZ5KBGMalHgb9EHEbTCNtA6hhsNM/rcc3qmoe14sSjaz1yOubRhv1L9iJz2qJnVrPhfWVqU5J6yyRvvY80/owAdMkG9AgD6jabeAV6RqNOIptsl4/VkuPpXN5/o9fnSaRaJDLtQ7GRHc1ahmLRc/CgpuFhQmOViYviTx6VFAVL6lUQ6OWsdsNeL0Wrl6N4PFY0OkECgUFC09NOXjvvQmOHgwk5ubc7O+3MJl0LC97WV72YbUqQdKKUka5TnO5FqIoaCYxpVINTp/243SaVOV4rdZjacmrNiiTyQbpdJPr12MaYqXTGXLjRpRQyKaSh/W6Yp17+rTA7q6Co5WsyBEWi14ldUIhK2YzzM3ZsVjEg3zNHolEk3DYwbNnVQYD5csslbq88YZC6oyv03DYzuKim0ZDuU4V1XkNp9OknmMy2cDhMHLjhnZS3Xdb43uNzWYjlUphNpuPYCBBEPB6vaoiOJVKaRS/YyLlOHwEqHjnMNEyDgAOBALfFYazWq00m00ajcYRXDRu3k1PT/P8+XM8Hs+xmTjfqek2rnw+T6fTwel0HhlPfvi9PmG2J/iUqPnBLpPJhMvl4nd/93fVMLzjajyaMp/Pk0wm2dnZYX9/n+FwiNVqJRwOMzMzg83W5E//tMr6elklZfb3W6r9ZXZWIR58PgsrKz5yudahDX2dWMzBzs6rG3oLJpMigV1Y8ODzWSiXu1SrXXZ2aipTn8k0VcXKuLrdETdvxpiachIMWpEkmd3dFpGIkdu382QyTVqtgYZYASUbZmnJQzzuwu+3oNOJqg2p01G8sYf908ViB7/fymAwYnl5YkOan/eQSGhtSGtrfs2C0Gj0uXFDa0MyGnW4XAaePatobEgKAdbXjCl3Oo0sL/uYnXXicplotYZsblYwmXQ8fJg/mBwlkck0uXo1ohJXSmifyMKCDatVz3DIAbDrEo/7+OCDkjr1QZJkQiEbpVJHXUyWlrzo9TpkeUAup8ie9/YUcOb3WzW/Qzrd4M03p4lE7KrNamtL6Xi8806WUql7qDvX58aNaRwOO5ubbfb22vT7MvG4m3S6TyhkxOezYTbrGTgtSBcE3HYZ8y588ELHXlvHi8cWrk33SdiVhfNSX8/trnaDfM3cwtP38H83JnLIhiwQtHbpH1pvhgL4gfahx1xAsq0lNmNdkUpvIoeMI/Ptr1t5Y35E1jFkqm0kUZqQO7M9if2CSKMuMifIFJogHYycilhl0o9FWg2BZYuExSZT2Ffe2+eSSd0WEQoynlUZjzSkklPIEqulyZNHOa5ckUilbCwt9iiVFNCj0xl5/nyHUqnM9PSIqSkzfr8SlNftjhBFPZXK5Lrc3+9y8aKPZrNLOGxldtZx4Nl24HIJdDo98vkOP/qj358Fym63s7u7i81mO0IWC4KA2+3myZMnDAYD5ubmNGBAp9NhsVhOVLS8CiS63S6VSkUdZ3sYKJxkX7JardRqtSMdm0KhgNFoxOVy4fP5WF9fx+v1fmSgMB7lm0wmcTgcxwKFHzaQ8Gl9rPXlj/sEfhhqenqab37zm0iSdOKkOoBer0elUiGXy7G7u0sikaBSUTbeTqeTqakpHA4HU1NG/tW/2qRUOopP+v0hi4teVleVkPX5eY86NjiZVPDJ6qpPY+9oNgfcuBFFrxdVUsZs1uP3W3n8uEAq1VCbPxaLXtP4AaVpt7zsZXbWhdttptMZsLfXQqeDR4+KKilzmFgBCAatRCIOLlwIYbcbGQxG6nmGQjbu3cupG2NZVnJrSqUObrfpAJ94EAQBk0lPOt1UrerJZB2n06TJFUmlGly5ojTgrvyoib/09+7iNdbZHwbw6id4tCK6mWtOiJKhoKMUciKKMiPZQCQ9yeNLnQlhsivHaOUdeNpau9Td1QtINh3R7tEJT1vNOQItrV3q6WeXORd7duS1pa4H11Br484awkeImow1Slg/UZeIyBTMXvS6ESOHjl3jNCPJgMXWwenoMNCbuPMtpYE1HEp89rMzhMN21c6/t1c/wG8pFUcPhzLR6EQtM1a8BINWQiELkjSiXFasR6lUg9FI0pB4qVSdc+eClEptFhe9rKx4MRp1rK762d6uqr//7m6NlRXtddrvj1ha8h6o1f3E4y5sNiP9/ohksk4iUVOV4/V67wArT0gdWZa5dCmM368ox/t9mY2NMlNTDm7dSqs4+rD6HxQVeTRqYWbGgsUiHqjje+RyHcxmI4lEg2538g9iNFIwl9EoqtfpYCARDtvY3q6q1+nmZpWVFZ+mSZ3Pt3nzzWnsdiPRqJHNzQrXr8cIBI42mb6bGlugPB4PT58+JRKJHMFAYyVMKpVCkiRiMS0xdBI+GpfFYtEQLaVSCZ1Op752jOFevnx5on3J6/WysbGBy+XS2OT39vaIRqOYTCYVJx6nzh4f58PUOaCorc+fP/+hVnVRFD9p1nP4lKj5wa8zZ87wG7/xG6ytrRGJRGg2m7RarSOkzGAwUEmZeDzO1NQUfr8fh8OB0WjEYDAwHA5ZWnLwn/7TDtPTCikzN+diOJSQJJl0uqnKJ5PJOoGAhVpt4qVNpxu89lqUcNimkjK5XIvlZS/vvZdRSZlKpcuVKxFNtowifwxosmHGN9fNzTJ7ew2Vba/VBni9ZlqtITabQpBYrXrW1nyMRrIqn9zaqjIz4+Lp08kCrBArUXK5pgp6wmEboZCN3d0J6EkmG+h0AvW6Fri0WgPm5lwsLnpV+eTGRhmHw8gHH+TVxWR/v8vamoNicfL92GwGbt6MHaTqmw+CiZtEo3Z1Men3FaVSMGijXO4ckF0m4nEbOt0Qv9/EYCBTLvcoFHrk830sFpPGt5tKNbh4MUSnM1RJGZ1OYHXVz/p6UV1MUqkGp04FNHaw0UhmcVHpsiwteQkErPR6QwqFDqVShxcvypTLCjGTTNa5ejXCcChz/nyEYNDJ3l6XarXPcKiMYL98OYrV6uODD7osLXnZ3jYQCIQQHA76iyIui8yjByKbgsjlFYkXLZFLoRF//sLMxaUuQx3s1e10ZO1Nd2Fg4Q+7R4Nk18wDSqLW6hSXdRQO2Z9EoNjSLo7xAeRakxt4XCezl9Wx9cjCm9MjdBaZrf3J5ntOlkmllHPKpkTeCozYOciwsYp9yuvKhnw/KXIpJLFVOMi7kUe0nuloNwSMlT6RmT6ZbWXx0hvMNOsVMpkuqys9YjETOzvK71qvyywsjKhUugdhik0GgwrJZInhsM1w2OH6dTejURuHQ8ZoHGIwCOzv16lWO+zvK12dcNjG/fs5arUBd+9m+dEfjROLTTzI30uJoogkSXg8HtbX149dHI1GI5Ikkc/nj51QYLPZKJfL9Pv9Y4OBrVYr9XqddruNICiTEw7LfPV6PSaTie3t7RPtS16vl+fPn2vydDKZDF6vF4vFgiiKuFwunj59eiII+E7dp+3tbebm5vD7/ScChR82kPBpfaz15Y/7BH5Y6ubNm/zyL/8yf+Wv/BUMBgO1Wo1Go6EhZcplRfHhdDqJxWLE43Gi0SherxebzYZer8dut1Op5PB6vdy+nWNpycPKioJPwmG7qlYZN38MBpFKRauUaLcHxONOFheVRpXDYeTFizJWq+Egv04hZdLpBleuhDWKZavVwOuvTxEK2dVsmHS6ydSUk3ffTas2JFkGt1tPtargMb9fsSE5HCbCYWUUd6HQPmj+KETJ4fySVKrB+fNBOp3BoaaRyOqql2fPSodImQZra34NThwOFXzi9ZpZXvYyNeXAaNQd2PLr/Pz/9YDTwR0MOommzoEd5bgN7NT1Duaru+gOcra3jDMIHuW/BfMI92YTHRIFnQvOjxjf4ptVJ8FDapua0UH1qo3ewMJM6+hI751unFhlMuHp3pXz2M/VcHWb6NHaol42Z4lJ2vDhssFLsK8d4lAy+AgatI8VjD4MBuU3sDg6ZA0hPLqqEj9wvsv6259DkHUHCndlQuj6elFVvIxxYi43Ubx4vRbOng0gSbKaYbSzU2N21sX6+kS1NBhIzM66KJXaLCx4WFnxMTPjQpZlWq0B6XRTvU7391v4fBbNwI9Uqs7161FiMYeqzNrcrLC46OHWrbSaYVQud3ntNa1axuMxc/FiiEjEgc9nORj9ruCDzc0q+/td1S7XavWx242020PcbhOLiy5gSCxmPpgsqzSs9vZaLCz42N6eHGdM6pRKbVZXfSwve3G5TExNOXjxoqxep+l0A6fTeES1JAgQjztZWlKuU7NZz8ZGGbNZx/PnNdLpFnfuZPirf/Uc4qvz37+HEgQBg8FwYo6L0+kkkUggiuIRogYUfPTs2bMTFS2HiZZyuYzL5dJYnWw2G9Vq9URV8uGsv8N5Ojs7O2rzzmQyMRqNyOfzJ2bMfJg6ZzQakclkmJ+f/9BMm09gPg18StT8YFez2eTu3bs0m03+6T/9p/zLf/kv+YM/+APeeustrFYroVCIubm5I6TMSRJdl8tFtZpEr3fxZ3+WVEmZTKbJhQshzc1yNJI5cyZIKKSQMmNFSq8nsblZYWenRi6nKFgqlS5Op1Edueh2m7DbjZw5E8DnsyAIguqfHlt8xjf1er3Pa68pDLjVqmd52Us87sLlAqPRdGBDah3k4wjs7taOECsOh4GpKScrK16mp50HnRszGxtldTFJJGpcvqwFLtVql899Lq7akBwOI8Vim5kZF++9l1FBj+JFVTpC44rFHITDNoJBA6GQk05nqEpEZRk2NsrqYpJOT+SlbreRuTkbJpPE/LyddluiXO5RLPbIZhUZ9MuXE7ntaCQzNeWk2x2wsuJnacmjgqVyua1arDIZJQsnGLRpFsxKpcvFi94D1YUbURR49qzEwoJHDX3rdIZ0OkM1PNluN3D6dJDFRR/N5oB+38D6epVsts1opHhzL1zwEY3GuHOnS6024o03Zrl/X+DChTlkowPDvI5hHfJtkfCqTFMW2NMLjGQw26AyELE2DMQC8LyvXTyuS7CdNlFzab3dAKvGEdlXxnHHJVHNugHoAKOWmdEhP9S8BMn6ZBM9bZBJHhAxW08trLhkXvYm1qc5UWZvZ3LDt2/LzM3JpAcikizR3Zi8l61VJezos9810x6IWPdh0Bdo1/UsxSRMJoFSWaTZFAgHmzSbI4rFAU5nn3i8hcViolyWOXPGwt6eAhhlGS5e9LK3p3Rl+30Jq9XAzk6JRkNRmZVKXW7ejGqAbirV5OLFILlcE4NBIJWq89M/vYJe/9EWr7ENSq/XnxgsZ7PZSCQSuFyuYy1KXq+X9fV1fD7fseMiPR4Pz58/RxAELBbLETBgt9splUoMh8NjyR5RFI90bBKJBNPT06rCxWQyqbk1J+VNjEmjVqul6T7Jsszu7i7xePxDM21EUfyhAgmf1sdaX/64T+CHofb397l//z7Pnz/nt37rt/jn//yf8/LlSy5evIjD4TiWlBmHqb9a42Bhq7XMnTtNnj/X4pPz57WBrZVKl899bpZg0KbapAuFDnNzbm7dyqib3V5vRCzmIJ+fNHOiUfuBQtaJx6Nkw4wJnG53xMuXFRWfpFINNVfE57OwuurD5VJwSq+nWKnGNqR43MXz5xNSYziUmZ9XMgdXVrwsLSlBsaORxP5+S7W6p9MNikVFUXNYKVEsKorumRmXutl9/rzE3JyyoU+lGlQqXWq1Hn/57xv57F9ex6+vUMeOh6q6wucIKetUpY/vIP/l/dBZXAZlbRRFKORCBHtF3ll6jUBgol4pZF1MVydkyr2VC5iDXbojC/GaduIQwN5wium8MsnqoXMF4493EEQB+iIOuaV5bVI/w1RHO/WqK5pxDbUKno5owW3SPlbRu9EfyuRr66xkiOKnhN3UZtNg51v/1qz+DuNcQYNBVDNeLBY9DoeRQqGjNinT6QZGo+6IauncuQCiKHH6dIC5OTft9pCVFR8PH+6ryqxstsnly9om7GAgcf58kHDYxtycB4/HTLs9YDCQ2NmpqmqbwUCiWu3h9ZrVpqzfb8FuN3L2bAC326wqszY3lZzEu3ezdLvKvqJanZA6VqvI0pKbYNCE36+n3x9RLvfJ5ztkMh3MZmXvcHjIRrs9xOczMz3tYGXFRyzmIJdr4fVaePq0qF6niUSN69cjmgZntdrl85+PEwrZmJlxYrUayGSazMy41Ou0XO4yGEgEAjaV1MnlWlitBm7enDpyHX03NcZfZrOZYlEh8l61Z4/vNdlsllgsdqRZ9J0aVWOi5cmTJ0iSRCQSOULojDHcSarkccNunCkoSZLGxg7K/jORSGAymY7FiePjjO30h9U5Y0tWMBj80EwbnU73SbOew6dEzQ9m9ft9bty4we/93u9RLBY5e/Yso9GIL37xi/zmb/4mgUAAh8OByWT6ni7K8UYoEOjxta/ta4K4BoMRFy6EmZ11EghYGQ4lnj8vEYsp0sKxp7VW62mkhU6nkbk5N6dO+fF4lGyYcbCcwSDy+HGBen1CHPR6Q/R6EUGA5WUfKyteJEmRZB7uKKXTXWIxC/n8RCJcLnf5zGemD+SWCsMvigIzM84DT6sCeorFDqGQTROGC4pcd27OdUAEmWg2BwfEj8zjx0U1G+ZV3244bMPvt3DxYhi73aB6r5PJJqGQhYcPSyroGY1kNXXf6TQQj9uYmrIgyyP0eh2FQpdiscf+fo9SaYjdbnylE9Hg0qUgPp+V5WUv0aidUqnL8rKXu3ez6mKSzysTmw6Ta4KgjFyMRh0q6CkWOwiCjp2dGru7DXVxLpXahEI26vU+Pp+F06f9ByGFfjY3G2QyLfb2lOPEYlYaDYlYzM65c2HabYGnT+tUqw3eeCOKXh/i8eMRV68u0u5b0dkNGEYwtAnULQLrA5ELqxLbLZGbMYlHDWUhmRIBj0j60Loy127xImGj1NXjDw7QurshrpfIGbTjuGdkHSnxEHsngL9noiodtjrBXmViSwnpZTLJyfOOusiiXmbPqDw2bZBJvpw8HxU7PPp/DcxeaJEbWTDuDhmNlOfnIkbe/z0zN96SSNVE5h0SpYzynNMJu9t7XLpsJZ3Wc/rUiHRK+VTVqkyhsMf+foHVVUVZZTB0qdWGSBJ0OjAYNFUrXbHY48oVP5nMRI7cbA7w+43EYjYWF93MzTnQ60UsFj3FYpfNzSqDgcTnPhfno9QYKIzD3I4Llmu323S7XbLZ7LHy3MNToo4DCmOi5fnz50Sj0WOD674T2fNqxyaRSBwJ/h2P/bZYLCdmfh2nznnVkjUGCoIgaIDCD1s359P6WOvLH/cJfJLr1q1b/ORP/iRf//rXGQwG/PiP/zh37tzhK1/5Cj//8z+Pz+fDbrefSMqcVEajkV6vw9yci//8nxOa56amHMzMODX4JJ1u0mz2efaspG52FaWsj0JBWUfCYRs+n4WLFxUb0hifJBI1pqed3LmTVbNhBgOJ5WUv2WxTY5M2m/UH4e0tcrkW6XSLcrmHIAganJhONzhzxk8oZFPxyZg8GgcLp9NKdsqrSgmQuX49SiSiTCYym/WUSl0MBh1PnhTY26urat52e4DZrKfbHR5MFXXxC//2NiExj1nfI08QN8p7S7JAeehGp5PJCVHWOi/I6MMY/G0OCxmy1RjRZo7+RQGzfkJSlOQQ8ZRCyNSwUbnuQKeTGKJjppzl1SrIfiKZfbKGIMX/yYPZPDj4bs34Je047gpuQi3tGGuDPMAgaTGMXhpitL6Se6OzIZgPDeWQB6SEGL2BAa+uhmPJyJ1vBPFZggekjIG1NZ9GOb67W2dpycvu7sQiNhhIxOOKRW6sqne5TAfNxg6JRF0lAUulDoGAVYNRB4MRV69GmZ52qoqXFy/KqtVqrMyq1XrcuDHBqG63ifl5D4uLCpkjSbKa8TIcyuzsVDV7hXq9h9utDBVYWHAyO2uj1eoQDptIp7sUCl2y2Q7pdIdz58KaLMhKpcfNmzEsFuUzTk8rquJg0MbDh3lVca40mU20Wn2V1BEE8HgsLC97mZlxqhh9a6uK2aznwYM8pVKH0UgmnW6o0RGgNHCDQSvnz4ewWvU0mz2+9a0Ef+EvzBGNfjRl89iG7na71RHcr1qsS6USZrOZXC5HKBQ6ck8aN6pOyhscEy3ZbJalpaVjMZrT6fxQVbLL5VIzBWVZptlsaoJ/D2fqfNgkTrfbfUSdM7ayu91ujVX9cBAyfCIzAuFDMJggy/JJzwF86JOf1vdfw+FQ84+xXq/zxhtv8Cd/8icfGmb53dSjR494990Wf/iHCTqdoSpfPHMmoElhB4hE7NRqXdrtIU6nkXjcjcdjRhQFtrYqJJN1VQ547lyQR4+0Ms/XX5/i3r0s8/NuvF4LkiRjsxn4L/9lV8N2H/e3waARl8uC329HFAXK5Q65XAuzWa/xhgKcPRvg8ePJuc/MODh9Okij0aNe77Ozo0x4euONKd5+W9sluXAhyMOH+YNjWpmeduJ2m2g0BmxtVVQljd1uxG43aLpeggCzs1ZKpT6RiAWLRWAwkHE4TNy+rZWyHnfsa9eitFp93G6zGpwMkE7X1QwaUAgxs1mvds30eoGFBQ/T0w46HUWKvLOjbMpfey3GrVtaye5rr0W4dSuLwSAyP+8hELAcSDVLGh+yy2XCYjGRyynHmZ52MDvrwWw2841vTD5PMGhhcTHMe+/VOHXKRzg8jSC4KFf11OseuiGB/pxA7IJEcSSQtQmYdWB0QKkvYBJkQgYZZ1DiyaoCIqOCTHtTT3WgXPdX19rcf8XmdMk0YMc5+f6NMlweGMgKEn1RpiRK9ASYrzm4eyhQ+IYE772Y/P+yUeLFO5NN9aJTYvNPRW78TJf3PGbWhk2efWOyCb9m6nDnjyy4AzLuvywzuj0gmVDebzUm8fwrIqJO5tpflxAqcOs/KouQzSbTbmwiS3D9NS8Wi4k/+9YE/F25UufevUnH7dSpIVtbVaanHbhcZsJhqNUmn9dgEGi3m3S7I+r1Hvl8mwsXArzzzp7mezp8rel0At/61s9y5UqEj1rD4ZB+v88HH3zAtWvXNF2VfD5PrVbDbrdTKBQ4d+7cse/x8uVLRFE81iIF8Pbbb+PxeDh9+vSxz1erVTY2Nrh69eqxhIgsy9y7d4+ZmRkSiQTXr18/8ppOp8P777/PtWvXjiV8QFEyPn78mGvXrqHT6dTPt7S0pL6m3+9z9+5dLl++rObVfJia8b/h+sR9oE9IfYrB/ivWaDRSp66M6+233+af/JN/wn/4D//h+/p3PhwOuXv3Lr//+3WePy9r8MlnPjPFt7+txQjXr0e5fVtZI0IhBZ94PBbK5TaJRF3FJz6fheFQ0iglDAaR6Wkn5XJHVQ13uyOsVj1//ufa4NvPfGaab39b+9jZsw4kyYjbbWE0ksjlWlgsiurl8BZhbKEeb7QVVYeSf9LvjygWOyo+uXw5zP37Oc1x3nhjmrffTh7YSVyEQja8XjO7u3V2dqpc/Vt1fuJ/r3LW9YIgebqCBRsKRnnRnsNiVYiPdtfK/5z6Q/7U81mmfQnNMbZ3FnEWW8xc3dY83upZWftj5bV/5Psxom8q3/9IFrnw9Dl6tAre7f4s8Vt7fO3H3mJ2eVd9vNu0cKn/RPPatBRhKneU7KnixD3SKmjqATtOYYJrM5KPYUy7mb3LZWRgvrPDyKLnm9tX+dWFSYCs1WrA4zGrxAEoGPX69SiSBEajSKOhXG9nzwZ45x0tTnwVo/r9Fi5dCtHpjGi3ByqBMzPjpFBoa0i8w/h4vFdQ8KSe9fWihki5eTPGu+8ePfbduxlmZ504HDoGgyGCAE+e1DV7hXjcRTbb1IzS9nhMTE+7sNkMiKJAqdRhb09RgK2va/OEXsXHMzMOzpwJUq/3qNV6bG9X1dHer16n8/NuUqm6OvFpZsaF3W5gOJRYXy+q2Zh6vcjiokdVny0tebh1669isRyPOb5TSZLEaDSiWq2STqe5dOmS5h60vr5OOBwmnU7j8/nUptLhkmWZu3fvsrS0dOweUpIkvvnNb3Lp0qUTVcdbW1tIkqTBQoer1+tx7949Zmdn6fV6x2K9XC5HLpfj/PnzJ95Hk8kk9XpdxYLjz+f1etXXlMtlNjc3uXr1qtpQPE7t8wmoExebTxU1H3O9uhExmUzY7Xb+/b//93zhC1/4vt7b5XIhyzm+9rUi9+7lVClqPt/mtddipFKK/WVlRRkzvbLio9+X1MDe3d0aPp9FI4EFJZxsMBgdeFq9h8KDZRKJujpaL5GosbzspVic6CXy+Raf+9wMoZCdeNyF3W4kl2sTjZq4d6+gZsN0u0NWVrwaoiYWUzpRU1NO1Xudz7cpFNpUKkqocb8/kfkuL/solTr4/RZWV/3Y7QbOnPFTq/XUaQM7OzXm592az6gEorlpNPqqUsbnMyGKkM93KRT67O/3KBT6NJsj7HajZiErFttcuRJhdnYi811fLxKPu1X5ZLWqBDHfvDlRLYmi8hnPnQsSDNqw2w3U6z3Vt/v0aYFCoaMqL5rNPjabcux43MXqqg+9XkcoZGR/v6MJTz57NqiRsQqCwNWrYWIxNzqdnt3dFnt7yijzz3wmRr8vcOHCFImEzM5Ol1OnvFQqVlotmUTCis3qx7ko4D0F5qDMg4aO5UWJZEfk2pTERlO5rm96JR5XdeSrInOLQ/qAL2sg056QkwuOEUmDdj/SlwUW9SNm01YGHzhJvudC2rPy5B0H+YcOWg/tRPYtzEsCFiPkdSAj4BFk8sXJe0vIdFOT+19vOGSQ1JF6qufaXJu620T1xeTf4KxHJPlEpNsWMOdlpuIC6QPVTHcI/U0BWRZIPxA4fWrE5sE478FAYD7eoVIZkk510IkdTp8eUSqJDAYwO2silZoQYEtLThKJEuVyl2xW6TQ9epRhb6/B3l6DR8mgXAAAIABJREFURKLO7KyDe/cyVKu9VzqsEwVZMlnn8uUwgYCFYFDHo0clfuqnlj+yBWp8bYzHQB7OiykUCphMJmKxGLmcAmyOm57k8Xh4+fLliWG8yWSS0WiE1Wo9VvFyeCT44QX78Pn5fD4ePXqE0+k81sNsMBgwGAwkEokTxzyOO0LZbJZAIEAul8Nutx9Rz7wafvfDJrv9tD7W+vLHfQKf5HqVpAGYmZnha1/7GqIosry8/H29t9FoxOsd8Fu/9YxUqqHik3y+RThsp17vEwhY1NG/a2s+arUehUKHTEZZj+fnPZppSJ3OkCtXwtRqPTUIdYwXtrYmQaiZTJPBQGI0kjTTLBuNHmfPBpifdxOLKdkwm5sNPB4jDx7kD/BJj2Kxo07CAaUREInYuXQpTDBow2YzUK32yOVaOBxG7t/PUSpN8IkgoB57PMDCYBCZmnJQKk2mir58WSESsZPO1fnin+ioWoPk5QAOXZMAE1y2ZVjEcZBVo9MNCJaK1MMWLLqJGhugiwnBKeO2aSc5GfUDGttukKH2hhWjUcHDoiBDAZxo7Uwmocc7lmvErmqJhkwxyKJe2zCx0EFuioiv8KppQwTvUHseGVsIj3AIi8nQcZq0rxmGlaalzk1MypD3TiHKEht/rlhJBgOJc+cChMN2FhY8eL2K4qXXG7GzU2F7u6YqXioVrQ3J4zEfYOEARuMQnc5AoaBkQU5NObhzJ0u7Pc6RnKhllIBgJbIgFnOoSplxZMF4LPdwOPkOqtXeATaxMDdnJxAwkcs18HpNvHxZJ5vtsL+vKM9v3IhpSJ5arcdbb83i95vx+XT4fI4DFb2Vu3ez6l5hMJCw2Yx0u0P12JGIXZ1MNlYR5fPKZ7TZjDx9Wjw0ObWp7ocOTyZbXfXRaPRVNVAiUcPvt7K9fWj8u6Q0a0WRg0EPUCj0ePPNiRXoe6nDRESj0TiSF7O3t0csFiMUCh2rNBm/x9jidFzGXq/XU4fSHKeMVq4RD5ubm8cOl4BJpuDW1hahUAiH46iKyG63UywWT7SyA0dGg29vbxOPxzXnZLFYaLVa1Ot1PB7PJzUjED61Pv23VefOneOf/bN/xpkzZz50lvx3Kr1ez2g0YnHRzn/8j4mDG60SpiUIAg6H4SDzRNnQJxI13G4TlcqkUzOeAmCzGVVSptdTkt3ffz+n2pAKhTZnzgQ0N1qAlRUvsZhD9V43m4ODRbrFy5cV9cZeLPaYmrKrocaRiB2Xy8T584rMd+y9Hgei3bmTVZn2Xm+k5q78/+y9WZAkd17n+fEj7vvIiMjIjMyMvKtKVSXVIalK1QfdGAvssGM724BBY4PtC908YouBgdlizWGsGcbLPvSwttiCjdk+MM0228MyY8MOV9M6WipJpaPOzKy84o6M+z7d9+Gf4ZGuzGppW4C6Jf3eItLDwz0i0v8///6+x+RCu7oaOI62HlEoCFBmQrkdDjUTSp/LtVhZ8RAMWpifdxAOC91rIuHh/v3aMSgjknsuXfKTz08bA03TuXFjjtlZN4mEx6D52u0q77wjZFoTmm+vNzLSfSRJ0HxdLouhMW61xKKwvV0lFnPx9ttFY+GpVnu88EKCw0ORynXuXPj4PcXEY9L0HB42cDis1Gpdk8dPtzvk0qUoyWQQn89BqdRje1t8lm+/PW2GLl2KIMsK0WiQ73yngaJI3LixwFtvCQ+dfH6G8+fDqAGFmgUe9GSUBViMatzpKiy4NR71Zca6xLJT435NNlKULoY0wkOJd0rmhcWnaBy5pwd7bSihPLCRetvDvX075aaKjkRPg2Ff7EtHotpUmGnLvPbXVmbTEpcjGiWbRq083X9Pl7AVxoyPTYyHuoKnpjMYSmTuW7ic1DnITBeyoFOncFc8btUlNt0aXVmn1ZMZjCRiukarLoEu4VQ1VlYaHJXsjEYS5zbHpFKd4+9Lp9/PMh6XuXbNyXBooVgsGd9JpTLGZusabKpabcizz4ZNE7JuV0NRNKO5F2lPfuJxF0tLfsJhB5omfv+Cit5jZ6dKrzf6UClQE1O4Wq1mWmRzuRx+vx+n0/k905OeZDoHGNHcly9f5p133jn190lNGoUngT2qqtJqtajX6yQSiTOBE4/HQ7FYZDwen9lIgGgUUqkUFouFo6Mj4vH4qWnNSfO7UCj0iWsSPq2PtL72UR/AJ7Fu3rzJV77yFcNY+PstYdBZIBwO8p3vZIyh0dKSn9lZN63WgKOjrtGfTEIUTiZK1mo94nE3Cws+1tYCAtTItAiFHNy9O/XcSKebxg3npAaDMZ/73CKxmMsYGgmPOzevvpo1ZCG6DqqqMxjojMc6sixYBT6fjZWVAHa7ajA7Hz+u4XZbePCgbDAgTg7/FhY8bG6GCYcdrK4GKRbNqaLhsPM9UinBIP3c/6rjuujAZ22DrKD1NRZUAZJUh14URTOAEEmCre4SSwEzYALCnHfRdYgqnfa+y2QSPPSvElo2Dx+PCrMsSGaGU9YWo3LBjttiBoKqWoQ1/bHpOUXSKfSieDQzAzxtjRMdmtnrKT1O1DYd2lilESl1BptlKonKNKNIdgEiFjt+ZAUWbkL/7Q38bg+DwZhHj6YypHy+Ta83otEQgMd7LQs2NoImy4Jcrs14rJNOt01BIhNvmeFQY2NDJKeOxzrLy/5j8MecnHqSpV2v93nuuVkURSKZdBON2pAkDbdbYWtrAsr0aDRGeDwO+v2RCdRxOi1sbopwj0ly6tZWBZ/Pzt27k3sFjVyuzc2bc8Z7z8w4mJ11c+lSBI/HymCgGZIwv9/OW28VjX5f18X79Puj4/cTQKemCQDr4KBhAJ27uzWWlrwmT6hcrsULL8zh8VgN/5t2e8jKSoA33yyQz/d46aU0L7yQYGnptCHvB6mJBMrr9fLo0SPC4bBxDZpIvRVFORW5fbImUs2zPPbq9Tqj0Yh4PG4M4846hmAw+ESwBwQQs7+/j91uP3OgBu8vZT+Z+BmJRMhkMiwtLZ3aLhAIsLW1hcfjwel0fhyl5/ApUPPDVZIkceXKFX7lV36FL3/5yx9qeuv1eqnX0/h8IV56KWug36lUg/X1kGnB1DTdoM0KbxgvLpdwQZ+wTyYR1UdHwvvkpKZVVWWuXRPeKRPt9ePHNZaWfLz4YtrQXk8mQpMLbTQqfFq8Xp1IxMtwqBkodrs9JJdr0mxOF7Fisc3srJBJCVAmyHissbzs59GjqYu7MO4zmyd3uyMuXQricCgkEnbCYRuKImOzqWxvNwxQptkcAcJjZ3IzrSgSPp+DRMLG8nL4+LPps71dJRx2cPt2jkqlZzjtn/T4WVjwsrgoWC92u0qrNTR8emw2hQcPyqap12ikoSgSfr+Nc+dEJHq7PSAUcvL4cdUwiN7drXHpUsRknlyt9vjMZ+J4PDJrazM4HCrZbAufz8YbbxQpFDpGg5VON3jhhXkWF4NomoXt7RaZTIeDgwo/8RPzjEYzvPVWn2vXomxtBXjmmQDpop30WMaxCRsXde7WZNxxqAwkViMa6a6MpOvM2qDQm15QV8YaL3ZPUxYbPR1mxizqML9t4c07dkoNhTWPRuFE1PZQl4goGu3R9P8hqPTJly00WzKH91TY1njKN6BgEeAOwMIAau3paxLoVGvi8cE9mR+ZH7E/kI+/Y2g+nG4b9+vU3pTwJYc0ewprIY38sflwryezs5VmcaHLTMSJw6GQPsFaunzZys5OjVSqTjZb5rnnVGZmNNbWnMzMWFlbc2G16gQCVoJBKz6fHZ9PZ3HRRTLpJhKxsbbmx26XkCSNel3QfJNJPy++mCKXa9NuD4+nXtPm7PbtHF/4wiLz82dPMd6vJo2Cz+fj4cOHxtQmlUoxOzuLxWJBURScTucT05Pey1aZVLfbpVarsbCwgKqqHBwcnMmIOQn2PKlRqFQqjMfjY9D5bCBmAiidbHbe+z6TRmEwGLCysvLExKmtra0nGil/DOpToOYHs772UR/AJ7Hcbjfdbpe//du/5bOf/ez3vZ+JsbDDUWZ3V9xcT0AZcbMbek/wQZ/PfjaBx2NlfX1i2KszOytS/iagTL3eJxh0UK12DWmS1SoTDjtZWxNMGbtdpVLpsbdXQ1Ek3n33yBga5XItrl+fJZttIUkClInFXCwu2nG7nQaT4OCgwcyMeWik6+Dz2Wk0+szOiqFRMuljMBijKNKx92DzuAerHUuypmBHPt/m+vUwPp9KPG4jELDSHA95/t9ZwKHioEe7Y6FsjbAubWORRrzT2MDnMDvZpRxxVpW9U5/5S/otnHQJSZVTfzuoJHFv1LHZB6bnS5WoCXzRkPjWwk+ijyFsq5q27etWkiOzdAzgYLhwCpRJW+LEjyO680Q5lBM81pcIOSs46Blah/vSOQL26fuUrBE0SQwEJKvCTiuB0z2iNzfgP/0vA4PB3WwOjIhrl0s1PGw2NoKMRlN2/PZ2lYUFL/fvTwGier3PjRtzZLMNlpd9nDs3QyTiJBIRQNoElEmnm0iSRKczNEmTGo0+yaSXRMJFLGbH4ZDZ3q7j91uOB5zCh69UGpwCEB0OlZs3RTJZMGin2x2RzbYIh5289lrOSE7VdbHtYCBAHZ/PyvnzYVwuC4uLPoNVn8u1ePy4ZsjoJpXPC1CnXO4aQ2qXy8LKSpBHj6bJZOl0k3jcbbI70HWR8Do7K3yaJn5L+/sNNA3u3SsZQGcq1eDSpRkjtfUf//GAX/zFS9hs5iHW/9/yer08fPjQSHlKpVKGce8kcrvVap0Zye3xeMhms6f8BsvlMhaLhbm5ue85yLJYLMiyfCbYM6lMJkO73X5if/V+voWA0Us+ePAAi8VyppzrZD+YSCQ+ccOyT4GaH9CKRqO89dZbFAqFJ3pBfJCSJAmn04nH0+a//JeiQWkEKBRaXLsWY2HBx+Ki0GBubVVZXhZpAxPD3vfeCALE4y4uXpwhFhMR1Z2OAB40DR48KJPLtQ3goVrt4fOJtKgJzddqVVlfD9BoTCZKbTKZHtGolb29kyaqA557Lk6t1mNjQxjihcNOgkEH29vVE9F6LXRdmBibF5MeyaSLeNzOzIwNm01he7tBJOLi3r3aMSgjWD4vvDBvyINkWRiSXbs2a5Ih5fMd/H47d+4cUSp1jfdSFJnRSGM00pifFxMlq1VhYcFDrdYzJkqCLeM2LVoTinGnM2RzM8zqagCn00Iy6efu3dJxPGaDXE6kPZ1E+EEsJsmkn9VVPzMzQiu+s1PHalW4e7dMuSyauWKxw61b8+RyHS5enGFtLYSuK2QyHZpNnUxG7PfSpRkikQAvvVTC7R7ywgsJ7t71cfGin3fedbHynMZqUsPRgXuvKFx1a/SO4OqGxndaYmG6FdJ4ozK9mJ73atzZUlhd0imPzRfrMRKfk3rcfcVFtjJd2FY9Oqmu+QZ9Tu5SHkwXBJeiUT3xml5fRXqgEKlAJKlT0iSSuka+Mt3PslUjl5s+th3obM7oZCSJ1kBCTYN2fIx+Lzz+roxalolvtvG7ZNL3xXn1+xILC23293pUKzVWllVarR6d468nFrOSzU4nd3NzDl5//ZDDwxrpdJXhcMjubo5yuUGl0uTwsMryspvXXkuTStU5PKyzt1fH6VRIp6f/e4VCm8VFr8F8m5/34HJZeeqpMB6PlXa7z9/8zT6/+IsXsVo/3ILmdrvZ3t4mHo+fMu51Op3U63W63e6ZcY4TtorVajXAjXq9znA4JBwO43a7v6eEasJseVIK1cHBAZubmzx8+PB9G4WJgfFZjYKqqlitViMW8klJLoFAgF6v90Qa7w95fQrU/GDW1z7qA/ik1vXr1/nN3/xNPv/5z38ov0BhLNwjHnfyrW/tm/5mt6skEh7W1oRhr6rKbG2JG/Z790oGKCPSeiKGt52qSgQCDp57Lk4k4sLhUKlWe6TTTSOGezI00jTdSIuaeMNsboZwOi0Eg3bq9Ym8o00+30NRoFKZsqozmSZXrgjj0s3NEMvL4rPY2AjyzjtHplTRCxfMrGpdh7k5J8Gghbk5O4GAFV2XqFQG1OsjDg87lEoDnv7f/YQvSwSkKhKQas3idfbojJ0syodUpBAOdQqudDQ7++oyl3jX9Hl2dTtb0gboEkvyAe+tu87zLPpPs3Aq1QCb4x3j8V8PvkBn0UGv62DObvaescp9ZrpVIZk6UfvtBPPj6bZ93cpr7fPcS17gjehlUvNxCtEw77ouUgoGeNt1nnvjNfZGawwUGzHH9LVDyUqb6ZpYH3upWMKsLByxt+OjvSPAGNG7e9E00UdOBrEA2WzT1As3mwMCARG9PgnpqFS6RCIuHj4UPpSplGA9Pfdc3PQ91mp9bt2KEwhYmZ114HLJ1OtDgkEL775bJZ/vUasNGY10PB6RPjZ573DYQSgkTHsDAQeDwdiQWrndIm5+wniZACuplIjK3tgIEYm42NgI0ekMKJV65PNt9vfrBAJ2Hj+eglu6DjabiqJwzCIKMT/voVrtoaoyOztVA5TZ3xfePRNgBSa2DIvEYm7jfujwsMHKSpCXX84Y7PheT1gNnOzD5+Y8JBLe49cpZLMi1vynfupsj5f3q5MpnIPBwPAGLJVKpmjus0IRTu5jMoSKRqMG8zmXyxkDp2AwyL17986UUMGTAxXE5y3Y0RcuXPieQIzdbjeCGp7EvHE6nRSLRTRNOzN6HMR11GKxYLVaT53rx6Q+BWp+GOvGjRv88i//Ml/60pfOpP9/0HI4HDSbFZaWQjQaYxYXBWumXu/jcFh46y3h4j8BHno9kdg0uXjOzXnweoXTvDCpGx1H61WJRJzcuVMw5Bm12jQtKhQSoMzCgpdEwmuwSCYTJUWRyWabJrM6Ea3nIJn0GxOlXE6wQe7fLxsTpVSqYXJhF68dcP16iEBAZWbGdixD6jM35+XttysUi30ajSGaBh6PcIDXNN2QIfn9dlZW/DidFkOG9PhxDafTwsOHZWOiVCr1eeopL8Vin9lZN+fOCU2r8OPpnKD5Co+fkwg/gM2m4HCorK2JmMto1EU+30bTdLa3q8egTIuDg7oRpzmpdnvAj/zIIrOzIpZTkmB/v04y6eOllzJGDLem6UQiwiBalmU2N0NsboZpt4cEAm7efbfC4WGLel1MZ2Zn7WxsRHC7Pdy716FY7LO46MXtDvLyy2WuXrXy1lt11tes9CoSr/y9DW8MWl2J7EiifCTRPpK4tKwxtMFBU2aoiYt20KozKEOjL3M+pnHIFCTxKjoX6iMaqQG5sVkLOyO1yY3MF+QV55hMewrM6LJCr2peHJIOjQcPFSp34IWkhtWpc1g4AdS4dFIHJwyGAzqv/KXCtSWNslNiTtOpVcQ+xxp0DyV6bYnWroX4fJX0znQ6sXlOeNLoOuzvd4lECly4YMFut/L4sY6i1I3fTbk8xuXqG/9X9fppudN4DKPRkNFIgJyiyfZSLLZwOFRWVwPG9NPtthgJDplMk35/TDrdpNUaUav1qVR6/MRPnG3o+341aRQsFgudTsfQCC8uLpq2CwaDPHjw4Mw4x7Pc/0ulElarFZ/PZ3L1P0tCBac1zCdrb2+PlZWV9wViHA4HnU6HWq32xEZhNBpRqVSQJOlM0AkwHffHsD4Fan4w62sf9QF8UkuWZTY2Nvid3/kdfvqnf/pD7cvn89FsplBVL06n1fCG2d+vs7YW5MUX04Y3zER2MmHaKIrE6mqAuTkP8bgbp9Ni+Ozl821qtR6pVNOQS6XTDSMtamFBeMO4XBbOnw+Rz09l0vv7dVZWAjx+PPXcGI91YjErVquQhaysBAiFHHS7I6NvOzwU8pBisXMqKajV6nPxoo+ZGcESlSSJvb0Wq6tB3nijRKk0oNsd0+2OuXpVsKptCQs/+u8UZBVcdBlqCrJNRpXHNDU3Tr2L22pm09xtrDG02jmnPUSVpxKn10rX6LucDKpwzrltes1Yl/k7/Qucszw89f102w7W+oKdczQMc3vjMopVo1F2sOw1AzuKrDGq2vFazDL/w2achJ5jqKv8P8p/y4vJ59gLrhL0VVEsU7Z0W3PjUQVLRXOo9DwWbmvXOBwtEtWyONUeDrrkiBqMG5tlyMF4AYcyYO1zOn//BxYKBSHvefy4xsZG8D1pSD1u3pxDVSU2NsIsLfmwWBSiURfvvHN0bFkgen6320qr1TdJ5e12maUlD7OzdtxuhcFgzO5uA5dL5f79GtWqAGWOjvomtkwgYGd21s3TT0fwem2GlC+dbh4POKcptBO2TL8/wmpV2NgIsr4eRNMEuCNYPQJ4evy4ytKS39QL5/NtPvOZeWw25TjxSbDxl5cDvPFG3vDKLJW6LC35DZBzUhNLhoktQ7M5JJ1uMhqNuXu3ZNwPpdMNUzpsNCoGxZN02H5/mr42N+fmzTeLDIc677xzxNNPR1lfP7vneL+aMJs9Hg97e3tYLBZGo5FpaDVJT7p79y5zc3OnehNFUbDb7Tx+/NjwGzw8PDQxo7+XhOqkBOq9PVqn06HRaJBMJun3+98TiPH7/ezs7OB2u594L9tsNo0e7UlAzET69DGtT4GaH8ay2+04HA7+7M/+jB/7sR/7UPvy+/2Mx1n+7u+qvPJKxtB7lkpdk95zooUW9MKpN4wwHrbyzjtFk78LCJmO12s1IiD7fQG27O/XjcX98eMaa2sBE7VwEsM9ofnG44LmGwjIvPtu1QBlarU+kYjLSD0AMVHyeGTicRuRiO3Y42VELtfFarWxtdWgXhegTD7f4dq1mNH4LC56iUZdXLo0g802lSEdHAimzZ07BYMNpOti8anX+8zMODl3LszKih9NE3KUXK5jMF729gTN9+Rx5vNtbt2aIxAQxmaxmIt6fcDqaoBXX80ak6harc/GRshknmy3Kywv+1lcFOZtFotCqSQSsVqtAY8eVYz0hZMTN69X0EODQTvLy16y2S75fJfDwyb5fAenU2Ew0I2G8Ny5CIeHPaxWlf39PrIsc/PmIltbMvn8kFu3FnjxRY1nn42zu2uh3XNy+ZbO61sKTz2nsVuQef6Kxt2MwuFDieef0XjUEUwOWdJZVzR2yuKxTYKKRywG8xYN577Gw4yFmKNHAfMF3G+F0sh88550Sxw2piBLbyzhG+r0T8ihlj066ZyMrksc3pdZ1TQsPpFCBbDo1jl8fAK4CekcPpTJbslsuDX8EZ3McaR3ty8RRKfbltDGElJPYXExx3jsoduVWFqC1OG0QTp/XuXll9NUKmXi8SHPPmsnEJCRZYlabcS1a34OD6eNsdNpo1I5CdRo3LoVx+tVWFnxsbjoQdc1LlwIs7NTNf4Xd3drrK0F2d6eTpQajQHPPhsnn2+xsOCi2eyxtOQnmTxNi/0gdVIrvbW1hSzLJBIJ0zaTOMcnTVQmbJW9vT2i0ajJ5wamZr1PklA9aSo0Go3I5/MkEokPBMS8n+fN0dERHo+HTCZDIBB4YqrAxzQWEj4Fan5Q62sf9QF8kmtpaYm/+qu/wmq1srq6+n3vR5ZlbDYbMzMjvv71h+zu1gxvmHy+bQQyTLxhvF4bFy/OYLHIhjfM7m6NxUUfb76ZN9gKg8HUn29+3sO5cyGWlvw4HNMgggnjpVzuoSgSvZ45hvvy5Qhzcx5WVwPMzDjJZjvMzjq4c6dkgDKlUpfnn583sartdoWNDTeBgIVg0Iosy5TLfRRFZX+/RaHQp9OZDPAGhqHtJMBiEqk8938ECcea+LU6sqyTbiXw2cWaqEky0lgnqJjlR9v1c1g8GpbykKhrmiL6avsGqmtMr+Hisvsd02u+W3+OI9cM56TTQI2OzlJDJG79B/V/QJ0TzPN2yc9q4PGp7WvlMPH3MG0ytQh1Pcy35n6S4aKCYh2j6TJe1Qzo6LqERTFHdNfHAWzOPjvSGuVRgEXlkP3+AhZVfH5WhuxrCZq6h4QrS3UuQeovp6ynXm/I0pKPlZUAyaQAHra3q3g8omefpDil081TA05VhevXI3g8Ej6fynCok8t1mZmx89ZbFSqVAYOBfix5c9DpiIjrCePF67WyuOhjNNIM8HBnp4bPZ2d/fxoXPolyLxbbrK0J/xuPx8rqaoDt7apJahWLmWVIIECdSMRJPG4lmQzg9drY26sDEvfvlwxbBiFDipiAGVWVuXVrnljMRSBgp9sdsr/fYGHBy0svZQxbhuFQI5HwUioJQCgYdLC5GSIYFD44E1BGMGbqqKpsOs5UqsnVqzEajR6JhJ29vQY/+qNJnM7vz+dKlmVDhv7gwQMCgcCppCabzcZoNKJUKp2Z4uRyuahUKgwGA7xeL3t7eySTSaOPmUioms3mmczBiTRpe3vb1KPVajV0XScUCr0vEHNyaPckKfvh4SHLy8sGaHTWNh9jI2H4FKj5l69arcYv/MIv8Fu/9Vt8/etf5+rVq6ducj5IXbp0iT/4gz/g8uXLZ3o5fNBSVRVd11lZcfIXf7GPrkMs5jI0rfG4m3Z7aFyEdncFLfGkfrpQaPPcc3FarQHnzglvGKfTwupqgPv3yyYZ0tyc91S0tsdjJR53sb4eMoCHvb0ag8GYBw/KpNPN48SDPuvrPsplsRDJMjgcMhcuePD7LbhcApTJ53usrIR5443SMSgjjPASiakB2KR5cbutzMw4DKbMpHlRVcmUSpXJNHnmmSijkWbIkGRZYn09xL17ZhnS8rKHQmGqvRY0XzeRiMtgAymKRC7XplrtsbVVJZNp0WwOyGZbLC/7De22xSLjclm5fn2WSMRp6Mv39+uGYVytJhq7wWBsgDqqKrG6GjSozHa7Qi7XIpebaG9bxGJ26nXRnCmKxPy8m8uXZ+h2LeztdTg8bNPtimjNz38+jiSFefPNLh6PysZGgtdeG3PrVpxXX7WytOJCt0g8bsg8fUXj9qHCakLjblGYBt84p/HgkYw8DwNN4pZf47X96YW10oTQ/IiI1qd+H4pNsYC5rDJV2XwBHunKCRW3qBmbTq5pvoAvWTXKrelzSa/OYXr6OGwijDmTAAAgAElEQVTTefh/y9x8RiM1lphx6OR2pn+fC+qk74nHRymZzdAI1SlRaYj3XpvVKBwDN+22QrWaRZZrXLvmoFSyUi5NgZdYzEI2K7Tx9fqAYFDh9u1tGo0aqtrG4dAJBkfEYhZiMQuyPObyZR+DQQ9dH9Jud8nnmwyHQx48KBnsqnK5i8djodOZNtnFYpulJR/hsPOYBi1AwkTCy4MHFbLZDn//9wf82397Ebv9w2mlLRYLhUKBxcXFU0CF3W7/nhOVSZz3eDymWq0yNzdnmsxMJFSdTudMrbWiKDgcDnZ2doypULPZpNvtGtfE90uaej/Pm0wmQzgcZnZ29onTqQkV+WNanwI1P5j1tY/6AH5Y65+qB7tx4wa/9Eu/xJe//OUP9f/vdDqp1YpEo0G+/e0MssyxZDnI/Lwbm001vGHS6eaxb0eTXm86GCuVBIvF67UZMqRud8Tioo8HD8pkMlPWy7VrsyZgpdcb8dxzs4RCTlZX/UQiTkYjHatV4d13jzg4aBwzckV6kNWq0O+LgZXHo2KxaCwtOfD7hXdFpTIgleqwsBDk7bfLtNtibWo0Bty8KaTyLpcIsFha8jE/7zUYFpObcuVnQ1z9+RK9mozfLXq2Rs+J0y56v5FmYVyUmPdkjfNIVxN0wsfpR1Ura17BnNkqrFKPivVHVyUuqWZZ1P9b+W9QvBq+ahm3wywft9mHOLJDHvTPUbjkZ3LpH/StLLtP++CUylGWHfum5/4h91kOnp7D4p6u0Va5jzLWkOUpbdwm9+npNhRpSmHp6zZkRZg4txUPj1inVbMTcE4BlZScQJGhLvmYXR4hHcyx5Pfi89kol3vMz3uN4V+x2KHfHxMKOajX+wZrPRi0EwhYSCQceDwK47FOuTwglWrhcNjY2WkZ33mh0DVAncn3GImIYWW/Pzb8b0QaksOUTDbxdxkOx4bULpHw0mj0URSZvb2aKR32/PnQKbbMj/zIItGoywCeMpkWq6sB3njjiEymRanUpdsdkUya2TIiTtvL0pKPQMDOYDABV5oMh2O2tqrGsDmVEv3+JGp8YyOE32/jqadmjPuhfL7N3l6d+Xmv6RxHI51YzE2nMzB68Lk5D53OiF5vTDbbZXe3zu5ujS99afPUb+iDliRJyLJMrVZjMBic6eHi9/vZ3d19YpLmxNQ3GAxSKBQMn5uTf3/06NGZEio4u0crFAq4XC48Hs8HAmImnjepVOrMe9nd3V02NzfRNI18Pm/yNpyULMsfVyNh+BSo+Zevr3zlK3zxi1/kT/7kT/ilX/ol/H7/9yVfkiSJZ555hl/91V/l53/+5z/UNNfj8VCrpYlGozx8WOHoaBo7l0h4DW00cAzkuBkMRsfeMAFiMTfNZp9Go8/BQcNgg6TTTRYXJxHdosrlDp/7XIJ43GOkDezt1VhfD52g+fbo98ecPx82ACFJgvl5J4GAxMyMDZfLSrs9plLpU6+P6XZ1stmpGW4m02JjI0Sp1CUedx/TfK0G9ffoqEMmI85xedlvYiCMRjpLS36Gw7HBBopGXYa0K5VqGDfKxaLwhzlJ8202R1y44GZ5OczcnOdYX14xqMwTfXmnM+KZZ2IGPVRRJJaX/YaExekUMZfFoqAx5/NtstmWQWXO5aagzmTRm9A9U6mGQYE9OKhz7txpg+j19RDhsEIiEaDZHJBKCa+cixejpFIdnE6VZ5+dRdct3LlTxeEY8swzs9RqIXZ2BEjz4otWnr/p4O4DheAmDDWJukOiN4RwHI4aMjG/RrYtU23IXF8e4XWOeGNXBRPYIvF8qMfWtpPWYNr0NgcyFheM9em2PU0i4tBon/C0sSlmY2CAVZdO5oQHzax7yogBcNnhaEfm8I7M5YCGHoX8CaDG54KjB9N9xoI6D/+hz/M3IVVSWEsIxo34v5DY2OiRTvdJHdZxOTtcuqRzdASjETQaErpeNWjE5fIYp1P8zjVNp1TqkUw6efvtAsVi+zjhQyKTqRuTzuFQ49y5GbLZ6ffY74+5fDmCz2djYyPI/LwAOu12lUePyhweNg1PKV3XkWWJfn9MqzUkm23xr//19xczK0kSmqZRLpfRNI1ut3vm1GYyUXkSUDKROA2HQ9M0Z1ITrfWT2CyTqdAkrrJSqaAoijEB+iDmw1ar9YlJCJNYSIfDwXg8plAoEA6HTdsoivKJbBI+rY+0vvZRH8APa/1T9WAej4dWq8U//uM/cuvWre/7eCaySqu1RLVqJZVqGqDMzk6N5WUf+/vTa36zOeDGjXkGg/Exk1ewCGZmnNy/Px0a5fNtLBaZdntoSosajzXOnRNgTjTqQteF700oZOf11/NGWEOp1DX58zmdCrGYnUTCis9nRVEUqtUBR0d9AgE39+/XDFBGvI8AGFRVZmNDyLnHY+GLc3BwUr4iWKCZjOj15Bkr1/+vEH5LE4+tj1UeUuqH8LmmA75UdoHe2MIF3yPjubfKz6B6xfv323YueQRz5jvlzyP7xcIrqzr+ahWvQ/Rcb2cuk58T6TZKBmLB/Knvp5EK8Gr8GSy+6blJ6pgFNX1q26NqlHWH8LQZair/W+V/ZH95kZDDzPyRJWjUfbhOAEOSBMVhBJcyfc4iDehL09+mjszb/St0hm7iNgFSlQkxwgJIqMqQ0rNzfPt/2jWMdzOZpok5HggIo+bNTR9Op2BmVCp9slkRDf/uu1V6vYnEGsJhJ41G/1guFWJjI4SiSAQCNjKZtvE97u3ViUScpgHnJOLaahV96YRhs7oa5M6dgikddnXVzKzX9SmTP5n0G4yXTKZFvz/i3r2SwXhJp82mvQJ4snP1agyfT0itJjKkeNzN7ds5Q2o1HGrMzwu2zCRqfH09iNWq4HJNEnDbBtAZDNpNCbjpdJNnn5010qIWFny020PW10OG0Xc6Lf6nJyw3gEePKiSTfi5ePNuQ9/1KkiQGgwFHR0cMBgOcTucp+c8EKHlSkubEq+/evXvYbLZTYM9JCdWT2Czv7dEmgMsE2Hk/IAamnjdg9iU8yZD2+XwcHh5isVhOyd0/qT3Yp0DNP0PV63V+4zd+g3//7/89kiQZOsHvt2KxGLdv36ZSqfDUU0993/uZGEK5XE3+43/M0W5P6ZfpdJPLl2dMbJBKpcvaWoDXX5+mDZRKXa5fN09qFEXi0qXIsaGWAGVqNQFQ7O/X2NurG2kDxWKbeHwawz0350RVxySTgkXS7Y4plwfkcgPicRcPHjQMUKbfH3PpUuSYGukyJkoul4VOZ0ihMJUhlcs9ZFkyLtIg2DLCANltyJAKhQ7Ly37jHLPZFkdHHZ5/Pm46R1mWuHIlxtycm7k5DzabQrncRZJUdnYqHBw0DaCqVOoa2u3J1MzttvLUU2Yq8+PHNRYWfNy5UzDOsdMZceWKAHUmMdyLi168Xhu1Wo9CYRrDXav1UVXZRGUWC2achQUfs7Mu+v0xOztVFhZ8vP76kUm25vOpXLkyTzo9YmenTaMxxO+3sroa5eWXy1y+7GJtLc63v23nM5+z8dIrVp77cY23txWeuqGxk5O5dVXjzUMFJJ1EtE+mJhgyo3KfvlOiMTRTPp8JjZFrKrs988VW0yXWIzqlgfkGfs2rkT+R/NQagTzCiPwG4TlzeDTdxmODUmb698EIBjnxuHAg038scWlVI3PMzBmOobc33d7phOLemNR9jWsXNBx+if270/1vbMDhsdypXh8RjTapVrNcvWrH77cSjcrkcqKRGI10rl3zk0pNWTd+v52jo+lvq1YbcPPmLKmUoAm7XCpWq8yVK+J/KhJxIssSDx6USSZ9htF3udylWOyY0sVANMwiMt6DzyempUtLfjY3zcDDWaVpGo1Gg6OjI9LpNLu7uxQKBRRFYWlpiUwmg8vlOjW1+V6R3CAaBZfLRSqVOtOwV5ZlfD4f9+7de6LXTCgUMqZC5XIZn89nWsjfz3wYpkkIsiwbjYKu6xwcHBixkD6fj4ODA5MJMnxym4RP6yOtr33UB/DDWP/UPdj169f59V//db74xS8+0cPqg5TFYmEw6BMKWfnGN8ySmtFIJxi0s74eYmXFb8RY22yK4c+Xz7cNecVJxrKuw+c+t0As5iYWcwGSwWx+5ZUM2WyLVkv0XB6PlUajf+wRorC05EZRRsRiNmRZplodUC4PyGb7+P12Dg+nN9VHRx1u3pyjVOqyvh5kYyOI328nmfSxvV0zhkbCk8R2KvhAUWSSSR+rqwHU//MG3RkP46zGUkiAEdnWLB779LyK/QiEJTa1R6jKmMHIQsY2a3i+jGSFp61v0ey52PUuIysnDA+zIxJBsd+/rvw4ul+sKaOsynLkNEvm5fQVnOfMUdyqqmFrDnDazB451SM36649emMbX+9/lVbShcU2Qu2OsFhGpm0rlTABrxnAyffj+C3TnkCVxhRHEazytCdvtD10A04O60ssWA8Y6BaakjCyHykqHZsLXbVQ/nYHv9/G6qoPu10nFLIwHutUKgOKxS7ZbAeXy0Y2ezJmus3167OUSh1DhuR0CoPix4/rFIsdA7BYXPSZ/G80Tcfvt+H3CwbKhPEi2FhDtrYqhv9NOt1kczNkAnU0TefWrQTxuJtQSJgL7+0Jn8UXX0xTKLTp98cMBmOWl6dsmZPmwrOzLnq9AeVyn3y+TSYjPJpOKgAmbBlxHyPOUQBJQkY+YXUdHjZYXTV7/IzHOtGo6zgBN2z4ehaLHZrNAVtbwny5XO6SzbZYWfGbks00TefmzTizs25sNo3/+l8P+Df/ZhOv9/1NcIfDIbVajUKhwOHhIXt7e1QqFdxuN8vLyzx48IDZ2dlTEqCJ58yTUprsdrsx7Jqfnz/1d5vNxng8plgsnhpSwbRHmzCO9/b2WFpaMvVEk/7qLPNhmErZ3+t502g06PV6RCIRk9x94m04qY+x9Bw+BWr+Zevhw4f83d/9HS+//DK//du/zeuvv84Xv/jFJ/oefJC6efMmX/3qV/mZn/mZD+V4bbfbaTZrLC4GyWS6hjeMqsrHx17m4GAaAdlqDXE4VAMMUFUJm03l6acjhrFdrdbn8eMac3NuXnkla6QNTBKbJjeRs7MO5uYchELK8T41KpU+xWIfSbJQKHRNNN9abUA47MBuVzl3Lszqqp9+f0wyKWi+E1Dm8LDBlSuxUzTfq1ej+P121taCx8a7Eooic+9eyZBoNZvCTNdmU4z3tlhknE6VixdnmJ11GzKkx4+rzM66+e53s4a+vNkccumSn3xeXKSXlnwsL/tZWvJit1toNofG1GwwEGavJ8GSSqVLOOzE5VKNGO5OZ3iCyixAmYODximArNsd8fzzcWZmnCwv+/H5bNTrfcZj2N6ucHDQMKQy2Wyb9XUPoZCbc+digIjiLpc7+P1uut0xN27MUyxa2N4W+mRJsvHaa3l+7MesDIcWzj8j8SCvcP7pPrf3rSxEuzwoq2i6xJVki3fz4qZZlnSWfCqxiMzhCZDlSmjMvXdkWh2Jrgt4j6xpI6yReg+As+rRyfclIladsEXHqUDUAuX+iQhtp066OH3dYAz9oxNAzVgirOt0OuK5XldCegAXEhp1i0SjKxEaCB8agE4PtOYQXZfI7usovREXzvfJZq1omkQkIpHNThuvZNLGzs4RqVSdXO6IZBLs9iYbG3aSSRsOh0IoBNGonVjMjqoKGV8sZmVpycXCghNd14hEhNa4VutSLnfo9Ubs7dU4OGgYXkS93hiHw2IAkF6vFY/HxoULIcJhl5jWFTvs7NSIRJy89VaJTmfEt799wM///FO43dNrkKZptFotSqWSAcpks1l6vR52u51IJEIymWR+fp6ZmRmDwXL//v0zWSsngZKzaKsAxWIRXdfP1ELbbDYGg8ETtdYn/XBGoxHxePxUUsH3Mh+GsxuFbrdLvV5ndnbW2Oa9JsgggJpPYpPwaX2k9bWP+gB+GOufugdTFIXV1VV+7/d+jy996Usf6tiEsXAaSfIc71d4w9TrfVZWAnz3u1mDydtqDUgm/SYGgsdjYX7ey+Kil9lZN7IsGXLufn/Mw4dlg/k7kXLn821sNpmlJTcul8TyshNdl6jVhpTLfXK5HouLIR4+NAMKDoeEpsHqasBI0anX+2iaxv5+3WAR7O3VOX8+zNHR6eCDWMxtmCenUg2SST+vXQyg/uwCY5eNhhIgKh0ha0Os6ghFFSBMpRpED0mgSNhKAyLuInfzl9CD03VHturEWnneyV1gNGMG4rSSynpoh/3yEo9jy1M5U8nG5swj07adjoN/yH+ReCLLe2twZGPGa47d7lS9zFmyfL3/FXqJ6W+qX3Lg8Zgl/0flGSIB8+vzR0FCnrrpuWw1gss5ZXD0m1aGbiuaXeZxa5V1+REFJYKEhAw0R25cnwnR/laDUqpPsdglne6wtBRke3u6b03TDTa8+B5F1HSvN2I41Dg8bBiJT6lUk4UFj4lJksm0+OxnE8RiLpJJP36/nUymyfq6SEOaSK1arYGJHQ/C33F1NcDiopeZGafhY3N01KbZHLCzUzV6mXS6yYULYYrFKePF5xNeTYPBNGp8d1cMOE/+VodDzUixWlkJGIyXwUCj2x0Z5snpdJNsVvg5nVQApNNNPvOZBLOzbpJJHz6fjYODBhsbk8Qn4fHTbA546qkZ0zkKcFV8pqGQ05BaTRJzUylxrnfvFvm5n7tg6iHG4zH1ep1isUgqlWJvb8+IzHa5XMzOzpJMJonH4wSDQRRFwWKxPJG18qRIbuM31e9TLpcJBAJnAtc+n4/9/X3sdvuZpr0TP5yjoyM6nc6pcIkPEhAxObaTBsbFYhGbzWaA4KqqYrfbTXL3yWs/iT3Yp0DNP0Ol02l+93d/lz/6oz/id3/3d/nbv/1bbt++zRe+8IXve58OhwOr1co3v/lNfvRHf/RDHZ8wFs7x3e+2TGkD5XLXNJ2XZeGM/vTTUSOiul4XBnV2u8qbbxYol6cR1SfToqJRO0tLTkajPvPzTppNIV86OuqTyfRYWwuZaL6NhqD5tlpDQ4bk99ux2zX299uGKXEu10KSJLrdoSl6sNMZcv58mOVlvwE83b1bIhJxcvt23gCe3kvzVRSJeNzNM89EiUScBvCUz7ex21XeeqtAudwzKMX9/giLRaHfH5NICMaLzWYhHJZpt3WjYdrZqZFM+k1mavV6nxs3zDHcPp+NcNjBw4cVE5VZUST6/ZGRGCTee8zFizMkkz6iURfjsc69eyViMTevvpo16KEn49TDYScXL0ZYWPDTamkcHY3Y3m4ajCZVlbh0KYDdHuL119v0ehpXr4apVu0cHg64cWOGb39bwuHo8/orDvx0GDQVltdG9FwWKm2F5ajGXt3G6Djl6YVljdd3FMYdaPtBR+LpY5BmMJLo9CVWFnWq72HPzHt00kOZoEVjdVBnqaNiz8Ljv5Fp3ZWp3ZVo3JVI1jRab0msyRrrXh2HVSdTlQzZVH8sERrpdE+AOSs+jeKJ5KfVmMbt/6wQbOusX9VwqzqFY1+b0UhiKTqidixHrtegVHpMNFrn/Hkne3s2Op1p7PZwKNNqTR/X62MqlTL7+zUOD6vs7lYIh3XefjtLPl8nn69jtyvcuZPh8LB+3Cg1WVkJ8PBhydhPs2kGOoNBBwsLXs6dCxEIOJAkjqPtW6iqwr17R9TrJxq9vgB1er0RPp9KLtfgmWfcZDIZ9vb2SKfTdLtdrFYr4XCYZDJJIpEgEong9Xqx2WymRfFkZOSTWCuTSO6zaKu1Wg1ZlimVSk/UQr+f1nrih1MoFFhbW/vA5sMna2KONzEwrlZFw3cSHFJVFZvNxu7urtEofFKnOZ/WR1pf+6gP4Iex/jl6sGQyybe+9S1cLhcrK99fmh5MjYWj0RF//MfbbG1VyOWEDCmbbbG05KNaFYMfl0vF5xPSjnDYgaLIHB11DKbDyy9naDSO/VxGGmtrAXK5NhaLxNKSm0TCgaKMjlnOApQpFPqUy0PsdqvxWpjEcMeMYIhEwkOvN2Z+3sG771aMG92jow4XLsyYDGkdDpWVlQALC17icQHKTIIPOp0hDx+WjeFWujHA+40fxxUeMK5YcAb71EpelKqEPzztl1LlBJZjidOwZmHNu82D+hoWrznMQj0YkLPHUL3muOzukcrF8H3+c/Yn0ULTdWDYsXLef9+07X96+19RdERJRk8zbdpFN4lgyvScLsG30v893Q3zGtYueAgFy6bnKuUg0WDR9NzRfoBg1JwGmisl8PimAIBFHdNQBYNGssFBLwmahuUYyGp33Oz3Fwl+3kXmj6dSrkymxfXrs3g8NgOU6XSGbGyEePPNqQypUGhz6dLMKSbJ+nqImRkr8biTaFQAOqVSl3K5y6NHFQqFNoPB+BSTZDI0uno1ht8vQICJDCmR8PHd72YNFn+/P2Z9PUgu18ZqlVlbEzIkt9uK06lSLE59jLLZFlarYgyrACOJyWKB5WU3q6thOh1h0zCVWole+umno6ZzHI10Y0C9vBwgGBSpZuXy9BwnvXQuZz5Hn8+G12vlyhVxjkIl0GFvT9hHvPpq1gCeJueYz4tzhDGqqhOJaMZgLJ/PMxwOcTqdxGIxkskkc3NzhMNhPB6PIdeGaf9ls9k4OjoysYIn9X79Ty6XY3Z2lu3t7TOZzydffxZrB6Yyd0mSzmTmvLe/OqtncjqdJgPjdDpNOBw29Xwul4tqtUqv18Pn833cjYThU6DmX7ZkWeYb3/gGf/iHfwgILd6f//mf8+Uvf/lD7ffpp5/m93//97l69eoTJ9YfpCY/9uVlO3/xFwdGRPWElbGyIlIDJsZ2OztV3G4LDx6UDXCkVOpy40acdLpJJGJjcdGFz6cQjztoNEZUKkLTXCj0CYU8pgsliIulzyfisNfWhIY6nW7icKg8fFg2DHuLxT4XLwYoFqe0wn5/xOc/LyKqJ5OaXK5tsF0mwJOg9loM7fZEhuTz2VhbC2C3q4YMaWenis9n5/598zneuiWAq4n/TSzmZnnZR6nUNUCZVKqJ220zdLMnjzMYdLC8HDD8b1KpBm63hfv3p0axqdRpJ/7BYMznPy+ozPG424gyD4edvPZaztCXg5BuSBIMBhqxmIsLF2aQZYmlJT8PH9bIZNqk0y2q1R4rK27K5RGrqwHOnYtQKIx49KiJqg6Zm/OzsODnzTc1er0xly/7ef11BysrFrLZKA6HhNXq5mDLSjIsY5clOnYJlw+Kx0lM1xbGvPpIBiSaLYnLT2mEnbB9T6Y/nF6wLyxoHHbfYwps14jUdPZflMnvOcikZWwSlKvm7VYiOtt7MsWszOEDmfIjCfUduJLQCISh2JNYcWkUT/jWrIZ1UvvTxytzwnemVZPI3ZZ55sKQekem0xXHuJHUyOzrx5+vxLlzI7a2GqTTJdzuGjdvymiaTK2m02rpbGzolMu94+9d59o1H5nMtBGbm/OQy02b0FKpx/XrUbLZ6XcuzPL81Os9kkkf6+shVFVmfT107CUgjO22t6vMz7t58GDaEJbL09/qwoKH9fUgwaCNmRkLpVKfanXInTtHRCJWXnhhhcXFRRYXF4lEIvh8Pux2+/vKeiaNgsPhIJfLnQnGfC/a6tHREXa7nYWFhe9p2Pu9tNYgpj67u7sEg8EzwZyJ+fB7UwpOltPppNFo0G636fV6eDyeU02P2+020hJ8Pt/H2UgYPgVqflDrax/1Afww1j9XD3bjxg2++tWvfmhjYZfLRa1WZHY2xN//vfBAcThU1tYCJJPC6HeS8lgoiIl8JtM0MVby+Tbz8yIEYmFBgDKaNiSZdJPNdimXBxQKfXK5PhcvxkxDo0ni40m/DZfLQqs1JJ0WPiSpVJNqtU+l0icaddJsin7DbldwuaxcvRplZsaF1apQqXSN4IOXX04boMxgMDY8SYRcfYbBn/wrrHM6qnOM2uyhunX6bgfBRgWfr358fCptuxPZcpxuVVeJdI9oxTy893KeepQgcMHcXwKMOzbmRmnuhi8gnfiqdEXnnG2a/FQqh/lO/AW0kcKyf/fUflq7Npbj5ojubzz6WfqrFiw2s8ypWfASnTGDMvVDN5GYGbypl0L4ImZGTbEWxe2fAjWqOiLXiqFaBTAlW3UeVjcJyFUsljFOtcO+I4nDreG2+9kci9h3h0OlUhGgw85OzZBJFwpt5ufNXpKapvPcc7PMzXkNGdLOTpW1tRCvvlogn2/T643pdkdcujT1XXG7LaytCRBoZkZIsyeMlwmT5GQ/nMk02dgIUa32WF0VjBeLReHcuSB7e3XDE/LgoM7mZoiDg2nvJCK3/dhsMpubYYPxInqiHoeHbSPVqljsnGLLdLsjbt6cZ37ew8yMk+FwzPZ2lZWVAC++mCKfF1KrbnfExYszhoeSy6Wytib8AKNRl8Fcm0TTt1oDk4lxOt3k/Pkw1apg9ayt+QGNxUUn6XSHcrnPt7+d4sd/fIH19YSJrfxeUOZJNfm73+/n/v37Z4IxZ4UvTOrw8JCFhQVUVX2iYa+qqlgsFvb394nFYmcegyRJ5PN55ufnzwRPTvZXZwVEgPC82drawuv1kslkSCaTp/q9YDBopF19kB71h7w+BWr+JcvtdvPNb36TF154gXA4zJ/+6Z/i9/s/dMS2JElcunSJX/u1X+Pnfu7nPtR01+v1Uq2micejVKsDU0R1NCoiqkejqSu932+nVusRDNpJJp3E4zY6nQE2m0ou1zVAmWy2x+Ki3xRRXSx2+Mxn5g0ZknBKH5JM+njttZyBmjcafRYWfKaLn9UqEwhYji+YPkOGdHjYQNN07t4tGU1BNtvi2rVZg5a4tOQjFnNx8WIEq1U2Ep8mTJO33y6aGCvCuHjAzIzDkCH1eiNcLpWDg4bBeNndrbG6GjTpryuVPk8/7SUc9rC+LgCdbnfEwoKX27en59hsDojFzFHjVqtMJOJiZSVg8r/Z2xPxf++8M2VK5PNtnn9+jnS6idUqs7EhnObX1oK0WgNDrzn4TJ8AACAASURBVJtKNdA0jfEYI2pcMHG8RKMW3n23TyrVYTDQUFWJxUUH5fIIRXExGMhcuDDPW29ZWFtzUCqF6XZhddXG9rbC858Z88qbCtkdmc9fG3GnpqDpEgtBjUzBDMicm9F4sC/T7pt/qxGPTlYTF92nfBozBY07LytUqxKDE1Hb7T5oQwGWTCoeEPHbk+oPJTwabN2RKb4pkdQ1Vuc1MnWZ4bER8WJI5/Bk0lNEJ31/+jgSGJPZqvLscwrFqkIirnO4Pf39r69jMFva7RHx+JB33tlmaWnI4uKAuTkr4/GYdnuMpkEo5KBQmFJzc7kea2suKhXxvVssEuGwg0jEyvKyn2TSy8yMA5dLpVhsUyr1DNnbxNvpJIOs2x3hclnw++2srwdYWHBTrXYIBi3s7rbIZlvHAF2Hq1djRvNx+/YRv/iLVwgGT9NaP0hNIrv9fj/37t07BcbA6UjuyXUqm80SCASOGX1P1kJbLBZUVeXw8PBMem+73abb7ZLP559oHCxuhGrGNOasmpjjDQYDEonEKRnVZJv79+8TCoXOBIU+RvUpUPODWV/7qA/gh7H+uXow0TdVeeWVV7h58+aH2pcAf4/o9YRcQtxMd3j8uMr8vJe7d4+MtJ52e8i1azEymSaJhJDLhsMW3G6VUqlPuSwk5MVin/FYZjzWjHUfxPpx6VKUxUWf4bextVVhaUkwHSaeIrVazxTDbbXKx32UwsJCCJtN9F8CPBqSzTbJ59vGcU5YFna7yuZmmJWVIMOhzuZmmLt3K+SeX0T+2UU88S5aDpwxwZLoZJ0MxjYW/QdiPw/jyCf8Tsceme5DJ7b5KatiUlt7qywsnjb8lTwae2+uMFoxX9dlm064eITTJdbiv3z4U3QW3Og2WFL2TwFB7bSP1bmpn9Bf3vnv2HsmiZQHt98cId1KWYjNlkzP9VougkGzpGw4sOLwmn1vai0/Dq/ZIydXjmP1TH1rqgUPWSlBUKlisw7IlSO03D58z8BL//Mu6e0KlUqPZnNgeB1OanZWDBvjcTfBoMNIbmq3R6TTQl4/YYMUCtPIeJH4FMTlsnDhQpjRSDOSux4/Fszxd9+dSrt6vREXLswYIRiTxCerVaFW65PLtQ3Gy9FRB6/XavLLTKUaPPfcLPG4x2C87O//f+y9aYwkeVrm+TPz+77PuDzuI+/77urqBpbphaERmmWWRYCYkRCaWYmRWAmJD/QINBIf2PkAg0YzszvAQO8IZhZxaNXQdDddlZmVR0VmVp6RGffhHu7h932a2X6wcPOwjMjuonpX3V2d76dMM7fL3eL/f//P+7zPU2Z62s8HHwxarYrFFufPx9jeHjyj3W7k+PEww8NOTUC7D6rs7tZYXy9rcgAHTTosFoPG6DlxIogkKRpIurZWIpHQP2O7LTE76yeTUZ03Z2Z8xGJ2er0u9XqX3V3VxCSValAodAiFVCOSXk/h5csa//yfn8Ng+OSggyAI2O12VldXjyxGvW7J3Y++NXdfsPd1Hb5+uFwurQXL5XId2p/P57FYLOzt7b1RONjn831LJ6m+gPGTJ0+QJEnTCDwYB3VxRkZG3jJq3hDfcufbeHOcPXuWX/iFX+D3fu/3aLfb/M7v/M7/J4l+PB7n9u3bVKtVjh079onP0xd7stnK/Nf/uqUTwtrZqTI/70eWZcbGHMTjFhRFZmLCw/JyRQNlstk2x46FdZOBosDwsJNQyK6zqE6lapRKLV69KpBMVqlU1ArR1JRPu7bRKOB0mrl8OU447MBmM1IstshkWvj9Bj78MKvp30iSQiIxAHVGR13MzQVxOk0EAjadzeXWVlmrTvUjlapx7lx03/FJbUPquxY8eTJwVFATD5+uJxXUNpRYzPHaMzap19v7NtzqM+7sqALGfVDHaBTweCxcujSke8a+ePAHHyQ14EmWFcLhweJ+fNzD/HwQs1kkGLSTyQyU+FdXi0xM+HQgV7cr8847o4RCDhRFZGurwdZWjWSyyeysk3qd/e/Ayupqj1pNIhYzMDsb4+5dkdlZG5mMn1IJLl40s7hoZHpWZnlbpNcTuHRF4pvvGbl6WiYvC7gNkC4NJp+JsMzuqkDLKWiAST/qDQFvWOF4R+bhNw1kc6LqqDSisFcdfLYnC4z5FJ3Tk90C+dxrzk8Rmcx+a1MpJxBRoHBX4MJJmaog4LApOqcnpwNyy4NzOBwCqWSDreU2QXuLkTEDyQ21DUr9vUXS6YE1o9drIpMpUCq195PWKsnkLlAnHJYxGnscP27F5xOJxUyEwwYiESuK0kQQejSbLXZ3q0xP+7h9e5utrTKpVJWdnSqXLw9prXkApVKLq1eHkSSF2VkVlDGZBLxeIysrKvMsmayTy7VxuWw0Gvq2QNVFKsDYmBurVebDD7P81E/NfUdAryAIWK1WNjY2dGCM9v0esOTuT/Sbm5sMDw9jNBrxeDysr69js9mOHBedTueR7gCA5vgUDAbfKJwH+mrMUdoU/URheXmZqampIwGfvi5OqVQ60nr8UxRvgZrvzfjSd/sGvl/j/68c7OLFi/zqr/4qP/zDP/wdCwt3ux38fhP/6T+90JwCQQXijUYIh62MjdmJRi0Uiy38fgvr6zUNlNndVRerB9m4tVp3f963a0Kv5bIqDLy4mNYWyL2eTK+nMo07HRmDQWByUjVnmJvzYzKJFIststkmOzstgkEzz58XtDbwer27nz+oLoWTk358PjuiaGRrq8b2do2tLRXIyWabhMc9tP+P/wFvoIHBKiPkBUxedYHeyFloxO2M19YxWXtkqlFM/gFbRekZaBbt+CODORigXnSwFJphzvrqEMDSbZlYbyZwhfW5G4DhlUwklmFjdYTF2XMIooBoAm+mgM3Z1n22UzczEVBbou7eu8S9MxcQRJC3RXyRku6zzV03kVhGt000yDisera1ydwBo8JBnb5uy4T4mqxIJh/F7B2AU62Kk3rcSaYQIGAoUq+7afocNNsWLJ8dp/KHK5hMIpOTXux2EydOhDSNyWy2uW9g4ebevV1Nd7Je72qgjtNp0olZy7JEPt/S2pBKpRaNRlenJdkHPNxuiyYuXKt1mZ728fhxlp0dFZRJJqtcvKg36ei7WYZCDqamvIRCKmjZaklsbKjW1n3GSz7fJBJxaC1QDocRh8PM6dNR3G4RQYB8vs36uqphc+dOUhPQbjS6nDoVIZmsYjAITE2pLPe+BmYfJD34t3EQPEomq8zPB7FaDft6NA4qlSbDwzaWlsr7oEydvb3D4FG3K7OwoIogj446qNdb1OuqJuQniT6jxWw2U6lUNMbv63GwyGQymZBlmWQyyejo6Bt1+F4//tmzZ4RCoUNFrGQyycjICKVSCUVRjgRzRFHUnKSOYk+DqmvYbrcpl8tHAjWg6uLIsqy1VH2K4405mKAoypv2AXzLnW/juxP5fJ53332Xr371q0f+gfxD4unTp3zzm3n+zb95RDRqxWyGbldBlgVWVipIB9qB3W6z1nvcD4fDyNmzUWRZtYNMp1Xg4MqVIW7d0lc5rl4d4vbtJKDq30xM+JiY8FKvdygUWqytlWi3JQIBG72erNPbMBgERkacbGyogMbQkBOz2YjTaeKDD5K6z16/PszNm/prnzoVZntb7et2Os20Wj1qtQ6bmwOEHcBiMRCJOHSTidVq4PLlIbpdGVlWyGTqbGyUuXZtiPff11/nxAkvT56UtGdMJFQb7nZbIpdrsL5eotWScDrNOJ0mnUggwMmTYR4/3tt/Rhdms4jTaebmzR1t0gG4dCnO3bt64buJCS9OpwmrVa1crK/X6HYVjh3z8+zZYOIYHXUTidio1508f66CZHa7gbNno3zwQQ1JUvj850fIZid5/NjI9etGbt40EQwpmL0KqbTI5KTMbkVQW4VEhR/6eYm/ezGgYA75ZXolyBRELn1O4m5KPxFcHpKoFuDZln779eMSN1f1206FG3y0ORigbSaFVh4UeTDwX5+QuPn+4LizsxIPvqb+3+5UuPSPJZ4viWT226HsVoXmg8E5LBYFqbdHb/9VsNnA5dphdnaYtTUnhYKAJL2i01GzaaMRHI6UpvUDMD3dZXl58D1fvRrg9m19z/v8vIMXLwYVN4fDhMMhsrenF4scH/disxkRBIVyucXubh2Px8jmpr4Kd/lynDt3Bu+B2Szy2c+Oae1+e3vqu3riRJhHjwYJ5G//9rv8y395nk8asizT6/VYXl4mGAwesnsE1XLx7t27nD17FpvNxq1bt7h69ao2YTebTR48eMDFixePZLN0Oh3u37/PuXPndMJ3y8vLuN1uwuEwjx49Ih6Pv7GqU6lUeP78ORcvXjwSiOn1ety6dYtwOMz8/Pwbn7dvPfkpjk+t+M73ebzNwb4H42//9m/59//+3/PHf/zH39F5JEni7t27/If/sMvNm7sEAiZEERoNGZ/Pyv37enbGsWNBnj3Tb5ufD+LxmDEaDVSr6kK1Xu8yPu5lZUXP5LhyZYgPPkgiCCrjOBJxEAjYWV8vsb5e0hgVc3MBXr3K68Ajh8NAJOLE57Njt5up13tsbqqttg8f6tt9rl8f4ubNJAaDSCLhJRx28Op/exf5uIB7ukYvZcQdV+fKbtpAM2xDEAUWHr4g4k/TGNMvyHYfBrH0uly5cE+3/cnNBTLX47y7+TUCY/pnffj+HD3BxLHrenctAM/7Zd658U3+851foHp5wDgYfrDB1Fn9nN0uG7nmucv25jBf9vzP4N3Xsvt7kYXPvtB9trLuYm781aHrUQW7Sw/W7OWDeAIHDDAaFip2fZvI89VZzJOD/LRWdLDuU/WRhL0OEfKshycAaKbM5P5jg/JvfUNjw4fDKvBxsBXIajUQizkpldqMjrpxucz0ejI2m5G///stDi4Jj8qlL1+Ok0rViMWc+y6mHUDVSzxYIPL7rQiCoGOPBwI2jh0LoCgCrVZP05Hpv5cH4+C1LRYDExNexsY8lEotTftGFUp20Gh0dRo2FouBoSEn6+vl/ffcidEoYLOZeP/9LR3QdOPGCO+/r9cgUlnIVYaGnBiNUKm0abW6pFIN2u2DLHyTJq7cD49H1bDpdmXabdU2PZWq6Z7HZBL55jd/llOnjs5bPk70ej16vR6PHj3izJkzR4IYpVKJly9fcvHiRZrNJi9fvuTMmTPa/nQ6TTqd5tSpU0cCKYVCgdXVVc6fP6/bf+fOHc6fP4+iKNy7d+9QjnYwNjY2aLVazM3NHbk/nU7z6tUr5ufnv6Wkx8dpDfs+jzc+3FtGzfdh2O12RFHkL/7iL/5B4ni9Xu+Qwni328Xn6/LiRYdHjwpkMm1yOdX27nXbX4ArV+JEo06Gh9UWnVyuidFo4OnTLNvbA22YSqWN02mm2ezt6994cDjMHD8exGw2aoyXPsL/4MHAorrZ7HH+fJTt7YENdyLhxWDo0m6zrw2jMl6KRZVhc9BJKZWqcexYgFjsdRtuHx9+OGhDyuWaOrFWUAGh06cjxOMuhoddGtreaklsbpZYWytrjBe159elgUSJhAefz87IiAm326G1k62tlRgb87C4mNZarTodidnZALu7NcJhu9ZqZTKJmohZv/Ullari9Vo1JwdQEf5r12KEQjbicRsWi8DWVo1IxMyDByXy+Y6WZHW7MomEl9nZEG63k5WVOqlUm263RSDgYWEhQKtl4fnzJooCN25Eee+9FplMhh/7MRd37zoxGCE+pbC+KeLzKYiOgXbMjUsyW+siFZvaohRyK5ibkMqp++N+hVRX/bfbqnDaJnP3poHZUYWt1/RnYj6FZFm/LeqokSkPKqE9WWDMo1CuDca1kZBegwYBaml1f7cjsPFExFpscuaYjGATyZVEEh6FUl79jCQJTE11yeel/b8VGB1ts7i4S7WaZm6ux4kTIrIMpZKMLMPZszZ2dg7q0BjZ2zvY8tfG7xdpNAaVmWjUxd6eOqkLAoRCNk6fDhOJOIhGbVitIsViG4dD4PHjAjs7NXK5Fq2WjN/v0LFlDAYBn8/G7KzaR90Xwl5ZKeJ2m3nwIKO9q+l0XSeivbyc50d+ZIJA4JNVmA+2QC0tLR1ZdemL3b18+ZJoNEoqlWJkZETb/+1anPoVlNe1Zra3t4nFYpjN5m/rMGCxWOh2u290kiqXy/R6PU1U+U0Vm0+5kDC8ZdR8r8aXvts38DYOx+TkJH/6p3+K1+tlfHz8Yx/XbrcpFouk02k2NzfZ3Nzcd34y89//e5qtrQaZTJtCoUM6rbpyHlzoCoK6gI3HXZqmSL8AdevWwNpYUSASGbRYDw25WFgIYLUaiUYdlEptjXG8slIgHLbrWMO5XJPPfGYUn8/K9HSQSMRJoyHjdIo8eVJia6vK7m6dZrOHLCtYLKrBwsSEn7m5EKJoZGYmSCrVZm+vQ/Ifn0f+uTAeRxXRpiCkupiD6lxbe+lBHNo3a6gYsRTqmIb0+ORWepyO28JMYFnbJvcEnpnmwW3AuVQlODxg28iSwKLhMpamQnQozethLfagLvDk5And9nC5jTuod2gyWmUMyTb/rfFFesOD+bKzLRMZ02vPGGw9XGLtELunnHTj8umZPen1AO7woEBjNElkswFMjkEuW8/akYODApTJ0iXdiiCYAIeBasNB22xBNIDRIZEemqXzl6+gpBbg6vUup09HNK27iQkvPp8Vu93E5maZ3d265tzVbPYwGERdLp3N1jl+PEQgIDI7G8brtbK8XNC19KvM7gbXr4/ocmmTSeTSpTixmIto1IkgqDmzwSDy4kWO7e0qtZqaG1UqbbxeVXfGaOwzu8wsLAQwGEQKhZamJZlIePjooz0NUKrVBoygcNjMsWNhRkfduN0WSqUW6XSfWV+hXG5jMhk0QBLU9cLJkyGiUQeJhAuv18TWVoVo1MRHHxX22cotSqUuV67o10RGo8iZM+p6YWhI1ZLc22vQbPY0N7R+3p7J1Bkb8+znZArb22V+8idnNcfdTxJ9NsvLly+PZK1YrVbN1VIQBHq9nq7d/Cjm88Gw2Ww60d/+Nbe2tkgkEkc6OL0eHo+Hzc1NLBbLkfnV7u4u4XCYtbW1NxpA9M0cPuXxtvXp0xZnzpzhN3/zN7l48eKROg+SJFGpVDRQpq8w3uv1NIXxRCLByMgIRqOR6Wk7f/7nW9oi0GQScbstzM0FGBoaWFQvLxfx+SwsLqa1RWCh0NKBOmNjbhIJL9PTfiwWI/X6wKJaEASWlwu6/ulKpYPTacbhMGk23M2mxPCwi1evVDckFXlvMzfn1qywQQV1Ll6M4/FYtDYkQQCTSXXBed2G22w2aBNR32r85MmQJsJWLLY0q/E7d1SrcUXhkNX4yIhLExpzOs00Gl0NQGq3Bfb2ajSbgwkvna4zOupGFEXN1arXk5ma8vH8+cBqfHu7yunTeqvxvvCfz2feF2020uvJ5PNN9vaabG7WKZW6+/24LU6dCpPJNJiZ8bOwEMJoNGE0mnj4sEwmoyZugiCwsODHYOixu2slk+kQDFqYnY1w964KPF29GuZrX6sRidQ4c9nBvQdGTGaFiTmFlX1Q5NI5idsPDRTzApcvyVS7An5BYT01mHwKRQFzCMb9CsI2vHipJh4Rn0Kqpp+kDCKUX3ODivqMZAp6ls1MRCaVHRzrccDezuC4WkPAjUL7gDbO1JjE4nsKlY0eF07IREKwsTI479yczPZ258D/DdrvsLfXIBaTePx4Gb+/wfy8kUBAJByGYNCM222k1TJgtTaw28243WY8HjMnTvhxuSCRcJJIOLBaBRYWfPR6XZrNDsVik5WVIna7zOPHRYrFDpKkUCh0uHJlSGsrFEXw+WxcuqS2BbpcqmNHMlnD77dx796u5sCmKGA2G+j1VJ2CYNC2T9s1Mj7uoVJpk043uHcvxc/93AlE8TsDIBwOh+Yi8PpE3Z/oCwU1iX5dnM7lcr2xxQlUULpcLtNsNjV679raGuPj4wiC8EYw52B4vd43tllls1ksFgvj4+NvpAH/oCcJb+O7Gl/6bt/A2zg6+sLCP/uzP3tk60Cn09GBMuvr69o46Ha7GRoaIpFIMDw8TL1eZng4yNe+NqjsqyB8QGsllyTV2ri/aF1fL2sLzr5Yay7X3NfYC+J2Wzh2LLSfJ6i5ycZGmeFhF2tr+pYdn89KLOZkZiZIPO5GFA0sL5cxGo08fpwllapTr/fI5TpcuBAilWowOupmbi5IOOwkHneTTnfZ2+uws9Nga6tOsdjB7TZTPT4LP34RnouY3V2MnS72RBtBAKkq0gkaEMzquN0Q7ERNOUzeAyySNTu5hTBdn4m5+jLivriuuTzCclgF+N+JySAOvjtzc4TF4CTzUSMO8bCT00TIRsZ7jJSoLy6c9Jl159F+S/s/4nnYrds25pcwW/QsHtGoIOzJWJxd3fb8Sy+BYf13vvtyGJu/QaXgolZ0IXWM5HZDOCID5o0iGWg6B3OWIMDeVhBh36JccAjsbA7hcDUQDdDNGJC+eJHLS2nicTc2m4WXL0tMTXm5d29g+64yPPTASq8nc/XqENGog9FRD263mVJJzc2XlkpsblY0ILDblTGbRY2Z4nabcTrVQmwo5MBgUMWFV1ZKxGIO7t3b1RgvxWJLAzz6Bh/j4ypbxmw2UC63NXHhTkcmk6npwKNcrkE06tCEsCcnfTQaXSYm+uYZai69tVU51GrVbPY4cyaC12tlYsJNIGCm15NotTpsbFTY2qqxt9faF1BWWUF9MMlkErHZjJw9q7rg9ou4q6slxsbc3L49YPbXal3OnBloBI2NuZma8hONqu65lUqbly+LdDoyn/tc4tD79nHioAtnu92mUqloYMrB8Pl8vHqlsrzsdvuhNql+seuoYhuoLVAHtWba7TaFQkFjUfcdnGq12pHCwd+uzWpzc5ORkRHcbveRAsigFu0+5YxmeAvUfPpCFEVOnDjBr/3ar/FjP/Zj3Lp1i1wuR6lU0kCZTqeDzWYjEoloCuNH2b65XC6KxSSxWBhJErDZjJTLbVKpGpGIQwMs+r3JDoeZarWNLKNZVJvNKtWwX6lJJqssLxc1N6d+9EGdgzbcbreZ4WE3L17kdTbcDoeJUqmlo2J2OhLT0z6mplQRXRWQyeH321hcHNhwZ7MNrl0b0npFRRGiUSfnzkU1q/FKRVWmt9mMPHyoWo33n7HR6GK1qr29sZiT+fkAZrNB09TpP+PqaomJCS+rq4NJuNHocfy4l0ZD1b/p98I6nWZWVopae1gqVduvYgi6iSifb3DyZIB4XBUMFEVYXi4Tj9t48CBPLtem1ZJpNiVdP+z4uIeFhRAWiwEws7ZWZWurRjbbZG+vzrVrMapV9RhZNvHyZZ1crovXK3HmTJxMxsr6ehebTeT06RB37vQwGGB62s0HN1tcvmImOibw4Jk60B6fk3i+KiLt689YJQiEFZY29ANxryfwQyckHt0RKR7QsGm2BNpGOMj4KzcEvB6F1gFBYkURqNf1A/dkRGHrABjU7kK7oP/M9JDMXnrwmelJme0NBRSB1JrCcKSJxZplfs5EqWQkGIKdnQEIGAgYSKcHiZgoGiiVVHr47m6VjY0K9XqetbUs+XyJUqnM/LyN5eUstVqdcrlGMlmh223y8mVes+IulZrkcg2tjQrAYjEjyyqwYjQKTEz48HotTE35sNlMmhD26moJp9PM8+c5jZ2VTte5elV91z0eC/PzASIRJzMzfu243d0am5tlHA4TOzuqQPHubh2jUeTGjQHL5R8S/UTBZDLRaDTeqPDf14pxOBxH6sl8O1bMQa0Zo9HIzs4Oo6Oj2v6jwJzX77OfKLxuOdm3hXS5XFitVlZXVw8lCj8AtpDwFqj5Xo0vfbdv4G0cHR6Ph1wux/379xkfH+erX/0qJpNJYyvn83mt4t0HZeLxOH6/H4fDgclk0rm4CEKGTseO3a4ullQwpsTIiIu7d3c1zYxWq8fZsxHdeD815cflMtHtSmQyDS2P2turY7EYdHobqVSNGzdGGBryMDrqxWo1s75eZWrKz82bKXZ2apTLHXo91UWyWGwRCNiYnw8xMeGjUKgTiXhYWamSTNbZ2qqxsVHhypUoW1t14nEH8/NBYjE3UmKU/I9cBYcFOWSkUXdjKzSwTakFo/odJ8LMYKwVPrLg7TSxxQ60artHWREtIAh81lChKaq5VtF8kpSozhceRcAtrmjHLIs3SIlmGoiMCgMWTj8UZYxFw+FFqVcxYBU3dNs6lUnut6dpW/XaNRaTGZugZ98ATNidtAW9o1PMFgB7jmrWy6Nnp7i5d4UPK6d5Nn+a567jLHkWeOo4weOXJ9hoTpB5EUWqKITiOQpdHwfxpPxWCCU6yGvqOzYKuQDuYBVDRyaTHSLlsLD1nxcpFFpIkkK12sXvt1CrdfZtlVUG7sJCgFDIjsVioFhssbJSIhpVi5TZrGpRfdD9FMDrtTAy4ubYsRB+v00DZdR8Qi2Qvu66ZLOZaDZ7JBIeZmdVN8vJSS+ZTEMr4q6ulpie9uvcySqVNhcvxmk0uloR1+u14nZbePmyoBU40+m6prN0MJculVqcORPeBzstCAIsLRUIBIw8fJgnk2nSaEhUq6ozVP8ZRRGGh10sLASJRh04HGZNj7DZHLRs9dcme3sDR62D64X5+YDmRpVMVllbKzEzE9DWC/fupXj33VFGRvQg4MeNPrPZ5XKxurqKx+M5JNzb1+JbWlpieHj4EKvlIPP5qGJb//i+1kylUjnEzOkbM7xJOPhNBhOgFt4mJiYO2XEfjLdAzVug5vsq2u02jx494i//8i/5q7/6K9577z2+/OUvk0wmWVhYYH5+Xmf75na7sVgs35K23xcWtlrL/NEfbbC+XtaYNclkdZ+hUdcsqn0+26EBaHOzTCzmYn1dXzVwOs2IIszO+jUb7r29BpIks7JS0gCLzc0yJ0+GdJZ+tVqHz30uobVaWa1G0ukGgYCRxcXsvg23CiB5PKpgEMrwugAAIABJREFUnqKg9V/7fFZNVK2/YF1ZKeJymXn+PK8tdA9ORKGQjYWFEPG4k0TCowFP6j1WMJkMpNM1HXhUq3UIBm2MjXk0Vk8228JmE3j5cvCMyWRVW1APfs8ely5FCQTMhMMWzGaBYrGLxSLy4kWJTKZNraZOPK2WjMOhtpNZLAbm5gI4HGbm51XbQ1VNX60kzM/72dlRv0ur1ciZM2EkSSYY9PLBBwUqFTVxm572YDAo7O21sVrdeDxmfD4fT5/2MJngzBk/9++DIsPYEAgWI9tpA4lRmb2iSL2xr/FiVoi7FOx+SB5oZzKIClcnZBpZgc2CfqBttQUmxxSKr4Ew86MymYrAkEdhwi8TtsCEW8YjlxkPGBjygsOk0GqprlCKItDuCsQcMrUD7VAzowpba4NrDscVdjYG4IjLJbC0lGN7u4woFBgaVohGFEolgW4XKhUBUSxpfwulkszEBBSLahKitj/52do6aHsq0Om0tbazXk9hasqpe68bDWk/KSjrmGCzswEEQaBS6ZDNqg5sPp+Vx4+zGgNNUcBuN9FuD96BmRk/kqQQDNrY3KxoQKBqs+nX6SBls6oDm8lkYGTEytZWhZMno8Rih9ksHycOJgorKytHCvcKgkCz2SSbzWpCdgejz4p59erVkayYvvL/s2fP8Hg81Gq1Q8ycfqLwJuFgk8l0pOVkn50jiiIOh4N8Pk+329U5JYii+AOdJLyN72p86bt9A29DH6VSidu3b/Nnf/ZnLC4u8id/8id85StfoVarce3aNcbGxhgfHycejxMIBHA6nTpQ5qgwGo30ej1CIRO/+7tPdHobfcaxIMDsrDre93oK4+MelpcHhZ/NzQqnTkUOibWePx8jGnUyPu7H7bZRrfZoNGQ2Nyusrpa1IlwyWWN21k+12mFuLri/oDYxOxvk2bMSu7sNtrdr5PM9rFaBXk/NLebnQ8zMhGg0BKanAzx9WiOZbLFVEMj9j5+HKTuGShclaoQ9ibZswTeZR5ABvwnJpn4vogIGa4ihoBmjVWW1WBQDD4QhOvvf3bzSRRKTeOQAf2cYFBiqgpFJlkAAtzzCXxtUHZeWIHJG2aUrDL5PQRG4zefwkacnHBBhBDqdLhHjwIrbJHn4A8s/IWG2UBP17JkmMmFKKIK+TSssu2iJeh0hp3max8p1/pvjGtvDo9RiHk4lnOREPfjT3RaRz5qojrlIRkZ5WZ5h75Yfp62Fxa0+Q3XXSTc2WAy3t20UJoO0XlrxTxUp5KPIIS+OaodpscfkpI943E0k4sJsNlCvSxQKHZLJOooisLJSIJttaDltuy1ht6vAyvCwi9lZ1UpbFQluUSiottTLy0ViMQcvXgzav/L5Jtevj7C9XdFAmWjUwfCwW7deUNk0giZdMHjX2wwNORkdVZ2U+nqR0aiDR4/2tCJuMlnTtXKrv53E9evDBIMWvF5hn/HSAiReviyRSjWp1VSmVrfLPhNe/f/oqHtfmiGE1fq6NIOHhw8H0gzVakcrkAaDNubmgvvrDRvNZpdMpq4BSKVSG1EUda1WyWSVkyfDBIM2olEjjx7l+PEfn8Zs/mTFIFEUtTb0Fy9eEI/HD+UrZrOZnZ0dJEk6slh2VIvTwbBYLEiSRCaTQVEUrFarLkc6COYcdX0YtFn1ej3t2F6vRzqd1lri32QAYTAYPu2t5/BWTPjTE7/xG7/Bzs4O586d4/z588Tjcb7whS/wd3/3d0e2DvxD4sWLF9y9W+Ff/Iv39gdXFzabqha+slLULTbtdhNut/mQGO6FC1HabRm320ynI5NKVRkf9x4S67p4Mc69ewMRVKNR4OLFIQRBbd3I5Zqsr5cwmw24XIevMzen0hxBZfXE4y5CIXWhur5e1oR33yS6u7VVxu22Mjbm1sSFq9U2S0t6V4ETJ0I6Wz6Az3xmmHy+hddr1QSUYzHnITG0RMLF9nZVE2RWASsfDoealBWLbVKpJr2ewuzs4Hn6ce3asCbIPDbmJhZz4vPZWF8vsbpa1Bbv8biTSqWtUTQBgkE758+Pks93efasoE1ITqeJUCiI0WjE67Xz4YclbYL+zGeGKZViPH4s4XIJTEz4+egjdeeNGxbef19ENMDVL9hYTRnY3VMHY5NR4eSEzOJHBuZPS7yQ1AnHZVOYcsg8fGjA51WoeECS9YPttYsSt/bFgxNBmWGrgrsn8/43jFQrg8+enZV48GgwkcUjMqnnIjanQuK4TCABdqvMo1cG9vYBoSvHJD74m8ExE2Mya08PiuopSNIm3QMs5aGhArlch7m5AC6XB6OxyuJilWpV3v8eTLz//vqBz5tJJvU98GfP2nnwYJC8GI0CJ064kGUJp9OEIEC93kFRFB49GogwiqLA/HzgkFjklStDPHyY3reqtCJJCg6Hia9/fVOX5Bz1rkajDtxuCz6fVXPx2NmpEgrZNaHJuTk/t279PFbrJ2vvUW3gJer1OsvLy0cK9z579gxQAZOZmZkjz9Nn3RxkyxyMtbU1yuUyLpeLqampQ/u/nXAwwOPHjzXxY0VRuH37NteuXdP293o97t27x6lTp3A4HNo9/wAANZ/6LOj7NN7mYN9j8RM/8RNMTExw/vx5zp8/z8rKCn/wB3/AH/7hH35H55VlmXv37vHlL5f4L//lGRMTPgIBG7KsYLMZ+eY3t3RirZOTXjY2yrpt8biT0VE3JpNIo9FjY6NMPt/kwoUh7t/XuxFduzbErVvJ/fzJjdFooNORWVoqUK0OJkVRFDh+PMDjxzkSCQ+xmJt6vYnL5eLOnZzOcCIQsHL6dJhGx8K9s9eQpswgAzMiiAKhXIds0MxPXdrA6Oxw64BF8fGOla/kQjjo8eOxv6IrSIxJw/yFYVC5vyKVGDX8DUbpAl8x6KvuPy9/nbpYICv9CF83DBabP9N+QNUyyM1srUl+33qDn6jfp+LQ55WCAu9yE1nogiLwkfyzfNUQ4YbUpmbQCwcDnJezVER9zjgvBSkbnqjXkmPcVT5PiiE2Dfr8bly2siXWXzvWxQNDT7et+KGH9mkL8Q93mR1+SatoJX0ipu1vblp56VOFWj1rFbo1I3lXDGOmTu9/+b8gN7jujRsx3n9/S3f+69eHWF3NE406cTjMyLIqxnvv3o6OiTUz42d1taD7vYNBtS3L47EQCjkwGoX9gqnC06f6PObSpRh37+7qtn3mM6OUSk3cbgvdrkwqVSMUsvPggT6nGh52USg0tTxWzaUDBINWms0O+XyTnZ063a7CwoKH58/1jKaDgsGxmFr4DQRs7O6q7YD9lqXRURVQOgis2O0mAgEr5XKb8XEvLpeFTqeH1Wrkvfe233idwXPHKZfb2t/y3p7KxEmlqlrr2C/+4il+93d/hE8afXOHdDpNu90+Urj35s2bWCwWJiYmjtTrk2WZu3fvcvz48SP1ahRF4cMPP0QURSYnJ49kT3874eC+wURf/LhYLJJKpXQOxkflcT8AQsLwLXKwt0DNpyB+//d/n/X1df71v/7OiqLdbpcPP/yQf/fv9vjzP9cr1x81AF2+HKNW6+H1Wuj1ZHZ36wiCOgAdbOuw2414PFZ2d1UxNYNBYHzcu+/41CWfV0GZdlvixo3hQ05KFy7EuH9fHeDjcSdDQ04UpUWvZ2Z9fTDI2u0mPB6Ldp1+nD4dYX29RCLhweWy0G73cLstfO1rG7rPXbwY4949/UQyNeXDZBLw++3IsrJfFahjtx92bDp9OqxbeI+MOBkaMtJqqVWxVEoVhT19OsijR/pJLJHwkExW6XZlIhE7IyPu/UlT5vHjrM7V6vz5GB9++PqEN0ytplZCMhlV98TjsWK1OkinVYBNFAXOng1jNpt58UKhWFQn4WjURiBg5dkzCZfLyIkTM2QyLlZX1T//69ct3LypDpjBIESHLKQxkysIGAwKZ6dl7j88oPXyozLVFljKsLZ+IBG7LvN0U7/gvXJKwgCkXwisPFf3nT0u8eCpvrpw45zE+zf123yKQvFAu9ON6z3ef19hYl4hPi1gdsDtrxpp7evUiKKCXW5SO2D/vbCQ4/nzwfty9WqP27cHCe21a3Zu3VonGnUQCFhxOAQ6nRKyDIJgwGAw4nZLtNsSBoOAIIDBoFCpFPd1kVSXsLk5P0+e6JOP48dDPH2qB1ZUV4Mm8bgLv1+d2MvlNuVyW+csIAgqMPP4sf74z39+jGq1g9lsoFrtsL5eYmEhqHOGApie9rGxUdbAvn/1ry7wW7/1WT5p9BOFZDKJoihMT0/r9t+/f5+TJ0/y0UcfMT09fWTVpu+AcvLkySNBZ0VReO+99xgeHmZycvLI++gLpL8JDOp2u9y7d4+zZ88iyzKvXr3SuSCAKjD84sULLVH4QU8S3sZ3Nd7mYN8H8cUvfpFf+qVf4p133vmOzlMoFHj+fI1/9s8+1LWMw2Eg3mIx8M47o9Tr3f38S63inzsXZXFRP9eEw3ZaLZBlhclJ1Uq50ehiNpv44AM9gHP1aozbt3cxm1UrYq/XRq8HhYLEq1d6c4l3343RaAgYjRYymS6rqw0sbgfC//R5ukNGetMmotYeaaeRKavMaktAQWDC0yJ+IcmGOHi9o4UQH7ZU55j/NfQ+u8YMFeU4q+KggGBTZP6p8v/wVeEyzdfG5F+UniILef5P4V2UA/v+Uf4JxsAGAIIs8I3uT7JucfNPu2tkTHrQAuAL8hINcRdZusH/brgEwJwsYROfHPrsValJzqA/x4QUpC0+pyG/y38UT9ARDMRlkaqoBw88ipGaoGfUjPSsvDLqn2tB8vENg8ouMHR6jN3fpHvaiMGhfneKBI+zx1Hs6vdkeNCj5g9BV8Zyv4T8q39EwKW6E7lcFnw+I41Gl3ZbplhskUrVmZ/3sriozynV90Cf83/2syNsbxcIhVS9xUKhhc9nPVSknJnxs7ZW1FjroBZUQyEbdrtZWy+kUlUmJ30sLelFmV93gUokPMzN+SgUVI2m7e0a7bbM5KSTtTU9wz0UstPtqk5XgYCVRMKLw2HCZBJ59GhPJ879JrepBw/STEyobVbdrowoCty9m9S5oIXDdtptSZebW60GTpwIYzSKiKLqeLW2VuLs2Sh37rzZ1QrgL/7in/BDP5Tgk4YkSUiSxNOnT5mcnMTv92v7ZFnmzp07nD17lsXFxTc6bVarVZ4+fcqlS5eOLE61Wi3ef/99rl27dqQwsKIoLC4uMj4+fiQYBFAsFnn16hUXLlxgZ0d9/teLc+vr63Q6HWZnZzUr8h+AeOv69GmOs2fP8hu/8RtcuXLljX8cHyf6fYBDQ6JOWBigWm1z7FiQyUnfvm20gWfP8sTjTu7d22VnR9WGKZXaul5PQVAH6OPHQ/tCWmaNVtjtyrx6lSeTaWjXymYbRCIOqtUOkYjqhmSzqSLDxWJTa0NKpVrEYiY2NgZgSbcrMzfnp1Jpa/o3sZiTXk8mk6lrImOpVI10uqZdpx+ZTJ3r10cYGnIxOurBZjOysVFmZsbPzZs77OxUKRRatNsSc3MBnUtCPO4gFLIQDluw20XabZl8vk0226XTkUgmWwc0RRqcOxdld7eGz2dlfl7tE56bC1CpHGy1KhMM2nQ9uwCSpBAK2ZmdDTA+7sFqNfLRR3uEQg7u389QKKg6K61Wj4kJNx6PKi7YbCosL1fZ3q4xPe2g3TZw8WKUjQ2FVEqdgY4fd7Ox0SAc9pJOC1y7ZuXWrQFI43ZbeLkkcmxWZq8mcnZGD9IAnJ6T2FkRSe3qB/qZSZmtfbZLyKNwNiKzfU/g6aKBQnYwRjVbAq02HBy3QgGF3ZT+fHOTMukD20JBhd1dhWJOYOslbC8pOM27zM/2mJgQkGUDQzGZzIF8ZHYWtrYG71AsZiKZHHzf9XqXVqtOrdYlm22STDYIBAw8fVrQtADcbhOLi1tsbZXY2iqxsVFictLHo0dZKpXOfhWlwaVLMR3YsrfX4MaNEdxuiyZM3Wr1mJ72s7iYZntbdWPIZhtMTvoOAYOBgNpuNznpIxi00enIrK4WEQSBx4+zmvDfzk6VCxdi2vtqtxsJheycOxfB77chST2+8Y0tbtwYYXT0sMbLx4mDLVAbGxv7rZQDu8bNzU0SiQR+v5+nT58Si8UOJQIHW5ze1Cudz+cpFAoMDQ0dmUh8K+FgUMc4p9PJ0tISVqtV0685GFarVRPMCwaDPwhCwvC29el7Nb703b6Bt/Ht4/Lly/zyL//yG4WFP27YbDZKpRyjo0H+5m82te2q6KqP0VE3o6NubDYThUKLZLJKuy3x4kVeWzDu7ta4dClOMqmymefngwSDDsbG3Cwvl7RWqd3dOpIkIYqqwYLHM3DlnJ8PsrnZZne3zdZWg52dBl6vSTOYSCQCyLKRx49bhMN2Gg0DwaAfR3CE1rvncC0YqY4ZuRSTebk/fo5bZVIddcyeMgp4Ay32zCpzYUIy8UF5UKGfN3aIGCXuGPRV+54gcExys3TEdzzWabHXCbFq1s9hcamH1aJO+g75FH9rSqj3QI+2eFhjZkaWMCDyu+KP0BXU+20iEBAyhz47ophoiHqQwaJ4uK38KP+3YRxp//gGMhY6KAemtLYg41AEegdapzpyj9ZrAsdhxcT6/jbFIFIc9WPLTeCt1Oi6OwgilJ956YXUz8hOkd6iEaJGJIcJo3ea8t8+IZfrkkq1KBYlqtUWL18WKRTadLsyrZaEx2PSGDShkB2n07LvKOnG73egKAIvX5YJBOx89JHq8prLNdnZqe7nNoN8WFEUbtwYJRp1Eos5MRgEdnaqDA+7uXMnpa0XZFnB7bZQr3e0NcDoqAuPx8zYmBObTXVoymZV0V6Xy8irVxXts8ViR5Mt6Os1DQ05GR9Xi8DZbHNfn6+y78hU17GQq9XOvnOqa1+420UmozLknzzpm5FU2dmpHnLBrde7XLs2TDjsYHzcg8tl1lylXrzIsbFRJpdr7msEdfD5BsLEgYCqWXnqVBi320yj0eYrX1nn537uBDbbJ8s3RFFElmV8Pp+WQ/VzpEajQbVaZXh4GJPJxObm5pFOm/0Wp729vSNNaoxGI9vb2zQajUPt5/Ct9QD7YbPZNCeqer1OMBg8lKsdzOMcDscPgkYgvNWo+XSHKIocO3aMX//1X+enf/qnv6Pqr8vlolBIEg6HUBRB04bpD179Qbbv+GQyGWi3e9rA2W8lmpnx43CYNcenlZUioZCdx4/36PVUUKBcbnP16hBbW5V9sbogiYTa4tMHc/q9nu12j3K5rUPoC4XOPmvFzcyMn6EhJ3t7DcbG1J7S/iCbydQP2erJssy5c6o2x9iYRxMXbjZ7rK+XWVsraeLCr9twRyI27HYDMzNOLBbVTjufb7O9XSeR8PL4cYFuV71PSVIYG3ORy7VwuUyauLDJJGI2G/ZBo7qmUh8M2jQNFFAFX69dG8LrtTIz4ycScVAutxkbUye8ra0K+bxqq62OZQKSpFbfpqcDpNNNhoc93Ly5R72uJkV2u5HxcTfxuJv33mvS7SrYbCJnz3pZXJSo1yUajSLvvBPhG9/Yd2iKgMNhZX2fIZNNKXzuHYX37+gnlQunJF58YKBlhm5P/x4aBZCtcCEus3FLYO25SKUiMD4hUzrQ5tRqCySGFEoHmC/dnkCjqj/f1Lis06DpdASajUHJQ5YFJie7fPSwzvZ6nUq+zPGFJvF4i1hMpN02YLWKpNOD96JUkpDlQYWm2YQTJ2zs7Q3a/iYm3DowJ5NpceyYh2x28JlyuYvNJmjUVlEEv9/G+LiL8XEvkYgDURTY2lJZLS9e5DUgcHu7ysJCUHe+VqvHZz4zSjzuIhJxIMsK6+tlEgnVlrVvldrrKcRiTgqF5v7fp8j0tB+/38rYmAejUa3yZDKqbbzLZWZ9XRUXfu+9LX7+50/ui1H/w6OfKHi9Xp4/f66BMZIkadbcfa2GnZ2dI3ulLRYLnU6HfD5/JOi8sbFBIpFge3v7yETj4yYK9Xqdvb09wuHwkewdn8/H6uoqDofjO24p/T6Jt0DN92Z86bt9A2/j24fX6yWdTvPw4UMuXbr0HZ3L4/GgKGk6HbsmnFqtdjVW8M2bSS036XZV58h0uo7Xa2F+PrTvKKmK329u1tjZqbG9rVoFnzkTYXdXBfxjMSejo35mZvwoikg63SKVarK1VWN3t87IiItuV+HkyTATEwFqNRGLxcLOTo+1tSaJRIBw2E4+78btDhCdGcF4eoj4nBFPQqCoiNQcUJcFjtslPqoPxmJHCww9kUpUvZdAzcNGZ1A178kmXLYeSVGfX5gUcDTc5CwNXg9Dy8h9RxD5tfzXbrLgF1Yxykb+SnyHqqCeM6AoGMTUofMkFJH3uMqqOBj3u4LAtFKiI+jbkiKKibY4YFG7pQR/pPw4K69ZLiuCwJACjdc0caKKmeqBc/ZEsEkmOgcOdyCSFKy647wtJzcbY1wQjPQsJWZdFlYFtVVXsID0kQkhI8OECXnbhCsRJ5JL4fdbcTotjI/7CAbNJBIeEgkPwaCDSMSJyWSg1VIol3vs7jax2cx89NEeu7s16vUusqzgdFpotzv0eso+O96D329jYsKrtffkck02N8uYTKKOEZ5KDUBEUIu44bCduTkfZjO0WhLZrJoDOZ1GlpbKWi4NYLWakSQZi8Wg02uKRBysr5e1XHp1tcT8fFBXTC0UWly9OoTJpDqvjo15MBhE/H4bjx9ntcJYsdjCaBQ1c4d+CILAyZMhRkdV/ctWq8fSklqsPii+rF5nsN5wu82Mj6suuD6f+jv2DR4ajS67uzUqlR61Wpft7Qpf/OLsoXfy44YgCBoL+GCOVCqVkCSJQCCAy+UinVYZd0flNh6P543Frk6nQ6FQwGAwaIW51+NbCQf3w+fzsbKyQqPRYHJy8lDRTRAEAoEAjx8/Znh4+Ae+WPYWqPmUxMjICF//+tfp9Xpv7A/8OCEIAm63G7u9yJe/vMXTp1nNojqVqnH2bFRrLRoedjE05OTEiRBWq4lms7tvq1fF77fx0Ud7uoFOFAW6XQmXy6IxXtptiWDQzvp6WaPurq2VOHZMP8hWKqpdscNh0pBvg0HAZJJZWippg2yppAoKvz7Imkwip06FGB52a4nP8nKRoSEnH3yQIpdTtWKq1Q6XLw8s/VTqpItw2IzdLtLtKuTzbTKZJs2mQqnUpVodTLSZTINEwkO73WN2Vk2CTCYjsZiBzc0GmcwAlFlYCOrAI0lStPubmwswMuLGYjGSStUol9uayn293mVnRxUky2TURGdiwsfoqIepqQDpdIvtbdWNoVLpsLNT4fjxECaTkVOnIuRyMsvLdTY3y9y4EcbvdyAIdl68UNH+eNyIz+fkyZM809N+nE4RRbGyva0OuDabwvy8QnILapKIvK87c/28xJ2/F2k2BM5fltnZGwy+oqgwP6wg5uDhBwZ6B0CcY3My26+xb+anZXYObGs0BeIhmeoBsWCvp01me1B9ajYF4nGJ6gFAZ2ZGYWtr4ORkt8ssLm6TTGZpNNIoSp7p6SqjoyLBoBFZNjA+btBZwE9OOtnZGfR57+21CQZFDfhSvzMXhUKFWMzO+LiLoSHHvh6Rgsmk0Gr1SKWqjI2piXYqpf427bbEzIxfS54BXC4zExNeRkfdRKOq3fzeXoN0WgVjlpbyWmVme7vKmTMR0um6ZnUZDNo5eTKCwSDsi2HX2dgoEwrZePYsp4FQigI2m4lOR8Lvt+D1Gshm27z77hifNPqJgsFgIJ1OEwqFaDQaOgFgl8tFKpXCYDBoOjAHw+v1srKycoiVoygKOzs7LCwssLu7q4mgvx4mkwmj0cjW1taRYA6oicLS0hLRaPTIe+gDPrlc7sjK0qcw3gI135vxpe/2DbyNjxeXLl3iV37lV/jCF75w5ALm44bRaESSJGIxE//23z4mna5ruUw2q1oT1+tdpqf9zM0FMBhEZmaCLC2pgr9bW1WSyRoLC0Fd+9TEhJdo1MXIiI9u18DubodkssHKSoWFBR9bWzVMJpFjx0JMTAQRBDOybGVpqcHWVhNZFhke9hEMehgZiZDJWPH5wjidfoYWEmSMDhZTRtwOuHvPyA8f6/FoH2gJmiC77+R4ziHxNGtgt2BifL6MWxG5W/ChHGDQemQzHWeDunig1wQYzkAua0EO6tvCANz1KbK22qHtZQzMsEKjPMVt27i2XUYgIBy24pZ7c3zF5D+0/bjSpCY0ddvciglFVJk2dukkv82PkhVNRGjSeU1kOCGLFES9bfewbCEndnTbPA2oHhCW7aFQFPRtJgnJzGrDylLTjbkZZNrZ4Jk8WFRHaxJlyQY7PXCIdKpuFJOTvXvrFAo9NjaaDA15uHcvxeZmje3tGhsbNRYWAjoH01yuxbVrQ5TLTRIJD1NTXvx+KzMzAZrNJs2mRC7XYnNTLbYuLqY1Vo4sK/j9tn3Wuip+PTPjx2iEYFDNwXO5lmbU4fVaSKcH3282qwIruVxTy6VdLguTkz5evSpqufTOThWfz0oupwfvOh2J0VEXsZiV8XEPXq+NV68KeL1WHj3KsL1dIZdrkkrVDpl8mM0Grl4dJhZzEgrZ6XQkzYn20aM06XRdc5dqtXqa+LLNZmR21o/dbmRuLkCvp8olpNN1VlaKjI97ef58IHtQrXY4d05lWo+M2Gm1OgQCDubmPllnRN+J02KxkM1mNUenbDaLxWLRRHy/ldPmtyp2lctlut0us7Oz39Kp0+l0sre3hyzLR46FffHhg2YOr0cf8JEk6Qe+WPYWqPkUxdWrV/mlX/olfuZnfubI/sOPGxaLhUajxsSEj7/+a5V+27ec83otBAI2Go3uvoJ7TVNwz2YHg+zubo3z56PUah1mZ1VQxuEwMT3t5/nznIZ8J5M1YjHnobYOg0FgeNjJ9LSfkRGV6vvyZQGr1cDjx9l95LtNPt/h5EkfmcxgYe31Wrh0KU4k4sDrtdJodEmn67hcFj78MK21XYHaLtVOswj+AAAgAElEQVS39PN6LUxOehCEHvG4lVZLplBos7fXZGurztRUkNXVAZOi0ehx4UKcvb06MzN+ZmcDxGJOnE7zvn1fQ2P1NJsKRqOg0+5JJqtcvBhjZMRNIuHB6TSztqZaFN6+nWR7W2VYNBpdTp0Ka0mX0Sho14pEXDQaMqlUg62tGisrRU6cCGsLf7fbxJkz6qI9nxdYWqrSbqv3kEi4MJtFbDYnT/dFds+dc5JMQjot0+spTE526XaDbGyI+9+twugoPHkiUioKXL6qsJsVuHxC5tY3DPTblfwehUxDPWY2IRPoKjy8aWBuXmb7tRamWEQhmdVvG4krOqAGYGFKJnnQkruj0CrpGRMLCzLJA63AHk+Xvb3Bu1Eug8EwEHiu12ViMZnFxRSZTI5qNcvkJEhSieFhGB0VMBolEgkDIyNmRkctxOMmJifteDwygYCIy6Wwt1dhasrN8nKeTKbOzo4KODqdKmOlzzjb2aly/HhQY+i43WbcbgvnzkV1VpebmxVGR9188EFScwDpdmUSCY927Oioi7m5IC6XhWDQTrHY1qwuNzZKeDwWHSsnlapx5coQjUZ3Hyj1YTYbmJz08uxZnmy2ze3bSc6ejTI9fThR/TjRr57Y7XZ2d3cxmUx0Ov8ve28WG0me33d+IvK+74OZTB7Jq0hWse6zq0eaHRvCyh4L0GLslW2tYQM2DAGG/WoIEgZ6syB4Z70QDL1oBcvwwl7oYaSGhNFIM9Oaqq7qrrtYxWIV7zyYSTLv+4qIfQgyklFkz4y6x56Wu35APVRkZkRkZDB+v//v9z16yLKsIWSOpiXLy8tEo9ETqJe3C4WjJH4Elx0ZGdEoVJFI5NRC4cdNjY5QPZVK5VNdCkwmE6FQ6MsgJAzvGjVf1Pjmz/oE3sVPFkajkdHRUb71rW/xS7/0S59rX263m2Ixjdvt5+OPc8RiTubng4c6H3ZyuSZ7e01tQFWrdbFYTBqC02wWcblMXLo0gsdjp9VSyOfbbG3VCYdtvH49HBBNT/vweOzMzITY3ZXJZvukUm1yuQ7j4w4WFiJ4PH6yWSP7+xCJ+Gi17AQCQRyuMB2riaxiYUcxcnFR5uO0gTNxiY9XDbw3KxNxKjo0jburUOyKKIrA5WgPCxbWu3rEyGimg0eoUT3mWiwo0MxOst9z447okTAe2ch338yzGCrQFPWoFVkQuC63+G+W63SOIXTqgoF5JctAGNZkPsnND4o/R8+pFwgGOCMPqIl6jR4REauwj2Fwk98Wv6KheabpU30LPTOhiBy85fIUVyzsv7UtJlk5OFa+9wQFi+LQafLEZZG1hjpgKEpmqi03ZyWZjFn9LjNhgUzKisEs4rZIdNtGJLuHyWiAxWCPWMwJiCwthfD5TCQSbsbHPYiigcXFIOGwnVDIgcNhYXu7wcSEm5cvDw7r/Trr6xWmprw6ulMupzY86vUeMzOqy6vFIjI56SCXa1EodMhm1aZQJGInnR7W/IoCHo8NRZGZmvIxO6tSwSuVDqIosLExHMZubVU4d244pAS1gfm1r40TCtmZnPTi81kpFtVm1JMnB2SzTQ4OWvR60gmqldttxuezceZMgGBQbYgdsQACARuPH+9p4sKqQ2yCVKqG0SgwPe1nfNzDxIQXQUBDK6dSNfp9WUPZHEWx2GZkxInLZWZ+PsjkpId6vUcy6eXlyxL5fJvvf3+HX/mVRVyuz6bLclSDHSGbI5EI+/v7+P1+DSHz45w2P23YdXBwgNlsxu/343A4PtXSG4bNoFAodOp6tN/vUy6XaTQap6KrQa3d3G73l0EjEN41ar4c4XA4GAwGfOc73/nconYej4dOJ4vR6CWVqmk0pK2t6mFHe5jIVAtiH7VaV2vKxGJOut3BoRp7Xcf1TCTcVCrD5LS/3+Tnf35coyE5HCay2TrT037u3lUbFsVim35fZmzMo3tAq642qi2k32+n0xmwv99ia6uK0Sjy6lWRXk86PE6LmzfjZDJ1nE4TU1MegkEzsZhFa8ocHLTZ3W3jdtvJZPTTmVarj8NhIh53aYiXYrFNKORgZaWgJZJMps7Nm3rrwE5H4sIFH+Gwg+lpP16vlWazj8Eg8vJlgZ2dGgcHLQYDmUqlg89n0SYTR849S0thLBYD1WqXfL7J5qYKhX79Wu8m4HIZWVwMEww62N1ts7PTIJttMjPj4uBAYmJCXeC/etUmm+2QzVa4cSNMIuHik0/69A8nX7duuXj8eEAwOKBcdjIyAg4HrK0NH5pWo8xYTOCTj/SL7b2cwOSiwtlRmWffFynsHercBBTyb9l0t9sCan053K9BhOpbVKfJhEIqNfxsp2sg5OnSagyLr0i4SS53HGUj0u8Pf0dJEjh71qBr7E1N2Uinhw24RkOmXK6zv98kl2uQydRIJCzcvZsina6STlfJ5VpUKmrRUi6rlDm320KpNGxWKgpEo04ODtT7NRy2MTsbIBx2EIk4EASBQqHF3p5qW1mv93QoskymzuJiiP19dYo6Px/E4TCzuBjUWV1ub1cZG3OztTX8DkfTLEVRmJ1V/yajUSeFQgtZVlhfL2tWlzs7Vc6fHxY+P/jBDr/6q+ew2z9bs/fILtLj8bCysoLZbMbhcOgmKwaDAavVyvr6OtFo9NRC4W2KVLlcRlEUAoGAVmisra2dWmjAj54a9ft9Dg4OiMfj5HI5QqHQqd/FaDR+6YuEd/EzjW/+rE/gXfzkMTs7y3/6T/+JaDT6qe51P0kIgoDdbicQaLG83GZtrazZGm9vV7l8OarTO7PZTNy4ESMadeJyqfo1uVyLarVDsdjT1VuCIHL79iiBgItORySb7bKz06Ja7eF2WwkEbJw7F8Vud/PqVZ9KRWJszM3oaIhy2YXb7UOSQ1hdXiSPmfTAQtUpMRIWWC6JiCK4vVBsiVTSAq4Z2DtE0F51SDw/GNYK1rbMY4dV03IBCEkD0htOJrwGKoFhPjzTtXNvJ0x9YGIplqN9rBESLY/yrOznir9CyTTM7UfhkCZ4ZjypWXZZqdI8RMkIisDrg7/Ns44fjzd/4r1JRab5lsNTGxmvdJZviVd12+cUiYO30TOKgQNRf25hxXyyeSPa2X2r2TQi29kXh3nILQjsVIf5tK4I5JYtnBeg5RlQMih0tyxIiMiiyO2YxHbTRMfgYLBnZ/tpiu3tLuvrPaamPHz0UZ50uk0q1WJ3t4sgyKyslCiVunQ6EpIkYLcLmuuSyWTA77cTiZgZG3MxORk4NPJoIggyW1s10mkV2ZXJNEkmvYdW2Wrs7bW5fTuOx2PV9PlaLRUl9vDhUJ+vUGifqs8XCtkYH3czNaU6o/V6EpublRP6fEfD0KOGks1mJBy2c/lylEDAhsEgcnCgDpzdbguPH+/pdCtBZQL0ehLJpJczZwIIgipuvLvbOGQQ1NjYKDM769ehcqrVLjduxOh0BszPB5ia8uF2m3E6zbx5U9LWRfv7LTod1UWq3R7Qbg94/brEP/gHC3yeEAQBm83G5uYmnU6HRCKhq4PsdjvVapV2u43Hc1Kb0OVykcup2k5Hw65sNqs1fOx2O/V6nWazeaoDlCiKuFwuzTL87TqqVCphNBppt9ufiq4WBOHLQnuCd42avxkhSRKXL1/mgw8+4B/+w3/4mfZx+fJlfuM3foP333//hEjmXycMBgMGg4FgUOG//JdNTVcGVNHd8XEPIyNO5ub8xOMuikUVGvnkiQopVLVhWly/Hn9LG0ZhaSnEyIjz0IXJTKPR0yg6GxsVTYBrd7fB5KSHcll9wAeDNvx+GxcvRg4t8qRDWGEXr1fk2bOiNlGSZeVwkdzCbjeSTLqZmHDQ7Xax20UODrocHHTI5dRmRSLhoVAYLrLVznkco9FwjM8qMDbm5unTfdLputZA8ngsh5aEw+t3xIOdnFR5u92uxMZGHYdD4NkzFXXR60mUSh3eey+h47Mmk15mZwOam9benppIWq0+e3sN2u1hEk+na1y8GGVkxMH0tA+zWWRtrUIoZOfRo6I2NRAEgVjMzoULYR4+bJHJdLTzvXYtSDZbo9dzUirJWK0C8/MGHj1S9W4ODrr87b9tIZWykMsNH7YTExKDfg+fz0gmo2/ULC4oJLwyH37XiHJMQa9cErC49Po17Y7A9LRCvQGzEwpzYzIeM4z6eli6fQzNPkKtj6knUd6tY5VbuIxtfLYWifgebleN0dEWo6N97A4DZpNAtyvQ7wv0eiJzc32KxSFNaWbGRCo1TKi9nkCzOfx/pyNz6ZKb3d1hcWAyGSiXG8c+I3PlSoRUatgcKRY73Lo1QrXaYWrKw8yMF7vdwMJCkEKhSbF4vMHm1Tk+HQlU53INgkEbZ84EmZryYjYbNNrhkV5TNlsnELDp3AZUQb8YHo+ZubkAsZiLWq3LzIyfBw9y2ufK5Y6maXA8YjEnyaSXeNxBr9fjxYvi5+JKg5qoLRYLOzs7JBIJHY0J1MZysVik3+9rkNzj4XK5yGazWhLf29vDbrdrDR+73U6lUqHT6ZxaaBx97rSpzxGEd2pqinQ6jclkOrVQMBgM7xo17+JnGd/8WZ/Alyl+GjXY9evX+bVf+zX+8T/+x58LjWez2ahWyySTQb797U1tu4pItB/q8nkQRSP5fJv19QrBoKq3cZT3W60B165FiEY9jI/7URQT2awqEGy3m0mnmwiCwMJCgLExP0ajhXLZxMpKm3ZbzXFGo5NHjzrMzroZHQ0ykNw0+w4cEyKrRRFLAjoDga5dod418N68zNO8Wg9cjcuIMmTtIiIKQrVHTRouvMabEoME1I81ai41DWwXjLQ6JsyTQ6Hewc4IuZYFgGvBCiWTWq+5ZCMfrs/Tk0XOOFtUbHrUS1AyUy+Psuc42cA5L7dpiOqgK9CZ57+UztFVROY9+7QFPe0qpMDgLfFhZ+0if246Q03U05ymFPkEUiaoGCi/1ahxKUYqb1GfAoqZ3FuUr7hiI3XsXuoLMsXKcHGsIDAryzzJmglWjPjCfbxtI8WGQaV4WRRikkLKYCIethF1xvEbe8TjDoxGC4uLAaJRC4mEi2jUQTjsYnRUdR8dG3MTCNiIxbw4HEYEwUCzKbO31yEQsPL8eZl0us7+fpt6fcD4uL6WBoHxcQ+JhItkcqjPl8nUNZ2XI22YTKbO/HxAh86XJJn3308Qi6k0pMFAZnu7yuSkhzt3Mhol/Efp801MeJCkPpVKj7291qEwsZn19bJ2nL29Ju+9pw5YR0ddzM8HNYROPt/U0MqpVA2z2UCp1Na5QNXr6vWcmFD1aMJhVdIhGnVqmpn5vDr8O0LlHMVgIHPzpkq1CgZN7OxUcbksXLhwOnX7x8URBcpsNlOr1ahWq0xNTZ2oZfx+P69evcLv95/qrHSEXD4adm1vbzM2NqahoP1+P6urq3i9XiwWy4nPH+kB1mq1E06fuVwOt9vN2NgYy8vLp6Kjj2j0X5J416j5mxDf+ta36Pf7dLvdz1wkiKLIwsICv/mbv8k3vvGNz7XIcDqdlEq7BAIBisWupg1jNIp4vVaeP9/XOKLlcgdZPqkNYzSq8MpEwo3HY6HZHBxqw7i4dy+rQQObzT7Xrg21YVQerEp78vmsSJLK9czlGpRKHYrFttbAAbWZkEy6abX6JJNuJiedwICxMRuZTFtryuztdZifD+s634oCPp8Vt9usOSm53RbSaVXE+PXrksZnTaVqLC2F2NsbUkoEQeD994d81sFAJputE4s5uXcvSz7fpNNRGwUOh5lOZ4AkofFZnU4T09N+JEnW8VnjcRdra8NEUq/3uH49RqPRY3ExSDKp2g42Gj22t2tsblY1x6fd3Tq3bo1iMhlZXAzR7wusrdVZWysfOk51OXfOSzBo4+nTGrVaH7O5w+xsEKPRyuvXw/vmvfes3L9fIRr1UyyqxcLly30ymT4HB2A0yFTrJkDAalW4cU3m8UMRFIFyVX//SQOB85dkdg8RNrGozPk5iRGXROq5gfy6SPqNSGpdJBaWWH6q0GoI9HsC5TKYzV3abZFOW6BRE0gkzDx71iaf77O72yadaqIoGWq1XYLBMslki2RSIhodEIuJeL2qpk6xqKc/nT1rYX9/WBxEozZyueE9Ui73uXzZTy7XwGQSiESsmM0iU1MOJiacjI7a8XpNlMttWq0OmUyNdLp2ODFpYrEYNYQUqLS32dkAiqJoek2SpDA352dlpajpNaXTdc6dC+vQWYOBTCLhwuMZahmpgt8tarUer1+XNL2mbPZk4SOKArdvjxKNDqmBOzu1Q0eGHJVKn5WVAtPTPs6ePR1p8uPiOFc6lUrhdDpPbab4/X5WVlYIBAIn4LFvU6R2d3cJh8O6guCo0PD5fKcWGna7nUajQaPR0E199vf3sVqteDyeT6VhvSsS3sUXIL75sz6BL1P8NGown89HJpPhxYsXXL169cd/4EeEx+Oh3c5gMvlwOq34/Q5aLYlUqkE87ubevZyuYa/WMmqjf2IigNFo5tmzCmNjXu7d26dWU3OQySQyN+clmQxRrxvZ2emTSnXI5zucP+9lbi5EJmNic3PA6KiLQCDMyoqI3+9jZcVMJCJSL8LMeZnthsjYFGyVjEyF+7wsGZAVAb+1R6oosLNtIHamy5Sxz5vaENUSNCtkUyYWEwqpwx6+H4XUiomBItDsGTg/VaEmykz3rPxwc+gyM+voUHOoDZZYJc6TkkqrDRgl+p6hBgiAOzNOsemgHjipazOt9OmIB7hlB//P7i/QVdTn/UVXmZJBj4gxA1ZhKBzsrZ3jd3euMe9vs294u7GiUHyrKWMB2m/ZcQsIdN4SKLZhoPhW2T6imNk6RtvqCuBoOGnKw+bNrCiTLotUOwYaWTNLLomNmvqZ4kCguSqwFJdJm4wkzGZC41E8spFOp8/OzgC328ydO3nS6Q6bmy2cThsvXuyztVUnnW6yvd0gFjOxuVnXhnyFQo/r1yNksw1cLhPj4x48HhsXLkQJBOzY7RbabfV+nZz0cudOWtPn63Qk5uYCmuYlcDjA9ZJIeAgGbYc1sUonajb7vHlTotUa6vMdIYENBkFzv1xaiiAIvKXPZ+fVq7JOn89uN9PtDg6NTFTES7s9wOMxs7lZ1RBsGxsVzp+PnBAmPnLsnJ1V3WW7XQm/3641ZY70JA0GAVA02QNRVGv/c+dCxOMu7HYj5XKHtbUysZiThw/Vv9Mf/CDFN75xBq9XP+D6SeO4E+fOzg6xWOxEjSWKIm63m5WVlVNRL29TpLa3t5mcnNQdw+v18uLFC+Lx+KcKB7958wa3262r3XZ2dojH41itVmw226noaFEUvyzUc3jXqPniRyaT4bd/+7f5N//m33Dv3r3PXCSA6kn/ne98B1EUmZ2d/cz7EQQBl8uFw1Hh29/O8/z5vuZMk8s1dJa/oKJBbtyIE4k4NVX0fL6Jx2PlwYMc+/stjYbU60kYDCoywe02c+ZMAKvVyOysKjB8JJ66sVFhfNzD6upwstJuD7hyZYRcrs7kpIfJSSfBoAVBGFAo9CgUuodNmS7NpqIJfR1FNqvaCcbj7kORMSuZTJ3ZWT/37mU1OGKz2efs2bAOYuzxWJic9DI+7iYcdqAoaLSwTkfi9ethIslmG5oN91F3f2TESTxuxmg0Uip12NtT9Ug8HguvX+thtYOBjNkskki4mZ8PMjrqIpttHDZX1CZZodCmUukcCiA3DqdjQebmgoecXCPLy2VNfFa9PyxMTQV58KDKwYE6zbFYRJaW/HS7MuvrRmQZrFY4dw4++WTAYAChUJ9y2cnt2z0+/liie1hzVCoKl68YcbvAYYFnTw1qk6YsMD0jUyrrH95TSZlEXMYlDNhcVkhtgNsB6ZS+m+73V9nfHyYWRRE4d04gnx8WRQaDSLWqF/hbWjKSzXZptQbs77exWgc8eJAikymwv39ALnfA2FgDRakQjfaJxSQSCRGfb0AiYWB01IjROGB21kIgIBAKifh8qohyo9Gk1erQaHTI5+skEi7u3k0fTpRalMtdrlwZ0VGpul2JhYUg3e6ARMLK/HyYcNihWVYet40vldp4vZa3mjo1bt6MEY+7NC2jI6jtETWwVOoc3q8h3d9kIGBjctLH+LibQEAVxVPv1zr9vsSbN2Xtb/K4jbfZLJBOV/mFX0jicp2clPwkMRgMqFQqlMtl6vX6qRSkI7G71dXVTy0UjihSrVbrhPDcj7P0htOnPplMhlAohNVqxWg0nkrDelckvIsvQHzzZ30CX5b4adZgN27c4F//63/N3/k7f+dzCWEajUZkWWZszMx/+A8r7OzUNBFT1VAghCyrLo8TEz66XYV43M39+0XS6SaViprfy+UO8/N+pqf9hMMuCgWZ9fUWNpuBg4MBwaCVixfDCIKNFy86FItdrl0LY7WGePHCyMSEm1YrQrttwOYyktsTsYbh4X0Dl6da5A3QGgiYbR2qffUZOx8YkK6aAYFzUYGMbKJxDEl7ySSzuS/iEuEgrq6grzRFNvaHOeJCpM2+rYsxPUKmOcxDTkFBCOzhko38cH2erqw2WNoDI57wUL8mPrDxp0+m6Q9EjKPDoddRHDk/ZQpfY7k7FHA952hQMOnrijoiI+yhCBBqzvF/bb0HwKy7S86sb7Z4FGiK+s93UTDSO87wpoOMGZCPbRug0Bb0AwKfYmRH1A8ixnoWssecshIGhfSh1t9AFghIAhMDhRwCfUVgySXz8IXIhYQMBoF21YDoceHoehj0JV6+hFu3Ivj9ArGYFUFQGB21EQgYiMUcJBIubDYHCwt+RkYcxOMuwmEntZpEOGwhm+1SKqkC1Ts79UN0d1kb3KbT9cMhZxOzWSSZ9OJ2Wzh/PozdbqLbVW24t7aqJBIuPv54V6uDej2J6WmvzjThzJkALpcZn89KudzRjEx2dqo4HCYdqufIbarZ7DIx4WB+Pnw4aPPz4kVBQyvncg0Nif92TE56mJ5WaVpms4GVlSIej0qXymbr1Go98vkhKkf77XxWrl4dIRJxHBqZ9MjlmphMIi9eHHBw0NYswxuNnlb/Wa0Ce3st/u7fnflMA3dFUeh2u5qo78HBwak1ktVqpdvtUi6XT2VhHFGkGo0G7Xab0dFR3es/ztL7qJmzvLys0wPc3NwkmUwiCAIOh+NUGtaXiHoO7xo1X/z4Z//sn/Fbv/Vb9Pt9Pvroo89VJIAqLPwv/sW/+KkIC7fbTaamfPzJn2xr2yMRO7GYi/FxN36/TVsAbm9XEQRYXS1pBcXeXlOz5HM4VDX0eNzFzEzgGH1JFRe2Wo1sbuo1V5rNPg6HkUjETjLpJBKxsr9fx+83s7FR15AyhUKf8+d9Oseeblfi2rUYoZBN47N2OhKyDKurBba3axoNqVBoEwzaaTTU4sbpNOF0mrl4MUIwaEcUBfb3W+zsVA+FXne19/b7MjMzPnI5NZFMTfmYmwtgt5twu80Uix3295uk03Xy+Q5mM9Rqw+Sezze5cSMGoImMiaLA+LhXo5NlMnWq1S52u4lWq6/Bm+NxFx6PlYWFMMViX3N8KhY7RKM2ajUJu93AlSsRLBYzy8sVzGZotUQGA4WrVwPIsoUXL1rk8y1u3fJit5uwWERWV49Pivrcvm3he9/TL16NRjh3dsDDBxZKRf1ri4syqbS6LTkpM3+mS2qjw8snBg72hg/gUklGEATkYxMiu91KpaLnak9PQyo13FatQjTap9EYnuf4uIl0ephoSyUJl6uviSgDnDvn5s2bMtVql0KhdYi4KrKzUyWbrZHJ1IjHbdy/n2Fvr0Gh0Dp00vDraEPZbJOpKY9Om2Z3t8HVqxFiMRdTUz5CITvpdJ1kUrVuP2rKHCX14xDYblfi0qUI0ahTayI2m33a7QHpdI319cqhlpGiURCPkGVDYeIIXq9VayJub1dJJNx8/PGu1rDs92XicTeFQgujUZ1GnTkTwGw2EAhYyedbZDINVlYK/MqvLPLjQpIkarUa+/v7pFIptra2tAIhHo8TCoV48+bNqYXCj4LHwpAiVa/XSSaTJ17/cZbep019NjY2SCaTWtHgcDgolUp0u12tUDAYDO8aNe/iZx3f/FmfwJclfpo1mMlkYmRkhN/93d/l61//+uc6L1UrYptkMs5f/EWasTEXCwuqsPBgIJPLddneVkVay+Uu6XSDK1ci7O93WFxULYwFwUC/D69ft0mn1fzhcBgZG3MzNeXhzRuFzc0e9brEtWthRNHNw4ddzp2zkkiMcO+ek7kzCumciW5Pxj3WZSttZul8jYevXJgbcOWWwouiipi5GJN4khnWnZOiQtYt0jnsSEQtMhvrIpIiUChCcEnCAmRfmegd61pErBJBT48P10d016TYNZGIZYhURnlcGj7zW5KBpfAerUONF2l9hp2anUbfwMR4ic5bTkwDROa7Jv6geEm3fcrSpWLVU6hkARaUBu7uCP/n+s9rLlUT9h55m56+JCMgiPrF/kCAKIqeUiVAVDHRECQMikBYsuLr2wm33Pg7dnwdM5b6AJvRQsFgpncsdY5LJjZaQ4SSw4CmBageT+DVA5EFq4ziEgg6FNIbIul9kZmEzF99aMDhHCBLfWhbMRl79Puq6+TKSp2dHZlsVmRmJsgnnxTY3e2RTnc4OJDodru8fFkil2tRLHZxOIaW3aA6mHq9VkwmSCTcTE97mZz0YjYbcTpNFAotCgVVv/LI1ex4YyWTqbOwEKRcbpNMqrW0xWJkfj6gacOopglVkkmvTp9PkhQiESeDgXxMn89Budyh11NIpYaDsVSqpukAHkWh0OJrX5skGnUwNubGblc1M8fGPNy7l9UYBJKk4HJZaLeHtXg06sDnU9kAHo+FdlvVzFxbKxMK2XVOuMdlD5xOE2fOBBgbcxOPuw7XIx2Wlw9wudQB+I+LXq9HuVwml8uxs7PD9vY21WoVk8nE6Ogosix/ao115LTpcrlOUNRBHXa9fPkSu92uuXcejx9l6Q1gNoCoGk0AACAASURBVJtRFEVzAu33++zt7emaPqeho981atR416j5AsQHH3zA7u4u//yf/3O2t7d/Ko0ap9NJp9PhL//yL/nKV77yufbl9XpptTLYbD5AYDCQjy0AVYu/owWgLCua4K/VamB2NsDcnB+DQcDlMpHLDS2qt7ZULZXjImMHBy1u3YohCArJpGqtBzKhkJnXr2vkcm3y+Q7V6oBg0Eml0tFpwwCcOeNjaiqg0ZBWVgqEQnY++SSn0ZDKZb02jNVqOOzS+wkG7ZhMBgqFtiZKtr1dpVgcJpK9vaYmijwx4eHMGX0i2dsbJpKZGf8JodeRETuCoLCwEGJ6WtWxKRTaNBo9Tej14EAVKjt3Tp9I/H4r16/HCQScyLLI7m6LdLpBtzug0ZC0RKA6Zzm4cCHI1laXzc0GpZIKgymV2nzta1GsVhdPn7ao1YZuEfG4iKLYWF0dNpIuXDBTq8nkcm0EwU3/EPCRTEIw2Obj+y0mJ5yUy/qFrSTB2JhELNJk9VWXdEqmVoPx8R7VqvnY+0TOnYO9Y4VGpSIQjQ5oHNN0tloFnd4MwLlzIpnMsFDq9wUajeH1kmW4eNFGJjPcJooilcpwx92uzNWrAZ2dabHYw+EQNN0jUIuY402ZSMTG7KyXWMzG6KgTp9NIo9HFaBQPG4Gq7Xyz2afTkbBajRoNDlTU1MWLEcbGPJqW0evXJcbH3dy9m9WaiPV67xCpUz+8Dgamp31MTnoOOd+i1vDc32/RaPR0otvpdE2zc5+cVO9Xh8OkWcQfTaNSqRqJhFu7DpublUPxvWGhLMsy9Xqdg4MDMpkMm5ub5HI5ut0uNpuNSCTC5OQko6OjBINB7HY7JpOJVqtFq9U6VXju0+CxR2G320mlUkSj0VMbz16vl42NDex2+6mFwtHUZ29vj0AgQDqdZnxcb0MeCARYWVnR+NpfIn0aeNeo+aLGN3/WJ/BliP8eNdjc3By///u/TyKRIJFIfOb9CIKA0+nE4aiQycCTJ/uaacHeXosbN6KkUuqzfmzMxdmzIURRQFGMrK3VSaWalEpdSqUO164FiUTcJBIe9vYktrbabG01uXHDx/h4AEly8+qVTLOpcPWqmwcPBA4OGly+0uXhEx9Ot4RnDFK7Vi6cl1jJWpFlgTMTCq2mwL5ZwCJKKJJIvas+O0NOhfSOwNKMTEpR8/uSQWa7cJTrBS5MS0R6Iuv7esRlo23CYzKTbupzgqSIfCVY44PNKXqKvua4GqhSMnaY6rj5s5cT2vbz8TpFo752MEoGnuYXKcv6nBIwDug5Tjo/LXad/N/r79NXhogXv0mm4tLTnFqCQJg2/bcaQ5OyQPmYyHC8b8dXiHCwMc7jZ7O8WB9jeWsE5cDH99+EWNkJsZ6J82ojSO2pF++unZm+iVEjWAzwujm07a4rwAFaA6kpC4x0ZDZzBhwNBWdgQG5LdebcOhC5ES2xvO5AthkZlGyMJQJYTUZqVQuxmA9B6DM768JoNDE/7yEUMhKN2vB4zMRibnw+I6OjzkN5AhvJpAeXS2Z01HvYjGkzPx/kyZM8mcyQyj0z49dp+/V6ElNTXtpt1S1K1V5yIYqChj7JZOqHTqpNfD6bTvA3na5z9arqmjk7qxqZlMtdZmd9x/T5VMmEhYWADnGsKBy6rrp1mpmpVA1FgeXlA4pFFfGiChPHNIS9328lGnVw/nwYt9uirYvS6TpOp5nl5QNd7TgYyFgsBmRZZnbWz5kzASRJYWLCw+ZmVRtWb25WdHT3O3fSfP3rM4RC9mP7UtHKe3t7pFIpNjc3KRQKyLKM2+0mHo8zMTGhOWQajUZcLhcbGxun6skIgoDP5zuBejkKURTp9XoUCgXGxsZO1EVHNPXnz5+fsPQ+CrfbTSqVwmQy0e/36ff7OhOHI3T00UDtiHr+rgYDQXl7lauPH/niu/jpxL/9t/+WP/zDP8RoNNLpdKjVavzyL/8y//k//+fPtd/BYMDNmzf5gz/4Ax2v8LNELpdjdTXH3//7f6VRe0DlOo+Oushk6iSTPoJBdZLvcJj4/vdTOhHi27dHuXMno9vv/HyAWq1DKGRFEGRqtR61Wp9uV9H41ACCAAsLQV6+HPKPj2y4W60Bnc6ATKZOLtdgYcHFyoqejzw+7iGXq9PryZhMIsmkj3DYjtkssrOjOikcneuVK1EePtSr/t++neDOnTSjoy7icScmkwGjUeTRo7wuaYRCdrrdgWapDGrD5OzZ4CGVTO3AZzJ1wmEDz5/rpzY3bsS5f3/oL31ksSnL0Gz22NwsU6mojYDJyYBOwwbg/fcTdDrKYaOgRLncRRAEzp1L8Py5+t7Ll0N0u/DiRYUbN6a4f19NXBcvuikWJVKpLtGojVYrwGCgcOaMwpMngtYQe//9ET76yMLNmxKffNKkd/hV33vPw927QyeCqakmglBiMDCxvW1/6zyN/PCH+uLo9m2FO3f08N6bN7vcuze8hwRBwefrUDpWQ127pvDJJ/qiamamzdrasKFy5YqFhw9zuvecOaOwujq8frOzTt680dt+/tzPhUilSng8Jux2o+po4TawtlYkm61rfws3b8a5dy+r++z77yf44Q/T2v+DQRtXroxQr3cpFKqUShIHB22mpryaneNRuFyqO0Au18BoFEgmVWSO260K4G1uVrQpztvHAbh0KcLjx3vEYk4NqtvrSZqg3VGYzQYSCRcbG3oU2+3bcer1PtDFaDTz7/7dTXw+hVqthizLmm2ix+PB6XT+WC2XwWDAYDDg2bNnLC0tnUoHaDQaLC8vc+3atRP7Ozg4YHd3l06nw7Vr105N3q1Wi6dPn3Lt2rVTnQIUReHRo0dEo1EKhQIXLlw48Z5qtcqrV6+4du0aVqv1y1QkfGm+6N+weFeD/Q+I/1412Pr6Ov/oH/0jvvvd735u95KXL19SKpn4+tf/TMsVwaCNmRk/bred5eWyTgD/8uUIjx6VMJsNnDsXxGw28fJljXPnwty9q+bLWEwVS11ebjM56eDlSwszMwYKBScHB0aiURGfz8OrVyJf/VtWdupWNlMiM9MyuZZAoyUQDcp0ZYFyTeDm35eQxC6fZIb5/kZM4v6KgclJma0lkaRNZntVQD5mMnDtfJ9lyUBb0i8Qz1plun5Yk04iG3/R2+ZPmyeb8t+Y3GHbm6H57DwrpWGe+fqlHM+9Vd17Q3eddEaivECfbyLGHqGx57pt0YEZeW2O7/X1iIOYtU93ep+34xpVtt8SFL4hCWyKDeLlMM/exHi57+S2X+JOTX/8Wy6Jj8r6bZPKgK3m8B5adMmIgoJrSuG5RaSBwFRWYePYsOxsqcaLTVWo3yAo3PK0uJOxoyBwPSzReAn7bZH5kEx/E/YPwGcqsZvpsbDQJ5/PsLraQJYVLl0SdTXU9es+Pv44pTvH8+ftPHtW1G27eDHAkyfDetrtNnPpUohuV8JgEGm3JXK5BpOTbu7e1dcxp60Zrl4dod3u4/VaGQxk8vmjYVb3sGZR47TaJhZzcu5cmEqlSbmsGpHUaj3ee2+Uu3f1x1lYCLK6WkCWVXR9MqkOVGUZ1tfLWsNGFFUx7hcv9NpIt2+P8tFHGW2tIQhgNhu5cyetq/UmJjzk8w1dU8duN5FMurFYjPT7bSIRD//+39+k1arTaDQ0bZmjfw6H40fWKrIsI0kS7Xab1dVVrl+/fipaOJ1OU6/XWVg46Ti1urpKv9/HarUyMzNz6nFyuRwHBwcsLS2d+nq32+Xhw4dEo1HMZvOpDeytrS16vR7z8/Ofiw3yNzA+9Qd816j5gsUPfvADfud3focPPvjgp7K/Dz/8kN/5nd/hv/7X//q59qMoCo8fP+bP/qzOb//2QyYnvdrDx2AQuX9/V9O6gB/VsAgACgaDQr3eI5/vMDXl5ulT/UL77YWvy2Xi8uURJEmm25XZ3VUnSg6HCZfLfMLFZmHBy8pKBVFEW+T6/VY2Nipsbla0c714McKTJ3u6z0ajDur1Li6XRRNqbTR6SJLM8+d61f9PW6BXKh08Hgv9vszubgO73cTaWlGnEu9ymTAaVaFaQKOgTEx4NL7r9nYFRRk2io7HzIyPnZ2G9v2q1S6vXhVZXIzw9Kk+aaiCZ0G2tlqkUkNkicNhZGFhElkWefRIb0f+C78Q5+VLI5mMfgq1uGjGbPbx5IlebM9mU4ARwuEeLledFy/U1997z87du/oidWpKYGNDX/BMTipsbZnx+WRGRiRcrgHBYJdqtYckDRgMJAYDmXB4QDbbQlHUTr7JBILQRhAEOp0OFouZkREzlUr3MHkJGAwgCE1NQBgU3G6FarWJooCiqInM7ZZJp2vU611KpTYGg4DZLGsizaDS/hqNFs3m8Lr4/WqD8oiGdASbdbksVCqdw+mneo9evTrCgwf6ptHR7ysIKhc6HHbi8Zg15NlREo9EHLTbfd3flckkMjnppVRqMz7uwW430Wz2cbvN/OAH+kLqtPt1YSGIICh4vTb6/QG7uw2q1S5ms0CxqB7nwoUA3/72L+H1ej7TguOoUGg2m6ytrXHt2rVTC4Xt7W06nQ5nzpw5sf0IlSOKIlNTU6ceJ5vNUi6XOXv27Kmvdzod7t+/TywW+1T9ro2NDWRZ/tR9/E8a7xo1X8x4V4P9D46fdg3267/+6wQCAf7lv/yXn2s/vV6PR48ecfeuyJ//eYbd3SZbW+qgZ2LCTT7f1fKE221ifj5IMOjkww+LNBrDXGUyiVy5EqJaNbC6Kmk1yZkzDiKREPfuWen14MYNJy9fWqjXYX7eyP6+i3hSpmUWqCgChbKA2aQwNaHwakt9ll+7OOClz0DzkKNzNirzYnX4nF/432WsLYXHO/omxFe8Eh/HRLqK/jF0bk/CcwbumPXvjxtkEnsK90dODgi+EioSd5f4fx/pF5Nfmy6xPjZsqCzW7fzp/zfG5UsNHrlPOv7dnHxC/dAC3C0b2PvLeSIeMx9Z9ccUkIkv5mi/9QT9qtLkpWFYl9oUgfN7Qf7kRZhCaziQuuWT+Kiu3+dtj8Sdon7bglRlpT3U73AZFeoZ9aA2s8zcmToIEk+bQ52Rm4Ye9z4eHut9r0SzCNuItPpgfgYWk0I8rlB6JBByKZhNMrXdOnb7AKu1zaNHOySTFnw+EYOhRq3Wpl7v0WoNmJ628OSJWsuoJiNmRLGJxWLF4TBhNhsxmQQGgz6FgoqmL5U6BAI2FEXR1VV2u5FAwKzTdwmF7CwuBhkMVJOSXK5BOl3j1q2TjZW3a5tw2M7SUuiwidNnZ0c12/B4LJjNos5gQRDg3Lkwz5/vY7EYmJry4vfb8HgsrKyolPgjHZnT6rdEwk2x2CQYdDAy4sRkEqnV1L/HN2/0a5vr12N8/LF+IPjzPz9GtdrF4TDRbHZJpWr4fKq0w9ES/dd+bZHf+I3bOJ3Oz0TJlmWZwWBALpej3+8zN3fS1fNonTc2NqZDuwA8fPiQxcVFnj9/ztzc3KnIaIBnz54RDocZGRk59fX9/X1evXrF0tLSqTQsRVF4+PAhMzMzRCKfzfXqb2h8ag32jvr0BYufFuz2KCYmJvjggw8wm81MT09/5v0IgoDb7cZuL/H4cYvV1aJmUb2zU+PKlRGd6G6r1efatSher4l43IbbbaDXUzAYYHW1Si7XplTq0evJtNsyDodZo0/ZbEbsdhMXL0YIhewYjSqtY3v7SBsmqy1U+32Z+fkgu7sNBAGNhiSKfYJBJ7VaT2erZ7EYdMkhn29y/foInY7E/HyQ6WkfNpuRZNKrExnL55sEAvYTImODgczUlGrHF4u5MJkMvHhxQCBg49Gj/KHIWJdisa3TIxEEiMVcTE87iUTseDyq3fLeXotuV2Jrq6I71u5ug2TSS7PZZ35epZMJgsD0tI+HD1Vh4b291mEyURBFAwaDwKVLEUZGXKyuVgkErLx6NSwckkkXyaSHer3Lq1fDgi0YNLG05OSv/qrA+LiX/X31BZNJ5upVheXlJuFwj3xeP82KRERu3hzw4EFd+wxAuy3R7Zp1FLVyGRIJVbR4cVFiZqaNKFbx+/Ok07scHBTIZkvs79fZ3CyTSjXY3W2Rz7cJBuHJkwIHB+1D0ekW4bB8uK1DLtek3++xvJwjlaqQSpXZ2SkTj4vcubNDKlUilSqTzdY4OKiwvl4knVZV/t1uMy9e7FGv9xgMZHo9mcuXozqobrPZ5/r1GKlUFYNBYHLSSyLhZnbWj8Nhpt9X3buy2QY2m5Hl5X2dmHOvJ2E2qxSoWMzBwkIIo1H9Lff3W9r9urFRYW4uoKPNNZt9Ll6MUqt1Nbeoo7+RTKam3ee5XINCoU0oZNchvvL5Bu+/P0Y87iQed2E2C2xuVhgZMfPgwT7ZrOrI0Oup8Nwjd7N8vs3IiJcbN/RCcj9pHLlAGQwGJEmiVCqdqifj8XjY3t7GarVitw+nskfiv9FolLW1tU/lUrtcLnZ3dzWR4rdDFfEu0Ww2T4jiHYXP56Pf739qIfI/abyjPn0x45s/6xP4ssVPuwa7efMm/+pf/Sv+3t/7ezgcJxsCP2kcoQwTCZE//MMUGxvDvFCpdPnqV0cPKSl2crkuqVSTVKpOKGSjWh0QCBiYnXUyGJjJ5/vIsp1aTeLMGTeJRIAXL2Bnp8uNGxbi8SD37xvp9eDaNQtv3jip1QSMAkwkFV7tHjZmLsg8ea2el9uh0KkLLMwppFoiJlHG2oNKc7j+WApLfJTTN/rHnDIrn4icPS+TP4acuWSVePbAQNitsOvVL0wX9mV2NgUaY6esbQZG3mS8NAf6RodVhH5EvWYuWWT9TxM0OwaCtib7npO55KK7TEXsY1IEDA+nWM64cJsVDuxvL5IF5oItyj/Conu+4uHVnyVpH3hY7+pRAh6Twv5Av8+wWWG3o982ZuqT6w4pKz1ZINDv0JaMDCSB/J6VqYGJcFPB74eDgYDLIlBIDa+RxwHP7htwDRQmxhTiAYXXrwzsFQSuX5K5/6GBYklkcVHkk48kmk0L16/bKZWaPH7cotUyU6u1SKe71OuQzUpMTTlIp5u02wrl8gCfz8nGRoV0ukUq1WB7u0Ek4uDZs7xW47fbA86eDWo0JKfTRCLhZmbGx8iIA7/fxmCg6tYMBjKbmxW2t6uaw1mx2CYScWjrgFDIhtNp5vz5MB6PBUlSaUibm1XGxjw6fb5uV631c7kGogjT017m5gI4HGZcLpPmMpVKqa6dbrdFt2bY3W1w40aMwUBdeySTvkPUs5/nz/c1t6i9vRbhsF2zCz8KRVGYmfExNeUjHFYbVisrBex2ePasSD7fot2WKJV63L49XDM8fVrg61+fJxYbotb/OnHkAuV0OkmlUqfqybzttHkc2by1tcXk5CR+v5/l5WVGRkZObRgFAgGdpffb4XA42NjY+FQnUEEQ8Pv9SJL0uYTY/wbGO+rTlzl2d3f5xV/8Rb73ve+durj568Ta2hpPnlT5p//0+7rtyaQHh8OA2SzQavXY21N1ZBIJB9vbeqTGrVtxPvpI7Xyr6u8+pqa8lEodDg5abG2ptI6pKS/b21WN4gFo4rz5fJNEwnXYHBGx20189FFWE/cFuHDBy9OnekrH+fNhdnaqGh+105Go1brkco0T6J+pKZ+uG240Cnz1q+O0WgMURTk81ypXr46cQCkkk15Sqaomrnbk2GOxGCkUWmxuVrRznZtz8vq1/hodQT5VZIYHs1lEUeDx4xzt9hC5ZDYbGB31srmpFiChkI2ZGR9ut5Uf/GBfB6dUr/0kjYaC2Wzg0aPyMTrTBA8edLh61c2TJw0aDfVzo6MWcrkAU1M9KpU++/vqg9vpNGAwjFCtKvh8AouLEh9/XGFiwsramp7mpP4WLp4+FQ6vjUI83sPh6PHd79aOoVzgvfdM3L2rb4YtLRl5/nyYKD0ekWZzeG3Vz9m5e1ePjJqeNrC+PmwenjnjYHX1bUpb4AS0dmHBwcrKEJFkMonEYmryj0Rs2GxGJElGEODRo7wmmg3q/fXsmR4Gffy3PEJoWa0GHjzIUakModHJpJdMpqbZOIJ6v0ciDux2I16vFUmSyeWahEK2T6XnHY+vfGWUXk/GYBAoFNRmp91upN+XtN8Y1Pt9ZsbH6qp6v/v9NiYmPIyMOMjlGmxulmi1JH74w//jM1t2g0qBkiSJ5eXlT53KdDodHj16xLVr1zTo6/3797ly5QpGo5FGo8Hz58+5fv36qZSrXq/HgwcPuHLlyql6N48ePUIURSKRCLFY7NTzNBqNXyZrbniHqPmixrsa7H+C+KM/+iP++I//mP/4H//j59qPoig8ePCAWi3Ar/7qXzA7q2rj7ezUyWZbzMx4ePNmOIyx2w1cvuyn0bDz7Fldh+h9//0IvZ6Pjz8e5tZbtzy8fDlgdtbLkydubt50cOeOGUURiMdlFAV2d0Vu/28S2OHO0+Ez8tq8xCfLBvxBhfZFWPQ2ebg2XGiZjQozNpk30yL9Y4LBVw0SD54buP2/StxxqPsTUUhuK6ynRTwuhfovqAK9ALNGmTffVpGy0V+Wycv6xeLtgsS2TSDT1283iTITP/eGngAzK2H+4r6KPJkf7fFq+iTF4hsjm7yylRhbG+NPH6iTfa9FoTJz8lH5tekDnlr1gsLvyX2qQoPeJwnuvVIXpBNumW2z/rwCJoXiW0iicavMTuOt5hQVVhr6fHnRIPEkO/wNzvlklp8c6gAtSoiT8OpjkW5f3b/ZoGB8Ca2OAILC37oscff7BtpdAaNB4YJJplGH9R2RpYkmNrPE8+cSk5MFdndrTE2Z8XoVcrkc+XyH/f0ukYiFwaCs05q8dMnB48fDGspgEHjvvRAHBw1cLgtms/HQOtrEkyd7Oj2927dj3LmjRwIfpybF4y5iMSd+v5VCoaU5bsKnI47Hxz1sbJQ1tLLBIOBwmPjww5SufnvvvTh37+pr+bk5P6VSm9FRN06niVZrQLHYptXq67QjBQGWlvT1n9ks8tWvjtFoqIjwfL5BOl1ndtbF6qpeniEWc1KrdbWhXiLhIpFw43CY2d2ts7FRIpHwcO/eP8Fm++yUoH6/T6/XY3l5mevXr5/aTMnn8+Tzec6fP48gCAwGAx4+fMiNGzcAdXBWrVZZXDzdaKJYLLK5ucmVK1dOULIUReGjjz5CEAQuXLigG8gdD7PZ/GWinsM7RM2XO1wuF41Ggw8//JDbt29/rn253W7q9RT9vgWLRcDnMwEK2WyLsTEHjx4VKRR6tNtqUo/F3BoyxGBQUQM+n5WJCQ9ms0Gz1VtfL+PxWFhdLWnNA1XwV+0oR6MO5ueDJBJuYjEnxaKKpjjqXne7Eo1GT7d4Lxa7JJMe4nH3IfXHyf5+i2TSy8OHeU35vVhsHwq1DiGXgqDq58TjTsbHPTgcJg3xUi53eP26RKnUQZaVQ5vMsJZswmE70aiDCxciOBxmzW48na7h91t5+nRPRxMzGlWBMbtdVX6fnfXR6UjEYk7evClr3zGdrnHjRlznEmSxGDh7NsjoqNrMyWTURLC+XubixSi7u+q19/stXL4cpVRqU6uJuiRhMgmEw6r1+IMHbXq94TV0OuHmTQeffDKg2RwWDr2ews2bNkZHRfL5CmtrbWQZSqUB8/MOCgX9+mJ+XiCRGCCKRba2CqRSDUwmif23qN0+n4G9PT2lambGRCo13NbtKiwtWcjnh02OVku1Ijzed56ZsZLNDuGthUKfuTmHrqDodhV6vR6yrGAyCcTjNpJJN9GohfFxF5GIFbNZbYC9erVPLqcirDKZOh6PlVxO32AzmUQGAxmfz8qZMwGmp310OgN8PitbW1UNoXUkGHdc2K5c7nDrVhyLxXB4r7sORbgtLC8f6Jy/ej0Ji0UvTCzLCpcvRxkddeF2q/Sn9fUKfr/Aw4cFikXVqaDTkbhwYYiAczpNzM35GRlxEYk4kGWF/f0WuVzj8D0Ce3ttJEnh/v0M/+SfLGEwfDY3JFEUURQFr9fLysrKqcJ1RqMRo9FIKpUiEomgKAqpVIqJiQngpIPA22EwGLDZbKytrTEyMnIi2W9tbXHx4kVevnxJKBQ6lQf9JROxg3eImi9qfPNnfQLv4vPH/Pw8v/d7v8fExMSnIvl+khAEAbvdTrOZoVYz8ed/niOdbmh6flariNFoYGkpSDzuYm+vx8ZGi6kpD6lUF0GAK1cC+HxOHj6sMzJiIZcTmJmxMTLi4PHjHt2uQqfT4/333Xzvey5AYGJCpt+HXE59Vse8CtmeQLWhPiPfW5K4/+zQIrsl8L9cl7i3btHp0Nwak3n42MDFKzK5rrqf836Jxw8OGw1dqI6q779plnl22ATq9gSmzymUDvcVW5PZPxQiXpiTyTLMH9MGmed/IjI3o5B9q4EjKwLnEjVGOmb+/DtDWkavJ9I95SeZtnaI1Cx8+4fDFzuSQCCq0H6rsTLj7JOz6OuWiYKVj/4kwUZ+uBBt9kGwDwV/AdqygNsk62hfjYGCKCu693ltZkot/XGnHQqp0vB7diTolgEE9g5E8m9Efj4sY7VBoSMgKQJnAzL5PREQ2MkLzJhlohHIl0SSEwpPfyhy45KMYDFy768G2Gwik5N2JKnJ8+dtNjYGTE97WF0tY/7/2Xuz2Ejy/L7zE5H3fZJJJpOZybNIVrGKdTerukczPbIlC1hLA+3KHmO0uxJg+8F+NSDALyNYgA1DMDQPkm0YMLQvkkayZXlWFjzjdc9MT91dZ9dBVvEmM5nM+74zIvYhmJEMkiOPum3MaKp+QANdkXFlZDDi9//+v4fZiMNhZmoqgNcrEgo5CIUcdLsGxscHZrCtlkQu10YUBVZWSuzuqillmUwLs1nQTbBmMg0iESfttsT0tI+ZGT+iKDA76yefb5LNNtjfr7GxUWJqysfKysATp17vcunSCIlElVjMrSUp2e0mKpX2YZqlakyczTZwuy06tnPfmDgYtDMz42NkRB1rzMz4uX9/X2Mrl0ptzpzxGfcuPAAAIABJREFUk0oNACZRVEGkiQkP4+NuLBaRYrHN1lYZSeqwslKiXO6gKJDLdVheHtNCG4aH7UQiLhYWhnA4zLRaPc2Y2GAQWF8v0umoUrFqtcPf/Jsn0y9/1Oqzm00mE8lkkuHh4RPrOJ1OstkskiThcrmoVqu0Wi1tXZfLRSKRwGAwnMoStNvtVKtV6vX6icm4er1OrVZjZmZG6wFP67Xe9WCDegfUvCV19epVfuM3foMPP/zwR6b0K4o6+M3n86RSKba3t9nb28NgMDA+buLf//tt9vebNBr9GO4mU1M+CoUWgoBmvnXhwjAmk4FKpa2lRY2OOnn2LKPpPkE1UK1U2gQCtkMZkpdWq4fbbWZ7u6Ib5J49O6QbJFcqHW7ciOBwmHWu8aLYY3W1dOj8Xj3UjfYwGkUdkm40Cly8GCIScWnO7xsbJeJxD7dvJ8jl1IFquy2xuDisc36fm1MTpvopU5lMQztXUUSTjwCkUjWuXQuTyzU053ePx0YoZGJrq6Y5v+/v13A6zRSLetpkpyNx4cIwsZgHp9NMJtNgY6NENOrh6VO9f47JBIuLIYJBB7u7Tba36+RyLcJhE4WCgtUqsLBgptOBtbUmFotCs2lBklTA5MoVJ2trdQ4OGtjtTlot9UREUWF52cLBQYU3byRqNT0oMzNjJJEQcTjg6lVwueqsrhZIJBrkcoOXYj4vMTpq0m2fy8n4fNBsDpb1elCt6plBk5MWXQR3sylz4YJNF83e6fRwOgWGhsyMjloYH7cSjdoIhYzEYjYiEQsOh8LCgotyuUa93qRcbrK5WSIYtPLgwT77+zWKxRbJZI1Ll0K6ey6TaXDz5tih4bKfqSkvFouRqSkfL1/mNFBnf1+l/h6dfQHodiViMRfhsIVYzIvbbWVlpUAgYOXx4zR7e1UKhZYW430USLRaTVy/HmZkxIHfb9HAwFarxfp6iVSqoRnWVSoSY2POQ98ZkdlZPy6XmXPnhuj1FHK5JgcHdTY31fv9qGG3GuPtolBoMjrqwG4XqNcllpc/32Cj7+ifSqVOBVvUSFpVB242m8nn8zr2Sz9BwGw2nzoj43A4KJVKtFotHb220+mQzWaJRqO4XC5WVlZObRTeslhIeAfU/KTW13/cJ/CuPn8JgsC1a9f4x//4H/O1r33tR/aYUBSFer1OLpcjmUxq6S69Xo8rVwJ85zuq/4zfb2FpKYjDYWZszMWdO3mSyYY2cVWrtfnww3GaTROrq02yWXVg3Ov1+NKXgjx4oJDJqO/YCxdsNJsmnj2rceOGE6dTpFAQyWYPwZULEi+ei4wPKxy0RRYmJV68FpEOWTJWs4JXVkgIKhgAEA3IvHkmIkkCsRGFhEHEKCrYUlCsqOuUKwLRJRkJKD8RVNbHYS1MyewaRK4KEk/uDBgkEyMKu9bBtQx/KpNOi0yMKewaT17ji4Emjz4aptYcsAjaPYGRCZnasQntSNPIf/1BEOUYKDM9opA5tixs6ZF1qBNHDgVmHni49f96qR/z1pEVgYhPpnLMHDlsaFBSBl4yCgJxi0KpNzhOQwapDUcn3sM2hUR+sK+2LDBuVKgcAXTGzAqPv2/gcljC4QW/E3YPPYUURWAmpPDoByLLF2SSNYF2SmBzU6RUFPjwizL7SYnVVZHJSRcGQ4Pz52202yLRqImdHZV9nUi0mZ118fBhmkymRTbbptMx0mzWNRCx25UPvVwaWk/bbkuHciUj09M+YjE3Pp8Vp9NCMlnR2Ra0WmpoyFHGcS7X0KRSZ84EmJjwUKt1mJjw8vJl7sgkZ5Vr10Z1k5x9CZTHYyEcNhGP+zGZDJRKbdLpGuvrJZLJ6mHylGo9cFQCZTKJLC+PEQo5cDpNh2lRVTweePQoR6HQRpbV1NHhYRfVqjoh6PFYmJ8P4nSaiMfdNJuSNmZYWysSDrt0cvd+jPf+fpVo1EG53GJqyk8sdlI29KNUH6ixWq2k0+kfCrb0JUxDQ0OUy2UMBoPmKfOXSaT65ff7WV1dPZEylc/nEUWRcDhMq9WiVCrh9/t12/b7w7es3kmf3hV89NFH/M7v/A5/9Ed/dOrn7XabSqWi/ddqtbBarTp3cYvFgqIoPHnyhG9/u8pv/dYDAKJRN6OjTrxeC8lkla2tMvW6+oD2+VS5Vd9oFQYpTvv7NWKxvgyph8tl5qOPdnTndZp5Vzzuxm434vPZUBQOPUGqhEIO3UMO4MIFH8+eDdJ9xsZcXLgwRKXSoVrtsLVVolLpMDvrZ329cMzw14zNZiSTaeB2m4nHvbjdFpxOE8+fZ3W+PKel7ywthXj+PHPEfFmgXlfj/44+9EVRYHzcys6O3uDsy1+eoNFQUfhUqsbOTlkzPTtaZrOBcNiLLCuMj3uo13u8fFlgcXGIx4/1yVLhsJmFhSHu329QreqNgr/4xTiSZOTp04oOHLl5c5Tbt3tcvWohmSyzf+iF9v77IW7d0s8kzc+bGB628ehRWSevuX7dwf37+hSE99+3n9j+xg0Td+6ooIbNJjA0JBKPqxHaRqOMKMoIgoQkNWi3e3Q6Ep2OxOiogVevsjSbPWq1LrKssLho5vnzwf1gNouHrJ0BaDI6aiefr+tYTpOTbnZ2ikjSUXd+NyaTjN9vx2QSqVY7FApNWq2ezphOFAXm5wM6wAPgww+j1OtdTCYD5bI603L2bPCEsdzxFACXy8TsbACPx0y53CaZrHBwoB7vtISzvtSqb6Q9PGzH4TCxt1dhY6OkATg+n/VQEnXSVO/goEY06sZmM1GtdvB6LZoxscEg8N/+21e5fn2Mz1qSJCFJEi9fviQejxMMBk+s05cwTU5OUiqVmJ+f133el0hdvXoVs9l8YntJkrh//z4XLlzQGpF8Pk8mk9H29ebNG4xGI5OTgxkqQRBO3d9Peb1VqNRfo3rXg/0U1W/8xm8wOjrK3//7f//EZ4qi0Gg0dD2YJEk4HA6t/3K5XBiNRs1YuFgc4etf/4SVlaJu0mtxMcyLFyXOnw9gtVp4+rSE1WrEZnNzcNDB5zNx9qyPx4/rNBoyly6Ns7LS5fJlF7dvd7WB9PKyg2JxjNVVddB09qzE1pZI4xAI+OCrPV7vimSOsDpunpO4fcvA0t+TeLpvQEDhjLXD6ro6WHO6FLpfgqsemVs/OGai+39IIMGt2/rlV65KvIyL+O4r7GcHx5qfkVg5q667LEnc/WP1/8+flfg0enKg9/NCl/+6dZJBeflnejwSBuvHkOE/CeyMngR7bp6TuH0sJWrO2SYbzzHeFan+aYCNLfX9EYrJpNv6fcwNVVlV9D4jy36Ju8eSn646JD4p65dFFZndI8zmaYfM+oZ+/9esEg9WB9tdDUt88vHhvwWFn7kqsb0rsnPISroUlXj8F4c+Q26F5TmJ733bQLstEIvK5JMlLlwQSacFfL4yn3yi9jUej0g4XMJsVnA4DBiNYDI1aTTa2r1oNDZptTrYbJZDjxTweIzs7ZUOARHVk/HmzZFTEp/GuHVr59iyCLlcE79fTWQsFltYrQYeP9bL3k+TQNntRs6fH8ZgUM+jP2l87dqoZsWg/R7HjIlDITuLi0O02zKlUpOdnTKVShebzYDDYSCX08veLl0a4fHjA+x21e/S67Xidlt48SKrA4vOnz/Zy/cnfL1eC6GQKtMqFlsYjYIWZhKJuPjkk1/D7T4p7f5Rq9fr0el0+PTTT39oD1UoFNjY2MDlchEIBE5MqmUyGRKJBBcvXjx1YqtarfLixQtdytSbN2/wer0MDw8jyzKffPIJc3Nzugk1g8HwuVPy/hrWu9Snd6XW3/k7f4evfvWrLC4u8vTpU86cOUOlUqHZbGKxWE6AMj9sVrler/Ps2XO+8Y0UH3+8q3sgnpYsc+PG2CFg4cPtNtPpyEiSzNOnaZ0HzWkpTqKoPqC7XQVRFMjnVdbDtWvhE54ci4tDPH8+YJYMD9sZHTXhcjmp13ua83tf2vTqlT5KsD/I7RsK+3yqe/3qaoHd3bLWwEQiLnK5hs4Dxmw2MDbmRFHU1B+jUaRQaOH1Wk68CE7Twi4u+gEZj8dFpdJmc7OELMv4/TaNInn0et65k8TvtzE97cdoFOl2JR49KuqAJlCTrdbWGiwu+qnVejx/Xjj0thlic1O9zn6/mbNnPaysVHA4guzstHT7uHrVhSg6uH9fn641Omohm3WgKHDpkol2u8mnn1Z4//0gt27pX14XL1p58kQPDM3OmnjzBkZHRcJhAZtNwm7vkUiUOThoUCi0D38XD7du6YGPK1fsPHw4+P2sVhGrtUupNDju5KRZ8+/plwouJU5Z1v89FMJhB+fP+w7ldBL5vPpyPu2eOw1IXFoKYTaLWCxGqtUO29tq0lgwaGN3t/pDt+8nDkxM+Mhm6xwcVNnbq6EoMDFhZ3u7oWNYHQVbolEXo6OqZ5PFYuDu3SSNxuB6f/BBhB/8QP+9L18eYWOjSDzuxeUy02x2qde7JBKVE1GX0aib9XUV8Jya8nLv3v+N3f7ZtdI/SqOQy+VYXV0lGo0SjUZPfH5cS328jsZti6LI9vY2RqNRkx/IssyDBw9YWFjA7VZjTEVRfNtiIeEdUPOTWu96sJ+iqtfrLC8v861vfYtCoUA6nWZ0dJRKpUKv18Nut+tAmb/sOZRIJGg0Gvyzf7bNn/7pprZ8etpLNOpma0tha0v/vn7vvRBGo4snT+rU64NGYXnZR60W4Plz9X0hCPD++w5u3ZKZnbWxsTHM3JzM1pZI/dAc2OFQWHpP4k7KoLFOrp6V+OQQZLnyocRD2cCNWJc7t/Xf44tf6/HgoUHHmgFYvtzjkwMDvZ5+udetsPiBzA8+0gMXJqOC4X8DmwDCf4FCSd3OZVeo/YxeYnRVlGg8gJfBkwDO+9d73LKpy12KTOAvBLa3RPzLCoWu/lxuzkjcthw3KpZ5L5Lj0f/jp3okQnt2vMqbrh6UeT8ucat2DKA6JaL7A7fEDwrHACurxMPcYJlZVJAPoHfE8+d9v8Stx4N1Qk6F9NPB54Kg4MvDmUWZvZ5Apixg2YBqVV1nflKm+Aqmzih88kTk0mKDe7fUPmxuDkKhNMlkl/X1LktLZp4+3db2HYtZyWQOdD6K584JvHgxACfMZpFo1Kz1EqCCKH6/UetzTSaRyUkvw8MqENFu90inGyQSFRYXh3j6VA9uHI/XNplEvvhFdWJMEFR/vq0tNYxkZ6esi8d2ucw4nWaNLe33q9YMw8N20uk6u7tl8nn1+1+44OHZs+MTwaovTT+1NRi0IYoi5XKLly9z2vjGYFDlW0elWv1z39oqEYm4MJsNVCodXC7ziVSrWMxDJlPXTJG/9rWz/Nt/+wt81uoncRaLRVKp1A8FW16/fk02m+Xy5csnzIcBXr58icfj+aGSzn7cdj9l6tGjRywsLGj7UseSz7h27ZoGzryFHoHwzqPm7a5SqcTt27f5kz/5E9bX1/m93/s9vvOd71Cv1/nyl7/M2NgY8XiccDiM3+/H4XD8D6n/ZrOZdrtFIGDhm9/c0H3WbPYO2SeeQxmSU0tN6iPKyWSVVKqmS0IClR559aoq6egb/tZqHVotic3NIltbZU2GdHBQJxp1a4asfr8Vv9/GpUsjeDwWTYaUTrfxeASePStoDzkAr9dKudzGZBKZmfFz5owaHT405GB/v6o5v/e1sMelVu+9F0GSFBYWAkxMeHG5LLhcZl69ymt0zWy2QaPRw2Ix6ECdarXDe++FGR9XXwiSpLC5WSEctvLgQYZ0WmV4dLsyk5M+DbgKh50sLAQRRdVTZmenQTJZZ2+vxv5+nStXhtjfVxkSbreJpaVhjEaRVgtWVkpkMupnkqQQClnw+ezMzbnZ3a2zuVmn0ZCIx62k02p61NWrLpxOeP68QiRiJZnUo0CiCB9+6KBWq7G6WiadVn8Lo1GhWNQ/aDOZHkNDJrpdhfl5I2fOgCg2GBqqsrGRJpUqsrtbOowc7elmKRoNmVarpwMpwmEb+/uDRrTXU7hyxc/u7lHfF4l43ESpNPjds9kWPp8Jg0EgHncyPe3CahUYH7dhsyk0my0KhRqZTI1iscmbNwUKBfWeS6VqTEx4dOywXk/m5s0xwmEXQ0N2ul2Jzc0SExNebt1KcHBQp9WSDqm/Hp1n09SUGq0ei7lQlC7lcvdQzlbAYlHY3h58v1Kpq6UAhEL2Qw8lF2NjTgqFls6zqdORabd7uobk4KDOmTN+QiGH5tl0cFBnetrHJ5+kNJlWLtfk8uVRHTgoSQpnzvgPPaLs1Ost9vZqn0srDSp7xWKxsLOzw8jIyInP7XY7u7u7mEymU1k3TqeTTCaDLMu4XCfTEKxWK+12W0uZ2tvbY3h4WDNVFwQBr9fL8+fPNb+c/n9vWb2TPv1k1td/3Cfwrj5fKYpCIpHgo48+4pvf/CZra2v87u/+Lvfv38fj8XDt2jWi0SixWIxQKITX68Vms/0PByoul4utrS1+4RfmuXcvd+jlYWRzs8bWVo2zZ33s7anvqelpF2fO+HjypMTYmIuNDfXdOjZmYX7ezf37NUZHDWQyJvx+kbk5B/fvq++OfL7Hz/2ciadPLRqTxmRSmJuT+eSukWvvyyRzIvGwzO5rkc4hsHGwK7B0U+bTRwYkSd9LnnHJrB7rDwRBIZiFgkPQAQ8AI1aFVl4gfwzYkWWBuQWFsYTC2usjHnpdgfiCQulwPwGDQvG/CGSzAtKYHsABGHUrJJ0CIgqxj+tsvFbfDzNTMuljpsQ+q0LadszoN1Fi69tOii39ZMN82MjusfSmMYdC4pj0adissH/sOGGLQqKpXzZlU9g9YjIsKQITZoXikWxwv03hIDVYp94RGDHI1DQ5lMC5cZn7twzU9+HqnMzIkMzerrpNrigw7FD49KEBv0chGhUpFds0mwK5HIyPm3j6NE8gIBAIGLhwwYnXK2C1iuRyHS5dChxLyTTg9cqaRYIkKYyOOjGbZcbHVU+XSMTJ6KgTj8d0GG3dIZttYrebefYsrXnzKYrKWFYURZNA2WxGXC4z8/MBwmEnNpvqJ7m2VmR42MH9+/vk82r/psqIBmMOl8vExISPmRkfXq+ZTqdLPt8mlaqTz9fJZhuUy0fl+l1mZlRz4clJD3NzQSwWIwsLQS3paW9P7cHicS97e4MeSlHA6VQZ+rOzAaanvQSDdhKJCiaTyKtX+cN91Nnbq3D9eljH2G82u3zxi+OMjjrx+42srBSIx73Mzp5Mz/xRqi+BMpvNVCoVut2uNll1tPx+P69fv2ZsbOzUcAa/38+rV68IBAKnAster5etrS0tZaqfHtUfX/ZNg4/65byF/jTwzqPm7a1MJsNXvvIVarUac3Nz/Nqv/Ro+n4+ZmRl+67d+C6fTiclk+kx/FB6Ph2p1j3bbcTiQCxCJuJBlhVjMw6NHB5oBaqnUxueznvBcUY1TA8RiHrxeK41Gl9evCwwN2XnwIEU2q3ptVCodlpcHD1i328z0tJ+JCS9+v+3wuzY4OKhTKLTI5Zo6aVE222Zmxk253GFqysfcXACn08zcXIDt7cHDcW+vSiTiOsFgEUUBj0f1v5ma8hEI2NjaKmG3m3jxIqc9YPf3azqTMFBnp27ciDA6qr6MDAaBdLqBKIq8fJklkahpMrFSqYvfb6Jel7BYDJw5E8DlMjEz46Za7ZBON0km1Vj0UMhKJqOXEjmdZpaWQrjdZlKpBru7VRKJGnNzPvb31ethtxu4cmWYbrfH0JCd27fzOhPmQqHJz/3c6KE0pUo+r57b/n6dqSkvxaLE+LiZiYk2+XyDdrvDzo7eQ6ZY7LG46NJ079GokXPnDMTjXXZ30+zvlw6N2RrMzNjY3R18D0WBixdd7O4OJDmNhszFiy5SqcFvmsl0CAYN1OtHDXUFqtXW4f1pYnzcTjRqw+eTmJ72MDpqwWaDiQknb96kyefrJJOVw+h3F0+eHGjgRrstcf78sO63HB62Mzenmkz3KarZbINSqU0mo/q89FksiUSV+fmAJouKxz34/VYuXBjCYOCwGVHptw4HrK/Xtb8NRQGXy0anI+F0mpifDzIz46fdlhgetrOxUdJ8kLa2yly8GNKdZ7Xa4fr1UWw2E3NzfiIRNyaT2oitrRXY3h54NpVKbYJBmy7GW5YVrl8PEw47tb9L1bPJy927+5RKXR49OuD69TEmJz9bjHW/UbBYLBQKhcMUiJNgSyqVol6vEwgETmXdHNVSn9Yo+Hw+1tfXcTqd7O/vMzExoQNijpsTv4X+NPAOqPlJra//uE/gXX2++ta3vsVv/uZvIooi165d45/8k3/CrVu3+M3f/E2+8pWvYLfbP9PssSAIuFwuksktxscj/Ot/vaJjk2azDb70pQh2u5XV1TqJRH+Cq8bCgp/ZWRWw2dlRt0mnm/ytvxXg4MDCxsZRto2Bx48rOBxe6nUBg0Hh4kWZx4esDZsRZCdYupDNDZ6rVgvMhmXW0vrvdmNW4vF3DSgRFWjo182IzIPvGVi8JnPQGOxHQCFaUvD7OAF6AFx0SXzv+ydlEnMzMgnl0HR4Q2bjjUi3JxCbUygdY8mYgNKwwM2kzJPvD1gDM1GF3WPR2c1Wj3ZwkE51fafLoz9zMj8psN/QrzvuVdjr6Je5zQpZ4ZiBvgjlY+CUTQSjojBllJlUFOJdBU9DIdRUiEoK44qEr1EhZjNiFQVkoCkJtCSBVl6/r7PDMskj4M3EqMLeuogiCyS2RcbcCmG7gtuvAjVnF1TQrVEX2NwwcOFCh9HRNmNjAq9eGQkEGmQyXfb3e2SzUKlU2d9v0+ko5HI9rlxxYzQqBIMW3G4zfr8Jo1HBalXTnvb3mywtDfPo0QHJZI3d3SqbmxWmpry8eJHV+qBcrnk4OaUCPyMjDkZHXZw7N4zfb8VkEjUfP6fTzOPHBxooAyBJsuZH6XAYOXMmgM1mYGbGR7crkc+3SKfrrK8XGRoy6RhorZbMpUthEokqY2MuFhbUcYrNZqRe77K/X9eMiVOpGkNDNp2yIJmscuNGGJ/PdmhM7KBYbDE15dMZE1erHcbGXDrvHlFUkzdnZ32Mj6s2D8Vii7W1Ij6flWfPclQqHb73vR2+9rVzOByfjQHcj+z2eDy8fv2aYDB4ooeSZZl0Ok0ul2NsbOxEbySKIi6Xi1evXp36eT9u+/nz5wSDQfL5/An2zXFz4nc9mL7eSZ/ewup0OiwvL/MHf/AHjI+Pf659ZTIZXr3a5atfva17SImiGvf7+vUg3npkxMHFiyFqta4mBymV2ly7FubBA71Px/i4m0ymTrstaTpPn8+G2SyytlZkb6+iPdTeey/MvXv67ftUyHjcw8iIA4NBoFyusrXV0A3sT5NagSrfarV6OJ1mGo0ue3sVZmf9JyQzZ88GdV4kJpPI4uIQTqfKHMlk6lrE+HFZFuh9bWIxD6GQDVHscnDQJJFoagCKx2NCFFUX+aP1hS9E6XRUMGh7u0wqVefcuSFevizpADGDQeDLX56kWu3x6acF7RrYbEYCAT+JRJNgUJ1dW12tYDQaKJXMNJt6Bs3f+BsjFIuyLtobYGlpmKdP9V4nP/uzPppNSCTKGjMkGrXoQBmAUMhMNtvRSbYmJ61sbuoTla5ccfHwYQFRhKEhM36/kclJE+VyC5Dp9Xo0Gl0CAZF79/Z17Klo1KQDfkwmkdFRi47NZTSKRKMONjeLiKL6ewwPO/D7raRSKgW2D/71JXJH6/r1sOY3Ew47iURcOJ1m8vk66+sl7ZpbLCJ+v4VUqnli+08/TTM2ZmNkxEu3K+N0mvjv/12v056bC/DmTV53vTweC+PjTpxOVQpVKDTZ2ioxPx/kyRO9fvu4BMrvt3HlygjNZpdGo8f2dpl8vqkBUUfZQwaDwNyc6r9jNKp/e9/85i/j9Vr5rNXr9ej1ejx9+pTLly9rbJd+3b59m3PnzrG6usrVq1dPZbv0tdSnxUECNBoNnjx5AsDNmzdPfK4oCo8fPyYWi/3QFIKf8nrrvvBfk3rXg/0U1srKCr/+67/Od77znc9N8V9ZWcHr9fLrv/6Ejz9Oce6cH4/HyvPnRTweK7mcQXuPe71GFhe9VKvw/LkB6XB+xeMxsrDg4PnzFi5XlFRKQRQVbtwwcOtQ9rK8HOTBAy+XL8s8eHBEfmNWuPm3Jb57Ww+WLJ+TSOwJJIYFTRoV8rSorVuo1wUu/T2Jx/vqfsIemcpDgVpd4OYvSdxuDvZ/c0ji9p8ZuPK+xEOr/lo5TQqXJYnv108CNe9/QY37vilJ3P7DwXbv/bzEvdpJNs/NyxK3fl+/n8XZEs/dJycigucVagosPpf55Lvqvt6/KnErp9/vYljiuaxf5jYpVDzHBruCgskIIyaF8YZCaxeSrwXSaUGXnDUVktnY1b//LkWqPF5VJzj8foXxGZmgQ6GMwHpFpNQSeD8scevjwXnEh2S27wz243YqNF5DryuwsCQxHFO48+cGOm312AsLPV69OgDAbocbN6DZLJDJ9Njc7HDtmpW7dweS8Hjcyv5+Smf8u7go6vwC1djskxKokREzsgyBgBWbzYiigMEg8+RJWjeZpPaceglUvy9TjXq9eDwWnE4jKysqy73fM0UiavDE0QlKh8OE12ul2WwTiTjxeBzU6x1sNuMJm4LT+r+lpRDtdpdAwE6vpwKi/fPN5/W98blz+rHA+LiLxcVhbeJMnfDrcvnyCI8eHeiOMzrqpF7vUKl0cDgMfO1ri/yrf/U3+KzVl0BVq1W2tra4evWqrv/pL3e5XHS7XWZnZ0/dz9raGqIoMjU1dern+/v7JJNJnE7nCb9BGHgSXr169dQJu7eg3kmf3tWgDAYDk5OT/PN//s/55V/+5c+1L7vdTqmUIRQK8L3v6Qd/s7MBIhGnLg0pk6lTLLbY3CxpUqBkssrS0jAHB3XMZlWGNDrq5OzZIJKkptL0ZUhut4U3bwq6c2g2e5jNBoaGVDnIxISXarXGpFCpAAAgAElEQVRDOOxkdTV/iHpXyWTanDvn0SUDdbsyi4tD+P02Zmb8jIyofiuqaWuVjY0SqVTtEEHXy15EEdxuC++9N8bwsAOHw0Sp1CaRqBIOu7h7N0mx2NIADbvdRKPRRZIURkYcnDnjRxBkRkdVCVY22ySZrJFINAmHrZqMCFQj3aWlECaTyMJCkEhEpSiqUpUWa2slLWZQTSNSTdeWloaIxdxUKqpzfT7f01z4QZXtXL8eIBh0sL1dY2tLlT/Val2Wl4Ps7rax20WuXXNjNis8fJjD5bLo0psAQiET6bTC3JyVuTkDnU6NV6+yNBo9ksnB9S6XJc6fd+giuOt1iYsXnaRSg5ewIMDVqw7CYRMTE0bCYYFms87wcI9cLke1WiaXK1Es1tnczLG1VSSRUFlNVquBgwM9yHNUPgYqY2Rmxs/+fhW/38LMjI/JSTehkAoG1mrdw9+jSqvVY2+vomsScrkGoZCDSqXD0JCNhYUhLBYDMzNeSqWW9ltubZUZG7Oyuzs4tiQpxGJeyuUW09Nq8lckoqYCdLsKiURdkwdub5c5f35IZ36cyzX50pdiDA05mJhQmWiFQouhIQcPH6bY26uQy6kgn9rkCFrCmdNpwuEwc/78EMGg/fB+qR8mh7m5f38AcDUaXc6fVxPO+iluZ84E8HgsuN0W8vkmW1uqXOoXf/H0l/dfpRwOB+vr67pI7X5K09TU1A9NCACw2WzUajVqtdqpqXYmk4lut0upVNJivo9WP8Xg5cuXxGKxtxGoeceo+cmsr/+4T+Bd/c+voaEhXr9+zfb2NhcvXvxc+/J6vbx69YqvfGWJb3/7gDdvquzt1Wm35UOJ9hCSJHDhgodEosXGhprkePPmELu7PZaX3RSLCm/eqIyIuTkTnY6FqSn45JPBOy+fb3DjhovbR/xmRFHh8uUOlaJMujoAOW5elLjz3w1UCgKLNxQyZQGzUSHQ6ZFJq9vHowqJroggKEx0FE16Y5Cg5DuM4nbJ7H5PpNMRqJUFuhG9bOmKIvPqnoFm6OTz2mZU8IzAmz8RdZ438bDCrnJMUmRoUbndpdTRMzZ9TiN5x8mJgcWQjOuOwtMjCVSjfoXkMflSTxJoWvTn1pYFQl6F+qEcbMQks9RQCL5UePXnBnY/FdnfEanVBKJBhfKRBKdaCwyKyhzul9PSpVBSz7vZFEgnRYZlhU/+PwOtDZixKwy7ZFwmKDYEJFmg1BAImWTNb6jdEViclkknRbIHItuvRa5dbRKPSTgcAisrRhYWOmSzPbpd2N4Go7HOxkYDq1WdfLp0yUo4bCASsWCxiCwseDAYJDweEz6fGTDi8ymMjbkYH3cQiTgYGXESDlsZHXXg81mQJAW/387r17nDyTG1d7fZzBwcVHWTg30JlMtl4cyZANPTfrpdmaEh62G/39ACFCIRO5nMoA+tVHrcvDlOrdZhbi7AzIwfr9eCz2dlba1EOt08ZLyosnWzWdRZF6RSNa5fDxONurXQhTdvCszMqJO5fRVBs9nj3Lkh9vcH/ejQkI1YzEMs5sHns2pR3Ds7FQwGkdXVvMbqTqVq3Lgxxt5eFatVZdiPjjqZnvbR6aiMoIcPD4jHPZw/fzJm+0epPrPZaDTSarWo1WpauhOok2CiKDIxMcHm5iZ2u/1Urxqfz8fa2prmb3q8XC4X29vbWCyWUyPBDQYDNpuNvb09RkdHP9N3+Wte76RP70pfU1NT/If/8B9wu926xJO/agmCgMfjwWzO0WjYcDrNmqP61laJ8XF18NdoqAPzo3ISg0FgerovQ7Jgt5vI55vaA3Znp4LNZtI8aADS6TrXr4eRJJm5uQBTUz6sViPxuOcwhammyZBcLjOlUkv3cG82e8zN+ZmZ8RMOOzEYRF6+zDE+7ubevSTJpIqCq9KRsI5xEY26NW+PvndOOt0gk2lQKLTY26tolMtEosr588Ok03V8Pitzc368XjMTE45DyUuLVKpOIlHD67Wyv388ulnA7TYyPR1gdtZPMGhnba1AOOziwYMUiUSVSqVDs9ljaWmYREIFAuJxD2fPBmm3uxgMRl69KpBIqAlCzWaP8+cDJJNN4nEni4t+ej2ZZ89yjI252dvTMzwcDjh/3svBQYP19RrFovobxmJWUqkBW2VkRCAUMhAOCzx7lmF3t0at1kOW4dIlD7u7elPhWMxKMqkus9lEZmetjI0ZCYXA4+nQ7VYoFouMjorcu7fH7m6JREKNajxzxs329kDi02j0uH59iL29wYswl2tz8WJQB8wcHDRZXPTg9RqYmwsQi6mpAJOTLtbW8qTTNfb21Oj3mRm/LjlMbXbVe6EfHR+NugkGrdRqHXK5liZDKpVUgOToTFI63WJhIYjLZT48tod6vcuZMwEePx7IA7PZBmfPBnUvdYBAwE487mFqStU0dzoS6+tFzGYDT58O/IwODuraSx1U075w2MWFCyGCQTsmk0GL4lYUWF8v6NgyuVyDcFiN8e5Tfc1mAwsLQVKpmhaVub1dZnrax/a2eo1evMhy9myQubmTHjI/SvUbBZPJRL1ep9lsamBLuVym0+kwNDSE1+tlfX0dl8t1gnUDPzwOsl/NZpNyuYzVaj01jrJvMvwWGgnDO6DmJ7W+/uM+gXf1v6aWl5f5R//oH2nyp89aBoMBURTpdEqYzW4+/lidgRdFuHgxQLfbRRTNPH5cptsdNENDQyKxmJ979xo65uzIiHKY2jh4x/v9AtGogCzLpFJOQGWhLC93uHdPJr0PM+cNFEoCF+YlHn+symoApqZkEg2R5bjMp48HQEi9INAdhRtheZBKBJQKApGLMrUuxEsKezsq+NFuC8xeUjSfmst+iQd/aqDZFIhfkCm19YBIpyngTSmkM3rwxGpokXcNnvEhY5f6fzEyETWyV9evW6uDMqIHh4ImhfGXMvef6Nk3djMUDPpzaHYFggGFxjGPnhm/TFCA2LrM+n8U2XkqEnErJIv648+OyuwfWSYrApNDCoXqYH8yRlp1/f4nRhV2d9V49EJWYGddpPRcQEzDhbhMfExhyMPhOofnNKmw+2bw77ExuHu7TS7XZWysw+ysAYejS7Go0OvBzIydZLJMrwe5XA+z2Xxod9Bkf7/F3l4bu11ia6tCsdgmn28TCll5+bJIKtUgkaizsVElFnNz506STKZJrdYlnW5w8+YYe3uD3juXa/LBB+OHk2F+4nEPZrOBWMzJ6mqRg4PB5JbLZSCf1/ecgiDi81mZmPBqE7KJRAWfz6b5Zu7v10gkqty8GdEdu9HocvNmhOFhdWLM5VLTN2VZ7aG2tlQGsiyrDPpIZOCb6Xab8XgsXLo0gtdrRZIULW1KTW5KaQCQJCkEAjYqlTaCIGgWDQaDwMiIg2Syplk0rK8XmZnxab3i97+/y9/9uwufOQWqL4Fyu91sbGzoeqiDgwPcbjdOpxOfz8eLFy8YHR09wWw+ze/veBWLRYrFIqFQ6NRUJ4fDQSgUehuNhOGd9OldnVZ7e3v84i/+Ih999NHnjqPd2Njg009L/OqvfqQDRrxeC6KoxstNTHgYHlY9WiwWA3fuJHQo9Q+Lt97drRCLuXE6TTQaPSqVNul0/YTUanbWz+rqwFHdZBL50pei1Os9ZFkhm1XBo5kZB6ur+sFwOOykVGpp/iIq6u/C7bZwcFBna6ukMSqOO8zDQH7ldJqYmPDgcBiRJIn9/RrJ5AAAMZtFRkYcJ5J/bt4cI5ttMjRkQ5Y5BJoEXax4/zzL5ZYmo4lEXIyPu/F6bTx+nCWdHoATFy+GePJkwD6KxVxEoy5MJisffaRPKRoettNoWACF8+c9lEptXr0qs7w8yt27+msFcOVKCKtVddNfXVVfatev+7l/X/+9AgEztZqRdlu9KaJRC+PjJsxmib29KpubVWRZwWAQGB426ORAFouIwwGFwuB39vnMtFrtY7Im9aUrywpWq8jYmJ2JCSetVhNJkjV21Oiog9VVPRsrHneTTJbpdqUjx1CjH0URolEPDofpMCJd4vFjffLUpUvBE8uWl9UmY2xMTWAql9t0uzJbWyWN2QKq7Gx42M7OzqApcLlMXL8+RrXapFZrUShImun28XtuZsbH1laJXk9BFCEe9xKJqMdMJKpsbZW1yPErV0Z4+FBPoe3Td4NBdYbHbjchigIvX2bI5QYAjtdrwWQSdRHkgqBGUNbrHcxmCa/Xxe///t8mFDoJgPyo1ZdAPXv2jPPnz+N0OtndVSPB+4lP/YSA69evn/oyPy0Osl+vX7/G7XazubnJlStXTgVz3tJYSHgnffpJrXc92E9x/eEf/iEfffQR3/jGNz7XfhRF4eHDh0xOzvKrv3oXSYK1tQrptPrMnpvz8eaNhCzD4qIHUTTw7FmFS5eGefxY/dP3ekXm563cvVshHneSSATo9WBqSvX4SCTUd8n8/AyvXxt4770Od+4c8bL5UCTbMJFZE6iUjzA+PApLX5G59e2Tz+sP/88eH//FyZSnm1+VEAS49a1j6Ui/LHGrbGDYLtP7vkAhp25343+XuHNMdnSl16IsKqwV9bP/NotM+6qAjIDTqDB8X2FzReTGBxJ3qifPMfa+xE5LXT5mkTH8VxgLKtw9djyzUUGOccII+cIZiWdHYrYv2CVGUjLf/q5+QuCDcxI/WDuW/HRG4gev9cvem5S4t6JfNmzqkCkOevjFuMzzh/r33/mQxKdPj0jAliSKGRiegExdoN6ExP3BNjabgihXqR+2lCYTeL1JarUes7N23G4zvV6Bra0mBwfqvXH9usD9+4M+Y2nJydOnu7rzmJ8XWVkZ9KkWi8jIiIGdncphf2xndNSB1SogSTKNRo9Mpk4u1yQYNJFIDPpRNb3Vy6tXJd0xvvjFcUqlDi6XiXZb7cPHx90n0mgnJ70kEhXdxNrkpIdw2EWj0aDVUhnOlUrn1HTPoxKoflJsJOKiXG6zv1/TLBo8HgsWi4FMRj8hq/boaWIxNyMjTkwmEYfDzMcf7+p63NNivAMBG06nCY/HgiB0WFgY49/9u1/4zGzgvgSq0Wjw+vVrrYd68uQJZ86c0cDkRCJBqVTi3Llzp+5nd3eXer1+qrzp7t27TE9Ps7Ozw+XLl089V5PJ9DaGOcA76dO7Oq08Hg/5fJ4HDx6wvLz8ufdVqezR6Th48SJHNOpibi7I6KiTWMzDwUFdm5Hf26sgCCp4c9RnI5ttMDnpIRJxMzOjptMcHKhyo4cPDzTzrUKhxZUrozrUWxDQzIyjUQ92u5FSqU0yqcqWVlfzFAoquyaX63D2rJdsVh2MDg3ZiETcLC4O43Sa6HQk7VwtFiMvXmS1AS9ApdLG5TJr8pnpaQ+dTleTuKgxgjX29xucO6c3o5UkhWhUNSSbmwswMeHB6TSzv1+jWu3y5k2BRKJKsdginW4xM+OgUFCZLKIIoZCDy5fD+P1Wej2ZVEqdBWg0OlSrXV3KTyZT52d/NkY47MRoFNnerrC7W6Xd7iJJBm1dUYSZGTeLix62tmpsbtbIZtUZgWSyzsyMj0Khi9UqcPmym5EREehy/36RXG7AdkqlmoyNOahUBi+YQMDEjRsu/H6FdrtGKlVib6/M+LiFp0+LOvPcpSXvCYnQlSsBXYpTqyVx48bQYWKSi8lJJy6Xgfl5J/V6nXK5QaHQYHOzxOiojXv39slmG7TbErlck+vXQySTR5OU2ty8GdExtBwOEyMjNl6/LpJK1TQKrMkkHIJ+g3u2Wu0xMeFhYsLD1JQPv9/G+nqB8XG3lqSUyTTI5ZosL4/pGFoGg8D588NEIi7CYRdGo0g226BQaFIud9jZqVGrqSDV3l6FCxeGNSAuEnERCjm4cGEYs9lItdrV6LNut0UXCwnQ6UhYrUaMRoG5uSAzMz7abYl43MPr1wXte+7slLl0aVR3nq2WxPx8ELvdqDGCrFYjpZJq2r27qx73zZs8v/IrC3zecrvdrK6uEg6HSaVS+Hw+rUnoG/+mUimGhoZObGuxWJAkiUwmcyIlant7m1gshsvlYm1tTSex6tdbamIH7xg1P6n19R/3Cbyr/3V17tw5vvGNbzA/P/+56P6CIOB2u1lff8PVqzP8i3/xqc6Lr1Bo8fM/H8FstvDiRU2TVadSda5cCRKLmSkWO7x5owI7pVKH5WUvkYiR9fUO+fzgpRePK0QiZu7d0/vXWUQZoWcgta8fZE1PypiNCom0frnXLRM2KmykT4IjcZ/MvTsGncQHIOBVyFgEJtMK22uD/YWGu+wzANgXLWWe/rmT6TM9kk09INKTBCbmFCo9WNiWWXl0aIpsgbz55LN/PFQjg4UJq0z7z2B/R8RuhfyxcZUkC8SjCsVjzJ6ZIYXdlsisXSayIvPsPxoYtkGipL8eQx6FVFm/LORRdIwagPiQwu4xltB8BPazg2W1JkgNNG8ggNm4wu7mYJ2uJLDzUmT3tUh+U8DSU7j5XodgUKHeUKVXly/LJPbU31mW4fJlCxsbVdLpLru7LSIRM6ureRwOmXjciN1uZGJCIBazEo1aD6X6LoaHzYyPO4hGHdjtJkIhFRAZG7MRCJjx+200mx1qtS7lcodkso7LZeThwwNSKRUo6fUUQiG7jgUMMDbmIRp1MTmpJmgqisLmpgrcPH+eI5msUal0SCSqXLkyqmMsGwwCH3wQZWTEqbGV9/dreDwWnj3Lk822tMm1dlvCZjPRbPa0KG6Hw8zCQgBBEMjnVYuGjY0SExMenQdNuy1x5oyfVKrOyIiD+fkgk5M+QEEQBPb2qlpi5/Z2iclJH7ncYGIsna7zhS9EcDrNnDmjsvrbbYlQyMGTJ2nS6TYvXmQJBGxcufLZniN9ZrPBYECWZXK5HMFg8ERKk8vlYn9/XzP+PV5ut5vd3V3MZrOOKSjLMolEgrm5OSqVCo1G41SZ+rse7GS9Y9S85dVut1leXuab3/wmY2Njn2tf2WyWlZUd/uE/fKQb6Kmod5BXr/TMgy98YZxCoYXXa6HblQ+d0+0nzLNCIdXUq+/BAjAx4SUed9PtyprnTbPZO5V5cBQJ9/msxOMeRLGNwWBlZ6eqDX6NRpFYzM3Ghh6dv3kzwv37ycOEKQu9noTRqPDwYV43GI5EnGSzTR1rwmw2MD/vx2w2YrEYqVbbbG+XWVgInkD3j5siBwI2ZmfddDo9ej0D6+tF6vUuoihw5oyflZW8bvv33x9nZ6fK+LiHblfizZvC4YPXTD7fOrFupSLjcplYXS2Rz7cxGARisaDOxFcU4ctfDlOrKTx/XqRWGzR/Z88O8/LlcWaQn3YbLBaFnZ0yiUSdqSknGxt6A2GVadPVmDagGiZ3ux2N1RQKWZmctGMwSIBMrdYmk6kBymEa2GDbaNRJMllBkgbNYyTiJJ2u6Ngy4bADh0PE4TDgdNool1ukUjVMJoFUSj/bce6cnxcv9AycL30pSqnUxuk002x22d2tEA67ePpUb9g7PGyn3ZYol9vadZye9jM+7qLV6pHNqma/3a58qjHdURO5YNBGPO7F7TZTr6tgXr9ZMRpFJie9J3yb3n8/wiefpJiaUlPRej0Fq9XA97+/q2O8RSIuCoWmds1BTWI7ezaIyWTAZBI1c7ulpWHu3PnL79l/829+nl/91UU+a8myagqdSCQOwdwi58+f17Ffjhr/nhbZ3Z9dnpqa0vnZ3L59mxs3biAIAq9evcLpdGpMnX71oyLfwnorv/Rfg3rXg/2U18uXL/kH/+Af8O1vf/tzzySvrq7idrv5p/90nT/+4y1CISuzsx42NqrUaj1MJr9OFrK05MZsNvDsmeHYu9jA+fN2Hj/2UK8Plvt8AuPjMq1WjDdHZDKRiEKvV2Z61sutOwMGS3RcplZuEZ0VeZocyFWNBoW4o0al5CAbEHSAgt+t4M4ppEIC7WPpTHa7wtIX29z5z3rp6/BIm8yc+o6Y9cns/EeBdlPg2s9IPGifBIKWf05CTMPtPxt8ZjQqiBegc0ymdGmxQtlppfgnJo3BYzYpyPGT7Jnr1yTuZ4+xYiZ6SCmBu98ayMHOxCVel/Trhf0y+8ekV+MBmb38MWbMuMSn66cwbx7pl027ZNa3BtsuzUg8/Vi/zoRXZmt9sM4HH7T5wQ/aCCLMzorE4wK5bJfNTZFiEYaHIZ/f1kyoDQYYG6vqghpu3rRw+/agJxgbs5LLFXR98dKShadP9cEaly55ePxY39NeueLn4UO1twoGbYTDTsbHHZRKLUqlFjs7FWq1zql9//HwjkDAxtxcAJNJpFbrsLen9v4Gg8DMjJ6Nr34PdZ+CoAZLjIw48fksbG+X2doaeGye1kOZzQbGx13k800mJrxav+hymfnud/UMo9PCUKamvJhMoi7Rtj8+6kvOT9veZjNy9+7/xczMSR+/H7V6vR6yLPP8+XOmpqZ4/fo1N27c0K1z1Pj3NDVGq9Xi0aNHus+r1Sqbm5tcuHABSZJ48OABi4uLOJ1Obbt+XPhbWu8YNT9ttbe3xy/90i/xL//lv+T3fu/36PV6vPfee3/l/RiNRmKxGL/927/NV77ylc91Tg6Hg2Ixg9/v5bvf1T80g0EbQ0M2jfViNhvY2CjR68m8epUnmaxSLrdJpWpcuTKiQ729XivXr48SCjm0qGDVNNbIkydpMpkGvZ46QC8WVeCnXu/idJqYmwvgcKjxxu12T4vwTqVaDA0Z2dgYAA2yrDA66iSfbxCPe5id9REO2ykU6iiKSoFMJmukUg2SyYbmQdOvSqXDF74wjt9vY3ray9CQnVarh8Nh5unTtOad025L1God7HazRm+0Wg04HGYuXVL9RARBRdETiTqhkIru9xkwfSpltap6iZw9O8T4uJudnTJut5XHjzPs79dotyVaLYnz54dIJuvYbAbNXPjNmwJGo4mnTws0m5K23/FxO5lMl3Pn3MzMOGg0Orx4kWdoyM7urh7ICIctpNM9xsYsXLhgx+PpHRoId1hdLWmmxcVih4sXfRwcDMCaZlPi+vUAe3tN3G4js7MOxsctzM/bMJl6tNsNCoUqiUSZaNTKrVt7mot+tdpleXlE50tTLne4cWNE82cBBZfLxPLyCKOjdkZH7ZjNAqmUSut+/DinsV0ajR6xmFNjWB2972IxD1NTfk3S8/p1AatV9YbZ31fZWse9YQBtZiMUcmh+Rn1vmDdvCmQyDWRZbYCP6prdbvOhZ5OJs2eDVCqqMfH+vmpMHIu5WVsbyOFkWcHrtdBsdonHvczNBYhG3RSLbWw2I2trRXZ3K5q3zPXrYZLJwXlWKh3efz9CIKDes4GAjXq9i9Eo8upVju1t9Rp1uzKFQovhYYcmAbRYDNjtJq5eHSEYtCNJXf7iLzb5lV+Zx+P5bClQfa200+lka2uLdrvN5OSkDjw5Gvc4MjJyQgJ19PO+VrpvStyPhfT7/aysrOD3+3WNgcFgeFuBmneMmp/M+vqP+wTe1en1P6sHGx4e5uXLlyQSCZaWlj7XOXk8HlZWVvilXzrP48cF3rypsLOjsnXbbYmlJR+JRJelJTfBoIFPPy2RTDYOgwPUXuTaNQfVapuVlTrvvedhd1d9Hs7MiAhCh7W1DlNTBpJJdbZ8clKh1SqRTsv0uj3qTQeKIhAalhGUNpm0QCalMBQ3UG+q+1qel3l210q9KrBwTSFbUpcbDQrTZpnXTw2cvylzcIx1MumrUk8IFGp6lky9ZmT0nIzFANJtKB2CG9021L0nn+fnTBLf/XO9xFWWBWYWFHJN/fpTToE3/0mkegRYkWSBiWmF4rF1J0cUdpvqsQUUbjhl6t8T+OS+AY6AUfWmgGzWe99UmwIel0L7iAys2gKXFTpHlrW6Au2W/rh+l8LBcZZNVGYvMVhWaQjINTSwCODs/8/emwbHkab3nb/Kuu8DBaBwF24SBAmSIAmCANjd07LaktvySNZa0sSEZfuDYsJjyZYdtuUjrA1FyJY8+mBHOByO0Eo745FtrcIzK21IGu1Ma6a7CZ7gAYAgCB64b6CqUPedlfshUVl4UcXRTHMc2xriiehoRlZmVlZVIt/n/b//41SJ9aWjcicd4XABFAiHFFaWFXK5MJFIgvb2PG1tCmfO6HG7FfR6SCYVBgYcQu+TTuvQ63OanCiRKHLtml9YvN3fl2lu1pFIFI8cJ9PSYqWpyUFXl5uuLjd6vZ5AwEoqlefgIMfubprNzST5fIHFxajGdN/YiHP2bL0mLWposOHzWRkebsTlMmvWB+vrcQIBO/fubZNKqf2pooDTaSadziPLiuDP197uZn8/zf5+ho2NBC9fHtDd7RXk6vF4nitXmgmH0/T3q56SDQ12zGa95n1T/r8q37IKwRQbGwmuX2+jqclBMKgy7NfWYvT0+Lh5c5P19QSRSJZCoUQg4BACStxuM36/jf5+L16vhWQyy+TkBn/7b59Fkj5ZHyNJEqVSCY/Hw9zcHHa7vYrtp9frsVgsvHz5kkAgUJOZbDKZWF5eJhAIABAOh9Hr9Xi9XiRJ0s5/NNJbkqQ31Z8GThg1P3y1vb3N9vY2Fy9eJJFIMDw8zB/+4R8yMPDJpAc/+ZM/yS/8wi/w1ltvvdZ1ZTIZpqdn+M3fXCeVKqDT6TRvmJGR5irmwHHdZ0ODjdOn/YBCPJ5nZSXGwUEWvV5HZ6dHiPKDCuptsejp6lIfVk6nSsdcXY1pD7TWViehUFrwxNHrdbS1OZBlNTpckhQODjLYbBLT0yKr5sqVJu7dE/Wp/f0+LBYDTqeJfF5mYyNBKJShtdXB0pKIel+71qKxESRJTSHq6/MdJgSlWV6OUSyWaGtzsb+fEq7TYFCjpLe31ZQgv99KPi/jcJj49rfF6OauLlU+VI4dDAZdtLQ4cTjMfPTRlnDe06frePZMNUGTJDhzxnMYA27k449FPWxPj5ulpXKEtsLp0078fgOSpOejj0Q2yZUrHu7dE31tzp718PhxCrtdT3e3HZdLjyQVWVmJCH49TU029hoy35gAACAASURBVPczQmxiIGAlEkkJ8rPGRhvRaJZcTnX5b2mx4vOZKBZlQiE1ISyZLGC3GzCbS4LPjV6vIxh0srhYGWzdbjMjI02k0/Ih/TWhGcsdX6np7/fx4kVEk0AFAna6uz2YzYbDWOyYxqSpFa9YZtBYLHq6u714PBbMZj3Ly1FWVmLCIFxL13zxYoBQKEVTk1NjvNTVWfnoI3Gl5swZlcV2nEHT1GTHbDaSy6lpVru7KYaGqqMuj3pGSRKaEV8ikRMYQXV16qpPOYJyYqKVb3zjZ18L8CgUCqRSKR4+fMhnPvOZmoP3zs4OOzs7r5zcbG1tEQqFOHfuHOFwmL29PUE3HYvFePr0KVeuXEGSJCRJelONhOGEUfNprZMe7FNaP8geLB6PMz4+zje+8Q0hceWT1NbWFvF4nG99S+ZXfuW+tl1N5qnDYHBw44bIHnA6jXR2tiBJJaank0e2GzAY2hkY0PHgQYpsVr0ddTpoa+vH5YKNjRjRaIXJOnylkfV1PTZLjpXlynuMv29gcsbI+JDM5B9XnufXfqLArWX1uXupJc39/1cFgM796AGz8cp30dFY4uBjHUM/UuLGUvV4MPa/yUSfwJMp8bWW90psHpEUjTbKhG7peKGvZi+NvSdz84gU64JfZvv/0bFjq9736lsydzbE97rQJ/OooKfdUcI9p/B4Uo/ZrFB0q+DO0Qr2lVg5Bq6c7SnxeF3cNtgqM3fsfdqcJdZDlf3cNoXYnnj+0X6Z2zfF4077ZJ4+qWy7OCjz8ENxn0Agwc5O5bEzPp5jcrLSD587p2d2Vu2FDQYdzc1GWlrSlEolDAZ1HHW54OAgSbFYRJZlQEaW1YUqg8GAXi9hMChEowkURQ0M2d/PMDxcz927IrtkZKSRu3fFHmxoqJ6Zme1Dbz439fV2HA4j8XiepaWo1ovYbEZ8PotgPwCVvqyx0UZbm5raZLcbuXt3S5BWDQ7W8+TJvtBDeb0WzGYJt9uC3696Su7vp3E4jK+MCz9aY2Mt5PMyZrORRCLH8nIUo1GPokAkIvoAnj1bz+ysygoqe+AEg25CoYwmVwfVy/Moq/tXf3Wcf/bPPrmdRZnZvLi4SDwer2LUlGtubg6Px6MtgB2v2dlZ/H4/zc3NPHv2DJ/PJ0jWl5eXyefz9Pf3A2+0RyCcMGp++MrpdGoop9ls5oMPPuD06dOvzLD/i2p0dJQvfOELfP7zn38tRFONwc3T3GzlP/7HWdbW4pojejSaxek0aRRBn8+Cy2XmwoUGPB6LFuG9uhqjrc3NvXtbZLPqvooCgYCD/f00BoNOizWWJJWts72dEhzRg0GPkPoTj+cZHW0ln1e1oh0dDhwOPTpdkeXl1KHpb4pwOEcmoxxSFUWN99hYC62tLlpa1LSockLQ5OSGlhalIvIuYXLd3u7C57PS3e3FZjOSSOTZ20vz4sUBPp+V+fmwxq6Ix3NcvdrK2lpc07IGg24sFh3hcO6Iu31SM0g7moplMklcv952yHAosbGRZH09QSajyoyOetikUnnefbeV+noL6XRO87ApFmUKBUkAS1KpAu++20QgYCSXUymna2tJnE49e3uiw34olMPjsZDJyLS0mDlzxo7VKhMMmllcDLO7G2dtLcbqaoJTp9yCZ0wyWeDq1UbW149uKzI62kgqlae310VvrxOfz0B/v4v9/TiRSJKdnQTLy1H8fgOzsxFtNadQKFUlKXm9Vk6d8uP3G/H7zRiNxkNvmCzhcIaXLw80o+rjKzU+n4X6ehsXLwZwuczaPbu+nsDjsTA9vSdQfMtGycViSUs4Ax1dXW5WV+PaPbu8HGNwsF5YdVJ1zXXIskxbm4W+vnrq6mzE4zkiEVXuV2YFbWzEOXWqTtA1x+M53n03SCDgoKVF9SlSV5Qc3L27xdZWUpATSlIlxru11YnDoeqvrVaj5oHz8uUBHR1uHj3a1e7ZTKaofcd2uwG9voTZbOTChQCvU9FolFwuRzKZrOlH43A42NvbQ5ZlnE5nzdd3dlSQLJVKYbPZcLlc2usWi4VcLkckEqGurk4Da97QOmHUfDrrf///+wJOqnb9IHsws9mM0+nk937v93jvvfde67ocDgerq6u89VaQP/uzHdxuM2fOeIhG87x4kcBulwTPmZYWC729NqxWHffuicmPPp+eK1csfPvbWYpF8X3GxiTu3cuSTotYYrBDIZPWsboi7m/Slzh9WuLmH4v9ZSaeJ20zcqEtzsM/q8ggjDozcZs6d/E6FUwvYG9TwuFQ2Feqn9ODFplbt6sneWeGSmwk1P2HAzIPviIRCemwtqo+LUertUlhI6/ue6VOZub/lIhHJVp7S8SPsWeCrQprSfE6SjJc8JZ48VWJrUOmiizr6OxSOEiKx/d3ltiMHEt5ai6xdmxbb5OiyZ/cVoWeeoU+t0xADy06hfq8gi2iEJRKGLbBfiBjO8hjSelxywotdoV2j0LQr9DiL1HvLRGoV3A6FCIxHbmYeo3lOn9eYW2t0sNYLHrC4Uo/trur0NmpEI0WKJUgFpMJBi3cvr3L+rrqWbe5mWZvL8rycprt7Szb23k6O73cvx9mezvH5maW9fUsgYCRJ0+iJJPquTY3U1WJnZubKS5erEeSdPT0eOjp8WAwSJw+7WdzM87+fobNTTU8oavLw7NnFRl4oVAiGPSwu5uivl7t+3p6VF8UNXQhqTFelpejdHS4hR5qby/N+HgLOh20t1vp7VX9ERsbHczM7LG+ri7oRSJZLS78qDFxOl1geDhAR4eb+nobxWKJhYUIXV0eJic3NIb98Rhv1YPReyj1cmE06jUPnJWV2OHCXmUxeGcnpaVVeb0m9vdTDA83f+JwB51OTXgLh8MUCgXMZnNNPxqfz8f8/Dx1dXU1F7l8Ph9Pnjyhvr6ejY0N2traBCDG4/GwvLyM1WrFarW+yf40cMKo+eGulZUVrl+/ztzcnDAR+X7r137t1zCZTPzSL/3Sa12PLMtMTU3x5S+H+epX5wE1pi4Y9NDW5mR/X6UvliUYbW0udneTwgPOaJRobXWyshKjs9NDY6MdSdJhtxv56KM1YTJcS+PZ3u4in5cP2QMSyWSOnZ00RiNsb4t+KefPe5merjB1jEaJt99uJ50uaGj58nKUlhYnOzvidZpMelpaHNpDMxCw09bmoqHBpg0eZXZFressM2iMRonOTi8ul5lcTtWIPnggMlXOnXMzOysydcbHWw5Tf3RsbKhmZGaznqYmMcZa3bedtbUE7e1O0mmZ+fkwZrMeg6Haw2Ziop35+Rh9fS6KRZknTw5wuUzEYrImlSrXhQsNPHp0cPi9W2ls1GOxyLx4kWVnJ31kPz+PHolMpe5uJ4uLIkuqq8uJ2awmPEmSCjikUnm2t2NazDuAw2FAp0OgzxqNampAWRbV3GynpcVOXZ2FUEg1iC43AbVWO0ZGmrUVnfI929BgI5UqaPGPoMp+mpsdwmAJauLT7dubgou/1WpgcnJDAP6CQTfb20nhPrZY9HR2ujGbDTidZrLZImtrcbq6PFV+RuX3KZckwchICyrOoLLYlpaiGAw6mppefZ2gyrSCQTeBgJ2traTGYvtu1xkIONjaStDV5aWuzkqppGC3G/nzP19BUdTv5/btn6e/v46/qBRFIZvNEo/HicVixONxCoUCNpuNlpYW1tfXCQaDNf1oCoUC9+7dY3h4uGZkd1lLbbPZ6O7urno+lkolpqam6O/vx+/3v8m02ze2O/qU10kP9pegfhA9mKIovPPOO/y7f/fvGBoaeq3rSSQSLCwskE638OM//q2q169ebWdvL0djo4n798MUCuqCQmtrG6urOfR6GB21Mz19QKmkw2pt18Adm03H+fN6HjyI4nB0Ew5XbtGeHh3JZASDoZuNDfGRcv58nHDYwfp69YTvrZ9O89HXrYI8CKDzsyW2Izq68yWe3FGfzZJewTkGsSOR1BOdMssPdGyYqwGca+8VuRUzcK5R5tl/k8gdAi7n3peZXRWf913BEkseiTGfzK3/o+Ipc+Wvytw75gszeFpmLl/Z1uou4X2hsBeW2I2In+PqmMydY+lN45dlJo+lPF09LXPnCFuo3VfirLdEaEPH5ryOjUM/mfGrMpOTx44dlrlzjEHjr1MIhY6CMDLT0+LC2uXLKcJhBY9HNQN2OtW47XhcYn9fRyQCXV1RlpYqffPoqMLt2xX/F6tVQa8PkUxWeuPxcZfQX0kSdHebefGi0gPW1ZnIZpOkUmrKV2OjlZ4eN7JcwGDQkc/LRCKZwwWxlGCQ7XKZsFh07O2ljryHjlOnfBwc5GhpcWC1GkmnC7hcZr7zHZF9fvVqC3fuiH1VZ6cHRZFpbKwkdm5tJXE4jILcCcReEcBmMzAx0UYqpYZ6bG6qIE53t4f1dTFZymYz4PfbtIW5cr/o91tZXo6xtHSgsd+PsvHLVT6nxaKybMr9Yj4vMzOjsnoGBuqYnPzbmM1/MUNFURSSyaTWgyUSap/rcDhoa2vjyZMnXLlypaZ/zMHBAS9evODy5cs1QZZIJMLi4iK5XI6xsbGqfTKZDA8fPmRkZASbzfYmAzWv/OAnQM1f8komk7z11lv8q3/1r/ipn/qp1zpXNpvl6tWrfO1rX3utBAKAUCjE06crfOlLyywuHggypOMmX1CRWbS3u2hqUie4er3E/fsVLSmotEOgyvn90qUAuZyM3a4nnc6zvZ2iqcnM7Kz4cD3+3qoMyYHf70CvNxAOZ7QY5VqReBMTrdy4oQ4+dXVqrHFDg439fZUJVEbj1VhySaAyAgwNNfD0aUiY4DocRj74YEWgV54+XcfCQljY5nabaGoy4/e7yeVkVldj7O2laz7I1c8ZweOx0NvrxWTSs7ERx2SyCAMlwOhoM7dvq5+zt9dDIGAlGs0RDstsbYmym/HxZiYnK99JQ4OZoSEviUSBlZWEBsxYLBI2m0GQHIE6eMzPV0CD+noTFy64Dxk/qt/LxkaS0dEmwZAO4MIFpxA3rl57E7dvb2Mw6AgGXfj9VjweM1tbCVZXKyBZe7urCmSz2Yy43Sa2t1PYbOqA5/Go0rmnT0XpXC1QR5WOhWloUME5s9lAOp3XzHePVi0J1MREG5FIBq9XZZOpDYGJhYWQkCzlcpmw2YzCKlN7u5P+/joymeLh+x2QThe/63WWShXwyedT/47KiU/lunSpifv3qyMob97cEADTUklhenpHAO2cThMOh0k734ULjXz44ecxGMTmOZ/PC6BMNpvFYrHgdrtxuVy4XC6tISgUChQKBWZnZ7ly5UrNVZtyI3Dp0qWag3woFGJ6epp33nmnJhCTTqeZnp5mbGzsxMjupD5tddKDfcrrB9mDzc7O8sUvfpFvfOMbr83ue/bsGQ6Hg3/6T5/zR3+kymL1erhwwYfRKDEzkyWdFhddrlxpplQyEwqlWVmp9C7j40EmJ+HUKSPZbIqVFbX/mpho58YN9Zk5PKxjYWGfVKrEpUt+7t+vsCCHh+M8eBBnbKyemzfFpJdLl3IUimFmZpqrPsPE52Qy+3D/W+Jz+/LPyEwdAifjvTKT/0P9d/P1kpB+BNDZU8J6Glb/p45U/Ai48zfkKgmVTlJ465rMh18WJ7fjf0Vmclnc125TyDRDSdEx2iDz+L9LJGM6ht+WebBwDJQZk5k8BtQM9cvMHEu86m4qYTaBL6uwNqVj7bmkgkcbxyRSAyUez4rbxkZkbn50LKJ8uMD9+5Ux02ZTKBQyFI6YNI+PF5mcrPRkej243TEiEfXesFgkLl9W2N1NYzLpkCQdJpMeyKAoBkolPcUiNDXJLC2Ftd7FbJaQpBSlkoLRKGE0gt9vIpnMaD1EoVDCYiny7FmISKSSWjox0cSNG6KUe3y8hclJsc+9ciVAKKSa7JZNgovFEs+fR4Rez25XY6yPMqsBxsaayecVLBYDiUSelZUog4P1VT3UcRm5waDj7NkGXC7zYUpsipWVGLKsaJHb4rW3MTmpysgbG220t7vxei3s7aWExdzvFuP99GlIk8rLcgmHw6QtjJVrYMAv9I//6B9d5td//W3hXIqikMlkhB5MlmXsdrvWgzmdTi39SZZlDg4ONJl5rR7rxYsX6PV6urq6ql4DmJ+fJxQKcf369Zqvb21tEQ6HuXTpUs3X35A6AWp+GKtQKPD+++/z3nvv8Y//8T/+gZzzj//4j/m93/s9fvd3f/e1zzUzM8NHHyX5F//ilrBd9VGJUV9vp7XVidlsIJXKk04XBNoiVKPWoE4cDw4yOJ3Gw8l9Gp1OYW9PpOeazXoaG+2CnKS93cnp035SqYI2oU6nVfPcuTkR1OnocLO9nSCfL2kTXK/XjF4vsbAQFh76xxkOoCL29+5tEgxWJri5nMzCQkiQnBiNEm1trqrJ/bvvth8mNUiEwxkWF6P09DgEoAPUh7vRKBEKZfB4zPT0+LBY9FitJj74QEz5OXWqjufPE5psxeMx0d/vxeOx8ehRiL29SnM2MtLE3btiUldDg4WuLhcGA4eMIfU7Uz18xH3PnbMyO1s5n89n4tIlP5lMgXQ6x/p6nL29DMGgi7W1uABOeDxGstmipokHdRXCbtdRKMi0tztxuYyav869e9uCh81x7yOogIFlPyOfz4LNZmRhYZ/NzZSW4NXQoJpAl+VPgJa0tbuboqPDjcNhJJ0u4nJVu/hfvBjg4UMRlGluVhMDyia7KrAXp6fHW5WGdnRQBzU+/uLFJlKpPLu7B+zvq+BMfb2NQkEWpG+SpGNgoI65uRAmk0R3twoIut1qZPdR8Om4rhk41FwrWK1GWlsdGI164vEcRqO+BtBUAS3LVQZMrVYdmUyen/zJM/zCL5zWGoJUKoXRaBRAGYvF8spVlHKjEAqFCIfDr1xpXlhYwGKxEAwGa57jww8/pKenpyrlqVzlKMqj6VJvWJ0ANZ/OOunBPsX1v6IH+6Vf+iUGBwf5/Oc//1rnKRaLTE1N4fef4nOf+wifz8SzZweaaf7ERAc3bpT7LYXhYS+ZTIFSycXCQko4V12diXPnOvjoo7AwTrvdBgqFDvr6EkxPZyg/RrxeA6lUD4WC6nFy44Y6xtXXG4lEOjSpzZUreR4+3KO+Xsf2jpg6qtcrvPtumm9+s5qBc+0nZG5t6hntlbn9+5LGxBn9mzK350WwYqCzRHIX1lZFYOPCqMyjZGVfSVK45i+RjMD0MaBl8LzMXLIa5D83JmNehakjcq6JH5G5MXfs+AGZuT1xm9uhEDOo193qK9GpV1i+qSMS0pFOVx7HkqRgd0HiiHTKZlPIpqB0RLLU213ixRPxM54/H2P6kVu85nNZZmePJmYqrK2JfffFiykePqz0FX6/Qjh8IPSSY2MWbt48mqpkJJWKCj6I4+NeJidFJsulS17u368cp9fraGpS2Nio9IpqT2wRvB5bWhx0d7splZTDniDD2lqM8+cba8wRxB4KVGZKLidjs6ksm9XVmNaTl4GS8vX09/uYn1d9nHQ66Ox0c+qUn3A4xe5unO3tHLmcXHMBrrHRTiZTIB7P4/GYtcROs9nAzMyuAMLUWli7eLGRmZk9OjtVNjeoEqr19YTmvQNqr3f6dB1Pnoj942c+004slkdRchQKEr/5m+8wMODQerBcLofVahV6sO/mzVf2q3n58iU+n69mOnCpVOLevXsMDAzUZBTu7+/z+PFjLl++XFOmrigKe3t7tLW1nTBqar1wAtT85SxFUfj5n/95fD4f/+E//Icf6Ll/4id+gi9+8YtMTEy81nkymQyPHk3zK7/yktXVGO3tbux2A6lUEbe7mopYa4Lb1GTH57PicBgoFIrs76fZ2srQ1mZlZUVEnY9PHAMBO0NDDaTTxUPTLhW5rquzUiyWhIczQH+/m2fPYpppl8djweMxMzcXYm2tMsGtxbTxetXJpsNhEExerVbDKwGDo3XpUoBisXToPl9gZSV2yBAysLsrfs6BASfz8yo1saXFSWurE5/PwvPnEZaWooIZrcFgFGRNJpPE228HyWRKhEIZnj07oFRS6O31sLSUEuLGAQYHGyiVStTVmTk4yPLs2QFXrjRy86b4mTo6nGxsZLXYRtVHyIrLJaHTmdjcVJkyAENDXmZmREbV2bMOHj8WVzvGx5tYW0sQCFgxm1WmlNNp5MMPV4T9zpzxVw1W5Uj3YrFEV5cHr9dK+Vl39+6W8DlrSdJGR1t4/HiPri6PtmqSz8vMz4eElZqyDOh4ZOI777STTqsgm+onc8CFC4EqMC8YdLOzk9SaG5fLRF+fD4/HQiyW05LCoDYFtnztZbPfhgY7FoueUCjDwkIlKUxNMHDVNONeWAjT0VH+2yxgsxmrmofWVicHBxmBemyzGRgaajhMCVC01aGLF/1aI6bX6/jKV8YZGWnH5XJht9u/74G43Cg8f/6choaGmmy/V8U9gioDWFxcJJ1Oc+7cuarX4Y2PhYQToObTWic92Ke0/lf1YNFolOvXr/Nnf/ZneDyev/iA71I7OztEIhH+4A/SfOlLM8JrdrsRr9dLe7uVnZ00S0vl8bmemZnyZFvh6lUXy8sxOjvruXNHvB0DAR39/W4++qjE8Rob66JYzHP3rjg2XrzYwcOHJkZHc9y9u68BP+0dHtbW1GezXq9waTjOvXsJfHXNhI9FVAfaSgTHFO7+X5KQYjTyozJ31yuAyJmuEmuTOk5fKnFvRgRKXG6FZFBNe7KYFM4aSkz9iZ6JvyZzY1bc12pTKLRB8Qgwcq5dxnOg8PENkX1z4bLMo3XxeJtVIetU36tckqQwcV4mvqDj0bcqYNPgxRJz88ciuYdkZp+I5+zrLPH8hSScz2GA+BHWUGtrho11q3Dc+HiByUnRcKipaZ/t7cq5zpyRefJE/N0uXJB59KiyravLzNLS8UUmO5OTld7QZJKoqyuwvV0B/jo6HGxuxrWkVoCBATfz8zvY7QZtUcvrNROPZ4hG1UW9ZLJAT4+HlZWIcGyZmX6UZd/S4qSnx0OppIIca2tx9vdrs8+PL7K2tqps5XxeJhpVvQBTqcIre73y8Varge5udd7gcJh48iTE+npl8bejw83ublIAssxmPS0tTopFWZs3HBxk8fksVYtgtfrUvj7V99LhMJHLyayvx4lEMjQ12VhdLcv/LXzta3+FQMCnLYx9v1UsFikWi0xPT3Px4kWsVmvVPslkksePH3PlypUq5vLy8jKlUom9vT1GRkZqsgXfcCNhOAFqfvhqcnKSiYkJzp49q930//bf/lt+/Md//LXPvbS0xM/8zM/wwQcfvHYKyvLyMk+eRPi5n/uOxuIAtUlwOk2CnEOSVBBDXdWRCYczbGykOH3aWSVh6u31srh4oA3yarywF4fDRDSaFWRItVg55TQfo1Giq0uNJc5mkySTEouLUW0iX4uVAypbZmUlqkleksk8LpeJjz8WAZhakhuXy8TAQD0Gg45CQZW8rK/HGRtr4eZNcRA5ygwxmSR6e314vUZSqSxbW3khHrwWun/1ajOJhIzPp0YCPnsWwWiUMJnMhEKifEz9Tnbo6HDQ2monny9SKJSYno5w9BliMOhobXUIHjgul5Fr15pJJvNEoyr7J5Mpcvask8ePRflXR4dFG0TK1dJix+Uy4vWa0ekgGs2ys5PCaNQJPjc6HZw+7alioYyOtjA7u0tnpwe326J5pnznO6sCKFNbUmbGbtdjMkFLi5dSSTVn83rNPHz4agrr0e9YlkuCi79Op3tlYlMZjCynPgWDbsLhjHYfKEqZ+SSuXh6VFjU12Whv92A0ShqwctS/p1ZaVW+vl/39FO3t7kPwqcT+fopCoVSVilDrb+ZHfqSDZLKIXq8jEsmwtBQlELCytZWiUKh8oRaLHr/fqgFzw8ONfOtbn/uetNKvqmKxSKFQYGZm5pV+NPF4nPn5eS3FqVxbW1vkcjktkvv463DSJHAC1Hxa66QH+5TW/8oe7Mtf/jJTU1N86Utfeq3zKIrCw4cPaWoKMjHxTW0s7etzUV+vLuR89NFB1XFnz7ag08lEo2nW1tRxxWrVYzI1EYsphx42Nh4+DFFXZ2Fz0yOMVcGggfZ2iY8/rmYojoz4MJks3Lghvu/oqJPbd9yYzQpnz8a4P6WOH6PX6rl9WzzPtWs59vYMvDzm8VLXoBDxg6LoGOqRefEdiXRSx9i7Mjdnqhkxfe+VCCV0NIVKPLmlvn5+RGZ6q3rf/rdKPNuUMBoUztoTPPwjJ9felrk1LY4bXq/Cgbn6cdp9tsTitoTFpDDcWmL9jo5mr8Kdu8dkUu/ITN4Wt02My9y4c2y/EZnJY540FwdlHt6vbNPpFJyOAvF4ZRGioyPN6uqxhKjRDLdvV3oVvR48njjhcAXQuXLFyL17x30TJcE3sbnZxN5eWAiiGB31cPv2GjabHq/XhNttoqPDRjyeRaeDfF4mkcjjcsHdu+IC3uhoI7dvi33MxESzJovS6VQA5PTpOhKJPMlkgbW1GJFIlt5eL8vLUeFanE4TdntFRq7KkFzU1dnY2UmxshLVGMrfTUausmw8NDY60OnUQIXp6V2h13yVjPzZszAdHR6sVsNhTLfC48f7wrEOhwm326x5IoLa/4+NtVIolCgWFXZ2kqyuxhgerhcYSgCdnS42NhJaX/aLvzjMb/zGZ/ikVWY2x+NxVlZWXulHs7KyQjab5dSpU8L22dlZgsEg4XBYSHk6Wkaj8U0Oc4AToOakvt/61V/9VRwOB1/84hdf6zxlStxXv3rAl788J7z2zjvtpFJ5oMTBQZa1tSQOh8q4yWYro37ZAf35c5We6XKZ6Oz00NrqZG8vzeZmQpMh1QIrGhpsZDIFUqmCJkPS63UYjRK3bm0KRqkXLng1Y9xynT/fwNpago4OlyZ5iUbVhKCjshOAc+cqcXqgghrvvhskmSwc0vtUY+LTp/3MzYkPV5UeqWd/XwU22tudNDU58fmsLC9HWVqKavKeoSEP54EFeQAAIABJREFUMzOiVKq52UEuV6SlxYXbbSIez/PiRYS+vnqmp8X3UtF5dVsgYCMYdKDXq8lSCwuv9rAp19hYgGJRxmDQsbubZmkphterGiEnk5XBXZIgELCwtVXZZjZLjI83kM0WUZQSoZAaT371ahM3bohAlSq/Ege7vj4ve3vxQ8DBpLGj9vbSVdTQ/n4fT5+KUaQTE63s7KSor1dppaGQ6hNzHJhobnYQj+cEmZrfb+X0aTW56ehKTa1B/ei9WI6Xb293IcsqOFeOZH8VhbXMEPP7VS8km82A0ahnenqXSKQCstXVqWyho9t0OlXalMkUtRWn3d0ULS3OKjZXrQjKvj4vPp8Ng0EiHlfBp0Qiz8CAh/l58f64ejXAnTsi+NTa6iIWy7K+HmNzM8U/+AfD/OZvvn6jEIvFWF9fZ3h4uGajsLS0hCzL9Pb2atsWFhbw+/34/X4WFxcplUrC61CODH1jjYThBKj5tNZJD/YGVqlU4u233+ZLX/oSZ8+efa1zJZNJ5ufnWVz08pWvLLC5mWBpSV14kiQdHR2NLC+rk3SDAU6dMmEwGJierr71JiaCxGIG0uk0L19WFlsuXw4yNaWOk2NjJh4+3COTKdHd3cni4lGvEB1nz+Z4+tRNTCQm0NRkJJWuoykQ4tmzSr9wcdjOw4eVmO7x8QyTk2HGx3xMTtqqrrH3R0t47QrTfyqRz6mPtWB3iZVY9STwr3y2yNOPJDaOMFPsDoVcPRSL4iNx/MdkNmI6TC/h+QN1/+4+mcX96nGj/XyJtR3x/a5fL1JK61j4QCK0rTv8LNVgy+URmaljoNLwBZkHj8VtI8Myd4+DPKMyk9+pbDOZSpw+FSYUsmC3g8WiTvit1jylkgrkgILdLpNKiQtqHk+OaDRPeWiQJAWdLq0BCjodOJ0KiUTmsHdQKJUUPB6F3d0EuZxMNiuTThex20uCN6LHYwIKh+dXq6HBSiKRFnzv1IW7IpFIFo/HTFubE6/XhNEoaT6E5RTZWoz8oyx7v99Ke7ubhgYroVCG1VW1dwNRrlQu1Zi4jvn5kBa2YDBI2O0mPvxw9di8odqXpr7ehtksUVdnw+Uykc3KbGwk8PutNTw6RTWATgfXr7eTzxeRJIlQSA2HsNvVAI2Dg7yw75kzfubm1P7R57PQ0eGmpcXB9naKxcUI0Wier3/9b/Lee7U9ZL6XKjObV1dXMZvNdHZ2Vu2jKAr379+nq6uLurpKkMTt27cZGRlBp9Nx//59uru78fl8wrEmk+lNlj3BCVBzUt9vZTIZRkdH+frXv04g8Hoxu+FwmPn5ZX7915+TzxcPJ3Cq03t/v5Nnz46nE1VYC2WT15YWp+bAXmYdOBwmbDZDFWvh0qUA9+/vaECH0Shhtxu5cUNkHfT2ellaigpIttks0dxsx+m0apKXzc0Era3Oqon8cRqlTqea8UmSarhWZh0oijrpP06ZPHp8OXmnsdHO9naS5eUKsl+W8RwFDFRE30YqBR0dHkwm1aOmocFWxeppbXUSCuU1ymVDg5WuLtWUbH4+JLCFVBqnCMr4/VacTjONjTYkicN0qQRDQ35mZo770jiYna00cJIEly/XUSjIWCxm9vdVeUxDg41wOE0uV2nirFYDbrdZYFkBXL7cSLFYwuFQfWu2txMEg+4qYKSWT1Bvr5dSqURDg0P7TXZ2UthsRmG1Aso+OxVQyG43MD5e7eLf0+NldTUmRJ1brQbq6ysu/mVTbL/fxsqKCrKVU59qXWeZFltJ/zKRz6vgxPH0r1psmStXmgiF0jQ2qp8zHM6QyRQJh9PCfWMwSHR3ixGWHo+Zq1dbSKUKh+BTjP39DIODXubmRNCyvt5KLicTj+c18Kmx0Y7TaWRxMaqBTyBK/HQ6+MY3fpaJiTY+aZUbheXlZRwOR02/GUVRmJqaore3F69Xbe6npqY4d+4cZrMZRVG4d+8e/f39gqzgZDXnBKj5lNZJD/aG1vT0NP/wH/5D/vRP//S1JzAvXrzAbDbzsz97h5kZ0Y/k1CkP8biBjg4rz58nCIfVvuPy5Tampio9S1+fHa9XYmHBSCwmSmcGBjwkEm58vhwzM5VjxsaauXlTZWX39OgpFkOsrKQZG+vk5jGAIhjU0dAgce+eaHBsMoHZ0kIqBaOjKW5OqhP+M2esPHlSnSr41346z59+3ShIogACAyV29irP+IuDBSyFDLduVntqnHqrxMKSOB782Nt5Pvy/jWSOeMXoJAVHi+gfA3D1XZk7h1Ilm1XhYrCAPirz0bdFyUj/KZlnx0yG6xtK7MfF93a7FWIpOPqYbqgvsbct4a+TaWzIYTZmMEgpYhGZVKpELKaQSChcvWrgzh2RPT06quf27UqfptNBfX2Rvb1KrzAwYGZ+XgQUxscdTE6KYRytrTrW1io9eHu7lY2NA4FBf/myj6mpzWPnaqzRwzUwN7dLe7u62ChJ6hxgenpL6PNrBZI0NTlIJNSFtfp6K21tqpeg0SgxNxcS2Oe1erDytuZmB62tTkwmPbKs8OJFRIjsVuVKDsE/R/08rUQiWbxe1exXDTSxV8mVWludRCIZDWACNfWps9OjLTqW5VYXL9bx8KG40Hj+fGXh1WYz0N3tpaHBRi5XYmUlqrGjVa+dOo19HgjYmZr6u/h81bKl77WKxSKyLDMzM8Pg4GBNv5lsNsuDBw+08IdSqcSdO3e4du0aIKY8HWUxnwA1J0DNSX2C+qM/+iP+4A/+gN/+7d/+vo8tJ7uU/zs4OODDD2P81m+9EPbr6HCztZWgUCgdypC8NDRYMZsNrKzEWF6uACm19KVXrjRz796WFottNhsoFmWWl2PCg/k4K6dc16+3aYwK9eGaxGIp8eyZKM3x+63k87KAuLe2Ounr85HPq2Zky8sxksl8TZPVowOLw2HU5FayDC9fRgRj4lorA2NjrUxNbdHT48Pns5DPl0gk0rx8GRNkJ3q9jp4erzARb211MjQUIBLJsbmpgiwAwaCLzc2kADio0qIG4vE8bW0OoMTaWpzOTg+TkyJg0NJiZns7J1Ce29rsdHQ4AUVIIzp1yl5lUFjre7p+vZV0Oo/VqiedLrCxkcDhMGqO+uVyOk1YLBX2Ufnar11rQZYVDAZV67u8HGV4uKmKRXL+fAPT0xVAymiUGBpqwGTSkUikSaV0rKzEUBSFs2dFltTxa29stNHW5qKuzsrubrWLv8kkCdcJ6m/85Mm+dh8Ui2r613EX//5+Hy9fHgif3W430tnpQqeTsVhM5HKwtBTlzJm6KvbRcVDHajVw+XITiqJSjre2EqyvJw5XfsxsbYnXefVqE3fuqOcsA591dVZWV2MC+NTW5iIcTgvNh9EoafHejY0m+vsb+d3f/es4nZ/cC6aslZ6ZmWFoaAi7vdpospzidOXKFQwGAzdv3mRsbOyVr8NJk8AJUPNprZMe7A2uL37xi1y8eJGf+7mf+76OO5rscjTdZWPDyN//+/MA1NWZOXXKRzSaw2CwVgE4XV0uVlbgzBkHRmNJmzBOTHRy40Zl0my367l40Uo8bmJmRhw/7HY9BkMbZ88q3Lu3RT6v3s69vS5evGjQ9rt8GZ4+3WBoqJ6bN6vlUhPX/aRSGR4+qPQQOh34fBX/GoNBYWQkRiyWZW6uenFx9Edlbj88TIoaznDzW3GcDh2pVL1mblyu8fdlJg9ZLXVehaAzxdrzAvv73qrznruWZ/apOKaNvS1zf0nick+BpzdyhPcUgkGJlRXRH02vVzBbEMyDAVq7S2xsimBNd2+JrR0dXe1ZrKYUiViaXCrHykrFnkCSwOksEotVHhuNjRK7u2L65qVLRu7fF+X8Y2Mmbt4UwYf29gJra5XftKPDzOpq9Nhxbm7ePC65d3HnjtgvnjplZWFBvcd8PhPNzTZ8PgOKUtIAit3dNHa7wtqa2H+fO+er8oUszweamx00NzuwWg3Y7SYePtwRQJ1aMnKXy4TVakCWlUO2spFUKo/FYqiaY9RiSw8M1JHPF7FaFWw2OwcHKqPbajUIKZpQHWzh81kZGWkimcyTShVZXo5ycJClvd3B1lZSCESxWPQ0NNhYW0tgMOjo6vJSX2/F7bbw7FmY5eWYBojVihtvb3exv5/GbjdQX2/k3Xf7fiDM5nQ6zbNnz17pN7O1tUUoFOLcuXMkEgmWlpaEIIhyylOZLShJ0mvbbPwQ1AlQc1LffymKwvvvv88v//Iva2horSoUCiQSCa0pKCe7uFwuzVkc1BWif/kvF7l3b1swP62rs/Ly5YEg7all2KtGXusAnSBDMpv139PD9cwZP4WCjN+v0mX399Paw/U4i+PsWS+PH1fYBPX1Vi5daiKZLJBM5llZiXFwkNUSrI7qYI/62phMkhbF7fGYefo0zMpK5eFaywukudlBNJqhvt5OU5MDvV6N+dbrpSq51NCQW1jB0ut1jI+3IssK+byKsO/tpQ9d9D0a5blcZcChq8tNU5ODYlEdNB892hUGNoNBh99vY2enMuAbjTreeUcFVvJ5mbW1ODs7qZpypbY2dRCSjyyWBYMumppUeU0qlWd1NUY4nKn529f6Pd99t4NksoDRKGmrEHV1Vvb2UlWGbc3NDpaX1e9JkiAY9NDf7yMezxMOZ7R7r5ZhW2urU2OouN1mOjtVF3+TSeLxY3Glphbb5dIlFXgr3++SpCOVqmipy/UqCdQ776gu/na7UTOabmlxVn1HPp9qaF2Wf5XByc5OF4lEQZPdybLCxYs+Hj4UG/P+fi8vXqi+T36/lWDQg8NhRJYVHj/eE2R+tVK1xsZauXdvS0uaUuM3Zebm9rXf4+d//iz/+T//VT5plVk1qVSKxcVFLl++XLNR2NjYIBaL0dPTw+zsLJcvX675+pkzZ06MhNU6AWo+nXXSg73BdXBwwFtvvcU3v/nNmmkq5cpms8LCWDnZpZzq4nK5ODg4IBQK8V//a5SPP97iyZOItgDQ2+vl5custkjgcBg4d86NzWblgw/ECbfLZQL85HIlLl1y8OxZiFAox/BwIw8eiNfV22uhs9PGN78p9h0AfX29bGwoXLiQ0yb6Ho+BdLqF/BFcoatLRzCY49vfrn5GX7vm59YtC3V1JVpa9pidTaDXg8PRQywmPtJGrss8XZfob04ydbMykT992s/TpyKr5cI11RD48mCBxakkkZD6xbS3e1hbE8eboZEDZp5XABy9XuHtsSxPHhbZWRf/fOvqnITD4nUNnZeZOSZ1Gr0uc/ueHp1OobMji9sRw2iI82DKiHxEkjU2ZuTmzYJw7OXLElNToiS/txdevDgaBKBDUTJkMpXrO3PGVGUgPDFh4cYNsc8YGjILsnurVcJqLRCJqD+ay2Xg1CkH2WzyUK6to1QqYTbrWF2NsrOTJpVSr/nCBT+PHokgz+BgHXNz4rZg0MX+fpymJid+vw2DQZWex2I5Fhcr16LTqVLu42yb8fFWnjxRJUwOh4lstojJJFV5QtaWQMHly2p0fNns91ULgENDDczMVL4vh8PI4GA9FouedFpmYyOuLcr29Tl5/lxkdV+71sytW1uHn1mVWzmdJra2kiwuHgihEzabsQb7vIlnz8Jaj5rNyjgcJiG45Stf+ev89E+LHjLfT5V7sK2tLWRZpq+vr+Z+09PTBAIBSqUSuVxOkEopisLMzAyBQIBAIHDiEajWCVBzUp+sXr58yec+9zk++OADDAYDxWKRZDKpNQTJZBK9Xo/T6dRAGZvN9kqjqadPI/zar83y8uWBtvputRrw+axVUpSRkWaePg1p8Xb5vBqt9+GHYhxyLcNek0ni7NkGjEa9Zn5afrgen0gfn3R6PGba2y24XHZyOUVL3nmV50lZqnUUfHK5TKysqKyDMmNFTYZCmJyD6iWysREnGKwYjHk85qrPWUuq1dhoo7HRiMvlPBy01O+1FrAxOFjP3FwEg0Git1dlcuRyBRKJIgsLosTl3Dkns7Pi7zE62kShoMNi0RONZnj58gCr1YiiKFVePYODFc0sqBP/gQEnmUwRWZY0UKbMiDpanZ0eNjbiAtOnr89LQ4PKnjjKXqrFPjpu+Nve7uTUKTUW/OCgEsnudptfYfjbyMOHu1itaoy312vB5TIzN7cvyMRq/R42m+HQM0ZNHiinf3k85u9JqtXf78Nk0uN2q2a/m5sJ9vfTtLU5hYYEqkGhjg4XAwN+Eok8kUiWxcUDcjkZv19NEkunK9/n0XvZ6TQeyq3MuN0mHjzYERqA480HqKCQJOlwOk0EAhVZmd1u5P7947+HeC/+z//5U/zYj3XzSavcKGxsbKDT6ejp6anaR1EUHj16hMvlolgsVpnblV9vbW0lEAicrOacADWf1jrpwd7w+p3f+R1mZmb4jd/4DQByuZy2MBaLxchms5jNZgGUqWW2Xn7mGY0NvPXWNwSPDYBr19pIp4tYLDA7u086XaSlxcn+vl7orZxOA2+/3c7duwfs7Ym9TFdXO0tLOXw+A6dP67l9e5vWVjvr63aOTzXeey/A06cZQTYDcPlyB1NT5Wsq8ejRFrJcwmJpJ34M77l40U4+72B/f5Pd3QpgMTLSxt274ndw4WKeyEGc1WXxc09MuLhxQ5SDBJpLdA1kuPWB2NeMjTm4eVMEjHpPZ3mxo77XpaE8kc0wSy9y1NX5CIutIpcv25iaEiekExMyNyYrQI3BUOLipV0y2SKbqzkiEeXwWBNTU8qx8xmYmhJlaNeuGbh1S2Q2TUwYuXFD3KYCOiJDqblZZnOzAlI0NhpIJKK4XAZcLj02m0QgIJFMZtHp1JjsfL6Iz6fnyZMQ4XBGAxOuXvVr3nXlGh72VUm5h4frasi76wmF4tTXuykW1YTSlhY7H30kJsXWWjBqb3eRyxUJBBw4nWby+SK7u2l0OqrsB2qxUN56S/XOtFqNJBJ5lpejeDyWqsQmk0lPa6uTpSW1LzMaJbq7vXR1eTg4UMMwVlfVRdnBQQ9zc2L/FgjYSKUKJBKFQ1NjN1arAaNRYmpqWwCLaoVYnD/fyNOn+3R3e/H5Kkm2+/tpQaql06k9XJlB7vWamZr6ezQ1Vadffq9VLBYplUrMzs7S19enycyPVj6fZ2pqCrfbTSAQwO/313x9eHgYh8PxpnsEwglQc1KfpPL5PI8fP+Zf/+t/TSqVYm9vjwsXLvBP/sk/0UAZu93+PXs7lEolpqam+B//I8pv//as8NqlSwHm5tSHjsejypASiTwbG3FiMdE4a2CgOo75R34kSCKRw2jUaxP5zk53FbLudpsxGiXtQaZ64HgP44ezmgcO1DbsPZo2VfYhMZv1lEolHj7cFaQfr4p9fvJk/xB8Us13M5kiL19GhEFAr9fR1eXhxYsKgGI0SrzzTgepVIFiseKZ0tfn4vlzsYM5mqrlcpno7lYTsex2Ix9+uCq8V1+fg+fPxYbL7TbR2urA7bagKLC1lWR1Nc7lywGmpo7LssS0KqfTyKVLjRSLCtmszPp6gp2d1KFeuMjBgbgCdBwIaG93cfZsPbFYjng8rxnZ1jKKbm52EItltdjoQMB+qG82s7+fFmRIr2K73L+/c4RWakOv1xEKpVhYqOisX23428bTpyHN7DeZLGAwSFXNg8djxmCQhAHUaJS4dq2FYlHRzH5XVmJcu9ZSBer09flYXKxIoBoabHR1ebDbjWxuRtncTJNIqN/r4KCbubnjDYl6L5pMksZ40esltreTvHgR0ZroV8V4j4+3srgYpbXVidmsJx5XGT7HgaZaK1J2u4ELFwIoCkSjMXQ6M3/yJz+jMds+SZW10rOzs5w+fRq32121Ty6X49atW3R3d9f0s8nlcty/f5+rV69is33ya/khqROg5tNZJz3YG1zxeJypqSm+8IUvEAgE2N7e5u/8nb/D+++/r/VgFovle5ZtplIpnjx5wp/8SYnf+q1pTCaJwUEfFos6Nq2tpYXeAGB8vJPJyTBdXTaamkzMzISQJB06nafKq2Z8vAWdzsijRztCqMDwcJAHD9Sxz+fTc+qUjtnZPRSliVRKjPYeHq5jfd1JQ0OIubmKjGR0tJ3btyufU6+HsbECs7My0aj4ZzIy4uPuXdW/RpIUrl1LcOfOS06damFOzLRgcNDM3FzFr+zSpRyrqys0NvqZmzvGyhkxc/euKLc1GBW6zsYxFLPMz1bG9ytXPNy7J/bG4+MmJidFAKmrK8HyioPe3iQuZ5IXLxLYbLC9Lb63260jkdALEd/qNkVgPzc26qqkTv39Bp49O57yaWR3N4PLpZoM6/UybneJ3d0kqVSeRCLHwUGOU6cs3L9f6QckCVpaJNbXKyCP221ElguCH15rq52dnYQQpd3Z6WRtLYoslwCF5mY7fX1uZLmALJeIRrOsrycwmSTy+SKJROUeMpkkmputNb0e0+kiDoeJfL7I1laSzk53lax+YMDP06chATBsa3Me9vAGMhk1HGJvL/2KBcDKgpPqEemmu9tLJlNkfT3C1laWQqGE1arH4dCzvy/+BmX2fJmVXU6gOi7VCgbd7OxUg0Lt7S5KJYXGRpWVvb+fpqHBVtUr1gKvenu9Ggs8Ekly6lSA//7fP8vrVKFQIJfL8eTJE0FGfrRCoRAzMzOMjY3VBI9DoRCrq6uMjIycADUnQM1JfT/1wQcf8G/+zb+hUCgwODjI0NAQX/3qV/nqV79KMBh8rXNHIhHm5xf5e3/vPg6HCb/fpqUheb2WqgdMLWbIxYsBJAmsVqMmQ8pkCtTX21hfP84CqbAWyjKk7m4PkUhWmxiXSgotLU7C4XQVWNLe7mB5OSF44DidRm7d2tQAAPWaGquinNXJsCoZKnvg7OykcLvNVQyFWoj5tWstlEqKJn1aXIxiMOjweqvZR4ODLubmVLAmGFRlTC6XiWfPIqyuxgRKsyRBPC42WKOjrSSTKsskk8mzuBjl9Ok6bt8WP1Nzs4ODg4zmzK964nhobXWQThfY2UmysqIaKI+PtzM5KQJVw8P1PHhQ+Y1bW5309/soFEpEozlWVqLE4/lXsqyODkLlNKSmJjvb2+pvWZb9HAc2AGw2I16vhc3NhODib7MZ+PjjdeG3f5XhbzKZo6XFpYFs29tJTCa9tqpSruOgkE6nrtRks7IQb+3xWGqmDRwFhVwu06Ghtovd3aTWTAD09DiE9A2o+OKEQhnN7FeSVCbUxx+vC0ylWn9fvb1eDg6ytLW5cDhMpNMFjVFWK6b+6IqUJMFnPhMknS6g0+nY21M9e5qaHIKHzWc/28d/+29/g09aiqJQLBbJZrPMz8+/cqC/d+8eOp2OS5cu1ZzM7O/vYzKZaGhoqHrtDasToObTWSc92BtY//7f/3t+//d/H7vdzvDwMD6fjxs3bvC1r33ttSUCL1++pFjU88//+WNu3doSFpfU8aAyQfX5zJw75+PgQGFm5nh6Yic3bqiT5oYGI319ZubmwthsdWxtiaDAuXN+nj83cOmSmdnZCltgbKyLmzfFhbixMTObm7C8LLJZ1IUzFZDv7NRhNu+zsBBldLSN27dFsMfhkCgUumhoKOF2rzM3Fzn8fA1MTorsSdXXpQGTSaGzc1+LoJ6YaODGDZE94/XqiMU8GlgSDMr4/TsUCgVmZsTvuRb7prk5z9ZWhVnQ2lqgszPB5maMpSXxO1P9YETQbGDAxPy8+EgYHNQzNyfu198Pz54V8Hh0tLbqcLlKWK0F4vEse3txQqHcYU8ok05Xjm1rM7O+Li7SXLjg5tEj8bcfG/NVyYbGx/1MTh6XQ6v+fs3NNjweIyYTuFxGXrxQTW/L997ERJMWuV2uozKgco2ONpHP57HZjGSzatBHoVDSfCLLpdfr6O31sbBQuW6n08i1a62kUgXy+RJbW+pCZ60FwOMLTs3NDtraXHg8Fra3EywtRTVQ6vx5D9PTYv9X9qQsp2B6PBYURSGRyFctHr+KFb68HKW11aEtPisKLCyEBJsFm81IXZ1FmPdYrQbGxlrJZotCCMbxXu0//acf5e/+3SE+aZWZzfv7+8TjcQYHB2vu9+d//uf09vbWXCwDWF5eJhgM1gRy3rA6AWpO6nuvWCyGXq/H4ahQ477+9a/zh3/4h/yX//JfXvv8jx8/5vbtFL/8yzeE7Wo6kQiW1NVZGRhQ45AzmQLr6wl2d1OvAHAqYElZhtTWpuq61SSl2Hf1wCmDJeV4O5vNQDqdZGMjL5jBHmWrHK2RkWYikQz19TZtktrYaK+6zo4ON9vbCYFO3NRkp6dHjasr0y1jsVxNFsjRKEC320xXlwebTSKRSLOykhEm/QMDLubnxcn16GgLS0sHWlpUOJwhkchzcJDRmCnlGhxsZG6uMtg1NFi5dKmReDxHNJrVzIIHBvyau3y53G4zBoORcFhtQFSwy4HJVCAaLbC5mdYkU0cTgmp9To/HTDDoweezkMvJLC4eaN+/GqPoY36+Oob7xo0Nmpoch0wQVS/94MGO8B35fBZABU+O1vBwgHA4TlOTB0XRsbOTpK3NVXWd/f0+XryICKtaquePE50OgRVUy5PoKChUHtibmhza/V5OOTMYdAQCZjY2jq+MqfeI32+iq6sOk0mPyaTn7t0tTQuu/nY28nlZkKmpMd4NFAolPB4LhYIaHR4MuqpWpM6cUX/j42bHfr8VnU4nmEe/ysOmfC9bLBK/8zvv89nP9vNJq9wo7O7ukslkOH36dNU+t27dwul04vP5aGlpqXmeEyNh4ASo+bTWSQ/2Btbe3h4+n08AZb7whS9w9epV/tbf+luvdW5ZlpmammJ+3sYv/uLHwmtOp5HGRieNjVZSqTyPH4eQZYWJiY4qrxKn00h/fzN6fYGHD0PaAsDYWDs3b1YWD8z/H3tvGuNGep+JP1XF4lFFFu+7SfatVktqHa1W65wZT2wnMAwE8AIBEiSevycHkv1iI7vJxmvDx9o5kC/JJkHgTfwtQYxsvAiy2TjjjDWOR9Lollotdavv+2SElqv+AAAgAElEQVTzvu/6f3i7inxZlGY8chBhwt9HNllkFdn1/t7n9xwGFmfPSiiVGNy/T4MA/f1WrKyQ5JjRUQMajSTm5hK4fLkf16/TjASGAXp6etHbW8Ht2xuqMfHp0w48fEhLlzgO+OmftuOHP9xCsdhcmHt7TVhbo2OBWRb4mZ/hcf36HjXAGh4WsbCglXQcPWpFIsFgYCCGW7e20GgAly7ZceMGfQv1ehvY33dpXh8OmxEIlJHPR/H4MelZxscl3L9PM40vXzbh+nX6sStXDLh2rdH2PB7Xr1fR08MgEJCh15dhsZRx714cBwelludZcf16O9PWjFu3aJBhbEyP6Wna9yUU4ilTYUHgYDRWkUiQXsJm02FgwAyer4PnGdRqdWQy5cOUzgwFBjocRtRqDaoHEwQdrFZONeLlOAa9vRJ6egSkUlkwjEH19OsUKtI+WBMEEppQrwO1Wl2VIRmNOrjdJjVQo3kdmux3p7N9AJhS7Qp8PiMSibL62wMIMzoSsWJlJYlQyIxgkICJFoseV6+uU4yiTqCQxyPAaGThcpkhijrk8zVsbJDh1vvFeCuelNVqHQCj+hCazfqO3putfVk4bMZbb/0CIhEtG/mDVr1eR71ex9OnT9HT06MZeJXLZTx69Ai1Wu2Z4Q9dj0C1ukBNt16sZFnGpz71Kfz2b/82JicnX+hY5XIZDx8+xFe+skKh8qKow5UrYeRyFQoJ7gQCtEdzKzIkJZFmdTWlLg7t0hyAsE62t7MwGDj09xMZUrXaQL3e0HhsnDplx9QU3WBMTPhwcFBUWRnJZAmZTAWpVFGVoACdpVqSpD9E9iuH0iBiwnvsmFbSZTbrYTYT0zCdjsHAANkYS5IeT55EsbWVUzfOR4+a8fQpza7wekVUKjV4vebDdKEGNjczcLmE9zXs1etZTE4GATAol2vY3MyoDBK/X8T6uhYAUhZLBewKBCzY28thfT2tyn4iEQnb25lnuts3PVP0kCQDpqejauQg0Dn9q7/fhs3NDCTJgEjEClHkUSxWUSrVNQbMnV4/ORk4jLcWwTDAwQExD04kChR4xXEMhodpnyK73Yjz5wPI5SooFGrquXbydrHbjYfSqiJYFocpZwKsVgOWlpJYXU2pE5N2o2iAsF1WV1OQJCN6e60QRR2KxRoKhZrmf+RZEZSxWAFuN5H6RKMFVKt1xGL0eZIYbzvm55vn6XSaMDHhRz5PG2qfOuXF1JSWTQYA8XiRkpVJkh4LCwmsrqZgsehx796bCAS0EY8ftJRGYWZmBn19fXA6m3GtjUYDt2/fxsTEBG7fvo3Tp09rJE7dJkGtLlDzcla3B+sWAMJGfu211/D22293jMX9cSoajWJvbx//+T/P4tGjAxw9aofDYUA0mofLJWpSfMxmHgaDiHi8jHBYRCQiYm0tjUjEQcU1A6RvsNu9qFYbOHZMxNOnB4jFSpic9OH2bXrjCACvvjqIQiFPAfuhkBlbWzZqKDA+boDNJuPqVfoYHMfAZgsiHidPHh1lUa1G4XQacOuW9tz7+oJYXcXhc4FabRd2O4vbt7XP9Xp7sN+ytNntwOXLFfzLv+yhXG4dtDHY3dWCOuGwAxuHRJFIREYolAGQw/Xr9FDo0iULbtygh2SnT+vx8CENygwP67CwwECvB4aGGNjtVTBMATMzMRU0AYDeXiPW1kptrzVhYYF+35MnRU2PMTlpwe3b9Hp++bIDy8sZuN16mM0sWFaGJDFYXk5gb6+g2hNcueLVDHiuXPFpHrt8OaCyre12A0IhET09IpLJAhKJItbXUyiV6hgctGN1NUmFUEiSHkZjs/dXhlvBoAXZbAX7+wSUIQDj8xNYlV7T6TSi0ZCxuJikEliJLQDdUyt9spKCyfMsGg0SuNDa+wuCDi6XFhS6fLkH6XSZ8iEMhSwdQyzah6d9fVb09lpRrTaQSBBT42Kx9kwPG6UvaybNCqjXG1hYSGBvL4+LF4P4/vd//jCk5cNVrVZDpVLBo0ePcO7cOaqfisViiMVi8Pv9mJub6xj+0DUSVqsL1HTrxWthYQGf/exn8fbbb7+wnnBjYwOzszH8z/+5gGq1ocqQeJ6F1ytobm6tm2tFhuTxCNjezlI+JD6fiGy2TN3cGIZE9K2spDAwYDs03pJhsfC4enVd9SEB6Ju4UmazDl6vCIdDgMGgQzZbxupqCkNDDg063s6AMRo5nDsXQKNBkP3d3Tw2NtKHYIdZo7dtfb0CPtntRqyuJg8ZQWThttl41GoypQMHgKEhEbkcEApZodcTAMnpNOHdd+mbuAJUtcpgenokDA7aUKs1EI8TqVWlUu/IXmqNt1Z8ftxusgisrKQoYKXTNT1/3odbt/ZgMunQ32+D3W6EyaTD4mKSkmqRCPOGhgVy/Lgb6+tp1Wi6XK5DksgEo7WIgbLWpygYJEZzitnvykoSo6MuDUjX/n0qk5pGg8RbK2Bie7JU8/VNkDAUsiAQsMBuN2JzM0PFWzscJImg3fB3dNSJ1dUU+vvt6sJOJjVrmvOcmTmgGlur1YCeHjPMZoOaVrCyksLx4+4ObBcazDSbeYyPE1+ZUqmGra0sdnZyMBg4BIOW50q9Wn+3GxsZrKw00wq8XhGlUk39f/2pn4rg//7fF5sQV6tVVKtVTE9P49y5c6oxcCaTwdraGsbGxpBMJrG4uIiJiQmKPdONhVSrC9S8nNXtwbql1l/8xV9gbm4O3/zmN1/oOLIsY2pqCvG4gF/6pR9opLe9vU6srDTXsv5+CaOjTiwsZLGw0Jr4o4MomhGLNdfn48clhMN2XL26TxkWsyyDQMClMkKHh0XY7Yp3IQ0gAMCpUwOYmipjZIRHtbqP5eUCwmFzR2Piy5d7sLjIoK8vr8o7LBYdqlUXSiX6yVeueLG8rEMolFbZrRYLh3LZSqVNAcClS37cuMFBkoDR0TSmp7fgdgPr61pmQDjswsZGO9tFQrkso1KJ4tEjsmmemLDh7l36ecEgj+1terOq1wM8zyOfl8EwwNAQC4+nClku4cGDqCo/B4D+fqNGOjU4aMLSEn1d259HDIQ5bG+T78/j4REM6mGxVNBoNFAqVZBIFJBMlg5DI5oXSJJ4ADVkMk1wwmrVA6hSvpKCoIMoMshmKwiHzXA6jeB5BizLYHY2RvmznDnjxoMHz7Y/UPrFSMSKZLKEaJTsG+p1GT09FiQSRYq9o7BdlpaSMBi4Q+NdEg4xOxujes2REQvm5uh9h9croFgkybKRCAn7yOUqHX0IO4FCJ0+6USzW4HaLqg9hIlGC0cg9l+0C0EmzrSz7/n4SttHKyG/ty3ieWDy4XCZYrQbMzdFJs+3v87u/+yq+8IVz+LClRHYnEgns7+/j1KlTao+1uroKg8GAQCCApaUlANCEP+h0uq4/Daln9mDc1772tee98Ll/7NZ/rHI6nVheXsbi4iLGx8df6FgWiwWJxCYODlj8/d8vHi4EQL0uo7/frt7EHA4Tjh51QRR5BAJmFIs1RKMF7OzksLiYhM9HMztyuSomJwPY3s5icNCOkREnwmEr9HoOe3s57O0VsLGRwdZWFru7OXg8IrLZ5qISjRbwyithOJ0mDA4S8CGXq8BmYzE1FVcToMrlOhgGqNcbKtjBcQyMRh1OnfLC7xdhNOoOUe80wmEr5WtTr8sIh61qtLPbbcLoqBsmkw4+nwmZTBnRaBHb21ksLSXh8xmwt9dcYEulBs6e9SORKOLoUSeGhpyH7BkiXdnYyGJjI4ODgwI2N7MYHnaq/i0AUC7X8bGPheHzWeD1iqjVGtjdzcFk0uHBg33EYkXV3yUWK8LlIteBsEAIsHLihEf9uwK0BYMWDStIFPXI5yuqbnhkxAmGYWCzcdjbK2J/v3C4oU9hZMRJgTzFYg2nT/sQixVw5IgTw8MOBAJmyDIQjeaxvU08W3Z2ctjayqKvjyzgrd/na6+F4XIJqoluKlWCxyPi7t1d1e+lWiXfI8+zanOp0zEwmXQ4fdoDQZBhNhsRi5UOJ4nk+1Qa3Hpdht9vRiJRhCwrKVduGI06hMOWw++zoH6fbjeH3d1Sy3nWcfZsAHt7OfUaBYNkahqPF7G1Rc6TAEMZ1Wep9Tw/9rEwbDY9fD4ePp8NqVQJLpeAe/f21N9CrdZAuVyHyaRTQSJyngSY8XhE6PUcDg6KWFtLIxSScPPmjvo/Uq/LcLsFpFLk/5X8bl0wGjlEIlakUvR5DgzYKTAyn6/i9Gkv9vfz6O01A6hDp9Ph5Elv5xvFByiGYcAwDAwGAzY2NuD1eg9/lzHodDrY7XaYTCbk83lks1kqoYBl2Q9shv4Rr6//e3+AbnWsr/17f4BuvTx1+vRpfOMb38C5c+c0KSo/TjEMA6vVilRqA4mEnpINyzIwNGSF1yugv98CWa5jfT2FlZUkTCYjtQmv1Ro4c8YNhgHGxiQAVSwuJrCxkYTVKiKfr1PHPXHCBq/XBJcLmJ2NYns7h93dAsJhq8aYeHTUBIejjsePt9QAgnS6grExF/b3m8+1Wjn09VWxsLBLrTWVSgNnztixvd38DDYbi0ikhLm5bapvrFRknDolYXeXBlAsliICgTwSiXWsrCRRrcpIp2X4fAJyORoAOnHCpLJnHA4ZZ8/W0Gjs4fbtLbXPU86BZQ0USySbbWBw0IREojVdi8HlyyxcrjwKhW1sbe1hYyOBSITTgDLHj4vY2KA9fUZHtY8dO0Ye8/l4DA0Z4HYXMTSkB8+XUKmkkUgksbeXRDhMUip3dnJIJssoleqYmHBhY6N5HuVyA+fOeaiharlcx7lzHuh0wPCwFf39FjgcJJhiZSWOWKyAra0M1tczsFr1FBgIABxHTIRrtcahtM4JUeQRiZhRrRJQaH+/gMXFJPx+M548aUqxMxkiLd/YyByyz+0YGiIMdIOBQzxOfCk3NjLY3EyDYRrU7zMWI6/PZssYGXFieNgOUdQjErFidjZ+2FdnDtntLCqVOiVr2t3NYXzcA6/XiGBQgM0mYHExieFhB27c2MLWVhbJZAmlUg1DQw4KqJEkPXw+EQMDJDW20SC+nUtLSTgcJkxNNUHPZLKECxeCql9gb68VQ0MOeL0iBEGHZJKc5+ZmBtvbucOU1ubvYGcnhwsXgshkygiHTYef2w+3Wws+fpBq7b9SqRRqtRokiVhObGxswOfzwWAwwGazYWlpCRaLhfKj4TiuKz0n9cwerMuo6daPVfl8HhcvXsQ//uM/vlCjAADJZBKzs0t444172N3NUTHBZjOP6ekoRUPsJFlRorkDAQslQ6rXZcpIDOic+jM56UexWFdZGdvbWZTLdTXqrrWOHrXh6dPmNKm314rRURcymTISiZLKHBgedmBpifYsaTXHlSQ9+voIE8Rk4jA1FUU02gRRTpyw4fHj9ig/Ym7m8YhwuwUVqBAEXsNW6WRudvFiELIsg2VZHBwUsLKSAscx8HpFjUFsK7tCiQ10uUzY3s5heTmp+p643QLK5Ro1jVOkXrOzMcrI1mzm8cMfbqgeQQAwNkaM5lrL4SDSILvddHieMg4OCjCb9apfjVKd6J6nT3vRaMiQJL0qK8tmK7BaDdRvCYDGL0b5PtPpsmr2Wy7XEQpJODjIU95JOh2L/n4bFhYS6vdpsRggSTwePNinFuHBQRFLS/T0RIm3NpvJAs1x5HdrNvO4c+f9DbXHxkhzbLEYVVlaOl2G1yt2TEVo/b/p7bXi6FEnMpkKdZ5+vxn5fOWZxsbt53n//j7VgHbysJEkPQSBh9Gog89nVo2UbTYDbt4k114QdLh16//DwICWOv5BS/GrmZ+fh8/ng8/nw9zcHNxutyqHUqRQx48fV6UDPM93gRpS3U7p5axuD9Ytqu7evYsvfvGL+Id/+IcX3uAsLy/j4KCCz3zmHYRCFtjtJqRSZczPx3HsmAsPH9LS3YmJIO7eJca8Q0MSfD4TotE8CgVgc7NdIhLB9etEMh4KGdHbq8f6ehrlsgn7++0+awHcuJEFwwBnzkioVst4/DiOnh4XNjfp5xIJlQybjcOJExwePSIDk6GhABYX6eeS6GcdrFYWY2Mypqa2kM1WMTjox9IS3d+NjZkwPU0ku5IkY2SkjIWFKAArUqn2JCyXxkPn+HERgBEmUwoPHuygXifDO4tF1Lx+fNyF+/fp11+5ImFtrY5IpI50OoGZmQNMTNhw+zZ9XUdHRczO0p89HDZoQBmvl0ciUUU4bITHw4HjaiiVylhdjau+gQABuorFBuW74nQakM8XqZ7HbtejUqmr4AbLAsPDFlitDPR6FuVyDbFYAdFoARaLHru7dPT38LBESakB0n/fvr0Lp9OIcNgCUeQhSTyePDlQvfkAmsGtlNJ/5nIV9PaSXpPjGOj1HG7c2KLYXCdPSnj0iO5zx8Y8WFiIo7/froZ9pFJlxONFHBzQkfGdDH9ff50kzbay7D0eEevraYqpbjRy8Pma7HklebOvz4pEoqxaA8hy58Qmn09EoUCMjRU1gdGog8HA4s4dOsa7E6vn2DEXlpeT6OuzHdofyEgmiS+l0hOPjXnw7ru/CJ7/8MyWWq2GWq2GqakpnDlzBiaTCe+99x7Onz+v9lj5fB6PHj2iwh+6HoFqdaVP3frJ1d/93d/hn//5n/Fnf/ZnL3ysJ0+e4OHDIv7gDx5SNES/n8Qut9IYFQlTOl1GT48Fej2HbLYCu92If/1X2jG+k+TF5TIhFLJAEPRqAtP6ehpnz2pvju2bW79fhN+vgyCYkc1WsbJCzGF1OhaRiITl5c5SEKORUxcCo5HF/HwC29tNXxlCHwVFHwUI4HBwUEAwaFFlKy6XCT/6EQ1M9PfbsLGRppzgPR4TfD4ekiQhl6uqlMlOG/5WHxVB0Kmsk0ZDxvx8gtqIK1HWnc4zGLSoDvX1uozZ2QNq8kY8aLSg0Pi4C3t7BYTDdrAs2cQ7HCYNoNbTY0E8XlRZIACR54yNecAwDOr1hhqtfulSJ6kW7aPi84kYGnJAp2NVsEJhjbSaGCulXDueZzA46IDTaQLPsyoTqBlvzcLh4LG3RzdNFy8GsbKSUpPDstkyRJHXAI+d4q2NRg7j434wDFCryerCfvmydlFuj6D0+UT099tgNOoQjxexuppSj/08Y2M6xpvB3l4eCwvNGG/iYWPD/HxCc52WlpLUeRoMnAZ8UoAqxbdocjKAt9/+eXDchwdNarXaYfrGI4yPj+Px48c4efIkpZnO5XJ4/PgxJicnwbJst0loVvcivJzV7cG6palf/dVfxauvvorPfOYzL3QcxVj46tU6fu/37lB/6+21YnMzozJrJUmPI0cccDrNmJo6wN5eczNL1hJ6Ix0IiBgZcWNvL4PZ2eY6celSBDdu0J5/Pp8RR4+6sbycxMZGruW5Qdy4QfcMkYgJAwNO3Lq1RfWHBOyhgRqPh8fx407cu7dF9Vhnzljx4AG9KRVFFm63Ez09FTx4sKkem/SCtITo+HEznjwha5XZzODkSRb7+1FkMgyiUbqXu3DBhZs36UHN+fN23LpFgITBQR38/hrK5Qzu3KHXU5OJA8PoKEk0APT0CNjaooGe0VEBqVQNPT089Po6Uqk8BEHGnTvt4Igdt2/TvfHZs1bcu9cu23aqXkU+nxGBgBGBgAmxWA7xeBGbmxmUSnXKb6Z5fkTaTn8+B2Zn99HTYz5knHOoVmvY389TknGeZxEKSRp5tWL4G4kQabVOx8Jk0uHGDfp34PcbEItVUK02b50k3toCgIHHQ3zqDg4KHcM+OoElAwM22GxGCAKvxngfHBRw/LhW1t8ajKHEeA8OOlAoVBCLEfl5pVKH2ayHJOmfOUAkMd5WWCwGCIIODx/uUzKxUEiikjQB0pcNDtpVX0qWZRCPF+HxCBr7g3YPxf/23y7gK1+5jA9bigQqk8lgfX0dZ86cwZ07d3DhwgXqeRsbG8jlchgdHe16BNLVBWq69ZMrWZbx0z/90/jyl7+Ms2fPvtCxKpUK7t+/j298Y10DQly+3IO5uTjCYavqht5oyJie3tewVZxOEyWZ4TgGH/tYWL2JHRwUsLqaxvi4T7M5bfe1cTpN6O0lLJKDgyLW15uxz6dP2/HwId1kKCbAHMegv992mPoE5PNlPHkSp0CUsTE7pqfp11+4EMTiYkJNmsrlqigWa1hbS1ETDZYl0qHWqYTBwOG118LI56uUAfPQkITFRbrBEQQeVqsBu7u5wwXEBp9PhN1uxPw8MXhVmrJOm3i/34xMpgSDQYfeXhtEUYdCoQaGYXDv3gfR63oQjxdV8CmdJtOLXK6kiQtvB0s4jsHHPx5RzdqU77O/36aJ4TaZiImbEllotxsPI8tF7O8XKGPjZ50n+T1UKVYQxwHvvbdNfZ+dDH+PHXNhZyeLSMQGi0WPYrGKaLSASqXeISmMTJSUYhji25LP1w6BDMJ+8vvNODgoUEBVK6sHwOHCbkMwaMHOThpraymVMv48Y+N4vIi+Pqu6sJtMJK68lf3UiY3W329DJkNAU4vFgGKxit3dPAyGDxZX/tprJK68Wq0gHi/izTfP4Dd/88MblSuNQiqVwvb2NorFIi5f1jYea2trKJfLGBkZ6TYJzeoCNS9ndXuwbmkqFovh9ddfxw9+8AMqnfPD1MHBAdbXt/HZz96n5ECCoMMrr/Qgl6shHi9iYSGBel3GyIgDc3MZtN8yjhxxoVKpIxgUkEgU8fRpAufPB3DzJr3uGAwcrFYHUqkKTp60AKhiauoAk5NhXL9OAxWCoAPPW5DJ1HDypAW1Whazs0lcuhTCtWv0GmM26wDYkcvV0ddngNdbw4MHWzhxwoX79+n+wunUI502q4EGR48aIElFMIyMW7fo9XxszIHpae11m5hwQq8vYmpqU+0dCWhBb7xPnZIwNUWDNydPmmCz8Vhd3aeGV0NDViwu0myO8+eduHWL7uWuXLHjxo0sBgaM8HpZVKtFmEwy/vVf6QHT+LgD9+/T1/TYMStmZmjwJhDQYWenBkHgEImIcDh46PUyEokc1tYy6tDNbjegVqtQprlGIwebzUABdwwDHDvmRLlcg8tlBMcB6XQZNhuvieHuNEBU2LmhEAFleJ5FoVDD/n4W29t0DzU0ZMbiotbwd3MzA5/PrA46OY7BkycH1N5BFHkN29pk0uHixSDK5TqqVWIJsLGR6RjO0O6LEwiYEQ5LkCQDNjYS2NjIqfHnzxuUKv45drsRsgzkcmUN2/zsWb+mz750qQcrK6nDVFMOmUwF1SpJRX2Wh03rY6+8Ej5k6+SQTtfxV3/1szh71o8PWwqzeX2deEVWKhWMjY1Rz5FlGQ8ePEAkEoHH4+l6BDarC9R0C3jrrbfw+c9/HvV6Hb/yK7+C3/md3/nQx3r69CnefPNN/Mu//MsLG0Ftbm7i6dMD/PIvv4dQiGz6yuUa9vZy0OlYjUFrpxveq6+GUS7XDhkSRIYkivqOEqZWGqUitwqFpEPPk6x60yaO8ykKBNDrWbjdJmxv59Hbaz2UrTAwGFi8994OBaycOGHH48c0KOPxCGBZBh6PSMmtnE6TBplvl/YwDHDxYg8ajQYlYdLpGDUxqbVOnJDw+DFZ4BUJk9Npws4OLWHqZNhLrpMX8/NxdZpQrTZgNmuNbIeG7FhZSWnAkr4+CSYTkb4oKUEjI07NYjcx4cPdu/T05cwZHwwGFhzX/D6r1QYGBx0a+mzrdVKMjZUFVPGuAQiQodezVNQ60GQKEVYQAZE6TWp8PgPicXpSw/NkgsGyDOx2o7qwh8OS5jfaialz9KgTdjthl6TTZayspFQfl2exeoBm0kEgYEY+X8XWVjPG22gkRtVaY2MClvj9ZoRChJFmMHC4fXsXuVxzOud2C6hWtTHeZ874UCxWYbeT38vubh7hsDaufHjYoQHPIhErQiEy0cpkyHnmchWq+dHrWbz77i+p3kcfppRGYXFxEel0GleuXNE8R5Zl3Lt3D0NDQ6qfTbe6QM1LWt0e7CNUP8ke7M///M+xurqKr3/9xe2lpqamMDsr43/9r1kYjRwSCQLMiCIPjtNRiUIAcP58ELduRSFJegwPW2EwsGg0gJs36TWLZRlEInasrpI+xGBgceIE8dO7dm2HYo6KIg+93opksvlYMGg4NJg9wPZ2czNttxtQKpmo6G2eZ3Dpkh3b21lqSEXkWSZqg07OoQcM00AyGcPcHPHVO3nShUeP2hyFAQSDXmxvV2GxsBgb4xGLxeF261Vpl1JHjkiYn6dfy7KAy2WB3c7B7W5gfT2Ozc0szp1z4c4dGmy6fNmN69fpx8gwqACWJQbBHg8LWa7gyZOoxrSX43TIZps9C8sCfr8J29t0zzMyImJ3t4DeXhEWC4dCoQCWLeP+/TRa94QXL/rw3nt0b3blil+z5l+65EcmU4Yk6dFo1BGLFWEwcHjyhPYrdDpNqFbL1PfOcQwGBmwoleoqKJPJVGCzGTQskNFRC2Zn6T43GLQc9sCiyuLd2MjA4xE6Mn5b+zKOY/DKKyFVJqX01JJkUNM5W6tVAqUMAJVk07W15kD3eYa/a2sp9PURLxqWJR6O77zz/jHeLpcJgsDD6TTBbNajUCDMnmDQrJGFtZ9nc+8gg2WZw0FnCjodC49HUAHaoSE7bt58AybThwdParWaytTzer0YGRnRPKdUKuH+/fu4cOECTCbTh36vj1h1gZr/6FWv1zE8PIy3334bPT09mJiYwHe+8x2Mjo5+6GP+1m/9FiKRCN58880X+myyLOPu3bv4P/8ngz/7s4fU38bGPJoYaWLyawLHkRv66iqRrXSW5jT9VhQZUiBgRqFQxc5OUxuq07Ho7SXu8K2l3PAUbSjPMygW81hczFOJSxaLDhzHUq74AGFMZDIVVRu6t5dDT49Fs4nvlMIUCkno77eiXpepTfz7SZhIFJ8dkqRDPl/Azk6VkjB1onZeuBDE7dvbKoMEAEqlOhYW4sjlmtMTsqjaVQtavOMAACAASURBVBaHUq++GkIqVaa8YXw+UbOA2O1GMAyROCnl95vR329GqVRFrcap8pxO5zk4aMfaGomwVmKfvV5igKvEsisAQSdPI+XcnU6TGuNdqdRV2ZRSDAMMDnaa1ASxsZGE12sGz/M4OChAp2PVaaNSnaIZHQ4jJib8KBRqKBSq6sJ+7lwAd+5oWV6KLrkZ4y3CYuGxspLC6mpaXdhbqbZKHT3qxPx8HILAHSZGmVAq1ZDPVzUx3qTp3m57LIBotKCyiRQ2T3v8fKuHjVJWqwEXLwYPmWFVrK8TmvCxY0SW1dowWyx6WCyE/sswwCc+0Yu//dvPQK9/Ma30wcEBFhYWMDk5CVHUmuQVi0Xs7+/jyJEjH/p9PmLVBWpezur2YB+R+kn3YPV6HZcuXcK3vvUtDA8Pv9BnKxaLmJ6exje+sYYf/pBmPBCAn/RVZjOPoSEbbDY94vEKZmZi1Lo3Ph7E/fvtm8YgGg0Z1WodMzNxFAo18DwLj8eiYUdcvtyL+fkcjhwRkEzmMTsbh81mRKXCU0me5L28uH+/iGCQhdstY20tC1HUYXdX1oAy4+MR3L9P1uL+fhMCAQa1WlHDngGAnh6PmkwFkF7gZ37Gj2SyhEePtlVWazgsalKeAGBgwIPl5dLhe3FwOOqQJB3eeYe+LoSdTYMOTiePTIZRh0HhsBGhkA48L2NqKkoNT86cceDBA7oPu3TJixs32gdZbkxNJdHfL0CSOFQqZZhMwI9+1N6DmrC2RgMTfr+AeLxEAQ6RiBlerx4GA4tSqYbd3Rx2dnIYHrZjbo7+PBcuBFQvuuZnDGBrK6WyXRTQ5smTKPW9CQJ3CBrSPfXFi0HEYmm4XBJKpQbW19M4etT53F6x9bFgUES9DjUFs1isPbdXJJ9Fd9iDCahUGlhbayabMgxJNm1nwCgDRLdbj74+J/R6DrIMTE/vt8V483A6jSoDvPn6IJLJsjoA3NnJIRAwd2SAt3sL9vRYMDxsR6XSoPYOz+sVGw0Cdv7X/3oeX/7yi0ugnj59ilwuh0uXLnX0Adzf34fRaITH8+EHcx+x6gI1/9Hr5s2b+NrXvobvf//7AIDf//3fBwB88Ytf/NDHzGazuHTpEv7pn/5JNez8sJVKpTAzs4jPfe4+trebNyyXy4TxcS8KhRry+ZoqQ1L0qq0VCJiRTJZQLNZUGZLHI0IUeayutm9uO/t7zM7G4HCYEIlIEEUehUIFmUwJS0s09fT4cQlPntCPnT/vRyxWgsdDpE8HB0WUSjWNZIVlGQwPOyizY4fDiMnJAHK5CgqFmrqJVz5Ta7VKmBR3e5dLgM1mwNOndBRfJ1aP1yuiUKjAbDaozIp0ugy9ntOg+J0Me48dc0GWZZVZsbeXRzRagN1upL47ck1oEMDhMGFykkQOtoIVgYAZ8Xge5XLzltN+nRQGk9MpYGUlqZrgku9D60lkseghioTN099vgyQZUanUYDLpNDK7EyesePyYbtpCIUmd1Cj02fV1kmzVPqlp/z0Jgg7nzwdRLtdQrcrY2SGSNGIgrcP+Pk1vPnfOr/q49PRYEAxa4HSa1HhrhdkTCkmIxbQSqIEBOzY20moiV7VKYrx/8IO1tvPUaqqtVgMCAREWixF6Pasu7KOjrvf1bjIYOJw96wPLsqhW62oywvM8bJSGSgE/HQ4j9vbyWFpKIJ+v4b/8l0n8j//xCn7cKpVKyGQySKfTODg4gM/nQyKRwMTERMdGoRsLSVUXqHk5q9uDfUTq36IHu3nzJr761a/i7//+71/Ya2tlZQWrqzn8p//0tjowcrtNh0MfAzY2Mlhaag4krlwJ49o1ugcjyX819PdLEEUOu7s5LC+ncOKEF48f02sB6eEIeNHba0ZPj4hMpoTd3YqG9Tox4cHdu619IYvBQRGJBKMZGrUaHit17pwXPG9EPJ6k+q7eXhfW1trBoiCuX8+it9eEUIjF8nIU9Xod8ThDbfoBYGzMi+lpug/85CfJMGZ19UDth0IhEZubNKjDMGSTvbPTauyrw8WLDqTTRayvJ9TXX77sw/XrNABz+rQDDx/S59nTI2Bvr4LeXjM8Hh6yXEMikUM0StKblCIR7BasrNCf/cgRE+bnm9c+GBRw8qQD2WwJuVwFm5sZxGJFXLwYwHvv0d/96KiTSg8DAKfTCKfTALvdBJ4nrOGNjTR8PlHTGzwrBKNQqMJiIQPAra0sGg0ZhULlfQdGXq+A8XE/stnKodlvGul0uWPogdIr7u3lqb2D1WrAwgJtC/A8CZTRyKO319piCwDN8LgTWDI25kahQMJCGIZBNJpXWUnvJ5e32404fz6g6ak7xZUrHjZzc3HV/sDrFeFwGLG4mMTKCmFC/7//93N47bUIfpySZRmFQgHpdBrpdBqxWAx+vx8MwzwTSO56BFLVBWr+o9d3v/tdvPXWW/j2t78NAPirv/or3L59+4UNgb/zne/g6tWr+JM/+ZMX/oyzs7O4fz+Pv/7rZZTLtZYIbQHFYpW6MQP0plPZxLtcJqyspNUEJgAdU5iMRg5ut4BksnS4iTegVKrCaGRw/Tp9YyUaZXpRsdt5OBwmuFxNDezqahqDg3YNA6idGSIIOkxM+NFoyCiXG+om3mDg3jeFKRwmml273ahu4pXzfJaEaXjYjL09AlZYLAYUClVIkl4zOevE6iFUZQ94nqMok5OTgfeV9pjNPI4dc8Nk4lAoEImX0nh0kvZcuODHzZtkAfL7zejpscBqNSAeL2JpKama/RoMRNrTnm506VIP7tzZoQyReZ7F9etbKnAFAFYrj0ZDpijCAAGVarUGTCYdslnC1Dpxwq05z4EBYuCsTL10OgbDw4TOrQBzKyspNBpyR1ZQK31W8UOSJCL3e/o0TsWLP0sCdfPm9iF9lhjjVasNPHkSRbHYlN510iUDhP2UyVRgNvMqKBgOS5r3cTpNkGWo7CeGIZTewUE7cjnSTK+uplCtNp7pYaPQfxX/HEnSg+dZTE8fUMkKrdeJ4xi8/fbPY3IyiGdVtVpFNptFOp1GJpNBoVCAwWCAJEmwWq0wm83gOA6bm5vgOA4DAwOaY3SbBKq6F+LlrG4P9hGpf6se7HOf+xw++clP4md/9mdf6DiNRgN37tzB1atVvPPOBjY3m+t1p0GI0cjB6TQjna5gaIh41iUSRTidggbAafe1EQQdjh61wekUMDeXpJinZ8+6ce8ePVyyWvXweCR4vQbEYgXMzZG/E8YG/blGRuyYmytBkngcO2ZBqVTC9HQUAwNuLCy091YBytg4EDBheFhALFbWnO+5c0GN2e+5c27cu5fD6KgFNpuM5eU48vkKajVO9SZR6tQpH6am6J7lyhUP4vEKnE4G8XgGc3MxjI7aNUNAm02PcpmhpF5ko21GNFrC4KAZFguLbLYEQZDx3nv7be/jx7Vr9NBlctKL27ebzwsGBfT1GVAsllGvc1hbSyOVKsNmM6DRkDVpkP39NoqBTnzneg4ZUwzSadITj425NWyVUEjA9naB6sndbgG9vSSEQGGQbG5mOjKO2wdGNpsBp055Ua/LqtlvNFoAz7OIRJ7NlAeaPbXNZsTWVgbLy82eWpGlK5ImpcbHfXj6NIaBATusVgMqlQbMZh7vvLNOPa+vz4adnSyVQKXXczh+3AWe58DzLFKpMlZWkjhzxve+IRhGI4cTJzwQRR2KRZoJ/iwPG6UvCwTMh36CeiSTJNlNsT/geaIoWFwk16mnx4I7dz4Hq9WAZ1XrYCyTyaBSqUAURbUHEwQBDMNgenoaw8PDsNvpVM+ukbCmukDNf/T6t2oSZFnGxz/+cXz961/HmTNnXuhYirHw7/3epuaG13pjbd/ELy8n1UWE51n09Fg6+tq0buKr1ToYpoE7d2hjYkkicb3tYMfFi0FUKnWYTPzhJj6JSMSE6Wn6fdrBDp5nMTRkh9drRqlEHO4Vxsv7SZg8HgHhsASzWY9KpYGZmQPKb+dZEqYHD/YwMGBTGS+ZTBErK2mUSs0TZVkGR4448PQpPQF5/fUIcrkqxayIRKwaVg+JUSSsHuU8lcjBVKpMneez2E+pFEn1cjiMiESssFj0qNXKePo0RenUO00gFBlNb2/TBDedLiGVKmFri5YrdYo7v3y5B9lsRfVD2tzMqMdopVh3mtREIhKOH3djezuBQkHGxkYWpVKdopAqJQi8yjQSRd2hDMkASdJjaoqOn3+eBIqwXizqwq7Xs3jw4P3jysfG3Gg0ZHBcFTxvxN5eAYlEUSPLArTNTzBowdiYG9lsBel0GcvLqcOpj4ByuU79FhmGyBTbjfGsVgOePDloM0wk3k+t00mTSQevV0SlUkd/vwFvvDGBX/iFEwDIBiKbzapNQS6XA8dxkCRJbQpMJpMGdFG00tPT0zh69CisViv19y5QQ1X3Qryc1e3BPiL1b9WDRaNRfOITn8DVq1chCMILHSsWi2FxcQO/+Iu3OkzyifG+zyciEpGg03HQ6zm8++4GJX+yWg0aXxueZ1Xz+FSqhPn5OCqVBo4ds2Nmhl6vdToWbreIRKKMo0etMJs5bGykEYk4cO0aveb5fEbEYg11LXG5DBgeNsNsNuKHP9yghk6EtUr3AUQO74LDoUMsllPZNgTAoQdux445MDNTPHwdi2PHJBiNdcTjVRU4UurSJT9u3KB7prExK6anK/B6DejvN6HRKGN3N4NoNE/1ZgBw5IgD8/M0WKOwatxuA/r6ROj1MoxGGVevblK+MkNDNiwu0udpteohy7KafOVyGdDba4bdziMWIwELiQQZEHViixOWUSvYIuPyZTLY0ulI37SykoLRqEO1WqMStliWMKZWVprfs9HYNLKt1WTs75ME1lOnPJq+xuUyoVZrDiAVGZLfL2J7O45MBqoMqVMP1OqZp/TUgsADYPDo0T7VxzxLAvXw4R76++1wuwU0GjLyeQIGpVK0RO7ECa1Vw+uvR5BIFCDLZbCsCevraTidpmf2QMoAUpG8Dw3ZkU6X1QFgvS53tHlwuUyo12UkkyXYbGQwZjbrIQg63Lu3R4FNz7IV2NrKIBy2YHDQhC9+8adw5gwxFq5Wq8hkMmoPViwWYTAYYLVa1R6sE+hSrVZRLpcxMzODc+fOQafTqX9jWbZrJExXF6j5KNRXvvIVOBwOfOELXwAAfOlLX4LH48HnP//5933tvwXtVqmZmRn82q/9Gr7//e93lBj8OLW1tYWnT6P4uZ/7V1QqddVLxGzmwfMspqai73vDGRvzYGbmQGUcyLKMZLKIeLyIgwM6vvHUKRempugF9ZVXQshmKzCb9So6z/Mc4vFCWwoT0NcnYXmZLGoKlVCJEI/Hi2oU3/tJmCRJf8g4MMBs1uPBgz3KV6ZTOhGJcq7A5RJUsCIWK8Jk0lEoPDlPO6amkm2PkWjrVmZFLld5JltFQeaVyMEjR5zIZCrUeT7PmHhqar8NrDBgejpKpXUNDNiwtpZCvWUYpddz6Okxo1Sqo6dHgl5PdM1WK49r1+hFdWREOpzcNcvnE+HziTCb9VS89enTTWZLp/Mk11jAsWNu1GoNZDJN+izPswiHtbHszRhvksjkcgkQBB2Wl5NYW8uozJ5nGRtPTPiwupqmEsAkSa+RanWSQOn1LMbHfSr4EI0S9tPFiz0dga5W+q/dbsSRIw4IAo90ukwZ43X67SngWyt91mDgDtM+4mqDzLIMRkedGlPBK1dCePw4ijNnfDh71o+zZ/0YH/fB6xWxtbWF7e1tWK1WZLNZyLIMs9msNgVms/kD3WcUrXSxWMTTp08xOTmpSp26TYKmukDNy1ndHuwlqpe1B/vTP/1TbG1t4atf/eoLH+vRo0e4c6eEL3zhXej1LAYHHXA4SBrN7m5Ow9DslCh4+XII2WwVkkTWk4WFBCwWHplMHeUyDUoQZnQKgIzBQRt8PhNEkcO7725R65vFoodOJ1ASHkDG668HUa3KiMXymJtLQJYVGQ7dwzAMcyh1yuHIESvcbh47OykEAhKuXaM/fzAoYm+vQgFQTqcBZ854kEoVMDOzp0pKCDhAr2/hsBlbWxU0GjIMBhYjIxbIcg5Go4g7d+jejPjK0I+dO+dR2TvBoIBwWIDBIGN9PUsNIXU6Bl6voPH6IawkwggymTgMDFjQ22tGNErCFZQBUSfGrs9HUrsqlea59/VJCIXMh8yasuoLOTHhxd279Ovbk1F5nsXkZAAA8Q5SEjv1ehZ2u0kjl2/tNxRp/8CAHclkSWV01+syenosiMXonpzjGDVworWnliQ97t2je+rnyeUV1rYSTmK1GjRyp07efgMDNnWIWamQFNa9vRyOHHFq+v92uXwwaMGxYy4Ui1Ukk2VV8i6KPGw2ra2AIsFSgiXsdiNEkcfsbJzyW2z1O1RK8dVJJssYH/dhfJz0YadPeyGKPB4/fgyGYcCyLDUYU3qwToOxTqWEOxwcHCCbzeLYsWMt3xVHATfd6gI1H4laW1vDZz7zGTx48ACNRgNDQ0O4c+fOB/KHqdVqGB4extWrVxEMBjExMYG/+Zu/of5xXqR+8zd/E0NDQ3jjjTde6DhKIssPf1jCX/7lE4pxoMRgt5Yg8JAkPfT61htrHqLI4d49+rlKekBr9fZaYbXqYbEY1Hjr7e0sjh1zaTaX7Wh9IGBGIKCD0Sgina6ohl1GI9cxhUlB65Ubq81Gbqzz8wlsbKTVTfOzwI7Tp73Y38+jp6fpK+NwmPCjH2klTDs7WcoAzmzmEYkYYbNJqNVklTLZaQLR7mPi95sxMGCDXs8iFitRiVGdWCDKAkLACjtcLhN0OhbRaB7z8wkVrOjk1UNe78fMzAEGB50QRT3y+SoYRsaDB/uUrthk4mCx6BCN0swOZXLXGm995kznWPZ8vql1liT9oTmxgHi8iM3NrLqwP3tSk0C93pTe8TxJv7h3b5eiu3aSBo2P+zA/H1f9c8rlGjKZMqLRAiV/Ajo3VEpcuSK9U2K829MG9HoO4bCk0n9NJh0GBmzo7bXi4KCoRroDnZtuq9UAg4FDNFpQ6bN6PQdR5HH9+pb6W2j97lsrFJKQz1cwMGBXAZmJCT8GBuwol8sd6bPFYhEOhwN9fX0vtJgrjcLe3h5KpRKOHj0KoNskdKguUPNyVrcHe4nqZe3BarUaLl26hL/8y7/E4ODgCx2rVCphamoK3/rWAf7hHxZRqTTXsU6Dsb4+G6rVGoJBCTzPqpvpQEDA2hrNljl/3odbt0hfxTDAwIAVfX1WZDJVLCwk1XWPYQirpN2c9vLlCBYWMujvN0OW61hcTACoI59nNQDQ+Lgf9++TPkaSeIyMSHC5TLhzJ4pYrCm7NZt56HSCJgjiwgU/ksky3G49YrEs5ubiOH3agwcP6H6FpFUJFAu4v1/EyIgdu7tZPH0aQ6lEQB0lwam1CCiUV4dT4bCAUEiAyaTDkycH2NtrXkOyvrZLxn24ebM5cIpERAwNSSgWKyoLo1ZrQBB4CIJOk2TUvuZ7vQJGRkTk8zXUaixWV1NIp8s4dcqNqSm6f3Y49CiXGyoLmWWBgQE7wmEJpVKdGuJ1+u20SnuUAWA4TJiv+/t5yofweUmYBgOLgQEH7HYjeJ7D5mYaKysptV8kMnAzVla0TPuFhQTCYemQLV+G0ajTMMAdDhKC0Tok1ukYXLrUg1qtgUYDiEbzWF1N48KFoKbXi0Ss2N/PqaCSw2E6TFMlqoC1tSajqdN1UnryZrCEAI5jUCrV8PBhlEqM6jxYC2J+Pt4yGPPh7Fkf3G4R+XxeZctkMhnIsgxRFJFIJDAyMgKXy/VCA/h6vY56vY7Z2VmEw2G43W4AAM/zLzzY/4hVF6j5qNQnPvEJ/OEf/iH29/fx7W9/G9/97nc/8Gu/973v4Qtf+ALq9TrefPNNfOlLX/qJfa5MJoPLly/je9/7HhwOxwsdK51OY2ZmHr/8yw81fi0XLgSxuppCKCTBYOCQTpdgMDDq9EAph4MAL62+NjzP4sKFAOp1oNGQEY0Sec6FC8GOPiRra2l1ouJymdDfb4PVakAsVqSoou0TBKC5AHEcozJ7OI5BPl/F9PQBdWPtJGG6eDGIubm4yiZSkoJWV1NtrB4t2MGywMc/3qumNSkTjEjEjJWVDAV2CIKOmmooMqRAwIy9vTzFrOj0Od1uAeVyDdls5RCsMIPjGOj1HG7c2KLAimfRLQ8O8giHrarWd28vh1qtip2d9mhEp6ZJunKlB5VKHTzPqfIcg4HrqCtu1fAq8py+Pivi8aIKXMky0SwTOnL7pMaO+fmEaoJrMOhgNvO4dm2DkksdP+7GzMwBdZ3NZj3sdgMEQQ+Xi/jn7O/n4fWKGmCj00I7MuKExcLDaCQsG6V5On5caw7cCiopC3tfnxX5fBWbmwns7JRQr8swGjn4fM9mTynxk2azHgYDh6mpfarJa/ewab3O+XwF4+NKQ+DH8eNuAA2qIVB8ZZQpjSRJMBiIJrpWq+HevXs4deoUjEYjXqRqtRoajQaePHmC/v5+OJ3OrpGwtrpAzctZ3R7sJauXtQe7ceMGvvnNb+K73/3uC0s6V1dXMT+fws/93FWKVcLzLPr6yNDGZiPDhfX1NMJhUTMYGxmxYW6uyb4xGDgcPeqE0ykglSphaSmpyk7ImkX3FsePk2GZ02nEwIAVPM9iby+LapXRDMEIA6XZg+l0DC5e9EOWG4jHi5ifj6Nelw/BIReWltq9YiK4di0Kt9uIgQERQB25XAWzs7SUGQCOHHFhfp5mFX3sYxEUixUwTAMrK0ns7xcwOGjD0lIWrbdWjmPg9dIGwr29AkZHreqGXQkamJz04fZtmvEbDJoRjZZVfzxB4DA8LMHpNCCVIqCIAnZ1Slxql/ZIkh7j4x7UanUUizVsbKQRjRZgMulgMjFIJNp9IelwinBYwokTbqTT5UOfxhQKhRqGhuxYXk62ycDpXjMYtKCnxwynU8DmZkYddAJ4plw+nSZhIQpYwTAMOA64cWOb+p0+K91odzeHSMSqppNGo3nU6zLF6ibXTjtw+tjHwmpiWSJRwspK8tBb8NkycOW8BwbsiESsh2zuBA4OCKg3OGjH+nq6zRey6S2oXCOe52A283j33S0UCs3vpN3DBiB+PWazHsGgherBBgbs7+srI0mS2hel02ksLi5ifHz8he8ntVoN1WoVU1NTOHfuHPR6fVd6rq0uUPNRqb/927/Fe++9h729Pbzxxhv41Kc+9e/9kdT667/+a1y7dg1/9Ed/9MLHevr0Ke7ezeK///fbhy7qPPL5ChKJAhKJksYIdmzMhenpZqPAMMBP/VQv8vmqumlfXSWMg3bD3PZoboUyGQpZsL9fUE2Ngc6pOYLAQRB4xGIl1ZiM51kIAo9r1zYp+m6nBcjnE1GrNeD3m1WwYnc3C6vVqKFmdmJ2nD8fgCzL4HlONSar1+WOEiaikyaPEWaFHaGQBYlEiWJW2GwGcBzbAewg2li/36wmRokijxs3tpHLNSdKoZCEgwMt2HHkiAP1OiiwwucTNAkCg4OWwyanWT09lsMkJhb5fEWdQnS6pq1MHyJRsyESIVHnCn27Vms8U1esgErEBNcKi8UAhgEWFxPY3W3SZ59nbLy9nVWBq0SiCFHkNbpim80AnY6lABCzmcfkZADlcgOVSk2lKnfST7c7+4dCJDFKkgzY3s6qjRPw/Bhvvb5Jn63XGyiV6h3MnrXNy8SEH7u7OZUpMz7ux5kzPoii7kP5yrRWIpHA2toaTp8+/cILerVaRbVaxfT0NM6dOwdBELrTHLq6HdPLWd0e7CWrl7kH++xnP4tPf/rT+PSnP/1Cx1GMhf/3/07j7bfX4fWawTBANJqDwcBiZoYeTImiDiYTT61jPp+IU6c8yOWqh16ChFnRaeBjtRrAsjokk2UEgyJCIQs4jqyv7X6F5PV0X2Q2s+jrc8FqNaBQqGB+PoF8vtqxNzhzxqvGWlssPIaHSUpPJlPXMEYuXvTjvffoz3r6tBfLyxkMD0swGhns7BDjWr1er4mSJr44rceUcfasGQaDiGq1ipWVJGIxknp5cFBRARiADOGItL7ZWwSDAk6dciGVquDgIK96r0xM+HD3Lt1b+HwiUqmS2oMRv0QbAgERuVwFu7s5lcndbiwMAMeP2/DkSYo63siIE7IsI51uysA5jsiT2tO3WgdzLhexMHC7BUSjBaytpdRBp91O2CrtAx8ldCEUsqj+fKJIeurWJCPiC5mhrh3Pk3QjgAyUajWSThoKSR0Sl7T9X18fGTrqdKwaLJFOl5/JVlEkUEpiVDgsqYbIilTreTLwa9c21SGp2awHwwBPn8YoabzJpIPHI2B9vd0/qAeJREmVL42P+3HihBuyXP9QvjKttbS0BJ1Oh97e3uc+7/1KkaEnEglEo1GcOnVKHcp1S60uUPNRqUqlghMnTqBarWJxcfGlmgrLsozXX38dv/u7v4tTp0690HGy2SwePXqEb35zBdev0zfRc+e8Gp3vmTNe8DyrMitWVlIoFmsYHNQuIK0bVoVZEQpZkE6XsbdHTM1kmfaQaS1lw+r1CgiHreB5BtVqAQsLRQpZV9gmrdpQ5bPm8zUKrAgGLZoFpL/fhs3NDAUq+XwChoacAGSVWZFKlZ9LlwTQEjloQqlUQCrFHHrBkH/x5/mQNJkVPGo1GdvbWYrpxDB4BrODgBVebxOskGUZi4uJNg8aFm63idJZi6IOExNepFJ58DyZwuzs5DrSX9ud+ckUwgKHw4jNzSxWVlLqFOJZYEc8XkSjIWNwkEjS6vUGWJbRPPdZYEc8nofbbYDdLiGbLWN3Nwe9ntNMatrfX6dj8NprERSLNfW3sLaWhsNhpAz0lGo9f8W/ye8XsbOTw9paWp2m9fZasbuboxhNirP/8nISoZCIYNCmehRdvbpOsbw6AZIWi/4QoJNamgLfYdx7QZ3SKPRZxVfGarVCFMUPBYzMz89DEASEQqEfTWadzAAAIABJREFU+7WtpUigEokE4vE4zp49253m0NW9GC9ndXuwl6xe5h5sf38fn/zkJ/HOO+/AZDJ96OM0Gg1sb29jfn4dn/vcA8oYGADGx724f7+5DguCDleuhJDPV1Eu17GxkcH+fh5uN0nsVNi9SilMAJ2OeIq4XCZYLAaNN18gYEYiUaQGPgBw+rQflUoDDocB+XwF8/MxDA9b8fAhPTDx+0Ukk02wwmzmMTxsg8djxvp6BgsLzbhxkq5J95o+H0kGNRg4DA5aIQhEAmw0cpie1vY716/TvUl/vwSe5+B2G1EuV7G0lEQmU0YgYMLmJi2BunQphBs3mmCLTsfg1VeDKJerqFTqWF8nbBulN2jvKxUGklLhsAXHjzuRyZQRjxdUoOzYMSdmZmhmssWiA8uySKfJMZtmtDJSqRr29kpqSmOnXvPIEQcWF0myqjLotNmMYFlgbi5B9dCdvF2U/tPlMqG31waTSYdKpY6trQy2t5uvZRjg2DGtt8zlyz1YW4vD5zPDYCDJYCzLUN8vQEyMvV6RAjskSY/z54MoFGool2vqb7c1nVOpdglUOGyB3096zfV1OoW1k9w9HCYDzEajgf5+G5xOEdVqAywLDfupU685OupCLldRh2KKr4wg6KgUzBfxlWmtRqOBe/fu4ejRo7BYLD/Wazsdq1arYXFxEW63+4XBn49gdYGaj1L9+q//Omw2G/7gD/7g3/ujaOrx48f4jd/4Dbz11lsfeGNWqVTUG0w6nUa5XIbRSG6I29sFfPazt6iF2uMRMDrqRL1OwApFhtRuzgWQTbSSbKTIkAIBwnjZ2MhgdTWtblA7beIVBkmri3q1SiiT7XrX0VEbZmdpSuylS0Hs7OQosKJSqWNzk/YR6TSVsFh4XLrUg1yOND8KWNHZmJimlSrMHpfLhNVVOq68UwqSMnWoVutq5GC12oDBwOHdd+nFotMC1NtrRb1eh99PWDaZTAUbG2k4HAasrNATgLNnXRRNmudZXL5MJEyNBlSwQhB4GI0MYjG6SWydkilghc8nYm8vh9XVJlhBzJarmoZmbMyDJ0+iqgkuwwCiqMc779BgRSegjOdZHDlih07HwWIxqGbTw8OOjqbW7ZMaQv0mDbSi3y6X688FygCoJsxK4tLKSkr1b1KM4To3jlsUfbbRkA/Tw5rX5Fkx3q+9RlIZlIbg7Fk/Bgffnz5rsVh+Yv4v9Xodd+/exYkTJyCK4gsdS5nq7O/vY3BwsMuooasL1Lyc1e3BXsJ6mXuwP/7jP0Y0GsWXv/zlD/R8WZZRKBQoWWq9XofZbEYul8Pdu2X8zu/cUZ/PsmRgYDTykGWZSqPpBPC3buyV4ZYk6RGLFTA/n1D7EpZlnjFY68HMTAz9/XYYjTqkUiXU6w1NwiLLMohEbFhdbQ5HHA4DJif9yGbLiMUKh0MiGUNDDiwt0TJwjmMQDtuxupqF3a7HwABhzIgijx/8gE62au0rlSLsWjLQstv1yOUqWFxM4ORJN27caJcymzE3Rw8Ae3sleDxm6PUcUiniBVgs1p5h1kyDJZKkx8SEF5VKDfk8GeAlkyWYTDpYLDyiUZqtcuqUE1NT5PMrnol9fcSzjjBtSM8WDkvY2cmg1kJg1+lYRCKSKjNXmLg2mwEzMzF10Al09pVRGDS1Wh19fTY1edNo1GmAiU69ZiRiBSDD6zWr6aQbGxl4vQIWFmimVzvYodezuHixB9VqHfU61GAJZSjb6okJ0CxiBUTyeASVKaMMZjslYZLr7MHjxwfo77fB7SaJbKJIYrxbf099fTZsb9N7Ap5nceKEGw6HSR2KnT3rh9stqL4y/z97Xxoc2Vme+/Tep7tP75K6tbTU2qVZtC+z2uOxuRhsjHHAcCuJK5QhJDfBFyost5JKCJQpEgqCIYRAKJNAJYEbwFWE7QJexmB7bC0jaTTal9a+tKTe9+3+ODqf+utzNDMeaWzZPk+Vq1ySTut0t+zv7ffZAoEAKVxgWZbMYLdKjIkhHA5jbGwMnZ2dB37MdDqNdDoNv9+P6urqQ7m/NxGkRc2bBdlsFu3t7fiv//ov1NXVvd63I4rHHnsMzc3N+IM/+APB91KpFLX5jUY5yWj+5lej0UAmk5Fg4aefjuHZZ1dJjfL6egSNjZxlI//PV6tVwG7XERVDZaURDge3rPB4AkRlA3BBrgMD9LbcYuGyMBIJzgNrNnPLCoZR4Lnn6ANEbKlTXKyBRqOilhULCwE4nQZBYK7YAXLqVBkymSwyGa5dYWEhAI1GgaIiHZaWaGUGx/6s7P5ernLQbtdhfT1CHSBmswZyuVwgK21sZDEzE97Nz9Ejm81Bp1PiuefogYRXm+Tbt+RyGVpaigGAaoyqqzPh8mX6Na2uZuHxhMhAJZNxIbwOhw7pNJdvwjM9+c+JR/5BbzCodlkIHTKZLGZmfNTBmp9BU/g+8SoblUqOZDKL2dkdbG/v+cTlchkaG60YG6Pfp/PnK7C1FSOWoNXVMHQ6Faam6CGRYZSw2xnqfSop0aG1lVNPhcOcyisYTIoyNfmqIKVStlsFycBk0mJychvz8wESwnw9C5RWq0RVlXnXKpiCXA6B3Wo/VZBMBrKU6ehw4vhxO/JzZW5VPntQBAIBTE1NoaOj40CDQjabxezsLDweDx544IFDvMM3BaRFzdGENIMdMRz1GSydTuPUqVP4zne+I/gwlMvlRAPcdTodsaUajUbSiJcfLLy2Ft61VnMKVTFlRXW1GQsLXLYfTy6YzVqoVHJcu7ZFqWXErm9utmNycgtuNxfqzxM3nLqicAYSfohvbTWBYTjmf20ttEv4KGE0agR146dPVxBbE2+3MpnUmJ7ewfz8XhAty6qh0aixtUUH/Pf0ODE5uYOaGiMYRgmfLw6jUS0I+7XZGCQS6QJVUQ4tLUbo9frdNi3uXsWyemprzZib85N5Qy7fm6ESidRuliB3v11dxejro5c6J09aMTLCLb/4lkbOBp7F2lqYkJUyGff6FxZ2cAHQ68RCXlKih06nwuJikFjIAZC2o0IFem9vKa5c2UBNjRlWK0cIMowKzz23QM3vnDI3SeVKymQcWZrJgMw0CwsBNDXZRPMOPZ69ymuZDKirs6K01IBUKnvDYOP8hRg3a1pgtWqRzeYwPe2jnldPjxMvv0y/TzyxVl7O2c9VKjni8Qw8Hj9lCdxPgc7lHHHEGL+Uqa42I5FIUGrlVCoFnU5HZfvdblWfx+NBOp0+cFB5IpHA6Ogo5HI5zpw5c0h396aBtKh5M2BsbAz33XcfHnzwQXzpS196vW9nXwQCAZw7dw4/+tGPMD4+jng8jqqqKkFOhdFohE6nu64cLxQKYWRkDH/8x8NULSFALyv4gFe7nSGHD72skBFPLI/OTgeGhjZQU2PZtSFBdFlRWmqAzxenlhUyGWdhyuVk5ADxePxwubQYGqKVCfX1VszM7AiWFU6nfrdWkgv7vZlkfF5WarEwyGQymJryUcOPWAsTf4BUVZlQUsI1EwWDcSws+BEI0M9J7AA5f74COztxsrhaXg5Bo+EUSfyhCHBS3dJSPRYX9w40p9OA1tZihEJJBINJUusopjZhWTV0OiU2NqJUY5RGk8PUlA+rqzGyrNi/rjwFpVKRl2uUglotF/jUxV7nmhozZDKgqEgPuRzwemNYXg6itJQl+UX7XW80qtHdXYpgMIJoNAWvN4WNjQgMBjVYVr2vfQ7YUz9ZLNrd4WdP/VRUpEMqlRG1QE1MbO+2h3HvC8/U5EPMAqVUytHd7YTBIMOxYya87W3H0d7uIPLZg+TK3C7Mzs5CLpfD7Xbf1M/ncjlsbW1hYGAA/f39GBgYwOrqKtxuN86ePYtPfvKTt/mO33CQFjVHE9IMdoTwRpnBLl26hC9+8Yv46le/ihdeeAFOpxMMwyAej+8b4L4fPB4PJiZ8ePjhZyjFqUolR3k5i/n5ALFWFxXpYLVqMTGxQ7I5gP2y/bjGzmw2h8pKEzQaJQIBbs4oVEaLEWtOpwGlpXrodGpEoykSpNvSYsXwMK3KKax8rq3lPsAnk1lMT+9QM5QYkXL6dDlefHEdLheLsjJOhRuJcIqZ/LwUADh+vBijo/TvP3++HH5/HCaTGpFIErOzPphMSiwvRyjCR6WSo6zMBI9nbyllt2vR1VWyO0MlMDPjQzSaEuQyAoDJpEYuB6Iidjj0cLmMsNkYrKyEqcbO/WaghYUA0ukcIbfUagUikQjGx4PUDCy2KGtvd2BoaJ0QgHI5EAolsb4eweYmbfUSe0/PnSuH358gWY0rKyEoFDLRcoe6OrpEw+HQo73dgbW1HSQSMiwuhhEOJ0kOX2Gwsc3GEWv5s6bZrMH4+DY8nj1iTOw+rVYtABlkMk7ho9erEA4nodMpBWSjGLFWWWmE2axFebkSZ8+6cf58DY4fP5xcmduBXC6HgYEB1NbWwmw239Q12WwW8/PzZP4aHBxELBbDsWPH8NBDD+HBBx+8zXf9hoO0qJFwe5FKpXDt2jX09fWhr68Pv/nNbwAAra2teNe73oV77733luV4ExMTGBwM4UMfeg4ASGYK/wF1cnKH+GeBPbtSPk6d4nyx3LLCQKrtZmd91Ifg/ViFO+7glhX5B4hOpySSXx4qlQxOJ72sKCtj0dJShGAwSZqJuINWfFnBMEpsbkZ3ZaXcUsZoVGNsbJuq8RZbVhQX6xCPp8EwSrhcJmi1SoRCSWg0CsHPtrZaMDRELyBqasxQKmWw2/W7zVjR3WWFjpIUA0L2xmLRoqPDgUQijWiUa4PY2ooJbFk88g8wt5t7X8xm9a7Xd6+W0WZjkEqlEAzSA1FHhwMTE5wkmn9f9HoVnn2WXlaIqYIUChk6OhyQyZAXwuxHR4dDoDbharh95H1Wq+VobOTaK2KxFJVrJM7y7S3aiooYEhiXSmUwOrpFyWX3Y2r6+tZIexgARKMpeDwBwd+umAXqnnvcyOVypAGgo8OJ4mJOPjs8PAyDwYBEIoFsNguWZQ+cK3M7wHulKyoq4HQ6qe/x0v2hoSEyFExPT8NisaCrqwvd3d3o6elBRUWFlEuzP6QX5mhCmsEk3BTC4TAGBwepGczpdKKjowN/+Id/iJaWFmIpfzXIZrPo6+vDD34QwDe/OQxgL5vDbNZgeTlEqZX1ehX0epXgg3lvbymuXt1ETY0FRiPXGMUwSoG1mrdhFzbpnDtXsZvnISPVzb29pYIPwTabGrFYlixQ7HYGbrcZNhuD5eUQsRQB4ssKl8uItbUwlEoukNZk0iIWSyGXy2FwkFbLiNntGxqsiMWyKC01QKHgapuXl0MoKtIJWkxPnDDi6tW9r6nVcpw750IikUEqxVnkV1fDMBrVkMshqBA/edKGkRFuWcGyKrjdFlRUcK2VCwsB8h64XEZsbEQowoZfrk1P+2C1MrvklhIsq8HlyysUsVmYfwNwTZYGgwoKhZxYq/klS+EMJBbqXFbGlWdYLFxWo9cbhccTQHOzbV8bNw+zWYO2NgcymSxR2WxtxaBSyVFRwYrWcPPXc+2kehiNGtI2xb8u+xFrvb1luHp1g5o1GUaBS5fov939iLWLF6tgMmmIUoazDiqwvb2NiYkJmM1mRKNRKlfGZDLd0n+vtwvRaBSDg4Noa2sT2NA5C6SXEGODg4OEGOvq6kJPTw+6urpgNpuPzPM5gpAWNRJuL775zW/ihRdeQFdXF7q6unDy5Ence++9+Pu//3ucOHHiQI+dSqXQ39+P//t/Q/j5z+coCaxYE01pqQF+f3x3Y71nQ1IqZYKDVqxFqbGRqxe32XQk4HVlJYSyMsN1DwCAHwo00GgMuyobLjNFr1eBZdUC+S1/gPE1ysXFOphMGszO+ilZqdjwAvANBD5UV3Ne33g8DYNBhWefXaR+jj+88w9quZzzSrMsC5VKQWxIra12QQNAoYWJYZRoaLDCamUQiaSoxiixZUW+hYlXP+n1KiQSGYyOehEK7Q0gYqqg7m4nBgbWdoMHufclEuGsZfl5K/u1OF244EIgkIRer0Qkwi2RTCaNIIOmsAGMlwo3NloRCCSxtcX58VOpLI4d47KC6LpzFcxmNVZXI2RwMhrVMBq5oMT8919sochXXut0SiKf9fniMBjUgkWbGFNTU2OGw6FHS4vjpmoZGYbB5uYmOjs7j3wK/8zMDB5++GE899xz8Hg8ZCkzMjICuVyOtrY2MhQ0NzcfqZDPNwCk6eloQprBJNwU/uRP/gRKpZLMYEajEffddx+efvppaLXaAz32zs4Oxsfn8IUvzGFwcJ36ICpGGPX0lKK/f223wICzMIXDSSwtBQUfYsUqhi9ccCEUSoJhVAgGORLFZNLA641SM4xMxtl2ecuyWi2H221CcbESyaSKLDoA7mz0eAIUsZaft+Jyce1CCoVcNGBfLJdGq1WgosIIhlHtNk5x+TBNTfbrzkA8amqMMBhkYFmWasZqabFheJj+XR0dRRgYoMshXC4jEokMKRPIZnOC14QHb3nW6ZTE2q9SyTE97aNmaoZRkqVWPrq6ijE15UNNjY3MUVqtQmRRxi1e+KzAvd9fjlQqC6Vyr966o8MhUKAUNoZqtQrU1VlRUqJHKJTE6moYS0tB6jnlo7HRRqzpJSU6MmvmcsDQ0AaVWbgfscZnGPKxAIFAAjs7McH8LkasXbxYCblcTuav9nbHdXNl+Oy8EydOHBlibD9861vfwuXLl/G1r30NV65cIYuZ6elpWK1WiRg7GKRFjYTXHsPDw/joRz+Kn//85wf+D3Z1dRWTk+t473svCSxIzc12rK1FKLuLyaQRKCtqay2UHBcANBousEulUpKMkLk5P7q7nddtUQI4BqOhwQ6WVSEcTpGwXwBoabFgeJhWq+TXUvKVg1qtEpFICmNjXkpCKya/PXOmHAMDa7t2Fy4zJRZLC+S33EEtDBy+6y4XgsEktFoVyUyxWFRYWhLKbzlVEHdQ80NBXZ0Vfn8cm5tR8jqKqYJ4pmV9PUKFMBsMKvT1rVF+Xa6+kj7o7HZuKWU2a+Fw6KFUcjXhanVOIGkWO2jr6rjQwXz10/p6GPX1VsGgVXjQO50GHDtmRyKRRiCQJFLh69Vwv/DCMlQqOWpqLLDZGOh0SkxObmFpKUyWOEYjp5Ta2KBZxp6eUszM+Cj5rF6vEvztiYXVKRQyvO1tbhQV6dHZ6UB7+63VMi4uLiKRSBzJvIVsNovFxUUyEPT19WFlZQWnTp1Cd3c3uru70d7e/rpZst5EkF68owlpBpNwy/jSl76EQCCAT3/60wd+rNHRUVy+HMFjjz1Pfb24mFOWWq0MHA4DIRcYRikgIsQULPX1Vmi1ChiNGiQSXBbNxkYEdXVWTE5e/7yurDSivt6KWCyNra0YZmd9u8sATtm8tEQrI/jfbzSqCbmlVMowMuIlTT4AR5SYTFqBsuLMmTKsrUXgcHCKgo2NCCwWreB5mkya3fKIvWUFb49OJDJEEbu9HcPx40aMjtJKm+JiLUKhFGIxblnB25AsFg1pstxTBQnJxro6CykH4JW4MpkMmUwWfX1r1Ay8n91+enqbUpDs7MSwsxPZp4KcnuHuvNOFcJhbtIVCXJW3Tsf9e35WT6HdnicsGxqs8Pm4pik+Q2e/cofKSo5Y42MBjEYNWFaFy5eXqXsVI9b0ehXMZi0UCsDp5IixnZ04rFZG8JqKEWtlZQbU1Vlx/HgRUSy73XSuTCAQQCqVgl6vF82VyeVyGBoagsvlgs1mw1FDOp3G+Pg4+vv70d/fj0uXLkGj0eD8+fNkKdPU1CQRYweHtKiR8Prgz/7sz9DW1oYPfOADB3oc3iP585+H8fWvD6G62gKjUYNkMo10OoehoXURry8r+GB98aIL4XAaKpWc1HhXV5sF/ulCBYxGo0B1tRlutwk7OwmSFs8FuO0tYHiYTCoAMgQCSapykGGUeOWVVYpVElNGlJWxCARicDhYYnfZ2ortUwspPKhPnCiCQiGjmol8vjicTgaLizQrcPKkESMje4NCZaURjY02hMMp+HxxkpnCqUX2T8ZnGCWqq82wWLTQ6VQYH98mzAfAp/1DNCtoaSkIl4vzqYdCCRiNGgFT4nQa4PNFEY/TB3VPjxO5HBc+zS+RTp0qEw06zD/oLRYtqqvNsFq12NmJk8Fpv9c0/6Dn5LPcUJpOZzAwsIFkco/pE3tPxaxaPl8MPl+cWl4B4n9T73hHDTQaBWlgam09nFpGTtI9iJqampv2H98O5HI5+Hw+DAwMkMXM0tISXC4XUcp0dHTgAx/4AD772c9KYXSHC2lRczQhzWASbhmpVAqnT5/Gd7/7XVRWVh7osRKJBK5cuYLPfGYeU1M7qKgwEtLHbNbiuedoFW9VlQkrKyHqg7VGo0BbWwkUCjlRK3s8AZw5Uy6qjMgvjLDbmd3lihrb23GqNEFs2VBbq8fMTCQvnF8HIIdoNI2hoQ3qA7tYZXRXlxPz834yu3E11zFEIimBWqTwQ7xCISPhsNksSOBvcTGDQCBBzTAyGVBVxWB+npsBTCaO3CorM+xetzeX5GfI8ODsPkbMzfmp0gSDQY3nn1+kSDyxrCCDQQ2TSQ29Xo2iIi6r0euNoqhIJ1Criy0rqqpMsFoZ6PVKxON71exiCqJCYq28nEV9vRXpdAY7OwnMzfkQjaZFM2iAPauZWr1HjKnVCng8fszP78UCiNVw879/cnIblZWm3cVREiqVXDBrGY1q6HQqSkGjUMhw//21MJm0pIXp2DFxYkyr1VIz2I1yZeLxOK5cuYKurq5Da8y8FRQSY4ODgwiFQmhsbCTEmNPpxEMPPYTnnnvudZ0X34SQFjUSXh/4/X6cP38ev/rVr2A0Gg/0WKFQCFevjuF//a9RQYWjmLLi1KkyJJPcgiEcTsLjCSCVykKnU4r6p3kPLZ9uX19vQzCY2N3qc3aX/SxIvAKG3+rrdArkcgksLCSwtrb3P/v9gomPHbMjEEigtJQ7ZP3+BGw2Bpcu0cOP2EFtMKhw/HgRFAo5aSZaWgqis7MIfX30oVxfb8bU1F7YcXGxDlVVRmSzcaTTaiqEWWzZwD9Pvuq8uFgHuVyGaDSFkREvJRUWY1p6e0sxPr4Nt9tElkicnDVEpf0DEK2lvHChHJubQZjNRrJEKikxYH09LPBf19buMXL8EsntNsPrjVLy2YYGK6and6hFn1argMPBKWj4SlGNRgmDQYUXX1ym5LNi98myarCsCgpFFhUVVuRynFe9uFgvGH7EljK1tRbU1VnR0lJMhoJ8+Sz/z2HVMkajUYyMjKCrq+s1YUZyuRzi8TiGh4eJhWliYgJGoxGdnZ2EqamqqhI8H4/Hg/e85z14/vnnYTAYbvu9vkUgLWqOJqQZTMKB8Oyzz+IrX/kK/vM///PAj7W4uIiJiW289710sHC+hSgfFy9WIhJJUXaX6mqLQO2r1Spgs+lIjh3fGOVyGeH1RrG8vKdWFrNKGY1qqNUKbG3FiFo5m01BrZZhYGCbCqIVs1bbbAyUShmKivQwmzkSZXk5CIfDIBIsLJyLTp4sglarglrNzW4zMz4kEmnU1RkxNUUvC3p6Soi1nFfi2u0qRCJJ7OxkSA7hfq8pv5TisxoNBvWuKmiTarLcPxuwHMvLQTidBqIgYVmhtZoLzKWJNbVajs5OO2KxNDQaLdbWIlhcDKC3VzyCIBCIIxJJk9fY7TbBZmOIUoZfeO3XILa0FEQ6nSVtUwoFF+B7+fIqtQAUywpqbrZjYcGHsjI9iotNSCbT2NyMIp3O3lSD2NvfXg29XkWaMFtbi6HVKhAOh/clxg6SK7O2tgafz4fm5uZXfe2tIJfLYWdnhyLGlpeXKWKsq6sLNptN8Hy+//3v4xe/+AX+7d/+7TW517cIpEWNhNcPTz75JIaGhvCFL3zhwI81OTmJoaEQPvjBZ6mvc7knLDQaJZHPrq2FRf3ThQd1eTmLmhoLgBy2t+Nkqw+I+4r5/6nnh/3yAXfT0ztkqy+TAbW1JkxPC3NtJia2CVMTDieRSmUxMbFV0KIkPKjlcuDuu6sQDqcgk8ng9UZ3VUEspqbo36PVKmC1MmTA4ZdI5eUsNjejhPkAgOZmM8bG6IHAZOI8zFtbMRIeqFLJodOp8NvfLlHLJrHXmWewior0VL21zcbckGkBgBMn7NBqldBqOeaDb4yqrjZgZoY+aPMVMPwSye02IxpNYXMzQkKf89knsevz5bMqlRyjo15qqafTKWG1Cv3bZ86UY2lpb/jhc4kKF1X5rykPhlHivvtqUVys31XLOFBdvX+uTD5Tc5hLlaWlJUSjUTQ0NBzaY/LIZDKYnJwkS5mhoSHkcjm0traSoeDYsWOkFvZGeOmll9DS0gKdTnfo9/oWhbSoOZqQZjAJB8b73/9+vP/978fb3va2Az0OHyz8ox8F8fWvD1HfO326FMlkdve8TmB+nsvYE7MQ5S87lEoZamosqK42w+9PEJVNNpuDyaQh1ud88DNcfgguw3DW6ny1i9msQiYDAQnU3l6CQCCBkhLOwuT1RlFSohcsC8rLWWxtRalFj9msQWtrETIZGWVh6uoSEmOVlSxWVsJkrqusNKKsjIVer9oNNvYTJW5rqwlDQ/QM19zMqXi1WgVqaiy7c1QOsVhasKwSb2EqweJikMyaoVBy9/mkBSreQmJNJgPuuqsS0WgacrmM5PNZrQxCoRii0Sx1fT5hRS/aYlhZCZGFUWWl6brEmtNpQHk5C41GAYNBjd/9bhnh8B4xVljuAHBKrYoKLl+IzzDc2IigtNQgeE/F7PoulxGtrSXEwtTR4YDdzuybK3NQYkwMuVwOw8PDKC8vh91uP5THzH/seDxOFS7wxBg/f/X09KCysvKmn8/TTz+NixcvHup9vsUhLWokvH7IZrM4f/48/uEf/gHHjh070GOl02n09fXhu9/1YW6OU5bwNqSeHmGyPO+f5g9q3oZUVMRgfT2C+XlFLV7dAAAgAElEQVQ/sSGJHXTl5Sy83ihSqQwJ+5XJZFAqZXjxxRVqqy9mlykr0yISycLlMu96sNNYXQ1Do1GILAuErMLp02VIp7NQqxXw++OYnfUjl8vBbFZhfZ2W3/b0OPDyyxz7wy+RKitN8PkSWFsLE6bGaFRDo1HA66UP6uZmFmNjIcqqpdUq0Ne3Rlm17HYGqZRQVdTZ6YDPF0dJiZ4skYqLdYLnVFbGwueLUZJck0mNtrYSpNNAIpHG0lIQ6+sR0dfE7TZjacmPdHrvPaqoYMGynC0rf9F2vbA5lWpv0ZbN5pBOZ9Hfv0ZJosV+f0tLMVZWQpR81uuNIpPJ7hsWzUOhkOGBB+rAspobymdf61pG3gJVXV0Ni8VyoMdZXV1FX18fGQr8fj/q6+uJfLajowN6vV7KlTk6kN6IowlpBpNwYCwvL+P+++/HM888c+DQeL/fj2vXpvG5z80A4JYVi4tBeL1R0XKHQsVoVZUJLpeRam/iP7SLqUv5x+Q//JtM3P2vr0dI6D8PMXVrS4sJXm8GFRVcaUIgkEAsxs0YdLmCDA0NdI6dWi3HXXdVIhxOIZ3eUytXVrJYXAxRKlylUoaKChbz85yChp+jHA49lpdDlFWLX8Dkg8vpUWBrK0kUJDIZoNOp8eyzdLCxGIFoMmlgNmtgMmlhNKoJYelyGUXDngu/1txsg9HILcaCwSTm5vwIh5Oiv6u314nLl9fI866utqCigkUikcHaWhjz89yiTS6XobHRJniu/KzM27xYlpttpqe3sb6+R4ypVHK4XOKqIp4Y49VaKpUcIyObBeUOSlitWiwvh/O+psKDD9bDYtESG3lVlUmQK5NOp6HT6URzZW4XEokEBgcH0dnZedOklRjS6TSmpqYOjRiT8JpAWtRIeH0xMDCAv/iLv8BPf/rTA384W1tbw+TkGt73vucRidBMycmTe/XEewoSrvGI//APcBv09fUwksm9w08ul5EAu/JylrTuiHl96+osmJ31CXJx3G6u3tpq5SxSKytBFBWpMDhIDxTHjgkrwMvLWbhcLBQKxa5Vyw+fL4H2dhsGB2mv7okTNly9ur173yDPU6EAlpfDxKoFiB/KPCOV30yUSKSwthbE8jK9wOnocGBgoFD+W47FxQB5jfz+BKLRFDY2wkTqCgjD4gBu+LlwgZNE5y/aKitNWF0NUe8Jx7RYMDnJWd1sNo5Bs9s1mJ/fhtebJgxafb0VMzO0hUmtVqCsjLMw8cOPXC4jNd75i7bjx4swOkozYjqdCk6nHnq9ilSKLi+H4HabRGxhJYJWsePHi1Bfb0JJSRbvelcXOjocu8zWwXJlbhdisRiGh4dv2gKVy+UQCAQwODhIhgKPx4PS0lJ0dXWht7cX3d3dKCoqkpYyRxvSm3M0Ic1gEg4Ff/d3f4d4PI5PfOITB36sa9eu4eWXI/jzP79Efd1mY5BKZYg1mG94tNs5Ze/8vJ98T8xCxDd2JpOZXUsQ14KoUsnx298uI5u9fghuVZUJ0WgKZWUsDAb1bgvTDiwWLWZnaQtSoV1GJuOWQrkcdoslomRBUFysxcpKoV3egcuXubnIYFChutoMp9OAnZ0YlpfDREW0nwWJJwbLyrhZU62WI5VK4OpVHzVr7kes9faWweeLUQqSoiKdYNYTI9YsFi3a2kqQSmUQjaZJvfX13hP+niorjbsW/QxWV6NYXt5raNqPWFtZCUIulxFVEL90KiRWxSxMjY02+Hwx0q4VCiWwshKGXq8SZFAW/n6FQob77quFRpNFfb0B73hHC0WM8TPYreTK3C6sr69je3v7pkntbDZLiDHexiQRY29ISIsaCQfDJz7xCfz3f/831Go1ampq8J3vfOdVB0l95CMfQW9vL973vvcd6F545v///b8wHn/8FQB7CpLSUhaRSAqrq3sKEt4KU8i+8GqLfAWJTAZcvboJn2/vUFOrFXA6hcFkZ8+WY20tjOJi7sO/1xuFTqcSSFK1WgVMJjU2NvYOWpZV4fTpMkQiaSQSGbJEOn7cgtFR+j5ZVgWNRkmkqnxgnM3GYHExiLk5P6JRbmEl5r/mD+pYLEUC2DKZHDQaJS5dWqAYiNZWC4aG6N9fWmqATAaUlBh2axlTWFgIorTUIAimKzwoZTJOUqtQyCGT7bVqpdNZ1NeLhcXtKWB4Bs3hMCAUSmBxca9qU61WoKREg6Ulenjif7/TaUBFBVfNLpfLMDi4TrUNMIwSdjuDpaVCC1U5vN4Y7HaGDD8mk0bAKLGsGno9HTZnszG4//5aOJ2GXbWMk8hnZ2dnEY/HIZPJbqt89jCwvLyMpaUlnDp1SvC9eDyOq1evkqXM2NgYdDodlStTU1NzpJ6PhJuCNMEdTUgzmAQAB5/BkskkTp06hf/4j/9ARUXFge4lmUxiYGAAjz++iGef5XL0+IbHsjJ2V8HLqWyAPWWysFqbU5Zw4fxcw6Ner8alSwuU3ai62ozFRTqbT6Hg1BoymQxmswapFNfw6HabBSpal4vB0lKMmnVcLiOqqkzIZnO7ChIfwuEUOjrsGBigSbSmJivGxzmyiLdqlZRw9+vxBIhVC9gv248jcfZyZVRIJDLY2YkL5lJe2ZyP7m4nNjejVAtmIJBAJJISKJsLiTWtVoE77nAhEkkhldpTBRVmyPDvST6xVlTEoLJSXBVUWWnCykqAKJv596S21orp6e08VRBHjD3zDK0K4pup8i1MarUCNTUmqFRKokBfWgqittZ63XIHHo2NNrS3l+DEiWJSuKDRyBEKhXDt2jUwDINkMgmFQkGplW81V+Z2IJfLYWRkBBqNBo2NjYLv+f1+ihhbWFhAWVkZUcpIxNgbFtKiRsLB8Ktf/Qp33XUXlEolPvWpTwHgGJpXg52dHdx555349a9/DZZlD3Q/4XAYIyOj+Kd/2sS1a15KQSK21ecVLLzKhmW5xqh4PC1oURKzQLW2FmNrK0YpSDY2IpDLIahcLpT/qtVytLQYoVLpkcsBa2ucgoRl1ZDJcggEaFVQR0cxBgY4+a7NxqCy0gSnU4+1tTA8ngAJdysq0iGRSFPBtgAnix0a2qAUJAyjxKVLi5SCpJApAbiDuq5OB7VaB7NZS0L1qqvNgte0stKEtTVaAVNezqK2lkvxz5fPilmQ8uvS+eGnqEgHhlFibs5P5LOAONPS1GTDxMT2btWmBQaDGrFYCvF4RqCMEXtPT54sQjCYpIafjY0INBqlwFNf+J7qdCo88EAdrFaG5MoU1jIGg0GkUinodDqwLIu1tTU0Nzcf+aT8XC6Ht7/97fjzP/9z1NbWkvT/K1euIJ1O48SJE2Qpc+LEideNeZJwqJCmuqMJaQaTAOBwZrBf//rX+Kd/+if8+7//+4HvZ2lpCZOTXvzd301iaSlIwvk5ZfKeCpYHf4bzKhuNRgkgh9FRL2Wt5nLkWMzN0WqJ8+crCDGWzebg9Uah1SoFZ71Wq4DdrqNy5IxGFU6eNEMm0+5atQLwemNobDRjYoK21eh0SrCsmsx1lZVGOJ0G2GwM5ucDmJ31kYWTmNqYz9WJRlOkBZMvseCXWjzE1M42mxYaDVBaaqbyfmprrTcMNpbLgY4OJzQaBXmN+HrrfLU5j/xZmZ+Ni4p0CIdT8Hj8hIiSy2WixNrp0068+OIa1TaVzXLvaf5cml+jnY9z5zhizGbjiLG1tfBuYyi9gBFrcbLbdXj3u+tQXKy/qVwZhmGwurqK7u7uI2/52d7exoULF/DTn/4UGxsbEjH21oC0qJFweHjqqafwwx/+8JYO+29961sYHx/H448/fuD7mJqawshICI888gz1db5a2+eLo6bGTGxI/FY//0+ebzHKh8mkgc2mhcXCQKdT7h5aAdTXW28YTCyTcWFlLKtGLgdsbXGNUclkFo2NLCYmaKakq6sEfX2cWoOXz9rtOiQSGczP+6kq7NbWYgwN0f5rfgFRWsoFsKnVCqRSWczO+qiwOL5ZanSUZorOnSvH5maUks+m02msrUWQSu29UPm2MB5mswanTpUhHE4hGk0R+awYU1LoNc4ffubm/JRPnV/AiB3UGxsRIp9NpbLQamW4dIlmr8QqKHU6FSorjdDrVUQ+Oz8fwLFjdgH7VejJVihk6Opy4vjxIrS2lqCjw4nmZvurzpUJhUIYHx9HZ2fnkTtYc7kcNjY2SK4M38Z09uxZnDp1Cr29vejo6ADLshJT8+aE9KYeTUgzmAQBDjKD/d7v/R4eeeSRAweB5nI59PX14amngvjqV69Q32tqsmF8fBtmswZVVVwGSTzOEWOFZ7N4kUARgsEEHI69ZqL19bAoiVK4rNBqFThzpgKJRHrXfs4pSHQ6BTQaOXw+mhjLn8GKi3VwuYwoLtbtWrX2WjAtFi1kMroFibveiYGBNZJhyN0DR4zlz0D7EWs9PU7E4xkYjWpSb+10qkWVzYXEWnk5i4YGKxKJDPz+vXprMbLS5TJiYyOCRCKT1zbFQK9XYXJyBwsLe/XWYnmLfOOo0ci9p3q9EtFoGtFoDOPj9FJNPBvQing8DYeDhUIh27WIhWCzMTe0MOn1Ktx/fx2Ki3W7LUwOVFZeP1fGZDKBZVnKwr24uIhEIoG6ujocNWQyGUxPTxNibHR0FPPz87jnnnskYuytAWlRI+HwcP/99+Phhx/G7//+77/qa7PZLM6ePYuvfe1raGpqOtB98MHC3/jGJp56aooKYFOrlfjd75YoBYnVqkU2m6PYGwA4daoUkUiaCmCrrDTeMJgY4GxIzc02xGJpBAIJzM5yB2Vbmw1XrtDsg82mRjSaQSzGHZTV1dxBybIqTE35KPms2EFbUcFl7ej1KlRWcvJZPpG/MIBP3CtsAoDdmkM5dnZiWFgIorycFdSdt7aaMTS0xzQxjBI9PaVIp7OUfPZGLUr86+ZyGWG1MtjcjFDDj1arQHGxHouLtK3szJlyvPTSMhXgLJfL8NJLy5T8WadTwWCQY3OTfk/PnStHIJCk5LMOh0G01pNhlJQqqqrKhHvvrYbLZUJHhxNtbZx89nq1jDebKzM7Owu5XA63233dn7udyOVyCIVCuHLlCmFqZmdnUVJSQslnf/GLX2BwcBBf//rXX7d7lfCaQVrUHE1IM5gEAQ4ygy0tLeGBBx7AM888c+APfYFAANeuTeGDHxzA1lYMNTVmmM0ciWIwqPD00wvUz4sF07KsGg6HHiaTBlqtCuEwR6I0NdkEM1hnpwP9/XvEmkIhw4kTRWBZNTIZWkFy4oQZV6/Sc0m+rYhXkNhsDBKJDGZmfKQFExBXy/DKWr4CXKWSIx7nSLXCZiqxYGNeQWK3MySfL5PJYmsrRrVoymSA263D3NzeXGK1MujtdSIUSiISSRF1dVWVMNuvUAHjdptQUmKAzabF7CxHjPFtU7W1Fng8fkHjKP+41dUWUlnOsmo8/bSHek4NDVZMTe1QxJpGo0BDgxUajRIajZKogk6eLN5X7Z7/u9vaStDW5kBLSzE6OhxobrYjmz14rkwul8PAwADq6upgMpmu+7O3E7lcDuvr61SuzNbWFurq6sgM1tHRgQ9/+MN4//vfj3e/+92v271KeM0gLWok3Bh333031tfXBV9//PHH8cADD5B/7+/vx49//ONbZtb7+vrw6U9/Gj/5yU8OzM5vbGxgcnIFjzzyElWjDACtrSWCD+Znz5Zje5uTWvIHZSqVFbQQARBIRa1WBj09pQiHE4hE0vB4/NjZicPpZLC1FacUKDIZ55cdH9+GTIbdAFwt1OoMdnZylIKkqsqElZUQtVTiFSxLSwFyUHLDj/CgzLcQ8VAq5Th+3A6lUk7JZ1taSgRMR0ODFdPTeyG8nM/YDL0+C63WQCrAM5mc6AIov8GAH37MZi3kchnGxrao4Ufser4uMV8+GwolEQolBPLn/fzfW1tBlJdbkMvJsLYWhs8Xh1aruKEtzWZj8O5316O4WIfOzlJ0djpgs92+Wka+3vT48ePQ6/Wv+vpbQTKZxOjoKFnKXLt2DRqNBu3t7YSpqa+vFzyfXC6H+++/Hx/72MekGsY3P6RFzdGENIO9hfBazWCf//znkc1m8fGPf/xA9wsAY2NjGBqK4iMfeY6aQcxmDWQyGVWXDQBnzpQhEkmBZTWIxbjGKLfbLGIBooOJAaCigkVTkx3RaAo+H9eCGY+n0dpqxdAQTTYVFzOIRtMIh1Mkw5BhZNDrlVhYiJEMQ/6eXnhBGKLr88Wh06lQVcU1PEYiSSiVcqrGGhCfa1wuI9RqGYqKDLvhxDF4PH5UV1tEWpDo63U6JU6etCGZTEGp1GJ5mcvnKyxX4JFvDeetZSaTBtvbUczM+BEKca/hfi1K585V4MUXl1FdzVmfACCbzWFgYJ2aSzUaBZxOg0ABc+ZMKbzeEIqLTUgkOFWQ3c4ICjPEsgHdbhPe8Y5aVFQY0dnpQGtrCdRqLleGn8Eikcih5cpEIhGMjo6iq6vrNVE2FxJj/f39mJ2dhcPhIPNXd3c3HA6H4PlsbW3h4sWLePrppw+9slvCkYO0qJFwcPzrv/4rvvnNb+Lpp5+GTqc70GN96EMfwvnz5/HQQw8d6HFyuRyuXLmC3/wmgr/928vU96qqjFAq9w7Kra0oPJ4AqqvNVAUjIJR66vVKdHaWIpvNIpHg2ptWVriDsrxch4UFuoY5f4HgdHI2JLNZC683gpkZLqcF4JYgFRUGeDy0BepmD0q+xWh+nj4o77zTBb8/ToafpSVOUirm9S1UsFRUsDhxohjBYAI+Xxxzc37EYmk0NJgwOUn/nvwGA7V6TxVkNGowNrZFyWfFGCWuPUmDRCKDqioTCSdmWQ0uXaL92+IVlGqUl7NgWS0Uir1w4hMnbCTXh0chI6bTqXDmTDmammxob3fsW8uYSqWg1+tvWy1jMBjE5OQkOjs7D91GlM1mMTc3RwaCK1euIB6P4/jx42QoaGlpuemK1rW1NSQSCVRVVR3qfUo4cpAWNUcT0gwmgeCwZrBEIoFTp07hBz/4AcrKyg50T3yw8Be+sIzf/MZDfe/s2XL4fHGYzVpkMpwSl2sgiguIscJ5oaiIQVeXE6FQCqEQ14Lp9ydQUsLA54sjmaSJseZmG65d24ZcDlRVcepqq1WL6WkflWFYUqKB359CIpGlrm9qsmFhIYCaGguMRi2SyfSugoRWBYkRawqFDC0tJVAqZVCrFSSfr61NSIwVKliUSo6Uczr1iMUy2NyMwOMJIJPJCZTNAN1uyefzGY3q3XpqLwlw5l5/oYWpqcmGycltlJXtqYICgQQSiTSmpmi7ldgCqqWlGIlEGna7Dul0FmtrEXi9URiNCqyvx697vd2uw7vexRUu8LkyPDHGz2CHSYztB4/Hg3Q6jdra2kN7TB63Sozth6GhIdTX1x/4M5eEIw9pUSPhYPjlL3+Jj3/847h06RKKiooO/HhbW1u466678Jvf/AYGg+FAjxWJRDAyMorPfGYOqVQGKpUCgUACc3N+tLc7BAdlfT2nIOH/9FUqOerquHahWCyN9fUIFhY4G1J7uxWDgzR70dBgwdSUD7kcSIo/y6qhUMgxOlp4UIpZkHSYn4+istJIPNh+fxyxWFrAdIj5t9vaShCPp2C16sjws7UVg8Wi3bcCkofdzqC9vQSxWGa3AjwAny9Ocn3yW4wA4MQJE65eDexKcbnhx2hUY2EhSMlnWVYNnU4pqmAZHt6g5LNqtVzwmphMGqhUcipXBwDuuKMc0WiGks82NNgEVi+zWYNcLkuCmRUKGZqa7LjnHjdqay1ob3fg2LE9+Wx+rgwvnxXLlbldmJmZgUqlQmVl5S0/Ri6Xw+bmJgYGBoiveW1tDdXV1UQ+29nZCbPZLOXKSLgRpD+QowlpBpMA4PBnsF/+8pf49re/je9+97sHfqzl5WVMTGziU58agtWqBQB4vRwxVldnwdhYITFGz0VGoxptbQ7kcjnEYmnSgimXAy6XHh5PITFWihdf5BQ4nBLXAJbVwOuNYnraR1owFQoZqqvNmJ6mFxBtbWaMjgYJ0ZTN5pDJZHHlyga1gFEq5aisFCpQ7ryzAoFAklSALywEYLUyZIHCQ61WoLzcQCmDXS4jjh+3IxhMYmcnjrk5H+LxjGg2n0ajgMWixPp6YlcVxOXzmUwajI56sbQUJD9faCECeGJOh0gkTVRB4XASJpMGzz1HE2Ni2X56vQq1tRbodCqiCpqb86OryylazpCvQNfrVTh1qgwnThSjra0EnZ1OuFzG6xJjYrkytwO5XA79/f1oaGiA0Wi85cfJZrOYnZ0lS5krV64gkUjg2LFjt0SMSXhLQ1rUSDgYamtrkUgkYLPZAAC9vb3453/+5wM95je+8Q3Mzs7is5/97IHvb2ZmBlevBvD7v08HCzOMElYrQxYYvA2pqcmOQCCBnZ0YsSHV1xsxNRUUXG82a7C2FgHDKIkH22jUYGRkk2oW2E9BwrJqZLM5uFxGMIwKOzsRMAzQ31+YCyO0aplM6t08GjVkMsDrjWF+3o/OTidl4QGEwcgGgwpNTXbo9SpEIimsrIRIOHFvbxkuX6avz1eg8KogjUYGvz8MjydG1VuLtRV0dTkxOLiO6moziov1yOVyCAQS2NyMUsur/a4/c4YLJjYa1YjF0lhcDJI6x8IAv+5uJyU/drtNuPdeN7LZAN797i50dJTeMFfm9axlzGQy6O/vx4kTJ26KKcnlcohEIrhy5QrxNE9PT8Nms6Grqwvd3d3o7u5GRUXFW2op4/f78eijj2J0dBQymQxPPvmkaK24hBvirfNH88aCNINJAHB7ZrAHH3wQjz76KC5cuHCgx+E/+P7kJyF8+csD1PfyFSAAt3yoq7OipIRbIHBV3pwSV4wYq6+3YHqaI8asVobUWysUcgwPb1CzwfUUJC6XCQ6HAQqFDGtrfmSzMoGyWYxYa2srQTKZhsXCkHy+ra0oiooYLC5e//qiIgZtbQ5EoymEwylSb80wSthsDDU/5l+frwpSKDJYWYlgaSlC5qF8ZXM+zpwp3yXGzDAaNUgmM1Ao5IJZkVc2FwYz33knV+Ot0SgRDHJkZ22tRTCXsqwaer2KEHtKpRzNzXacO1cCozGLBx7oFOTKBAIBxOPxV50rc7sQDocxNjZ20+UOPDHGq5UHBwexvr5OiLHe3l50dnbCZDJJM5g0g90KpEWNhKOHTCaDs2fP4hvf+Abq6+sP/FivvPIKvv3tbXz/++Pk606nAS0tRQiHUwgGk5if5/y6BoMSSqUMfj/dANDT48TLL68RJqaoSAeWVWN21k/lwPAVjIUBcj09pRgf34LbbSYp/lqtQlAtzbJKKJUK+Hx0CO4dd1QgHs8QOersrB/HjtkFCpLCBgKu3tqK6moTqQ7nw4kLm6kALlg5l8OuLFkDt9sMg0ENnU6FgYE1Stly8qQFIyM0I2WzMchksjAa1XA6OfmszxcHy6oFAYBiSxmnU4/iYh1YVoN0OktUTB0ddFggAPT2llKPabfrcOGCC/X1VrS3O6lcmYWFBQQCASiVytsunz0oAoEA+vr6cOHCBQGDlEqlMDY2RpiakZERqFQqtLW1EaamsbHxtjNPRx2PPPIIzp07h0cffRTJZBLRaPTI158fUbx1Jss3FqQZTMJtw8LCAt7znvfg6aefPqRg4Ul86ENDJMNELueUuI2NVvj9SWxtcXl3qVRWlBjTahWw2RisrISh1ytRXW2ByaSB0ajB0NAG1YLJZ9vlQ6dTwmTSIpfLkQrwYDABi0UrsFbX1uoxM0MrdTgrkQk6Hfda8Pl8PT2lgmy8QmKNZVVobLTDYFAjHE4SVRAgnq2Xb+0uK2NRVsaCYZRIJtMYHvYSVRAAHD9uxOhoUHD91aubu+1Nut2ijDj8/jjW1ujnVZjNx32tFLFYBiyrRiyWwsJCEIlEGhqNAl4vPdcWEnvV1Wa88521KCtjBbkyExMTUCqVSKfTh5Yrc7swPz8Pr9eL7u5u6us3Isb4XJny8vIj9XxeD0gz2KFBWtRIOJq4fPky/vqv/xpPPfXUgf+Ht7m5iYmJZXzpS7Pw+eLweAJkkdLUZMT4OH3Q8UsZgJOjOp0GMAx3sI+Pb1Mp/Ps1AAwOrlMV4KFQEsvLQQQCdAWj2PWtrUbI5brdnBYunFiplCMeF1Y4FqplqqpMOHbMDr+fVgUVF+uue71WuyefZVk1Rke3sLS097qUlOgRjSapZisAqK83YGcng8rKPfms0SjMlRG7XiYDzpypQCaTJVlBc3PiqqDC6/V6FVpbS3DuXAWamuzo6rq+fNZoNGJ9fR11dXWEeTzK+OhHP4rS0lI8/PDDlIUpHA6jubmZqGXa2tokj3IBAoEAWltbMTc395Yflg4B0gt4NCHNYBJuKz73uc9BqVTiscceO/BjjY+PY2gogn/912mqBfNGxBhPNNntDAwGFaan6RbM/azRPT2lmJzcJhXg0WgKWq1SYMvZj1jr7rZDJlMTomlujiPGCsmiwuv5fD632wSfL4H19TDJ5+vqcgqItfzrrVYtUUnr9Sr09a1R9yV+vRpAFmazDk6nAUolV1luNmsECyCx60tKuOv0ejWxyy8tBdHdLa6Mzr++qEiHO+5w7Wb7ccSYxaKlcmWCQW6GZFkWer0eS0tL6OrqOvKWn0wmgzNnzuCJJ56AVquViLFXCWkGO1RIixoJRxcf/OAHcffddx+ogi6TySAUCmFsbAw/+5kXX/nKFPX9sjIDtrdjiMczpC6aYVTQahV45ZU1UhcNiOfClJWx8PmicDhYlJToycKBYZQYGqJZHbHra2rMRG6aTGaxshLCykpINLC38PqSEh2amuzIZjkr0fy8nyxiCn3B+dfL5SD11mq1HF5vDJOTO0Q+e73r+VwZvt46GOSqvOPxLPWzYqzWhQsu0rTAh+oZjWr4/cIAwfzrefnsO95Rg4oK4y3XMkajUYyMjKC7u/tIKWgAjqnZ3t4mLA0vow9MVPUAACAASURBVD158iTuuOMO9PT0oKurC1arVTr4boChoSF8+MMfRnNzM4aHh9HR0YEnnnjiNWvTepNB+mM7mpBmMAm3FfF4HKdOncIPf/hDOJ3OW36cVCqFnZ0dTExM4PHH5/DCC3ReSj4xVlXF2ZC4GSGBsbEt0oIJiBNbvb2lGB7eRHW1GRYLVwEeDCawshISEFOdnU7099PLivPnKxCJpAjRND/vB5BFNgsEg6l9r+fy+UxobLQhEEiSnJZkMgO7nUEymRH5/ZwyWKdTknw+g0GN0VEvZXey25ndcOWE4PqFhQAqK01gGBVCoSTk8pTAFsa1l9LXy2Tcc00ms5DL9+zyHR0OgdqZV0b7/dz1BgNHjN15ZyUaGmzo7HSgosKIeDxOzWDpdBo6nW7fXJnV1VUEAgE0NTXhqCGbzcLj8ZClzOjoKK5evYp77rmHKGXa2trAMMzrfatHHtIMdqiQFjUSji68Xi/uvvvum24y4GWJYinxWq0WKytr+OQnZzAysknqoo1GNVhWjYGBDaouurrajIWFAFUrqVDIUFNjQSSSQnm5gYQTW62MQEFSXW3G4mKAJPgDnAe7vb0EcrkM2SywuRnB/HwAp0+XC/zTTqcWW1sJUu1tMmlQXW2G3a6DzxfD4mKQ1I6L+a/zGwj26q0VUKvluHx5hVqMiPmvKytN2NqKoLzcSOSzGxsRMIwK167RC5zWVguGhmgLVHOzDWq1grRNLSwEsbUVRXOzMNiu8Pe73Sbcc48b1dUWdHY60NJSAo1mr5bxILkytzPV/2bBBSPGMDQ0RIaCqakpmEwmopTp6enBwsICPv/5z+OXv/yltJx5Fejv70dvby9eeOEF9PT04LHHHoPRaMTnPve51/vW3oiQ/vCOJqQZTMJtx89+9jN873vfw5NPPnlTP88TY/wMFolEoFQqYTQakU6nsbwcwf/8n79DLJYmddFarRIajQIvv7xK6qKB/Ykxvz8Gp5NFcTE3E3q9Uej1qpskxiwwGLh8wEQig+XlENbWwqLE0smTJoyM7JFlTqcBDQ1W5HI5+HxcTgvf2imWQ8hXe+fb5ZVKTv0zOblNzZatrcWC+z99ugxXr27C7d4jxnhldn4uIADU1ekxPU3bmi5c4HJl1Oq9Eg0u5FiojM63WymVchw7Zse999bA5TKho8OBpibboeTK8G2sbrcbFovluj97OyFGjK2srKCyspJYmLq6uvDEE0+AZVl84hOfeN3u9Y0IaQY7VEiLGglHG//4j/+IpaUl/M3f/A319Vwuh3g8Tkks0+k0sbmIbfNnZ2cxPh7Epz7VR9VFazQKlJTQ1dQAt0AYG9um6qJlMhkGB9epBH61WoHSUgPxX/O4eLESkUiKSFvn5vxwu82YnKQT/FUqOSoqWNIAoNEoUFXFoqhIiXRajbU1LqcFEAbwAdzB6nIZMTfnJ6F6er0SBoMaL7+8SoXq1dVZMDfnp4YEpVKOqioj0ukcHA49ud/iYr2If9tCZfIA2GWHGJhMRmQyOayuhrG4GMS5cxWCZq3CBZbdrkN3txPd3aVoaSlBR4cDVisnn+WHgsOsZcxms+jv70dTUxNYln3V198K0uk0JicnyVJmeHgYANDa2krC5pqbm6FUKgXXfvSjH8XJkyfx6KOPvib3+mbA+vo6ent74fF4AAC//e1v8YUvfAE/+9nPXt8be2NCWtQcTUgzmITXBA888AD+9E//FOfOnaO+ns1mBcSYTCYTnNM8ycAHC//2t0k88cQVyq5UU2Mm1dM85HIZamstiMVSpC7a54vDbtcJ5hK324ylJZoY02oVaGtzQi4Hstkc1tcj8Hj8OHPm+sQWwLVFlpZqYbfrEInksLAQIPcrRmy5XEasr4eRTGbhcrG7+XwKqFQcMZZvlxe7vqLCCL8/hrIyI2w2Zvd+wzAY1ILGJbHr6+qMUChyKCoyIRpNY2GBs/cfPy5sbCpcYNXUmHHxYhVqaizo7HSipaWY5MrwM1j+wo1fytxqrkwsFsPw8DC6urpeE8vQzRJjLpdLMFMmk0mcPXsW3/ve99DQ0HDb7/XNAmkGO1RIixoJRxuZTAanT5/G5z//eSwuLiIUCqG9vR2JRAIMw1AHh0qluuFj9fX14cknt/Hv/z5Gfa+1tQTT09skpC6ZzMLrjSIWSwmqqcUC4E6dKkUqlYVWq0IolIDHE0AqlYHZrKWC7gD6oORD9erqrAiFkvB6o5if50L1NBo5bDYGq6sR0et1OiVqarj71WgUmJjYxsrK3u+63gJqamoHLpcRWq0K4XACMpkMQ0MbN1xAyWTA3Xe7EQ4nIZfLyP1WVBjg8QSpBRK3gOIWSMBergynljHvW8uYL5/l67EP80Dng+06OzsPXamSzWaxsrJCrEsDAwMIBAJoaGggDUwdHR3Q6XQ39bvD4TBmZ2fR0tJyqPf5Zse5c+fw7W9/Gw0NDfjMZz6DSCSCL37xi6/3bb0RIS1qjiakGUzCa4L5+Xm8973vxVe/+lW88sorKCkpQWlpKTKZDAwGA5nBDAbDDc/pUCiEq1fH8ZGPDAuqrc+eLcf4+DbcbjMYRolwOAmZDBgcpJuF9ptLOGIsTdVFV1ffmBhjGCWqq82oqjJjaytKcloAoKKCwcpKTECMVVWZMDPjg93OkHw+g0GFl15aIXYhQJzYUii4BVQymUFJCdc2xRFjOjz/vJDYWloKUtXger0Sra0lkMlkpG1qaSmItjYLrlyhlc1VVSasroaQTHLXFxXp0NXlRG9vGU6eLEZHx/VzZfgZ7LALFxYXF5FIJFBXV3doj8kjnU5jYmKCypUBgLa2NqKW2Y8YE8Pk5CRsNhvsdvuh3+ubGdIMdmiQFjUSjh7C4TAGBgbwyiuvoK+vD1euXEEul8Mdd9yBixcv4u1vfzs0Gs0tfcj2er2YmFjEH/zBS7BaGcrWU1SkEwSoFdY9A0B5OQuHQweGUSMe5+qiNzYioi1GvCeZR1kZC7fbRLJhZmf9JMVfLIG/vt6AqakwsV0VFXFy31gshaGhTRKqB4gvkFpaijE/76fapjY3I+SAz4eYVPjs2XIkkxlKPpvN5kQrJFtaTBge5oYfPlfmf/wPN9xuMzo6nAL57M3kytwuzMzMQKVSobKy8pYfI5fLwe/3U/LZxcVFlJeXUw0Adrtdsi69xhgaGiJtA9XV1fjOd77zukqt38CQ/nCPJqQZTMJtw/r6Ol555RUyg42MjKC8vBxnz57FAw88gLa2thsSY/thYmICQ0Nh/O///btdWw9nQ+KJsY2NKPXzYnPNmTNlSCazVN5dNpuFyaQVVEvnzzUKhQxutxk1NWaEwyliP0+ns9BqFbDbdYK5hl+AGAwqks+nVssxMbFFkWgajQIOhx4LC4XEWAVmZnZI21QoxC1yRkY2RRZIe8QWwBF5Fy9WETU3f79ut0lUGe1wqLG8zCmoDQYV2tocuPvuPbVMeTkrmitzPSX67QCvrmpsbDyQspknxvr6+ihirLGx8ZaIMQmHB2kGOzRIixoJRw9PPfUUnn32WXR3d6Orqwt1dXX4oz/6I7zzne/Efffdd+DHHxoawvPPR/B//s+L1NcdDj2CwQSV36LRKHbVMjkqFb+3V7hUKSrSIR5PEf8vb0NyOPSkZppP8S+slgboADe+bSqbTUGtlmFgYBvx+F6o3n4NAgyjgNnMwG5nkE5z8lmHw0BVKALioXxlZQaUlxuhVssRjaZJO5bYAqmwgrK62ozu7hJYrSm85z09VC1jvnz2qNQy8uqqlpaWmw6Hi8fjGBkZIWqZ8fFxGAwGdHZ2oru7G729vXC73UcuqPi1QCaTQWdnJ8rKyvDTn/709b4dCYcHabo9mpBmMAm3DX/7t3+LdDqNrq4udHV1wWw249SpU/jxj38Mh8NxoMdOpVLo7+/HV7+6jp/8ZIb6Xnd3KV55hZ6LXC6uqEGrVSEaTREb0s0QYxUVLKqqzFCpZNjY4NS//HwnNtfwWS35bVPhcBi5nAKjozs3RYx5PNwihc/n29iIIJsFVlboBZCYhenMmTKkUlmo1Qr4/QmygCouFldG89crlXIcP16E3l4bHA4N3vnOVjQ22pDJpCm18q3kytwuhMNhjI2NobOz86ZmJi4byIfBwUGJGCuANH+9qSEtaiS8MbCxsYG3ve1teOaZZw6cus75VYfxyU9OUbJanr0Ih1NUKr7TaSD+Yx4yGahgXN6GVFlpwuZmFKurIcLMlJYa4PPFKZ8ysBdAZ7dzCx2GUUGnU+Hy5RUqrd9iUSGZzCESoa/v6CiBzxdHSYmByH1tNi1eeIEeHsQaALRaBU6f5lipfPmsmILIbNZALpdjZ4dbMhUV6dDZ6cT581w1dr58dnp6Gul0Grlc7tByZW4XfD4fhoaGcMcddwjuK5PJYGpqitRiX7lyBZlMBidPniSe5hMnTtwyq/hmw5e//GX09/cjGAxKg8KbC2+tifeNA2kGk/Ca4ic/+Ql+8IMf4F/+5V8O/Firq6uYnFzH+973PFEUA5wNqaenFOk0PZeILUWKi3WIxfaIMd6GVFKiw9paBB5PAD4fpy65ETHGE2oKhRw6nQrPP79ItU01NbEYH6cXLSaTBjqdEhaLFhYLQ4i80lKD4He1tzswOEgTY+XleyUPkUiKEHn7LYDyw4prasw4fbocJ04Uk8IFlUqGYDCIa9euQafTIZFIQKlUkrKFg+TK3C7Mzs4iFAqhtbVV8L1YLEaIsYGBAUxMTFDEWE9Pz1uWGCuENH+9qSEtaiS8cfCVr3wFm5ub+Ku/+qsDP9bc3BzGxvz48pfHoVLJEQgkMDvrRyqVofzLPPKDcfkU/6oqLrhtYyNCfMi8RWlqiq5L5JuZWFZFUvxlMsDj8WNpaW8AKFwA8WhpMWNjI7Urn+XkvtFoCisrIcECqLDBYD/5rM3GiDYA5A8VfC3jPfdU7+bKcLWMhbkyqVQKer0eLMtiZWUFra2tMBgMt/juvHb44z/+Yxw/fhwPPfQQ+vr6iI1pe3sb9fX1hKnp6OiAwWA4UkPOUcHy8jIeeeQR/OVf/iW+/OUvS4PCmwvSH/zRhDSDSXhNkcvlcN999+FjH/sYTp8+feDHGhgYwDPPxPHrX3PBwF5vFHNzflRUGKlgX4Cbi5qa7Bgb4+YivZ4jxioqjPB6o/j/7d17VNRl/gfwNzDMwHC/DVe5CKJyketwKam8dOy6dDymrpWdzHW3Xfe43SxPtdue36pH107bbbO9mZda29rKrcw1lV3bSrkLKIoIKOAoyB0GZpiZ7++Pab4yMhgwwAzwfv1VDHzPM3V03jyf5/l8Ghq6xKvcoaEeaGlRm51ABq7nosBAOcLDvSCTSeDmJsF33zWajdEODHRDT4920GSlhARvqNXG1039+fz9XQdtqlgqjLm6SpCdHQqtVo/+fgMaG42FvKFORjs7O4rNiwMD3ZCWFoTbbw/HnDl+SEsLhre3TOwrYxq4ABj7yshkMjQ3N09Ys15r6PV6ZGVl4a9//SskEolZYcxgMIiFsaysLCQkJLAwZgHz15THjRqaPHQ6HbKzs7Fr1y7MnDnTqmeZrr7s3duGd9+tMHvtxo2O8HDP78dIOkGl6kFNTZsYAiwdX5071w9nz7ZAInFEdLQP/PxcIQgC9HoB+fmXze4lW5qMFBPjg5aWXkREeMHDQ4re3n7U1rbBy0uGmprB959vnGCQmhoIqdQJEonj98dn29Dbq/vB0dimsYwLFkQgNtYP6elBmDvXH3q9bkRjGVtbW3Hp0iUkJSXZ3caGIAjo7OxEcXGxWKn55ptvEB8fj5ycHPH4bGBgoN2t3V4tW7YMmzZtQldXF3bs2MGgMLXwD4F9YgajCVddXY1Vq1bhyJEjw27GOhRjY+Ez+PnPK3D+vHlha2AucnZ2xMyZPoiI8ER3t/b76U0dMBgEsWh2/nybxZ/39JR+359PBgCoqWkzG7hg3ADyw5kzLWY/P39+GGpq2sWr4B0dGrS1dePaNe2QG0AmTk4OWLjQOPETAJqajFeu/P3lFgtjA6+hu7s7IzU1CIsXRyE62tjbbzR9Zc6fPw+ZTIbw8PDh/w+ZIIIgQKVSiYWx0tJSlJWVIScnRzwpw8LY8DF/TXncqKHJ5fjx49i+fTv+8Y9/WP2sa9euobKyDg8/fEKsXgQEGI/PKhRuuHy5G7W17WJlxFJfF3d3KdzcJGhqUn9/fNZ4Dcnd3Rl5eZeg1V7/UE9MHDwq0cXFCcHBHnB1NR6hNR2fDQ/3HLQBFBHhikuXes02ehQKOWJjfeHg4GB2fNbSBlB0tDcuXrw+wjI62htKZQgyMoKRlBSI5GTj8dmx6Ctz+vRp+Pv7IzAwcBj/J8aPRqNBRUWFuClz+vRpuLq6IjU1VQwFVVVV2LdvHz744AObrnUy+vzzz3Hw4EH88Y9/xH/+8x8GhamHSdk+MYORTbz44ovw9fXFz372M6ufde7cOZw61Y3HHjsmfi0y0gthYR6QyZxw+XI3amraxWtIlgYexMUZT9rIZE6IjvaGj49xvLVeb0BBgeoHC2OzZvmgtbUX4eFecHd3hlqtQ319J7y8ZIM2gJKTvVFaaj6tKi0tCM7OjpBIjOPDa2vbhyyMDVy/s7Oxr8yCBRGYNcsX6enBN+0rM3AK5g/1lTEVIpOTk+Hi4nLT7x1PlgpjtbW1CA4ONusrs2XLFsybNw9r16612VonI+avaYEbNTT5PPTQQ1i6dCnuvvtuq5916tQpFBRosG9fFerrO8VR3Dc2BjYxNasLCnITu/i7uDjh5MnL6Oq6fnzWy0sGJ6frfV1MsrND0NSkhkLhJvbB8fSUmjXAA4yjrD08pGajwV1cnJCa6gNHRxez47MJCQGoqDDfALpxAoFCYewrs2BBOGbN8hv3sYxarRZFRUVIT0+fsOOqBoMB1dXVYiAoKSmBVqtFQkKCuCmTlJRkMeSsWrUKK1asQG5u7oSsdarYtGkT9u7dC4lEIlb9li5din379tl6aTQ2uFFjn5jByCbUajWys7Px6aefWl2I0el0KCgowMcf9+CbbxpRW9suXkO6sTEwAHh4SCGTOaGlpRdRUd7iNSQ3N2fk5V00uy51Y18XwHgFKSjIXewtY8pRkZFeQ56MHvirkJ+fFDEx3pBKZeju1op9cH6oMObgAERH+0CpDEZGRjCSk4Mwb55CLIyZMtjAwpi1fWVaWlrQ0NCApKSkEf/saGk0GpSXl4sZ7MyZM3B1dUVaWpqYwWJiYgZlyu7ubsyfPx8HDx5ESEjIhK13smP+mha4UUOTj0qlwt13341jx45ZXS0wNhYuxaZNFwbdFTZdC/LykiEqyhseHlIYDAIuXuwYNMIxOVmB0lLzUJCdHYpLlzoRFuYOZ2fjeOv29j50dGjM7kQDg8eAOzk54I47wsX+M6bjsy4ujnBxcUZLS5/Zzw9sQDeSsYxyuVwMBWM9llGlUqG9vR1z584ds2eaCIKAq1evihOYiouLcfXqVURHR4uBID09HZ6ensMKOc3NzWhoaEBKSsqYr3W6YEVnSuJGjX1iBiOb+fjjj/Hpp59i586dVj9LpVKhqkqF5cuPD+oLY+qXFxLijrAwD0ilTnB1leDbbxvFq0UA4ONjzIGm5sEmWVkhuHatFwqFHICxD46XlwsKC82znpubM9zdnc1Gg8vlEsyfPwNqdT+0WgMaGjpx+XI3Zs6Uo6bGfIS4TOaEwMDrk5kCA92Qnh6MO+4Ix+zZfkhNDYK3twzd3d1iBhvYV8aUwdzc3Mb0uk9FRQUUCgUUCsWYPdPEVBgzXWEyFcYSExN/sDBmSXFxMcLDw+Hv7z/ma50OmL+mLG7UkG298soreOaZZ9Dc3Dyiv6BfeeUVtLe3Y9OmTVavoba2FpWVbVi58ph4H9p0DQnAoA7+lvrChId7QqPRISTEA+7uUqjV/air60BwsPug0y6Wju8mJgbAzU0CicQJbW19qKkxHp+1dN0qPt4Tp08bA4GzsyPi4wOQkzMDcXH+ZsdnR9JXZjwIgoCSkhLMnDkT3t7eVj2nu7sbJSUl4ljG6upqBAQEmB2fDQ0N5Z1mG2JQmJL4B8o+MYOR1UabvwRBwD333IONGzciMzPTqjUIgoDi4mJ89VUP/u//TsLHxwWRkcZrSAaDgNraDrFRsMmNfWEA42jrixc7ERrqAWdnY3++jg4NOjr6BhXGbmzi6+TkgAULwtHbq4fBIIgDFzw8pJBIHNHSYn4yOjnZB6WlxmtRHh5SsTAWE+ODtLQghIaaF8Y6Ojqg1+tv2ldmPJhONiuVSqt6Cg1VGIuJiREz2EgKYzT2mL+mLG7UkO3U19dj7dq1OHv2LIqKikYUFPr7+5GdnY09e/YgMjLSqnUYDAbk5+fj88978cYbxdDprh+fjY8ffM9YKnVCZKQXpFJHeHtfPz4bFeVt8fhrXV0H9Prrf2QCAuSIj/eFXu9gdnzWUmPi0FAPtLb2iidrYmJ8MHu2O1JT/bFgwVxxLOONfWUkEol4n3m4fWXGg1qtRnl5OZRK5bCvUPX39+P06dPi8dny8nJIpVKkpKSIlZrZs2fb/USDsVRfX4/Vq1fj6tWrcHBwwLp167BhwwZbL4umPqZu+8QMRlaxJn8BQFVVFVavXo2vvvrK6s/i7u5ulJefxu9+V4f//OeS2WuWrhVFRXmjp0eLsDBPuLk5o6dHi4sXOxEY6CZOhjKxlKuSkxVwcXGCROKE1tY+cUBESkogSkqumn3vwNHezs6OSEwMQGysFJmZM5GTMxOzZ/tBp+s3O608mr4y4+Xy5cvo7OzEnDlzhvX9AwtjpgxWXV0NhUJhVhgLCQmZVpsyzGBkI9yoIdtZtmwZXnrpJeTm5qKwsHDEQSEvLw+vvvoq9u/fb/VaWlpaUFlZi4cfPonmZvNjrbfeGoqrV9Xi8dmmJjU8PKSDPtBdXJzg7y83uxYll0uQkzMDPT3mx2djY31RXd0Kw/U9ITg5OSAqyhvV1cZKjen4rLGvjK84lrGrqwunTp2Ct7c31GrjWseir8x4qa2tRU9PDxISEga9ZjAYUFtbKwaC4uJi9Pb2Ij4+XgwFSUlJcHV1tcHK7YdKpYJKpUJqaiq6urqQlpaGTz/9FHFxcbZeGk1t0yeJTy7MYGQVa/MXYOyRERgYiHXr1lm9nvPnz6O8vAuPPHLU7OsymRNmzPCEq6sEXl4yaLWmwtjgvjKzZvngwoU2s1ylUMgxd64vDAYHdHVpUVfXjvZ2jcUNnLAwDzQ3q6HR6OHgYCyMpacHIzMzBMnJgZg3TwGJxAFNTU2orq6Gl5cXenp64OzsbHZa2VaFMUtMJ5aCg4Mt9n/RarVmhbGKioppXxizhBmMbIQbNWQbBw4cwLFjx/Daa68hMjJy1EFh5cqVWLFiBZYsWWL1msrKyvDdd2q8+mopQkKMx2fb2vrQ1taHnp5+cfqTSWZmCE6evH4tSiJxwO23h6Ovz/z4rKurZFBjYMD8CpTx+GwgFi2KFMPBjcdnB45llEgk6OrqQmpqqtVjMsebwWBATk4Odu7cicDAQPH6UnFxMRobGxEVFSVuyiiVSvj4+NhNyLFXubm5WL9+Pe68805bL4WmNv5BtE/MYDRqY5W/enp6kJ2djc8++wwBAQFWrcnUWPjPf76G4uKrUCjcxBzl7e0y6Aq4XC6Bl5cLVKrr16Lc3Z1xyy1hUKt10Gh0aGjogkrVbbExsETiiPBwT9TUGKc4BQWZ+spEYPZsX6SmBsHLa+i+MhqNBu7u7oiJibH7vFJXV4dly5bh66+/xuXLl80KY2q1GgkJCWIGs/WkqMmCGYwmCDdqaPwsXrwYV65cGfT1zZs3Y8uWLTh8+DC8vLysCgqNjY247777cOzYMchkMqvW29fXh5KSErz0Ui2++67R7LVbbw3FN9+Yfy0xMQDu7s7fT3e6fnzW0rSCgXeiTWMZb701DAkJCqSnB2H27KHHMg7VV2Y8G8VZSxAEqNVqlJaWorCwEPn5+fjuu+8QGxuLjIwMsVIzY8YMuzr9MxnU1dXhtttuQ0VFBTw9PW29HJra7Ps3kOmLGYxuaiLyFwB8+OGHOHjwIN566y1rl4yrV6/i3LlGrFjx9Q/2lbmxMHb1ag/q6jrg5uYMFxcnNDeb95UZWBjz9DT2lVm0KAIxMcbR2CEh7kP2lTHlr4F9ZexlBPZQBEFAc3OzWBg7fvw4VCqV2aaMUqmEt7e33W802RtmMJpA3KihiVdeXo5FixZBLjdeJWpoaEBISAjy8/MRFBQ04udt374darUaGzdutHptdXV1OHu2DStWHDPrVaNQyBEX5we9Hujq0qK2th0dHZaPz4aEuKO9vQ9qtU48PpuWFozs7FDMm6cwG8toCgXd3d2QSCQjGss4Vo3ixoJOp0NlZaVYqSkrK4OjoyNSUlLEUPD2228jMzMTjz76qE3XOpl1d3fj9ttvxwsvvIClS5faejk09THB2ydmMBqVsc5fgiBgyZIleOGFF6BUKq1am2kAwbFjavzmN9+ZvZaSooBMdr2vzIULbdBoLPeVGXjaWSp1QkKC+cCF2FjfMekr09zcDJVKhXnz5ln1vq1lKowNHLhw/vx5+Pj4iPkrJSUFP/7xj7F//35ER0fbdL2TGTMYTTBu1JDtWVvR0Wq1yM7OxnvvvYfw8HCr1mIwGFBQUIDPP1cjP/8qNBodGhu7cPlyN+bM8cO5c+bHZ2/WVyY21g9pacbjsz09PWKV5saxjNb0lWloaIBarUZsbKxV73skDAYDLl26JAaCoqIidHV1Yc6cOeJpmdTUVMjlcrONps7OTuTk5ODIkSNWH5Oejvr7+3HfffdhyZIleOqpp2y9HJoeuFFjn5jBaExYm78A4OzZs3jsscdw+PBhq3uZ9PT0oKysAq++ehmdnRp0dWlQW9vxfWFs8MTNG/vKGPv5BSErKwTJyUFITAyARGIsjJk2B1wpWQAAELNJREFUZbq7u8esr8ypU6cQGho6oWOlBxbGCgsLUVZWBicnJ7PC2Ny5cwcV8L799lv89re/xaFDh3iKZhSYwcgGuFFDtjcWQeHIkSN488038f7771u9ntbWVlRW1mD16nwLfWWuX4EyjWVctCgCs2ZZPj7b2dmJ/v5+uLu7j8tYRkEQUFhYiDlz5sDDw2NMnnnj81tbW1FcXCyGgvr6eoSHh5sdn/X39x/WB//x48cRFRWFGTNmjPlapzJBEPDoo4/C19cXf/jDH2y9HJo+mObtEzMYjYmxyF8AsHHjRsyYMQOPP/641Wuqrq7G6dOdeOiho2aFMWdnR4SGeqCurgMAEBzsjvT0INxxRwRiY40DFzw9pRb7ygycgunm5jZmGxV9fX0oLS2FUqkcl4a7NxbGiouLLRbGXF1dh/WePvzwQ+Tm5tpsCtVkxQxGNsKNGpo6HnzwQTzyyCNYvHix1c8qLy/HyZNqbNhwHIBpLKMC8+eHIS4u4Af7ykzkWMauri6cPXsW6enpVoUPQRDQ19eHU6dOiSdlzp49C09PT6Snp4t9ZSIjI9lXZoL973//Q05ODhITE8X/9lu2bME999xj45XRFMeNGvvEDEZ2pbu7G7fccgu++OIL+Pn5WfUsvV6P/Px8/PWvLfj73ysBDOwrE4lZs4wDF4KDjYWxgRnsZn1lxsulS5fQ399v9ZUiU2GsqKhI3Ji5sTCWkZEBPz8/noiZYMxgZCPcqKGpo76+Hrm5uTh27JjVmyMajQYlJSWoqpJj7lx/cSzjwOOzPT09cHJyGlFfmfFSVVUFuVyOsLCwYf+MXq/HuXPnxE2Z0tJSGAwGJCcni5sy8fHxcHZ2HseV259Dhw5hw4YN0Ov1WLt2LZ5//nlbL4nIVvjbgH1iBiO7s3//fhw5cgSvv/661c9qamrCuXP1uHRJJvaV6e8fuq+MKYPZIq8YDAYUFhYiPj4ebm5uw/oZU2HMNHBhYGFMqVRO68IYMxiRiBs1NLVs3boVer3e6vujgiCguroa3d3dkMlkg/rKjPXxWWuZRlumpKRYnEAgCAIaGxtRUFAgVmva2towe/ZsMRSkpaXB3d3dbt6TLej1esTGxuKrr75CWFgYlEol/v73vyMuLs7WSyOyhen7l4F9YwYjuyMIAu688068/PLLSE1NtepZOp0OxcXF8PDwQH9/P3p6esasr8x46OjoQFVVFdLS0ixurOh0OlRVVZkVxgRBQHJysnhaZjoWxm7EDEZkZsi/4Gw7QoZolJ5++mlkZWVhxYoVCA0NHdbPmCobAys1Op0OcrkcXV1dCA4OxuzZs8f9+Kw1JBIJNBoNVq9ejQ8++AAdHR1iX5mioiLU1dUhJCQESqUSCxYswHPPPQeFQmE3Icde5OfnIyYmBjNnzgQArFy5EgcOHGBIICIiugkHBwe8/vrr+MlPfoJ///vfwz4JYjAYxIELnZ2dYmFMLpfj2rVrSEpKgoeHh13nFS8vL3zyyScoKirCunXrcPnyZYuFsYyMDDz88MN49dVX7arYZy+YwYiGhxs1NClJpVJs3boVmzZtwp49eyx+T39//5B9ZXx9fREZGSlenWpra0NdXR0CAwMn8m2MSF9fH8rLy1FZWYm6ujqkp6fDx8cHaWlpyMzMxEMPPYTo6Ohpd3x2NBobG80aHYeFheHkyZM2XBEREdHkEBcXh6ysLOzduxePPvrooNdNhbGh+sqEhISY9ZW5cOEC2tvb4enpOdFvZVgEQUB7ezuKi4vh6uqK3//+9/jzn/8s9pVhYWxkmMGIhocbNTRpLVmyBO+88w7y8vKgVCpRXFyMiIgIi2MZg4ODb3p81sfHB42NjWhuboZCoZjgdzKYXq/H+fPnxe7/xcXF0Ol0SExMREZGBrZu3YqXX34ZeXl5kMlktl4uERERTSO/+c1vMH/+fNx///3QarWora2FQqEY1FfGz88PUVFRN73uExkZiYKCAgQGBtpFpjEVxkynlc+cOQO5XC4OXHj22WdRVVWFnTt32nqpRDSFcaOGJh29Xo/Kykrk5+fD1dUVa9asgZ+fH+Li4vC73/0OUVFRozpqGhsbi6KiIvj5+U3o9SdBEHDlyhVxLHZxcTGam5sRExMDpVKJ5cuXY9u2bfD09DR7T5WVldixYwdeeOGFCVvrVBEaGor6+nrx3xsaGoZ9hY6IiGi6UqvVKCkpQX5+Ptzc3JCdnQ1/f3/cddddWLduHUJDQyGTyUaUwZycnBAdHY2qqiokJiaO4+oHu7EwVlJSYlYYe/rpp5GYmGg2vEIQBCxZsgQnTpxAVlbWhK53KmAGIxoeNhOmSaWyshKrVq1CXFwcMjIykJGRgS+//BKurq7YsGGD1c+vr6+HRqNBTEzMGKx2MEEQ0NXVhZKSErFSc+HCBQQGBpqNZQwODv7BkNPf34/XXnsNzzzzzLisdSrT6XSIjY3F0aNHERoaCqVSiffffx/x8fG2XhqRLfCsvn1iBiO78re//Q1/+tOfkJqaioyMDCiVSvziF7/Ali1bkJycbPXzS0tLER4eDl9f3zFY7WCmwtjAvjLNzc2YNWsWlEolsrKykJaWNqxeOVVVVSgrK8OyZcvGZa1TGTMYkRlOfaKpq6+vD9nZ2fjoo48QHBxs1bMEQUBBQcGIxi/ejFarRUVFhbgpU1FRAZlMJoaczMxMxMbG2nUD46nq4MGD+NWvfgW9Xo81a9bwZBJNZ9yosU/MYGT3ysvL8cQTT+DQoUNW98jr7e1FWVkZlEql1c8yFcYGDly4cOECgoKCRlwYo7HHDEYk4kYNTW1ffPEF9uzZg127dln9rPb2dtTU1CAlJWVEH94GgwE1NTVmV5g0Gg0SEhLEUJCcnGwX969t4dlnn8Vnn30GqVSK6Oho7Nq1C97e3rZeFhFxo8ZeMYPRpLBhwwbExcXhkUcesfpZNTU1cHR0RGRk5Ih+7sbC2OnTpy0WxqbrwAVmMCK7xY0amvpyc3PxxBNP4LbbbrP6WadPn4a/v/+QU6AEQUBTUxOKiorETRmVSoWZM2eKmzLp6enw9vZmpeZ7hw8fxsKFCyGRSPDcc88BALZt22bjVRERuFFjr5jBaFLo6OhATk4ODh06ZPUv/3q9HgUFBUhOToaLi4vF7zEYDLhw4YK4KVNSUoK+vj6xMJaVlYWkpKRpWxizhBmMyG5xo4amvtraWjz44IM4evToTacLDIdGo8Hy5cuxe/dueHl5oaenByUlJeKd5qqqKvj5+UGpVIqVmhkzZnBTZpg++eQTfPTRR3jvvfdsvRQi4kaNvWIGo0lj9+7dOHnyJHbs2GH1s86cOYOtW7di7969YmFs4GlllUqF6OhoFsZGiRmMyK5wo4amh5dffhlyuRzr168f9TP6+/tx5swZ7Ny5E9XV1ejt7YVEIkFqaqoYCubOncu+Mla4//77sWLFCjz88MO2XgoRcaPGXjGD0aQhCALuuOMObNu2DfPmzRv1M0yFsRdffBHe3t64cuUK/P39zQpjYWFh3JSxAjMYkV3hRg1ND729vcjOzsY///nPYTUWNhgMuHjxotkVpu7ubsTFxSEtLQ27d+/Gu+++i9TU1AlY/eS3ePFiXLlyZdDXN2/ejNzcXPGfCwsL8fHHH9td0CooKMDjjz+O/Px86PV6ZGRk4IMPPkBCQoKtl0Y0nuzrDyKZMIPRpHLq1Cn88pe/xJdffjmsz3dTYcx0hamsrAzOzs5ISUlBTEwMdu3ahYKCAsjl8glY/eQ3mTMY8xdNY9yoocnljTfewFtvvQUnJyfce++92L59+7B/9l//+hf279+Pv/zlL2ZfFwQBLS0t4vWlwsJCNDQ0ICIiQrzTrFQq4evrK354FRYWYtOmTTh8+LBdfaBNVu+++y7eeecdHD161G6D14svvoi+vj709vYiLCwMmzZtsvWSiMYb/3KzT8xgNOGsyV8AsH79eiQnJ2PVqlVmXzcYDKirqxM3ZUyFsfj4ePG0TEpKilk22LZtGwRBwPPPPz8m7226s/cMxvxF0xQ3amjyyMvLw+bNm/HFF19AJpOhqakJCoViRM+477778NOf/hSurq5iKDh37hy8vLzMjs9GRET84ASAX//611i7di3Cw8OteVvT3qFDh/DUU0/hv//9LwICAmy9nCFptVoolUq4uLjg22+/5RU3mg64UWOfmMFoQo1F/mpvb8dtt92G999/H1VVVWIGa2xsRGRkpHiF/MbCmCVarRbr16/HO++8w2KZlSZDBmP+ommKGzU0eSxfvhzr1q3D4sWLR/2M0tJS3HnnnXjggQfEUBAfHw+JRDKGK6WRiImJgUajgZ+fHwAgKysLO3futPGqBlOpVJg/fz5kMhkKCgrg5uZm6yURjTf+BmSfmMFoQo1F/gKAJ598El9++SXuvfdesTAWHh4+bUdj24PJkMGYv2ia4kYNTR7JycnIzc3FoUOH4OLigh07dkCpVNp6WTRN/OhHP8LKlStRW1sLlUqFN99809ZLIhpv3KixT8xgNKGYv8iWmL9omhoyg/F4AdnEzRqe6XQ6tLa24sSJEygoKMDy5ctRU1PDY68j9Morr+CZZ55Bc3Mz/P39bb2cSWHPnj1wdnbGqlWroNfrccstt+DYsWNYuHChrZdGRERkNeavicEMNjLMX0SD8UQN2Z277roLzz33HBYsWAAAiI6OxokTJ+z2Tq09qq+vx9q1a3H27FkUFRUxJBDRzfC3MPvEDEYTivlrbDCDEdEIDJnBeFmU7M4DDzyAvLw8AEBVVRW0Wi0/5EboySefxPbt21kFIyIiomFh/hobzGBENBZ49Ynszpo1a7BmzRokJCRAKpVi9+7d/LAbgQMHDiA0NBRJSUm2XgoRERFNEsxf1mMGI6Kxwo0asjtSqRT79u2z9TLs2s3umG/ZsgWHDx+2waqIiIhosmL+Gh5mMCKaCOxRQzSFlJeXY9GiRZDL5QCAhoYGhISEID8/H0FBQTZeHRHZKZbM7RMzGNEkwgxGRKPA8dxE01FkZCQKCwt5x5yIboYbNfaJGYxoEmMGI6JhYDNhIiIiIiIiIiJ7x40aolF64403MGfOHMTHx2Pjxo22Xo5FdXV1rOQQERHRlMIMRkRTHZsJE41CXl4eDhw4gFOnTkEmk6GpqcnWSyIiIiKa8pjBiGg64IkaolF4++238fzzz0MmkwEAFAqFjVdERERENPUxgxHRdMCNGqJRqKqqwtdff43MzEzcfvvtKCgosPWSiIiIiKY8ZjAimg549YloCIsXL8aVK1cGfX3z5s3Q6XRobW3FiRMnUFBQgOXLl6OmpgYODhyeQkRERGQNZjAimu64UUM0hCNHjgz52ttvv42lS5fCwcEBGRkZcHR0xLVr1xAQEDCBKyQiIiKaepjBiGi649UnolF44IEHkJeXB8B4BFer1bKzPxEREdE4YwYjounAQRCEm71+0xeJpiutVos1a9agtLQUUqkUO3bswMKFC229LCKi0eB9AfvEDEZkATMYEU0hQ2YwbtQQERFNb9yosU/MYERERFPbkBmMV5+IiIiIiIiIiOwEN2qIiIiIiIiIiOwEN2qIiIiIiIiIiOzED43n5r11IiIioonHDEZERDRN8UQNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd+H+iquRLHySExAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_76_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "from mpl_toolkits.mplot3d import axes3d\n", - "fig = plt.figure(figsize = (20, 6))\n", - "axL = fig.add_subplot(121, projection=\"3d\")\n", - "axR = fig.add_subplot(122, projection=\"3d\")\n", - "\n", - "axL.set_xlabel(\"x\"); axL.set_ylabel(\"y\"); axL.set_zlabel(\"f(x,y)\");axL.view_init(azim=-110,elev=60)\n", - "axR.set_xlabel(\"x\"); axR.set_ylabel(\"y\"); axR.set_zlabel(\"f(x,y)\");axR.view_init(azim=-110,elev=60)\n", - "\n", - "axL.plot_surface(X,Y, Z, cmap = cm.jet) \n", - "axR.plot_surface(X,Y, Z2, cmap = cm.jet)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2sWhUyhvT_F2" - }, - "source": [ - "こんな感じ。 \n", - "x,yのメッシュ点をいっぱいつくって、各点でのzの値を定義に則って計算し、 \n", - "z=f(x,y)の値に応じて色をつけている." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mwuxsycbbR81" - }, - "source": [ - "## $\\clubsuit$ ランダムウォーク(酔歩)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "guih1t2JbX25" - }, - "source": [ - "ここまでの乱数の生成方法を応用すると、ランダムウォーク(酔歩)と呼ばれるものを実装することもできます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LiiMqnftjAE-" - }, - "source": [ - "あなたは原点(0,0)に立っていて、毎秒ごとに[-1,1]の一様乱数に従ってx方向とy方向に移動するとします。 \n", - "T秒後に立ってる場所や、軌跡をプロットしてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 320 - }, - "id": "wwuiBws_jVlj", - "outputId": "99f9df52-4420-43c9-b919-a09d3bfbf8b2" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAATwAAAEvCAYAAADYR30zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9d3Cc6X3n+X3QaKCBRs45M4BgTsMwiZKosS3J2q1TOWydpa317ezK9pnHs72W/c+Oaveu5N09s3jn9d2OT7qdqTpZ3vLtWvaMRprAmeFwOEzDMCSHAQCRc2qgERqdnvvjy2eetxPQABqhgedT9RbQ3W+//XQDz7d/6fk9QkoJg8Fg2AqkrPcADAaDYa0wgmcwGLYMRvAMBsOWwQiewWDYMhjBMxgMWwYjeAaDYcuQuh4vWlRUJOvq6tbjpQ0Gwybm008/HZVSFsd6fF0Er66uDjdu3FiPlzYYDJsYIUTXQo8bl9ZgMGwZjOAZDIYtgxE8g8GwZViXGF40fD4fent74fF41nsoGxKHw4GqqirY7fb1HorBkLRsGMHr7e1FdnY26urqIIRY7+FsKKSUGBsbQ29vL+rr69d7OAZD0rJhXFqPx4PCwkIjdlEQQqCwsNBYvwbDColb8IQQDiHENSHEHSHEfSHE95/eXy+EuCqEaBNC/I0QIm25gzFiFxvz2RgMK2cpFt48gC9JKfcB2A/gl4QQxwD8GYBzUsomABMAfjvxw1x9XC4X/vIv/zLu8zs6OvDMM8+gqakJv/7rvw6v17uKozMYDIkgbsGTZPrpTfvTQwL4EoC/fXr/awD+UUJHGHs8C95eKksVvD/+4z/G2bNn0dbWhvz8fPzwhz9c0esbDIbVZ0kxPCGETQhxG8AwgHcAtANwSSn9T0/pBVCZ2CFG8sorr+Ds2bNfiJyUEmfPnsUrr7yy7Gt+73vfQ3t7O/bv348/+qM/WvBcKSUuXLiAb33rWwCA73znO/i7v/u7Zb+2wbBZkRLw+xc/b61YUpZWShkAsF8IkQfgvwHYGe9zhRAvA3gZAGpqapbysuFjgMvlwvnz5wEA586dw9mzZ3H+/HmcOXMGUsplxbt+8IMf4N69e7h9+zbcbjf2798f9bwf//jHKCkpQV5eHlJT+fFVVVWhr69v2e/JYNiMjI8D9+9T9J5/fr1HQ5ZVliKldAkh3gdwHECeECL1qZVXBSDqzJdSvgrgVQA4fPjwsv1PIQTOnTsHADh//vwXwnfmzBmcO3cuIcH97Oxs3L59O+bjo6OjK34Ng2GzMjcHfP45Ba+5mb/PzABO53qPbAmCJ4QoBuB7KnYZAE6DCYv3AXwLwE8AfAfAT1djoGFjwblz574QOwAJEzsAcLvdeO6556I+9uMf/xjNzc1wuVzw+/1ITU1Fb28vKitX3ZM3GDY0fj/Q1gZ0dgINDcD+/YDNRuEbGACamtZ7hEuz8MoBvCaEsIGxv/8ipXxDCPE5gJ8IIf4tgFsAVj16r2J2Vs6ePbsi0cvOzobb7f7i94UsPAA4deoU/vZv/xa/8Ru/gddeew3f/OY3l/W6BkOyIyXQ2ws8fAgUFgIvvgg4HPrx8nI+ZhU8Fdtb84VDUso1Pw4dOiTD+fzzzyPui0YwGJRnzpyRAOSZM2ei3l4uv/mbvylbWlrkH/7hHy56bnt7uzxy5IhsbGyU3/rWt6TH41n268ZLvJ+RwbBWjI1JefGilB9dDMrxccsDlnkYCEj5938vZWenlA8eSHn5spQ/+5mUV64kfjwAbsgFtGfDLC2LFyEE8vLyQmJ2KqaXl5e3Irf2xz/+cdznNjQ04Nq1a8t+LYMhmXG5gPZ2uqu73vrfUBHogXj2HAABGZSY/r3vYSK9DOPfOYuJCT7ns8+AlBSgrAw4cgQoKlr7cSed4AEsS5GWbKwSPbMawWBYPYJBoL+fMbr5eaCuDti/T8L2Zg8m//f/B4OuEkz8yz+B68/+E9J+eh3Zv/41zLokZmf1vPzKV4D09HV7C8kpeEDkUisjdgbD6tHZCTx+TNHbsYNixykngHPn8GS4EuOv/xy7Xz+PFAQx8E/+EP3//f+M3HSBsmzA4wFmZ9dX7IAkFjyDwbB2OBx0RaengdZW4MEDICtLHQIF/+sfovevL+ImDiIVfmR+918hJ0VgcpKJjMZGoKRkvd+FETyDwRAHZWU8FD4fa+ump4Fpt8TIn/w5MjGLFAThgx3B8/8Hqv/d/4jDhwXSlt1OJPFsmPZQBoMhebDbgbw8oLhIIu3f/VvM/uSnCP6j/w7ln1/Aie/ux3N/ewZ1588izb6yNe6Jxlh4BoNhWXz+OdDdLVCaVoxdLz+Hwv/zuxApAviPfwakeamIGyy2biy8pyy1W8pf/MVfoKmpCUKIkKVmUkr8/u//PpqamrB3717cvHnzi8dee+01bNu2Ddu2bcNrr732xf2ffvop9uzZg6amJvz+7//+iju/GAxrwfQ0sG8fcOA//UsU/V//lmIHUOTOnQNW0MxjtUhewQsXhTVuD3Xy5Em8++67qK2tDbn/rbfeQmtrK1pbW/Hqq6/iu9/9LgBgfHwc3//+93H16lVcu3YN3//+9zHxtEDpu9/9Lv7qr/7qi+f9/Oc/X9F7MRjWgowMZl8BRFpyG8yyUySn4L3yCnD2rBY5KXl7jdpDAcCBAwdQV1cXcf9Pf/pTfPvb34YQAseOHYPL5cLAwAB+8Ytf4PTp0ygoKEB+fj5Onz6Nn//85xgYGMDU1BSOHTsGIQS+/e1vm1ZThqQgI4ONApKJ5IvhSckyb9U44Nw5it3588CZM3x8ldtD7dq1K+Z1+vr6UF1d/cVt1Tpqofurqqoi7jcYNjoZGcDk5HqPYmkkn+Cp+ABAkVPCd+YM71+D9lAGgyE5LbzkdGmtoqdIkNgB+MLCi3Z8/vnnCz63srISPT09X9xWraMWur+3tzfifoNhIzM+zg4oqUlmMiWn4KmYnRVrTG8ZRGsPFe1YyJ0FgF/91V/F66+/Diklrly5gtzcXJSXl+Oll17C22+/jYmJCUxMTODtt9/GSy+9hPLycuTk5ODKlSuQUuL11183raYMGxafD7h+Hbh1C6iuBp55Zr1HtEQWaqWyWsdK2kPJYFDKM2ekBPgz2u1lspT2UOfPn5eVlZXSZrPJ8vJy+du//dtPhxeUv/M7vyMbGhrk7t275fXr1794zg9/+EPZ2NgoGxsb5Y9+9KMv7r9+/bpsaWmRDQ0N8nd/93djtrgy7aEM68nkpJTvvivlvXts+bQRwSLtoYRch5qvw4cPyxs3boTc9+DBAzQ3N8d3gVdeYeJCubHK4svL25C1P4liSZ+RwZBAenpYaLx7N7CRIy5CiE+llIdjPZ5kHvhTXnklNBurYnobtPbHYEhWgkHg7l3G7E6cALKz13tEKyM5BQ9ImkJHgyGZuXKFLZ2eey75EhTRSM6khcFgWHX8fkaODh7cHGIHbDDBW494YrJgPhvDWtPTA+Tmbi7nacMInsPhwNjYmJnYUZBSYmxsDA7rVlAGwyoyMMAtFw8cWO+RJJYNY6hWVVWht7cXIyMj6z2UDYnD4QhZgmYwrBYuFzfcOXYMyMxc79Eklg0jeHa7HfX19es9DINhU/Dee9xDAmBmtaiI7djT0vSRlcVdxMKZnaXQ5eYmbjxeL9vCA2wptV5sGMEzGAyJY98+oKMDGBsD3G4eVlJT2bI9mstaXs59KwYHQ9u6LwcpdQ2fzwecPLmy660UI3gGwyakqChy31ePB5iaAm7cAI4e5RIxn4/t2q0IATQ3A/fvA6Wly09aTE3RNQZoMRYU8FhPNkzSwmAwxE8wuPTnOBw80tO5k1hxMRCrE1lJCc+z9LuIG7+fYnnlClBTw20dvV5g586lXyvRGMEzGJKIyUng5k3grbd0jG4pDA1pN7WmBujujn1uczPw6BEQCMR//f5+4P33KXovvghUVNDK27t3Y9TyxT0EIUQ1gNcBlAKQAF6VUp4XQrwC4J8DUOnVP5VS/izRAzUYtipSAiMjQHs795FoaOB9Q0PAUvN8g4MUMoAur9dLEY2WoHA46Ab/7GdAfr4ei7XRuPVnIEBRO3RIu64PH/L3jbAnLbC0GJ4fwB9IKW8KIbIBfCqEeOfpY+eklP8h8cMzGLYuwSDQ20uhS0kBmpqYUEhJoXB1dGjBk5JiGGutq8fD2rqZGS1GQrDFkyowDufJE/379u061idE6DJ268+srNCYn822PPd7tYhb8KSUAwAGnv7uFkI8ALCB+yYYDMmJ1wt0dVHQcnOBPXsiExDFxexJ5/PRqrp9m/G43bsBtdWKy8VY2vg4bxcWAkeOhJai1NQAFy/yselpy+ba07w2AFRVsRHRcjbUbmigizs6Gvke1oNledVCiDoABwBcBXASwO8JIb4N4AZoBU4kaoAGw1ZhZoZWVV8f42zHj8e22Gw2itTwMA+Ph91MPv6Y3U2s5OXRPR0fZzytqIiCWVjINu2VlbQknU5afzU1tNKuXwdOn17Z0jKbDWhpofA+//z6L1Nbcj88IUQWgA8B/C9Syv8qhCgFMArG9f4NgHIp5T+L8ryXAbwMADU1NYe6urpWOnaDIamRkkLldjN5MDYG1NbSQotnFWFrK2NkAF1Jj4flH7OzdEHr60OtOSlZKjI6ypjgxASfV1xMESwo0Oe3tfE6e/cuPAafj7G7xcb7ySd0x6Ns9JdQFuuHtyTBE0LYAbwB4BdSyj+P8ngdgDeklLsXuk60BqAGw2ZFJQZmZkKP2Vm6iU4nxaC6Ov5M5u3bumSkqYkWYW5u9JUTsQgGKXojIxRBt5vJiaIirorYvp2/z89TTKMdgQCtxC9/eWHrze0GLl8GTp1anmscLwlrACqEEAB+COCBVeyEEOVP43sA8I8B3FvuYA2Gzcj9+xS8ggKKW2Ehf2Zm0uVbKipDC/A6c3N0W5fqLqakcCyFhbzt89HKVMvZHz/mYaWkhHG5nh4K4fbtQGPj4q+dnU3X+eHDxa3G1WQpMbyTAH4LwF0hhNrD8E8B/KYQYj/o0nYC+BcJHaHBkORkZdHlS0R3filp3eXksMbt0SPG5h48ABbZX2pR7HZaimVlTJQAtMxu3qQrnJXFZMZnn1H4Tp2Kz/VWlJYy0ZIUgielvAQgmo6bmjuDYQFycphxTQR37tCVPHqU1qHPx2v39tK1XEn/jYkJClxNjb6vr4/jr6tjQiUzk0mInJylXXt+nkK9nmIHmLW0BsOqk5tLlzYRzM1R6FQBsM3GVQ1793KBfkZG/Av+h4dpGZaW8rh2ja6nVfDGxhhvdLloQZaWLn3MwSDw6ae87kqbEawUI3gGwyqj3D6PZ2kuYDSeeQZ4800uLVPs2UOh2rOHwnLiBC2w3l4mCDIzKYTWZEFbGy3DlhYWJF+6xPunpvQ5gQDd5bw8XnM58UaAomqzMd633hjBMxjWAGXlrVTwhKBweb36vvC6OyVegHY91brbtLTQNbiffhr6XJ+PMbv6etbhAWzptJTsr5XeXiZYnntu/WvwACN4BsOaUFrK+FtNTfx1duG43bxGMMjrqUwtQEE9dIgdTi5f5jkFBVzM73Cw5MXlYpwuFqdP0xJ78kSLZmbm8sVuaooZ6uPHI1tQrRcbZiNug2GzMz1NN7Kvj4LV0BB/V+EnT+gaBoN8TkYGBczjiX5+bi4FMtY61txcWnrKFe7ooGtbW6ubhvr9PDc/H9i2bWnxO68X+OgjtoRay427F6vDM+2hDIYlEAhQKJZjJ2RlUVy+/GUKzfXrtMYGByk2g4OxnxsMAvv3M5bmdNJSq6+PLZiTk3xOejrPB2gBpqVxDJOTdF8nJvh+mpqYlHjyhPfl5elrTUwww+r1xve+p6dpIVZVra3YxYNxaQ2GOAkGKVBzcxSLzEyKidNJMVO/OxwLx6vsdgpMQwNFrq1Nu5o5ORSk8M7A+fnsVKxid1lZeo+IcGprKXSqZGV+nis57HYKljXmJ6WO1anXz8vj642O6vu9XuAXv+DvNhuvpaxDKWlx2mwsWr55kzWH1mzvRsEInsEQJ62tnOjPPactPdVdxOWiqzozQ6FR4ud00gorK4uMhaWksHi4ooKCd+kS414ff0xBq6riioaZGf2c6mqKkd0emXA4cUKvmlAIQattYIBHXR2Fu7aWr3Xnjh5LMMj7pqYY+1P3bdtGwbx4kecGArTcams5ZrudXwLKfU5NpQWpNgPaSJgYnsEQB+PjtLCef37xhIPfH7pmdmSEgrBtG0UsVhLAakVZKS0FDh6kkPj9QGdnpHX3pS9p1zUcn4/C2dFBy6++XvfV8/koZC0tfJ3+fi4nS0tjGUlGBq3Q3l5acmlpFMSSEr5eayut1bY2/XpFRRT5hoaVZ6WXSkKbByQKI3iGZOPyZU7k5daSjY9TSKanKXzV1dGFb2iIBcDRKC6m5VRczPWrbW1MWhw5Et+CfLUG98kTCnFdHa20mRm6tc89R4GTkkXMqgFodjYF0evVmd5o2d4XXlj6CoxEYwTPYEgAExMUoiNHVrbz1sQEhW9qimJTVkarzevVx9AQ3UaPh/G3cHbsoHuanc1EhlU4fT5alCMjtNhirWyYmtKZWeVuu1wUwa4uvq6KwXV0MK43OUnrMC+Pr/3OO/wsVL+94uKNL3gmhmcwxEF+Pt3K69eBY8fiLydxu4EPPoj+2KNHPACKhctFwWpspHUVq1WUeo4SIbXnxcgIryElXU5rpjWcnBzuXdvcTBdZXfPOHa7TLSnRiZfqauDdd/l7WRnFbnSU1z94kEmKmZmNl5GNhhE8gyFOiou5ZvXqVYpePNZMaqoWx5QUWnAzM3QRGxooWA8e6JZMlZXcwwLQLdYdDgqN3U5BU+d2d4fuOpadzddraaFIxUNaGq06r1c3OBgeDq25y8igON65Q9e+sVEnKT78kNbo8eNrH69bDkbwDIYlUF7Oif7JJxQhFdiPRUYGEx0A3cirV7XYARRBa/Fw+D6x+/ax3KO/n5bYQrjd/DkwQNdZ7UGrLLXMTFqqNhsFbmCA152cpEV35AjFrrOThzUm5/cz4eL1RiZM9u9f/w2248UInsGwRCorKRDt7bRwqquZiFgocTA6yjISr1e3dJ+c1CLmcNBymp1lRvSll5iUePSIbqPaSnHvXlp+jx8zidLdTQFubqbVNTQUuuQsFnY730N9PS1X1RigrIwxwrff5nvLz2e5i9fLcUVzs+O1JjcCJmlhMKwAj4elGf39FI+GhkhR6OsD7t0DDh+mKN26Ffr43r06a/voEWNwO3fysZERnl9ZSSGrqqLV5nLR+hsZoSubksKSlqYmWmXWAuihIY5PraAoLWXCZLHuJz09XGERzrZtfM8Ax71v38ZoDACYpIXBsKo4HFxt0NBAsbpwgYJQW0sRam9nbOz4cQqRdfmY1bVVTEyEbnRTXAw8+yxrADMyaGXNzGhBLC7mzzff5M/eXlqAwSCFV0qeU1NDl3UpLZ6qqym0H3ygi59Pn6aAOp0sY9koTQHixQiewZAAnE66nlNT3LehvZ3uoNvN9kp2O4P+o6O87XCwzGVmhnvJKgvJ5YrMrmZm8jl377KOD9AFv0LQ3QwGeR3V8TgYZNzNZlt+HzuAon3oEIuTX3qJbntFhU6iJBumeYDBkEBycljWcfAgLbKTJ1nTdvEira36eoqcErHZWSYyfD7eb7NFz3babEwOqMLntDRafcGg3mjHunY1JYXnrETsFA8e0IpVMUq7nW51MmIsPINhFSgooIWnOgtv3854W08P4365uVoc79/X3UUWqp0D6CpXVFDIbt1itnh8nNdKhLhZmZ+ntTo3tzEbASwHY+EZDKtAMEgLbHSU8bbWVlp1TU20kFTNmxDaFX30iCK5GHY7LbiDB+kCA4nZEc069idPGLuz2xlDXG4T0I2GsfAMhgQTCHBFRkoKY3t37ujuw5OTLPsoLw99Tl0drbuldBcRghZfRwdjewUF8W/kHYuREWaUlcudlbWy6200jOAZDAnE72cyQtXbKVQNXXZ27Ocu5s5GY/duimdnJ2N5lZW0FpcqVDMzbBjgduvOKZsRI3gGQxz4/cy85uWxzCOai+fzAVeuaDcToMhVVq7c8lqIwkIeHg+F7/JlvZdsaenCNXJ+P+OMXV0sfD50aPO4r9EwgmcwLILfz0xqWhpjcrdvU8Sqq/U62WCQNXiqI/GhQ0wurCUOB+OF27dz2VhbG93TujomHcJXgvT10aorKuIysmRYC7tSjOAZDAugrLa8PF0vNzPDAt8bN5gZrapi/MzrZSHxrl3rt/Kgr4+Z1Z07GYNTy9cuXGDtnNoHQ0qWm+Tlsdxlo6yUWG3M0jKDIQaBANutFxYyrhWN8XG6uoODtJSOH1/bMYZz6RJd7uFh3t61i+P3eimEXV2M+R0+zLKTmzd5ntrgJ9kxS8sMhmUyNMSyjFhiBzAJoTa23rNnbcYVi6kp1sxt367Xu16+zMdSUxmbq6nRi/3T09nm6tEjFkYfPJg8XU+WS9yCJ4SoBvA6gFIAEsCrUsrzQogCAH8DoA5AJ4Bfk1IusN2vwZAc9PUt3AkkEGBGNjVV71y2nnR3U9Q+/pjip/rojY/TwquuZkmMNVYnBN3f/HyW0mzbFrm+dzOxFAvPD+APpJQ3hRDZAD4VQrwD4J8CeE9K+QMhxPcAfA/AHyd+qAbD2uHzMUFx4ED0x4NBCoTTySVkatPq9aSggPVzubk8rJlhn48W3wcfMI7X2Bj6eGkpmwHcuMEGBvv2LS2zLGVyxAHjfktSygEAA09/dwshHgCoBPBNAC8+Pe01AB/ACJ4hyRkYYCws2qSXkr3t7HYKw7VrLABebxbKCns8dGfr6riU7cIFdk+xruzIzOSqirt3gY8+YpxP1Q0GAnSXFzoOHFj7zPRSWVYMTwhRB+AAgKsASp+KIQAMgi6vwZDU9PWFtmkKf8ztBl58kVbNRrds1ObYXm/ozmfROjWnpFDE797Ve3Go9+hwMNERCPB+m43XaWhgM9GNtgdtNJYseEKILAD/H4D/SUo5JSx/bSmlFEJETfsKIV4G8DIA1GyWlciGTYnHQ1GItdqgrIwZz7ExXYSsNqHeaPT3s8mA00nBGxlhciLWhjtSch1tfz+TH4ODjAeWlvL9Op0Ut+JiutDJVqS8JMETQthBsft/pZT/9endQ0KIcinlgBCiHMBwtOdKKV8F8CrAspQVjNlgWFX6+/XWhdFITdWb2rz4Is9bh+quRenspKVmt7MU5cQJrgK5dYvWnTUj6/PRoktJYfb2uedose3YwXW6Lhez0MlenLyULK0A8EMAD6SUf2556O8BfAfAD57+/GlCR2gwrDFe7+IB++Ji1t09eECRUG7eRsHno+C1tDB2p95PSQlr7q5f58+iIor1e+/pLSJ37gwV+6wsCmSi20+tB0sxSE8C+C0AXxJC3H56/AoodKeFEK0AvvL0tsGQtNTVcSWFWiYWi5YWunyTkwu7tKrl+lpit9P6jLbHRlERExKffspawzff5BjLy9lmSkq+9/FxJjjee48CuRlYSpb2EoBY4dkvJ2Y4BsP643DoDiSqw3A07Ha6edevLyxot29TGPftW59Gmh4PW0h5PLREAwGW0Xi9zDArBgaAN96IfH5xMa3BzYBZaWEwRKGxUW86vZArV1bGtbQLucBHjvBad+7wyMmhm6j2m0hJ0b9nZUX2ylsuwSCXvT15wjGq7RjV0dFBkQsnK4txu/R0Pq+5eeNnouPFCJ7BEIWsLNao9fTELk9RxCpOtnLiBLOdd+/SVQwG9YY7gQBvBwIsDm5vp7scT/fjWPT3M76Ym6sTEOFYd1BrbKTQTk9TBKenWYLi9+t1wsm4aU84RvAMhhg0NbF+rbY2MRZOTg47mMzNMTamhK2sTJ+zYwfr/G7cYBa1uXlp9W2Tk2wJ5fezC0phYejjgQDjkx0dOkb5y7+sLdT8fC5BCwYpeqOjXLJ2+za/BFSypqhoZZ/FemEEz2CIQX4+43n379PKS9Ra2YwMJg1GR2nxdXWx9ZTTSWGtqqK11d7ORf21tVzjupDbPDLCJgCzs8yyVleHivTcHGOS3d18X7t3U7QuXOBj4Z2YU1Io0Dk5THwEg1xy9tlnHNepU8lRaByOaQ9lMCzAzIyOdaWlUYgqKhInfsEgi5jdbuCZZyIf93j4+PAwrb+aGgrZ3BzjcKmptAaHhnj+iROhVt34OMc/MkIRrKujsCpu3eL5iyVTZmcZf/T76cKvd6OEWJj2UAbDCnA6aQ21tNDC6e/n1oh2O4WvvHzhfSoWIyWFgqM22A7H4aBrOjlJS7Ozkz3urlyhpTg3x/NUA4OpKV5PdTz2+ShysZoB5OfzfcUSPClpgT56RBe/oSG5ExhG8AyGOBCCMbWCAi1+AwMUntRUil9FxfLELxhcfIlWbi6tt8FBviagxQ6gcO3YoS2v7m5aZc88s/DmQPn53Pzn8WP+npenkxNSsrW93795djAzgmcwLBGr+O3axWVX/f0UB5uN61QrK0Ndx4WIR/AUZWVc16pc2JQUdjhRe2sojh5lcuLaNQrxjh3Rs6y5ubQgR0cpepOTjM3l5/MYGeG1NoPYAUbwDIYVIYQWB2X59fWxCWdmJhMQFRULt08PBOJbtiUly2SU2O3cyWRGrHFVV1McHzzgOtldu6I3DSgp4QFQfN1uvo+xMd537RoTHPn5zNKGZ36TCSN4BkMCUeK3axetpt5eJh0KCig2ZWWR4haPhTc8TOGamtL3VVUtPp60NMbvxseZEe7p4eqQWNZnSopuIFpXR+vv7beZrVUdnn/5lxd/3Y2KETyDYYUEg4yXWd2+lBRtOani3Z4eik5VFYuOlegIQUGamIgsNg4EGLPzevWi/rQ0bq84Oxu9p100CgpYgNzZyY1+GhpiW4dWhKDl2tVF4VTWZbJiBM9gWAbBIONdDgddzQ8/pEW0c2ekBZeaSpGrqtKbZV+6RHGrr9f7Znz6KUVz+3bduklKiiFA0czJ4WvOzVF8wlu5LzTe4WG6qVLqjYfiobKS8b3e3vgFdqNi6vAMhjiZm2N8Lj2dgvH4Me+3locAkbVw0QgEeK0nT3i7vp6xvoEBXtcqfM+F7uoAACAASURBVF1dLPgFeDsjg88FtLg6HDzy8iisOTm8f3KSlmVfH69ZXc3XWcp+FQCv8dlnfG48S+nWi8Xq8IzgGQxx4PfTKlPZUI+HMbqF2LOHArNYQmJ0lMXB4+Osh6ut5X2trboJZ3Y28Itf0DqrqqKr3N/PxgR+P8ejxtTTw98BusBNTXxOvFnjaASDwPvvU/Cam5d/ndXGFB4bDAng9m26oHv20DVUFhZAUWtsZEJBbWwNMF7X2ckatoUW3qu1qTMzPP/iRYrUqVN0I2/dovAdP84434MHvB+gAKam0npTDQ/cbrq/qq37xAQfcziW38QzJQXYuzf5GwgYC89gWITWVq5aKCtj3Cwnh3Gt8nKKya1bFKiBAdbkAQz2W6dWVVX8ruD8PMta6ut5BIMU2MeP6c6WljJpAdC9fvZZCqLPxyxqRgazq6oT8+AgBXJiQrezKixM7hUTsTAWnsGwTNxuCp2ypoRgfE7Fx5T76PPR6qqrowANDUXucdHbS4troYaiivR0Fvu+/z5jhSUlFK+6Ogqdqo8DaMF99BGFbGyM57a0aDGzFkJ7PHSD79/nmKuqKJ6ffcYVGcm+X0U8GAvPYAjD7aY1NTZGIXG7KTgqTub3U0ii7WNRXEwhuXuXpR/z80w6KI4d4znhTE5ShAoKKJZvvx26ubf19TIzee2BAcb2UlMpzADwjW/E9x6npijCAwM6Y9vczOsm205kVkzSwmCIE6vQNTbSorLZKDx+P++/f58iVlWlLb9wiou1eLW08PcrV+ju2u0Ulqqq0Hja1at8fb+fAjY3B3zpSxSy7m6ec/Ag3WiXiy6vlexsWmnLKRtxu/UetABfo6yM1uJCK0Q2IkbwDIYFmJmhBdberu/LytKZz6VSXc0C3WjxsSdPKJgFBRQZa7umjz5iQiQjg2I2MxP63JQUusMPH0Ze9+jR2HvoLoWPP2amODubwqwKoVtaFm5AEAspF48TSsnPIjU1Mf31TAzPsGUZGqJVtn177Lozt1tnXHfu1N1CHj2KLnhqWZbqWGKlvJwxvZ4elm84nRROn0+7pzU1FJXcXAqgqsMDGEubnNS3m5r4Htxu3TcP4HtJTaX7WVu79Jq6WJw8yW7JHR28rdbPLtfKu3GDopmdrY/UVLrmaq9bl4u3d+/WLe9XEyN4hk2Lz8fJ299PoYpmBRUUUNhyc/VSq5kZlp4oKiqY9VQuaKzedQMDTGhMT/M1AYptbi5FdHyciY7t2ylgpaU8V8X4rGIH6LicFYeD44ynvm857N7Ncd28yZ/19cvP5h4+zM//888Xrll0OvlFE28ThZVgBM+wacnNpYu4dy+tJ2XJ2e3a4lAZV6eTk/Lq1dAtF53OyC0KF4qTqcX92dm6W3Jjo27QOTlJMbHbOcHT03mu202LzeGgQOzfz1jg+DhrAFXCwuGgSK+mMBQXs9Tlzh0K9759i/f5UzWEQ0MseSkt5XVcLr1MbmYmutU8M8Oi7vR0/q2se3wkGiN4hk1LVpa23l54gQkJZTWlpIQKW3+/tsqsRMvEWp/3pS/pFQxDQ3QJZ2cpYOrcaHE3n4+WY3o6LahAgLEygG7gvXsUjdFRWqeqM0pPD93phXrcJQKnk4XO3d3cYrKhgcKtMrjT03yPhYUUxsFB3R9QCf2tW7Rmt22jGE5N8brW+GRqKkXu/n2+n/v3aV23tKyOqJukhWFTc+kSs6JqbevkJCeoCqiHu5HReOYZ3S/Oyp07tHwaGvR9LhddVJVZVTgcFKmpKe3e5eWxPs7rZcDe2mbd66UA9/VRXFTWtLhYi+jgoM74LsftVJtxL3ZMTVGgAQra9DSFt6CAS9va2yny6vD5KOTW9cVOJwVMWcANDbzd1cXPIBjk7yUlFLySkuh7fCyGSVoYtjS5uRQ1JXjp6RSPR494226nFXL/Pt3Ivj5aMVlZOnNrtaLUyoW0NAb11YTt76fI+f0UrtOnKXJeLy3Ljg4KnbWfnctFAYnWaCAtjRncujqKyOAgX+v2bQplSQnFrrOT9+/ZE9n1eCEGBphUUJ9RWlrokZMTentujqs41AoPgOfY7Uz2APwSmZhguY619rCujuMEKNjl5bTyJif5eakkCUCx27cv+hdMIjAWnmFD4nJRcHw+Fusul+5utikvL+fvLhctrepqip/KjKo9WgFOYqdTLxP72tf0RB4YYObS79dtmxQlJZz8OTmRFpdaE2tFbct44gTHEg+BAIVzeFiv6PB4eJ3aWr5+vG7u8DAtRSn5vGhJHZ+Pf4fOTt3i6tIlvZKkrIzWqd/P69nt/KyrqvjlEQxyvBMT+ovEmrXNzubzBwdZrO31UtCPH1+eS2vq8AxJg5ScNMpFcjopBAcPRp7r83ES1tXFnuBqU+rxcVpjNTWRHYe9XnYhUezezfMePtSWlSItjcF8FbNrbeV56eksRrZSXMzXKiriJLe+zqlTK98jwuulW6ksrsJCikpqKj+vaKs5YjE4yPeRmso4WnExhbWjg3+LsjJawSpZo96LSrYoSku14AMcW1oax5aWRmFbyPX2emlp9/byy+PIkaWv+kiYSyuE+BGArwMYllLufnrfKwD+OYCRp6f9qZTyZ0sbomGroxbHt7dzQjQ10Uq4e1dPHoWUtNQePeK5aWm0bBReLydMTw+tjqoqCt7+/aHZ1YkJvd+sldlZTlTlgimyshi7unAhcvzhYgfQqhwZCb2vpoZW2dzc8gRPStYVdnXx2n6/Ti6oLPDo6NLr5tTGQP39tHjVUrOKisjdyh480Imf2lr+nRwOuqg9PXR7Af7d5udpSYd3cY5FWhobLFRWMj764IFO5CSKpcTw/jOAvwDwetj956SU/yFhIzJsOdrbGec6dCi0JGFighacYmyMFltqKlcXdHZygioXsrVVu3kOB+9XovPuu7wvGAx1X8OxFgJbM4qxau8WIi1Nv1ZDAyfv6Chd2xdeiF+Y5ucpJt3dtE5Vh+SZGbr76jqpqcsv6RCCQqO+CAC+Z5WsUFhXXNTVaZF1uTgeISiYKmHhdIb+DeOhpIRWsDXpkSjiFjwp5UUhRF3ih2DY6jQ2cnI9fswJ5XBwos3O0m2am9PFq8XFnFRXrujJmJHBCZeZSdfLbg89RkcpFidP0kWy2XgNdd1Y+zSEL++KRVMTrZjr13k7M5NjV2L30ktalIqKaDl99hkLcxWBAIVNNShISaHVJQSt2a4uWlO7dnHMPh9jf4laZaHYtYufcU8Prd9Ll3i/6hJjDR+88QZ/FhTw71ZaSpfY6eQXyzvv0HIvLY2+W9pCpKaubIPzWCwphvdU8N4Ic2n/KYApADcA/IGUcmKx65gYniEabW20Lo4c4YR++JDxH5UtVT3m0tP1sqqbN3Xb8nCCQYra7CwFsqVFl5B4PJyQACfxoUN6uVhLiw7GDw0xrhSv+FnZty+01MQ6ro8+ovD6fBS6QIBCn57Onx4PBXPbNoqFy6VXjQC6kcBqdjYJBCh61mRLTg7FqLpa75Gxf3/stbxuNz/XQ4d0AfJqktCkRRTBKwUwCkAC+DcAyqWU/yzGc18G8DIA1NTUHOqy5q0NhqcMDjJ+k5oaudGM00lrsLpaT/SuLk46a2JDLUi/ciUyvnb6NIVmbo6b5qg+cO+8Q4E5cCBy+8NgkK7ugwfRx5yWxh3BOjp4WKdUdTWXZ4WXjMzPs0RF7UURLfEyNkard3aWQt3TQ6unsJBxSrebY62ujox1JhqPh5bm9DRjhurzHxujICrrLpqbfu8erfDGxtUdI7DKghfvY+EYC8+wEJOTbHMeTmMjLR6rOHz+OcWjsZGTb3SUSQq7ncKQmUlxUDE4tcLC4aAQZWezHk2tnjhyJHocTJWlpKVRhPbt421rM87FqK2lOOXlLa1QeHycVm5ubmgDUZUoUOPasyf+BMFykJJJiexsur4KZY339/MzbWgIdbU7Ovj579mzemNTrGrhsRCiXEqp8lz/GMC9lVzPYAAoUjk5tIDS0+kOXb7MSd/eTsE4cIAWmXJ3e3vp4lVUcGLZ7bT+2toYN1PtjpSweTzRLba7d3l/WRkPJU6zs4wDnj5NF/PKFQbjy8spgAslQhRdXTwcDj6vvJxu3mLiV1AQ3R10OnWiYX4+8fE8K1IyASQl38OOHbq8x27nZ97QQCvwwgV+MdXW8gtGhQY2AnFbeEKIvwbwIoAiAEMA/vXT2/tBl7YTwL+wCGBMjIVniIXbzeC/cpHu3KHYtLRw0oR3ECkvZ1ZvcFBPKpU0KCvjNZS7NzHB61lrx9S5ClUzpwQsPZ1jcTophDt3cjLPzTF+mJFB0Skujoynzc1RtKemaLWOjGjrsqyM1uj8PK9fUUGLdG5u8Xo1gFaV2it2+3aK72rsUTE3R6Hv6eFnUVPD97uQuE5O8rOamdF1edevc93xamMKjw1Jg9vNYH5NDQuAFdZ9WfPydCbTiuqIYiUrSxf/KsvEWkgcTkaGThqkpdGCUVZNeTkD+IEA8JWvLF9cAgEKVX8/S2tsNl63o0OXYTz/fOxlYvPzbP8O8HNqbk58V2K1aXdXF78kKitprS01Tjg6SuFT/e++9rXV3zjIrKU1JA0ZGbSeenqA997TS5lSU+k2+Xx6uVc4SuxOnmTMq61N78wVrVlnWhrLSdRKhZQUWiApKRS5x48pLtu3c8IPDNBimZ+naJaXL+892mwUqexsuun79jEOqMTOZgvtxqJwufhloKitpcgnkpkZbc05nRTUw4eX37WkqIjJnIEBimcwuPr97hbDCJ5hw6DKHUpLWdA6MKBXNhQURK5dDae0lFZIQQHd3OvXtbuqLDSF10tRVMvCgkHgzTf5mMPBoHxFRaRFUl/PjO1yBU9RVUXrSdXuNTdTgK3rVINBWoLWspDSUiZWwsfl9bLw2uGgS6yOxdbVBoP8XLq76XpXVTELm8gaOBWv3AgYwdsCKMtoKesr1xK/X++d6nLp1kLWBfWLiR3AGN5bbwFf/WrkrmLZ2czkdnXRggGY+LDZKDrWFQUeD+Nzt29TgCsrWcIC0E1baQnI7CwtWCvqvQrB13/4kAKmSElhAXOs2JnHw/dVXc3PSrVqEkKLn9NJy9C6d0R/P93OXbtWv65vI2AEbwswNsZJvX07g/jrzfy8XgHR28t4UUEBXagjRyhC1sLgpaJiXIC24B4/5mHl6tXQ2zYblzTduaMTDCqzCtD9LC3lNQMBCnV6OoWmrCw+a+ryZVp2ipwcWo0VFfw7jY9rcbfZ6FK6XLT6FkoUOBw8p74+VNC8Xi1+LhctyCNHdPlKURHfy1YQO8AI3pYhP5+TeGZG70q/HkSrsVNbIQ4PUwTDe6mpglZr8iIaDQ2ha2F37qSbKAQn/oULkWtDAcYO5+Y48Xt6QrO4ioMH9fIoj4diOT9PwRod5X1qT4xoqB3LrKiC4f5+iqwVaz3g1NTiZS9paXz9ixf5mW3bxs9V9bPLy9OZ4GvXmBSqrKRQZmfzfyMRO59tdIzgbRHS0ljPdvs28MknnFDrsedoW5teOqUIBGjdWIt4bTZapNnZvD9WUt/aXFKJ3fPP872pvV4PHqTVZBW7o0dp8W3fznPVmtFAIPq+CzdvMsFhs4UuMxsZYajg4UMtrlZ8PoqQtfQlP1+XnszNha7MACI3646VyAinqYkxuM8/B95/n3HB8DWspaWM0V27xszpjh06vmkEz7ApUHEhKTn5Hz3iBD96dOV92ZaK2hAnEKD4zsxQfDMyKFguF90yFVsKp7mZlorVbevr43tTWyEqCzItjZNYrUjIyNDPn5qihVZSQuupuJjiFS5YDQ20FC9ejN0xRXVkefJEL5+am6O4KzHes4fxs1hlGT4fP4/BwcjlcOHxyIVwOLTA373L19+9O7TMJSeH2dPr1/medu6k+AeDm9+tNYK3BSgspKV04QKtgO3bGcC+fJmTo6hoedeNZ6PlWNhsFL/2dorvwYMUrL4+CojVhWtupvBEm4zz89pya2oKLUxWrYvu3aMQHTyoyyL6+ihKb71FMamtpfCqrKmiuJjPqazUbeEVe/dSPDs6+Jjq6OLxUGQDgfj3ZrDbGcccHOR1pqf5d0pJ4bGY4E1N8f3m5fH8ggJaut3dtHTLyihsyqpPT2cHlNu3mQVOS+PYV6u1+kbBFB5vIaam6Hq53XRlHA66as3NusdaPMzMMJY2MUExLS7mRFmutTgywkkXDFK8vvxlTvBAYOEd791uTuaMjNAsruqqAoTGAAG9ROrBg9D9JQoL+R5iNQgA9Drc/PzQxEM4zz7LDGtKCkU9ni8Fv59fSMePc6yqEeeBA/x561boCgwheDidPL+vTzfiVH+T4mL+TRZblfH4MQW7uprx3WTGrLQwRDA2xont9dKycLli78xlRUq6bW1ttKaqq3mt4WHt1pWU8CgsXNoWgjMzwMcf02ILj2FFw+2mZajcWIAT3+fjxM/NpZArEQ4EdFfllBRafBUV2noaHaUb3dsbej2rpZmWRqE4fZpWo9o1bGiIz7eeW1jI9xGvi9jWxoSOdQ/c3l4mOurrdW88KbWYq5q96mqWlajxjo7qjstS8rMsKmKW97PPeN7Ro5FhgZ6ele0fshEwKy0MIQSDnOCZmaFWymIV8FNTum2TdV8Ha1Gp281J1tlJiyQnRwtgtI1trDidXOnw1ltcGXHyJEXLOi6/n+IiBCfx4cMUlN5eupdC6C69quxifl7v7JWXx1hauAtvs1FQ1Odx8CDFOjxzWljIeJgQepew+/dZrtLcTDFRwp+VFb/Y+f0U4pMnQ++vqtL7vg4N0dpTe+3eukUx278/1DpPS6OQq/6AMzMc08AABTUrK/rforJy6U06kxFj4W0Rxsf5Ld7fr7tsVFRwgvT00KXJywu1igAK5OPHFIzm5ugNLaOhMq8jI7QAvV5OXnVkZ0dOuulpZhcXIyODY29uXlhEL17kJK+tZQxwMZf75k1+RkeO6PcAUGCs2xMeP65FUy35qqriuNRqB49Hb9W4GK2tOpsci85OhiMcDoq418u/4ULP2YoYl3YL43ZzAqu9VquqOEmsrowiEKCbNjXFDJ56/o0bFIo9e+KbvLGYm9OlJ2NjnLAFBbSS5ucpTNZ1sg4HrZeREd0CKhonTtCas1pTbjcFaniYt60t1heivZ2W0NQUP4/U1FCX2UpLC4XUZgN+/nOdOMnMZAzy5k2KXmkpv2wOH44UZ7W6ZHSUn7mymqPhdgMffMDfs7L4mS32nK2IcWm3GFIya9jTw4mbnc0YUH4+J6eUFB+bjW6bEJysNhutv5wcTvLUVN1+/OjRlYkdQOtHNQMAaM199FHsPmnKqjp4MLTZZDBIoVBJjsuX6VIfPsznfPABxaq5mff97GfcUvCrX42+96tasytEqBWnHktJoXVYWUkB7etjUe/du5GFxGp8//AP+vbYGF/XmtEeGaG1Fgzyb1NfT+HyeBjLy8/X7mUwyHirqjFU+89WVy8tRmogxsLbZEjJiej1cuKrmF347+p2enpoUawSwYYGTsS+Pk62Z59d2QTzeGgt7tpFy87jYWxKWWEAJ3l6Ot3nQIDu8+Ags4q5ubSEVNmHco1HRiieRUUswQAoUnv36i0aL1+moJw8GSl6y13CVlDAL45YO2vl5/O9qoyuzcZxPnnCL5IdO3RzAtXItKtLb2B99Civowqigch4nSES49JuIjo6OLGX2slCdQJ59tnQFuCDgwy0q8Lk7GwKprXAdudOBr49HmZyY8XMlNVSUMCJbj3P5WJ9m9pDVU3yx4/5nlTrJ0C7kVVVoW2TFHZ7aKnK+LiOteXksPZMbcAdDNL1fPSI15eSr69Eb2hI76Oq+MY39O9S8jrhe9QCfJ1gkONVriZAET5xQt/u7KQ1aEUIinL4l01eHv8+k5OhZTZ2O/Diiyu3srcCRvA2CVLSPUtN1V0vKiri6y92+TLF4+tf10IUCNCySUmhSzgxwUkMUKB6eiInerQ6LRUvm5mh1dLdzTGqIl+165XNpvdi7eig61ZZqZd29faGtkEqL9cZxbt3dclHZSVFRS2ytwrG8eMUXBXP6+ujOxgumjU12hoUgmKikiU1NfxSuXs3+rrbeGls1GU8ALO7tbX8nC9f1udlZtJFdjj4N1FW49gYhQ/g46oI2bAwRvA2ERcuMC6l9lcYH1+8G621FZFKBBQVcaL7/bS8Rkf5eEEBJ2AwyEOtVFgOal2mitEdPcpr3rtHa7G2liLg91OUhofptno8rAVTPdpUIiO8Jq6wkBZRezutoqIiXmN2lr9nZen6OmuBcfgYhdCbd6+Er3+dAnn5cmTzASFoPccax+HDFHi14baUtJZTU2lVt7XpYvHKytXvGpzMGMHbRFy5ootQAYpDdzeP9HRt9aWm6tZG955uq2R1G48e5aQZHta7zAO0JJxOWhJCUFAHBxfeAT4nRxfkqkNKHZuz2eieut26Y3BFBceiatbq6zmZ7XY2NgAoWqqsZTEOHdKbdw8OaustUezezTGq95WbS2FqbeVrK7f4+ecjO8EUFLBmMHxZmnpsoT5/e/fybwroYvFAQG+WbYjEZGk3EeEbzjgcdHW2baMwdHUxYSElJ4Y1QG91z65do1Vk3Y7wG9/g88bGmK0dGKD4NTRQoFT8aGyMk12JYzg+H5d7VVTQmlRu7cAAhXTHDl2wa7PxvrEx3aDU6eT7EILJioMHtXXncjHuF76sSzXnTBR5edqyzM3VonPpUmjpjBrXtm0Uv2hbS1r720V7bCGs5UOFhYzBDgzQ3VaNEBZaemeIxAheEpGZGd3aEkIvC1Nb9gGRXTeqq/UmzoGALhF58IClFHY7X6OigjVe0er1VHY0FpOTvPbBg9r1klK7o8rSqaqioGVmcuLfukWxVG2QRkboznk8tNrUzl/z89G7h6SmcrlbRgbPdbl4hJ+nWrc/eMAYn2L7dn4+6j0HAjyno4MJn4qKyP00vF4uvl8tollx5eX8ouruZjiioICJJVOPFx9G8JKIzMzISef3c4I/ekQx3LOHk0JK4I03+JzDh0OXE1VX0yL56KPQQHggQKtsJS3MnU6KkjXOFC3439sbum7VuuBf8cYb+veKCsavmpv5GioGefcur+P3M+6lqK+noDocFE+Xi89RZTejo4yrud10HdWm3Qqbja7srl0UvP5+/ZjqoqzGXVnJMagWTCrZsBSsff0WQ9XiVVUxKXLpkm7oaVgYE8PboPh8FLLxcVpt1gaWxcW0fFTzyMxMup7V1UsLaLe3hxbbpqVROJqbKRjLCY5LGbqvRFtbqBAthYICWjOTk3oPV4ClJrEKb10uik9fHxMXTU28zrvvUvhv3uR7VLuRDQ/rz9jn47n5+XxuZ2dk0ubFFymSnZ2hDUsBXq++nmU98Vh+QrCl/NWroU1FVRb5l34pvtrHqSmGKWprF+66vBUwSYskIZ51pJmZFIDiYrpuDsfSi4HVTlhdXZzoysppbNSJjmCQr7F///Jqvz78kFZmtEA9QKsyIyN0kqtxKMrKeHt+ngIwMKDd+fx8PpaVpdsghS8vU3urfv45z5ub45eC6rf33HOR8a+JCZ4fK7bW2MjP7plnGEu11vA5HAwrjI6GxlkXQ5UKvf12aAjihReWZmmrtvOqQcJWLWExgpck+P20hjIz+U/rdCZ2D8+ZGb1jV24uXajBQQrF3Bytmz17+PvjxzzPbmcnEGtyIx5UfzVFQwOzrhkZPMJFWu0DaxWamhoKlmq3XlRE91K5jcEgz+/upog1NoYuQVMEg3T7VJ87tfdDW1vodoQzM3pLSEVZGcdx7Zpei7trV6j1Vla28Obe4Vhdd7udVhxAAb99OzRkEd7LbzH8fiZwpGT2eCsuPTOCt4VR6067ujihqqs5gVWA+/JlunZFRZHdi2dmKEJ9fXxeS8vCu2aFs5RuyHNzFJVYdWpCMIZnt3MMqam0YLq6OM6dOyl4C1k1IyMs61GlHr29FMETJ/R7Vdlfh0NvhBMMMqM8MsLndnTwM925k2I5McHHJifj2zs3HOvKDiXKPh+P9HR+/k1NdJXV+wtvgWVFrQ4ZG6MlmpGxtPEkO0bwthjj4xSE/n5aP1lZnLxlZZGC8M47LHVYaFK43RSDysqlW3rx8u67FLPyclq34+N6T1bVZTglRQu11fVVjQNioTao7unh56BWLFi3TLTZKG5q7wuAcczpaX17McI3JrKWtixEZSU/f9WavqWFFrFiepoCNj/Pc8vLGYecmWHSYufOyC8iv5/nuFx0jaM1TdismDq8TYqqSVNCZLOFJiHsdi6Wj7Xu1u/X3YEXIjs7tAvvavDiixx/b2/oXrFf+Qotlr4+vdpAUV9P9zKWVef305Xt6KB1qNai+nz6/uxsxv/GxyMTK/39kdnW3Fx+3io+aLXmwnc6q6vj30KV45SWss+eWrd8546OlVozwPfv88jJoZDPzVHQRkZoAT94oEuH+voY2zxwgG7v8DCPyUkKbmPj1nRrFyJuC08I8SMAXwcwLKXc/fS+AgB/A6AOQCeAX5NSLtDtnxgLb+X4fFy0roqMVd+28I1oiovpaqnso4oLTk3RCnjxxbUeuSYQoHB3doZO+vA+dGq1Qmlp6O5b0VCJl9ZWuuo7dujWS+3ttNhKSykGKing9dLKfPZZlurEsyWiQiVgMjP5s7ubIlNREbq/bjSys7VQqgx8dTWtTmsDh6oqWn537+rPSW3WYxXd+nrdzj2R8d9kIpEW3n8G8BcAXrfc9z0A70kpfyCE+N7T23+8nIEalobdzpjSnTt0Wfx+vfkLoLcdzMjQNWqqP55qz7SUmNxSkZLiokpnVJfe+XldUhOOEHTZrOIH6NUK4+MU9GiTWUo+7+FDuvHHjoVmOQcGaNUVF0euPU5Npfh+9ll8YldRoYumHQ4dq/R4+Do+nxY7taH2o0e0yMPZuZNWY1cXLc/5eR51dfzbPXigPodIHwAAIABJREFUaxatyYvdu/kFNj+v45HNzVtX6OIl7n95KeVFIURd2N3fBPDi099fA/ABjOCtGapb8Pw88LWvceLdvMmJf+QIF8Xn5IRuZDM5yYC26uLxD//A5yayjEHtsTo/r7c5zMujMKelURisy8G2baMrpmJpg4MUnv37WRB8/TrFemSE5RslJRSdkhI+Z2iIQmez6eeEU1/P5/T28ktCbX5TXa3d+oV2IgNoOanNfvx+Wl3WxExPT2iR9cGD/FxVQ9DCQiYSOjvp7rrdfM6DB9qilZKuvPoyamri3+zixdDmCZcu6dKajAz9ORsWZklJi6eC94bFpXVJKfOe/i4ATKjbUZ77MoCXAaCmpuZQ12L2vmFB1BaF5eW6YWReHn+/eZMFrYvt4aB63y21v95i47p+nROwpSVUSFU87tEjupk7d+paOCm5vEwt9zp1isLQ0cEgflMTBdPrpSD29VEIMjL43J07l5ZUmZig2PT387rT07SabTYKY16eznKHl53s3s3XbG3ludu3a+FSVFbS2lMW41e+EpocUsmU3l5ac6qt1aNH/KIoL+d4lFUcK3ly+jRjfqo2MzNzay8zW7OkhZRSCiFiqqeU8lUArwKM4SXqdbcio6O0kFpaGN/Jy6NF9fzzev3l7OzigqfaFiWK/n7GmdS4rAwMcDLb7dGtMFUQ3NjIWJu1CLulRf+elsbSmpoaCsHUlG53tRTy82lFzc7qjiw+H4Wqqooi5/eH9vVTYeepKdYnVlXRTX377cjrK+E+dEjvIGYlLY3vq66OQtnTQ9E+fpzjUcmb4mIKuRK88HXEypUfH6flfPjw1ha8xVip4A0JIcqllANCiHIAw4s+w7AiBgZowakJB3CS9vXRYtixg/f19+uGAj4frSFr0iLRqB5uKjs6PKw3ge7o4CRsaYnc+1ZKune9vTrTbGWhjaHT05fXJsnjofgODtKFPnqUbm5vL61K65pW5fqrLi+TkzqWlpZGa6+uLnKVTHk5/0aLZUmdTorU+Dg/hydPmH2urORnNzPDcR47RutNteefm2OC5N13eZ2qKv7NV6t0aLOwUpf23wMYsyQtCqSU/2qx65gs7fIZHmaAe2KCVo1qC56RQesqJ4eZz5ISWm8jI3QzVaZSLapfrXIFNUmnp3lY6+nS0ymCWVk6E2vtx6dQm4JPTdHNzcigeKy0nszno6B2djJx0dQU+jnMzurSDtW4NCcnsiC6ro6xv9xcbVmqLSGtFBTo/oXxftH09+tN0tW2mD09tCStnVFmZ/nFNz/PspQnT2g119cv55PZPCSs8FgI8ddggqIIwBCAfw3g7wD8FwA1ALrAspRFa82N4CWG2VkKn8vFiRJeCwbQQqqspOC43ZwYAwOcsA0Nq1+J7/dzbe3u3RRgJYTj4xyHlZMnKUAzM/pwu3luaane2GapBIMUubY2CumOHQu/75kZClhDA8c/PBxaJmKlpoZjc7tp4apOKuFLztQ+wCUliyeIgkFabwUFOpscCPDLob1dZ+CbmjjG2VkmMb785dXNvCcDZqXFJkVKxvKURaI2uk5Pp2ioAlTFsWM61uXxcPJ0dXECNjWtrCXUYoyO0lJ78UWO7e7dyFZIDgffgwq6hx8ZGcvr3jI5ydhbdjYtpsViln4/a/EaGnTjT7UJEqAzyY8fL17CokINAEXR56MwlpdT/JYTe1QlL0VFOuFz9y4/1507l3atzYgRvE3K1BQtp23baE1Y3Sv1uNqIRrVLDwQ4iWtqdMv37m5afdnZFL6iotUZ7yefRLZaKirixM/MpJtrrWlLFCMjdBHVBkULISXFcX6e1pXbHbqNJMAvBtWpJi2NLnt+PuNwXV2htXbWvnkA/047dvBz6OnhF8+OHXSRl4vai9fsakbM0rJNSk6OXlJmbXPk9+tuJzt3UtyUiExM0LJ67z0+t66OWVG1/+zdu9qCKS9f2fh8Pk7skREe1hoyFaNbCwoL6aJ6vYt3Hbl8Wa9csDYS2LOHt3fsiHRHm5qY8Lh6VW/G8+GHfGx+nq+fmsqYoCpxsdsproWFy7es5+b4RdXTw7+hEbv4MBZeEjM7S/dLtWMfHORC88JCZvpiBfm9Xlp2XV2cfHV1Os43PKx3zNq9e/GlXFYCAZ2hnZqi5VNSwphTdjZfV3U6WUuuX6cQhZfKABSewUFdcgJQ9CsrKWbxlnh0djLzu3s3xce6FWNpKWOm1tdwOFhDtxRUS6zeXo65poautxE7jXFpNzmtrQz+Z2QwsL5nT/xuqZS0vjo7acFUVekJ1N3NCVxaSksxngxpezstmW3b6BJulMr/7m6+T2sThGCQ1lF7Oy0xv59CrKze5YjI5CTrI4uKdBw1WsurvDy68AcOLH7NqSltKY+P83nKOjeNASIxLu0mJhikaE1O6o2ul2I9qc1/SkpoLba3sy/dgQN6y8fHjxkjCu/JFo6UtBgPHIjep209KS1ljVswSCtUreDIy2MW2+vlZ1hfH3+zzWjk5jJWeOcOxUmtdc3Lo6CqlvAuV+zdxjye0FCAzUYLuaaGRdBG5FaGEbwkZWKCE0vFmFSB7HLJzKQ71tbGeJTTqVsw1dZy+VJXF4uH1b64VkZH6a5uNLEDaJ06naxbGx2lhWTtdgwkrmA3NZWWpHJxd+zQTUStdHbq9a9zc0yQjIxQ8IqK+Nj27WbVRKIxgpekqA2ypaTbEwjQQlvJJi5C8PmNjbz+kyeMCdbV0RKanOTE7eigOFqXrnV2rizbuNo0NHD8L7ywNl2Ay8r4t7l7N/Y516/r1vdOJ4ur8/ISn6k2aIzgJSnNzYytTU3RVfJ6Y7dIXyopKXRnKyooEp2dXDpVWspJ6XIBH3/MmN/27dpdO3gwMa+/GlRWrt02hjMz/LykpBWZm8u/Tfjfx+nUa3e36qY7a41JWhjiwutlkL+zk3GuhgaK3OAgJ3V2Nq0+A/F4dCY8M1N3QH7mGSaXBgeZ4PH7GZZobGToYKMkepIVk7QwJATVpWR+nqLn9bIBaV0dM8VbfQ1nOA4Hrd9t2yhsnZ166Z+ynoNBfmkMDDB22trKeGy07iqGxGAsPMOiqPq6J0/0agFT+7V05udjl/dIyVCBzba6y/w2O8bCMywbtYi9tZV1dc8+a7KGK2GhWkYhNmaGe7NhBM8QgXV/CKeTXUqWsuLCYNioGMEzhDA9zdUCfj8zsqvVTMBgWA+M4BkiyMlhMP2TT3i7oIArLUpKTI2YIbkxgmcIQa3xnJ/nXg05OVwmde2aPiczk9lHUz9mSDaM4BmiMjen14YqxsaYwBgZ4bK2O3eAb3xj/cZoMCwVI3iGqMzNRS7BKiwM3W0snk2rDYaNhHFIDFHp64u+obUV484akg3zL2uIQG2co/Z0MBg2C0bwDBG0tXGpmFnXadhsGMEzhKD2Zt3IrZ4MhuViBM8QwpMndGVNZ13DZsQIniGEkRHTrcOweTGCZ/gCn4/lKIttVm0wJCtG8Axf4HJFbuhtMGwmjOAZvmBsjOtmDYbNSkJWWgghOgG4AQQA+BdqwGfYmAQCbEd+8uR6j8RgWD0SubTslJRyNIHXM6whvb1sQGndicxg2GwYl9YAKbnFY2Pjeo/EYFhdEiV4EsDbQohPhRAvJ+iahjVieJgbSC+2dtZgSHYS5dI+K6XsE0KUAHhHCPFQSnnResJTIXwZAGpqahL0soZE0NNj9lMwbA0SYuFJKfue/hwG8N8AHI1yzqtSysNSysPFxcWJeFlDgti5kxnamzfZ2t1g2KysWPCEEE4hRLb6HcBXAdxb6XUNa0dWFvDcc2z39NFH7JZiMGxGEmHhlQK4JIS4A+AagDellD9PwHUNa4jNBuzfz70rLl9m1tZg2GysOIYnpXwCYF8CxmLYAFRXc7XFjRvsibd7t2n0adg8mH9lQwQ5OdzLwuejizszs94jMhgSgxE8Q1RSU4FDh4CaGuDSJWBgYL1HZDCsHLOJj2FB6utZsnL9OjA1xV55fj+tP7+fS9LUz8pKCqXBsFEx/56GEIJBJiy6uwGvl2KmBO3xYx5OJxuEpqbyCAaB0VGgtNQInmFjY/49DQC4vKy3Vwvajh3cplGJms1Gq+7aNT6+b59OZty7x/scjvV9DwbDYhjB2+JICfT3A48eUbD274+9xCwtDTh+HPj0Uwrf4cO0Ant7gVOn1nbcBsNyMIKXREgJeDyRG2Qv91oDAxS6tDRg716gqGjx59lswJEjwGefAZ98QpGsrwfS01c+JoNhtTGCl0R4PMCFC0wc7Ny5vHiZlMDgIIXOZmOd3VJX+glBl/bRI/bQO3Bg6eMwGNYDI3hJREYGxa6zk9bZ7t1AeXnoOYEA18WOjDCRYLNxj4rsbCYanjyhYDU3M8mwEnbsALZtM4XJhuTBCF6SEAwyW1pdDXR06NUQAAuFKyspcmpfiuJiWmGBANfGut20EHfsAMrKEjcuI3aGZMII3gZjbAx4+DC01s3nizxvaEj/PjXF4/BhCp3PB1y8yOSDOgwGgxG8DUduLtDQAExPM3s6N7fw+TU1FLSeHuDOHVp0wSAfy8zU53k8fMzpXL2xGwwbHSN4GwzVeXh4GJifp1taXU1Lb2aGsTsh6Nb6/XRje3qYjLBy+rSui5ubYwcUAHjhBVMcbNi6mH/9DUQwyKzn48dAVRV71Hm9zKrOzPCYneVPZcXFsgDfeYc/nU6eX1VFgXzwANizZ23ej8Gw0TCCt0GYnARu3WJyIS2NxbxdXRSszEz+zM0FKip4OyODYqiELS2NGdxAQG+5COhOJ9b+duXl8dXcGQybDSN4GwS/n0LU1KQFbqFiXo+HMTvFqVMUPcXOncAvfkH39aWX6PqqZWG3bwMvvmhcW8PWwxQVbBAKC1kyUlUFFBQsLHaDg8zC5uUBX/sakxyffaYf9/m4CqKykmUjHg+zt0Kwz115OeODBsNWwwheEhEIUNju32cJyo4dFLTmZmZ1e3u12BUXAwcPcq/Zzz5jzC8lhVZdSwstyomJ9X5HBsPaYgQvSfB4gA8/ZIzv+edpBSpSUri86/594MoVPrZrFx9raKA119Oji4RnZ3me1So0GLYCRvCShJQUoKSE4vX++0xw9PUxcQEwobFjB13j3btDn7d3L1s4qULma9eA7dtp9Y2Nrc/7MRjWAxO2XgMCAS76F0L3l1M95qy3U1NZcxetr1xamhay2VnW6fX300pzOimGJSUsRA4nP59u74MHwFtvMdNbX08xfPLErMQwbB2M4K0BNhvdzNRUupiqi7A6xseBtjYu8K+oWPx6mZlAXR2PYJCxuOFhWnEeD3vWZWeHPqekhIIHsKlAXx8TJA8fUkCtqzIMhs2KcWnXiJYWZleFoMVVXMyfY2NcF7t3L1dBLHXpV0oKLbTmZsb2du2iyxqehX34kD+/+lXg6FEK7LVrFOKOjsS8R4Nho2MEb41wONhK6d49uritrcAHH7D85NQpFg0LsfLXqaqiW3ztGq3H0VG6vUNDvD89nUL7/PNsDzUywv0r/P6Vv7bBsNExLu0aUlfHTOrPfsZauOef54qJRAidQkquonj0iPE61TrKbqeoKoSge11eTvH1+ZKzEFnKxH5+hs1NEv6LJycTExQ7RX4+f370Ea2r4mIehYUUp3gYHub2iV/7Gq/f38/DbmcWtqeH4ldXx/W5ubmR18jIoDu9EfF6GZNc6PB6WWvY3LzeozUkA0bwVpm5OSYLxsa43OvkSf7e18cNrufnuWLC72cn41u3aJUpAczLi7RgPB42+rx+nbfffZeJkYoK4NgxnbBoaAA+/pjn5+QkR7NOj4edXebm+J4cjtAjJ4cJGHU7JYWrTgoKVt7B2bD5MYK3iszOMk4XCHBytrbyUNhs/Oly8QB0w06/n7G3uTlaaXa77lxss+mkRGMj43Y5OZGvb7cDzzxDK7KyclXfasJwOGittbXRzW5o4PtbSKwPHmT35+eeS8wGR4bNi5DhjdSWcxEhfgnAeQA2AP+3lPIHC51/+PBheUP1J98kqKVb4ahuJbG4cIHLxKandSYVYDytspKWSzDIWFV2NpCVFdokIB5mZymSybCzmJQS4qlJOzYGtLZKuN0C9fWMQdps0T/ntjYmZk6cMDG9rYwQ4lMp5eFYj6/YwhNC2AD8RwCnAfQCuC6E+Hsp5ecrvfZa4HLRigrfDGepvPkmf7a06IkJLFxmonraRdN+v58tnrq6aPGdOLH8sSVLjd0rr7wCl8uFc+fOQQiBggKJn/zkLDIySvFrv/Yn+PnPeV5NDcMDVgFvbGRG+tEjPmYwRCMRLu1RAG1SyicAIIT4CYBvAtiwgufzMeD/+eeMGQGMlx07Fv386Wl2Gh4cZJyssTHynK9+lbGk+/d5VFUxWaCSE1ZGR7nQf2iIMbqKCgquVZikjOxivJmRUsLlcuH8+fMAgHPnzuHs2bM4f/48zpw5g/37JbZtE3j/fZbRdHfzs92zh8kYIbieWO3lsdStJw1bgxW7tEKIbwH4JSnl//D09m8BeEZK+XuxnrPaLq2qKVNlFk+eUIQcDi1w0SgtBQ4donU2OUmRGxjg9crKOLHu3GFxr99PdzMvLzSrOjMD3LypY3JOJy2Sqiq6olevUvBaWihyJuakkVJ+IXKKM2fOfGHxAfx73LvHv0dnp37utm0MAczPA59+yix1bW1yJGoMiWMxl3bNBE8I8TKAlwGgpqbmUJdqybsK3Lypl1gJwUmi9LWggBaaECzOBXQbdCtOJwWppISu59AQrcKZGYpUZSVLQSYneTs/n9fOz2ecbXSUMblYLZi+/vX4Y01+P89VbvJmRkqJFItKBYPBL8RO8cknFLyaGpbe3L3L+zMy+CWXlcW/i9p/d6XhCkPysOoxPAB9AKott6ue3heClPJVAK8CtPAS8LpRCQQoTtnZtASCQQpeRQVr1MbHeVhRsbTw67jdtCKys2n9HT7M546O6rqvYJDnjY9z1cKjR3xufj6fU1vLLRSfPAm9/tDQwvvDPnpEFzozk0K7f3/yZFqXi7LwrJw9ezbEwgPYROHyZf5N6+r4Gc/M8EtK1SOOj9Pau3GDf4tdu0Jbahm2JokQvOsAtgkh6kGh+w0A/yQB1/2CwUGKTHp66JGWpruMKKPA7ebt9HTt8mRkcBJE49gxisr8PC2FqSnerwpbn302NA6XkUHLrbWVk81up6ubm8sOJOq5ExORyYjKSrrV7e2soSsr4zWKimiNeL2MTalF/gDf47PPRi8a3kxY3VnlxlrdW6vopaXpfT+UtZ6VxesUFPBoaWGWt7+fX3gff8zPu7lZn2vYeqxY8KSUfiHE7wH4BViW8iMp5f1FnrYknjyJr2+bEDrQn5HBIHZrK5MO2dkUl4wM7cpmZNCSmpmhQJaWMqExNwf8yq9QfK5dY9ZPLcuy21k83NYGvPce3aqGhtCWTg4HRTQtTferAyimQ0M6ljg4yCMW9fWhve02M0II5OXlhcTszp07BwDIy8v7Quz6+2m519ToL5jo1+MXSVERP8PRUd1OayUZb0Nyk5A6vKWSqKSFlHQfZ2dpNamduerrKSqPH/NxgBZgRgaFaGQk9Do2GzN7TicPl4tBcBXb++gjJjNKSkKfNzenX7e8XG+F2N29sJDFy0svLb3mLtmx1uFZb3u92gI/cIDJIoMhnLWI4a0bqqFmTg4nwf79jHfl5TFofeAARS4jI3bRbTCo93qdmaFL7PGwBbrXSxcoIyNyW8PZWb5GaiqFUZVKAKENNQsLGT/66KPF3092Nq2Pri66zbdv87lbyQULT1AIITA4SLGrrOTfeCskbwyrQ1JbeKuJlMAbb+jlWdnZdI9dLgqdzaZjd7m5FNnUVIqeahJw6BDXxlqTIsePM8sYi5QUfX5JCV352lqWWcTbVGCz4PPRfZ2YoNCZpINhMTa1hbeaqHq9ykomLdQuX5OTnHyxSh1sNlp89fWsBwP4u9vNONL9+xQuKSN70BUXawvTbueEDwYZw+zt5Z4Vieqbt5YEg0wKqWJqtVQu/LDePz9PK7e8nI1RjVVnSARG8GKgYnDbt/Nnairdzb4+Wh0DA3wsENDucH8/Y0w1NTrJkprKiex0UvAAuqnWTbRVEmNyku65x6O3X8zN1aUwPT18PNksndZWxlMBfg5C8P0JEXmo+9VObOGhBINhJRjBi0IwyJIWIRjLAyhcRUUUNrudwtf3tNqwtJRxNlXS0t2ta+ZaWjjhCwtpGT5+rMXu1Ckdn7t6VV8XoIVz+TKv3dyst10MJxBgEmZoiCL77LMbL9GxYwdd/ocP+Znu3BmZADIY1gIjeFFQpSyAFjGAltaePSxvcTrpkt6/z3Pr6rQoDQ3p6v87d+iWTUzQQgNoGW7fHuqazs1RCNxuClxqql6/++GHvL4qUfF4+BqDgxxTairv27Nn44mdorSUIjc4yDXMra0UQmPBGdYSI3hhjPz/7Z1rbBzVFcf/f9uxHeInMY2dOjixDXGhAkOCxStNlPAIUSGlaqv0S2mpRGmFVD5UFQgJofKJtrRSpbaoL7VFqNAXbUCgEEpKhSChwUpC0uDGhkSJsR2DSRbiFxuffjh3OpPN7O54PWuvs+cnrXZ25s7MmTMzZ8+999xzh/3qV0uLvqT796vn1NOjE96sXu0HP3d1+TOGVVWpR5fa3jQwoN8LF2ruttQqqYh6jpOT6rFdcIEaQy+ANpFQY9nTo4ZudFTlWrZMA2+7u7X619ycf/3MBFKNf2OjHxO3cKEavvlWTTfmJ2bwAvT1qfcBaDBxWZkaorExYPt27XVNJjWpZ3u7dkaUlamBWrdODeVLL+n+q1apcQwOY6utDU8WMDqqxvPoUfXkSPXYhof9T3m5ekmXXqrGgdQq7O7dwOWXZx6mVmiQWuVvatLOmO5u7QXv6Dj3R5QYc4uFpQRIJLTjIJlUT8v7TEzoi+nNLzsy4gc0e9XSsjL11OrrdV0i4ff0dnaqQerr07bB1lYNbPb29ap5p06pl3bihHp7DQ1+qvdUQzk0pHF6q1bN/2rh1JS2ex46pG19HR1nz6trGFGwsJRpUFMTniodUINWXa09sGNjatD27VPP7LrrtMzUlB/g/N57Gm/X2qpVT0Bf5OXLNTZveFg9xI8+0qqqR3W17lNTkz78pL9f2w67usLz7c03SkpUL8uWadD1a6+pEV+5cvrz9BpGJszgZWFyUgfze6MoDhzwh6g1NekLGZZ23AsSbm8/c31lpa7bufPsrC0bN2YPLj5yRKvO11xz7nlBpaVq7C+8UL3hXbu0J3u+xR0ahYsZvCyUlvpV0yVLgKuuivYCeplawoa01dersfQ6MwANro0ykuLoUTV082F+ilwpK1Pv7vjx7Gm0DGM6mMHLQmmpDi175hl9+d55R6ui2YzeihXp04wPDGiHg9ceCGjoycUXa7xepja5a6/VeLaXX9YwlEI1Bsmk9sQODvqTZXs6CwYaB397y+edp50abW06yqRQr9GYf5jBi0AyqW1qS5f6sXGdnZknxwlrD5yY0Ha/0VH1FF9/XUNZvJg/Lxxm7dr0bYklJRrv19ionRaDg9pzWyjjbE+e1Gr3u++q8W5u9sN0gsPIgr9TlxMJTbbQ2am6OnHCsqMY8WC9tFk4fVrbkqqqgMsu05eyr08/HR1qeKJULwcGNBi5vt5PRAD44RmLF2ssnzfSYv367A32yaS2Lw4NaWjKXE1c43lzR46oUW9p0Q6IYI7A6TIyoklSq6r8+EXDyEbe57TIhfli8Kam9KVbsEADe4PV2ERCjc0HH2ibU12dnzUlOLHP5KRWP712wIULtZcX0CSjqUHKp075sXy33hpNzuFh9fYaG9X7m62B9qneXEuLHzQd1/FfeUXvw403zsyAGsWBGbwcEdFsJyIa65baCyui2UzGx9Ub8Sb5SUdbm3pzFRUauLxhQ/pq6OnTOt1ge7sf0pKN2UqllA9vLhOJhP5hkDrxkWFkwuLwckBEPaZkUmPdxsbU2/ACkxMJ9dy8uTMqK/W7rU2Xy8t137ExNTxLlvjHHh9XDyxTm1tpqQ5fe/VVfxa0bHheqDdD26JFZ8qWulxRMT1P7PRpDY7u71dvbuXKeL25dNTUAGvWaJted7d27OzYEd37NYwgZvBCOHBAR1bU1QHbtp05Uc/y5doGV1mZ25ynwQSfmaiu1iQCb7yh43ijVlObmrSXN5FQD2x8XL9PnfKXJybUYJeXaxW7svLsb2/Zu8Zjx7RzZd262a9a1tWpLg4e9Ns4DSMXzOCFUFbm56KrrY03A0kUgzc+riM1RkY0e8rg4PSmaFyw4Mw082F4STbHxvR83nci4S+Pj6suKiu17BVXzF07Wnu7Gt0PP9TgZMPIBTN4IXR05O/YJSX+OFyPiQk1cO+/r98ff+zH47W352dOC9L35NIhop7g+Lh+z1UvsMeaNdpUUGZPrZEj9ujMMiUlakgGBnwjNz6uBm7xYr/KXAjDqUi/va8QKC21VO/GzDCDNwfU1OjY3IYG7eGsrS0MA2cY5zpm8OaAtWvnWgLDKE5y6Gc0DMOYn5jBMwyjaDCDZxhG0WAGzzCMomFGBo/kQyT7Se5xn01xCWYYhhE3cfTS/lhEfhjDcQzDMPKKVWkNwyga4jB495DcR/I3JM+BObQMwzhXyWrwSL5Icn/IZzOAnwNoA9AJYADAoxmOcxfJ3SR3Dw8Px3YBhmEYUYktASjJ5QCeFZFPZys7HxKAGoYx/8iWAHSmvbRNgZ+3A9g/k+MZhmHkkxl5eCQfh1ZnBcBhAN8QkYGMO+l+wwCOpKxuAPBezsLEg8lgMpgM81uGFhFJm8hsTua0CIPk7kyuqMlgMpgMJsNMj2NhKYZhFA1m8AzDKBoKyeD9Yq4FgMngYTIoJoNyzshQMG14hmEY+aaQPDzDMIy8MqsGj+QXSR4gOUVydcq2+0n2kuwheXOa/VeQ3OXKPUXFjARxAAAFG0lEQVRyRhMoumN4mV4Ok9yTptxhkm+6crFGTEfNOENyo9NNL8n7YpbhByTfckMEnyZZl6Zc7HrIdl0kK9x96nX3fnkc5w0cfxnJHST/457Nb4eUWUfyZOAePRinDO4cGXVL5SdOD/tIXhnz+VcGrm8PyQTJe1PKxK4HNyT1OMn9gXXnk9xO8pD7Dh2ySvIOV+YQyTsinVBEZu0D4FMAVgL4J4DVgfWXANgLoALACgB9AEpD9v8jgC1u+TEA34xRtkcBPJhm22EADXnSyUMAvpOlTKnTSSuAcqerS2KU4SYAZW75EQCPzIYeolwXgG8BeMwtbwHwVMz6bwJwpVuuBvDfEBnWQUcRxX7/o+oWwCYAzwMggKsB7MqjLKUABqExbXnVA4DPALgSwP7Auu8DuM8t3xf2PAI4H8Db7rveLddnO9+sengiclBEekI2bQbwpIhMiMg7AHoBdAULkCSA9QD+7Fb9DsDn4pDLHftLAP4Qx/HyQBeAXhF5W0QmATwJ1VksiMgLIpJ0P3cCaI7r2FmIcl2bofca0Hu/wd2vWBCRARHpdssfAjgIYBrTns8amwH8XpSdAOpSRjrFyQYAfSKSOjggdkTkXwBGUlYH73m69/xmANtFZEREPgCwHcDGbOcrlDa8TwI4Gvh9DGc/dIsBnAi8mGFlcmUNgCEROZRmuwB4geQbJO+K6ZxBsmWciaKfuLgT6kmEEbceolzX/8u4e38S+izEjqsuXwFgV8jma0juJfk8yUvzcPpsup3NZ2AL0v/551sPALBE/BFbgwCWhJTJSR+xT9NI8kUAjSGbHhCRv8d9vpjk+TIye3fXi0g/yU8A2E7yLffPNGMZoBlnHoY+8A9Dq9Z3Rj12HDJ4eiD5AIAkgCfSHGZGeihkSFYB+AuAe0UkkbK5G1q9+8i1sf4NwEUxi1AQunXt4rcBuD9k82zo4QxEREjGFkoSu8ETkRty2K0fwLLA72a3Lsj7UDe+zP3Th5WZtjwkywB8HsCqDMfod9/HST4NrYpFfhij6oTkLwE8G7Ipin5mJAPJrwL4LIAN4hpJQo4xIz2EEOW6vDLH3L2qhT4LsUFyAdTYPSEif03dHjSAIvIcyZ+RbBCR2MaXRtDtjJ+BiNwCoFtEhkJkzLseHEMkm0RkwFXbj4eU6Ye2KXo0Q/sGMlIoVdqtALa4HrkV0H+N14MF3Eu4A8AX3Ko7AMThMd4A4C0RORa2keQiktXeMrSBP7asMIyWcebfAC6i9lKXQ6scW2OUYSOA7wK4TURG05TJhx6iXNdW6L0G9N6/lM4g54JrD/w1gIMi8qM0ZRq9dkOSXdD3JjajG1G3WwF8xfXWXg3gpERI1JEDaWs7+dZDgOA9T/eebwNwE8l61wx0k1uXmTh7XCL0yNwOrWtPABgCsC2w7QFoj10PgFsC658DsNQtt0INYS+APwGoiEGm3wK4O2XdUgDPBc65130OQKuAcerkcQBvAtjnbnRTqgzu9yZoD2JfHmTohbaH7HGfx1JlyJcewq4LwPegxhcAKt297nX3vjXma78e2pywL3D9mwDc7T0XAO5x17wX2qlzbcwyhOo2RQYC+KnT05sIRDnEKMciqAGrDazLqx6gxnUAwMfONnwd2kb7DwCHALwI4HxXdjWAXwX2vdM9F70AvhblfDbSwjCMoqFQqrSGYRh5xwyeYRhFgxk8wzCKBjN4hmEUDWbwDMMoGszgGYZRNJjBMwyjaDCDZxhG0fA/wkyrGKSpIFEAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_81_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "xy = np.array([0.0,0.0]) #開始地点\n", - "T = 1000 #stepの数\n", - "\n", - "random.seed(1234) ## 同じ答えにしたければ乱数を固定しておきましょう\n", - "trajectory = []\n", - "for step in range(T):\n", - " xy += np.array([ random.uniform(-1,1), random.uniform(-1,1)])\n", - " trajectory += [ [ xy[0],xy[1]] ]\n", - "trajectory= np.array(trajectory).T \n", - "\n", - "fig = plt.figure(figsize=(5,5))\n", - "plt.scatter(0,0,marker=\"x\",color=\"black\",label=\"t=0\")\n", - "plt.scatter(xy[0],xy[1],marker=\"x\",color=\"red\",label=\"t=\"+str(T))\n", - "plt.plot(trajectory[0],trajectory[1],color=\"blue\",linewidth=1,alpha=0.3)\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ATuATFNHk6zp" - }, - "source": [ - "今の場合、x方向y方向いずれも、 \n", - "特別な方向への指向はなく完全にランダムですが、 \n", - "獲得関数や勾配といったものが定義されるとさらなる応用が考えられます。\n", - "\n", - "たとえば、地図に載っていない山があったと仮定して、 \n", - "その山の頂上にたどり着くためには、上のようなランダムウォークでは効率が悪いので、 \n", - "山の傾斜の情報(勾配)を利用しながらランダムな大きさで進む、といった方法が思いつきます。 \n", - "\n", - "大きさをランダムにすることで、局所的な峠に捕まることを避けることもできるかもしれません(場合によりけり).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iy5xGzVUm88o" - }, - "source": [ - "**$\\clubsuit$進んだ注**\n", - "\n", - "ランダムウォークやその派生の方法は、 \n", - "最適化や確率分布からのサンプリングが必要な状況下でよく用いられ、 \n", - "統計学、自然科学、機械学習など様々な分野で活躍しています。 \n", - "c.f. サンプリング,マルコフ連鎖モンテカルロ法" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter5_Probability.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability.txt deleted file mode 100644 index 656e3809..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability.txt +++ /dev/null @@ -1,292 +0,0 @@ -#ライブラリをインポートしておきましょう -import random -import numpy as np -from matplotlib import pyplot as plt - -random.randint(1,6) - -a = [random.randint(1,6) for i in range(100)] -print(a) - -# サンプルの数を指定し、それぞれのサイコロの出目を用意して入れ子のリストにする -ps = [1,2,3,4,5,6] -Ns = [10**p for p in ps ] -results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ] - -# ヒストグラムのビンの始点,終点,ステップを定義 -tbin = np.arange(0.5,7.5,1) - -# 作図 (axを用いて、一つのグラフに6つの領域を用意して作画する) -# add_subplit(n,m,i)で、縦n個, 横m個の領域を用意した場合の i番目(列方向,行方向の順番にカウントする. a行b列の小領域は i = (a-1)*m + b) -fig = plt.figure(figsize=(20,5)) -axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1 ) ] #データの個数に応じて小領域の数を自動で変えたい場合は"(2,3"部分の工夫が必要。 -for i in range(len(axs)): - axs[i].set_xlabel("Roll") - axs[i].set_ylabel("Count") - axs[i].set_title("$n=10^"+str(ps[i])+"$") #$$で囲むとlatex表記を用いることができる - axs[i].hist(results[i],bins=tbin,rwidth=0.5) #ヒストグラムを描画 -#グラフ間の縦の間隔hspaceをdefault値(0.3)から少し大きく調整 -plt.subplots_adjust(hspace=0.45) -plt.show() -plt.close() - -ps = [1,2,3,4,5,6] -Ns = [10**p for p in ps ] -results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ] -tbin = np.arange(0.5,7.5,1) -fig = plt.figure(figsize=(20,5)) -axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1) ] -for i in range(len(axs)): - axs[i].set_xlabel("Roll") - axs[i].set_ylabel("Count") - axs[i].set_title("$n=10^"+str(ps[i])+"$") - axs[i].hist(results[i],bins=tbin,rwidth=0.5,density=True) #density=Trueオプションを指定 - axs[i].plot([1,6],[1/6,1/6],color="gray",linestyle="dashed") #ココを追加した -plt.subplots_adjust(hspace=0.45) -plt.show() -plt.close() - - - -for i in range(5): - ## 引数(リスト)からランダムに要素を抽出する - a = random.choice([1,3,5,6]) - - ## 引数(range,0から99)からランダムに要素を抽出する - b = random.choice(range(100)) - - ## 引数(リスト)からランダムに要素を抽出する - c = random.choice(["日本","アメリカ","中国"]) - - print("a=>", a, "\tb=>", b, "\tc=>", c) - -import numpy as np -np.random.choice(range(100),10,replace=False) # replace = True/Falseで重複を認めるかどうかを指定できる - -import numpy as np -sorted_array = sorted( np.random.choice(range(100),10,replace=False) ) - -print(sorted_array) - -random.uniform(1,10) #[1,10)または[1,10]からの一様乱数 (randomモジュールでは半開区間/閉区間どちらになるかはroundingに依存するらしい) - -num = 10000 -xs = [ random.uniform(-1,1) for i in range(num)] -ys = [ random.uniform(-1,1) for i in range(num)] - -# 3つの領域に、散布図・xのヒストグラム・yのヒストグラムを描く -fig = plt.figure(figsize=(20,5)) -axs = [fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)] -axs[0].scatter(xs,ys,color="green",s=0.5,alpha=0.4) -axs[0].set_xlabel("x");axs[0].set_ylabel("y") -axs[1].set_xlabel("x");axs[1].set_ylabel("count") -axs[2].set_xlabel("y");axs[2].set_ylabel("count") -axs[1].hist(xs,bins=50,ec="w") #xのヒストグラム (binの数50はいい加減に選んだ) -axs[2].hist(ys,bins=50,ec="w") #yのヒストグラム 同じく -plt.show() -plt.close() - -import seaborn as sns -sns.jointplot(xs,ys,color="green",s=2,alpha=0.5) -plt.show() - -def Janken( ): - r = ["グー","チョキ","パー"] - return r[random.randint(0,2)] - -Janken() - -#あるいは、手を0,1,2として計算する関数とじゃんけんの手に反映させる部分を分けても良い - -def Janken(): - return random.randint(0,2) -RPS = ["グー","チョキ", "パー"] #integer to Rock-Paper-Scissors - -#5回手を表示させてみる -for i in range(5): - print(RPS[Janken()]) - -def pi_approx(p): - num = 10**p - x = np.random.rand(num) - y = np.random.rand(num) - return 4*np.sum(x*x+y*y < 1.0) / num - -pi_approx(5) - -np.random.seed(1234) -sum = [] -for p in range(1,9): #サンプル数を一桁ずつ増やす - tmp = pi_approx(p) - sum += [[10**p, np.log10(abs(tmp-np.pi))]] - print("p=",p, "\t", "pi_approx", tmp, "log10(abs(diff))", np.log10(abs(tmp-np.pi))) -sum = np.array(sum).T - -fig= plt.figure(figsize=(10,3)) -ax = fig.add_subplot(111) -ax.set_xlabel("Sample number") -ax.set_ylabel("Diff. in log10") -ax.set_xscale("log") -ax.plot(sum[0], sum[1],marker="o") -plt.show() -plt.close() - -import numpy as np -def pi_approx_mem(p): - num = 10**p - x = np.random.rand(num) - y = np.random.rand(num) - print("p="+str(p)+"のとき => ndarrayのサイズは~", (x.nbytes+y.nbytes) / 1000**3 , " GB程度") - return 4*np.sum(x*x+y*y < 1.0) / num - -pi_approx_mem(7) -pi_approx_mem(8) - -a = random.gauss(0.0, 1.0) #平均0.0,標準偏差1.0の正規分布からの乱数生成 - -Na = 100; Nb = 1000; Nc = 100000 -a = [ random.gauss(0.0, 1.0) for i in range(Na)] -b = [ random.gauss(0.0, 1.0) for i in range(Nb)] -c = [ random.gauss(0.0, 1.0) for i in range(Nc)] -c2 = [ random.normalvariate(0.0, 1.0) for i in range(Nc)] #一応normalvariateも使ってみる - -fig = plt.figure(figsize=(30,5)) -axs = [ fig.add_subplot(141),fig.add_subplot(142),fig.add_subplot(143),fig.add_subplot(144)] -axs[0].hist(a,bins=50,density=True,rwidth=0.8) -axs[1].hist(b,bins=50,density=True,rwidth=0.8) -axs[2].hist(c,bins=50,density=True,rwidth=0.8) -axs[3].hist(c2,bins=50,density=True,rwidth=0.8) -plt.show() -plt.close() - -#平均と分散も計算してみる -print("mu,sigma a:",np.mean(a), np.std(a)) -print("mu,sigma b:",np.mean(b), np.std(b)) -print("mu,sigma c:",np.mean(c), np.std(c)) -print("mu,sigma c:",np.mean(c2), np.std(c2)) - -[ random.randint(1,6) for i in range(10)] - -random.seed(1234) -[ random.randint(1,6) for i in range(10)] - -def gaussian(mu,sigma,xr): - return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2) - -xr = np.arange(-6.0,6.0,0.01) -yr1 = gaussian(0.0,1.0,xr); yr2 = gaussian(1.0,2.0,xr); yr3=gaussian(-2.0,0.5,xr) - -fig= plt.figure(figsize=(12,4)) -plt.plot(xr,yr1,label="mu=0.0, sigma=1.0") -plt.plot(xr,yr2,label="mu=1.0, sigma=2.0") -plt.plot(xr,yr3,label="mu=-2.0, sigma=0.5") -plt.plot([-7,7],[0,0],color="gray", linestyle="dotted") -plt.legend() -plt.show() -plt.close() - -def gaussian(mu,sigma,xr): - return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2) - -fig= plt.figure(figsize=(14,4)) -axs = [ fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)] -xr = np.arange(-5.0,5.0,0.01) -yr = gaussian(0.0,1.0,xr) -for i in range(3): - axs[i].plot(xr,yr,label="mu=0.0, sigma=1.0") - axs[i].plot([-4,4],[0,0],color="gray", linestyle="dotted") -x_sig1 = np.arange(-1.0,1.0,0.01) -x_sig2 = np.arange(-2.0,2.0,0.01) -x_sig3 = np.arange(-3.0,3.0,0.01) -axs[2].fill_between(x_sig3, 0.0*x_sig3, gaussian(0.0,1.0,x_sig3),color="green",alpha=0.9) -axs[1].fill_between(x_sig2, 0.0*x_sig2, gaussian(0.0,1.0,x_sig2),color="blue",alpha=0.9) -axs[0].fill_between(x_sig1, 0.0*x_sig1, gaussian(0.0,1.0,x_sig1),color="red",alpha=0.9) -plt.show() -plt.close() - -mu1 = [ 3.0, 2.0] -cov1 = [ [1.0, 0.7],[0.7,1.0]] -mu2 = [ -2.0, -0.5 ] -cov2 = [ [0.6, -0.3],[-0.3,1.0]] -numS = 50000 - -sample1 = np.random.multivariate_normal(mu1,cov1,numS) -sample2 = np.random.multivariate_normal(mu2,cov2,numS) - -x1, y1 = sample1.T -x2, y2 = sample2.T - -fig= plt.figure(figsize=(10,5)) -ax = fig.add_subplot(111) -ax.set_xlabel("x");ax.set_ylabel("y") -ax.scatter(x1,y1, s=5,color="green", alpha=0.2,label="sample 1") -ax.scatter(x2,y2, s=5,color="orange", alpha=0.2,label="sample 2") -ax.scatter(mu1[0], mu1[1], marker="x", color="blue", alpha=0.9,label="mean 1") -ax.scatter(mu2[0], mu2[1], marker="x", color="red", alpha=0.9,label="mean 2") -ax.legend() -plt.show() -plt.close() - -import matplotlib.cm as cm - -fig = plt.figure(figsize=(12,4)) -ax1 = fig.add_subplot(121) -H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet) -ax1.scatter(mu1[0],mu1[1],s=80,color="w",marker="x") -ax1.set_title('sample1') -ax1.set_xlabel('x'); ax1.set_ylabel('y') -plt.colorbar(H1[3],ax=ax1) - -ax2 = fig.add_subplot(122) -H2 = ax2.hist2d(x2,y2, bins=40, cmap=cm.jet) -ax2.scatter(mu2[0],mu2[1],s=80,color="w",marker="x") -ax2.set_title('sample2') -ax2.set_xlabel('x'); ax2.set_ylabel('y') -plt.colorbar(H2[3],ax=ax2) -plt.show() - -print("Sample1") -print("var(x)", np.var(x1), "var(y)", np.var(y1), "cov(x,y)", np.cov(x1,y1)[0,1]) - -print("Sample2") -print("var(x)", np.var(x2), "var(y)", np.var(y2), "cov(x,y)", np.cov(x2,y2)[0,1]) - -nmesh= 1024 -x = np.linspace(-6, 6, nmesh) -y = np.linspace(-6, 6, nmesh) -X, Y = np.meshgrid(x, y) - -Z = np.exp( -0.5 * ( (X-mu1[0])* cov1[0][0] * (X-mu1[0]) + (Y-mu1[1])*cov1[1][1]* (Y-mu1[1]) - 2 * (X-mu1[0])*cov1[0][1]* (Y-mu1[1]) )) / ( 2*np.pi * np.sqrt(np.linalg.det(cov1)) ) -Z2 = np.exp( -0.5 * ( (X-mu2[0])* cov2[0][0] * (X-mu2[0]) + (Y-mu2[1])*cov2[1][1]* (Y-mu2[1]) - 2 * (X-mu2[0])*cov2[0][1]* (Y-mu2[1]) )) / ( 2*np.pi * np.sqrt(np.linalg.det(cov2) )) - -from mpl_toolkits.mplot3d import axes3d -fig = plt.figure(figsize = (20, 6)) -axL = fig.add_subplot(121, projection="3d") -axR = fig.add_subplot(122, projection="3d") - -axL.set_xlabel("x"); axL.set_ylabel("y"); axL.set_zlabel("f(x,y)");axL.view_init(azim=-110,elev=60) -axR.set_xlabel("x"); axR.set_ylabel("y"); axR.set_zlabel("f(x,y)");axR.view_init(azim=-110,elev=60) - -axL.plot_surface(X,Y, Z, cmap = cm.jet) -axR.plot_surface(X,Y, Z2, cmap = cm.jet) - -plt.show() - -import numpy as np -xy = np.array([0.0,0.0]) #開始地点 -T = 1000 #stepの数 - -random.seed(1234) ## 同じ答えにしたければ乱数を固定しておきましょう -trajectory = [] -for step in range(T): - xy += np.array([ random.uniform(-1,1), random.uniform(-1,1)]) - trajectory += [ [ xy[0],xy[1]] ] -trajectory= np.array(trajectory).T - -fig = plt.figure(figsize=(5,5)) -plt.scatter(0,0,marker="x",color="black",label="t=0") -plt.scatter(xy[0],xy[1],marker="x",color="red",label="t="+str(T)) -plt.plot(trajectory[0],trajectory[1],color="blue",linewidth=1,alpha=0.3) -plt.legend() -plt.show() -plt.close() diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_11_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_11_0.png deleted file mode 100644 index c37ae696..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_11_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_14_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_14_0.png deleted file mode 100644 index d7c3a2b2..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_14_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_30_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_30_0.png deleted file mode 100644 index 39c41ca6..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_30_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_32_1.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_32_1.png deleted file mode 100644 index db441164..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_32_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_43_1.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_43_1.png deleted file mode 100644 index a6b39389..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_43_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_50_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_50_0.png deleted file mode 100644 index 3c4d26b4..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_50_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_59_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_59_0.png deleted file mode 100644 index d8e66115..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_59_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_62_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_62_0.png deleted file mode 100644 index 9e021c3f..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_62_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_68_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_68_0.png deleted file mode 100644 index 9f5844a6..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_68_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_70_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_70_0.png deleted file mode 100644 index c52cdba0..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_70_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_76_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_76_0.png deleted file mode 100644 index 269030aa..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_76_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_81_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_81_0.png deleted file mode 100644 index f4618175..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter5_Probability_81_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter6_Regression.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter6_Regression.ipynb deleted file mode 100644 index e056f8dd..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter6_Regression.ipynb +++ /dev/null @@ -1,830 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Vysbhio4dRuQ" - }, - "source": [ - "# 相関・回帰分析\n", - "\n", - "*相関関係は因果関係を含意しない (Correlation does not imply causation)*\n", - "\n", - "[この章の目的]\n", - "初歩的な相関分析と回帰分析がPythonで出来るようになる。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mm1vDuyut69e" - }, - "source": [ - "今回使用するライブラリをインポートしておきましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "vd39tZH4t6UZ" - }, - "outputs": [], - "source": [ - "from matplotlib import pyplot as plt \n", - "!pip install japanize-matplotlib \n", - "import japanize_matplotlib \n", - "import numpy as np " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7k8KOlPCIuaF" - }, - "source": [ - "## 相関分析 (復習)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Fm6stZb_IwM1" - }, - "source": [ - "1年次の必修科目、データサイエンス入門でも相関分析を学習したことかと思います。\n", - "\n", - "解析したいデータが2種類だけなら、プログラムを使うご利益はそれほど感じられないが\n", - "「多くのデータ間の相関関係を系統的に調べたい」「複数年度に渡るデータを解析したい」 \n", - "あるいは「その結果をベクタ画像として出力したい」となると \n", - "これまで学習してきた繰り返し操作や作図が役に立つ。\n", - "\n", - "\n", - "まずは簡単な例から初めよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HPWcU6_ylxcu" - }, - "outputs": [], - "source": [ - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aK_TO1InnQ2x" - }, - "source": [ - "上に示したのは、2017年の宇都宮市における月別の平均気温$x$と \n", - "世帯ごとのアイスクリーム・シャーベットの平均消費金額$y$で、 \n", - "散布図にすると↓こんな感じ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "T0uJSEOQmE47" - }, - "outputs": [], - "source": [ - "plt.figure(figsize=(6,6)) \n", - "plt.title(\"宇都宮市\") \n", - "plt.xlabel(\"平均気温 (℃)\")\n", - "plt.ylabel(\"世帯あたりのアイスクリム・シャーベットの消費金額 (円)\")\n", - "plt.scatter(x,y)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "DHPfNSoymCxz" - }, - "source": [ - "「平均気温とアイスの消費には相関がありそう」という直感の通り、正の相関があることが見て取れる。\n", - "\n", - "では\"どれほどの\"相関を持つかを表す量として相関係数を算出してみよう。 \n", - "相関係数$r$は以下のように定義され\n", - "$r = \\frac{ \\sum^n_i (x_i-\\bar{x})(y_i-\\bar{y})}{ \\sqrt{\\sum^n_i (x_i-\\bar{x})^2 \\sum^n_i (y_i-\\bar{y})^2} }$ \n", - "$\\bar{x},\\bar{y}$はそれぞれ$x,y$の平均値で$\\bar{x} = \\frac{1}{n} \\sum^n_i x_i $, $\\bar{y} = \\frac{1}{n} \\sum^n_i y_i $ \n", - "と書ける。\n", - "\n", - "下付き添字$i$は$x$の$i$番目の要素であることを表し(つまり$x$をn次元ベクトルとみなしたときの第$i$成分が$x_i$) \n", - "今考えているデータの場合、$\\sum$の和記号は$i$は1から12までの値を取り、対応する値を足し上げることを意味する。 \n", - "(\"$i$の和が1から12までを走る\"と言ったりもする)\n", - "\n", - "$r$は必ず-1から1までの値を取り1.0(-1.0)に近づくにつれ強い正(負)の相関を示す。 \n", - "(強いというのは曖昧な表現で絶対的な線引がある訳では無いことに注意)\n", - ">$|r|\\leq1$は、コーシーシュワルツの不等式を用いるか \n", - "上の$r$の定義と$n$次元ベクトル同士の内積の定義とを見比べると示せる(暇があればやってみよう)。 \n", - "\n", - "次に`x`と`y`、2つのリストを引数に持ち、相関係数$r$を返す関数を作成してみよう。\n", - "\n", - "にらめっこするために式を再掲:\n", - "$r= \\frac{ \\sum^n_i (x_i-\\bar{x})(y_i-\\bar{y})}{ \\sqrt{\\sum^n_i (x_i-\\bar{x})^2 \\sum^n_i (y_i-\\bar{y})^2} }$ " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Sqr9IFdzoT7A" - }, - "outputs": [], - "source": [ - "### ライブラリを一切使わない方法\n", - "def cor_coeff(x,y):\n", - " # xとyの長さが違う場合や長さ0の場合はエラーを出す\n", - " if len(x) != len(y) or len(x)==len(y)==0:\n", - " raise ValueError(\"Error: x&y must satisfy len(x) = len(y) != 0\")\n", - " n = len(x) \n", - " ## 平均を計算\n", - " xbar = sum(x)/n; ybar = sum(y)/n \n", - "\n", - " ##分子(numerator)の和を計算 (初期値を0に)\n", - " s_n = 0.0 \n", - " for i in range(n):\n", - " s_n += (x[i]-xbar)*(y[i]-ybar)\n", - "\n", - " ##分母(denominator)の計算 (和を先に計算して積を取り、最後にsquare rootをとる)\n", - " s_x = 0.0; s_y = 0.0\n", - " for i in range(n):\n", - " s_x += (x[i]-xbar)**2 \n", - " s_y += (y[i]-ybar)**2\n", - " s_d = (s_x * s_y)**0.5\n", - " # 一行で書くなら\n", - " #s_d = ( sum([(x[i]-xbar)**2 for i in range(n)]) * sum([(y[i]-ybar)**2 for i in range(n)]) )**0.5\n", - "\n", - " return s_n/s_d # 分子/分母の値を返す\n", - "\n", - "cor_coeff(x,y)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9IM8Ebhopmre" - }, - "source": [ - "という風に、$r$が約0.83で、非常に強い正の相関を示すことが分かる。\n", - "\n", - "少しずつ自作関数に慣れてきたら、上のように意図しない引数を入れたときの挙動なども設定すると \n", - "より**安全な**コードを作る事ができる。\n", - "\n", - "`x`と`y`の長さが違う場合(上の`raise`文でエラーが生じさせる場合)を試しておこう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cor_coeff(x,y[1:])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "相関係数の計算は、numpyライブラリを使うと実はもう少しシンプルに書ける" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mG4Fie5epxP_" - }, - "outputs": [], - "source": [ - "def cor_coeff_np(x,y):\n", - " xbar = np.mean(x); ybar=np.mean(y)\n", - " return np.dot(x - xbar,y-ybar) / np.sqrt( np.dot(x-xbar,x-xbar) * np.dot(y-ybar,y-ybar) ) \n", - "\n", - "cor_coeff_np(x,y) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "criDMWxYrJUo" - }, - "source": [ - "とすると、関数自体は3行で書けてしまう。\n", - "さらに$\\bar{x},\\bar{y}$をいちいち定義しないように書き換えれば、関数の中身自体は一行でかけてしまいます。\n", - "\n", - "上のコードを少し補足しておくと...分子や分母に現れる \n", - "$\\sum^n_i (x_i-\\bar{x})(y_i-\\bar{y})$や$\\sum^n_i (x_i-\\bar{x})^2 $といった項は、 \n", - "$i$番目の成分に$x_i-\\bar{x}$を持つベクトル$\\tilde{x}$と \n", - "$i$番目の成分に$y_i-\\bar{y}$を持つベクトル$\\tilde{y}$を定義しておくと、 \n", - "$\\tilde{x}\\cdot\\tilde{y}$, $\\tilde{x}\\cdot\\tilde{x}$, $\\tilde{y}\\cdot\\tilde{y}$といったように\n", - "ベクトルの内積の形でいずれも表すことができる。\n", - "\n", - "`numpy`にはブロードキャスト機能(Numpyのノートを参照)やベクトル積を計算する関数```dot```が備わっているので、 \n", - "それらを活用することで相関係数の計算を短く実装することができた。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eDhJHIZesEMQ" - }, - "source": [ - "更に言うと実は`numpy`には相関係数を計算する関数```corrcoef()```が予め用意されていて\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DZ8RiA7ssJUB" - }, - "outputs": [], - "source": [ - "print(np.corrcoef(x,y))\n", - "print(\"r(x,y)=\", np.corrcoef(x,y)[0,1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n9KiMZZJsNZU" - }, - "source": [ - "を使えば \n", - "[ xとxの相関(=1.0), xとyの相関; \n", - "yとxの相関, yとyの相関(=1.0)] \n", - "といった2行2列の相関行列を取得することが出来る。 \n", - "確かに上の相関行列の[0,1]成分は、さっき計算した$r$の値と一致している。\n", - "\n", - "「初めからそれを教えろ!」と思うかもしれないが \n", - "**考えたい量を数式として定義してそれをプログラムに変換し、値が正しいことを確認する作業**は \n", - "**式(考え方)とプログラミング双方の理解を深める上で非常に重要**である " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-P5hjR0O3AOe" - }, - "source": [ - "### 相関分析と因果関係" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "NatgqwbX7Fua" - }, - "source": [ - "以下では、ある一つのグラフの例を見ながら、冒頭の \n", - "*相関関係は因果関係を含意しない (Correlation does not imply causation)* \n", - "に関して説明する。\n", - "\n", - "下の図は、2017年の家計調査・気候データから作成した散布図で、 \n", - "千葉市での平均気温と、しめじの消費支出の間の相関を示している。\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UM5GOH1q8X5_" - }, - "source": [ - "生産量と平均気温の間に、強い負の相関が見て取れますが、これはどうしてでしょう? \n", - "「寒い季節には鍋が食べたくなるから」と言われるとふむふむと感じる一方で \n", - "「そもそも生産量が冬に多く、市場に出回る量が多いから」と考えることもできる。 \n", - "したがって、このデータを見ただけでは、しめじが冬によく売れる理由までははっきりとは分からない。\n", - "\n", - "事実、しめじの旬はGoogle検索によると9月下旬から11月初旬とのことで、 \n", - "最も売れている時期(12月1月)とは少し時期にズレがあり、 \n", - "購買意欲は必ずしも\"旬\"によって決まっている訳ではなさそうな印象を受ける。\n", - "\n", - "気温と特定の野菜の購買意欲の真の関係を知りたければ、 \n", - "「その野菜はビニールハウスなどの生産設備の向上で年中、安定した味で生産ができる」 \n", - "「比較的新しい品種で〇〇といえば秋、のような固定観念がない」 \n", - "「季節ごとの生産量がほぼ同じ」 \n", - "など、他の条件が揃った状況下で比較しなければ確度の高い議論は難しい。\n", - "\n", - "このように、因果関係を紐解くことは、我々が思うほど容易ではなく、それ自体が一つの学問分野になっている。 \n", - "気になる方は、たとえば\"因果推論\"で調べてみよう。\n", - "\n", - "\n", - "[疑似相関をまとめたおもしろいサイト](https://www.tylervigen.com/spurious-correlations) \n", - "のように顕著な例ならば「あぁ疑似相関だな」と気がつくが \n", - "我々が普段見ている情報の中には、擬似相関であるとひろく認識されていない情報もあるはずだ。 \n", - "物事の因果関係を断定するような言説に対しては一歩引いて見る姿勢も重要なように思う。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KqrDeFtadahi" - }, - "source": [ - "## 回帰分析\n", - "\n", - "以下では自分が立てたモデルを表現する関数のことを*モデル関数*、 \n", - "モデル関数とデータとの齟齬を最小化するようにモデル関数の係数を決定することを**回帰**、 \n", - "そして回帰に基づく分析を指して**回帰分析**と呼ぶことにする。\n", - "\n", - "データとモデル間の齟齬を表現する方法はいくつかあるが、 \n", - "以下では最もポピュラーな誤差の二乗和を採用することとし、 \n", - "その最小化を考える(**最小二乗法**とも呼ぶ)。\n", - "データや関数、最小二乗法をもう少しきちんと定義しよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PNqDUVt2U6zV" - }, - "source": [ - "$D$個の点$\\{x_1,x_2,...,x_D\\}$でのyの値$\\{y_1,y_2,...,y_D\\}$が観測されているとき、 \n", - "最小二乗法とは、ある決められたモデル関数$f(x)$との齟齬$\\chi^2 = \\sum^D_{i=1} (y_i - f(x_i))^2$を \n", - "最小化するように関数$f$の係数を調整すること。\n", - "\n", - "$f$自体をどう決める/設計するかも重要な話題だが、この授業では深入りしない。 \n", - "たとえば回帰を行う関数として、ニューラルネットワークを採用する立場を採ることも可能。 \n", - "参照: [おまけのノートブック: ニューラルネットワークによる回帰](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_chapter_ArtificialNeuralNetwork.html)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HVBB0OmSdxxo" - }, - "source": [ - "以下では、$f(x)$として単純な多項式のみを考えることにする。 \n", - "まず回帰を学ぶために、適当なデータを生成しておく。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "6IUd5fJ3dZBw" - }, - "outputs": [], - "source": [ - "\"\"\"\n", - "0,1で定義された区間でsample_size(int)個の点で\n", - "sin関数に正規乱数に従う誤差を加えた値を返す関数。\n", - "- sample_size: データの数\n", - "- std: standard deviation (標準偏差σ)\n", - "\"\"\"\n", - "def create_toy_data(sample_size, std):\n", - " x = np.linspace(0, 1, sample_size)\n", - " t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape) \n", - " return x, t\n", - "\n", - "#私と皆さんで結果が変わらないよう乱数のseedを固定\n", - "#randomモジュールの関数を使うときはrandom.seedを、\n", - "#numpyのrandom関数を使うときはnp.random.seedを用いる\n", - "np.random.seed(1234) \n", - "\n", - "x,y = create_toy_data(10,1.e-1) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pThY_bnkd6Ny" - }, - "source": [ - "これをグラフにしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "fnJAT51od7hR" - }, - "outputs": [], - "source": [ - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(x, y, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Txmm0IZQeh4u" - }, - "source": [ - "こんな感じ。\n", - "\n", - "このデータを、$p$次元の多項式(p=0,1,2,...)を最適化することを考えてみよう。 \n", - "$p$次式($p$次元多項式)は、$p+1$個の係数, $a_0$から$a_p$を使って\n", - "$a_0 + a_1x + a_2x^2\\cdots +a_p x^p $と書くことが出来る。\n", - "\n", - "上で定義した最小二乗法は、この関数と各データ点の齟齬が二乗誤差を最小にする係数$a_0,a_1,...,a_p$を求めることに相当する。\n", - "\n", - "$p$次元の多項式の最適化は、実はnumpyにある関数```polyfit()```を利用すれば簡単に実行できる。 \n", - "他にもscikit-learnなどのライブラリもより高度な関数のフィッティングが可能。 \n", - "\n", - "\n", - "> $\\clubsuit$進んだ注: \n", - "多項式で回帰を行う場合には、実はパラメータの最適解は\"閉じた形\"で与えられる。 \n", - "この辺りのことは、[おまけのノートブック:ベイズ線形回帰](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_chapter_Bayesian_linear_regression.html)で詳しく書いています。 \n", - "なお\"閉じた形\"というのは、数学や物理をやっていると出てくる表現で、答えが具体的な形で書き下せる、程度の意味。 \n", - "たとえば 行列$A$、ベクトル$\\vec{x},\\vec{y}$,スカラー$\\lambda$について方程式$A\\vec{x}=\\lambda \\vec{y}$が成り立つとき、 \n", - "$A$の逆行列をどうやって求めるか(数値的にやるのか解析的に求めるのか)はさておき、 \n", - "$\\vec{x} = \\lambda A^{-1}\\vec{y}$と書き直せるので \n", - "「$\\vec{x}$は閉じた形で与えられる」と言ったりもする。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CyOJpVE7xw5p" - }, - "source": [ - "### polyfit/poly1d関数\n", - "\n", - "たとえば今のデータを3次式でフィットしたければ、以下のようにする。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zDkIX4Y2jFDc" - }, - "outputs": [], - "source": [ - "## 多項式をplotするためのxの値を準備(グラフをなめらかにするために、0から1までの間の500点を等間隔に取る)\n", - "xp = np.linspace(0, 1, 500) \n", - "\n", - "#多項式の次元pを決める. 今は3次式.\n", - "p=3 \n", - "\n", - "#polyfit関数で最適化し、返り値(係数)を取得する\n", - "coeff = np.polyfit(x, y, p) \n", - "\n", - "#最適化された係数と、1次元入力xに対する多項式を計算してくれるpoly1d関数を用いて描画点xpでのモデル関数の値を計算する。\n", - "yp = np.poly1d( coeff )(xp)\n", - "\n", - "print(\"係数\",coeff)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MAkx9OThjvX_" - }, - "source": [ - "```np.polyfit(x, y, p)```では、データのx,yの値と多項式の次元pを引数として与え、 \n", - "$p$次の多項式でデータ$(x,y)$をfitしなさい($p$次までの係数を関数がデータと整合するように\"最適化\"しなさい) \n", - "という指令を与えている.\n", - "\n", - "```np.poly1d( np.polyfit(x, y, p) )(xp)```では、 \n", - "fitしたp次元の係数をもつ多項式に```xp```(今は500点)を代入して、対応する```y```の値を返す。 \n", - "上のコードはこの返り値を`yp`という変数に格納している。\n", - "\n", - "最後に、調整(最適化)された3次式の係数を表示してみた。 \n", - "ちなみに、表示される係数は次数が高いところから$a_3,a_2,a_1,a_0$です(ややこしい...)。\n", - "\n", - "グラフを描いてみるとこんな感じ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4E-yeiTVB2ep" - }, - "outputs": [], - "source": [ - "#お絵かき\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(x, y, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.plot(xp, yp,label=\"p=3\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZXSQcr3HYbQa" - }, - "source": [ - "\n", - "さて、$p$次の多項式は$p-1$次の多項式を特別な場合として含むため、 \n", - "一般に$p$(多項式の次元)を増やせば、より複雑な関数を表現することができる。 \n", - "(2次式は3次式の$a_3=0$の場合ですよね?)\n", - "\n", - "$p$を複数変えながら比較した図を作ってみよう。 \n", - "その方法は、$p$に関するループを回すだけ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_GTTZ_cjhiV1" - }, - "outputs": [], - "source": [ - "ps = [0,1,3,6,9]\n", - "xp = np.linspace(0, 1, 500) \n", - "\n", - "# 各pでのfitの結果(xpでの対応する値のリスト)をysに入れ子のリストにしていく\n", - "ys = []\n", - "for p in ps:\n", - " ys += [np.poly1d(np.polyfit(x, y, p))(xp)]\n", - "\n", - "# データのは以後にある\"真の関数\"(本当は知り得ない)の値をxpの各点で計算\n", - "ytrue = np.sin(2*np.pi*xp) \n", - "\n", - "# お絵かき\n", - "fig = plt.figure(figsize=(12,5))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(x, y, facecolor=\"none\", edgecolor=\"b\", s=80, label=\"Data\")\n", - "for i in range(len(ps)):\n", - " ax.plot(xp, ys[i],label=\"p=\"+str(ps[i]),alpha=0.8)\n", - "ax.plot(xp,ytrue,linestyle=\"dotted\", label=\"True\",color=\"k\")\n", - "ax.legend(loc=\"upper right\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tlSJwJXif_ZK" - }, - "source": [ - "> 注: 今の場合、データはsin関数に適当なノイズを足して作られている。 \n", - "解析の手法を学ぶ際には、このように答えを知っている状態からはじめて、 \n", - "手法がうまくデータを説明しているかどうかを検証したりする。 \n", - "一見ズルっぽいが、理論を理解したりプログラムで確認するためには重要なプロセスとなる。 \n", - "\n", - "現実のデータ解析の状況では、背後にある\"真の関数\"が分かっていることは非常に稀で、 \n", - "「興味のあるデータが、人間がよく知っている単純な式(有限次元の多項式や指数関数)で \n", - "完全に表現できる道理はない」ということも抑えておくべき重要な点となる. \n", - "真の関数というのは一般に[神のみぞ知る]で、 \n", - "人間ができることは、出来るだけ尤もらしい関数を見つけ、 \n", - "その背後にあるメカニズム(の主要部分)を解明することと言える.\n", - "\n", - "一般に、関数をどんどん複雑なものにしていくにつれて、関数の表現力(表現できるデータの幅)は大きく拡がる。 \n", - "その一方で、用意した関数がデータに過度に適合するあまり、 \n", - "**未知の点での値の予測精度(汎化性能)が著しく損なわれている危険性**がある。 \n", - "このことを予言能力がない(データに**過適合**している) と言う。 \n", - "データの背後にあるメカニズムが何かを考えたり理論的な解析をして初めて、 \n", - "回帰に用いる関数の妥当性が検証できるという点に注意しよう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pbsTjw4FydNh" - }, - "source": [ - "### $\\clubsuit$ モデルの複雑さとモデル選択" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0eo-o3kjyhaQ" - }, - "source": [ - "上の多項式回帰では、たとえば9次式はデータをピッタリと再現している一方で \n", - "真の関数(sin関数)の振る舞いよりもむしろ、測定誤差のようなものにまで過適合してしまっている。\n", - "\n", - "\n", - "ここで過適合を防ぐためにデータとの整合性(二乗誤差)だけでなく \n", - "**モデルの複雑さ**も定量化し、なるべく複雑すぎない関数が選ばれるよう勘定することを考える。 \n", - "\n", - "ここではこのモデルの複雑さ$C$として多項式の係数の絶対値の2乗和: \n", - "$C= \\sum_i |a_i|^2$を採用することにしよう。 \n", - "\n", - "\n", - "さらに、\"モデルを選択するための基準$L$\"を \n", - "$L = $(二乗誤差) + $\\lambda$ log10(モデルの複雑さ$C$)で定量化し \n", - "この$L$が最小になる多項式を採用することにしよう。 \n", - "(この選択はあくまで例であることに注意)\n", - "\n", - "各次数での多項式のモデルの複雑さ$C$と二乗誤差、そしてモデル選択基準量$L$を表示してみると...\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mn3Bv6wkzMgT" - }, - "outputs": [], - "source": [ - "def complexity(r):\n", - " return np.sqrt(np.dot(r,r))\n", - "def my_criteria(comp,err,lam=1.0): #lambda=1.0\n", - " return err + lam * np.log10(comp)\n", - "\n", - "for p in ps:\n", - " coeff = np.polyfit(x, y, p)\n", - " diff = np.poly1d(np.polyfit(x, y, p))(x) - y\n", - " chi2 = np.dot(diff,diff)\n", - " comp = complexity(coeff)\n", - " print(\"p\",p, \"モデルの複雑さ(log10)→\", np.log10(comp),\n", - " \"二乗誤差\", chi2, \"モデル選択基準量\", my_criteria(comp,chi2))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hoNEkcu3049k" - }, - "source": [ - "9次式は、データをよく説明する一方で、非常に複雑なモデルになっている。 \n", - "\n", - "上記のモデル選択基準量$L$は$p=3$で最小となるため \n", - "この$L$の定義のもとでは3次式が選ばれることになる。\n", - "\n", - "このように実際のデータ分析や機械学習などのモデル選択では、 \n", - "既知のデータの記述能力(二乗誤差の最小化)とモデルの複雑さの低減(過適合を避ける)との \n", - "トレードオフでモデルを選択することが多い。\n", - "\n", - "上の$L$の定義中の$\\lambda$の大きさを変えることは \n", - "データとの整合性を高める/モデルの複雑さを抑える \n", - "のどちらを重視するかの\"度合い\"を決めることに相当する。 \n", - "($\\lambda$を適当に変えてみよう)\n", - "\n", - "参考→正則化でググってみよう.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P4Qe_dbjWN-j" - }, - "source": [ - "### (余談1) 100メートル走のタイム\n", - "\n", - "予言能力がないモデルとして、以下の例を考えてみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w4n_wIoM14c5" - }, - "outputs": [], - "source": [ - "y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ]\n", - "x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ]\n", - "\n", - "fig = plt.figure(figsize=(12,3))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"year\"); ax.set_ylabel(\"Mens 100m\")\n", - "ax.scatter(x,y,marker=\"o\",color=\"red\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wcJZySlf3Uq7" - }, - "source": [ - "図にしたのは、男子100mの世界記録の推移. \n", - "このデータに対して「$p=3$の多項式でフィットして予測する」という立場をとってみる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "OCUOlGTa3Q7B" - }, - "outputs": [], - "source": [ - "xp = np.arange(2020,2101,1)\n", - "fig = plt.figure(figsize=(12,6))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"year\"); ax.set_ylabel(\"Mens 100m\")\n", - "ax.set_xlim(1960,2100)\n", - "ax.set_ylim(0,12)\n", - "for p in [3]:\n", - " yp = np.poly1d(np.polyfit(x, y, p))(xp)\n", - " ax.plot(xp,yp,marker=\"x\",label=\"p=\"+str(p))\n", - "ax.scatter(x,y,marker=\"x\",color=\"red\") \n", - "ax.legend(loc=\"upper right\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Lebt_UTs4PAe" - }, - "source": [ - "2080年代には100m走のタイムがゼロになってしまうおかしな予測だと気がつく。 \n", - "\n", - "今の場合、我々はこのデータが100走の世界記録のタイムの推移であること、つまり\n", - "* 非増加関数であること\n", - "* 必ず正の値であること\n", - "\n", - "など、データが持つべき性質を予め知っているので、 \n", - "「このデータに対して単純な多項式回帰を当てはめるのはおかしい」 \n", - "と気がつくことが出来る。 \n", - "\n", - "**でも、他のデータではどうでしょう?**\n", - "\n", - "データを分析するためには、データの値だけをみて闇雲に分析するだけではダメで、 \n", - "データの背景やドメイン知識が不可欠である、という好例。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zL4J1CvJ9ciq" - }, - "source": [ - "### (余談2) 新型コロナウイルス感染症の陽性者数の推移に関して\n", - "\n", - "我々が現実世界で観測することのできる種々の\"値\"というのは、 \n", - "何らかの関数$f(x)$の、ある$x$での(実現)値と言える。 \n", - "\n", - "コロナウイルスの感染者数の推移は日付に対する関数として示される事が多い。 \n", - "日付に対して陽性者数の推移をプロットして変動の予想を立てることは簡単だが、 \n", - "コロナウイルスの感染者数の推移も単なる時間に対する1変数の関数であるはずなどがなく、 \n", - "たとえば検査数や我々の外出自粛や\"空気感\"、国・都道府県ごとの取り組み・政策、 \n", - "ウイルスの変異,その他様々な要素に左右される。\n", - "\n", - "我々人間がグラフにして理解できるのはたかだか3次元(3つの変数がある状況)まで。 \n", - "言い換えれば、人間は物事を理解するときに本来D次元(D>>3, Dは3よりずっと大きい)の変数で定義される関数を \n", - "3次元以下に射影した「影」をみて理解しようとする生き物だということは意識しておくべきだろう。\n", - "\n", - "緊急事態宣言が出され報道が加熱していた頃には、安易な感染者数予測で危険を煽ったり、 \n", - "あるいは逆に「心配する必要がない」などと極端な主張をする人が数多く現れた。 \n", - "また事態が収束したあとに「私のモデルはこんなに正しかった」という人も現れることだろう。 \n", - "だが、それは極めて高い蓋然性で偶然だろう。 \n", - "無限の数の関数を考えれば、データに適合するものが存在してもおかしくはない。 \n", - "何にでも言えることだが、モデルを立てて終わり、ではなく検証し続ける姿勢が重要。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter6_Regression.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.8.2 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.6" - }, - "vscode": { - "interpreter": { - "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter6_Regression.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter6_Regression.txt deleted file mode 100644 index d63894a6..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter6_Regression.txt +++ /dev/null @@ -1,164 +0,0 @@ -from matplotlib import pyplot as plt -!pip install japanize-matplotlib -import japanize_matplotlib -import numpy as np - -x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8] -y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502] - -plt.figure(figsize=(6,6)) -plt.title("宇都宮市") -plt.xlabel("平均気温 (℃)") -plt.ylabel("世帯あたりのアイスクリム・シャーベットの消費金額 (円)") -plt.scatter(x,y) -plt.show() -plt.close() - -### ライブラリを一切使わない方法 -def cor_coeff(x,y): - # xとyの長さが違う場合や長さ0の場合はエラーを出す - if len(x) != len(y) or len(x)==len(y)==0: - raise ValueError("Error: x&y must satisfy len(x) = len(y) != 0") - n = len(x) - ## 平均を計算 - xbar = sum(x)/n; ybar = sum(y)/n - - ##分子(numerator)の和を計算 (初期値を0に) - s_n = 0.0 - for i in range(n): - s_n += (x[i]-xbar)*(y[i]-ybar) - - ##分母(denominator)の計算 (和を先に計算して積を取り、最後にsquare rootをとる) - s_x = 0.0; s_y = 0.0 - for i in range(n): - s_x += (x[i]-xbar)**2 - s_y += (y[i]-ybar)**2 - s_d = (s_x * s_y)**0.5 - # 一行で書くなら - #s_d = ( sum([(x[i]-xbar)**2 for i in range(n)]) * sum([(y[i]-ybar)**2 for i in range(n)]) )**0.5 - - return s_n/s_d # 分子/分母の値を返す - -cor_coeff(x,y) - -cor_coeff(x,y[1:]) - -def cor_coeff_np(x,y): - xbar = np.mean(x); ybar=np.mean(y) - return np.dot(x - xbar,y-ybar) / np.sqrt( np.dot(x-xbar,x-xbar) * np.dot(y-ybar,y-ybar) ) - -cor_coeff_np(x,y) - -print(np.corrcoef(x,y)) -print("r(x,y)=", np.corrcoef(x,y)[0,1]) - -""" -0,1で定義された区間でsample_size(int)個の点で -sin関数に正規乱数に従う誤差を加えた値を返す関数。 -- sample_size: データの数 -- std: standard deviation (標準偏差σ) -""" -def create_toy_data(sample_size, std): - x = np.linspace(0, 1, sample_size) - t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape) - return x, t - -#私と皆さんで結果が変わらないよう乱数のseedを固定 -#randomモジュールの関数を使うときはrandom.seedを、 -#numpyのrandom関数を使うときはnp.random.seedを用いる -np.random.seed(1234) - -x,y = create_toy_data(10,1.e-1) - -fig = plt.figure(figsize=(10,4)) -ax = fig.add_subplot(111) -ax.set_xlabel("x"); ax.set_ylabel("y") -ax.scatter(x, y, facecolor="none", edgecolor="b", s=50, label="Data") -ax.legend() -plt.show() -plt.close() - -## 多項式をplotするためのxの値を準備(グラフをなめらかにするために、0から1までの間の500点を等間隔に取る) -xp = np.linspace(0, 1, 500) - -#多項式の次元pを決める. 今は3次式. -p=3 - -#polyfit関数で最適化し、返り値(係数)を取得する -coeff = np.polyfit(x, y, p) - -#最適化された係数と、1次元入力xに対する多項式を計算してくれるpoly1d関数を用いて描画点xpでのモデル関数の値を計算する。 -yp = np.poly1d( coeff )(xp) - -print("係数",coeff) - -#お絵かき -fig = plt.figure(figsize=(10,4)) -ax = fig.add_subplot(111) -ax.set_xlabel("x"); ax.set_ylabel("y") -ax.scatter(x, y, facecolor="none", edgecolor="b", s=50, label="Data") -ax.plot(xp, yp,label="p=3") -ax.legend() -plt.show() -plt.close() - -ps = [0,1,3,6,9] -xp = np.linspace(0, 1, 500) - -# 各pでのfitの結果(xpでの対応する値のリスト)をysに入れ子のリストにしていく -ys = [] -for p in ps: - ys += [np.poly1d(np.polyfit(x, y, p))(xp)] - -# データのは以後にある"真の関数"(本当は知り得ない)の値をxpの各点で計算 -ytrue = np.sin(2*np.pi*xp) - -# お絵かき -fig = plt.figure(figsize=(12,5)) -ax = fig.add_subplot(111) -ax.set_xlabel("x"); ax.set_ylabel("y") -ax.scatter(x, y, facecolor="none", edgecolor="b", s=80, label="Data") -for i in range(len(ps)): - ax.plot(xp, ys[i],label="p="+str(ps[i]),alpha=0.8) -ax.plot(xp,ytrue,linestyle="dotted", label="True",color="k") -ax.legend(loc="upper right") -plt.show() -plt.close() - -def complexity(r): - return np.sqrt(np.dot(r,r)) -def my_criteria(comp,err,lam=1.0): #lambda=1.0 - return err + lam * np.log10(comp) - -for p in ps: - coeff = np.polyfit(x, y, p) - diff = np.poly1d(np.polyfit(x, y, p))(x) - y - chi2 = np.dot(diff,diff) - comp = complexity(coeff) - print("p",p, "モデルの複雑さ(log10)→", np.log10(comp), - "二乗誤差", chi2, "モデル選択基準量", my_criteria(comp,chi2)) - - -y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ] -x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ] - -fig = plt.figure(figsize=(12,3)) -ax = fig.add_subplot(111) -ax.set_xlabel("year"); ax.set_ylabel("Mens 100m") -ax.scatter(x,y,marker="o",color="red") -plt.show() -plt.close() - -xp = np.arange(2020,2101,1) -fig = plt.figure(figsize=(12,6)) -ax = fig.add_subplot(111) -ax.set_xlabel("year"); ax.set_ylabel("Mens 100m") -ax.set_xlim(1960,2100) -ax.set_ylim(0,12) -for p in [3]: - yp = np.poly1d(np.polyfit(x, y, p))(xp) - ax.plot(xp,yp,marker="x",label="p="+str(p)) -ax.scatter(x,y,marker="x",color="red") -ax.legend(loc="upper right") -plt.show() -plt.close() diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization.ipynb deleted file mode 100644 index 0331dca2..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization.ipynb +++ /dev/null @@ -1,36431 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "W7cNmbENdx0R" - }, - "source": [ - "# 最適化問題の基礎\n", - "\n", - "\n", - "[この章の目的]\n", - "最適化問題のイメージを掴み、一次元の単峰的な関数の最小値を探索できるようになる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "r244nZzmtIZ0" - }, - "source": [ - "種々のデータ解析や学術的分野での計算をはじめ世の中の多くの問題は**最適化問題**に帰着される. \n", - "最適化問題とは、大雑把に言えば「ある量の最小値/最大値とそれを与える変数/パラメータの値を知ること」と言い換えられる. \n", - "\n", - "「人生も、何らかの目的関数$f(x)$(一般に$x$は多次元),たとえば幸福感(不幸感)を最大化(最小化)すること \n", - "という意味では、最適化問題を考えていることに相当する」というと少し大げさでしょうか。\n", - "\n", - "\n", - "この章では、最適化の基礎について学んでいくことにしよう。 \n", - "授業では実際に最適化で必要な数学的な操作をするコードを作ったりする訳ではないが \n", - "「ライブラリに入れてポンッ」ではなく、背後にあるモチベーションや概念を理解しておくことは \n", - "自分が興味のある問題を最適化問題に帰着させて解くためには不可欠だ。\n", - "\n", - "※高校で微分を勉強していないという方に向けて末尾に数学的準備の項を設けてあるのでチェックしてください. \n", - "(よく知っているという方もさっと目を通してみてください) \n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "loZUoKQD9uYU" - }, - "source": [ - "## 考えたい問題のイメージ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "L1wUnmJn9xoF" - }, - "source": [ - "以下で考えたい問題のポンチ絵\n", - "\n", - "\n", - "\n", - "\n", - "> あなたは変数$x$のある特定の点$t$での関数値$f(t)$を観測して知っている。 \n", - "> また、図中に**緑の線で示したような$f(x)$の振る舞いを予め知ることはできず \n", - "> 都度$x$を変えて調べることで初めて対応する$y$の値が分かる**状況を考えよう。 \n", - "> (そのことを点線で表現しています) \n", - "> このとき、$x$を変えながら$f(x)$が最小となる点を探すには一般にどうすればよいだろうか?\n", - "\n", - "\n", - "\n", - "変数が2次元(やそれ以上)の場合も、 \n", - "(実際上の難しさが違うとはいえ)基本的なアイデアは同様なので、 \n", - "以下では1次元の場合のみ扱うことにする.\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "---\n", - "\n", - "\n", - "\n", - "さて、1次元の場合に話を戻して...(図を再掲)\n", - "\n", - "\n", - "\n", - "$x$の値を$t$から更新していく方法として、色んな方法が考えられる。たとえば...\n", - "\n", - "1. ランダムに探索する(例:サイコロを振って、目が1-3なら$x$を適当な値だけ減らし出目が4-6なら$x$を増やしていく)\n", - "2. xを適当な区間に分割(10等分,100等分, etc.)その点で値を調べる\n", - "\n", - "などが考えられる。\n", - "\n", - "ただし$x$が薬品の濃度で$f(x)$が薬品の副作用だとしたとき(※)には、 \n", - "$x$を変えて$f(x)$の値を調べると言っても限界がある。\n", - "\n", - "※「1変数の関数であるはずがない」ことは一旦忘れることにして、イメージしやすいようこの例にした\n", - "\n", - "1.の方法では、**同じところを何度か行き来するので明らかに無駄が多い**し、 \n", - "2.の方法では**分割が少なすぎると十分な精度で最適解が見つからない** \n", - "**かといって分割が多すぎるとコストがかさむ**。\n", - "\n", - "したがって、**できるだけ少ない試行回数で最適な値を見つける効率のよい探索方法**が必要となる。 \n", - "そこで重要なのが、$x$を変えたときに関数$f(x)$がどのように変化するか、つまり微分(勾配)の情報である。\n", - "\n", - "**注意** \n", - "そもそも$f(x)$の式の形がわかっていて$f'(x)=0$となる(つまり極値を持つ)$x$の値が計算できるのなら \n", - "わざわざ$x$を更新するなどという手続きは必要ない。 \n", - "一般の問題では、関数やその勾配がそもそも書き下せなかったり \n", - "極値を与える$x$($f'(x)=0$の解)を解析的に解けなかったりする。 \n", - "そんなときは以下で考えるような、$x$を更新した探索が必要となる。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P1xRaNCVtMju" - }, - "source": [ - "## 最も基本的な最適化手法: 勾配法\n", - "\n", - "*以下では、微分の値のことを指して[勾配]と呼ぶことにする." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B-PHr6IztBRE" - }, - "source": [ - "さて、上の一次元の例をもっと簡略化することにして、単峰的(つまり1つしか谷が無い)場合を考えてみよう。\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hsMxEg_frbpf" - }, - "source": [ - "この様な場合、斜面の傾きに沿ってパラメータを更新していけばいずれ$f(x)$の最小値が見つかりそうだ。 \n", - "点$x=t$での勾配は(あえて)偏微分で書くと$\\frac{\\partial f(x)}{\\partial x}|_{x=t}$となる。\n", - "\n", - "$x$の値を更新する際に、更新前の値を$x_{old}$,更新後の値を$x_{new}$と書くことにすると、 \n", - "$x_{new} = x_{old} -\\eta \\frac{\\partial f(x)}{\\partial x}|_{x=x_{old}}$ と更新する。\n", - "\n", - ">注) $\\frac{\\partial f}{\\partial x}|_{x=t}$という表記に慣れていない方は、$f'(x=t)$のことと思って頂いて結構です\n", - "\n", - "\n", - "\n", - "微分(傾き)が正の場合は、$x$を正に増やすと$f(x)$の値が増える \n", - "微分(傾き)が負の場合は、$x$を正に増やすと$f(x)$の値が減る \n", - "ことから、微分の値の前にマイナスがついている理由も納得できるかと思います。\n", - "\n", - "最小化でなく最大化を考える場合はマイナス符号は不要で`+`となる。 \n", - "(上と同じように考えてみましょう)\n", - "\n", - "上では、$\\eta$という係数(正の値)を導入したが、 \n", - "これは**傾いてる方向にどれくらいのスケールで$x$を更新するか**をコントロールするパラメータで、 \n", - "機械学習などの分野で[学習率]と呼ばれるものに対応している。 \n", - "今の単峰的な関数の場合、学習率$\\eta$は適当な値をひとつ選べば十分。\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uIAvrbNCx0c1" - }, - "source": [ - "ただし、上の$\\eta$が大きすぎたり小さすぎたりすると、なかなか効率的に$f(x)$の最適解を見つけられないことがある。\n", - "\n", - "$\\eta$が大きすぎると$x$の更新幅が大きすぎて谷をまたいでしまい、なかなか谷の底に落ち込まない、といったことが起こりえる." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jVRqeo3Hxbvx" - }, - "source": [ - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ETitsG3AyLI_" - }, - "source": [ - "一方で$\\eta$が小さすぎると、なかなか更新が進まず \n", - "これまた効率の悪い探索となってしまう。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xiFm1Ew9q5jk" - }, - "source": [ - "これ以外にも、最初の図のように多峰的(山あり谷あり)な関数だと、 \n", - "$\\eta$が小さいと局所的な谷に捕まってしまってなかなか大局的な谷にたどり着けない、 \n", - "かといって$\\eta$が大きすぎるとあらぬ方向に飛んでいってしまう、といったことが起こりえる。\n", - "\n", - "その様な場合にはもう少し\"賢い\"最適化の手法を応用したり、更新の幅を徐々に減衰させるなどの工夫が必要になる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cl4tMpwvU2OS" - }, - "source": [ - "### $\\clubsuit$その他の最適化手法\n", - "\n", - "勾配法の他にもたくさん問題に応じて最適化手法が用いられる。 \n", - "最適化を詳しくやろうとするとそれだけで半期の授業じゃ足りないくらいなので \n", - "興味がある方は下記のキーワードなどで調べてみよう。\n", - "\n", - "たとえば機械学習では、勾配の情報だけでなくそれまでの更新の履歴を活用した各種の最適化手法がよく用いられる。 \n", - "c.f. AdaGrad, Adam, etc.\n", - "\n", - "また、物理学から着想を得た最適化手法もよく用いられる \n", - "c.f. 焼きなまし法(Simulated Annealing)\n", - "\n", - "最適化の手法自体に(広義の)機械学習の手法を使うこともあります \n", - "c.f. ベイズ最適化(授業でも紹介します)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cxTy2daMOgO5" - }, - "source": [ - "### $\\clubsuit$目的関数の選択\n", - "\n", - "最適化問題を解く場合に最小化/最大化したい関数のことを目的関数と呼ぶ。\n", - "\n", - "データ分析をする上で最もよく出てくる目的関数はカイ自乗(chi-square)で \n", - "例えば回帰の場合、予測$y_i$と観測値$f(x_i)$との間の二乗誤差 \n", - "$\\chi^2 = \\sum_i (y_i-f(x_i))^2$といったように定義される。 \n", - "(データの数で割ったり平方根を取った値を採用することもある)\n", - "\n", - "機械学習の文脈では「予測の誤差(損失)を最小化したい」というモチベーションがあり \n", - "目的関数を損失関数/Loss functionなどと言ったりもする。\n", - "\n", - "\n", - "目的関数の選び方は問題によってまちまちで \n", - "その選び方によって\"最適なモデル\"も変わり得る、ということに注意しておこう。\n", - "\n", - "たとえば、二乗誤差を考える際「正解が10のところを20と予測した場合」と \n", - "「正解が1000のところを1010と予測した場合」とで二乗誤差の値自体は同じだが、 \n", - "データの数値に対する誤差が占める割合に着目すれば \n", - "前者は2倍(100%)ずれていて、後者は1%しかずれていない。\n", - "\n", - "このようにスケールの異なる量が出てくる状況下では \n", - "目的関数(誤差関数, 損失関数, etc.)の定義で対数を取ったりする場合もある。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6r7qWIUQ27li" - }, - "source": [ - "### 簡単な例でのプログラム\n", - "\n", - "下に凸な二次関数の最小値を、勾配降下法で求めてみよう. もちろん二次関数の場合は、極値を与える$x$の値は、 \n", - "プログラムを書くまでもなく平方完成で求められるが、目的は数値計算になれるためなので気にしないことにする。\n", - "\n", - "$f(x)=5x^2 -4x + 3$とでもしましょう。 \n", - "$x$についての微分はもちろん$\\frac{df(x)}{dx}=10x -4$になる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "vQmG-t4Y3PAY" - }, - "outputs": [], - "source": [ - "def f(x):\n", - " return 5.0 * x**2 - 4.0 * x + 3.0\n", - "def dfdx(x):\n", - " return 10.0 * x -4.0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "--DHmqJp3f0E" - }, - "source": [ - "はじめに$x=3.0$にいるとして、$\\eta=0.2,0.05,0.01,0.001$の4通りについて \n", - "勾配降下法でパラメータを100回更新してみる。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "vgoJsFe73raV" - }, - "outputs": [], - "source": [ - "step = 100\n", - "etas = [0.2, 5.e-2, 1.e-2, 1.e-3]\n", - "x_and_f = [ [] for i in range(len(etas))]\n", - "for i in range(len(etas)): \n", - " x = 3.0 #初期値\n", - " x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納\n", - " for tstep in range(step): # step回だけ更新を繰り返す\n", - " x = x - etas[i] * dfdx(x) # xnew = xold - eta * dfdx(at xold)になっている\n", - " x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P-v28tFN9uAj" - }, - "source": [ - "アニメーションで見てみると... (少し実行に時間がかかります)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 456 - }, - "id": "NEu9t-eoCAhx", - "outputId": "0cebb7be-d68a-46cd-8a63-1df1e5ae431f" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - " \n", - "
\n", - " \n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "from matplotlib import animation, rc\n", - "rc('animation', html='jshtml')\n", - "cols = [\"blue\",\"green\",\"orange\",\"purple\"]\n", - "x = np.linspace(-6, 6, 100);y = f(x)\n", - "\n", - "fig_scatter = plt.figure(figsize=(10,5))\n", - "plt.xlim(-4,4);plt.ylim(0,40)\n", - "plt.plot(x,y)\n", - "plt_scatter = []\n", - "for nth in range(len(x_and_f[i])):\n", - " plot_obj = []\n", - " for i, eta in enumerate(etas): \n", - " if nth == 0 :\n", - " tl = \"eta=\"+str(eta)\n", - " else :\n", - " tl = \"\"\n", - " plot_obj += [plt.scatter(x_and_f[i][nth][0],x_and_f[i][nth][1], c=cols[i],label=tl,alpha=0.7)]\n", - " plt_scatter.append(plot_obj)\n", - "plt.legend()\n", - "plt.close()\n", - "\n", - "animation.ArtistAnimation(fig_scatter, plt_scatter, interval=100)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ol7eW9lZ3vYI" - }, - "source": [ - "グラフが描画できたら、再生ボタンを押してみてください\n", - "\n", - "青($\\eta=0.2$)は$\\eta$が大きすぎて、谷を行ったり来たりしていることが分かる。 \n", - "一方で紫($\\eta=0.001$)は小さすぎて、なかなか最適解にたどり着かない。\n", - "\n", - "一般に考えたい関数に関して適切な$\\eta$を前もって知ることはできず、 \n", - "関数*の振る舞いを見ながら試行錯誤することが必要になる。\n", - "\n", - "*最適化したい量(損失関数と呼ぶ)の振る舞い" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tKDQnoQb-J7E" - }, - "source": [ - "## 勾配の計算について\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RYsa56Bt4TFB" - }, - "source": [ - "### 解析的に微分が計算できる場合\n", - "\n", - "\n", - "たとえば以下の例のように \n", - "例1: $f(x)= \\sum^p_{i=0} a_i x^i$ (多項式) \n", - "例2: $f(x)= \\exp{(-ax^2+bx+c)}$ (指数関数) \n", - "例3: $f(x)= \\ln{x}$ (自然対数) \n", - "\n", - "* $f(x)$が閉じた形で書き下せる\n", - "* 興味のある区間(定義域)で微分形が計算でき、有限の値を持つ場合\n", - "\n", - "$x$をその微分した表式に代入することで勾配法の実装が可能となる. \n", - "([有限の値をもつ場合]と限定したのは、微分が発散してしまうとパラメータの更新には実用上意味をなさないため)\n", - "\n", - "ちなみに導関数$f'(x)=0$の解(根)が手で計算できるなら数値計算する必要がないし、 \n", - "根を求めたいだけなら、勾配法を使う理由は(アルゴリズムの理解等の目的を除いて)特に必要ない。\n", - "\n", - "※最も単純な求根アルゴリズムであるニュートン法についての説明についてはおまけのニュートン法の章に記載がある。\n", - "\n", - "大量の関数を考えて微分した表式が必要な場合は、 \n", - "いちいち関数の微分形を導出してコードにするのは面倒なので、 \n", - "SympyなどのモジュールやMathematicaなどのツールを使うのも一つの手です." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jzSF_CiSrcAp" - }, - "source": [ - "### 数値的に勾配を計算する場合\n", - "\n", - "$f(x)$が具体的な$x$の形で書き下せない場合もある.\n", - "\n", - "たとえば「$f(x)$が条件$x$のもとで行った何らかの測定結果である場合」などがこれにあてはまる。\n", - "\n", - "より具体的な例をあげるなら、\n", - "あなたはとある医療薬品の効果(数値で表現できると仮定)を調べる研究をしているとして、 \n", - "温度$x$を変えながら何回か測定して$f(x)$の値を得るような状況を想像してください.\n", - "\n", - "このような場合、関数$f(x)$の具体的な表式がわからないので、勾配だって$x$に対する式として書き下すことはできない。\n", - "\n", - "しかし、微分の定義に立ち返って考えてみると、 \n", - "$f(x=a)$の値と、$x=a$から微小量$\\delta$だけ動かした場所での値$f(a+\\delta)$ \n", - "がわかっていれば$f'(x=a)$を\"近似的に\"計算することができる。\n", - "\n", - "\n", - "ただし、$\\delta$があまり小さくないと下の絵のように正しく勾配が計算できない一方で、$x$を調整する精度に限界があったり、勾配を計算する際のコンピュータの数値精度には限りがありますので、文字通りの意味で\"無限に小さい\"の$\\delta$を考えることはできず、有限の小さな値で$\\delta$を表現することになり、それにより数値計算に大きな誤差が紛れ込む危険性もある。\n", - "\n", - "$x$を動かしたときの関数の変動度合いがものすごく大きい(たとえば係数がめちゃくちゃデカイ)と、数値微分の精度は$\\delta$に対する依存性が強くなってしまう。\n", - "\n", - "![](https://drive.google.com/uc?export=view&id=1lY6wW0T09Nh9LoNNYRKrykaKMMGOFkhV) \n", - "\n", - "\n", - "解析的に微分ができる関数を使って、数値微分の簡単な例を示しておこう。\n", - "\n", - "関数$f(x)= x^4 - 3x^3 + 2x - 1$を$x=5$で微分した値$f'(5)$は定義から277となるが、 \n", - "$x=5$から$\\epsilon$だけずらした点での値を使って数値微分してみると\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "xwH40zbqgdfG", - "outputId": "b71b0ea1-4690-45a7-a322-ee5262217fdd" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "eps\t 1.0e+00 \tf'(5)\t 400.0000000000000 \t diff. 2.1e+00\n", - "eps\t 1.0e-01 \tf'(5)\t 287.6709999999986 \t diff. 1.0e+00\n", - "eps\t 1.0e-02 \tf'(5)\t 278.0517009999926 \t diff. 2.2e-02\n", - "eps\t 1.0e-04 \tf'(5)\t 277.0105001695811 \t diff. -2.0e+00\n", - "eps\t 1.0e-05 \tf'(5)\t 277.0010499943965 \t diff. -3.0e+00\n", - "eps\t 1.0e-10 \tf'(5)\t 277.0002538454719 \t diff. -3.6e+00\n", - "eps\t 1.0e-15 \tf'(5)\t 227.3736754432320 \t diff. 1.7e+00\n" - ] - } - ], - "source": [ - "def f(x):\n", - " return x**4 - 3.0* x**3 + 2.0*x -1.0\n", - "def fp(x,eps):\n", - " return (f(x+eps)-f(x))/eps\n", - "x=5\n", - "exact_fp = 277 \n", - "for p in [0,-1,-2,-4,-5,-10,-15]:\n", - " eps = 10**p\n", - " print(\"eps\\t\",str(\"%5.1e\" % eps), \"\\tf'(\"+str(x)+\")\\t\", str(\"%18.13f\" % fp(x,eps) ),\n", - " \"\\t diff.\",str(\"%5.1e\" % np.log10(abs(fp(x,eps)-exact_fp))))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ebgIJHf8hoti" - }, - "source": [ - "となり, $\\epsilon=0.01$程度では微分の値の誤差が1, $\\epsilon=$ 1.e-5でも2桁程度の精度しかない。\n", - "\n", - "一番小さい$\\epsilon=$で精度が逆に悪くなっているのは、 \n", - "あまりに小さい$\\epsilon$だと$f(x+\\epsilon)-f(x)$という引き算部分で数値誤差が発生し、 \n", - "さらに分母の小さな$\\epsilon$によってそれが増幅されるため。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V2b6emNrSLR-" - }, - "source": [ - "進んだ注) \n", - "中心差分という、分割する区間を中央をxに揃える方式だと、精度が若干改善される。 \n", - "このことは、テイラー展開から示すことができる[→参考](https://ja.wikipedia.org/wiki/有限差分)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "s8sV0EIWR2Wk", - "outputId": "198486ec-5851-423c-bbad-f2f11e0ae153" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "分割する区間の中央をxに揃える方式\n", - "eps\t 1.0e+00 \tf'(5)\t 281.2500000000000 \t diff. 6.3e-01\n", - "eps\t 1.0e-01 \tf'(5)\t 277.0424999999986 \t diff. -1.4e+00\n", - "eps\t 1.0e-02 \tf'(5)\t 277.0004249999886 \t diff. -3.4e+00\n", - "eps\t 1.0e-04 \tf'(5)\t 277.0000000424488 \t diff. -7.4e+00\n", - "eps\t 1.0e-05 \tf'(5)\t 276.9999999827633 \t diff. -7.8e+00\n", - "eps\t 1.0e-10 \tf'(5)\t 276.9991169770947 \t diff. -3.1e+00\n", - "eps\t 1.0e-15 \tf'(5)\t 454.7473508864641 \t diff. 2.2e+00\n" - ] - } - ], - "source": [ - "def fp2(x,eps):\n", - " return (f(x+0.5*eps)-f(x-0.5*eps))/(eps)\n", - "\n", - "print(\"分割する区間の中央をxに揃える方式\")\n", - "for p in [0,-1,-2,-4,-5,-10,-15]:\n", - " eps = 10**p\n", - " print(\"eps\\t\", str(\"%5.1e\" % eps), \"\\tf'(\"+str(x)+\")\\t\",str(\"%18.13f\" % fp2(x,eps) ),\n", - " \"\\t diff.\",str(\"%5.1e\" % np.log10(abs(fp2(x,eps)-exact_fp))))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H0f2hs7yEEc0" - }, - "source": [ - "## $\\clubsuit$その他の話題" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bnKTRlQJEI55" - }, - "source": [ - "冒頭にも書いたとおり、我々の身の回りにある多くの問題は最適化問題に帰着される。\n", - "\n", - "もう少し細かいことをいうと、今回考えたような連続的な変数に対して \n", - "最大/最小値を探索することは連続最適化と呼ばれ \n", - "離散的な変数を含む離散最適化/組み合わせ最適化とは区別される。\n", - "\n", - "組合せ最適化には、巡回セールスマン問題やナップサック問題などが含まれる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BQcTACZvsYyW" - }, - "source": [ - "## 数学的準備: 微分\n", - "\n", - "ある直線$y=ax+b$を考えたとき、直線の傾き$a$に着目すれば、 \n", - "$x$の増加分に対して$y$がどれだけ変化するかを知ることができる。\n", - "\n", - "一方、実社会で扱うデータは、一般に直線よりも複雑な形をしていて、 \n", - "それを式で表現しようと思うと、様々な関数の形を考える必要がある。 \n", - "(たとえば何かの値の季節変動などをイメージしよう)\n", - "\n", - "そこで、直線の場合の[傾き]を、直線以外の関数に\"拡張\"しようと考えるのは \n", - "至って自然な発想といえる。それが**微分**の概念である.\n", - "\n", - "微分(積分)の歴史は古く、人類史のどの時点でアイデアが確立したとするかは諸説あるが \n", - "最も代表的なものは、17世紀にニュートンとライプニッツが確立したとする説で \n", - "ニュートンは微分の概念を独自に定式化し、天体の軌道などを予測するなどの偉大な功績を残した.\n", - "\n", - "\n", - "以下の内容は、全学向けの授業ということもあって \n", - "厳密性はかなり犠牲にして微分の概念を導入している \n", - "(もちろん、大学の数学の教科書に載っている関数の連続性や微分の厳密な定義は非常に重要です).\n", - "\n", - "時間があったら、ヨビノリたくみ氏の[「中学数学からはじめる微分積分」](https://youtu.be/4p1rwfXbCoY)を視聴していただけると、イメージがつくかと思います。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OJqvQeu8wOgC" - }, - "source": [ - "### 微分の基本的な考え方\n", - "\n", - "定義: ある変数$x$について関数$f(x)$が与えられているとき、 \n", - "関数$f(x)$の$x=a$での微分を \n", - "$f'(a)=\\lim_{\\delta \\to 0} \\frac{f(a+\\delta)-f(a)}{\\delta}$と定義する. \n", - "\n", - "ここで、$\\lim_{\\delta \\to 0}$は0に限りなく近い(無限小)の$\\delta$を考えることを意味する。 \n", - "\n", - "つまり、関数をある点からちょこっとだけ動かしたときに、 \n", - "関数の値が変動する度合いがどれくらいかを表しています。 \n", - "上の定義は「無限小の幅で関数を直線で近似して傾きを計算している」とも言いかえられるでしょう。\n", - "\n", - "**直線の例** \n", - "$f(x) = ax + b $の$x=x_1$での微分値は定義に当てはめて計算すると \n", - "$f'(x_1)= \\lim_{\\delta \\to 0} \\frac{f(x_1+\\delta)-f(x_1)}{\\delta}= \\lim_{\\delta \\to 0} \\frac{(a(x_1+\\delta)+b)-(ax_1+b)}{\\delta} = a $ となる。 \n", - "つまり微分の値は直線の傾きに対応していて、 \n", - "なおかつ微分の値はどこの場所($x$)で調べても定数$a$であることを意味している。\n", - "\n", - "\n", - "**二次関数(放物線)の例** \n", - "$f(x) = ax^2 + bx +c $\n", - "の$x=x_1$での微分は、定義にならって計算すると\n", - "$f'(x_1) = 2ax_1+b$となる(確かめてみよう) \n", - "一方で$f(x)$を平方完成すると$f(x)=a(x+\\frac{b}{2a})^2 -\\frac{b^2}{4a} +c$となり、 \n", - "$x=-b/(2a)$で傾きが0になる。 \n", - "つまりこの二次関数は$x=-b/(2a)$で極値($a>0$なら最小値, $a<0$なら最大値)を持つ。\n", - "\n", - "微分が0というのは関数の形がそこで谷や峠になっていることを意味する。 \n", - "実際上の例でも微分の値は$x_1=-b/(2a)$のとき、値は0になっている.\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EKvfZuwG02Wv" - }, - "source": [ - "a=2.0,b=4.0,c=5.0とでもして、図をかいてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Bh0Y1E-A03PF", - "outputId": "8f311de7-2ee8-41e8-cce8-d37addcb1027" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization_33_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "from matplotlib import pyplot as plt\n", - "import numpy as np\n", - "xr = np.arange(-5.0,3.0,0.01)\n", - "yr = 2.0 * xr**2 + 4.0 * xr + 5.0\n", - "fig = plt.figure(figsize=(10,2))\n", - "plt.plot(xr,yr)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1Vdm0nMX1oCX" - }, - "source": [ - "確かに$x=-b/(2a)=-1.0$のところで極値(最小値)となっている。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HUp-OGlj6wOg" - }, - "source": [ - "微分の値もplotしてみると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ZyvYWUVX6xo6", - "outputId": "f8e5746d-43d0-44ed-bd13-a8eb3bc8a433" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABH4AAAD4CAYAAACaEyHPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd1yW9f7H8deXjYoiIjgAceIWFRdq2day0jLTytWwcRqnc9rnNE7lyfaukw1v98jsaGlWlmWKCwe4942iKE6c7O/vD9BfdUxJgQtu3s/Hw4dc133f8q4ILj/39f5+jbUWERERERERERHxPF5OBxARERERERERkZKhwY+IiIiIiIiIiIfS4EdERERERERExENp8CMiIiIiIiIi4qE0+BERERERERER8VA+pfnJQkNDbXR0dGl+ShERESlFy5cv32+trel0DvktXYOJiIh4trNdg5Xq4Cc6OprExMTS/JQiIiJSiowxKU5nkP+lazARERHPdrZrMFW9REREREREREQ8lAY/IiIiIiIiIiIeSoMfEREREREREREPVapr/IiIiIhI2ZCTk0NqaiqZmZlORyl2AQEBRERE4Ovr63QUERERx2nwIyIiIlIBpaamEhQURHR0NMYYp+MUG2stBw4cIDU1lfr16zsdR0RExHHnrHoZYwKMMUuNMUnGmLXGmH8VnncZY7YbY1YV/oot+bgiIiIiUhwyMzOpUaOGRw19AIwx1KhRwyPvZBIRETkfRbnjJwu41Fp7zBjjCywwxnxT+Nij1tppJRdPREREREqKpw19TvHUfy4REZHzcc47fmyBY4WHvoW/bImm+hOstcxKTuPzxJ1ORxEREREREREROc1ay/KUg7w0ez3WOjNKKdKuXsYYb2PMKiAd+N5au6TwoRHGmGRjzJvGGP8/eO1wY0yiMSZx3759xRT7t6Ym7uT5r9aRflS39IqIiJzNgs37+eSXbeTk5TsdRURERMRjZeXm8cXyVK57byE3friIiUt3kHropCNZijT4sdbmWWtjgQigozGmJfAk0BToAIQAj//Ba0dZa+OstXE1a9Ysptj/zxjDs9c2JzM3j5e/2Vjsf76IiIinyM7N55kZa5iwZAf5Dr3jJPJr77zzDs2aNaNu3bo899xzp8+/9dZbjB079qyvHTBgAJs3by7hhCIiIn/O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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization_36_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "xr = np.arange(-5.0,3.0,0.01)\n", - "yr = 2.0 * xr**2 + 4.0 * xr + 5.0\n", - "yp = 4.0 * xr + 4.0 \n", - "fig = plt.figure(figsize=(20,4))\n", - "axs = [fig.add_subplot(121),fig.add_subplot(122)]\n", - "axs[0].plot(xr,yr,label=\"f(x)\"); axs[0].legend()\n", - "axs[1].plot(xr,yp,label=\"f'(x)\");axs[1].plot([-5,3],[0,0],color=\"gray\",linestyle=\"dotted\");axs[1].legend()\n", - "plt.show();plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dstsTQdJ7sFs" - }, - "source": [ - "$x<-1$では$f'(x)<0$で、$x>-1$では$f'(x)>0$となっていますね。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Z0uJ-5dE1xNE" - }, - "source": [ - "これまでは、定義に即して微分の値を計算していましたが、毎回調べたい点で定義に立ち返るというのは面倒です。\n", - "\n", - "関数が閉じた形で与えられているとき(つまり、$f(x)$が$x$の具体的な表式で与えられているとき) \n", - "多くはその微分$f'(x)$も$x$の関数として書き下すことができます。 \n", - "\n", - "そうすれば、$x$に特定の値を代入すれば好きな点での微分の値$f'(x)$を知ることができます。\n", - "\n", - "\n", - "とりあえずは以下を公式的に抑えておけば問題は有りません。\n", - "\n", - "1. $x$の$x$に対する微分は1\n", - "2. $a x^p$の$x$に対する微分は$apx^{p-1}$ ($a$は非ゼロの定数)\n", - "3. $\\exp{(x)}$(ネイピア数$e$の$x$乗)の$x$に対する微分は$\\exp{(x)}$ \n", - "4. $\\cos{x}$の$x$に対する微分は$-\\sin{x}$\n", - "5. $\\sin{x}$の$x$に対する微分は$\\cos{x}$\n", - "6. $\\log{x}$の$x$に対する微分は$1/x$ (x>0で定義される)\n", - "\n", - "いずれも、上の微分の定義や、指数関数/三角関数/対数関数の定義(c.f. マクローリン展開)から証明することができますので、興味があれば人生で一度はやってみてください。\n" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyNgJ/vjuDqbrPwWEhR7i48L", - "collapsed_sections": [ - "tKDQnoQb-J7E", - "BQcTACZvsYyW" - ], - "include_colab_link": true, - "name": "Python_chapter7_Optimization.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization.txt deleted file mode 100644 index 5192ab86..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization.txt +++ /dev/null @@ -1,78 +0,0 @@ -def f(x): - return 5.0 * x**2 - 4.0 * x + 3.0 -def dfdx(x): - return 10.0 * x -4.0 - -step = 100 -etas = [0.2, 5.e-2, 1.e-2, 1.e-3] -x_and_f = [ [] for i in range(len(etas))] -for i in range(len(etas)): - x = 3.0 #初期値 - x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納 - for tstep in range(step): # step回だけ更新を繰り返す - x = x - etas[i] * dfdx(x) # xnew = xold - eta * dfdx(at xold)になっている - x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納 - -import numpy as np -from matplotlib import pyplot as plt -from matplotlib import animation, rc -rc('animation', html='jshtml') -cols = ["blue","green","orange","purple"] -x = np.linspace(-6, 6, 100);y = f(x) - -fig_scatter = plt.figure(figsize=(10,5)) -plt.xlim(-4,4);plt.ylim(0,40) -plt.plot(x,y) -plt_scatter = [] -for nth in range(len(x_and_f[i])): - plot_obj = [] - for i, eta in enumerate(etas): - if nth == 0 : - tl = "eta="+str(eta) - else : - tl = "" - plot_obj += [plt.scatter(x_and_f[i][nth][0],x_and_f[i][nth][1], c=cols[i],label=tl,alpha=0.7)] - plt_scatter.append(plot_obj) -plt.legend() -plt.close() - -animation.ArtistAnimation(fig_scatter, plt_scatter, interval=100) - - -def f(x): - return x**4 - 3.0* x**3 + 2.0*x -1.0 -def fp(x,eps): - return (f(x+eps)-f(x))/eps -x=5 -exact_fp = 277 -for p in [0,-1,-2,-4,-5,-10,-15]: - eps = 10**p - print("eps\t",str("%5.1e" % eps), "\tf'("+str(x)+")\t", str("%18.13f" % fp(x,eps) ), - "\t diff.",str("%5.1e" % np.log10(abs(fp(x,eps)-exact_fp)))) - - -def fp2(x,eps): - return (f(x+0.5*eps)-f(x-0.5*eps))/(eps) - -print("分割する区間の中央をxに揃える方式") -for p in [0,-1,-2,-4,-5,-10,-15]: - eps = 10**p - print("eps\t", str("%5.1e" % eps), "\tf'("+str(x)+")\t",str("%18.13f" % fp2(x,eps) ), - "\t diff.",str("%5.1e" % np.log10(abs(fp2(x,eps)-exact_fp)))) - -from matplotlib import pyplot as plt -import numpy as np -xr = np.arange(-5.0,3.0,0.01) -yr = 2.0 * xr**2 + 4.0 * xr + 5.0 -fig = plt.figure(figsize=(10,2)) -plt.plot(xr,yr) -plt.show() - -xr = np.arange(-5.0,3.0,0.01) -yr = 2.0 * xr**2 + 4.0 * xr + 5.0 -yp = 4.0 * xr + 4.0 -fig = plt.figure(figsize=(20,4)) -axs = [fig.add_subplot(121),fig.add_subplot(122)] -axs[0].plot(xr,yr,label="f(x)"); axs[0].legend() -axs[1].plot(xr,yp,label="f'(x)");axs[1].plot([-5,3],[0,0],color="gray",linestyle="dotted");axs[1].legend() -plt.show();plt.close() diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization_33_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization_33_0.png deleted file mode 100644 index 9224f516..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization_33_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization_36_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization_36_0.png deleted file mode 100644 index d4b783e9..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter7_Optimization_36_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter8_handling_files.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter8_handling_files.ipynb deleted file mode 100644 index a18ae621..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter8_handling_files.ipynb +++ /dev/null @@ -1,1507 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JXf9XKfop6wz" - }, - "source": [ - "# ファイル・文字列操作\n", - "\n", - "[この章の目的]\n", - "text,csvやxlsx形式のデータをプログラムでサクッと扱えるようになる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LfaRUw0tp8wv" - }, - "source": [ - "この章では、テキストファイルやcsvファイル(excelファイルはおまけ$\\clubsuit$)をPythonで操作する簡単な方法を学習する。 \n", - "\n", - "これまでの章では、データはリストとして既に与えられた状態から解析を行ったが、実際にデータを扱う際は \n", - "既に誰かが作成した何らかのファイルをプログラムで読み込んで操作する場合も多い。 \n", - "この章の内容は、データ解析というよりは、Pythonでデータ解析をするための下準備に相当する。 \n", - "\n", - "愚直にコードを書いている事もあり少々泥臭い部分が多いが、この章のような操作のエッセンスを抑えておけば \n", - "普通にやると膨大な時間がかかる様々な処理を高速化・自動化することができるので、頑張って学習しよう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y0pkvGuu6B4t" - }, - "source": [ - "## 授業で使うファイルの準備\n", - "\n", - "予め以下のリンクをクリックして、ファイルをダウンロードし、 \n", - "ご自身のGoogle Driveにアップロードしておいてください。\n", - "\n", - "* [test.txt](https://drive.google.com/file/d/1U2uvrN18713ylN4OQiI2fsfX5gudL45w/view?usp=sharing) (テキストファイル)\n", - "\n", - "* [python_handling_test.csv](https://drive.google.com/file/d/1bYJNWdtujcQWfSBAa1UeXi2ZzJRJktil/view?usp=sharing) (csv, カンマ区切りのテキストファイル)\n", - "\n", - "* [kakei.xlsx](https://drive.google.com/file/d/1gJMVHivmP7R9Qf4LdqRhdPVc3x0IzD8v/view?usp=sharing) (エクセルファイル)\n", - "\n", - "本章では、ファイルの場所を指定する**パス**という概念がたびたび登場する。\n", - "以下のコードをそのまま使いたいという方は、マイドライブ直下に`AdDS`というフォルダを作り、さらにその中に```chapter8_data```というフォルダを作成し、ファイルをいれてください。\n", - "\n", - "パスについては後の節で詳しく説明します(今気になる方は末尾をチェック)。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GT7Cl8yb8iL8" - }, - "source": [ - "## テキストファイルの操作" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5LKmHodPF_n0" - }, - "source": [ - "膨大な行のテキストファイルに対して、人間が手で操作をするというのは時として非現実的です。 \n", - "\n", - "誤変換を置換するくらいなら、どのテキスト/メモ帳アプリやwordでもできますが、\n", - "全行(数千とか数万)に対して、決まった操作が必要な場合、プログラムにしてしまったほうが遥かに便利です。\n", - "\n", - "以下ではGoogle Driveのマイドライブの```AdDS```の下に作った```chapter8_data```というフォルダにファイルを保存したと仮定して話を進めますので、**適宜皆さんの場合に置き換えて使用してください**\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B6oBjOGQ8k1K" - }, - "source": [ - "まずはgoogle driveに保存した```test.txt```という名前のファイルを読み込んでみましょう。 \n", - "既に何回かやったようにgoogle driveをマウントします。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "oKJPB3hafCDd", - "outputId": "7b4ad307-91cd-4e63-e951-19fe78efb362" - }, - "outputs": [], - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FGYId3osJfo9" - }, - "source": [ - "**注意** 以後のコードは、google driveの中にあるファイルを読み書きしたりといった操作を行うため \n", - "上でGoogle Driveをマウントした状態でなければ実行しても多くがエラーとなる。\n", - "\n", - "---\n", - "\n", - "Google Driveのマウントができたら、先程のファイルがあるかlsコマンドで確かめてみよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Nx4kIQw48w7y", - "outputId": "b1b93834-5bd0-4954-a465-680acf6a9e11" - }, - "outputs": [], - "source": [ - "!ls /content/drive/MyDrive/AdDS/chapter8_data/*" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UCzT9lFC0x93" - }, - "source": [ - "*はワイルドカード記号で、対象を任意とする命令に相当します。 \n", - "*.拡張子 などとして使うのも便利です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lBNc6YKaJ-tO" - }, - "source": [ - "ファイルが見つからない場合は\n", - "> No such file or directory\n", - "\n", - "などと表示される。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9ypPj31PKJKY" - }, - "source": [ - "> $\\clubsuit$ 上のファイルをGoogle Driveに保存する方法としては \n", - "一度ローカルに保存したファイルをブラウザなどからアップロードする方法はもちろん \n", - "全てを(Linux)コマンドで行うこともできる。\n", - "```\n", - "!git clone https://github.com/SotaYoshida/Lecture_DataScience\n", - "!mkdir /content/drive/MyDrive/AdDS/\n", - "!mv Lecture_DataScience/Chapter8_data /content/drive/MyDrive/AdDS/chapter8_data\n", - "!ls /content/drive/MyDrive/AdDS/chapter8_data\n", - "```\n", - "1つめの行ではまず授業資料のGitHubレポジトリをColab環境で間借りしているgoogleのサーバー上にクローン(≒コピー)する。2行目でマイドライブの下にAdDSというフォルダの作成を試み、3行目でダウンロードしてきたレポジトリにある`Chapter8_data`をさっき作ったAdDSというフォルダの中に別名(先頭が小文字になっている)で移動する。\n", - "最後に、どんなファイルがあるかをlsコマンドで確認している。 \n", - " 重複する作業も多いのでこれらのコードはコードセルには書かなかったが、うまくアップロードできなかった場合やコマンドラインによるファイルの移動などをやってみたければ上の4行のコードをコードセルに貼って試してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Ayz1B8fz9wGb", - "outputId": "40f02a5b-6069-4c88-d4bd-a4271afbcbe0" - }, - "outputs": [], - "source": [ - "!ls /content/drive/MyDrive/AdDS/chapter8_data/*txt " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uYhMU-Od-s4Z" - }, - "source": [ - "とするとマイドライブ/AdDS/chapter8_data/にある`.txt`形式のファイル一覧を表示させることができる。 \n", - "`test.txt`が見つかったでしょうか?(DriveにアップロードしてColabから読み込みできるまでに少し時間がかかる場合がある)\n", - "\n", - "\n", - "では次に、このファイルに書かれているテキストを取得してみよう。 \n", - "方法は幾つかあるが、最も標準的なものとして、ファイルを開いてテキストを取得する方法を試してみよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YCF5xUQ_3r_3" - }, - "source": [ - "### テキストファイルを開いて内容を読み出す" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4qbsm40WpqK1" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/test.txt\" \n", - "inp = open(filename,\"r\")\n", - "lines = inp.readlines()\n", - "inp.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aZxGX1R4_QUN" - }, - "source": [ - "1行目でファイル名(正確にはファイルのパス)を指定し```filename```という変数にした。 \n", - "\n", - "2行目では、指定したパスにあるファイルを開いている。 \n", - "今はファイルに書き込むのではなく、既にあるファイルを開いて読み込むので`\"r\"`というオプションを指定している。 \n", - "他には`\"w\"`(書き出し,上書き), `\"a\"`(書き出し,追記)などがあり、新しく上書きでファイルを作成したい場合は`\"w\"`,すでにあるファイルの内容は消さずに追記したい場合は`\"a\"`を指定して使う。\n", - "\n", - "3行目では、`inp`(ファイルを`open`して得たオブジェクト)に対して```readlines```という操作を適用している。\n", - "これは、ファイルに書かれているテキストを(可能なら)全行に渡って読み込みメモリにストアする関数になっている。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "TMHIZJPTAvd7", - "outputId": "2aae100d-5f48-461b-b699-74985a929dca" - }, - "outputs": [], - "source": [ - "print(lines)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QSbIzGcdAyWH" - }, - "source": [ - "とすると、全ての行が読み込まれ、変数```lines```に格納されていることがわかる。ここで```\\n```は改行記号を意味する。\n", - "\n", - "ループを回して一行ずつ表示させると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "dPfMZpjUA_ZQ", - "outputId": "001554b4-6212-4ef7-ec3e-f255f8d5223b" - }, - "outputs": [], - "source": [ - "for line in lines:\n", - " print(line)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KS1P7UYYBFX2" - }, - "source": [ - "といった感じ(行ごとにスペースが生じている理由については後で説明します)。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "W4CNTbH5Avlf" - }, - "source": [ - "必要な行番号が分かっている場合は、`nlines = lines[2:10]`などとして、要らないところは捨てても良い。(リストのスライスについては2章を参照)\n", - "\n", - "次に、もう少し具体的なテキスト操作をしてみよう。 \n", - "まず、上の1行ずつ表示するコードでは、改行コードを明示的に含む文字列を一行ずつ表示したため、改めて`print`すると余分なスペースが空いてしまう。 \n", - "(`print`関数はデフォルトで末尾に改行```\\n```を挿入するのでファイルにある改行記号とあわせて2回改行してしまう→[参考リンク](https://docs.python.org/ja/3/library/functions.html#print))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "olRZ5IDD3yuV" - }, - "source": [ - "### strip関数\n", - "\n", - "たとえば```strip()```関数を使うと、文字列に含まれる空白、タブや改行コードを消去することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "fWB00WIvzOlz", - "outputId": "867eb590-a09a-4d51-baf6-57009d8a72a1" - }, - "outputs": [], - "source": [ - "a = \"test character\\t\"\n", - "b = \"test2 \\n\"\n", - "print(\"a\", a, \"←タブが隠れている\")\n", - "print(\"b\", b, \"←改行される\")\n", - "### strip関数をもちいて...\n", - "print(\"a.strip()\", a.strip(),\"b.strip()\",b.strip())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "先程のforループでstrip関数を適用してやると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "bwCxUBMdBOb2", - "outputId": "d964e851-62c0-4ded-9370-1f279c4a9dd7" - }, - "outputs": [], - "source": [ - "for line in lines:\n", - " print(line.strip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IpOm3O9rBlSH" - }, - "source": [ - "文字列の右側に空白や改行コードが入っていることが明確な場合は \n", - "`strip`の代わりに`rstrip`を使ってもOK(`rstrip`のrはrightの意味)。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "zVlMYYFtBnlD", - "outputId": "2b14197a-506d-4207-bbc4-2937db656ed5" - }, - "outputs": [], - "source": [ - "for line in lines:\n", - " print(line.rstrip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "E-iAh4w7BrbU" - }, - "source": [ - "\n", - "ファイルによってはインデントをするために左側にタブ```\\t```が含まれる場合もあります(PythonのコードをテキストとしてPythonから読むときなどがこれに該当)。そのような場合に左側にある空白やタブのみを取り除きたければ```lstrip()```を使って取り除くことができる。\n", - "\n", - "もちろんPythonではインデントが文法なので、インデントを一律で消す、といった操作は必要ないが、特定の状況では、`lstrip`も使えると便利だ。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V1Uk2u1Z2haB" - }, - "source": [ - "上のファイルの文字列で`#`記号を含む行以降だけが必要な場合はどうすればいいでしょうか?\n", - "\n", - "最も単純(?)な実装は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "o9ePmRrlCQV3", - "outputId": "abd39a60-4d5b-40ae-8e81-e3d17f90e735" - }, - "outputs": [], - "source": [ - "hit = 0 #\n", - "for line in lines:\n", - " if \"###\" in line:\n", - " hit += 1 \n", - " continue\n", - " if hit == 0 :\n", - " continue #hitが0の状態では何もしない\n", - " print(line.rstrip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S4pLj4K-CQhm" - }, - "source": [ - "といった愚直な例が考えられる。\n", - "つまり、`#`を含む行に到達するまでの行は無視して、それ以降の行だけをリストに格納するというもの。\n", - "もちろん`#`を含む行が複数あるようなケースでは、自分が実現したい操作にあわせてコードを書き換える必要がある。\n", - "\n", - "以下では、`###data`までの行が必要ないので、必要なところまでを別のリストに格納してしまおう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "eYsStscDDXDa", - "outputId": "e5334884-190b-4a4b-d2a6-e3705becf3f0" - }, - "outputs": [], - "source": [ - "hit = 0 #\n", - "nlines = []\n", - "for line in lines:\n", - " if \"###\" in line:\n", - " hit += 1 \n", - " continue\n", - " if hit == 0 :\n", - " continue #hitが0の状態では何もしない\n", - " nlines += [line]\n", - "print(nlines)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p7_aA_O0p7tt" - }, - "source": [ - "### split関数" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RDD1fCO3DNm6" - }, - "source": [ - "また、1,2,3,4,5,6といったコンマやスペースで区切られたものをリストに格納したい場合には、```split```関数が便利。`split`関数は引数に何も指定しなければ、スペースや改行もしくはタブごとに文字列を区切ったリストを返す。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sample_text = \"This is a\\nsample\\ttext.\"\n", - "sample_text.split()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "1P4mcqMkCzbf", - "outputId": "6bbaadf5-f756-4990-c57c-e452f7ddd7d8" - }, - "outputs": [], - "source": [ - "for line in nlines:\n", - " print(line.split())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0QGZ-qxWDF6L" - }, - "source": [ - "カンマがあるときはカンマで分割する、という約束を表現したければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "R5Wk_P3gDJ2C", - "outputId": "9589e77b-476a-44e7-cb1c-61a45f67ca11" - }, - "outputs": [], - "source": [ - "for line in nlines:\n", - " if \",\" in line :\n", - " print(line.rstrip().split(\",\"))\n", - " else :\n", - " print(line.rstrip().split())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QaOMvxGUDx7g" - }, - "source": [ - "などとすれば良い。これを利用すれば、空のリストにファイルから読んだ要素を詰めていくといった操作も実現できる。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ocRjQCaGEF07", - "outputId": "8f26d228-b132-4002-efbb-694216794090" - }, - "outputs": [], - "source": [ - "# 数字とプロフィールの空リストを作り、そこに読み込んだものを詰めていく\n", - "# その際に、数字のリストとプロフィールのリストを分けたいとする\n", - "nums = [] \n", - "profs = [] \n", - "\n", - "for line in nlines:\n", - " if \",\" in line :\n", - " nums += [ line.rstrip().split(\",\") ]\n", - " else :\n", - " profs += [ line.rstrip().split()]\n", - "print(\"nums\", nums)\n", - "print(\"profs\", profs)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pu5-guZDEcIo" - }, - "source": [ - "上の`nums`の様に、予め全ての要素が整数だと分かっていて整数に対する演算(四則演算など)を後でするのなら、`str`(文字列)型ではなく`int`型にしておくほうが良いこともあるだろう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "J85gGgidEq6j", - "outputId": "87947845-dd2e-4574-e710-05b6c7e7819c" - }, - "outputs": [], - "source": [ - "##リスト内包表記を使った実装\n", - "nums = []\n", - "for line in nlines:\n", - " if \",\" in line : \n", - " tl = line.rstrip().split(\",\")\n", - " nums += [ [ int(tmp) for tmp in tl] ]\n", - "print(\"方法1:\", nums)\n", - "\n", - "## map関数(後述)を使った実装\n", - "nums = []\n", - "for line in nlines:\n", - " if \",\" in line : \n", - " nums += [ list(map(int, line.rstrip().split(\",\") )) ]\n", - "print(\"方法2:\", nums)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ageWDCqlpxPy" - }, - "source": [ - "### replace関数" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-ppyblOIq8PL" - }, - "source": [ - "`replace`関数で文字の置換が可能です" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "B78Kb1QKqA5P", - "outputId": "1048156c-f018-4f8a-87ff-3d01d047b562" - }, - "outputs": [], - "source": [ - "text = \"abcdあいうえお\"\n", - "text = text.replace(\"abcd\", \"1234\")\n", - "print(\"置換や→\",text)\n", - "print(\"除去にも→\", text.replace(\"4\", \"\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JHXIca-kE39k" - }, - "source": [ - "### $\\clubsuit$ map関数\n", - "\n", - "`map`関数は`map(操作,対象)`という風に使って、対象の各要素に対して一括で操作を適用することができます。 \n", - "今の場合、`['1', ' 2', ' 3', ' 4', ' 5', ' 6']`などの文字列のリストに対して、 \n", - "整数型に変換する```int```関数を作用させるという操作を一度に行います。\n", - "\n", - ">注: `map`関数の返り値はmap objectと呼ばれるものなので、 \n", - "元のようなリストの形で使いたい場合は```list()```を使ってリストに変換するステップが必要です。\n", - "\n", - "世の中には、アンケート結果や産業データなどがcsv(カンマ区切りのテキスト)ファイルで公開されている場合が多いですが、 \n", - "その場合は**上で説明したような手順でリストなどに格納すれば今まで行ったような解析やグラフ描画が実行できる**といったわけです。 \n", - "(もちろんcsvを読むのに便利なライブラリもありますが \n", - "いろんな形式のファイルをプログラムで読み込む場合には \n", - "上のような基本的な操作を組み合わせることも必要になります。)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7Zteg1NaYXuR" - }, - "source": [ - "### テキストファイルの書き出し" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "d1feYXb-4J-s" - }, - "source": [ - "次に、テキストファイルを書き込んで保存してみます。 \n", - "上の文字列で、敬称を\"さん\"から\"様\"に置換したテキストを作成して、それを別ファイルとして保存してみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "J1fOkXTcYuQm" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/test_replace.txt\" \n", - "oup = open(filename,\"w\") ## oup は\"output\"の気持ち...\n", - "for line in lines:\n", - " print(line.rstrip().replace(\"さん\",\"様\"), file=oup) # file=[openしたファイル]にすることで、printする先をファイルに指定できます。\n", - "oup.close() #ファイルはきちんと閉じる." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BhsUEsIh6tC6" - }, - "source": [ - "Google Driveで、作成されたファイルをチェックしてみましょう。\n", - "\n", - "なお、filenameに元ファイルと同じものを指定すると```open(filename,\"w\")```を実行した時点で \n", - "ファイルが上書きされて空ファイルになるので注意しましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "navysabZ4enm" - }, - "source": [ - "今の例ではもちろん、手で置き換えたりするほうが遥かに速いですがこうしたPythonによるファイル操作を覚えておくと\n", - "\n", - "* ファイル自体が大量にあり、同じ操作を繰り返す場合\n", - "* 単一のテキストファイルに大量の行に渡って情報がある場合\n", - "\n", - "など、手作業が非現実的な様々な状況でも、楽ちんに作業を終わらせることができる(かもしれません)。\n", - "\n", - "上の内容や、これまでに学習したループ処理を駆使すると、 \n", - "数万人のデータが1行ずつ記載されたテキストファイルから条件にヒットする人の \n", - "情報だけを抽出して小さなファイルにまとめるといったことも可能です。\n", - "\n", - "**プログラミングを用いたファイル操作をする発想があるかどうか**がきっとこの先 \n", - "皆さんの生き方や働き方に大きな影響を与えると私は考えています。\n", - "\n", - "> **文字コードに関連した余談** \n", - "Windows環境で作成されたテキストファイルを扱う際は読み込みで、文字コードによるエラーが出るかもしれない。最近ではメモ帳でもUTF-8(世界標準)を採用しているよう(→[MicrosoftのWindows blogの記事](https://blogs.windows.com/japan/2020/02/20/about-windows-and-japanese-text/))だが、古いテキストファイルだとShift-JISになっているかも。そういうときは、```open(file, \"r\", encoding = \"shift_jis\")```など、ファイルを開くときにencodingを明示的に指定する必要がある。明示的にUTF-8で保存したいときは```open(file, \"w\", encoding = \"utf-8\")```などとする。 \n", - "参考: [公式ドキュメント](https://docs.python.org/ja/3/howto/unicode.html#reading-and-writing-unicode-data) \n", - "ここまで勉強してきた皆さんには「そんなの、パソコンに存在するShift-JISで書かれたテキストファイルを全てUTF-8に変換するPythonスクリプト書けばいいんじゃね?」という発想があることを期待しています。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "J5sIptAmd1ni" - }, - "source": [ - "## csv,エクセルファイルの操作" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ovU-6Bd-D9e1" - }, - "source": [ - "### アンケート分析\n", - "\n", - "冒頭の二番目のファイル[python_handling_test.csv](https://drive.google.com/file/d/1bYJNWdtujcQWfSBAa1UeXi2ZzJRJktil/view?usp=sharing)はあるアンケート結果をまとめたファイルになっています。\n", - "\n", - "これは、Google フォームで作成したアンケーで、国数英社理(中学の5科目)に対する得意/苦手意識の調査を想定した疑似アンケートです。\n", - "\n", - "このようなアンケート調査は事務作業や卒業研究などで頻繁に見られ、会社や大学など所属コミュニティで何らかの意思決定に用いられることも多いことでしょう。こうしたアンケート分析を行っていると、\n", - "* 各回答項目同士の関係が知りたい\n", - "* 明示的な項目以外の情報も抽出したい\n", - "\n", - "といった要望が出てきます。今の場合でいうと、\n", - "* 各科目ごとの得意・苦手意識の相関を調べたい\n", - "* 夜中(あるいは日中)にアンケートを回答した夜型(昼型)の人に見られる特徴がなにかないか?\n", - "\n", - "といったイメージです。そんなとき、\n", - "\n", - "> 国語が得意(どちらかというと得意)と回答した方に質問です。 \n", - "英語についてはどうでしょうか?\n", - "\n", - "などと新たに設問を増やしてアンケートをやり直すというのは得策では有りません。 \n", - "すでに得られた情報からさらなる情報を引き出すことを考えてみましょう。 \n", - "まずは、csvファイルに記載された情報を整理してプログラムで扱いやすくすることを考えます。\n", - "\n", - "> 余談: このcsvファイルをExcelで開こうとするとお使いの環境によって文字化けを起こすかと思います。これはgoogleフォームで作成されたcsvファイルの文字コードが世界標準のutf-8を使用しているのに対し、ExcelがShift-JISという時代遅れな文字コードでcsvファイルを開こうとするためです。Googleのスプレッドシートや、Mac標準のNumbersで開くと文字化けしません。\n", - "\n", - "> 2000件の回答は、もちろん私が手作業で入力したわけでも誰かに協力してもらったわけでもなく、一定のルール(傾向)を勝手に設定した上でランダムに回答を作成しフォームから自動回答するPythonスクリプトを書きました。 \n", - "時間に余裕があれば、こうしたWeb操作を自動化する方法も授業で扱います。 c.f. ブラウザ操作, Webスクレイピング" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zF6wdCGff4qd" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/python_handling_test.csv\" #読み込むファイルのパスの指定" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vq3T9r6wgBmg" - }, - "source": [ - "とりあえずファイルの中身を数行表示してみる。\n", - "\n", - "csvファイル(コンマ区切りのテキスト)なので、テキストファイルと同じ方法をとる(他の方法ももちろんある)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "4yG6dZUngpnA", - "outputId": "eb5da226-418d-4a75-e4fd-f680959f03ed" - }, - "outputs": [], - "source": [ - "inp=open(filename,\"r\")\n", - "csv_lines=inp.readlines() \n", - "inp.close()\n", - "print(\"行数は\",len(csv_lines))\n", - "for i in range(5):\n", - " print(csv_lines[i].rstrip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mfdbVE1Bhrhi" - }, - "source": [ - "ちなみに...```pandas```ライブラリを使うとcsvをサクッと読み込むことができる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "fgDQrP-1hA0D", - "outputId": "8a51c3dc-77f5-4909-95b0-3e209da09a55" - }, - "outputs": [], - "source": [ - "import pandas as pd \n", - "df = pd.read_csv(filename)\n", - "print(df)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bMWTdHs9ilWM" - }, - "source": [ - "さて、```csv_lines```に格納したデータをもう少し扱いやすいように変更しよう。 \n", - "最初の0行目はどういうデータが入っているか(データの項目)を表している。 \n", - "1-2000行目には2000人分の回答が詰まっている。 \n", - "\n", - "これによると、 \n", - "> 0列目: 回答した時刻 \n", - "> 1列目: 性別 \n", - "> 2列目: 国語 \n", - "> 3列目: 数学 \n", - "> 4列目: 英語 \n", - "> 5列目: 社会 \n", - "> 6列目: 理科 \n", - "\n", - "らしい。いろいろなデータの整理方法があると思うがここでは、\n", - "* 処理A 0列目の時刻を24時間表記にして表示する \n", - "* 処理B 2-6列目の各科目の得意・苦手意識を、文字列を除去して数値[-2,-1,0,1,2]として扱う\n", - "\n", - "をまずやってみよう。\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Kso8FZs6nQa0", - "outputId": "3e2c5835-19b6-41de-ba7c-bda96bcc60d5" - }, - "outputs": [], - "source": [ - "#処理Aのための関数\n", - "#input_strが、\"年月日 時刻(h:m:s) 午前/午後 GMT+9\" という文字列である、という文字列の[構造]を知った上での実装になっていることに注意\n", - "def make_time_24h(input_str): \n", - " time = input_str.split()[1]\n", - " AMPM = input_str.split()[2]\n", - " hms = time.split(\":\")\n", - " h = int(hms[0])\n", - " if AMPM == \"午前\":\n", - " output_str = time \n", - " else :\n", - " if h != 12:\n", - " output_str = str(h +12)+\":\"+hms[1]+\":\"+hms[2]\n", - " else:\n", - " output_str = str(h)+\":\"+hms[1]+\":\"+hms[2] # 12時xx分だけは別の取り扱いが必要\n", - " return output_str\n", - "\n", - "nlines=[] #整理したものをリストとしてまとめるための空のリスト\n", - "for nth,line in enumerate(csv_lines[1:]): \n", - " nline = line.rstrip().replace('\"','').split(\",\") # 改行文字の除去、ダブルクォーテーションの除去, カンマで分割 \n", - " # この時点でnlineは0:時刻 1:性別, ...のリストとなっているはず print()でcheckしてみよう\n", - " # 処理A)\n", - " time = make_time_24h(nline[0])\n", - " #print(\"nline[0]\", nline[0], \"time\", time)\n", - " M_or_F = nline[1] #性別\n", - "\n", - " # 処理B)\n", - " points = [ int(nline[k].split()[0]) for k in range(2,7)] #各科目の値だけのリスト(points)を作成\n", - " # 上記をmap関数にしてみよう。\n", - "\n", - " nline = [time, M_or_F]+points #リストを連結(時刻,性別と各科目の値を同じ階層で結合)して、nlineという名前で上書き\n", - " nlines += [ nline ]\n", - "\n", - " # うまく編集できたか400行おきほどでprintしてチェックしてみる\n", - " if nth % 400 == 0 :\n", - " print(\"編集前\", line.rstrip())\n", - " print(\"編集後\", nline)\n", - " print(\"\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VVxC-_FanOp2" - }, - "source": [ - "最後に、各項目の得点を適当なリスト(あるいはnp.array)に整形しておけば、種々の分析を行うことができます。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "38OyKcL4DVtR", - "outputId": "a78ecf75-7448-4011-ee0c-00cd6acc7470" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "points = [ [] for i in range(5)]\n", - "for tmp in nlines:\n", - " for i in range(5):\n", - " points[i]+=[tmp[2+i]]\n", - "print(\"points\", np.array(points))\n", - "print(\"各科目の平均スコア:\", [np.mean(points[i]) for i in range(5)])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gplM2Js9DWwP" - }, - "source": [ - "相関分析は以降の章で扱うので具体例は省略します。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2_SWNlqrhMLY" - }, - "source": [ - "## $\\clubsuit$ 複雑なエクセルファイルの操作\n", - "\n", - "```kakei.xlsx```はエクセルファイルで以降では、2020年度前期のデータサイエンス入門(一部学科を除く)の \n", - "相関分析で使用されたエクセルファイル、[kakei.xlsx](https://drive.google.com/file/d/1gJMVHivmP7R9Qf4LdqRhdPVc3x0IzD8v/view?usp=sharing)を使用します。 \n", - "\n", - "\n", - "以下では、上と同じディレクトリに`kakei.xlsx`を置いたと仮定して \n", - "処理を行いますので、適宜ご自身の環境にパスを置き換えてください。\n", - "\n", - "※もともとはxlrdというライブラリを使って実装していましたが.xlsx形式をサポートしなくなるとのことで、pandasライブラリを用いた実装に変更しました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "FXWuDrYahMXf" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx\" #読み込むファイルのパスの指定" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CcnorJJvmAR6" - }, - "source": [ - "まずはxlsxファイルをPythonで読み込んで、どんな\"シート\"があるのかを確認してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "vsLXQKlG8WYL", - "outputId": "7bf4f36d-c5f5-496e-d2ec-a93c7b854a2f" - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "input_file = pd.ExcelFile(filename)\n", - "sheet_names = input_file.sheet_names\n", - "print(\"pandas: シート名\",sheet_names)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SRyFwkbDqGjP" - }, - "source": [ - "たくさんシートがあることが分かります。 \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "X1HOxhl6edOF" - }, - "source": [ - "Sheet1の中身をのぞいてみましょう。まずは行と列の数を取得してみます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "0YivHM_Yed3Y", - "outputId": "f86c467c-0249-4f97-dabc-8d0cee8f51e9" - }, - "outputs": [], - "source": [ - "Sheet1 = pd.read_excel(filename, sheet_name=\"Sheet1\")\n", - "print(\"行,列の数\", Sheet1.shape)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "X5mDZqBWgXSD" - }, - "source": [ - "0-5番目の行にはどんな値がセルに入っているのかな...と思ったら" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "nu6LskLOf7zz", - "outputId": "8cdbd47d-1f90-460f-e825-74c8bcf45d44" - }, - "outputs": [], - "source": [ - "for i in range(5):\n", - " print( list(Sheet1.iloc[i]) )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xkzCNbhDpbOT" - }, - "source": [ - "などとする。このように、扱いたいファイルの\"構造\"を知ることが \n", - "やりたい操作を系統的に実行するための第一歩です。 \n", - "このエクセルを実際に開くとSheet1からSheet12までが複数都市の家計調査のデータで \n", - "S1からS12までが気候データになっていて \n", - "1-12までの数字が2017年の1月から12月までに対応していることが分かります。\n", - "\n", - "実際のデータを触っていると「2006年までとそれ以降とでデータファイル(.xlsx)の\"構造\"が違う」 \n", - "といったことも出てきます。 \n", - "最初は特定のものに合わせたコードを作り、徐々に\"汎用性の高い\"コードにしていくのがよいでしょう。\n", - "\n", - "このエクセルを使って実際に作業をするには、[細かいライブラリの使い方]などを説明することになるため \n", - "授業ではやらず、以下の\"おまけ\"にいれておきます。この作業や実践DSに限らず\n", - "* 自分がやりたい操作をきちんと言語化する\n", - "* 公式ドキュメントやWebから情報を探す\n", - "* とにかく試してみる\n", - "\n", - "という意識が重要です。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HJJ1Rd9XkITb" - }, - "source": [ - "### $\\clubsuit$$\\clubsuit$おまけ\n", - "\n", - "以下のコードは、プログラミングの\"ありがたみ\"を感じてもらうためのお試し用です。 \n", - "(昔書いたかなり読みにくいコードなのであまり真剣に読まないでください.)\n", - "\n", - "**大量の画像ファイルをドライブに生成するので、以下を読んだ上で実行してください**\n", - "\n", - "以下のコードたちを何もいじらずに実行すると、 \n", - "全都市の月別平均気温と全品目の世帯平均支出のうち、 \n", - "相関係数の絶対値が0.9以上のもの(291通り)をプロットして画像として保存します。 \n", - "```pthre```の値を小さくすると、生成される画像の数がとんでもなく増えるのでやらないでください。\n", - "\n", - "(0.9 → 291通り, 0.8 → 1234通り, 0.7 → 2871通り, \n", - " 0.6 → 5233通り, 0.5 → 8375通り, 0.0 → 32876通り)\n", - "\n", - "Google Colab上で実行して291枚の画像が生成されるまでに80~150秒程度かかるようです。\n", - "\n", - "この時間未満でエクセルで操作をして同様の処理を完了出来るという方は...おそらく地球上にいないでしょう(要出典)\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ALOn2XR5lfT-" - }, - "outputs": [], - "source": [ - "# 画像がいっぱい生成されると面倒なので画像を保存するフォルダを作成しておく\n", - "!mkdir /content/drive/MyDrive/AdDS/chapter8_data/kakei_cor_pic " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "dsPxfNhrr5e2", - "outputId": "6d37c43f-3c92-4ff2-84f2-609ba697704d" - }, - "outputs": [], - "source": [ - "!pip install japanize_matplotlib " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rZHYbCjWmXgG", - "outputId": "81a4fc87-c666-4255-f658-d01ed18d0e7e" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "from matplotlib import pyplot as plt\n", - "import japanize_matplotlib\n", - "import time\n", - "\n", - "class ebook:\n", - " def __init__(self,inpf):\n", - " self.input_file = pd.ExcelFile(filename)\n", - " sheet_names = input_file.sheet_names\n", - " self.sname = sheet_names\n", - " self.ns = len(sheet_names)\n", - " print(\"pandas: シート名\",sheet_names)\n", - " print(\"self.ns\", self.ns)\n", - "\n", - " s_kikou=[]; s_kakei=[]\n", - " for i, sheetname in enumerate(self.sname):\n", - " if \"Sheet\" in sheetname :\n", - " s_kakei += [ i ]\n", - " elif \"S\" in sheetname :\n", - " s_kikou += [ i ]\n", - " self.s_kakei,self.s_kikou = s_kakei,s_kikou\n", - " def indices(self):\n", - " return self.s_kakei, self.s_kikou\n", - " def readkakei(self,ikakei) :\n", - " ws = self.input_file.parse(sheet_name=self.sname[ikakei])\n", - " nr = ws.shape[0]\n", - " premode = True\n", - " items = []\n", - " for ii in range(nr): \n", - " trow = list(ws.iloc[ii])\n", - " hit = 0\n", - " if premode == True:\n", - " for jj,tmp in enumerate(trow):\n", - " if type(tmp) is str:\n", - " if \"市\" in tmp:\n", - " hit += 1\n", - " if hit > 5:\n", - " premode=False\n", - " i_kakei=[];p_kakei=[]\n", - " for jj,tmp in enumerate(trow):\n", - " if type(tmp) is str:\n", - " if \"市\" in tmp:\n", - " i_kakei += [jj]\n", - " p_kakei +=[ tmp ] \n", - " v_kakei = [ ]\n", - " else: \n", - " if ii >= 22:\n", - " if type(trow[8]) is str and trow[8] != \"\":\n", - " v_kakei += [ [trow[jj+1] for jj in i_kakei] ]\n", - " items += [trow[8]] \n", - " return i_kakei, p_kakei, v_kakei,items\n", - " def readkikou(self,ikikou):\n", - " ws = self.input_file.parse(sheet_name=self.sname[ikikou], header=None)\n", - " nr = ws.shape[0]\n", - " quantities = [];v_kikou=[]\n", - " premode=True\n", - " for ii in range(nr): \n", - " trow = list(ws.iloc[ii])\n", - " if premode :\n", - " if any([\"市\" in str(tmp) for tmp in trow]):\n", - " Tplaces = trow[1:]\n", - " premode=False\n", - " else:\n", - " quantities += [ trow[0] ]\n", - " v_kikou += [ trow[1:] ]\n", - " return Tplaces, v_kikou,quantities\n", - "\n", - "def seasoncolor(month):\n", - " if month <= 2 or month ==12:\n", - " return \"blue\"\n", - " elif 3 <= month <=5:\n", - " return \"green\"\n", - " elif 6 <= month <=8:\n", - " return \"red\"\n", - " elif 9<= month <=11:\n", - " return \"orange\"\n", - " return tcol\n", - "\n", - "def plot_cor(x,y,item,quantity,place,corrcoef): \n", - " fig = plt.figure(figsize=(4,4))\n", - " ax = fig.add_subplot(1,1,1)\n", - " ax.set_facecolor(\"#e0e0e0\")\n", - " ax.set_title(place+\" r=\"+str(\"%8.2f\" % corrcoef).strip())\n", - " ax.set_xlabel(item);ax.set_ylabel(quantity)\n", - " ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - " for i in range(len(x)):\n", - " tcol=seasoncolor(i+1)\n", - " ax.scatter(x[i],y[i],marker=\"o\",s=5,color=tcol,zorder=20000,alpha=0.7)\n", - " ax.text(x[i],y[i],str(i+1)+\"月\",color=\"k\",fontsize=8)\n", - " plt.savefig(oupdir + \"corr_\"+item+\"vs\"+quantity+\"_at_\"+place+\".png\",dpi=300) \n", - " plt.close()\n", - "\n", - "def calcor(date,places,items, Vs_kakei,Tplaces,quantities,Vs_kikou):\n", - " hit = 0; num_pic=0\n", - " Vs = [] \n", - " for j_K,place in enumerate(places):\n", - " for j_T, Tplace in enumerate(Tplaces):\n", - " if place != Tplace :\n", - " continue\n", - " for ik,item in enumerate(items):\n", - " kvalue = np.array([ Vs_kakei[i][ik][j_K] for i in range(len(Vs_kakei))])\n", - " quantity=quantities[iT]\n", - " Tvalue = np.array([ Vs_kikou[i][iT][j_T] for i in range(len(Vs_kikou))])\n", - " if all(Tvalue) == 0.0: ## missing value in climate data\n", - " continue\n", - " if printlog:\n", - " print(\"@\", place,\" \",item,kvalue,\" VS \",quantity, \",\",Tvalue)\n", - " corrcoef=np.corrcoef(kvalue,Tvalue)[0][1]\n", - " Vs += [ [ corrcoef, item, quantity, place] ]\n", - " if abs(corrcoef) > pthre:\n", - " hit += 1\n", - " if pltmode==True:\n", - " plot_cor(kvalue,Tvalue,item,quantity,place,corrcoef) \n", - " num_pic += 1\n", - " print(\"hit:\",hit, \" number of picture\", num_pic)\n", - "\n", - "if __name__ == \"__main__\":\n", - " ti=time.time()\n", - " T=True; F=False\n", - "\n", - " inpf = \"/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx\"\n", - " oupdir = \"/content/drive/My Drive/AdDS/chapter8_data/kakei_cor_pic/\" #適宜置き換える\n", - " iT = 6 # iT=6: 日平均気温\n", - " printlog= F #条件にhitした都市の品目と気候データを逐次printするかどうか. (Fを推奨)\n", - " pthre= 0.90 ## corrplotを描く相関係数のthreshold \n", - " pltmode = T ## T:plotする F:計算のみ ** 画像をいちいちplotして保存する必要がない場合Fを推奨\n", - " year=\"2017\" \n", - "\n", - " wb=ebook(inpf)\n", - " s_kakei,s_kikou=wb.indices() \n", - " Vs_kakei=[]; Vs_kikou=[];dates=[]\n", - " for i,ind_kakei in enumerate(s_kakei):\n", - " i_places,places, v_kakei,items = wb.readkakei(ind_kakei)\n", - " Tplaces, v_kikou, quantities = wb.readkikou(s_kikou[i])\n", - " if i+1 < 10:\n", - " date=year+\"0\"+str(i+1)\n", - " else:\n", - " date=year+str(i+1)\n", - " dates += [date]\n", - " Vs_kakei += [ v_kakei ]\n", - " Vs_kikou += [ v_kikou ]\n", - " calcor(dates,places,items,Vs_kakei,Tplaces,quantities,Vs_kikou) \n", - "\n", - " tf=time.time()\n", - " print(\"Elapced time[sec]:\", tf-ti)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "riw7f35TRWsD" - }, - "source": [ - "## 余談: 電子ファイルのフォーマット\n", - "\n", - "プログラムでデータを機械的に読み出して活用することで、人間が到底出来ないような作業効率を実現することができる場合も多い。\n", - "そんな光の側面ばかりなら良いが、実際にはそう上手くは行かないことも多い。\n", - "\n", - "業務のデジタル化・デジタルトランスフォーメーションなどといった標語とは裏腹に、世の中にあふれるcsv,スプレッドシートなどは、\n", - "csvと謳っておいて、実際にはカンマ区切りではなくタブ区切りであったり、機械判読を全く想定していないデータの書き方・並べ方となっているものが多く、プログラムを書ける人にとっては苦痛な状況も多い。 \n", - "\n", - "総務省統計局は令和2年2月に、政府統計(e-Stat)に関して[統計表における機械判読可能なデータの表記方法の統一ルールの策定](https://www.soumu.go.jp/menu_news/s-news/01toukatsu01_02000186.html)というものを出している。\n", - "これが最適な提案かはさておき、データの記述に法則性と機械判読性をもたせる意識を全員が持つことが重要なように思う。\n", - "\n", - "お掃除ロボットが床を綺麗にするためには、まずお掃除ロボットが走れるよう掃除する(床に物が散乱していない)という条件が求められる、という話だ(そうなの?)。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jH_bE8PSMP89" - }, - "source": [ - "## パスの指定\n", - "\n", - "ファイルがコンピュータ上でどこにあるかを指し示す文字列はファイルパス(path)と呼ばれる。 \n", - "```\"/content/drive/My Drive/XXX.png\"```もファイルパスの一例になっている。\n", - "\n", - "たとえば... \n", - ">[Sota]というユーザの[ドキュメント] (あるいは[書類])フォルダに \n", - "[csv_file]というフォルダがあり[test.csv]というcsvファイルが入っている\n", - "\n", - "とするとそのファイルを指し示すパスは \n", - "Windowsの場合→ ```C:\\Users\\Sota\\Douments\\csv_file\\test.csv``` \n", - "macOSの場合→ ```/Users/Sota/Documents/csv_file/test.csv```\n", - "となる。\n", - "\n", - "注: \n", - "* Windowsの場合→\"C\"の部分は皆さんのディスク環境に依存\n", - "* Google Colab.環境では、Unix(Mac)やLinuxと同様の方式(スラッシュを使用) \n", - "* バックスラッシュ\\はWindowsの日本語環境では¥円記号で表示される \n", - "(プログラムなどを書く人には厄介な仕様だったりする) \n", - "\n", - "コンピュータには、ホームディレクトリというものが指定されておりWindowsなら ```C:\\Users\\ユーザー名```,Macなら ```/Users/ユーザー名```に通常設定されていて、ユーザーがよく使うデスクトップや写真・ドキュメントなどのフォルダはホームディレクトリ直下に配置されている。また、ホームディレクトリは```~/```で簡略化して指定することもできる。\n", - "OSにもよるが...ライトユーザーはホームディレクトリより上の階層をあまり触らないことが推奨されている(と思う)。理由は、システムファイルが入っていることが多いため。\n", - "\n", - "パスの指定の仕方にはその他にも方法があり、ピリオドやスラッシュを駆使して現在のディレクトリからの[相対パス]で指定する事もできる。たとえば...\n", - "\n", - "Home \n", - "├ Documents \n", - "│└─ AdDS2021 \n", - "││  └─ Report1 \n", - "│└─ AdDS2020 \n", - "││  └─ Report1 \n", - "││  │  └─ StudentA \n", - "││  │  └─ StudentB \n", - "││  └─ Report2 \n", - "│└─ AdDS2019 \n", - "├ Picures \n", - "︙\n", - "\n", - "こういう階層構造になっていて、現在```Home/Documents/AdDS2020/Report1```という\n", - "ディレクトリにいるとすると、そこから\n", - "* StudentAへの相対パスは ```./StudentA```\n", - "* Report2への相対パスは ```../Report2```\n", - "* AdDS2019への相対パスは ```../../AdDS2019```\n", - "* Pictureへの相対パスは```../../../Pictures```\n", - "\n", - "といった感じ。前述のように愚直にReport1フォルダを指定するときは```/Users/Sota/Documents/AdDS2020/Report1```といった感じで、これを相対パスと対比させて絶対パスと呼んだりする。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kkrEMQUfhqzA" - }, - "source": [ - "### 余談: ファイル名に使用すべきでない文字\n", - "\n", - "授業で公開しているノートブックの名前は基本的に半角英数字とアンダースコアのみで構成されている。これは別に作成者(吉田)がイキってる訳ではない。\n", - "\n", - "* 半角スペース(以下␣という記号で表現する)\n", - "* 各種括弧 (),{},[]\n", - "* カンマ ,\n", - "* ピリオド .\n", - "* ハイフン -\n", - "* スラッシュ /\n", - "* エクスクラメーションマーク !\n", - "* 円記号(バックスラッシュ) ¥\n", - "* その他、機種依存文字などはもちろん、全角記号等\n", - "\n", - "などは、(プログラムで扱う予定がある)ファイルの名前には使用しないことが推奨される。その理由は色々あるが\n", - "\n", - "1. 機械の解釈にambiguity(あいまいさ)が生じる\n", - "2. (1.により人間側の操作が増えて)面倒\n", - "\n", - "というところに尽きる。例を示そう。 \n", - "Google Colab.上では冒頭に!を付けることで、以下に例を示すようなLinuxコマンドを実行できる。\n", - "\n", - "```!ls hogehoge.pdf``` #← lsコマンド リスト(該当ファイル等)を表示 \n", - "```!mkdir hogehoge``` #← make directoryコマンド \n", - "```!rm hogehoge``` #←remove(削除)コマンド " - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "i7-Lssixk1ig" - }, - "source": [ - "たとえば半角スペースが入った```test␣.pdf```というファイルがあったとする。 \n", - "これをlsコマンドで表示させようとして\n", - "\n", - "```\n", - "!ls test .pdf\n", - "```\n", - "\n", - "という命令を行うと、```test␣.pdf```という指定ではなく```test```と```.pdf```という2つのファイルが存在するかどうかを尋ねる命令になってしまう。 \n", - "この場合、```test␣.pdf```の有無を調べたければ、別途バックスラッシュを入れて「記号としての空白です」と機械に教えなくてはならない。 \n", - "```\n", - "!ls test\\ .pdf\n", - "```\n", - "\n", - "といった具合に、人間側の手間が必要になってしまう。 \n", - "人間が目で見るフォルダ名と機械に与えるべきパスが異なるというのは...やっぱり色んな場面で不便が生じる。\n", - "上記の記号や2バイト以上の文字はファイル(フォルダ)名に使わないのがコンピューターにとっては無難なのだ。\n", - "こういうことは小中高や大学でも理由付きで教えてくれなかったりするので、プログラミングをやって初めて気がつく(気にするようになった)という人も多いかもしれない。\n" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter8_handling_files.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter8_handling_files.py b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter8_handling_files.py deleted file mode 100644 index b98dbcfb..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter8_handling_files.py +++ /dev/null @@ -1,873 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# Open In Colab - -# # ファイル・文字列操作 -# -# [この章の目的] -# text,csvやxlsx形式のデータをプログラムでサクッと扱えるようになる。 - -# この章では、テキストファイルやcsvファイル(excelファイルはおまけ$\clubsuit$)をPythonで操作する簡単な方法を学習する。 -# -# これまでの章では、データはリストとして既に与えられた状態から解析を行ったが、実際にデータを扱う際は -# 既に誰かが作成した何らかのファイルをプログラムで読み込んで操作する場合も多い。 -# この章の内容は、データ解析というよりは、Pythonでデータ解析をするための下準備に相当する。 -# -# 愚直にコードを書いている事もあり少々泥臭い部分が多いが、この章のような操作のエッセンスを抑えておけば -# 普通にやると膨大な時間がかかる様々な処理を高速化・自動化することができるので、頑張って学習しよう。 -# - -# ## 授業で使うファイルの準備 -# -# 予め以下のリンクをクリックして、ファイルをダウンロードし、 -# ご自身のGoogle Driveにアップロードしておいてください。 -# -# * [test.txt](https://drive.google.com/file/d/1U2uvrN18713ylN4OQiI2fsfX5gudL45w/view?usp=sharing) (テキストファイル) -# -# * [python_handling_test.csv](https://drive.google.com/file/d/1bYJNWdtujcQWfSBAa1UeXi2ZzJRJktil/view?usp=sharing) (csv, カンマ区切りのテキストファイル) -# -# * [kakei.xlsx](https://drive.google.com/file/d/1gJMVHivmP7R9Qf4LdqRhdPVc3x0IzD8v/view?usp=sharing) (エクセルファイル) -# -# 本章では、ファイルの場所を指定する**パス**という概念がたびたび登場する。 -# 以下のコードをそのまま使いたいという方は、マイドライブ直下に`AdDS`というフォルダを作り、さらにその中に```chapter8_data```というフォルダを作成し、ファイルをいれてください。 -# -# パスについては後の節で詳しく説明します(今気になる方は末尾をチェック)。 - -# ## テキストファイルの操作 - -# 膨大な行のテキストファイルに対して、人間が手で操作をするというのは時として非現実的です。 -# -# 誤変換を置換するくらいなら、どのテキスト/メモ帳アプリやwordでもできますが、 -# 全行(数千とか数万)に対して、決まった操作が必要な場合、プログラムにしてしまったほうが遥かに便利です。 -# -# 以下ではGoogle Driveのマイドライブの```AdDS```の下に作った```chapter8_data```というフォルダにファイルを保存したと仮定して話を進めますので、**適宜皆さんの場合に置き換えて使用してください** -# - -# まずはgoogle driveに保存した```test.txt```という名前のファイルを読み込んでみましょう。 -# 既に何回かやったようにgoogle driveをマウントします。 -# -# -# - -# In[ ]: - - -from google.colab import drive -drive.mount('/content/drive') - - -# **注意** 以後のコードは、google driveの中にあるファイルを読み書きしたりといった操作を行うため -# 上でGoogle Driveをマウントした状態でなければ実行しても多くがエラーとなる。 -# -# --- -# -# Google Driveのマウントができたら、先程のファイルがあるかlsコマンドで確かめてみよう。 -# - -# In[ ]: - - -get_ipython().system('ls /content/drive/MyDrive/AdDS/chapter8_data/*') - - -# *はワイルドカード記号で、対象を任意とする命令に相当します。 -# *.拡張子 などとして使うのも便利です。 - -# ファイルが見つからない場合は -# > No such file or directory -# -# などと表示される。 - -# > $\clubsuit$ 上のファイルをGoogle Driveに保存する方法としては -# 一度ローカルに保存したファイルをブラウザなどからアップロードする方法はもちろん -# 全てを(Linux)コマンドで行うこともできる。 -# ``` -# !git clone https://github.com/SotaYoshida/Lecture_DataScience -# !mkdir /content/drive/MyDrive/AdDS/ -# !mv Lecture_DataScience/Chapter8_data /content/drive/MyDrive/AdDS/chapter8_data -# !ls /content/drive/MyDrive/AdDS/chapter8_data -# ``` -# 1つめの行ではまず授業資料のGitHubレポジトリをColab環境で間借りしているgoogleのサーバー上にクローン(≒コピー)する。2行目でマイドライブの下にAdDSというフォルダの作成を試み、3行目でダウンロードしてきたレポジトリにある`Chapter8_data`をさっき作ったAdDSというフォルダの中に別名(先頭が小文字になっている)で移動する。 -# 最後に、どんなファイルがあるかをlsコマンドで確認している。 -# 重複する作業も多いのでこれらのコードはコードセルには書かなかったが、うまくアップロードできなかった場合やコマンドラインによるファイルの移動などをやってみたければ上の4行のコードをコードセルに貼って試してみよう。 - -# In[ ]: - - -get_ipython().system('ls /content/drive/MyDrive/AdDS/chapter8_data/*txt ') - - -# とするとマイドライブ/AdDS/chapter8_data/にある`.txt`形式のファイル一覧を表示させることができる。 -# `test.txt`が見つかったでしょうか?(DriveにアップロードしてColabから読み込みできるまでに少し時間がかかる場合がある) -# -# -# では次に、このファイルに書かれているテキストを取得してみよう。 -# 方法は幾つかあるが、最も標準的なものとして、ファイルを開いてテキストを取得する方法を試してみよう。 - -# ### テキストファイルを開いて内容を読み出す - -# In[ ]: - - -filename = "/content/drive/My Drive/AdDS/chapter8_data/test.txt" -inp = open(filename,"r") -lines = inp.readlines() -inp.close() - - -# 1行目でファイル名(正確にはファイルのパス)を指定し```filename```という変数にした。 -# -# 2行目では、指定したパスにあるファイルを開いている。 -# 今はファイルに書き込むのではなく、既にあるファイルを開いて読み込むので`"r"`というオプションを指定している。 -# 他には`"w"`(書き出し,上書き), `"a"`(書き出し,追記)などがあり、新しく上書きでファイルを作成したい場合は`"w"`,すでにあるファイルの内容は消さずに追記したい場合は`"a"`を指定して使う。 -# -# 3行目では、`inp`(ファイルを`open`して得たオブジェクト)に対して```readlines```という操作を適用している。 -# これは、ファイルに書かれているテキストを(可能なら)全行に渡って読み込みメモリにストアする関数になっている。 - -# In[ ]: - - -print(lines) - - -# とすると、全ての行が読み込まれ、変数```lines```に格納されていることがわかる。ここで```\n```は改行記号を意味する。 -# -# ループを回して一行ずつ表示させると - -# In[ ]: - - -for line in lines: - print(line) - - -# といった感じ(行ごとにスペースが生じている理由については後で説明します)。 - -# 必要な行番号が分かっている場合は、`nlines = lines[2:10]`などとして、要らないところは捨てても良い。(リストのスライスについては2章を参照) -# -# 次に、もう少し具体的なテキスト操作をしてみよう。 -# まず、上の1行ずつ表示するコードでは、改行コードを明示的に含む文字列を一行ずつ表示したため、改めて`print`すると余分なスペースが空いてしまう。 -# (`print`関数はデフォルトで末尾に改行```\n```を挿入するのでファイルにある改行記号とあわせて2回改行してしまう→[参考リンク](https://docs.python.org/ja/3/library/functions.html#print)) - -# ### strip関数 -# -# たとえば```strip()```関数を使うと、文字列に含まれる空白、タブや改行コードを消去することができる。 - -# In[ ]: - - -a = "test character\t" -b = "test2 \n" -print("a", a, "←タブが隠れている") -print("b", b, "←改行される") -### strip関数をもちいて... -print("a.strip()", a.strip(),"b.strip()",b.strip()) - - -# 先程のforループでstrip関数を適用してやると... - -# In[ ]: - - -for line in lines: - print(line.strip()) - - -# 文字列の右側に空白や改行コードが入っていることが明確な場合は -# `strip`の代わりに`rstrip`を使ってもOK(`rstrip`のrはrightの意味)。 - -# In[ ]: - - -for line in lines: - print(line.rstrip()) - - -# -# ファイルによってはインデントをするために左側にタブ```\t```が含まれる場合もあります(PythonのコードをテキストとしてPythonから読むときなどがこれに該当)。そのような場合に左側にある空白やタブのみを取り除きたければ```lstrip()```を使って取り除くことができる。 -# -# もちろんPythonではインデントが文法なので、インデントを一律で消す、といった操作は必要ないが、特定の状況では、`lstrip`も使えると便利だ。 - -# 上のファイルの文字列で`#`記号を含む行以降だけが必要な場合はどうすればいいでしょうか? -# -# 最も単純(?)な実装は - -# In[ ]: - - -hit = 0 # -for line in lines: - if "###" in line: - hit += 1 - continue - if hit == 0 : - continue #hitが0の状態では何もしない - print(line.rstrip()) - - -# といった愚直な例が考えられる。 -# つまり、`#`を含む行に到達するまでの行は無視して、それ以降の行だけをリストに格納するというもの。 -# もちろん`#`を含む行が複数あるようなケースでは、自分が実現したい操作にあわせてコードを書き換える必要がある。 -# -# 以下では、`###data`までの行が必要ないので、必要なところまでを別のリストに格納してしまおう。 -# - -# In[ ]: - - -hit = 0 # -nlines = [] -for line in lines: - if "###" in line: - hit += 1 - continue - if hit == 0 : - continue #hitが0の状態では何もしない - nlines += [line] -print(nlines) - - -# ### split関数 - -# また、1,2,3,4,5,6といったコンマやスペースで区切られたものをリストに格納したい場合には、```split```関数が便利。`split`関数は引数に何も指定しなければ、スペースや改行もしくはタブごとに文字列を区切ったリストを返す。 - -# In[ ]: - - -sample_text = "This is a\nsample\ttext." -sample_text.split() - - -# In[ ]: - - -for line in nlines: - print(line.split()) - - -# カンマがあるときはカンマで分割する、という約束を表現したければ - -# In[ ]: - - -for line in nlines: - if "," in line : - print(line.rstrip().split(",")) - else : - print(line.rstrip().split()) - - -# などとすれば良い。これを利用すれば、空のリストにファイルから読んだ要素を詰めていくといった操作も実現できる。 -# - -# In[ ]: - - -# 数字とプロフィールの空リストを作り、そこに読み込んだものを詰めていく -# その際に、数字のリストとプロフィールのリストを分けたいとする -nums = [] -profs = [] - -for line in nlines: - if "," in line : - nums += [ line.rstrip().split(",") ] - else : - profs += [ line.rstrip().split()] -print("nums", nums) -print("profs", profs) - - -# 上の`nums`の様に、予め全ての要素が整数だと分かっていて整数に対する演算(四則演算など)を後でするのなら、`str`(文字列)型ではなく`int`型にしておくほうが良いこともあるだろう。 - -# In[ ]: - - -##リスト内包表記を使った実装 -nums = [] -for line in nlines: - if "," in line : - tl = line.rstrip().split(",") - nums += [ [ int(tmp) for tmp in tl] ] -print("方法1:", nums) - -## map関数(後述)を使った実装 -nums = [] -for line in nlines: - if "," in line : - nums += [ list(map(int, line.rstrip().split(",") )) ] -print("方法2:", nums) - - -# ### replace関数 - -# `replace`関数で文字の置換が可能です - -# In[ ]: - - -text = "abcdあいうえお" -text = text.replace("abcd", "1234") -print("置換や→",text) -print("除去にも→", text.replace("4", "")) - - -# ### $\clubsuit$ map関数 -# -# `map`関数は`map(操作,対象)`という風に使って、対象の各要素に対して一括で操作を適用することができます。 -# 今の場合、`['1', ' 2', ' 3', ' 4', ' 5', ' 6']`などの文字列のリストに対して、 -# 整数型に変換する```int```関数を作用させるという操作を一度に行います。 -# -# >注: `map`関数の返り値はmap objectと呼ばれるものなので、 -# 元のようなリストの形で使いたい場合は```list()```を使ってリストに変換するステップが必要です。 -# -# 世の中には、アンケート結果や産業データなどがcsv(カンマ区切りのテキスト)ファイルで公開されている場合が多いですが、 -# その場合は**上で説明したような手順でリストなどに格納すれば今まで行ったような解析やグラフ描画が実行できる**といったわけです。 -# (もちろんcsvを読むのに便利なライブラリもありますが -# いろんな形式のファイルをプログラムで読み込む場合には -# 上のような基本的な操作を組み合わせることも必要になります。) - -# ### テキストファイルの書き出し - -# 次に、テキストファイルを書き込んで保存してみます。 -# 上の文字列で、敬称を"さん"から"様"に置換したテキストを作成して、それを別ファイルとして保存してみましょう。 -# - -# In[ ]: - - -filename = "/content/drive/My Drive/AdDS/chapter8_data/test_replace.txt" -oup = open(filename,"w") ## oup は"output"の気持ち... -for line in lines: - print(line.rstrip().replace("さん","様"), file=oup) # file=[openしたファイル]にすることで、printする先をファイルに指定できます。 -oup.close() #ファイルはきちんと閉じる. - - -# Google Driveで、作成されたファイルをチェックしてみましょう。 -# -# なお、filenameに元ファイルと同じものを指定すると```open(filename,"w")```を実行した時点で -# ファイルが上書きされて空ファイルになるので注意しましょう。 - -# 今の例ではもちろん、手で置き換えたりするほうが遥かに速いですがこうしたPythonによるファイル操作を覚えておくと -# -# * ファイル自体が大量にあり、同じ操作を繰り返す場合 -# * 単一のテキストファイルに大量の行に渡って情報がある場合 -# -# など、手作業が非現実的な様々な状況でも、楽ちんに作業を終わらせることができる(かもしれません)。 -# -# 上の内容や、これまでに学習したループ処理を駆使すると、 -# 数万人のデータが1行ずつ記載されたテキストファイルから条件にヒットする人の -# 情報だけを抽出して小さなファイルにまとめるといったことも可能です。 -# -# **プログラミングを用いたファイル操作をする発想があるかどうか**がきっとこの先 -# 皆さんの生き方や働き方に大きな影響を与えると私は考えています。 -# -# > **文字コードに関連した余談** -# Windows環境で作成されたテキストファイルを扱う際は読み込みで、文字コードによるエラーが出るかもしれない。最近ではメモ帳でもUTF-8(世界標準)を採用しているよう(→[MicrosoftのWindows blogの記事](https://blogs.windows.com/japan/2020/02/20/about-windows-and-japanese-text/))だが、古いテキストファイルだとShift-JISになっているかも。そういうときは、```open(file, "r", encoding = "shift_jis")```など、ファイルを開くときにencodingを明示的に指定する必要がある。明示的にUTF-8で保存したいときは```open(file, "w", encoding = "utf-8")```などとする。 -# 参考: [公式ドキュメント](https://docs.python.org/ja/3/howto/unicode.html#reading-and-writing-unicode-data) -# ここまで勉強してきた皆さんには「そんなの、パソコンに存在するShift-JISで書かれたテキストファイルを全てUTF-8に変換するPythonスクリプト書けばいいんじゃね?」という発想があることを期待しています。 -# - -# ## csv,エクセルファイルの操作 - -# ### アンケート分析 -# -# 冒頭の二番目のファイル[python_handling_test.csv](https://drive.google.com/file/d/1bYJNWdtujcQWfSBAa1UeXi2ZzJRJktil/view?usp=sharing)はあるアンケート結果をまとめたファイルになっています。 -# -# これは、Google フォームで作成したアンケーで、国数英社理(中学の5科目)に対する得意/苦手意識の調査を想定した疑似アンケートです。 -# -# このようなアンケート調査は事務作業や卒業研究などで頻繁に見られ、会社や大学など所属コミュニティで何らかの意思決定に用いられることも多いことでしょう。こうしたアンケート分析を行っていると、 -# * 各回答項目同士の関係が知りたい -# * 明示的な項目以外の情報も抽出したい -# -# といった要望が出てきます。今の場合でいうと、 -# * 各科目ごとの得意・苦手意識の相関を調べたい -# * 夜中(あるいは日中)にアンケートを回答した夜型(昼型)の人に見られる特徴がなにかないか? -# -# といったイメージです。そんなとき、 -# -# > 国語が得意(どちらかというと得意)と回答した方に質問です。 -# 英語についてはどうでしょうか? -# -# などと新たに設問を増やしてアンケートをやり直すというのは得策では有りません。 -# すでに得られた情報からさらなる情報を引き出すことを考えてみましょう。 -# まずは、csvファイルに記載された情報を整理してプログラムで扱いやすくすることを考えます。 -# -# > 余談: このcsvファイルをExcelで開こうとするとお使いの環境によって文字化けを起こすかと思います。これはgoogleフォームで作成されたcsvファイルの文字コードが世界標準のutf-8を使用しているのに対し、ExcelがShift-JISという時代遅れな文字コードでcsvファイルを開こうとするためです。Googleのスプレッドシートや、Mac標準のNumbersで開くと文字化けしません。 -# -# > 2000件の回答は、もちろん私が手作業で入力したわけでも誰かに協力してもらったわけでもなく、一定のルール(傾向)を勝手に設定した上でランダムに回答を作成しフォームから自動回答するPythonスクリプトを書きました。 -# 時間に余裕があれば、こうしたWeb操作を自動化する方法も授業で扱います。 c.f. ブラウザ操作, Webスクレイピング - -# In[ ]: - - -filename = "/content/drive/My Drive/AdDS/chapter8_data/python_handling_test.csv" #読み込むファイルのパスの指定 - - -# とりあえずファイルの中身を数行表示してみる。 -# -# csvファイル(コンマ区切りのテキスト)なので、テキストファイルと同じ方法をとる(他の方法ももちろんある) - -# In[ ]: - - -inp=open(filename,"r") -csv_lines=inp.readlines() -inp.close() -print("行数は",len(csv_lines)) -for i in range(5): - print(csv_lines[i].rstrip()) - - -# ちなみに...```pandas```ライブラリを使うとcsvをサクッと読み込むことができる - -# In[ ]: - - -import pandas as pd -df = pd.read_csv(filename) -print(df) - - -# さて、```csv_lines```に格納したデータをもう少し扱いやすいように変更しよう。 -# 最初の0行目はどういうデータが入っているか(データの項目)を表している。 -# 1-2000行目には2000人分の回答が詰まっている。 -# -# これによると、 -# > 0列目: 回答した時刻 -# > 1列目: 性別 -# > 2列目: 国語 -# > 3列目: 数学 -# > 4列目: 英語 -# > 5列目: 社会 -# > 6列目: 理科 -# -# らしい。いろいろなデータの整理方法があると思うがここでは、 -# * 処理A 0列目の時刻を24時間表記にして表示する -# * 処理B 2-6列目の各科目の得意・苦手意識を、文字列を除去して数値[-2,-1,0,1,2]として扱う -# -# をまずやってみよう。 -# -# -# -# -# - -# In[ ]: - - -#処理Aのための関数 -#input_strが、"年月日 時刻(h:m:s) 午前/午後 GMT+9" という文字列である、という文字列の[構造]を知った上での実装になっていることに注意 -def make_time_24h(input_str): - time = input_str.split()[1] - AMPM = input_str.split()[2] - hms = time.split(":") - h = int(hms[0]) - if AMPM == "午前": - output_str = time - else : - if h != 12: - output_str = str(h +12)+":"+hms[1]+":"+hms[2] - else: - output_str = str(h)+":"+hms[1]+":"+hms[2] # 12時xx分だけは別の取り扱いが必要 - return output_str - -nlines=[] #整理したものをリストとしてまとめるための空のリスト -for nth,line in enumerate(csv_lines[1:]): - nline = line.rstrip().replace('"','').split(",") # 改行文字の除去、ダブルクォーテーションの除去, カンマで分割 - # この時点でnlineは0:時刻 1:性別, ...のリストとなっているはず print()でcheckしてみよう - # 処理A) - time = make_time_24h(nline[0]) - #print("nline[0]", nline[0], "time", time) - M_or_F = nline[1] #性別 - - # 処理B) - points = [ int(nline[k].split()[0]) for k in range(2,7)] #各科目の値だけのリスト(points)を作成 - # 上記をmap関数にしてみよう。 - - nline = [time, M_or_F]+points #リストを連結(時刻,性別と各科目の値を同じ階層で結合)して、nlineという名前で上書き - nlines += [ nline ] - - # うまく編集できたか400行おきほどでprintしてチェックしてみる - if nth % 400 == 0 : - print("編集前", line.rstrip()) - print("編集後", nline) - print("") - - -# 最後に、各項目の得点を適当なリスト(あるいはnp.array)に整形しておけば、種々の分析を行うことができます。 -# -# - -# In[ ]: - - -import numpy as np -points = [ [] for i in range(5)] -for tmp in nlines: - for i in range(5): - points[i]+=[tmp[2+i]] -print("points", np.array(points)) -print("各科目の平均スコア:", [np.mean(points[i]) for i in range(5)]) - - -# 相関分析は以降の章で扱うので具体例は省略します。 -# - -# ## $\clubsuit$ 複雑なエクセルファイルの操作 -# -# ```kakei.xlsx```はエクセルファイルで以降では、2020年度前期のデータサイエンス入門(一部学科を除く)の -# 相関分析で使用されたエクセルファイル、[kakei.xlsx](https://drive.google.com/file/d/1gJMVHivmP7R9Qf4LdqRhdPVc3x0IzD8v/view?usp=sharing)を使用します。 -# -# -# 以下では、上と同じディレクトリに`kakei.xlsx`を置いたと仮定して -# 処理を行いますので、適宜ご自身の環境にパスを置き換えてください。 -# -# ※もともとはxlrdというライブラリを使って実装していましたが.xlsx形式をサポートしなくなるとのことで、pandasライブラリを用いた実装に変更しました。 - -# In[ ]: - - -filename = "/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx" #読み込むファイルのパスの指定 - - -# まずはxlsxファイルをPythonで読み込んで、どんな"シート"があるのかを確認してみましょう。 - -# In[ ]: - - -import pandas as pd -input_file = pd.ExcelFile(filename) -sheet_names = input_file.sheet_names -print("pandas: シート名",sheet_names) - - -# たくさんシートがあることが分かります。 -# - -# Sheet1の中身をのぞいてみましょう。まずは行と列の数を取得してみます。 - -# In[ ]: - - -Sheet1 = pd.read_excel(filename, sheet_name="Sheet1") -print("行,列の数", Sheet1.shape) - - -# 0-5番目の行にはどんな値がセルに入っているのかな...と思ったら - -# In[ ]: - - -for i in range(5): - print( list(Sheet1.iloc[i]) ) - - -# などとする。このように、扱いたいファイルの"構造"を知ることが -# やりたい操作を系統的に実行するための第一歩です。 -# このエクセルを実際に開くとSheet1からSheet12までが複数都市の家計調査のデータで -# S1からS12までが気候データになっていて -# 1-12までの数字が2017年の1月から12月までに対応していることが分かります。 -# -# 実際のデータを触っていると「2006年までとそれ以降とでデータファイル(.xlsx)の"構造"が違う」 -# といったことも出てきます。 -# 最初は特定のものに合わせたコードを作り、徐々に"汎用性の高い"コードにしていくのがよいでしょう。 -# -# このエクセルを使って実際に作業をするには、[細かいライブラリの使い方]などを説明することになるため -# 授業ではやらず、以下の"おまけ"にいれておきます。この作業や実践DSに限らず -# * 自分がやりたい操作をきちんと言語化する -# * 公式ドキュメントやWebから情報を探す -# * とにかく試してみる -# -# という意識が重要です。 -# - -# ### $\clubsuit$$\clubsuit$おまけ -# -# 以下のコードは、プログラミングの"ありがたみ"を感じてもらうためのお試し用です。 -# (昔書いたかなり読みにくいコードなのであまり真剣に読まないでください.) -# -# **大量の画像ファイルをドライブに生成するので、以下を読んだ上で実行してください** -# -# 以下のコードたちを何もいじらずに実行すると、 -# 全都市の月別平均気温と全品目の世帯平均支出のうち、 -# 相関係数の絶対値が0.9以上のもの(291通り)をプロットして画像として保存します。 -# ```pthre```の値を小さくすると、生成される画像の数がとんでもなく増えるのでやらないでください。 -# -# (0.9 → 291通り, 0.8 → 1234通り, 0.7 → 2871通り, -# 0.6 → 5233通り, 0.5 → 8375通り, 0.0 → 32876通り) -# -# Google Colab上で実行して291枚の画像が生成されるまでに80~150秒程度かかるようです。 -# -# この時間未満でエクセルで操作をして同様の処理を完了出来るという方は...おそらく地球上にいないでしょう(要出典) -# -# - -# In[ ]: - - -# 画像がいっぱい生成されると面倒なので画像を保存するフォルダを作成しておく -get_ipython().system('mkdir /content/drive/MyDrive/AdDS/chapter8_data/kakei_cor_pic ') - - -# In[ ]: - - -get_ipython().system('pip install japanize_matplotlib ') - - -# In[ ]: - - -import numpy as np -import pandas as pd -from matplotlib import pyplot as plt -import japanize_matplotlib -import time - -class ebook: - def __init__(self,inpf): - self.input_file = pd.ExcelFile(filename) - sheet_names = input_file.sheet_names - self.sname = sheet_names - self.ns = len(sheet_names) - print("pandas: シート名",sheet_names) - print("self.ns", self.ns) - - s_kikou=[]; s_kakei=[] - for i, sheetname in enumerate(self.sname): - if "Sheet" in sheetname : - s_kakei += [ i ] - elif "S" in sheetname : - s_kikou += [ i ] - self.s_kakei,self.s_kikou = s_kakei,s_kikou - def indices(self): - return self.s_kakei, self.s_kikou - def readkakei(self,ikakei) : - ws = self.input_file.parse(sheet_name=self.sname[ikakei]) - nr = ws.shape[0] - premode = True - items = [] - for ii in range(nr): - trow = list(ws.iloc[ii]) - hit = 0 - if premode == True: - for jj,tmp in enumerate(trow): - if type(tmp) is str: - if "市" in tmp: - hit += 1 - if hit > 5: - premode=False - i_kakei=[];p_kakei=[] - for jj,tmp in enumerate(trow): - if type(tmp) is str: - if "市" in tmp: - i_kakei += [jj] - p_kakei +=[ tmp ] - v_kakei = [ ] - else: - if ii >= 22: - if type(trow[8]) is str and trow[8] != "": - v_kakei += [ [trow[jj+1] for jj in i_kakei] ] - items += [trow[8]] - return i_kakei, p_kakei, v_kakei,items - def readkikou(self,ikikou): - ws = self.input_file.parse(sheet_name=self.sname[ikikou], header=None) - nr = ws.shape[0] - quantities = [];v_kikou=[] - premode=True - for ii in range(nr): - trow = list(ws.iloc[ii]) - if premode : - if any(["市" in str(tmp) for tmp in trow]): - Tplaces = trow[1:] - premode=False - else: - quantities += [ trow[0] ] - v_kikou += [ trow[1:] ] - return Tplaces, v_kikou,quantities - -def seasoncolor(month): - if month <= 2 or month ==12: - return "blue" - elif 3 <= month <=5: - return "green" - elif 6 <= month <=8: - return "red" - elif 9<= month <=11: - return "orange" - return tcol - -def plot_cor(x,y,item,quantity,place,corrcoef): - fig = plt.figure(figsize=(4,4)) - ax = fig.add_subplot(1,1,1) - ax.set_facecolor("#e0e0e0") - ax.set_title(place+" r="+str("%8.2f" % corrcoef).strip()) - ax.set_xlabel(item);ax.set_ylabel(quantity) - ax.grid(True,axis="both",color="w", linestyle="dotted", linewidth=0.8) - for i in range(len(x)): - tcol=seasoncolor(i+1) - ax.scatter(x[i],y[i],marker="o",s=5,color=tcol,zorder=20000,alpha=0.7) - ax.text(x[i],y[i],str(i+1)+"月",color="k",fontsize=8) - plt.savefig(oupdir + "corr_"+item+"vs"+quantity+"_at_"+place+".png",dpi=300) - plt.close() - -def calcor(date,places,items, Vs_kakei,Tplaces,quantities,Vs_kikou): - hit = 0; num_pic=0 - Vs = [] - for j_K,place in enumerate(places): - for j_T, Tplace in enumerate(Tplaces): - if place != Tplace : - continue - for ik,item in enumerate(items): - kvalue = np.array([ Vs_kakei[i][ik][j_K] for i in range(len(Vs_kakei))]) - quantity=quantities[iT] - Tvalue = np.array([ Vs_kikou[i][iT][j_T] for i in range(len(Vs_kikou))]) - if all(Tvalue) == 0.0: ## missing value in climate data - continue - if printlog: - print("@", place," ",item,kvalue," VS ",quantity, ",",Tvalue) - corrcoef=np.corrcoef(kvalue,Tvalue)[0][1] - Vs += [ [ corrcoef, item, quantity, place] ] - if abs(corrcoef) > pthre: - hit += 1 - if pltmode==True: - plot_cor(kvalue,Tvalue,item,quantity,place,corrcoef) - num_pic += 1 - print("hit:",hit, " number of picture", num_pic) - -if __name__ == "__main__": - ti=time.time() - T=True; F=False - - inpf = "/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx" - oupdir = "/content/drive/My Drive/AdDS/chapter8_data/kakei_cor_pic/" #適宜置き換える - iT = 6 # iT=6: 日平均気温 - printlog= F #条件にhitした都市の品目と気候データを逐次printするかどうか. (Fを推奨) - pthre= 0.90 ## corrplotを描く相関係数のthreshold - pltmode = T ## T:plotする F:計算のみ ** 画像をいちいちplotして保存する必要がない場合Fを推奨 - year="2017" - - wb=ebook(inpf) - s_kakei,s_kikou=wb.indices() - Vs_kakei=[]; Vs_kikou=[];dates=[] - for i,ind_kakei in enumerate(s_kakei): - i_places,places, v_kakei,items = wb.readkakei(ind_kakei) - Tplaces, v_kikou, quantities = wb.readkikou(s_kikou[i]) - if i+1 < 10: - date=year+"0"+str(i+1) - else: - date=year+str(i+1) - dates += [date] - Vs_kakei += [ v_kakei ] - Vs_kikou += [ v_kikou ] - calcor(dates,places,items,Vs_kakei,Tplaces,quantities,Vs_kikou) - - tf=time.time() - print("Elapced time[sec]:", tf-ti) - - -# ## 余談: 電子ファイルのフォーマット -# -# プログラムでデータを機械的に読み出して活用することで、人間が到底出来ないような作業効率を実現することができる場合も多い。 -# そんな光の側面ばかりなら良いが、実際にはそう上手くは行かないことも多い。 -# -# 業務のデジタル化・デジタルトランスフォーメーションなどといった標語とは裏腹に、世の中にあふれるcsv,スプレッドシートなどは、 -# csvと謳っておいて、実際にはカンマ区切りではなくタブ区切りであったり、機械判読を全く想定していないデータの書き方・並べ方となっているものが多く、プログラムを書ける人にとっては苦痛な状況も多い。 -# -# 総務省統計局は令和2年2月に、政府統計(e-Stat)に関して[統計表における機械判読可能なデータの表記方法の統一ルールの策定](https://www.soumu.go.jp/menu_news/s-news/01toukatsu01_02000186.html)というものを出している。 -# これが最適な提案かはさておき、データの記述に法則性と機械判読性をもたせる意識を全員が持つことが重要なように思う。 -# -# お掃除ロボットが床を綺麗にするためには、まずお掃除ロボットが走れるよう掃除する(床に物が散乱していない)という条件が求められる、という話だ(そうなの?)。 - -# ## パスの指定 -# -# ファイルがコンピュータ上でどこにあるかを指し示す文字列はファイルパス(path)と呼ばれる。 -# ```"/content/drive/My Drive/XXX.png"```もファイルパスの一例になっている。 -# -# たとえば... -# >[Sota]というユーザの[ドキュメント] (あるいは[書類])フォルダに -# [csv_file]というフォルダがあり[test.csv]というcsvファイルが入っている -# -# とするとそのファイルを指し示すパスは -# Windowsの場合→ ```C:\Users\Sota\Douments\csv_file\test.csv``` -# macOSの場合→ ```/Users/Sota/Documents/csv_file/test.csv``` -# となる。 -# -# 注: -# * Windowsの場合→"C"の部分は皆さんのディスク環境に依存 -# * Google Colab.環境では、Unix(Mac)やLinuxと同様の方式(スラッシュを使用) -# * バックスラッシュ\はWindowsの日本語環境では¥円記号で表示される -# (プログラムなどを書く人には厄介な仕様だったりする) -# -# コンピュータには、ホームディレクトリというものが指定されておりWindowsなら ```C:\Users\ユーザー名```,Macなら ```/Users/ユーザー名```に通常設定されていて、ユーザーがよく使うデスクトップや写真・ドキュメントなどのフォルダはホームディレクトリ直下に配置されている。また、ホームディレクトリは```~/```で簡略化して指定することもできる。 -# OSにもよるが...ライトユーザーはホームディレクトリより上の階層をあまり触らないことが推奨されている(と思う)。理由は、システムファイルが入っていることが多いため。 -# -# パスの指定の仕方にはその他にも方法があり、ピリオドやスラッシュを駆使して現在のディレクトリからの[相対パス]で指定する事もできる。たとえば... -# -# Home -# ├ Documents -# │└─ AdDS2021 -# ││  └─ Report1 -# │└─ AdDS2020 -# ││  └─ Report1 -# ││  │  └─ StudentA -# ││  │  └─ StudentB -# ││  └─ Report2 -# │└─ AdDS2019 -# ├ Picures -# ︙ -# -# こういう階層構造になっていて、現在```Home/Documents/AdDS2020/Report1```という -# ディレクトリにいるとすると、そこから -# * StudentAへの相対パスは ```./StudentA``` -# * Report2への相対パスは ```../Report2``` -# * AdDS2019への相対パスは ```../../AdDS2019``` -# * Pictureへの相対パスは```../../../Pictures``` -# -# といった感じ。前述のように愚直にReport1フォルダを指定するときは```/Users/Sota/Documents/AdDS2020/Report1```といった感じで、これを相対パスと対比させて絶対パスと呼んだりする。 - -# ### 余談: ファイル名に使用すべきでない文字 -# -# 授業で公開しているノートブックの名前は基本的に半角英数字とアンダースコアのみで構成されている。これは別に作成者(吉田)がイキってる訳ではない。 -# -# * 半角スペース(以下␣という記号で表現する) -# * 各種括弧 (),{},[] -# * カンマ , -# * ピリオド . -# * ハイフン - -# * スラッシュ / -# * エクスクラメーションマーク ! -# * 円記号(バックスラッシュ) ¥ -# * その他、機種依存文字などはもちろん、全角記号等 -# -# などは、(プログラムで扱う予定がある)ファイルの名前には使用しないことが推奨される。その理由は色々あるが -# -# 1. 機械の解釈にambiguity(あいまいさ)が生じる -# 2. (1.により人間側の操作が増えて)面倒 -# -# というところに尽きる。例を示そう。 -# Google Colab.上では冒頭に!を付けることで、以下に例を示すようなLinuxコマンドを実行できる。 -# -# ```!ls hogehoge.pdf``` #← lsコマンド リスト(該当ファイル等)を表示 -# ```!mkdir hogehoge``` #← make directoryコマンド -# ```!rm hogehoge``` #←remove(削除)コマンド - -# たとえば半角スペースが入った```test␣.pdf```というファイルがあったとする。 -# これをlsコマンドで表示させようとして -# -# ``` -# !ls test .pdf -# ``` -# -# という命令を行うと、```test␣.pdf```という指定ではなく```test```と```.pdf```という2つのファイルが存在するかどうかを尋ねる命令になってしまう。 -# この場合、```test␣.pdf```の有無を調べたければ、別途バックスラッシュを入れて「記号としての空白です」と機械に教えなくてはならない。 -# ``` -# !ls test\ .pdf -# ``` -# -# といった具合に、人間側の手間が必要になってしまう。 -# 人間が目で見るフォルダ名と機械に与えるべきパスが異なるというのは...やっぱり色んな場面で不便が生じる。 -# 上記の記号や2バイト以上の文字はファイル(フォルダ)名に使わないのがコンピューターにとっては無難なのだ。 -# こういうことは小中高や大学でも理由付きで教えてくれなかったりするので、プログラミングをやって初めて気がつく(気にするようになった)という人も多いかもしれない。 -# diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb deleted file mode 100644 index 153b4687..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb +++ /dev/null @@ -1,1186 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sKor3X3ievgT" - }, - "source": [ - "# 機械学習: ニューラルネットワークによる回帰" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4qZBy99AnBTn" - }, - "source": [ - "\n", - "\n", - "この章では、最も単純な、入力層・隠れ層・出力層からなるニューラルネットワークを使って、データから尤もらしい予測を与える関数を構築してみましょう。\n", - "\n", - "対象とする(疑似)データは、多項式回帰の際に用いたデータと同じsin関数+ノイズで生成することにします。\n", - "\n", - "\n", - "* すすんだ注: このノートブックでは「ニューラルネットワークをPythonで表現してみる」ことに重きをおくため、使用するデータを訓練データ,検証データ,テストデータに分けることはせず、データは全てニューラルネットワークの訓練データとして使うこととします。\n", - "授業で説明するとおり、一般に[教師あり学習]の文脈でニューラルネットワークを考える際は、本来データを上の様に複数用途に分けながら、モデル選択を行ったり、汎化性能の評価に使ったりします。" - ] - }, - { - "cell_type": "code", - "execution_count": 135, - "metadata": { - "id": "nme6EtxcerdN", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "def create_toy_data(sample_size, std):\n", - " np.random.seed(1234) #毎回同じデータになるように乱数の種を固定しておく \n", - " x = np.linspace(0, 0.5, sample_size)\n", - " t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape) \n", - " return x, t\n", - "\n", - "xt,yt = create_toy_data(40,5.e-2) " - ] - }, - { - "cell_type": "code", - "execution_count": 136, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "kZDRP8GFCSl1", - "outputId": "b2d6c33e-26ad-45d1-ed2a-30b914602522", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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3ok2PhEROXDff+/f3998E3r29GbbRx8NTz8NVarAiy9GHWF6UhImAHz4oU9FFm6WaubHp0+PJi4RETl4b78NP/+592XMzwwuucT3+5XEUxImgO/1uH597HPr1vl5ERFJTiH4jiWxlCunkpOoKAkTAAYNguee84Qrv5wcePll3xxWRESS08kn+4xG4VXvIcCzz8Lpp0cTV7pTEiYANG/um2h37+41AvPmweOPwwknwC23lHxLIhERKXsOO8xXvffu7clYCL7n75VX+pvvwYOjjjA9adsi+cltt0GXLvCPf8CDD0KzZjBqFJxyStSRiUX5fHwAABHUSURBVIjIwbrlFqhbF379a1i5EipVgiFDYNq0vAVZklgW4jgRbGa9gYeBDOCJEML/FXPdAOAloHMIIXtvHzMrKytkZ+/1EhERESlGCLBliydhGRlRR5P6zGxuCCEr1rm4TUeaWQYwAugDtAIGm1mrGNdVA64DZsUrFhEREXFm3pJICVj04lkT1gVYFkJYHkLYDowF+se47i7gz8DWOMYiIiIiUqbEMwmrB6zO9zon99hPzKwj0CCEMHlvH8jMhppZtpllry+uj4KIiIhIEolsdaSZlQMeBH67r2tDCCNDCFkhhKzMzMz4ByciIiISZ/FMwtYA+Xvz1s89tkc1oA3wrpmtALoBE80sZvGaiIiISCqJZxI2B2hmZk3MrCIwCPhpY4QQwsYQQu0QQuMQQmPgI6DfvlZHioiIiKSCuCVhIYSdwHBgKrAYGBdCWGhmd5pZv3h9XhEREZFkENdmrSGEKcCUQsduLebak+IZi4iIiEhZom2LRERERCKgJExEREQkAkrCRERERCKgJExEREQkAkrCRERERCKgJExEREQkAnFtUSEiIiLJb+1aWLAAateGDh3ALOqIUoOSMBEREYlpyxa46ip49VU49lhYuRKqVIFnnvFkTA6OkjARERGJ6bLLYNcuWLECqleHEOCFF6B3b/j0Uzj88KgjTG6qCRMREZEivvoK3nwTnnrKEzDwacgLL4T+/eHxx6ONLxUoCRMREZEi5syBE0+EQw4peq5vX/joo8THlGqUhImIiEgRNWvC11/HPvf1135eDo6SsBS2bh3cfz9ccw389a/w7bdRRyQiIsnipJNg1Sp4772Cx3/8ER55BIYMiSSslKIkLEVNmgTHHAOLF0PTpjB7NrRo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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_4_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "###グラフにしてみる\n", - "import matplotlib.pyplot as plt\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qG3GbElypvo7" - }, - "source": [ - "ではいくつか必要な関数を適宜定義しながら進めていきましょう。\n", - "\n", - "*注: 以下のコードは入力・出力ともに1次元かつ、決まったニューラルネットワーク構造の場合に対して書かれているため、naiveに2層以上の隠れ層を持つニューラルネットワークに拡張するのはstraightfowardではなく、また効率的ではありません。" - ] - }, - { - "cell_type": "code", - "execution_count": 137, - "metadata": { - "id": "uRYnoX_rhm6U", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "nhl = 8 ## 隠れ層のノードの数を指定 これを増やすほどニューラルネットワークの表現能力が上がる一方、データに過適合しやすくなる(例外あり)" - ] - }, - { - "cell_type": "code", - "execution_count": 138, - "metadata": { - "id": "9NjbaZrFpw0K", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#重み行列W,V(今はベクトル)と、隠れ層でのバイアスbs,出力層でのバイアスを正規乱数で初期化\n", - "np.random.seed(1234) #結果が実行ごとに同じになるよう乱数を固定(バグを見つけやすくする)\n", - "W = np.random.normal(0.0,1.0,nhl)\n", - "V = np.random.normal(0.0,1.0,nhl)\n", - "bs = np.random.normal(0.0,1.0,nhl)\n", - "b0 = np.random.normal()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OqSaHMtth5to" - }, - "source": [ - "隠れ層で作用させる活性化関数を定義しておきましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": 139, - "metadata": { - "id": "z8XFRbf6h6q9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#シグモイド関数: 活性化関数の一つ\n", - "def sigmoid(z):\n", - " return 1.0/(1.0+np.exp(-z))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iHf3g_gsiENm" - }, - "source": [ - "最適化したい量(データとモデルの齟齬を表す量)を目的関数(target function)やloss functionなどと呼びます。(以下でもそれに倣う)\n", - "\n", - "以下では、データとANNのアウトプットの二乗誤差を目的関数として定めることにします。" - ] - }, - { - "cell_type": "code", - "execution_count": 140, - "metadata": { - "id": "AsIEltHxiEY4", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "### データとANNの出力間の二乗誤差を計算する関数を作っておく。\n", - "def calc_tloss(x,y,tW,tV,tbs,tb0,acf):\n", - " nhl = len(tW)\n", - " s=0.0\n", - " for i in range(len(x)):\n", - " s += (np.dot(tV, acf(tW*x[i]+tbs)) + tb0 - y[i])**2\n", - " return s" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Q_QhyjGnQVyJ" - }, - "source": [ - "上ではcalc_tlossの引数にacfという変数を指定し、acfにsigmoidを指定しました。 \n", - "この様にしておくと、sigmoid関数以外の活性化関数を使う際にも、上のcalc_tloss関数が使いまわせますね。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6P_hprmIWE0w" - }, - "source": [ - "## データの下処理\n", - "\n", - "機械学習などの分析では、データの値を中心0,分散1に変換して扱うのが基本です。\n", - "\n", - "このことを、データの標準化と呼びます。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 141, - "metadata": { - "id": "ABVMF4Y9WCBN", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "ymean = np.mean(yt)\n", - "ystd = np.std(yt)\n", - "ny = (np.array(yt)-ymean)/ ystd #それぞれのデータを平均をひいて標準偏差で割る" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p_n9AjxUYWUr" - }, - "source": [ - "なぜ標準化が必要なのかは、今のような1次元入力データの場合よりもむしろ多変数を扱う際を考えてみるとわかります。\n", - "\n", - "変数ごとに標準的なスケールが違う値を扱う場合、スケールの大きな量に学習が引っ張られる、ということが起こりえます。\n", - "\n", - "たとえば目的関数を[体重と身長、それぞれについての二乗誤差の和]とする場合、 \n", - "データが50kg、ニューラルネットワークの予測が55kgで10%違っていても、二乗誤差の値は25ですが、 \n", - "身長が180cm vs 198cmと10%違っていたら、二乗誤差の値は324となります。 \n", - "したがって、目的関数は身長の予測精度により強く依存することになり、 \n", - "身長をより重視する(きちんと再現する)方向へ、ニューラルネットワークの学習が引っ張られてしまいます。\n", - "\n", - "もちろん、身長をより高い精度で推測したいニューラルネットワークを構築したいなら話は別ですが、 \n", - "特定の値を特別視しない(全ての量を平等に扱う)のなら、通常は標準化を行います。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 142, - "metadata": { - "id": "e01pxFk0Qiuj", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "acf = sigmoid #sigmoid関数をacfという名前で使う" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eUXQaPuVQ_FR" - }, - "source": [ - "さて、初期値W,V,bs,b0と活性化関数にsigmoidを選んだニューラルネットワークとデータの値の二乗誤差は..." - ] - }, - { - "cell_type": "code", - "execution_count": 143, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Xsdv35IfQ_bs", - "outputId": "958a2fc0-1afa-4736-bde7-4c3051d1aedb", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "初期値での二乗誤差 61.29358546868393\n" - ] - } - ], - "source": [ - "print(\"初期値での二乗誤差\",calc_tloss(xt,ny,W,V,bs,b0,acf))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q5o7mlnFMPLF" - }, - "source": [ - "データ1個あたり、ニューラルネットワークとデータ値との間にどれくらい誤差があるかというと..." - ] - }, - { - "cell_type": "code", - "execution_count": 144, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "84AJ8uM3MYxi", - "outputId": "a374719e-bd7f-4d97-ad61-2d02ef322096", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "データ1個あたりの誤差: 1.2378770684995737\n" - ] - } - ], - "source": [ - "print(\"データ1個あたりの誤差:\", np.sqrt(calc_tloss(xt,ny,W,V,bs,b0,acf)/len(xt))) #データ1個あたりどれほど誤差*があるか *標準化された誤差" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iV0s8cpJrN2e" - }, - "source": [ - "ランダムに生成した重み(W,V)やバイアス項(bs,b0)では、まだニューラルネットワークは訓練がなされていないデタラメな関数なので、図にプロットしてみると...\n" - ] - }, - { - "cell_type": "code", - "execution_count": 145, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "pSmbEHP9MhfL", - "outputId": "3b7c5b66-55f3-4e47-dfca-3e5e2184ae62", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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sVtv9ZatIh99BKNHw7Bhyc8791zo2RM+/tgH8E+YAG+9BVdfDQsWJD/nmWdg4EDo3RvefRdGjvSWtjPOSJ4EppqF2HecAXJyckJubm7UYYiIiEg5+eYbOPNM+O9/4eSTYflyb7F65BE466ySxy9YAKee6sdVSxhYddttsG4dPPhgfPmmTXDAATBtGhx+eHF5fj4cd5wne7/6Vfm+LwAzmxtCyElWp5YwERERidR++8HMmfDPf0Lz5jBgAKxYkTwBA1iyBHJySiZgAN26eX2it9/27srYBAwgOxuuuAImTtztt7HTNDBfREREImcGxxzjXzvStKm3hhUUQFZCc9Knn3p9oo0boW7d5M9Xty5s2LDzMe8utYSJiIhIRuncGerUgYceii/Py4O//hUuu6zkOd27w6xZsGZNybqJE+GEE1IT6/aoJUxEREQyihmMHw+nnAJTp/r3FSvgySfhppuSL+5arx4MHQr9+sFjj0GrVt76NXKkL3Nx333pfx9KwkRERCTjtG7t2x0984zvN1mvno8ra9my9HPuugvuvBN69PAuyHXrvIXszTf9/HTT7EgRERGpUjZt8pazffaBBg1S+1rbmx2pljARERGpUmrW9Ja0qGlgvoiIiEgElISJiIiIREBJmIiIiEgElISJiIiIREBJmIiIiEgElISJiIiIREBJmIiIiEgElISJiIiIRECLtcZYsQIefxy+/BLatoULLoCGDXd83oYN8O23UL++LwAnIiIisiNqCSs0bpzvyv7tt9CtG3z2GbRvD6+/Xvo5P/4IV1wBjRpBTg40bgw33gibN6cvbhEREclMSsKAvDwYPhzeegseeAAuuwzGjIGJE2HQIPj555Ln5OdD796wcaMnbKtWwZw5vpnoeeel/z2IiIhIZlESBjz5pCdb7dvHlx93nLdwTZpU8pzp0z05GzMGfvlLL2vRwhO3996DTz5JedgiIiKSwZSE4S1hBx+cvK5dO/jqq5Llr7wCAwdCVsJvsGZNOOssrxcREREpjZIwPNF6//3kde+9lzxBq17duyKT2bDB60VERERKk9IkzMx6mtliM1tqZjcmqa9pZs8U1s8ys+apjKc0Q4bAjBkwZUp8+UMPwdq10KtXyXP694cnnvCEK9a6dfDcc9C3b+riFRERkcyXsiUqzCwbGAWcDOQBc8xscghhYcxhlwDfhRBamtkg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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_22_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xp = np.linspace(0.0,0.5,300)\n", - "yp = np.array([np.dot(V, sigmoid(W*xp[i]+bs)) for i in range(len(xp))])\n", - "\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\") \n", - "ax.plot(xp,yp*ystd+ymean,label=\"ANN\") #ニューラルネットワークの予測ypは、\"標準化された\"yの値に従って学習されているので、元のスケールに戻さないといけない。\n", - "ax.legend()\n", - "plt.show(); plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zfYX7Od8NEDt" - }, - "source": [ - "当然ですが、全然だめですね。\n", - "\n", - "状況を改善するためにニューラルネットワークのパラメータを徐々に更新(学習)していきましょう。 \n", - "そのためには、まず勾配を計算する関数を用意しておきます。\n", - "\n", - "loss functionを$f$と書くことにすると、必要な勾配は4種類で\n", - "$\\frac{\\partial f}{\\partial W}, \\frac{\\partial f}{\\partial V}, \\frac{\\partial f}{\\partial b}, \\frac{\\partial f}{\\partial b_0}$です。 \n", - "プログラムではそれぞれ```dw,dv,dbs,db0```とでも名前をつけることにして、勾配を返り値として与える関数を定義します。\n", - "\n", - "以下では、勾配降下法, Adamの2通りの最適化手法を用いてパラメータを更新することとします。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wOxttwbLdc1E" - }, - "source": [ - "## 勾配降下法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nyeC4YIfjnua" - }, - "source": [ - "勾配降下法とは、目的関数を微分した勾配の値のみを使ってパラメータを更新する方法です。 \n", - "たとえば,重み$W$の$i$番目を更新する際には \n", - "$W_i := W_i - \\eta \\frac{\\partial f}{\\partial W_i}$ \n", - "とします。($f$は目的関数で、$\\eta$は学習率(パラメータ更新のスケールを決めるパラメータ)です。)" - ] - }, - { - "cell_type": "code", - "execution_count": 146, - "metadata": { - "id": "xyL8Tvp1r6F-", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def calc_der(x,y,tW,tV,tbs,tb0,acf,acfder):\n", - " tdw = np.zeros(nhl)\n", - " tdv = np.zeros(nhl)\n", - " tdbs = np.zeros(nhl)\n", - " tdb0 = 0.0\n", - " #以下の勾配の計算は、目的関数が二乗誤差かつ全データでの勾配の和を使用する場合にのみ正しい\n", - " for i in range(len(x)):\n", - " g = np.dot(tV, acf(tW*x[i]+tbs) ) + tb0 - y[i]\n", - " tdb0 += 2.0 * g\n", - " for jth in range(nhl): \n", - " tdv[jth] += 2.0 * g * acf(tW[jth]*x[i]+tbs[jth])\n", - " tdw[jth] += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth]) *x[i]\n", - " tdbs[jth] += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth])\n", - " return tdw, tdv, tdbs, tdb0\n", - "\n", - "#シグモイド関数の微分: 勾配の計算を具体的に求めるのに使う\n", - "def sigmoid_der(z):\n", - " return np.exp(-z)/ ((1.0+np.exp(-z))**2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UOWJiYG6Nrp5" - }, - "source": [ - "さてW,V,bs,b0の初期値での勾配の値は" - ] - }, - { - "cell_type": "code", - "execution_count": 147, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "6Px2oXdcNzTQ", - "outputId": "413b3795-ca17-4929-b956-278ea19b15f9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([ 5.21872673e-02, -8.03960749e+00, 1.83009108e+00, 1.91103332e+00,\n", - " 3.24927634e+00, -7.23670010e+00, -1.12232153e+00, 7.58282404e-03]),\n", - " array([36.82875279, 29.24447765, 49.19261588, 9.67161219, 23.84412956,\n", - " 23.11524231, 35.19158249, 35.04412075]),\n", - " array([ 2.14818071e-01, -3.23527933e+01, 9.04076394e+00, 8.00770445e+00,\n", - " 1.34159140e+01, -2.80674027e+01, -4.66782630e+00, 2.97730658e-02]),\n", - " 58.69466810466825)" - ] - }, - "execution_count": 147, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "acf = sigmoid\n", - "acfder = sigmoid_der #sigmoid関数の微分sigmoid_derをacfderという名前で使う\n", - "calc_der(xt,ny,W,V,bs,b0,acf,acfder)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "k7vvCZExdmnK" - }, - "source": [ - "と計算できるようになりました。" - ] - }, - { - "cell_type": "code", - "execution_count": 148, - "metadata": { - "id": "skJRBuEBrn4b", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def fitGD(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose):\n", - " for i in range(nepoch):\n", - " tdw,tdv,tdbs, tdb0 = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder)\n", - " tW = tW - eta * tdw\n", - " tV = tV -eta * tdv\n", - " tbs = tbs -eta * tdbs\n", - " tb0 = tb0 -eta * tdb0 \n", - " if verbose == 1:\n", - " print(i, \"tloss =\", calc_tloss(x,y,tW,tV,tbs,tb0,acf))\n", - " return tW,tV,tbs,tb0,tdw,tdv,tdbs, tdb0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "W86sRWDOSZfU" - }, - "source": [ - "では実際に上の関数を使って、パラメータの値を更新してみましょう。 \n", - "(nhlの値に依りますが、ちょっぴり計算に時間がかかります)" - ] - }, - { - "cell_type": "code", - "execution_count": 149, - "metadata": { - "id": "Zy6GcfmpSZwc", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "nepoch = 2000\n", - "acf = sigmoid; acfder=sigmoid_der\n", - "verbose=0\n", - "eta = 0.01 #学習率(パラメータ更新のスケールを決めるパラメータ)\n", - "W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N-vuF2Z9SRXU" - }, - "source": [ - "更新された重み・バイアス(W,V,bs,b0)を使って、データとの二乗誤差を計算してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": 150, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "uZUXTpfhS1Y2", - "outputId": "97daaae6-ed44-4498-fc52-6a61ed1cbb00", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "学習後の二乗誤差 31.426829182338306\n" - ] - } - ], - "source": [ - "print(\"学習後の二乗誤差\",calc_tloss(xt,ny,W,V,bs,b0,acf))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3MfVJVWmTJlU" - }, - "source": [ - "すると、さっきより小さくはなっていますが、そこまで二乗誤差が減っていません。 \n", - "\n", - "実際にplotしてみても" - ] - }, - { - "cell_type": "code", - "execution_count": 151, - "metadata": { - "id": "fSpr9Db1SQZ1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "xp = np.linspace(0, 0.5, 500) \n", - "yp = 0.0*xp \n", - "for i in range(len(yp)):\n", - " yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 " - ] - }, - { - "cell_type": "code", - "execution_count": 152, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "M4SvRcWLSSyg", - "outputId": "8dab58c0-6aed-44f0-972f-4b1df0857d19", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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5ZehVi23QOiYMW5V9nCoOXr+eTeE8lqApakffRQ2bnS9VSLhpqJJ2NVXu1rFu+8u2b55s1sHb/36I38vKZ2EATRo0IAVK1YQFxdHREQEsbGxrFq1igsvvJDU1FS++uorHn/8caZNmwZARkZGwPMq8ny9WjFfRELY5s1uDakWLVzv1qHExLiE629/c4uJNm58+N6cmiQ319W5BRIbW35dmIg4c+a4NfJKa9bMLeWydKnbWaOy5ebmMn78eBYsWIDP52NlOevjVPS83ysEBwlEJJh273a9WN26wR13uKGAM890SdnhxMa6hC2cEjBwdXEffAAZGSXbrXXDK8OGeROXSKho2NAN65fm97v3noYNK+9nrV27Fp/PR2JiIk899RRNmjRh4cKFpKamkhNoJhFU+LzfS0mYiBxkrVsVvnFjt07Vjz+6obQ+feC009SjU55OnVyieu65RQvNbt7stgUCV0gvIuW75BLXm176PeaNN1ytZGXN5N2+fTvXX38948ePxxjDnj17aNasGREREbz++uv4C1Y1jouLY9++fQevK++8o6UkTEQO+vZbN5w4YQLUrevaYmPhwQfdJ9EPPvA2viO1apXbHHzECLjxRpg/v/J/xgsvuBmfxx3nivO7dHEzuj799OhmdomEg8suc7MiTzjB9R5//jnccgv86U+u5vJoZGZmHlyiYujQoZx22mncd999ANx44428+uqr9OrVi+XLl1OnTh0Aevbsic/no1evXjz11FPlnne0VJgvIgf94x9ur8FHHy177PHH3XDBU09VfVxHY+pU1yN11VUuSVqyBJ55xr25B2N/ytxctwF5/frl14mJhIuKFuaDmyk8ebJLwvbtcx9obrih/L1PqyMV5ovIEYuLc0syBLJtmzseSvbtc+tpzZzpatvADbdecokbYj3jDLelT2WKioImTSr3MUXCQWSk27M1yEtzVSsajhSRg0aPdkOOpfct3LHDLb9w4SGXYK5+3n/fDW8UJmCFWrRwwx+BNrwWEakq6gkTkYOaNnX1X8cf79brGTDA7fH48MNuJesKjipUG9u3l7/XY5s2boFIqVw5OfDhh7B4sVteYMyYyp3ZJqHHWospvWVEDXQk5V3qCROREm6+GV59FWbNcvskvveeqwN78EGvI/v9jjnGFfgGem/8/HPo3bvqY6rJVqxwe2Y++6y7/9VXbgHO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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_37_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.plot(xp,yp*ystd+ymean,label=\"ANN\") ## ニューラルネットワークの出力は標準化した値に対して学習されていることに注意\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cINfIqP4TTAV" - }, - "source": [ - "ほとんど学習が進んでいません...(絶望)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tDt2m0JKf1Ja" - }, - "source": [ - "学習の様子を都度printしてみる(```verbose=1```に設定する)ことにして \n", - "最初からやりなおしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": 153, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "U_Je7tlWfX9v", - "outputId": "72e92421-1808-4794-b074-74511b10a2e5", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "学習前のloss 61.29358546868393\n", - "0 tloss = 155.20176990047585\n", - "1 tloss = 636.6940976770327\n", - "2 tloss = 1982.0790483266553\n", - "3 tloss = 2056.051066857846\n", - "4 tloss = 75.1510373285995\n", - "5 tloss = 41.306942787588895\n", - "6 tloss = 40.230205073524374\n", - "7 tloss = 40.1956281449949\n", - "8 tloss = 40.19379266944327\n", - "9 tloss = 40.19298621925973\n", - "10 tloss = 40.19221490236367\n", - "11 tloss = 40.19144755457859\n", - "12 tloss = 40.19068317848521\n", - "13 tloss = 40.18992172293257\n", - "14 tloss = 40.189163166751285\n", - "15 tloss = 40.188407489902666\n", - "16 tloss = 40.18765467254862\n", - "17 tloss = 40.186904695016516\n", - "18 tloss = 40.186157537795744\n", - "19 tloss = 40.18541318153565\n" - ] - } - ], - "source": [ - "np.random.seed(1234)\n", - "W = np.random.normal(0.0,1.0,nhl)\n", - "V = np.random.normal(0.0,1.0,nhl)\n", - "bs = np.random.normal(0.0,1.0,nhl)\n", - "b0 = np.random.normal()\n", - "\n", - "nepoch=20 #20回だけ学習の様子を表示\n", - "verbose=1 \n", - "print(\"学習前のloss\", calc_tloss(xt,ny,W,V,bs,b0,acf))\n", - "#学習\n", - "W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TJaqgLw7Uaau" - }, - "source": [ - "あるところからは、ほとんど学習が進んでいない事がわかります。\n", - "\n", - "原因として考えられるのは\n", - "* loss functionをパラメータ(超)空間上にプロットした際にプラトーが存在する\n", - "* 最適化手法や学習率の設定が適切でない\n", - "* 初期値が悪い\n", - "\n", - "などがあります。\n", - "\n", - "勾配降下法は、最もシンプルな勾配を使った最適化手法ですが、学習の途中で勾配がほとんど0になってしまって(勾配消失ともいう)、学習が進まなくなってしまう、といったことがよく起こります。 \n", - "\n", - "「勾配が小さいなら勾配にかける学習率を大きくすればええんとちゃいまんの...?」 \n", - "と思うかもしれませんが、学習率を単純に大きくしてしまうと、明後日の方向にパラメータを更新するせいで目的関数が発散してしまいます。(eta=0.1などとして試してみてください)\n", - "\n", - "注) 勾配降下法を拡張した、データを部分的に使うことで学習が停滞することを防ぐ、確率的勾配降下法(Stochastic Gradient Descent; SGD)は現在もよく使われています。\n", - "\n", - "以下では、Adamと呼ばれる別の最適化手法を試してみましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "A3NSz6JulqFB" - }, - "source": [ - "## Adam" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n0QGVWTmltgl" - }, - "source": [ - "Adamは、勾配降下法の様にその都度の勾配の情報だけを使うのではなく、\n", - "以前の勾配の情報も有効活用する手法です。\n", - "\n", - "Adamは2014年に提唱された比較的新しい手法で、以降の機械学習の論文では、Adamが最もよく使われています。(*最も\"良い\"という意味では必ずしもありません)" - ] - }, - { - "cell_type": "code", - "execution_count": 154, - "metadata": { - "id": "AdFBxZceoktL", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def updateAdam(A,mt,vt,i,beta1,beta2,eps):\n", - " mhat = mt / (1.0-beta1**(i+1))\n", - " vhat = vt / (1.0-beta2**(i+1))\n", - " return mhat / (np.sqrt( vhat )+eps)\n", - "\n", - "def fitAdam(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose):\n", - " mts = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ]\n", - " vts = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ]\n", - " ## Adamで使用するパラメータ\n", - " beta1 = 0.9; beta2 = 0.999; eps = 1.e-6\n", - " omb1 = 1.0-beta1; omb2 = 1.0-beta2\n", - " ## 最適化\n", - " for i in range(nepoch):\n", - " tmp = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder) ### 勾配を計算するところまでは同じ。\n", - " for n,mt in enumerate(mts):\n", - " mts[n] = beta1 * mt + omb1 * tmp[n]\n", - " vts[n] = beta2 * vts[n] + omb2 * (tmp[n]**2)\n", - " ### 重み・バイアスの更新\n", - " tW += -eta * updateAdam(tW, mts[0],vts[0],i,beta1,beta2,eps)\n", - " tV += -eta * updateAdam(tV, mts[1],vts[1],i,beta1,beta2,eps)\n", - " tbs += -eta * updateAdam(tbs,mts[2],vts[2],i,beta1,beta2,eps)\n", - " tb0 += -eta * (mts[3]/(1.0-beta1**(i+1))) / ( np.sqrt( vts[3]/ (1.0-beta2**(i+1))) + eps)\n", - " if verbose and i % 500 == 0:\n", - " print(i, \"tloss =\", calc_tloss(x,y,tW,tV,tbs,tb0,acf)) \n", - " return tW,tV,tbs,tb0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZzDaa2zCoeIm" - }, - "source": [ - "それでは重みを初期化して、再び学習をしてみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": 161, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "4mkH2DuglqLS", - "outputId": "de51a9b4-c624-4aba-b11d-24dfd9ee7183", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "学習前のloss 61.29358546868393\n", - "学習後のloss [0.89838996]\n" - ] - } - ], - "source": [ - "np.random.seed(1234) ## Gradient descentと同条件でスタートするためseedを固定\n", - "W = np.random.normal(0.0,1.0,nhl)\n", - "V = np.random.normal(0.0,1.0,nhl)\n", - "bs = np.random.normal(0.0,1.0,nhl)\n", - "b0 = np.random.normal()\n", - "\n", - "nepoch=2000\n", - "verbose=False\n", - "eta = 0.05\n", - "\n", - "acf = sigmoid ; acfder =sigmoid_der\n", - "print(\"学習前のloss\", calc_tloss(xt,ny,W,V,bs,b0,acf))\n", - "W,V,bs,b0=fitAdam(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)\n", - "print(\"学習後のloss\", calc_tloss(xt,ny,W,V,bs,b0,acf))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0PJr6ceIFVS-" - }, - "source": [ - "さっきよりlossの値が小さくなっています。学習がうまく行ってそうですね。\n", - "\n", - "グラフにしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": 156, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "QlVmPtFxVr3u", - "outputId": "b04eee9d-d29e-4add-9f68-7aeac862198d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_48_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xp = np.linspace(0, 0.5, 500) \n", - "yp = 0.0*xp \n", - "for i in range(len(yp)):\n", - " yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 \n", - "ytruth = np.sin(2*np.pi*xp)\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.plot(xp,yp*ystd+ymean,color=\"C01\",label=\"ANN\")\n", - "ax.plot(xp,ytruth,color=\"C02\",label=\"Ground Truth\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jOaGjLWiGE0-" - }, - "source": [ - "のように、データの特徴をそこそこうまく捉えたニューラルネットワークへと学習が進みました。\n", - "\n", - "実際には、ニューラルネットワークの精度(良さ)は、前述のような検証データに対する汎化性能で評価します。 \n", - "\n", - "上で示した例では、3層のニューラルネットワークにデータからそれらしい関数を学習させてみました。\n", - "\n", - "ニューラルネットワークの構造をより複雑化したりしながら、より複雑で高次元な回帰問題に応用したり、回帰問題だけではなく分類問題・画像生成・物体検知などなど、各種の楽しい実社会の問題に応用していきます。 (例: 第2回で説明した敵対的生成ネットワーク)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qMB-1YMwdqij" - }, - "source": [ - "## 最適化手法に関するまとめ\n", - "\n", - "ニューラルネットワークの学習がうまく進むかどうかは一般に\n", - "1. ネットワークの構造(アーキテクチャとも言ったりします)や活性化関数(とその微分)の持つ性質\n", - "2. 最適化手法や手法内のパラメータ\n", - "3. 重みやバイアスの初期値\n", - "\n", - "などに強く依存します。\n", - "\n", - "1.に関して \n", - "回帰問題における代表的な活性化関数としては\n", - "最近の傾向として、sigmoidよりも以下のReLU関数が使われることが多いです。 \n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 157, - "metadata": { - "id": "LKDihzzDT0-H", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def relu(z):\n", - " return (z > 0)* z \n", - "\n", - "def relu_der(z):\n", - " return (z > 0)*1.0 \n", - " \n", - "#いずれも、zが実数値でもnp.array型のベクトルでも対応可能な表式" - ] - }, - { - "cell_type": "code", - "execution_count": 158, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "M962DFirJgu9", - "outputId": "ce0db346-fd65-47d4-8fcd-911179489442", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_52_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "##適当な区間のxの値を用意する\n", - "xp = np.linspace(-10.0,10.0,100)\n", - "yp_sigmoid = sigmoid(xp)\n", - "yp_relu = relu(xp)\n", - "\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax1 = fig.add_subplot(121)\n", - "ax1.plot(xp,yp_sigmoid,label=\"Sigmoid\")\n", - "ax1.legend()\n", - "ax2 = fig.add_subplot(122)\n", - "ax2.plot(xp,yp_relu,label=\"ReLU\")\n", - "ax2.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "f9ELoAn8hYNr" - }, - "source": [ - "sigmoid関数はx->+∞で1.0, x=-∞で-1.0に漸近します。\n", - "\n", - "一方でReLU関数はx=0までは0.0で、x>0.0で、xとなるような関数です。\n", - "\n", - "\n", - "なぜReLUがよく使われる様になったかと言うと、 \n", - "(特に隠れ層の数が多い深層学習において)学習するにつれて勾配の値が小さくなって学習が進まない、\n", - "という問題を解決するためです。\n", - "\n", - "それぞれの関数の微分を表示してみると" - ] - }, - { - "cell_type": "code", - "execution_count": 159, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "dj-P7bDfvYpr", - "outputId": "c8bf0288-f777-4bb1-efb2-d1546c867027", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_54_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xp = np.linspace(-10.0,10.0,100)\n", - "yp_sigmoid = sigmoid_der(xp)\n", - "yp_relu = relu_der(xp)\n", - "\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax1 = fig.add_subplot(121)\n", - "ax1.plot(xp,yp_sigmoid,label=\"Sigmoid\")\n", - "ax1.legend()\n", - "ax2 = fig.add_subplot(122)\n", - "ax2.plot(xp,yp_relu,label=\"ReLU\")\n", - "ax2.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B0FHTFBwvtLP" - }, - "source": [ - "sigmoid関数は微分の値が最大で0.25なのに対して、ReLU関数では最大1.0となるため勾配の消失が起こりにくいのです。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PiFx3X4xJd7V" - }, - "source": [ - "問題ごとに何が最適なネットワーク構造だったり活性化関数なのかは、 \n", - "予め分かることはなく、試行錯誤が必要です。 \n", - "ここまでこの授業で勉強してきた皆さんは既に、 \n", - "「この試行錯誤自体を人力ではなくコンピュータにやらせる方法はないか」という点に思い至るのではないでしょうか?\n", - "\n", - "これに関連したお話はベイズ最適化の回で説明します。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hpVMAFUiwUtT" - }, - "source": [ - "3.に関して\n", - "\n", - "また、ネットワークの重みやバイアスをどのような値から始めるかに学習が依存する場合もあります。\n", - "\n", - "というのも、今考えた3層のニューラルネットワークでは、 \n", - "重み$W$の学習に使う勾配の表式は、$V$に比例しています。\n", - "\n", - "したがって単純に勾配の情報のみを使う最適化手法では、 \n", - "$V$の初期値を0に取ったり、学習の過程で偶然$V$の値が0に近くなってしまうと、 \n", - "$V$が更新されノンゼロの値を持つまで$W$の学習は始まりません。\n", - "\n", - "どのような初期値を採用するべきかに関しても、予め知ることは一般にはできませんが、 \n", - "いくつかの特定の場合に関して、推奨される方法というのは存在しています。\n", - "\n", - "例: ReLU関数を活性化関数に使うときはHeの初期値というものが推奨されている" - ] - } - ], - "metadata": { - "accelerator": "TPU", - "colab": { - "authorship_tag": "ABX9TyPpQYMbqGEZMRisgxppnqSm", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_ArtificialNeuralNetwork.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork.txt deleted file mode 100644 index acc5c883..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork.txt +++ /dev/null @@ -1,221 +0,0 @@ -import numpy as np -def create_toy_data(sample_size, std): - np.random.seed(1234) #毎回同じデータになるように乱数の種を固定しておく - x = np.linspace(0, 0.5, sample_size) - t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape) - return x, t - -xt,yt = create_toy_data(40,5.e-2) - -###グラフにしてみる -import matplotlib.pyplot as plt -fig = plt.figure(figsize=(10,4)) -ax = fig.add_subplot(111) -ax.set_xlabel("x"); ax.set_ylabel("y") -ax.scatter(xt, yt, facecolor="none", edgecolor="b", s=50, label="Data") -ax.legend() -plt.show() -plt.close() - -nhl = 8 ## 隠れ層のノードの数を指定 これを増やすほどニューラルネットワークの表現能力が上がる一方、データに過適合しやすくなる(例外あり) - -#重み行列W,V(今はベクトル)と、隠れ層でのバイアスbs,出力層でのバイアスを正規乱数で初期化 -np.random.seed(1234) #結果が実行ごとに同じになるよう乱数を固定(バグを見つけやすくする) -W = np.random.normal(0.0,1.0,nhl) -V = np.random.normal(0.0,1.0,nhl) -bs = np.random.normal(0.0,1.0,nhl) -b0 = np.random.normal() - -#シグモイド関数: 活性化関数の一つ -def sigmoid(z): - return 1.0/(1.0+np.exp(-z)) - -### データとANNの出力間の二乗誤差を計算する関数を作っておく。 -def calc_tloss(x,y,tW,tV,tbs,tb0,acf): - nhl = len(tW) - s=0.0 - for i in range(len(x)): - s += (np.dot(tV, acf(tW*x[i]+tbs)) + tb0 - y[i])**2 - return s - -ymean = np.mean(yt) -ystd = np.std(yt) -ny = (np.array(yt)-ymean)/ ystd #それぞれのデータを平均をひいて標準偏差で割る - -acf = sigmoid #sigmoid関数をacfという名前で使う - -print("初期値での二乗誤差",calc_tloss(xt,ny,W,V,bs,b0,acf)) - -print("データ1個あたりの誤差:", np.sqrt(calc_tloss(xt,ny,W,V,bs,b0,acf)/len(xt))) #データ1個あたりどれほど誤差*があるか *標準化された誤差 - -xp = np.linspace(0.0,0.5,300) -yp = np.array([np.dot(V, sigmoid(W*xp[i]+bs)) for i in range(len(xp))]) - -fig = plt.figure(figsize=(10,4)) -ax = fig.add_subplot(111) -ax.set_xlabel("x"); ax.set_ylabel("y") -ax.scatter(xt, yt, facecolor="none", edgecolor="b", s=50, label="Data") -ax.plot(xp,yp*ystd+ymean,label="ANN") #ニューラルネットワークの予測ypは、"標準化された"yの値に従って学習されているので、元のスケールに戻さないといけない。 -ax.legend() -plt.show(); plt.close() - -def calc_der(x,y,tW,tV,tbs,tb0,acf,acfder): - tdw = np.zeros(nhl) - tdv = np.zeros(nhl) - tdbs = np.zeros(nhl) - tdb0 = 0.0 - #以下の勾配の計算は、目的関数が二乗誤差かつ全データでの勾配の和を使用する場合にのみ正しい - for i in range(len(x)): - g = np.dot(tV, acf(tW*x[i]+tbs) ) + tb0 - y[i] - tdb0 += 2.0 * g - for jth in range(nhl): - tdv[jth] += 2.0 * g * acf(tW[jth]*x[i]+tbs[jth]) - tdw[jth] += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth]) *x[i] - tdbs[jth] += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth]) - return tdw, tdv, tdbs, tdb0 - -#シグモイド関数の微分: 勾配の計算を具体的に求めるのに使う -def sigmoid_der(z): - return np.exp(-z)/ ((1.0+np.exp(-z))**2) - -acf = sigmoid -acfder = sigmoid_der #sigmoid関数の微分sigmoid_derをacfderという名前で使う -calc_der(xt,ny,W,V,bs,b0,acf,acfder) - -def fitGD(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose): - for i in range(nepoch): - tdw,tdv,tdbs, tdb0 = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder) - tW = tW - eta * tdw - tV = tV -eta * tdv - tbs = tbs -eta * tdbs - tb0 = tb0 -eta * tdb0 - if verbose == 1: - print(i, "tloss =", calc_tloss(x,y,tW,tV,tbs,tb0,acf)) - return tW,tV,tbs,tb0,tdw,tdv,tdbs, tdb0 - -nepoch = 2000 -acf = sigmoid; acfder=sigmoid_der -verbose=0 -eta = 0.01 #学習率(パラメータ更新のスケールを決めるパラメータ) -W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose) - -print("学習後の二乗誤差",calc_tloss(xt,ny,W,V,bs,b0,acf)) - -xp = np.linspace(0, 0.5, 500) -yp = 0.0*xp -for i in range(len(yp)): - yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 - -fig = plt.figure(figsize=(10,4)) -ax = fig.add_subplot(111) -ax.set_xlabel("x"); ax.set_ylabel("y") -ax.scatter(xt, yt, facecolor="none", edgecolor="b", s=50, label="Data") -ax.plot(xp,yp*ystd+ymean,label="ANN") ## ニューラルネットワークの出力は標準化した値に対して学習されていることに注意 -ax.legend() -plt.show() -plt.close() - -np.random.seed(1234) -W = np.random.normal(0.0,1.0,nhl) -V = np.random.normal(0.0,1.0,nhl) -bs = np.random.normal(0.0,1.0,nhl) -b0 = np.random.normal() - -nepoch=20 #20回だけ学習の様子を表示 -verbose=1 -print("学習前のloss", calc_tloss(xt,ny,W,V,bs,b0,acf)) -#学習 -W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose) - -def updateAdam(A,mt,vt,i,beta1,beta2,eps): - mhat = mt / (1.0-beta1**(i+1)) - vhat = vt / (1.0-beta2**(i+1)) - return mhat / (np.sqrt( vhat )+eps) - -def fitAdam(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose): - mts = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ] - vts = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ] - ## Adamで使用するパラメータ - beta1 = 0.9; beta2 = 0.999; eps = 1.e-6 - omb1 = 1.0-beta1; omb2 = 1.0-beta2 - ## 最適化 - for i in range(nepoch): - tmp = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder) ### 勾配を計算するところまでは同じ。 - for n,mt in enumerate(mts): - mts[n] = beta1 * mt + omb1 * tmp[n] - vts[n] = beta2 * vts[n] + omb2 * (tmp[n]**2) - ### 重み・バイアスの更新 - tW += -eta * updateAdam(tW, mts[0],vts[0],i,beta1,beta2,eps) - tV += -eta * updateAdam(tV, mts[1],vts[1],i,beta1,beta2,eps) - tbs += -eta * updateAdam(tbs,mts[2],vts[2],i,beta1,beta2,eps) - tb0 += -eta * (mts[3]/(1.0-beta1**(i+1))) / ( np.sqrt( vts[3]/ (1.0-beta2**(i+1))) + eps) - if verbose and i % 500 == 0: - print(i, "tloss =", calc_tloss(x,y,tW,tV,tbs,tb0,acf)) - return tW,tV,tbs,tb0 - -np.random.seed(1234) ## Gradient descentと同条件でスタートするためseedを固定 -W = np.random.normal(0.0,1.0,nhl) -V = np.random.normal(0.0,1.0,nhl) -bs = np.random.normal(0.0,1.0,nhl) -b0 = np.random.normal() - -nepoch=2000 -verbose=False -eta = 0.05 - -acf = sigmoid ; acfder =sigmoid_der -print("学習前のloss", calc_tloss(xt,ny,W,V,bs,b0,acf)) -W,V,bs,b0=fitAdam(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose) -print("学習後のloss", calc_tloss(xt,ny,W,V,bs,b0,acf)) - -xp = np.linspace(0, 0.5, 500) -yp = 0.0*xp -for i in range(len(yp)): - yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 -ytruth = np.sin(2*np.pi*xp) -fig = plt.figure(figsize=(10,4)) -ax = fig.add_subplot(111) -ax.set_xlabel("x"); ax.set_ylabel("y") -ax.scatter(xt, yt, facecolor="none", edgecolor="b", s=50, label="Data") -ax.plot(xp,yp*ystd+ymean,color="C01",label="ANN") -ax.plot(xp,ytruth,color="C02",label="Ground Truth") -ax.legend() -plt.show() -plt.close() - -def relu(z): - return (z > 0)* z - -def relu_der(z): - return (z > 0)*1.0 - -#いずれも、zが実数値でもnp.array型のベクトルでも対応可能な表式 - -##適当な区間のxの値を用意する -xp = np.linspace(-10.0,10.0,100) -yp_sigmoid = sigmoid(xp) -yp_relu = relu(xp) - -fig = plt.figure(figsize=(10,4)) -ax1 = fig.add_subplot(121) -ax1.plot(xp,yp_sigmoid,label="Sigmoid") -ax1.legend() -ax2 = fig.add_subplot(122) -ax2.plot(xp,yp_relu,label="ReLU") -ax2.legend() -plt.show() -plt.close() - -xp = np.linspace(-10.0,10.0,100) -yp_sigmoid = sigmoid_der(xp) -yp_relu = relu_der(xp) - -fig = plt.figure(figsize=(10,4)) -ax1 = fig.add_subplot(121) -ax1.plot(xp,yp_sigmoid,label="Sigmoid") -ax1.legend() -ax2 = fig.add_subplot(122) -ax2.plot(xp,yp_relu,label="ReLU") -ax2.legend() -plt.show() -plt.close() diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_22_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_22_0.png deleted file mode 100644 index c0f00e22..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_22_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_37_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_37_0.png deleted file mode 100644 index a6d0a13d..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_37_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_48_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_48_0.png deleted file mode 100644 index d95f4ac2..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_48_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_4_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_4_0.png deleted file mode 100644 index ca1aa320..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_4_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_52_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_52_0.png deleted file mode 100644 index 038a0c9e..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_52_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_54_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_54_0.png deleted file mode 100644 index 4d76a944..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_ArtificialNeuralNetwork_54_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization.ipynb deleted file mode 100644 index 28c2b55a..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization.ipynb +++ /dev/null @@ -1,970 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zy7aOwXne87b" - }, - "source": [ - "# ベイズ最適化による実験計画法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WSCRPDv9bBpz" - }, - "source": [ - "以下では、ベイズ最適化を用いた実験計画法を見てみよう。\n", - "\n", - "数学的部分やコードの詳細よりも「なんとなくこのあたりを探索しようかな」といった \n", - "人間の経験に依る部分を客観的な方法で置き換えた実験計画の方法論の強力さを感じることが目的なので難しいところはスキップしても構わない。\n", - "\n", - "ガウス過程の基本や詳細は[補足ノート](https://github.com/SotaYoshida/Lecture_DataScience/blob/main/notebooks/GPnote.pdf)に譲る.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "XWIv70U6e6In", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#使うライブラリのインポート\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import copy\n", - "from scipy import special\n", - "\n", - "## データの生成用関数\n", - "def f(x):\n", - " return np.sin(x) + 0.2 * x\n", - "\n", - "## ガウス過程のカーネル(共分散行列)の設計\n", - "def Mat52(Thetas,r):\n", - " tau,sigma = Thetas\n", - " thetar = r * np.sqrt(5.0)/sigma\n", - " return tau * (1.0 + thetar + (thetar**2) /3.0) * np.exp(-thetar)\n", - "def KernelMat(Thetas,xt,xp):\n", - " lt = len(xt); lp=len(xp)\n", - " Ktt = np.zeros((lt,lt)); Kpt = np.zeros((lp,lt)); Kpp = np.zeros((lp,lp))\n", - " for j in range(lt):\n", - " for i in range(j,lt):\n", - " r = abs(xt[i]-xt[j])\n", - " tmp = Mat52(Thetas,r) \n", - " Ktt[i,j] = tmp; Ktt[j,i] = tmp \n", - " for i in range(lp):\n", - " r= abs(xp[i]-xt[j])\n", - " Kpt[i,j] = Mat52(Thetas,r)\n", - " for j in range(lp):\n", - " for i in range(j,lp):\n", - " r= abs(xp[i]-xp[j])\n", - " tmp = Mat52(Thetas,r)\n", - " Kpp[i,j] = tmp; Kpp[j,i] = tmp\n", - " return Ktt,Kpt,Kpp\n", - "\n", - "## 事後共分散行列の計算\n", - "def calcSj(cLinv,Kpt,Kpp,yt,mu_yt,mu_yp):\n", - " tKtp= np.dot(cLinv,Kpt.T)\n", - " return mu_yp + np.dot(Kpt,np.dot(cLinv.T,np.dot(cLinv,yt-mu_yt))), Kpp - np.dot(tKtp.T,tKtp)\n", - "\n", - "## Cholesky分解\n", - "def Mchole(tmpA,ln) :\n", - " cLL = np.linalg.cholesky(tmpA)\n", - " logLii=0.0\n", - " for i in range(ln):\n", - " logLii += np.log(cLL[i,i])\n", - " return np.linalg.inv(cLL), 2.0*logLii\n", - "\n", - "## 獲得関数を計算, 次点の計算点を決める\n", - "def calcEI(xp,mujoint,sigmaj,xbest,ybest):\n", - " EIs = [ (mujoint[i]-ybest) * Phi((mujoint[i]-ybest)/sigmaj[i]) +\n", - " sigmaj[i]* np.exp(-0.5* ((mujoint[i]-ybest)/sigmaj[i])**2) for i in range(len(xp))]\n", - " xnew,ynew,ind=xybest(xp,EIs)\n", - " ynew= np.sin(xnew) + 0.2*xnew #+ 0.01 * (0.5-np.random.rand())\n", - " return xnew,ynew,EIs,ind\n", - "def Phi(z):\n", - " return 0.5 * special.erfc(-(z/(2**0.5)) )\n", - "\n", - "def xybest(xt,yt):\n", - " ind = np.argmax(yt)\n", - " return xt[ind],yt[ind],ind\n", - "\n", - "## お絵かき\n", - "def plotGP0(xt,yt,xp,ytrue):\n", - " fig = plt.figure(figsize=(8,4))\n", - " axT = fig.add_subplot(1,1,1)\n", - " axT.set_xlabel(\"x\"); axT.set_ylabel(\"y\")\n", - " axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0)\n", - " axT.scatter(xt,yt,marker=\"o\",color=\"black\",label=\"Data\")\n", - " axT.plot(xp,ytrue,color=\"red\",label=\"True\",linestyle=\"dotted\")\n", - " axT.legend(loc=\"upper right\")\n", - " plt.show()\n", - " #plt.savefig(\"BayesOpt_initial.pdf\",bbox_inches=\"tight\", pad_inches=0.1)\n", - " plt.close()\n", - "\n", - "def plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs):\n", - " fig = plt.figure(figsize=(16,4))\n", - " axT = fig.add_subplot(121)\n", - " axB = fig.add_subplot(122)\n", - " axT.set_xlabel(\"x\"); axT.set_ylabel(\"y\")\n", - " axB.set_xlabel(\"x\"); axB.set_ylabel(\"Acquisition function\")\n", - " axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0)\n", - " axB.set_xlim(-2.0,12)\n", - " axT.scatter(nxt,nyt,marker=\"o\",color=\"black\",label=\"Data\")\n", - " for i in range(len(ysamples)):\n", - " axT.plot(nxp,ysamples[i],alpha=0.1)\n", - " axT.plot(nxp,mujoint,label=\"GP mean\",linestyle=\"dashed\",color=\"blue\")\n", - " axB.plot(nxp,EIs,color=\"green\")\n", - " axB.set_yticklabels([]) \n", - " axT.fill_between(nxp,mujoint-sigmaj,mujoint+sigmaj,color=\"blue\", alpha=0.3)\n", - " axT.plot(xp,ytrue,color=\"red\",label=\"True\",linestyle=\"dotted\")\n", - " axT.legend(loc=\"upper right\")\n", - " plt.show()\n", - " plt.close()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "id": "jajF8gfhfJOo", - "outputId": "ce535d2e-ce2a-4a28-fc5c-f280bd89958a", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_4_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "Thetas=[2.0,2.0]\n", - "oxt = np.array([ 0.0 + 1.02*i for i in range(11)])\n", - "xp = []\n", - "for tmp in np.arange(-2.0,12.0, 5.e-2):\n", - " if (tmp in oxt)==False:\n", - " xp += [ tmp ]\n", - "xp = np.array(xp)\n", - "oyt = f(oxt)\n", - "ytrue = f(xp)\n", - "\n", - "SVs=[]\n", - "xt =[oxt[2],oxt[6]]; yt =[oyt[2],oyt[6]]\n", - "plotGP0(xt,yt,xp,ytrue)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xk7mXO-tfLVj" - }, - "source": [ - "一般には真の関数(赤色)は分からないので、勾配も計算できない。 \n", - "数値的に勾配を計算するには、各点で微小にxをずらした場合の観測が必要、さらに、学習率を変えながら適当な値を探索するというのは、1回のデータの観測(測定,取得,計算, etc.)コストが高い場合はあまり良い方策ではない。(\"学習率\"については最適化の章を参照)\n", - "\n", - "仮に勾配の計算ができたとしても、このデータの様に背後にある真の関数が多峰的(multimodal)な場合、勾配のみに基づく単純な最適化手法では局所解に停留する危険もある。\n", - "\n", - "そこでベイズ最適化を用いることで大局的な探索と局所的な探索をうまくトレードオフしながら最適値を探索する、ということを以下でデモンストレーションする。" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "5EmEXqIDfJ5P", - "outputId": "7218ed19-6bf8-40fb-aa87-c2807a66c156", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5hU5fn/8fdzytStLFURURSkg4LElqgkJLYYG2pMbImEaNSQKIn6SzRRE3vP14QUNREV0SjWqDFiwYKgqBSRIiCKUrbvtFOe3x9nd1l0gd1ld8+W+3Vdh5kzc2bms4XZuc/TlNYaIYQQQgghhBCiMzLCDiCEEEIIIYQQQrSUFLVCCCGEEEIIITotKWqFEEIIIYQQQnRaUtQKIYQQQgghhOi0pKgVQgghhBBCCNFpSVErhBBCCCGEEKLTssJ8caXUGqAK8ABXaz0uzDxCCCGEEEIIITqXUIvaWkdorTeHHUIIIYQQQgghROcj3Y+FEEIIIYQQQnRaSmsd3osr9TFQBmjgL1rrGY0cMwWYApBMJg/Yb7/92jekEEKILmvhwoWbtda9ws7RmfXs2VMPHDgw7BhCCCG6iJb8bQ67+/GhWutPlVK9gReUUh9qrV9peEBtoTsDYNy4cXrBggVh5BRCCNEFKaXWhp2hsxs4cCDyt1kIIURracnf5lC7H2utP6293Ag8BhwYZh4hhBBC7JxSaopSaoFSasGmTZvCjiOEEKKbC62oVUollVL5ddeBScDisPIIIYQQomm01jO01uO01uN69ZLe20IIIcIVZvfjPsBjSqm6HA9orf8TYh4hhBBCCCGEEJ1MaEWt1no1MDqs1xdCiM7EcRzWr19PJpMJO0qnFIvF6N+/P7Zthx1FCCGEEK0s7ImihBBCNMH69evJz89n4MCB1PZwEU2ktWbLli2sX7+evfbaK+w4QgghhGhlsk6tEEJ0AplMhpKSEiloW0ApRUlJibRyCyGEEF2UFLVCCNFJSEHbcvK9E0IIIbou6X4shBBCiBbLuBne/vRtKrOVVGQrqMxWUpmtJOtm8bSH67u4vouhDOJWnISdIG7HyYvk0TevL7vn785u+bsRt+NhfylCCCE6KSlqhRBCNMkXX3zBtGnTePPNNykuLiYSiTB9+nROOOEE5s6dy/HHH89ee+1FNpvltNNO48orrww7smgHSzYu4cC/7foy80WxIgaXDGZErxGM6D2CCf0nMG63cUTMSCukFEII0ZVJUSuEEGKntNZ873vf46yzzuKBBx4AYO3atTzxxBP1xxx22GE89dRT1NTUMGbMGI477jj233//sCKLdrJX8V7cftrtFMYKKYgWUBgtJD+aT8yKYRkWlmFhKhNf+6TdNGknTcpJUZWrYkPVBj6r+oxPqz5lfeV6lm9ZzlMrnuIfi/4BQMyKMWH3CRyz7zGcMPQE9umxT8hfrRBCiI5IilohhBA79b///Y9IJMLUqVPrb9tzzz258MILv3JsMpnkgAMOYOXKldsUtXPnzuXKK6+kqKiIDz74gMmTJzNy5Ehuv/120uk0jz/+OIMGDWLTpk1MnTqVdevWAXDbbbdxyCGHMH/+fC6++GIymQzxeJx77rmHIUOGcO+99/LEE0+QSqVYtWoVJ5xwAjfccEPbf1MEAD3iPThuyHE7Pc5UJnmRPPIiefW3jeg9otFjv6j+gnmfzOPVta/y0pqXmP7f6Uz/73RG9B7BOWPO4czRZ9Iz0bPVvgYhhOgMtNZk3AwZN4NGYygDhUIphaEMTGUStaIYqvtNmyRFrRBCdEKHH/7V2yZPhvPPh1QKjj76q/effXawbd4MJ5+87X1z5+749ZYsWdLkVtctW7bw5ptv8pvf/OYr97333nssW7aMHj16sPfee/PjH/+Y+fPnc/vtt3PnnXdy2223cfHFFzNt2jQOPfRQ1q1bx7e//W2WLVvGfvvtx6uvvoplWfz3v//l8ssv59FHHwVg0aJFvPvuu0SjUYYMGcKFF17IHnvs0aS8ouPpk9eHE4eeyIlDTwRgbfla5iyfw0OLH+KXz/+Sy168jJOHncxlh1623cJYCCE6iy2pLawsXcmK0hWsLF3J+sr1bEptYlPNJjalNlGaLiXlpMi4TZvFP27FSUaSJOwESbv2MpKkIFpAcayYoljR1sv4tvtFsSJ6xHuQF8nrVJMsSlErhBCi2S644AJee+01IpEIb7/9NgCvvvoqY8eOxTAMfv3rXzN8+PCvPG78+PH069cPgEGDBjFp0iQARo4cyUsvvQTAf//7X5YuXVr/mMrKSqqrq6moqOCss85ixYoVKKVwHKf+mIkTJ1JYWAjAsGHDWLt2rRS1XcieRXty0YSLuGjCRSzeuJgZC2dw76J7eeCDBzhl2Cn89hu/leJWCNEpVGYreWXtK7y5/k3e/uxtFn62kC3pLfX3KxR98vrQK9GL3snejNttHD1iPeon2YtbcWJWDEMZaDS+9tFao9G4vls/xCPlpKhxauqvV+eq+bTyUxZvXEx5ppyKTAUavd2clmFRHCumOF5Mj3gPimPBZcPrX76vOF5McayYqBVtj2/ltnnb/RWFEELssh21rCYSO76/Z8+dt8x+2fDhw+tbRQH+9Kc/sXnzZsaNG1d/W92Y2h2JRrf+oTMMo37fMAxc1wXA933efPNNYrHYNo/92c9+xhFHHMFjjz3GmjVrOLxBc3XD5zVNs/65RNczovcI7jjqDq78xpXc+uat3PHWHTy67FF+Nv5nXH3k1RREC8KOKIQQ21i6aSmzl8zmuVXPMf/T+Xjaw1QmI3qP4PghxzOs1zD2LdmXfXvsy97Fe7dLUehrn8psJWXpMsoz5ZRlai/TZZRlyihLl1GaLqUsE1xurNnI8i3LKU2X7rQgTtrJrxa8XyqEv3xbUayIgmgBltGy8lSKWiGEEDt15JFHcvnll3P33Xfz05/+FIBUKtUmrzVp0iTuvPNOLr30UiDoWjxmzBgqKirYfffdAbj33nvb5LVF51GSKOGaI69h2tem8duXfsud8+9k9tLZ3Pad25g8fHLY8YQQ3dzn1Z/z93f+zgOLH2DppqUoFON3H8+vD/01E/eayIT+E0jYidDyGcqo727cXJ7vUZGt+ErhW5ou/cptZZkyVpSuqL897aZ3+Nyl00tb9PVIUSuEEGKnlFI8/vjjTJs2jRtuuIFevXqRTCa5/vrrW/217rjjDi644AJGjRqF67p8/etf589//jPTp0/nrLPO4pprruGYY45p9dcVnVNJooQ/HfMnzhl7DlOfmsqpj5zKsyuf5a6j7iIZSYYdTwjRzby5/k1ue/M2Hl32KK7vctiAw7jrqLs4ceiJ9MvvF3a8VmEaZn1r6yAGNeuxGTfTaDFckamgIlvR4t42SuvtNx13NOPGjdMLFiwIO4YQQrS7ZcuWMXTo0LBjdGqNfQ+VUgu11uO28xDRBB3pb7Pru1z98tVc/crVDC4ZzKyTZzG67+iwYwkhuoE317/JVXOv4rlVz1EUK+KcMecwddxUBpcMDjtap9OSv83db75nIYQQQnRJlmHxuyN+x4tnvkhVroqD/3EwT32043HeQgixK9aUr+GEWSdw0N8PYuGGhVz/zev5ZNon3PLtW6SgbUdS1AohhBCiSzliryNYOGUhQ3sO5fiHjuf/3v6/sCMJIbqYrJvl2leuZdifhvH8que59shr+fjij5l+yPRt1uMW7UPG1AohhBCiy+mb15eXz36Z0x49jQueuYBPKz/lmiOv6VTrLgohOqZlm5Zx+qOn894X73HS0JO45du3MKBwQNixujUpaoUQQgjRJSUjSR479THOf/p8/vDaHzANk98f8fuwYwkhOimtNTMWzmDac9NIRpLMOW0O3x3y3bBjCaSoFUIIIUQXZhkWfz72z/ja5+pXriZiRvh/X/9/YccSQnQyWTfLj5/8Mfe/fz+TBk3i3uPv7TKzGXcFUtQKIYQQokszlMGM42aQ83L85qXfkBfJ4+df+3nYsYQQncSmmk2cMOsE5n0yj98f/nuu+PoVGEqmJupIpKgVQgixU1u2bGHixIkAfP7555imSa9evQCYP38+kUgkzHhC7JShDO45/h5STopfPPcLBhUP4rghx4UdSwjRwX205SO+c/932FC9gYdPfphThp8SdiTRCClqhRBC7FRJSQmLFi0C4KqrriIvL49LLrmk/n7XdbEs+ZMiOjbTMPnnCf9kbcVavv/v7zPv3HmM6jMq7FhCiA7qw80fcuR9R+L6Li+f/TIH7n5g2JHEdki7uRBCiBY5++yzmTp1KhMmTGD69OlcddVV3HTTTfX3jxgxgjVr1gBw//33c+CBBzJmzBh+8pOf4HleSKlFd5ewE8w5bQ4F0QKOe/A4Pq/+POxIQogOaMnGJRx+7+H42mfu2XOloO3gQi9qlVKmUupdpZSsji6EEE11+OFw773BdccJ9u+/P9hPpYL9WbOC/YqKYP/f/w72N28O9p98Mtj/vOUf6tevX8/rr7/OLbfcst1jli1bxqxZs5g3bx6LFi3CNE1mzpzZ4tcUYlftlr8bT57+JJtqNvH9R7+P58tJFiHEVss3L+eI+47AUAZzz57LsF7Dwo4kdiL0oha4GFgWdgghhBDNd8opp2Ca5g6PefHFF1m4cCHjx49nzJgxvPjii6xevbqdEgrRuP377c+dR93JS2te4oZ5N4QdRwjRQXxR/QVHzTwKpRRzz57Lfj33CzuSaIJQB0AppfoDxwDXAr8IM4sQQnQqc+duvW7b2+4nEtvuFxZuu9+z57b7ffu2OEYymay/blkWvu/X72cyGSBY1++ss87ij3/8Y4tfR4i2cO7Yc3lh9Qv85qXfcPjAwzloj4PCjiSECFFNroZjHzyWL2q+YO5ZcxlcMjjsSKKJwm6pvQ2YDvjbO0ApNUUptUAptWDTpk3tl0wIIUSzDBw4kHfeeQeAd955h48//hiAiRMn8sgjj7Bx40YASktLWbt2bWg5xa7rKn+blVL85di/sEfhHpz+6OmUZ8rDjiSECInne5z26Gm8s+EdZp08i/G7jw87kmiG0IpapdSxwEat9cIdHae1nqG1Hqe1Hle3fIQQQoiO56STTqK0tJThw4dz1113MXhwcIZ72LBhXHPNNUyaNIlRo0bxrW99iw0bNoScVuyKrvS3uTBWyIMnPcj6yvVc8vwlO3+AEKJL+t3Lv+Opj57izqPu5NjBx4YdRzRTmN2PDwG+q5Q6GogBBUqp+7XWPwgxkxBCiJ246qqrGr09Ho/z/PPPN3rfqaeeyqmnntqGqYRoua/1/xqXHHwJ18+7njNGnsERex0RdiQhRDt6dsWzXP3K1Zwz5hzOH39+2HFEC4TWUqu1vkxr3V9rPRA4DfifFLRCCCGECMOV37iSQcWDmPLUFNJOOuw4Qoh2sq5iHT947AeM6jOKu46+K+w4ooXCHlMrhBBCCBG6uB1nxnEzWFm6kqtfuTrsOEKIduB4DpNnT8bxHB455RESdiLsSKKFOkRRq7Weq7WWzutCCCGECM2Rex3JuWPO5YZ5N/DBFx+EHUcI0caun3c9b336Fn/77t/Yt2TfsOOIXdAhilohhBBCiI7gxkk3UhgrZNpz09Bahx1HCNFG3vv8PX7/8u85bcRpTB4+Oew4YhdJUSuEEEIIUatHvAdXfeMqXvz4RZ5e8XTYcYQQbSDn5Th7ztn0iPfgrqNkHG1XIEWtEEIIIUQDU8dNZUjJEC55/hIczwk7jhCilV37yrUs+nwRfzn2L5QkSsKOI1qBFLVCCCGaxDRNxowZw/Dhwxk9ejQ333wzvu/v8DFr1qzhgQceaKeEQrQO27S5adJNLN+ynD8v+HPYcYQQrejDzR/yx9f+yBkjz+D4/Y4PO45oJVLUCiGEaJJ4PM6iRYtYsmQJL7zwAs8++yy/+93vdvgYKWpFZ3XMvscwca+JXPXyVZSly8KOI4RoBVprLnr2IhJ2gpsn3Rx2HNGKpKgVQoguaObMmQwcOBDDMBg4cCAzZ85s1efv3bs3M2bM4K677kJrzZo1azjssMPYf//92X///Xn99dcB+PWvf82rr77KmDFjuPXWW7d7nBAdjVKKmybdRGm6lNvevC3sOEKIVvD4h4/zwuoX+P0Rv6dPXp+w44hWZIUdQAghROuaOXMmU6ZMIZVKAbB27VqmTJkCwBlnnNFqr7P33nvjeR4bN26kd+/evPDCC8RiMVasWMHpp5/OggULuO6667jpppt46qmnAEilUo0eJ0RHNKbvGE4aehK3vXUbP//azymOF4cdSQjRQiknxbTnpjGi9wjOH39+2HFEK5OWWiGE6GKuuOKK+oK2TiqV4oorrmiz13Qch/POO4+RI0dyyimnsHTp0l06ToiO4spvXElltpJb3rgl7ChCiF1w/WvXs7ZiLX86+k9YhrTrdTVS1AohRBezbt26Zt3eUqtXr8Y0TXr37s2tt95Knz59eO+991iwYAG5XK7RxzT1OCE6ipF9RnLKsFO4/a3bKU2Xhh1HCNECG6o2cOPrN3LaiNP4+p5fDzuOaANS1AohRBczYMCAZt3eEps2bWLq1Kn87Gc/QylFRUUF/fr1wzAM/vWvf+F5HgD5+flUVVXVP257xwnRkf32G7+lOlfNza/LxDJCdEZXv3I1ju9wzRHXhB1FtBEpaoUQoou59tprSSQS29yWSCS49tprd+l50+l0/ZI+3/zmN5k0aRJXXnklAOeffz733Xcfo0eP5sMPPySZTAIwatQoTNNk9OjR3Hrrrds9ToiObETvEZwy/BTumH+HtNYK0cmsKl3FX9/5K+ftfx6DegwKO45oI0prHXaGJhs3bpyWCUWEEN3RsmXLGDp0aJOPnzlzJldccQXr1q1jwIABXHvtta06SVRn1Nj3UCm1UGs9LqRIXUJ3+dv8wRcfMOrPo/jDkX/gssMuCzuOEKKJzvj3GTy27DFWXbSKfvn9wo4jmqAlf5ulpVYIIbqgM844gzVr1uD7PmvWrOn2Ba0Qu2pkn5FMGjSJO+bfQdbNhh1HCNEE73/xPg9+8CAXT7hYCtouTopaIYQQQogmuOSgS/i8+nMeXPxg2FGEEE3w25d+S2GskOmHTA87imhjUtQKIUQn0ZmGi3Q08r0TreGbe3+TUX1GcfMbN8vvlBAd3OKNi5mzfA4/nyBrTHcHUtQKIUQnEIvF2LJli3yQbgGtNVu2bCEWi4UdRXRySil+edAvWbxxMc+vej7sOEKIHbjutevIi+Rx4YQLw44i2oGsPCyEEJ1A//79Wb9+PZs2bQo7SqcUi8Xo379/2DFEF3DaiNO47MXLuPH1G/n2Pt8OO44QohGry1bz4OIHmfa1afSI9wg7jmgHUtQKIUQnYNs2e+21V9gxhOj2ImaECw+8kMtevIylm5YyrNewsCMJIb7kxnk3YhkWvzjoF2FHEe1Euh8LIYQQQjTDj8b+iIgZ4c8L/hx2FCHEl2yo2sA/Fv2Ds0efzW75u4UdR7QTKWqFEEIIIZqhV7IXJw87mfveu4+aXE3YcYQQDdz25m24viszHnczUtQKIYQQQjTTT8f9lMpspSzvI0QHknJS/PWdv3Li0BMZ1GNQ2HFEO5KiVgghhBCimQ7Z4xBG9B4hXZCF6EBmvj+TskwZFx14UdhRRDsLrahVSsWUUvOVUu8ppZYopX4XVhYhhBBCiOZQSjH1gKks3LCQtz99O+w4QnR7WmvumH8HY/qO4dABh4YdR7SzMFtqs8CRWuvRwBjgO0qpr4WYRwghhBCiyX44+ock7SR3L7g77ChCdHsvr32ZxRsXc+GBF6KUCjuOaGehFbU6UF27a9duOqw8QgghhGgapdQUpdQCpdSC7rx2ckG0gO+P/D4PLX6Iymxl2HGE6NbueOsOSuIlnD7i9LCjiBCEOqZWKWUqpRYBG4EXtNZvNXKM/OEUQgghWpFS6mCl1PeVUmfWbc15vNZ6htZ6nNZ6XK9evdoqZqdw7thzSbtpZi+ZHXYUIbqtteVrmbN8Duftfx5xOx52HBGCUItarbWntR4D9AcOVEqNaOQY+cMphBBCtBKl1L+Am4BDgfG127hQQ3ViE3afwJCSIdz33n1hRxGi2/rLwr8A8NPxPw05iQiLFXYAAK11uVLqJeA7wOKw8wghhBBd2DhgmNZahvy0AqUUZ40+i8v/dzkrS1eyT499wo4kRLfi+i73LLqHY/Y9hgGFA8KOI0IS5uzHvZRSRbXX48C3gA/DyiOEEEJ0E4uBvmGH6Ep+OPqHKBT/fO+fYUcRott5ZsUzfF79OT/e/8dhRxEhCrP7cT/gJaXU+8DbBGNqnwoxjxBCCNEd9ASWKqWeU0o9UbeFHaoz61/Qn28N+hb3vXcfvvbDjiNEt/K3d/5G37y+HL3v0WFHESEKrfux1vp9YGxYry+EEEJ0U1eFHaArOmv0WZzx7zN4ec3LHLHXEWHHEY34ovoL/vbO33h25bOsq1iHRjOy90hO2O8EfjDqBzLBUCf0WdVnPLPiGS49+FIso0OMqhQhCXWiKCGEEEK0L631ywTDffJrt2W1t4ld8L39vkdBtIB7Ft0TdhTxJb72ue616xh0xyD+30v/j5yXY+LeEzl84OGsKlvFlKemsPcde/Pk8ifDjiqa6b5F9+Fpj3PHnht2FBEyOaUhhBBCdCNKqcnAjcBcQAF3KqUu1Vo/EmqwTi5hJzhl2CnMWjKLlJMiYSfCjiSAymwlpz1yGs+ufJYT9juB6755HYNLBtffr7Xm5bUvc/F/Lua7D32XXx/ya/4w8Q8opUJMLZrC1z5/f/fvfGPPb7Bvyb5hxxEhk5ZaIToIx3OoylVRmillc3ozW9JbqMhWkHEzYUcTQnQtVwDjtdZnaa3PBA4EfhNypi7h9BGnU52r5pkVz4QdRQBV2SqOmnkUL6x+gbuPuZtHJz+6TUELwezVhw88nLfPe5ufHPATrpt3HVOfmopMDt7xvbzmZVaVrZIJogQgLbVChC7n5ah2qnF9F4XCNmws00JrjeM7ZL0s1U41BZECImYk7LhCiM7P0FpvbLC/BTnJ3SoOH3g4fZJ9eGjxQ5w87OSw43Rrru9ywqwTeGv9W8w6eRYnDTtph8dHzAh3H3M3xbFirpt3HbsX7M5vv/HbdkorWuJf7/+L/Eg+Jw49MewoogOQolaIXaC1JuNrsr6Pq0GjUSgihiJmKCLG9j8ner5HtVNN1stiKIP8SD4xM/aVLk9ZL0t1rprybDlJO0nSTrb1lyWE6Nr+o5R6Dniwdv9UQJoWW4FpmEwePpm/vvNXKrOVFEQLwo7UbV36/KW8+PGL/OO7/9hpQVtHKcUfJv6BDdUbuHLulQzvNbzJjxXtK+2keWTpI5w07CTp6i8AOTMrRIulPZ/NjkuF65HzNaaCiFIYKriv1PEoc1y8Rrow5bwcZdkycl6OPDuPklgJcSve6BieqBmlR6wHMStGjVNDZa6yPb480clp7eF5GVy3GtetxvNS+H4u7FiiA9BaXwrMAEbVbjO01r8KN1XXcdqI08i4GeZ8OCfsKN3WnA/ncNtbt3HRgRdxzthzmvVYpRQzjpvB+N3Gc96T5/FJxSdtlFLsiqc+eoqqXBVnjDwj7Ciig5CiVohm8rSmtLaYVSiKLJPeUZti26LQtuhhW/SOWOSbBjlfsyXnkvO3rltY49RQni3HUAbFsWISdmKnE1IopSiIFJC0k2TcjBS27UVrSKW27t91Fzz44Nb9mTPhxRfbP9cO+L6L45STy23GdSvwvBo8rwbXrcJxyshmN+G6Vfi+G3ZUESKt9aNa61/Ubo+Fnacr+Vr/rzGgcAAPLXko7Cjd0ubUZqY8NYUxfcdw46QbW/QcETPCAyc9gOM7nD3nbBlf2wHN/GAm/fL6ccRAWT5LBKSoFaIZMp7PlpyL42vyLYOeEYuY+dX/RkopkpZJiW2hFJQ5HhnPpTxTTo1TQ8yKURwtbvaaanXdjzNuhupcdWt9WaKhdHrr9YkT4dRTt+7fey88+ujW/SuuCG6rc8QRcM01bZ1wuzwvheOU4vs5TDOBbfcgEulNNNqHSKQnllWIYUTwvDSOswXXrUJrf+dPLLoEpdRrtZdVSqnKBluVUkrOlLUSQxmcOvxUnl/1PFtSW8KO0+1Me24aZeky/vm9f+7SPBT79NiHG791I//7+H/M/GBmKyYUu6o0XcozK57h9BGnYxpm2HFEByFFrRBNoLWm0vUodz0MpSixLZLmzt9ILSM41tcea6pLyXg58iP5FEQKWrxcQNJOErfipNwUaTe98weIpps2DcaODVpoAU4/HU5qMJ7qjTfgkQarnrz/Ptx6a3Dd82C33WDAgGA/k4GDD4Zn2n6ootYax6nAdaswjEhtAZuPYdj1v2dKmZhmDNsuJBIpwTQTeF6KXG4Lnie/R92B1vrQ2st8rXVBgy1fay2DP1vR6SNOx/Vd/r3s32FH6VZeW/ca979/P9MPmc7IPiN3+fmmHDCFCbtP4JfP/5LyTHkrJBStYfaS2Ti+wxmjpOux2KpTFbXS/UOEwfU1WxyPlOeTMA1KbBPLaHpB6voOyq8CNBjBZFC7Ks/OI2JEqM4FsyaLFvr0U7j88q2ts1//Ovzwh+DWfk/POw/OPnvr8ba97eMLCqBnz+C6aQbdkc88M9j/4gvwfYjUthSUlsL8+a3+JWitcd1yfD+DaSax7SKU2vFbu1ImlpWPbfdAKRPXrcRxyqXVtptQSv2rKbeJlhvTdwyDSwYza8mssKN0G57vceGzF7JHwR5cftjlrfKchjK4+5i72VSzieteu65VnlPsupkfzGRoz6GM7Ts27CiiA+l0Ra3rygd40X5Sns8Wx8XXmiLLpMAym9XCmnJSlGfLiRgm/RM9wLCo8Xa9cFBKURANWnsrc5VywqelPvwQbrgBXn892D/hhKBL8ZeL15bYc09480345jeD/bvvhgkTYPXqXX/uBly3At/PYVkFWFZesx5rGDaRSA8sKx/fz5FzSvH9bKvmEx3S8IY7SikLOCCkLF2SUoqTh57M3DVzpQtyO3lw8YMs+nwRN3zrhladDXdsv7H8YNQPuP2t21lfub7Vnle0zNrytby67lXOGHlGi3u8ia6pUyg3ZDYAACAASURBVBW1AOl0Gt+X1gTR9qpcj0rXwzYUJdsZO7s9Wmsqc5VUO9VEzSjF0WLybJu4oaj2fBx/14vQumWAXN8l5aZ2/gARdCu+665gg2DM7CefBJdt7cILYfZs2HvvYP++++CDD3bpKYMJn7JYVj6mGW/x8wTjb4tRgOOU43ny+9QVKaUuU0pVAaMajqcFvgBkqt5WduLQE/G0x5MfPRl2lC4v5+W4cu6VjO07lsnDJ7f68//+iN/ja5/fzf1dqz+3aJ7ZS2cDcPrI00NOIjqaTlXUGrVrfqZSKSlsRZuqcFxqarsb97AtzGacDfR8j/JsORk3Q9JOUhgtrD+bmG+ZGECV57VKzqgZrV/qx/GdVnnOLu8//4FXX926369f+7xuQQGcfHJwPZOByy6Dm29u8dN5XgbPS2GaCUxz11slDMPGtkswjCiuW4XrVu3yc4qORWv9R611PnDjl8bTlmitLws7X1ezf7/9GVA4QMbVtoN73r2H1WWrufbIazF2MvyiJQYWDeS8/c/jvvfukyV+QjZ76WwO6HcAexfvHXYU0cF0qqIWIB6Po7Umk8mEHUV0UZWuR9rXJE2DAqt5s+o5nkNZtgzXd+uX4GnIUIqkFSz1k26FbsgQjK81lNHtZ0PWnka7frB5/tYu2b4Pt98OmzeDUjBrFjwU8lIbsRgsXhx0fQZYtw7++c+tE1TthNYerluJUjam2bwuxzuilMK2izCMeO1MyhWt9tyiQ5mvlCqs21FKFSmlvhdmoK5IKcWJ+53I86uepyorJ4naiuu7XD/veibsPoHv7POdNnud6YdMR6O58fWWLRMkdt3a8rXM/3Q+Jw87OewoogPqdEWtZVlEo1Fc1yWblbFfonXVeMGEUEnTIL+ZBW3d+FmFoihWRMxqfEKopGliKUW157XKWFhDGSTtJI7vkPW61/8J7Wn8tItXlcOvyeGnnGCrcfCrHLwaB3/xMvT06UF3X4BkMihuw9ajB/TuHVy/+2746U9hw4YmPbSu2LTtwjYZU2TbBZhmEt/PSGHbNV2pta7/wWqty4ErQ8zTZZ049ESyXpZnVrT9LOjd1cNLHubj8o+57NDL2nSM5YDCAZw56kz++s5f2Vizsc1eR2xfXa8HKWpFYzpdUQsQiUSwbZtsNisTR4lWk/V9qlyfqKGaVdB6vkdZpoxqp5qIGaE4Voxt7HiioQLLwNO0yqRRAHErjqlMqnPV3WLSKO3r2uI1h3Z8lKlQMQsjYQdb3EKVbgSt0QP3wX/lLfzzL0K3wljmNnHttcFkVbvtFuwvXLjdQz0vhdYOlpWPUm23Pp9l5WGaebWFrSxh2sU09re/eYtmiyY5eI+D6Z3szb8/lC7IbUFrzfXzrmdYr2EcN+S4Nn+9Sw+5lIyb4S8L/tLmryW+avbS2YzpO4Z9euwTdhTRAXXKohYgFothGAaZTEbG14pd5vqaCsfDUoqiZhS0aTdNaaYUT3sURAoojBY2aTxPxDCIGYoaz8drpSI0L5KHp70uv3atdnz8GgftalTExMirLWQjJsoygu1//8UYui/m2/MwkhHU6BFoRwePczrg+4VhwOjRwfVXXoFx44Llgb5Eax/XrcYwIrs0MVRTWVaytsU2LYVt17JAKXWLUmpQ7XYLsP0zKaLFTMPke0O+x9MfPU3GlWFTre2lNS/x/hfvc8lBl7TJWNov26/nfhy1z1H834L/I+t2r55RYVtfuZ431r/BKcNOCTuK6KA6bVGrlJLxtaJVaK0pq23xL7abtmSPr30qshVU5aqwDZviaPF2uxtvT11rcLXbepNGRYwIKTeF30XXG/WzHn7aAQVG0saIWajG1gw+5BCYMgXGjkWZCiNmYSRtUOCnHfxMB+7hcfDBwezMJ50U7DeYVMx1g3HTppnfbnGCFtsEvp+uf33R6V0I5IBZtVsWuCDURF3YScNOosap4YVVL4Qdpcu546076Jno2a4z4f78az/n8+rPZQ3idvbo0kcB6Xostq/TFrUApmnWj6/N5XJhxxGdVKXr4WkotM0mzXLseA6lmVJyXo48O4+iWBGm0fxuoKZSJEyDtK9bZYkfgGQkia99Uk7XW5LFz7rorIuyDIykjTK/9LNKp+GPfwTHgby8YHKooqL6u5WpgsfZJjrn4aecjtlV27LggguCyaQyGTj0UPjb3/D9HL6fxjTjGEb79hS1rHwMI4bn1eB5chKxs9Na12itf621Hle7Xaa1rgk7V1d1+MDDKYoVSRfkVra6bDVPLH+Cnxzwk2afVN4V39r7WwwpGcKMhTPa7TUFPLLsEUb2HsngksFhRxEdVKcuaiEYX2tZFtlsFq+VlknRGlwXcrngM2UqBTU1UF29daupCW5PpyGbDY7viJ+PxY6lPb9+puOosfP/DlkvWz8ZVHGseJcXeE+aRqsu8WMbNlEzStpNd6nWWj/robMeyjYxEnbjrenPPQdXXAFz5273eZRSwXjbqBXMkpx2O2ZhWyeXCyaT6tMnWGJHma0623FzWFYBhhHBdSvxfel215kppQYrpWYopZ5XSv2vbgs7V1cVMSMctc9RPP3R03h+67zXC/jrwr+ilGLquKnt+rpKKc4dey7zPpnHh5s/bNfX7q4+q/qMeevmSddjsUNdYmKIWCxGTU0NmUyGaDSB6ypyuaDBxnGCz4WuGxSfmczWQjSXC67XHVtXnHpeMDmq1s2fJNW2IRqFeDzYkslgecr8/G1vi0bb5nshms7TmkrXw1aKPHPnBW3GzVCZq8Q27CaPnd2ZuiV+qlyfjOcTa0KOnUnaSbJelhqnhvxI+3VTbSva8ba20MZ38Jb1ve/BkiUwdOhOn9OImvgKdMaFtItK7Hhirzqer8m5Pq7v4/ug0SiCNwllBD9PUymUAtNQGEphKFo+I2dBATz+OJ6fRrtVWM++htpvOOy3X8uebxcopbCsQhynFMepJBLp0aYTVYk2NRv4M/A3QKqsdnDc4ON4cPGDzP90PgftcVDYcTo913e57737OHrfo+lf0L/dX//M0Wdy+YuXc8+793D9t65v99fvbp5Y/gQazYlDTww7iujAOlVR6ziwalVQmNbUBAVp0FpqUFMTo6Ymje/nMIzoNsVow4YY0ww2ywouDSO4jMUgkQj2m9Bgt12eF2yuC2VlsHFjkLuuUK7LE4tBz57Qt29wWVQUfH7dldcWTae1ptzxUEBRE8bR5rxcfUFbFC3a5njXhfJyqKiALVuCn3tl5daTJL6/9WRHXl7ws677mRcVQcI2SCmfKs9rlaLWMixiVoyMmyFhJVrUNbqj0J6Pn/bANFCNFbQbN8Lpp8Mdd8Dw4U0qaOsYERNfg866+BkXI9b426Hva7KuT9rxcGpnq1aAUT+WV6N17Tq522n0VSrobm5bBjHLJGI1/ees0bhuDYYL5rRLgq/zqaea/PjWpJSBZRXhOGU4Tjm23aNNl9AQbcbVWt8ddoju5Dv7fAdTmTz50ZNS1LaC51Y+x4bqDZw75txQXr9vXl+OGXwM9713H9cceQ222bQTo6Jlnlj+BIOKBzGs17Cwo4gOLLSiVim1B/BPoA+ggRla69t39JjycnjhheADomVtu8XjNvG4i1JZbNsKrQWhrmiORHZ8nOMERdCGDVvngTFN6NcPBg6EPn2CZSzNzluPdGjVno+jNYXWzsfROr5DRbYCy7DqC9qKCvjsM1i5MrisK2bqilfbDlrl605S1HVpLyuDzz8PegfU6dNHMWCQSbKPR6LEI9nM9XEbk7SSZN0sNW4NBZGCXX6+MATL9rjBpFBxq/HiqaIC1q0Litvhw5v9GkbUxNcanfPQpkLZwfde66CQzTo+WddDE7S85kUtopaBtZ2TD1prfB206Po6KHI9HVz3PE0m55HOedimQSJiErO3/qzrhjtkMlt7kgQn8KrJZDS5XAnGb+eSUXHSj4KbdnCx8LWibgL4hkW1UltP0tW9Z9bt2/bWE3u2HbxfWVZwvW6/4cm/htcty0KpAjTleF41sVh+h1j2VzTLk0qp84HHCCaJAkBrXdrUJ1BKTQGmAAwYMKDVA3Y1xfFiDtvzMJ5Y/gR/mPiHsON0ev9Y9A96J3tz7OBjQ8vwo7E/4onlT/Dsymf57pDvhpajq6vKVvHixy9ywfgL5CSq2KEwW2pd4Jda63eUUvnAQqXUC1rrpTt60O67b/8+rYNJo1w3g20nWzdtK6v78FjQoN7wvOAz+rx5QeueZQUF7j77BC268bZfwaNbyPo+NZ5P3FDEd9Iy6vkeFdkKlFJEvEKWL1d88AFs3hwUCvn5wc+mKS3sdYVuQ1oHvQ4WvGFQrXzyi3wOHmaw996KxC4M1zUNk5gVI+2mSVgJrHaeWKg16EwwUN1I2F+d4TiTCbo77LsvLF0afHMbe47aIhOC1lXVSFdgI2bhuj7Zagc/pslpn5zro2uPj0VM4raJ3YRWdKUUZm3X48bkcppNpR4byjxKyx0qK1zSFTapagPH2bY3R/B8OaLRNEolUMrCjOwZFKaO5qC7z8RJFrJoyt2NzwDN1ueq2+p6kWSzwXuM7we31133vK3XG36bvjwcQ+sohpFAqRSeF8E0o/XFcN1JnS9f1t23tTj+asHc2Ca9V9rEWbWXlza4TQN7N/UJtNYzgBkA48aN68AD0zuO4wYfxy+f/yUfl33MXsV7hR2n09pUs4knlj/BxRMuDrWF9Kh9jqJPsg9/f/fvUtS2oedXPU/Oy3H8kOPDjiI6uNA+6WqtNwAbaq9XKaWWAbsDOyxqd0QpA9OM4bppPC+LaXaugaumGRS5dYWu5wWtgKtWBR8o+/cPelf27x98nhfN5+tgPVpTQcFOWkS11lTkKigrg/UrivjoQxPfD7oM92+lITxKBV2S8/LAxWRTxuXFN3zmzTMZOhRGjoTi4pY9d9JOknEz1Dg1FEYLWydwO9GOh3Z9VDRYe3YbpaVwxBFw5pnwy19uU9A6XlCQ5lwfx/e33x24/p/ags/XkHYh42AkbaK2SdQyiFpGi88M+35wkqqsLPh//OmnUFamCN52LTw8VMTFjuRIFpr0jFgYX3mtKsAEvjQ5lK/J9B+EF8sjEg3rzHUeQSNfFZ5n4/sGvr91kr3KysaL5S+3JjfU2M+rYc+cuhbmhtdte2uLc919db1lGhbGjW29e7fl96fj0lpLRRWCuqL2yY+e5KIJF4Udp9O6//37cX2Xc8acE2oO27Q5a/RZ3PzGzWyo2kC//H6h5umq5iyfQ494Dw4ZcEjYUUQH1yGab5RSA4GxwFu7+lyGYWMYTu3Y2vC6IbcG0wy6IEPwYa+iIuh+bRhB6+3QoU1vJdyZnOuT83xcz69v2TKVwjIVEctoUitVZ1Be25W02NpOd9YGPt5QydvvumxcW0QiatGnT9t2B7dQFMYU8X4+CddgxYqgVXjIEDjggOYXt4YyiFtxUm4K13c7TWut9jV+JhhHa0S3ZvY8D601KpHAGD8eNXo0EIx5TTlBt16/tioyDUXUMrGMYNImhULXjX2F+q7BwX3BBE9GxMLIutgRa7vja3emshK++ALWrAl6RTvO1jH0ySTstlvDQs5Ea4OM55LzPaodj5hpE6n/JUuhlIvWhdRX4HUMg+U/uKZ+t+Dj9/BNi+oBze+C3XIKKESpUkyzCtNsmxMnDVuS67a6if0aa21uuF/XQt3Yf3XXhZO76XKHSqkzG7tda/3P9s7Snexbsi/79dxPitpdoLXm7+/+nQm7T2B47/Z8v2vcuWPP5YbXb2DmBzO55OBLwo7T5bi+y9MrnuaYfY/pNJ9hRHhC/w1RSuUBjwI/11pXNnJ//bidHj2aNm4naK0N1lO0rI7dDbmplILCwmDzPPjkE1i+PGjVHTsWBg1qWettxvGozrp4/tZioK61yPF9Mq6GLFiGIhm1thkD2NnUuB45X5NvGdg76K5ZVgbz5qdYtjpLYTyPPftH2m3MYAyTHC4506N3bwvfD4qjFSuCVtuxY4PiqKkSdoK0m+5UrbVBt+O6bsEujuPgui46lwsqmbw8uOUWtIZceRU5H0zTImqZxGyLiGVst/vvzviGCsbXWsZXW4gby6qDycHWrYMPPwyKWggmnevRI2g13PZ4jfZ9tPZB+4AmClho0p5Dys2SMyzitoVpVqF1BNjJf2ytGfWnKZiZGl6+4/127q9ro3UeSlWjdZSdZm0Bpba2uLamhmPhu6HxDa7HgInAOwTzXIg2dNzg47jtzduozFZSEO2c8x2EacFnC1iyaQl/OfYvYUcBYEjPIRzQ7wAeXvKwFLVtYN66eZSmS6XrsWiSUItapZRNUNDO1Fo3uip5w3E7e+7ZtHE7QTfkKK6bwfNymOZOZm3qZEwTSkqCLZ2GV18NxuGOGgXDhm07Tnd7fF9TmXHIuj6moSiI2cTsr3a19H1N2nFJVdVQVp7DxicvYmJHbJRto+JxVCcY9Jb1fao8n6ihSG7n03EmA+++CwsX5fCj1ezRL0rS3LV1aJvLQBHTBhnl42gf2zDo1Ss4kbF0KSxbBgcfHKzo0pQP+YYySNgJapwaHN/BNjr2DI113Y51xCCdTeO6LkopbNsm8rOfoZYuxZ07lxQGleksruNhGxA1NUnbJBLZtcpHRU206+OnXYy87ayHSzBp3ccfBysIVVcHdWRRUeNj/rX20W4W38uB7zb+ukACyHoeWacGJ1dF1HSwjD6YRjXKtFCGjWpsJmulWPCrR7BTFUGQlqxFtkuSaJ0BqoEIXWD58y5Pa31hw32lVBHwUEhxupXjBh/Hja/fyHMrn+OU4bLmZnM9uPhBImaEycMnhx2l3uThk/nVf38lY6XbwJzlc4iYESYNmhR2FNEJhDn7sQL+DizTWt/S2s9vGBEMw8X3s7XdkLvmB614PPgg7brwwQewaFFQ8IwZE3zIbozr+ZSlHLTW5McsEpEd/BpkM0Srq4n4mqypqfYU5VmfpJclls1BTQ1mMonRnObDduY1GEdb2Mg4Wt8PZjF+7TXIOh6FfSqxTJOECucsehSDHD5p5WFphULVz4ydy8HLLwetgt/4RrA00M7ErThpN03KSXXo1tq6bsee9sk6wfTQ0WiUSCQSFJcnnYQ7dBiV2sL1NXnxBHnFFkr7ZLNZMpkMuVyOWMwkWHqz7hyYUfseENlpl3OlFEbMwk856KyHatAN2XGCHhLvvx+08llW0CW8cDvfUq012s3gO2lAowwLZcdBmaCMRt+TEkDMT+P4WTJugqwLlkoTccA0DDAsDDOCMiPbFLiZXnuQYQ8A9nnkOmJb1rPkvNvRZnu9xRegVCla1wCdf23kbqgGkE/j7eCgPQ6iOFbM0yuelqK2mXztM3vpbL496NsUxbbzAScEpww7hV/991c8svQRLj3k0p0/QDSJ1ponlj/BxL0mkh+Vvyti58JsqT0E+CHwgVJqUe1tl2utn2mtF9i2G3L7tri1N8sKxtf6fjCx1LJlQXG7//7bfuh2PJ+yVFAwFCcj2x0rq7XGr6jAz+ZQERszmSQvEiHua6oyDinXJ+d75HlZqK7Bz+UwCws7XKut1poyJ1gzqdj66kQ8ZWXwyivBJD49e2ri0XI0EFeFoU0dr1DEtUmN8sjiE2Nr8RKJwB57BLkffhgmTIDRo7/azbUhQxkkrATVTjWO53TY9fR0zsN1HLKGi6FM4vE4pmnCpk3onj2pnnQUqcMnYWgojNsNusIbmKZJJlNOKr2FbNYnGo1i21GCwlbXLpulasfcxzCM2HZ/vsoyUBGzvhtyTcbgo4+CE0aZTPD/qX//HTeGat/Fy1WD76HMCIYdRzVpPJDGNDKY5BOxe5D1PHK+R9pzMbRHxPex/BQ4KZRpo6w4xpd+nlaqArumHN2u6xPbaB3Mhhx0Q+5avWO6GqXUkzQ86wPDgIfDS9R9WIbFpEGT+M/K/+BrH6OLnnBvC2988gbrK9dz3cTrwo6yjb2K92L8buN5eOnDUtS2og83f8iqslXSrVs0WZizH7/GV2Y/aV1KGRhGFM/L1E4c1fU/aNXN6On7sHp1MO525Mig5TYaCwpahaJHMrLdcYdaa7zycnTOwczbthXWNBRFiQjpnEdVBiqMBEnLJZJN4ZWVYRYXd5jCVmtNuevhak2xHUwaVMfzgpbtN94IWrv32ANSfgU+HglVhKnCHW5uY2Brn4zyiWgD40v/VYqLg+WE5s8PJiU68sgdTyRVN2FUjVNDkdlxznDX0a5PriZD1newohHi8TiGYcDTT6NPPZWqOU+THj+BmG1SENt2ki/fz+K4VRiGR16ykFwOPM/ENCPEYjFA4/sOWufw/SyuWwlUY5oJTDPRaHGroiblW3yWvuXywQobw1T07Am9eu38a/HdDH4uBUphRAu+UnTuWDVKeWhdVDvRl0FUWzimFXRN1pqs9rC0h+U6mJ6DNm0MK46qfZ0Pz7ou+AVXikj5RqxMNam+TV6pZRfkoXUWqARKaOO3d9ECSqmoDn5INzW42QXWaq3XhxSr2zlqn6OYtWQW733+HmP7jQ07Tqcxa8ksoma0Qy6fM3n4ZC594VJWl61m7+L2eL/t+p5ZEbRxHb3v0SEnEZ1Fx6g+2pBpRjAME8/LBpOztCGtNb7r4eUcvGwOL5MNtmwO33Hw3WD21vZQV9z27RuM+7v/fs2r8x2cHBQn7B1OpFNf0BYWbLdbcTxiUpIXxTINqpVFTTSJdr3gsX7bfp+bQmtNheuRrZ0YKtqg0C4thccfh9dfhz59grHJGb8KlxwxlYelOsbJj3htC20ar9H7LStoMayuDlptly/f/sQ3SikSVoKcnyPn5doqcos5NVkyuRxWIkIikQgKWsA/YBzZ088gM2IUBTGbwvjWca5aa1y3CscpRwG2XUw02oP8/B5Eo1EcxyGVSqE1mGYUy8onEumJbRdjGBaeV03O2YLnZbbJUlYG//ufYvYci49XaXbv47PbbkEr+c74Tgo/V4MyLcxYYTMLWqe2pTMObF2OzFCKqGlREImSsG0s08Y1I6TNBNVYpHMZsulyvFz11ve42gHXo+/8EQddcQSGk21GjpZSQD5KeQS9WUUH9Ebt5Y+11i/XbvOkoG1fdeMD/7PyPyEn6Tw832P20tkcve/RHbIr6inDgq7ks5fMDjlJ1/HMymcY0XsEAwqbNkmsEF2+qIWgGzLwlQ+vrUX7Pr4TFLK+64LWKEOhTBNlmqBUMF7QdYNiN+egvcYLldZWNxYzUeSwcKHm2ScirF0TrCfZGK+qKihoC/IxdjKdsmkELb7JqEVWmZTbcTzHxauoaLfivTFaa8pcj4yvyTeN+omhfD9onZ01C2pqgtZZ24aMriZHmohKEFEdp5t63aRRjtK4bP9EQY8eQWH+wgswd24wQXBj4lYcQxnUOB2r4PCyLulUCituEY/Hg6K1vBzf8ynNK6Ly5tspLCkg3mASKK09HKcMz0thGHFsu2SbnhixWIx4PI7v+6TTafwGv/CGEcG2i7HtIhQK160glyulosLh5ZfhoYdg7Vrou7tBSW8DG69J0+R6uRp8J42yohiR/GaO49dABVo3siZtA7ZhkrQj5NtREnYE247jRvJJY1GZrqamejOuk64/fumPbuGDn96Nb7fXmt1RtI6BShE0AHYsRi5Dr4XdupCIKKW+DxyslDrxy1vY4bqLfvn9GNN3DM+ufDbsKJ3Gq+te5fPqzzl1+KlhR2nUnkV7MmH3CTy8VHrxt4bKbCWvrn2Vo/eRVlrRdN2iqFXKxDCi+L6L57Vei4XWOihmcw7a8zFMEzNiY0YjGLaNYVsYtlV/mxmxMSwTtA6Kv2wO32v71tuM66JMn7362xQkDf7zH5gzBzZt2vY4P5vFT6UxEnGMeLzJz58XtShK2GjLpsKI4may+FVVrfxVNI3jazY7LjlfU2CZJGsnhqqqgqefDsbP9umztatu2q8kp1NEiBNT2y8mwhLFwADSOyhqAaJRGDAAPvoIHnssaG38MqUUSTuJ4zuk3fRXDwiB9jWpimq0oYjnJ4MW2kwGPXEiznlT8H1NYcIm2mCCL9/PkXPK0NrFsgqx7YJGuxDbtr3dwhbAMKJEIiW4bgHvvusxe3YpK1dWsdtuPr16Bb0dvNrByqa34wLNd1JoN4Oy4piRvBaMx66qbeHMpylvy4ZSRMygwC2IxEjGC7BjhTgaKmvKqKzeguM61Oy2LxvHBR8K+sx/kv3+dQXbPaPVavIJWm3DeQ/YkX0evZ4JVx9D8rMVYUcJy1TgMKAIOO5L27Eh5up2jtrnKF7/5HUqMhVhR+kUHl7yMAk7wbGDO+6v6eThk3lnwzusKl0VdpRO78XVL+L4jnQ9Fs3SLYpaqOuGbOH7OfztLKvRHL7n4WdzQTFrmRjRCIZt7XA8qTIMDMvCiAQFL4DvuPi5tuua7Po+Wc/FNk0ipkk8HhQ/VVVBl9XXXguWBdK+j19ZibItjLw8XNetn1E2k8mQzWbxdtC6HLVMipMRiEUpxyJXk8JPpVr969keX2sqXY8tTvCzLbZNEqaB1sHMxg89FBTxAwYErbO+9kn55ThkiKokMaPjdWeCYNKomDbxlCa7nW7I9ccq2G23YIbk2bODsbZfFrfi2IZNjVOD38bd8ZsiW53m/7P33mF2XdXd/2fvfcqtU1WtYltuMraxjRvGccGWXAAHCKEmgRDyg+DEcUiogbQ3L8mb5EfykkBIICTAQxyKKbbBTXLDxgX3hpuabdmyVUYzc+spe6/3j31nNCojjepI1nye56jMbevcc++Z891rre+yeU6xq+RNoQDimOStb6d5yZvpKm4uaK1tkWWDgC83HqnCGI8gCDYTtmO/Y875ku3vfrfIww/3099fYubMJtpsADqfXaVwWqOsQ40jBl3WGs3QmmhXMv1tlGohUmJs2fFEGRG4lbhId3U6caGKtSm1xnrqrRq2c5z7H7uV6Q/duA9KkTVIGaVSoc8bigAAIABJREFUYO9Ux+wqy97xKX7x2WtoHHLUZIcyKYjInSLyUeCTIvLBLbbfmez4DiYuPvJirFhuXnnzZIey35O7nKt+eRVvOfotlKP9d9LCr7/m1wH44ZPbnFA5xU5w3bPX0RV38YZ5b5jsUKY4gDhoRC2MlCErrG3tcn/tSHbWZTlo5QVqEOxUZkYp5bO6cYQJQ1Dg8hzXKV/eU+LWidDMM7RSFLcY7dHb6/sxn3wSrrwSnn6oRp5b8jimXq/TbDZJkoQsy8iyjCRJaDQaNJvNccVtaDR9pQhTqTJkFcnQMC7du/2bmfNidl2a07SOktH0hwGx1rTbcOutcMMNfrzRiMlPLhkNGSAno6CqxGr//SUJEKExomgrh2PHn43eXr/95Cdw//1bJ+YqUQUnjlo6uZk0m1na9RZBISIudsRpktDMLEN/9HGCS98yxuEY8rxGng+jdUgU9qEnOHM3CAIKhQLWWtptL7LWrvUZ7Ztv9oZbhxyiCYIqIv0gAUrVgA1Aiuu0EJhOa8FYXN7GZU2UiTHRrmT6c1DDiITsiVE4WinKhSrdlekUwpg0rTHc2Eg7z/jl73yBuz5/Gy4uorKUeGDNbr/e+JQQCfCzayevFQFAZwlHfeev0WkbFxVYe9qbJzWe/QER+fpkx3Cwc+bcM+mKu7j+2akS5B1xx3N3sK65brRvdX9lfvd8Tpx5Itc+c+1kh3JAIyJcv+x6Fi9YvN9Oa5hi/+SgErVKaYLAl9XmeXOnha0457OqneysiaLddvpVRmMiX5qM1rjcZ4Bd5vtud0fgtq0XyKUg3Kbo1tobSXWXEn62tMZPbla8vM5ijB+nUqlUqFarVKtVKpUKcRxjraXRaJCM07gZGE1fOUJ3dTOUOtKBjXvcOMqK0Mgt69KMDVlOyzoKWjEtDOgKDFopXn7ZZ6KXL/fZ2ULBZ2fbrkZTfG1uSfUQqYmXWU8mRQwCtHdQhjxCoeAXLe69F5Yu3bzPNtQh5bBMYhOSPViOv7O0huugFMWuzqLCddchCxfSfPxJ4kBTLfhfZiJutH/WmBJh2LvTc6fDMCSOY+r1jNtuS7jqKmg2fV/15q3jAdCLSDcgKLUR1DA2UCCCHvNZdjbtmEKF6F3KHjhgEF+qu2fnB2sTUCr10VXsxriMVmuQepaSF3ycx339Y5z9J6dhmntzYaOrU1Jd34uvsWP6H7+dY77zl0x/6KZJjWOKKcYSmpBFCxZxw/IbJtWD4kDg6qevJjYxFx958WSHskMuPfpSfv7Cz9nQ3DDZoRywPLb2MV6svThVejzFTnNQiVrw/bV+Zq10hO3EDJvEekGLCCb02dk9GpfWvvc2ClHGINaN9t2OmEuNZIhdlvvM7shmLeLcZr8YU2vJrKUQBJjtCG/ncsJ8LTNm59TSKj/9aZlHHinhXDjqQAugtSaOY8rlMmEYkiQJzWZzqz5F2GQgpbq6GGplZIO73zMkIrSsYyDLWZfm1KxDo6gGmulRQHcYEGhFnsN998EPfuDLjGfNAsHSdjXqssEbQlGkovoJ1IGzAhigiESTKkc+wcyXMV60rVrl3Z6HxhyGUlAi0AG1tIZ1+8a0bCxZOyVPMgqVIqZTXmxnzCQ97niYO5fuoj82zmWk2QDOZQRBF0FQ9dlSm0GeQJ7CBOIXgZdeirn66pAnn0yYNSunZ7uTjQpAPyJlUAliBhGdoq03jXI2wyV1lA46plA720PrjaGUsiBdwN6ZKRtEZSqlHiKELBmmliU4EZ676COseNufYEt7s+x+0+xayPbi64xD53y47uQLufVLv+SVM/a/MSBTHNxccuQlrB5ezRPrnpjsUPZbRISrn76aRQsWUdmlaph9y6XHXIoTN2UCthuMjPI5EBYxpti/OOhELYwVtj5juyPzKLEWl2V+7mQUoszee9uU1t5gqlOarANf+ogIYp3P3lrrM7ojW5ZvGiOUpGRJQjNpY4BIb/tiWcSR5y1sawCsRZemMW16iTlzDI8+Cv/zP37O7ZYLyFprisXiaDlns9kkz7fuUQ6Mpq+rBJUyG4fq5LVdy9ZkThjKctamOUO5xYpQMZppYUB/FFA2PjMLflTPj37kS27nzIFCOaPphkbFbEhEWfVR0LsiQiafQmda7XgjfraFUt79utWCq66CNWtGfq7oiroQEYbT4b0T8DiICM3hBtoYonI8+iEbOvYEhq78Pj393SilOv2zPqsehj0Y0dAcgPor0Fjv/93cAPW1fmsPwzYMnRoN7wz9059CpRIzc6YG2hPIjiigAtIHYnBhA9QgOm3ikhpojY53R9CmiHSxK320O4MOChSLXRSUYJMatTRh8NDjWfHWj4EIXase4qQv/jZhcwAle9qxuIyg2demUfHAGt7wmXPpXv4gAI25x+zT1z8QUErNUUq9QSl1zsg22TEdbIxctE+N9hmfx9Y+xqrBVbz1mLdOdigT4tRDTmVWZdZUCfJucN2z13HyrJM5pHrIZIcyxQHGnk03HkCMCFtr21ib4FyOMTFab/6WiHW+f3ZE0O4jMaSUAqNQO1h3EBEvCkQQEcQ5mmkKToiVwSUpaO1HDGmN0rrjAt1GnCPKclRURWK/AmqMNxtqNn0v6rx5cNZZfmzMWKIoAhT1WoNWfZgwiAgD3x9sAo0JNUGo6e3tZiDJGNwwSF8UouOJXcBbEWqdsTwKKGhFwWw+b3b0vtaP6rn7biiVhJlzEtrSwkqGQvtRPRTRau9kw/YVumMa1VKWRCzxTmT3+vu9uPvhD+GCC2DhQgh0QDWqMpwOU0trVKN9Y5aVNNpIbin2VP2CxPvfT3L0QrIr/oTuop+hnGXDONdC6whDEWnUyNM2KA1BAUzos6QGFNZnbbMmpA0ICxBVER2wbBncfrt/3fnzfQuCc4XOYlZ7tB1h+wRAH0IDywCk61BBDzqaudNl0L7keETQVoF9U/6ugwJxAXRSo5XWaYmiqi0RlmlPLGX6QzdSqD1PGswEpbG6gNVlRO3urwgNUkGpYURa7Kv9Vc4S1TYQ1gb2yesdaCil/g54N/BLGF0lE+BnkxbUQcjcrrkcP+N4rl92PR9/w8cnO5z9kqufuhqF4tJjLp3sUCaEVpo3H/Vmvv/L75PalMjsH3PvDxSG2kPc9cJdfOqsT012KFMcgOzwikUpdTnwbRHZxpCQAxvfY1vCuQxrE/K8idYGrSO0Dkfnz+5rQbszKKV8Og6fV2rlGYQhpSAgwM/HFedwuUMkR1yKqBylA0LAqABb3FrMlEp+27DBOweffLLfokjIU4vNHM4KkS6Qmja5y9ACURjhrB9ZlCoIY0O1v5fhV9YxuG4jvYfM2GEfctM6arm/zqoYTcno0WzslmzY4GezrnnZ0T+rjQRNWuLQGAqqQkhxvzxuu0qMJhNHSzlC0Z3c7cQol31J9tKlfuTPGWdAISiQu5xm3sQoQyncu3N6nXPeHCoMiUoxpKn/rGSWQmiIjJBlG3xbgBSxNUvaWgeiIC5DUASnGNtarHRIEMUEkULnDciaNIba3H1/iadWVpk1WzN2LUXrAGPizmJWMGHDKWcjXBoRqJjQWJweBMr4UuWJHIc2UAflOhnafdvPbYzB6Jw4HyRNNa2gjA3KrLrkcp4/73ewxSpaMmbedw0bXncexjZxukBmuv1iwi5T9IJW1UFi9maBUPfyBxlacDLtaXO57Z8f9at0U2yLtwHHiMjkNdVPAcDFR1zMF+/9IvW0fkCU1+5rrnnmGs6YewazKrMmO5QJc+nRl/L1h77OHc/dwQULLpjscA4obl11K1YsFx150WSHMsUByESuLmYC9ymlvqeUuli9mhRCB61DgqCMMTEiQp63SJMaWbuBwH4raLckc5bUWiJjiEyAMsbPyY0jdBQiOkNUDmJQEkG9QS4Kp8y4pZj9/TB7tvDoI5ZvfzPjsQdT2g0LCqJiQLk7pm96D9XuEhhHLilRSVOohBijydoWUkdUqdJOUurrt585Gc4tw7klUIppUUAlMNsUtFnmy4y/872cgXqN3rkbcEEdQ0BRdVPR/USqdEAct52l1MnQNneiDHmEKPIGUg8+CDfd5A2kKlGF2MTUs/pen1/brjfBCcUuL55tELLhq/9J+olPUg4zsmwAax22XSQfaGJbdYJikXjaTAp93RS7IorVkGI1pFAOCQsGrRVZ29Jq5CSuxLNrpnPVNSXWvtjkqEPWUQq3Hi3lqzKMr1iYgGGc76GtgYlRhUPR0osSQalhUOvx5bUJbHZMBN9L2gDWo9QQoEB62ZeCVrmUMB8gytYTBQoVdaN0N5nuoSZFWhKQl/sRHdH/4G2c8jfvo+8Xd2BNGS0Jcb4O7Xb3c9GFSEYuA6TSpC11Wm6IZmdruWESaZJJgpugz8GW9Dx1D2f/8anMW/pf/gdTgnZ7rAAOHFOBVzGXHHUJmcu4ZeUtkx3KfseLwy9y/0v386tHH1j98IsWLCI28VQJ8i5w0/KbKIdlXj/39ZMdyhQHIDvM1IrI55RSfwZcCHwQ+JJS6nvA10XkVTNhWimFMXEng5OSt5uIyyEQlBO0jnah1HDfISK08hytFAUTgAjKOZQI4nJU1iQATFBA6RDJE0CwQcGXV4MvUVZ6U9JJ/PMq55jRD1mmuPNuw+NPa846S/tyzs5bEscxxhja7TbNZpMwDImKESGGrGUpSEQSFBkebBAUYopd1a3iH+qUG5eNphqM1wsMzz0Ht/0sY2OjSd+MhCBQhMREqog5gMyfdhWNoiialnIk4oh3MvNljC/FfeEF34N8ySXQ1dU1WoYMfp7tnibPc9JGQhRHmPVrkSuuYOjvvoBMm0EpamFtirMG2wxRyTBhrAmrfah4HGdhAyb0++6sY2ij5We3W5Yvh+mzypRKRXA1gnwIo1tkpgsZ8/kwZmwZ8vgZamdTXFIHbTBxFUGBizFZTB46UAmoForx5zKLBPs8O6tcSuhqKJeC0uSmitUlJFCoZJiCS0iMpp3niEAhCFh76pu4/9NXseb1b/c9w/UWlAPCfBBrUnLdNVoZsiOcOHLa5JJhyYAEpTbipAcIUWhU52QjCCKbZtpqMRhCAhVhiNDbO/eKgFIMHnMGj/9//8xL57xnN961g4Ym8LBS6mb8agwAIvKHkxfSwclZ886iHJa5YdkN/OoxB5Z429tc8/Q1ALx14YHRTztCOSpzwYILuPaZa/mni/7pVbm4vrdYsmIJ5x123lTZ9hS7xIQapkRElFIvAy8DOdALXKWUWiIin9ybAU4KVmFMERVpROVYm2JtitYhxsSTL247WVXV6aUdKTs2eU45CAmybPQ+Tiy5a6O0wgRFNAYlgm43UMaQF4pYfDWnOEduE6xkWMlxWESJF7smQEeaaWVNs6H58XWaaf2K159uOHReQBgYgiCgXC5vNt82CAKiQkQgAd2qi/VrUja8tIFZUURQ2FQTOphbEidUjaY8jqB9+WXhznsSVr3YpLsvZ+YhmkiVCSkc8P2yO0uMIRWhpSyBKMxOlCGPMGuWN9f6/vfhTW9SzJ7dxVAytNeEbdJo+/7orhLcfxdy553YDRsozS6hlcPmMVLPMXaYuBqjy31gJtbT+cJqzS23aPLMMWeeBbHYTJEEPQRBQmBrRNl6rCmT6yoohVIGreNOX32K2cYv0S0F7ch33wYBJsvQLsSZgu9pJ8Nnai0+S6vxrsYhe8vdeJuII7DDGNdClCE3XVhd2qxNwUQVbDJMbNukYZnE5ghCMQhZ84Z3ABA0hjj7j0/npbPeybMf+HOMbaBdRhr0wna+b1YyUmmR4RfONIaACKNmYNQQihCtpm/1OCcOh8WRkUtGRkLWEbpaRp4jIiAavUjsfepujv/qH3LvX1xH2j2dVW/5gz37Xr56uaazTTHJxEHM+YefP2UWtQ2ufvpqjuw7kmOnHTvZoew0lx59Kdc9ex1Prn+S10x/zWSHc0CwcuNKlg0s4/LTL5/sUKY4QJlIT+0VwPuB9cB/AJ8QkUz5q7tngVeVqHV5jjiHDgLvPEyISIxzKc5l5Hne6bmN9s3qm4gvcxRBiUM52cqSOBff+xsbg9EapxSiFBZLbnN0EKNNEVHaF0dmCQECcamTzU1xJCTaYkNBAIUmUPGYTIr/05ETl4XpZUe9Dj+6AXp64MQTFYfNCyjGAcYY4iDG5pY8y2k2m2itCaKAnhk9DLy4nm997Vv89Rc+z3PPP8+8Y47lU3/+53zgXb9OeYuSQRF4cU3GLx5qs+L5hFLJMWeuIVJVQgoH9QpoGUONnCaWCmb0WO0MfX3eFOxHP4JzzlEcd1w3w6kXtiKyx3ps8zwnaybEhQI6NLTeuIihhx4lKltC7XBpCak3MSoj7qmgij0Tygi223DPPfD44zB9OpRKGtDe4C3PsVmO0yG56SeUekeYtclNF04XMCZCJMe5BK0NaoxYc3mCSztje8YIWgDRGtEabS1O606sk7+ybFyTwHo367ECfktUR6Tb9jAF2yYxRVJrEaBoAu8+HZdY9eY/YGDhG8hNF2SOwA0R4ciC3s2y3gBWchJpkJMAiogCoSpiNjObClB6EJEGvh95E1ppNBoIidTIc2bkZFhJSWmDtABFIBGhisnjEjprE9YGSLu3FspTbBsR+aZSKgKO7vzoaRGZhLlLUwBceMSFXPvMtSwfWM4RfUdMdjj7BbWkxi0rb+EPz/jDA/L3/MiM1RuW3TAlaifIkhVLAFi8YPEkRzLFgcpE0iB9wK+JyHNjfygiTin1lr0T1uTgOqNytNEdQetRSmNMAa1DrE06BjNZ52d7wUC6U/KrO+XDoyK2I1ZFa6RjEOWAWpai4phCGGE7J38vwNtobTBm895SnbWxRtEuGFIZQjmLdkJsQwIXoQnBhAj+tbZ1USwiVKqOGVVHvZHz89tyfhHnnBQ/xmHZcsJ3XYRSEP7kOszTyxj88O+iRBEN1rjt1jv44j/9G82BJsQFVq9bxycu/wO6Xc773vc+cslptDJWvZDx8GMZ69Y7ikXF3NkRsS4SqMkXD/sDGkVJDA1laYqlvItm5qWSH/tz++2wbp3irLO6UWaYeubHMO0JYduuNVFAfPUPyLq7GH7jBehCRikMse0CNOuEgSXq6YNoYq/3/PNwyy2+v3rePBjrP6aMxpgIl1skz7EOxJTRpkjkaoT5RpyOyUx3pwy50SlD9kLL5W1c2ugI2q5tXlRZYwiyzAvbPTy3eqcRS2iH0C7B6ZjcdO3QudjP2C3j0jqxzjBB3ClFFkpBCEHI8l/7xOj9D7/6S8y7+b+45+9vQJUdmenFaV9tkUiTRBoAxKrSqZ7YVkVLjEgMqtExjdp+jEaFGEJQJUQES8asO79D8eVneeIdl/PSoXNY/093EZnKLizpHLwopc4Dvgmswifv5ymlPiAiU+7Hk8CiBYsAWLpi6ZSo7XDzypvJXMZbjj4wLzPnd89n4bSF3Lj8Rv74zD+e7HAOCJasWMKc6hwWTls42aFMcYAykZ7av9jObU/u2XAmD3EOyXJfajvOBerIGKDN3ZKDTkny7pcXjgpZ50b7xERr3BgRuyVJniNAKdhkZuVc2hG0gS+jHvM4sTlZupFWBA5FoCLCoEpAjILR1x+NYdPOe48b1GgsAsx8+GZm//z7PPoHXyOzmu6vfJ+ZP/sq35YXmTe/yUk/WkrlzpvZ+JEPYMVR+tyfcslPl/KFQ9/LtBnzOGqozTON2QyoT/Gnf/1/ePTpX+X6a2OarYDQBBSKJcolxSc+rtFK8/DDsHYtdHfDtGkwcyZUDmLDyBBNQYS2cjs95mez5wl9n+2zz3phu3hxF3HZC1srdrfG/WRpRt7KKBQi1H98FRdFuHNOoSuKSBsxWXsYHUNW6aNGBGmOVhAoRagUsVabfYZbLbj33k3Z2f7+8V9bBwYxGsktzlrEQtt0E5qEwNWJ83XkuoKYgp/bbBOUiBe0JkRH25lDqzViNNo5XOf7Ohlo1ya0Q4D4UmMzTg/yth4bxIjLkbxNqANUENLKM5p5RjncfPFo48IzMe06ze4FRPlGepfdycChp9AIISclIKagqtvvfwWgCgwAw/g104mhlCIgYvZjd9G9/EFWve3TJCYj0S0ySYmpEKqJjQwTcTiXsz9k1yeJLwAXisjTAEqpo4H/AU6Z1KgOUo7pP4a5XXNZsmIJHzn1I5Mdzn7Bdc9eRzWqcta8syY7lF3moiMu4t8f+HdaWYtiuG/d7g80rLPcvOJm3rbwbQdkZn6K/YODdk7tWERk0yzacMdOx1qHKBV0SpLTjrgN0TrepS+jcg5trReSSuE6QpYdjL5xIiQuJzSGoHNf3/+7bUFrJSdJ16BoosOZFFX3FqWB4IzZ5Bo6xmxKdf4f1jdyyM+u5MXz3o8tlKm8tIwZDy+htP4l0p4ZrHvb77L+ondSpc3TDxS5tvdrrD5JuOSqFjNnDvHohvfzTPYOnlj2AQDu5XQyAj523DtYt6HKI/doaoOGQlFjM8VgEzauB93ZjaVL4Wdb5BJmzoSvfc3/+/bbIc+9QJs3DwqFnT4cBxwFDFaElnJoUYS7ODJFKT+jeONGuOoqxXnndTP70DqtvIl1lq64awKCZWva9aYXJJUS637wQ/L6K8TaMNgwZNkQYSEgKPegjY9cKchFSN1IKbyfU1zShtXPK267zR/jLbOz4++XQoUBymhcbnHWkUpEbqYRyTCBrWFUmzYBWTqMsoIJC9sXtB2sCQhchrEWOwnZWmPrBLaGqJAs6NmlubI6LOFcjksbhIVuJAho5zmtPKMYbCoxXn/iBaw/sTOeoimc/tlLWX7Re3j4A5+jEMwmUhO9aDMgVZQa2mYZ8pZUVj/FCV+5jMc++q/U5y7klx/8/7FREWMMJSCXlLbUaMkQmexYWPtFyTYi4NzB1Ys/hnBE0AKIyDNKHQQue/spSikWL1jMj5/6MdZZjD5oP5eAvya7ftn1LD5iMaE5cD+WFx1xEV+894vc8fwdXHjEhZMdzn7NA2seYGN741Tp8RS7xUEvar2g9cZKOzO6Z8QteVNJcopz+ejPJvQczmHyfDQr64JgTH/ejmlb71pc6JjpbE/Q5pLSckMEaZMonIYJt5Pe2rSTiDGM7eDtff4xjvv6x6jPPoK1p72FVRd/hFVv+iiIw6UNnq3N4sZbjuDJZyJWPa8Q8TGcc856htclNF77em56/Hbi7PO48Dn+OYqYVq4R60c47Yhuvv3Ea1h26Z9w14mXkYmht09RHnPNe/nl8P73w9AQrFsHr7ziy09HuP56+OUvR8Nn5kw45RT4SGfxe90630f6apv2UcJQF0tDWcrCLgtbgN5eP+rnppvg2GMrnHKGIaPOxvZGuuIuwgl+vsFnaW29Tem/v8nG3/0giWphy720GoZQmvRWY4qVPsJOH+dYRIRMhLYT1g45fvGLnJdWKQ7pM0wr7cLikdaYSPuMbZbjnCUJugmCjMAOE+VDuKSGC6qosH9i54LOIpS21n+o9tUKswihHUS7dmeW7MR6kLeFUgrdMY6yaZ0o7sIZIbUWozTRNr4srXKVey7/Z4bnH0aXCym/8ASH/+BfeOq3Pk972twJvGoBkaRThhyx5XSZyvO/RImjdujxpF3TKAy8SGnNcupzF2KLm5dmBCqiTB8pLRJp0JABClQI1dYrWiOmYN4krIA+eMXD/Uqp/wC+3fn/bwD3T2I8Bz2LFizivx7+Lx5c8yCnzTltssOZVB5f+zirh1fzl+f+5WSHsluce9i5xCbmxmU3TonaHXDT8puATaX4U0yxKxzUonYkQytO0GGAmkjaZwuU0gRBEefCTklyC61TjCmMX5IsgrEWZS0ohQ0CZCdVVu4cmbXEJkArNdrruy1Bm0lCS4YxeUZJupC4Z+L7Z3OO+9oVNGcfyYq3foz1rz2f2/7lMWqHHo8IrFwdcv99luMWtjj6SEeLCrfeGbNwofDes9oc95oGh84aJmuG9M6ayWWXdnPE6zVXfOarNNav5aphx3yZT2wifv+3F2Nvv4vDzy5y2BtrvPic8Mwda3iuchz9/b73M45hxgy/HXXU1vF+/vNe6D73nN+efx7GJtA++UkYHvZZvsMPh8MOg+OPhyMO8DYmhaKMoU5OQ1kqogh2o8swjn22e8UKeOGFImefF9A9c4iN7Y2UghLlsDwh0dceahDe+TOiP/0UblY39cUXEzlFd5zSVymjS33jijGlFCpXLHsM7r1PI5FjxlyHVTkt0RTGjITZGbQxvqw/y3F5TqYNmer2I3CCGFEZKl0D4TTEbD/VbyUn0zmBTXB5igsiDMHedeMWR5gPQJ6QmipOlTc5ou+qsNXG99cmNVzWpBCWfPbfZhitMGMyn1YymrrO87/yNsqql8g16Fp1E7Pu/TFPfuD/AND3yzvpefoeVr3lclw4XklwFSQDhiiuaxANrmXoqNPAOc7880VsPOZM7v/MD0i7pnHrvz61XdGulCKmREBES4ZpyTC5pBSUz7aLCNa2OguP0S5X1byK+Cjw+8DICJ87gH+dvHCmuOBwXwWxdMXSg17UXr/segAuPvLiSY5k9yiFJc4+9GxuXH4jX+ALkx3Ofs2SFUs4edbJTC9PGf5NsesctKJ2k6DtOB3vZupO6wCtfUmytQlZ1tj2xZPI6MgdZ4wv992Fi6uWzfyFnDGj2Qc/cqiwdYZWhtEYyplGB2CDifeRiQkobniRvNjl/4/iUXc8d3wL7rwTXn4ZwPCb7w049vgSC48NuPLKHGMGkbzNxpcySlGZ0xd1ccj8Ig7hLe/8daxW/M2ffprnn3+eQlfI5R/5I858+5vY+I73YLINVOwLHPGT73Lk3/0dL9z4FLeuPpLBQZ953d6hMsaX0B5yCJx55hb7IvCBD8DKlbBqFTz4INx8M1x6qRe1WQZ/+7dezB1+uN/mzDlwsroaRUUC6iqnrnIqYgh2I2OrlB/702zCDT8NOeroPk44pU6z0KTQ869SAAAgAElEQVRt25SCEoVgPEMgSNsJeZqRnH82a6+/hsbC11BxmhllKFV6IR6/Gdo5f5zuvNP30M6coQhDg0PTFkuiHBmOkgS7JN6VUpgo9OXIaRub1tBxGRXPRts6kg1g0pcxYZVMVxHtvzMjZkWZtMlJERwARjuMdWTKIFqBKAzB6JxVw9aZ6J1FRJAsJUg34MSSmS6ci8Hlm+2X0gq0Rmm9U6+pTYQERSRvITqgFETUs4RmllEJvdu7lYymDAFQVr3ozsigl856N+tOWYSLYxBh9l0/YO7N32DF2/4EgIXf/Az9T9zOz//+LgCO+t7nKa1ZxiNX/BtKDXLCVz5MYcNafvbFh0BrHvj4d2jMPnLsAZvQPhgVUFF9JNIgkQZWMgpSBZfhnMWYwjZHNx1siEgC/GNnm2I/YGZlJq+d+VqWrFjCZ87+zGSHM6lc9+x1nDjzROZ0zZnsUHabCxdcyCeXfpLVw6uZ2zWRKpaDj1pS4+4X7uZjr//YZIcyxQHOQSlqR0qORzK0uytox+JH/QRblCR7l2RlLcZaAGwYemfhXSBzFueEggmwtt1xYo4wW2SV8s4FqMZQchWMHcQVdmwiU135KMf/xxU88InvkvbM4L7P/JAk08R4sfFnfwb1OpxwguPtlzY55RTH9NkVlNIoElDDJI2E2lrHya+rcNypvYSx/6jVMr//v/Oed/Ph970H8Mdj3co11IYTCrOmIWFIvbUWefdiSjNnMee0ebz7tJxl3/kFd6w6hZ6Z8S6ZQykF553ntxEGB6FzSBgehg0b4OGHfc8meAOl3/s9WLwYGg1YtsyL3a6unX/9fcHmwnb3S5HBZ8jnzYPnn9OsWtnFyacWmX9kg7rUaWQNCkGBYlAkGOMELiIk9z9EqzbMwMLDkSOPps8EzOyKCCp9ME6flHM+u37PPX6Gbn+/Lxcfu38lAkJxtJSlrnLKYna9j1iDSBtQKFUAFBJ2Y1UBmw8S5k0inZLrIk0dktLqCFlF2JmbqgnQRhG4DOuEzCic5ORkHUfgBn4MTUioCt6UbSfEpogguUXyxJcca8iDflRQGLUFkxGXdBHECWJzFKACgzJmwq+nwyLOZbi0gSkEFIOQZpbRsjmxUVsJ2hGsqUBB+TJuBnjiQ//I0+/7q1Ex2ph9JCZtjt0pglYd74ZcZNk7/4C8MGv05oHjz5nw+7MtYlXGENJ0gwznayioMoWge8KtIa9WlFLfE5F3KaUeA2TL20XktZMQ1hQdFi9YzL/84l9oZs09Nk7tQGOoPcTPX/g5Hz/z45Mdyh7hoiMv4pNLP8mS5Uv44MkfnOxw9ktuf+52MpdNlWhPsdscdKJWnPOmULLnBe0Im5ckt8nzJgZD5AxijDeU2Y2sTdvmKAQtCU4sxsQYs3mJn5Wclgyh0ZRUDyb3F5QyAQc+CUKK654nWL2KGx+awc03a9auhX/7N5+1/PSnYc4hGdVCzZctjs7wbIMaZmhDjk7g4ktKzF7QN+rmkzhH2wkVown0pv1XSjFt7nSyZWtorGvQM3caGdDQ61HveCNF1yDc2OK4jy3m8Hf9Nled92XWrvUlyLtLz5hK7P5++OIXvaBdvdpnc1eu9CXKAE89BX/1V/7ffX0+iztrFrz97TB3rs8oWjv5bswjwraB77EtiuyyK/III/3JWQYP/CLk0Yd6OOmUjHmHt2jTppW3iE3M1d+/mj//3J+z/pV1/DwKOTSOWH/rDRzSP43+7i5UoXvbLt6Jf7/vv9/3S/f2eiE9HiEaI2p0H3dFvIuz2GQYpTVhpQ/J/blBRyEmiLGqm3aeksowLn8JpxQmmE6ouwnYYk61AgJFmOdoCRHtv2dOHLYzZzUjIZdhQBFJgUiVdlim7KxFcgsuI5JhTGTIwn5Q4Wb56S3fUXHOZ6Fzi7IO3RG3O2LL/tog7iI2Aa08IaFBoPVWgnYEa8qI0oT5ICEbyYq9o7e9cOGHNrvvs+/+3Jj/VRk49kxQAmJhNz+rIxgMsS0gpGQ6w6iUmINb1AJXdP7e7TkpSqkPAx8GmD9//u4+3RT4fsIv3P0F7njuDi468qLJDmdSWLpiKbnLR+e8HuicMOMEZldmc+PyG6dE7TgsWb6EQlDgrPkHrtP1FPsHkypqlVL/if/lulZEjt+brzWS7XDWdi7cwl3qod0ZtA5QqozLW6ikSaYNhBX0bgja1FryPCFSDjAEQXGr7IMTS1MGASiqbjQKnbaQMBrXLrb4yipmPHQjz138EX4px/L3xz/Nz/53QLPphdv553uxF0Vw3GtybLsGWo8RtC2UGmbdK4reGC741QLVGZsErYgwnFuMgrLZOgYdhcw4dDovrniF+ivDdM2eQYKlmQ6h2+uJ+/px3/ofCscdxzvnC3dcO8RzzwbMPKIyIQfcnSEIvJA97LDNs7rHHgv/639tKl9eswbuuw/e1Pnde8cd8KUvQbXqxw319fntN3/Ti7SXX4b166Fc9sK3VIJicWIOvhMhy6Dd9gIxSRTtxNASy9wjHbkITz9kWLdWjd6n3faxvv3t/vFf/7rfryTxGVMR/x5cfrm//R/+wWeyo8hnsCFk3ryAj340Yu6hDb74pTv57/++ilYr5tgjjuFv+0uUB9az6M67OO5d78XZANVuo8IQFQRkmTfuWrbMLxhY69+v7YnZsWgUlV00yBoRtAAm7kJpg2iHSzNcmnlhawq0XZ3EZUSqSrdSBM6SKuVLjLfAaY1WCm0ttnNQtdJoYkIVU6BKLimZtElpk0qLsCNut3Qh36w9Akus62itSYP+CTkcj5hijSzi2SxHO/GZ2x2cf7bsrw2DAkOqhs1zpkcztivEnS6SBWwStqZ3Agt4CujBj/kZAnrZWqbvHM7lWNtCK001mE2CL0d2klNQ2547fDAgIms6/7xMRD419jal1N8Bn9r6UeM+11eBrwKceuqpW2V9p9h5zjn0HCITsWTFkoNW1F6/7Hq6427OnHfmju98AKCU4sIjLuTaZ66dcrYehyUrlnDOoedQCA6CcRVT7FUmO1P7DeBLwLf21guICNLJdgjeJGYiF3Z7Ci1CKAE2rJCqHLEttOSd2bYTVzMigkhOI6mBOOK41Omf1VvdrylDCEJZ9WBUgMoSX5a4nSztoT/+Iofe9g3WvOEdrFkzjdvuDDjrLLjgAnjNazYJLy8GaqAUJhoRtE2UqvHymoA5PTnnvTGg2Ne7mVprWIcV6A3Hf+/DcpHpc/pZ+8J66gN1Kr0zaWNppg2MDgkXvQFHldhlLP7hR2nf+zD/dcUjzD406oisvUupBCed5LdtsXAhfPCDXuyuX+9H46xcCb/1W/72W26B73xn88coBVde6YXu977n7xOGXliPtFv/wz/4+155Jdx9N51RJJCm/r5f+Yq//QtfgLvu2uzZmTYt4F//09JWjh9cLTz24Kb3XmtYsGCTqK3XvaCN4019xKUxFXDlsi/XbrVgcFBI2kKpkLHy6QaP3Adf+9LZWPdmTuU+HnjidTwTrSeWK3ng81/m4sXv5u5fpMyeadEIq18OeGljhVxFxLGfN7srE3FGDLIaOyFsNxe0VVTnIkNpjQ5DXJZh05Q0aGGNI5IyoRTItMFIk8gOkNGN01t8n5TCGoPJc5Rz22wvCFREoCJisaTSJKVNJgkxJSL8mz1yvgJ/HArUACYsaDcLSWt0FG5a0HNuQqZ4vr+2gMtaJNSJA4XNu0gthDs4bTldJA+EIB/aCWEbgHR1xvzU8bNsdw3f9pEAiiAooZSmSBdaAhKpIzJMSXXv8vO/SljM1gL2km38bIp9SCkscda8s1i6YulkhzIpjIzyufCICzdrZznQufCIC/nmI9/koZcf4tRDTp3scPYrVg+v5sn1T/Khkz+04ztPMcUOmNSzhoj8TCl12N56/pHSPRHxmYvA7PXs7GaI+JE9gEQxATHOjfTaZp1MrukIw60KCAFBxHU2S2otToRyVCUItu0o2pZhHHlnBq1XeiprgdbIli6kImxYVeOa27q48/a/4V3n/iEXdU3j1FPhG9/YXNDAtrNb0PaC9uWYudMs558rRN19MGY10orQsI6CVsQ7eP9LvRX62hkbNwzS1IpCdQZpcw3NvEXFGEwguLyCfPB3KZz3LOeeHXHbbTBrphAXJjf7Mn++38Zj0SI47jjfm1uv+78bjU2zdKdP32RYlec+czlWC3R3w+zZXowq5TOmY0udzz/fP38UeWEax16IFjAEovnwFTlWLOVI0RMb4nDz9+uKK9gul13m/3ZZk7RRp74xwaaOqJVxdH/C4b3/wOmlkP9+4T/4eM9H+VL718hMmWfXnclXvtPL5z4XIAJ9vY6jF2Qcd3TCaaclTJ9T2a1yfL2FsK2KwoyT6ROX+0UZkY6g3fwUqIwGMbTSjVjJKMY9xFGJPG+Ru4yWrlCkSZgPkhvre0nHPr8xYC0mz8mj8Q2JtDIUVJVIyiRSI5EGmWsT5yUUunO+gtgOALsmaEf3aWROr9a4bFMmekfnQhOVadshsrRGuXAIEhRp5zmJzYnN9mOxugRGCOwwIYNkQe927+8pIJKhVBORAJjo3FuPdzhuj55bt1z0i1UJBbSlTssNAQefsFVKfRS4DFiglHp0zE1V4OeTE9UUY1m0YBGfveWzvFJ/hZmVmZMdzj7liXVP8FLtJS464tWVpT7/8PMBuHXlrVOidgtGFnAWHzE1n3aK3efVsxQ2Bt9P5kf1KKUwYegvVvdpEB2XYyAPQ1B++Ig3jQq9GYvLcWOcS8dDKY3WIbnVRFGRwjgjMhJpkJEQqwqh6tzHWVSW4uLNFeqDD8JxX76M49fdx2XqTk4+s8i8cw4HfHZoK0ErDpv6jNGm7FaCUkO88krEIdMM55/dIqp0bWUCNNzJOlWDifX0VWb0YK1Qrw3TEiEq95Fkg6jMUtEJmhx3+qnIr5zNcSWh58m7MZ/+BPd//Lu+uXU/ZWQU0Xi88Y1+G483v9lv43H66ePfFqCY3xuQ4GgrR5sccYrIWozrjJcSC86hxG16YEdsigjatcjqgwytbxJoxbFHxcybqyhMC2lHJWZ9dyXPNBP+OpnFv6//Kpn5N+JikblzjueYhS9y2e9NY80rRdau1TzzTMQ9D8QEpsbcWRsZSHu4aanmxBPhyCN33nF6RNjWyGmonIoE6C2ErbMZbqTKoNC1laAdIdUNXGCJbYkwjyCEIChircLalJYuUdCawNZQOHKzuWuYDQJMlqGs3eGoLq00BbrQWYNWPoxVKaWwj9BAlO++oB2LMhqto9ESa7UDT4FUWuSRIUqr6DTDFIrkWtO2OaE2O2yjsKYMCIGtEdghcjMREVlFJAdVAzHAxJyKfblxGxG3TY+BESJVQoBE6iQMA/up49ve40rgeuBvgU+P+XlNRAYmJ6QpxrJ4wWI+e8tnuWXlLbz3hPdOdjj7lCXLlwCvPoEzqzKLY6cdyy2rbuETZ31issPZr7hl5S1MK03j+Bl7tQNxioOE/V7UjjWj6OvbvhmF75vNcdb5vtm9ZAQ1EYz1ZlS2I2jHopTBGIMxXiz6jOxIS5LgnVgVPnvr/51aCwoK42RIMklIpEFIgVhtUqQqbftnDQs0m5vE6k03wVPNN/G2E+by5T+Kmbad0WAizme3nBuT3UpBDbF+fUBvV4kLfmWAqFSAaHN35bZ1JE6oGo2Z6FiOQFOZ5i+AW60aTasplAt+3q4tUIoNOqvjGm2crTCntJGs1GZts0KlubUgn8KjUBQwhFlOktVJbUoqEOIzm0b5mcdGj/nMupzQ1ZC0ybpXGigNJ53Zz4LXVKFSoGli2k7Reul5fvvSt/EvX/8W/7eVUHcWHKgEPvnJD3PGuXD8SWt4YXmZZ57qolAuYowiIkK5Fsseb/Dtb1f59rd9dvmEE3yZ9znnTNx4S6Moi6GuLC0s5TGnN5e3cWkDtPFl8+P0NbXcMBkJhbCLUEW4zvdOB8Gou7gXtgVirQhsA8R5wTayAKA1aIWxlnwkrT4OIz2vRkLKQS8tU6fNBuIsR1SBLOjbI4J2hBE/AZdlmwzztlH3nUtGW+qEKqYYV71xVFKjEFWpW0crzyiHOxac1lRQOIxtIJitMtvbphtkANQQSB/jGUeNtGQ4l+Kc7Rj0ldA7KFv050chp4mdwKLiqwwRkVVKqd/f8galVN+UsJ18Xjf7dfQWelmyYsnBJ2pXLOHo/qOZ3/3qMx47//Dz+cbD3yC1KdHUWDHAn8NvXXUr5x123rijAaeYYmfY70XtWDOKQw/dthnF6MiLzmwWvZNjLPY02nrHURcEOxzbM1Iet71QRYS2zdFaEW7jYtyJpS01NAEFtXkvms7bLH+xwLU3B9x+O3z1r9ZwdPYEv/d7iyiXLyUML2V7GnCToLXeFMqEgAU1xNCgJgx6uPi8DcSFAAo9WzxWqFlvDlXayUx5WDAUe6porWi2hqkPOkrdBiMt2q6PYrGAVg1cfQB3xmmE99/BmwZKXPMjy2G3fJN1l7wf2UGJ5EGHc+j2MCZLiZQiD8skQUAWGJItPqcaCGyLyLVZv9EwPFzmmNf18NrTeonKAQ0nCGCcoBsbmfXxj/H+x5+k8Ik/5XN//7/ZWB9k/vz5fP7zn+c3fuM3yFzGcHGYcleNuYet5fEHy7zySoVZc4o41c0ZJw3x3/9uefjZbh55VPHII36sz+te50XtihW+HPuII7ZvrBWgKYrQUo62WGLRuLSB2ARlQnRUGbeXve1qZLSJVdkLnxBAcLmvA9fGdIStwtqERIeIVoSuicJt1jtqjc/Wauf8LOotGNvrD2DCAGUMoYXcvkBDclTQTWEPCtoR/IJfiMtyv2+wmbB14mjJkF8EUV0opTFxFzYZRtIasSmQOEdqLdEEFg1z04USS2BriApwekdmIJpNxlGDQB8j7RmbhGyGSKe1ROnRCpgtz/l+1JFFnDfdolOFEACFLNqh+/SrkCvx5owPMLKCugkBFkxGUFNswmjD+Yefz9IVSzuf74PD1CzJE25/7nY+eNKr0yH4/MPP58v3fZn7XrxvyuW3w/KNy1k9vJo3HradErUpptgJDvirfmctkuUdEyiNCoLJ/SXgHNpaROttXszuCplziAjFYNtuSG2pIQilMa6e1sK9d2X85Joqjz8dEUXeyffsH/wRc565hY1fW4kNt581EWd9ybFz6LiKNiH+umeQZgOSpId3vKVOKbZQ6N9KmTcnYA41HkopolKAs2WqgUaGB6lvbKH6QafDKNNLsWcWOqzhhmu4jQPMKg/zrvh2er/6IX5e6mLg/F/fqdd8VZOnmOYQILhCGYlKKKUoAAU6/YgIFhAEZQeRvM3z60IKXYo3XCLMnFNBhQYnfpEiFGjVBqgndcyHPox6ejlv/6338Bsf3drwIdQh/aV+mmGRqFDj9HMbPPdswiMPlOntL9FVrNAjdc49rc7Z5/iFmTVrvPM2eBOtu+7y7sivfz38yq94N+ptfcViDFaElqSQtAmcQ4dF9HbmPvoMbZtIlYjVpmoDFQQoyXFZjkKhjB41ebO2TYJBdIXI1YkYIDW9oDSi/aatxW2RrR3JzorIZucsYxudHtQe8jAiJcG5IQqqusdXsZVSmJGMbW5BQIcBIkJrjNHcyOsqbbywTWsEeYtUBbQtBB3H5x2RmR4iBgjtIKnqR9SOnN0CkG6UGkRkEOfKOJdvJmSVMugRTwJxiE1wzgFevIqzoyJ20453joUISvCuawcRIvKWzt+HT3YsU4zPogWL+MGTP+CZDc9wzLRjJjucfcLdq++mmTVZvODVVXo8wrmHnotCceuqW6dEbYdbV94KMCVqp9hjTPZIn/8BzgOmKaVWA38hIl+fyGPHjrxQWmGCHTt67nVECDrGUHZXrFy3+ZQ+S2u03maWNpEmOSkFVcWoAOd8JqvRgH/8vwG9PY4P/rZj0WJNtQrPDn+Z1WufwxZ3JGg7hjp0emhH+2SHyLKcgYEe3v6rjp5iE6ISBJuX0zgR6tYRT8AcajyM0YQFQ0aR/mkGWbeOofU1pE9QSRMTBESVLlRYQupNJGvT885zGKj8mGVrT6dreIBiAWxQRFSAMGLIpXbLmGhcRICRi+jO8+8HJTUqS9CtIdAGW+yGbWSwFYoARQCE+UaSRsrLA1VOPUlz3LEJ5e4KQbhpNqtzQm3jBmovv0jUP5PojHPIzzqHSnH7WbhSWKIQFKiFNY48sUH3tGHuuS0jacZM6w4I0hbKBEhUZPbsTY+77DLfM3zvvbB0KVx3HRx/PPzN3/jbRTYdUhEhyhLatvH/2HvzKLmu8uz3t/c+Uw09arRmyWBkG8/GsixsybJkbAwYAhkghAwEwg2ZCF/Cl5t8SYDkBsIQWEm4YcjNCpCJACEJhEHCsjxCbBzAYMAYScaDBks9VtWpc84e7h+7epKqB0ktt4b+rVWru7pr2NWn6vR5z/u8z0NDSLriTuQUcq+RgtZ3aCfK50fGGGxeYIsCie+o+q6gROuUzDqsKBPbBpE7QhF040SIVWpCt3YkO9ZZ25r194/l9xsDKJtiZUyhekiEQLoGTVej4TQlOkeN32YTGYaA9jJrIFcphoKSOPb5Rgpbm9eJdZOGzmg4RzWegaGTEOSqh0gfJtT95MECmLZLGmNMCWMO4+wAzpRb71D/fvWnX/xptnFP5P0LhETIlhlWy5APISecXJPRafHxnBOEEJuAbzrn6kKI1wJXAh9wzv14jpc2D4wWdjv37DxnitodP9qBEoota7bM9VJOCQvKC7hs6WXcsfcO/uCGP5j+DucAu/btYml1KesXrp/rpcxzljDX7scnNDAy0ukYmQeTMzAgejaQxkw6R3ui5NZ3JuI2RbJxBZmrExDzxJ4Sn/88HDzoD/Q7Oxzv/eN+Vq9VVIcOserTH+V7r/sz8s6F5J0Lp3xOa3JsVvOGOhMcYmtYm7F/fwfbbopY2n3Em7nEx5qt1IzFAR0n2a0OY4UpLMZGLDlvMfufKKgN1LBdEpxEBQEqDrGigmvGoAQ9r7iZbU/m3PsPe9n+oVfy/Tf8KX2XbT72wYXEIQCJazlQj34dKX5bB8lj113LSMkinEHgjZUEbbpC0LpvgBUBVpawsr2BzalC5CkyHcapAFvunjYUNzCDDB5p0nQdbH+xYnFvg6hcJozG1u2soz44QPrw/7D8FT9F/u6/IH/5y4gqJdQMtrcUkq64i1JQIlwzxI0vy7hnZ8HThxPO60hR9QLkogknSjo7vbvz1q0+X/fBB8ceryi8c/Nllzmu25jzvPMbSGGpBGUaUUiGbCux913JITRZ24J29G84MoeaFz7v1bnWeIMiCMoYk1HYAu1iYlsnsIewqopRnVghIM8xUvkOIxPHI4TNCc0gwmm0qmLU2PhAJMpIQlI3SN0NkFAhErM/MC5D//nOdI3MpiRRB6Fof3LCS5H9Sa64OUwz7Se1OUlcmdR4a+zOkiLoJdKHiUYL2/b7SWsKdFHD6ibOGQKVIYUD0YMQAYiW+kPIVrEqR4vZeWbE/wtcJoS4DHgr8DHgE0CbHeU8zzbn957P2u617Nizgzdfc8z481nJjj072LBiA13J2etKvnWNlyCnRUppiojFc4GRedob19x4zkjs5zn1nHHyY6v9HNjIgeacd2dHGJEdKzXtHO1Mcc6RTdGlrRU1Hvh6zI4vdPC9R3yEy403+oP8iJzzV2lsXGHJA59n5Vf/jn23vZl08eqpX0bRwBYpQgZ+hnb0IDFHiDoHDiRccUWZ562tQVZA6dgMSm0dDWMpK0kgT25nJYQgLgektQKrYpYsX8qhp58kq9WwJYkYUlS7u5GRwgKuqUEELF9X4rrtCxn45Br6ep9PEfQgsK1uqvPfjxaoDoGfvZOt6zOSJQqJQ+GExBLgpIIJGamuVfRqlGuidIoTIVpVZzBXePKMFrRB6Avaaf5xSD3M4f0Nqr0Vbr45JmQIFUVEydg/X+ccjeFB6ukgesUazG23467dgEgC4vj4CvZIRSxIFhAvqrHtZSm7d2Y8dSBmeaWG6H8C27kEEUStgkWOvheTBDZtcuAs1lgG+wtWLA/Z8ZWAL3whprcnZNMmx0tequg+z5AJS+jshPxa4zRpK/4qFtUJ5mpt/5at/Y0b2f8Y6/OupSQISjgXYUxOZhVKDyLyQ+AOk1NCmQARlRFxMqGYDUwdaZs4oSiC3rYnPAIRUqGXphui6WoYV7TmXGf3IMAEhtylKB0Q6RgXTD3LJ4OEUiVCNwZp5g2ULZBSIVSEUKGPKmuzz3IiIJfdhMURlH2GIuhuSYXHZMNGZxiTekl0kBBGyxCqQKqmvw0lzsB/Xacb2jnnhBC3A3/lnPtbIcR8UORpxLZ12/iX7/4L2uqzKrO1HX1pHw8+/SB/uPkP53opp5Sta7fy/q+9n/ufvH805udc5QdHfsCB2oF56fE8s8qZtad03rTltJidHY9zBEaDEJhZdFvOjME5SNp0aQvX5O7dio/8ZSdLl8Iv/ZLPQR1xihWNpu8SBhF7bn8LT27+WfLuyfNknCkwRQOsRgQxMqyM+/s6YIjDhxVLl3ay4QUGmjUIYgiPLc6GjEEC1VmKUZJKEkaKIjMk1Q56Fi5mqG8/eVbjiPUSzmpXly9sHbhMYxsFyzcsZ89/fZUffgmWalj9wKc5+IKXYKMZFpRuRNzYKnpbvioOefy6ReeQrklgaoS6HycjCtmBk6fGBdFLjmde0FI0OPRkjTXPTbjuxiq6OYgQiqQyUaae1oaoDz5D4ULK1fMQH/obtMuJogh5AidzhBB0RB0kKmHbi4bYdafh8R9XWV2uI2rPYEvjVQBidB5yvOi0uwq/+9acZhbyjf+Jufe+gC99Ga6/AZaeJ3niaUszNVy8VqCEIHcNmq6OQFAW3QRiZtvA572GCGmw2ni1SOvnPrIrACcxBDhSFHWkqyGxqGIAIxOECVHC+bghIXx3Vk6d0yuFpCy6ye0Qdn0AACAASURBVFydzNUxro+EToJZkiNrV5C6IVQQUxId3j3eaWQ49T5WCEml3MVwHpM7Q0mA0xlON1s3aJ2MoLW13NhJJWMdgTmCkI3R7rRDYF2Bcw4VVQnCkTn+ETIQQ0AfuCpMaXE3zzQMCyF+D3gtcIPwZ4xmX98+zwmzfd12PvrQR3ngqQfYuHLjXC/nlHLH3jtwuLN2nnaE61dfjxKKXXt3nfNF7R177wDgxrXzRe08s8eZVdTCnMb0TIY0Buzsyo6tc2RWE0hJICXWwje/CV/6Elx6qWPzi2tsfKFkcRdcddVRhjnWEvXv59KP/hbfeeNf0Vj2nEkLWmcNtmjgTA5CIqMqMji6Y1Sj0TA418O2bQKl/awtbWRCmbXkrQifmRjIzJQwUejCkjU0pd5eCm0IGgeo5/08MyiRYUS5XELGrY5tpnENzbq1ATfdJPjGJx7hqj//Kb7/c/8Pj73qf0/7fEBrW7ZcV0/2BQiBFSVykaBcSmCGifQRjCqjZcfsDvfpHJkOzrigNVmT/qcGufTKmCuu6yZv1nHWknRO7Ag20xppY5Dy7/wfuvcfQvz75ymURVhBFJ1ccR6qkCUdvbzopjpf3Nng8SdjVndYApTPWB7t5vktMSY9VQjpi69qApu3+Eu97qOdBIIdnwv48hcF5y2zXHd9xjUvTFm9MiQRnSdkwCSUj+Ry1rYuY519ISQyjBFxAnKB79SbBqI5jDAGQ4FGgoxxsqOtY+9kxKKCIiJ1gzRcPzEVIsondXJPu5xGy+m4LLqQocJKX7DbokCGU69PCUmiIjKjMUFIGEkYMXSyrezjlrETLSWD33YVsCVi20AHEVqWMKaJcAHBpDmzcSviZwghhnEuBar+5/McLz8NvAZ4vXPugBBiFfCeOV7TPOPYunar33/t2XHWF7U7frSDjqiDa5ZPEbZ+FtAZd3L1squ5Y98dvJN3zvVy5pRd+3axonMF5/ecP9dLmecs4swqaluxGqcVziGtxSk5a7JjgMxocNCsB/zXTp8re/AgdHXBhZfkOCxdSRfXtPkfIHRG0refzse/S6nvKRrLnjNxydbgbIEzOc4UvpgNS4ig1OYAtsCYBn19ZV7+8ohKnEMj9Xm0beSFQ/rEInymQwhBVFJkdY0pHKWebkDTk/fR3+zn0GHFosWKShL5wlaAaxpsveB55wfkP30Rnxv+KvL6TV6EOt5Z6NlECIwoY0SJwA6hTANlmxSqEytnYcbGFKjGAE4G2FLXtK8xT3OGDgyw8fqQ9Vf0oLVGZxlhUkKNc9su8gaN4T7SOqiNW0j6DkJHhG40iOP4hLq0RyOEoLdS5eU3x3z2v4Z48sAAS8UzqOA8VDTDsNoWlXHjsa99DSxbl3Lv3ZLPfirmM/+ScOml8Cd/cpLrlXIG4w8KG3QgkhLS2paBnMZan69qbN7KrQ4RYvoCd0SOnLlhMlenoElCx4y7zSM458hpkLk6EkVZdI/G24zsY12hsXnhO7ZTvM4kCDDOkpoCJSL/WmbQ9LMkOC2QRT9WNkGWZpAzq4AenGsCtZY7cgRUgPnsx5ninDsAvH/c9R8DH5+7Fc1zNAvKC7jyvCvZuWfnWS/L3bFnBzeuvZFQnf1iga1rt/Ke+97DcDZMR9wx/R3OQqyz3LnvTm59zq2nj+JynrOC02Qg9cxFjbgdz2ImqrGO3BpCpfjA+yWf+AQsXgy/8zvw0b/V3HTbICFJe/mhc4iiyfCaS7jjwz/kyPM345zF6gyT19BpP6Y54LM7rUGGJVTShQwn6/gMc+CAZMOGinejzYZ9h6zNzrhuDMZ5c6hTsaMKQoUKJUVmCMOIoNqFiLvojR0iHeRI3yC1zG8PGSlkJQABNi24+PyClT97A08cCKFeZ+Pv38jiBz5/fAtwDqxFWIswppVHbBDWMqMZ3PEIgVZd5OFCnAgI9QCh7kM4fXyPMx5rfWyPkNhy17SmUGm9YPhQP1u3KdZf3osD8kYdqRRRaazANrpJ7cghmvuHkWEn0S//EsE7/ogsy/zJhpPs0h5NpRTyylt76ehZypFhyNInqBUHaboahWtiZvg3ss74oq3jCFu3D/G772zwwb/L+eU3OK6+2t/GOW+s9u//DocPz+rLmMDIWEJgLVJGBEGZMKy2cm8dWjfRuoYxmc9WnQIpJCXZRUl04XA03ACpHZzx36VwGXXXR+bqhMRURO8xea1SKWQU+pGPvGh1ySenFIQIBHVdYGf4WfBGXQnaWWLbIFTRNAXteBJgAc51gNAI0Y/PtC1meP9zEyHEPa2vw0KIoXGXYSHE0Fyvb56JbFu3jfufvJ9aXpvrpZwyftT3I/YO7D3rpccj3LjmRrTV3PPje+Z6KXPGdw99l8ONw/PztPPMOmdWp/Y0Q7QKHBsEs9L1278fdu2CO3fDH7wTViwK+Pmf98Y4K1b426S2Dghi0aZzZS1Xvu819K+7kr23vhErHK45iLOtg10hvVRTha24i+m63ilHjhSsXNnF5ZdLKFIwuZcdH/V6rXPUtSWSgmSWu7TjiUoB6XCOzgxhGJKXewgCS6cZoN4YYjCMMJUynaXAZ4pWI2xucJnh8vUa0xA8em8/KkuRreJ0hNFXNCIldSMGUsysaBUCJwW2lVM6k/eEEyF5sMBnlNoakT6MlpVp5yzbIZtD3min3N22iz6e2pBGD/Vxyy2Cpet6QUqKtIE1hqTDy46dtphmSmPoCG7X/Sz5rd8k/eznKK+8jqIoMMaQJMkpOYFRLgte/pIKn/7XtRS1p0lEg6wixjaSEygCJD6nVLbOz/lNZTBoTKvACYgoiS4qIiBaoNn2UkO5tesbHIRnnoG//Vt/uegiuOEGn4Pbeayp94kjBLaVW4tSo069SkUoFY11bk2GtQVKJdMWeKGICYhaHdcGhcsIXEwoYhThhELVOI0mp3ApFoNEURJdhGJy6a6Q0rs+tzq2YorRDykElSCkpnNSXVAOpu46O2cxJsU6g4kWE7kaqpVhO33Uz+gKgTK4Eo4GiAaCPpxL8LLk00zVcxrgnHth6+u52SI6w9i+bjvvvvfd7N63m9suuG2ul3NK2LFnB8A5U9RuWrWJUIbs2reLW59761wvZ07Ytc/n057rc8XzzD7zRe2J4pzv0rYOVtvexJpjf3hU7ESawt13wx13wCOPgBCOiy+xZA2FFILnjFMOG1dQtOJHjp4FdM4hmjVUrR/R6EObDDAgAy8tluG4rNmZYEnTGkJEbNmS+DiNbBhU6HNpj6JmLBboPMXycCkFQaTQmSGphhRFAeVFxBhs3yBFPSQNQxyOrlLYcq1VECmctly1wVLoxXy2eifLVkiU1nT98L8ZWnM5LhzXcRS+gHIIkN4mCiFwYuz70Zs617pYhHUop8cKXKlwYvpcXKMqGFkiNIMEpoayKVp1ztglWeQNRJFjS9VjMoOPZqDPoPI+br0VFq7sBamw1pA3m6gwQlqJGc6xtqAo+smMIz//YqovvJ7Kxeu9K3eWIaWc9S7teDo74aUvC/i3Ty2h0hykK4jRpTIGjXUagy/U3FHGUQKJRBGLCgExSozt5hInaY5zQ+7uhr/4C3jqKf85vPtu+Ju/gd5euPZaGB72m656fOrntlilkNaiWvOn45EyQMoAazXGNNG6gZp0tnQMIQQxFUJKFKTkLkW7zP/SCQRiQpqrIqQkKpNG9hzz+KOFbTEhRq0dSkpKKiTVBanRlIP2+xvnLFo3AEcQlJAypHAhkT4ybdTPJKsEKq3itg4iBTJwJf/zeUHSMbRmaI9hPqf29GLTqk0kQcLOPTvP6qJ2VdcqLlhwwVwv5VmhHJbZuHLjqFHSuciufbtY272W1d1Tp3HMM8/xMl/UniBHZ9I6Z3GmNadq9TEOrePRGoaGJb29MHBE8td/3cmyZY6fe61hwws1nb2WzvjYwjFzdQSSEC8NHZuNLXA6BwFf/7UPIaVClrpm2I1tjzE1+voct93W4ecTsxpYA+XuY25bzGKEz0yIYoXODUVmCUNf2MadS4m1hoF+RCMik930Nwq6SyGytSYRSIJAct1NkAnHo4/CutJ+Nvzxi9h3y6/wyOtbI2bH2XkcLXRbnSFhre8CW4syRavAlVgppy5whaQIepA2IzBDhLofK2MK1TV198poZLOGC0JcmxMO4+k7XFBy/dx8q6N7aQ+0ZPPN4Rq2aYhLJW+yJR02qJH312jIxSTrlxB85tMIKcjzHGstpdKpz9lbtAhuvi3mS/9WYXlQJwhjVFga11b32FZGsEBM2SGMkeRYUmFQTngXYmD5cviZn4Gf/ml4/HFYtszf/vOfh3/9V7jiCt+9fcELTqLAHdetFdK2ncGXMkCICsY0MSYDXEuiPPJCLbgRybvfB+EcgXMoIUhIME5jhMZiccKCipHKd3WPlhnPbNkCGY7FGeHGsm2PJlIKh6OpNSleljye8QWtUqXRbrQTIYXqIdR9hKafIug97nX64rUDXBmoI0QDRxNcBR8DND+7NY4vjPs+AdYCPwAunpvlzNOOJEh44aoXsnPvzrleyinBWMMde+/glRe+8pyarbxxzY28Y/c76E/76Sn1zPVynlWMNezet5tXrH/FXC9lnrOQ+aL2RGiZQ1kBxua4IscZDbiWxDdsfZWMHEgZA9/5juCeeyVf+5riggssf/B/pyxe5Pjg+2osP6/AOkNdFwRFgLUZVo7Mpkrfk3L9RFRwDKOtYaRoXvTwbp7zXx/mG2/5OIRVXFJFBieTg5pz6FDKpZeWWbky8MVsXvfxPW26gMOzHOEzHUIKwlhRNA1RFLSKrJCodwmmeBIzfIRykpCScKSe01UKiYKxtUkJm7cIjIU9e5bxP2/5OEeev/mkJeSjs5BSYqT0882t94ovcM1oYWNbEtR2WBmTi4Uo6yXJsX4GLasY1b6akk3vRj0x/uZY+g426IyH2L5dUl20ACcULjcUtSZ6OCUsl1FJCIHE2H7M4QEqN9+OevHLSN73bqQUWGvJsowgCAjDZ8fUY80a2LClwgNfzVmuhnDVYLQYH2GmLsYCQdkF1ISmyZgMefT3wj/fCNde69UU99wDDzzglcNXXQW///sn9nYZ6dZKY/x7pN0ahSCQEcZobDqIYBDlAqQz7c+TiZFX5qXyE7NZBJCDMtjQ4sJkWmn6ZGsSYQhorPH7HjnJ9o9VgHWO3BikEMStbTVZQTuClTFadRKYIQIziFbHuqvPDAV04lwJbyY1jHMNxpySz52D58lwzl0y/roQ4krgV+doOfNMwfZ123nbzrdxoHaApdWlc72cWeXBpx9koDlwzkiPR9i6ditv3/12dj++m5evf/lcL+dZ5VsHv0V/s38+ymeeU8J8UXscOOdwtkBmDYzOKVRrblJIRJAgVXuJ72c+A5/7nJ/fK5Xgmmtg82Y16ui6piUxruVNlCpIggDhXKsTY3FoMjMAwhGKCKRABDFCKoQMKacpyfARFA4rJDY8GUmoY3BwiN5exdVXt4qorOUfEh9bNNWNIbeOzkDNaoTPdISxz601mRvt1pbLHUQLF9N4+mnM4UN0LltOjYD+Rk41DqjEY2/3IIAbb/Rd82+IV7GsC3COSz/0Jp6+7lUcvqL9P1nrHMZZjHVYHNY5rLMTRm6F8EWWEoJIKlQQjCtwzWhR41rFbVvXbCEwqjpOkjyMsk206sDKMUmqyBsIXWBLHZMXK87St3+QBZ1Ntt4cU+rswhYOlxc4Z8mbDVQ1JuntQAhBUQzgnGY4WEyy9UUkt91K2Dphkede7hvHz26MymWXwZFnOvnxd/pYooawlZ4TPgkRIIidJBsnQ56MtWv95Rd+AR59FL7+dciysaf+wAdg6VLYsMEXw9MuqZVlrbRG2HHd2pbBm9AZQhd+vAEwVmNcgQkiCKq+qpYKNxKRI9rMbo+8GVv7EGEKn1vcrEOz7qOe4sq0MvV2jHRofWFbTFrYloIQBzS1RiAIJWidMllBO4JRFQQaZRo4AoyqtL3dzAjxTskZMIwQgz5j2iX4zu38v78RnHMPCSE2zPU65jmWbeu2AbBzz05ee+lr53g1s8uOPTsQCG5ad9NcL+VZZcPyDZSCErv27jrnitpde/087bxJ1Dyngvn/6jPAmhynM5wpENYgjMWGMTJKjpH4Nps+T/bBB+GXf9mbPAUBXHqply9eeSW0qwcK652Dk6hEcFQXSrscXE5ZVAnFsfLSp7b8LE9d/zPI5hDCWT/3eoIURYNGw3DLLd1EkQCdQ9GEuHpM0WSco9Yyh5rtCJ/pEEIQJQF5qgnDgMIVaG2I427M4oLsUD/myGG6Fy+hJiW1TNMsDB3JWNc2DGH7dh+X9OSTsLqjn57v30d96brRotY6h7YW7Sza2gnOtEIIlBAEUiERCNGqI3AY5x2sc2OQUhDLgEip0Q6uNL64VUUBUmCkam8uJRRF0Iu0zZYkuQ8nQrSqYF04TnbcRgrsHNI0OLK/xtLFlhu2VojiEjbVgECEkkIXiESSdFYRQqD1MLbvEM2aJI0WE777z4m7fNffGENRFIRhiHqWo7WkhBu2KD53qJPBI4N0BnVccuKDrgmSoo0MearnX7/eX0YoijFzt3/8R+9Qfs01sHUrE2bhj8YpBcagtEYrhShSZN7wXVgpcWGMUwFOBiADBBqtm1gZoFS72K2jGPl9S+XhVEuWbg0ibyKLFFUfAKWwUQkXlo7rBIEMW67i2uBcK/Knzf1LKsA5R0NnRBSEUhIEZcQ0EmituhDOEJghnFAzniufnBiIW8VtihANoOGzht25Jf0bQQjx2+OuSuBK4Ok5Ws48U3D50stZUFpw1ha1V5x3BQvLC+d6Kc8qcRCzceVGdj++e66X8qyza98untv7XJZ3Lp/rpcxzFjJf1E6BNQW2aIDVo93Y0IIIFS6KRg/khofh3nvhv/8bvv1tyHMol+FFL4LnPhduv33652oa7Qu1Nt223DUmzNICCKO58j2v5vFbfoXDl28Dge/YxSfT2TAceqbOputiFi5sVd7ZkC9m2+SEDhTeCKsrmBuX0SCS5E2wBQSBlyFHUZWk1IXpzsgHU4KBfjoXLCAPQ4abmv5GTiAFSagIlSRQgu3bBTt2wL4neij+/H7yMMHogvjgHmo9y3EqQAgIpEIJgWp1YacrLkYK4sxoUl2QWU1JhQRSYgMv0RyRJY+ajinljceOdpeWCbmIUS5FmTqhHkCmNZyBorQYaZu4VrEgnEG6DKGbHHjasGZNyMbrOggCBdYh4gARSqw16LRJEMeoIMSYBkbXCV79RkoH+2h85W56OsfOwGSZNyB6tru0I0QR3PySmM9+IiEZbBAG0Ql1G2F6GfJMCEN497uhv99Lk7/2NX+CZNUqX9T29XnjqSuv9O7l4zepCQKCxhCBzvxMdhhjo1Lb1yOJ8HVwE2gSBCc4yywVLqlg4rLvCGcNZFqDZt0Xt1FpxtJkbxYlsLqVZRsd63YshHdCz4uU1EGUdE1b0I5QqB4id4TQDJCJRcfhiDwVI8WtATKcK2a8nrOQ8e7HGj9j+5k5Wss8UyCF5KZ1N7Fzz05vCHmWzJ7W8hr3P3E/v73xt6e/8VnIltVb+KM7/4i+tI/e0ol4CJx5aKu56/G7ePXzXz3XS5nnLGW+qG2DcxabN3AmA6mQURWhIi8bdZqmC/jedwQdHV5yeOgQfOhDvlPzohf5bs1FF/mD3pmQG4O1zmc9HvUPS7sCTU4sqhN+Fw0+Q/XJ75H07wdAaF9wuPDEC47Dh4dZtRIuuqh1vJPXwRRQ6j6myKobQ+G87FjN0T9ZIcZma4MkQGuN1pogqJJUmjR0P1mziRwYIO7tJa5GpIUhzc1onu0Il2+EgQy+/3TA0qWasDnM9t+/iQNX3My3fv1jBNNkvrZDCkGkFJFS5MbQNJp6kRMqRaICpBA4pXy3riVJllojob00WQiMKGNkGZkPEZoaRCGBa4BuTHhuY+DA/oALnlfm6g0RKpLISEIgfVyPc2SNOkJK4lIZazPfpSWi/y2/B4eOsGBhZfQ9VxQFWmuSJEGewN9itujuhhtf0sFX/rVgWTwEnb3T5vFOxvHIkKeipwduvtlfWnU/AN/97lhU0KJF3mzqkkvgmqsKKgwjsgyhFHmle9riXKkIcBiTYYyYaB51vAiBCxM/X6tzZJ4iswbkDVxYwsblGRW3MlAIwWjkjwyDlo+Ax1qNNSnlIKLpAhpGU5UzHFMQgjzoIdbPEJkB74g8ayigzDTRu2c1zrm3z/Ua5pk529Zu41Pf/RTfP/x9Llx04VwvZ1bYvW83hS3OuXnaETav2YzDcffjd3P7+hl0Ps4CHtr/EMP58HyUzzynjPmi9iic1Zhs2Es3wxIi8K6Zj+9zfPshxze/HfLwI5Is8wexv/ZrsG4d/NVfwcqVxz/m55yjaQqUlERtJJ0jXdqIid2ZrPc87vqLh0ZjaESR+Xk7dWKbNE0zIGPTpqqXllrrHY+DGMKJz11YLzuO50B2fDQjs7VOC6SU5HlOGIaEUTdhKaVwOaYoEENDqJ4eylFAOQow1lGY1myscxDBbTcL7rlL8Pg+wYrlC3n0NW9n8LlXn1BBezSRUoRS0jSa3Bq0NSQqHN3mbpy51ARpcjtjKecQeYGOejGVXsAhbIF0BuEcOhccPCC58irJZVdJZCwRR22noplitSauVnFYikOPIx74JsM3vJTmlRvprcZErRlkay3NZhOl1CmN8Jkpa9cKLt/UyXfu72dpNIRt48g9U45Xhjwd45vY11/v5crf+AY89BDcc4/jK18RfOIvB6n2wjf29TA8pHj+JYLOGajvfLyPw5gcENPG/cyIIMIGEViDzBqIIkXlKTYu4+LKtDs0oXyRavNirGMrJdYWrc6yIAp9H7xe5NSLnEoYzbCwVd44Sg+iTG1So7R5jh8hxH8ymT0/4Jx72bO4nHmmYfxc7dlS1O7Ys4MkSNi0atNcL2VOuGb5NcQqZvfju8+ZonZknnbLmi1zu5B5zlrmi9pxWFNgs2GMEzy5v5P+gYCrr/Zzku98JzxzOGDFCse2bXD55b7rAv64b1Xb1L/pyYzBOUjaZD8ap9GtXNqRjlnH3m+zYvc/8P2f+9OxXFVrEabAThPnMhnWOo4cGWb7dkVnZ+sxsiFw9hhzKOscA1ojxdzJjsczvlur4oCiyDHGoFRIUu5F5wfIMMgs94Vtl3dUVVKg2nSjbrnZS0YfeQTY9vrRJuDa//ggtRXreebKF53UWktBSOQUqfaS5MIaSkE4dpAvxJg0eaTAbV1GC4wiRWYZrtSJKAr/MwegaDbhmT7J9TdJ1l8sEW0ilowuyNOUII4JwpC86CP4P3+K/KfPoL/+MNUlSyhXx2QGI+ZQSXKys42zx9XXhhx8ukrf0zV6VjSmjTKajNmQIU/FokVwyy1wy/YCVx/miccdPYsjTFzli1+V3HOPv93KlY4LLxRcfLE3MJsMpRKc8x1bISRSzpIDtVTebCwuI7O679wWTUy5a9oZfSElMo5GC1srLY4CKVVrBlii8OZRjaIg1QXlNqqUdhhZRsomga1hZYwTz47j9jnAHmAp8MnW9VcDB4HPzdmK5pmUtT1rOb/nfHbu3cmvb/j1uV7OrLBjzw5uWH0DyUklNZy5JEHCxpUbuXPfnXO9lGeNXft2cdGii1hSXTLXS5nnLGW+qG3x6PdzHnxA8/1HO/jBowFpKujthb/7OxA4fvc3NYsWQ+95s3dQZZ0js5pQqbbdwNzVATFhlnbJg19g+Z2f5Ecvfyt592IAhMnBgTvB+cJDh2o873mGdet6/IGmzqFIIapM6Pw65+gvDNZBT/jsuh1PxUi3FuOltXmeUyqVCIIqcaWTdKifQkSIZoYIG8jy5AVQEMDmzb7j9tBDPr80Mikrd/5/DJ5/5UkVtSMoIamGEZnRNLWXJJfDECUmSo2dEGPRQNYinEMYg8pS72AbxTjGiuGBQUG9Kbj1FYKVK9s/t3OOZq2GkJKoVKIo+sFZht/5LvQrfo548RIqlQjZ6uxqrVuzytGzbg41FUrB1lvLfPbvM7L+GtHC8IQN0mZLhjwZollH5v6zvHp9J7Y1IvDWt8LtL3N891uGhx+R3HuvYM+esaL27//eu6WvX+9ndEfetl567NA6JQjEpE7CJ4RUPhoqTFDpEKrej40rvms71WsUAhEGFFkNm+WoKEGp8oTCNZSKUgCpLkiNphzMbHsVqptYP0OoB70M+TTZ75zhbHLOXT3u+n8KIR50zr1lzlY0z5RsW7eNf3z4HylMQXgSZpCnA08NPcUjzzzCL17+i3O9lDll8+rNvGP3OxhoDtCdnLji6EwgNzl3//juc36bz3NqOeeK2iyDvXvhscfgRz+CN78ZJE3uuMPxxS+XWLUKtmwRXHSRn4sVAqQ2XLzeomdZeplq32VL2kiGrTMUZESiPCGD87Gf/D0ef9EbKTrHZsxE0coYOYGitlbTlEoNrrmmhJSRb0s3B/1MXdwx4baD2s/RdgWKaA7nKo9mQrc2VGitsdYipSSOe9FxgzyvE6ouTK2GCMNW5mZ7pISNG6FahbvugiVLStz7nvtHf58ceQonFVnPyWUGxipACUlDe1lmOYjaS51bs7cOkEWKURJT7ZlwwuHgQe+0/aqfhN4pPCeyeh1nLUlHFXP3V1Af+3vSv/koWTlEbriOUqCIYl+8jsiO/d9xbsyhpqJahS0v6eLL/3KEpUlrvvYEC57ZliEDYDQyHUIY7Y2gko4J879KwfPWCy58DvzUywtyFTJU8793Dr71Lb+fAv+yli3zIw+veIWfqa3VGlQqKUJM7yh83AQRptKLbA4hm3Wc0b7YneTv65zxcmMJKoiRLgTrQE28faQUxllyY8hF+5GLYxCSQnUR6n6Urc/LkGeHihBinXNuD4AQYi1wMi6D85xitq3bxoe/8WEeePoBrlt53Vwv56TYuWcnwDk7TzvCljVbcx4WgAAAIABJREFUePvut3PPj+/hJRe8ZK6Xc0p54KkHaBSN+SifeU4pZ21R6xwMDPjuRhz7ubaPfxwef5xRg5CuLjh0IGNxb51X/UTMz/4cdHQcm/kojZk40zgL5MagrSUJgrYdz9w1ADE6S7v6Sx/mmcu20Tjv/AkFLc4hdOZNX44TY2BgYIjbbpNUKiOZtMPe7bk8sUCoaUPTOjqUpDTHc7TtCKNWt9ZKnNMURUEcx0gZUKosYjh/iiZNyiLGDA2henunlD8K4WOYOjvhy1+GrFKmpVzm8g/8AqVnHufOv34Ed4IzzCMEUlIJI+pFQV3nlIOQcDKTHlMg8tS71Lae1xh46ilvWLZ1q+/sTUbeTNF5RlgqYV0d8fB3EPc/SPrUYYKl55EoRRirUclylmVYa6lUKjOSis4Fq1ZLLtvUxcP3DbA0GvaF1wkwXobcwFA9mV2jc95ZuNWdteXOKT+fVimktYTO0N3tP1tCwPvf753VH30UfvhD2LNnzHyuXpe87nVVliyxrFljWb3asWqVPxm3cLbSMaTElrsRWR3ZrCPdALbUdYwx19j8LIRhCSECL0MuCqQIJ5hHgZchW+dITeHdxGdwgszKBCuTlgw5wYmz9l/Xs8VbgDuFEHsAAawGfmVulzTPVGxduxWBYOeenWd8Ubtjzw4WVxZzyZJL5nopc8qG5RuIVMSd++4864vaXfv8PO3mNZvneCXznM2cNUcGAwM+UuPHP/aF6759/oDwj/4IrrrKx4F0d8MLXuClfM95DvT2aGxWR8iABUvaH7iPj1qZLWzLHEpKQdy2S2vJaRISI4UiHO5j/Sd+n47Hv8N3fuUvJ97YFC3p8fF30g4cSLn0soLlyzsRQnrZcV6HqOwNolrUjaFmLCUpqJwGc7TtEFIQRAqdG6RSo0UtQBBWSKo9pMNHKOKYIDPYWg3V0THNo/pi8VWvgi9+0WeSLl0K3339+yk98/hoQSuLbFRSeiKMyJHrOqdRFJQC2nawZLPm34stKWi9DocPw7XXemfdqd6iOs/JGw0UAvHDb+Oetxb7xl+j/1WvR1bKJFYgpO94g3c7Hvkbnk6y43ZcdW3E/icqDBys03WemlYqOxkBgpJTpMLQcIYyx/+6RZEhsxoY07Y72/5Ofv8itUZYO8HxuqPD77+uuurYu73udfDYY4J9+yQPPOBP1v3qr/oZ3qef9ifxVq3yl+XL/Xt3qpMek+HiClYqZDqEavRjyt0+HshZjMmwduL8LICMwjHzqDg6Zt9aCkJqRUZDF1TDY3/fjkJ1eRmyGZxlN+RzD+fcl4QQzwVGkpe/73yQ7zynKb2lXq5adhU79+zkDzf/4Vwv54RxzrFzz062rds2QYV2LlIKS1y74tpzIq92175dXLbksnMuk3ieZ5czqqjNMvjqV/0B28jl9tt9h6q/38fqlEr+IG7jRv91xQp/30suGTN2Ah/bY5rDIAQy7mh7UCWsRViLDYJZ7dI2jcY5qEwyU5bTAByR8EN0RUcvd73/QbLuY4frZZGBOP552sFBS09vjSsuD1GqdJTseKzbVdeGYWNJpKDzNC1oRwhjhc4MwkoMRSvex7/Fk9JCimadNO+nGi/ANlJEHCNnIClfsMAXtnfd5btmy5ZfQrjGv5mW3v9vXPR3/4uvvWMHjaXrTnjtUggqQeTnDXWBw0044SGKzOcQl6o4ITl00Bexr3iFL1imwhpDs15DKEn0lt9Afv6LZN99mKFYIKsVOpT/u0VlhRBigtvx6Sg7Phql4MYXV/jMxzXFYJ2wW/pu9gkQI/2su7BIB8lMCltrEEUTWTR961wpzAxieiY8hJRIIVBao8Nw2v1NterfkyCw1pCmKU8/HbBwYQIIBgb8mMX99/uP9ghvf7s/AbJnj8/WPe+8sUtlCrNjFyYYIVGNQVS9n6JUxTg/PqFUfIwTsxACGQYTXZHHPbgUgnIQUS/ymc/XColWHd4N2TYw8sTMweYBIcSbgX9wzn2rdb1HCPF659yHjuMx3gi8EWDViTolznNcbFu7jffe/16Gs2E64ulPyp6OPHzoYQ7WD57z0uMRNq/ezJ/e/acMNgfpSrrmejmnhExn3PfEfbzpqjfN9VLmOcs5o4ragwfhgx/0jY8lS/zBfKXVlFm5Ej72MS+9m8m4p80b4Bwq7hjtLhyNMno0UmW2KKyhMIZIqbayO+sMuUsJSYjSlMUPfYn9L/xJ0iVr2j6e0JkvaI+j6C4KqNVq3H67JRkxJ2gOtmTHY0YsQ9rQaBW0XYE6bSWoI0gpUKFEFw6hvGHUSFErhKDSuYzBvn2ktkZZlbFDQ4je3mPkke1IEti2zZ8kuesuf33BAsi6FjO47grShZM4Mx3P+oWgHIQ0dEFTa6zz2cUAIquDlNSLEocPwAUXwKZNY+ZBk2GtIR0eAlOgShLzW2/C3HgTQ0kPAkF3EpLVC1QgCUJfwDWbzdZrPnNcKTs7YfOLO/nKZwZYEQ0j4IQL2xLKqymERThB3M44yhSIIkfoDGF85rELQly5ckKjAAiBCQJUUSCtPS5liJQBpVLC6tUpUjqcK3HRRYIPf9ifCHzySa8yePrpMZf2Rx+Ff/iHo153CT7wAV/gfvvb8L3veffmhQv91wULIsJyJ274EG64BuVegqgy6TyvkBIZhpiiwGl9zBx7ICVJENDUesbztaNuyGYII2KY7Vnic4c3OOf+euSKc65fCPEGYMZFrXPuI8BHAK6++upJ44HmmT22rdvGu+59F3c9fhe3XXDbXC/nhNjxox3A/DztCFvWbOGdd72Te5+4lxc/98VzvZxTwtee/BpN3eTGtfPztPOcWs6oonbRInjHO3xBe3QCThDA4sUzexxrcpzJfA7tJC6CwhiwDjOLXVrrHKkukEK0NYeCkVla36Vd9/l387x//EN2rbmU+ornHXtjU4C1uOPsph04kHPttSmLFpV9JEje8G7HcdUbxDjHQOFNocpKnvYd2vGEicIUFmcl2o0ZRgGoIKJcWUKjdoAiCQjSADE8PBrzMx1SevOw887zhe0TT0Bz3Sb6/7fP2ZNFxrV/eDOP/cTvcOgFJzYfI4SgEvqObW4MDihbjS00B4Y7CcqCF7/Yy6Kne1s6a2kODBC98Y2wbBH2Pe9AP+9KamuuQiDoKYeY3IKDsOS3cZ7naK1JkuS0lx0fzbp1gudf2833Hxxg2aJhrDUzylptRxlF3RlSYRAOIqSPzsobviPbGsx3QYhNKl7+f5Lz1U5KnJR+hl/K41q3lCFKudZsa2NUChzHcP75/jKeW26BLVvgwAF/2b/fS9l7evzvv/Md+Od/PvZ5PvnJjFKpyo4vCB75QUzXQkF3j79fd7eXSQsx2rBGKIl0CqsNCI08ascdqwBtrZ+vlWKiA/gkaNVJpA8TmkGKYApXtHmmQgkhhHO+jy/8mYm5D6GeZ0o2rdpEEiTs3LPzzC1q9+zgwoUXsrxzGonROcK1K64llCF37rvzrC1qd+3bhRSSG1bfMNdLmecs54wqakul6aWW0+GcxeZ1kAEimKST4xzKGJDedXa28LJSLztu1/W0zrRmaROUCHjslW+j78JN7QtaQOjcL/c45mkPH4blK4a58EKFUlVfGGdDfoY27vDzs9ofsHcF6rQ0hZoKpSQqkDitcMJMmK0FiMudFHlKng8j4oqP+YmbyOPoSvb0wEtf6p1p770XjhzxJ1Q6Bw6issaYFNzamckG2jCSXdvIC/qeGkCZiEtfmHD55b5LPB3OGNLaMNplhIu7YWEvqamSaUGoJN2lEJwjywxBrFBKYowhyzKCICCaZafvZ4sN1wqeeqqb/qEaPTRwpvDmUZOZb02CQFBBUXOGhssRzYykyPz8ehjh4th/7mbZBdwoRVAUvrBtk109FUr52VRjmmjdIAhKU7oiJ4k/ObJmzbG/e81r4JWvhMOHLYcOaQ4dMgwMCB/3JCOGcsdj+xz934I09fepVOCf/sl//773wX//t58JrlYDOqqSpUscv/4bFiEl993nPQ86OqBUDiHM6ewsWLfCvwbnppBCiwAtqwRmGGmbWHnmKApOI74E/IsQ4sOt67/S+tk8pzFJkHD9quvZsWfHXC/lhGjqJnc9fhdvuPINc72U04ZyWOaa5dec1XO1d+y9gyuWXnHWxxbNM/fMaVErhLgF+CCggI855951qp/TFg1wtiU7bn/UJK0F5zAzzFGcCaku0NZSCsJJ3T5HurSL9/yAxrL1mHIHRy7ZMuljCp17s6IZHlhnGWhd47qNmijqRjgHaT8ISR51MpRrtHNELbmxOs3lxpMRxgqjLTg5mrE6sq2FEJSqC6gPFBQiQ0iNGBaIKJqRDHkEKb0EeNUqeOQR7679jF1F/598naTsH+f8z72Phd++gwd+77PY+PiksEUB/UcC8kbKqmUFF20os3y5IQmnL87st76J+/lfQH/4A6iLn0Pzve8i1RWclpQjRTUOEELQrGsQEMXK59eegbLjowlD2H6z4FOf6qAUhCRmGFU7gk06jluOLKylM2vQ0A1SHDpKiMMq8lRmREqJU9JLkKeq7Ca9e4gQEq1TiqKOUhFSxsc9OuCcJQhyFi8uWLTIccklIUqFo0Xyz7wafuYnc1Sjj1SH9OXd1Otjz3HttV5ZMzwMtRoMDQkGh8AWGhmF/Md/CB55ZOTWAohZu87yZ+/187VvfauXTZdKXmJfKsGFF8IbWsfCH/+nClldEscWlTjiWLBihTcCBJ8xLYR3vo8if+ns9N1k5xxZar1KgTM77/MkeBt+Hvb/al3fAXx07pYzz0zZtm4bb9v5NvYP7+e8jvPmejnHxX1P3EeqU7afPy89Hs+WNVt41z3vOqNnpSejUTT42pNf4zc3/OZcL2Wec4A5K2pbcqe/BrYDTwIPCCH+wzn3yNT3PHGsKXA6QwQlhJzkpbcifEakgLNBbgy5MYRKTTo3NtKlTTLLte94KX0XvZBv/O9PT/6gznnjoHhmZinOwcGDBVu3NujuTryxS6MPbQ3DUTeZcShxZnZnj0aF0sfSaIkTGq014bh5viAMiUs9NNMj2FigGyliaAjVffxnEZMErrzSy5J/+EP4n/+RHO7zB9HLww7yjt7RgrZj77eprbpo0hggrWFwEBoNfzB+2aWO5y7OKHdUqCUJg2lBVliqSYCSRxUpxkB/P7anh0YSkugM+o5Q18/HigqhknQkIVHgt60pLKawhImP8EnTFGMM5XJ5VK59ptLbC5s3w1e/mrBqRYhqDiHTYcgb2LiKm86p2hTIPEXkTRBQCSs04pimEuRA7AwRcnaybNs9vQoIbIEyxo8/HCdCKIKgjDEZxuQtd+KwVfC23/84Z3DOti4Ga/2csJQhQRC1v18QYUudlBpDLOscxC4d+/zccIO/jFsVzjps7rCF5u1vDxke9kVvvd7q9gaWopVfu3Wr4uBB//NGw38d/6d44EHB/v0l8hyM8dvhuuvGitr3vtcX0+PZeqPjN35N44zlNT8b8Yu/YHn5T5ybo6DOOQv8TeuCEOJ64C+BN8/luuaZnu3rtvM23sZX936V11762rleznGx40c7CGTA5tXzsS7jGTGLuveJe7nlObfM9XJmlfueuI/CFvPztPM8K8xlp/Ya4LFx4e//DNwOnJKi1jmHLeogFTKcvGMjjfFd2nB2zuAX1pDqgkBKSlPM3GXOH4EFySIe+l//RHPhiikfd0x6PDOZ6MGDjgsuGGLtWkEQdGDTAWpZSiPoQIiAqpJUlDztzaBmSpgoXMNRmII8zycUtQBRuYQuOtCmRhgbdFrzbsgnknmCL24vuQQuvtgbmu3ZAw8Hb6JxxZsQT0GcDnDL723isc2v56HXfQBrHMZAXojR3OQogrVrfdzU0qWg8gamZgk6u+kNQ2qZJs0NzZohUpI4lIRKEkgB11+P6V3A4Y/8JVnJIXf+F0HSSxgkdMbBMR3eLNWjET4j8T1RFI0aa53prF/v83v37lUsXdrj3YmzOrIxiFMBLkpwKvKyZCG8g7HOEUUToQvvKB6V/EkjqUiAwDmaGJrC0sQSOUGEJGhnJHUytMzppDFeEnACJxmEkARBCeei0eLWmBwhRMsYz3/ORwrZifdVrQ7v5EXwCC5MsCWLTGuIZg2XVCdfk5SIIMBqTRhoFi4MJmTqOqeoaz9fe+ttU8/XfuADAIJQ9+F0wZBZBONu/yd/As0mZJnvymZNx8KFFmccQkle/RrHilUh53KiiBDiCuDVwE8Be4HPzu2K5pkJly29jAWlBezYs+OMK2q/sucrbFyx8azrRp4s1628jkAG7N63+6wranft3YUSiutXXT/XS5nnHGAuj2CXA0+Mu/4ksOHoG42PDejtPfHYAKebYA0y7py8cGt1aa1Ss2IOVVhDQ/s82vIkc7QA2uUUrknvwYPoZYs4cun0Z7SEzv1x6QykkPU6RFGda67RBEEX9bRBPa3hwhLlUoWq8nEiZxNBKCmkQGiFMWZCvA+AlIq4VKZZt9g4xxZ1xPAAYRQhTmKOWsqxiJTrrvOdqIEBGOzr4LE//iT93Wvp7YWO/T/kmt/ZzBN/9kmCW2+iK27S2eGQFV9UO2vR9brP+GzNt3ZEinIUkBYG95GPoP7zP+j79OcAiH761TQjSyOvUe5cQLnUSykc68yOp8gMzjri/5+9946S67rudL9zzr23cjcaiQQTQDAHMQmimESAEaAoUsFUtC1L9nsay7KtmfXGlhw0WuMn2+MgR82Tl+yxZVujZNmySVEUKQlUGklMiqRIkQATcuxU6YZzzvvjVDcbQEegqqur+3xr1Wqgu+uefQuouud3996/XQqOGN/Ty2XHRyMEXHedM0ByvZt5dJBzojVpIBvVyZ8opTN+CgvHiMkAQZmAzFoSNIlwXyWayMq2Zm+NUkhjXLb2BDLnY1lbJ14zjNGAxVqLEO7nUgYIIVsCdu43tmxUxOoMGdcxKpjW/VkGCqzBZNoJ7AnvNdFy/x6fXxvMPL82U31E5gB94SiZesnwbd1ajdUG27pjJKREKOW+CsEb3+jcoJcaQohzcUL2rcBB4DOAsNb6NEqPIIXkpvU38ZVnv9J6H/fGtXt/bT/f2/M9PnTDh7odyoKjFJV4xSmv4GsvfK3bobSdB59/kFec+gp/I8MzLyz4+9TW2o9ZazdYazeUy6uO7xhGY9IGQkXT9sOprDXCpw3mULHOqKfp+PzRqS481lqadpT1Wz/L5l/dQP8zj8zq+EInsxrlozUcOpRw/cYq5HIMJoZqY5gozLGyvJy+QC06QQtugxxEEiUCrHGuvkcT5vOoMMSmEbJYJM2GyYYH2xiD6+M74wx42WWKC97/Wq755Uu47Ta47mpNtPkGzrr5TNauhWXfuQ9ZKcEPfwiAue8+1DvegRyL+2/+BkolVKNOORdQyQWEEvrJCE2V+s/chHzdFk5fcyZrlq+hv5CbVNAaY0maGSqQSOXKjoUQFI4zQ72Qyefh1lvdTYUsA4Rw2dfycnR5OaZQweRLmFwJU6igywPoykrnmDyNkAwQFAnoswEFq5BW0BSGEZFRR2NoQ0lr63NobFb2iR9OImVEEBQIgiJhWCIISgRBAaXySOlKjI93g2zyFWwQIhsj0BpxNGUsgevpNmk2LjrHkEJQCEKMsTRmOA440yitiihdR9gMozU6TjBp5m5SBgqVi1BRiFQLfyzZPPAUcCPwGmvtddbavwZ0l2PyzJFb1t/C7tHdPHXwqW6HMmvGRvlsPntzlyNZmGxat4lHdz9KLal1O5S2UU2qPLL7EW5Y5++ZeeaHboraXcDE4Z6ntb7Xdkzq7DllOHX/6djmca6jNI7GWjs+ZzSQknIQTSsaY1vFoDn0yjfy9Js+wPBZL595EaNB61mVHu/eY7jgiiGClYK6iZDxMMvDgIHyCle2uogJc65fFCvJsgytj9275UtlQGJtEVkskjQOomtTZPHayQUXwCc/CevXu7+fdx588INw1llYrbF79yJefBGRpu7nL3sZ/NqvwZjIfde7EPd9EaNqEB+kXCyzavVZRLnStMsmDScUwrykXq9jraVQKPR8H+1UnHSSy5gfk5VTATYqYHMlbL7kTKTmaAAlcTNsyy2BG1lB0hK3DTT2BMXt2GeRymYWd11HCOcyjUA1hl0T/5S/KpBR6J6TpMcI21Aqciog1ZrmLM49kxWMsYjGYSdmARUGqFyEbAlozzhvAPYADwoh/lYIcRN0qDnc0zFuXn8zAF959itdjmT23L/9flYWV3LFmiu6HcqCZOPajWQm49s7vt3tUNrGN1/4JpnJuPHMG7sdimeJ0M2d7CPAOUKIM4UQEfAW4O52L2J02ppJm0dMM9ZD6RPP0qZGM5ompFoTKUUpnL58LrMJtraPyOSwfSfzzFs+MKv+OZHFAK4ncAoMlt2DmtzqYdadn1EIyizXdVYEgqi0vO2jSBYiQrieUUWANXbSbK1UiqhQwKQGmR+AUBEP78aMicn54sILnagtlzHVKvaOO1zWdmyG1bXXwh//8fggUWNS6qN7aFYHiXID9A2cjpxhTuqYOVQQSeIkHhe0vTaPdq5cconrVd6/v3NryAnZ28gKYmEYFRkJJ5BlFQKtlDOFm+SGzIJDKnSxH7RGNken/dVjhO1R55cPAkKliHVGI5v6vWi1QacZic4hdIxSBpU7sRaCxYy19t+ttW8BzgceBP4zsFoI8VEhxK3djc4zW9YtW8dZA2f1zGgfYw0PbH+AW9bfglzKjezTcM3p16CE4mvPf63bobSNrc9tJVIR15x+TbdD8SwRuvbpYq3NgF8F7geeBD5rrX2izWs4cyghp55JS8scyli3gZzjXX1jLYnWjKYx9TRFAKUwojDDOCBjNc3sMDd86Oe45s/+05zWFFniROkkIkZjqaM5mGSMJE02XtNkTanMSpuQsynkl805I9XLhNGR2VozSSlnlC8gg4CsmRH2nYQlIx7qTsOdSRJMM0YWS1NuzLVuUK/uIWnUyBVWU+pfPWM2yo0xcSN8MpOQZRn5fH7RGENNh5SwaZP7erQjbtvXaonbslUIK6gLTY3suEuSrVJYKd3c7GmynwuGIMLkSoikiUib0/7qRGGr08yVI084x2IQEipFovURwtZai8lcmbFOUzc7ONePyoVEotGxU1tMWGtr1tpPWmvvwFVJfR835sfTI9yy/hYefP5BEn3szdqFxo/2/Yh9tX1sPsuXHk9FJVdhwykbFtW82geff5CrT7ua4jRVkh5PO+nqLTNr7Rettedaa8+y1v7+jL8/1+Pr2JlDRaUZzaGslNhZ3N3XxpBoZwA1msaMJrHbcFkoBCGVKEcwQxbUWkvdDmOkZPf1P8uea94wh5Oybj7tUaXHGkuNjFGREVvD4D7BbdfWOX1FSF5bSJuQq8A0Ji6LESEFQaSQBK6fdJJsLUC+XMZaS5ZYgspqdFwlGd43r7FaazGjowglkaVjLwLWWtJ0hNroXtJmSr54MsXKwKzKK5OmRmcabRO01hQKhWMcoRczxSJs2QKHD7f6aztMgKRCQN5KUmGpioz0OLO2ppWtlb2QrQVXzj3WX2umj3lM2EqlMFpj4gSTvdRrWwxCIqWIs4xaHKOTZPx3ECDDwD0/CNCqgjQx0sTzcZqLBmvtYMu74qZux+KZPVvO3kI1qfZEuer92+4H4NazfDHAdGxcu5GHdz1MPa13O5QTZrAxyPf2fM/303rmlZ6qA7FzyFRYa1rmUCFymjLd8RE+U86PtcQ6o5YmDCdNqmlCI0vJjHY9dSqgHEZUotyUM2iPPoeGHYa0TlEu48Xbf409171p1ueFbmUmAjdr02Cpt8RsJiw5K6nvDbji/AZnn2kITYhI6xAVITf1uI3FTJhTSCERRpKm6aTZWikVuVLJbZZVkbDQR1I9SNYcnrc4Ta2OzTSy71iHbms1SXyQ+sh+TCopltdQqEzj5D0BnRqatZhExwjFkhO0Y6xZA1dfPb+ut3kUZeuy4TWhqR9Hr6274SaRxvRGthbG+2tlY2TG3xVCIMMAFYXOfTrT6CRFN2N0nBBpS6QNSRxTTxKXuY5CVBQdYf6kZRErFIGevvTZ41kM3HjmjYQy5L5n7ut2KDNy//b7ueSkS1hTWdPtUBY0m9ZtIjUp39nxnW6HcsJ8/YWvY7G+n9Yzr/SWqAWSWWYrTFoHa5DhNMY5xrw0wueo7KqxlkYrG9vMMoy1RFJRCELKUURflKcURuSDADWH/tSmHaH/6e9y53uuZfmzc6+2Fq0yPK0CGmhGREbSErMVG5AMK/orCRs21AkIkEkdghzk+ua81mJBSoEKJQKFNZY4njyTE0Y5wnyetNlAllejVJ54aA9Z2vmSRptlmHoNmc8hoyNvwhgT02jsp1EdQtgipb6TyBVnV85jtGHo8CjNpEmuEFAsFpekoB3jsstg3brO9tceTYCgYgMiK0mEoYpGz1HY6largeqRbC1SYQoVRJYi4tm5eYoxsTpm8KRapn1CkI9yFPMFdKBoCIOd7GaOEGSqgrAp0vgyZM/ippKrcN0Z1/Gl7V/qdijTUk2qfOvFb/nS41lw7RnXIoVcFH21W5/bSiEo8MrTjpnU6fF0jJ4StQJo6mzGjK01GTaLEUFhanMoawmmGOGTGk01jUm0JpRqPBNbaJXCqeM0OmjaKikxoriK2qnn01x1+sxPOpqsSSNUjCpDLAyRFW60CIosEYyOWm64YZR8CCpJQQauj3aJO4CG+Va2FkWappM6IQNEhSIyCEgadcK+NaAFydBOjOls35IeHXUZq8qRs9ySZJjqyG7iao1ALaO0bBVhbnYl5GmaMnhomCxLqSwrUiqVFr0p1ExICTfcAEp1vr92IgJBEUXJKoywczeREgIjpTOM6pFsrQ3z2DBCxrUZx/xMRAiBDBQyDFsZ2RAZBuSikFIUYaylmiboSSoujCxgReiytT3yOnk8x8vACZDHAAAgAElEQVSWs7fwo30/YtdIRwZHtIUHn3uQ1KRe1M6CvlwfL1/z8kXRV7v1ua28au2riKaplPR42k1viVoh3FzXGTZIJnHmUDKcwRzKWnQQHCH4GlnqDJ+EoBxGFINwTpnYqUhsncTUiCiQnPFyHvrv95P0rZz18y2W2GSM2oRGEKCsoGwDigRIBMbAnj2waVOVgf6UIM1cWV5xaTgdz4RS0mVrrUIgpszWCiHIl12ZdpzERH1rsImmObQLYzrTjKmrNWySIisVROvfyuiM6vBuqkN7MQkUSidT6l+BmsGADEBrTb1eZ2Sois4s/QN9FIsFP9qkxVh/7eAgzLfJdYirqFAtE6k62azLkU3LyK4nRvy0MPkKIGZ0Q54toVSUW34C1SwhnaRnN1NlhNUo0/t9aR7PdNx29m2AK+9dqNy//X6KYZHrzriu26H0BBvXbuShXQ/RmIcKsU6xr7qPJw48wY3rfOmxZ37pKbUjgKjlhjnZXXoAkzWxJkOG02ziW2XHY86i4Hpda2lC0hrHUw6itohZgNTGNM0oV330/Vz2iT+cUwbBYonRjIqMpmkggKLMUSYgmDBecO9euOiilDPX1ZBJjBSqJWiXdmZuImHeCVphFVmWkU0hDqRU5MsVZ8xkLVHlJGy9STy8C2tPYETLJJg4xtRqyEIemc9jjaFZG2b40HMkzVFyuQH6VpxBvlQeF7xTHssYGo0GtVqNpJkiCejrL5Mv+julR3PyyfCqV7kbQfOd0JOIcROppJW1nVU5cquqZGymdk8gFSZfdmXISXtEppKSchghEdTT9JiWFCPzWBkRmKrP1noWNRevvphTK6dy37aF21d7//b72bRuE7mWD4hnejat20SiE76787vdDuW4GSuf9v20nvmmp0QtQE4FCAH1LD2mDHncHEoGyGCKEs0JZcdj5lDGWqpZQmYM+SCgEIRty2ppm9KwIygjUbTGpxx1bINFY8mwpBgSDE00VTKGRUZDGIQVlFNDnw0Ijzq3w4dhYMDyiitHEPEoAeGSG90zG8aytVgJCJrN5pSl7CoIyJcrmCwjE4qwvBpdq9Ec3NE2YWvTFD08jAgDKBWJ6zVGDu+iXt2DDCP6lq+l1L8aOUPJ8JiYrVarZFlGoEICmSNfyJEr+v8DU3HxxXD++e6GUDfIt8qRLTA6S3dkI12fqZpDOW+3sVHBuSE3qzO6Ic8WKQSlMCKQkkaW0jzqBlUqK2ANysxjjbnHM88IIdhy9ha+vP3LZB2qJDoRnh18lm2Ht/nS4zlw3RnXIYXs6RLkrc9tpS/Xx+VrLu92KJ4lRs+JWikEhSDETFKGPG4OFU3t8qt0dkTZsWllaI21FMOQ3CSzX48XYw11O4xAUAiW8+Nf/Vt+8vMfIsbNrhwRKUMiZUQ49+KqyJxDqtA0hZtsmbOSslVUCIiy9JhRPo0GJAncfHODUA8SECLy/UtudM9siQoBQggUAcaYKUf8AARhSK5cRqcpWoVE5dXoeo3mwRdOuBTZpil6aMhlg5WiNniQenUPqJRS/2r6lp1BMMO/YZZl45nZLMuIoohCvoDNJFJK8sX23ZxZjAjhsrX9/a4UuRtMLEeuCU2TGUTf2M04Y11/bY/g3JBxwrZNSCHGZ9nGOjtC2FoZYWSOwNSgzdUVHs9CYsvZWxiOhxdkZm9slM+Ws7d0OZLeoT/fz2UnX9bTZlFbn9/KxrUbCWT79tMez2zoOVELrq9qrAx5rPTM6BSbxa7seIqSW5llCG0wQYCV0gnaLMFgKQURYZtLdRt2mMKBHdz0ez9H4eBO6mSMSE1DGLSwKCvIWUnBSorWZW1KVlGxAf02oIIzgAqQzmjFmCNEbZY5F9dbbjGUooPILEPlB5bs6J7ZIFtzazESJRVxHE9pGgXOETlXKrWEbUSufw06btDcvx19nBt0myQkBw/SrNdoCk2cDELQoNBXodx3Crn88inFqDGGOI6pVqvU63WyLCMMQ0qlElEYEdfdueRLAUJ6QTsTUQSbN0McQ71LLZgSQRlFZAVNYaiRYaYpR7ZjvbU9JGqRChOVEGkMWftM18Q0wjZTfa4yx2drPYuYm9ffjBKKL21beC7I92+/n3XL1nHO8nO6HUpPsWntJr6787s0s2a3Q5kzO4Z3sO3wNl967OkKPSlqAfLKjdJp6JRMa0xaA6kQweTmUFLr8T5aoxTWWupZ6jK0QUjQZjOl2NbQpAzsP0DlxSdoxCMkwhJZSdkG9NmQUku05lBESMLWo9X5ecTxROaMjcZErbVu3uY118Bpa4YgHkbllkO+v63nsRiJcgoESFwms9mc/sIR5vLjwja1kvyKMwBB4+ALNA/vRM9hk54MDzO6cwe16mGyXIbIJeTLeYrlleRybozQZBhjaDab1Go14jhGSkmhUKBcLpPP5wFBs+Y29IVyiFQ9+9aed5Ytc8L24EF3o6gbOHfkgIKVpMJSnaHPVisFtreytTZXBKVQzfY7E08UtnGrgseKAC0LzjDK9s7r5PHMhWX5ZVx9+tV88ZkvdjuUI0h0wtbntrL5rM2+YmiObFy3kVjHPLTzoW6HMmcefP5BwPfTerpDz+58x+7QCwTV5ghGZ8iwNOmHp8wyZJZhlUQHgTOFylK0MW4z1OYMbWZTYlvDErHzkhv4/MeepHnaBfTZgCLqCIOn2SKyxM0hacW6dy+cdx5c8rIYXduDUiVkYfZuyksZIQVhTmEyS6BCtNZTuiGPEeby5MpljNbEcUq4fC1hZSVZfYTm/m3Ew7vJsjp2ks2zMYZ4ZJCh555mZM92EjtMuKpEflkfhdIKcvlVBEFl0v+7R5g/JQlBEFAqlcbnzQohMNrQrLoe87wXtMfFGWfAtdfCrl3d9RbKoShb9x6vioxsij5bqxTIVra2V8yQhEDnK6A1Im5/WnxM2Dazl4RtptyIrEC3x33Z41mI3HHuHXx/7/fZObKz26GM880XvsloMjru0OyZPa8641UIRE/21W59bisriyu5ePXF3Q7FswTp6d2vFIKiEtisQcNKN5N1IsYQpAlSa4xS6FYvbjVzMw4LHRC0xhpqZpBL/9d/44xvfQFpBcWgND5657iwFqFTbGve16FDMDAA118Ptu7m06nyqX50zxwIcwohBTaTBEFAHMdTuiGPPyfKUaj0IYQgrlaxQYn8ynWoqI+sOkJ84AUagy/SqO6kWdtLbXgHQ3ue4tCzjzG060mydIj8igp9p59JsbKGXG5MzB77f1BrfYT5UxiGlMtlCoXCEbNmtTY0Jgha5QXtcXPppXDhhc4RuZsEuGoOAVSFntJASqvAfTb0ihMyQBBhwxwyqbXNNGoixwhbodCyiDINhF14RjoeTzu487w7Abjnp/d0OZKXuOfpe8ipHDevv7nbofQcA4UBLj350p4TtdZatj63lRvW3YAUfi/imX96/n+dSBsUghw2zFNNnVgVxqCylCBNwYIOAkwQkBlDdYIpVDSDq+zxULcjNNIqK7c/zupnf0jlqNE7x4V252HCHNXWlIrNm0Hpg5i0RlA4CeHt8ueEEIJcIcAaixIhUkoajQZmBoGggoBCXz9hvkCWJDTrDUxUQZZOAlsiHWrS2DtIdccu6nv2oUea5IIKfSetZ2D9pZRWnk0UDaBUbtLM7JiYnWj+VCqVyOfzyKNuWujMZWiFEBS8oD1hxoyjVq2CAwe6G4vEzaEeM5BKJhG2VkqslL2VrQVM3vX8t9M0aiJj7STNLCPRmkyWQQgCPdKR9TyebnPeivM4Z/k53P303d0OBXDi5p6n7+Gm9TdRikrdDqcn2bR2E9/e8W3ibPoqsoXE9sHt7BjZwQ3rbuh2KJ4lSm/ugq0Fa7FxDbKEfFCgXwQEWUrcqKHjJmiDUYosDNFSUs9SaqnrfSx3wBQKILYxQ6KByq/gu//vl3nm7X/UluOKLAEBcRYyPAy33w6VQkxW34eISihfdnxcqNCN+MkSQz7verEbjcaUY37GEEKQKxYp9vcTFYsAGMDmS6hlq8kNrKG0eh39p57HwPqL6Ft3PoXlJ6OCyYUsOCfjer0+KzELkCaaZs0JWl9y3D7C0N0wCkMYHu5uLGMGUsoK6lNkbE2rt1b2Ura2Q6ZRExkTto0sJbWWTJaQJkaYzqzn8XQTIQR3nncnW5/bymjc/VL7Jw8+ybODz3LnuXd2O5SeZeO6jTSzJo/sfqTbocyarz77VcD303q6R0/thIW1BEniHnET2awSWkWAIrSWsgpRUlGzlsMYhq1mNE0YTWJSo4mUohJGqA6U6SZWEz5xH7d8+D2siENUWGhbObDMYlIbsnef4NZbYfVKg67vcdmH0iltWWOpEhVcyXrWNBQKhfFM6UzCFkBKRZQvUOzrp7RsgPLyFZSXr6C0YiWF5SuIKhVkOPWc2LGRQrVajXq9jtaaXC43rZgFiBsZST1DKelMobzLcVspleDVr3ZuyN1yRB5DTBC2tUmE7Vi2VvZYttbmiiAEMq515PhjnguqdUOzSQGEJDTd3/B7PJ3gzvPuJNEJD2x/oNuhjJdBv+bc13Q5kt7l+rXXIxA9Ndrny89+mdP7TufcFed2OxTPEqWnRC24TZxRisQ0yYIAXaiQRRFZLofJ5cgVihTyBSLlelilEORUQCXMUQg6M7czxTAoRhl48SlWP/skubjRvoMbjck0u/dHXHcdrF8PtnEInVWRxVXIKdxyPbNDSkGUD9CZwWpBoVAYn/86G2F7PKRpOl5iPOa8nM/nKZfL5HK5KcWsNZZmNSWLNUFOkS+HfmxPh1ixwgnbgwfdHOhuIhCUJgjbo82jejJbKwQmX0ZkKSLtzNiKMWErEdR1RkwRYRKk6b0xGR7PTFxz+jUsLyxfECXIdz99N1esuYJT+07tdig9y/LCcl520st6pq82Mxlffe6r3HrWrd7t2tM1ekrUWiHQQUBmUwwGkSsjgtA1w00gkJJCEFIKI0phRD4IkB16k6UYRmwTbZvs3vJuvvkX3yftW9HGBRL27IZLN0RceimQ1Mniw5ArE+SWt2+dJUyYU6hAkjQzlFTk8/nxcuDpZtjOFmPMuJAdHR2l0WgcMV+2VCoRRdG0FwLTMoTS2hAVA3IFP9S805x2Gtx8szOO6taonzFkS9hKnHnURGHbs9naqIBVgeut7VDcUghKYYRAMGICDJJA+7m1nsVHIANuP+d27n36XjLTvQ+sA7UDfGfHd7jj3Du6FsNiYePajXx7x7dJ9MJvm3hk1yMMNYfYfNbmbofiWcL0lKgFsEZj0gZCRcgumyNlGMzhF3n1b1zPadt/QkFUMFF7M6d7dyScfa7kqutChNWYxiGMBJVfOalrruf4iIpOJMYN189aLBYxxlCv10mSZE5Z2zEROzZXtlqtjgvZIAiOmC+rZmFWdoTDcSkkjPy/+3xx3nkvjfrpdiJ0zDxKAjWhj5hj25PZWlqmUcYg0jZWtxyFE7bu5uewyYFJkKZz6y0VhBDvEkI8KoR49EC3ndU8gBvtc6hxiO/s+E7XYvjiM1/EYr2obQOb1m2intZ5dPej3Q5lRh7Y/gACwU3rb+p2KJ4lTM+JWpNUXS9Wlx31MixVoVGNIaJmlbyJ2m5hvns3nLEm4ZqNkWvPbQ6T6Srkl6GUdxRsJ1I6N2STWZJGNj4PVik1Lk7jOEZrPS5wjTForcmyjDiOx0uKx0Rsmjojp1wuR7FYpFKpUCgUxufLzgadHuVwHPTcW7bnuewyuOIK2Lmz+4nQMWELUBMZpiVsezVbSxBhgxDZrHU0biUkxSAilXnqBoJspLdepwWItfZj1toN1toNq1at6nY4HmDz2ZsJZch//PQ/uhbDPU/fwymVU7hizRVdi2GxcP3a6wH4+vMLvwT5gWcf4BWnvoLlBV9B6OkevbVDtgZrMmRYRHRxBpbBEiejCGuprzmNL/35N6ife11b19izB05elfKq6yxhMYKkho6HsWGBIOz3PQsdIIgUQU6Rxpo00UgpKRaLFAoFN5s2jqnVaoyOjjIyMkK1Wh03eRoTvBNFbLlcplgsksvlCIK5lwtniaZZT5HSOxx3EyHgqqvcDNuFImxLNsAA1QnCVo9la9tQMj+fmFzJzduNO+vKFUhJQYU0KNHUMYHtjEmVx9Mt+nJ93LT+Jv71yX/tmCfEdDTSBvdvv5/XnPMav0dpAyuLK7l49cV87YWvdTuUaRlqDvHQzoe4df2t3Q7Fs8TpsV2y6XrZscWSVA+y+b9ey8v+9Y8BQxT0t3WN/fudUc0tGxPCEISS2OYwmUgRuT6UN4fqGLlC4Ppr6xlZ4sTBxN7XQqFALpcjl8uRz+cpFArjAvZoEXsiF/U01sT1DKkE+ZJ3OO42UsL118PZZ7tS5G4TIChbhQFqaCwWxrK1xnRfec+FIMKGETKpdbzGO1KKMCwRmxCrh8D2Vrm2xzMTb77ozTw/9DwP73p43tf+0rYvUU2qvPGiN8772ouVjWs38n9e/D+kOu12KFPy4HMPoq3m1rO8qPV0lx4Ttd0vO66jiYsVBs+5koPrLyQgIhTtE9n790N/v3NejWSCCANEMorWDWcOFVTatpZncnKlABkI4npGmryU9VJKEYbhuKiNoogwDAmCYErH4uMhbmQkjQwVSvIl73C8UFAKbrwR1q1bKMJWUrIKLey4sNVB0KPZ2jJYEEnnZyjlgwCiZdRtjsz0kPj3eGbB685/HZGK+MwTn5n3tT/7k8+ysriSTes2zfvai5VN6zZRS2s8tuexbocyJQ9sf4ByVOaq067qdiieJU6PiVrZ1bJjtfcZxOhBcjLksV/9S/Zeeh050T6RvW+fE7S33w75vMUmKcImmLSODhQyKCPl1HNPPe1BCJcdHcvYxo1sXkq5Jo7sCXPKCVpfwrWgCALniHz66a7nvduESApWkQlLHY0VzjSq53prVYCN8sikDqbzgjwf5AnCFQSzMGrzeHqJZfllbD5rM5994rOYeaxEqKd17vnpPfzMBT9DIL07f7tY6H211lru334/N555I6Hy+1NPd+mKQhRCvFEI8YQQwgghNszhiR2Manp02uD6372V6/78l4isILENQnIo0Z438d69sHy5E7SFAtgkAZMiSMhEAlGJICi3ZS3PzAjh+ljDnCKLNY3RlCzt3GZbp62RPZkb2RP5kT0LljCEW291wnbXru5rxxySgpWkLWGrlQQhUN2eQzRHXG8tyA731oJ7f6su3iD1eDrJmy96M7tGd/HtHd+etzW/+MwXqaU13nzRm+dtzaXA6tJqLlh5wYKdV7t9cDvPDT3n+2k9C4JuXdUfB94AfKNL688JjaUaBTz6n/6Sn77zT0ioA5aoTVna3bth9WpXclwouO/ZOIZ4FC1TbFQkCPq6mqVeqkSFgHzJ3biIaxmN0YQ01pg2lS3qzNCspTRrrl8mX/Eje3qBMIRbboH16xeKsFUvCVth0EoijEH00ogfqbBR3o33mYdsrcezWLnzvDvJB3k+8/j8lSB/9onPsrq0ejyz6Gkfm9Zt4psvfrOr84en4t6n7wWc87bH0226opKstU9aa3/ajbXnhLWs/cJfsewRZ48//Io7GD3tvFaWNo8SJ5ZNM8a5qa5d6wRtfoL/kx09BNJgohwyKKJUd2fyLmVUKClUwvFZtkkjozGSUB9JiOspaaIxenbiwRhLlmqSRkZ9JKHZys6GeUWhEqK8w3HPEIZw001w7rmwY0f359hOFLaj0mIFvZmtBWTsnYk9nuOlkqvw6nNezeee/Bx6Hm4Q1ZIaX3j6C9x1wV0o6W/Ktpsbz7yRalLloZ0PdTuUY7j76bu5cNWFnL387G6H4vEs/J7aiQPea7X987t2lnLq1n/kjG/+CyWrkAgS67K0J9pLq7UTtBdc4DI+4YQqZtusYZtVdEFCkPPmUAsAIQRhpChUIidwCwFSCbLUkNQzGqMpteF4XKiOZV/HHo3RhNpwTGMkIa5lpLFGSkFUCCj2RUT5E3NL9nQHpeCGG+DSS52w7bY/kxO2ikzCUCjQ1vSWaZRU2LCASJqgOyfINZam7KHXxeOZI2++6M3sre7lGy90viDu3mfupZE1ePPFvvS4E9y8/maUUHxp25e6HcoRDDYG+frzX+fOc+/sdigeD9BBUSuE+IoQ4vFJHq+dy3EmDngvlweApEMRv0Rxz3Zk0qQeKr7ye1/ke//54wRIjNUkNAnJI8Xx341MEidoX/lKNybkCK8SnWFHDpCJFArO7diXHS8spJLjRk6l/tx4FjeMFFIJLBajX3pYYxFSEETKlTOXQ4r90XjPrhezvY2UcO21cM017n2ddP4jalpyLVdkIwUjyrhREN2uj54DJlcEgTON6gAaS1VkpMKge+h18Xjmwu3n3E4xLPKpxz/V8bU+88RnWFNew7WnX9vxtZYiy/LLuOq0q7hv233dDuUI7tt2H9pqXnv+nLb1Hk/H6JhastbebK29eJLHfxz/UQXQ2bK0aGg/1/+XKzjnE79DLAyUV5JrOQ67LC0nlKWt1Zwp1M03w4YNbkM8jjHQGEQ3a5hchPIzaXsCqSThmGAthRTKEcW+lx6FSkS+FJIrBIQ5hQqkF7KLDCHgiiucgdS+fVDvvNfRtIRIKjZAqIA6GaMmponG0AMiTipMVOxItnZM0AIUdYDy70PPIqUUlbjrwrv49OOfpp527gPpcOMwX3j6C7zpojf50uMOctvZt/HYnsfYP88Vi9Nx90/vZnVpNVeeemW3Q/F4gB4oP56ItRIhEjqRrZVxA4Bk2Woef8cf8eM734OygkLrJRrL0kYnkKU9dMiJ2je8Ac4/f5JfaA5hdEIiDLJQ8WXHHk+Pce658LrXwegoDA52NxaJoCwiSjIiNIYmmhGRUSMjwSxogWujVra2jb21WUvQCqBsAxRe0HoWN++87J2MJqP825P/1rE1PvnjT5LohHde9s6OreGBLWdvAeD+bfd3ORJHohPu23Yfd5x7B9JXE3oWCN0a6fN6IcRO4GrgXiHELN+lEouk3dnaFT/cys3/11rKO5/CYHnitl+iuep0SihEa+MTW7dmJIpzPr4xzuG4XIY3vhHWrJnkl5rDkMVkaKxQhIUVPpvn8fQgp5wCd93l+uT37u1+5a9UIWUb0J9CZIWbaSucwB0lo45eeCJXSpetTWPQ6QkfLsNQawnakhe0niXC9WuvZ/3Aev7hB//QsTX+4Qf/wGUnX8alJ1/asTU8cPmay1ldWs2Xti+MvtqvP/91RuIR7jzP99N6Fg7dcj/+vLX2NGttzlp7krV29l7gttTK1sYnGgSqPgpA9YwLGTz/GtIwN16aVrIBsrXxMVaTHmeWNkmcgcx558FrXwt9fZP9Uh2SOpmCTGcEqoTKt2dckMfjmX+WLYPXv945m+/YAV01IRYCIyWhsZSMpN86kZu37hMuEWZc5I6IlBoZKd0fBdSubG2KoSq0z9B6lhxSSN552TvZ+txWth3e1vbj/2jfj/jenu/5LO08IIVk81mbuX/b/fPiaD0Td//0bgpBgZvX39ztUDyecXqwZqCAtYoTzdZe9d9u5fK/eDsA8cDJPPw7n+fgSadjgJJVR2x8XJZWzDlLOzgIBw44d+ONG490OB4nSyAeQUuLDiQyUwT5Pp+l9Xh6nHze9c5fe62r1KhWuxeLUQqEQLV6VAMEeRRlApa1RG7BSlQrk1sTmhGR0uhmH66UmKiESJPjztYmGGpCI3GCVnpB61li/NLlv0QgAz76yEfbfuyPPvJR8kGen33Zz7b92J5jue3s2zjUOMRjex7rahzWWu5++m5uOesWiuHcqxc9nk7Rg6JWAEWESJlLtra086es//yfjtcC7rn6Dey78k6wFouljkYLS9Eqggkvi7bZnLO0Y+N6CgV405tclnZSjWo0NAYx1pIpCVYhTR4RRrM+L4/Hs3CREi67zPXRx7EzkepKObIQaKXAWMQkI34CBDkUJQL6bOBu7FlBLMx4H27WheytzRVBiOPK1jbR1IVGWeEFrWfJsqayhjdc8Ab+/gd/31bDqOHmMP/8o3/mLRe/hRXFFW07rmdqbjnrFgSC+57prgvy9/d+nxeHX/SjfDwLjp4StVFjmNyh3cwmWxtWB1nzrc8SVIcAWPmjrVzwj++nsO95AF549bvZcfM7QQjqaFJhKVhJdNRL4hyPZ5+lHR2FXbvg8sudYczy5VP8orXQGMRaTRoKUAGBLSKEQOa8qPV4FhNr1rgbXGecAS++6ATufGOVAilQWk+rrAWCEDkucHNWkglLVWhGyYjnM3srBCZXdNnabHYGgRZLjYymMERWUEZ5QetZ0rznFe9hqDnEJ370ibYd859++E/U0hrvecV72nZMz/SsLK7kylOv7Hpf7Sd//ElCGfK681/X1Tg8nqPpKVHbf2Abp37z04AgGq5xzW+/hlWP3QNA4cCLvPKDWxh48tsAVJ7/MRv++M2seMINHt+56ef48j/uoXHymUccs05GKix5K8lxZCZ2PEsrCjNmabV2JYbWuqzMVVdNUW48RmMQmzVJAgtSEQbLIM0QUiCmfaLH4+lFikXXinDLLXD4sGtNmG+0CsBahJld1lUiKKDoa5UnW2FptLK3o2Q00KQYbAdFruutnV22NsMyKl76TC8SjJv9eTxLlVed8SouP/lyPvydD7elH1MbzV89/FdceeqVbDhlQxsi9MyW286+jYd2PsTe6t6urK+N5lOPf4otZ2/xGXrPgqOnRO3gyeez+7o3AaASwFig6X5oDGH1MEF9BIChc6/kGx9+mP0vvw0AXayQ9K8aP9bY3fyktfnJc6xoTcZ6aZk+Szs46ATt5ZdP4248keYIJq2RKAMqIgyXIWWATRJE5LO0Hs9iRQjXjvCWt8Dq1fOftbVSYqWcMVt7NKJVntxnQyotkymAWLie1WGRUSWjiUa3W+COZWuzdMpsrcXSQE8w+lOTfqZ7PEsRIQTvv+79PHYioeUAABYaSURBVH3oaf79qX8/4eP965P/yrbD2/jNa36zDdF55sLPXPgzWCyff/LzXVn/Gy98g92ju30ftWdBImy3503MgbVrN9iPfOTRCd9pIMQI1i4DcrM+jsFSa/XQFibJ0ILL0tbsYSJRJC/Kkx6n2XTZlpNOckZQK1fOYvGkjqkfIhUx5PtbgjbEpinZ4UFUXwVZKMz6XDweT29iDGzfDt/4hqv0OOkk14PbaYQxqDTFBIEzkDoBLJZswkMLdz2RQGAFAZIAceLlv9aiqoewUmFKA0f8KMO5NxvcyKL8LMuNd++GO++EU04Rj1lrfbrpBNiwYYN99NFHZ/5FT9fQRnP+/zyf/lw/j/zfjxy3GaW1lis+dgX1tM5PfuUnKOlvHs0n1lou/P8uZE15DVt/Yeu8r/+L//GL/MtP/oV9/3WfN4nydBQh5n5t7qlM7bHkW721s7cV1ViqIhs3hZpM0MIEx+NJsrRZ5vpmq1VXSvj6189S0KZNJ2hptATtAFK6UmObuAyEz9R6PEsDKeGcc+Ctb3XZ2127XNVHpxnL1so5ZmsnY6z/toCi0urBHXNRTifMwx0RKXUy4uOdhzshWytSl9o2WOpkVIUrpyxZRRFvCOXxTIaSit++7rd5bM9j/NuT/3bcx7n7p3fzg70/4H3Xvs8L2i4ghOCuC+7i6y98nf21/fO69mBjkE89/ineevFbvaD1LEh6XNQKoIQQGbNxQk4xjIoMi9sAHW0KNUZmUzJicqKIFBOckLVzL92/HzZsgLe9zW1KZ5VdyRJM/SCprUNhgChajpTB+I9NkiDCAHGCmROPx9NbFIuu0uOuu6BcdiXJtRObWDYjRimwFjnL3trZIie4KPcfNSooFZbGBJE7135cGxZAKUQ8StNmjArXPpKzkooNCHv9cubxdJi3X/p2Llp1Eb/11d8iPY4xWZnJeP9X3895K87j7Ze+vQMRembDXRfehbGGz/3kc/O67sd/8HGaWZNfecWvzOu6Hs9sWQS7gJmztWP9VrXWeIeZNkCJrSGQ41naMTG7dy+cf74Tsxs2QG62Fc9ZgqkdINXVcUErJhhPWWOwSeqztB7PEmb1aueY/upXu2qQnTuh0ejMWu3M1k5HMInIzVuJbI0LmtiPG8/UjysEjXyJEZsSp7Xxz/ICyptBeTyzQEnF/7j5f/DM4Wf4yMMfmfPz/+57f8dTB5/ij27+I4IJN+U988slJ13CpSddysce+xjz1UJorOGjj36Ua06/hstOvmxe1vR45soiELUTs7XNY35qsFTRxLMc75DZhIyEnChijBgXs+ee68oEr7sOKpU5hJc2MbX9pHoUigNEuRVHCFp4qfRYelHr8SxppIQzz3RGUjfe6ERtp8Rtp7K10xHgel7LBPS35uFGVmJarsqjR5QqaxIMMYY62n0/VIggotJsUjYC5cWsxzMnbj/ndl59zqv53Qd/l+cGn5v183aN7OL9X3k/m9Zt4s7z/HzSbiKE4N0b3s0P9/2Qh3c9PC9rfubxz/DM4Wf49St/fV7W83iOh0UgauGlubVVmHCnP8GNnhjrn53NeIemrZImkgN7CuzbBxde6DKz118P/f1zCMla53JcP0BqalBcThgdK2jBiVohhc/UejweAILA9dm+7W1O3DabTtxWZ28fMCPzla2dirF+3GLLVXliP27SErl1oWkITSIM0gpKVlHKLSNEIJttfDE8niWCEIK/uf1vkELyi3f/IpnJZnyOtZZfvveXSXTC397xt8dtMuVpH2972dsoR2U++uhHO75WohN+98Hf5ZKTLuGNF72x4+t5PMfLIhG1ABWE0ECDDEOVjHqr3LjPBlP2z45hLRwaitm5OyOplrjmasHP/zxccw309c0xlLQJtQOYeJhUJC1Be2QP7RFrx7EXtB6P5xjC0Inbn/1Z2LwZlIIdO+DQIeeefKJ0I1s7FRP7cZe1RG7FOvOpZTakTKttRCpMVEKk8bhplMfjmT2n95/OX9/213zt+a/xGw/8xoy///vf/H2+8PQX+IOb/oCzl589DxF6ZqKSq/ALl/4C//vH/5ufHPhJR9f6yMMf4dnBZ/nDm/7wCJ8Zj2ehsSiaIiwWTUhmA1IxgkYhkFOO65lIHMPhw65vtn9NlVuvUly8vsBx+TVlMcRV0AlGQBoKUH0tl+MpBG2aYo31pccej2dKlIL1611p8r598OMfw7Ztbu7tihWQzx/fcSdma42U7oALhOnaRGyuiM1iZGMErVbMzywkj2cR8Y7L3sH393yfv3joLxgoDPCB6z8waQb2Y499jA88+AF+7pKf472vfG8XIvVMxQc3fpBP/viTvOeL72Hr27d2JIP+rRe/xfu+8j7uOPcObjv7trYf3+NpJz0lai1uJI8Tse7PesJsRCgSMETBNojon7LUOE3d6Iwkcc6jGzbAKWvryIKmP9c/d0GrU4hHnaiVCpMrkRIDwbSCFsDErVE+s3ad8ng8SxUh4OST3ePqq+HZZ+GHP3TzsvN5GBhwpctzQStFkKZO2M71yd1CCEyhgqoNIpujmOJcekM8Hg/Ahzd/mKF4iA9+7YP8eP+P+cOb/nA8E/vC0Av83td/j7//wd9z61m38nd3/J0vO15grCqt4g9u+gPefe+7+ZV7f4U/2/xnFMJCW46dmYxPP/5p3vul93LmsjP5p9f/k//39yx4emQH4zDCMiqO7P9QVhBZSYAgIEBSRog61ibAS0IxSWBoyH2NIudifNZZznEUYTjcrBOIiJyag7jUGSSjrtxYSMhVMEFImo0AzChoAWzaGuXjMw0ej2cOlMtwySVw8cVuzNgzz8BTTznn5Hweli2bpcAdy9Yag7F2QWVrp0WFmFwJ2awh0iY2PM50tcezRAlkwMdf+3HOW3EeH/rGh/jcTz7HSaWTUFKxZ3QPUkjed+37+NCNH/JuxwuUd738XWw/vJ0//c6f8vEffpzT+k4b/7c62hl54vi0mX62c2QnsY656rSr+OfX/zPL8ss6eBYeT3sQ82UH3g7OWLvB/vlHHkbgStMmd760wCEsUKsuZ2REYq3b5J17rivfW72aI7Kxo8kojazBQH6AUIYzB2K0y8ymDbcBDIsQlTGkpOkwCEkYLJtZ0BpDduAgslRClUtzeCU8Ho/nWNLUlSc/84wrT84yJ2wHBmYYQWYMQZpilOqdbG0LWRtE6AxdXg5y9mU2u3fDnXfCKaeIx6y1GzoY4qJECPEu4F0AZ5xxxstfeOGFLkfkORH2jO7hEz/6BE8dfAqAMwfO5Bcu/QVO7z+9y5F5ZsPXnv8a9z59LztHd2LsSx4JR1csTsy2TvezNeU1XHXaVbzhgjf4PlpPVxBi7tfmnhK1a9dusB/5yKNT/rxeh9FRyLIEpQZZuTLHWWct45RTYPnyyduuUpMy2BykEBSoRDPM6sliSGruqxAQFiAqg1Ro3STLRhBCEYbLJnU5PhrTaKBHRgmWDyDCWYhpj8fjmSVZ5sqSX3zRidwx5+Ri0Y0lO1q7qjRFWEsWhr2TrQXQGao2iJUKUxqYdexe1LaPDRs22Ecfnfra7PF4PB7PXDgeUdtbt+QnoLUTsdWqcwG11gnXl70MTj01YmCgQhCMolSVIChPeZxqUkUKSSmcIlNqLaR1SOpgMldmHJXco5UV0LpOlo0iRNgStLO7q2XjGKGkF7Qej6ftBAGsWeMeV14JIyOuTPm555zQzVqdHIWCK2WOgh7srQVQAbrYj6oNIRvDmKIvk/N4PB6PZ6nRQzsXx65d7qtSzizlggtcOfGxDqBF0jRD6xogCIJjRWsja5CalEpUOba8QmeQ1lyJsbWgIigsgyA/ngmw1pJloxjTQMocQdA/60Z6ay0mSZCF9jT1ezwez1QI4eZs9/fDOee4G4FDQ3DwoJt/u2MHNBqSUEsUhqDPUiwJeuZ+WxBhCmVko4psjGIKM1TdeDwej8fjWVT0lKitVGDLFmeA0tc38xSHMOwjTS1aVwF7RMZWG001qRLJiELQEpbWutLitO6+AoR5V2KsjtzdWWtI0yGsTVGqSBDMbRNlkwSsdz32eDzzj5SusmX5cuc1AFCrweChgMO7EvYc1Ow6EJAkLz0nl3M3DgsFjm/kWYexURFjDDKuI8ELW4/H4/F4lhA9JWrzeVi3bsI3jIGsCSZ15k1Gu+8LAQgQgsBaMhOj7ShWRARBBYFgNB4Gk1CO+qF+uPX8Vj2ekJArOwOoSYxHXP/sKE4o96PU3F03bbOJkMLPp/V4PAuCUglKJcEpqxQXpQZZtjSagpERV7p84IArXz50yBlSgbsPKKUTvGOPbmZ3bb6MASdsrcEU+nqrP9jj8Xg8Hs9x0VOidpyJhk3gNi0yPFaAWouwhlDkybRG61GStEpqFYnRlMMSAaK1M1MQ5NxDRcdshKy1GBOjdQ1rM4QICYK+GR2OJ8Nai00Sn6X1eDwLDpFT2NRgY02xGFAsulaPsYyutdBsOj+Deh2Gh+HwYTf7e3jY/Wzs43PMhzAMj310aoqZE7YCGdeQdsgJ2zm4Ins8Ho/H4+k9uiJqhRB/AtwBJMB24J3W2qEZn5hlLquaxS8ZNoWFY0qDJyMApEmJkyFG44MokSNXWoWVuUmdiq21WJthbYoxKcYkgEEIddzZ2fFjpynWWKQXtR6PZ4EhpEBEEptobKQQ6uixD64EeSo7gCyDRsM9mk0nfEdGnAgeGXFlzocPO8E7cSzumAAWwplcKeW+jv157DEbMWzzJYxSyMYIqnoYky9hw4LP2no8Ho/Hs0jpVqb2y8BvWWszIcQfAb8FvG+mJ1mdYpt1RHnAlQbPcYMiREADhVIVKkGuVUI8CogjHIstgDVjfwIkUuZQKoeUJy5EbRy76mhfeuzxeBYgIlLYxGDjDFGcWz1xEDj/g8oMLa1pCnEMSXLkY0wQj4nisa+1mvu5eWkE4zGXgCMn1OWRhETpCMpUEUEdogJEESIIx92fPR6Px+Px9D5dEbXW2gcm/PW7wF2zeqJUaFsgiKYYvzMDo+komcnoL6wip3IYk2FtgrUaOz6s2iIQCCkRIkTKcFYzZ+eCjWNkFM3aKdnj8XjmEyGFK0OOM2xmEEH7a4XHypDnitYuG3z0Y+z7Wr/05zhWaD1AUkvIqjWyRo0sq5FpWL4yoJD34388Ho/H41kMCHvkre35D0CIe4DPWGs/McXP3wW8q/XXi4HH5yu2LrISONjtIOYBf56LC3+ei4ulcp7nWWu9VfIJIIQYBX7a7TjmgaXynvDnubjw57m4WCrnOedrc8dErRDiK8DJk/zod6y1/9H6nd8BNgBvsLMIRAjxqLV2Q3sjXXj481xc+PNcXPjzXFwslfPsJEvlNfTnubjw57m48Oe5uDie8+xY+bG19ubpfi6EeAfwGuCm2Qhaj8fj8Xg8Ho/H4/F4jqZb7sdbgN8ENlpr692IwePxeDwej8fj8Xg8vU+HJgXOyEeACvBlIcQPhBB/M8vnfayDMS0k/HkuLvx5Li78eS4ulsp5dpKl8hr681xc+PNcXPjzXFzM+Ty7bhTl8Xg8Ho/H4/F4PB7P8dKtTK3H4/F4PB6Px+PxeDwnjBe1Ho/H4/F4PB6Px+PpWXpO1Aoh/kQI8ZQQ4kdCiM8LIZZ1O6Z2IYTYIoT4qRBimxDi/d2OpxMIIU4XQjwohPiJEOIJIcR7ux1TJxFCKCHE94UQX+h2LJ1CCLFMCPG51vvySSHE1d2OqRMIIf5L6//s40KITwkh8t2OqV0IIf5eCLFfCPH4hO8tF0J8WQjxTOvrQDdjbAdTnOeivabMJ4v5dfTX5sWHvzYvHvy1ubevze28LvecqAW+DFxsrb0EeBr4rS7H0xaEEAr4n8BtwIXAW4UQF3Y3qo6QAf+PtfZC4CrgPYv0PMd4L/Bkt4PoMH8JfMlaez5wKYvwfIUQpwK/Dmyw1l4MKOAt3Y2qrXwc2HLU994PfNVaew7w1dbfe52Pc+x5LsprShdYlK+jvzYvWvy1eRHgr82L4tr8cdp0Xe45UWutfcBam7X++l3gtG7G00auBLZZa5+11ibAp4HXdjmmtmOt3WOt/V7rz6O4D9lTuxtVZxBCnAbcDvxdt2PpFEKIfuB64H8BWGsTa+1Qd6PqGAFQEEIEQBHY3eV42oa19hvA4aO+/VrgH1t//kfgdfMaVAeY7DwX8TVlXlnEr6O/Ni8y/LV50fH/t3f/IHKUcRjHvw/GGE20UQjRKEkhNhZGECRaBJNCJCSdNmJULCwsLGyihQgRG5F0NqJNoiIaNIWCSBpBlCCCojaimFzIP0QUFEX0Z7F7GE6Meuzcm3n3+4GF3bkrnttb7rnfzDszdvOIzbKXRzfULvEg8E7rEDNyDXD8nNcLdFooi5JsArYAH7VNMpj9TO7H/EfrIAPaDJwFXpou5XohydrWoWatqk4AzwLHgJPAD1X1bttUg1tfVSenz08B61uGWSE9dUpLPb2PdnN/7OZO2M1z0c3/uU8uyKE2yXvTtfFLH7vP+Z4nmCyXOdguqZYryTrgDeDRqvqxdZ5ZS7ITOFNVH7fOMrBVwM3A81W1BfiJ8S+F+ZvpOSu7mfyjcDWwNsm9bVOtnJrc+63r+7/ZKf/Obu6f3dwNu3kO9N7N/7dPVg0bZ3mqasf5vp7kfmAnsL36udHuCeDac15vnG7rTpKLmZTmwao61DrPQG4DdiW5C1gDXJHkQFX19sd2AVioqsU9+q/TYXECO4BvquosQJJDwFbgQNNUwzqdZENVnUyyATjTOtBQOu2UmbObAbt57OzmvtjNnXbzcvrkgjxSez5J7mSybGRXVf3cOs8MHQWuT7I5yWomJ7ofbpxp5pKEyTkeX1bVc63zDKWq9lbVxqraxOR3eaTD0qSqTgHHk9ww3bQd+KJhpKEcA25Nctn0M7ydDi+6scRhYM/0+R7grYZZBtNxp6yojt9Hu7kjdnN37OYOu3m5fZKx7UxN8hVwCfDddNOHVfVww0gzM91zuJ/J1dterKqnG0eauSS3A+8Dn/HX+SyPV9Xb7VINK8k24LGq2tk6yxCS3MTkghurga+BB6rq+7apZi/JU8A9TJbCfAI8VFW/tk01G0leAbYBVwGngSeBN4HXgOuAb4G7q2rpBStG5R9+zr102ikryW4eN7u5P3bz+M1DN8+yl0c31EqSJEmStGh0y48lSZIkSVrkUCtJkiRJGi2HWkmSJEnSaDnUSpIkSZJGy6FWkiRJkjRaDrWSJEmSpNFyqJUkSZIkjZZDrdSJJLck+TTJmiRrk3ye5MbWuSRJmld2s7QyUlWtM0iakST7gDXApcBCVT3TOJIkSXPNbpaG51ArdSTJauAo8Auwtap+bxxJkqS5ZjdLw3P5sdSXK4F1wOVM9gpLkqS27GZpYB6plTqS5DDwKrAZ2FBVjzSOJEnSXLObpeGtah1A0mwkuQ/4rapeTnIR8EGSO6rqSOtskiTNI7tZWhkeqZUkSZIkjZbn1EqSJEmSRsuhVpIkSZI0Wg61kiRJkqTRcqiVJEmSJI2WQ60kSZIkabQcaiVJkiRJo+VQK0mSJEkarT8BnZjdPlHDXoYAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 -1.6999999999999997 -1.3316648104524687\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5yU9bX48c/3aVO271IVEQQFRUEMlmtJRGLXWGIsSRTTjDEmuSb3ei2/ezW58abcGI0aTbxJNCqmWYhgQYlijQUFbCA2QBQRFtgy7Wnf3x/P7LILCyzbntnd83695rU7szPzHJbZ3efMOd/zVVprhBBCCCGEEEKI/siIOwAhhBBCCCGEEKKrJKkVQgghhBBCCNFvSVIrhBBCCCGEEKLfkqRWCCGEEEIIIUS/JUmtEEIIIYQQQoh+S5JaIYQQQgghhBD9lhXnwZVSK4AmIAB8rfW0OOMRQgghhBBCCNG/xJrUFk3XWq+POwghhBBCCCGEEP2PtB8LIYQQQgghhOi3lNY6voMr9T6wEdDAb7XWt3ZwnwuACwDKyso+NXHixL4NUgghxID18ssvr9daD407jv5syJAhesyYMXGHIYQQYoDoyt/muNuPD9daf6iUGgY8ppRaprV+qu0dionurQDTpk3TCxcujCNOIYQQA5BSamXcMfR3Y8aMQf42CyGE6Cld+dsca/ux1vrD4sdPgPuBg+KMRwghhBBCCCFE/xJbUquUKlNKVbR8DhwDvB5XPEIIIYQQQggh+p8424+HA/crpVriuFtr/UiM8QghhBBCCCGE6GdiS2q11u8BU+I6vhBC9Cee57F69Wry+XzcofRLyWSSUaNGYdt23KEIIYQQoofFPShKCCFEJ6xevZqKigrGjBlDscNFdJLWmvr6elavXs3YsWPjDkcIIYQQPUz2qRVCiH4gn89TV1cnCW0XKKWoq6uTKrcQQggxQElSK4QQ/YQktF0n3zshhBBi4JL2YyGEEEIIIYQoIc1uM6sbV7M+u57GQiONhUYa8g1kvAyhDgnCIPqoo4+GMkiYCZJWkqSVJGFFnyfMBGk7TWWikqpkFdXJaqoSVSSt5IB6w1eSWiGEEJ2ydu1aLrnkEp5//nlqampwHIdLL72U0047jQULFnDKKacwduxYCoUCZ599NldddVXcIQshhBAlK+/neXPdm7y29jVe++Q13lz3JqsaVrG6cTUNhYZePbZt2FQlq6hKVLVLdmuSNdSkatp9rE3VtrutOlmNZZRWGlla0QghhChJWmtOPfVUZs6cyd133w3AypUreeCBB1rvc8QRRzB37lwymQz7778/J598MgcccEBcIQshhBAlpanQxBMrnmDBigU8ufJJlny8hEAHACStJHsP2Zu96vbiqLFHMapyFLtW7MrQsqFUJapaK61pO42pTEzDxFQmhjIwDZMgDCgEBfJ+noJf/Fi8nvWyNOQbaCg0tPu4Kb8p+rx4fXnzcjblN7Exv5Gsl93uv6XCqeg46d1BUlydrMY0zB7/3kpSK4QQYocef/xxHMfhwgsvbL1t99135zvf+c5W9y0rK+NTn/oU77zzTrukdsGCBVx11VVUV1fz2muvceaZZ7Lffvvxq1/9ilwux+zZsxk3bhzr1q3jwgsvZNWqVQBcf/31HHbYYbz44ot873vfI5/Pk0qluO2225gwYQK33347DzzwANlslnfffZfTTjuNn//8573/TRFCCCF2YENuA/e+eS+z35rN/Pfm4wYuCTPBv+z2L1x2+GVMGT6F/Ybvx/ja8d2qfhqmgW3alDvlPRJ3wS+wMb+RjbmNW33ckNsQfd7m9rfWv9V6PefntvvclYnKrZPe4vWrPtO1Li9JaoUQoh868sitbzvzTLjoIshm4YQTtv76+edHl/Xr4Ywz2n9twYLtH++NN97odNW1vr6e559/nv/8z//c6mtLlixh6dKl1NbWsscee/D1r3+dF198kV/96lfceOONXH/99Xzve9/jkksu4fDDD2fVqlUce+yxLF26lIkTJ/L0009jWRbz58/niiuu4N577wVg8eLFLFq0iEQiwYQJE/jOd77Dbrvt1ql4hRBCiJ6kteaJFU/wu1d+x31L76MQFBhbPZaLD7yYkyeczCGjDiFpJeMOc7sSVoIR5SMYUT5ipx+b9/MdJsPbSoqXrl/a+vUfTf9Rl+KVpFYIIcRO+/a3v80zzzyD4zi89NJLADz99NNMnToVwzC47LLLmDRp0laPO/DAAxk5ciQA48aN45hjjgFgv/3244knngBg/vz5vPnmm62PaWxspLm5mYaGBmbOnMnbb7+NUgrP81rvM2PGDKqqqgDYZ599WLlypSS1Qggh+lQQBvztzb/x02d+ypK1S6hOVvON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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_2.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1 10.20000000000001 1.3401253124064523\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_4.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2 11.950000000000012 1.8119225385829674\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_6.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3 11.950000000000012 1.8119225385829674\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZxcVZ3w/885997aq3rLTjaSQAhhSSAJOwPEwRnHnzrgMqgj+IzDOCo6zqM8OIwv8XngURyXUZnBB8d56Qw44gLOiCOKQCABMYQQCCEBwpIQCEmnl+qu9S7n/P6o7iaB7Onu25X+vl+veqVu1a1zvlXp6q5vnXO+R1lrEUIIIYQQQgghmpGOOwAhhBBCCCGEEOJwSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpuXF2rpR6CegHIiC01i6JMx4hhBBCCCGEEM0l1qR2wIXW2l1xByGEEEIIIYQQovnI9GMhhBBCCCGEEE1LWWvj61ypF4EewAL/z1p7y17OuRK4EiCbzZ5+wgknjG6QQgghjlqPPfbYLmvtxLjjaGYTJkyws2fPjjsMIYQQR4nD+dsc9/Tjc621ryilJgH3KKU2WWsf3P2EgUT3FoAlS5bYNWvWxBGnEEKIo5BSakvcMTS72bNnI3+bhRBCDJfD+dsc6/Rja+0rA//uBO4ElsUZjxBCCCGEEEKI5hJbUquUyiql8oPXgYuBp+KKRwghhBBCCCFE84lz+vFk4E6l1GAcP7TW3h1jPEIIIYQQQgghmkxsSa219gXg1Lj6F0KIZhIEAdu2baNWq8UdSlNKpVJMnz4dz/PiDkUIIYQQwyzuQlFCCCEOwrZt28jn88yePZuBGS7iIFlr6erqYtu2bRx77LFxhyOEEEKIYSb71AohRBOo1Wp0dHRIQnsYlFJ0dHTIKLcQQghxlJKkVgghmoQktIdPXjshhBDi6CXTj4UQQgghhBBNqxbWuPeFe3m682mWHbOM82edL19mjjMyUiuEEOKg7Nixg/e///3MmTOH008/nbPOOos777wTgBUrVtDS0sKiRYtYsGABX/ziF2OOVgghxHjwfPfznPEvZ/D2/3g7V//2ai74wQWc+b0z2VXZFXdoYhRJUiuEEOKArLW8613v4vzzz+eFF17gscce40c/+hHbtm0bOue8885j3bp1rFmzhltvvZW1a9fGGLEQQoij3av9r3LW987i5eLL/PjdP2bHZ3Zwy9tv4ckdT3LRDy6iq9IVd4hilEhSK4QQ4oDuu+8+EokEH/3oR4dumzVrFlddddWbzs1ms5x++uls3rx5j9tXrFjBH/zBH/DOd76TOXPmcM0113DbbbexbNkyTj75ZJ5//nkAOjs7ufTSS1m6dClLly7loYceAmD16tWcddZZLF68mLPPPptnnnkGgO9///tccskl/NEf/RHHHXccV1999Ui9DEIIIcaIyER88I4PUg7KrPofq3jPwvcwKTuJvzz9L7nrsrvYtGsTn7z7k3GHKUaJrKkVQogmdMEFb77tve+Fj30MKhV429vefP8VVzQuu3bBu9+9530rVuy/vw0bNnDaaacdVGxdXV088sgjfP7zn3/TfU888QQbN26kvb2dOXPm8JGPfITVq1fzzW9+k29/+9v84z/+I5/61Kf49Kc/zbnnnsvWrVt561vfysaNGznhhBNYuXIlruvy29/+lr/7u7/jZz/7GQDr1q3j8ccfJ5lMMn/+fK666ipmzJhxUPEKIYRoPt9Z8x3uf+l+/vUd/8qJE0/c477lc5Zz7XnXct0D1/HBkz/IHx/3xzFFKUaLJLVCCCEO2cc//nFWrVpFIpHg0UcfBWDlypUsXrwYrTXXXHMNCxcufNPjli5dytSpUwGYO3cuF198MQAnn3wy999/PwC//e1vefrpp4ce09fXR6lUolgscvnll/Pcc8+hlCIIgqFzli9fTktLCwAnnngiW7ZskaRWCCGOUpWgwvUrr+f8WedzxaIr9nrONedew+0bbueTd3+STXM34WhndIMUo0qSWiGEaEL7G1nNZPZ//4QJBx6ZfaOFCxcOjYoC/NM//RO7du1iyZIlQ7edd9553HXXXfttJ5lMDl3XWg8da60JwxAAYwyPPPIIqVRqj8d+4hOf4MILL+TOO+/kpZde4oLdhqt3b9dxnKG2hBBCHH1ufvRmXiu9xu3vvn2fVY6TbpL/c+H/4d0/eTd3bLyD9yx8zyhHKUaTrKkVQghxQBdddBG1Wo2bb7556LZKpTIifV188cV8+9vfHjpet24dAMVikWOOOQZorKMVQggx/gRRwNd+9zWWH7uc82edv99z33XCuzi+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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_8.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZicZZXw/+/9LLVXV+8dQpYmEUIIkIUEREAQFHHFAUFHZsSZV3kdhddRRwT5oeCIqIO4oDMO8847OhI3QFRwYxMmLBICBNkJS5aGLL3WXs96//6oriYhnfSSTqorOZ/rqitdTz1VdbqvdHWdOuc+t9JaI4QQQgghhBBCNCKj3gEIIYQQQgghhBCTJUmtEEIIIYQQQoiGJUmtEEIIIYQQQoiGJUmtEEIIIYQQQoiGJUmtEEIIIYQQQoiGJUmtEEIIIYQQQoiGZdXzyZVS64E8EAC+1np5PeMRQgghhBBCCNFY6prUDnuL1rqv3kEIIYQQQgghhGg80n4shBBCCCGEEKJhKa11/Z5cqZeBQUAD/661vn6Ucy4ALgBIJpPHHH744fs2SCGEEPutRx55pE9r3VHvOBpZe3u77u7urncYQggh9hOT+dtc7/bjE7XWryilOoE7lFLPaq3/Z/sThhPd6wGWL1+u16xZU484hRBC7IeUUhvqHUOj6+7uRv42CyGEmCqT+dtc1/ZjrfUrw/9uA24Bjq1nPEIIIYQQQgghGkvdklqlVFIpla59DZwOPFmveIQQQgghhBBCNJ56th93AbcopWpx/ERr/Yc6xiOEEEIIIYQQosHULanVWr8ELK7X8wshRCPxPI+enh4qlUq9Q2lIsViMWbNmYdt2vUMRQgghxBSr96AoIYQQ49DT00M6naa7u5vhDhcxTlpr+vv76enp4ZBDDql3OEIIIYSYYrJPrRBCNIBKpUJbW5sktJOglKKtrU2q3EIIIcR+SpJaIYRoEJLQTp787IQQQoj9lyS1QgghhBBCiGnhxYEXufGpG+sdhmgwktQKIYQYl61bt/KhD32IefPmccwxx3D88cdzyy23AHDPPfeQyWRYsmQJCxcu5Morr6xztEIIIRrRFfdewbk3ncudL91Z71BEA5GkVgghxJi01rzvfe/jzW9+My+99BKPPPIIP/vZz+jp6Rk556STTmLt2rWsWbOGG264gUcffbSOEYu9SSl1gVJqjVJqTW9vb73DEULsJ7TWI8nsBbdeQMkr1Tki0SgkqRVCCDGmu+++m0gkwsc//vGRY3PnzuWiiy7a6dxkMskxxxzDCy+8sMPxe+65h5NPPpkzzzyTefPmcckll7By5UqOPfZYjjrqKF588UUAent7Ofvss1mxYgUrVqzg/vvvB2D16tUcf/zxLF26lDe96U0899xzAPzwhz/krLPO4owzzuDQQw/l4osv3ls/BjFMa3291nq51np5R0dHvcMRQuwnnup9ii2FLXx48Yd5eehlbvjLDfUOSTQI2dJHCCEa0Cmn7Hzs3HPhE5+AUgne+c6db//IR6qXvj54//t3vO2ee3b/fE899RTLli0bV2z9/f38+c9/5vLLL9/ptscff5xnnnmG1tZW5s2bx0c/+lFWr17Nd77zHa677jq+/e1v86lPfYpPf/rTnHjiiWzcuJG3v/3tPPPMMxx++OGsWrUKy7K48847+cIXvsDNN98MwNq1a3nssceIRqMsWLCAiy66iNmzZ48rXiGEENPDHS/eAcA/v+Wfufnpm3lq21N1jkg0CklqhRBCTNgnP/lJ7rvvPiKRCA8//DAAq1atYunSpRiGwSWXXMKiRYt2ut+KFSs46KCDAJg/fz6nn346AEcddRR/+tOfALjzzjt5+umnR+6Ty+UoFApks1nOP/981q1bh1IKz/NGzjnttNPIZDIAHHHEEWzYsEGSWiGEaDB3vnwnC9oWMCczhwXtC3i2/9l6hyQahCS1QgjRgHZXWU0kdn97e/vYldnXW7Ro0UhVFOD73/8+fX19LF++fOTYSSedxG233bbbx4lGoyNfG4Yxct0wDHzfByAMQ/785z8Ti8V2uO+FF17IW97yFm655RbWr1/PKduVq7d/XNM0Rx5LCCFEYwh1yL3r7+X8xecDsKBtAQ9seqDOUYlGIWtqhRBCjOnUU0+lUqnwb//2byPHSqW9M8Dj9NNP57rrrhu5vnbtWgCy2SwHH3wwUF1HK4QQYv+xrbiNolfkiI4jgGpSuzG7kbJXrnNkohFIUiuEEGJMSil+9atfce+993LIIYdw7LHHcv755/P1r399yp/ru9/9LmvWrOHoo4/miCOO4Ac/+AEAF198MZdeeilLly6VSqwQQuxnNmU3ATA7U106sqB9ARrNuoF19QxLNAilta53DOO2fPlyvWbNmnqHIYQQ+9wzzzzDwoUL6x1GQxvtZ6iUekRrvXwXdxHjIH+bhRBT4ZZnbuGsX5zFIxc8wrKDlrF2y1qW/vtSfv7+n3PuonPrHZ7Yhybzt1kqtUIIIYQQQoi62pQbrtQ2VSu1h7YeCsBzfc/VLSbROCSpFUIIIYQQQtTVpuwmomaU9kQ7AMlIktlNs3muX5JaMTZJaoUQQgghhBB11ZPvYVbTLJRSI8cWtC+QpFaMiyS1QgghhBBCiLralN00MiSq5pDmQ0YGSAmxO5LUCiGEEEIIIeqqJ9czsp62ZkZqBr2lXoIwqFNUolFIUiuEEEIIIYSomyAMeCX/CrOaZu1wvCvZRahDeku9dYpMNAqr3gEIIYSY/vr7+znttNMA2LJlC6Zp0tHRAcDq1auJRCL1DE+IaeehnodojjWzoH1BvUMRYtrbWtyKH/qjVmoBtha2jnwtxGgkqRVCCDGmtrY21q5dC8AVV1xBKpXin/7pn0Zu930fy5I/KUJorbnmgWv4/J2fZ0H7Ap7+xNM7DL4RQuysJ9cDsNOa2loiu6WwhcUs3udxicYh70CEEEJMykc+8hFisRiPPfYYJ5xwAk1NTTsku0ceeSS33XYb3d3d3HDDDXz3u9/FdV2OO+44/vVf/xXTNOv8HQgx9e5Zfw8X33kxizoW8VTvU9z18l28dd5b6x2WENNabRjUTu3HqS6gmtQKsTt1X1OrlDKVUo8ppW6rdyxCCNEwTjkFfvjD6teeV71+ww3V66VS9frPf169ns1Wr//yl9XrfX3V67feWr2+ZfJvFnp6enjggQe49tprd3nOM888w89//nPuv/9+1q5di2marFy5ctLPKcR09scX/4hlWNz7kXvpSHRw3err6h2SENPeK/lXgJ2T2pH24+LWfR6TaCzToVL7KeAZoKnegQghhJiYc845Z8yK61133cUjjzzCihUrACiXy3R2du6L8ITY5/60/k8cd/BxtCXa+Niyj3H1fVezOb+Zg9IH1Ts0Iaat3mIvhjJojbfucDwVSZG0k1KpFWOqa1KrlJoFvAu4CvhMPWMRQoiGcs89r31t2zteTyR2vJ7J7Hi9vX3H6zMmP3wjmUyOfG1ZFmEYjlyvVCpAdY3h+eefz9VXXz3p5xGiEWQrWda8uoYvnPgFAN512Lv46n1fZc2ra3jPgvfUOTohpq/+cj8tsRYMtXMTaVeqS5JaMaZ6tx9/G7gYCHd1glLqAqXUGqXUmt5eGecthBDTVXd3N48++igAjz76KC+//DIAp512GjfddBPbtm0DYGBggA0bNtQtTiH2llUbVxHqkFMPORWAozqPAuDxrY/XMywhpr3+cj9tibZRb5uRmiFJrRhT3ZJapdS7gW1a60d2d57W+nqt9XKt9fLa9hFCCCGmn7PPPpuBgQEWLVrE9773PQ477DAAjjjiCL7yla9w+umnc/TRR/O2t72NzZs31zlaIabe3S/fTdSMcvzs4wFIR9PMa5nHX7b+pc6RCTG99Zf6aYvvOqmVNbViLPVsPz4BeK9S6p1ADGhSSt2gtf6bOsYkhBBiDFdcccWox+PxOLfffvuot33gAx/gAx/4wF6MSoj6W/PqGo6ZeQwxKzZybHHXYqnUCjGG/nL/TkOiamYkZ3DP+nv2bUCi4dStUqu1vlRrPUtr3Q18ELhbElohhBBCNKrn+5/n8LbDdzi2uGsx6/rXUXSLdYpKiOlvd5XarlQXA+UB3MDdx1GJRlLvNbVCCCGEEA0vW8mytbiVw9oO2+H40V1Ho9E81ftUnSITYvobKA/stv0YYFtx274MSTSYaZHUaq3v0Vq/u95xCCGEEEJMxrqBdQAsaF+ww/HFMxYD8PgWaUEWYjSO71D0ijtt51NTS2plWJTYnWmR1AohhBBCNLLn+58H2KlS293cTTqSlmFRQuxCf7kfYJfTj7uSXYAktWL3JKkVQgghhNhDz/c/j0Ixv2X+DscNZTCvZR7rs+vrE5gQ01x/aTip3UX7cXuiHai2KAuxK5LUCiGEEGJCZA/5nT3f/zzdzd1ErehOt81tnsuGIdmbWYjRjFWprbUlS1IrdkeSWiGEEONimiZLlixh0aJFLF68mG9+85uEYbjb+6xfv56f/OQn+yhCsa/IHvI7e67/uZ1aj2vmNM1hQ1aSWiFGM1alNhPLoFCS1IrdkqRWCCHEuMTjcdauXctTTz3FHXfcwe9//3uuvPLK3d5HklpxINBa83z/87tMauc2zyXn5MhWsvs4MiGmv7EqtYYyaIm3SFIrdkuSWiGE2A+tXLmS7u5uDMOgu7ublStXTunjd3Z2cv311/O9730PrTXr16/npJNOYtmyZSxbtowHHngAgEsuuYRVq1axZMkSvvWtb+3yPCEa2ZbCFgpuYddJbWYugFRrhRhFrVK7q+nHtdskqRW7Y9U7ACGEEFNr5cqVXHDBBZRKJQA2bNjABRdcAMB55503Zc8zb948giBg27ZtdHZ2cscddxCLxVi3bh1//dd/zZo1a/ja177GNddcw2233QZAqVQa9TwhGlktWT2k+ZBRb5+TmVM9b2gDR3cdvc/iEqIR9Jf7iVkxEnZil+dIUivGIkmtEELsZy677LKRhLamVCpx2WWXTWlSuz3P87jwwgtZu3Ytpmny/PPP79F5QjSSnlwPALMzs0e9fW5ztVK7Mbtxn8UkRKPoL/fvcj1tTWu8daSiK8RoJKkVQoj9zMaNo79x3tXxyXrppZcwTZPOzk6uvPJKurq6ePzxxwnDkFgsNup9vvWtb43rPCEaSS2pndU0a9TbO5OdRMyItB8LMYr+Uv8u19PWtMZbWde/bh9FJBqRrKkVQoj9zJw5cyZ0fDJ6e3v5+Mc/zoUXXohSimw2y0EHHYRhGPz4xz8mCAIA0uk0+Xx+5H67Ok+IRtaT6yFuxWmJtYx6u6EM5mRkArIQoxlXpTYm7cdi9ySpFUKI/cxVV11FIrHj2qREIsFVV121R49bLpdHtvR561vfyumnn86XvvQlAD7xiU/wox/9iMWLF/Pss8+STCYBOProozFNk8WLF/Otb31rl+cJ0ch6cj3MapqFUmqX58zNzJX2YyFGMVAeGFeldqgyRBDKB6FidNJ+LIQQ+5nautnLLruMjRs3MmfOHK666qo9Xk+7u6rqoYceyl/+8peR61//+tcBsG2bu+++e4dzRztPiEa2Kbdpl63HNXMyc/jDC3/YRxEJ0TgGygO77HKoaY23otFknexupySLA5cktUIIsR8677zz9tpQKCHEjnpyPZw89+TdnjM3M5fNhc04vkPUiu6jyISY/rKVLM2x5t2eU0tkB8oDktSKUUn7sRBCCCHEJAVhwKv5V8es1M5MzwRga3HrvghLiIbg+A5O4JCJZnZ73vZJrRCjkaRWCCEahNa63iE0LPnZib1lW3Ebfugzu2n07XxqZqRmALC1IEmtEDVZJwtAJiZJrdgzktQKIUQDiMVi9Pf3S3I2CVpr+vv7ZfsgsVeMtZ1PTS2p3VLYstdjEqJRZCvDSa1UasUekjW1QgjRAGbNmkVPTw+9vb31DqUhxWIxZs3afdIhxGRIUivE5EmlVkwVSWqFEKIB2LbNIYccUu8whBCvM96ktjPZCciaWiG2N95KbUu8Oh1ZklqxK9J+LIQQQggxSZtym4iYEdoT7bs9L2pFaYm1SKVWiO2Mt1JrGRaZaEaSWrFLktQKIYQQQkzSq/lXmZmeiVJqzHNnpGZIUivEdsZbqYVqC7IktWJXJKkVQgghhJikrcWtI+tlxyJJrRA7Gm+lFiSpFbsnSa0QQgghxCRtLWylK9k1rnO7Ul2yplaI7dQqtelIesxzW+ItktSKXapbUquUiimlViulHldKPaWUurJesQghhBBCTMaWwpbxV2qTUqkVYntZJ0vCTmCb9pjnNkWbRiq7QrxePSu1DnCq1noxsAQ4Qyn1xjrGI4QQQggxbn7o01fqG3eldkZqBgW3QMEt7OXIhGgM2Up2XOtpobrutlbZFeL16pbU6qraq7o9fNH1ikcIIYQQYiL6Sn1oNF2p8bcfQ7VlWQhRrdSOZz0tDCe1UqkVu1DXfWqVUibwCPAG4Pta64dGOecC4AKAOXPm7NsAhRBCiP2QUupNQDfbvQ/QWv933QJqULVW4okMioLqcKn5rfP3WlxCNIqsM4FKbSxDwS0QhAGmYe7lyESjqeugKK11oLVeAswCjlVKHTnKOddrrZdrrZd3dHTs+yCFEEKI/YhS6sfANcCJwIrhy/K6BtWgahXXibQfA7KuVohh2crEKrUAOSe3N0MSDaquldoarfWQUupPwBnAk/WORwghpprWmjDwCcMQtEYZJqZljWtvSyGm2HLgCK21LPnZQ7VJxuNtP5akVogdZZ0s3c3d4zq3lvxmnSwt8Za9GJVoRHVLapVSHYA3nNDGgbcBX69XPEIIsTeEYYBXqeA5Drw+h1AKOxolEk9Iciv2pSeBGcDmegfS6CbaftyeaEehJKkVYthEB0XV7iPE69WzUnsQ8KPhdbUG8Aut9W11jEcIIaaUV6nglEugNVYkihWJYJgmKAiDEN918CoVfNcllkphWmNvaSDEFGgHnlZKraa6EwEAWuv31i+kxrS1sJWEnSAVSY3rfMuwaI230l/q38uRCdEYJjQoartKrRCvV7ekVmv9F2BpvZ5fCCH2Fq01lWKBwHUxbZtoIllNZrdjGCaWbRNEo1QKBcr5PLFUGsuWxFbsdVfs6QPIEMeqrcWt415PW9OeaKe31LuXIhKicbiBS8WvTLhSK2tqxWjqOihKCCGmA6012vfRnocOgj17rDCknM8RuC6RRIJ4ummnhHZ7pmWTaMpgmCaVQh7f8/bo+YUYi9b6XuBZID18eWb42EQeQ4Y4Um0/Hm/rcU17op2+Ut9eikiIxlFLTidcqZX2YzEKSWqFEAckrTVhuYw/OIjf24vfP4A/MIjf14+3bRv+4CBhucxEZumEQUAplyUMAmLpJiKx+LjupwyDeCqNYRhUCnnCPUyshdgdpdS5wGrgHOBc4CGl1PvrG1Vj2lrcOu4hUTWS1ApRVUtOJ7ymVtqPxSimxfRjIYTYl0LXJczn0X6AskyMRAJlmmAYEIbVqq3jEOTyqGIRI5HASCR2+5iB71Mp5AGIp9MTXh+rDINYOk05l6NSyBNPN6EM+dxR7BWXASu01ttgZHDjncBNdY2qAW0tbOXE2SdO6D7tiXZWv7J6L0UkROOoJadSqRVTQZJaIcQBQ4chYT5PWHFQlonZnMGIRkc/OZ2uJr/FIkG+QOg4mOk0ytr5ZTPwPcr5PEqpMduNd8cwTGKpVDWxLRWJp9KTehwhxmDUEtph/Ujn1oT5oU9fqW/CldqORAd9pT601jL1XBzQJlqpjVkxImZEKrViVPJHTAhxQNCuS9DfT+g4GMkkZmvrrhPaYUYkgtXSgtmUBt/HHxggLBZZuXIl3d3dGIbB/EMOYeWPfoRhGMSbqgmtH4SU3YBcxaO/4NBXcOgvOGTLHhUv2G1Ls2lVB0sFrotbKU/1j0EIgD8opf6olPqIUuojwG+B39U5pobTX+pHo+lMdk7ofu2JdrzQk2E34oA30UotVBNgqdSK0UilVgix3wsrFYJcDmUYWM3NqO0mDIdhiO/7BEE12awlnIZhYBgGpmliRKOY0ShhPs9NP/4xn/vc59hSKGBbJv1btvD5z3+eQBmcedZZOL4mwESjMZVBxLawLYtQaxw/oOIFKAWpqEXcNket1NixGIHv45ZKmJYlW/2IKaW1/pxS6mzghOFD12utb6lnTI2oNsG4IzGxQVntiXYA+kp9E3ozL8T+pvbBTlO0adz3ycQyUqkVo5KkVgixXwsKRcJiERWxMTOZkXWqQRDgui7e8LRhpRSGYaDR+KGP53l4vkt5oMy6njQzDgqY++v/x8PX3UxFfZuZXWXOCe8jG9c81pnjhht/wtHHHYNp2ZiWQSQSxYgmqGATCU1SkQjtySheqCk5AfmKT9kNyMRtLHPnpploMkngezjFIvGmjLQpiimltb4ZuLnecTSy2rCnWpI6XtsntfNb5095XEI0ikkltVFJasXoJKkVQuyXtNaE2Syh42LEYxjpNEoptNa4rovjOCiliEQimJaJpz2yRYeBLTme35jkD7fG+F8/PJfeYop361s594Pb+M79P+XtFYtvlc9jMB/jU1zDKk7ivzb+nvlv+CqHffhjFN94EsFnPkvKDNC6ght6lHWMXj9g0HFojsVoTkRx/JBcxWOg6JKMWiSjO74cK6WIJlNU8jnccpnoGIOqhBiLUuo+rfWJSqk8sH0PvAK01nr87yzFlCS1QhzI8k51uGI6Mv75EZmYtB+L0UlSK4TY7+ggIMhm0Z6PmUpiJJNAtdW4XC4TBAG2baMsk01byry8yWH9ejjmP79E9xN3cXTfs4TaIN30QdoONfjgG4dYeGSOh875D77//X9m3gvL2Nobcoo3E9sKiRr/gRsU6NEzuePB+Vxy1AxOP77A/9v0Noz/cxEdZ50KSYvBwKKvWKLoB7Qn4rQno+QqHgXHx/FDmmLWDlVby7axYzG8ShkrYksbstgjWusTh/+VCWRToLc43H6cnFj7ce18SWrFgS7v5jGVScyKjfs+mWiGdcV1ezEq0agkqRVC7Fe051UT2jDcYbpxEASUh/ed9YIof3muwrr71rPwD//FrfO+yKbNzSw97nS2zTiYi5ocWroC0h1nMXt+kbfP3khX0iWiU+T++n188h8/S75cpAC06NV0xn/Dly6/luCUf2Tw54ojby7xxL0DPB8oVl7XwcGbk6yYvYl5kQ3E3roCTym2hCEtiTiZuL1D1TYV23GtbSSewHddaUMWU0Yp9WOt9d+OdUzsXi0pbYu3Teh+tUptbU2uEAeqnJOjKdo0ob9rUqkVuyJJrRBiv7HDQKjW1pHtd2oJbaGgeeJZ+MuzOZSCzqd7WH7797iM9/DszFN58Zz34Bz6DmblKsycX2HBoTkOTpZImTZadWDGmjjv7xZhxFNcdtllbNy4kaZZs7j60ks5+93vQ2fSXPipIu87O8+9v7P54q23s+r+NPN/Be8+/CYO+eWV3HL5/egFc+laGMOdDW4mRrNl0ZaMkq945Cs+RScgFbWI2cYObcieUyESi9f5pyz2A4u2v6KUsoBj6hRLw+ot9dIca8Y2J9ZBkY6ksQ1bKrXigJd386SjE2sckTW1YlckqRVC7Bd2NRAqDEPy+TJPPOmx5gmfJav+LydETL6R/yd+/at38c/pTZx63gw+frLHln6fMFbmmBMKdLfn6EgoLJrwVQIzGieeSqMMg/POO4/zzjtv5Lm17xMMDqJyBZpbmjFnFzj7fIejl+RZ80AeM9rEppmfZnDG4Tw4uIQTnCHCa3/I2u6lpN95HIcvhK4mk+ZEhIoXUBreDqjgKBIRk7htYUYiuOUyViSCYUxuH1xxYFNKXQp8AYgrpWr7ySjABa6vW2ANqq/UN+H1tFBdL9+eaJekVhzw8k5+QutpoZrU5p08oQ4xlOxMKl4jSa0QoqFprQlzOcKKs8NAqJoNG8rccW+eXBm6OiwOX7eKipHm9qcM3vpWOP/8GdjKY8NWj45DChx1aI5ZiSKZVJwgTOAbcaxojGgyucsWKWVZmM3N+IODkMvTlMkAORYeA50dAavvH2JrpYmf5D7IDTfA6mM0v3/hX+g76gT+MGMezz7RzsIlUZYuCulMmsRsE8cPKDkBBcen6PjYpo0ROLilMrFUah/9dMX+RGt9NXC1UupqrfWl9Y6n0fWWeie8nU9NR7JDklpxwMu7+QlNPobqpGSNJu/kZUsssQNJaoUQDUuHYXX9rOvtMBAKIAzhwdVF7n9oG296+L/pfdv5/PnhGbT8043oeIJ/y0ImoylkXV4aLHHYsgKHdw0xIxIQj6fxwiRYEaKJBHZ07CEWyrYxm5oIsjl0oUAmnSFLltbZDqe8DR5+MM8JJ9jYdoIbbkiwMPYUFy7JcWRrgNr2GMYPnmblSX/HicfDMYeZRK3qxQ9Cim6A4wW4oUkpX6QjGsGyI3vzRyv2b6uVUhmtdRZAKdUMnKK1/lWd42oofaU+ZjfNntR9pVIrRHVNbXOseUL3qSWyWScrSa3YgdTtD2BhqAlDPfaJQkxD2vcJBgbQnlcdCLVdQlsuw69+W+S+h3s5NNzA8T//Khsuv5lvfENx/9okKEUmoxnqL7Cl1MeSE/s5sqOfGSrAslP4RhozliCRyYwroa0xYjGMZJKwXEGXSmSiGaJ2hFiryQknKQ6eMcjy5Q7XXqswO9r43PcO4Y+rZvGGu37CW376aeZVXuDu/9GsvDWgr7/6u2mZBpm4TVsqSjqdxAk0m3uHcP1wyn+m4oDxpVpCC6C1HgK+VMd4GlJvcfKV2vZEuwyKEge8ybYfAzIsSuxEKrUHmCDUFF2fihegh/NZpSBqmcRtk4gln3OI6U+7LkG2+gfNamlB2a8Nahkc1Pzyt3m8V59j1ryZvLrtJN7W+iirXj2CCy6A448HHZYZ6M2Sp8DiYyvMNsq0hTGsTBNWupVILDbp7XPMVBICn6BQxLJtMtEMg3oQN6U59liXyOODvPhyB1/7msnPfgZLj4/wbPxaXj3+PUSbLBZFByk+/iI/7F3OW4+zOPpIhWGAaSgy8Qh2a4be/iF6B3O0NaeJ2bK+VkzYaC/08n5gArTWk15TC9Ael6xvNWUAACAASURBVEqtEJMaFLVdpVaI7UkGcwApOD79BYeKGxA1TdIxi3TMImqaOF7AYMllsOjiB1IBEtNX6Lr4Q0OgFObrEtotW0NW/nKIjsd+w0f/vzcT/PYZPn+xySOVRXzlKsW73+2jdS/9W16hRD+LlpWYrTwOijWRmjmLVNds4qn0Hu8Ha6TTKNOoTmLW1U+W7ahFGLNYtsRlwWEDbNum+fCHoaVF4VpxvnTHGTy3qZmux+/kg1e8ieOe+G/uuN/jd3/QlEqvPXYiEae9KQGew1DRoeT6exSrOCCtUUpdq5SaP3y5Fnik3kE1kqJXxAmcSSe1bYk2BsuDBGEwxZEJ0ThyTo6myMTW1EqlVuyKJLUHgDDUDBZdio5P1DJpS0XJJGwSEYtExCKTsOlIR0lFLbwwZKDoUnB8tJbWZDG9aNclGBpCmSbmdlv2ALyyOeBnvx7Ejjp4S05g/el/T9/s5XR1wTXXaBYuGCSorKe/ZyuOGXLkcovuhMXc9i6Sc+cRaW4ZmZi8p5RhYDY1oYOQMJ/HMiyaIk2YUQvfMllydIUjFubo6QGtob8fnnjS4JIrO7ilfDpPf+QKKstPYXZnmU2vFLnxFwG923UqxpJJmqImRuCSr/iS2IqJuojqxOOfD18c4JN1jajB9Barv5Adycm1H7fF29BoqTaJA5bWmoJbkEqtmDKS1O7nglAzUHLxgpCmmE0mYWMaO09wVUqRjFq0J6NELZOi4zNQrN5PiOlABwFBNltNGJubd0hAN73icfONr/Kmu75Fq23w0pYunr7ge7xheRPXfCNHR8t6/Mqr9G3WBPF2jjkpwtyWCLNbOrBbOzBie1aZHY2KRDBTScKKQ1guEzEjpCIpjLiFDyw+Ks/ChRV6eqCzE775TZg7V/G1a9v5qvs53FiUlkof5/zLW5j/Pz/g179weeH56u+jaVnYsRhxFWAbmnyluqRAiPHQWhe11pdorZcPXy7VWhfrHVcjqbUOT7ZS2xpvBaC/1D9lMQnRSEpeiVCHk15Tm3NyY5wpDjSS1O7HglAzUHQJtSaTsIlHxl57ZxiKTMImE7cJNQwWXakCibrTWlenHGtdTWjN1/4v92x2uem3Qyxc/ydW3PhVnvj2w1x8cYK/PFYiqPRA8Aqh79DfNwOrpYtlb3ZoS4TMTDRjJDOo+N5bSmgkk6iITZDPo4OAhJ0gZscIohaBDlm2ZIDDDgt45RVoaYGvfhVOPhlW/iTBv9/QgRGCn2kl6Gom0RZwz+89HvuzTxhqIvE4Sini2scyFLmyJ0sHxLgopQ5TSl2vlLpdKXV37VLvuBpJbcjTZAdF1ZLagfLAlMUkRCPJu3mACW/pM1KplfZj8ToyGGI/VUtoNZqWRATbnNjnFzHbJGIaZMse+YqP61crvcYoVV4h9rYwn0d7PmZzZoeW4y19FW7+bZ50yiT7pvfzsT8fyX8+uIx3vL3MEYdvQ5kaHbYwMNhMrNnnyDf20RTTzEq0Y9gxjIS9y71np4qZTuMPDBDm85jNzaQjabzQww/B9HyOWzGA77ezfr3i4IPhM5+BOXM0ixcH5BOdPHbJSnxclJFnwaureOE3h1IuHs5xJ1nY0RhepUw6FWPICRgqe7QmIvJ7KsZyI/AD4P8CUuKfhD2t1LYl2gBJasWBq1ZpnWj7cdyKYxmWtB+LnUildj8UhprBkovWk0toawxD0ZKMkIpaOH7IQMklkC2AxD4WViqE5QpGMoERjY4c7886/P6nL3L2tWczZ/M6fvCvIf/54DL+6kyH//3xHHYsBmEb/f0tRJsCjnpjH6m4YnZTJ6YVxYhZqH2Q/CnLwkwmCR2X0HEwlEE6ksaImgSmje9WOOnEHAcfDFu2VKeRn3OO4tBDo6Dg5t+nyeWaSLhFlv7w05xw+yU89RSsusMD3wKlCJwyzfEIYajJlr29/j2Jhudrrf9Na71aa/1I7VLvoBrJnq6pHWk/Lkv7sTgw5Z1qpXai7cdKKTLRjFRqxU7qltQqpWYrpf6klHpaKfWUUupT9Yplf5OreIRhteV4sgnt9pJRi+aETag1/UVH9scU+4wOq4OWVMTeYR/aQtnl1ttzWPk8zYOvsPHhV7nrTynef3bAR/6+hMLHd1P0D8SJpgMWH9dLPG4wp6ULEwsVMVH2vnv5M5JJlG1VK85hSNSMEjWjhFFFqGx8J89pp1VobWVkIJRSJr29cX784wifuyxB39BMVn35JlZ/8ut0zNG88GLIqrtDtGvhOy6GDkjHbNwgpOA07pIBrTWOH1B0fHIVj1zFo+D4lN2Aihfg+iFBqGWQ3Z65VSn1CaXUQUqp1tql3kE1kr5SH7ZhT/gNeU1bXCq14sA22fZjqLYgS6VWvF4924994LNa60eVUmngEaXUHVrrp+sYU8MrOj6OH1a36rGmbv/KqGXSmlAMlT2GSi5NcVv2xxR7XZjPo7XGSqdH2oQdz+P227cy1Gcze/4b+OM37qE5luSqo30WLSqg/SJhkGJwKIYV91l67DbsuGJ2exeWq8BUqOi+/79bbUMeJCwWMdPpkTbkIKIxHU3gDXLGGV385jcGAwPQ2gozZ1p8+cseX/mKyWc/H+FLX1rKzM4+zLCXd9z0GbK6hQc+/R2OPaaCYxZItrTgBiFFx8c21ZS+BuxtWmtKbkDR9XfYQxsNu0pfFdWOElMpIpZBzDZHHYQndnL+8L+f2+6YBubVIZaG1FvqpSPZMenlC82xZhRKBkWJA9Zk24+hOixKklrxenWr1GqtN2utHx3+Og88Axxcr3j2B44fUHB8YpZJIjL1n1dYpkFrIoI1vNZWBkiJvSl0XcKKg5FIjqyj9UOfP9+9nhM/cQZvue/f+eGPkjzf04JlJzhyURH8AjpIkM2nUVHN8jdtI5JQzGzvIupV33wacWuvr6MdjbJtjEScsFRGex6GMkjZKbA02o7guwGGGuTd7wbDgMHB6v2OOMLm6qs9IhHNF75g8fQTnfhY5DsPwug+mA3bojz0cJzKoINbLNMUszANRbbsNcxyAT94bSsx2zDIxG0601E60zE6m2J0pqO0p6K0JiNk4jZNMZtU1CIWMbENg0BrCo5PX8EhW2qc77tetNaHjHKRhHYC+kp9k15PC2AaJs2xZqnUigPWZNuPYbhSK+3H4nWmxaAopVQ3sBR4qL6R1J/Wr5UlJrLer7aWzjQUTXtzmquhaEnYIwOkQg2p6LT4byT2I1rratuxZWIkEwCEOuTJF7I8/HSEWYct5aYXV3DbQ3HSzS4LDy+j/RxaJRjIZQjNgBPetA0rDp1tHSS1hQ4DjLi9T9bR7oqRTKIrFYJ8Hqu1lZgVo+JXcG2XaBinUiyRao7xnvckueUWyOWgqQnmzIlw9dUVrroqQrkAhtXOY39zGenAZ5ZZJP/wizy9ocBR719AeoZNc9xmoOiSLXu0JiN1+37Hw/EDsiUPFGR20QGilMJUYKLYVYOIH4SUvICKG+AUAhJRi2TErMsHGNOdUurDox3XWv/3vo6lUe1pUgvVdbWyplYcqGrtx5Ot1L489PJUhyQaXN2zEaVUCrgZ+Eet9U6bTimlLgAuAJgzZ84+jm7f0KFGeyHaC2D7CoOhULaJihhjvjHLVTzQ0LwPprkqpWhORMiWPYrDa/cksRVTSZdKaD+oTjtWCq01G1/pZ9VvhziotYnLO/+Dn/4izjve4XDOWRUIcmgjTn+2Gc8IOOWkfqy4T2tzB2kjiq74+3wd7WiUYWCk0wTZHGGphJFIkIqkGKwMEsZMVDlCKT9IOhPhve+1ueWWatU2lVJ0dET5+tdLmKbGJMHzr7Ywe+YQGT/L2278GEGhxJ8PvpOTTikRb03SFK9++FRw/Gn7+1nxAnLDH8Y1JyJ71DpsmQZppUiYBoWKT6HsUXZ9MvEIEUtmIr7Oiu2+jgGnAY8CktSOU2+pl6Uzlu7RY7TGW6VSKw5YtUrtpNfUSqVWvE5d3+kopWyqCe1KrfUvRztHa309cD3A8uXL97uestAN0E4AWoNpoKJGdSGZBu2HaMdHu6raMrmLN2YVL8DxQ1JRC2ucg6G01gRBgO/7aK1RSlWrIaaJZY3vv0UmbgPVdbyK6kApIfaUDkOCYhEjGhmZdjxQzOOcdyEf2PA8Xzz5Hn76izgnn+zy9x8uoSiAGWXbUBNe6HHaaUUScY94IkMmGkeX/OoHRHVYRzsaIxYjLJcJi0VULIZlWCTsBEWvSDKexC0OUS4O0trawXvfq/jVr6ovCcmkQTQax/dLrHve5dJLYrzt3a2c/+FBHv/sv0I55KUtcawHK7z5lAiRZLXqOV3X11a8gGzZwzYNmuOT3y5MB2H1Q0E/hFCjgDQQCaFQ8hgoesQTNulUBMOQ5BZAa33R9teVUs3AzybyGAfCB867MxWV2rZEm6ypFQesnJNDoUjaybFPfh1ZUytGU8/pxwr4T+AZrfW19YqjXrTWhCUPXam+4TaSEcykjRG1MCImRtSsXk/YoCAseYTuztsJhqEmV/GwDDXupNJ1XYrFIqVSCdd1CYIAz/NwHIdSqUShUMBxHMJw7CnHmbhNzDIpOD4VT7Y7FHsuLBQAMFIpAApukVUPlHj+sDPYesL7WPtcihUrPP7hYzkw8zjKoqc/hRuGvOOMkKZUmXgsTksyA5UANNW242nUhmqm0+hQj3yvCSuBoQwqyiEay+BVHNxKjs5OeO97YWgISqXqRGTTjDF3rsfb3x7wh1+bfOc7rWxpmYczew5zZmmS//Fd+j58EWG+QspQWNNwfe32CW1LYuIJrdaa0A0ICi5+waFcKlHwi+R0gSGVZ8jI49hlIkkPjUshW6Zva5FKyWXlDSvp7u7GMAy6u7sBZOovFIFDJnIHrfX1WuvlWuvlHR2T29amUfmhz0B5gI7Enn3f0n4sDmR5N08qkprU3+ZMNEPOyckUfLGDepbWTgD+FnhCKbV2+NgXtNa/q2NM+4QONWHZhyBERS2M3VSQlGVgJGzCso+u+ISAEXnt/Nqk0KaEPfbzak25XMb3fUzTJB6PY1mvDc0Jw3CHBNd1XaLRKJHI7tfkNcUtgpIeaSOcim2ExIFJe97InrTKsij7ZZ55cD0vPplhzlvO5MV4igtLQ7iui2eV8bEZHGoiatnVAUtmFkMbtKVawA3RQVjtcjCnT0IL1b1rjWSCsFjCiMVQkQjpSJqsk0VHDUwvTqmQw7SizJgR48wz4de/rt43kbCx7ZC/+7sSbW0Jfvxjiy9nW7j8c0O0xiq020PkNw3S86TJsiUBTRGDweEkcjqsr3X9kNx2Ce1Yb2hqr0tBEFS/dnxCx8f1XXwjIIxojKiJZVqYhomlqn/WQh3i6wDTDgkcl2wh4JaVd/OVK65ky5ZX0FqzYcMGgLl7/7ueXpRSt/LaUGkDOAL4Rf0iaiy1luE9rtTG26T9WByw8k5+Uq3HUG0/DnVIwS1Mak2u2D/VLanVWt9HdUeGA4oOqxVawuHq0TjW+ClDYSQs9OsSWz8IKbkBMdscM5EMw5ByuUwQBESjUaLDbZ3bMwwDwzCwbZsgCHAch0qlgu/7xGKxXbbuKaVojtv0Dw+maUtGplVVTDSOoFAY/v+ewAkcBn76SxZ/9AIePeeXXPLgW7no0wNk0h6RhIMdiZIfaicTifCO92gCYxDD82lLt0Kg0G5tHe30arutGRkaVShgtbaO7F1b8ks0pTKUcx6l/ADpli4OOsjkzDPhN7+BMIRUKorWIWeeWaKlNcH3v2fy+1UZzj0jz0t/cwnlssumRz3ihRxHzMqRPnQ+OT8kX/FIx8b+AGxvCULNUNnFMKqvGbt7nfB9H8/zRpZI4GvwQ1zfpRxWCG2NMg0iKkIkiGBjY6lqYmua1Yv2fdxSibJTxAo8fnT9d2jPZLDNWby8aX3tqQ6YT+GUUlGttQNcs91hH9igte6pU1gNp7dY3Uy6I7nnldqhyhB+6GMZsnxHHFhybm7SCWkmmgEg62QlqRUj5FV0H9oxobUmNLRGKQVxC7ZLbIt+WF0/Nkbbca1CG4Yh8Xgc2x77Ta1pmiQSCVzXHWlLTiQSu0xsDUORidsMllxyZZ/MOCrHQmwvdF2062GmkvgE9Bdz3JtbxPwjP8ClN59IvDUkYvikkppYNEFvbwuJWITT3xUSWCWMSoW2RBJlRAlLXrXLITZ9X+KUUtWhUUNZwmIRI5kkZacYCAao6DKJVBvF/DaKhX6SqQ4OOkjtkNim0zEg5OQ3l+meF6ftEE2WFE2BImr3Mau9n9TnP0nQ/ySRvzxBNBal5AZELKMu62u11gyV3JGBdqO1HGut8TwP13UJwxClFJZhYQYKH4+y4RCkNMlImqSdJGpGCcMQ3/dHqrme6+IXinjFAl7F5clnbO55MMXxK0oYpQqpxNHo4IDdDv1BYBnwUa3139Y7mEbVV+oDpqZSCzBUGdrjxxKi0eSd/KS284FqpRYgW8kyq2nWVIYlGtj0fce3n6mtoSUEI7HroU+7U0tsdcnHLbqUtSaVjIy5Hq1WoR1vQru9SKQ6XKVcLlMsFkdalkc91zJIRa3qXpOu2it75Yr9V1gooEyDMBYlt3UDDz8Z4aktXVz48n+gY3Dp5wY5eKaBYZls25ohlYrwtneGeJaLUc7RFo2g7KZqa7+hUNM4oa0xolHCiE0wPDTKNE2SdpKCVyAWjRGNNeOUB3HtHNFYhhkz4Kyz4NZbYWhI0dxcHRw1d1aFUMd4eYvm4q808X/+t8Giua/wwkc+z5Mv5Fnwaox53RofPdxNYezRpOHJKDg+fqjJxO1RB9q5rjuSzJqmSSwawwwVbsWh4Jfx7AAjZpKJNBOzYiP3MwwDy4pQLvsMbsrRv7mXP62KcPu9rTy0NkMuV33N++BZIWbqZOa/+hK/8SY+mGQ/EVFKfQh4k1LqrNffuKuBjWJHvaXhSu0UrKmFajuzJLXiQJN381NSqRWiZvq/69tP6LIPoa62HO/B9hJKVVuRy2UX5QbEUzu3EW/PcRx83ycajU44oa2xLItEIkG5XKZcLhOLxXb5WMmoheuHFCo+tmnI+loxLmGlgvZ8jHSKodxWIqe9j4OTi/nRlv+iUlZc+cUhZnUHmBZs3pyhrS3KW94e4lgBViVPq6VQ0eZqQgt13492Isx0Gn9ggLBQwMxkiFtxyn6ZvJunNdGK77uUC3lMM4Jlx2lvh7/6K/jtb6G316Cjo5rYmoGDraMEIVx2RYp/+OjBvP0ETTBzAXessjl71S20v/wQ/Zd9kWzZG9d61qni+AElNyAeMXfah9b3fRzHIQiCkbX+pjaoFEvkvBKBFWIkLdJ2E3ErjlIKz4P+ftiyxWfTJofenkHcoSFikYBykOTyb8xDKVh6dIWF84c4anGehccqUt/cwnGr/8gqYLvxPGNPxNt/fBw4D2gG3vO62zQgSe04TFWltpbU9pf6oW2PwxKioeScHJ3Jzkndt7YWV7b1EduTpHYfCCs+2g9RsYm1HO+KH2oc2yChDHACtKlQoySPtTeLtm2PuoZ2ImrtyLXEVmu9ywFSmbhNX9GR9bViXLTW1e1tbIusctiUDci/4Z30dSwm0qf47KcLHLrQwzShp6eJgw+OcsJpAY4ZEvGKNOOhIhlCpzr3xkhMv8FQu6MsCyORrP4M4i7G8NCoIWeIclgmmW4mP+RRKgyQynRiGDbNzdXE9vbb4ZVXTGbMiBGGZeZ0unz5XyJcd43BdT9I89L62VzwwR4ObrfYev0qWrb9D+nPfp6caZAtV39X9/bvZxhqcmUf01A7LJWordv3fR/DMKpdICjK2X6yxSyB8jAjBk0qQSwwcZ0KG7e5rHsxZGNPSIhH6Fd45jG4a1UbuUIb131tM5Zt8JVLXyUVq9DUajB/SZS2uRmSyRgdN67kfy6/HO+mm1AbNzJnzhw2DE+LOhAMz7K4Tym1Rmv9n/WOp1FNWftxoprJyrAocSCakvZjqdSK7UhSu5eFboB2A1TE3GFq8Z4oOQGGUiQzESj7hCUfI7ljZao2GMowDGKx2G4ebfwMwxhJbCuVCmEYjvrYtfW1QyWPvOPTVMfBNGL60+Uy2g8oxhTberOsfTBK4dTPMKPT5upTs0QSAYYBmzalOfSwGEtO8HENTSz0yQQlsGOEvv1aa38DdgcYyQTaqRDm86jWViJmpDo0yisRiUWIJ1soFXopl/pJJDtQyiSRgHe9C+6/H5580qarK8TAoS1u8Nkvmvz8h5rf/ipFS1MXH3rfAC9/7HJWv2pyRi5Oq1mhuGUzudmz9/r693zFJ9Salnj1A64wDKvTqz0PoDphHQ8vu5WBfLY6sTgeIZNqJWol2LYNVj/rsv7lHAR5ErEKSQN+f3s7t/5xJgO5KJ1tDu84LYvnemzri9DabrDsuDa65luEhLR859vEPn8xKh7nLddcw/prXpuTpJQ64DIKSWj3TG+xl0w0g23u2e/OSKVWtvURB6C8uwdJbfS1NbVC1EhSuxfpQKMrAZhTN7DGD0IqfkAiYmJaBjphERZ9wpJXTWyHqy6VSgWAeDw+pZUYpRSJRIJKpYLrumiticViOz1H1DKJR0LKbkDENHZqORQCXqvSlvEo/u4u5nzmMq6eeyvPhQv51EUFYqkQpTQ9PUkWHhXjiBU+gYK0AUkvjzZMwjC1R2vVp4ORoVGDQ+hSCZVMko6kGagMkHNytMZaCf1WKpV+DHOAWKwVpUxsG04+GTo74d57oyQSAamUS8qK8tf/CxYcDm88OoKrbSwKdMxM8bu7TD50/8W033MrvasfQxkte+2Dp7IbUPEDklEL21QjW4VprasdJHjoSj/ZfA7HDzHiCdKZNiJ2E+vXw5o1DtmhLFG7SLrFw1QJAj/DfXdH+NGNM1i8sMQn/iHLsuUWhWKGV/NtLFmuOOYYRdkKcENNy913Ev/nL8OypdVNf4XYQ33lvilZA1sbFCWVWnGg0Vrv8ZY+IJVasSNJavcSrTVh2QNVnXQ8VUpegAKSw0OYlGlgJCzCklet2CYsfN8fWUdrmrtOJrUOhr8yJpz41hJZx3FGpiq/fjJyOmrh+SG5ikfENMYcaCUOPGGxhOe7bMHDsdt4RS3mxocO48TTNJFEiNYhPZvjHHVsjAVHViu2GcskUhlCBz4hGVB7vlZ9OjAiEXQ0MjI0yjBNMpEMg84gOTdHU7KJIGjGKQ5hqEHsSDOGYaEUHHEEdHTA7bfH2bq1REeHSywaY9kJIWEYoZTNcNnlcd56col3vD3LH+ZcwGl/O594Mk3ZDdC62oo8lbyguoWQbShsAgqF6rIFy7KIGhrTL1Cs5ChVfLQRJ9neQiSSZt06xcMP+1QqA2SSObpaQ155tYmf/HQms2fBe07NccpxHofMyzH/yDR+kGDzZmhrg3PfAe0dmkEvwAtCmmyL/5+9946Xq6z2/9/Ps9v009MbSSAQEghNqhhQehUvNhQu+pUrdsVGVxS9/rwoKjas1yvYrlwrvYPShFADgQTSc3Lq1D27Ps/vjzknBUJIyBxOyn6/XvM6Z2bPPLOm789ea31W+oQTYOFCmDWrqY8vYdelt9a7zeN8oLFjLoVs9NQmJOxC+LFPqMLXbRSVtbIYwqDsl5scWcKOTCJqRwgdqPXGUE0Sc0ppvCDGsYyNBKIwJSJlor2I2A3xlI9hGK/oo9Vao5Q3dApp+IIMrSFMpLSR0kGILeuzcxwHKSWe5+G6bsPgZQMRLUSjDHmgFlD2Qlozm+7BTdg10XFMVKuwxq/iyRQ/ueswvt99IgfsH/Ch84qESrN6MMUhR6WZOV2TNSQZQyJCFx16qDgDprnV47G2Z2Q+j+rvR1UqGK2tWIZFzspRDatURIVsPodb1nhuGU0/ltWCYTRaALq64MwzBQ8/nGbBghqFgk+mLYUnNYGRZswY+MmvWnn0CY/z/990/qDmcvQyxYT608gffI/St66mpau1KY9Da81gzcf3fRxb4quG4ZxtGphRjchz6Q9cosjGcgqkMy0sW2Hz4IOaer1ER2s/rZmQF5a0839/aePBhwxME95+Uh1Tx4iWPDPG5RkYgHodDj0U5s4FYWj6wwhWr2HM+9+H/M7VsP/+iaDdBEKIicBUNtgP0FrfO3oR7Tj0uX1MLEzc5nWkkLSl2pJMbcIuR8WvALzu8mMhBAWnkJQfJ2xEImpHAK002o8bYrOJO9v1MEYDmU305krbQGmNW6ygDMi0bVzSEcd1orgGOkYIA8NII4QBCLSOUCokjl3i2AXEOoErpT10vU1jWda6kT+u677CGdk0JNmhMT/1IffThAQAVavRWxug/bMXsyqYw49vuYIZ0yM+dcEApUhT9tO89bgsMycOiVkhIArQ9RIqNMFODwnanec9JQwDI5slrtYQvo90HDJWBo2mFtbQWpPN5fCqBqFXRYgSStUxjCxS2tg2HHGEZPr0NHfeWad7WUDbOBu7AJ+4MObev1f5719n+OTnbT54jovSKU5Z/SAT7riV6uAgxWxmm82j4jimr1Sj5vm0pm1s28I2TYzYBa9EPQ6oxAqh82RTOXoGctx4i6BU8ujq6KU166K1w6+un8b//dkhk9GccVrMqcdW6MgF6FQe38jSvQLGjYNTToH2dgiVZiBouF+3SpAD/TCQiIVNIYT4BvAuYCEwXLKjgUTUbgG9bi/zxs1rylrt6XYGvOR9mrBrUQmGRO3rzNRCo9IhKT9O2JDXFLVCiI8Dv9ZaD74B8ewUaK+xY9XsOZluEG92TE4kFEqAIyxEqMEArRVRVEYpHyEsTCuPlJt2QtZaoVSIUj5KB6jIbzwOYWwgcF/pZvxyZ2Sl1EZZ4qxj4keNUkTbfOPnYyZsf+goon+wh5IXknY15UHF1KkRn72wl4FYIWWWfzu5wKROiRx+v8UR2h1A+QKcQqMKYifJ0G6IyGQQ3pBplGUhpCRrNeaqDgvbdDpL5LUQBx7YAUoNIoS1TtxOmGDyL6ZodgAAIABJREFUb//m8OyzHo8+KqkOWOQ64ciTFfvMLfL9H+W47Q6bt82v8Ff+g/1++C726shRDyLMm/5O9u2nIeTWPbdKKXzfp1TzcIOYtlyGllwaGbrglVEqokyMH5tYysatFLj7MZueXkVH2wDjOgd54IEcs/bspKszy/77CQr5iOOO0+TNGjIKUU6O3mqWIIA3v7lRdm0Y4CtFMYyxH19A/sADMadMgSefbGxM2BSnA7O01v5oB7KjobWmz21OTy00RG1SfpywqzFcNvx6e2qhYRaVlB8nbMiWqK6xwCNCiMeAnwO3aK31a9xml0WHqjG+xzGbOifTj2KU1uTtTb9kw+MxrJyDLW10EBPrmNiooHWMYeQwzexm70MIiWE4GEZDkCoVoZSP1gFxXB/K4koMI41hZDcSt8POyJ7nrZs5mUql1vXZtqQt+qs+5XpIWzYpQ97VqQ720efW8HQrN5z4fUwHLu1YRW/ZpCOT4+3HttCS3+Dzo2K0249yY0i1IzP2TilooVFWZRQKRIODqHIZo7VREpy1skghqQZVIlHCNtMYUQoVprFSIbGqE0VFGpUWjbnUs2bB5Mk+y5dLHn7CYGVkUehUXH5ZGa8U4Rgxhbzk8mva+fe+kBOsW8idcwbV//kN2bPetcUZ2zAM8TyPehATakl7a5ZWMwK3D1RMKCVFYaACSVBMs2BhjiUrTFoLg+TTg9x0Y46bb51OT6/Je98dceYZMXPnSvaZJzHqJUQUUlNZenqyTJsGRxwBLQ2fENxYUYli7IcfovUtRyJ++lP4wAcSQbt5XgQsIBG1W0ktrOFFHl2Zbe+phcZYn7XVtU1ZKyFhR2Fby4+hIYgTUZuwIa8parXWlwghLgWOBc4FrhFC/B74mdZ6yUgHuCOhtUZ5EUiBdJq7Q1UPYoQA51XMcIbdjoeFZKQjArcPYRo4+fZXzc5uDilNpDSB7FA/boBSdeK4RhzXMc0shpFZd30hxLq+Wt/3qdVq68qRDSnIpyzKXkjNj8g6r/7WGz5mksy33TkJvTq9C59i3Feu4sQXrmXs3AynnT3I2pLF7hNbOeGoHBu1gyuFrvWjaiE4bciss9MK2mGEZWHkcsSVKlRrGLnGAam0mcaUJpWggidrgMT2UwgcnEwGTYBSAXHc6J03DDDNOlOnDjJzZpalq1I89LTgxX6LjNJk6wFPLAi57Q7BPffZHPOWU7jqy9dTOP5k/FpAa72C0fXqGSmlFJ7nEUURXqgIIkFKxGT9AWIvRkuTmmFSDyJq/fDSojwvLLFJZcqMax/ghz/p4N77pxGGkr1nK849J+TgQwTSshGAdIsoP6S7ksfKpTnhBNhtNxAClNaUoxgvVtiGpOXwwxDf/S68+91vzIu0Y+MCjwsh7mADYau1/sTohbRj0KwZtcO0p9tZ2LuwKWslJOwoNKP8uOAU6K52NyukhJ2ALaqP1VprIUQ30A1EQBvwv0KI27TWnx/JAHckdKBAN8yhmkmsNH6kyNjGJoVeEAQbZUaVioiNKsIyMHUBfAPS66+vFJRKUC5DsdhoO6tWwfMgDEHrxk6jbYPjQDYLhYKgpcUhk3HIZEJSqQpRVCGOXUxz45Jm27YxDIN6uYxbLmOZJk42S9o28aOYmh9hmxuXUWutiXyf0PdQcaPFSxoGpm1jOamtLoVM2D7RWrOmewU8uxh97wLKYZUD32XQX7TYf1YH84/IbJxgWydoA3BakPn0Du9yvKXITAYdRahareFynm58iC1p0Z5qxw1dXOHi+tXGASTfIZvLkHLymGYerWOUishmM7j1KmFYZfpkn5nTTJb3aRa9GLJ0scfkWSWuvGiAm++axN9vS3PLXe/m2H/GXPONtbSefCjRO8/EvOoqrrvuOi6++GKWL1/OlClT+MpXvsIpJ51KFMZ4gSIOQ2ztk7YFQWjhSZNaEFIcCFn1osWK5TYDxTJLlsNxb+0HbSFlircdrTn++JCp0yRCmo3vOBVDpURfb0RgF9j/0BRz5za+k6BRblyOYuQDD9J1wWcwbrqx4ZT1sY+N4iu2Q/GXoVPCVtJb6wVoivsxNMb6JEZRCbsaw5nabSk/LjgFnu9/vlkhJewEbElP7SeBs4E+4KfA57TWoRBCAi8AiahlyBwqGDKHavJOdz1siLz0JgxxhvvYTNPEtm20jgmjImiNk+uEUKD9mFpd0z1gsniJYMUKiBptv0jZEK6W1ajWszeoDI5jqFRgcBCCoHEbIUBrC2gnn/cZO7ZCV1eRtjaHtrYcGVsR1kr4bpUgDgjCkDCKMIQkly2QzbcTaJOf//q3fP3yi1i+fDnTpk7hS5deyhmnn440Teyhnfc4igjqdULfx8lkMe2kbHlHZ3Cgl1KlxmU3v5dbwnM47dwS02ZGvOWALg7cP8VGx2xUjK70o9xhQZvdZQTtMDKfR8cxcbmxAzAsbAEyVoa0mcazPGqWS63qUh2oYZgSK2VgWSaCxhOqLBsvUlRqIU4K2tpgv3kx0/eC7u6I3tUl3jljGYe9tZV77pzBmv4UN95pcMwJH+Su/iN56aLb+NHVH8GtlzFMi1qpypWXXYGq1XnLUW/GMGIytiKVtvC1wPUr9K6NeO5pk4cfauXZRVmeXphh9RoHITQHH5JjzLgcH/uEGDpQt/67LXI9iqsrKAV7HtDKvgfa5HKNbaHSVOMYX2kMAYWWPIbvNY7MdTVHZOwKaK3/WwhhA3sMXbRIax2OZkw7Cr3ukKhtUvlxe7qdsl8mjEMsY2TmRSckbG8Mlw0n5ccJzWRLMrXtwBla62UbXqi1VkKIk0cmrB0PHcSgNcJp/o9SPYixDYm5CYOo4bJjx3HQWhGEg6A1ltWKEBbdA/DM44IVSyJiIuy8SWen2OZ2M60hCBxWr7Z56SUXdA0RLKa1+2nGeSsJTjqFrrEtjHv4dlqXPc/A/3s/A7UixWVLuOfhx/jSN79L78AgUgj6urv57AUXIE2L95199kb3E0cRvlvDq1aw02nsdOZVIkrY3vH8OvWf/pT7757In27ej6NP6OHAQyNOOnIMe856WXl85KNKA2hfQaa1IWiNXa8cXQiB0dpKXCwSlyvoOMYYVnhD29NmmrSZJkyF1D0frx4Q12NCX2FYAmlJDGmQzWTx6h460pjSJptupTMjmdqqqE6rUR3so7d7DUccejeDRUV/n8V1Ew/mK1e8BaUkl4pPca78BaeO+Rr5CbeTzjzG7/58Pb75JgQ2oZ9m1UqHxYstZu9ZZUwnPPlUKz/6WQeWpZmzd8SJJyoOO1zS2bnx0XmloFoMcPtrODJkzr4Ws/bLU2hr/ERtKGZTf/xf2pa+hH3hhYh58+Dxx5P+2a1ECDEf+G9gKSCAyUKIc5KRPq/NSJQfAwx6g4zJjmnKmgkJ2zvNKj9ORG3ChmxJT+3lm9n2bHPD2TFpZGkVwjKavuPthQ2DqPQmDKLCMCSKonXzYsNwALTCNFtZudLiwQehrw8yGYPOCWCqCC0jYmkC2xanEI0M76SFtzH+vt/x2LmXE6oqc278EzPuuIEr0mexeHGK85+8m/3X3Mwj+1zAZZemuXLVB3lr6Xb81p8wtn0Nc7mZAX0Pq9063/vPL3HW6cc0IhMChMQQBmnLwFcQuC5KKVLZ3GuFl7CdobVm9eoVjP3N73lLX4H93nQSp7zd54zjxjFlirXhFdH1CqpcBgzItyOzqaaaru1oDAtbVa2iai46CDByOcTLKhcsw8LKWuQzmjhUhH6MijUEIA2BYUqy2RxRFBJGIdrXGFJjRzGZQNKV6mLalA6iiQGeV8aLagyUXQ6YfQcXXfYkS/qz/KV8HM/1nMH0XMihYYnH+/fjPz608WgTKTUf+0iGffdRZPIG4yYGzJ5jkUqtf52VAq+uqZVDYi9EhD6TxkcccqRg0u45nJYMWmvqscKNFaHWCCBnSLL33I1YsAA+97n1JSYJW8tVwLFa60UAQog9gN8AB4xqVDsAI1F+DDBQH0hEbcIuQ7OMoupRPalySFhHMqe2Cawb4dNkcyhoiNpNGUQNG7QYhoFt20RREa0jBgdb+ec/bbq7obUVJk8evoVBHIMRx5hRSGRa8DqMmMxqkUl3/5oVbzuXOJUlvWYxnQtuQZ5+LvcsnMt/L/8qK7mYJ7/aCQhWHXENn7t8LbXeQYgN/pR7Jzd5c/DqB1MstnOT802MtMH5c05i4TPv5i9/kxx7nEUqbSCEBhUjIo+U1ARhQFCt4wuBk9m8k3PC9kVvsY+e7hoLL/keTz8Tce4kl3edMpExY9Z/ZrTnoStFdBCCnUIU2pCbMRTblRBCYOTzCMtCVatEg0WkYyMyGeTLxK0QAtM2MG0DFSuiUBFHDZGrtUZHEXHdI6xXcZVCGBI7k8bMZMC0Gj31qVZMP6Irp+gar0BewA2lxVwf1IHf0f/8BL7PC/x3ZikrP/spVBwgiMnkFdlWhWFIlq0xMTAZ264prgnRgBQgVARxTHtrxNRJMG48dI2zSLfkIJUiBEphhK80CrAXPUfXJz+B+MEPkHvtBVddBel0Ima3DWtY0AJorZ8XQiR7hVtAn9uHJa1t2hnfkOFMbTLWJ2FXouyXyVgZDPn6v8eH+3ErQWXd5yhh1ybZY9xGdKwbI3xso+nZJKU0QaRIb8Igyvd9tNakUimiqEK9HvDEEwWeesohl9tQzG4Qq2EQC4ERRZhhSGSajabaraB1yaPMvfbjuGOnsfqA47h7xoks+vZ8zMx47vtxC739LRx4jOLEWXX2nlHDwaeyWpLv0Hz/B33kC/M4/0Pfpn3596hLmwudFjoLE1ldmUWt+jb2Pmt/Lsl+htKZ5/CRjxnsNTtFOqMh8rFNF10pEg6shngsTv71GwwkvHG41QqrPvVtTv3ThZz83lXMOyDNWW+fRHu7REcKHYToWhkCDwwD0dLemNW6C2dnXw2ZSiEcp5GxrbuowSLKkAjHacy0NYzGczj0uRZSYFkCU2hU7BHXPeJQITRYuQKhbHwnBLHCd0MgBAHSlDhpCydtY9kmX7zoC5x33nkQAFQYZBEftm3O/PJZfOSzBVi0CPXVr1H7wJdxW8dSqYW4foAXBmjlYQhISUHGgWzaIJs3kE4abZpoyyQWkgGlicMYDZjPLiSlNc6+++BMGA+rV8OLL8Jee0EuqdRoAv8SQvwU+PXQ+bOAf41iPDsMvW4vXdmuprnzd2TWZ2oTEnYVKkFlmw8MDYvasl9ORG0CkIjabUb7ESAQ9ghkaaPGDl7qZQZRURQRhiG2bQMB3d117rknQ62WZuLEzetULSWRaWJGEWYUoQwDtZmMh4gj9v7JJ3HHz+TF0z5N3z5Hc9d3n+LGVbtzw2cUy5ZN5cffrzCmtcBFn/NocyqYysOtQqlqMWZ6lslzDYyCxNSStpTJRz9+Np+/4NOUvTXcWIdc0EJ78AJfuaSL3t/vS191Er/6ZZYbrivz1fMW0PHmecycmWLy5BSdrWkodhMWVyPQ2PmW5jzZCSOCUornf/AH9vvV1zkmO48ZMw7m7LdPopBWxCUf/BpEHhgCWchDtpA4Xb8GQgiMXBadzaB9H+15qHod3Ppr3BDMTAorlULY9rqdcqV0I4OrNUIIpBSv2GE/66yzANa5H0+eMoXjr7ySU4cu55lnkH/9M/lvfoP8uDRj738UHnwQ9bGP4Vk2fhwTKkWMQAtBdcPFFRjLl2L39eAc9CYsrXFOPAFx6KHwxz9CZyc899zrqixJeFXOBz4KDI/wuQ/4weiFs+PQ5/Y1rZ8WNsjU1pNMbcKuQyWobFM/LWwsahMSIBG128RIZmmhYRBlSrHR6BtoZGmllBiG5PHHizz8iE1rS54JE7ZwYSmJLAsjipBRhFCK2DA2qYa1YZLuX0WUbnx5PPU0/OKXe7H4BYPxYwM+dHaN1pY0qXoPWdNHRZJVA3nslixHn2iSG6Mo1gLsSNOetTEszRmnnYIQmku/9GWWL19OR1cLl3zxMk4+5m2oj76X/yiGzPzTS0y+9lrO/uE3+ev0O/nDgrlMmmSSy2WYvedkprSvJMcapCExM80pA0toPgtfWMup338XE505HPu5MXzk3WPIU0WXPQRhY95sPodw8rANZUi7IkIIRCoFqRRSa4gidBw3xiApDWhAIAzZyOBa1iazS1IKtqTH/qyzzlonbl/BGWfAySevt0//4x/hl79EXnABGSHIXHIx3HMP6h//INYgvnYlYvFi9M9/gRQgP/WJRjZ2wYLG7X/7W5g5c8MHu1XPTcLm0Vr7wLeGTglbQa/b2zTnY9i4pzYhYVeh7Je3aZwPJKI24ZUkonYbGMksbRgrIqXJpzZ+iYZn0krpcNddZV58UTJubAvm1r6SQhBbFiKOG322YYiWEmUY5JY9xZyffopHP/c7gtYxPHLhDSAl3X0el13mUGiBj3+on+MPDTEzDqYuoTW4Is/S3gJz9pEcdhiERsyAG2JHmraMjZUyqJdLCCl53zn/zvv//dx14USxoq+7D1mpM3NcOxM+nGf5nu/hzuvzvKTHcvXVLRyd+QfzPrgbYZziX94YJhbWMHvWKqbNnYq1waiThO2D3gce4eJzYlavPoj3fLKDz5yTI2cNItGQMRF2C1iZRMw2ASFEQ7Rao9gWuWFv77e/DV/+8noxOnMmuC5SCNYd/6vVWHfmoos2Lis+8sg3JORdDSHE77XW7xRCPEXjqMdGaK33GYWwdih6a70cMKF5floFp4AhjKSnNmGXouI3t/w4IQESUfu60bEa0SytF8YIIGWu3+EfnknreQb33edSLComTGijMTL49aENg0hKZBwjlcIIQ6SGdM9ycmsW059uZ8FTir33rZAvBHzxi2n2mx6Rp46wQYiY0HKoxq2sWWty5HyYOxdCrSi6EcKPaU3ZOGkT33VRcUwqX3hFxsg0JB1jO+hfvRbVO0hqXCezjtmTypzdWH5bic+e9RwX/eJ4fv5f5/Kr+Vdy9oeW06c0t/9zgNzjLgceuQe7757Z5NijhDeO6667rlGiumIFjxXyXFMvMPXsm/jif+QptIYIJ90Qsqbz2osl7NgUNjgK/8EPbrztkks2Pn/44SMfTwLAJ4f+JuP4Xid9bh+d6eaVHwshaEu3JZnahF2KSlBhUmHSNq2RiNqElzOqolYI8XMaP649Wus5oxnL1qL9mJHK0mqtqYcxtimHSgMbBEFAqaS5++6IOA4YM6YANCEzIwRO/0rGPHYzy487j8qUvbn3e0/T3Sf4r8s0C5+1+drXNHvvnuGweQ5WdQ3CCFDpFkKZpxZm6emB449vJGS01hT9iMiL6LRNnKxJHIWEXh3TcTBfJZtkmQYdYzsbwravCF1ttE5Icfq/GdzVkuEOfsGzK+fxwB0FVj4R8ZX/6iU3NY8/uJI7bivz0JPTOezQPJPGOTiGs02ueglbz3XXXcd5552H67rMmTefH05oxVkZcMC+D9I25Z1JVjYhYZTRWq8Z+vcjWusvbLhNCPEN4AuvvFXCMGEcMugNNm2czzAd6Q4GvETUJuw6VPxKUn6c0HRGO631S+D4UY5hq1nfSytHJEvrRwqtNzaIiuOYnp6AW2/VgEd7expoXsnt9L9+hz1/dSFWdYDYMLj1IcnHPmvz4lKDj3y8zl6z25F2FjPoRugaUaYd3+zCjRqC9qST1rfAlcIY1w0pGAbpXKMk0a/VEFLipDObjcNybNo725BRQFiq4sUKO29z7IlpzDOOZc6xXfzXl+r8tuWjnH7Z28nqPWjJ78uUdomsdXPj3/u5474+Vpf6KXpFvMhD61dU2SWMABdffDF11+WEjstY8twfWNgzhp8/+xSXf+sKSHpmExK2J47ZxGUnvOFR7GAMZ1ObaRQFDbOopPw4YVei7JeT8uOEpjOqmVqt9b1CiGmjGcPrQYcjl6WF9bNpNxS13d0+t9wSk8kEFAom6CyGdhEqQKCGriXQwkAJGyVseK2yZK0x6xWiTIFn3/81Xjz541TzGX78Y4/bbkyzx54Rn/kMTBibwlBVTL+IDGqEmTFEdhdhCN3dcMIJMG1aY8lAKcr1kBSCfM5CSkHg1Rtlx7n8Fjnb2vkcbUHAYLlG2TAQ2TRjsw5Hzgc75fPs4zHh+z/A0rXPs+g5g19cP4ELzjcY07KWlrxJ90sGt67yOPhwxZhxAQKBbdikzTS2Yb/m/Se8PordK3nH2E/zh7VX8Jl8mW//6y5gBe7yxOQnIWF7QAhxPvARYLoQ4skNNuWBf4xOVDsOvW4vQFONoqAx1mdVeVVT10xI2J5pxkifrJVFIBJRm7COpKd2K9FKowOFsEYmS6uUxo8UmQ0Ec19fxI03hmQyHoWCwIzA0L2gNQiJZvi6Cqk8DGqNWIVFLFPEMg3ilQJ87g8/QuviR7jv6/dSt6E0poDWVWbunqXlnTFnvcfEEj5mNIjQETpQBFYncaqTOG6Ylc6fDzNmDD03WjPghuhA0Za1MS0DpWKCeh3DtjHtLReUdlsrrVFEXKsxKA1sKejMpDjkEI0pfRYsOJxJc+ZTfgy6Xvgnsz/5eR77+NVMOdBnXEcbNT/kH7fF7DPPYfa+klD5DddoIcmYGdJmumlzBnd5VEytZxWz9vwmf3zik1yQlvywcjvwAgBTpkwZ3fgSEhKGuR64Cfg68MUNLq9orbeq/lUIcR5wHuw6n/HeWkPUjkSm9sm1T772FRMSdgLCOMSLvG0e6SOEoOAUElGbsI7tXtRubz+cOogBPWJZ2noYA5AeytJWKvDXv/qYpktLzscOG0IslmlimUWLl72EWiN0iNQ+hg4w4wpmXEFJh1hmUMJZ50jafcBxVDq6KJtVnn7colZKc9RbLE54q43QIWZcQsY+WpiE5BDUUU4WpGTVcjjgAJizQSd0JYxx6yHtjomdbsQVDM3OdDKbLzt+OUJK7LZWOtQAvldnLZAxJJlMmgMOUoDPkwsE+x7ocPC5A6R/5nHpd2dy1rk+xx7dRyYzmdRYlycf9xjoy3DUUR0YTkA9rFMNq7iRS87KkTJTW/kKJWyIDn0GVy7lt/+zhsVPvJ90/mm+VfsX8AQAmUyGK6+8cnSDTEhIGEZrrZcKIT768g1CiPatEbZa62uBawEOPPDAXaLHo8/tAxiZntrEKCphF6ESVAC2uad2eI1E1CYMM9o9ta+J1vparfWBWusDu7qa+0PyOmJBhwphSoQxMlm+ehhjGRLTkHge/O1vIUrV6GotYUcRWuQIzE4io+WVghZACLS0iY08gdlBYHURG1mEjrCiQfK9T9H56B/xoj6WHHQYT575Me69Pcc3r2jl5r9mMGOFFQ1gh31IHRIZBQKzE4IQpETbGbq7Yfp0OPjg9XcbKU2xGpCSkkLOQQhBFIZEgY+dSiFfRz+ltG2sXJbxIkZGESsqHrHSZDIZ9j/QZp95dVYuD/COPZlnfvEwU+a2cM3Puoh+cQOyuhIpW5gwIUNPj8uf/lTFLTu0plppc9qQQlIOypT8Ekqr1w4m4RUor8qaxc/y7POLOenmL7EgfQj/7+zlTJ28FCEEU6dO5dprr3312aYJCQlvNNcP/X0U+NfQ30c3OJ+wGUaq/Lg93U41qBLEQVPXTUjYHqn4DVG7reXHkIjahI3Z7jO12xM6UI1MqDMyT1sQKWKlyaZMoghuvVVTKtWY2NmDrQ1i2UFktK6f/bglMQuTyCiAUUDHNWb//EN0PfVPur9/C1aqneuvH8cf/pThgHkBF18wiKMUCElk5IhlDoRABHVEHKEyBUplQSYDRx0FG7bHDrgBcawYU0ghpUBrTeA2zKGs1Os3tJK5HFYQMD7wWalM1lR9JuRTZLMZ9t0vBuXy5NMGk6fZXPYl6PnJnzntxs/z+B4WK494Nzo7ls5OKJVcbrhBctJJWcaNs2g32nFDl2pYJfIiWpwWTJl8HLaUoDLAskXPcdcDijETsyw55Fymzxnk6u+dzHeuSaaFJCRsj2itTx76u9tox7IjMpypbU+3N3Xd4fUG6gOMy41r6toJCdsbw5nabS0/hkTUJmzMaI/0+Q0wH+gUQqwELtda/2w0Y3o1tNaN0mNDIkZoFmp9aDatY0ruvx9WrgyYOGYNFhGxnEBktL2udZVW+LpCKHwe+vBVtPT0IDNz+K+rTO5/wOKkY+t85EMuwkwRCmejEmW0Rvo1tGnh6xTVKpx5JqQ2qNqthxHVekiLbZIaEvyh7603h9qG3lUhBEY+T26wSLsKKMeCgZpPR9YhX8ix99wySld5emELk6cajP/wadz/5nt5MT2d7309yyc+1EvblE5aWhT1epU//9nk+OMdpk6FjJXBkhaloMSgN0jBKeAYyfzUzaHimGr3al58aTH/eCjFFRftxeQDJOd+eDYHv6dra463JCQkjBJCiMOBx7XWNSHE+4D9gau11stHObTtmt5aL22pNiyjCaP0NqAj3QEkojZh16DZmdqiV9zmdRJ2Dka1/Fhr/R6t9XittaW1nrS9CloAHTaytNIZmV5arTV+GONYBs88I3jiCc24rtWYugLGeCLj9R0ZDnQdueoR5vzyYmzlYLbsTn2PNyPtNGMnWHzgA3DeR9PETgeR0YKSqY0ywcJ3QSliO8uaNY0MbUfHxvfRXw0whKB1aHzP6zWHejWEbSOzWQpxREZoapGiWA+RUtLakWf2bNh7rworliuUgsG938zK6jhKz/dz2KcOR//tLxhRmnTKoKOjzN/+FrN4cWNty7Boc9owpUnJL+GG7jbHuzOiI4VfqrH2hed57vlneHhBip9elOe5cHe+OP13nP2OdiwrUbQJCTsIPwRcIcS+wAXAEuB/Rjek7Z++el/TTaJgfaY2GeuTsCswnFltSbVs81ojlan9/TO/5+oHr276ugkjy3bfU7u9oIMYpECYI/OU+ZFCA8U+g3vvhfHjitj0IkUnoTFmq9dTWuGqIp6uMPFftzPjzt/RNlCkVJQsXdq4zjnnwOlUF/JzAAAgAElEQVSnb6aaWSlkUENbNt19NrNnwx57bHyVUi0giBTtWRtjKIO9zhzqNWbSbg0ymyHtWKS9GtIUBFFM0Q0xDIOW9iyz94qYvVeVlStBKZi7j8EXPq9YKSdz+a9358nHQ8wwS9oMGTe2yM03axYtaqxtSINWpxXHcKiG1XWlMbs6WmmUHxOVPdzeEiuXL2bZmiU8+0Ibn/7CwfTlJvHC/idw5OfeSj6blG4nJOxARLoxwPs04Bqt9fdpjPVJ2Ay9td6mm0RBY6QPkJhFJewSlPwSsP0aRd3w7A28+3/fzadv+TQ3vXBTU9dOGFkSUbsF6EiBGrksLUA9iPHqgjtuk3R0xKRYhsAmsqdsVQ8tQKxDanqAiJCUyLHq9Iu5+5pnWKqn8oUvwJVXQhS99jrSr4GGUpgjnYbDDts4lDiKKdZDHMsgn26UY21kDmU07/kSQmAUCmSFwPBqmLZBECvKXkQq7ZBryTB7VsCee7isXNmYdjTmoOksuebP9LbvzqVfy+D+9v8wXYOMrDNxbJnbbtU8//z69VucFjJmhnpUp+SXaOzz7XpopVFehKqGBBWXWnmQZQOL6S2thKjAZZfNJZsKeecnPPK//xFj9t19tENOSEjYOipCiAuB9wF/F0JIoLk1tTshvW5v002iYINMbT3J1Cbs/KzL1DrbX6a2p9bDWTecxcGTDmZ212zO+9t5Sc/uDkQiarcAHcQNNTdCWdpYaeqB4qF/GIAm5ywD7aPMabAph+PNEGqfmi5ilwd461f/ndY1qwFYXB7DF77QGBF0wQVgvtaycYQI6kRmmsGSyTHHbNxHq7VmoBoQa03nUNlxs8yhXg1hmqQLeawgIvI90raBF8ZUvJBsPk06a7P3ni6z9vDXCduuCXmu+lqNDxzwEGf88X1MvvHHaJEmJctM7qpxxy3rS5EBcnaOnJXDj32KfnGXckbWSqPqDTGrvAgvqFELiywvvURlsB+/t4uHntqPGyaez31tx3LqsZI9d8uNdtgJCQlbz7sAH/ig1robmAR8c3RD2v7pc0em/HjDntqEhJ2dktfcTG0lqDRtX+3WJbfiRR7XnHANPz75x6wsr+SGZ29oytoJI08ial8DHWt0pBC23CbDo81RD2OefBJ61hiM6Sgioj40XWC2btU6gXap6xISg45Bl5alT5IeWMVLL8GFFzZE3te/Dnvu+dprSb8KAlYNZDnoIBj3Mu8Kvx5RDWPyWQvHbGRkh82hnGxuxJ4rmclQyDiEtRpCx6RtAzeIcYOYQmsOyzaZs1eVmTPXC9t0Wytv/9wMHrroVzw9/1xu+GuWQNjYTpkJHSF33RiwdMn6L8SMlaHFaSFS0S6RsV0vZgN0qIgIqcc1akE/q/tXUFxb57a/zuBrP9yP3DiT1XMOJDriMA47qGPEXueEhISRQ2vdrbX+ltb6vqHzy7XWvxrtuLZntNaN8uMRyNTm7BymNJOe2oRdguHMZ87e9oPiw8K4GlS3eS2AW5bcQlemi/3G78fhkw+nM9PJ3UvvbsraCSNPImpfAx3GgEBYI1d6/NLymKefkEya4GNEK1E6jbInbtUavq7h6SqmtsmKNqq7zePOH71A/5y38L//C47TELTTpm3BYlGACAMG61naOyT777/x5jhUDLohhm3QltqEOZQ1slVsTksLKcOgXCqTtQ1SpkHVj/BjTUt7Hss02HdujRkzPFas0GgEodVOaf9juf/hDL/5RcyUc8+k8PCtGBmfrk644+8hKxeH6Lghbh3DoeAUCFW40wpbrRs9s6oaNt7npsDHww9KeO4a1vT18tJzEX/+wx589TszeeFJj+6+OmtPeCdTfvQlLHPkPhMJCQnNRwhx/9DfihCivMGpIoRIauw2QyWoEKpwRDK1Qgja0+1JpjZhl6Dsl8nbeQy57fsQw6K2GSXCSituW3Ibx8w4Bikaiaz50+Zz19K7dsp9wJ2RRNRuhsYYH4UwBUKOTEaqWI65627N2E6BLbtRcUgsxyPklrsG+9rF1zUsZXHEt85n2k0/AkDZjXrhT3wC/vM/YcKELVtPelUiJSn5GY4+euNSZa00NTfEQ9OSsTCHnhffbbgGO5nmmUO9GkJKWttaUFFMpViikDaxDUnZC4mAfGsOS5rsP6/O9OkuK1ZEaAxCs52Tjov44Olr8MsBv/lNgUq5D5EOKHSa3H6LpmdZiHJDtNI4hkPezhOogHKwc+3vaaVRtRDtR2AIYktT90t4bg9+tZeFS30evM/gjltm8t2fTeKU/F085c5gt7UPc+LbsuTTyeijhIQdDa31EUN/81rrwganvNZ622sBd2J6a70AI2IUBY0S5AEvEbUJOz8lv9SU0mNorqh9au1TrK2t5djpx667bP7U+SwvLWdpcek2r58w8iSidjPoUAEaYY/UGB+4816FVtCSLSHjEjFtYG75bNeGoK1i4ZCNUxheFcOv8dJLcMUVUK02srRjttBAWQQuIo5YU8px8CGCrpf9fvv1iHIYkcqa5IcydVEQEAcBdjqNbMKRty3BchwyuSxV1yOq1WjNWFiGpFwP0aYgk0tjGzZvOihixgyXZctcwlgTmG2c/P48f/zojfxwxdu5+PKJyIdvwxL9mLmYG2+XDPbrdX2lKZla12O7s4z70ZFC1ULQIByDQHnUqz2EtbWUuqvcfJ/BY4/YLHxyGj/45XgmTNSceMEEVsw4hHnvmMX4juxoP4SEhIRtQAgxZVOn0Y5re6bXbYjakcjUQsMsKik/TtgVKPvlpozzgeaK2luX3ArAsTM2ELXT5gMkJcg7CImo3Qw6iMGQIzbG57lFmhdejBnX5WPrAVTkEBltSLll5bvBBoI2LQooJ80jF/+ZO/a9gEsugaVLG6J2i1EK6dUo1y1aulLsu+/Gm8MgxvUjlC0pWCZSiMZ8XbeGNAwsJ7XpdUeI1pY8wrEpl6voIKA1bWFIQckNEbbETlk4psMRh1vstZdixYo6XuBR1WnecqTL5V/oIVfp5fir3svsX19E2i4DJf52a0TVE+igUZqbUs66cT9BHLyhj7HZ6FCh3AgEaBuq1R7c0nLc/kGefMzij3cUKFVNdhuXJ9NSYN7MEl+81Kc330n3tT9n1rwpSR9tQsKOz983ON0BvAgksys2Q5/bBzAiPbXQGOuTlB8n7Apsr5naR1Y/wvS26YzPj1932eyu2XRlurhr6V3bvH7CyJOI2ldheIyPsEbmKSqX4Y67Yzo7Y9KyjIgjAtGCNFI0pitsnlD7jR5aHCY/8TBvuuIkzFqJl5ZJLrlU4Djw1a++0uBpc0i/ShxrBv08Rx21cdmxihVBPaIuNOmUSWZ4Jm29jlYKJ5t9w8WOIQS51hY8wyAoFhFxRFvGRkpBqd4QtoYhEUoy/8gMBx6YYc0ahyg2CYxW5s0LuOJqnwUf/zqL3nEeq3stcvmAwOvjL38foBprhCnQfkQ2TGNgUA7KxCp+Qx9ns1BBjKqHICGgRrlvCW7fal5cKLjppg4WLC/Q2hXj9hWQqTHsN6fMbZVD2f8PlzJjpuKQ/ZrTA5OQkDC6aK3nbnDaHXgT8MBox7U9M9Llx+3p9mSkT8IuQdkvN2WcDzRX1D7d8zRzx8zd6DIhBIdMOoTH1jy2zesnjDyJqH0VGqXHYkRErVJwzz0gDEUmXcXBJVIZlMwit6CXNtYhdV1GYpIWBZxSD06ph1WrBZdeyjpBu6U9tEDDHCrwWFvMMO8Ak7Fj12/SWuPXI3ylEEOCVgiBimNCr47pOBjm6Iw4zJkGRj5PDUFcKiG0Widsy14EQ67Vfj3kTQdK5s936O3NoHQOkZ6Mk+uieNg7+Mu90/jsZ1uZ9s3L2bP7MaqVkJv+tpbBagVtS4SCXJRBK00p2PGMo5Qfo72IGJ9KdSnllS+wYlGd228by2PPTcYYlyKXr/Cra8dz4ZfG8+wykyCTZ9nc4+l70xHMPzxNykz6aBMSdka01o8BB492HNszw5nakSo/7kgnmdqEXYOyX97uMrV+5PN8//OvELUAe3ftzfP9zxPG4TbdR8LIs3VDUHcRtNLoUCGskRnjs2gRLFuuaB3rksKFyCQkjZDWa2ZplY5xdQmBICNaEUKwav5ZrHrzu1E9BhMmwKc+tZWCVmsMr4LrSeyW7CvcjkMvRkWa0JZYhiAjGzH6QzNpnfTIm0O9GoYQZG2LajZHWKtAsYjR1kZ7xqZYDyn7ETnbQIbguyF77WmSzRrceiu0tEA+34LG5G1v7uHxe0JSCx5kdWomE75wKquWDXLv3VUOOyKgrbUVMzbIhSnKyqUqq+Tt/Kg9bh1F6DiGKEIr1WjQHhbaQoCUQMPgLPYDonqNMK7h1Qbp64Gnn+uk3x1Px3gbUxTp6S/yo+9O4dnnUvz7mX1ML7h4/gTu+beLOe1USXs2mUebkLCzIIT4zAZnJbA/sHqUwtkh6HV7SZkpstbIeAq0p9txQxcv8kiZb2wrT0LCG0nJK213mdpF/YuIdcycMXNesW3vMXsTqpDFA4vZq2uvbbqfhJElydRuAh0NGUSNQJa2XIb77oO2rhApKqR0RKwdYpHGMDafpVVa4eoiAFmV46BvvIvOx2/HdUFLg/Hj4Rvf2EpBCwjfRUcxPdU8Rx3dKF0eJgpiQj8msgTalGQNAyEEYeAThyF2Ko2Qo/s2yhoSaVl4+QI6jhsZWwFtGQvbkFSDGF+CNASBGzFxXMgZZ2h8H3p7ITay5DrHccmVZT68z52c/sDn+d3vJDNTFVavauXRRyL6+3rxdIAlbdKBjes3dj7eKLRSqHqduFQi6u0l6h8gLpaIqzVUvY4OAnQYoqMI5dUIqwME5W5qa5bi9iynXu6mr7vEw4+0cfejs4my05k43UEzwOIlVb5y2TSWvOjwsU+GfO25d/K2r5xK30CFo47WTOwoJH20CQk7F/kNTg6N3trTRjWi7Zxet5fOTOeIfRe2p9sBkmxtwk5PMzO1w8mFbRW1T/c8DbBJUTu7azYAz/Q+s033kTDyJJnaTaCDGKRoukGU1nD//Y1eVWGWsHSIVA51YSMNEyFevV9Ra01dl1AoMqKVdLmP3MpnEd1ruPR/YOZMOP/8RpJuq4hDpF+jp+ywxxyHyZPXb1Kxwq9HSFMQmAJDQMaQaKUIXBdpmlip0T+iLIUga0iqmKTzBYxymbhYxGhtpS1rU/FC3CAmFALHAEJFPh3yjjNM7rhTsnIljB+fxsxN4qJLlvOdH6S48Xeaa286glkHHs9fTvkBjjPA7NkDpPN5MmaK0AspU8bKWiPaZ6qVQrkuynUbbsWGRNg20rYRhoE2BBqF1gFaRygVARKBg6qbGFYWrx7z9ELJs89nSedzTJohgRi/3osflnjmqbEoZXDZVyKmTo9Z1HkplWV9HPTmkOmTspgy+ZpISNiZ0Fp/ebRj2NHoc/tGzCQKGuXH0BC1E/JbeWQ6IWEHIVIRtbDWNFFrSIOslW2KqLWkxe4du79i256deyIQLOxduE33kTDyJHurL0PHQwZRqeY/NUuWwIsvwoTJ9UaJkRbEGMSkMF+jl9bTZWJC0qKAKSz89vHc8f89xpe/brNkCbzrXa8vJlmvEESC0MpzyCHrL9dK49Wixv8pgzhWtBgN8RZ4DXOoVG70ym9fTtaQ1JWiapi0F/LE5QqqXMZoaSGfsnBMg7IXUlcarTXSV1gi5ti3mjz+lMmCBYKurjyZ9Dg+84nVLD25lRdfupDBPY6gs8tm4QtdpDNFZuxWQTkRaTNNrV6lJIq0ZdubfvRea412XeJaDT30fhRpB2FKtI5R2kepECK17jZCmEjpIKWF9gXEmkUv1nnoXxol0kyYksEwQOsYr9LNSyt9Ju+W5cwzsxx/RA+TVj9M0TyRZ9rnM+PIAfbcAzLm6JWWJyQkjAxCiL8Cr2oMoLU+9Q0MZ4egt9Y7Yv20sD5Tm4z1SdiZqfgVgKaN9IFGCXIzRO2szlnYm6iYzFgZdmvbLcnU7gAkovZlrDOIanKW1nXh3nth7FhNpItIrbC0hY+FNA3kZrJhnq4S4uOIHO1Ln2fSPdfxzHuv5JvfsXniiUYP7ZvetPUxCa82NJO2wFuOkeSG2ia11nhuiNaaVMZiQMUYAtKGJI4iQs/DSqUwzO3n7SOEIG8YFKOYum2TzmWJqzWQFYx8HtuUdOYcvDCmHsT4Amp+TKkUMnk3SOVNHnjQQJfSjOnIMmZqjaWTT+GfD7dy7Zc0vz/8GnoWzsI+51AmT2o4IFuGg1/zqBpV8unmCXwdRYTFPuLABUsg8g7CBIggAhAIIZHSRkoLIUyEsNYJa1WPWLvC458P1ukeMBk7IU8q0zDy0ipi7Yo1fOv7HaxcmeKaH2gMS3Hony5h+n2/4fqvvsTEvdLsu19MwWlNyo4TEnZOXgTGAb8eOv8eYC3wp1GLaDun1+1lRvuMEVu/I9PI1A4bUiUk7IwMi89mZWqH12qGqD140qt75c3ump1kancAth9Vsh2g9ZBBlNkw2GkmjzwCUQSOU6EahaS1hRYQvUaWNtAugXaxSeOIDGP/9Xcm3v1rLi1ewAMPjOGDH4Sjj34dAUUB0q8x6KYYMynFnns2Lm7MnY1QkcbJmAQS4ghazKEsbd1FSImdSv//7N15fF1Xdejx395nuLOuJEu25HnOPDhxgIRMkAEzB2haaErLUFKgUB5QyhBIaSlleryWlr5CSimUR0ofPEogBcIUSAIkISEDjmPHs/EgW7PufIa93x9XcpzEsiX5al7fz0efT6507zn7KJJ111lrrzWBk06upKPxjaEUGVLpNNpaTKkMSuNk6809kp5D0nMwxhLEhloQUy2HLG43vPAaw68fcdizL0lbmyXpuXQsKtLkwcLbv0hy3QZ+eeYmXM9hSecgNVNFKUW5UMB3fRLeqXUHtjYmLPQSFvsAg25qwk1kjgla9fB/j37DpdQf8utflNiyNSDZnGD56ixqpDw6KnHfzwf5h893EoaaG98MyawhjGO2vO4TbL/gD0kub2HjJX1kEsnj3rEUQswJz7XWbjzm8XeUUg9Ya985bSua4Q4XD9ORGceMvHEaKW2WoFbMZYO1QYCGNYqCUw9qy2GZ3QO7ef35rx/1OWe1n8UdO+4gjEM8Z3qmfYiTk6D2WFG9i6zyG/ttOXQINm+GpUtDIlsE45FUhgAXpTVaH/8X5NhZtEldzwTuuP797H3BjZyxcwE3dMLLJ9Lawxic8iAxDgNBjt+7ot4s11pLrRQRRwY/5eL6Dv1BeDRLGwUBcRiSSGemvTnUaJochx4TUYhi8tksGIMplVBaodNPltJqrUjqeoCbz/hEYb0h1qIrLL/dn+X+B2IKRcWy1Tn+5mMDvOUffsxDj6Q551aD0zXAFVeGLDqr/roojBka7KeluQ13Atlray1RWCAcPIypBTiJDF7zIhw3OeZMqTGw4/GA++4cIjCG9uUZ3EQaBTimjK0N8fl/S/Cd7y9m2YqI9/yF5fSBe1j9mS/w0Nu/wFDUijrrMp73/H6SCU3Wk27HQsxhGaXUamvtLgCl1Cpgctr6zgHFoEgpLLEou+jkT56gkdJmCWrFXDYTM7W7+3cDHHc/7Ygz288kNCE7+3dyetvpEz6XmFwS1B7DBAZUY0uPowh++lNobrZoPUQ1As+A0sNZ2lGyYdHwLFoHj5RqYsX3P0/3eVfzRLyGpUsXsGEDbNgwsTXpyiBgOTTUxIUbFW1tTwto0y6e71CJDbGFZtfBWktQKaMdBzcxc+eVurreNKoUG5LG4OdyYAxxoQjwlMD2Ka/zHFzPIQ4Nq1bFtLen2fr4AJsfd3G9Rbz3A4N887YaX/laii8d+CM6/uW37L39EZYtHyCqhJSHimilaWlpQ48j4DcmIqj0EA/1o/BINi/FzY7vDmZfH9z14zLdewq0LFA0NTehXR/HFHFNGROHlMMahwebuGpTyB+/QYMT0/Twoyx84l50Vx9RqpNNLy3jpkIyXg59ktFSQohZ7Z3AT5VSuwAFrAD+ZHqXNHMdLh4GYFFm8oLahJsg5+foLndP2jmEmG6D1eFMbYP31B4pHZnw63f27wRgdcvqUZ+zfsF6AHb07ZCgdgaToHaYNRZig0o0tpPt5s0wMABLl5axhERRkiZKBHgo7aDUM7O0sY2oDM+iTak8frGf079yE/33bOZtm/+RD30ILrxwYuvRlQIqCinaHH7aY8MGMMZSK4WY2B4NaK21FOMYVymSjiasVjFxTDKbm/H7LLOOpmoMQ1HMAs9F5/MwOEhcKGKNwcmOnoV0PI3jabykw/kXRKxYWWTLFo8du3JceUWVSy46woHwvRw83M83b3X5vVe1c/aKgwzVqgz2D+C4Ls351jGtM4pKBENHsOUqXiKP19yO8sZe1hIE8OsHQx68r0TerdG5xMGmMrhUcaIBSiX4l//bxGWXl8kvT/In74RmHeMfeJyBxevZ/6K3sveSNzIQpHnZS2KcTKk+ssideaXlQojGsdZ+Xym1Dhh5d7bVWlubzjXNZF3FLgA6spNXfgz1bK1kasVcNhMztbv6dwGwpmX0PfMjAe/Ic8XMJOmYYTaMAVBe44LaoSG47z5YtCgCVSKMXVwT4QIhSbT2nxEgGmuo2PqdrLRqRitNmGvlM699gBf95pOcdx6ce+7E1qNqJVRQwXgpuodSXHklODqmUggwxpLI1ANagIqxxLYeIFpjCKoVHM/D9Wf+PkulFM2uS2xhMIpRSuE0N6PTKUypTDwwgLWjNv4EwHE1maZm2jqSXHxJgZe9JKBjsYdRWQ6mzmHf6kv4wj+7fOnlt6EveB75/iGIYnoOH6ZYPPE/rvWsdy+1vgNQiUjkOvHaOscc0FoLO3fEfPXfizx0/yBLWyu0L7B4CUPCDKDiKt//aRNv+LNF3PbfKe7fnMTz0jQnkpz7ubdy9YeupikoE1QcBoI0L385pPL1THbWl7JjIeY6pdSfAilr7SPW2keAtFLqrdO9rpnqcGk4UzuJ5ccA7Zl2ydSKOW0mBrU7+3bSlGg62oH8eNrT7WT9LDv7dk74PGLySVA7zAYGHN3QBlH33lufSet59RbmtSiJT5VQuSjtPmMv7bGzaFMqj1+p0HnP13n0UbjpX1aybH2K978fxpHMO0oFZXS1hPV8jpRyrFpl6WgPqZUitFaksh7ucEBvraV0TJY2qFaxxuCnZs94F08rcq6mZiylqH7DwsnlcHJZTC0g7uvDRtEJj6GUIpFoIZF2WdhZ4aprHF5xvc/y01owUZI/eW03h6I2ftS7gVe8+0z6htowUUTXgd9SrpSOe0xjImpDBwj6unBNguSCZbj5sXcZPnI45lvfKPD9246QUd2sbhsi64Zo12C1y4NbmnnHBxbxd/+Ypq094gN/M8CLX67JKY9qGLLlpe/g0T/+O0qqlUIBXvYyaG6rUYtrpL20zKQVYn54k7V2YOSBtbYfeNM0rmdGGyk/nuxMbXu6ne6SBLVi7prMRlEnS1aMZmf/Tta0rDnh+zClFGta1rBrQDK1M5m8g2V4jI+16AY2iNq/H7Zvh2XLqigVEMYZdFzFxRKq42dpK0dn0eZxlcfq2z/J+q/ezBv9c+nsPI2bb4ZkcvxrUUEZXSliPZ+am6dWNVx4XkQcWrykg5dwnrKWsqnvpW3xNMbEhLUqbiIxo0b4jEXGcQiNpRAbtFKkHF3fU+u6mMFBor4+nHwefYI9wlq7uG4TUTQIusiixc0sWuxx0cU+G7eF/Pq8M/nCN/+Vu+9KcfUVil1r3sTgH7+aA5uu5Rf33c9f/uWH2bdvH8uXL+ejH7mZ615wGQQRfqoNr7kN5YytMmCwP+LX9/az/bEC2VTA6iU+rvJQ+NTcDJGbRmnNw5uht9/yxrcWeNalVXJuiks/80aK+UU8+EcfJ15xDk+0nke1BNddB+3tlt5qAUc5MpNWiPnDUUopO/wuUCnlADO/DGeadBW7UKhJnVML9fLjRw8/OqnnEGI6DdWG6u83vMa932hKNBHbmHJYJuOPv9/drv5dnLPonJM+b3XLarb2bJ3IEsUUmV1RyiSxYQxKgduYLG0Uwc9+Bq2tBqULWOsRxj6u7cNqF46Tpa2aAhE1kiqLp+pB1o5XvZe+M57LpQdO46KLIDeBUajHBrRxsolD+2I2XhCTyykSaQ/naU2xrLWUIoOnFAmtqRbrZal+anbus8y7DnEYMxTFaAUJrdG+j2ptJR4aIh4YxCYT6Fxu1I7OjpMEDFFUIAwHcd0mMlnNeRcmOGdDO9e+vMYdtw/ywG37CB4rs2Nvlq/89X5+88gXOXToYP172vtbPvHBd+JVP8yrbngTTvoEZb7GgInAhAz2VXnskSLbHqvgupYlS1KoxEKwPpXA5a77PL51u8P1v2u58GLDNa+qceXLivgONHk5XNenlG2llm0l6/r09WpcF175SmhthUJQxFhDS6Jlxu+VFkI0zPeB/1RKfX748Z8Mf27MlFI3AjcCLF++vLGrm2EOlw7Tlm6b9EqW9nS9/NhaK/8eizlpsDpIU6KpoT/fI6XMQ7WhcQe1sYnZPbCbl5928lEia1rW8L0d38NYI800Z6hpDWqVUpuAzwAO8AVr7ceneg3WWGxkUb5u2C/Zli31/bRLlxZRGIxtxsRFPBUT6zRaJ55yrsCWCajgk8JXafI7f80ebx19YY4151zJppPfQDouVS2ia+V6QJvIMdgX0dJkOfscTSrnHvd6S7HBAM2uJo4ioqCGl0yhdWMbaE0VpRQtnkNfGDMQxuTd+jxb5Tg4zc2YUhlTKmFqNXQqhU4mj7u31XHSWGuJ4yJhGON5eZRy0BqWLE/whrcm+L3XZtn52E945M4qX/n7xbxHPcin3Rp/2nkGVn+XnlKJ93/is7zq9X8KUVA/sDVgYzDxcCAbYU3MkcMhWx8P2Lk9Qrk+rYub0clmYpVg+5aYn/wM7v6FQ6GgWLzUUnNjipZalnIAACAASURBVKaGQ5nO/Vu55JZ38Kt3f5Uji1bx4Bv+FynH4/BBzaJF8IIXQCYDYRxSiSqk3JTMXRNifnkv9YD0LcOPfwj8y3gOYK29BbgFYOPGjROr+5sluopdk156DPVMbTWqTjjjJMRMNxQMNXQ/LTw1qO3MdY7rtQcKBwjigDWtozeJGrG6ZTXVqMqhwiGWNC2Z0FrF5Jq2oHa43OmfgGuA/cCvlFLfttZumcp12MgAFuU15q5LsVjfS7toUQ2lKlibJrIaJy6jAKMTOMdkaZ8+i9aplbnowy+iEFzKuzPf4POfn8AeWmvRlSFUWMP6KSIvRVyLGBqE617lkmk6foBqrKUUGxJa4WtNpVxCaY0/kZrnGUQrRavn0B/GDEQxGWvJOvWbGE42g04m6oFtuYIpV+r7ql0X5Xn1D8cBx8F1MyjlEEVD1Gq9WCeL0QnC2BIaQ+zEtJ+V4jWneXzqM9djS50cKa9g66EvoXWZS1t+h13hAxzsPoLr1scPecMFAtZoBgcUBw8Ytj1hGSo4uMk8uaUpegeS7N2tOP0sA1GFT382SU+P4oJnWy67Kua888EJK/hdBzFNi9Dtq1AmxvYexOlYg448Dh5SnHcePOc59Z8nay1DwRBayUxaIeYba60BPjf8gVLqMuAfgT+dznXNVIdLhye9SRTUG0UBdJe7JagVc9JIpraRjg1qx2ukm/GJxvmMGAl8d/XvkqB2hprOTO2zgB3HDH//GvByYGqD2tCAViinMUHt/feD41g8r4C1DpAljMo4pgpeFsd5Mkv79Fm0AENRijdlbuWh8lLe+Y4YR4ONVX2NY8kkx1E9oI0jIi+F0QlsFNPTpznnApcly0Y/RjE2WCDnOMRRSBwE+On0qGW5s8lIYDsUxZRiQ9UYso5DUiuU69b31uYMtlbDhiE2ijCl8tHXx9YSOppQaQJjqAYFjOkBFC4+vnZxAEWMsjXWL3mEr+37b/45TrKs/cMkSs/hu30/4pvmXN7/5y3cfnuSxUstLQss6SaLiWOev6mA52sefzTF5keS9Pc67N+nqFUVqbTlC1+q4TmKd/1FzKIOh2xaoa0mDqpc/oGrCJra+NVN36aQzHD7J+/F0Q7FXg+lFC98IaxeXa+yByiFJWIb05wYe5MqIcTcoZTaALwG+F1gN/DN6V3RzHW4eJg1y06eyTlVI3t2u0vdrGxeOennE2Kq9Vf7T9hleCJOJagd6WZ8onE+I0YC3539O7lsxWXjPpeYfNMZ1C4BfnvM4/3As5/+pMnct2Pjkdm0jfk2dHXB44/D0qUllIqxthljwYYFFBHWyeDoei+OkVm0Gk1K5cEY3L1P8LdfOI3Hup7He/884ozTIkz45PGVUqCGg9vhIPdowGktqlZG1YpYA5GfwWgPBQSRi5d0uOii0dceGUs5NqQdjasV5WIZpTVeYnZnaY+llCLvuSSHZ9gORjEFwNcKTykcpdCJBDaRILYQGUMUhgRhRBwbiCMwBl+5tKTbUARoajgqBmVBa1A+2svx5nfdxI03vo1yZZDS/r9i8aJ2/nLVWtZeeT2tzgBXLznC/972It6S+TLfqVyDE8a86dUKr7mZB+92OPRbRUuL5ZqrDKuXG9atsjThYl2P01Yrlt1xCx2//C/uec9/YEzEnqteR5xfSMUaImOoll1qRY/16+Hii+HY0byhCSlHZZJuEt+R3jBCzBdKqfXUA9nXAD3AfwLKWvu8aV3YDGatnbLy4/Z0PVMrs2rFXNVf6R9Tqe94nEpQu3tgN45yWJZfdtLnrsivwFGOzKqdwWZ8o6jJ3Ldjo5HZtKeeiTQG7r4b8vkIxylhbQpIEMYBOhpC+Wkct95saWQWrbWWpMlhTcTSO7/MeZ/7U242P+ft77iQ51zigBr+32Ms1tY7NFtjMcZAfekoE6OiAB1U6ns+XQ+TyKAcF+06aMeh5zBs2gQn6vU0FMco6nNpozDERBGJdGZOZvESWtPua2rGUI0NgbVUzTN/tBSgXZek5+Fpha803nFGPllrsHb4Z0k5KKW54YbXAz433XQT+/btw0umWfeXf8ZVl1/N1ZWA6pW9xJ97Njdc08y16UFWb/keV7/+Bu76xH380SvP5V3rf8qK7/5vNv/O5wnyC1hyxxc4+4Pv5ntf6iL0UphaFRuFqFoJL9vK/he+mWIQ0t9nMFWPpZ0Ol1wLnZ1PX6tlqCZlx0LMU1uBu4GXWGt3ACil3jm9S5rZikGRSlRhUWZqy4+FmIv6Kn1sTG5s6DFPJajdO7iXJU1LxtQEznM8lueXs7NfZtXOVNMZ1B4Ajr01snT4c1OmkbNpt2+HI0dg+fIhLBqoBwxRrR8Hg+O1oJSDtZayGSCOQ5ImhwJQcPg51/FE3yFesv5CLtj4tCDbUSgD2BiFwcYRKo7rQU0UYgHreVg/DZ6Po/XRDG53N6xaVS89HU05NgTGknM1WimqlXqW1j3BqJu5IKE1ieHvk7GW2ILB1oNZFO4Yfy6U0qjjdMK74YYbuOGGG44+jkxEf7WfMAzJLTiP2qWfZ4PRVIZi4gVr2dr3fnaZZcQHIvx9vSQO7aJaKhNlWxlYcgY7X/AW4tIgUTZm19WvZfcL3oCxKXoHLYOlAKXgrHU+55+r6eh4stT4WIWwQGxjWhIt0r1PiPnnlcCrgTuVUt8Hvkb9/p0YRVexC5j8GbXwZPmxZGrFXDXTyo/3DuxlRX7FmJ+/snklewb2jPs8YmpMZ1D7K2CdUmoV9WD21cDvT9XJbTQym/bUu/pWq/Dzn8PChWWUCrG2CdCEcYSN+nHcFMrJ1Ee7BH1EcZWkyuE6Pn6tyLd/mue5l7UTv/omLjARKojBGJSJwBpUHMHTh0orhXVdbCIFXgLluM94ZxKG9Y9LLz1+gAP1YK4YxXhKkXEcoiCoZ2kzczNLOxqtFHrkDsMkcbVLS7KFATWAcQ3N2RRhYNHJEPOC1XgveQ+bYo/ioEPfRa/krpe8kt4eS/VQyMGWjWy+dgPUNDp0AY/IavxMRMdSy7OWadYu98hmRl9/NapSjapkvIx0OxZiHrLWfgv4llIqQ72Hxf8AFiql/hn4L2vtD6Z1gTPQ4dJhgClpFJVP5HG1S3dJMrVi7qlFNcphmZZkS0OPm/Pr8y4nmqm9fMXlY37+quZVfG/H98Z9HjE1pi2otdZGSqm3AXdQH+nzRWvtY1N2/sgACtxTz1Y9/DBEUUwyVcRaH0hhraVW60VhcP1WbBxTCYeIbJWEkyWhEjhhmbX/48Vc2b2c23u/wO+/ovzUA2uN1Q7WS2C1A9rFag3Kqe/fPIlDh+Dyy6HpBI3mhqIYS32eK0BQKaMdZ07tpZ1JXO3SkmhhMBikaqpk0hmaMmmKlRqFco3AhLhZWJzXLF+ncLQmjqAWKIypzzhGa5SO8RMxSV+RSXgkvRPfnIlMRCEo4GmPjCddNYWYz6y1JeBW4FalVAtwPfUxPxLUPs2hwiFgajK1Sina0m2SqRVzUn+1H6DhmdqEmyDhJMYd1EYm4sDQgXFnag8VD1GNqiRdeZ8800zrnlpr7XeB707LuUODcsfYUfgE+vvhoYegs7M0/Jn6HaMoqmDCIZJOGmMThGGZyAyRtA6ZqAa2xh13Jvjv7j+gfV0z1/8uGDdXD16VBu2Mnl4d47o6OuCss0Z/TiU2VE19vI2rFWGtioljElnZazmZHO3UA9vaIKWoRORE5HM5Wpqy1MKIci0kiAyRsVil0ElNKlX/WVCAoy2e65B0Hfwx3JSJTcxAbQClFE1+Y1vpCyFmN2ttP/W+FbdM91pmogOF+q6oJbmpGeHRnm6XPbViTuqr9AHQkmpsphbqJcjjDWoPFg4S23hcQe2qllVAvWz5tLbTxnU+MflmfKOoyTBSeqy8U7t8a+GXv4RkMsB16zNpwSWOq4RRGReLEyehNIixvSS0Iq1bsF6K++7XfPZLac7b8FY++EHQHjSqC1YUQbkML3nJ6AndyFiGjpYda6y1BJUK2nXx/Lm9l3YmUErRnGymHJYphkXCakjaTZNyUySGfy6ttfXu2cOl51op9Dj3f8cmpr/Wj7WW5mQzjj71cnshhJgv9g/tJ+kmG55dGk17pp0jpSNTci4hplJ/ZXIytTAc1AbjC2r3DuwFYHl+7JNVRkZt7RnYI0HtDDQvO8XYcKT0+NSytPv3w+7dsGDBkzNp47hKHAVQHcIrVlC1kMD2gZ8gkV6GybWT2fM4N/79Wbxs2cO8//3gNXh7Y1cXPPvZ0DrKvxvWWgaierfjZs9BKUVUq2GNwU+lG7sYcUJpL01rshVHORTDIr3VXkphCWMNSikcrXAdjevocQe0YRzSX6v/EWlONuNp2UcrhBDjcaBwgCW5JVPWY6Iz23m0OZUQc8nRTG2D99TCxDK1ewfrQe2K5nFkapvrmdrdA7vHdS4xNeZdptZai41OvfQ4iuCuu6C1tYLWEcbkiMMitlZGBzW8Uh/ay1LLeoR+npTTglL1DKjN5tBnnMYfvG0ZfoNL8vv7oa0Nzj139OcMRTGRtbR4Do5S9SxttYLjebiNjrDFSY00kArj+vzYUliiFJbwtX90r8h4OhVba48ex1HO0eYjQgghxufA0AGWNE1N6THU9+52Fbuw1s6rZo1i7pusPbUwwaB2ApnazlwnvuNLB+QZav5laiM7XHp8amWYW7bA0JAlmytiYjDFQVShBy+KMHFEnMoQLlhEmNT4ThZPJdi10/JP/wQDnWfw4N/egb+4rUEXVReGUCrB858PziiXV4piKsP7aEfG2YTVimRpZwDP8cgn8rQmW0m7aSJbb+7UU+mht9LLUDBEJaoQmei4r49MRCksHc32JpwELckWCWiFEGKCRjK1U6Uj20ElqlAIClN2TiGmwkzbU7t3cC/t6XbS3tjf+2qlWZFfIZnaGWrevdu1kak3YDqF0uNSCe69Fxa1F6Dch6koFD461ULkJAnLh3C8NIEb4eKTVFn2/9bS9N43s8lZwODvfZQFbY2/A3voEDz3ubBgwfG/XokNhdiQ1IrscLdjawxBtYrrJ3DceffjMCO52iXrZ8mSJTQhYRwSmpAgDqhGVQAUCq00ajjTbqzBDu/K9rVP2k/jO/50XoYQQsxq1tp6pvb0qQ1qod51eWT+phBzQX+lH4Uin8g3/NgTDWrHU3o8YlXLKnb3S1A7E82rKMZaW+967OlTKuu5/z6LExbxqruJDSivE5VuxaIIS4MoIoJEAo0mqZro7oYP32z4hLVcfjkcmISAtrcXFi+Gc845/tdrxhxtDDUyvgcgqFbAWvxUquFrEqfO095T9sJGJiI0IbGJiW1c/6Sq3z10tYuvfWkGJYQQDdBb6aUW11jatHTKztmZ7QSgq9gljWjEnNJX6SOfzE/Ke5SJlh+fvfDscZ9rZX4lDx16aNyvE5NvXgW1RBawKG/iVdddByK2P9hP+8IeYmUgswrtN2OtJa7VMHGBwKvi6mZSKs/ggOZDH4JS1WHwU7dwYFWjehw/qVarf4xWdlwzhoEwRitoGW4MBWDimLBaxUsm0aPVK4sZxdWulBMLIcQUODA0PM5nivfUAtIsSsw5/dX+SesiPt6g1lrLvsF9vHjdi8d9rlUtq+gud1MMimR9GYE5k8yrPbVHS4+diWVKo1KFX97RTSpVgLRGZZfiDAe0JgyJ4pDAGUR5aVI6j6Ncylv38eXuF/Kpt+9j9WpOafbsca/J1rsdX3kl5I9T0VGJnwxoWz0Xfcz5g0oFlMJPSpZWCCGEONZUz6gFCWrF3NVX6ZuUzsdQD2qDOKAW1cb0/J5yD5WoMqHy45GxPiONpsTMMe+CWuWMv+uxtZZ4aIjHH+yjqyci05HETebQumX4uDHWWCr2MMaJSXuLIK7vZzw3t5tLmjZz+vJyw68H6gHt6afD+vXP/FopjhmMYlylWOC5OMdcdxyFREENP5lEjTbMVgghhJin9g/tB6Y2U9uaasXTngS1Ys6Z7EwtMOZs7dFxPvkJ7KmVsT4z1ryJZmxkhrsej++SrTGEfX30HhrgvkccWpa34CU0kAFcbBxj4piKLRHbIVJuG1E1ywc+ALfdBr1nX8Gdt+yguPT0hl9ToQCpFFx66VMTwNZaBsOIQmRIaEWr5zwlQwtQK5dRWuNJllYIIYR4hgNDB1Coo/tcp4JSio5sB4eKh6bsnEJMhb5K36R0PoYJBLUTGOczYiRTK2N9Zp75FdSiwB3HvM84ptrdTWmowKM7U8R+K5nMyOy4DNYYTBgRq4iyOYynfIg6+KsPW/5k6zu5qvtrABgv0fDrCcP6TNprr4XkMbNuq7GhJ4yOju1p8dxnZKbDoIaJIvxUSubgCSGEEMdxoHCARdlFeM7Uzm8fmVUrxFzSX+mnNTnDMrUTKD9emFlIyk1JB+QZaN50nLGRgXGUHkdBQOnwYeIoYihuYdvuHEuXAqqCtSmsdTBhiMFQVIN4JsCNl/DXH/fYu63Cy5c+SOz6PM6rG38tFg4ehMsvh0WLILaWqjFUYktkLY6CVs/BP05ZsbWWoFxGuy5eInmcowshhBBiqmfUjujMdcp+PTGnWGtnXKY262cntMdXKcXK5pXsGdwz7teKyTUvglobWzAWlTx5h19jDLVqlWp3N1hLqm0RP/5+mqYm0LqAwmLJYKMIawxVt0QcFcjaHB/5RCtbt8KfvyfFlmf/EHOKd3ctlhgw2OGP+ucOd8PS9dCx3nKkBmb4+a5SNLkOKT168B5WK1hjSGalY5sQQggxmj0Deziz/cwpP29HpoP79t835ecVYrIUgyKxjWfUntoV+RUTrlaUWbUz07woP66XHoM6SelxEASUikWqPT14jkO+s5Nd+9J0d0Nzc3w0S2tCi4kNgVOlZgMykSaVyPO61ffwwGm/z+XPqtZLjifQgMlgqRJTIGJQRRRVRFnFVJUhVIa+QUs6A8+9BHxHkdCKnKtp81zafJe0M/oMXmNigmoV10/guFNbTiWEEELMFsYadvfvPtoUZip1ZDs4UjpCZKIpP7cQk6Gv0gcwqd2PYZxB7QRKj0eszK+UPbUz0PwJarVC6eMHe9ZayuUy1WoVWyyS9n3SCxdSChL8/Of1El8oAWCiBCaOiXVI4NQIhiL27c6h/SauXfIYa4sP41RL415jhKVMxJCKqKp6EJ6wmox1yFmXvHXxSh5u2eN3XuDSkXVp9lzynkvGcXBHubZjBeUKAH5amkMJIYQQo+kqdlGLa6xuWT3l5+7IdmCxdJe6p/zcQkyGI6UjQH0/6mSYSPnxRDofj1jVsor+aj+D1cEJH0M03pwPaq2xEJtRux7HcUypVCKKIrwgIOW4eM3NKM/nF78AxwHfj1Cqgol8TARWx9TcCoP9ik/9zSL++m/bKZQ89r7oLdz1d78mbFow5vVFWIrUM7KBsvhWk7MuOVxSOHhoHBRRqOjpgRe+EFomcKPr2BE+Wp+8DFsIIYSYr3b17wKYlkxtZ67ebflg4eCUn1uIyTDS+GxkDnOjjSeoLdQK9Ff7TymoHemALGN9Zpa5H9SeoPQ4iiLK5TLWWlJa48YGncmgk0n27IEdO6C9HaCEjS02TGCVpeqU6e1RfOLmFqJ93TzecgmLjzwMgPHH1nzJYqkQU1QRsbIkrabJuqRxcHhq1tWYJxtDLVs2se+DjPARQgghxmZkv9x0ZGpHxozsG9w35ecWYjJMdlCbclM4yhlTUDvye3Uq5ccjN7ukBHlmmfNBLZEBpVDOUy81iiIqlQpKKdKJBJTLKN/DyWaoVOCnP60HtEqFYMvEoQfKIXCrHD5i+ehNLfR0O7z/Ld3knRIqHvveF4OlSExNGXyryFmXJA6aZ5YQWwv798MFF8DZZ0/sWxBWq/URPum0jPARQgghTmIkU3sqb3wnaiSDNDJ2RIjZbiSonazyY6UUTYmmMQW1R8f5NCJTK82iZpQ53f3YWouNLMp/akAbhiHVahWtNalUCjMwgFIKp6levvDLX9bnwKZSYG0BG8RAhtALiQn40XfzxIUqH725wuKzz+Nnz3+kXqc8BhGWkoqwQMbWy4tP5MABOO00eM5zYCLxqDExtUoZx/Pw/MbPyxVCCDH/KKVuBG4EWL58+TSvpvF2D+xmSW4JSXfqR9+1plrJeBkZ6yPmjK5iF62pVhLu5L0PbUo0MRScPKgdya6eyg2r1lQrTYmmoze/xMwwtzO1kQXsU0qPoyh6SkBrSyVsGKGbmlCOw549sGVLvTmUtVVsWMbaDMZVlKMS1nj84YsPsC1/ES/a9jlQehwBraGoIhSQs+5JA9qDB2H5crjyygk1UgaebA6VSGcmdgAhhBDiaay1t1hrN1prN7bX9+nMKbsHdrOqZer300I967SieYVkasWc0VXqmrTS4xFjzdTu6t9F0k3Sme2c8LmUUqxfsJ7tfdsnfAzReHM6qLXDpcc49RRnHMdHS45TqRSEIaZcQWfS6ESCUgl+8pORsmODDfvBaqyX5oc/DXj/O1oZ7PFJZDWVsy6kf93FY15LiKGoYjSQte4z9s0+XVcXdHTANdeAO8F8ehQe0xxqjIG3EEIIMd/t6t81LftpR6zIS1Ar5o6uYtcpBZFjMZ6gdnXL6lPejrd+wXqe6H3ilI4hGmvOB7XKUSilMMZQqdSzlul0GmUtZmgI5bnoTAZj4O6763tYUymLCQtYG2F0E7d+PeJzn8lxTnYXC6p7SPoJHn77v9Fz3lVjWkeAoaRiHKvIWve4e2ePdfAgLFwImzaB70/w2q2lViqiHUeaQwkhhBBjVItqHBg6MC2dj0esyK+Q8mMxZxwqHJpRmdpG3LBa37qePQN7qEW1Uz6WaIxpCWqVUtcrpR5TShml1MbJOIeNDFiL8jTWWiqVSr3LcSqF1pp4aAhrLU5TE0opHn8cdu6sZ2ltFIAtUIsTfPofPL5xa4YrLyvy//qu4flfegex24xVY0uf1jCUhwPazCjNoI6u2db30C5eXB/dkziFrQdhtYI1Bj+dkeZQQgghxBjtHdyLxU5vprZ5Bb2VXkrB+OfeCzGTWGvpKs6M8mNrbT2obW5AULtgPRbLzv6dp3ws0RjT1ShqM/BK4POTdYL6KB8FrqZWqxHHMalUCtd1iYslbBDiNOVQrkt3dz1L29kJNoowZgjtwL9+Mccv7vJ55atrXH9djW0Pf4TS4tMxemyZzxoxFWVwhwNadYKANo6fbAp1xRXgeRO/dhPHBNUqbiKBeyoHEkIIIeaZrT1bgfqb1ulybAfkM9vPnLZ1CHGqCkGBSlSZEUFtb6WXQlBoTKZ2+N+HJ3qfkN/RGWJaglpr7ePApGYQbWTAUcRxTBAEeJ6H53nYIMCUSuhkAp1KUa3CHXdALgeOijBRBUuNqra87PpB3mL+iQXLF1NyrqD7WS8ldFvGdP4qMVVl8KwifZKANgjg0CG48EJ49rMn3hTq6LlLRZRSJFLpUzuQEEIIMc9sPrIZYFrfqI50Zt07IEGtmN0me0btiLEEtSPdihsR1K5bsA5A9tXOIDN+T61S6kal1ANKqQe6u7vH9BobWzAWXHW003EymcQaQzw0hHI0OpfDGLjzTiiXIZuOCYOIr38Tbv6bVgqBQy4JV2z/Cmt++f/AyYw5oK0cE9BmcE8Y0BYKcPgwXHVVfWzPqQa0QbXy5EzaUz2YEEIIMc9sPrKZFfkVNCWapm0NMqtWzBVTFdS2JFsoh2XKYXnU5zQyqG1KNNGR7ZCgdgaZtEytUupHwPF+gm+y1t421uNYa28BbgHYuHGjHdNrIgNAEIcYY+qNoZQiHhzExga3pRmlNfffB7t2wdIlMV0HI/7hsw5bHk/yqosexRnMkcu6PPzBW6nmlxG7Y/vjViYmUAbfatKM3nHY2nqH41QKXvWq+gihU2XimKBSwfF9mUkrhBBCTMDmI5s5e+HZ07qGzlwnnvaOztQUYraaqqB2TesaoB64jvb7OxLUNmpcl3RAnlkmLZVnrb3aWnv2cT7GHNA+XWhiInPyuNaGMTGWMArxfX94H20RUwtwclmU77NlC/zqV9CxMOLOHxve9R6f3Xs0737Dg9y6+blc+q2PkfJTlBesJ/ZOHtBaLCUiAmVInCSgrVRg3z5YvRquv74xAa219mjZcVJm0gohhBDjFsYh23q3TXtQq5VmeX45uwd2T+s6hDhVI0HtZI/0Wdu6FoAdfTtGfc6u/l10ZDtIe43Znre+dT3berc15Fji1E1Xo6gJsRgOV3ppS+ZJOMdvgGRNvfQ4iEOUq/B9n7hYwpTK6HQKnU6ze3e97LhjYUQUxPzn1z3WLOnhDW/fzeIFzTzm3kzvRdcReW1jWpfBUiImVpaU1SRGCWjjuJ6dTSTgxS+GlSvrY3QbIRwuO05ks1J2LIQQQkzAjr4dBHEw7UEtwBntZ7Cle8t0L0OIU9JV7MLTHi2psW3hm6g1LfVM7cmC2kZ2NT+j/Qy+8NAX6C51055pb9hxxcRM10ifVyil9gMXA/+tlLpjLK/zlIM1IYfLvZSjynGfYyNDGIYYZUkkElCpHG0M5eRy7N0Lt91m+dW9IXFpAM/Zz+dffQv3H17PutogOrGU/S95D5VF68Z0LTGWooqIlSVjneMGtMbU9812dcH558NrXgOrVjUuoI3CkKBSwU0kpOxYCCGEmKCRJlFntZ81zSuBs9vPZmvPVoI4mO6lCDFhewf3sji3GK0mN+RoSbWwILXghEHt1p6trGsd2/v7sTi/43wAHup6qGHHFBM3Xd2P/wv4r/G+TilNR7qN7mo/PZV+WhMxWT/7lOeYIKYWBbjJBG4YEheHA9p8nh3bAj758Yjbbvc50uPSluzmwmtrxGcsp3vdRZDswMUQByWU0qBdlHZH7dIcYiipGA1krYv7tIZQYQg9PfWg9owz6gFtPj/eqz4xawy1UhHtOCSk7FgIIYSYsM1HNqOV5vS206d7KZy98GwiE7G9dztn1vkk5QAAE7VJREFULZz+IFuIidjWs23KxmOtbV07alDbX+nnUPFQQ29YHQ1qDz3EtWuubdhxxcTMqvJjANfxWJRqo6faT19tiMjENCfrkaI1lrBWA0fVA9pagHYVuJZPf3SAz/xzmt8eSLN8WYUnVl5J4uEUd175SeLcCn757q/gOT7EIViLZWTvrkI5Psr1UdpDKYXFUsEQKIMzPINWDwe0UQSDg/V9s4kEbNgAp59eHxk0GaqlItZaUrmmSR2RJIQQQsx1D3U9xLrWdaS8sc2jn0wjgexj3Y9JUCtmJWst23q38brzXjcl51vbupZ79t1z3K+NlPI38nepNdXKivwKydTOELMuqAXQWrMwvYDe6gBDYYnIRnz/m9/jIzf/NWGpSltzhvf+2Zu56gUvIUpY7r2ryg/+JeCNg3fw2zf8AVc8L6L/Jy8i8sFzs6T8xThO+ilBobUGa2JsHNQ/ajVQGuslqbguRoFvNbqmGSwryuV6R2PXhTVrYN066OgA7/hbfxsiqJSJw5BEJoN2Rm9MJYQQQogTM9Zwz757eOUZr5zupQBwetvpaKXZfGQzv3vW7073coQYt0PFQxSD4pRVPqxtXcutv7mVWlQj4T51O95j3Y8Bjd9asKFzgwS1M8SsCmrj/n76tu9GLV6C1oqEzhIqxde+9XX+5sM3Y/sCOjOdHDl8Pn/+F3ku/rP7OP89K/HaWnjfRd/lim9+mK+vexG91dX86rmvw1EGr9hOVSWwxzRVVgqs1cMfHsakiaOAwJapqQJaaZIqjafSZLPQ2QlLlkB7O7S2wlTEl3E0vI/WT+AlkpN/QiGEEGIO29K9hf5qP5ctv2y6lwJA0k2ytnXt0TfjQsw223rqnYFPazttSs63tnUtFsvugd3PCKQfO/IYWT/L8vzyhp5zQ8cGbtt6G8Wg+IwtkWJqzaqg1tm1i56//wb6fe8gH3aR/6MbcN/+bv7xf/4ry+x5fLw4xM0DH+MRLucK7uBWNvF/tn2Vgc7z2X3lW+m65nWYtmY6k0M0pRRJvx3HSTBas2Ct6x+RtoSuxvGypJ2YHFUSXoVsLiKbn/osqTEx1eLwPtqM7KMVQgghTtVde+8C4PIVl0/zSp509sKzjzavEmK2GRl3c9qCqQtqod4B+RlBbfdjnNl+ZsO36m3o2IDF8ujhR7lk2SUNPbYYn1kV1O5Jns477no1+37qkuszfPoI3J8yRD1trEzkaDYHWb7wJ2xN38Mjgz/l4tpKvvK/Xko6r9G63pc44RbwHRffz6P1iTsF14yhEBkia3GVosnV+NoDkoTVKkG1QnloED+Vwk9Ozf4bay3VouyjFUIIIRrp7n13syS3hJXNK6d7KUed3X4239r6LSphZUbs8xViPLb1bCPtpVnStGRKzneiWbWPdT/GprWbGn7ODZ0bAHjg4AMS1E6zWTXQdCDMsLl/CbUaVBct5s+f9R0eW3wGK3JNHIwG+L02l28F/xPrfBa3/XFK52RoW1Am6w+S9ws0JUNSfppEYsEJA9qaMfQGEf1hjMWSdx3afBf/mJSul0ySbsrjeB5BuUylMIQx8aR/D2qlEiaKSGayso9WCCGEaABrLXfvvZvLV1w+o24Wb1y8EWMN9+6/d7qXIsS4beutdz6e7HE+IxakFpBP5J8R1PZV+ugqdk3KqK6lTUtZ07KGH+76YcOPLcZnVmVqlyyBv/7bGj39A7hOkTOXFjitvcL9D17IX37y8/SVjlAtlagWauQ723nLX/0FFe2RdhSO4+E6SbQ+/iXH1lKNDRVjiazFUZBzNWmtR/0Dp7Qmlc0R1qrUymUqQ0P46fSkzYoNKmWioIafSuH6/qScQwghhJhvHut+jAOFA1yx4orpXspTXLnySlzt8oOdP+B5q5433csRYly29W7josUXTdn5lFLHHevzm8O/ASZv/vSmtZv4t4f/7bgNqsTUmVWZWqsiatFhLr6oxGuujbn8NM2SFYvZ9Pt/zAdv/hALFi5AKcWKpUv4p49/itdd/wd4XhMVlaXPJOiLYDCMKEYxpSimGMUMhhE9QUR3EFGIDYp6MNvmuWQcZ0x3bL1EPWurtKZWLB4ds9NIYbV6tDGUn0o39NhCCCHEfPaVR76Cq11eccYrpnspT5FL5Lh46cX8YNcPpnspQoxLKSixZ2DPlO2nHbG2dS3b+7Y/5XM/2/szFIrnLH3OpJxz09pNlMPyqOOExNSYVUFtUy7muhd4bFjq0aIi3HwLtC8jDmOue/l1PLFzO8YY9uzZww033EDK0bT5Lgs8l6yj0QpqxlKMDYXYUIwNNWPRCrJOPZBd4I89mD2WdhxSuSb8VIqoVqMyNEgcRQ257nomuITj+9IYSgghhGig2MR89TdfZdPaTSzMLJzu5TzDtWuu5deHfk13qXu6lyLEmP1o148w1nDFyqmtfljbupY9A3sI4uDo5368+8dc0HkBLamWSTnnlSuvxNMed+y8Y1KOL8ZmVgW1vuPQZCxurYDTlMdpX0YQhtjI4qcTowainlZkXYdWz2VhwmOR7x79WJjwaPVcsq6Dq09tH41SCj+VJplrwlpLpTBEUK2c0jHDoEatVMLxPJKZ7Iza6yOEEELMdnfuuZMDhQP84bl/ON1LOa5r11wL1N+YCzFbfHvbt8kn8lM+Imtt61qMNewd2AtAOSzzy9/+kqtWXTVp58z6WS5bcRnfeeI7Da/UFGM3q4JaZS1OUMDJ59GtS7BKEVYCXFej/bE3TVJKHf2YDK7nPbWJVLGANWbcxwmqFWrFYj2gzeYkoBVCCCEayFrLx+75GC3JFl562kuneznHdWHnhSzMLOSLD31xupcixJgYa7h9++28cN0L8RxvSs+9rnUd8GQH5J/v+zmhCXn+qudP6nlfe+5r2dqzle9u/+6knkeMblYFtdgYN59DN3eA1oRhiA1jfD+BcmfWpYw0kUqkM8RhSHlokCgITv5CwBpDpVggKJdx/YQEtEIIIcQk+I/N/8FPdv+Ejz7/oyTd5HQv57gc7fCeS97DD3f9UPbsiVnh/gP3c6R0hJeun/obRU8f6/Pj3T/G1S6XLr90Us97wzk3sCK/go/c9RHJ1k6TmRUJnoRyNCrXDsN3fYIgQFmFm5zau0Dj4SWTR+fJVosFykODhEHtuD/w1hiCSpny0CBxEOCn0ySzUnIshBBCNNpDhx7iHd9/BxctvogbL7xxupdzQm+96K0syizipp/cRGQa069DiMlgrOFj93wMT3u8cO0Lp/z8CzMLyfpZdvTtoK/Sxxcf+iLPW/k8Mv7k9qTxHI/3Xfo+7jtwH1959CuTei5xfLMqqEW7MNwqO4oi4lqE73kzLkv7dI7rks43k8hksMZQKxYpDfRTKQxRLRWpFouUhwYpDfQTVCpoxyGdb8ZPyqB1IYQQolGstewd2MvH7/k4l/3bZaTcFP/+in/H0TN77nvaS/OR532Eu/bexYtvfTHbe7ef/EVCTLFiUOQDP/4A3972bT51zacmrTHTiYyM9dnet533/eh99FX6+NQ1n5qSc7/+/NdzxYoreP1tr+fTv/g0A9WBKTmvqFOzKUW+ceNG+8ADDwBQqVQIhqpk0mnc3OyaCRUFAXEUEkcR1pj6/l6tcVwX10+gnZn9x1UIIeYKpdSD1tqN072O2Sy1PGVXvnclwNEqJIt9xuMTfW3k8Ym+1ojjVKMq5bAMwNWrr+bL132ZxbnFDfk+TIV//fW/8ub/fjORiWhONpPxMiTd5JTvWxTiWNZaqlGVrmIXtbjGa899LV++7svTVml4/dev5xtbvgHAu57zLj79gk9P2blLQYlX/d9XccfOO9BKH80cAyie7Ocz2n/PZ79zxu/wV8/7K2Bif5vdSVnVJDPGENZCXK3R/uy7BNf3cX1/upchhBBCTIhS6kbgRoD0kjTnLDznKW/Qhp/zjMcn+trI42d8bSzPGeO5PMdjTcsarlp9Fae3nd6w78dUeeMFb+Tq1Vdz+xO383jP41TCCtW4ShiH8qZYTKukm2RheiEvO+1lPHf5c6f15/FtF72NtlQbGxdv5LXnvXZKz53xM3zvhu/x4KEHuf2J2zkwdIByVH7Gzbbj/fd8d6o3GGdlprZWq1EdKpP2UrhNCdQpjuIRQggxP0mm9tQdW0UlhBBCnKqJ/G2e2ZtRRxEEAdoqHN+RgFYIIYQQQggh5rFZF9TWx/gYfNdDebL3VAghhBBCCCHms1kZ1BIbXM9DebNu+UIIIYQQQgghGmjWRYVRGOEpF+XPuqULIYQQQgghhGiwWRUZWmuxYYznSemxEEIIIYQQQohpCmqVUp9SSm1VSj2qlPovpVTzWF5njMExGu1JgyghhBBCCCGEENOXqf0hcLa19lzgCeD9Y3qVBd/zUL5kaYUQQgghhBBCTFNQa639gbU2Gn54L7B0rK91fA/lzqqqaSGEEEIIIYQQk0RZa6d3AUp9B/hPa+3/GeXrNwI3Dj88G9g8VWubRm1Az3QvYgrIdc4tcp1zy3y5ztOstbnpXsRsppQqANumex1TYL78Tsh1zi1ynXPLfLnOcf9tnrSgVin1I6DjOF+6yVp72/BzbgI2Aq+0Y1iIUuoBa+3Gxq505pHrnFvkOucWuc65Zb5c52SaL99Duc65Ra5zbpHrnFsmcp3uZC3GWnv1ib6ulHod8BLgqrEEtEIIIYQQQgghxNNNWlB7IkqpTcBfAFdYa8vTsQYhhBBCCCGEELPfdHVc+iyQA36olHpYKfW5Mb7ulklc00wi1zm3yHXOLXKdc8t8uc7JNF++h3Kdc4tc59wi1zm3jPs6/3979xeiWV3Hcfz9Yadtda20Atl2DfdCimXRjAq1CGm92Gpxu+oPRFZ0ERSp1IVbFxEUXhRhF9GN2QqaEma1RIWmQUEYUoKp25/FUFdXV+wvRZn17eI5Q8uYVsM5z8/zm/cLhjnPmbn4nDPPzGe+z3P+NL9QlCRJkiRJ6+W9cSRJkiRJs+VQK0mSJEmardkNtUk+m+QXSe5O8o0kp7bONJYke5P8MsmRJFe0zjOFJGck+UGS+5Lcm+TS1pmmlGRTkruSfLt1lqkkOTXJTcPv5eEk57fONIUklw/P2XuS3JBkS+tMY0lyTZLjSe45Yd2Lk9ya5NfD59NaZhzDM2xnt52yTD3vR7u5P3ZzP+zmeXfzmL08u6EWuBXYXVVnA78CDjTOM4okm4AvAm8GdgHvSrKrbapJPAV8tKp2AecBH+p0O1ddChxuHWJiXwC+V1WvBM6hw+1Nsh34CPCaqtoNbALe2TbVqA4Ce9esuwK4rarOAm4bHs/dQZ6+nV12SgNd7ke7uVt2cwfs5i66+SAj9fLshtqquqWqnhoe3gHsaJlnRK8DjlTV/VX1JHAjsL9xptFV1bGq+tmw/CcWf2S3t001jSQ7gLcCV7fOMpUkLwLeCHwZoKqerKrft001mRXgpCQrwMnAI43zjKaqfgj8ds3q/cC1w/K1wNuWGmoC/2k7O+6Upep4P9rNnbGbu2M3z9iYvTy7oXaN9wPfbR1iJNuBh054fJROC2VVkjOBc4GftE0ymatY3I/5n62DTGgn8DjwleFQrquTbG0damxV9TDwOeBB4Bjwh6q6pW2qyZ1eVceG5UeB01uGWZKeOqWlnvaj3dwfu7kTdvOG6Ob/uU+ek0Ntku8Px8av/dh/wvd8gsXhMte3S6r1SnIK8HXgsqr6Y+s8Y0uyDzheVT9tnWViK8CrgS9V1bnAn5n/oTBPM5yzsp/FPwovA7YmeXfbVMtTi3u/dX3/Nzvlv7Ob+2c3d8Nu3gB67+b/t09Wpo2zPlV10bN9Pcl7gX3AnurnRrsPA2ec8HjHsK47SZ7HojSvr6qbW+eZyOuBi5O8BdgCvDDJdVXV2x/bo8DRqlp9Rf8mOixO4CLgN1X1OECSm4ELgOuapprWY0m2VdWxJNuA460DTaXTThmd3QzYzXNnN/fFbu60m9fTJ8/Jd2qfTZK9LA4bubiq/tI6z4juBM5KsjPJZhYnuh9qnGl0ScLiHI/DVfX51nmmUlUHqmpHVZ3J4md5e4elSVU9CjyU5BXDqj3AfQ0jTeVB4LwkJw/P4T10eNGNNQ4BlwzLlwDfaphlMh13ylJ1vB/t5o7Yzd2xmzvs5vX2Seb2YmqSI8DzgSeGVXdU1QcbRhrN8MrhVSyu3nZNVX2mcaTRJXkD8CPg5/z7fJaPV9V32qWaVpILgY9V1b7WWaaQ5FUsLrixGbgfeF9V/a5tqvEl+RTwDhaHwtwFfKCq/tY21TiS3ABcCLwUeAz4JPBN4GvAy4EHgLdX1doLVszKM2znATrtlGWym+fNbu6P3Tx/G6Gbx+zl2Q21kiRJkiStmt3hx5IkSZIkrXKolSRJkiTNlkOtJEmSJGm2HGolSZIkSbPlUCtJkiRJmi2HWkmSJEnSbDnUSpIkSZJmy6FW6kSS1ya5O8mWJFuT3Jtkd+tckiRtVHaztBypqtYZJI0kyaeBLcBJwNGqurJxJEmSNjS7WZqeQ63UkSSbgTuBvwIXVNU/GkeSJGlDs5ul6Xn4sdSXlwCnAC9g8aqwJElqy26WJuY7tVJHkhwCbgR2Atuq6sONI0mStKHZzdL0VloHkDSOJO8B/l5VX02yCfhxkjdV1e2ts0mStBHZzdJy+E6tJEmSJGm2PKdWkiRJkjRbDrWSJEmSpNlyqJUkSZIkzZZDrSRJkiRpthxqJUmSJEmz5VArSZIkSZoth1pJkiRJ0mz9C7WV+oxZGC/CAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_10.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "5 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXycdbn//9fn3mbLZG3SlTZtZWsRaGnZCgKyiBwUBVmEo3B+RysoiHoUUUTlSL/KOSqoeI6n5+hRoXpwAxUXFgFlEUsLRTaFFtpSuiSZJJPZ7rm3z++PSUILLU2zdDrJ9Xw88mhm5p6ZK2mbzHuu6/O5ldYaIYQQQgghhBCiFhnVLkAIIYQQQgghhBguCbVCCCGEEEIIIWqWhFohhBBCCCGEEDVLQq0QQgghhBBCiJoloVYIIYQQQgghRM2SUCuEEEIIIYQQomZZ1XxypdR6IAeEQKC1XlTNeoQQQgghhBBC1Jaqhtp+J2mtu6pdhBBCCCGEEEKI2iPjx0IIIYQQQgghapbSWlfvyZV6CegBNPBfWuvlOzlmKbAUIJVKHXHQQQft3SKFEEKMW6tXr+7SWrdWu45aNmnSJN3e3l7tMoQQQowTw/ndXO3x4+O01q8opdqAe5RSf9Na/2n7A/qD7nKARYsW6VWrVlWjTiGEEOOQUmpDtWuode3t7cjvZiGEEKNlOL+bqzp+rLV+pf/PDuB24Mhq1iOEEEIIIYQQorZULdQqpVJKqfTA58BpwNPVqkcIIYQQQgghRO2p5vjxZOB2pdRAHT/SWv++ivUIIYQQQgghhKgxVQu1WusXgcOq9fxCCFFLfN9n06ZNuK5b7VJqUjweZ8aMGdi2Xe1ShBBCCDHKqr1RlBBCiCHYtGkT6XSa9vZ2+idcxBBprclkMmzatInZs2dXuxwhhBBCjDI5T60QQtQA13VpaWmRQDsMSilaWlqkyy2EEEKMUxJqhRCiRkigHT753gkhhBDjl4RaIYQQQohRdve6u3l8y+PVLkMIISYECbVCCCGGZNu2bVx44YXMmTOHI444gmOOOYbbb78dgAceeICGhgYOP/xwDj74YK677roqVyvGklJqqVJqlVJqVWdnZ7XL2adorbn2vmt5261v44KfXYDWutolCSHEuCehVgghxG5prXnXu97FW97yFl588UVWr17N//3f/7Fp06bBY44//njWrFnDqlWruPXWW3n8celSjVda6+Va60Va60Wtra3VLmefct9L93H9g9dz6ORDeaH7BR55+ZFqlySEEOOehFohhBC7dd999+E4DpdeeungdbNmzeKKK6543bGpVIojjjiCtWvX7nD9Aw88wAknnMBZZ53FnDlzuPrqq1mxYgVHHnkkb37zm1m3bh0AnZ2dnHPOOSxevJjFixfz8MMPA7By5UqOOeYYFixYwLHHHsvf//53AL7//e9z9tlnc/rpp7P//vtz1VVXjdW3QYjduu+l+zCVyd3/eDcpO8X/rvnfapckhBDjnpzSRwghatCJJ77+uvPOgw9/GIpFOOOM199+ySWVj64ueM97drztgQfe+PmeeeYZFi5cOKTaMpkMjz76KNdee+3rbnvyySd57rnnaG5uZs6cOXzgAx9g5cqVfOMb3+Bb3/oWN910E1deeSUf//jHOe6449i4cSNve9vbeO655zjooIN48MEHsSyLe++9l89+9rP8/Oc/B2DNmjU88cQTxGIxDjzwQK644gr222+/IdUrxGh6cOODLJy6kMl1kzlv/nnc9sxtfOP0b5ByUtUuTQghxi0JtUIIIfbYRz7yER566CEcx+Gxxx4D4MEHH2TBggUYhsHVV1/N/PnzX3e/xYsXM3XqVADmzp3LaaedBsCb3/xm7r//fgDuvfdenn322cH79PX1kc/nyWazXHzxxbzwwgsopfB9f/CYk08+mYaGBgDmzZvHhg0bJNSKva4clFn5yko+svgjAJx98Nn875r/5YmtT3DczOOqXJ0QQoxfEmqFEKIGvVFnNZl849snTdp9Z/a15s+fP9gVBfj2t79NV1cXixYtGrzu+OOP584773zDx4nFYoOfG4YxeNkwDIIgACCKIh599FHi8fgO97388ss56aSTuP3221m/fj0nbteu3v5xTdMcfCwh9qZVm1dRDsscP+t4AA5pOwSAZzuflVArhBBjSNbUCiGE2K23vvWtuK7Lf/7nfw5eVywWx+S5TjvtNL71rW8NXl6zZg0A2WyW6dOnA5V1tELsax7c+CAAS/ZbAsDMhpmk7BTPdDxTzbKEEGLck1ArhBBit5RS3HHHHfzxj39k9uzZHHnkkVx88cXccMMNo/5c3/zmN1m1ahWHHnoo8+bN4zvf+Q4AV111FZ/5zGdYsGCBdGLF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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_12.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "6 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZhcVZn48e85d6m1q3rJwpbQhJ0ASSAB2dcEBFEGRLZRcJnIsLjLIj8UVAZRAUWccXBmBCWjOAgoKMomCAQICQQUwhqSkJClt9qXu53fH9UdspGNJJVOv5/nqaf73rpd961Kum+99b7nHGWMQQghhBBCCCGEGIx0swMQQgghhBBCCCE2liS1QgghhBBCCCEGLUlqhRBCCCGEEEIMWpLUCiGEEEIIIYQYtCSpFUIIIYQQQggxaElSK4QQQgghhBBi0LKbeXKl1DygCIRAYIyZ2Mx4hBBCCCGEEEIMLk1NavsdY4zpbnYQQgghhBBCCCEGH2k/FkIIIYQQQggxaCljTPNOrtTbQB9ggP80xty6hmOmAlMBUqnUgXvttdeWDVIIIcQ2a9asWd3GmOHNjmMwGzZsmOns7Gx2GEIIIbYRG3Ntbnb78eHGmEVKqRHAQ0qpV40xf1vxgP5E91aAiRMnmpkzZzYjTiGEENsgpdT8Zscw2HV2diLXZiGEEJvKxlybm9p+bIxZ1P91GXAPcFAz4xFCCCGEEEIIMbg0LalVSqWUUi0D3wNTgH80Kx4hhBBCCCGEEINPM9uPRwL3KKUG4vhfY8yfmxiPEEIIIYQQQohBpmlJrTFmLjCuWecXQojBxPd9Fi5cSK1Wa3Yog1I8HmennXbCcZxmhyKEEEKITazZE0UJIYRYDwsXLqSlpYXOzk76O1zEejLG0NPTw8KFC9lll12aHY4QQgghNjFZp1YIIQaBWq1GR0eHJLQbQSlFR0eHVLmFEEKIbZQktUIIMUhIQrvx5LUTQgghtl2S1AohhBBCCCEGpQfeeID5OVlyfKiTpFYIIcR6Wbp0Keeccw5jxozhwAMP5JBDDuGee+4B4LHHHiObzTJ+/Hj23ntvrrnmmiZHK4QQYig463dncfOzNzc7DNFkktQKIYRYJ2MMp556KkceeSRz585l1qxZ/OY3v2HhwoXLjzniiCOYPXs2M2fO5I477uD5559vYsRCCCGGgqpfpeSVmh2GaDJJaoUQQqzTo48+iuu6XHDBBcv37bzzzlxyySWrHZtKpTjwwAN58803V9r/2GOPcdRRR/Gxj32MMWPGcPnllzNt2jQOOugg9ttvP9566y0Aurq6OP3005k0aRKTJk3iqaeeAmDGjBkccsghTJgwgUMPPZTXXnsNgNtuu43TTjuNE088kd13351LL710c70MQgghtiLGGPzIpxpUmx2KaDJZ0kcIIQaho49efd8nPgEXXgiVCpx00ur3n39+49bdDR//+Mr3PfbY2s/38ssvc8ABB6xXbD09PTzzzDNcddVVq9334osvMmfOHNrb2xkzZgyf+9znmDFjBj/+8Y/5yU9+wo9+9CO++MUv8uUvf5nDDz+cBQsWcMIJJzBnzhz22msvnnjiCWzb5uGHH+Yb3/gGv/vd7wCYPXs2L7zwArFYjD333JNLLrmEUaNGrVe8QgghBqfQhACS1ApJaoUQQmy4iy66iCeffBLXdXnuuecAeOKJJ5gwYQJaay6//HLGjh272s9NmjSJ7bffHoBdd92VKVOmALDffvvx17/+FYCHH36YV155ZfnPFAoFSqUS+Xye8847jzfeeAOlFL7vLz/muOOOI5vNArDPPvswf/58SWqFEGIb54eN60DVl6R2qJOkVgghBqG1VVaTybXfP2zYuiuzqxo7duzyqijAT3/6U7q7u5k4ceLyfUcccQT333//Wh8nFost/15rvXxba00QBABEUcQzzzxDPB5f6WcvvvhijjnmGO655x7mzZvH0SuUq1d8XMuylj+WEEKIbVcQNf7WS6VWyJhaIYQQ63TsscdSq9X4j//4j+X7KpXKZjnXlClT+MlPfrJ8e/bs2QDk83l23HFHoDGOVgghxNDmR41KbcXfPNcjMXhIUiuEEGKdlFLce++9PP744+yyyy4cdNBBnHfeeVx//fWb/Fw333wzM2fOZP/992efffbhZz/7GQCXXnopV1xxBRMmTJBKrBBCCGk/FsspY0yzY1hvEydONDNnzmx2GEIIscXNmTOHvffeu9lhDGpreg2VUrOMMRPf50fEepBrsxCiWRYWFjLqplHs0bEHr138WrPDEZvIxlybpVIrhBBCCCGEGHSkUisGSFIrhBBCCCGEGHQGxtTKRFFCklohhBBCCCHEoLN89mOp1A55ktQKIYQQQgghBp2B9uOKX2EwzRMkNj1JaoUQQgghhBCDzkD7scHghV6ToxHNJEmtEEIIIYQQYtAZqNSCjKsd6uxmByCEEGLr19PTw3HHHQfAkiVLsCyL4cOHAzBjxgxc121meEIIIYaggUotNMbVtsZbmxiNaCZJaoUQQqxTR0cHs2fPBuDqq68mnU7zta99bfn9QRBg23JJEUIIseUMTBQFUqkd6uQdiBBCiI1y/vnnE4/HeeGFFzjssMPIZDIrJbv77rsv999/P52dndxxxx3cfPPNeJ7HwQcfzL//+79jWVaTn4EQQojBbKX2Y5kBeUhr+phapZSllHpBKXV/s2MRQohB4+ij4bbbGt/7fmP7jjsa25VKY/vOOxvb+Xxj++67G9vd3Y3t++5rbC9ZstFhLFy4kOnTp3PjjTe+7zFz5szhzjvv5KmnnmL27NlYlsW0adM2+pxCCCEErNx+XPErTYxENNvWUKn9IjAHyDQ7ECGEEBvmjDPOWGfF9ZFHHmHWrFlMmjQJgGq1yogRI7ZEeEIIIbZhMlGUGNDUpFYptRNwMnAt8JVmxiKEEIPKY4+9973jrLydTK68nc2uvD1s2Mrb22230WGkUqnl39u2TRRFy7drtRoAxhjOO+88rrvuuo0+jxBCCLGqVSeKEkNXs9uPfwRcCkTvd4BSaqpSaqZSamZXV9eWi0wIIcQG6ezs5Pnnnwfg+eef5+233wbguOOO46677mLZsmUA9Pb2Mn/+/KbFKT44uTYLIbYGUqkVA5qW1CqlPgIsM8bMWttxxphbjTETjTETB5aPEEIIsfU5/fTT6e3tZezYsdxyyy3sscceAOyzzz5897vfZcqUKey///5MnjyZxYsXNzla8UHItVkIsTVYafZjqdQOac1sPz4M+KhS6iQgDmSUUncYY/65iTEJIYRYh6uvvnqN+xOJBA8++OAa7zvzzDM588wzN2NUQgghhpqV2o+lUjukNa1Sa4y5whizkzGmEzgLeFQSWiGEEEIIIcT6WLH9WGY/HtqaPaZWCCGEEEIIITaYTBQlBmwNS/pgjHkMeKzJYQghhBBCCCEGCZkoSgyQSq0QQgghhBBi0JFKrRggSa0QQgghhBBi0BmY/TjpJKVSO8RJUiuEEEIIIYQYdAbajzOxjFRqhzhJaoUQQqwXy7IYP348Y8eOZdy4cdxwww1EUbTWn5k3bx7/+7//u4UiFEIIMZT4kY+tbRJ2gkogsx8PZZLUCiGEWC+JRILZs2fz8ssv89BDD/HAAw9wzTXXrPVnJKkVQgixufihj6MdEk5CKrVDnCS1QgixDZo2bRqdnZ1orens7GTatGmb9PFHjBjBrbfeyi233IIxhnnz5nHEEUdwwAEHcMABBzB9+nQALr/8cp544gnGjx/PTTfd9L7HCSGEEBtqxUqtjKkd2raKJX2EEEJsOtOmTWPq1KlUKo1WrPnz5zN16lQAzj333E12njFjxhCGIcuWLWPEiBE89NBDxONx3njjDc4++2xmzpzJ9773PX74wx9y//33A1CpVNZ4nBBCCLGh/NDHsaRSKySpFUKIbc6VV165PKEdUKlUuPLKKzdpUrsi3/e5+OKLmT17NpZl8frrr3+g44QQQoh1CaKg0X5sJyh6xWaHI5pIklohhNjGLFiwYIP2b6y5c+diWRYjRozgmmuuYeTIkbz44otEUUQ8Hl/jz9x0003rdZwQQgixLn70XqV2WXlZs8MRTSRjaoUQYhszevToDdq/Mbq6urjgggu4+OKLUUqRz+fZfvvt0Vrzq1/9ijAMAWhpaaFYfO/T8/c7TgghhNhQftSYKCrpJKn4MvvxUCZJrRBCbGOuvfZaksnkSvuSySTXXnvtB3rcarW6fEmf448/nilTpvCtb30LgAsvvJDbb7+dcePG8eqrr5JKpQDYf//9sSyLcePGcdNNN73vcUIIIcSGWj6mViaKGvKk/VgIIbYxA+Nmr7zyShYsWMDo0aO59tprP/B42rVVVXfffXdeeuml5dvXX389AI7j8Oijj6507JqOE0IIITbUSrMfy0RRQ5oktUIIsQ0699xzN9ukUEIIIcTWYKV1aqVSO6RJ+7EQQgghhBBi0Ami4L32Y7+KMabZIYkmkaRWCCEGCblYbzx57YQQYtszMFGUa7kYDKGRyQeHKklqhRBiEIjH4/T09EhythGMMfT09MjyQUIIsY0ZmCjKsRygUbkVQ5OMqRVCiEFgp512YuHChXR1dTU7lEEpHo+z0047NTsMIYQQm5Af+STsBLZupDR+6BO35QPMoUiSWiGEGAQcx2GXXXZpdhhCCCHEVsMPfVrcFhzdqNT6kd/kiESzSPuxEEIIIYQQYtDxo5Xbj/1QktqhSpJaIYQQQgghxKATRAGOdpa3H8uY2qFLklohhBBCCCHEoLN8oihpPx7yJKkVQgghhBBCDDoDS/pI+7FoWlKrlIorpWYopV5USr2slLqmWbEIIYQQQgghBpdVK7XSfjx0NXP24zpwrDGmpJRygCeVUg8YY55pYkxCCCGEEEKIQWCgUrt8SR9pPx6ympbUGmMMUOrfdPpvplnxCCGEEEIIIQYPP/SxtS3tx6K569QqpSxgFrAb8FNjzLNrOGYqMBVg9OjRWzZAIYQQYhuklDoU6GSF9wHGmF82LSAhhNgIA7Mfy0RRoqlJrTEmBMYrpVqBe5RS+xpj/rHKMbcCtwJMnDhRKrlCCCHEB6CU+hWwKzAbCPt3G0CSWiHEoDKwTq0s6SOamtQOMMbklFJ/BU4E/rGu44UQYltkjMGPfIIoIDIRSqnln0ArpZodnth2TAT26R8GJIQQg5YfyuzHoqFpSa1Sajjg9ye0CWAycH2z4hFCiGYJo5BaWKMaVIlMBIBCYfqnGdBKk7STJJ1kM8MU245/ANsBi5sdiBBCbKyBD4JlnVoBza3Ubg/c3j+uVgO/Ncbc38R4hBBiiwmjkHpYpx7Wl1+EY1aMuB3H0Q5aaYwxeJFH1a9S8kt4oUeL24KlrSZHLwa5YcArSqkZNFYiAMAY89H1fQCZ70II0WyhaYyekEqtgObOfvwSMKFZ5xdCiC1tTYmspSxSToq4FV8tWVVKEbNixKwY1aBKySuRq+dojbVKYis+iKs/6APIfBdCiGYbSGBtbcuYWrF1jKkVQohtmR/5VPwK9bBRFLO1TcpJEbNiyy/E65KwE9jKJu/l6av30R5vRyu9OcMW2yhjzONKqZHApP5dM4wxy5oZkxBCbKiBBFbajwU02n6FEEJsBpGJKHpF+mp9+JFP0k7SHm+nPd5Oykmtd0I7wLEcsm4WYwz5eh6Z50dsDKXUJ4AZwBnAJ4BnlVIfb25UQgixYQYSWGk/FiCVWiGE2CwqfoVKUCEyEQk7QcpJbZLKqmM5tLgtFLwCZb9M2k1vgmjFEHMlMGmgOts/cePDwF1NjUoIITbAQAIrS/oIkKRWCCE2KT/0KfpFgijA1S6pWGp5W9SmErfjjZbmoIJrubiWu0kfX2zz9Crtxj1I55YQYpBZqVIr7cdDnlzEhBDifRhjiCKzWpvvtGnT6OzsRGtNZ2cn06ZNI4gC8vXGeNfIRGTcDK3x1k2e0A5IO2ksZVHwCtKGLDbUn5VSf1FKna+UOh/4I/CnJsckhBAbZMVKrbQfC6nUCiHECoIwouKHeEFEGL2XLGqlcCzF3Xf9H5dceAGVcgmABQsXcMEXL6Boipz2T6eRdOIkrBhKQRTVUcqmsXLZpqWUIuNm6Kv3SRuy2CDGmK8rpU4HDuvfdasx5p5mxiSEEBtqoCpra1sqtUKSWiGEgEZVtlQPqHghYRhRLVV4+QWPt2eXOfy4Mo7l0XPd73n+cYuWxG9pa1nAafU/sMzpZmZ2Lnf87Cb+6ZjDqTsugeOgLRutFZZlobWN1g5auyjloPsvvsYYiCJQCqU3vHHGsRzidpxKUCFuxzd44ikxdBljfgf8rtlxCCHExlo++7GWMbVCklohxBA1bdo0rrzyShYsWMDo0Ttz+dXXcvhRU/jLbws8/NcMT03Pcm/xBMaQ4v7K5ew8uoejnryH40u78D/uF6hWT+ArXMcTHEHPmAl4lRdxTzwf7+BJlC/+DEopLNtGWRo7ZuPGNLatwRhUBBiNVi5auY1KrgJl242b6zZu65Hopp00XuhR9Iq0xds2/wsnBi2l1JPGmMOVUkVgxZ51BRhjTKZJoQkhxAaT9mOxIklqhRBDzrRp05g6dSqVSgWUpqfs86tf/Iw9b/o1J7/0Bt9Oz2b8Pl0sdo6lbXvNpKOzdGw3nOr0e/jaaf+E99auQBuHpCfQGu8kXniX4dlDmT53IXe/ejC5nn245JNdHPbd0yhd8Hkqhx9OvexjuzbJpIsTd8GKMESEqt6f2MZQocLU60TVGijQsRg6mUQ57z8uVytNyklR9IpUgyoJO7HlXkgxqBhjDu//2tLsWIQQ4oOSiaLEiiSpFUIMOVdeeSWVSoVd1XAuSRzKbW3/xA6tj/Fs7zwOPOx47rz8ZXYflyWe+hSO4xJzEzjaIWbFuOYbVzYSYuazpDSfJZX7SZth/OuXrqU7/CpvTcvw9J+SzLxX8acWBy+3I3vs0Em4ZAn+nFcoj9sf17NItmSxXAulIyJTx5iASNlYVgYrVET1OqZWI6jV0fEYuqXlfSu3CTtBLahR9svErThKqS38iorBRCn1K2PMJ9e1TwghtmZSqRUrkqRWCDFkGGMIKxVK3d2MGvk9xnSN5aLKqTzdO4m/Pb2YP1b+TnfP/TiOi0Zj6dUneDr33HMB3mtdHrUj3/nutZx06scJfI/TTiuwcG4f3/x+Bwf+6RmOeSrgXyd4HPrnXzHsxmsoPj2L6sgRlKo5XMdFuzZOMo6VUBhTJQhyKGVjJdNYqRRRpUpUKWM8DyubRblrXr4n7aTpq/dRCSqknNRmfR3FoDd2xQ2llA0c2KRYhBBio6xYqdVKo1AypnYIk6RWCLHNM2GIn8+T71nC0n/7bz4TfYUfLL2M6rAX2Lt2Lm/23AD0sfPOO5OMrTshPPfcc5cntwOiyJCvKiraZsc9ytx2cy9vfKXMjFfaee7ZOA8UvsD+H96bI0buy04dPu7ttxPsux9qz73x+kqogiaWSWMlFJEpv5fcJtLYsTbCQoGgL4eVaUEnVm8xdqxGJbniV4hb8TUm5GJoU0pdAXwDSCilCgO7AQ+4tWmBCSHERhhIYAcmiXIsR9qPhzBZp1YIsU0LCgX65r/JOwteZWHPW7TMms7B/stsP+pn9ObP5M3SL4E+kskk11577UafR2tFa9Ih7thU7TR+OsvunR5nn7yMDx8V8twL7Vz4wJmc+mGbO+6McL77HZyf/wcqmyAxohVlW9T6CtR7qugog21nAEMQ5PBNHtPigmMRFopElcoaY0g7jWV9ykF5o5+H2HYZY67rH0/7A2NMpv/WYozpMMZc0ez4hBBiQ6zYfgyNiq20Hw9dktQKIbZJURhSWfwuS+e/RuGmn/Lr2yMWdLXwtwt+TO+tt/KtazKM2sFDKcXOO+/Mrbfeulr1dUMppcgmHRKuRV3HqKXa0Cgm7dPNXb+u8slPwsJ5msu+lOaiKS/x4Kn/xrwej8q8eST/fB+xjhbCKKDalSMsRDhWB7adBTSRqRAmfUKrgpfvIiwVVju/pS3idpxaUJMWLLE2M5RS2YENpVSrUurUZgYkhBAbasX2Y2hUbOXaN3RJ+7EQYpvjV6uUl7xLrrSYVx5+l+Nu+U/yejSvDv9njjg+yZ77xGhPnc3nP33OZjl/Ju6ggIoHZSeD8YqMHt7Hj38QMmFCmltuUfz8juEkRnbweq7GqX/7GS33/Bx78mSc7bajmitQK5YIPJ9YNo0bbyeKAqKoSthiExZyVHPvYPlZnJY2tI6h+9uvUk6Kelin7JfJxrJrD1QMVd8yxtwzsGGMySmlvgXc28SYhBBig6xWqZX24yFNklohxDbDGEM9n6O0dBHlxa9y99/34oorDmFiZg9OuGhXTjtbkemwaE26m32G4Ja4g1aKYmQoVNJYfo22RJELPh2y885ZHngAjj1CE0YJ/vCh7zJyz9PYtZhlvxGQnPsm3j774OXKRN19xDJp7JY4tt2CbbcQdbTi55YRVIr4KkAnEmjtYlkptHZJ2klKfgk/9Jdf7IVYwZq6tOT9gBBiUFm1Uivtx0ObtB8LIbYJge9TWraU/OK5BE88wA6T/5n7v7CMHbf3+dS3d+MzF2ta2i3akjEsvWWWvEnFbLJJF+Noevw4voqT0BVOOa6XMz5uWLQIlixW3PBvaebUD+bxh32e+dHD6IMOwr77bpIj2sDVVHMFvL4KJjIAaG0Ta9+BeGokVi2G8m2iKMD3+/D9PHHLRStNyS9tkecpBp2ZSqkblVK79t9uBGY1OyghhNgQUqkVK5KkVggxqBljqFfKlJcsodI3n7JbY+nBB/HsuHMI9t2Lm66H087R2ElNS9zBtbfsn72Ea9GejRFhWFayiWIZHFXnuEN62HuvkCVLwLLge9fFeP35FK+lD+TRc29k1rhTKaOJt6ax0i71UhEvV16e2ALobBYdi6PKIXaUxrJSRFEd3+8lphqfYtfD+hZ9vmJQuITGjMd39t/qwEVNjUgIITbQwPhZGVMrQNqNhBCDWBSF1EolvFyOWt8C7Dt+zVMHXUw8gmWfuIZvT+hg/AERNQ0xxyIVa86fvIRr09GWoLu7SndFMzzdhlXLcdTEHmzdRibjcNdd8ItfuCxenKXlnM+y7IkYixZVOPlbk7E/+xnUmZ+gXiiBMbhtaZRWKKWwWlsJczmiQhGrNYt22gnDIk5YpxKUKaKIJYc35XmLrZMxpgxc3uw4hBDigxioyi5f0kdLpXYok6RWCDEoBb5PvVwiyOfxgh6Cp59hxA9/xjR9Kgd8YV9OOW0Y+46NKCuDZVtkE80dW5pKOPjpkHzFI+/GaU12oKt9HDahB2WyxGIJtt8e7r3XYeTIiFNO8eh9PeDdcATKHU4mmcKJDPVSGaU1Tja5WmIb5vNYra04bhtaV0iEPiW/h4ofJ+m0NPX5i62HUmoP4GtAJyu8DzDGHNusmIQQYkOtcZ1aGVM7ZElSK4QYdHyvTr1UIiqX8cI+uoKIL9zzr7zLRxhzzEhOOT3NfmMNNWVQWpNJ2OgtNI52bdJpB98PKVd9bDtGOjkMXe3j0ANymNBDqwx77qmYNMlGKY/2UQ7Tv3wPXUUYPydi3Jt/hR12oLbTLiitsDMJlOpPbLPZRmKby6FaW7HcJOmETbU0j3zlXWLpnbGseLNfArF1+D/gZ8B/AWGTYxFCiI2yalIr7cdDm4ypFUIMKn691khoqzWCd98kcc5Urv+U4tEH0+xxwnC+cVWK/fY1BBgCBUnXImZbzQ4bANuxSCcc7BDK9YBaaCDZjo4lOWxShf1372Xn0RGOY1GpJLj66jhd3R6jRmj+8dcI9+KvEr/m2xQcTTlfJCzVMaYxxlZpjdXairIsglwO43lo7dKaHIXBUKwtJZTxtaIhMMb8hzFmhjFm1sCt2UEJIcSGCKPGZ3KWblzjpf14aGtaUquUGqWU+qtS6hWl1MtKqS82KxYhxODg12rUy2Wo+wTlHgp93dTe7OGdGUVOP2UZX/6qy/jxCoyhrg2OpUk3aRzt+3FiFinXgjCiUPUJIgPxLDrZyqEH++w9uod3F4YUCjaLFllceWWcl1/2GLWLy++/8Bj3n/7fVHQLvSagp6ePqPLeBXzFxDbM5zG+T8xOkHBHUAt9PL+XMKw18dmLrcR9SqkLlVLbK6XaB27NDkoIITZEaPqTWtWf1Er78ZDWzEptAHzVGLMP8CHgIqXUPk2MRwixFfPrNWrFEpR9gmWLyIclFu4yiV9++ynGfX43pn5Oc9CHEo2E1gKlFJmEs9nXo91QtmuhLU1KW6AgX/Ub1VYngZVu57DDInbboRtHe/zgB4qODsN3vuPy+OMe6bGjKTvb8/gfXDq+8GXi/+8yFnX3Uq94yx9fWRZWaysoRZjLYYKAdKwFZbVQjyKCIE8YVpv4CoitwHnA14HpNJbymQXMbGpEQgixgQYqtTJRlIAmJrXGmMXGmOf7vy8Cc4AdmxWPEGLr5dfq1HoLqEpAtGQuyTPPYsbUR/j9nR3Eq1WOP8bm8GNaMWFEoBqfmKViNo61dY6wcOMWykDSsggiQ6HWPwbIdnEyHRx5pGLUsF4Ialx/vWaPPQw33RTj4Yc92tsN6QS86e1BZfjuBNrwbneOYnkNiS0Q5nLYkSJux/GMA8omCArSijyEGWN2WcNtTLPjEkKIDTEwfnag/VjG1A5tW0VfnlKqE5gAPNvcSIQQW5ugWqfanUNFBkyRfCbgBesQfv7kIcRSEQefbXP0iR2YKMRoqNNoO27W8j3rw3YtvFqIjgypmE25HuBamoRrgWXjtg7j6GP7eOTBPrqLGb797RS33Ray//4eYRiSaknw9me/y9NL4KB3q+zUN52c7eIfejBt/dVpZdtYbW2EfX2EuRzJbAt1VaduHOJKEQR5lGpFa7fZL4fYwpRSn1rTfmPML7d0LEIIsbHW1H5cqBeaGZJooqaXMZRSaeB3wJeMMav9T1RKTVVKzVRKzezq6tryAQohmsIYQ1CpU+3Oo7TCigqUygv50bQ9OfqVX1I99BDO+lgfk08ehm01WowHRos2e/me9eHELKLAkNAa19IUaz5+GDXu1Jp4WzvHTonRmihQ6SswdarF8OFxfD/grrt8jBryVmUAACAASURBVInYcUeYMSNO+suXs91F/0K+O0d3pX+cLjQS29ZWTBShCiXiOkYtrKGsNEppfD9PJJ9qD0WTVrgdAVwNfLSZAQkhxIaSiaLEippaylBKOTQS2mnGmLvXdIwx5lbgVoCJEyeaLRieEKJJjDFEFZ9argiOwqKKuvSrMPMdbpn3LPuPq/PpM5ZwwkltJFtieNUAX0OIIZtwsLaC5XvWxXY1Xg38ekg26dBT9shXfTpSbmMcsFIk2ts5/sM5HvxjmWJXRMuwLK++muSOOyyeey7iyisjRo3W3HPu3ezevphdo4hKX56AFrJxl6SlUY6D3dpKkMsRK4bUEoZKUCXjtuF5vQRBDsfp2OrGHovNxxhzyYrbSqlW4DdNCkcIITZKaEIUCq0aNTpb2zJR1BDWzNmPFfDfwBxjzI3NikMIsXVpJLQBtUKZSEdY1KnUu1k6eTJ31D7ByJ0t/uXsdzl+cophO7Xi1QKMAg9DzNbEna1j+Z51UUrhxCzCIMIYQyZhE0aGYn3lymmqo5XjT04T01XK3X1MGG/xta9FvPWW5rLLDMuWhbTtP4oX1UE8+3wLHT++ifSF/0pfsUTeDzDGoFwXq7UVbSBW8qj5VQIT4ThZjAkJgqHTrjVt2jQ6OzvRWtPZ2Qkgs/5CGdil2UEIIcSGCKJgeZUWGu3HMqZ26GpmpfYw4JPA35VSs/v3fcMY86cmxiSEaDJTC/HKFSIdYBHgv/sGPR1tPNh+NnwryRe6l3DkEQ6de3VQrTYuXrX+j+cy8a2/7XhFjmvh10P8Wkg85ZBwI6peSMzWK62t29LRwuRTLB78Q55ydw9HHN5OW1vEtddqLr3U8M1v+uy2m8PixSkWveGxsymg82XySuEnErTaFrbrQjZLItdHvVCiZMVoS7RhWWnCsEQYOlhWsomvxgcXRiGhCTEYItP4sEAptfyT/Dt/fScXfP4CKpUKAPPnzwfYualBN4FS6j5goPNJA/sAv21eREIIseHCKFw+nhak/Xioa1pSa4x5EpB+t0Euigx6ELR6isEh8kKCqkcQ1lH4qAfvJX3h1/nJuPsYedYedJgc4yYF7DdxBH6giYKA0IYwarQdD7b/i0qr5YltFEa0xGy8IKJQDRiW1iu1BGc6kkz+qOahP+Qod/Ww79h2vvc9w/XXg+fVCcOI7beP8beTf0hrus7RQRH3rfnU8Ojaex9aXZdELIadbSXeU6fS103dSRKzUxjjEwQllHLQeuv4YMBEBsKo/6tpfDWAAWMiQhMRmpAwCghMSGACIhWBUo00beAr/d8DV1//bSK3lZgJqFeXzxbd9LklthSlVMwYUwd+uMLuAJhvjFnYpLCEEGKjhCZcrVIr7cdD15C5mItNp+aH9JTqLM0VWVoosjRfpq/sUfPDZocmBjETRkTVAK9eIQo9CHJ0jd2D36U/yS+eOYSet3x2G1Xj4EMzGCveaDvWUIsGV9vxqpxYY71avx421taNO0RmhWV+VpDtiDPl1HZsK6KyrJvO0SE336zYYw+LMKzz2ms1Ro40FKsxHn66jZavf43tPvpRvO4uustlCkGIisVItQ1H+SGlniUYY7DtDChNEOQba+Y2kQkiwrKPV6hSKZYpl4rkqwXyXp5ckKc36qMnypEzBYqUqeg6oR3hui4pO02CNK6fxK4nMfkUTz+cZP5LisWvFzHFT6G8mey51yFNfY5N9HT/188ZYx7vvz0lCa0QYjAKo3D5GrUAtpIlfYayrXfNC7HVCSNDvlKl5hXB+MQcsJQiMIZaXVPz4sTdNC1xG3srXR9UbJ2MMY2EtlYhDCrovsUU22wu+v6H+OOyyZx1TpUjJvZxxJEprFQrtXLjouUpwEDLIGs7XpHSCtu1CLwQJzK4tibpWlT625BXTdYzbS4nntbBQ7/vpbi0h8yINiKdYPp0m+99z+Hss+uceaZNX5/Fn0/4MUd/8hU6nCSFWpUez6OeTtOeSJBuG0GxbwnVvm6S7cOxrRaCIEcYlrHt9BZ/HUxk8Cs1arUadVMnsgGnUW21tIWlbCzVqF5bymrctIWtbMq1iK7ekL5CxNIl8MhDmr89ovj7Sxa1mubjp+U48ENLGTM64qjqjTy2eMi+6XGVUucAhyqlTlv1zvebsFEIIbZGQRSs3H5sSfvxUCZJrVgvXhDRU+olCiqk4y6peBalXJSCKAqIohrVeo1yvYYXZmhNJlYaEyjE2hgvJKh5+PUSlPuI//P5vGgdxB9n387kKT4nHdXN8cfaJFrb8LyIKDSEjsIPIzLxwTHb8do4riaohwT1EDdhk47Z1IOIYq2xfu2qbdXpjM0J/9TBI3/so3dRL+07tjJpUoKjjor49a9jvPOOzyWXROS225N7g904qR4wfPrv8Z97hiWXXoaXSDCipQ3LL1Mq9hKzY1iZDFEUJwwraB1H6y13efBqdUrFQuPNSEwTi8eJ2TEc7WApa7WZmatVWNYF8xeGvPG2R0+fQQG1isV3rrLxPEU2G3LwpBy77VZgz3Elxu7ZyvGPPMeEZX9kkgPz3nu4aIs90ea7ADgXaAVOWeU+A0hSK4QYNFZrP9bSfjyUSVIr1qnq+fSVelD4dLRkiLkZlHqvEqt1DEhhWTUcr0C+mqOvFNKWTm+RxNb4/vKWSWXbKC1V4sGk0XbsU68UiOolgpaI3mNP4if/czTjJoSc9pFeJh8TkR3WQahs/JoPFtTCCNfSJNzB/+GJtjSWo/G9ECdmobQim3DoLXsUawHZ5OqV6GTaYsrH2vnbX3IsWpBj2I4hX/lKmtGjI+64w2bhwojLL6+TSsW47y9w5rNPkXjhSYZdehm9tRrvBgHZVDv1KKRSypFUCjvdgud5BEEB1938kwKHUUixmKdeq6EtTSqbIeEmVnqTMqBUgoUL4dVXYeG7EfXIp1Y3vPS8TbmgmfovChNUOffMMtvvkGP77YpkOuLsvKvFjsMzbJdxSN32Y576fie9d9+HWvAOo0ePZn7/bFFDQf9cFk8qpWYaY/77gzyWUmoqMBVg9OjRmyI8IYTYIKtNFCWV2iFNklqxVjXfp6/YhVYhHS0dOM77z45qWXEScQetcuQqBfqKEe0tWVx70yeZJgiIqlVMrdaYQGYFynXQiQQ6Ht/k5xWbXlQLqZeKBNUCxiqxyCR5ZOIVTNg5w6SgwOSjqmy3QwvGTVEv+qCgBqAgkxi8bcercuMW1WKEVw+JJWwcS5OK2ZTrATF/zWOGY3HNsSe3MeOJHK++VKRjh5AzzsgyZozhhhs0b74ZcuihFSoqzq8n3sCHL86zXSaD65fpfmchvSNHYrsJFDVilQoohZ1IEwQFwrCKZSU22/Ot+BVKhQIEEalkmmQqjV7lA6kwhEWL4B//gPnzQSmDkwqohhF/ud/micc0nqcYO9bglZcShL1MmhSSTMUZO24E2WGKhFdm5P/8O/aXP49KZTj8hzcz78Zblp9DKdW72Z7kVuqDJrT9jyFryAshmio0q4yp1TKmdiiTpFa8Ly8I6S10oVVER8twHGfdSaJSFrFYO21K0Vsu0VuEjkwWZxONsTVhSFQuE1VroEDHYuhYDKV1Y2JUz8fUa4T5AlG1ipXJoKzBX8nbVkVeiF+u4pVy2E89ivPNf+On4/7AXh/NktQ1jj6iyC6dcUi04tVCTGQIHEUQRmQTg7/teEXa0tiuboytjVlorUi5FnU/pFDz19iGDGDZig8d3UZbe4Fn/lYm1Rpx4AGt3HqrIpm0CcM677xTY/ToGPdPb2WKGzD6x1ew45/uY+mTT5IPXCq2IW4bEuUKmhTKdQiCElrHV2v9/aDCKKRYL1IvVbCNTSbbjhN3VzqmXoc334SZM6FchlTKMGy7kHoU8NTfNP/5ExfLgmOOgZNPKrPDdgvI5aoEUYpx4zoYs3sKT3s4fo1hLzyD8/0fwIR94ePngHRyCCHENmG1dWql/XhIk6RWrFEQRvQUu4FwvRPaAUopXLeNNqC3VKKnaBieafvACUhULhOWywDoVBKdTK7UaqwAXBfSKaJKhbBUIuztRWezaNdd84OKpjGRIax4VHu7MJbPwmHDWJg/gLse3ZOLDgg46fgi++yp0YlWwlAR1AOMpaiFEXHHGrSzHa+NE7cJfA+/FhBLOo3ZkBMOfWtpQ4bGijV7jcvQ3qF5/MEive/20bZ9G0q7LFlicdVVmj33DLnwwog/P2oz+ejPssuuuzJi9GisYol3iz0ssMqMiWVwymW0ihPaPmFYwrZbNtnzqwU1ivUiphyQslOkWlpQznu/w7UazJkDs2aB78OwYZBsCXn62YhUOmLsWM2kCYru0yM+/OEKra29VAp9LFuqGd05iokHthBLGcomwC1X6bB97BOOglnTYf9JktAKIcQ2JDSrtx8bTKMteQ3DWMS2Ta7wYo16S71EYZ32lo4NSmgHKKWIuW20pVKEQYneUnGjlwoxYUjQ10dYKqNjMeyODqx0eq1jZ3Uyid3eDloT5nJEtdpGnVtsPqYeUuvpIYwqLHN9zr/hJD5c/T1nfdrhyMPKTNwvwI6nMVaMejXAKKiYCK0Umfi2+Xmc7l+3NvAiorAxf9FAG3ItCNe5bNaIndJ85ONZdhlVZ9n8XmrViO23t7joIsNbb1lcdpnDnDdDHugaz6yDLyEshwybP5+9vvEt/HyBudUCodaYcg0VasKwijEffKkuYwxFr0i+kkNXDBk3Q6IlRUCI53kUi3Wee67GL39Z45lnqmQyFTKtJf7yaIUvXgI3fd/hkT8rXOpkWyqcddYSMplldC8tU6+2cfyU3Tn2qAyxlKFqG+JvvcKI0z+G/fprqHgLjD9YEtpVKKV2VEodqpQ6cuDW7JiEEGJDrJq8DrQiSwvy0LRtvjMUH0i+ksfzK7Qms8Td9x9Duy5KKeKxNjJhSL6aJ1e2aUtv2ONFnkeUb6ydaWVa0In1H+OnbBurrY0wnyfMFwBknO1WwgQR9b4CfqVA7JtXMHP+ATz3wrc544yQE0+octgBVdxYAuJZvGpAFEZU+3OS1v4K5rbKiVn4XohXC4mnGk861T8b8trakAckMkmOmKIZ/WqO6c/0kutr45hjLPbeG264IeLmm10OPjhAKZtiMeTwN5/AfeQROr/1/5gbBcytF+m04jglRZQ2BEEJx8lu9PMJo5C+Sh/VSgW3bmO7Lp4K8aoVggDmvg0zZxnqdUNrB1hWxF8edbn7t0lyfZrOzpCvfKXOIYdEaK3Qukq5rOjrSrD7bhkOPrQFW2tqYUhN+9g9S8jUC6hiEVUzENt0leZthVLqeuBM4BVg4FMLA/ytaUEJIcQGWnVMraMb3Ux+5BMj1qywRJOsM6lVSl0C3GGM6dsC8Ygmq3kVipU8CTdJOrnxb2QHKKVIJ9sJoi4q9V5cxyIVW78/NGGpRFSuoGwLO5tF2Rv+GYzSGqu1lTCXayS2SqHX8/xi8wkKFWrdyyjpEpTgtZdiHHlUxOmnVzjy4CLJhA2JVgI/IvAiahgi1ZgReFONz95aKa0aiW0tJPBD7P4260zcprfsUaj5tCbX3k6vnDide7cxYmQff/97Ny+82kY85XL99Zr77gup1UK229HnrUUxulo/x/EPn0n7zm3sXMuTu+u3zDtmMjtqm5hShC2NCaO03rAW/iAIKFUrdBV7CKoecZPAirmULQvjKxa9CzNnaYpFxbBhmkBBpMBxFKFvM2onxZe/BOPHWyhlATXCsMKSJRYJ1+WEKYadRicJfUWtVqKu68SnP0Nqrz1wxh+E+scrIOPp38+pwJ7GmHqzAxFCiI21pnVqARlXO0StT5YwEnhOKfU88D/AX8zG9pGKrVoY+vSVerG0S2uqvdEuHDVuJgIGtgG0AqVQGtAaZb1/5Ugpi2yqgyBcSr7Ui2uNwFnLUj8mDAkLBYznoxNxdEvLB6rMKaUaiW1fH2E+j2pv36gEWWwaUd2ntmwZVeXRlXV5+Ss3U9p3NJ8ZX+GYwytkEwoVzxBhUa/61MKI0FGkYvY2OY52TZxYowXZq4ZYtkYphd3fhlyqB9T8cN2vhR0j2TGMgw/uZffde5nxUpa5CxIceaRFNmswxmfBIp+f3xrnjI9l+MJFAWPefoJhn76At//zZt494SMML0BSeQQZd72W+PGCkErNo1ypUfKqlLwidqBodduIJZPYSYfuZYpZMxXLlkFbq6K3pLjtLsUzTys+/3k44QTFaR+D009973GNKdLXV6Fetxg31mKPzgqJhEVYLFDzPGoxSMx4gdZTTsfccgv6wgs/4L/ANm8u4ACS1AohBq1V249XrNSKoWed7+yNMf9PKXUVMAX4NHCLUuq3wH8bY97a3AGKLcMYQ77cQ2gMHYk2VD0kCgyNjrQBqn82JqD/PrPifRqUpcFSKK1A938FtHZoTXWwrNBFXznH8Ez7GhNV43mEA+3G2cwmaxdWSmFls4S9vYT5PFb7ms8vNi9jDPUlPVTnzyX49g+468Dvk9xuJ/bd12PycR7tqQDtJjBOknrJp+ZH+DbEbU06NnQ+iFBKEUva1Eo+Xq2xxA+s3IbsWHrdk69ZNiSH0a76OPHIHF35Oi+8kuWtuTZaJ7EsH8c13PJzh9//KeL8c07ksv/6DS2fOJZSuUhPdw9+lCKrc1jZJJa1+u+jH0ZUvYBipY7neRgTEeCB8hkZa6GtJU0sFaOvaDPjcZj3NrS0GN58WfGnBzTz5itSKcNJH44Yt2+Ijhp/W1QUovApFXKUy1VG7+QwbqxFzK5haQdTi1GNNPVUHCeWIHXgwUTXXYc+77zN8C+yzakAs5VSj7BCYmuM+ULzQhJCiA2z6kRRMqZ2aFuvd4nGGKOUWgIsAQKgDbhLKfWQMebSzRmg2DIqtRzlWo0krbgBGGVQbn8FVutGwrpiEmgMJgjARGAUJgRjFCaIwF8h2dUKZWuUrXGcBNlkC7lykWItQSax8vjaqFolLBZR1sa3G6+NsiysbJagL0dULGJlMpv08cW6Bfkyld5eFrz4GqOeeZFH/m5z1tURxx/nMyxVxbYdiDeW76nUA+oKEo5Ndhtaj3Z9WbZutCHXQ2xbY/XPEry8Dbnq05Zaj5ZgrSHZDl6J4dkSUw6tU5iY4Y15Cf7+9xiXXuoxc6bHQw+5fOcHLvfsfQZ3jqszor1A28dOJX/CCXR9/SKm3/8nrvjmD1mwYAGjR4/mmu9cy8mnnk6lViPwA1xL0RLTREEF41VxI03asejNlXh2epnX31B099hMOtBHKXjowQ4sFfGlC8occ3iNeLz/r0b/e5FSKaJULtI+POLQQzOMHBGjVqliucPASlIOFNHsGYy47GuYX/8asln0V78qXRjr5w/9NyGEGLTCaJUxtdJ+PKStz5jaLwKfArqB/wK+bozxlVIaeAOQpHaQC8MqhXwe24+TzSbQCRu1QmujCUNM3cf4dQjqKBWhtGHFGpGCxroi2sagiYxFEFlEkY2uG6x6gLI0CaeFqlPjN//3K667+nrmz5vH6NGjue6qq/j4R05BuQ5WNrvmmY2NgSjov4WNhBpAabBcsNf9Bl+5LjqVbIzV7V/jVmwZkR9QXbSUNyolPnX7Z+hyzmPqv7p87KM1RmYruLYFiTb8wFAqe1TDiFTa3eYnhlobJ24R+BG1ik+ixUXrRhtyOm5TrAWU6wGp9algK9WYMMmOQy1Pxslx4J4lJuybYmlPggkTLA47rMqzzxjqVfjT/QEdmSxV+yL8yjje+cUcpv/lJqrd72CUxeLeApddeRW1apVTT55Cu6UxgU+tXMaYCNdKsrS7lVv/nGDm8zZzXrN57XWN1jDt9irJBFx9dUimBZSKATF8FFGk6MspKpWI4SOLHHFkOzvtlEErm2qxgE5mUXaSfNXHczWZ1gxWtUqwrAtrhx0koV1PxpjblVIusEf/rteMMfIuUAgxqKxpnVqQ9uOhan3eAbQDpxlj5q+40xgTKaU+snnCEltKGHoU+noIPU1btg2rxUUphTEGU60SVauYehW8MoRe482x5aBsF5VIoZMpjIJ6GFKPQqJ/vEL0xptUJx8HQOqhB7HffJsFZ38Rx7Jp9/r4y1OP8f0bv09fqRdlDPmFC7n8S18GpTj7M595L7gogsiHoA6h3zj/igYSnYEh3tqGeAbstSeqOpXCeB5RoYDq6Fjr0kBi06kt7iL/f9O453e78dark/jsZ30+/ekaOwyrEtdAPEsYWeRyVaphRDoTG9IJLfTPIJ6yqZZ86mWfeMpBaUXStfGCiFI9wNJq/ccaWw6khoHf/ztdzdHh9JHZzWb8Hg4nHmPo6g5Z9K5h1izNf9Uu5d3fNC4TV+nXmcYvOHuXowniz+FV2/np9+eiK5pyXdNXSLJwcTvHH2tRLKd44M+Ke+9tnHbUKDjlFDjwQLDjSUINLa2NwQ1hBKUSFBrzuLHbbgF77VVg2LD/z959x8tdlYkf/5xzvnXqLemQkNASQEC6dJAiWBBpCriIq6KoC3ZE1HXVWNeyKu6Ksj91QaxYUERklQ4iICwgNZSEkH7btG875/z+mCTcNCBIuCT3vHnN6965c2fmfOdmhnnmec7zWIKgDrYb0AohUF5M87KfEC54jOiC86nutivFNdcgoghZLm+aP8IWSAhxGPAD4HG6n0lOF0K8xVrruh87jrPZ2FD5scvUjk/PZU/tvz7DZfe/sMtxXkzGGLLGCtrtgqgykXK9GwyaNMU0GtiiQJgOSllETxWiKsgQaww2SRgeTBm+7Aq83/2OP771O9x9V4lDL/sZxz7xXXad1KDdFty8+03MvPcq3v778/nLbSW+z/s4nP9lae039PT8H0fP+gSPDQ+z0Go+9+W5nHDKa5FYhLFIq5FiZcCpAggrIH2QqhvArgp2jIEi6b5Jbw9AUIJow52bhRCoapVicBAzMoLq6dnUD/W4VwwNs2zpIrxLfsUR8yYw74STeO97E7aZlhNjICijRcCy5R1So6nXIurjPKBdRSpJVPJJ2jnJqMC2Hvury5ClEATec/9wRhOS46GLBEyCkjm+VzBjsmTGZNh9juaoQwrO/ucG99xn+Od3XM19aZXfpMcgJ8wgb2jqy6Zyc+MznPX+p99QKAWTJsN++8Exx8CcOTB7NvT3dy83BtIUkgQ6nac/j9pqK9h3X5g6Ncf3hwDw/V5AkjQb3cchKLGkldN747WU7r0b+bHz0M1md3SX20qwsb4CHG2tfRBACLEjcBmw15iuynEcZyOs0yhqZfmx21M7PrlarXEsbw7SbCWIqJdaLcZai2k0MJ0EQYHyNTKIIShDUAEhSBYPMfit/+Hanc9g3kCd/W58ilfc+meuGlnGz27aht+I9/EfE9/FjOkwabLlz0d8g/yYZezx+BKmTJb8feHR3PbgFNBVOq39+JxJ6JiIo8JvsmLwMW77yxNM3VoRlELCcoz0Q4QKkVKgMGBShBWgQaz8T0mFp3xUqQ+ZNSFrd0uT494NHrvwfVS5jG62EEni5tduQibPWfHkYhaJEYYu/g43/XwqH35zwg4zC2Iy8ELaosSKpW2MtfT1xlRL428P7TNR/tOBbaeZE8Yeypf0lgIG2hlD7Yx6ySd8pq7i1lJkhjzVWGNBgF+O8cJKd+6tMStL+i2eNRhtiSLNrv0G1fef/PKxeVxJyg4j29NrJvH75k/5fukG+NKtSCXRurt9VwhYvLj7debMbhD71FPdAFZKqNdh2jSYOrUb7Pb1QRCAMRl5PgRC4ns9CCSdxgj2gQcIP/JRlnzhqzBnDv7Xv4KqVNDtNjYvUD11hBvds7H8VQEtgLX2ISGEe9I5jrNZ0VYTqKe3nrny4/HNBbXjVN5ukSUtcq9MuVLGl6CHhrBZhlQ50pcIL4aoB5RHswn33GNZ9NPbOOHr5/C33bbhmw+9js9+5hySU9/HwQ+lzN53iJlTIrSNsN4S+ie1qE9sUKoZjqj79FRKlMQBHPPKT1Ba8DU6eYWPTJpO1Z/C8OI90Z3jmXrkzvx2zrlM/uSpHHRQRhgH+GUfsGiru2XRo3our31eCYUnLH5nEN8YVKn36WzvWmS5vDorLYLAlSFvIq0Fi7j/gou599jTUGIrDjs+ZPedNZFNKYTPiC7RGGyjhGDyhBLROOpyvDGUL4kqPmmrIGnlKE/ihd3AdrCdMdTOqUUQB6P2w1uLLgw6NxS5AQtSCfySh+fLNTPhUqKNIMk1SQ6F6Y7jqpRCPvPxj/Kud55Fu214YsEj6InL+cS0Kez1jjdw7CktSk8+QfC1L8Hcz1FM2ZqiAK27cbIQ3Qyu74M3qsBiNK1TimIYISS+34u99+90GiOYnXYinzoNf+FC/McfZ9K+L8dXpe7ztt1BlmK3L/75uV0I8T3gkpXnTwduH8P1OI7jbLTCFMRevPq8axQ1vrl3j+OQTjPyziAJChVVKQcSPTiIzbNudtZX3VLfsErWLhg68z08xHb8dPtzuP6GI/gk9/DwA7twyCGCuCTJc0NUUUye7lHrg5lTByiVh7Aqp1Qp0VvtoxxVunlVKfjg+R/jrHPOodke4MqhhFrfk/T0H8pZJ/4Hj/1kH66eN4ffnzaB97xlKe846iH6D9yFSVMqBNH6/7kWpsBYQ2EKcpOTe5a06EBzEeRNZFhGCUWgAgIZrH7RA7plyAOD3W7I9Q2XLDvPTz40zB0XXsFhv/kyP/nrPhz5ze04eN8cqTuMaJ+2LJF1Mkq+orc3whsnc2ifL6UkcdUnTzV5qtEtAwJKUtDMNQNpQugpSoFCWtC6G8giwPMlXqBQa5UpG2NJC0OSazLdbb7mSUE18oh9hRCCf3rz6UgBF1xwAQsWzMerVHn5Oeew1wHHsmRoOZNv/yvBr39D9m+fI1AW/y83wa23wr/8CzxL0Kl1QvHofchlA3j7H0GRJKijj8Lfex8GL/sxzTgg+cvdTOqJUEpii6I7b9r3kJXKpnqot3RnA+8BVo3wuQH49tgtx3EcQ6jMHwAAIABJREFUZ+OtXX7sRvqMby6oHWdsYchbgxQWdFinHCgYHsImTVQkkEEIcQ94IQsXwjV/Uhz40JOUtilz8TcUnoLXvGlnzjtGU4oNy5canlqYseMOBdttp4njlNRKRDCRelyl6pW7mVIpEZ6H8H1OfdvbMFHEBRdcwPz5C5iw/bZ86APv5Z9OO46hT7+a8+4doecbI5zw6LfY9YzP8eW33UF5l2048siYWdsHhOGaqZ5VL2KjS1B02EvRWoouEgoUBZZW3qJFCykkoQqJvRjP97sZ21YLEWfI4DmMSHGeE6s1N97yJCd+/+3s3rMPb/zEHF59eJuknZKIEKPKyMLSGweUqsE6wZazfkIIgsjDD9XqLKwuLGWlaOuCVjOjJSAKFaXIIw67pcqrsrLGWHJjyLUlKwz5ykBWSUE59Ig8iafW/VucfvrpnH766StvIyfLBshHWgw0BcuOOJzGnXdTDiL8gRbln/wMeckPER/8YPfK558P110HN9/cPT93LjzyCPp7F1IUDfxzz0c8tZTkhuvReY793sU0Z88hSSw1T9FXC5FKdjPPw8Or5067PdfPj7U2Bb668uQ4jrNZWrtRlCs/Ht9cUDuOWGPJmw0MOR2vhEQRNYexnWFUyUfGFYh6yP92L+13nMtPjvsRN8+biP3kj4ml4hP7aWbOMAS+ZcUKw8hwzo6zNXN2hnJUoHVOh4I4rtFT7iPyNrxPdfQb5GaSMdxaSpIOMaE6kb328fnMV4eYf/PJXL/VJC7+8648/n3Be/e8lh1PeTl7HlBjp10U1eqGj1VJhSpPgtZy0AWUJ2CwZDoj1SlJkdApOkReRLlURqTJ092Q3RvlF8QTv72WuWfXSBPF6z45k5OOG6SZgAkqeF6J2AhUKAnLHmo9QZTzzIQQeL5aI7tdsgHaWFqZJs01bWtpJzkiBSkExtrVzZmgm5Ethx6hJ/E34m8gpY/vVxF1mBxYRpqGZpHTshlRuyD98Mfwz/0gcSclLEWw/fbQbq++vjUG2xgiz4YxWmDO/QA2jtFFQRZEtA85ApNq+n2PSsVHrlybGR7GFhrV2+P20T4PQoifWmtPEULcA6P2baxkrd1tDJblOI7zvBSmcHNqndVcUDuO6HZGoZvkfoC1MZWkCckgqhwiK70Q1RgYNFx/nWX/R57gd199gj83p7DHbM3Osy1zdtAMDQuWDWi2275gt10t1bJFWENmCrJAU4rq9EQ9a7zIPJty6NNK67TTYeKgScWvEkzux3+lx9IdTuTdVze48tKEz/zltfz0njO5/OyvMON2y5ydFXvsIejdUD8oqbpZ5/YAJMPIuIfIi4i8CGMN7bxNu2iT6YxaqYQYaWKaTdQzRcvOM7r00ku54IILWLboKa5Vs/ivjuZ/PvIHTj5ZokWIF9WIhYdA4EWSIPIQ0n2I8EIRQuApQT2W2MgjLQyFsWhjny5Dlt3f8aXsNoh6npQqYUyOiRN6g5io6TGcFiShwhMSiyFbOohUkvD4E/Hf9EZEu421muy9Z2KKN0Ezw1MV5CteQeEFdKQiSTShMdRDf3WnZwDdbGLSDFUpu4qK5+/clV/dOD7HcTZ7Gyo/dpna8WlMg1ohxH/T/Z/rUmvty8ZyLVs6k2mKbATrCxJKeM0RgnwQVYqQtYlkTyxi2Y9/yH+Xz+Tnl+7CfY2HmDFL8sWPa2bv6NFOJMuXF0yenHLwYQX9fRppLRJBrixFKCl7NWphbYONmTZECEEtLjHYTGglDaqlkEAFbN1TJxBw9Ekdpm8X8cOLf8x/3bwr934tZO4Hl7JA+9x/fw877yzZc89uV9V1eGG3e3PWAi8Cv5s9lkJSCSqEXshwOsywbVEJFV67gwxDhHvTvNEuvfRSzjrrLNrtNgfsuysX1raheX8/r5x2A2H8euIwRiqB8iR+pFx2dhMTYiPm1z5PnlejKCyGlLi3RNSxDDfbpGiKSozvKWw7I21nJK0ERI5Q7e6/gbCOF1QopEfLCjpZAZ2Cuqcolb019tCbVgvTancbQ7l5tM+btXbRym/fba09b/RlQogvAuetey3HcZyXpg2VH7s9tePTWGdqvw98C/jhGK9ji2aNRbc7GJGSqTJ2uEM5WY6qlKBnMssTQfKpr9H/y0v59eRT+PuTZd78FsHxx4O1koWLLGGYcPBBHbaakuEriRIeXhiSS0NuE2IVUwtqz7t0N/Ilvl+lk68gLkbw/X6klEzu6cEXQ/j7pTxcO4QzDvK47Y6U0258D71P3MvVX/gr8x4p8cADir32gt13X09fmrAKOoN0pDvvdlSXY1/69Ia9DKVDNHxNNTOIRgPV1zc+y5CtXTk8dFVloui2q13PY2GMxWqLMd3T5/5tLtWowtG1t1L0G+Ytb/BIchf3X/g3/vltp6MCiedJl5ndgggh8Lw6RTGCMW1E5NMXVslbKY0kIZUSWYoRSmGzFkWaIigjqKBzH5NbIEdaKCtJJQ4IIrW63Nhai2k2u52Oo9BVUbxwjmLdAPbY9fzMcRznJWtDc2pd+fH4NKZBrbX2eiHEzLFcw3ig2zmFbmCigKRpiRuLCaoxaW0yy54a5v/mV3hw988y+4D388b2JM4Iu/MlV6yAdrtgt5cNM2ubDnGoCMOQIIrww4hW0aZTJIQqpB7+Y52DhRBUI5/BVpVO1kTKFp5XQQhBX70HXwzj7ZoSlSEqWR5Z9laiBfP40CfKvPk0zct319x5p8/99wsOOwy22WaNG4eo3t1fmzW634+ipKI36mUgGaAZFtQ6GaLVQm3pnVV1DkXaDfitAVOwxobLUayxFBqMBmO7X0GAtRSmoJMV5Emb/Xgtv1x8IR+6+V/4euN2jHmQJQMQVdwIzC2VEALfr6N1QKFbFDQRFUUtEOTNJp3hQTKh0X6EimsIrwIGfGtRCCIpCbxuZ+bR5dA2z9GNBjYvkOXSlv98fBEIIc4G3g1sK4T4v1EXVYGbxmZVjuM4z886e2pdo6hxbawztc4mZjKNzpsQWDp5iBxYQClWNOtTEWefQ/nGO/mIuYkdd6uw49t6mEO3n8v8+YYZW7U4eP9hqhVLqVwmKpXwghAhBI2ssbrRUi2ovSBrjXyF74V0ioRIt5EyQkqvG/BWayhG8LbPCMKIu246CNN3MFwP//v5v3J634d49DOXMBLO4re/FcyZAwccAPGq8WXKH1WGHIO3ZnmxFJKesIdBO0gz7VBrtbtlyP4WGIzlne7jsOqTTOl19x/7MQi1Miu7ch9jrskzjc716oBXSvA8S25Nd8+mClBxiYQTuWLgi3y4NJHvNK5BmwcA2GbGNutbhbOFUSpGyghjUoxJsYHA76vhpTkiNYhCIhKDkN250CgP4a/cUy0Ao7GFwWqNTVNMmiGkQNVryGjDTeecjfIj4PfA54GPjvp5w1o7MDZLchzHeX7WLj92I33Gt5d8UCuEOAs4C2DGjBljvJrNi7UWk+RoOhQyQi9eQkkUNHpmMNyGu4Jjue/JmcwzEce+AbSGxYs1kZ9y6AENJvQnBFFIrbcPf9Qe05FshKRIKHklKsELmz2phB5DukJajCDECEHQB4CQklK1BiPDyOkJ/iERt16X8alPjPDgNwZo3Z3y+Qt7eOeHMrae5jNvnmTBAjj6aJg2beWNh1UoEkiGoTxhnZJaT3pUgyrDJU270aHc8FC9vVtOGbLOu8eu824gG9W6Ab5cd25pkWmKzGCNAgleVeEFEqUkuTY0k4JMG2QoqASK6345RGfhR6n3zOP73EuzfQcApVKJuXPnjsXROmNACIFSEUqNCkIDoLqy43GaYrMMWxTYJN3w7SiJLJe7pcvS7b1+AVlr7eNCiPesfYEQos8Fto7jbE60WWtPrSs/Htde8kGttfYi4CKAvffee/21kc562VSjiyb4gvaKEUTaIjOQX3MzX73+aP7z4hOYPFnw7+dDraZZOD9h95elbLdDiucL4nIf5UpldVBnrWU4HSYzGWW/TNl/4Ru2RL7CU4qkiAi9FK07KNVNtwopKdXqiMYIclqCOCzklutTXvbBg/nBX27j1u9ISpfkfH7H7yKOeAutPOJXv4JXvAJe/nK6pY1RvdsNOWt2g9y179+LyIISnSgnSDuIVoiqbAGNafJON6BFdDtC+/E6v1Lk3UBW5925pdLrzkNdNePUGMtwJyfJNUJANfKIfUWWZqh3n82t8i6+dfLH+fXV97JiWDBjxgzmzp27enSTM74JKRFxvLp8wloLed79aszqvdtCKYT3kv9f0+bqR3SbM97B6n7Yq1lg27FYlOM4zvOh7Vp7al358bjm3jlsoayx6DTDyIR2YjGDA5ieOpVzz6Pyp+u5pP0oe+0V8J73WBpDHUp+wuGvNtT6BELFBEFIHD8d+GijGUqH0FZT8SuU/NImW3sl9BjuRGQ6B5pIGSJWdlQWUhJVq9iREbaZmmIPltxyQ8L+r1BM36bCvkuuYs+vvIs0rmMOPJFwiscttwiWLoXDDoMoCrsdkLMW+KVu2e3a9+9XyKKMZtagp9VCRuHm/SY7a0GysklW3LtGZtYYS5FqitxgjQUBftjNyspR3YmTXNNICoy1lAJFJeyWhWdJh4WPLGDZmYfBkzvy+S8ez9cuessYHKSzuRFCQBCwhdRBbBasta9d+XXWWK/FcRznH+Xm1DqjjfVIn8uAw4AJQogngX+11l48lmvaUtikQOsGibBki5eTRhEmmsLdb/0P5m//FJ+YWqVWLeg0muy/n2b2HB+8bjYuDEPCUS2EM50xko0A0BP2EKhNO+4m8hXNtCDRJQLVoiia+P7T+3alVMS1GqLZZNa0lOIAuO3mFtO3DhiZcxzX9t7Ie3+0P4e0NK96ZYett4pYsEDyq1/Bq18NtUoNimXdzGWpb537l0JSDaoMlQs6jQ6lRgNvg8NwX+LSBqTN7mijuHd1ybXWhjzRq7Oyypd4sUJ5co1ya2stI0lBkms8KegpBfhKoouCRx5s88Xzh9n96AHky/bkVe87jrDuutM6zkudEOJA4C5rbUsI8WZgT+Dr1tr5Y7w0x3Gc52zt8mO3p3Z8G9PNStbaU621U621vrV2axfQvjBsYdBZQqFyWkuWkz0xn/iL3+H4w0P+82fTkPvuS6DaTOwZ5vjjLTvvFmOVwFqI43h1QGutpZk1GUqHVjdS2tQB7SqV0MNYRW5CjOlgTLbG5VIq4mqNahyzw9aCPfbOWbxihE6rYMn2BxLFkt9etIh93vZy+v/6eyZN1CQJ/PznsHS5gqDS7fybJ+u9/1CFRH5MJ5TkaRvTar0Yh/3CSoa7Aa0fd4N3IShyTdLMSRo5ujB4oSKuBURlH89XawS0hTYMtDKSXFMKFL0lH6ELOs0Gjz00wnuPfpx/v2J3+q+/gWMOmkBfX5/b/+g4m4f/BNpCiN2BDwLzgP8Z2yU5juNsHFd+7Izm3oFugXRSUJgmI4MDNDqa/Kq78H9wGZ2HF1KrCwaXNTho/w6vPFJRqXvkRYGUklKphO8/Pbh6MB2kXbSJvZjesHeNEo9NLfIVnhR0ihCEoiia6/yOEIK4UqVeKbPjTI9d92iycNkISmg+/nE49DDJ/a3pfOeqmaSdgt56QRTBL38JC5aUu82S0pENjrGpBlVUHNMWBbrVwmq9qQ/7hWEtdAYha3c7Psc9FLmmPZKRtgqMsfiRolQNCGNvjTEqq6SFZqCdoa2l4oGvUzojwyTNBosXaY49rs6dy2Zy365H8LKz9mRmTx1Z3nQl6Y7jvKAKa60FXg98y1p7Id2xPo7jOJsN1yjKGc0FtVsYqw0mb9FOG4wMtXnkyQkc8JNPsnd0L68/ZzqHHjDMscd02HYHAZ4EIYiiiHK5jFLdF4Z23mYwGcRYQz2sUw2qY9IBuBx6GAuFibA2R+sNZFVLZSb29bL9TJ+X7TrEwsUj6Mxw8vu35odn/C+X3LkL3/muz5Qbf0ZFNOjpsVzxW8EjC2vdgavZugEzdMuQK36FohSQ6AQ9MrIpD/eFsSqgzROIami/QtLMSVvdUpyw5BFXfYJo5SiV9ehkmoFGgk46RHkbm7Qosgzl+TSTKq97dcTCJzTHvWsJyf98ih12mYMa1VDMcZyXvIYQ4nzgzcDvRLdpwRY4v8xxnC3Z2ntqV33vMrXj02bc/cZZH5PkdLIRVjz0MJM++iVOvfd75BJOelcvx716kB1n5wSlEOn7hGGI7/urg5Fc5zTzJrnJCVVINagixdh97hH5ilZa0Cl8aoFHoVc1jVo3ePKDkK0mTcLoRVg7yIN3w7RpdU46STJxIuxdeoB9P3s6fz/10zz8ho8wcYLHH64JMQdH7Dhr5exate7TIfIiOn5EEmrCLMV0Osh43c7BLwmrAtoihbiHTPvk7RwEBLGHF8hnDTyHG22GRpp41lCLPbwgxAsCPD/AGME1P8v56Px3s8eUh3ng5AvZY2IPoR92u9o6jrO5eCNwGvA2a+1iIcQM4MtjvCbHcZyNsnb58aqsrdtTOz65oHYLYrUhTxssXbYQu2iI6mOPcNyeCxCHTOPE40eYPNUQlstEUUwQBGsEs+2iTapTpJDUghqRFz3Lvb04yqHHcCensCUUI2jdxPPWXyXn+T5bTZmCUctQaoQH78iZMrWHQw8NgJ25+dP/y7f+dgAHLIDpW2VMnhTwx+tqkC9jx51G1ts0CqASVBg0OZ08o9xsIsLwpbd31NruqCKdYcM6aeqhC43yJWG84azsKsZolg8M0WqnxIFPX72OP+o4Fy2Cv9xY0B5usPVJO5P6ZfaZ3UPdRshy2WVpHWczYq1dDHx11Pn5wA/HbkWO4zgbb+3yYyEEvvRd+fE45YLaLYhOUpYvW8BVf6rQWz+c68+7l+lxwWGHrqCnL6Rc6yEMu5nO3OSkOiXVKcYapJCU/TIlr/SSClBWZWvbuaAeRivn1pYQYt1RPABBEDC1txcxu4mUBQ/cOsCkKSX8aoVHph/OH74K/3tVk79Oeg1PvfF9sOdx/PnmCtBgx92S7riftfjS72Zso4KwkyNaLVT1JbT9bFRAa8I6SephrSEoefjB+h+n0Yo8Y9nyIZJcU6tX6R/VwdhauO02OPkky4G7DHHoCQmPnXAsMw+JmUyEUOqlm7l2HGcNQogbrbUHCSEadOfSrr4IsNba2gau6jiO85JirMFi18jUQndfrSs/Hp9eYukm5/my2jK84inap53PQx+4gc99fiJBtcXRRydMnFql3t8HPjTyBss7yxlKh0iKBE941IIa/VE/Zf+lmXErhx7aWArbDZ7W1zRqtCiKmBBHbL9LmV0O9Vm2uEU+uIKeasKXvgRb1Vssfjzl7w8qlCjonxRy3Y0eD9274aZRFb+CCgLaymDaHWz+EnnBHB3QBqsCWktU9p9TQJsmKYuWDJBpy4QJfWsEtK0WXHYZvP44y+zF13LRDTtTXXQr++/nMzPqRRqQlcqmPDrHcV5A1tqDVn6tWmtro05VF9A6jrM50abbvHPtJqae9Fz58TjlgtrN3KWXXsrMmTOZ0NPDm076Fg//zWNypcF7372Io48R1CdXIZYMZUM0sga5yYm8iHpYZ0I8gZ6oh8iLXpLB7CqrOiG3MotSMcYk64z4GU1KSRRFVCVsv1PM7kfXWLbckg8OMakyyIe+0Ms/z7mZd/z6OK76o8eEebfS3+tx43UFj/y9sf7bFJKSVyKPPTKbo5vPHFi/KEYFtNqv0UlVN6Ct+Cjv2Z/anU7KomUDWCGYNLGPaqk7yskYePhh+OY34dxzLCMNOOpd/SzcaW92eO1WzOqfQJBqROAjR80zdhxn8yCEmLG+01ivy3Ec57nSthvUqrUq91z58fjlyo83Y5deeilnnXUWnXaHnbY9gz/d8Xlu8pZwxil38pY3WmTFIxUZ0khiLyb0wtUzvDY3q/bWZjpGkVAUTYJg/XtgoVuGnOc5JV0wa8eQIO7h9itT+m2HWjTIJz8W8M3/qrJ9eTEH/durePyod3DPmy7gumta4JfYfsd1nxqxF9MpOnQCjZ9lmCRBRmO093h0QOt1A1oEhOX1j+hZ86qWkXbK4MAgSimmTOzD97vHOzAAN9wAjz4KX/2KxU+G+cjHDGbiBBa//SvsvH2dqvaxuoOqucSO42ymfjfq+wiYBTwI7PJcb0AIcRZwFsCMGS4edhznxbUqU+vKj51VXFC7Gbvgggtot9ucMbmftzz1AKcFj1L0fI4/3nozn6vfTqhCAhVstoHsaKv21rYyTW9cRusGWicoteGgMooiTLtNXBRsPSMgekPMjb+L6ZEdymHCeWevwMiQO979ba7RhzEr8+mvdfjzVcP4YT/bbLPm7QkhqAZVhqwmzXPkqqZRL3aW21qK1grSPKMjK7TaYIUmKPlIbUAblABfCHwpCIXEWxnoZoVhuJPRHh4m8hUTJ/ahlEenA3fd1T3FMcyclXPmSYv58OVH8shNr6bx8fcyZ9sS9bAfBke6WdogeHGP23GcF4S1dtfR54UQewLv3sjbuAi4CGDvvfde/74Nx3GcTWRDmVpPei6oHadcULuZynXOU8sXMmnaBPacMo3pnXlY+wkGBn7JwFLoizacxdxcVSKPoXZOqgN8oZ5xxA+AUoogCEjTlJLV9E9WvPJ4wfW/r5BlZfqqGUpn3Lft8Xzq/XVmzsi5Ysp76NvnMK68/A28+g09bDNzzQ8EAhUQqrDbNCopEK02qlJ+MQ4fYy2dQtNpDVAUGbmqYjJF6EvKJR+puo+DtVBYS24tSWFp0A1yi9yQ5RqbdIgD6OnpoTCK+x6w3HyLpbCWBx8B5Wv23HOIlx0eMv/RV2FfeQC77ALlsA8vKTDG4rm9tI6zxbDW3imE2G+s1+E4jvNcrdo3u/aeWl/6bk/tOOWC2s2ItZakSGh0hkk6LWZNP5klT32UP/T9N58xj7KieTkA26ydYtxChJ4iUJpWVtAXV9B6GK3beN6Gg8owDCmKApPnVEIFfZajXq+56WqPRUMRUyYGTNlK87EPFlz09QZ2/j14tW3o22kZv73c8prjQqbPLKO8p58qZb9MqlPaeUa53ULG3S7Am4qxlpY2tPMCmwzhmYLIr1MyPkGsCMveBgN7bS2tXLO8k9MuNMoUeLZABjH3LBDcdltBowF9ffDn30p++gPFAbus4PCZK1gRzuDRt3+M/V7ZJAzqlFUJ3V6BjEKEv/ln/x1nvBJCfGDUWQnsCTw1RstxHMfZaM9Yfuz21I5LrlHUS4zRmiLLyLO0e0oT8iSh0Rhk0fL5LF3+JEmjwYO3Cz7/UMJByUM8+mjKiuYVAJRKJebOnTvGR7HpVCIPa6FTKKQM0LqNteYZrxOvHDkj8oyqkgQVyxGv1UyeDAuekuTKZ+8DFB/9TJ0jy7dy9A1zeXRBHzPSR7jqNx2efGyYpNnEmu79eNKj5JVIQ0VuckyrtUmO1VpLo9AsywpaeU6YDtEvDVW/jm8DguCZA1qALDckSUFFCmaVfaZ6BtsKuOXPZW78g6KMYuYExc8v9vjpDxQHvyLhcnsKB3/+jXhihH0O7hBGFephHdvpgAVZfnEy047jbDLVUaeQ7h7b14/pihzHcTbCMzaKcuXH45LL1L4EWGPIkoQiS1cHTqsvs5Zm0SItEjwvoKfUx6PzPD5wxgg/4UFOPugGvvDEnxFCMGPGDObOncvpp58+Rkey6flKEvmKTqaJShVgAK1beN6G58au6obc6XQIdUFJebQDw6GvgntvV9x5J0yZItl2J8lnvyz41GfgqXnw/qtP5MldjuIP4YUcc0xGf39OWCrjBcHqbG1LtfA6HWQcv6DZy0QbGlqjLURYKsUwShpSamjj4YWKMN7w09cYy0iSkxaGQElqsc/yRQ3uuB0eXVCjVlNsNx2yDD5+geWBBwQnHtfhn07Nue+Bj5MvXcjBR2jiakQlqOIhKdrtblbacy8bjrM5s9b+21ivwXEc5x+xoUytG+kzfrl3p2MsTxPSdhusRQUBnu8jlUIIiTaa4WwYYUMmhhOIVcyj8xJe//qAgaTMLy64mHefvQ1nTP464lk63m5JKqFHmmtamaUSlNC6jZQxUm74n7Pv+xRFQZqmxLFES0HbGPbYTzBpkuRPf4IogglTFf/+FUtJ9fNo/UPc4++OLyVXX1Pm1cck1EwDLwwJS2WqQZXBUkEykiCbTbze3n/42Ky1DBeaxFiUgD5hCNIhrLGktobGw48UQbThY00LzUinwFpLJfSQxuPWmxLuvrMblM+YoRCie19KpcyeLTj5kKW8ZsKdLPSP4cHJu3PEm3el3GfxVUjZL6OHhgCXpXWcLYEQ4gpgg82drLXHvYjLcRzH2Wgb3FPryo/HLRfUjhFrLWmrRZGlKN8nLJWRo/ZlFqZguBjBim7Tp0AFtNtt2jfdxgXDv+Gxs9/Mm87opafWO64CWgAlBeXQo5kWRH6EoIPWTaTsecbrRVGEMYYkSajGMUYIRgrN9G3h5H7JNdfAk0/C1KkCo3zuOfi9vP1dPltNKbho52/wf/fNYfePHE6VBFMUhOUKsR/TCVL8tI1M4n9oxE9hLINFgbZQUZKySRHpCMZIElvFoghKHn6w/v271loaaUEn0ygpqAQB8x6W3HKLRidtJk/xCUoR1sJvf6vZYYeUWTML3nYa7P69TzPth5dx/6dvY/+jJtK/lcCiqAU1TJZh0gxZLm/SvcOO47xoHgWmAJesPH8qsAT41ZityHEcZyO48mNnbS6oHQPWGDrNBqYoCOKYIC6tcXlucobTYQB6o1486TE0lDC4rEX2099yuriER457LdN6pyPD8TlWpRQoOrmmmRrqYQljWhiTImW4wesIIYjjmHa7TZIk1OOYQW0ZyjV9dcEb3iD429/gttugXod6PeTc9yZ8++uavsf+h/Ls3fj9zkfymuOqVEotOo0RwigiK5VoDQ7jNRrPe8RPog3DhUYAvb4izFuQNtHWIzEVkJKo7KMBzrGBAAAgAElEQVS89W+DT3JNIykw1hL5ioHFHlfdJGg2oa/Wxq+BisoMDxsuvNBy662Ko4/2OeftIJXHvW/9NH/b7bXMPmgy28yW5DanJ6whhUQ3hhBKIsul9d634zibnQOttXuPOn+FEOJ2a+37x2xFjuM4G+GZyo9dpnZ8co2iXmSrA1qtiSrVdQLawhSrA9qesAdPerTbGSedKHnjKTHX7/MW7r38Z0yZvS1hUEVsIMjZ0gkhqEYe2lgSHYJQFEXzWa8npSSO424n6U6HuhRIAUNFgVCWffaBU06BMIQFC2CPfSI+90XNiZOv5+D7v8Ovfin508XzaT7WRHkeeaeDn0ER+bSzFrbd3uhjaWvDUKFRQtDvScJkCNImufFJTBWhFHE1WG9AW2jDUDtjuJMjBJhOwHV/9LnySoHnwdTJKb7KkH7MXXcbzj0Xbr9d8pYzcj550E3s/u13kosGTzYk1Vcfws4vD8htTsWvEKgA225jC42sVl/8ebyO42wqZSHEtqvOCCFmAW5vgeM4m40NZmqVG+kzXo3PiGiMWGtXZ2ijcgUvWDPLaqxhKO3uXVwV0BaF5q1vtWz3p//Hy+N72fVQj2m7TqXuV5Dh+B6rEnqKyOs2jYIS1hZo3XnW6ymlKJVK3RLwToeytRgLA3k30zlxIpxwAhx6KAwOgoqrfP7LBa882tJOBYdfdhbRqw5nxdKAoFRCaYEwkhYZaWMYq/VzPoZWoRkpNIEU9AuN6qzAFimpKZFRRQWKuOoj1yox1ysbQa1oZWSFQWiPv98ZcPnPJYODMGMGlEoGk7exQnDn3fCv/+oTx/ClLxreeFxBfcGd9Dx4EyPzFjJzZpl9DwxJbYfYiyn5JazW6FYLEfjIcMMZcMdxNjvvB64VQlwrhLgO+DPwvjFek+M4znP2THNqXfnx+OTKj19EaavV3YtZWTegBRhJR7DWrg5ojTG879yCP/60xWPex1heOxb1sk9RVhG+V0H47jOJSuSRNjXt3KPs+xS6hZTRs2YVlVKUy2U6nQ5FmhBISUd6DCLo8xVKCXbZBWbNgrvvFtz1t15OPWE59Z4mDz71JQbueIJfnAcf/4Rku20DbA6DtsVwZwi/Wcar15917Y1C09KGSEC9aCLyDsZKUlPDiPU3hCq0oZVpkqzA2hRlDQset/ztTkBYpk+H7qFLTN5kcCClPtHnZbt2OPPMHl5zZJNJKx6kJbbl8dedxm27vYkp207iFQfntHWDUIVUg24nadNodB+r6oY7SzuOs/mx1l4lhNgBmLPyRw9Ya9OxXJPjOM7GcHNqnbW5qOhFkiUdiiwlKJXwg3WzXo2sQWYyKkEFX/lYC5/8ZM6F3w6ZvafHHz75C+Q3P47nB1RkCRk883zS8UJJQTXyybQhMxFYjdbPbW6slJJyuUwYhnjW4mUJI+02yzoJ1nYbg5ZKsP/+cPqbJdPn9LN8mWBBPJ3vLn89l/4i4htHXUG63e6Ei5ZRjXvo6JzhoSXYfMMvqNZahvOCljaUbE5PNojIOxQiomPrGOkRlf3VAa0xlk6mGWxlLG92aHeGkGaAoSUJV19Z8Ne/Cvr6FJMm+gjhAx7z5xd85rM9fOCjs2i1AsLQ58Q3tNjv+x9gv0+cAKngyYUTmTxrGgcfXpDYBoEMqAW17n0mCSbNUOWyG+HjOFsYIcR7gNhae7e19m6gJIR491ivy3Ec57naUPmxJz2XqR2n3LvVF0GRZWTtNl4QEkTxOpd3ig6dokPJKxF7MUUBN9yQkS9ayPmzbmTiSYex10nb4fVbKngoWUJsoAPueBQHirTQtDOoBgHoNkrFCPHcHqMwDPF9nyDPMZ2E4XaHIk3pCQOUUiilqFQkhxyqePnu/Tx41wBvet1ypkzq4eGfTeEPyZ787LzpfPGrklI9ZWTZIvwVMdXJW6/zwYOxlqFCkxWaim5RMSlWKDJRp9AKqQRh2ccCnUyT5JpMG4zJwCaEKmekobjljgpLlkT09YVMm/r07Q8OGn72M83vf18nCCynnGKpVKYhswwFPPa681i622t4fGgrZs2CAw9N6NgRfOlTD+sIIbDGYBqNbtmxG+HjOFuid1hrL1x1xlo7KIR4B/DtMVyT4zjOc7bBTK10e2rHKxfUbmJGa5JWE+l5hOsJEHKT08yaBDKgElRot+EXvzA0lyzltGXfZNfHv8GD2/2JUv8OCB/iIkKG3rgb4/NsqpHPilZKu4io+DlF0cL3a8/5+lJKwjBkchAQJCmNPGckLygVxRq/4wWS3farsNMuDfbZZ4Ab99qZr1x2Gbde6RGoBhctPA31ztNZsT/8+oor+cTczzN//nxmzJjBp+fO5diTT8FkbWpFh5K0aBmT6pi8MAgftAftdkZhLNYWYDMCmREEluFBxS131Xj88RL1umLrrdc8hkWLUs45JyDLPA4/tMMZZ3j09Sr2/OqpZPXJ3P/WLzMwfVfuUbux8xzY6xVtOraJL316wp7VAbgZ6ZbBe67s2HG2VEoIIezKkhTR/QRwfLbSdxxns+Tm1Dprc0HtJpa0mgghiCqVdbJ21lpG0hGEENTCGsuXw3//t+Gzn7GcfJxHduAH6LziEHY6agdGPI8ek7ss7QYoKahFPsOdnE4REHsdjAmfccTP+ggh6IsjfN+npQ05lpoUGGMwxqC1pjAGwoittuvwxunDHPnKEa66poS3aAnDd7T53e+n8eufax6576ssW7oAay0Lly/h45+9gMQMctwRB9MWAStMiaIoQDTxIg8lBBQWT0KgDL4n8KRk+fKAW+6OeeKJiFJJjNo3C/Pmwbx5msMPT+jv15xwgmX/vdtMnxGiAh9VFOSVfrJaPx3jsWixYN99YfZuDRLTIVQhtaD2dEDb6XTLjiuu7NhxtmBXAT8RQnxn5fl3rvyZ4zjOZsHNqXXWNqbvWoUQxwD/ASjge9baL4zlel5oWdJZ3RhKynUD0ZFsBG01vWEvjz0q+cVPM/79K5Ld9Z3ssE0fUd8EdjluP5oqJCQl0BGy5LK0GxL5irQwdLIQJTIQDQI/eF57j6ueQgpoFIYhC3XfJ5bdLejWWrTWGBOhiyoTwyann9qi04p5/Oif8JO5k7j62jof5kxe5V3O2bP2QU24CWVaXHLRxbzq0GNJRQDWEIWCoKTwpMBTEk9KpFRkmWLhkx533RWwfLmiXIatt+4GsytWwI03wvXXWx5+WFCtCg480BJFIScf36a24H72Ou8c7n7fD2hP3YH7zvoPhlqKkWVwxFGaKduMkJqckleiElRWH7MtCrQrO3ac8eA84Czg7JXn/wh8d+yW4ziOs3GeaU6tKz8en8YsqF1Z7nQhcBTwJPBXIcRvrLV/H6s1vZCM1mSdDioI1tsYqp23SXVKSVW46w6PG/7Y4jvfDchHEq4MXsui3x1A9ef/RR4qrCcp5walXJb22dQir9shOI+QtFCyiec9vzLaslL4QjBcaAZyTSRN92dS4K3KYgYBlEoYY4jTNtW+BpdcOsDeB5wNQ5NZ1pjFw499m96BOzmo9Eb+lq9gcOkkdpgdEMUeyuv+Pa2FZhOeWg6PPAKPPQbGQL0Ovb3dublCwB//CN/6lsVawbbbGs48M+fII6EUhngDC0nLNXTvdKQpCIeXMbz1zixaIqlU4HVvSAhrDbQV1IIakRetPlZrLXp4GCEE6jl0bnYcZ/NlrTXAf608IYQ4GPgm8J6xXJfjOM5z9YyZWld+PC6NZaZ2X+ARa+2jAEKIHwOvB7aIoHZ12XFp/ftoW3kLWwTc+Gefx+8b5JIfl3l8gcc55wxzZf59djmgn95JlkGvSmRGUDpCxr7L0j4LIQQ9pYAVLUsjyxGihZTBRpchrxJIyQRf0NKGljYkpsATglAKlBAIwGApjCUTISOeouW3qW77BD9YcB0XkjFdfYApQcBlix/n8tpe7LFPlVpVs/XWlomTCnp6BDvvDDNmKAYH4brrIE1haAjmz4eBAfjYxwz77qvZdtucU06RHHRQwdZbe0gZIITkwA+/grTSyx0f+Sm6Npkb//2vDHZ8hp4S7LJrwU4vbyK8DE/61ILaOp9smkYDW2hUbw9CuqbojrOlE0LsAZwKnAI8Blw+tityHMd57p5xT60rPx6XxjKo3QpYMOr8k8B+a/+SEOIsumVSzJgx48VZ2T9odNnx2gHCqn20jWHLX68SJEODTN9Ksve+OUfvdC/TZ2+PXz+I2a9qMqTKCJETZQVK1RGhy9I+F0oKeksBA03LcGcQIUaIwn6EeH7BmhCCiqcoKUnHGBJtaWuDXXm5MZa00GSZRpom/Srno29/C2e/8/20m21S8TVEJeb8Cb3s+JrXc0YxTHL3Ar7596M4e+EPuKJzFJNqQ+y7a06WVbj22phq1dLTA7vtZpg+XTNpUk6RFcyY4TFzpmLmNZcy9fu/5rZ/vRKTJzxxyJsw5T6UCmlmiqUDir4+yzHHtaj1twEo+xVKfmmd4zOtFqaTIMtl5HrmJzuOs2UQQuxIN5A9FVgO/AQQ1trDx3RhjuM4G+mZyo9dpnZ8esl3grHWXgRcBLD33nvbZ/n1MfdsZccj2QiLHm9x29U+kUoxQcyIr3iz+A4HXn4ev9zmTxz+L9uRBSGFF1EqBpE2QEWhy9JuBF9Jesshg60qg61h6naQUtT3D832lUJQVoqy6n44URhLK9d0Mk1kcyqqSRwLoqCH0099B8KWueCCC5g/fz6ybxL7fOTDHHX4wZwQPUn+0BLkV/bnbcdM4hg/Yfo9f+RVp7+Jq79wMz/60a5MuOc6tr/yP7njzAspahOY9Yfvs+tHPswfLlmO9kOEFQhrUCMrEDbnyUP/iaGkRmOxR6VecOAr20ydniKkIVAhFb+yzgs/dOfR6mYLGYWoittH6zhbuAeAG4DXWmsfARBCvH9sl+Q4jrPxnqn82O2pHZ/GMqhdCEwfdX7rlT/brD1T2XGrPfz/27vzOMmvst7jn+e31d7L7GtWkGxIEoaEBIiQICYkAWVVo0EuGkUR8IV6SYhgEJErqEG9comCwkVARCEhRBO2K1HIChgSkkAg+zJL9/Ra2+/3O+f+UT2TYWZ6pmemeypV9X2/Xv2a7qr+VT+nprtPP3We8xy+963N/Pc3CixfXuSGb1b5+P+NuOwPxgk3vZRbH5/kxFc9jeHRgG1Rjci3iVspQTyMJSoJPVBJFLCsWmF8xjExO0nqYLh8aImt955W5jrnx2aO3LWJrUExccRRQhwNEQSd1c6LLrqIiy66aOe1zuU0xsdJp6bguKNwH/tzTo0Cjp/dTmvNeu6buZQnSsfT2FKh+mid4qMPkk6FuEqZqSNP4f7zf5sgbZGHBe5//q9w76m/QH1bnZaPSQslNhzZ4pTjplixKicMjCRMKMdl4iDe61hco0E+NdcYamjhxx+JSM96BfDzwNfM7N+BTwN6tVREes6859Sq/HhgdTOpvRV4upkdTSeZ/XngF7sYzyFLW81O2XGlskfZcWNqkm/e+Bh33Vlg45Gr+ea3Yz7y0YDnP2sbx27ImEqPYuJX38xpx7WZSYZwGJXWLIYRlyuHlIgNsjgMWFkbYmLWM9OYotl21MojFOOIcD8r37nz5M7j5lZl25kjyx3OO/BNkjCjkuREYUQYVjuNvPbx/xQEIeVly2kkCdn0NAVnlHOjWMhon7UR94I38hI/S73eZOZ5L+Q7v3Q2brsxNbmdrcuO57tnH0c47gjDCZKkRbHSYsMxxsqNJZavyCkkRhzEFKIyhbBAME+5tXcONzODazSxJCYcGdH3l8gA8N5/Hvi8mVXo9LB4K7DKzD4EfM57f0NXAxQRWaB599QGMc53/lab7+8g6U9dS2q995mZvQm4ns6RPh/13t/VrXgOlXeOdqNBEEXEheKP3dcYm+TLX32cHz5cYOOxG7njXuODfxHwjKe1+ezMBTQ+vIGvvO7jPO/0FlmhRp2QQp4Spm3C0hAW6YfyUASBsaw2QiE2ZhrTTMyOEYZDRGHnKJ0gMLzvrMI6z85EFsB7h/cZ+IzQHFHoiMKMQhRiFhIElf0ms7uyIKBUG6IZBGStFhFQ8QnlPCd1bTKfU4hTRqqe9VWP3zC3d9d7POACR5a38XiiYpFipUaSFIjDhDguEoR733ftvYcsw7Va+EYD7zxBpUxYre7180Wkf3nvZ4FPAp80s1Hg1XSO+VFSKyI9Yb7y4x1JbuYyklB9QgZJV/fUeu+vA67rZgyLpdWo452jVPvxMs6ZLZNcf/0WHh4rsv6YtTz8uOP9f5KwcqXn995W5+GbX81Wv46fOmOa6nDCWFAkyHNKjTouDIhKSjoWS6U4TDFOaLYmaeeTOF8kzQv4PMAwDAfkhOREQUpAjllOaEYYGGYBZhFBUCIIigTzlPXuj5lRqtZoBSFps4GPI5KoTNF5fNqGLOskoZ7OW2DkPidrtcjabcyKJEmRKE6gDbRTICVnltzAwrBz/s9cYo73+Nzt/PpBISGsVLD44OIXkf7hvd9Op2/FVd2ORURkofZVfgyQ5qmS2gHzlG8U1QvyLCVrtYiLpR9bKZveMssXrxljSzNi9ZEraOWe5cvhZ871vOR549SGjG899808bf0UxxyTU0+GSDNHrZXjaBKVawR7ae4jBy8MS5SKMUk+jXNtOlnhjlXWXfqQWUhgBcxigiDCLMJscf8vCuUyYRTRqs/SbM41F6tUCKKwk2I7h8sysrRNnqaQJJSLReJCEQuCTuLrHOQ5fse/3kOeP5nQmoEZFoRYFGJJoiN7REREpKftq1EUoH21A0hJ7SJo1etYEJCUSjtvm9jS4Iv/MsaEc4yuW870VESWBqxbGfGmZ3+d0997Mf/x1n+iufpETt+U4gojTGeeuJWT0MaVIqK9HL8ihy4IIoJgFOcyvG/j534xQjCXwMYHffzPgYqShDCKaDebZO0WzXZ7z3jDkKRU2pnM7mBmEIYQhur0IiIiIgNjvj21Oz7WsT6DR0ntIdrZHKpa3bmvcnxzm+v+eZyZsEVhdY2sVeIvP5AwPmZc+WdtWlHC9LqfYHN4JC8+c5byUIltLsTVU4biCB+lBFF80OWtsjBBEPFU+BGwIKBQLpOUSrg8w+X5zrLjMIzm3ScrIiIiMoj2V36sY30GT/f/on+K8c7jU4fP3I+VcFrYeSMIOv/Sab6zsznU3Jm0Y1tzvviZ7cyGM4TLqyRuiKs+lHDXnQFveXMGzDJ75Ilc/cbreeaxY2w8wpj2JVqzKcNRSFjyZM4RhtpLO2jMjDCKCSO9mCEiIiIyH5Ufy+6U1M7x3uNbOb7tAA+BYXNHvnjn8W2PZ5d9ioGRpk1cO6M0MgzAtm2eaz89QTMYx0bLlMMRPvuJEv91o3HxL+e8+c5fpfXgKLe/8k8ZLU1x6jMzmtkQ03lKIQ6p1Apk+TRgBEFx74GKiIiIiAywhTSKksGipJZO0uoaGeQOi0OsEO5MaHd+jvfgPD73kHvyNKU9VSeME6zpGdvc5t+uniF1mwlGE6rJcm7+epmrP2+cf77nwnOn4O8cgcU0tzf56RfNEAVlxl1AUAhYVikAHueahGFJ54aKiIiIiOzFfvfUaqV24Ax8Uuu9x9VTcBCUIize+/7FTlMeY0eVQ9s1sWpEsVplaiLgi9fMkKVPkAx7qvFyyj7m+c9OGX9twCsvmMGlTe76tb9k65aE007czsq1BabKNfIAliURgRl53gC8VmlFREREROaxv/Jj7akdPAN/todvZOD8PhPa3bm8c2ZoUiwx04j45y+0mck245d5CqPruf/+IRpZSKUWcPFZ9/Hc97+S8vQ2xutVVq+uc8KpAe3hEZqhUY1CCnMdbfO8PncOqvZUioiIiIjsjcqPZXcDndS6do7PHFaIsHjhT0W70QAzGmnCZ65u0Z55nOpwm2ptLT+6e4TL3hny9/8YkZoRPfEDhh65B7KQPG3yghekWHmIKWfEZlTDztd1rnO0TBjqGB8RERERkfnMt1Kr8uPBNbDlx955fDOHMCAoLPzIlDzLyNot6nnCtV/KaExsYfnILHF1NY88MMp73gNr1sBrX+tJmzNsO/5Mbvib7/PYloTzzhyjNpIwbgXwnpE43Ll3Ns+bqEGUiIiIiMi+zbenVuXHg2tgV2p9s/PNHpQOLK9v1etsn825/v+FTI5NsGpkmqS0nG2bV3LFFUatBu++wnP6p36b9f/1GaJChc3by5xy/ARHHxMwFQ+Res9QFBLajqOBnBpEiYiIiIgsgMqPZXcDuVLrMzdXdrxnl+N9aTRbbN4+y63fLrLl8QYbRrcTRjXiwlr+7M8MM3j3u2G0OMXID2/HRTE/mCmyaniSZ5+SMRuP0PBQDQOK4ZOvJzjXRA2iRESkV5jZJcAlAEcccUSXoxGRQaNzamV3A5nUumYGZliy8LLjmVbG2NgUd3zX8+BDjo2jW4mtQFRajwXG294GaQpr1jja9Zyvv+NfyaKVtKdanH12HV8qMU1EIeg0h9qVGkSJiEgv8d5fBVwFsGnTJt/lcERkwOQux7A9Khx37qnVSu3AGbjyY5/mnW7HxXBBpb6584zPtpmabfCDexvc80PHumXjFK3ETLqRa64N8R42boRN9a9zyp++lqDVwMor2Lot4CUvmKAyHDIRlInMGNktoVWDKBERERGRhctctsd+Wniy/Fh7agfPwK3UulYOgS3o+J5mmjPVTGlnbR780Ri3/3fGuhUJQ77MZLqMy/8wZssWOP30TnOo8v3fZviBOyh4z0ObY844ZZwNGxxj0Qhmxmi8ZyKtBlEiIiIiIguX+3yP/bSg8uNBNlBJ7c5V2v00h3LOM15vMNmq43yb2e05N/1nxvplVZZZyESzzOXvKbF5M7zrXbBmtSfPc+574UXcf9YvMNZYxdOOanDySU22BxVcEDEaP9kYamc8ahAlIiIiInJAcpfvsZ8W1ChqkA1U+fH+VmnbeZux+gQ/GHuMzbNjhGFKkpe46csJq2ojLItCJuoJl7+3wmOPweWXw3PWPcrzfu8Myvd8Ayxgor2CoZrjrNMmmbKINC4zFIUkwZ5PtRpEiYiIiIgcmPnKj3fcpvLjwTMwK7XzrdLmLqeZN2mkDSZbbVqpoxglrBuqEuYlPveFFonljBZSIOLeh2s8/rhx2WVw8skQPjpL2JjCsjattIpZwHkvGqcVOlrxMLUooBTu/bUDNYgSERERETkwKj+W3Q1MUrv7Kq3zjtl0lmbWJM1zmm0jDsqsqJUZKsbkuXHd9Y7ZqQZrag3yrIAfHmbTaSF/+7cwWmzgKDG5aiM3vPdrtF2NejPh5y5sQNKgEVWoJgmVcO+rwjsaREXR0OF8GkREREREeprKj2V3A1F+7DMHzu88wqeZNRlvjtPIGgTEmKtSTYZZXasxXErw3rjxRnjkwSaratM88UTCGy9dwS3fSgBYEW7nBb97Osd89n1krTrtvMDEdIkLzncUihPUiaiUansc3bOrPG+gBlEiIiIiIgdmvpXanUf6aKV24AzESq1r5Z1zaeOAmfYM9axOFEQUgxr1licOjdFyQhh0mjV961tw150Z60e289D9IX/4FyvJXcDy5Z3HS0tDbP+J0xg74njabWP7ZJULX25Ua2PUU0eluozaPhLaToOolhpEiYiIiIgcoHmP9Al0pM+g6vuk1ucecocVIqbaU7TyFqWoROCLzLRy4jBgpBQTzCW099wD3/ymZ/3oGHfcDv/rw2splQLe+x44LvkR6dQw6dBybv/1K6lPt5iYqPDSCyNGVk5TrzeplIeoFQr7jKmzSqsGUSIiIiIiByr3Kj+WH9eV8mMze7WZ3WVmzsw2LeXX8u0cMKb9DK28RTWuElFmppVTiAJGy08mtA89BF/5CqwbneChHzT4o79ax+rVxgc+AEetbXHG5edwypWvI8uazEy2mJwscv7LYpZvaNNoTFFJitTK+98j61wDs1gNokREREREDlDu1ChKfly3VmrvBF4BfHgpv4h3Hp86Gtai5VpU4goBBSabKUkYMFyKd5b/bt4M110HK2szRM0tHH1MhTe8Ac4+2yiXwVHgu7/+18ysOoKJsTqtRsTLXlGksjqnMTtBNTSq1dH9xuRca65BVHUphy4iIiIi0pfmW6nduadWK7UDpysrtd77u7339x7whXl+YF8nzUnzlFmrUwgLhBSZbKSdkuPykwnt+Dh84QtQZIqPfCTj4a1VbGQdF5wPJ3z1r1h167UAbN50HveFR4AzLnxFieJqR7sxyZBlVCujsJdXjPYcQgMICIJ9lyiLiIiIiMiedE6t7O4p3/3YzC4xs9vM7LbxrVvwreaCrvPe41o5036GMAwpBBWm5hLa0V0S2qmpTkI7tXmaP3xPgS/dOMzdD6/BggDLUjZ+9WOsv/GfyDLPgw/Msmw447yXlYhXGK7dYNS3KRerEJcWEFM+1yCqqAZRIiIiIiIHYb7yYzMjCiKVHw+gJSs/NrMvA2v2ctc7vPdXL/RxvPdXAVcBnHriiT7b/CDxhqftd1XUp47Z9iyuALWwxlQjIwyMkV1Kjqen4ZqrPf990wxXfbxMYPDOdzpesO4Bmu31uKTITVfcwLgbYezhOied0OL4ZxZhKMDylGVuligpQnFhZ812VmkhCPafAIuIiIiIyJ7mKz+Gzmqtyo8Hz5Iltd77Fy/6g0Yx7dkWwdZHCFduhGD+hea02aLpmxTiKrOtzis3o+VkZ1OoHQntLf8xwV99ZJRjjmzz9stCjiiNcdZvnMpDL/k17rj4AzwyuYxKpcU5L2wyvDrC1WISckazKcIgguLIgkL33pPnDYKgQLCXcgkREREREdm/+VZqodMsSuXHg6ensisLQ/LSStoT2ygWNmPDa2AvZbw+dcw0Z7BCSJYleO8ZrTyZ0E5Owmc/kxLXH+OsZ7eYqse8/AIjqiW0WcVdr3s/9x5zHuNPwCmnpByxboZ2ZFAtUTLHSDqJBQGUlxLKN1AAAA95SURBVO0zsd6Vcw3AEYblxXxKREREREQGynx7aqFzrI/KjwdPt470+TkzewQ4A/iimV2/oOsCI16+nLYN0d46hp8d2+vnNRp1MjIcRXIHQ6WYOOwM9YH7Ha99VYvLLoVClJIsX8MlJ9zCS3/zaMoP3cPWrfCNky5h+ckbec1rMo49coq6ecJaiVqQMppNYkEIpWULagy1Q5bX547xSRZ8jYiIiIiI/Lh9lR/HQazy4wHUlZVa7/3ngM8dzLXFaoxfsYLmlgy2biUJI6z0ZAmwy3Jmm9O0LSCxAtVCRDEOcbnjqg+n/MEfhGwbL/CSs6YIk2GsNMT4mhN4/KgzeWKiyJHHwcknw/BwxrZtk2xPHZWRCsuCJpW0CWECpdEFr9AC5HkTfE4Y1Q5myCIiIiIiMmdf5cdqFDWYeqr82PuMLJsiqSXk2Qqa257ANm8mWRtBoXPua70+SzPNoDREMQ4pxwFPPFrnZ86LueO7BdavafO+d4zz+mteQ+NDNa77tc9RKKxh7COf58Knw9AQpGnK5m2TTLQ9tUrEaqYp5A6SMhSG9lryvC95PotZSBjqGB8RERERkUOxz5XaUHtqB1FPJbXOedrtOmHYIKoZ7azEzNgEZf8on//Pb3DZO99NK20zunYdb/rNt3LGs36O1Sum+eZNnmPb9/HOU69m6qI30iyM8v1nvpLl64u87ELPmrVGGHaaOTWaLR4bn6HZzllWcqyKUsIwgcIoRAdeOuxcC+8zIq3SioiIiIgcssxllKK9nyYSB9pTO4h6Kqn1k9OMP7Cd9qoVBJYRFj15NeSGaz/PlX9xJbPb60Qjz+K+772Iy99wFD9tV/Oc338+7bDK2074d864+gq+8/ZfZM3zVrDq199ItMvosyxjsl5n63QL2i3WFB3LywkkNUgqB7w6++TjzoKFOsZHRERERGQR7Lf8WHtqB05XGkUdrOj++xn5wheolqoUJpqsvPAiopu/w19fcy3LS2fyydlncuSD76NVv4Jn+of4lPtFTpv6Gi87r81x7/1leOwxTn31saxbB1EEzjnSNGVyZpZHJqd5YvsMhXadjWXP8uEqVFZ2ypoPMqHN8xbep0RheefZuCIiIiIicvBUfiy766mV2i3LjuN9d1/E7OVl7OGI13034EdfqfC92xqcUFvOiPshx6+9lpnl/8Lm+i1cOLmWq37neZRGI4I4Zgaw6WmgU2qcek8jd8y2MqzVZIXlLBsuENdGIS4ecrx5PoNplVZEREREZNHs75xalR8Pnp5Kah8er/Dej28AIEk28tkVX+GFsy2K5Rt5IBrj/DUxhfYHWeVGoVLksfXH0hhdQZqEGEYAGB4P5N7IUodvthnOWwwlUBwZISgNH/TK7K7yvD63l3ZYq7QiIiIiIotkv+fUqvx44PRUUrtqZc7b3jKBc56h4ZjjTkg45hlFTrv+ZD74gT/m0SceoNloMTVT54i1o/zPt/4WldZWXD5CMLcv1nkPWUaSNimnTUqhpzBSJqoOQxgvSpzeO7JshiBICMNDX/EVEREREZGOfZUf60ifwdRTSW2pZKzdUOHUTRHHHmtEsWN8ts35555DNWxzxRV/xEMPPcTw6iO49Ip38aqfPZd2Yztp+gikCYFVCCzCzBNERlgtE5ZqB9XVeF+ybBKAMFTHYxERERGRxaTyY9ldTyW1I6MBF/1yTBB0jvcZr6dkWUox9Lz61a/m9a9/wx7XFEvLiduTZOkk+CYWJITxMGFhGOb5YTgUeV7HuTZRVCOYpyxCREREREQOnPOOx2ce5+zS2Xu9Pw5j6mn9MEcl3dZTWVcUQTDXr3mqmZI7T8Ey8iCgVKrMc1FCGK0k8Ctwrkmez5L5lCzbThgUCcMyZovTBNq5Flk2TRAUCMPyojymiIiIiIh03LvtXqZaU5y2/rS93q+V2sHUU0ntDjOtjFbmqMQBjWaTpFggDPe96mpmhGGJMCyR5y2cq5Pns+R5fS4JLREEB1+G7FybNJ3ELCKKhg/6cUREREREZO9ufvRmgHmTWp1TO5h6LqlttHNmWxnFOMTyFs57yuXqAT1GGBYIwwLOZTjXIM8bONeca+xUOeDk1rnWXEIbEMcj6nYsIiIiIrIEbnn0FoYKQxy34ri93q9zagdTTyW13nfKjpMwoJaEbB+fJYwjkvjgVliDICIIaoRhlTyvz+2H3X5AyW2e18myacxC4ngUm6cTm4iIiIiIHJqbH72Z56x7DsE82wdVfjyYFmcz6WGSO08UGMOlmLTZInM5pfI8e2kPgJkRRRWSZAVhWMW5jDTdTppux7kW3vs9rnGuRbs9vnMPbRwvU0IrIiIiIrJEGmmDOzbfMW/pMaj8eFD11EotBiPlBAMazToWBZQLi9eQaUdyG4blXVZuJ4BgrpNxCHicT8HnQEAUDRGGpUWLQUREpJfctfUuTvybE7sdhogMgHbeJnMZp68/fd7PiYOYR6Ye0e+lHvOq41/FFS+64qCv76mkNgyMMDCyZpt21qI4VF2S/au7JrfOtedWa1M8OQYEFhGEFYKgqP2zIiIycMzsEuASgPL6MiesPKHLEYnIoDjriLM455hz5r3/4mddzHR7Gs+elZby1LWutu6Qrre9ldY+VW3atMnfesutzE5MMevrLBtdQRzE3Q5LRER6lJnd7r3f1O04etmmTZv8bbfd1u0wRESkTxzM3NxTe2oBfJrTzBrExYISWhERERERkQHXc0lts94gD/2i7qUVERERERGR3tRbSa33NNIGQTGiGBW7HY2IiIiIiIh0WU8ltd55siinkhz6MT4iIiIiIiLS+3oqqXXeYUmoVVoREREREREBupTUmtn7zeweM7vDzD5nZiMLuc6bp5SUCKyncnERERERERFZIt3KDr8EnOS9/0ng+8ClC7rKjFJUWsq4REREREREpId0Jan13t/gvc/mPrwJ2LCQ68yMKIiWLjARERERERHpKea9724AZl8A/sl7/4l57r8EuGTuw5OAOw9XbF20AtjW7SAOA42zv2ic/WVQxvkM732t20H0MjObBu7tdhyHwaD8TGic/UXj7C+DMs4DnpuXLKk1sy8Da/Zy1zu891fPfc47gE3AK/wCAjGz27z3mxY30qcejbO/aJz9RePsL4MyzqU0KM+hxtlfNM7+onH2l4MZ55LV8nrvX7yv+83sV4ALgHMWktCKiIiIiIiI7K4rG1TN7Fzg94Gf8t7XuxGDiIiIiIiI9L5udT/+a6AGfMnMvmNm/2eB1121hDE9lWic/UXj7C8aZ38ZlHEupUF5DjXO/qJx9heNs78c8Di73ihKRERERERE5GB1a6VWRERERERE5JApqRUREREREZGe1XNJrZm938zuMbM7zOxzZjbS7ZgWi5mda2b3mtl9Zvb2bsezFMxso5l9zcy+Z2Z3mdlbuh3TUjKz0My+bWbXdjuWpWJmI2b22bmfy7vN7Ixux7QUzOx35r5n7zSzT5lZsdsxLRYz+6iZbTGzO3e5bZmZfcnMfjD372g3Y1wM84yzb+eUw6mfn0fNzf1Hc3P/0Nzc23PzYs7LPZfUAl8CTvLe/yTwfeDSLsezKMwsBP43cB5wAvALZnZCd6NaEhnwNu/9CcBzgd/q03Hu8Bbg7m4HscQ+CPy79/444Fn04XjNbD3wZmCT9/4kIAR+vrtRLap/AM7d7ba3A1/x3j8d+Mrcx73uH9hznH05p3RBXz6Pmpv7lubmPqC5uS/m5n9gkeblnktqvfc3eO+zuQ9vAjZ0M55FdBpwn/f+R977NvBp4OVdjmnRee8f995/a+79aTq/ZNd3N6qlYWYbgPOBv+t2LEvFzIaBs4CPAHjv2977ie5GtWQioGRmEVAGHutyPIvGe/91YHy3m18OfGzu/Y8BP3tYg1oCextnH88ph1UfP4+am/uM5ua+o7m5hy3mvNxzSe1u/gfwb90OYpGsBx7e5eNH6NMJZQczOwo4Bbi5u5EsmSvpnMfsuh3IEjoa2Ar8/Vwp19+ZWaXbQS027/2jwAeAh4DHgUnv/Q3djWrJrfbePz73/hPA6m4Gc5j005zSTf30PGpu7j+am/uE5uaBmJsXPJ88JZNaM/vyXG387m8v3+Vz3kGnXOYfuxepHCwzqwL/ArzVez/V7XgWm5ldAGzx3t/e7ViWWAScCnzIe38KMEvvl8LsYW7Pysvp/KGwDqiY2S91N6rDx3fOfuvr8980p+yf5ub+p7m5b2huHgD9Pjcf6HwSLW04B8d7/+J93W9mvwJcAJzj++eg3UeBjbt8vGHutr5jZjGdSfMfvff/2u14lsjzgJeZ2UuBIjBkZp/w3vfbL9tHgEe89zte0f8sfThxAi8G7vfebwUws38FzgQ+0dWoltZmM1vrvX/czNYCW7od0FLp0zll0WluBjQ39zrNzf1Fc3Ofzs0HM588JVdq98XMzqVTNvIy73292/EsoluBp5vZ0WaW0Nnofk2XY1p0ZmZ09njc7b3/827Hs1S895d67zd474+i83/51T6cNPHePwE8bGbPmLvpHOB7XQxpqTwEPNfMynPfw+fQh003dnMN8Lq5918HXN3FWJZMH88ph1UfP4+am/uI5ua+o7m5D+fmg51PrNdeTDWz+4ACMDZ3003e+9/oYkiLZu6VwyvpdG/7qPf+j7sc0qIzs+cDNwLf5cn9LJd576/rXlRLy8xeCPyu9/6CbseyFMzsZDoNNxLgR8DrvffbuxvV4jOzK4DX0imF+Tbwq977VnejWhxm9inghcAKYDPwLuDzwGeAI4AHgdd473dvWNFT5hnnpfTpnHI4aW7ubZqb+4/m5t43CHPzYs7LPZfUioiIiIiIiOzQc+XHIiIiIiIiIjsoqRUREREREZGepaRWREREREREepaSWhEREREREelZSmpFRERERESkZympFRERERERkZ6lpFZERERERER6lpJakT5hZs8xszvMrGhmFTO7y8xO6nZcIiIig0pzs8jhYd77bscgIovEzN4DFIES8Ij3/k+6HJKIiMhA09wssvSU1Ir0ETNLgFuBJnCm9z7vckgiIiIDTXOzyNJT+bFIf1kOVIEanVeFRUREpLs0N4ssMa3UivQRM7sG+DRwNLDWe/+mLockIiIy0DQ3iyy9qNsBiMjiMLOLgdR7/0kzC4FvmNnZ3vuvdjs2ERGRQaS5WeTw0EqtiIiIiIiI9CztqRUREREREZGepaRWREREREREepaSWhEREREREelZSmpFRERERESkZympFRERERERkZ6lpFZERERERER6lpJaERERERER6Vn/H8BkNtde7ak+AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_14.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5xcdb3/8df3lKnbs0kICckm9AChJDSR3ouAVBUURH4RMYhelQsEL+CFn2JDiuLlx70XlVi4aFC5NroUARMIggQEQhICadt36mnf3x+7G4OUhCVkstn38/GY3T1nzux8ZuexM+c932astYiIiIiIiIgMR06tCxAREREREREZKoVaERERERERGbYUakVERERERGTYUqgVERERERGRYUuhVkRERERERIYthVoREREREREZtrxa3rkxZjHQB8RAZK2dUct6REREREREZHipaagdcLC1tr3WRYiIiIiIiMjwo+7HIiIiIiIiMmwZa23t7tyYV4AuwAL/Ya29+S2OmQnMBMjn89N32GGHjVukiIhstubPn99urR1d6zqGs9bWVtvW1lbrMkREZDMxlPfmWnc//qC19jVjzBjgbmPM89baP619wEDQvRlgxowZdt68ebWoU0RENkPGmCW1rmG4a2trQ+/NIiKyoQzlvbmm3Y+tta8NfF8FzAX2qmU9IiIiIiIiMrzULNQaY/LGmPrBn4EjgGdrVY+IiIiIiIgMP7XsfjwWmGuMGazjJ9ba39ewHhERERERERlmahZqrbWLgF1rdf8iIsNJGIYsW7aMSqVS61KGpUwmw4QJE/B9v9aliIiIyAZW64miRERkPSxbtoz6+nra2toY6OEi68laS0dHB8uWLWPy5Mm1LkdEREQ2MK1TKyIyDFQqFUaNGqVAOwTGGEaNGqVWbhERkc2UQq2IyDChQDt0+tuJiIhsvhRqRURERERk2Hq973V+/cKva12G1JBCrYiIrJeVK1fysY99jClTpjB9+nT23Xdf5s6dC8ADDzxAY2Mju+22GzvuuCNXXnlljasVEZGR4pYnb+Gkn5+EtbbWpUiNKNSKiMg6WWs58cQTOeCAA1i0aBHz58/nZz/7GcuWLVtzzP7778+CBQuYN28et912G08++WQNKxYRkZGiGlWJbUxs41qXIjWiUCsiIut03333kUqlOO+889bsmzRpEhdccMGbjs3n80yfPp2XXnrpDfsfeOABDjzwQE444QSmTJnCxRdfzJw5c9hrr73YZZddePnllwFYvXo1J598MnvuuSd77rknjzzyCABPPPEE++67L7vvvjsf+MAHeOGFFwC49dZbOemkkzjqqKPYdtttueiii96vP4OIiGyCoiR6w3cZebSkj4jIMHTQQW/ed9ppcP75UCrBMce8+fqzz+6/tLfDKae88boHHnjn+/vb3/7GHnvssV61dXR08Nhjj/GVr3zlTdc9/fTTLFy4kJaWFqZMmcK5557LE088wXXXXccNN9zAd7/7XS688EK+8IUv8MEPfpClS5dy5JFHsnDhQnbYYQceeughPM/jnnvu4dJLL+UXv/gFAAsWLOCpp54inU6z/fbbc8EFF7DVVlutV70iIjK8KdSKQq2IiLxrn/3sZ3n44YdJpVL85S9/AeChhx5i9913x3EcLr74Ynbaaac33W7PPfdk3LhxAGy99dYcccQRAOyyyy7cf//9ANxzzz0899xza27T29tLoVCgp6eHs846ixdffBFjDGEYrjnm0EMPpbGxEYCpU6eyZMkShVoRkRFCoVYUakVEhqF3alnN5d75+tbWdbfM/rOddtppTasowPe+9z3a29uZMWPGmn37778/d9111zv+nnQ6veZnx3HWbDuOQxT1n4wkScJjjz1GJpN5w21nzZrFwQcfzNy5c1m8eDEHrdVcvfbvdV13ze8SEZHN3+BY2jjRmNqRSmNqRURknQ455BAqlQo33XTTmn2lUul9ua8jjjiCG264Yc32ggULAOjp6WH8+PFA/zhaERERUEutKNSKiMh6MMZw55138uCDDzJ58mT22msvzjrrLK655poNfl/XX3898+bNY9q0aUydOpUf/OAHAFx00UVccskl7L777mqJFRGRNRRqxQyn9ZxmzJhh582bV+syREQ2uoULF7LjjjvWuoxh7a3+hsaY+dbaGW9zE1kPem8WkVo7+86z+eHTP2TxhYuZ1DSp1uXIezSU92a11IqIiIiIyLC1Zkyt1qkdsRRqRURE5F0xxsw0xswzxsxbvXp1rcsRkRFO3Y9FoVZERETeFWvtzdbaGdbaGaNHj651OSIywinUikKtiIiIiIgMWwq1olArIiIiIiLD1uD6tFqnduRSqBURERERkWFLLbXi1boAERHZ9HV0dHDooYcCsGLFClzXZXAs5RNPPEEqlapleSIiMoIp1IpCrYiIrNOoUaNYsGABAFdccQV1dXV86UtfWnN9FEV4nt5SRERk41OoFZ2BiIjIkJx99tlkMhmeeuop9ttvPxoaGt4QdnfeeWfuuusu2trauO2227j++usJgoC9996b73//+7iuW+NHICIimwOtUys1H1NrjHGNMU8ZY+6qdS0iIsPGQQfBrbf2/xyG/du33da/XSr1b//85/3bPT3927/8Zf92e3v/9m9+07+9YsWQy1i2bBmPPvoo3/nOd972mIULF/Lzn/+cRx55hAULFuC6LnPmzBnyfYqIiKxNLbWyKbTUXggsBBpqXYiIiLw7p5566jpbXO+9917mz5/PnnvuCUC5XGbMmDEbozwRERkBFGqlpqHWGDMBOBa4GviXWtYiIjKsPPDAP372/Tdu53Jv3G5sfON2a+sbt7fYYshl5PP5NT97nkeSJGu2K5UKANZazjrrLL72ta8N+X5ERETejkKt1Lr78XeBi4Dk7Q4wxsw0xswzxsxbvXr1xqtMRETelba2Np588kkAnnzySV555RUADj30UO644w5WrVoFQGdnJ0uWLKlZnSIisnkZXJ9WoXbkqlmoNcYcB6yy1s5/p+OstTdba2dYa2cMLh8hIiKbnpNPPpnOzk522mknbrzxRrbbbjsApk6dylVXXcURRxzBtGnTOPzww1m+fHmNqxURkc3FYJgdDLcy8tSy+/F+wPHGmGOADNBgjLnNWntmDWsSEZF1uOKKK95yfzab5Y9//ONbXnf66adz+umnv49ViYjISKXux1Kzllpr7SXW2gnW2jbgI8B9CrQiIiIiIvJuKNRKrcfUioiIiIiIDNng+rQKtSPXprCkD9baB4AHalyGiIiIiIgMM2vG1FqNqR2p1FIrIiIiIiLDlrofi0KtiIiIiIgMWwq1olArIiIiIiLDltapFYVaERFZL67rsttuu7HTTjux66678u1vf5skSd7xNosXL+YnP/nJRqpQRERGIq1TKwq1IiKyXrLZLAsWLOBvf/sbd999N7/73e+48sor3/E2CrUiIvJ+U/djUagVEdkMzZkzh7a2NhzHoa2tjTlz5mzQ3z9mzBhuvvlmbrzxRqy1LF68mP3335899tiDPfbYg0cffRSAiy++mIceeojddtuNa6+99m2PExERGSqF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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_16.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "8 8.05000000000001 2.5908498356204\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_18.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "9 8.05000000000001 2.5908498356204\n" - ] - } - ], - "source": [ - "Thetas=[2.0,2.0]\n", - "nxp = list(copy.copy(xp))\n", - "nxt = copy.copy(xt)\n", - "nyt = copy.copy(yt)\n", - "\n", - "n_iter = 10 ## 探索回数の上限\n", - "xopt = 6; yopt = -1.e+30\n", - "SVs=[]\n", - "plot = True\n", - "#plot = False\n", - "\n", - "for iter in range(n_iter):\n", - " lt=len(nxt); lp=len(nxp)\n", - " Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp)\n", - " mu_yt= np.zeros(lt)\n", - " mu_yp= np.zeros(lp)\n", - " cLinv,logdetK = Mchole(Ktt,lt) \n", - " mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp)\n", - " sigmaj=[ Sjoint[j][j] for j in range(lp)]\n", - " ysamples = [np.random.multivariate_normal(mujoint,Sjoint) for i in range(10)]\n", - " SVs += [ [ mujoint, sigmaj] ]\n", - " xbest,ybest,ind= xybest(nxt,nyt)\n", - " xnew,ynew,EIs,ind = calcEI(nxp,mujoint,sigmaj,xbest,ybest)\n", - " if plot :\n", - " plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs)\n", - " nxt += [ xnew ]; nyt += [ ynew ]\n", - " nxp.pop(ind) \n", - " if ynew > yopt:\n", - " xopt= xnew; yopt = ynew \n", - " print(iter, xopt, yopt)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "T6Z8roWgcret" - }, - "source": [ - "探索点が増えるにつれて、効率的に最適解が探索出来ている(っぽい)。\n", - "\n", - "8回目の探索でx=8.05が探索されていて、真の解8.055...にそこそこ近いものが得られている。 \n", - "(実装の都合上、0.05刻みでしか点を打ってないことに注意)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s1KRB5HALEEX" - }, - "source": [ - "同じデータで、勾配法による最適化もやってみる。" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "iLMN0pJ3KcwN", - "outputId": "75f33bb6-c0cf-45d5-f45f-65accd178eb1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "探索回数 53 最適解(x,y)= 8.045494422941772 2.590816292488816\n" - ] - } - ], - "source": [ - "import numpy as np \n", - "\n", - "def f(x):\n", - " return np.sin(x) + 0.2 * x \n", - "def derf(x):\n", - " return np.cos(x) + 0.2 \n", - "\n", - "xexact = 8.055339554764814\n", - "\n", - "x = 6 \n", - "xopt = x; yopt=f(x)\n", - "tol = 1.e-2\n", - "eta = 1.e-1\n", - "\n", - "itnum = 10**4\n", - "for i in range(itnum):\n", - " x += eta * derf(x)\n", - " y = f(x)\n", - " if y > yopt:\n", - " xopt = x\n", - " yopt = y \n", - " if abs(xexact-xopt) < tol :\n", - " break\n", - "print(\"探索回数\",i, \"最適解(x,y)=\",xopt,yopt)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sOn3qlTGURH2" - }, - "source": [ - "$\\eta$を適切に選べれば、より少ない探索回数でより正確な解が求まるが、そんなことができたら苦労はしない...。\n", - "\n", - "また今の場合、勾配は式から計算したが、実際には差分をとって微分を近似することになるため探索回数は少なくとも2倍-3倍程度必要になる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4jSIRj1Dc3k8" - }, - "source": [ - "**言及しなかった重要な事項**\n", - "\n", - "* カーネル関数の選択と依存性\n", - "* ハイパーパラメータの最適化 or サンプリング\n", - "* 獲得関数の定義・選択と依存性\n", - "* 数値計算(とくにガウス過程の部分)のTips" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c1GBk01r0jz8" - }, - "source": [ - "## 備忘録: ライブラリの出力に関して" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "C4kpASFXurFl", - "outputId": "52b733dd-8b8e-4222-970d-856c242b1ad2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "train [2.04, 6.12] [1.2999286509533796, 1.061537984784846]\n", - "xp [-2. -0.44444444 1.11111111 2.66666667 4.22222222 5.77777778\n", - " 7.33333333 8.88888889 10.44444444 12. ]\n", - "My muj [5.75795234e-03 8.44113811e-02 7.33727607e-01 9.88413223e-01\n", - " 3.06567459e-01 9.73202438e-01 4.32586459e-01 4.31993679e-02\n", - " 2.79241473e-03 1.47812049e-04]\n", - "sigmaj [0.9999901297449515, 0.9978771506830272, 0.8245848824042269, 0.6584175494971636, 0.9813489474851831, 0.4100810951379304, 0.9125129281442049, 0.9991642392577667, 0.9999965079965879, 0.9999999902138795]\n" - ] - } - ], - "source": [ - "Thetas=[1.0,1.0]\n", - "nxp = np.linspace(-2,12,10)\n", - "nxt = copy.copy(xt);nyt = copy.copy(yt)\n", - "\n", - "n_iter = 10 ## 探索回数の上限\n", - "xopt = 6; yopt = -1.e+30\n", - "SVs=[]\n", - "plot = False\n", - "\n", - "lt=len(nxt); lp=len(nxp)\n", - "Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp)\n", - "mu_yt= np.zeros(lt)\n", - "mu_yp= np.zeros(lp)\n", - "cLinv,logdetK = Mchole(Ktt,lt) \n", - "mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp)\n", - "sigmaj=[ np.sqrt(Sjoint[j][j]) for j in range(lp)]\n", - "print(\"train\", nxt,nyt)\n", - "print(\"xp\", nxp)\n", - "print(\"My muj \", mujoint)\n", - "print(\"sigmaj\", sigmaj)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_5TGmrsxxomr", - "outputId": "8279b55c-2d2b-4a8b-da53-a2a144af9074", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sGP.kernel_ Matern(length_scale=1, nu=2.5)\n", - "[-5.75795234e-03 -8.44113811e-02 -7.33727607e-01 -9.88413223e-01\n", - " -3.06567459e-01 -9.73202438e-01 -4.32586459e-01 -4.31993679e-02\n", - " -2.79241473e-03 -1.47812049e-04]\n", - "[0.99999013 0.99787715 0.82458488 0.65841755 0.98134895 0.4100811\n", - " 0.91251293 0.99916424 0.99999651 0.99999999]\n" - ] - } - ], - "source": [ - "from sklearn.gaussian_process import kernels as sk_kern\n", - "import sklearn.gaussian_process as skGP \n", - "# sklearn GP\n", - "\n", - "nxp = np.linspace(-2,12,10)\n", - "nxt = np.array(copy.copy(xt))\n", - "nyt = np.array(copy.copy(yt))\n", - "\n", - "kern = sk_kern.Matern(length_scale=1.0, length_scale_bounds=(1.0,1.0), nu=2.5)\n", - "sGP = skGP.GaussianProcessRegressor(\n", - " kernel=kern,\n", - " alpha=1e-15, \n", - " optimizer=\"fmin_l_bfgs_b\", \n", - " n_restarts_optimizer=0)\n", - "\n", - "sGP.fit(nxt.reshape(-1, 1), nyt)\n", - "print(\"sGP.kernel_\", sGP.kernel_)\n", - "pred_mean, pred_std= sGP.predict(nxp.reshape(-1,1), return_std=True)\n", - "\n", - "print(pred_mean.reshape(-1,))\n", - "print(pred_std)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "4W09PtvH0hBl", - "outputId": "b25c7f62-43aa-45d9-901d-f633fa842971", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting GPy\n", - " Downloading GPy-1.10.0.tar.gz (959 kB)\n", - "\u001b[K |████████████████████████████████| 959 kB 4.3 MB/s \n", - "\u001b[?25hRequirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.19.5)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy) (1.15.0)\n", - "Collecting paramz>=0.9.0\n", - " Downloading paramz-0.9.5.tar.gz (71 kB)\n", - "\u001b[K |████████████████████████████████| 71 kB 8.9 MB/s \n", - "\u001b[?25hRequirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.29.26)\n", - "Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.4.1)\n", - "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy) (4.4.2)\n", - "Building wheels for collected packages: GPy, paramz\n", - " Building wheel for GPy (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for GPy: filename=GPy-1.10.0-cp37-cp37m-linux_x86_64.whl size=2565113 sha256=d3f5efe34d8d7393bde5e956d9d3aaa15a46e98c97fa52624778f8952750d950\n", - " Stored in directory: /root/.cache/pip/wheels/f7/18/28/dd1ce0192a81b71a3b086fd952511d088b21e8359ea496860a\n", - " Building wheel for paramz (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for paramz: filename=paramz-0.9.5-py3-none-any.whl size=102566 sha256=7642fed4b69b594975067d330d9293b5502326530e2cb3589eb51d00117e7bb7\n", - " Stored in directory: /root/.cache/pip/wheels/c8/95/f5/ce28482da28162e6028c4b3a32c41d147395825b3cd62bc810\n", - "Successfully built GPy paramz\n", - "Installing collected packages: paramz, GPy\n", - "Successfully installed GPy-1.10.0 paramz-0.9.5\n" - ] - } - ], - "source": [ - "!pip install GPy" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rIZjn7IBxvsu", - "outputId": "74319b5f-1cb5-4343-daa5-066cf73dcef1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Name : GP regression\n", - "Objective : 3.2337691135149766\n", - "Number of Parameters : 3\n", - "Number of Optimization Parameters : 3\n", - "Updates : True\n", - "Parameters:\n", - " \u001b[1mGP_regression. \u001b[0;0m | value | constraints | priors\n", - " \u001b[1mMat52.variance \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mMat52.lengthscale \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mGaussian_noise.variance\u001b[0;0m | 1.0 | +ve | \n", - "results(default) [-2.88381322e-03 -4.22766071e-02 -3.67480418e-01 -4.95042500e-01\n", - " -1.53613693e-01 -4.87828001e-01 -2.16840168e-01 -2.16543149e-02\n", - " -1.39973895e-03 -7.40929687e-05] \n", - " [1.99999013 1.99787943 1.8399713 1.71674076 1.98148809 1.58407415\n", - " 1.91634063 1.9991646 1.99999651 1.99999999]\n", - "\n", - "Name : GP regression\n", - "Objective : 3.2405297752729125\n", - "Number of Parameters : 3\n", - "Number of Optimization Parameters : 3\n", - "Updates : True\n", - "Parameters:\n", - " \u001b[1mGP_regression. \u001b[0;0m | value | constraints | priors\n", - " \u001b[1mMat52.variance \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mMat52.lengthscale \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mGaussian_noise.variance\u001b[0;0m | 1e-15 | +ve | \n", - "results(noise_var~0) [-5.75795228e-03 -8.44113803e-02 -7.33727600e-01 -9.88413214e-01\n", - " -3.06567456e-01 -9.73202429e-01 -4.32586454e-01 -4.31993675e-02\n", - " -2.79241470e-03 -1.47812047e-04] \n", - " [0.99998026 0.99575881 0.67994023 0.43351368 0.96304576 0.16816651\n", - " 0.83267985 0.99832918 0.99999302 0.99999998]\n" - ] - } - ], - "source": [ - "import GPy\n", - "\n", - "nxp = np.linspace(-2,12,10).reshape(-1,1)\n", - "nxt = np.array(copy.copy(xt)).reshape(-1,1)\n", - "nyt = np.array(copy.copy(yt)).reshape(-1,1)\n", - "\n", - "kern = GPy.kern.Matern52(input_dim=1,variance=1.0,lengthscale=1.0)\n", - "model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,normalizer=None)\n", - "print(model)\n", - "pred_mean, pred_var = model.predict(nxp)\n", - "print(\"results(default) \", pred_mean.reshape(-1,), \"\\n\",pred_var.reshape(-1,))\n", - "\n", - "model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,noise_var=1.e-15, normalizer=None)\n", - "pred_mean, pred_var = model.predict(nxp)\n", - "print(model)\n", - "print(\"results(noise_var~0)\", pred_mean.reshape(-1,), \"\\n\",pred_var.reshape(-1,))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6czVZ0d87wu_" - }, - "source": [ - "GPyでは、予測誤差がデフォルトで1.0に設定されていることがわかった。\n", - "\n", - "これはかなり注意が必要。 \n", - "GPに限らず多くの場合、データを標準化(平均0,分散1)して使うので、予測誤差の分散が1.0というデフォルト値を使うというのは、 「GPの予測が、データ全体の広がりと同程度誤差を持つ」ことを仮定していて、場合によっては非現実的な仮定になり得る。 \n", - "Webに転がってるGPyを使ったコードだと、あまりこのあたりは認識されていないように思う。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xVtY7wj3XRX4" - }, - "source": [ - "## GPyOpt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bAI3991sXVIJ" - }, - "source": [ - "上で自前コードでやったことを、GPyOptを使ってやってみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "A0Aun9c-YQNF", - "outputId": "14ae57b8-94b8-45c1-c8db-2b7fad3c4eda", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: GPy in /usr/local/lib/python3.7/dist-packages (1.10.0)\n", - "Requirement already satisfied: paramz>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.9.5)\n", - "Requirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.29.26)\n", - "Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.4.1)\n", - "Requirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.19.5)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy) (1.15.0)\n", - "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy) (4.4.2)\n", - "Collecting GPyOpt\n", - " Downloading GPyOpt-1.2.6.tar.gz (56 kB)\n", - "\u001b[K |████████████████████████████████| 56 kB 2.3 MB/s \n", - "\u001b[?25hRequirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.19.5)\n", - "Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.4.1)\n", - "Requirement already satisfied: GPy>=1.8 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.10.0)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (1.15.0)\n", - "Requirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (0.29.26)\n", - "Requirement already satisfied: paramz>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (0.9.5)\n", - "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy>=1.8->GPyOpt) (4.4.2)\n", - "Building wheels for collected packages: GPyOpt\n", - " Building wheel for GPyOpt (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for GPyOpt: filename=GPyOpt-1.2.6-py3-none-any.whl size=83609 sha256=b36359bb607ed1762b6fd67894ef7c988810df30bdafc0694e7c88cd11f5f48c\n", - " Stored in directory: /root/.cache/pip/wheels/e6/fa/d1/f9652b5af79f769a0ab74dbead7c7aea9a93c6bc74543fd3ec\n", - "Successfully built GPyOpt\n", - "Installing collected packages: GPyOpt\n", - "Successfully installed GPyOpt-1.2.6\n" - ] - } - ], - "source": [ - "#使うライブラリのインポート\n", - "!pip install GPy\n", - "!pip install GPyOpt\n", - "import GPy\n", - "import GPyOpt\n", - "import numpy as np \n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 300 - }, - "id": "AFlh-8hGXjnL", - "outputId": "a523a61c-5738-4a62-cdbb-3f539929cc79", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Estimated Opt. x 8.001075118805382 y 2.589416268802192\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_21_1.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def f(x): #GPyOptは最小値を探索するのでマイナスをかけておく\n", - " return - (np.sin(x) + 0.2 * x)\n", - "\n", - "\n", - "oxt = np.array([ 0.0 + 1.02*i for i in range(11)])\n", - "xt = np.array([ oxt[2], oxt[6]])\n", - "yt = f(xt)\n", - "xt = np.array( [ [ x ] for x in xt])\n", - "yt = np.array( [ [ y ] for y in yt])\n", - "\n", - "## BayesOptの準備・実行\n", - "bounds = [{'name': 'x', 'type': 'continuous', 'domain': (-2,12)}]\n", - "res = GPyOpt.methods.BayesianOptimization(f=f,X=xt,Y=yt, \n", - " kernel=GPy.kern.Matern52(input_dim=len(bounds)), \n", - " domain=bounds,acquisition_type='EI')\n", - "#print(\"bounds\", bounds,len(bounds))\n", - "res.run_optimization(max_iter=10)\n", - "\n", - "## 結果の描画等\n", - "xs = res.X; ys = res.Y\n", - "print(\"Estimated Opt. x\", res.x_opt[0], \"y\", -res.fx_opt)\n", - "xr = np.arange(-2.0,12.0,0.1)\n", - "yr = - f(xr)\n", - "\n", - "fig = plt.figure(figsize=(12,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.set_xlim(-2.0,12); ax.set_ylim(-2.0,5.0)\n", - "ax.plot(xr,yr,linestyle=\"dotted\",color=\"red\")\n", - "ax.scatter(xs,-ys,marker=\"o\",color=\"black\")\n", - "plt.show()\n", - "plt.close()" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_BayesianOptimization.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization.txt deleted file mode 100644 index 3ca12d83..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization.txt +++ /dev/null @@ -1,267 +0,0 @@ -#使うライブラリのインポート -import numpy as np -import matplotlib.pyplot as plt -import copy -from scipy import special - -## データの生成用関数 -def f(x): - return np.sin(x) + 0.2 * x - -## ガウス過程のカーネル(共分散行列)の設計 -def Mat52(Thetas,r): - tau,sigma = Thetas - thetar = r * np.sqrt(5.0)/sigma - return tau * (1.0 + thetar + (thetar**2) /3.0) * np.exp(-thetar) -def KernelMat(Thetas,xt,xp): - lt = len(xt); lp=len(xp) - Ktt = np.zeros((lt,lt)); Kpt = np.zeros((lp,lt)); Kpp = np.zeros((lp,lp)) - for j in range(lt): - for i in range(j,lt): - r = abs(xt[i]-xt[j]) - tmp = Mat52(Thetas,r) - Ktt[i,j] = tmp; Ktt[j,i] = tmp - for i in range(lp): - r= abs(xp[i]-xt[j]) - Kpt[i,j] = Mat52(Thetas,r) - for j in range(lp): - for i in range(j,lp): - r= abs(xp[i]-xp[j]) - tmp = Mat52(Thetas,r) - Kpp[i,j] = tmp; Kpp[j,i] = tmp - return Ktt,Kpt,Kpp - -## 事後共分散行列の計算 -def calcSj(cLinv,Kpt,Kpp,yt,mu_yt,mu_yp): - tKtp= np.dot(cLinv,Kpt.T) - return mu_yp + np.dot(Kpt,np.dot(cLinv.T,np.dot(cLinv,yt-mu_yt))), Kpp - np.dot(tKtp.T,tKtp) - -## Cholesky分解 -def Mchole(tmpA,ln) : - cLL = np.linalg.cholesky(tmpA) - logLii=0.0 - for i in range(ln): - logLii += np.log(cLL[i,i]) - return np.linalg.inv(cLL), 2.0*logLii - -## 獲得関数を計算, 次点の計算点を決める -def calcEI(xp,mujoint,sigmaj,xbest,ybest): - EIs = [ (mujoint[i]-ybest) * Phi((mujoint[i]-ybest)/sigmaj[i]) + - sigmaj[i]* np.exp(-0.5* ((mujoint[i]-ybest)/sigmaj[i])**2) for i in range(len(xp))] - xnew,ynew,ind=xybest(xp,EIs) - ynew= np.sin(xnew) + 0.2*xnew #+ 0.01 * (0.5-np.random.rand()) - return xnew,ynew,EIs,ind -def Phi(z): - return 0.5 * special.erfc(-(z/(2**0.5)) ) - -def xybest(xt,yt): - ind = np.argmax(yt) - return xt[ind],yt[ind],ind - -## お絵かき -def plotGP0(xt,yt,xp,ytrue): - fig = plt.figure(figsize=(8,4)) - axT = fig.add_subplot(1,1,1) - axT.set_xlabel("x"); axT.set_ylabel("y") - axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0) - axT.scatter(xt,yt,marker="o",color="black",label="Data") - axT.plot(xp,ytrue,color="red",label="True",linestyle="dotted") - axT.legend(loc="upper right") - plt.show() - #plt.savefig("BayesOpt_initial.pdf",bbox_inches="tight", pad_inches=0.1) - plt.close() - -def plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs): - fig = plt.figure(figsize=(16,4)) - axT = fig.add_subplot(121) - axB = fig.add_subplot(122) - axT.set_xlabel("x"); axT.set_ylabel("y") - axB.set_xlabel("x"); axB.set_ylabel("Acquisition function") - axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0) - axB.set_xlim(-2.0,12) - axT.scatter(nxt,nyt,marker="o",color="black",label="Data") - for i in range(len(ysamples)): - axT.plot(nxp,ysamples[i],alpha=0.1) - axT.plot(nxp,mujoint,label="GP mean",linestyle="dashed",color="blue") - axB.plot(nxp,EIs,color="green") - axB.set_yticklabels([]) - axT.fill_between(nxp,mujoint-sigmaj,mujoint+sigmaj,color="blue", alpha=0.3) - axT.plot(xp,ytrue,color="red",label="True",linestyle="dotted") - axT.legend(loc="upper right") - plt.show() - plt.close() - - -Thetas=[2.0,2.0] -oxt = np.array([ 0.0 + 1.02*i for i in range(11)]) -xp = [] -for tmp in np.arange(-2.0,12.0, 5.e-2): - if (tmp in oxt)==False: - xp += [ tmp ] -xp = np.array(xp) -oyt = f(oxt) -ytrue = f(xp) - -SVs=[] -xt =[oxt[2],oxt[6]]; yt =[oyt[2],oyt[6]] -plotGP0(xt,yt,xp,ytrue) - -Thetas=[2.0,2.0] -nxp = list(copy.copy(xp)) -nxt = copy.copy(xt) -nyt = copy.copy(yt) - -n_iter = 10 ## 探索回数の上限 -xopt = 6; yopt = -1.e+30 -SVs=[] -plot = True -#plot = False - -for iter in range(n_iter): - lt=len(nxt); lp=len(nxp) - Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp) - mu_yt= np.zeros(lt) - mu_yp= np.zeros(lp) - cLinv,logdetK = Mchole(Ktt,lt) - mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp) - sigmaj=[ Sjoint[j][j] for j in range(lp)] - ysamples = [np.random.multivariate_normal(mujoint,Sjoint) for i in range(10)] - SVs += [ [ mujoint, sigmaj] ] - xbest,ybest,ind= xybest(nxt,nyt) - xnew,ynew,EIs,ind = calcEI(nxp,mujoint,sigmaj,xbest,ybest) - if plot : - plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs) - nxt += [ xnew ]; nyt += [ ynew ] - nxp.pop(ind) - if ynew > yopt: - xopt= xnew; yopt = ynew - print(iter, xopt, yopt) - - -import numpy as np - -def f(x): - return np.sin(x) + 0.2 * x -def derf(x): - return np.cos(x) + 0.2 - -xexact = 8.055339554764814 - -x = 6 -xopt = x; yopt=f(x) -tol = 1.e-2 -eta = 1.e-1 - -itnum = 10**4 -for i in range(itnum): - x += eta * derf(x) - y = f(x) - if y > yopt: - xopt = x - yopt = y - if abs(xexact-xopt) < tol : - break -print("探索回数",i, "最適解(x,y)=",xopt,yopt) - -Thetas=[1.0,1.0] -nxp = np.linspace(-2,12,10) -nxt = copy.copy(xt);nyt = copy.copy(yt) - -n_iter = 10 ## 探索回数の上限 -xopt = 6; yopt = -1.e+30 -SVs=[] -plot = False - -lt=len(nxt); lp=len(nxp) -Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp) -mu_yt= np.zeros(lt) -mu_yp= np.zeros(lp) -cLinv,logdetK = Mchole(Ktt,lt) -mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp) -sigmaj=[ np.sqrt(Sjoint[j][j]) for j in range(lp)] -print("train", nxt,nyt) -print("xp", nxp) -print("My muj ", mujoint) -print("sigmaj", sigmaj) - -from sklearn.gaussian_process import kernels as sk_kern -import sklearn.gaussian_process as skGP -# sklearn GP - -nxp = np.linspace(-2,12,10) -nxt = np.array(copy.copy(xt)) -nyt = np.array(copy.copy(yt)) - -kern = sk_kern.Matern(length_scale=1.0, length_scale_bounds=(1.0,1.0), nu=2.5) -sGP = skGP.GaussianProcessRegressor( - kernel=kern, - alpha=1e-15, - optimizer="fmin_l_bfgs_b", - n_restarts_optimizer=0) - -sGP.fit(nxt.reshape(-1, 1), nyt) -print("sGP.kernel_", sGP.kernel_) -pred_mean, pred_std= sGP.predict(nxp.reshape(-1,1), return_std=True) - -print(pred_mean.reshape(-1,)) -print(pred_std) - -!pip install GPy - -import GPy - -nxp = np.linspace(-2,12,10).reshape(-1,1) -nxt = np.array(copy.copy(xt)).reshape(-1,1) -nyt = np.array(copy.copy(yt)).reshape(-1,1) - -kern = GPy.kern.Matern52(input_dim=1,variance=1.0,lengthscale=1.0) -model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,normalizer=None) -print(model) -pred_mean, pred_var = model.predict(nxp) -print("results(default) ", pred_mean.reshape(-1,), "\n",pred_var.reshape(-1,)) - -model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,noise_var=1.e-15, normalizer=None) -pred_mean, pred_var = model.predict(nxp) -print(model) -print("results(noise_var~0)", pred_mean.reshape(-1,), "\n",pred_var.reshape(-1,)) - -#使うライブラリのインポート -!pip install GPy -!pip install GPyOpt -import GPy -import GPyOpt -import numpy as np -import matplotlib.pyplot as plt - -def f(x): #GPyOptは最小値を探索するのでマイナスをかけておく - return - (np.sin(x) + 0.2 * x) - - -oxt = np.array([ 0.0 + 1.02*i for i in range(11)]) -xt = np.array([ oxt[2], oxt[6]]) -yt = f(xt) -xt = np.array( [ [ x ] for x in xt]) -yt = np.array( [ [ y ] for y in yt]) - -## BayesOptの準備・実行 -bounds = [{'name': 'x', 'type': 'continuous', 'domain': (-2,12)}] -res = GPyOpt.methods.BayesianOptimization(f=f,X=xt,Y=yt, - kernel=GPy.kern.Matern52(input_dim=len(bounds)), - domain=bounds,acquisition_type='EI') -#print("bounds", bounds,len(bounds)) -res.run_optimization(max_iter=10) - -## 結果の描画等 -xs = res.X; ys = res.Y -print("Estimated Opt. x", res.x_opt[0], "y", -res.fx_opt) -xr = np.arange(-2.0,12.0,0.1) -yr = - f(xr) - -fig = plt.figure(figsize=(12,4)) -ax = fig.add_subplot(111) -ax.set_xlabel("x"); ax.set_ylabel("y") -ax.set_xlim(-2.0,12); ax.set_ylim(-2.0,5.0) -ax.plot(xr,yr,linestyle="dotted",color="red") -ax.scatter(xs,-ys,marker="o",color="black") -plt.show() -plt.close() diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_21_1.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_21_1.png deleted file mode 100644 index aec7daef..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_21_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_4_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_4_0.png deleted file mode 100644 index d0b0c7d9..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_4_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_0.png deleted file mode 100644 index 7f2dc7ef..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_10.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_10.png deleted file mode 100644 index 438dd3b4..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_10.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_12.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_12.png deleted file mode 100644 index 89eab660..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_12.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_14.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_14.png deleted file mode 100644 index d19c439a..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_14.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_16.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_16.png deleted file mode 100644 index 702c438d..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_16.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_18.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_18.png deleted file mode 100644 index 3e1d867c..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_18.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_2.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_2.png deleted file mode 100644 index 8fea86aa..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_2.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_4.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_4.png deleted file mode 100644 index 64cc9015..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_4.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_6.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_6.png deleted file mode 100644 index 7dd56f77..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_6.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_8.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_8.png deleted file mode 100644 index 0fcb748b..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_BayesianOptimization_6_8.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression.ipynb deleted file mode 100644 index f184c44d..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression.ipynb +++ /dev/null @@ -1,435 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Qlp8TMCwqzju" - }, - "source": [ - "# ベイズ線形回帰" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qDs_Ob0fwnVN" - }, - "source": [ - "## 線形回帰 (多項式回帰の例)\n", - "\n", - "\n", - "線形回帰モデル: \n", - "$y({\\bf x},{\\bf w})= \\sum^{M-1}_{j=0} w_j \\phi_j({\\bf x}) = {\\bf w}^T\\boldsymbol{\\phi}({\\bf x})$を考える。 \n", - "\n", - "ここで$\\boldsymbol{\\phi}$は基底関数のベクトルで、\n", - "$p$次の多項式回帰の場合は$\\boldsymbol{\\phi}=(1, x, x^2, \\ldots, x^p)$といった感じ。\n", - "\n", - "実際この場合にベクトルの内積を書き下すと\n", - "${\\bf w}^T\\boldsymbol{\\phi}=w_0 + w_1x+ w_2x^2+ \\cdots + w_{p}x^p$となり、\n", - "$p$次多項式になっている。\n", - "\n", - "\n", - "さて目標変数$t$が、決定論的な関数$y({\\bf x},{\\bf w})$と平均0,精度$\\beta\\equiv 1/\\sigma^2$の誤差$\\epsilon$の和: $t=y({\\bf x},{\\bf w})+\\epsilon$で与えられていると仮定する。 \n", - "\n", - "つまり、$t$の確率分布が\n", - "$p(t|{\\bf x},{\\bf w},\\beta) = \\mathcal{N}(t|y({\\bf x},{\\bf w}),\\beta^{-1})$で与えられるとする。\n", - "\n", - "\n", - "入力$\\boldsymbol{\\mathrm{X}}=\\{{\\bf x_1},{\\bf x_2},\\ldots, {\\bf x_N}\\}$と、\n", - "対応する目標値を$\\boldsymbol{\\mathrm{t}}=\\{t_1,t_2,\\ldots, t_N\\}$と表すことにしておこう。\n", - "\n", - "これらのデータ点が上の分布$p(t|{\\bf x},{\\bf w},\\beta)$から独立に生成されたと仮定すると、 \n", - "データの目標変数についての確率分布は$p(\\boldsymbol{\\mathrm{t}}|\\boldsymbol{\\mathrm{X}},{\\bf w},\\beta) = \\prod^N_{n=1} \\mathcal{N}(t_n|{\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) ,\\beta^{-1})$で与えられる。 \n", - "(以下では、確率分布の条件部分にある${\\bf x}$などを適宜省略する)\n", - "\n", - "このとき、対数尤度は\n", - "$\\ln p(\\boldsymbol{\\mathrm{t}}|{\\bf w},\\beta) = \\sum^N_{n=1} \\ln \\mathcal{N}(t_n|{\\bf w}^T\\boldsymbol{\\phi}({\\bf x_n}) ,\\beta^{-1}) = \\frac{N}{2}\\ln\\beta - \\frac{N}{2}\\ln(2\\pi) -\\beta E_D({\\bf w})$となる。\n", - "\n", - "なお$E_D$は二乗和誤差関数:\n", - "$E_D({\\bf w}) \\equiv \\frac{1}{2}\\sum^N_{n=1} \\{ t_n- {\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) \\}$\n", - "である。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FjSnT2V6wk08" - }, - "source": [ - "対数尤度の勾配を書き下して、最尤推定を考えるとすると$\\nabla \\ln p(\\boldsymbol{\\mathrm{t}}|{\\bf w},\\beta) = \\beta \\sum^N_{n=1} \\{ t_n -{\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) \\} \\boldsymbol{\\phi}({\\bf x_n})^T $の根が必要。\n", - "\n", - "つまり$0= \\sum^N_{n=1} t_n \\boldsymbol{\\phi}({\\bf x_n})^T - {\\bf w}^T(\\sum^N_{n=1}\\boldsymbol{\\phi}({\\bf x_n})\\boldsymbol{\\phi}({\\bf x_n})^T)$をときたい。\n", - "\n", - "上の式を変形すると${\\bf w} = ( \\boldsymbol{\\Phi}^T\\boldsymbol{\\Phi} )^{-1} \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathrm{t}}$が根であることがわかる。 \n", - "つまり、最尤推定を与えるパラメータ${\\bf w}_{ML}$は、計画行列$\\boldsymbol{\\Phi}$を用いて閉じた形で与えられる。\n", - "\n", - "なお、計画行列の要素は\n", - "$\\boldsymbol{\\Phi}_{nj} = \\phi_j({\\bf x_n})$で与えられる。\n", - "\n", - "\n", - "\n", - "---\n", - "\n", - "次の1次元擬似データの回帰を考えてみる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 320 - }, - "id": "Had64uyx6ieC", - "outputId": "1dcbff3d-7d29-4bb7-84a5-4c65b3715e49", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_4_0.png" - }, - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "\n", - "## データ点の生成\n", - "np.random.seed(1234)\n", - "x = np.linspace(-2.0,6.0,1000)\n", - "beta = 1.e+2\n", - "xt = np.linspace(0.0,4.0,20)\n", - "yt = np.sin(xt) + np.array([ np.random.normal(0.0,1.0/np.sqrt(beta)) for i in range(len(xt))])\n", - "\n", - "fig = plt.figure(figsize = (15,5))\n", - "axs = [fig.add_subplot(111)]\n", - "axs[0].scatter(xt,yt,label=\"Data\",color=\"k\",marker=\"x\")\n", - "axs[0].legend()\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pX2ZEq1TAY_8" - }, - "source": [ - "これを,numpyモジュールの多項式fit関数と、上の計画行列によって3次式で回帰してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 282 - }, - "id": "JuQGBg5qq8x0", - "outputId": "0584baea-431a-4f0e-d787-59ec0d13ac82", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:30: RuntimeWarning: divide by zero encountered in log10\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_6_1.png" - }, - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "N = len(xt)\n", - "\n", - "## 多項式の次元を固定しておく\n", - "p=3\n", - "\n", - "##numpyのfit\n", - "yp = np.poly1d(np.polyfit(xt, yt, p))(x) \n", - "\n", - "## 計画行列を用いる方法\n", - "def phi(x,p):\n", - " return np.array([ x**i for i in range(p+1)])\n", - "Phi = np.zeros((N,p+1))\n", - "for i in range(N):\n", - " xn = xt[i]\n", - " tmp = phi(xn,p) \n", - " for j in range(p+1):\n", - " Phi[i][j] = tmp[j]\n", - "S = np.linalg.inv(np.dot(Phi.T,Phi))\n", - "wML = np.dot(S,np.dot(Phi.T,yt))\n", - "yD = [ np.dot(wML,phi(xn,p)) for xn in x ]\n", - "\n", - "#図のplot\n", - "fig = plt.figure(figsize = (20,4))\n", - "axs = [fig.add_subplot(121),fig.add_subplot(122)]\n", - "axs[0].scatter(xt,yt,label=\"Data\",color=\"k\",marker=\"x\")\n", - "axs[0].plot(x,yp,label=\"np.polyfit\",color=\"r\",alpha=0.5)\n", - "axs[0].plot(x,yD,label=\"DMat\",linestyle=\"dotted\", color=\"g\")\n", - "axs[0].legend()\n", - "\n", - "axs[1].plot(x,np.log10(abs(yp-yD)))\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jO4b2_In7Cd8" - }, - "source": [ - "となり、ライブラリの出力と計画行列を用いた最尤推定の結果とが \n", - "ピッタリ(ざっくり14桁程度)一致していることがわかる。\n", - "\n", - "マニアックな注: np.polyfitもおそらく計画行列を用いて定義されているはず。 \n", - "numpyの中身を見てないので不正確かもしれませんが、 \n", - "僅かな答えの差は、逆行列計算に由来するものではないかと想像します。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ppJnjTsXB0X9" - }, - "source": [ - "### L2正則化項がある場合への拡張\n", - "\n", - "二乗和誤差関数に、L2正則化項を入れた場合:\n", - "$\\frac{1}{2}\\sum^N_{n=1} \\{ t_n- {\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) \\} + \\frac{\\lambda}{2} {\\bf w}^T{\\bf w}$\n", - "に拡張してみよう。\n", - "\n", - "上と同様に勾配を計算すると、最尤推定を与えるパラメータ${\\bf w}$は\n", - "${\\bf w}_{ML,L2} = (\\lambda I + \\boldsymbol{\\Phi}^T\\boldsymbol{\\Phi} )^{-1} \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathrm{t}}$ \n", - "(つまり計画行列に単位行列を足すだけ)となる。 \n", - "\n", - "(対数尤度が$|w|^2$に比例することからほとんど自明だが) \n", - "あとで示すように「L2正則化を課すこと」は、パラメータのベイズ的取り扱いにおいて \n", - "「事前分布にガウス分布を仮定すること」と等価である。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "XqR_eYP3K68v" - }, - "source": [ - "## ベイズ線形回帰" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P2WYkL5sOxhy" - }, - "source": [ - "次に、パラメータ${\\bf w}$をベイズ的に取り扱う事を考える。\n", - "\n", - "このノートでいう[ベイズ的]とはせいぜい「パラメータを点推定する立場より有限の幅をもつ確率分布としてパラメータを考える」という程度の意味である。 \n", - "\n", - "パラメータ${\\bf w}$が、平均$\\boldsymbol{\\mu}$,共分散$\\boldsymbol{\\Sigma}$で指定される多次元の正規分布に従うと仮定する: ${\\bf w} \\sim \\mathcal{N}(\\boldsymbol{\\mu},\\boldsymbol{\\Sigma})$ \n", - "\n", - "このとき、パラメータの事後分布は$p({\\bf w}|\\boldsymbol{\\mathcal{t}}) = \\mathcal{N}(\\tilde{\\boldsymbol{\\mu}},\\tilde{\\boldsymbol{\\Sigma}})$で与えられる。\n", - "\n", - "ここで事後分布の平均および共分散は以下のとおりである: \n", - "$\\tilde{\\boldsymbol{\\Sigma}}^{-1} =\\boldsymbol{\\Sigma}^{-1}+\\beta\\boldsymbol{\\Phi}^T \\boldsymbol{\\Phi},\n", - "\\tilde{\\boldsymbol{\\mu}}= \\tilde{\\boldsymbol{\\Sigma}} (\\boldsymbol{\\Sigma} \\boldsymbol{\\mu} + \\beta \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathcal{t}})$ \n", - "\n", - "...\n", - "\n", - "ここで簡単のため事前分布をさらに簡略化しよう。 \n", - "事前分布の平均$\\boldsymbol{\\mu}$が$0$(ベクトル)かつ、 \n", - "パラメータの事前分布の共分散が対角的(独立な分散をもつ)でなおかつ値が同じ, \n", - "つまり、上の$\\boldsymbol{\\Sigma}=\\alpha^{-1}I$とかける場合を考える。\n", - "\n", - "このとき、事後分布の平均および共分散は以下のように簡略化される: \n", - "$\\tilde{\\boldsymbol{\\Sigma}}^{-1} =\\alpha I +\\beta\\boldsymbol{\\Phi}^T \\boldsymbol{\\Phi}$ \n", - "$\\tilde{\\boldsymbol{\\mu}}= \\beta \\tilde{\\boldsymbol{\\Sigma}} \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathcal{t}}$\n", - "\n", - "この条件のもとで対数事後確率(log posterior)は \n", - "$\\ln p({\\bf w}|\\boldsymbol{\\mathrm{t}}) = -\\frac{\\beta}{2}\\sum^N_{n=1} \\{t_n - {\\bf w}^T \\phi(x_n) \\}^2 -\\frac{\\alpha}{2} {\\bf w}^T{\\bf w} + $ (正規分布の係数からくるオマケの定数)となる。\n", - "\n", - "したがって正規分布で与えられる事前分布のもとでパラメータ${\\bf w}$の事後分布を最大化することは、 \n", - "L2正則化項がある場合の誤差関数の最小化と($\\lambda=\\beta/\\alpha$とすれば)等価であることがわかる。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PvjZoBE7U9HF" - }, - "source": [ - "実用上は${\\bf w}$の分布を考えたあと、それを予測値の分布として伝播させる必要がある。\n", - "\n", - "一般に予測分布を評価する際は、サンプリング法などが必要になるが、\"性質の良い\"確率分布を用いる場合は、予測分布も閉じた形で書き下すことができる。 \n", - "実際、今の場合は予測分布も正規分布になる.\n", - "\n", - "\n", - "未知の点$x^*$での値を$t^*$と書くことにすると、\n", - "\n", - "$p(t^*|\\boldsymbol{\\mathrm{t}},\\alpha,\\beta) =\n", - "\\int p(t|{\\bf w},\\beta) p({\\bf w}|\\boldsymbol{\\mathrm{t}},\\alpha,\\beta) d{\\bf w} $\n", - "\n", - "今の場合、ガウス分布の性質から、\n", - "予測分布は以下で与えられる: \n", - "$p(t^*|{\\bf x},\\boldsymbol{\\mathrm{t}},\\alpha,\\beta) = \\mathcal{N}(t^*|\\tilde{\\boldsymbol{\\mu}}^T\\boldsymbol{\\phi}({\\bf x}),\\sigma^2_N({\\bf x}))$\n", - "\n", - "ここで、予測分布の分散は$\\sigma^2_N({\\bf x})= \\frac{1}{\\beta}+\\boldsymbol{\\phi}({\\bf x})^T \\tilde{\\boldsymbol{\\Sigma}}\\boldsymbol{\\phi}({\\bf x}) $\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "kmOBxfJPSJkQ", - "outputId": "b074a333-f044-4144-b9d5-11a7178f0a8e", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlIAAAD4CAYAAAAnxwjSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9d5Bc53mn+5zOcaYn54yZQSZAghRJSSRFQhRIiSAtipIgi1agrFVd++61XfZ6q1x7XXu9u+Ww6+u8smzKlqwriaIVmMVMkSDBABBEzoPJqae7p3M653z3jw+nJyMOiPQ9Vaca092nT8+g+5zf94bfqwkhUCgUCoVCoVCcO7ZL/QYUCoVCoVAorlSUkFIoFAqFQqE4T5SQUigUCoVCoThPlJBSKBQKhUKhOE+UkFIoFAqFQqE4TxyX4qDV1dWivb39UhxaoVAoFAqF4pzYtWvXlBCiZrHHLomQam9vZ+fOnZfi0AqFQqFQKBTnhKZpA0s9plJ7CoVCoVAoFOeJElIKhUKhUCgU54kSUgqFQqFQKBTniRJSCoVCoVAoFOeJElIKhUKhUCgU54kSUgqFQqFQKBTniRJSCoVCoVAoFOeJElIKhUKhUCgU58klMeRUKBSXHsMwMAwD0zSXvJ3/b9M0EULM2Sw0TQPAZrOhadqcW2tzOBxzfrY2u90+59Z6LYVCobjcUUJKobjKME0TXdcpFovouk6hUKBQKJDP50v/LhaLmKaJpmkIIRbcWliiZvZmsZTYsfaffTt/O5NQcjqdOBwOnE4nLpcLt9uN0+ks3e9wOLDb7djtdiW6FArFJUUJKYXiCsQ0TYrFYkkcZbNZMpkMuVyOQqEAMEcczY/6uFyuOQLkRz/6Eel0mkceeaS036OPPorf72fbtm3L/v7ni6nZPwshStGvXC5HJpPBMIwFIkwIgc1mw+1243a78Xq9uN1uXC7XHNFl/S2WOrZCoVBcCEpIKRSXMUKIUjQpm82STqdLgsmK+FhCyYrguN3u0v2zX+d0EaR0Os2TTz4JwCOPPMKjjz7Kk08+ydatW88oPE4nihbjTKJN07RStOlMWIIrk8mQTCYxTXPO408//TTpdJpvfetb+Hw+3G43f/Inf0J5eTl//Md/rASVQqG4YJSQUiguEyzRZEVhEokE6XQawzAAKYwssRQIBJYUAecaXdI0ja997RF03cGTT77Ak0++ATi5884v88lPPkR/v4aug2mCYYAQM7cvv/wq2WyOe+7Zcur9CH75y2fxet3cffdmbDaw2cButzbBxISdV155i1zOy1e/+iV+8IN/5dlnn2Lr1vvOOVo0u/Zqsb9nOp3m2WefRdM0Pv/5z/OTn/yEN954gzvvvJP3338fn8+Hz+fD7/eXIltOp1MJLIVCcdYoIaVQXCIMwyil5BKJBIlEoiSabDYbTqcTr9eLzXb2zbWzo0umCV/60iN897uP8dJLH/Cxj93Nrl2CREIjlYJMZmYrFjU07StAk/VK2Gyf5MknNUxDQC5P3nSh40TTi/gzMYzyACeGm5g42U9y726CK9ZxfHSCqdEQPbUBXigU0NwuMAw0YYLDgWbTsNkeoqXlOl54YZAXXngJaKGl5S/I57v5l3/R8HrB5wO/X26BAHi94PHIW+vfZ/qzaJrGI488AsATTzzBE088AcDWrVv5+te/jhACXdeJRqOEw+E5+3m9XoLBID6fD4/HU0oXKhQKxXy02YWlHxabNm0SO3fu/NCPq1BcSnRdJ5vNkkqlmJ6eJp1Olx6ziqrPTTRBoQCJBKRSEI9DJAKxmGD79v309U0AAhC0NDXT2thLquDDSBvUDh3C0xnCu7oG29Q0ux7LcVhrYiznxWHaqCgWuanjLdY+vAF9/yj/42d3Ljj+t255ldpPNnD8Z2/yw/2PLHj8t+54jerbG0j/qo//+do92G0GThf4bFlq8mNU1DxBtCxF87QLb+EW4u0rsJV5qDQjNGVPYLuuGdPrwcwWwQaay4mmyd/bNKXICgYhFJJbeflc8eVycer5gvvvv7/0vp544omzSj1u27atJGwff/xxfD4fDz/8MIFAoJQmdLlcZ/3/pVAorlw0TdslhNi02GMqIqVQXCSs2p1UKkUsFiOdTpdSV263+7TpudkIAbmcFErT0zA5KbepKXm/zQZaJkciZiOqV5JJaFQdLqO5OMZwbQRfAX716rfQmR1R6eLXs6+wYgMYNjiSbCbrMCgLadSHnNSP7CGSGmb3bsF1zV080vUM040d5MoqcRfSNEweoqy3Bk3T6Pz4Ou4Z+n857q4hafPz8bWrqB4/TllXLQCelgBf63iGgZp1pAhij03jHhoiZZcixak72RPvInyggXzRAdQAK/m93p0EWzyEf9rPP+z/DH5vgWC5Sb1tko7CUboeqiFt8xA/FOVEPEe2oQG3T/49DUMKqVBIcPDgduB6IA4k+fa3v8+3vvUbi/7tz1QvlkwmicVipec6HA6CweCc6JWKXCkU1xYqIqVQLCP5fJ5kMsn09DTxeLwknKzU0JmEkxCQTsvI0tQUjI7C2Jggm5X7JRJOpqddVB3ch6fCQf1nWkEI/uJPWsniK71OkASbvM8w0nIEYQrWRtbi7e3AaGsg4C/QUBxGqy3DFvAAsG/fPorFIhs3bkTTNExT8P77H+B0ulm1ajWmORMJst6n3AQHDhyiv7+vdOyOjg7WrFl9yi6B0mazgaYJ9uz5gOPHj9DT08P1129k9+7dHDlyhN7eXtatux4znsc2GcXWVYvdbaewZ5hj2yPs9G3A6W7EmEiSSDrYtPk1fEEN/3s+/m3oXgB8Pp0m1wRd4jjrv1nH3n37md7fT21tCw03Xsfx40cYGhqmvb2Jj350JbW1GrW1MppVXi4jWSBK4sli69atpZqz2RiGQbFYpFgslor/3W43ZWVlpciVx+M5p0ijQqG4/FARKYXiImFFneLxOJFIhHw+j6ZpOJ1OfD7fGS+gxaIUTJOTMDgohVMuB1oqgxlJM6TFECJD/vUm3sxsImd6Tu3ZzJ2xt2nQAE3jq2tewaiuwFjRxPDwLk6e3Eegt5cvbvwi77+/mwNHD9NVAauaAui6RlSvxUyDLStFTkPDOoQQTE1ppwSSRmfnBpxODVOWN5U2u51TReSCt9/eQX//XtatW8ett97Km2/uYP/+N/H5ktx440cQQhaqGwbouqzFAj+trRtobu4lHNZoadlIJuOnWHQQj4MQbkR1A8RPHa+9iVQuhqvvcbq7u7hh24Y54qv1tgD/58kXOOTbSDTqhP40fclmbvLq+HxgRtfw5PA92PeYVFZ20FzYhz82QHK9xtQUfLDLwO6SHYJ2O1RVaXR1PQIcBWLA9KIiSj5fdhf+/Oc/LxX4G4ZBLBbjH/7hH/D5fHzmM58hEAhQXl6O3+/H6/WqqJVCcRWhhJRCcY7ouk46nSYajRKLxTAMA5vNhsfjoays7LT7ZrNSNI2OQl+fFFGaBtqREaKjDvbaNjA+7iEScdFqH+a6e4c4cuQIa1waWyreo6/CRSy2j+tW+rn+lo2AjAyFtnZTLMqIGPhoabmelpYepqY0mps3Uih48HhM6uo0gkFZW+T3g9stN5cLXC4NlwucTilgzpx21EinB+jsdPDII7eiaRr33nsLjz56EL//JJ/97M1L7NdzyhNKK4mrQqHn1K2s+8rnpaBMJiGZ1KisXIumCY4dG+fYsZcBQUvLRpqbe4kIDecNsN4ZxemUv4vNpgOwbt068uYwLSOvcci5nkjESfRkA+lMiPV+A78fXvrzNP16M962INXVBXrFAT7IDwN3l97x7/7ufjZvXktTk0Z1NVRUyL+fVYM1Px34wx/+sJQO9Pv9FAoFRkZGSlErj8dDKBQiGAyW/K8UCsWViUrtKRRnga7rJBIJotEo8Xgc0zRxOByltM1SbfuFAkxMwPAwHD8uiEY1Mhk74sg4uaEsPV9rxW6HvX8/xM+nNlNWVqSxMcdq9zE6qqbwfbSVDz6Q0RfQADft7b10dq7CZrOMKeVFvaICqqqgshICAYHfr+HzyQ44m+3imVCeq4/UhRxHFo27AC//+I/fJ5vVSoX20ai8jcdlCtJ6C6YpxZUlGB0OEIaJZpfRwvGfHONQvI2jZjfhsAvDsLHBvoOWe/vZuHEje/92HxNGnmJPG2vX1uHzCYSQnYONjdDcDNXVgqef/j7PPffT0vtdKh0IUCwWKRQKGIZRimCGQiHKysrw+XwLDFMVCsWlRaX2FIrzwBJPU1NTJBIJhBC4XC6eeuqpJX2avvjFbUQiMDICR47A+LgUOpHt7zN9opz3PXcyFfUAK3CT4943n2L9betZc7+ftc53sNWFTh3bTzbrZ2oKmps3cuRIBNmBF+W++1ZRV6dRXg5lZTK6tNBGaf5FePkuyvNHwABzjDBnj5mZP1bmQo756KOPnvqpABR45plHFxUqQsjIXzotuxkTCRn5m5qSYqtQAE2zIYRMUfrv6eajbrjDOYBpQv+Lb5PXYdXGj4Bh8M70xxgTDbATdu6EFtswd68+SOX9bYwMC07uz4Hfi2n+BlAODANDbN36CKapsZivqOW8bjHbhsH6nIVCIcrLy0vCSqFQXJ4oIaVQzMIwDBKJBJFIhOnp6dJFzeqwWyyN853v/CvPPLOHjRsf5DvfEaTTNpJ9GcT+cZpuD+HvDRHPZ3kns4UKzzDX3VWGmX6P8fC76IGV6LogF6okkwEtTCnaUV8PjY2C11//GfALIAmYDAyk2Lx58UjHmbDGr8wfRGzN3Zv9PFjaHX2x2XvzjwOUhhxbzB5bs9R+8wcaa5rG9773vVKqbHYnnfV/MHcGIKVIXE3N/NeXacNEQm7RqIwYTkzIjkhNg+D1N1NuE6TTGh6Pg2/+3wlS8TjjYT+RERDvn8Tpt+NwQDAZ5b9972aaglEoTyDya+ixORkP9vBf/+tRVq7soa5Oo61N/n/W1Mj3NR9rfqCFJawmJycBWcBeWVlZilgtZkCqUCguDSq1p7jmMU2TVCpFJBIhGo1imiZOpxOPx7Nki/y3v/19nntuL7ASaKOjrommMSdvZ2/k6EQtum7DSYGvb3qd+k+3YBaL7Nmzl8PHjgJOZB3TCnp6unE4NOrroa0Namtlas7vh9ndY/MFxGJpIyEEhmFgGAa6rpfSRrOx3NFdLteCmXQOh2POTD5LxMz+9/lGmCwBZ83Lmy3grPdtDVueP3C5WCzy05/+lEwmw0MPPVQSY5a30wMPPFByN7fe5/lQLEoxFY9DOCzr2CYnrQiWFGFutzQEdTrlfebENIPPRXg12ctIvB7D8APwQNdjHLQfYn1NO41GLfnuFuxBF0LI7sC2Nmhpkf/fweBMGnIpdF0nl8uVBK/f76eyspJAIHDOpq0KheLcOV1qTwkpxTWJEIJsNltKp+i6PqfmaTEyGejvh4MHYXhYcPCJ50G3M14R5QsPPMBf/nknIU+G5uscdHZm6G6cQgt40XWZYsrnBa+88jKQBQb4sz/7LWprNSoqlnbpPt24l/vuu690YZ1ts+DxePB6vSVPI0skORwO7Hb7FVt7M1skWmKrWCySy+XI5/PkcjmKxeKC/Wb/7ucqOCw7iliMUsp2bEzeZ4krjwf6+g5iGDlWN/RQ2DeOZ1MzBwYOEnjf5Ecjvw5ATU2e3soR1rsPon2kA9PhQNOkMGtrg/Z2qKuT6drT/RcJIUoDq0G64JeXl1NRUUEgEFBpQIXiIqCElEJxikKhwPT0NBMTE+RyOWw2G16vd8kBudksDAzA/v0wPCRID2Y5MNHGoUMustkAK7SD2Lp/Qm9vL9fVd2CrDyHQSqNXNE1GLzo6BHv3Psn27f+ONIY8fTEyyEiZJRZmp94cDgd+vx+fz4fX650TXbpSRdJyYYkMa7OGPVuDnq1aLiuFaM0uPJsByTPHkJ+LaFTWXQ0NWbYVAtCw2awxNgJbPk9uf5iduesYGvYy3qeRMrz8598/jMtvJ/nSCdJRQfr6VfgDRWw2mfrr6IDWVpkOPFPEyjRN8vl8SUR6vV6qqqpKJqEqWqVQXDiq2FxxTWOaJslkksnJSaanpwF5sVnKqqBYlBfHAwfg5EnZ9eXzwdjjIzwRvQubzcDrPc4nu4/xkTtr2DPay5EjJ8jlfKxwhNA02c11003Q1ASVlYLvfvdRtm9fusZntgCwLvZ2ux2/309VVVVpJInb7T6ni/61hhWVWywqY83WKxQKpeHQ6XS6tFlYcw6dTueiImR2DVZzM2zYYEWupC/V+Lj0BJuY0BDCg2hvYZ0rys23gMNuog/EcPqrADi4388v47fDIQgEdK4vO8Tq2mGO3tbJgQPydcvKoLOTUp2V1zv3/ViLAe+pB4rFYslqwW63EwqFStEq5V+lUCw/KiKluGqxUneTk5Poun6GuidZcHzokEzdRSIOEu9Pc/R4OQ/8ZhpvrYfsW/1kwkWGGvOY9gKrV28kmZRptRMnDlFXl+DXf/1mGhpkLc1s5qfoisUi3//+9/H5fHz605/GZrMRCARKxcTWoNxrPcL0YWEYBvl8nnw+Xxrrk06n59SZWbVlZytkDUNGrSYnZVRzaEgWugshuyz9fnA6BJnxHEfG6xkY8DFxIEe7Z5R7/kCKopP/cgJ7rR9jdTN+v/TGqq6G7m4p4urqWLQr0GJ+tCoQCJSK1pf6LigUioWo1J7imsEwDOLxOBMTE6RSqTOm7jIZOHYMdu+G+EQB470BXp2+hWPDMmJwk/t97rg/g3eVbP+yOr5MUxAIaKxeLaMFNTUCu33pi5Ku6+Tz+dIQXJfLRVlZ2RzhpC5qlxeza5FyuRzJZJJkMkmhUCj9X1mRq7MRV0JIg1HLV+zkSdi7t49iscjKlT0EAhpOh8m+d97HXuZmbe9K/ulPq6T1AlBVlecO53ZaNtrItzecagSQKcCuLkFTk7TEWOpjNPv3sbpRq6qqSo7rKgWoUCyNElKKq55MJkMkEmFychLDMPB4PEu6RZumrGnZsweOHTUhW6Cs3oN7Osb/+M4majxxVt4suO66OKGQTrE4Y/Lo98PatdDVJSMDS1205kcClC/Q1cPs2qtEIkEikUDX9ZK4slKLZ56rKPj2t/+N557bxfXX309Hxyd4991jDA0N0trazA039OJyQmwCjg1WMHjYRv+An0+1/BJjQ54NLSsYfm4Sx/o6TiTHcLkcrF/fSXe3LFyvr5f1eUsxuxPQbrdTUVFRSgEqewWFYi5KSCmuSqzo0/j4OOl0GpvNNqe4dr5fkRV92rkTolGNd97OUjjspsKTZcvv+xBCcOyZt8i3BFiz7joSCdn67nJJ8dTdLVMpS10fZ1+YZndS+f1+3G63ijhdxcyuuYrH46RSqZJ/ltPpXDIlaHVhzgxI9nP77Q9xww2/Rl+fRjLJqdeQA5XteoE9H+zlcP8xNolWfnjs6wDY7Wk6qga5u/4EbGwGvxdNk9Gq7m5Zq3e6bkDTNMnlciVBWFZWVipYV6JfoVBCSnGVkcvliEQiTExMYBgGbrebn/3sZ4vaBPh8fjZv3sbevbL+SRucZPADjecnbyGft1PvOMHt9W/R87Ub2b17N0ePDtHSspLe3h5WrNBYu1ZehJbK3BQKhVKqxO12l1Ilqlvq2sYSJplMhmQyyfT0NLoua5zsdjtut7sU9ZkZfSN54oknTn2GpW3G+LhMA548KVPLpino6ztIf/9+gjnBaH4NducNpCeriBXK+INv7sHX4CG/b5Rc0iDX2QyaRigkWLlSK/mVLTU2SAhBPp8vpTB9Ph/V1dWluiqF4lrkonftaZq2BfhrwA78sxDiT5fjdRUKCyEEyWSS8fFx4vH4nNqnxdzG/+mfvsvTT++nt/fLTI4b2Ow2Kqs0Jl6M8+zQp1jXO8V1t+SYmnqX3UdPsvuxGOBgxYo2vvY1KaLmd0dZzBZPPp+PlpYWVbyrmIMVHbVEiBCCQqFANpstCatEIgHA448/jsPhKAmtRx+dGX1jDZju7pY1VrEYjI5qnDixmkcfHSHpsRH0jHP//Xk87lH0E3txNch6vt0v2Xk+8Ql8Pp3q6mF6fPtIbGrinaAfh0MwPr6d+vo03/jGljnNEZqm4fF48Hg8pbqqwcFBhBB4PB6qq6spLy/H6/Wqz7tCwTJEpDRNswNHgU8ih0y9B2wTQhxcah8VkVKcLcVikVgsxtjYGIVCYcnOu5kUyfNAL3ATDQ2rqSi2s+9tL3fdNEDDpxoRiQwincfWUEEuB/G44JVXXgQOAft54onvLHpx0HWdbDZbEk/WxUSt0BXnS6FQ4A//8A95/PHH2bZtGw899BD//u//zosvvsjmzZuX9Bib+aw/C9QCzaxY8WlaWzecsn84lQZMJBndV+TtqdUcOeKhWHTTYz/CF/9IsHPnB0zuH6Gsq5uVq3poatJYuVK6rS/hCgJQMkC1itWrq6sJhUL4fD4lqhRXNRc7InUTcFwI0XfqYD8G7geWFFIKxZnIZDKEw2HC4TBAyal7KVIpjVWrHuHJJ1vwFSA33cHOkU+RTjtY4z5CWeCU43XQRwof2QkIBASZzLPA94AcMDcaYJom2WwWwzBwuVw0NTURCoVKfj0KxYXgcrkoLy/nc5/7HH/+53+Oruv09PRgGAZ+v5/kqQIpu92Ox+MpRV8XHxv0x6xY8Tk2b36Yvj6Nvj4o6kFcq+HewDj33y84+cSbjI7F+fGPE9hNGBn8XYKTedIZB1NTKYYG0mh2G5WVsHq19K2qqgKYSQFaTvmapqHrOuPj44yOjuJwOEqiSnUAKq41liMi9TlgixDiG6d+fhj4iBDit+c975vANwFaW1tvGBgYuKDjKq4+hBAkEgnGxsZIJpMLiscXIxqF99+HAwcER48eZWhoD95j97BHbKKmZpQtW3Q6OrIIIeeoFYuy5mnTJsGLLz7K008vPsfuoYcewm63U1lZSU1NDX6/X624FReF+U0R1s+FQoFMJkM8Hmd6erpUs/T0008vOTZo27ZtgPSwCoeld9Xhw/J7IoTglVeeBVI4dYPbvDfyRvx6Do3VYxg2qphi20c/wHtrC+m0TCUODx8mGBzmG9+4i7o6DZtt4bHk8Qyy2WypA7CyspLKykr8fr8ykFVcFVwWzuZCiO8A3wGZ2vuwjqu4/LEm3VvpO5fLRTAYXFK4CCFNDt99F06cAMdkhIGXpxip2kvvmhWs7oqyevK77EoOEo2uJBjcgBAydXH99ZZtgUYw6C+JKIBt27aVims7OzsJhUKqDVxx0VlssDTM2CiEQiFaW1vJ5/Ok02m+/OUvE4/HS4sNl8vF17/+9TkLDrtd2h/U18ONN0IyKfjf//tJYAJop+iwcazB4DP3JfgMKSb2ZJnYEcPd6MfnA9u+AXZu95FrCXCw4GJi4ihr1/YwPv4rdu/ezWc+c8McAWi32wkEAoAstLdmWNpsNioqKkoDltX3SbHcWB3blzJTsByf6hGgZdbPzafuUyhOSz6fJxwOMzExgWmapx3bAlJAjY/D229Lp+hs1sG+fVXs+WAFNtPg/sYEqzduRNM0OoqtTL5TjWE42LBBY8OGhbUf27ZtQ9d1UqkUAFVVVfyX//JfCAQCKvqkuKyYXQBeVVVVSjsnk0lisRjpdLo0EsZKA1oIIXjssZkRRV/5yif5u7/7Ka++uhu7XaejYw2edg9r1jaUGiwK00UOZToZPdSIpn2C7NAhPG+/xvH6Ai3t/xfFYjcvvKDR0yMjvLMdEmw2G36/H5CiKpFIEIlE0DSN8vLykq2CGlejOF+s5qOxsTGmpqZobW2lpaXlzDteJJYjtedAFpvfhRRQ7wFfEkIcWGofVWx+7WJ12E1MTBCNRs8qfScEjI3Bjh0yVeHSigz+ZJyno3cgbDY2bozzqQ1HsTeWYxga0agcwXH99YLrrtPw+Ra+ZrFYJJvNYrfbaWhooKqqSvnlKK5YisUimUyG6elpotFoyQ/Kimr9+Mc/XtIe5O67tzE0JEcjTU3J75s1S3Biws3hwwH635wmZVZQveLv2PalL5B+vR894KXQUo/NJg1AV62Sxepu9+LpSmDBuJrq6mqCweCS5rkKxWxM02R6epqxsTHS6TRutxtd12loaKCxsfGiHvui+0hpmnYv8FdI+4PvCiH+++mer4TUtYcQgng8zujoKOl0GofDccb2aSsC9dZbUkA50amodaBp8Pr/jFBeXqTjC82UlenoOiUBtWkTrF+/cLgrzBgnut1uGhsbqaioUDUciqsKIURppE0kEilFXOdHq+aLHZC+VVZd1dCQ5Vl1iP7+/XgLgqzLpKe7h/3PfZR+s43q6jyrViVZU9mHqCvD4dQIh98nEBjit397Kz7f4jVclh1EPp8HwOfzUVVVRVlZmbJVUCygWCyWyj+KxWJpFilAKpW6OoTUuaKE1LWDYRjEYjFGR0fJ5XKnHd0ym8lJKaD6+2VaY+pXEV451MM3fnMAT4MfYQo0m1YaDKtpUkBt2LC4gLIG0nq9XpqamigvL1edRYprAl3XSafTxGIxotEohmFgs9lwu92nTa/l84K//duf8/rrY7S13cWKFb0cO3aEwcF9rK9rBjaxc6iTgQEvQmg82PQqq77WwLvvHuJk3witba3ceWcPx48/xZtv/pCtW5e2dLAWOEBpBmBZWRmBQEB9T69RhBCl7u2pqamS9cz8OrvLQUipyj/FRaFYLBKJRBgbG0PXdbxeL+Xl5WfcLxqVKbxjx8BFkeHjZby6o5F0uofNge04ig7Aj0AjGpHz7zZsgBtukHPw5mOdoH0+H93d3ZSXl6vVruKawuFwUF5eTnl5OW1tbWQymVLdkmUK6nK5Fowxcrs1mprybN3q5itf6WV8XOPYsV5+8QuTpOZhxQon2z42hEgXSLwygKezHLtd48bKCo68uJHhiUP847H3cLt9tLb+P5SXd3PokEZrq/S5ms1Pf/rTUurRMAzGx8f5m7/5G3w+Hw8//DBVVVX4/X5VV3UNoOv6nNFfDofjsrfUUEJKsazMLiC3VhC+xYqU5pFMyi68ffvkXLHqYJHH/tLDMaOVtrYMX/ziCM3NNSUbg3weVq6EW26BxfSZVQPl8XiUgFIoTqFpGn6/H7/fT0NDA/l8nsqRdDEAACAASURBVFQqVRJVQggcDgdutxu73c62bdtKKcCWFmhp0bj99lVMTmqcOCHHLmWKLrTbunGdauYQBZNWzzjbk3cjknb89jA3pHYx1ZrlhRF5LmhshDVrpFeV379wMsFjjz1WsiJJJBJEo1FA1lVVVlYSDAZVCvAqQghBKpViamqKaDSKaZp4PJ6zWnxfDqjUnmJZyGazTExMlFqez3bWXD4vfaCsj0OwkMLdKJerwz84TqjZjv/2DjRNDh1OJGRB6223yXlh8zEMg3Q6jcvloqWlhYqKCnWyVSjOgqVSgB6PZ0nbAiGkX1VfHxw4IBdEmibo79/L0aN9pFIrCUXrGSmu5rd/fwi330F2Rz8FYSfXJbusGhpg9WrB66//gOeff7z02pY1ifX9tcbVWOOZHA4HFRUVJRNQFa26shBCkM1micViTE5Oous6drsdr9d7TtEnldpTXPFkMhnGx8eJRCLYbLazrmkwDNkltH07FArg8dg4+ESal/vW89u/tpPy9ZU0f3kFIE00o1FpX3D//dDRsXCKvWmapNNpNE2jtbWV6upqVUSuUJwDs1OAra2tJTPQqakpMplMyYJhtmDRNLmgqa2Fj3wEpqYE3/72i5w4kaa9fQ09Pd309+/FdvR5DhzpYePGjbz2qxrezV9P+btFVq9OIib7GRv1gfZlZL/SfmBgQT3V7C5EmKm/nD39wIpW+Xw+9f2/DLHEUzweJxwOk8/nS2L9bDIXlytKSCnOi1QqxdjYGLFYDIfDcVoDzdkIIQvIf/UrmaILBQ36Dvh4cXsL+byNX6t7hWCjDOea5kwh+W23yU68xRbGmUwGXdepr6+nvr5erUwVigvEWhQFAgEaGxvJZrMkEgnC4TCJRAJN03C73XMsQzQNamo0VqyIUF+f5oEHujl5UiMYXE+h4KVYtFMoaGz5PzRW7tnNjqFu3nmngh1mJVuqtuO4ZQjwA3cC8Ad/sJuHH95Ie7u2aPrebrfPufgWi0VGR0dLqchAIEAoFCIQCJQGnCs+fEzTnCPKC4VCqdnhdL6BVxIqtac4a6w89ujoKPF4HJfLtegA4aWIRKSAGhiQE+19XsELf5Hm7dwNdHSk2bJlktraAiDbsFMp6U3zsY8tLE6FGe+cUChES0uLmoGnUHwI5HI5EokEU1NTpNNpgJKomp2Gm/m3jFSdOKFx4ID8XttsMsIscgbJl/uYKEyz1zzOusYODm3/CFX1www5TtLVVU93dzc1NRqrV0u/qlBoYUR6Ppa9QrFYxDTNUm3YbGGlXNYvHoVCgVQqRSwWIx6Pn1Wa+Hy5HFJ7SkgpzogloIaHh0kmk7hcrnMSLdmsLCTfvVs6IAcdeewBN5oGkSeO4XBplH2qC82moetScFVUwF13SdfkpdJ4DoeDtrY2QqGQqoNSKC4B+XyeZDJJOBwuiSor/bbYd9KqqTp+XNZUZTJSVA0PH8Q0c6zz1vPSE+W8l9+IQKMmOMHW2p2EPtFIxulDCKislIXq7e3y32fz1Z9fX2VF1MrKyigrKyvZslzOnWGXM9aiNpFIEIvFyOfzaJpWaly4mH9XJaQUlzWWDf/IyAipVKoUgTpbTFPWQb3xhqxzqqiA4R0pnnu1hV+75RD1n6yfdSyZ6tN12Ym3cePiabxcLkehUKChoYH6+nq1qlQoLhMKhUIpUpVKpRBCLIhUzcY0YWICjh6V54l8XuB0apSVQSbj4MCBAAPv5DkSb+U//YcP8NZ7KR6dQHe4SAYqABnVWrNG1k3KGZpn/351XSefz2MYBjDT0VhWVobf78ftditxtQhCCPL5fCndG4/HS8LJStl9mOdlJaQUlyWzBVQymcTtdp+TgAJ5gnz5ZXlbUQGZtIOnn6mnr8/PWu8Rtt47inOt/OAXCjIK1doqo1AVFQtfzzAMUqkUfr+f9vb20iwvhUJx+WGJqnA4TCqVWrSmajaGAaOj0lH9yBG5oHK7pVAywwkcdbKWZvv/muKV1C20tuZYvSZJd3uUIhqg4ffD6tXQ0SGoq9M4V/1jRa0KhQJCiFLkyuPxEAgE8Pv9JUftpcTh1YZpmiUz43Q6TSqVKolka7bjhy2c5qOElOKyYnYK73wiUCDTeG+/DXv2SIfxYBBiTx3jnz+4C9Pp4q7NU9xwwzQ2m4xCWcXkd9whT4KLnZuy2SzFYpGWlhZqa2vVClGhuILI5/OlLi2r++90NUrFIgwOyijVyZMycuX3y808McHBfT5eH13H1JQbGwaby57n5t/ppFDQSCQER44cw+2GrVt7WLFC2iucb525EAJd10vbbKxOM6/XW+pmtLYr6Rxl/Y6WiMzlcmQyGTKZDLlcrjQn0WazXZa/3+UgpFReRAHID+PIyAjxePy8uimEkCvJ116TJ8KaGkorQlfAzo3ePdz6sAt3vYwk5fMQi0FXF3ziE1Jwzcc0TZLJJMFgkN7eXlVMrlBcgbjdbmpra6mtrSWbzTI9PV0SVTabbUFHndMpzwtdXXJhdvKkNOodGwOtrI4VW2Ctp5/wmMb4v+8hbsTYvTvOhlVrOPTdSTK+MeybKtm3T7Bnj4bDAd3dcmtqknWaZ4umaSXxMBtLfCSTSWKxWKmg3cKaa2ilB10uF06nE7vdvmC7WJEtIQSmaWIYBoZhzBGEuVyOfD5furXEkhWFczgcOJ1OAoHANRF5u1BUROoaJ5PJMDIyQiwWO+cicotYDF59VXbjhULgchiMPXaSgstLx0NNAKXZeELI5wPcead0J1/se2p9wVtaWqirq7usVkAKheLCsOaoRaNRwuEwhmHgdDpP2wUcj8si9T17pPGnzQbl5YJ9+3Zz5MgR6pN2jo19nTGacDpNVndGuKv6PTw3t5IqOikUZGSqtRV6e6G5efFu4OXAEi+GYZTEzFK/lyVcZosrm81W2jRNW7CvlVozTRMhxJzjWKLJesw6hrUfsEDMXcnn18shIqWE1DVKNptlbGyMSCSCw+E4r3ELhiE78XbskCeoUAgiESc//3kDo6Ne7g69wc3/sbYklIpFWQvV1gabN8v6h/lY9Vkej4fOzk5VC6VQXOWYpkkqlSIcDhOLxRBClGqRFkMIOdT88GHZ+VcoCF555VkgCabg1lu/yv6D5Rzd4yJR9PM7D71D+eoQIpbC9LpJF5xkszNmoitXSnF1th2Ay40leGYLo9kRotm3s7HO15bQmr1ZIuxa4HIQUiq1d42Rz+cZGxsjHA5jt9vP2khzPhMT8MILUhhVVYHdJhj/WT//cviTOJyCLzxwkt51NaUTUzwui8rvvFMaay52SKuFtq6ujubmZmWgp1BcA9hstpINQbFYJB6PMzExQSKRWDT1p2lQVye3W28V/PVf/xyYAjrBBuOTO7nnnrXce7dOetcE/lXNAOz/YZRfRa6n43qNNWtTtLZmSafh9dfl6/r9MlLV0QH19Yt3DV+s319xZaOE1DVCsVhkYmKC8fFxNE07bwFVLMI778jZeD6fPJkB6IfHeXT/ZjZWHee2r9gJBg1AwzSlb0xNDWzZIkXXYmQyGYQQdHd3U7FY255CobjqcTqdVFdXU11dTTabJRKJMDk5iWEYuFwu3G73nDTV9773KK+/Locbb9t2F3/zN8+yY8dhikU3K1d2U35Dc2nR1rlOZ+rwCDv2rmXnrkpqHBHuadtJx5fbAbnQ++ADOfvT4ZA+VVZdlQqMK06HSu1d5RiGQTgcZmRkBCEEfr//vFdAo6Pw/PNycHBVlUzn5Y5M4emtBqCwewjndc1oNnnmymalN9SmTXDrrYuv8KywfiAQoLOzE7fbfd6/q0KhuPowTbPU9RePx9E0rTRL70c/+hHpdLo0l08IwT//86NoWg29vfezb581y1M2tNhsUChoHD3sI/biIKFQkXWP1CNMwfD/d4Lqm0J4eqoxTVmHVSjIVGJNjYxWtbTMbaRRXHouh9SeElJXKUIIotEoQ0NDFItF/H7/eafKikVZB7VrlyzODAQgn9d49wcZXhnewO9u3U7ZxppZx5YF5TYb3HuvrIlaDGvafENDA01NTSrErVAoTks+nycSiTAxMYGu6yVPp9nnjtnjaXRdNsHs3SstFQDKy6VHlXyuTBXqR8b50x9/FAMHNTV51q+McHPbCRxdtQghF4WplHyu0wmdnbKrsKFBRasuNUpIKZYdq1h7cHCQTCaDz+e7oCG+Y2MyChWPS+dgmw3Gx1z8+0+biEadfKntJbq2NaC55DEMQ6byWlvhU59auisml8tRLBbp7OyksrLyvN+fQqG49rCiVBMTEySTSex2O16v97SLsWRSuqjv3i1FkdMpG2SsXcRkgt199ew9XMXAgByG/DuffoPyTbWlrmOQ4iyVktEqkNH5nh7ZBVhb++HVVikkSkgplpVMJsPw8DDT09MlD5PzRdfhvfdkPZTfPyOIwj87xj/vvxt3QOOznx2jvT1b2ieblYLrllvgxhsXN8GzTD/dbjcrVqxQ3lAKheKCyGazTE1NMTk5iWmaeL3e0y4eTVOWKezfD8eOyZ+DQWkgbGGMxph4I0bdZzuwOzUGvneC/WON1N5Ry6q1GQIBOVZGCMjlIJ2eiW61tsqIVWPjpesEvJZQQkqxLBQKBUZHRwmHwzidzgsWJ5EIPPccTE3JKNRsQRT+6TH291Xzsd/04QzNCLVo9MypPKseqqKigvb2djUnT6FQLBu6rhONRhkfHyefzy8oTl+MTAZOnJAF5rGYjFKVly9cBE794hjPH1nH8VwbmibYUHGMj3aeoOrTnXOeZ5pSVGVPrS/dbimq2ttlJ2AwqITVcqOElOKCsArJh4eHSwM3L8SF1jSl2d0bb0j33/JyeX/+/SHSKTuVtzUiTAEItFPxcKsrr75eiqilDNGteqimpiYaGxuVW65CobgoWOUNY2NjxOPxkk/e6dJ+QsD4uIxSHT4sSxTKyuZGqQAmJ13s3x9k+K00bYEJbv8deZJMv9aHb1MDWmDuDsWiFFb5vBRQfr8UVq2tsuM5EFDC6kJRQkpxXgghmJ6eZnBwkEKhcEGF5BapFLz4IvT3y5y/0ylPLu+9W86Lv6xiheMkD/1nE5t95ltvDRvesAFuu23p2oB8Pk+hUFD1UAqF4kMlk8kwOTlJOBye0+13OrJZ6aA+O0o1u5YK5KQGM53HHvRgDk7xJ//yUdy2Al0rc6xdHWdl5zSad66hqBBSWKVSsnQCpJBqb5fdgHV1UrwpYXVuKCGlOGfS6TSDg4Mkk8kLLiQH+eU+eVIWlBvGTE5fpPP84pet7N0fYk1HmAfvG0SrmKkcT6flCWHzZlizZukvfyaTAaCnp0e5lCsUiktCoVAgHA4zPj6OEOK0Q5MtrCjVvn1yjuhitVQAwjQp7Brm9ZE17DleSzrtIEiCb9y7m7Ib60/7+vOFlccjSyNaW2XhekXF+Q9cvlZQQkpx1hSLRUZGRpicnDzvmXgLXxPeekvaGoRCMycIkcry+F95OWx0c8cnInz849E5Qikalau0++6T7b9LYRWVd3d3K38ohUJxydF1nUgkwujoKLqun7Ew3SKTkYXpu3ZJHz23W0aP5mcLTROmd0cY2JFj9cO1uMudxJ45zlC/m9Dd7TR3Gaf1oLJSgYWCXJzabLJsor1dRqyqqqQRsmKGy0FIqWrfyxzTNJmammJoaAiAsrKyZakvikbh2WdlQXld3dwTghbwckNDH5/u7sN/20wxpWnOPP8zn1na2sCqUSgvL6ezs1MVlSsUissCh8NBXV0d1dXVxGIxRkZGyGazp53tB1K8XHedHG81MiId0E+ckI+FQrKmFOR5tPKGKipvmNk3FYVfRm4l+0MfgYDOxxoPsmFlGPfG5gXHsdKIFqYp04sjI6cyBUJGxZqb5VZVJbMIF5iYUFwgKiJ1GZNMJunv7yebzRIIBJZl9pwQspjypZdkTZP1pRWmycC/9VN9cyWB3tCC/XRdFpWvXg133bX0F9c0TZLJJDU1NbS1tSmTTYVCcdlimibT09MMDw+Tz+fPKKhmk0zCoUPSlyqblWJrqeLxQh6OHQ+yf3+Qk4ddrPQc54E/lAtMYzCCrbmy5FN1Oqx0YCYzE7UCmQJsapqxXKiouHbE1eUQkVJC6jKkUCgwPDzM1NTUBftBzX1deO012ZlSVTWzisrnNZ76SSUH+qr5UtsLdH+1bcF+kQh87GPSH2qpgJhhGCSTSZqammhqalKdeQqF4orAauAZHh4mm83i9XrPWlAZhmzS2bVL+lPZ7XKBulQgXsQzFKayuLuqEPEMf/pXq6n3xei8ycHatQmqqorn+N6ll1U2K0WWzSbvKyuTpRcNDfJ8HwrJrsGr7bSshJRiDqZpEg6HGRoawmaz4fP5lk2MRKPwzDPy1nIoB8hO5PjXn60kHHZx/23HWX+bMWdllE7L1c+WLdK9dykMwyCVStHW1kadNclYoVAoriBmC6pcLndOESoh5Pl13z65WNX1xS0U5uyTyjL1/DAvRm/m2GgVoLHWcZAt94bxb1y6UP1s3kuhIMVVPj9zvrfb5fm/vl7ODAyF5Hu8kgXW5SCkVPHKZYKVxsvlcstiZ2AhhByL8MILMtRbWzvzmH5sgkd/uJqcU/Drvz5MV5cJzHybpqfll+uhh05fVG55RHV1dVFVVbUs71uhUCg+bDRNo6KiglAoRCwWY3h4mEQicVZF6ZomIz933CGnOxw9Cjt3wsTE0sXpWsBLzYPdfIkIiUSckTfjHNntgsogALl3B4idLFC2uRN/1dlfEzRNHnN+MsMwZEpyakpGr+z2GUf2ykopsmpr5XsNBmWq0uu9ckXWh4WKSF1iCoUCIyMjhMPhZU3jgVwRvfmmDDlXVi78UolCkX3fGWfNFif2FTOrH2tlFQzC/ffPLX6cT7FYJJvN0t3dTeh0T1QoFIorDNM0S4KqUCjg8/nOqXlGCFkovmuXTP9pmqxfOtuXOPZPJ/nh6BYAGhuz3Nx4lFUrEzi6as+w57lhmjJylc/PzBC02eT9drs0Zw6F5HXEShH6/VJkeb2X1qLhcohIXZCQ0jTtL4D7gAJwAviaEGL6TPspISVDyFY3nhDigl3J55NMyjEvo6MyhFsazKkbnPzRMM2frsNV6Vnkfcmi8oYG2Zl3ulbbQqFAPp+np6eHsqUszRUKheIKx+qeHhkZwTCMszL2nE88LlN+H3wgo0HB4NlZGaSHs+zub+LQoQCjo15a7cN89Y/SaBqYYzG0utBZFaqfL6YpxVWxKG91XV5PrC5CIaT/VSAgt2BQbn7/TFTM7ZY1udZm7b8cXA1C6m7gFSGErmnanwEIIf7wTPtd60Iqk8kwMDBAMpnE7/cvuz3AyAg8/bT8wFdUzHxgCwWNZ34QYO9QI7+57nkaP9s+Zz/ThMlJ6O6GT33q9F0f+XyeYrFIb28vgaV8EBQKheIqQtd1wuEwo6OjpQXwuXYmFwrSOf2996S1wVJpv8UwB6fIhov4b2hA6Dp//9/r8bqLtG1ysmpVisaG7EUVVYshhEwZFovymmNtpjnjhTVbZlipxNnCyumUm8Mho1tOp9zPZls82mWaM1sul2LTpgbuuOMKrZESQrww68e3gc9dyOtd7RiGwfj4OKOjozidTsqtYXbLhBByVt5rr8mVwewgUSoBP3qshbExD5+/bT+Nn2if996kiNq4UY57Od1iK5/Po+s6K1euVG7lCoXimsHhcNDQ0EB1dTXj4+OMj49jt9vPqTHI5ZI2MqtWyYzB++9LT6ozdfsB2Fqr8bee+kE3+cLaHbwWvYEdOyp5880qmrQRHvzYISrubLnwX/Ys0TT5ns8lHjBbCBWLMqUohPzZuoWZiNdix7T+3KnU3NrfS8FyhkK+Djy21IOapn0T+CZAa2vrUk+7aonH4wwMDFAoFAgEAsvur1QswquvytBxdfXcaJJ+YpLHf9jOlM3JF74wQm+vc8G+U1Nw663wkY+cPuQ6W0T5lMWuQqG4BnE6nbS0tFBTU8Po6ChTU1O43W48noXlEkuhadL7qalJpv0OHJCeVMXimbv9ADSPi5oHu3mIBNlsipFdWcbeSWKvlDsW9gxz6A2o+FgdDWtcOJ0ffj30UljRpuXAinBdSs6Y2tM07SVgsT7MPxJCPHHqOX8EbAI+K84iV3gtpfaKxSLDw8OEw+Fz8iY5F1IpmcobH59bD2UhppI89892Nt8TxXXdXDddyyNq82ZYt06JKIVCoThXUqkUQ0NDFzwDtVCQo2jee092TbvdstD7fIRC9KljfO/920hQhsNhsq5+mFsr91Hx6Q7srqtngF8sJlN7Dz98hdZInXrxrwL/AbhLCJE5m32uBSElhCAWi9Hf339RisktxsbgqafkKqaycu5jyR0j+G5swO6wIUyxIHeey8mV0D33QG/v6Y+jRJRCoVAsjXXOHxoaolAoXJCNjRAwPCztEwYGzi7ttxhG0aB/MMiRIwGGPtDJFF38xz8aw+7QyL3djyPkxt7bcMkjOhfC5SCkLii1p2naFuA/AbefrYi6Fsjn8wwNDRGNRi9odXI6hJATyZ9/XnZHzBdRB5/L8vi7d/IbAy/R8cWWBSIqk5Fmm/ffDx0dpz+WElEKhUJxejRNo7KykvLycsLhMMPDw2iadl6LaE2Dlha5WSafe/fKWtZQaKGVzVLYnXa6ujJ0dWUQWwT6eBK7QxbP/uKlTo4Y3VRUFOjpSXFz7SHK15ajua6R2TLLyIV27R0H3EDk1F1vCyG+dab9rtaIlGVpMDg4iKZpy+pMPhvThLffltvsUS/yPcDLL1fz5ptV3Np4mM0P62ieuV+MdFpGox54QA6+PB2FQoFCoaAKyxUKheIcmO0ReK71U4uRy8k5qTt3ynKO0832OxvM0RjHjvjYNdbJyT4fumHjnurt3PRbNfLxcAJbzeVva3PFR6SEECsuZP+riVwux8DAAPF4/KJYGlgUCtKl/Ngx2akwO3IsdJ1d/xTlzclebrhhmrvu1dBsc0VUKiVf48EHT+9WDrK+K5/PKxGlUCgU54jL5aKjo4OamhoGBwcv+Nrg8cCGDbKWtb9f1lGNj8vGolDo3Iu3bY0V9DZCLyPoWZ3smwNoNdJR3eib5L/928fpDI3TtM5BT1eCxqYcNsfVU1u1nKgRMReIEIJwOMzg4CA2m23ZLQ1mk0rBE0/IDru6uoUrEWMgyhuT6/li16v0fLpxwePJpAwNf/7zsij9dFiO5conSqFQKM6fQCDAqlWriEQiDA4Oksvl8Pl85925bbdDVxd0dkrLmg8+kGUeIAXV+VSSOLwOgpu7Sj9rfhdf63yG17IfZfv2ct54o5oKYnzt/gMEN9QsWnN7LaNGxFwAs6NQgUBg2ebjLUY4DL/4hYwmza+HMgsGtlNdGOZYDFtDxYL9Ewl5+7nPyXTg6dB1nUwmo8a+KBQKxTJSLBYZGxtjfHx8WdJ9FsnkjH1CPn929glnSzZrI7ozwsQHWdZ8pRZ3mYOxx46x43gHVTdV0tZdpLk5h8NxaewVrvjU3rWKFYUaGhq66FEokGHcp5+WtVALRNRUkl98x8fG3jE6HmxYUkRpmkznnUlEGYZBOp1mxYoVSkQpFArFMuJ0OmltbaWqqmpZS0GCQbj5Zrj++hn7hIkJmQ4sK7swnyWv16Tp4xU0fXzm2uIr03C4NH61ox7xlobHlucjvg+4/fdCV3QH4PmihNQ5ks/n6e/v/1CiUEJIg82XXpJeIvNXGMmkne//eC0pHe6uHFj0NSwR9bnPLRRh8zFNk2QySUdHB5VnerJCoVAozgu/38+qVatK81ZzudyyWOS4XLBmjXRNHxqShelDQ9I2IRRavuHC5fesYOs9cHfuOAMDXnLb+8hnbSUR9dZfTqK7vfhvbqazM0NFRXF5DnyZooTUWWJ15A0MDHwoUSgh4K234J13FjqVA+gj0/zrTzeQSjv50leGCbR1LniNcxFRQgiSySQtLS3UXmq/fYVCobjK0TSNmpoaysvLS919y2XabLNBW5vcpqZkHdXBg/K6EgrN7fS+EDwek97eNPTWle4TpiDgyvN6cj2Rp+V1ssU+zKdWHaTpwbblOfBlhhJSZ0GhUGBwcJBoNHpRO/IsdB1efll+8Od35gGITJ4ffLeeIkUe/to4zc25Ba+RTMrbsxVRiUSC+vp6Gs7UyqdQKBSKZcPq7quqqqK/v59EIrGsY8Sqq+XkiltukXVUu3bJYcnBoLRQWG40m8b6325hnRgnEokyeMRG5u1hxKkLmYgm+de/r6W1JUvF+nLaWtNUVhav6OJ1JaTOQCwW4+TJkwCUlZVdFF+o2eTz8MwzMDgoRdRi3yXN5+a+9fsItntxLWIElUxKr6mHHjqziJLPT1JVVUVLS8tF//0UCoVCsZCysjLWrFkzZ7C9d7kqxpHGzTfdJAfTnzghsx3LVUe1GJoG1dUFqquBj1aX7hepPCv9A+yYuJHkU7LYvk6bYNvdhyi/uQFRKILNhnYFWS0oIbUEuq4zNDREOBy+aO7k87HsDaJRKaLmf7D1w2OkU3bKN9VSdX/3oq+RTkuLg7PpzpPPTxMMBmlvb1ciSqFQKC4hdrudpqYmKisrL1otrtMJK1fKsWDDw7IwfXBQZj4qKpavjmopbK3V3PJ7cLMYIBJxEtuXIL43hqNRpgFjv+znX3bfTkNzkbp2wYrqCVoa05e1OagSUouQTCbp6+tD1/UPJQoFMtT6859DNitDsfMZH3Px+OPrKdOSPLwhg82xMFSVyciI1oMPntknCiCbzeJ0Ounq6rqoRfMKhUKhOHu8Xi8rV66c41G43KbIs8fQRCKwZ49M/Znm8tZRne741dVFqj/hhU/MRN78zR7uHnmHHcZHOf6mh+1CRgT+8HcO4Cl3UNw/ijBM7GubL7roO1uUkJqFaZqMjo4yOjqK1+v90IwoJyfhZz+ThYCLpeLGx918/99acPsKfPmBA9gcC4vBs1kpf9OKggAAIABJREFUpB58EOrrz3zMQqGAaZqsXLnyQ4m2KRQKheLs0TSN2tpaysvLGRgYYHp6+qLV6FZVwZ13SguFAwdkt9/FrKM6He7rW1h3PaxjkGJRI7d/guTJDJ7ydgB2vuDgheTHsT9lUl+f58b6/Wxa1N3pw0MJqVNks1n6+vrIZDIEg8FlK/Q7E8PDMp3ncsm5SfPRD43x459vwuExefirY9grF4qofF7WRf3ar0HjWXiS6bpeGv2yXIZwCoVCoVh+3G433d3dRKNRBgYGyOfzF22Oq88HN94oR9HMrqNyu6UFz4dd/eF0CpwbawlunLnvps87aO97i325lYyOehDJ/If7phbhmhdSs20NHA4HZWUfXh72xAlptBkMLu1Ce/z1HF49xZe/cBx/5cInFQowPQ333QetrWc+pmmaJcNNNfpFoVAoLn80TaOqqopgMMjQ0BCRSOSidpBf6jqq02FvrqShGRoIAxCLLV9B/vlyTQupYrHI4OAgkUjkoptrzufgQTl8OBSSan8+Qkj13/ubbfSM92NrXOhYrusyt71li5y9dCZme0Upw02FQqG4snC5XHR2dlJRUUF/f/9FjU7Bpa+julL4cPJXlyHJZJIDBw4wPT1NWVnZhyaihJAfxl/+Uir7xUSUfmLy/2/vzuOrrs7Ej3/Ovdn3QPaELSCQQEKIISyCssgianRaUaxWEbW1lcowY/ui0zpiZ/or01KR0U6VVosiBWcUFKW1UiVTxw2DhN2yhl2WQEJyb25yl/P745tEAtlulvtN7n3er1de5d77XZ6vCc3DOc95Dn/6lYPar2woi6XZJMrtNvbfmzIFsrPbd++qqioSExNJaU8RlRBCiB5HKUWfPn0YOXIksbGxXLp0CZfL1e33baijevBBmDDBqMk9c8ZYKR7oAm5EyuPxcPr0aU6ePEl4eHiX9uloi9ZGEd+HHxqr6poblb1wIZhX1+djcThQFXsg5eqVGh6PUaA+bpwxl90eDbVf/fv3lzYHQgjRy/l6dKrBlXVUW7eaW0fVEwRUIlVbW8vhw4eprq72aUE5GEnUJ5/Ap5+2nERVXrDwyiv9qNMW5j94kpD05Gavc+4c5OYanWrb80NbW1uLxWIhMzNT2hwIIYSfaBidioqK4ujRo1y8eNEnu29A0zqqkyeNOqqjR7t+X7/eIGASqYYO5UopnxaUg5H8/O1vRmv+5rZ8AfCcqWTj75JwWjx8+4GTJKTqZq9z7pxRDzVlSvuSKJfLRV1dHdnZ2V2yh5MQQoieJSQkhCFDhjQunLJarUT4qG+BUpCRYXyVl8POnbB7d2DVUfl9IuV2uzl58iRfffWVzzL1y3k8UFxsbBqZnNz8li8AymohMaicO6cdIDS1+eV3Fy5AaqpRXN6ebP/yFXq++kslhBDC9xo2QY6Ojm7csy8yMtKnsxB9+xr/yB871lhQ1bCvX1SUMSXor9N+fp1IORwODh06hN1u91mH8st5PMbmw7t3t5xEeWrq0EHBWBOimfkjjbI035KgosJok3DLLcaQantUVVWRlpYmK/SEECJAhIWFMWzYMM6cOcPx48cJCQnxeb/AiAgoKGhaR3X2rFFHFRPT8oBCb+W3iVRlZSUHDhzweW+oBm63kUTt2dPy5sMep5viZ+3o4CCmLoxscffr6mrj/Ntvb3+X2erqauLj40lPT+/EUwghhOhtlFKkpKQQExPDoUOHqKqqIjIy0qd1wWDUSw0bBkOHwqlTxmKrI0eMGZW4uOZrhXsjP3mMq128eBGr1erTVXkN3G7YvBn27WslifLAG29msLcmhgXD3kFZmt+E2OEwvu6801gR0R4Oh4Pg4GDZiFgIIQJYREQE2dnZjeUtERERpmwJphSkpxtfFy8adVQ7dxq/K1vqpdib+G0iBZiSRLjdRqPNL79sOYnSHs27b8azd28MM2acpe/45pMol8uY0rvtNmNqsD1cLhdOp5Ps7GzZQ08IIQKc1Wqlf//+xMbGcvjwYerq6nzSJqEl8fFwww1GHdWXXxqr/SoqjNmWqKjeWUflZzOV5ro8iWqtsLxs1WE+35XMtHHHGT/+YrPHeDxfN9zMzGzf/bXW2Gw2Bg0aJMXlQgghGsXGxjJy5EhiYmK4dOkSbrfb1HjCwowaqvnzjS3OYmKMOqoLF4zff72JX49I+VLDdF5DEtVaVp1RGM596k8MnJ4JXH2g1sYP1LXXwqhR7Y+hqqqKlJQU+vbt6/0DCCGE8GvBwcEMHjyYmJgYjh07RnBwsOkb11utRkufzEyjsWdpKezfb3wWF9f+xVVmkkSqC7jd8Ne/fl0T1VISVXu0ktABsQSPTGPQyJavd/688YM1cWL7hzntdjtRUVFkZGR4/wBCCCECglKKpKQkoqKiOHToEJcuXSI6Otr0elqlICXFaO9z3XXGQq3t26G21lix3pMnWWRqr5M8HvjgA6NnRks1UQBVn3/F06tGcfKt461e7+JF6NMHZs5sf2dYp9OJ1prMzEyfr8oQQgjR+zQUoiclJVFZWemT/fraKzra2ALtoYdgxgxjdd+ZM0YtVU+c9pMRqU7QGrZsgV27Wq+JOnMmhFXvTyQt/Axpk+JavJ7NZiRPRUXtX8Xg8Xiw2+0MHTqU0N6+9EEIIYTPWK1WBgwYQHR0NEeOHMFisfSo+trgYMjOhqwsYxuabdt6ZvuEHhJG79Ow7cuOHa0nUa5TFfxx3WiCQzzc/mANKja62ePq6oxEas4co+iuvaqrq0lLSyMuruUETQghhGhJnz59iIiI4MiRI1y6dImoqKgeNbtx+TY0Fy8aTa537DBWtuurd1PzuZ7zX6oX0Ro++sjIjltLorTLxYY/xOKx1XHPPSeJjW1+6NTjMfYomjED0tLaH4fdbic6Opo0b04SQgghrtDQET0lJYWqqiqcTqfZITUrPh4mTYKHH4Zp0yA83PxO6TIi5SWt4bPPjJb3rSVRACooiJljDhIcdZTw5IEtXu/sWSgsNHbSbq+GuqhBgwb1qH85CCGE6J0sFgv9+vUjOjqaw4cP43Q6e9RU3+VCQyEnBwYNMuqTzSS/gb20fTt8/HHrheXao7EfMPpDxcwYQviEgS1er7zcWPY5YUL7V+g11EVlZmZKXZQQQoguFRcXx4gRIwgLC+PSpUt4emKF92V8uC9zs7okkVJK/bNSSiulErriej3V7t1QXAyJia1/4w6vOc7yP15Lzd/LW71eZaWxOmHmTO+GJqurq0lNTZW6KCGEEN0iNDS0yVRfT1rV19N0OpFSSvUDZgDHOh9Oz7V/v9FwMyGh9ZUCu3ZF8+rh6UxN2U7YNX1aPM7hMArlioqMDq/tVVNTQ0REhNRFCSGE6FYNU33XXHMNDoeDmpoas0PqkbpiRGo58COgB9TOd4+jR+FPfzL6O7XWZbX8SztvvZXCgAF2Ch+KRVman6tzuYyVB7NnG9dsL5fLhcvlIjMzE6vZY5lCCCECQnx8PCNGjCA4OJiqqip0T1gq14N0KpFSSt0GnNRa72jHsd9RSpUopUrOnTvXmdv61KlTsHGj0ZIgJKTl4zxnKlj3WgapIee4886TLU79aW3soTdhQvv30DPOM/bRGzBgAOHh4d49hBBCCNEJYWFhDB8+nISEhB6xV19P0uaqPaXUX4GUZj76CfAvGNN6bdJarwRWAhQUFPSKdPb8ediwwVhe2VbuohJjKcrcStr4KKwRzf3nMpSXw5Ahxio9b9hsNvr27UtCgl+XoQkhhOihGhp4RkZGcvToUUJCQmTBE+1IpLTWNzb3vlIqBxgE7KjfoycD+EIpVai1/qpLozRBZSWsX29M5UVGtnycdrpwltcSkhJJv28PafWaVVUQFWX0i/KmuLyurg6r1Ur//v1N3w9JCCFE4FJKkZiYSEREBAcPHqS6upqoqCizwzJVh6f2tNa7tNZJWuuBWuuBwAkg3x+SKJvNSKLcbmNVXUu0ht2//4qVKwfgLG+9CK+uzth88dZbvSsu93g81NTUMGjQIIJ7wzbYQggh/F5kZCTZ2dnExMT0ihYJ3Un6SF2hthbeegvsdmMvn9aUlMSx/uw0pvXfQXDfluf+GjqXT59urPrzRkOrg9jYWO9OFEIIIbpRcHAwQ4YMIT09vUd3Q+9uXdbZvH5UqldzuYzVeefPG72iWnPyALz7bhLXXFPNsLnprR577hyMHg3DhnkXj8PhIDw8XFodCCGE6JGUUqSlpREREcGhQ4dwuVwBtyBKRqTqaQ3vv2+0Omhr1Mh94gJvru1DSvgFvvGN063WO128CCkpxt5A3pQ3eTwe6urqpNWBEEKIHi8uLo7s7GyCgoKorq4OqBYJkkjx9SbEe/YYI1FtJTyWuAjGx+/igdv2EBbW8rxwQ++y2bNbb+LZnKqqKjIyMnrsPkdCCCHE5cLDwxk+fDhxcXEBVTclmxYDO3a0bxNi7dF4nB6sUWHk/6D16Ty321j5d/vtRg8qb9TU1BAdHU1ycrJ3JwohhBAmCgoKIjMzk4iICI4fP05ERITfL5QK+BGpQ4dgyxZjJKqtlgQn1x7if34djKvS0epxDU03CwuNnam94Xa7cblcDBw4EIs3PRKEEEKIHkApRWpqKkOHDsXhcOBwtP47s7cL6N/Up0/Dpk0QH9/21NvBgxG8dHA2AyLOYI1uvQHZxYuQng7jxnkfU3V1Nf369Qu4Yj0hhBD+JS4ujhEjRmCxWKiurjY7nG4TsIlURQW8+SZEREBbjVnLzwfx+utpJCXXcu33k1rcQw+MuiiLBW66iRa3iWmJ3W4nJiaGpKQk704UQggheqDw8HCysrKIiYmhsrLSL+umAjKRstuNJApa71oOoKtr+MsLEIyTuXNPEhLS8koEj8dI0GbNar2RZ3Pcbjdut5uBAwdK93IhhBB+IygoiMGDB5OamuqX+/QFXCLldBrTedXVbTfcBNCVNYQrB9+bWExcnKvVY8+dgzFjvK+LAmNKr3///oR50/ZcCCGE6AUsFgv9+vVj8ODB2Gw26urqzA6pywTUqj2t4YMP4ORJaO/smSW9D7cv9qAsrWdHFRXGNceP9z6uhim9xLa6gAohhBC9WEJCAmFhYezfvx+Xy+UXLX4CakTqs8/a3yuq9ovjfPzsBZw2F6qN1XO1tUa7g470i2pYpTdgwACZ0hNCCOH3oqKiGDFiBCEhIVRVVfX65p0Bk0h9+SV8/LExatRWVwGbzcqL7xXw94p0gupaX7bp8cCFC3Djje2bKrySrNITQggRaEJDQxk+fDjx8fG9vnlnQCRSp07BX/4Cffu2vZLO44H161O54Irh1vuqUfFRrR5fXg4jRni/jx4Ye+lFRUXJKj0hhBABx2q1kpmZSVpaGlVVVb22CN3vE6nKSti40VidFxLS9vH7137F4cORzJ59loQBrWdd1dUQFQWTJ3u3jx4Ye+nV1tZK400hhBABSylFRkYGmZmZvbYI3a9/g9fVGUmU1m23OQDQF6v54GAWRQlbyM+vbPVYlwtsNqNfVFt9qJpTXV1Nenq6XxTaCSGEEJ2RkJDAsGHDcDqd1DRsVNtL+O2qPbcbiouNLuPtXQyn4qN45KFDqPi+rR6nNZw/D9ddB6mp3sdWW1tLaGgoKSkp3p8shBDCa06nkxMnTvj9diW9XVhYGE6nE4fD0a4FWEFBQVy4cIHKytYHP7y5f0ZGhlf7A/ptIrV1K5SVtS+J0nVOvtp8hpSb0rGk92nz+IoKYwuYa6/1Pi6tNQ6Hg6ysLKzetj4XQgjRISdOnCA6OlqaHvcCHo+Huro63G43Foul1e+X2+0mODiYkPbU7rRBa015eTknTpxgkBcNIf12au/sWQgPb1/t0s51l1hZMo3qktNtHltXZxSkz5jh/RYwYEzpJSUlEe1t63MhhBAd5nA46Nu3ryRRvYDFYiE0NJSgoCA8Ho/P2iMopejbt6/Xo5Z+OyLVXvv3R/LmkWFMu2YP0YVprR6rtbFKb9asjrU6cLlcWCwW0tPTOxitEEKIjpIkqvdQShESEoJSirq6OqxWq0++fx25h9+OSLWH63Qlb72ZTHKyg3F3tj0fWl4OQ4dCVlbH7mez2Rg4cKBXc69CCCFEIGpIpsLCwvB4PD2211TAJlLao/ngFQs46phzx0mCglofOqypMdonTJ3qfasDMLaBiY2NJT4+voMRCyGE6M2UUtx7772Nr10uF4mJidxyyy0dut7GjRtZunRpV4XntcmTJ1NSUtLkvZKSEh577DEAlixZwrJly9p9vYEDB3L+/HkAJkyYAEBxcTG33347YWFhaK27LJkqLi7u8H/3KwXs1J6yKK6fepFxFf9LTMLgVo/1eIwC83/4B+hItwKPx4PL5aJ///4ytCyEEAEqMjKS3bt3U1NTQ3h4OJs3b+5UqUdRURFFRUVdGGHnFRQUUFBQ0OnrfPzxx01eW61WwsPDcTgceDyeHtV/sedE4kPOKqPhV9iY/sRMbz2JAmNKLzcXBg7s2P0aekbJNjBCCNFDTJ4Mq1YZf3Y6jdevvmq8ttuN16+9ZryurDRer19vvD5/3nj99tvG66++avdtZ8+ezaZNmwBYu3Ytd999d+NnW7duZfz48YwePZoJEybw97//HYDly5czf/58AHbt2sXIkSOx2+2sWrWKBQsWADBv3jy+973vMW7cODIzMykuLmb+/PlkZWUxb968xntERX29W8frr7/e+Fl7z29LSyM9v/vd77jpppuoqanh1VdfpbCwkLy8PL773e8229H88jirq6u54447yM7O5qGHHgKM1XpbtmxhwoQJ5OfnM3/+fGprawF4//33GT16NDk5OU3ef/fddxk+fDj5+fmsb/hedoGAS6Q8Zyp5aXkix9443q7jbTajmeekSR2b0qurqyM0NJTk5GTvTxZCCOFX5s6dy7p163A4HOzcuZOxY8c2fjZ8+HA+/PBDtm/fzs9+9jP+5V/+BYCFCxdy8OBBNmzYwAMPPMALL7zQbDPnixcv8sknn7B8+XKKiopYtGgRe/bsYdeuXZSWlrYZW2fPb8lzzz3HO++8w5tvvklZWRmvvfYaH330EaWlpVitVtasWdPq+du3b+eZZ55h7969HDlyhG3btuF0Onn44Yd5+eWX+eKLL3C5XPz2t7/F4XAwb948XnvtNXbt2tXk/Ycffpi3336bbdu28ZUXyW9bAmpqT2tY9+4wLhJGalbbvQs8HqiqgjlzOta9XGtNTU0Nw4YNk55RQgjRkxQXf/3n4OCmryMimr6OjW36OiGh6Wsvmivn5uZSVlbG2rVrmT17dpPPKisruf/++zlw4ABKKZxOJ2C0A1i1ahW5ubl897vf5brrrmv22rfeeitKKXJyckhOTiYnJweAESNGUFZWRl5eXquxdfb85rzyyiv069ePN998k+DgYN5//322bdvGmDFjAKipqWlzv9nCwkIyMjIAyMvL4+jRo409wQYPNmaV7r//fn7zm98wZcoUBg0axNChQ5u8P3nyZAYNGsQ111wDwL333svKlSu9fp7mBFQi9emn8Rwoi+Xmm78iOLv1VgdgjN7m50P9989rdrudvn37Ehsb27ELCCGE8DtFRUU8/vjjFBcXU15e3vj+E088wZQpU9iwYQNlZWVMnjy58bMDBw4QFRXFqVOnWrxuaP2/+Bv6MDWwWCy4XC6g6fL+K/slted8b+Xk5FBaWtrY5FJrzf33388vfvGLdl/j8lisVisulwulFBaLpbFFgpkCZmrPuecUWzbHkT34Atde23Yr+epqiI6G+oUDXnO73Xg8nsYsWgghhACYP38+Tz75ZOOIT4PKysrG4vNVDfVb9e8/9thj/O1vf6O8vJzXX3+9w/dOTk5m3759eDweNmzY0OHrtNfo0aN54YUXKCoq4tSpU0ybNo3XX3+ds2fPAnDhwgWOHj3q9XWHDRtGWVkZx48fJzg4mNWrV3PDDTc0vn/w4EGAxveHDx9OWVkZhw4dAoz6tK4SMImU/biddHWab8481Gatk9ttJFKzZhkjvh1hs9nIyMhokkkLIYQQGRkZjS0CLvejH/2IH//4x4wePbrJCNCiRYt49NFHGTp0KC+++CKLFy9uTES8tXTpUm655RYmTJhAakc2i73CzTffTEZGBhkZGcyZM6fZYyZOnMiyZcu4+eabSUpK4t///d+ZMWMGubm5TJ8+ndOn295V5EphYWH84Q9/YM6cOeTk5GCxWHjkkUdafX/lypXcfPPN5Ofntzmd6A3lq9brlysoKNBX9p7oaitWlHHsWAXR0V+vlNN1TlRI25nRmTPGPnqTJnXs3nV1dWitGTlyZI9aoimEEIFq3759ZHW0m7IIKM39rCiltmmtm+3r4Pe/5W0flvHVZiPbbU8SVV0NMTEwblzH7tdQYD5gwABJooQQQgg/59e/6e32IP5QPIb/3ZqG23l1n4oreTxGIjVzZsen9Ox2O3369JECcyGEECIAdDqRUkr9QCn1pVJqj1Lql10RVFfQGt57rx+VKo5b7rqINbjt9gMNq/Q62mi2YS+gfv36dewCQgghhOhVOtX+QCk1BbgNGKW1rlVKdV31Vift2ljB4cMDmTXrDJFD4to83maDqKiOT+kZ17CRlpYmBeZCCCFEgOjsiNT3gKVa61oArXXHlhF0sdOlZ1i7ZSiFMTsoLKxo8/iGxpvTp3es8SaA0+kkKChIOpgLIYQQAaSzidRQYJJS6jOl1P8qpca0dKBS6jtKqRKlVMm5c+c6edvWpeYls2jqh0y6rbJd27qUl0NODvTv3/F72u12+vfvLx3MhRBCiADSZiKllPqrUmp3M1+3YUwN9gHGAT8E/lu10GJUa71Sa12gtS5ITEzs0odoTlLRMHRiTJvH1dQYo1AtdNxvl5qaGqKjo4mPj+/4RYQQQvg1pRT33ntv42uXy0ViYmKzm/yK3qPNGimt9Y0tfaaU+h6wXhvNqLYqpTxAAtC9Q05dRGtjU+9bb4Xw8LaPb/4aGqfTyTXXXGN6m3ohhBA9V2RkJLt376ampobw8HA2b97c2Mlc9F6dndp7E5gCoJQaCoQA5zsblK9cuABDhkD9nocdYrPZSExMJDIysusCE0II0a0mT77667/+y/jMbm/+84ZdW86fv/qz9po9ezabNm0CjG1K7r777sbPbDYb8+fPp7CwkNGjR/PWW28BUFZWxqRJk8jPzyc/P5+PP/4YgOLiYiZPnswdd9zB8OHDueeeezCjyXag62wi9RKQqZTaDawD7te95LtYVwdKGX8BOjqQ5Ha70VqTltb2BshCCCHE3LlzWbduHQ6Hg507dzJ27NjGz37+858zdepUtm7dypYtW/jhD3+IzWYjKSmJzZs388UXX/Daa6812V5m+/btPPPMM+zdu5fDhw/z0UcfmfFYAa1T7Q+01nXAvW0e2MNobYxG3XijsTFxR9lsNvr160dISEjXBSeEEKLbFRe3/FlEROufJyS0/nlrcnNzKSsrY+3atcyePbvJZ++99x4bN25k2bJlADgcDo4dO0ZaWhoLFiygtLQUq9XK/v37G88pLCwkIyMDgLy8PMrKypg4cWLHghMd0qlEqreqrIS0NBgxouPXcDqdhISE4IvCeSGEEP6jqKiIxx9/nOLiYsrLyxvf11rzxhtvMGzYsCbHL1myhOTkZHbs2IHH4yEsLKzxs8v7Flqt1iabHQvf8OstYprjchnTetOmQWe2wrPb7fTr10/aHQghhPDK/PnzefLJJ8nJyWny/syZM3n22Wcb65y2b98OQGVlJampqVgsFlavXo3b3faWZ8J3Ai6RunABCguNodmOcjgcREVFSbsDIYQQXsvIyGhS59TgiSeewOl0kpuby4gRI3jiiScA+P73v8/LL7/MqFGj+PLLL2VxUw+jzKgNLygo0CUlJd16jxUryjh2rILo6K/7GthsRmH5ffd1fFNirTWXLl0iOzubqKioLopWCCFEd9q3bx9ZWVlmhyF6geZ+VpRS27TWBc0dHzAjUg3bwNx4Y8eTKDCm9Pr06SNJlBBCCCECJ5G6cAGGD+/cNjAejwe32924QkIIIYQQgS0gEqm6OqOwfNKkjveMAqPdQUpKSpMVE0IIIYQIXAGRSF28CBMnQmdm49xuN0opUlJSui4wIYQQQvRqfp9IVVVBYiKMHNm569hsNtLT0wnuTIGVEEIIIfyKXydSHo+xUm/aNOhMuyen00lwcLA03xRCCCFEE36dSF28CLm50NnZuJqaGmm+KYQQAeTK1kBd0SrIarWSl5fHiBEjGDVqFL/+9a/xeDytnlNWVsYf//jHTt9bdB+/TaSqq42aqPHjO3eduro6wsLCpPmmEEIEiCVLlrBo0aLG5ElrzaJFi1iyZEmnrhseHk5paSl79uxh8+bN/PnPf+app55q9RxJpHo+v02klIK8PGPzyc5oGI2ydGY/GSGEEL2C1pqKigpWrFjRmEwtWrSIFStWUFFR0SUjUwBJSUmsXLmS5557Dq01ZWVlTJo0ifz8fPLz8/n4448BWLx4MR9++CF5eXksX768xeOEefx20+K77oJLlzp3DYfDQXR0NLGxsV0TlBBCiB5NKcXy5csBWLFiBStWrABg4cKFLF++HNWZHjpXyMzMxO12c/bsWZKSkti8eTNhYWEcOHCAu+++m5KSEpYuXcqyZct45513AKMpdHPHCfP4bSJltXauZ5TWmtraWjIzM7v0L44QQoierSGZakiigC5Poq7kdDpZsGABpaWlWK1W9u/f36njhO/IfFULampqiIuLIzo62uxQhBBC+FDDdN7lLq+Z6iqHDx/GarWSlJTE8uXLSU5OZseOHZSUlFBXV9fsOe09TviOJFLN0FrjcrlkKxghhAgwl9dELVy4EI/Hw8KFC5vUTHWFc+fO8cgjj7BgwQKUUlRWVpKamorFYmH16tW43W4AoqOjqaqqajyvpeOEefx2aq8z7HY7ffsrPliEAAANxElEQVT2JaKzlepCCCF6FaUUcXFxTWqiGmqm4uLiOjW9V1NTQ15eHk6nk6CgIL797W/zT//0TwB8//vf55vf/CavvPIKs2bNIjIyEoDc3FysViujRo1i3rx5LR4nzKO6eqiyPQoKCnR3F8eVlZVRUVFBeHi4V+d5PB6qq6vJycmRPfWEEMJP7Nu3j6ysrHYfr7VukjRd+Vr4r+Z+VpRS27TWBc0dL1N7V6ipqSExMVGSKCGECGBXJk2SRImWSCJ1GY/Hg8fjITU11exQhBBCCNELSCJ1GbvdTnJyMqGhoWaHIoQQQoheQBKpeh6PB601ycnJZocihBBCiF5CEql6NpuN1NRUQkJCzA5FCCGEEL2EJFKA2+1GKUVSUpLZoQghhBCiF5E+Uhi1UWlpaQQHB5sdihBCCB/413+FY8e67nr9+8PPftb6MfPnz+edd94hKSmJ3bt3t3jcxo0b2bt3L4sXL+66AEW3CfhESkajhBAi8Bw7BgMHdt31ysraPmbevHksWLCA++67r9XjioqKKCoq6prARLcL+Kk9m81GWloaQUEBn1MKIYToRtdffz19+vRp8t5//ud/kp2dTW5uLnPnzgVg1apVLFiwAIBDhw4xbtw4cnJy+OlPf0pUVBQAxcXF3HDDDdx2221kZmayePFi1qxZQ2FhITk5ORw6dAiAt99+m7FjxzJ69GhuvPFGzpw548MnDgwBnUi53W4sFguJiYlmhyKEECIALV26lO3bt7Nz506ef/75qz5fuHAhCxcuZNeuXVft/7pjxw6ef/559u3bx+rVq9m/fz9bt27loYce4tlnnwVg4sSJfPrpp2zfvp25c+fyy1/+0ifPFUgCOpGS0SghhBBmys3N5Z577uHVV19t9nfRJ598wpw5cwD41re+1eSzMWPGkJqaSmhoKIMHD2bGjBkA5OTkUFY/13jixAlmzpxJTk4Ov/rVr9izZ0/3PlAACthESkajhBBCmG3Tpk08+uijfPHFF4wZMwaXy9Xucy9vHm2xWBpfWyyWxuv84Ac/YMGCBezatYsXXngBh8PRtQ8gOpdIKaXylFKfKqVKlVIlSqnCrgqsu9lsNtLT02U0SgghhCk8Hg/Hjx9nypQp/Md//AeVlZVUV1c3OWbcuHG88cYbAKxbt87re1RWVpKeng7Ayy+/3PmgxVU6m0X8EnhKa/1npdTs+teTOx1VN2sYjUpISDA7FCGEECbo3799K+28uV5b7r77boqLizl//jwZGRk88cQTrF69msrKSrTWPPbYY8TFxTU555lnnuHee+/l5z//ObNmzSI2NtaruJYsWcKcOXOIj49n6tSpHDlyxKvzRduU1rrjJyv1F+AlrfVrSqm7gVu11t9q67yCggJdUlLS4fu2R1lZGRUVFYSHh1/12aVLl8jIyJDNiYUQIkDs27ePrKwss8Pwmt1uJzw8HKUU69atY+3atbz11ltmh+XXmvtZUUpt01oXNHd8Z0ek/hH4i1JqGcY04YSWDlRKfQf4DkD/9qTu3URqo4QQQvQW27ZtY8GCBWitiYuL46WXXjI7JHGFNhMppdRfgZRmPvoJMA1YpLV+Qyl1J/AicGNz19FarwRWgjEi1eGIO8lut0ttlBBCiF5h0qRJ7Nixw+wwRCvazCa01s0mRgBKqVeAhfUv/wf4fRfF1S0auphLbZQQQgghukJn2x+cAm6o//NU4EAnr9et7HY7KSkpsqeeEEIIIbpEZ+e3HgZWKKWCAAf1NVA9kcfjAZA99YQQQgjRZTqVSGmt/w+4toti6VY2m01Go4QQQgjRpQKi4lpGo4QQQlxu79692Gy2LrteZGQk2dnZrR7jcDi4/vrrqa2txeVycccdd/DUU081e+zzzz9PREQE9913X5fFKLpHQCRSdrudpKQkQkJCzA5FCCFED2Cz2YiJiemy6126dKnNY0JDQ/nggw+IiorC6XQyceJEbrrpJsaNG3fVsY888kiXxSa6l9/vtae1RmtNcnKy2aEIIYQIYEopoqKiAHA6nTidTpRSLF68mOzsbHJzc3n88ccBoyP5smXLAPj888/Jzc0lLy+PH/7wh4wcORKAVatWcfvttzN9+nQGDhzIc889x9NPP83o0aMZN24cFy5cAOB3v/sdY8aMYdSoUXzzm9/Ebreb8PT+y+8TKZvNRkJCQpPNHYUQQggzuN1u8vLySEpKYvr06QwZMoQNGzawZ88edu7cyU9/+tOrznnggQd44YUXKC0txWq1Nvls9+7drF+/ns8//5yf/OQnREREsH37dsaPH88rr7wCwDe+8Q0+//xzduzYQVZWFi+++KJPnjVQ+H0i5fF4ZDRKCCFEj2C1WiktLeXEiRNs3bqV06dPExYWxoMPPsj69euJiIhocnxFRQVVVVWMHz8egG99q+kubFOmTCE6OprExERiY2O59dZbAcjJyaGsfjPB3bt3M2nSJHJyclizZg179uzp/gcNIH6dSNXU1BAfH9/sfntCCCGEWeLi4pgyZQrvvvsuW7du5Y477uCdd95h1qxZXl3n8tkWi8XS+NpiseByuQCYN28ezz33HLt27eLJJ5/E4XB03YMI/02kGmqjZGNiIYQQPcG5c+eoqKgAjH/ob968meHDh1NZWcns2bNZvnz5VdvBxMXFER0dzWeffQbAunXrvL5vVVUVqampOJ1O1qxZ0/kHEU347ao9m81GVFQUkZGRZocihBCih4mMjGzXSjtvrteW06dPc//99+N2u/F4PNx5551ce+213HLLLTgcDrTWPP3001ed9+KLL/Lwww9jsVi44YYbiI2N9Sq2f/u3f2Ps2LEkJiYyduxYqqqqvDpftE5p7fv9gwsKCnRJSUm33uP48eNER0cTFxfXrfcRQgjR8+3bt4+srCyzw+iQ6urqxtV+S5cu5fTp06xYscLkqPxXcz8rSqltWuuC5o732xGpfv36mR2CEEII0WmbNm3iF7/4BS6XiwEDBrBq1SqzQxKX8dtESgghhPAHd911F3fddZfZYYgW+G2xuRBCCHE5M0pZRO/SkZ8RSaSEEEL4vbCwMMrLyyWZEi3SWlNeXk5YWJhX58nUnhBCCL+XkZHBiRMnOHfunNmhiB4sLCyMjIwMr86RREoIIYTfCw4OZtCgQWaHIfyQTO0JIYQQQnSQJFJCCCGEEB0kiZQQQgghRAeZ0tlcKXUOONrNt0kAznfzPXqyQH7+QH52COznl2cPXIH8/IH87OCb5x+gtU5s7gNTEilfUEqVtNTOPRAE8vMH8rNDYD+/PHtgPjsE9vMH8rOD+c8vU3tCCCGEEB0kiZQQQgghRAf5cyK10uwATBbIzx/Izw6B/fzy7IErkJ8/kJ8dTH5+v62REkIIIYTobv48IiWEEEII0a0kkRJCCCGE6CC/TqSUUr9SSn2plNqplNqglIozOyZfUUrNUUrtUUp5lFIBsyxWKTVLKfV3pdRBpdRis+PxFaXUS0qps0qp3WbHYgalVD+l1Bal1N76n/uFZsfkK0qpMKXUVqXUjvpnf8rsmHxNKWVVSm1XSr1jdiy+ppQqU0rtUkqVKqVKzI7Hl5RScUqp1+t/z+9TSo03Iw6/TqSAzcBIrXUusB/4scnx+NJu4BvA38wOxFeUUlbgN8BNQDZwt1Iq29yofGYVMMvsIEzkAv5Za50NjAMeDaDvfS0wVWs9CsgDZimlxpkck68tBPaZHYSJpmit8wKwl9QK4F2t9XBgFCb9DPh1IqW1fk9r7ap/+SmQYWY8vqS13qe1/rvZcfhYIXBQa31Ya10HrANuMzkmn9Ba/w24YHYcZtFan9Zaf1H/5yqM/0NNNzcq39CG6vqXwfVfAbOKSCmVAdwM/N7sWITvKKVigeuBFwG01nVa6wozYvHrROoK84E/mx2E6FbpwPHLXp8gQH6Ziq8ppQYCo4HPzI3Ed+qntkqBs8BmrXXAPDvwDPAjwGN2ICbRwHtKqW1Kqe+YHYwPDQLOAX+on9b9vVIq0oxAen0ipZT6q1JqdzNft112zE8whv7XmBdp12vPswsRSJRSUcAbwD9qrS+ZHY+vaK3dWus8jFH3QqXUSLNj8gWl1C3AWa31NrNjMdFErXU+RknDo0qp680OyEeCgHzgt1rr0YANMKUuNsiMm3YlrfWNrX2ulJoH3AJM037WNKutZw9AJ4F+l73OqH9PBAClVDBGErVGa73e7HjMoLWuUEptwaiXC4SFB9cBRUqp2UAYEKOUelVrfa/JcfmM1vpk/f+eVUptwChxCITa2BPAictGX1/HpESq149ItUYpNQtjyLdIa203Ox7R7T4HrlFKDVJKhQBzgY0mxyR8QCmlMGol9mmtnzY7Hl9SSiU2rEhWSoUD04EvzY3KN7TWP9ZaZ2itB2L8ff8gkJIopVSkUiq64c/ADAIjgUZr/RVwXCk1rP6tacBeM2Lx60QKeA6IBjbXLw193uyAfEUp9Q9KqRPAeGCTUuovZsfU3eoXFiwA/oJRbPzfWus95kblG0qptcAnwDCl1Aml1INmx+Rj1wHfBqbW/10vrR+lCASpwBal1E6Mf0xs1loHXBuAAJUM/J9SagewFdiktX7X5Jh86QfAmvqf/Tzg/5kRhGwRI4QQQgjRQf4+IiWEEEII0W0kkRJCCCGE6CBJpIQQQgghOkgSKSGEEEKIDpJESgghhBCigySREkIIIYToIEmkhBBCCCE66P8DlQxlNpu7POIAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_12_0.png" - }, - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "## alpha(事前分布の精度=分散の逆数)は決め打ちとする\n", - "alpha = 1.e-5 #精度が小さい=分散が大きい=パラメータの事前知識が\"弱い\"\n", - "\n", - "## wの事後分布の計算\n", - "I = np.diag([1.0 for i in range(p+1)])\n", - "Sigma = np.linalg.inv( alpha * I + beta * np.dot(Phi.T, Phi) )\n", - "mu = beta * np.dot(Sigma, np.dot(Phi.T,yt))\n", - "\n", - "## 予測値(その分散)のリストを作成\n", - "y_BLR = []\n", - "for tx in x :\n", - " tmp = phi(tx,p)\n", - " mu_p = np.dot(mu,tmp) \n", - " term1 = 1.0/beta\n", - " term2 = np.dot(tmp,np.dot(Sigma,tmp))\n", - " sigma_p = term1 + term2 \n", - " #print(\"term1\", term1, \"term2\", term2)\n", - " y_BLR += [ [mu_p, sigma_p] ]\n", - "y_BLR = np.array(y_BLR).T\n", - "\n", - "## plot\n", - "fig = plt.figure(figsize = (10,4))\n", - "axs = [fig.add_subplot(111)]\n", - "axs[0].scatter(xt,yt,label=\"Data\",color=\"k\",marker=\"x\")\n", - "axs[0].plot(x,yD,label=\"Maximum Likelihood\",linestyle=\"dotted\", color=\"red\")\n", - "axs[0].plot(x,y_BLR[0],label=\"Mean\",linestyle=\"dashed\", color=\"blue\")\n", - "axs[0].fill_between(x,y_BLR[0]+np.sqrt(y_BLR[1]),y_BLR[0]-np.sqrt(y_BLR[1]),label=\"1sigma\", color=\"blue\",alpha=0.5)\n", - "axs[0].fill_between(x,y_BLR[0]+3*np.sqrt(y_BLR[1]),y_BLR[0]-3*np.sqrt(y_BLR[1]),label=\"3sigma\", color=\"gray\",alpha=0.3)\n", - "axs[0].legend()\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lrsQqCTcik91" - }, - "source": [ - "パラメータの広がりが予測に伝搬され、 \n", - "データが無いところで予測が不確かになっていることが見て取れる。\n", - "\n", - "\n", - "注) 上では、データの精度$\\beta$(分散の逆数)や、パラメータ${\\bf w}$の精度$\\alpha$を既知とした。 \n", - "実際には、$\\beta$そのものがわからなかったりする。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bH9TtwVJm2Hi" - }, - "source": [ - "\n", - "\n", - "(編集予定)\n", - "\n", - "## ブートストラップ法" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_Bayesian_linear_regression.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression.txt deleted file mode 100644 index e1fbadf9..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression.txt +++ /dev/null @@ -1,81 +0,0 @@ -import numpy as np -from matplotlib import pyplot as plt - -## データ点の生成 -np.random.seed(1234) -x = np.linspace(-2.0,6.0,1000) -beta = 1.e+2 -xt = np.linspace(0.0,4.0,20) -yt = np.sin(xt) + np.array([ np.random.normal(0.0,1.0/np.sqrt(beta)) for i in range(len(xt))]) - -fig = plt.figure(figsize = (15,5)) -axs = [fig.add_subplot(111)] -axs[0].scatter(xt,yt,label="Data",color="k",marker="x") -axs[0].legend() -plt.show() -plt.close() - -N = len(xt) - -## 多項式の次元を固定しておく -p=3 - -##numpyのfit -yp = np.poly1d(np.polyfit(xt, yt, p))(x) - -## 計画行列を用いる方法 -def phi(x,p): - return np.array([ x**i for i in range(p+1)]) -Phi = np.zeros((N,p+1)) -for i in range(N): - xn = xt[i] - tmp = phi(xn,p) - for j in range(p+1): - Phi[i][j] = tmp[j] -S = np.linalg.inv(np.dot(Phi.T,Phi)) -wML = np.dot(S,np.dot(Phi.T,yt)) -yD = [ np.dot(wML,phi(xn,p)) for xn in x ] - -#図のplot -fig = plt.figure(figsize = (20,4)) -axs = [fig.add_subplot(121),fig.add_subplot(122)] -axs[0].scatter(xt,yt,label="Data",color="k",marker="x") -axs[0].plot(x,yp,label="np.polyfit",color="r",alpha=0.5) -axs[0].plot(x,yD,label="DMat",linestyle="dotted", color="g") -axs[0].legend() - -axs[1].plot(x,np.log10(abs(yp-yD))) -plt.show() -plt.close() - -## alpha(事前分布の精度=分散の逆数)は決め打ちとする -alpha = 1.e-5 #精度が小さい=分散が大きい=パラメータの事前知識が"弱い" - -## wの事後分布の計算 -I = np.diag([1.0 for i in range(p+1)]) -Sigma = np.linalg.inv( alpha * I + beta * np.dot(Phi.T, Phi) ) -mu = beta * np.dot(Sigma, np.dot(Phi.T,yt)) - -## 予測値(その分散)のリストを作成 -y_BLR = [] -for tx in x : - tmp = phi(tx,p) - mu_p = np.dot(mu,tmp) - term1 = 1.0/beta - term2 = np.dot(tmp,np.dot(Sigma,tmp)) - sigma_p = term1 + term2 - #print("term1", term1, "term2", term2) - y_BLR += [ [mu_p, sigma_p] ] -y_BLR = np.array(y_BLR).T - -## plot -fig = plt.figure(figsize = (10,4)) -axs = [fig.add_subplot(111)] -axs[0].scatter(xt,yt,label="Data",color="k",marker="x") -axs[0].plot(x,yD,label="Maximum Likelihood",linestyle="dotted", color="red") -axs[0].plot(x,y_BLR[0],label="Mean",linestyle="dashed", color="blue") -axs[0].fill_between(x,y_BLR[0]+np.sqrt(y_BLR[1]),y_BLR[0]-np.sqrt(y_BLR[1]),label="1sigma", color="blue",alpha=0.5) -axs[0].fill_between(x,y_BLR[0]+3*np.sqrt(y_BLR[1]),y_BLR[0]-3*np.sqrt(y_BLR[1]),label="3sigma", color="gray",alpha=0.3) -axs[0].legend() -plt.show() -plt.close() diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_12_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_12_0.png deleted file mode 100644 index 3ceb23d2..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_12_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_4_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_4_0.png deleted file mode 100644 index 5ff14830..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_4_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_6_1.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_6_1.png deleted file mode 100644 index f2bc89b0..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_Bayesian_linear_regression_6_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping.ipynb deleted file mode 100644 index b6e0103b..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping.ipynb +++ /dev/null @@ -1,1098 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hZr60g6XehqN" - }, - "source": [ - "# Web操作・スクレイピング" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "y6bjRQEEPOur" - }, - "source": [ - "Webから情報を抽出・整形・解析したり、 \n", - "ブラウザ上での特定の操作を自動化する、といったことも \n", - "Pythonでは比較的容易に実行することができる。\n", - "\n", - "Web上にある情報にアクセスしたりする方法は色々あるが、大まかには2つに分類され\n", - "\n", - "1. プログラムでWebページにアクセスして中身(HTML)を読み、そこから情報を抽出する方法\n", - "2. ブラウザをプログラムに操作させて特定の作業を実行する方法\n", - "\n", - "この章では、とくに1.のWebから情報を抽出すること(スクレイピング)に絞ってそのエッセンスを紹介する。 \n", - "HTMLとは、Webページを作るための言語のことで、 \n", - "みなさんが普段からアクセスするほぼ全てのWebページは、 \n", - "HTMLで記述されています。\n", - "\n", - "\n", - "Webから情報を抽出したりする際、共通して言える注意点を述べておく:\n", - "* **対象とするページの利用規約を必ず確認する** \n", - "規約でスクレイピングを禁止しているページがある (例: Amazon, Twitter, Instagram, facebook, 金融系などなど) \n", - " 禁止している場合でも、APIが提供されている場合があります \n", - " ※APIはApplication Programming Interfaceの略です。 \n", - " 今の場合、大雑把にはデータ提供用の窓口とでも思ってください.\n", - "\n", - "* **サーバーに負荷をかけない** \n", - " 規約で特にスクレイピングを禁止していない場合でも、過度なアクセスをしてはいけません。 \n", - " (どこかの大学の教務ポータルみたいに落ちてしまったら大変です) \n", - " 過度なアクセスは、悪意のあるDos攻撃とみなされてアクセスを制限されたり、 \n", - " 最悪の場合、偽計業務妨害罪などの罪に問われる可能性があります。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4F9VwZUYTv-k" - }, - "source": [ - "\n", - "## 東京都の新型コロナウイルス関連情報の取得\n", - "\n", - "スクレイピングを可能とするライブラリは多数存在する。 \n", - "代表的なものは```requests```や```urllib```。以下では```requests```を使います。 \n", - "\n", - "JavaScriptの実行などがないページならこれでだいたい十分かと思います. \n", - "また```BeutifulSoup4```というライブラリを使うと、HTMLを構文解析して、 \n", - "タグなどを取り除くといった操作が比較的容易に行えます。\n", - "\n" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1つ目の例として、[東京都 新型コロナウイルス感染症対策サイト](https://stopcovid19.metro.tokyo.lg.jp/)の公開データを取得して \n", - "それをグラフにして可視化してみましょう。まずは必要なライブラリをインポートしておきます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "up8cPse8AetS", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import requests\n", - "import json\n", - "import datetime\n", - "import matplotlib.pyplot as plt\n", - "!pip install japanize-matplotlib \n", - "import japanize_matplotlib " - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "BnQLXHKjFjBq" - }, - "source": [ - "[東京都 新型コロナウイルス感染症対策サイト](https://stopcovid19.metro.tokyo.lg.jp/)の[レポジトリ](https://github.com/tokyo-metropolitan-gov/covid19)で公開されているデータ(json形式)を読み出す。\n", - "\n", - "指定したurlにリクエストを送り、レスポンスをjson形式で取得する" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "T_1P0zx8AkK2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "url = \"https://raw.githubusercontent.com/tokyo-metropolitan-gov/covid19/development/data/data.json\"\n", - "response = requests.get(url)\n", - "data = response.json()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SKHu3BaJGHV7" - }, - "source": [ - "上の`data`を直接`print`すると表示が冗長になるため \n", - "代わりに、jsonのキーとして何があるかを見てみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "pYuurgg8GQt0", - "outputId": "daada50f-ae8c-41fb-ae69-8173e3c676b9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_keys(['contacts', 'querents', 'patients_summary', 'inspections_summary', 'lastUpdate', 'main_summary'])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data.keys()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MauYUeNZGSUt" - }, - "source": [ - "それぞれ\n", - "* contacts: 新型コロナコールセンター相談件数\n", - "* querents: 帰国者・接触者電話相談センター相談件数\n", - "* patients_summary: 陽性患者数\n", - "* inspections_summary: 検査実施日別状況\n", - "* lastUpdate: 最終更新日時\n", - "* main_summary: (これはよくわからない)\n", - "\n", - "に対応している。\n", - "\n", - "陽性患者数のデータの構造を調べつつ結果を可視化してみよう。 \n", - "まずは型を調べてみる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "NkQkByDHH4d_", - "outputId": "a19e1dc9-5625-4cb3-8df2-20eb4305894d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "type(data['patients_summary'])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IHVWrC9OIEP0" - }, - "source": [ - "辞書型とわかったのでキーの一覧を見てみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "wv2FvdSkIDXg", - "outputId": "fa3a7ee8-dfdb-498d-de72-9f1cb9b70785", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_keys(['date', 'data'])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data['patients_summary'].keys()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1yZUYEsmIK-I" - }, - "source": [ - "同様にして`data['patients_summary'][\"data\"]`が\"日付\"と\"小計\"をキーに持つ辞書のリストだと分かる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "hhAhiQfSISBz", - "outputId": "88e0f766-6994-4919-f500-de1be2c7232c", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'日付': '2020-01-24T08:00:00.000Z', '小計': 1}" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data['patients_summary'][\"data\"][0]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iXuc95Z_IkdB" - }, - "source": [ - "日付と陽性患者数をリストに直して、描画してみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "y66ZWnHdDK5s", - "outputId": "c7127a0a-d0e1-4f19-f137-a94dd00e6a63", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "# \"2022-01-01\"のような文字列をdatetimeに変換する関数\n", - "def str_to_dt(tstr):\n", - " tdatetime = datetime.datetime.strptime(tstr, '%Y-%m-%d')\n", - " tdate = datetime.date(tdatetime.year, tdatetime.month, tdatetime.day)\n", - " return tdate\n", - " \n", - "tdat = data['patients_summary'][\"data\"]\n", - "N = len(tdat)\n", - "tdat = data['patients_summary'][\"data\"]\n", - "dates = [ str_to_dt(tdat[i][\"日付\"].split(\"T\")[0]) for i in range(N)]\n", - "num_patients = [ tdat[i]['小計'] for i in range(N)]\n", - "print(dates)\n", - "print(num_patients)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 292 - }, - "id": "aZx0omoSFYVq", - "outputId": "44b64330-f48c-4cac-f963-0706adb35ce0", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping_18_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize=(15,4))\n", - "plt.title(\"東京都\")\n", - "plt.xlabel(\"日付\")\n", - "plt.ylabel(\"陽性者数[人]\")\n", - "plt.plot(dates,num_patients, color=\"green\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "25k4E9a0WBHd" - }, - "source": [ - "## e-Statのデータを取得する\n", - "\n", - "[政府統計の総合窓口(e-Stat)](https://www.e-stat.go.jp/)は \n", - "日本の各府省が公表する統計データを一つにまとめた、 \n", - "政府統計のポータルサイトです。\n", - "\n", - "e-Statでは[API機能](https://www.e-stat.go.jp/api/)(ユーザー登録が必要)が提供されていて、 \n", - "指定されたURLに対してリクエストを送信することで各APIを利用することが出来ます。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0ixj5epofkdl" - }, - "source": [ - "### 準備1 e-Statの登録\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zfPiBxkmizMv" - }, - "source": [ - "以降の内容でも、e-StatのAPI機能を使用するため予めe-Statへの登録が必要です。\n", - "\n", - "国内のデータを使って最終課題に取り組みたいという方は \n", - "ここに記載の手順にならって登録しておきましょう。\n", - "\n", - "1. まず[こちら](https://www.e-stat.go.jp/mypage/user/preregister)のページからメールアドレス(Gmailを推奨します)を入力し、届いたメールから本登録を行う \n", - "このとき、gmailアカウントによる認証をオンにしておくと、以後のログインが楽。\n", - "2. [ログインページ](https://www.e-stat.go.jp/mypage/login)からログインし、\n", - "右上の[マイページ]に遷移\n", - "\n", - "3. [API機能(アプリケーションID発行)]に遷移する\n", - "4. 以下の例にならって、名称とURLを入力し、発行ボタンを押す\n", - "\n", - "\n", - "5. [appId]に生成された文字列を、どこかに控えておく(**appIdを他人と共有してはいけません**)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H_q7dts4iyJE" - }, - "source": [ - "### 準備2 Pandas e-Statのインストール\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "l2ywuL1Ki2QB" - }, - "source": [ - "さて、e-Statへの登録ができたでしょうか。 \n", - "\n", - "早速e-Statにあるデータをどんどん抽出したい \n", - "...のですが、[マニュアル](https://www.e-stat.go.jp/api/sites/default/files/uploads/2019/07/API-specVer3.0.pdf)を理解してAPIに適切なリクエストを送るというのは、 \n", - "それ自体がややハードルが高いかと思います。\n", - "\n", - "そこで、このノートブックでは[simaki](https://github.com/simaki)氏が作った \n", - "Python用のライブラリ[Pandas e-Stat](https://github.com/simaki/pandas-estat)を使用することにします。 \n", - "同氏によるQiitaの解説記事→https://qiita.com/simaki/items/05cc242d27b4e6781d19\n", - "\n", - "まずはインストール&インポートします。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "P20H8bGrXnC1", - "outputId": "f855e3db-570a-4091-eec2-df5c65ddf906", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: pandas-estat in /usr/local/lib/python3.7/dist-packages (0.3.1)\n", - "Requirement already satisfied: requests<3.0.0,>=2.26.0 in /usr/local/lib/python3.7/dist-packages (from pandas-estat) (2.26.0)\n", - "Requirement already satisfied: pandas<2.0.0,>=1.3.3 in /usr/local/lib/python3.7/dist-packages (from pandas-estat) (1.3.5)\n", - "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (1.19.5)\n", - "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (2.8.2)\n", - "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (2018.9)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas<2.0.0,>=1.3.3->pandas-estat) (1.15.0)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2.10)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2021.10.8)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (1.24.3)\n", - "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2.0.8)\n" - ] - } - ], - "source": [ - "!pip install pandas-estat\n", - "import pandas as pd\n", - "## import pandas_estat \n", - "# 以降では、pandas_estat内の関数は個別にimportすることにする (そうすると短い名前で使える)\n", - "#実行時の依存関係のエラーは当面問題ない(はず)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "81nepFn_cbZc" - }, - "source": [ - "次に```pandas_estat```からAPIを使用するためのIDを指定します" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zhWUx4u9aVtS", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "from pandas_estat import set_appid\n", - "appID = \"honyahonya\" # 引用符内を準備1で発行したappidに置き換える\n", - "set_appid(appID) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IMr1sWo20JI-" - }, - "source": [ - "## Pandas e-Statを使ってみよう" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KbrL52_4cdga" - }, - "source": [ - "ライブラリを使ってみましょう. \n", - "```read_statslist()```関数の引数に\"政府統計コード\"を指定することで、 \n", - "該当する統計データの一覧を```pandas.DataFrame```形式で取得することができます。 \n", - "[政府統計コードの一覧はこちら](https://www.e-stat.go.jp/help/stat-search-3-5)\n", - "\n", - "\n", - "政府統計コードそのものの一覧をdataframe形式取得するコードはそのうち書くつもりです。 \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wi4ef0kxtGRD" - }, - "source": [ - "それでは、さっそくPandas e-statを使ってみましょう。 \n", - "以下では、例にならって「サービス産業動向調査」の結果を抽出してみることにしましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "JZ6HgRbkcO3P", - "outputId": "79189f74-3fcc-4409-ca19-0b8359604627", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TABLE_INF STAT_CODE ... SUB_CATEGORY_CODE SUB_CATEGORY\n", - "0 0003179100 00200544 ... 02 需給流通\n", - "1 0003179101 00200544 ... 02 需給流通\n", - "2 0003085562 00200544 ... 02 需給流通\n", - "3 0003085612 00200544 ... 02 需給流通\n", - "4 0003090498 00200544 ... 02 需給流通\n", - ".. ... ... ... ... ...\n", - "137 0003412789 00200544 ... 02 需給流通\n", - "138 0003412790 00200544 ... 02 需給流通\n", - "139 0003412791 00200544 ... 02 需給流通\n", - "140 0003412792 00200544 ... 02 需給流通\n", - "141 0003412793 00200544 ... 02 需給流通\n", - "\n", - "[142 rows x 35 columns]\n" - ] - } - ], - "source": [ - "from pandas_estat import read_statslist\n", - "statslist = read_statslist(\"00200544\") # サービス産業動向調査\n", - "statslist" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wMHn2KBQgvgI" - }, - "source": [ - "次に、これらのデータがどうやって分類されているのかを調べてみましょう。 \n", - "列(column)を表示してみると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "p13KGCATg0aw", - "outputId": "575c6607-167d-4a64-e5ac-82da6935e06f", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['TABLE_INF', 'STAT_CODE', 'STAT_NAME', 'GOV_ORG_CODE', 'GOV_ORG_NAME',\n", - " 'TABULATION_CATEGORY', 'TABULATION_SUB_CATEGORY1',\n", - " 'TABULATION_SUB_CATEGORY2', 'TABULATION_SUB_CATEGORY3',\n", - " 'TABULATION_SUB_CATEGORY4', 'TABULATION_SUB_CATEGORY5',\n", - " 'TABULATION_CATEGORY_EXPLANATION',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION1',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION2',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION3',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION4',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION5', 'NO', 'TITLE',\n", - " 'TABLE_EXPLANATION', 'TABLE_CATEGORY', 'TABLE_SUB_CATEGORY1',\n", - " 'TABLE_SUB_CATEGORY2', 'TABLE_SUB_CATEGORY3', 'CYCLE', 'SURVEY_DATE',\n", - " 'OPEN_DATE', 'SMALL_AREA', 'COLLECT_AREA', 'OVERALL_TOTAL_NUMBER',\n", - " 'UPDATED_DATE', 'MAIN_CATEGORY_CODE', 'MAIN_CATEGORY',\n", - " 'SUB_CATEGORY_CODE', 'SUB_CATEGORY'],\n", - " dtype='object')\n" - ] - } - ], - "source": [ - "print(statslist.columns)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "616jD7Q5hbLL" - }, - "source": [ - "例えば、```CYCLE```(周期)というものがあるので、 \n", - "CYCLEが\"月次\"(月ごと)になっているデータだけをピックアップして、 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HJGryvLBc0ty", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "statslist = statslist[statslist.CYCLE == \"月次\"] " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tGm4W58th85l" - }, - "source": [ - "\n", - "その```TABLE_INF```(統計表ID)と```TITLE```(タイトル)だけを表示してみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "vLnBXsfgh_C_", - "outputId": "987b8b47-5564-419c-d6c5-5aeac7746081", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TABLE_INF TITLE\n", - "2 0003085562 事業所・企業等の産業(中分類)別売上高,従業上の地位別事業従事者数(月次)【2013年1月~】\n", - "5 0003191203 事業活動の産業(中分類)別売上高(月次)【2013年1月~】\n", - "7 0003085489 事業活動の産業(中分類)別需要の状況【2013年1月~2016年12月】\n", - "8 0003085521 事業活動の産業(中分類),事業所・企業等の産業(中分類)別売上高(月次)【2013年1月~12月】\n", - "10 0003094573 事業活動の産業(一部中分類),事業所・企業等の産業(一部中分類)別売上高(月次)【2013年...\n" - ] - } - ], - "source": [ - "statslist[[\"TABLE_INF\", \"TITLE\"]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xuoghPkAciH6" - }, - "source": [ - "```TABLE_INF```の数値が[統計表ID]と呼ばれるものです。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TASwyySl35Rf" - }, - "source": [ - "ではこの中から\"事業活動の産業(中分類)別売上高(月次)【2013年1月~】\"を読み出してみましょう。 \n", - "それには```read_statsdata```という関数が用意されているので、 \n", - "引数に```TABLE_INF```(統計表ID)を入力すると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "eRg7btsH35X0", - "outputId": "11cd68e4-c244-4a4f-c6d3-446426d1e0ef", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " tab_code 表章項目 cat01_code 事業活動の産業 ... 時間軸(月次) unit value annotation\n", - "0 001 売上高(収入額) 00000 合計 ... 2013年1月 百万円 27331888 NaN\n", - "1 001 売上高(収入額) 00000 合計 ... 2013年2月 百万円 27395304 NaN\n", - "2 001 売上高(収入額) 00000 合計 ... 2013年3月 百万円 35140562 NaN\n", - "3 001 売上高(収入額) 00000 合計 ... 2013年4月 百万円 28676427 NaN\n", - "4 001 売上高(収入額) 00000 合計 ... 2013年5月 百万円 28648626 NaN\n", - "... ... ... ... ... ... ... ... ... ...\n", - "5035 001 売上高(収入額) 20000 その他 ... 2021年5月 百万円 869554 NaN\n", - "5036 001 売上高(収入額) 20000 その他 ... 2021年6月 百万円 956542 NaN\n", - "5037 001 売上高(収入額) 20000 その他 ... 2021年7月 p 百万円 937055 NaN\n", - "5038 001 売上高(収入額) 20000 その他 ... 2021年8月 p 百万円 894658 NaN\n", - "5039 001 売上高(収入額) 20000 その他 ... 2021年9月 p 百万円 1005051 NaN\n", - "\n", - "[5040 rows x 11 columns]\n", - "1.1.5\n" - ] - } - ], - "source": [ - "from pandas_estat import read_statsdata \n", - "df = read_statsdata(\"0003191203\") \n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pPWScZG1e0Zu" - }, - "source": [ - "これで、データを抽出することができました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "2IdKeyZ_vLqw", - "outputId": "62fa4030-df23-453c-8bee-9d6eab523c76", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['tab_code', '表章項目', 'cat01_code', '事業活動の産業', 'area_code', '地域',\n", - " 'time_code', '時間軸(月次)', 'unit', 'value', 'annotation'],\n", - " dtype='object')" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BC5Z5beZvgZ_" - }, - "source": [ - "もう属性を少し絞ってみましょう。\n", - "\n", - "dataframeの\"事業活動の産業\"列にどんなものがあるかを抽出し、 \n", - "```set```関数を使って重複を除くと..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "J1LtPEnxvf89", - "outputId": "917711c3-64d2-4f7f-9a02-1f61220056d5", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'37通信業',\n", - " '38放送業',\n", - " '39情報サービス業',\n", - " '4*航空運輸業,郵便業(信書便事業を含む)',\n", - " '40インターネット附随サービス業',\n", - " '41映像・音声・文字情報制作業',\n", - " '42鉄道業',\n", - " '43道路旅客運送業',\n", - " '44道路貨物運送業',\n", - " '45水運業',\n", - " '47倉庫業',\n", - " '48運輸に附帯するサービス業',\n", - " '68不動産取引業',\n", - " '69不動産賃貸業・管理業',\n", - " '70物品賃貸業',\n", - " '72専門サービス業(他に分類されないもの)\\u3000(※「純粋持株会社」(平成25年1月以降)を除く)',\n", - " '73広告業',\n", - " '74技術サービス業(他に分類されないもの)',\n", - " '75宿泊業',\n", - " '76飲食店',\n", - " '77持ち帰り・配達飲食サービス業',\n", - " '78洗濯・理容・美容・浴場業',\n", - " '79その他の生活関連サービス業\\u3000(※「家事サービス業」を除く)',\n", - " '80娯楽業',\n", - " '82aうち社会教育,職業・教育支援施設',\n", - " '82bうち学習塾,教養・技能教授業',\n", - " '82その他の教育,学習支援業',\n", - " '83医療業',\n", - " '84保健衛生\\u3000(※「保健所」を除く)',\n", - " '85社会保険・社会福祉・介護事業\\u3000(※「社会保険事業団体」(平成25年1月以降)及び「福祉事務所」を除く)',\n", - " '88廃棄物処理業',\n", - " '89自動車整備業',\n", - " '90機械等修理業(別掲を除く)',\n", - " '91職業紹介・労働者派遣業',\n", - " '92その他の事業サービス業',\n", - " '95その他のサービス業',\n", - " 'その他',\n", - " 'サービス産業計',\n", - " '合計',\n", - " 'G情報通信業',\n", - " 'H運輸業,郵便業',\n", - " 'K不動産業,物品賃貸業',\n", - " 'L学術研究,専門・技術サービス業\\u3000(※「学術・開発研究機関」(平成25年1月以降)及び「純粋持株会社」(平成25年1月以降)を除く)',\n", - " 'M宿泊業,飲食サービス業',\n", - " 'N生活関連サービス業,娯楽業\\u3000(※「家事サービス業」を除く)',\n", - " 'O教育,学習支援業\\u3000(※「学校教育」を除く)',\n", - " 'P医療,福祉(※「保健所」、「社会保険事業団体」(平成25年1月以降)及び「福祉事務所」を除く)',\n", - " 'Rサービス業(他に分類されないもの)\\u3000(※「政治・経済・文化団体」、「宗教」及び「外国公務」を除く)'}" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "set(df[\"事業活動の産業\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "u0GQxlyZwJa9" - }, - "source": [ - "\"42鉄道業\"を見てみましょう。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QM1iHQkKwVhq", - "outputId": "5a7c4bea-f252-48c2-846a-e7c039fc4bd0", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 時間軸(月次) value unit\n", - "945 2013-01-01 583438 百万円\n", - "946 2013-02-01 529656 百万円\n", - "947 2013-03-01 644219 百万円\n", - "948 2013-04-01 627287 百万円\n", - "949 2013-05-01 581344 百万円\n", - "... ... ... ...\n", - "1042 2021-02-01 332987 百万円\n", - "1043 2021-03-01 424911 百万円\n", - "1044 2021-04-01 402705 百万円\n", - "1045 2021-05-01 341804 百万円\n", - "1046 2021-06-01 360438 百万円\n", - "\n", - "[102 rows x 3 columns]\n", - "1.1.5\n" - ] - } - ], - "source": [ - "ndf = df[df[\"事業活動の産業\"] == \"42鉄道業\"] #dfの中の、\"事業活動の産業欄が\"42鉄道業\"のものを抽出し、ndfと名前をつける\n", - "\n", - "ndf = ndf[ndf[\"時間軸(月次)\"].str.endswith(\"月\")]\n", - "ndf[\"時間軸(月次)\"] = pd.to_datetime(ndf[\"時間軸(月次)\"], format=\"%Y年%m月\")\n", - "ndf = ndf.sort_values(\"時間軸(月次)\")\n", - "\n", - "#必要なところだけ抽出すると...\n", - "ndf[[\"時間軸(月次)\", \"value\", \"unit\"]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AS81LjUszJuv" - }, - "source": [ - "図を描いてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "t-EtOX6tzLJh", - "outputId": "97e640e4-00d7-4ee7-d57a-e1fc7933f357", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: japanize-matplotlib in /usr/local/lib/python3.7/dist-packages (1.1.3)\n", - "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from japanize-matplotlib) (3.2.2)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.8.2)\n", - "Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.19.5)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (3.0.6)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.3.2)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (0.11.0)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->japanize-matplotlib) (1.15.0)\n" - ] - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "!pip install japanize-matplotlib \n", - "import japanize_matplotlib \n", - "import matplotlib.dates as mdates" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 205 - }, - "id": "_HnkKKiyxBuT", - "outputId": "4908d995-9efd-4c91-b947-3a906b029a9d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping_48_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x = ndf[\"時間軸(月次)\"].values\n", - "y = ndf[\"value\"].values.astype(float) * 1.e-2 # XX億円に換算\n", - "\n", - "fig = plt.figure(figsize=(30, 4))\n", - "ax = fig.add_subplot(111) \n", - "ax.set_facecolor(\"#e0e0e0\")\n", - "ax.set_ylabel(\"鉄道業の収益 [億円]\")\n", - "ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=range(1, 13, 4)))\n", - "ax.xaxis.set_major_formatter(mdates.DateFormatter(\"%Y/%m\"))\n", - "ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - "ax.plot(x,y,marker=\"o\",color=\"green\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-bB9Upw_zg_K" - }, - "source": [ - "新型コロナウイルスの感染拡大を受けて2020年の1月ごろから \n", - "緊急事態宣言の解除(5月25日)まで、大幅に収益が減っていることが分かる。\n", - "\n", - "\n", - "\n", - "---\n", - "\n" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "Nq2fTnB_fEjF" - }, - "source": [ - "### 備考\n", - "\n", - "あらかじめ興味のあるデータ,分類・属性等がわかっている場合は、 \n", - "上記のコードの対応するIDなどを変更すればよいし \n", - "コードを拡張して、データ,分類・属性等の一覧表などを適宜表示しながら、 \n", - "特定のキーワードを含むものに絞ってデータを取得したりもできる。\n", - "\n", - "ちなみに、GoogleColabで提供されているコードスニペット(テンプレートのようなもの) \n", - "を用いることで、プルダウンでデータ,分類・属性等を選んでプロットする、 \n", - "といったようにGoogle Colab.上で自分だけのe-Stat分析ツールを作ることもできる \n", - "(最終課題で取り組むのも良い)\n" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_WebScraping.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping.txt deleted file mode 100644 index d74a169e..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping.txt +++ /dev/null @@ -1,96 +0,0 @@ -import requests -import json -import datetime -import matplotlib.pyplot as plt -!pip install japanize-matplotlib -import japanize_matplotlib - -url = "https://raw.githubusercontent.com/tokyo-metropolitan-gov/covid19/development/data/data.json" -response = requests.get(url) -data = response.json() - -data.keys() - -type(data['patients_summary']) - -data['patients_summary'].keys() - -data['patients_summary']["data"][0] - -# "2022-01-01"のような文字列をdatetimeに変換する関数 -def str_to_dt(tstr): - tdatetime = datetime.datetime.strptime(tstr, '%Y-%m-%d') - tdate = datetime.date(tdatetime.year, tdatetime.month, tdatetime.day) - return tdate - -tdat = data['patients_summary']["data"] -N = len(tdat) -tdat = data['patients_summary']["data"] -dates = [ str_to_dt(tdat[i]["日付"].split("T")[0]) for i in range(N)] -num_patients = [ tdat[i]['小計'] for i in range(N)] -print(dates) -print(num_patients) - -fig = plt.figure(figsize=(15,4)) -plt.title("東京都") -plt.xlabel("日付") -plt.ylabel("陽性者数[人]") -plt.plot(dates,num_patients, color="green") -plt.show() -plt.close() - -!pip install pandas-estat -import pandas as pd -## import pandas_estat -# 以降では、pandas_estat内の関数は個別にimportすることにする (そうすると短い名前で使える) -#実行時の依存関係のエラーは当面問題ない(はず) - -from pandas_estat import set_appid -appID = "honyahonya" # 引用符内を準備1で発行したappidに置き換える -set_appid(appID) - -from pandas_estat import read_statslist -statslist = read_statslist("00200544") # サービス産業動向調査 -statslist - -print(statslist.columns) - -statslist = statslist[statslist.CYCLE == "月次"] - -statslist[["TABLE_INF", "TITLE"]] - -from pandas_estat import read_statsdata -df = read_statsdata("0003191203") -df - -df.columns - -set(df["事業活動の産業"]) - -ndf = df[df["事業活動の産業"] == "42鉄道業"] #dfの中の、"事業活動の産業欄が"42鉄道業"のものを抽出し、ndfと名前をつける - -ndf = ndf[ndf["時間軸(月次)"].str.endswith("月")] -ndf["時間軸(月次)"] = pd.to_datetime(ndf["時間軸(月次)"], format="%Y年%m月") -ndf = ndf.sort_values("時間軸(月次)") - -#必要なところだけ抽出すると... -ndf[["時間軸(月次)", "value", "unit"]] - -import matplotlib.pyplot as plt -!pip install japanize-matplotlib -import japanize_matplotlib -import matplotlib.dates as mdates - -x = ndf["時間軸(月次)"].values -y = ndf["value"].values.astype(float) * 1.e-2 # XX億円に換算 - -fig = plt.figure(figsize=(30, 4)) -ax = fig.add_subplot(111) -ax.set_facecolor("#e0e0e0") -ax.set_ylabel("鉄道業の収益 [億円]") -ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=range(1, 13, 4))) -ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y/%m")) -ax.grid(True,axis="both",color="w", linestyle="dotted", linewidth=0.8) -ax.plot(x,y,marker="o",color="green") -plt.show() -plt.close() diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping_18_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping_18_0.png deleted file mode 100644 index 1087dc26..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping_18_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping_48_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping_48_0.png deleted file mode 100644 index 3194bbe1..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_chapter_WebScraping_48_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Error.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Error.ipynb deleted file mode 100644 index 376da1ec..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Error.ipynb +++ /dev/null @@ -1,799 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4_5p-ivElTgJ" - }, - "source": [ - "# よくあるエラー集" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JvTtKsM5pmDk" - }, - "source": [ - "このノートブックにはPythonを触っていてよく起こりがちなエラーの例をまとめます. \n", - "**皆さんの手元で起こったエラーの例も共有したいので、ぜひ教えてください**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eYKyKUoYmDRE" - }, - "source": [ - "\n", - "エラーには、いろいろな分類の仕方がありますが代表的なものは以下のとおりです:\n", - "\n", - "* 構文エラー (syntax error)\n", - "* ランタイムエラー (runtime error) または 例外 (exception)\n", - "* 論理エラー (logic error)\n", - "\n", - "これらの代表的な例を以下で紹介します。\n", - "\n", - "pythonのようなインタプリタ言語では、実行時にコードの有効性が検証されるため、構文エラーはランタイムエラーとも言えますが、エラーメッセージに従って分類することにします。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SpDDGwnLnKqK" - }, - "source": [ - "## 構文エラー\n", - "\n", - "構文エラーとは、プログラミング言語の文法・構文規則に違反していることによるエラーです。 \n", - "代表的なものは\n", - "\n", - "* 括弧や引用符の閉じ忘れ\n", - "* コロンのつけ忘れ\n", - "* ピリオドとカンマの間違い\n", - "* 全角記号の使用\n", - "* ```=```(代入)と```==```(等号)の混同\n", - "* 不適切なインデント\n", - "\n", - "などがあります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aZyMaLbLoQK-" - }, - "source": [ - "**引用符のつけ忘れ**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "t_Q-dc0IoO0r", - "outputId": "5c62d651-f031-4ea7-b479-6304fc6a9bbb" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(\"Hello World)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m EOL while scanning string literal\n" - ] - } - ], - "source": [ - "print(\"Hello World) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ELW2rnF0oUd3" - }, - "source": [ - "**括弧の閉じ忘れ**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "1-pTnHTEoYsM", - "outputId": "64e6d562-5e01-418c-dfe7-297f24096eba" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(\"Hello World\"\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m unexpected EOF while parsing\n" - ] - } - ], - "source": [ - "print(\"Hello World\" " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zpAXxTJvofVN" - }, - "source": [ - "**ピリオドとカンマの間違い**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "ZkxkEWp4ojjV", - "outputId": "827a5e7d-bf65-4250-db41-fb2fae93630a" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m a = [2.2. 3.14] # ほんとはa = [2.2, 3.14]のつもり\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "a = [2.2. 3.14] # ほんとはa = [2.2, 3.14]のつもり" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Uyfg5Kwgn4QP" - }, - "source": [ - "**コロンのつけ忘れ**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "6Jq2pSYknQV3", - "outputId": "6e4d5ced-5ed2-492f-a507-ac52266aceb5" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m for i in range(2)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "for i in range(2)\n", - " print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iyYf_NVRpH7x" - }, - "source": [ - "**全角記号の使用**\n", - "\n", - "これは見た目では気が付きづらいので、**\"invalid character\"というSyntaxErrorが出たときは、全角を疑う**というのもおすすめです。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "SX39eEOco8iW", - "outputId": "893459db-9bd1-4d27-cf28-14b5c56d1d77" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 1+1 #後ろの1が全角になっている\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n" - ] - } - ], - "source": [ - "1+1 #後ろの1が全角になっている" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "smCVbWbqpDhp", - "outputId": "e2620838-ea98-457d-fde5-37c09f030bf1" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 1+2\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n" - ] - } - ], - "source": [ - "1+2 # 和記号+が全角になっている" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "id": "YMM02tBIpMRS", - "outputId": "43e549e4-f66e-4e8a-b1c3-b997dfe6ad96" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "execution_count": 16, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "1 + 1 #これはOK" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "gQYVZ3HYpPUM", - "outputId": "2858a768-f80f-4ff6-ff78-b5629b107eb4" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 1 + 1\u001b[0m\n\u001b[0m  ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n" - ] - } - ], - "source": [ - "1 + 1 #+と後ろの1の間に全角スペースが入っている" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P5ijbBANp16z" - }, - "source": [ - "**=(代入)と==(等号)の混同**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "x8onYf_MqLVL", - "outputId": "698727a2-36a8-4c26-ae45-a4f39f38c416" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m3\u001b[0m\n\u001b[0;31m if a = b : #ほんとは==のつもり\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "a = 2.0\n", - "b = 3.0\n", - "if a = b : #ほんとは==のつもり\n", - " print(\"a equal b!!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7Jj0xhgIqjlI" - }, - "source": [ - "**不適切なインデント**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GoxOOulCv2Z1" - }, - "source": [ - "下のコードは[予期しないインデント]というエラーがでる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "QIK7JWJqqlLO", - "outputId": "17b625d7-6a49-4dc0-9458-c463614aec97" - }, - "outputs": [ - { - "ename": "IndentationError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m3\u001b[0m\n\u001b[0;31m for j in range(5):\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unexpected indent\n" - ] - } - ], - "source": [ - "for i in range(5):\n", - " print(i) \n", - " for j in range(5): ## この行と次の行のブロックが不要にインデントされている\n", - " print(j)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ncV6G7KvrHKW" - }, - "source": [ - "## ランタイムエラー\n", - "\n", - "ランタイムエラーとは、 \n", - "書き方そのものはPythonの文法的に誤りではないものの、 \n", - "実際にコードを実行するとエラーになってしまうものを指します。\n", - "\n", - "非常に多岐に渡りますが、代表的なものとしては、\n", - "\n", - "* 範囲外参照\n", - "* 定義されていない変数の参照\n", - "* 意図しない変数の型に対する演算\n", - "* 0除算\n", - "\n", - "などがあります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7qBpnEkqrwNV" - }, - "source": [ - "**範囲外参照**\n", - "\n", - "要素が2つしかないリストの3番目の要素にアクセスしようとすると、\n", - "当然エラーが出ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "qyUnlHCzr_K_", - "outputId": "7c9384e5-d442-4c52-ed4c-e2882106288d" - }, - "outputs": [ - { - "ename": "IndexError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m \u001b[0;34m\"いちご\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"りんご\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m: list index out of range" - ] - } - ], - "source": [ - "a = [ \"いちご\", \"りんご\"]\n", - "a[2]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kb2WM6BLtbYK" - }, - "source": [ - "関数の定義域を超えて引数に入れるのもダメです" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "gWGn5zoithdY", - "outputId": "8ceae3e1-f923-4a0a-9a25-3285fb7e2dcf" - }, - "outputs": [ - { - "ename": "ValueError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mValueError\u001b[0m: math domain error" - ] - } - ], - "source": [ - "import math \n", - "math.log(0.0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IJFs-2jnsDeK" - }, - "source": [ - "**定義されていない変数の参照**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uNO8rFMYsHiI" - }, - "source": [ - "当然、定義されていない変数を使うとエラーが起こります" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - }, - "id": "V1H-oFVFsF9x", - "outputId": "ce8d0ade-07f4-4223-bc52-99198bb2dbc4" - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'num' is not defined" - ] - } - ], - "source": [ - "print(num)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**ノートブック特有の注意点**\n", - "\n", - "作業途中に定義していた変数がメモリに残っていて、そのおかげで動いているが、\n", - "後日作業を再開した際(新しいセッションで実行したとき)にその変数が未定義となり動かなくなる。\n", - "といったことも稀に起こります。\n", - "とくに、セルを跨いで実行したりするノートブックの編集・実行においては、よく起こるミスです。\n", - "こうしたエラーを避けるには、適宜ランタイムやカーネルなどを再起動して、\n", - "新しいセッションで実行できるか確認するなどの対策が必要です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y5x3eqQrsMQB" - }, - "source": [ - "打ち間違いにも注意です" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "8NAoPZHZsNbh", - "outputId": "64d1047d-66fa-423f-e912-21d9f900997d" - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0minput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"sample_file.txt\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0mimput\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'imput' is not defined" - ] - } - ], - "source": [ - "input = \"sample_file.txt\"\n", - "print( imput )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q-he-J69sS-Z" - }, - "source": [ - "**意図しない演算**\n", - "\n", - "数値と数値の足し算は出来ますが、\n", - "数値と文字のように型が異なる変数を足すことはできません。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - }, - "id": "Iovexbyrse_B", - "outputId": "6ffb6719-b2db-4c87-f332-0d78bab79646" - }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;34m\"私は\"\u001b[0m\u001b[0;34m+\u001b[0m \u001b[0;36m200\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m\"歳です\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m: must be str, not int" - ] - } - ], - "source": [ - "\"私は\"+ 200 + \"歳です\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zCWRYfAnJW8h" - }, - "source": [ - "和に限らず\"演算\"は一般に特定の型(同士)のみに定義されています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GqJC1Plfk-0R" - }, - "source": [ - "また、リスト等の要素にアクセスするのに、 \n", - "角括弧と間違えて丸括弧を使うミスもよく見られます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 202 - }, - "id": "HHOWbWlBk_LK", - "outputId": "4a1d5377-ce2f-4449-a14a-0fdc608d1026" - }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;31m#これはOK\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#これはNG\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m: 'list' object is not callable" - ] - } - ], - "source": [ - "a = [1, 2, 3]\n", - "a[1] #これはOK\n", - "a(1) #これはNG" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1NNF7t3XtONA" - }, - "source": [ - "**0除算**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yeZ04wKttTMh" - }, - "source": [ - "0で割ることはできません" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - }, - "id": "M3S_PXdFtPVQ", - "outputId": "12364983-d12c-4a1c-d48e-85dc04ad8191" - }, - "outputs": [ - { - "ename": "ZeroDivisionError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;36m300\u001b[0m\u001b[0;34m/\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mZeroDivisionError\u001b[0m: division by zero" - ] - } - ], - "source": [ - "300/ 0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qrDtUKhXtnvo" - }, - "source": [ - "## 論理エラー\n", - "\n", - "論理エラーとは、文法的にもOK(syntax errorなし)で、ランタイムエラーも無く、最後までプログラムが実行されるが、「意図した通りに動かない」というものを指します。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "XjepDskttuhm" - }, - "source": [ - "たとえば「aが負かつ正なら文字列を表示する」という以下のコードは、論理的にはおかしい命令ですが、構文エラーにもランタイムエラーにもなりません\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w7CuitFBuE5Z" - }, - "outputs": [], - "source": [ - "a = 2.0\n", - "if a < 0.0 and a > 0.0: \n", - " print(\"aは正かつ負です!!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9gWAbE1OvIeV" - }, - "source": [ - "人間側のエラーとも言えそうですね。 \n", - "第1章で説明したように、print文を使ったりしながらこうした論理エラーが無いか調べることもときに必要です。" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyNQPlOipy4Wx6FmhulV/Ewt", - "include_colab_link": true, - "name": "Python_misc_Error.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Error.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Error.txt deleted file mode 100644 index 4886b54c..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Error.txt +++ /dev/null @@ -1,49 +0,0 @@ -print("Hello World) - -print("Hello World" - -a = [2.2. 3.14] # ほんとはa = [2.2, 3.14]のつもり - -for i in range(2) - print(i) - -1+1 #後ろの1が全角になっている - -1+2 # 和記号+が全角になっている - -1 + 1 #これはOK - -1 + 1 #+と後ろの1の間に全角スペースが入っている - -a = 2.0 -b = 3.0 -if a = b : #ほんとは==のつもり - print("a equal b!!") - -for i in range(5): - print(i) - for j in range(5): ## この行と次の行のブロックが不要にインデントされている - print(j) - -a = [ "いちご", "りんご"] -a[2] - -import math -math.log(0.0) - -print(num) - -input = "sample_file.txt" -print( imput ) - -"私は"+ 200 + "歳です" - -a = [1, 2, 3] -a[1] #これはOK -a(1) #これはNG - -300/ 0 - -a = 2.0 -if a < 0.0 and a > 0.0: - print("aは正かつ負です!!") diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod.ipynb deleted file mode 100644 index ff8d564c..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod.ipynb +++ /dev/null @@ -1,302 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aLf3PqMgkFNC" - }, - "source": [ - "# ニュートン法によるN次元多項式の求根\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0ZIFvSR9kOo9" - }, - "source": [ - "$n$次元多項式$f(x) = c_0 + c_1 x + c_2 x^2 + \\ldots + c_nx^n$が与えられた時、 \n", - "$f(x)=0$となるような解(根)をどのように求めたら良いだろうか?\n", - "\n", - "$n=2$までの場合については、中学までで習うようによく知られた公式がある。 \n", - "$n=3,4$の場合についてもそれぞれ、[カルダノの公式]や[フェラリの解法]として知られる \n", - "代数的な求根法が存在する。 \n", - "なお、5次以上の代数方程式には代数的な解法※が存在しないことが知られている(アーベル-ルフィニの定理) \n", - "(※方程式の係数の有限回の四則演算および冪根操作で解を表示すること)\n", - "\n", - "\n", - "方程式の解や積分値などが代数的/解析的に解けない場合は、もちろん数値計算の出番となる。 \n", - "\n", - "このノートブックでは、ニュートン法(あるいはニュートン・ラフソン法)として知られる求根アルゴリズムを紹介する。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tPW10YYsnOHs" - }, - "source": [ - "## ニュートン法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZnosTDdTnPFL" - }, - "source": [ - "ニュートン法による関数$f(x)=0$の求根アルゴリズム自体は非常にシンプルで\n", - "\n", - "1. 初期値$x \\in \\mathbb{R} $ (または$x \\in \\mathbb{C})$を決める\n", - "2. 上の初期値を$x_0$とでも呼ぶことにして、 \n", - " $ x_{t+1} = x_t - f(x_t) / f'(x_t) $ と$x$を更新し \n", - " $x$の値が収束するまで更新を繰り返す\n", - "\n", - "というものである。 \n", - "\n", - "$\\clubsuit$ 進んだ注 \n", - "高次元のベクトル$\\boldsymbol{x}$に拡張することもできる。 \n", - "$ \\boldsymbol{x}_{t+1} = \\boldsymbol{x}_{t} - \\partial f(\\boldsymbol{x}_t)^{-1} f(\\boldsymbol{x}_t)$\n", - "$\\partial f(\\boldsymbol{x}_t)$はヤコビ行列になるが、 \n", - "数値計算上の困難が有り、実際に解く場合には様々な工夫が必要となる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lP5pa0eSpqfz" - }, - "source": [ - "### ニュートン法のアルゴリズムの実装例\n", - "\n", - "$n=5$の多項式の例を用いて、ニュートン法のアルゴリズムを実装してみよう。 \n", - "実数係数の多項式の場合、非ゼロの係数を持つ最大の$n$が奇数次ならば、 \n", - "関数$f(x)$は必ず実軸を横切る(つまり、$f(x)=0$の解が存在する。 \n", - "\n", - "まず係数を適当に...\n", - "$c_0 = 1.0, c_1 = 1.0, c_2 = 2.0, c_3 = 3.0, c_4 = 4.0, c_5 = 5.0$\n", - "とでもして、プロットしてみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 276 - }, - "id": "mDpCwZF0kEnj", - "outputId": "c5eb065f-87bf-42d0-fc38-1c57f88b8848" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod_6_0.png" - }, - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np \n", - "from matplotlib import pyplot as plt\n", - "\n", - "\n", - "## 多項式の係数を定義\n", - "cs = np.array( [1.0, 1.0, 2.0, 3.0, 4.0, 5.0] )\n", - "\n", - "## 愚直に多項式とその微分を定義\n", - "def xpoly(x):\n", - " return np.array([1.0,x,x**2,x**3,x**4,x**5])\n", - "def xpoly_prime(x):\n", - " return np.array([0.0,1.0,2*x,3*x**2,4*x**3,5*x**4])\n", - "\n", - "# 適当な区間で点を作成して描画してみる\n", - "xr = np.arange(-100,100,1.0) \n", - "yr = np.array([ np.dot(cs,xpoly(x)) for x in xr])\n", - "fig = plt.figure(figsize = (20,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.plot(xr,yr)\n", - "ax.plot(xr,0.0*yr,linestyle=\"dotted\",color=\"gray\") # y=0\n", - "plt.show()\n", - "plt.close() \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1anohi6wsU2l" - }, - "source": [ - "ゼロ点($f(x)=0$となる$x$)があることはわかるが、このスケールだと具体的な値はよくわからない。\n", - "\n", - "次にニュートン法のアルゴリズムに対応する関数を作って解を求めてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "dqnujbsFspn8", - "outputId": "ceb388d5-e79c-4190-bce1-b6cf812fabe3" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "it 1 x -16.03067071498258 y -15383219.0 -5041023.966714532\n", - "it 2 x -12.854892481957197 y -5041023.966714532 -1651968.106196959\n", - "it 3 x -10.313885990777683 y -1651968.106196959 -541379.1850391383\n", - "it 4 x -8.28061578625216 y -541379.1850391383 -177429.79752234442\n", - "it 5 x -6.653441486353502 y -177429.79752234442 -58155.11457333112\n", - "it 6 x -5.3510406877452255 y -58155.11457333112 -19063.39609222064\n", - "it 7 x -4.308351359326742 y -19063.39609222064 -6250.001804089965\n", - "it 8 x -3.4733344532483637 y -6250.001804089965 -2049.456302435744\n", - "it 9 x -2.8044032112313464 y -2049.456302435744 -672.1354918462077\n", - "it 10 x -2.268410685784332 y -672.1354918462077 -220.3982199780121\n", - "it 11 x -1.8391438506400222 y -220.3982199780121 -72.1807419252783\n", - "it 12 x -1.4963673552041776 y -72.1807419252783 -23.526420007144324\n", - "it 13 x -1.2256340399442445 y -23.526420007144324 -7.546944476833993\n", - "it 14 x -1.0192792149298004 y -7.546944476833993 -2.3017219833384583\n", - "it 15 x -0.878192974042394 y -2.3017219833384583 -0.6001347172980255\n", - "it 16 x -0.8072662373727413 y -0.6001347172980255 -0.09757282508715664\n", - "it 17 x -0.7905468880551323 y -0.09757282508715664 -0.00434806118170894\n", - "it 18 x -0.789729888238273 y -0.00434806118170894 -9.879715826832669e-06\n", - "it 19 x -0.7897280233719703 y -9.879715826832669e-06 -5.135225578101199e-11\n", - "it 20 x -0.7897280233622771 y -5.135225578101199e-11 5.551115123125783e-16\n", - "x -20.0 => -0.7897280233622771 after 20 iterations\n" - ] - }, - { - "data": { - "text/plain": [ - "-0.7897280233622771" - ] - }, - "execution_count": 36, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "def Newton(cs,xini,tolxrel=1.e-6,toly=1.e-6,maxit=1000):\n", - " xp = xpoly(xini)\n", - " xpp = xpoly_prime(xini)\n", - " x = xini\n", - " itnum = 0\n", - " while True:\n", - " y = np.dot(cs,xp)\n", - " yp = np.dot(cs,xpp) \n", - " delta = y / yp\n", - " x += - delta\n", - " xp = xpoly(x)\n", - " xpp = xpoly_prime(x)\n", - " ynew = np.dot(cs,xp)\n", - " itnum += 1\n", - " print(\"it\", itnum, \"x\",x, \"y\", y,ynew)\n", - " if abs(delta/x) < tolxrel and abs(ynew) \", x, \" after \",itnum, \"iterations\")\n", - " return x \n", - "\n", - "x_initial = -20.0\n", - "Newton(cs,x_initial)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lg6vMncbwyfa" - }, - "source": [ - "$x=-20.0$から始めると、20回のiteration(反復)で、 \n", - "yの値が$5.e-16 \\simeq 0$の点が求められている事がわかる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_yFWkaZxxBqB" - }, - "source": [ - "今のようにうまくいく例もある一方で、関数や初期値によっては解に収束しない場合があるので注意が必要" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dPK_KIGcyuod" - }, - "source": [ - "# LICENSE" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q943wB7Z4DYK" - }, - "source": [ - "\n", - "Copyright (C) 2021 Sota Yoshida\n", - "\n", - "[ライセンス:クリエイティブ・コモンズ 4.0 表示 (CC-BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.ja)" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyMWxHIsatxKmpa/oePk47i/", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_NewtonsMethod.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod.txt deleted file mode 100644 index c7859d9f..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod.txt +++ /dev/null @@ -1,49 +0,0 @@ -import numpy as np -from matplotlib import pyplot as plt - - -## 多項式の係数を定義 -cs = np.array( [1.0, 1.0, 2.0, 3.0, 4.0, 5.0] ) - -## 愚直に多項式とその微分を定義 -def xpoly(x): - return np.array([1.0,x,x**2,x**3,x**4,x**5]) -def xpoly_prime(x): - return np.array([0.0,1.0,2*x,3*x**2,4*x**3,5*x**4]) - -# 適当な区間で点を作成して描画してみる -xr = np.arange(-100,100,1.0) -yr = np.array([ np.dot(cs,xpoly(x)) for x in xr]) -fig = plt.figure(figsize = (20,4)) -ax = fig.add_subplot(111) -ax.plot(xr,yr) -ax.plot(xr,0.0*yr,linestyle="dotted",color="gray") # y=0 -plt.show() -plt.close() - - -def Newton(cs,xini,tolxrel=1.e-6,toly=1.e-6,maxit=1000): - xp = xpoly(xini) - xpp = xpoly_prime(xini) - x = xini - itnum = 0 - while True: - y = np.dot(cs,xp) - yp = np.dot(cs,xpp) - delta = y / yp - x += - delta - xp = xpoly(x) - xpp = xpoly_prime(x) - ynew = np.dot(cs,xp) - itnum += 1 - print("it", itnum, "x",x, "y", y,ynew) - if abs(delta/x) < tolxrel and abs(ynew) ", x, " after ",itnum, "iterations") - return x - -x_initial = -20.0 -Newton(cs,x_initial) diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod_6_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod_6_0.png deleted file mode 100644 index db35f69c..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_NewtonsMethod_6_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE.ipynb deleted file mode 100644 index f9d6a5c6..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE.ipynb +++ /dev/null @@ -1,766 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wVdYiDLFHEEL" - }, - "source": [ - "# 常微分方程式の数値解法" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MO6-C742mcJ-" - }, - "outputs": [], - "source": [ - "#使用するモジュールのimport\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JxV3JSWOd-W8" - }, - "source": [ - "## 常微分方程式" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AGBSpCwiHIgY" - }, - "source": [ - "多くの自然現象や社会現象は微分方程式として定式化される。\n", - "\n", - "身近な例としてはニュートンの運動方程式にはじまり、\n", - "金融や群集動態、感染症のモデルなどにも当てはまる。\n", - "\n", - "このノートでは、微分方程式のうちとくに一変数関数の場合である \n", - "常微分方程式(ordinary differential equation, ODE)について \n", - "いくつかの代表的な数値解法を解説するとともに、 \n", - "アルゴリズムを自分で実装してみよう。\n", - "\n", - "例えば1階の常微分方程式は、一般に以下の形で書くことが出来る: \n", - "$dx(t)/dt = f(x,t)$ (Eq. 1)\n", - "\n", - "これは、ある質点の時刻$t$での座標を$x(t)$と呼ぶことにすると、 \n", - "質点の位置の変化が$f(x,t)$の関数として書けるような状況に相当する。\n", - "\n", - "注) 別に$t$は時間である必要はないし、 \n", - "$x(t)$は座標以外の量(金融商品の価格など)何でも構わない。\n", - "\n", - "\n", - "一般に常微分方程式が与えられた時、まずはその解が変数分離などを用いて \n", - "閉じた形で書き下せないかと考えるわけだが、 \n", - "実際の多くの問題ではそうは上手く行かず、数値計算が必要となる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "duBNxeB_cUMU" - }, - "source": [ - "以下では、主として$dx/dt = f(x,t)$を考えるが、 \n", - "高階の微分を含む場合も、\n", - "\n", - "$$\n", - "\\left[\n", - "\\begin{matrix} \n", - "x_1 \\\\ \n", - "x_2 \\\\\n", - "\\vdots \\\\\n", - "x_r\n", - "\\end{matrix}\n", - "\\right]\n", - "= \n", - "\\left[\n", - "\\begin{matrix} \n", - "x \\\\ \n", - "dx/dt \\\\\n", - "\\vdots \\\\\n", - "d^{r-1}x/dt^{r-1}\n", - "\\end{matrix} \\right]\n", - "$$\n", - "\n", - "と置き換えれば、連立1階常微分方程式:\n", - "\n", - "$$\n", - "\\left[\n", - "\\begin{matrix} \n", - "x_2 \\\\ \n", - "x_3 \\\\\n", - "\\vdots \\\\\n", - "x_{r}\n", - "\\end{matrix}\n", - "\\right]\n", - "= \n", - "\\frac{d}{dx}\n", - "\\left[\n", - "\\begin{matrix} \n", - "x_1 \\\\ \n", - "x_2 \\\\\n", - "\\vdots \\\\\n", - "x_{r-1} \n", - "\\end{matrix} \\right]\n", - "$$\n", - "とみなすことが出来る。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "brvU1jS2W0NK" - }, - "source": [ - "\n", - "常微分方程式の解を求めるためには、 \n", - "適切な条件(初期条件や境界条件)を設定しなければならない。\n", - "\n", - "そのうち、変数$t$の最初の値(初期値,初期条件)$t_0$と \n", - "$x(t=t_0)$の値が与えられた問題を初期値問題と呼ぶ。 \n", - "※$t_0$は問題によって0だったり、$-\\infty$だったりする。\n", - "\n", - "\n", - "解の存在性や下記のリプシッツ条件など適切な条件の元での \n", - "解の一意性の証明等については教科書に譲る。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "o2JwiqJAd2LL" - }, - "source": [ - "###リプシッツ条件" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ipc62VyEeFXo" - }, - "source": [ - "関数$f$が$U$(たとえば$R^n$の部分集合) 上でリプシッツ(Lipshitz)連続であるとは、 \n", - "正実数$K$が存在し、任意の$x,y \\in U$に対し、 \n", - "$||f(x)-f(y)|| \\leq K ||x −y||$が成立することである。 \n", - "以下では$||\\cdot||$はユークリッドノルムとし、$K$をリプシッツ定数と呼ぶ。\n", - "\n", - "この$K$が存在しているとき、 \n", - "前述の常微分方程式の初期値問題は一意の解を持つ。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3BMukvRtgdZI" - }, - "source": [ - "## 代表定期な数値解法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-pwbBdUBgjMr" - }, - "source": [ - "### オイラー(Euler)法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JrC4_IHYgu8-" - }, - "source": [ - "1階の常微分方程式$dx(t)/dt=f(x,y)$を数値的に解く上で \n", - "最も基本的な考え方は時刻(便宜上そう呼ぶ)を \n", - "細かく分割した上で、$x$の任意時刻$t$での近似値を \n", - "初期値から初めて逐次的に求めていくことである。 \n", - "\n", - "以下では、その最も単純な例であるオイラー法を説明する。\n", - "\n", - "微分の定義:\n", - "$dx(t)/dt = \\lim_{h\\to 0} \\frac{x(t+h) - x(t)}{h}$から \n", - "微小変分$h$を十分小さく取れば、 \n", - "$x_{i+1} = x_{i} + h f(x,t_i)$という近似式が得られる。\n", - "\n", - "つまり、$i=0$の初期値$(x_0,t_0=0)$から順番に上の漸化式を用いて、 $i$番目の時刻$t_i$での座標$x_i$を推定していく。\n", - "\n", - "※一般に微小変分$h$は各ステップ$i$に依存しても良いが、簡単のため共通とした。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VgupCOzCjPwO" - }, - "source": [ - "例: $dx/dt = -2x^2t$, 初期条件$x(t=0)=1.0$のもとで \n", - "$0 < t \\leq 1.0$での$x$の値を予想してみよう:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "lI-2SaBkHCXa", - "outputId": "be62334d-2414-425b-a2a3-29a2efee59ff" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_14_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# f(x,t)のトイモデルとして dx/dt = -2tx^2 というものを考える\n", - "def f(x,t): \n", - " return - 2.0* x * x * t\n", - "#時刻tを間隔hで細かく分割する\n", - "h = 1.e-4\n", - "tr = np.arange(0.0,1.0,h) \n", - "#初期条件\n", - "x0 = 1.0 \n", - "\n", - "#求解\n", - "x = x0\n", - "xs = [x0]\n", - "for t in tr:\n", - " x += h * f(x,t)\n", - " xs += [x]\n", - "\n", - "#描画\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"x\")\n", - "plt.plot(tr,xs[:-1])\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_xzmhI0Rq7A_" - }, - "source": [ - "実は今の初期条件のもとでこの微分方程式は \n", - "閉じた形$x(t)=x_0/(x_0t^2+1)$で解が与えられるので、 \n", - "真の解と数値解法による近似解を比較できる。\n", - "\n", - "差分のlogを取ってみると...以下のようになる:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "dMy_G8hjq6i-", - "outputId": "acdfa5e0-6bf7-4e04-922a-8d9885e98d63" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_16_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def fexact(t):\n", - " return x0/(x0* t*t + 1.0)\n", - "xe = np.array([ fexact(t) for t in tr])\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\"); plt.ylabel(\"abs. diff.\")\n", - "plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])))\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q7jGOD0zssEL" - }, - "source": [ - "Taylor展開するだけで簡単に調べられるようにEuler法は局所打ち切り誤差が$O(h^2)$、 \n", - "大局打切り誤差が$\\sim O(h^2)\\times O(h^{-1})\\sim O(h)$の手法となっている。 \n", - "つまり1桁精度を上げたいなら$h$を1/10、つまり計算量を10倍にしなくてはならない。\n", - "\n", - "上の$h$を変えてチェックしてみよう。 \n", - "\n", - "大局誤差が$h$の$p$乗に比例する手法を一般に$p$次公式と呼び \n", - "上のEuler法は1次公式となる。\n", - "\n", - "Euler法に少し工夫を加えた修正Euler法は、2次公式であり \n", - "$h$を1/10すると、大局誤差は1/100にできる。 \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6ru34y_hvFV6" - }, - "source": [ - "### 4次のルンゲクッタ法 (RK4)\n", - "\n", - "次に4次公式の代表例である4次のルンゲクッタ法を紹介しよう。 \n", - "古典的ルンゲ=クッタ法などとも呼ばれるこの方法は、 \n", - "幾つかの$(x,t)$に対して$f(x,t)$の値を計算し、 \n", - "打切り誤差が互いにキャンセルしあうように \n", - "うまく重み付けをして次ステップの$x$の値を求めていく方法であり \n", - "様々なところで用いられている。\n", - "\n", - "基本的には2変数関数のTaylor展開をやれば更新式を導出できるが\n", - "煩雑なので導出については省略することにして結果だけ示すと\n", - "\n", - "$i$番目のステップでの$x,t$の値$x_i,t_i$が所与のとき、\n", - "以下の4点での$f(x,t)$の(近似)値を用意して \n", - "$ f_1 = f(x_i,t_i),\n", - "f_2 = f(x_i+\\frac{h}{2} f_1,t_i+\\frac{h}{2}),$\n", - "$f_3 = f(x_i+\\frac{h}{2} f_2,t_i+\\frac{h}{2}),\n", - "f_4 = f(x_i+h f_3,t_i+h)\n", - "$\n", - "\n", - "$x_{i+1} = x_{i} + \\frac{h}{6} (f_1+2f_2+2f_3 + f_4 )$\n", - "とすることで、4次公式が得られる。\n", - "\n", - "また、前述のような\"重み付け\"の選択には自由度があり、 \n", - "$ f_1 = f(x_i,t_i),\n", - "f_2 = f(x_i+\\frac{h}{3} f_1,t_i+\\frac{h}{3}),$\n", - "$\n", - "f_3 = f(x_i-\\frac{h}{3}f_1 + h f_2,t_i+\\frac{2h}{3}),\n", - "f_4 = f(x_i+hf_1-hf_2+h f_3,t_i+h)\n", - "$\n", - "\n", - "$x_{i+1} = x_{i} + \\frac{h}{8} (f_1+3f_2+3f_3 + f_4 )$\n", - "\n", - "という公式も知られている。\n", - "\n", - "\n", - "前者を実装して、先程の例でEuler法と比べてみると...\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "bpzo_HH03zsy", - "outputId": "2256e450-8361-4754-e1a8-332e05ff5372" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_19_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#求解(RK4)\n", - "xsRK4 = [x0]\n", - "x = x0\n", - "for t in tr:\n", - " f1 = f(x,t)\n", - " f2 = f(x+0.5*h*f1, t+0.5*h)\n", - " f3 = f(x+0.5*h*f2, t+0.5*h)\n", - " f4 = f(x+h*f3, t+h)\n", - " x += h*(f1 + 2*f2 + 2*f3 + f4)/6.0\n", - " xsRK4 += [x]\n", - "#描画\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"abs. diff.\")\n", - "plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])),label=\"Euler\")\n", - "plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label=\"RK4\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WqKW52Ncbg7c" - }, - "source": [ - "となり、高精度で解が得られていることが分かる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uIqPPSsJb-KD" - }, - "source": [ - "## 積分を用いた解法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SUuqmECsuB4l" - }, - "source": [ - "常微分方程式 $\\frac{dx}{dt} = f(x,t)$は形式的には \n", - "$x(t') = x(t_0) + \\int^{t'}_{t_0} f(x(t),t,) dt$ と書くことが出来る。\n", - "\n", - "右辺の積分を数値的に計算することで、 \n", - "元の微分方程式の解を求めることを考えよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GSy9sdWUdyXI" - }, - "source": [ - "### Adams-Bashforth法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0mWaZoxBd1m5" - }, - "source": [ - "\n", - "\n", - "以下では特に、Adams-Bashforth法(AB法)と呼ばれる手法を考える。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "svbcn9pIM-n1" - }, - "source": [ - "まずは、2次のAB法を考えよう。\n", - "\n", - "$t_i$と$t_{i+1}$の間の$f(x(t),t)$を、現在居る$i$番目のステップと \n", - "1個前の$i-1$番目のステップを用いて、1次のLagrange補間で近似してみる。\n", - "\n", - "$\n", - "\\begin{align} \n", - "x_{i+1} &= x_i + \\int^{t_{i+1}}_{t_i} P_1(t) dt \\\\\n", - "P_1(t) &= f_{i-1}L_{i-1}(t) + f_i L_i(t) \\\\\n", - "L_{i-1} &= \\frac{t-t_i}{t_{i-1}-t_i}, L_{i} = \\frac{t-t_{i-1}}{t_{i}-t_{i-1}}\n", - "\\end{align}$\n", - "\n", - "各ステップの刻み幅$t_{i}-t_{i-1}$ for $\\forall i $を一定$h$としよう。 \n", - "このもとで上の積分を評価すると、 \n", - "$x_{i+1} = x_i + \\frac{h}{2} (-f_{i-1}+3f_i)$\n", - "という更新式を得る。\n", - "\n", - "この手法の局所打切り誤差は(またTaylor展開して)$O(h^3)$であり、 \n", - "2次の公式となる。一般的な分類に倣えば、この手法は過去の2ステップの情報を利用する、 \n", - "陽(explicit)解法かつ2段法(2-step method)となっている。\n", - "\n", - "\n", - "同様にして、一般に$m$ステップのAB法($n-1$次のLegendre補間を使用)は$m$次公式を与える。 \n", - "たとえば4次公式は$x_{i+1}=x_i + \\frac{h}{24}(-9f_{i-3} + 37f_{i-2} -59f_{i-1} +55f_{i})$\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "40VvY7-xRbXC" - }, - "source": [ - "**Adams-Bashforth法とRunge-Kutta法の違い**\n", - "\n", - "AB法では、過去に評価した$f$の値を用いるため、計算量の増加を防ぐことができる。 \n", - "つまり、各$f$の評価は1回だけで良い。 \n", - "一方で、RK4では各ステップで$f$を4回計算する必要がある。\n", - "\n", - "これは$f$の評価が複雑な場合 \n", - "(例えば解きたい微分方程式が行列(連立)になっていて、$f$に行列演算を含む場合など) \n", - "Runge-Kutta法よりも、高速に計算できるかもしれない。\n", - "\n", - "一方で、$m$次のAB法では過去の情報を利用するため、 \n", - "はじめの$m-1$回については、RK法などで予め求めておく必要がある。 \n", - "また、Runge-Kutta法と比較すると、誤差が大きかったり、 \n", - "数値的に不安定になりやすいことも知られている。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "v8lSgfj-jvu5", - "outputId": "45d3597a-12ff-43bf-eaa5-b24b1f4b6d0c" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_27_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def AB4(x0,m=4):\n", - " xsAB = [x0]\n", - " x = x0\n", - " fs = [ 0.0 for i in range(m)]\n", - " for i,t in enumerate(tr):\n", - " if len(xsAB) < m : #RK4\n", - " f1 = f(x,t)\n", - " f2 = f(x+0.5*h*f1, t+0.5*h)\n", - " f3 = f(x+0.5*h*f2, t+0.5*h)\n", - " f4 = f(x+h*f3, t+h)\n", - " x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0\n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " else:\n", - " f1,f2,f3 = fs[1:]\n", - " f4 = f(x,t)\n", - " x += h *(-9*f1 +37*f2 -59*f3 +55*f4 )/24.0 \n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " xsAB += [x]\n", - " return xsAB\n", - "\n", - "xsAB4 = AB4(x0)\n", - "#描画\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"abs. diff.\")\n", - "plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])),label=\"Euler\")\n", - "plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label=\"RK4\")\n", - "plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label=\"AB4\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dYfoXPujX-vw" - }, - "source": [ - "### Adams-Moulton法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2VU4odEJYEE7" - }, - "source": [ - "AB法は、現在$i$と過去のステップの情報のみを使用したが、 \n", - "$i+1$ステップの情報を使う(陰解法)ことで、より高精度の結果を得ることができる。\n", - "\n", - "3次のAB法($i-2,i-1,i$の情報)に加えて$i+1$番目の情報を用いて \n", - "3次のLagrange補間多項式$P_3(t)=\\sum^2_{j=-1}f_{i-j}L_{i-j}$のもと \n", - "$x_{i+1}=x_i + \\sum^2_{j=-2} f_{i+j} \\int^{t_{i+1}}_{t_i} L_{i+j}(t) dt $\n", - "という \n", - "更新式を考える。愚直に上と同様に各積分を評価すると \n", - "$x_{i+1}=x_i + \\frac{h}{24}(f_{i-2}-5f_{i-1}+19f_{i} +9f_{i+1}) $\n", - "という式が得られる。\n", - "\n", - "これは、4次精度の公式になっており、3ステップ(4次)のAdams-Moulton法と呼ばれる。 \n", - "右辺にある$f_{i+1}$の評価に関する計算コストの分だけ、3次のAB法に比べて増えることになる。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yI-0E3olcM4m" - }, - "source": [ - "### Adams-Bashforth-Moulton法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eLY3gCIokyI1" - }, - "source": [ - "AM法とAB法を組み合わせることで、使いやすい高精度な陽解法を作ろう \n", - "というのが予測子修正子法の発想である。\n", - "\n", - "4ステップのAB法を予測子, 4ステップのAM法を修正子として採用すると \n", - "以下の更新式が得られる:\n", - "\n", - "$\\begin{align}\n", - "x^{P}_{i+1} &= x_i + \\frac{h}{24}(-9f_{i-3}+37f_{i-2}-59f_{i-1}+55f_i) \\\\\n", - "x_{i+1} &= x_i + \\frac{h}{24}(f_{i-2}-5f_{i-1}+19f_i + 9f(t_{i+1},x^P_{i+1}))\n", - "\\end{align}\n", - "$\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "xu2CrHFXFh_p", - "outputId": "7c978fc2-0411-46a9-c1cb-cb48ceaee61c" - }, - "outputs": [ - { - "data": { - "image/png": "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aOnqoilk0NLmi6bsD0dfVtbaiUSC+++/nzPPzB4RfuWVVzjnnHP4xz/+wZQpUzLlt99+OzvvvDMHHnjgNrRXREREGlE9gtugOOfWAZ/JK3sQeHCA9a4GrgZ/y6sqNW+bpO9V+uqrrzJz5kyOPPLIzLIddtiB8ePHc8stt3DeeecB0NXVxSWXXMK9995bryaLiIhIHdUjuL0K7BKYn5oqq58ye8aKco6eZ5fSPaKZidPLv1dp+hy3rq4ujjrqKK688ko+//nPA9DW1sZdd93FO9/5TiZNmsSpp57KihUrePnllzO9be3t7Rx88ME8/rQ3ygEAABzUSURBVPjjOb1yIiIisn2qR3B7AtjTzGbgA9vJwEfq0I4ho62tjZ/+9Kccf/zxfO5zn8uUT5o0ibvvvpu5c+cyceJEjjrqKNasyZ72N336dBYvXpxz/puIiIhsv6o9HMgC4BFgbzNrN7MznXNx4BzgHmAZcItzbmk129EIDjroIA444AAWLFiQUz5jxgwWLlzIJz7xCR5//PE6tU5ERESGgqr2uDnnTilSfhcNPIxHpXR0dOTM33HHHZnpZ57JDn134IEH9rviFPx4byIiIjJ8DPk7J4iIiIiIp+AmIiIi0iAU3CpgSI41IiIiItsdBTcRERGRBqHgJiIiItIgFNxEREREGoSCW53ddtttmBnPPfcc4If4aG1tZfbs2Rx44IEcdthhPP/88znrrFq1ipEjR/KDH/ygHk0WERGROlFwq7MFCxZw+OGH5wy8u/vuu/PUU0+xZMkSTj/9dC655JKcdc4//3yOPvroWjdVRERE6kzBrY46OjpYtGgR1157LTfffHPBOps3b2bcuHGZ+dtuu40ZM2aw33771aqZIiIiMkTU416lQ853H/8uz61/bpu2kejsJBkOEX2uFYB9xu/DVw79Ssl1br/9dubNm8dee+3FhAkTePLJJ5kwYQIrVqxg9uzZbNmyha6uLh577DHAB73vfve73HfffTpMKiIiMgypx62OFixYwMknnwzAySefnDlcmj5UumLFCn784x9z1llnATB//nzOO+88Ro4cWbc2i4iISP2oxw0G7BkbSNI5up9dSveIZiZO37OsddavX88DDzzA008/jZmRSCQwM84+++ycesceeyxnnHEGAI899hi33norX/7yl9m4cSOhUIiWlhbOOeecbWq/iIiI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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_32_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def ABM(x0,m=4):\n", - " xsABM = [x0]\n", - " x = x0\n", - " fs = [ 0.0 for i in range(m)]\n", - " for i,t in enumerate(tr):\n", - " if len(xsABM) < m : #RK4\n", - " f1 = f(x,t)\n", - " f2 = f(x+0.5*h*f1, t+0.5*h)\n", - " f3 = f(x+0.5*h*f2, t+0.5*h)\n", - " f4 = f(x+h*f3, t+h)\n", - " x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0\n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " else:\n", - " f1,f2,f3 = fs[1:]; f4 = f(x,t)\n", - " ## 予測子\n", - " xp = x + h *(-9*f1+37*f2-59*f3+55*f4) / 24.0 \n", - " f5 = f(xp,t+h)\n", - " ## 修正子\n", - " x += h *(f2 -5*f3 +19*f4 +9*f5 )/24.0 \n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " xsABM += [x]\n", - " return xsABM\n", - "\n", - "xsABM = ABM(x0)\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"abs. diff.\");plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])),label=\"Euler\")\n", - "plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label=\"RK4\")\n", - "plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label=\"AB4\")\n", - "plt.plot(tr,abs(xe-xsABM[:-1]),label=\"ABM4\")\n", - "plt.legend();plt.show();plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6DUB18TOpj-9" - }, - "source": [ - "1桁程度、AB法よりも精度が改善していることがわかる。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_ODE.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE.txt deleted file mode 100644 index 83d338a0..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE.txt +++ /dev/null @@ -1,120 +0,0 @@ -#使用するモジュールのimport -import numpy as np -from matplotlib import pyplot as plt - -# f(x,t)のトイモデルとして dx/dt = -2tx^2 というものを考える -def f(x,t): - return - 2.0* x * x * t -#時刻tを間隔hで細かく分割する -h = 1.e-4 -tr = np.arange(0.0,1.0,h) -#初期条件 -x0 = 1.0 - -#求解 -x = x0 -xs = [x0] -for t in tr: - x += h * f(x,t) - xs += [x] - -#描画 -fig = plt.figure(figsize=(10,3)) -plt.xlabel("t");plt.ylabel("x") -plt.plot(tr,xs[:-1]) -plt.show() -plt.close() - -def fexact(t): - return x0/(x0* t*t + 1.0) -xe = np.array([ fexact(t) for t in tr]) -fig = plt.figure(figsize=(10,3)) -plt.xlabel("t"); plt.ylabel("abs. diff.") -plt.yscale("log") -plt.plot(tr,abs(xe-np.array(xs[:-1]))) -plt.show() -plt.close() - -#求解(RK4) -xsRK4 = [x0] -x = x0 -for t in tr: - f1 = f(x,t) - f2 = f(x+0.5*h*f1, t+0.5*h) - f3 = f(x+0.5*h*f2, t+0.5*h) - f4 = f(x+h*f3, t+h) - x += h*(f1 + 2*f2 + 2*f3 + f4)/6.0 - xsRK4 += [x] -#描画 -fig = plt.figure(figsize=(10,3)) -plt.xlabel("t");plt.ylabel("abs. diff.") -plt.yscale("log") -plt.plot(tr,abs(xe-np.array(xs[:-1])),label="Euler") -plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label="RK4") -plt.legend() -plt.show() -plt.close() - -def AB4(x0,m=4): - xsAB = [x0] - x = x0 - fs = [ 0.0 for i in range(m)] - for i,t in enumerate(tr): - if len(xsAB) < m : #RK4 - f1 = f(x,t) - f2 = f(x+0.5*h*f1, t+0.5*h) - f3 = f(x+0.5*h*f2, t+0.5*h) - f4 = f(x+h*f3, t+h) - x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0 - fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4 - else: - f1,f2,f3 = fs[1:] - f4 = f(x,t) - x += h *(-9*f1 +37*f2 -59*f3 +55*f4 )/24.0 - fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4 - xsAB += [x] - return xsAB - -xsAB4 = AB4(x0) -#描画 -fig = plt.figure(figsize=(10,3)) -plt.xlabel("t");plt.ylabel("abs. diff.") -plt.yscale("log") -plt.plot(tr,abs(xe-np.array(xs[:-1])),label="Euler") -plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label="RK4") -plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label="AB4") -plt.legend() -plt.show() -plt.close() - -def ABM(x0,m=4): - xsABM = [x0] - x = x0 - fs = [ 0.0 for i in range(m)] - for i,t in enumerate(tr): - if len(xsABM) < m : #RK4 - f1 = f(x,t) - f2 = f(x+0.5*h*f1, t+0.5*h) - f3 = f(x+0.5*h*f2, t+0.5*h) - f4 = f(x+h*f3, t+h) - x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0 - fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4 - else: - f1,f2,f3 = fs[1:]; f4 = f(x,t) - ## 予測子 - xp = x + h *(-9*f1+37*f2-59*f3+55*f4) / 24.0 - f5 = f(xp,t+h) - ## 修正子 - x += h *(f2 -5*f3 +19*f4 +9*f5 )/24.0 - fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4 - xsABM += [x] - return xsABM - -xsABM = ABM(x0) -fig = plt.figure(figsize=(10,3)) -plt.xlabel("t");plt.ylabel("abs. diff.");plt.yscale("log") -plt.plot(tr,abs(xe-np.array(xs[:-1])),label="Euler") -plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label="RK4") -plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label="AB4") -plt.plot(tr,abs(xe-xsABM[:-1]),label="ABM4") -plt.legend();plt.show();plt.close() diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_14_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_14_0.png deleted file mode 100644 index 775659cb..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_14_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_16_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_16_0.png deleted file mode 100644 index ded1e78b..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_16_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_19_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_19_0.png deleted file mode 100644 index 2fb88c31..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_19_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_27_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_27_0.png deleted file mode 100644 index dd667d42..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_27_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_32_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_32_0.png deleted file mode 100644 index 056b2065..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_ODE_32_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA.ipynb deleted file mode 100644 index 26a0800d..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA.ipynb +++ /dev/null @@ -1,1338 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dG3tCL-_aQHA" - }, - "source": [ - "# 主成分分析" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bzqUoCdAaRxG" - }, - "source": [ - "このノートブックでは主成分分析(principal component analysis, PCA)を説明する。 \n", - "基礎の理解に重点を置くため、scikit-learnなど既存のライブラリにあるPCA関数を利用するだけではなく、 \n", - "定式化とnumpyを用いた実装を行う。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "70ilJPZVd6LC" - }, - "outputs": [], - "source": [ - "from matplotlib import pyplot as plt\n", - "import numpy as np" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WEJasJ_KbKVJ" - }, - "source": [ - "## 主成分分析とは?" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "U6D19ywlbNFz" - }, - "source": [ - "まず主成分分析とはなんだろうか? \n", - "\n", - "Wikipediaには\n", - ">相関のある多数の変数から相関のない少数で全体のばらつきを最もよく表す \n", - "主成分と呼ばれる変数を合成する多変量解析の一手法\n", - "\n", - "とある。\n", - "\n", - "具体例を考えてみよう。 \n", - "ある集団200人の身長($x$)と体重($y$)のデータが下のように \n", - "得られているとしよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "id": "YZT6a_-cd5lG", - "outputId": "ce4dfd59-4bc4-427d-c990-fb89f88afc40" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_6_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "mean = [165, 68]\n", - "mvec = [0,0]\n", - "cov=np.array([[1,0.8],[0.8,1.0]])\n", - "np.random.seed(1234)\n", - "x=[]; y=[]; n=200\n", - "for i in range(n):\n", - " tx,ty = np.random.multivariate_normal(mvec,cov)\n", - " x += [ mean[0] + 8*tx]\n", - " y += [ mean[1] + 6*ty]\n", - "x=np.array(x);y=np.array(y)\n", - "xm = np.mean(x);ym = np.mean(y)\n", - "xp = np.arange(140,190,1); yp = np.corrcoef(x,y)[0,1] * (xp-xm) + ym\n", - "\n", - "fig = plt.figure()\n", - "plt.xlim(140,190); plt.ylim(40,100)\n", - "plt.xlabel(\"height [cm]\")\n", - "plt.ylabel(\"weight [kg]\")\n", - "plt.scatter(x,y)\n", - "plt.plot(xp,yp,color=\"red\",linestyle=\"dotted\")\n", - "plt.show();plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RxtGVOUQeVpB" - }, - "source": [ - "上では\"何らかの方法で\"データの分布に沿った直線を描いてみた。 \n", - "\n", - "この赤色の線を\"体の大きさ\"とでも呼ぶことにすると、 \n", - "元々は身長(x)と体重(y)の2つの量によってこの集団のデータを表現していたが、 \n", - "集団に属する個人をこの\"体の大きさ\"という1つの量で \n", - "大雑把に指定(あるいは特徴づけ)できそうなことがわかる。\n", - "\n", - "主成分分析は**高次元のデータを特徴づける少数の\"軸方向\"を見つけて \n", - "その新たな軸に沿った値(主成分)でデータを表現し \n", - "データを低次元空間で近似する方法**と言える。\n", - "\n", - "\n", - "人間が視覚的に理解できる情報は、3次元までである。 \n", - "一方でデータを分析していると、多次元(4~数十など)のデータを扱うことが度々あるが、 \n", - "主成分分析などを用いて特徴を抽出することで解釈がしやすくなったり、 \n", - "大量のデータがあったときその冗長性を削減することができる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LwJ96CHthWmK" - }, - "source": [ - "## PCAの定式化\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iDqwKCP325Hl" - }, - "source": [ - "主成分分析の大雑把なモチベーションがわかったところで \n", - "上の軸方向/主成分の決め方を定式化しておこう。 \n", - "\n", - "主成分を決める方針は主に、[主成分の分散を最大化する方針]と \n", - "[情報量削減(主成分軸への距離の二乗和)の最小化]の2つがある。 \n", - "以下では、前者を採用することにしよう。\n", - "\n", - "\n", - "$p$次元の量を持つデータが$N$個観測されているとする→$\\{ x_{ni}\\} (n=1,...,N, i=1,....p)$ \n", - "このとき$p$個の各変数について、平均値を$\\bar{x}_i = \\frac{1}{N} \\sum_{n=1}^N x_{ni} $で定義する。\n", - "\n", - "このとき、$p$次元の成分それぞれの共分散を行列にもつ共分散行列${\\bf C}$($p\\times p$行列)は \n", - "$\n", - "{\\bf C} = \\frac{1}{N} \\sum^N_{n=1,N} ({\\bf x}_n - {\\bf \\bar{x}})\\cdot ({\\bf x}_n - {\\bf \\bar{x}})^T\n", - "$ \n", - "とかける。 \n", - "\n", - "次に、各データを成分にもつ行列\n", - "$\n", - "{\\bf X} = \n", - "\\begin{pmatrix}\n", - "x_{11} & x_{12} & ... & x_{1p} \\\\\n", - "x_{21} & x_{22} & ... & x_{2p} \\\\\n", - "\\vdots & \\vdots &\\ddots & \\vdots \\\\ \n", - "x_{n1} & x_{n2} & ... & x_{np} \n", - "\\end{pmatrix}\n", - "$\n", - "と \n", - "成分が1の$N$次元列ベクトル$1_N$で以下の($N\\times p$)行列を定義する: \n", - "$\n", - "\\tilde{{\\bf X}} = {\\bf X} - 1_N {\\bf \\bar{x}}^T\n", - "$\n", - "\n", - "これを用いて、もとの共分散行列を書き換えると...\n", - "$ {\\bf C} = \\frac{1}{N} \\tilde{{\\bf X}}^T \\tilde{{\\bf X}}$とかける。\n", - "\n", - "次にデータ集合をある$p$次元の係数ベクトル${\\bf u}$で$p$次元空間上に射影する:\n", - "$\n", - "{\\bf s}_n = {\\bf u}^T \\cdot ( {\\bf x}_n - {\\bf \\bar{x}})\n", - "$ \n", - "これを全データ点($n=1,2,...,N$)に対して行って$s_n$を縦に並べると$\n", - "{\\bf S} = \\tilde{{\\bf X}} {\\bf u}\n", - "$と書くことができる。\n", - "\n", - "\n", - "\n", - "このとき、適当な係数ベクトル${\\bf u}$のもとでの射影方向の分散は \n", - "$\\frac{1}{N}\\sum^N_{i=1} |{\\bf s}_i|^2 = \\frac{1}{N} ({\\bf u}^T\\tilde{{\\bf X}}^T) (\\tilde{{\\bf X}}{\\bf u}) = {\\bf u}^T {\\bf C} {\\bf u}\n", - "$\n", - "となる。\n", - "\n", - "今考えたい問題は、この分散を最大化するような射影${\\bf u}$を見つけることと言い換えられる。\n", - "\n", - "加えて、以下ではそのような射影として${\\bf u}^T \\cdot {\\bf u}=1$という条件を課すことにする。 \n", - "($p$次元空間での正規直交基底間の変換を探すことに対応)\n", - "\n", - "そのためには$J({\\bf u}) = {\\bf u}^T {\\bf C} {\\bf u} - \\lambda ({\\bf u}^T\\cdot {\\bf u}-1)$の最大化を考えれば良い(ラグランジュ未定乗数法) \n", - "$\\frac{\\partial J}{\\partial {\\bf u}} = 2 {\\bf C} {\\bf u} - 2\\lambda{\\bf u}=0 $から、今解きたい最適化問題は固有値問題: \n", - "${\\bf C} {\\bf u} = \\lambda{\\bf u}$に帰着されることがわかる。\n", - "\n", - "\n", - "この表式と上の分散の式から\n", - "$\\frac{1}{N}\\sum^N_{i=1} |{\\bf s}_i|^2 = \\lambda$となり \n", - "**未定乗数$\\lambda$がいま最大化したい分散に対応している**ことがわかる。 \n", - "\n", - "最大固有値$\\lambda_1$に属する固有ベクトルを第1主成分ベクトルと呼ぶ。 \n", - "第2主成分からは同様にして、第1主成分ベクトルと直行する固有ベクトルを考えれば \n", - "分散を大きくする軸を順番に決定することができる。\n", - "\n", - "\n", - "また、$\\frac{\\lambda_i}{\\sum^p_i \\lambda_i}$を$i$番目の寄与率と呼び \n", - "各主成分が元のデータに含まれる特徴をどの程度表現しているか \n", - "あるいは幾つ主成分を保持しておけば元のデータに含まれる特徴を十分に表現(近似)できるのかの指標として用いられる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H3O1n9lz4XUZ" - }, - "source": [ - "## sklearnライブラリを使う方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nzN4jD9e4dAO" - }, - "source": [ - "irisデータを使ってsklearnで主成分分析をやってみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Zv70QfNg4aRG" - }, - "outputs": [], - "source": [ - "from sklearn import datasets\n", - "dataset = datasets.load_iris()\n", - " \n", - "target_names = dataset.target_names\n", - "targets = dataset.target \n", - "feature_names = dataset.feature_names\n", - "features = dataset.data" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "czUhoCKO5OVh" - }, - "source": [ - "このデータには、3種類('setosa,versicolor,virginica)のアヤメについて \n", - "がく片の長さ・幅と花弁の長さ・幅のデータが入っている。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "mm9pfNPO5AAF", - "outputId": "fea74b6f-38d5-4454-e6c2-7636921675df" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['setosa' 'versicolor' 'virginica']\n" - ] - } - ], - "source": [ - "print(target_names)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 206 - }, - "id": "bB57ea0d5dDH", - "outputId": "38f05195-5869-4f7f-ae6d-9fc3ec78b600" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)target
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
\n", - "
\n", - " \n", - "\n", - " \n", - "\n", - " \n", - "
\n", - "
\n" - ], - "text/plain": [ - " sepal length (cm) sepal width (cm) ... petal width (cm) target\n", - "0 5.1 3.5 ... 0.2 setosa\n", - "1 4.9 3.0 ... 0.2 setosa\n", - "2 4.7 3.2 ... 0.2 setosa\n", - "3 4.6 3.1 ... 0.2 setosa\n", - "4 5.0 3.6 ... 0.2 setosa\n", - "\n", - "[5 rows x 5 columns]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import pandas as pd\n", - "from pandas import DataFrame\n", - "df = DataFrame(features, columns = feature_names)\n", - "df['target'] = target_names[targets]\n", - "df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7PGbM_BA5sdr" - }, - "source": [ - "\n", - "- がくの長さ/sepal length (cm)\n", - "- がくの幅/sepal width (cm)\n", - "- 花弁の長さ/petal length (cm)\n", - "- 花弁の幅/petal width (cm)\n", - "\n", - "の4次元のデータで、可視化して理解することは難しい。 \n", - "そこで、このデータを3次元/2次元に落とし込んで理解することを目指す。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 654 - }, - "id": "knCm13FX6b3H", - "outputId": "5f95b71a-b7ff-4eed-df6b-8fa9a98834d1" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "固有値 [4.22824171 0.24267075 0.0782095 ]\n", - "固有ベクトル [[ 0.36138659 -0.08452251 0.85667061 0.3582892 ]\n", - " [ 0.65658877 0.73016143 -0.17337266 -0.07548102]\n", - " [-0.58202985 0.59791083 0.07623608 0.54583143]]\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_17_1.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_17_2.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from sklearn.decomposition import PCA\n", - "import numpy as np\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from matplotlib import pyplot as plt\n", - "\n", - "# PCA関数の使用 (3次元)\n", - "pca = PCA(n_components=3)\n", - "pca.fit(features)\n", - "res = pca.fit_transform(features)\n", - "print(\"固有値\",pca.explained_variance_)\n", - "print(\"固有ベクトル\",pca.components_)\n", - "#描画\n", - "fig = plt.figure(figsize = (4, 4))\n", - "ax = Axes3D(fig) \n", - "for label in np.unique(targets):\n", - " p = ax.scatter(res[targets == label, 0],\n", - " res[targets == label, 1],\n", - " res[targets == label, 2],\n", - " marker = 'o', s = 20)\n", - "plt.show()\n", - "plt.close()\n", - "\n", - "# PCA関数の使用 (2次元)\n", - "pca = PCA(n_components=2)\n", - "pca.fit(features)\n", - "res = pca.fit_transform(features)\n", - "\n", - "#描画\n", - "fig = plt.figure(figsize = (4, 4))\n", - "plt.xlabel(\"PC1\"); plt.ylabel(\"PC2\")\n", - "for label in np.unique(targets):\n", - " plt.scatter(res[targets == label, 0],res[targets == label, 1],label=target_names[label])\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3O_gzsZv0ARL" - }, - "source": [ - "このように、4次元のデータを低次元に射影することで \n", - "3種類のアヤメの持つ特徴を可視化できるようになる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0Kfac71jDg_m" - }, - "source": [ - "## 実装してみよう\n", - "\n", - "sklearnなどのライブラリは非常に便利だが \n", - "中で行われている計算を確認するには \n", - "複雑に設計されたソースコードを読み解かなければならず \n", - "「本当に自身が意図した計算をやっているのか」が分かりづらい。\n", - "\n", - "ライブラリを「使えれば良い」と「中身を分かった上で使う」の間には \n", - "* 問題が起きたときの対処能力\n", - "* 自身で新規な手法を開発して実装する能力\n", - "\n", - "などなど、様々な面で決定的な差が生じる。\n", - "\n", - "\n", - "以下では、必要な計算をなるべくブラックボックスにしないで \n", - "PCAを実装してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 206 - }, - "id": "XzrwCPxiENxC", - "outputId": "547606c2-6165-4379-985e-6ebd9a1f3d17" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2
\n", - "
\n", - " \n", - "\n", - " \n", - "\n", - " \n", - "
\n", - "
\n" - ], - "text/plain": [ - " sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)\n", - "0 5.1 3.5 1.4 0.2\n", - "1 4.9 3.0 1.4 0.2\n", - "2 4.7 3.2 1.3 0.2\n", - "3 4.6 3.1 1.5 0.2\n", - "4 5.0 3.6 1.4 0.2" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#上のコードと同様 irisデータを取得\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "from pandas import DataFrame\n", - "from sklearn import datasets\n", - "dataset = datasets.load_iris()\n", - " \n", - "target_names = dataset.target_names\n", - "targets = dataset.target \n", - "feature_names = dataset.feature_names\n", - "features = dataset.data\n", - "\n", - "df = DataFrame(features, columns = feature_names) \n", - "df.shape\n", - "df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yvMc5aRnEzW9" - }, - "source": [ - "今のデータは、上の定式化におけるN=150, p =4の場合に相当する事がわかる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "bL_YdesrEh_Z" - }, - "outputs": [], - "source": [ - "N,p=df.shape\n", - "#データ行列の定義\n", - "X = df.values \n", - "\n", - "#p=1,2,3,4 各列の平均ベクトル(p×1行列)を定義\n", - "mv = np.array([ np.mean(X[:,i]) for i in range(p) ]).reshape(p,1) \n", - "\n", - "#共分散行列Cの計算\n", - "C = np.zeros((p,p)) # p×pのゼロ行列を作成\n", - "for i in range(N):\n", - " d = X[i,:].reshape(p,1) - mv \n", - " C += np.dot(d,d.T) / N " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HuxOkOthHxFz" - }, - "source": [ - "行列の固有値を求める部分の詳しい説明は、それだけでノートブックが複数必要なので \n", - "Numpyの中にある固有値・固有ベクトルを計算する関数```np.linalg.eig```を用いる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QqPxlliMIBYR", - "outputId": "6dabab37-e2b2-430d-bac4-8e5236d591de" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "固有値 [4.20005343 0.24105294 0.0776881 0.02367619]\n", - "固有ベクトル [[ 0.36138659 -0.08452251 0.85667061 0.3582892 ]\n", - " [-0.65658877 -0.73016143 0.17337266 0.07548102]\n", - " [-0.58202985 0.59791083 0.07623608 0.54583143]\n", - " [ 0.31548719 -0.3197231 -0.47983899 0.75365743]]\n" - ] - } - ], - "source": [ - "vals,vecs = np.linalg.eig(C)\n", - "print(\"固有値\",vals)\n", - "print(\"固有ベクトル\",vecs.T) #固有ベクトルは縦に並んでいることに注意" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MxWvorgrOokz" - }, - "source": [ - "sklearnで計算された```explained_variance_```(固有値に対応)=```4.22824171, 0.24267075, 0.0782095```と \n", - "わずかに値が異なっている。\n", - "\n", - "実はsklearnでは不偏分散が使われているため、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Xi7ViJPcI0Ub", - "outputId": "f725627e-41a2-4484-a772-cde66ab75df9" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[4.22824171 0.24267075 0.0782095 0.02383509]\n", - "[[ 0.36138659 -0.08452251 0.85667061 0.3582892 ]\n", - " [-0.65658877 -0.73016143 0.17337266 0.07548102]\n", - " [-0.58202985 0.59791083 0.07623608 0.54583143]\n", - " [ 0.31548719 -0.3197231 -0.47983899 0.75365743]]\n" - ] - } - ], - "source": [ - "#共分散行列Cの計算 (不偏分散, sklearnと整合)\n", - "C = np.zeros((p,p)) # p×pのゼロ行列を作成\n", - "for i in range(N):\n", - " d = X[i,:].reshape(p,1) - mv \n", - " C += np.dot(d,d.T) / (N-1) #分母 N → N-1\n", - "vals,vecs = np.linalg.eig(C)\n", - "print(vals)\n", - "print(vecs.T)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3jM5vMf-PMTg" - }, - "source": [ - "とすると、両者を整合させることができる。 \n", - "以降では、上の定式化を修正して不偏分散を用いることにしよう。\n", - "\n", - "このように、ライブラリのソースコードを読むか自身で実装した関数と比較することで初めて \n", - "「sklearnでは不偏分散が使われているんだな」ということが分かったりする。 \n", - "\n", - "細かな実装が式と整合しているかどうかを確かめるのは重要で \n", - "これを怠ると、再現性が損なわれたりバグの温床になる。 \n", - "\n", - "余談: \n", - "世の中でプログラムを書く人が全員「動けばいいや」の考えだと \n", - "それがいつかサービスやシステムを通して社会(や自分自身)に大きな不利益をもたらすかもしれない。 \n", - "(たとえば自動運転の車による事故などを想像してみよう)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sCnY12i_I0oo" - }, - "source": [ - "各データに対する第1主成分軸に沿った\"得点\"は、 \n", - "最大固有値に対応する固有ベクトル```vecs[:,0]```が \n", - "射影になっていることを思い出すと、内積を取ればよい。 \n", - "```vecs[0]```とすると0番目の行ベクトルが取られて誤りになるので注意!\n", - "\n", - "各点について第1主成分得点を計算してリストに詰めておこう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "s87q-rYSI5Pe" - }, - "outputs": [], - "source": [ - "PC1s = [ ]\n", - "for i in range(N):\n", - " x = X[i,:].reshape(p,1) - mv \n", - " u = vecs[:,0].reshape(p,1)\n", - " PC1 = np.dot(u.T,x)\n", - " PC1s += [PC1]\n", - " #print(\"i\",i, \"PC1\",PC1)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ahhgln0nJWyC" - }, - "source": [ - "同様にして" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "39Of18TJJXuy" - }, - "outputs": [], - "source": [ - "PC2s = [ ] \n", - "for i in range(N):\n", - " x = X[i,:].reshape(p,1) - mv \n", - " u = vecs[:,1].reshape(p,1)\n", - " PC2 = np.dot(u.T,x)\n", - " PC2s += [ PC2 ]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tDgcr88IU8gQ" - }, - "source": [ - "プロットしてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "uel1NAySJlIA", - "outputId": "36c11e0e-0709-49e3-9b59-c86ec0f82803" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_33_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "cols = [\"blue\",\"orange\",\"green\"]\n", - "\n", - "fig = plt.figure(figsize = (4,4))\n", - "plt.xlabel(\"PC1\"); plt.ylabel(\"PC2\")\n", - "for i in range(N):\n", - " x = PC1s[i]\n", - " y = PC2s[i]\n", - " plt.scatter(x,y,color=cols[targets[i]],alpha=0.4)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yFZRJdJIVDHD" - }, - "source": [ - "sklearnの出力と上下がひっくり返っている。 \n", - "yにマイナスをかけて向きをあわせてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "id": "EpFUgJ2tVUVP", - "outputId": "c85ae172-7208-492f-fb71-bdb828a4f06f" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_35_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize = (4, 4))\n", - "plt.xlabel(\"PC1\"); plt.ylabel(\"PC2\")\n", - "for i in range(N):\n", - " x = PC1s[i]\n", - " y = PC2s[i]\n", - " plt.scatter(x,-y,color=cols[targets[i]],alpha=0.4)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZLPdJtjsV6Tw" - }, - "source": [ - "sklearnと同じ結果を与える自作コードを作ることが出来ました。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "snHoZ1M0VbX0" - }, - "source": [ - "上の符号反転について:\n", - "\n", - "第2主成分に対応する固有ベクトルは、sklearnと自前関数で得られた値で符号が異なっている。 \n", - "今のように、分散を大きくする軸を見つける場合、 \n", - "当然軸の反転(固有ベクトル全体の符号)の自由度が残されている。 \n", - "実装によって符号が異なるのは、固有値問題を解く際に使用されているソルバー\n", - "におけるconventionの違いなどに由来している。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Oyz3uBo1Pa56" - }, - "source": [ - "# $\\clubsuit$ オートエンコーダ(自己符号化器)\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wlQDrQiuYVi2" - }, - "source": [ - "上で紹介したPCAは、式(or 直交変換の定義)からもわかるように \n", - "空間上に\"平坦に\"分布するデータの特徴を説明するのにはうってつけです。 \n", - "\n", - "一方、一般のデータは必ずしも直線的な分布を持っているわけではなく \n", - "空間上で曲がったり複雑な幾何学形状をしていてもおかしくありません。 \n", - "\n", - "そんなデータに対して、データの冗長性を削減したり特徴をとらえるための方法の一つが \n", - "以下で説明するオートエンコーダです。 \n", - "\n", - "最も基本的なオートエンコーダは隠れ層がくびれた \n", - "以下のようなニューラルネットワークで構成されます。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "LETpVaUGNKdH" - }, - "outputs": [], - "source": [ - "%%capture\n", - "#from keras.models import Sequential\n", - "#from keras.layers import Dense\n", - "!pip install ann_visualizer\n", - "from ann_visualizer.visualize import ann_viz\n", - "from graphviz import Source\n", - "from PIL import Image\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 595 - }, - "id": "RANsWPX9N7kg", - "outputId": "163b4d0d-dec5-46a7-bcd1-ed59f65ac78e", - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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w8QoAor/ZTD9MyAIAl5eXmzdupXIyEg+/PBDampqaO1ki5GREQ899BC7d+8mOzubMWPGkJWV1erztSdubm58/fXX7Ny5E3t7e1566SWefPJJjh49ikql6hQ26mgaPT09XF1deeKJJ9i0aRPXrl3j+PHjTJ48mejoaKZMmYKDgwNTp05l48aNlJdrZpC1zmRb7m2rjxfh12TI7uKBESoRTl+Hy8VQ10GrlzffR7lcTmpqKmvXrmX69Om4uLgwceJEjh8/zowZM/jvf/9LXl4e69atY8aMGbqwzi6Ctr7i6tWrGTZsGFu2bOG1115j//79zJs3r8OF382TDdrtDQ8//DC7du3C0tKy1c+YKIqcPXuWTz75BKVSyVdfffXnEn4Al2K75744iRSSzoOim4SydgDd8Kno2lRTQB6xXaqg+90hUkcZ2ZzsaEMeKCNGjODrr7/m3//+N+vXr6empqbV59LT0yMkJISoqCj09fUZMmQIcXFxnUZcDR48mC1btrBmzRrKy8t58sknWbhwIZcvX+5o03TcJTKZjMGDB/Pxxx9z/vx5UlJS+OSTTxBFkRdeeAFbW1uGDx/Oxx9/THJyMmp162eUGxoaSElJuefjkovhagnUdoNxX0+Aw+lQVNsx7ZeVlXH48GEWL15MaGgogYGBvPXWWygUCj766COSk5OJi4vjww8/ZOjQoTqx1wU5ePAgoaGh/POf/2wU86+++mqHFWpvisLCQt5++23eeustFi5cyKZNm9q8Jy8+Pp5///vfFBYW8n//93/06dOnnaztQiQnaGr8dTfUKki91H32MXYAOvHXiWighkquU0NRR5tyX1DRQCnXqOZGR5vywBAEgaeeeorFixezZMkS9u3b1yYBKAgCbm5uHD9+nH79+hEeHs6BAwc6hQAUBAEDAwOmT5/Ojh07WLJkCSdPnmTChAm88847FBYWdrSJOu4CbXinRCLBy8uLl156id27d5OXl8fPP/+Ml5cXn376Kb179yYwMJC//e1vREZGUl1dfdfPoUql4uLFiwwfPpx3330XxT3M4B7NgAo53SJtlFKEIxlQWKPJzXC/UalUXL58mRUrVjBhwgT8/PyYOnUqx44dY9SoUezZs4fs7Gz27dvHggULbklW1dqkVTo6htTUVKZMmcKUKVNwd3fnxIkTfP7557i7u3ea+6hWq0lJSeGFF15g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ztltrpxIc+OAtj1tn9hUe9XVTQ9y2r60qfa09jc3JjX3fWkFWFNov6/b2xNFsXElSKlUUlpaSl5eHiqViurqas6cOdPYd6jV6j8UFC2911TbLR13e3s3R/Jo32toaKC8vJz6+nrMzMxITEwkNTW1sS2JRIKRkVFjn3S7HTcnirq5PX19faqrq7l48SJGRkZ4eXmhVqvJz8+/pf++/dqkUinGxsaN57jZ/psnOm+/NiMjI/T09Br34GnPqe2LtZOnt9vfUt9vbGzcbF9sZGSERCJh48aN7N27957LOcmVKsa7O/DJiL6YG7Tdr5QKAp4WJoQ52bDzai49jAyY5uOEvuTO6AIXM+PG/5fpSTHX10cliijaO0RT36C99iT96dCJv06EFH30MEZAQGyHwKacGCjP1GT2dAwGa2/N6lvKbs0ewMF/bToEVEtVLtj1brMZjRiaQ//HjfG3HsCu97K4fv06EokEZ2dn1Go1u3btIjo6mr59+zJo0CCGDh2KnZ0dgiA0OTDB74NWU4NTSwOhSqVq8ZiW2mrO+fijAbKpgbWyspINGzYQHR2Nl5cXjz76KKampi1el/aczYWSaNuqqqriu+++4+zZs0yYMIHx48djbW3dpB0qlarxde0MYlO0JKhbcvaac8xub0utVnPu3DlOnDiBkZERw4YNw8PDA6lUikQiaRwob55dvVloah2lm23UHiuKInV1dbckGdE6aSqV6hZH7+YsiNpr1g702ve0YvpmZ+5mQVxfX994zTefT61WU1dX13hvb35PqVTe4lS2lJhDe123c/P5bqclUX7ztbXUlkQiaXSebkcrHm8/vzYku6KigpiYmCaPbY6ysjJOnTrFq6++SmatKWrHgZiGv4qetds9nedmRFGkIfsstfHbUJZmITbUoiy9hqiU3zGTLDG1w9B9CIhqGnLjEds4i94cP/77I7YVRFNXVU5NTU3j82hsbIxarebGjRucP3+elJQU5HL5PQsP7e+iqf5L+xw39V5zfY22vZb62Hvts//onNoIhqbOqa+v36wQ1iYmagptApymztnUpAz8vo+5ub1qTU0cae23smp65UMqlTaKCy1qtZq8vDwuXLhATk4OLi4uhIWF4eTkdMtxzW11aCl65GYxc/u1acVTS8c1xc1t1dbWsm7dOqKjowkPD2fKlCnN7kNvrp8TBKHZtq5evcq/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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_41_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "graph = temp = '''\n", - "... digraph G {\n", - "... \n", - "... graph[ fontname = \"Helvetica-Oblique\",\n", - "... fontsize = 20,\n", - "... label = \"\",\n", - "... size = \"15,30\" ];\n", - "... \n", - "... rankdir = LR;\n", - "... splines=false;\n", - "... edge[style=invis];\n", - "... ranksep= 1.4;\n", - "... {\n", - "... node [shape=circle, color=chartreuse, style=filled, fillcolor=chartreuse];\n", - "... x1 [label=1>];\n", - "... x2 [label=2>]; \n", - "... x3 [label=3>]; \n", - "... x4 [label=4>]; \n", - "... x5 [label=5>]; \n", - "... x6 [label=6>]; \n", - "... }\n", - "... {\n", - "... node [shape=circle, color=dodgerblue, style=filled, fillcolor=dodgerblue];\n", - "... a12 [label=1>];\n", - "... a22 [label=2>];\n", - "... a32 [label=3>];\n", - "... a42 [label=4>];\n", - "... }\n", - "... {\n", - "... node [shape=circle, color=coral1, style=filled, fillcolor=coral1];\n", - "... O1 [label=1>];\n", - "... O2 [label=2>]; \n", - "... O3 [label=3>]; \n", - "... O4 [label=4>];\n", - "... O5 [label=5>]; \n", - "... O6 [label=6>]; \n", - "... }\n", - "... {\n", - "... rank=same;\n", - "... x1->x2->x3->x4->x5->x6;\n", - "... }\n", - "... {\n", - "... rank=same;\n", - "... a12->a22->a32->a42;\n", - "... }\n", - "... {\n", - "... rank=same;\n", - "... O1->O2->O3->O4->O5->O6;\n", - "... }\n", - "... l0 [shape=plaintext, label=\"layer 1 (input layer)\"];\n", - "... l0->x1;\n", - "... {rank=same; l0;x1};\n", - "... l1 [shape=plaintext, label=\"layer 2 (hidden layer)\"];\n", - "... l1->a12;\n", - "... {rank=same; l1;a12};\n", - "... l3 [shape=plaintext, label=\"layer 3 (output layer)\"];\n", - "... l3->O1;\n", - "... {rank=same; l3;O1};\n", - "... edge[style=solid, tailport=e, headport=w];\n", - "... {x1; x2;x3;x4;x5;x6} -> {a12;a22;a32;a42};\n", - "... {a12;a22;a32;a42} -> {O1,O2,O3,O4,O5,O6};\n", - "... }'''\n", - "\n", - "dot = Source(graph)\n", - "dot.format = 'png'\n", - "dot.render('neural_network_01', view=False) \n", - "\n", - "im = Image.open(\"neural_network_01.png\")\n", - "plt.figure(figsize = (20,10))\n", - "im_list = np.asarray(im)\n", - "plt.imshow(im_list)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nC35twUKT29_" - }, - "source": [ - "上には、入出力の次元が6で、隠れ層が1つ(ノード4)の場合のニューラルネットワークの図を描きました。\n", - "オートエンコーダではこのようなニューラルネットワークのパラメータを出力$y$が$x$にできるだけ一致するよう学習させるということを考えます。\n", - "\n", - "入力層から隠れ層への信号の伝播を符号化(エンコード)と呼び隠れ層から出力層への信号の伝播を復号化(デコード)と呼びます。\n", - "それぞれを別々に眺めるとエンコーダ部分はもとの入力の情報を圧縮するような働きをしているとみなせますし、一方デコーダ部分は一度圧縮した情報をもとに元の信号を再構成するような働きをします。\n", - "\n", - "オートエンコーダはPCAを特殊な場合として含むためPCAの拡張とみなすことができます。 \n", - "詳しくは記載しませんが、活性化関数を恒等変換にとって重み行列を直交行列に取り二乗誤差関数を最小化する表式を書き下すとPCAの表式が現れます。\n", - "\n", - "上では単純な順伝播型のニューラルネットワークを描きましたがオートエンコーダを構成するアーキテクチャは上記のような単純なANNに限らず畳み込みニューラルネットワークを用いた畳み込みオートエンコーダなども知られています。\n", - "\n", - " " - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_PCA.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA.txt deleted file mode 100644 index c4fa9095..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA.txt +++ /dev/null @@ -1,237 +0,0 @@ -from matplotlib import pyplot as plt -import numpy as np - -mean = [165, 68] -mvec = [0,0] -cov=np.array([[1,0.8],[0.8,1.0]]) -np.random.seed(1234) -x=[]; y=[]; n=200 -for i in range(n): - tx,ty = np.random.multivariate_normal(mvec,cov) - x += [ mean[0] + 8*tx] - y += [ mean[1] + 6*ty] -x=np.array(x);y=np.array(y) -xm = np.mean(x);ym = np.mean(y) -xp = np.arange(140,190,1); yp = np.corrcoef(x,y)[0,1] * (xp-xm) + ym - -fig = plt.figure() -plt.xlim(140,190); plt.ylim(40,100) -plt.xlabel("height [cm]") -plt.ylabel("weight [kg]") -plt.scatter(x,y) -plt.plot(xp,yp,color="red",linestyle="dotted") -plt.show();plt.close() - -from sklearn import datasets -dataset = datasets.load_iris() - -target_names = dataset.target_names -targets = dataset.target -feature_names = dataset.feature_names -features = dataset.data - -print(target_names) - -import pandas as pd -from pandas import DataFrame -df = DataFrame(features, columns = feature_names) -df['target'] = target_names[targets] -df.head() - -from sklearn.decomposition import PCA -import numpy as np -from mpl_toolkits.mplot3d import Axes3D -from matplotlib import pyplot as plt - -# PCA関数の使用 (3次元) -pca = PCA(n_components=3) -pca.fit(features) -res = pca.fit_transform(features) -print("固有値",pca.explained_variance_) -print("固有ベクトル",pca.components_) -#描画 -fig = plt.figure(figsize = (4, 4)) -ax = Axes3D(fig) -for label in np.unique(targets): - p = ax.scatter(res[targets == label, 0], - res[targets == label, 1], - res[targets == label, 2], - marker = 'o', s = 20) -plt.show() -plt.close() - -# PCA関数の使用 (2次元) -pca = PCA(n_components=2) -pca.fit(features) -res = pca.fit_transform(features) - -#描画 -fig = plt.figure(figsize = (4, 4)) -plt.xlabel("PC1"); plt.ylabel("PC2") -for label in np.unique(targets): - plt.scatter(res[targets == label, 0],res[targets == label, 1],label=target_names[label]) -plt.legend() -plt.show() -plt.close() - -#上のコードと同様 irisデータを取得 -import numpy as np -import matplotlib.pyplot as plt -import pandas as pd -from pandas import DataFrame -from sklearn import datasets -dataset = datasets.load_iris() - -target_names = dataset.target_names -targets = dataset.target -feature_names = dataset.feature_names -features = dataset.data - -df = DataFrame(features, columns = feature_names) -df.shape -df.head() - -N,p=df.shape -#データ行列の定義 -X = df.values - -#p=1,2,3,4 各列の平均ベクトル(p×1行列)を定義 -mv = np.array([ np.mean(X[:,i]) for i in range(p) ]).reshape(p,1) - -#共分散行列Cの計算 -C = np.zeros((p,p)) # p×pのゼロ行列を作成 -for i in range(N): - d = X[i,:].reshape(p,1) - mv - C += np.dot(d,d.T) / N - -vals,vecs = np.linalg.eig(C) -print("固有値",vals) -print("固有ベクトル",vecs.T) #固有ベクトルは縦に並んでいることに注意 - -#共分散行列Cの計算 (不偏分散, sklearnと整合) -C = np.zeros((p,p)) # p×pのゼロ行列を作成 -for i in range(N): - d = X[i,:].reshape(p,1) - mv - C += np.dot(d,d.T) / (N-1) #分母 N → N-1 -vals,vecs = np.linalg.eig(C) -print(vals) -print(vecs.T) - -PC1s = [ ] -for i in range(N): - x = X[i,:].reshape(p,1) - mv - u = vecs[:,0].reshape(p,1) - PC1 = np.dot(u.T,x) - PC1s += [PC1] - #print("i",i, "PC1",PC1) - -PC2s = [ ] -for i in range(N): - x = X[i,:].reshape(p,1) - mv - u = vecs[:,1].reshape(p,1) - PC2 = np.dot(u.T,x) - PC2s += [ PC2 ] - -cols = ["blue","orange","green"] - -fig = plt.figure(figsize = (4,4)) -plt.xlabel("PC1"); plt.ylabel("PC2") -for i in range(N): - x = PC1s[i] - y = PC2s[i] - plt.scatter(x,y,color=cols[targets[i]],alpha=0.4) -plt.show() -plt.close() - -fig = plt.figure(figsize = (4, 4)) -plt.xlabel("PC1"); plt.ylabel("PC2") -for i in range(N): - x = PC1s[i] - y = PC2s[i] - plt.scatter(x,-y,color=cols[targets[i]],alpha=0.4) -plt.show() -plt.close() - -%%capture -#from keras.models import Sequential -#from keras.layers import Dense -!pip install ann_visualizer -from ann_visualizer.visualize import ann_viz -from graphviz import Source -from PIL import Image -import matplotlib.pyplot as plt -import numpy as np - -graph = temp = ''' -... digraph G { -... -... graph[ fontname = "Helvetica-Oblique", -... fontsize = 20, -... label = "", -... size = "15,30" ]; -... -... rankdir = LR; -... splines=false; -... edge[style=invis]; -... ranksep= 1.4; -... { -... node [shape=circle, color=chartreuse, style=filled, fillcolor=chartreuse]; -... x1 [label=1>]; -... x2 [label=2>]; -... x3 [label=3>]; -... x4 [label=4>]; -... x5 [label=5>]; -... x6 [label=6>]; -... } -... { -... node [shape=circle, color=dodgerblue, style=filled, fillcolor=dodgerblue]; -... a12 [label=1>]; -... a22 [label=2>]; -... a32 [label=3>]; -... a42 [label=4>]; -... } -... { -... node [shape=circle, color=coral1, style=filled, fillcolor=coral1]; -... O1 [label=1>]; -... O2 [label=2>]; -... O3 [label=3>]; -... O4 [label=4>]; -... O5 [label=5>]; -... O6 [label=6>]; -... } -... { -... rank=same; -... x1->x2->x3->x4->x5->x6; -... } -... { -... rank=same; -... a12->a22->a32->a42; -... } -... { -... rank=same; -... O1->O2->O3->O4->O5->O6; -... } -... l0 [shape=plaintext, label="layer 1 (input layer)"]; -... l0->x1; -... {rank=same; l0;x1}; -... l1 [shape=plaintext, label="layer 2 (hidden layer)"]; -... l1->a12; -... {rank=same; l1;a12}; -... l3 [shape=plaintext, label="layer 3 (output layer)"]; -... l3->O1; -... {rank=same; l3;O1}; -... edge[style=solid, tailport=e, headport=w]; -... {x1; x2;x3;x4;x5;x6} -> {a12;a22;a32;a42}; -... {a12;a22;a32;a42} -> {O1,O2,O3,O4,O5,O6}; -... }''' - -dot = Source(graph) -dot.format = 'png' -dot.render('neural_network_01', view=False) - -im = Image.open("neural_network_01.png") -plt.figure(figsize = (20,10)) -im_list = np.asarray(im) -plt.imshow(im_list) -plt.show() -plt.close() diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_17_1.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_17_1.png deleted file mode 100644 index 20c72c4f..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_17_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_17_2.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_17_2.png deleted file mode 100644 index 651db5cd..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_17_2.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_33_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_33_0.png deleted file mode 100644 index df9d7013..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_33_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_35_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_35_0.png deleted file mode 100644 index e9b13c08..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_35_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_41_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_41_0.png deleted file mode 100644 index e8e81e00..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_41_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_6_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_6_0.png deleted file mode 100644 index b7545bfd..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_PCA_6_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Pandas.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Pandas.ipynb deleted file mode 100644 index 142cd735..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Pandas.ipynb +++ /dev/null @@ -1,1359 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "g05kSZSuyD8r" - }, - "source": [ - "# Pandasの使い方 (基礎)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "NnDUb09nyHXf" - }, - "source": [ - "```Pandas```は、データ分析のためのライブラリで \n", - "統計量を計算・表示したり、それらをグラフとして可視化出来たり \n", - "前処理などの地道だが重要な作業を比較的簡単に行うことができます。\n", - "\n", - "\n", - "まずはインポートしましょう。```pd```という名前で使うのが慣例です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "G0LxApMex5f6", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import pandas as pd " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q-qC7xkDhU5A" - }, - "source": [ - "pandasでは主に```Series```と```DataFrame```の2つのオブジェクトを扱います。 \n", - "SeriesはDataFrameの特殊な場合とみなせるので、以下ではDataFrameのみ説明することにします。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-1ut22WgzFeQ" - }, - "source": [ - "## DataFrame型" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "A-RriyHt1r-p" - }, - "source": [ - "DataFrameはExcelシートのような二次元のデータを表現するのに利用され \n", - "各種データ分析などで非常に役にたちます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ubw2JSMmzCkX", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "from pandas import DataFrame" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "oeBpZK4l7knI" - }, - "source": [ - "以下の辞書型をDataFrame型のオブジェクトに変換してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HKPVuPjz7jmb", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "data = { '名前': [\"Aさん\", \"Bさん\", \"Cさん\", \"Dさん\", \"Eさん\"],\n", - " '出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'],\n", - " '生年': [ 1998, 1993,2000,1989,2002],\n", - " '身長': [172, 156, 162, 180,158]}\n", - "df = DataFrame(data)\n", - "print(\"dataの型\", type(data))\n", - "print(\"dfの型\",type(df))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5F90_vjr8ukA" - }, - "source": [ - "jupyter環境でDataFrameを読むと、\"いい感じ\"に表示してくれる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "8VZZ6asj8qie", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BkqFef0A83To" - }, - "source": [ - "printだとちょっと無機質な感じに。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xiIqLRFG82BW", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "print(df)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vn8s-8VR7b6Q" - }, - "source": [ - "```info()```関数を作用させると、詳細な情報が得られる。 \n", - "列ごとにどんな種類のデータが格納されているのかや、\n", - "メモリ使用量など表示することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2KsTF1d17anv", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.info()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-TsUcNTsBIIi" - }, - "source": [ - "## DataFrameの要素を確認・指定する方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6ChkvnngBLb_" - }, - "source": [ - "index: 行方向のデータ項目(おもに整数値(行番号),ID,名前など) \n", - "columns: 列方向のデータの項目(おもにデータの種類) \n", - "をそれぞれ表示してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "YkQCL0ay59o8", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.index" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WNqLrkQ35-4O", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-MtegVlt60qr" - }, - "source": [ - "行方向を、整数値(行数)ではなく名前にしたければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "aE51PtdW6pKE", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "data1 = {'出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'],\n", - " '生年': [ 1998, 1993,2000,1989,2002],\n", - " '身長': [172, 156, 162, 180,158]}\n", - "df1 = DataFrame(data1)\n", - "df1.index =[\"Aさん\", \"Bさん\", \"Cさん\", \"Dさん\", \"Eさん\"]\n", - "df1" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LaFJVeL27NqY" - }, - "source": [ - "などとしてもよい。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_uFFuzQM8FoQ" - }, - "source": [ - "### 特定の列を取得したい場合" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oQ9hZkVx8K-p", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"身長\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zn3WJ4_5946D" - }, - "source": [ - "とする。 \n", - "以下の方法は非推奨とする。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "3VyUAqQs9596", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.身長" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uK8zkK3h8cpY" - }, - "source": [ - "値のリスト(正確にはnumpy.ndarray型)として取得したければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "tozKlT028hfi", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"身長\"].values" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "87TOA6-e8j8v", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"出身都道府県\"].values" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Yh97e7y58yHY" - }, - "source": [ - "などとすればよい。\n", - "\n", - "慣れ親しんだ形に変換したければ、リストに変換すればよい\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2Uh6YGih5FjE", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "list(df[\"出身都道府県\"].values)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WfpujEkA5BSD" - }, - "source": [ - "ある列が特定のものに一致するもののみを抽出するのも簡単にできる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "qlFGoUdc8zPn", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[df[\"出身都道府県\"]==\"Tochigi\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ItbqbBdn9HG0" - }, - "source": [ - "これは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ubs3Zbjj9KA9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"出身都道府県\"]==\"Tochigi\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bUB1Puao9LqO" - }, - "source": [ - "が条件に合致するかどうかTrue/Falseの配列になっていて、 \n", - "df[ [True/Falseの配列] ]とすると、Trueに対応する要素のみを返す \n", - "フィルターのような役割になっている。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4xcTwpmcf3WK" - }, - "source": [ - "### 列の追加" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Hznr0hZMghcK", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#スカラー値の場合\"初期化\"のような振る舞いをする\n", - "df[\"血液型\"] = \"A\"\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1ved-4XAgMvq", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#リストで追加\n", - "df[\"血液型\"] = [ \"A\", \"O\",\"AB\",\"B\",\"A\"]\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S_I81w5L-UOE" - }, - "source": [ - "### 特定の行を取得したい場合" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "he5uTk3H-kMs" - }, - "source": [ - "たとえば、行番号がわかっているなら、```iloc```関数を使えば良い" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "kbxrpQ1E-k8F", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.iloc[3]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2998C5BK_Wut" - }, - "source": [ - "値のみ取得したければ先程と同様" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "6HoJX4h__Uj3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.iloc[3].values" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4gwiSube_ax9" - }, - "source": [ - "また、以下のような使い方もできるが" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4oabG7uA-TyS", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[1:4] #1から3行目まで" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hbFfX303_eVc" - }, - "source": [ - "```df[1]```といった使い方は出来ない。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "oH1A89pw_s6b" - }, - "source": [ - "### より複雑な行・列の抽出" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vxd7k3f3AJjj" - }, - "source": [ - "上にならって、2000年より前に生まれた人だけを抽出し" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rDrnJUg9_w1Q", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[ df[\"生年\"] < 2000 ]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iZrMq16v__fV" - }, - "source": [ - "さらにこのうち身長が170cm以上の人だけがほしければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "d6q2DR7nAYEv", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[(df[\"生年\"] < 2000) & (df[\"身長\"]>170)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-b36txVaA7fQ" - }, - "source": [ - "などとすればよい。 \n", - "他にも```iloc```,```loc```などを用いれば \n", - "特定の行・列を抽出することができる\n", - "\n", - "* ```iloc```は番号の指定のみに対応\n", - "* ```loc```は名前のみ\n", - "\n", - "**欲しい要素の数値もしくは項目名のリスト**を \n", - "行・列の2つついて指定してやればよい。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xZhc6nlDBXJH", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.iloc[[0], [0]] #0行目,0列目" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "i-W-XTw9Bz5-", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#スライスで指定することもできる\n", - "df.iloc[1:4, :3] #1-3行目かつ0-2列目 (スライスの終点は含まれないことに注意)\n", - "\n", - "#スライスの場合は、 1:4が[1,2,3]と同じ働きをするので、括弧[]はいらない" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "acMQBcZw5hmv" - }, - "source": [ - "```loc```を使う場合は、indexの代わりに項目名で指定する。\n", - "\n", - "※今の場合、行を指定する項目名が既に整数値なので \n", - "インデックスと見分けが付きづらいことに注意" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "JLlD6iUvCH-q", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.loc[1:4,[\"名前\",\"身長\"]] " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "y3rZAq4rCTSh", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.loc[[1,2,3,4],\"名前\":\"生年\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WzV2r0oPA82E" - }, - "source": [ - "といった具合。\n", - "\n", - "```loc```を使う場合、1:4や[1,2,3,4]は \n", - "indexのスライスではなく、項目名を意味し \n", - "Eさんのデータも含まれている事がわかる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "py5Dt6wY10pB" - }, - "source": [ - "## Webページにある表をDataFrameとして取得する" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s7XShK0B15-t" - }, - "source": [ - "```pandas```内の```read_html```関数を用いれば、 \n", - "Webページの中にある表をDataFrame形式で取得することもできます。\n", - "\n", - "以下では例としてWikipediaの[ノーベル物理学賞](https://ja.wikipedia.org/wiki/%e3%83%8e%e3%83%bc%e3%83%99%e3%83%ab%e7%89%a9%e7%90%86%e5%ad%a6%e8%b3%9e)のページにある、受賞者一覧を取得してみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WQG0tt0q2Hj-", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "url = \"https://ja.wikipedia.org/wiki/%e3%83%8e%e3%83%bc%e3%83%99%e3%83%ab%e7%89%a9%e7%90%86%e5%ad%a6%e8%b3%9e\"\n", - "tables = pd.read_html(url)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xLVtylYB2Uow", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "print(len(tables))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yBghdSUU2XdQ" - }, - "source": [ - "ページ内に、21個もの表があることがわかります。 \n", - "(ほとんどはwikipediaのテンプレート等)\n", - "\n", - "たとえば、2010年代の受賞者のみに興味がある場合は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "nf2JwszO2nBM", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df = tables[12]\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "O6bVMFaNKeUT" - }, - "source": [ - "## Pandasで複雑なエクセルファイルを操作する" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KBgNqsmGKjvm" - }, - "source": [ - "Pandasにはread_excel()という関数が用意されていて、 \n", - "多数のシートを含むようなエクセルファイルを開くことも出来る。\n", - "\n", - "まずは必要なモジュールをインポートしよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "hBKVdR2zKxe_", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "from pandas import DataFrame" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "34iZ93suY1nz" - }, - "source": [ - "今まではGoogle Driveにいれたファイルを読み出していたが、 \n", - "Webから直接xlsxファイルを読み込んでみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2yR7aEeImkAl", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "url = \"https://www.mext.go.jp/content/20201225-mxt_kagsei-mext_01110_012.xlsx\"\n", - "input_file = pd.ExcelFile(url)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YEsLWG0mY8z-" - }, - "source": [ - "ブック内のシートの一覧は以下のように取得できる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "VJv-enRZTxUt", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "sheet_names = input_file.sheet_names\n", - "print(\"pandas: シート名\",sheet_names)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Tn6Lq7UhT1ZX" - }, - "source": [ - "シートを指定するのは、インデックスかシート名の文字列で行う。\n", - "\n", - "\"1 穀類\"を使うことにして、 \n", - "pandasにあるread_excel関数を使ってみよう。 \n", - "read_excel関数の最初の引数にはパスの他に、urlも取れる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "07xxSw7nVdK2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df = pd.read_excel(url,sheet_name=\"1穀類\")\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xew_ouFxVnLl" - }, - "source": [ - "同じものが得られている。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pPBxyiV2oVKV" - }, - "source": [ - "### データの整形\n", - "\n", - "次に、今取得したデータフレームのままでは少々扱い辛いので\"整形\"を考える。 \n", - "というのも前から4行ほど表示してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NKcdOLCMV3qM", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[0:4] " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CULET-99WJ3D" - }, - "source": [ - "最初の4行ほどに栄養素等の情報が入っているのだが、 \n", - "セルが結合されたりしているため、所々にNaNが入っていたりして見辛い。\n", - "\n", - "(碁盤目の構造を破壊してしまうため「セルの結合」は機械的な処理と \n", - "やや相性が悪く、プログラミングを用いたデータ分析では嫌われる)\n", - "\n", - "各省庁の公開データのフォーマットの統一化は今後に期待することにして... \n", - "まず以下の項目に該当する列だけを抽出する事を考える。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Jhdp9z7cZm97", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "targets = [\"食品名\", \"エネルギー\",\"たんぱく質\", \"脂質\", \"炭水化物\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zGrqpS-6jhaK" - }, - "source": [ - "該当するデータがどの行・列に格納されているかをコードで指定するのは、 \n", - "前述のファイル構造の事情からやや面倒くさい。 \n", - "\n", - "以下では、その場しのぎ的ではあるが、 \n", - "興味のある量が何番目かを指定してまとめてみることにしよう。\n", - "\n", - "そのために、1-2行目の要素を表示してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "yZ-IVG2Ma30o", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#1-2行目(エクセルだと2行目)の要素から\n", - " #半角空白, 全角空白(\\u3000)や改行コード\\nを取り除いたリストを作って表示してみる\n", - "\n", - "for idx in range(1,3):\n", - " tmp = df.iloc[idx].values\n", - " tlist = list(map( lambda s: str(s).replace(\"\\u3000\",\"\").replace(\"\\n\",\"\").replace(\" \",\"\"),tmp))\n", - " print(tlist)\n", - "# for target in targets:\n", - "# tlist.index(target)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KEaiS1EAiWDY" - }, - "source": [ - "セルの結合により、興味のあるデータがどの列に記述されているかは注意が必要。 \n", - "\n", - "実際、[エネルギー]という文字列は1行目の6列目(それぞれインデックスでいうと0,5)で取得できるが、 \n", - "kJ単位になっていて、kcal単位でほしければ、7列目に格納された値が必要になる。 \n", - "\n", - "また、エクセルファイルを見るとわかるように、たんぱく質・脂質・炭水化物はさらに細分化されており、 \n", - "O列R列など、細かい列の分割が挿入されている. ~~これは大変困る~~\n", - "\n", - "単純にたんぱく質・脂質・炭水化物と表記されている列のインデックスはそれぞれ9,12,20となる。 \n", - "食品名が格納されている列(3)、エネルギー[kJ単位] (6)と合わせて確認してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "U-Hzne6VgWf3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "targets = [3,6,9,12,20]\n", - "df.iloc[:,targets]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LNk4oIypmpTe" - }, - "source": [ - "もう少し整形したいので、新しいデータフレームのコラムを書き換える。\n", - "\n", - "食品名等が記載されているのは10行目以降なので、それを使い \n", - "columnを指定する。\n", - "\n", - "さらに、食品名に含まれる余分な文字コードも削除しておこう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ZWkaRBZynATr", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "ndf = df.iloc[:,targets] \n", - "ndf = ndf.iloc[10:,:]\n", - "ndf.columns=[\"食品名\",\"エネルギー(kcal)\",\"たんぱく質(g)\",\"脂質(g)\",\"炭水化物(g)\"]\n", - "ndf[\"食品名\"] = ndf[\"食品名\"].str.replace(\"\\u3000\",\" \") # 食品名の中にある余分な全角空白(\\u3000)を半角スペースに置き換える\n", - "ndf" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B5FN5MFcmECG" - }, - "source": [ - "次に、食品名の一覧を取得した後、興味のあるもの(日常的に馴染みのあるもの)だけを \n", - "ピックアップしてみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_SI2LaqPmOK3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "print(list(ndf[\"食品名\"]))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bT1akYL_pBXs" - }, - "source": [ - "この中から...\n", - "* こむぎ[パン類]食パンリッチタイプ\n", - "* こむぎ[パン類]フランスパン\n", - "* こめ[水稲軟めし]精白米\n", - "* そばそばゆで\n", - "* こむぎ[うどん・そうめん類]うどんゆで\n", - "\n", - "のみに興味があれば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "F2ouiW-jqpjm", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tshokuhin = [\"こむぎ [パン類] 食パン リッチタイプ\",\"こむぎ [パン類] フランスパン\",\"こめ [水稲軟めし] 精白米\", \"そば そば ゆで\", \"こむぎ [うどん・そうめん類] うどん ゆで\"]\n", - "ndf[ ndf[\"食品名\"].isin(tshokuhin)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Jt2aLH3jrWSY" - }, - "source": [ - "などとする。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "So7B0ZauwuyT" - }, - "source": [ - "'6野菜類'でも同様に..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "aYwheZeiw0Oe", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df6 = pd.read_excel(url,sheet_name=\"6野菜類\")\n", - "df6.iloc[:,[3,6,9,12,20]]\n", - "ndf6 = df6.iloc[:,[3,6,9,12,20]] \n", - "ndf6 = ndf6.iloc[10:,:]\n", - "ndf6.columns=[\"食品名\",\"エネルギー(kcal)\",\"たんぱく質(g)\",\"脂質(g)\",\"炭水化物(g)\"]\n", - "ndf6[\"食品名\"] = ndf6[\"食品名\"].str.replace(\"\\u3000\",\" \") \n", - "ndf6" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "di6-R2kIx88j" - }, - "source": [ - "特定のキーワードを含むものを全て取得して、 \n", - "食品名を細かく指定したり、対応する行番号のインデックスを取得できたりする" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "XDN2orG9xP_j", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "kyabetu = ndf6[ndf6[\"食品名\"].str.contains('キャベツ')]\n", - "kyabetu" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "QboGKX8bx0yB", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tomato = ndf6[ndf6[\"食品名\"].str.contains('トマト')]\n", - "tomato" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ojENrlEZGepm" - }, - "source": [ - "DataFrame同士を結合してまとめるなどして \n", - "扱いやすいデータに整形していく.\n", - "\n", - "縦方向の結合はpandasのconcat(concatenateの略)を使う。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SKoSAqvNGkrt", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tdf = pd.concat([kyabetu, tomato])\n", - "tdf" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "U6LFpNLN2sZh" - }, - "source": [ - "## DataFrameのcsv/Excelファイルへの書き出し" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tbZn9qyB2xTS" - }, - "source": [ - "DataFrameオブジェクトは、```pandas```内の関数を用いれば、 \n", - "簡単にcsvやExcelファイルとして書き出すことができます。\n", - "\n", - "先程の、2010年代のノーベル物理学賞受賞者のデータを、 \n", - "Google Driveにファイルとして書き出してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "CKxWkUsW3Hi2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gsr83KhA3Hww" - }, - "source": [ - "**csvとして書き出す場合**\n", - "\n", - "適当にパスを指定して、DataFrameオブジェクトに \n", - "```to_csv```関数を作用させます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jLS-3W8F27Xe", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.to_csv(\"/content/drive/My Drive/AdDS2021/pd_write_test.csv\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "k6XnW1V93mik" - }, - "source": [ - "**Excelファイルとして書き出す場合**\n", - "\n", - "この場合も同様で、```to_excel```関数を用います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "A4A69Qb83vkk", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.to_excel(\"/content/drive/My Drive/AdDS2021/pd_write_test.xlsx\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jrfPQzrq4GJK" - }, - "source": [ - "上記の関数内で文字コードを指定することもできます。 \n", - "例: ```encoding=\"utf-8_sig\"```, ```encoding=\"shift_jis\"```" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_Pandas.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Pandas.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Pandas.txt deleted file mode 100644 index 6a047233..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_Pandas.txt +++ /dev/null @@ -1,143 +0,0 @@ -import pandas as pd - -from pandas import DataFrame - -data = { '名前': ["Aさん", "Bさん", "Cさん", "Dさん", "Eさん"], - '出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'], - '生年': [ 1998, 1993,2000,1989,2002], - '身長': [172, 156, 162, 180,158]} -df = DataFrame(data) -print("dataの型", type(data)) -print("dfの型",type(df)) - -df - -print(df) - -df.info() - -df.index - -df.columns - -data1 = {'出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'], - '生年': [ 1998, 1993,2000,1989,2002], - '身長': [172, 156, 162, 180,158]} -df1 = DataFrame(data1) -df1.index =["Aさん", "Bさん", "Cさん", "Dさん", "Eさん"] -df1 - -df["身長"] - -df.身長 - -df["身長"].values - -df["出身都道府県"].values - -list(df["出身都道府県"].values) - -df[df["出身都道府県"]=="Tochigi"] - -df["出身都道府県"]=="Tochigi" - -#スカラー値の場合"初期化"のような振る舞いをする -df["血液型"] = "A" -df - -#リストで追加 -df["血液型"] = [ "A", "O","AB","B","A"] -df - -df.iloc[3] - -df.iloc[3].values - -df[1:4] #1から3行目まで - -df[ df["生年"] < 2000 ] - -df[(df["生年"] < 2000) & (df["身長"]>170)] - -df.iloc[[0], [0]] #0行目,0列目 - -#スライスで指定することもできる -df.iloc[1:4, :3] #1-3行目かつ0-2列目 (スライスの終点は含まれないことに注意) - -#スライスの場合は、 1:4が[1,2,3]と同じ働きをするので、括弧[]はいらない - -df.loc[1:4,["名前","身長"]] - -df.loc[[1,2,3,4],"名前":"生年"] - -url = "https://ja.wikipedia.org/wiki/%e3%83%8e%e3%83%bc%e3%83%99%e3%83%ab%e7%89%a9%e7%90%86%e5%ad%a6%e8%b3%9e" -tables = pd.read_html(url) - -print(len(tables)) - -df = tables[12] -df - -import pandas as pd -from pandas import DataFrame - -url = "https://www.mext.go.jp/content/20201225-mxt_kagsei-mext_01110_012.xlsx" -input_file = pd.ExcelFile(url) - -sheet_names = input_file.sheet_names -print("pandas: シート名",sheet_names) - -df = pd.read_excel(url,sheet_name="1穀類") -df - -df[0:4] - -targets = ["食品名", "エネルギー","たんぱく質", "脂質", "炭水化物"] - -#1-2行目(エクセルだと2行目)の要素から - #半角空白, 全角空白(\u3000)や改行コード\nを取り除いたリストを作って表示してみる - -for idx in range(1,3): - tmp = df.iloc[idx].values - tlist = list(map( lambda s: str(s).replace("\u3000","").replace("\n","").replace(" ",""),tmp)) - print(tlist) -# for target in targets: -# tlist.index(target) - -targets = [3,6,9,12,20] -df.iloc[:,targets] - -ndf = df.iloc[:,targets] -ndf = ndf.iloc[10:,:] -ndf.columns=["食品名","エネルギー(kcal)","たんぱく質(g)","脂質(g)","炭水化物(g)"] -ndf["食品名"] = ndf["食品名"].str.replace("\u3000"," ") # 食品名の中にある余分な全角空白(\u3000)を半角スペースに置き換える -ndf - -print(list(ndf["食品名"])) - -tshokuhin = ["こむぎ [パン類] 食パン リッチタイプ","こむぎ [パン類] フランスパン","こめ [水稲軟めし] 精白米", "そば そば ゆで", "こむぎ [うどん・そうめん類] うどん ゆで"] -ndf[ ndf["食品名"].isin(tshokuhin)] - -df6 = pd.read_excel(url,sheet_name="6野菜類") -df6.iloc[:,[3,6,9,12,20]] -ndf6 = df6.iloc[:,[3,6,9,12,20]] -ndf6 = ndf6.iloc[10:,:] -ndf6.columns=["食品名","エネルギー(kcal)","たんぱく質(g)","脂質(g)","炭水化物(g)"] -ndf6["食品名"] = ndf6["食品名"].str.replace("\u3000"," ") -ndf6 - -kyabetu = ndf6[ndf6["食品名"].str.contains('キャベツ')] -kyabetu - -tomato = ndf6[ndf6["食品名"].str.contains('トマト')] -tomato - -tdf = pd.concat([kyabetu, tomato]) -tdf - -from google.colab import drive -drive.mount('/content/drive') - -df.to_csv("/content/drive/My Drive/AdDS2021/pd_write_test.csv") - -df.to_excel("/content/drive/My Drive/AdDS2021/pd_write_test.xlsx") diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition.ipynb deleted file mode 100644 index fd08dabc..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition.ipynb +++ /dev/null @@ -1,505 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "HLZRySda6U-g" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LGVnPDHJw9_I" - }, - "source": [ - "# 特異値分解と情報削減\n", - "\n", - "このノートブックでは、行列の特異値分解と、その応用例として画像データの\"低ランク近似\"について説明する。\n", - "\n", - "関連する線形代数の知識、とくに諸定理の証明については、適宜線形代数の教科書等を参照すること。\n", - "\n", - "*純然たる*(≒形式的な?)線形代数の教科書には意外とSVDは載っていなかったりするので、工学であるとか数値計算など、応用を意識した教科書を参照するのが良い。\n", - "\n", - "Webで無料のものが良ければ、Mathematics for Machine Learningもいいかもしれない \n", - "※[著者らのページのリンク](https://mml-book.com)からPDFがダウンロードできる。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aakEipnQ6lik" - }, - "source": [ - "## 特異値分解 (Singular Value Decomposition, SVD)\n", - "\n", - "特異値分解は、線形代数の中でも応用上非常に重要である。 \n", - "本ノートで説明するような画像処理や情報削減の方法として用いられるだけでなく、量子多体系(物性や素粒子・原子核などの物理学,量子化学などが対象とする系)の計算手法である密度行列くりこみ群(DMRG)法など、自然科学分野の理論計算などの根幹にもなっている汎用性の高い手法である。\n", - "\n", - "\n", - "**特異値分解定理**: \n", - "任意のランク$r=[0,\\min(m,n)]$の$m \\times n$行列$A$は\n", - "- $m \\times m$のユニタリ行列 $U$\n", - "- $m \\times n$の対角行列$\\Sigma$ \n", - "- $n \\times n$のユニタリ行列 $V$\n", - "\n", - "を用いて$\n", - "A = U \\Sigma V^\\dagger\n", - "$\n", - "と分解できる。 \n", - "上は$A$が複素行列の場合の表記で、実行列の場合は、$U,V$は直交行列であり、随伴操作(複素共役かつ転置)$\\dagger$は転置$T$となり、対角行列$\\Sigma$の各成分は非負となる。 \n", - "\n", - "以下では、特に断らない限り実行列の場合のみを考える。 \n", - "$\\Sigma$の各対角成分を**特異値**と呼び、慣例的に$\\sigma_1 \\geq \\sigma_2 \\geq ... \\geq \\sigma_r \\geq 0$となるよう並べられる。 \n", - "※一般の$m \\neq n$の場合は長方行列となるので、上での\"対角行列\"は正確には、対角ブロックとゼロ行列ブロックを含むような行列を指す。\n", - "\n", - "$m (3, 3) (3,) (3, 3)\n", - "特異値 => [15.52961563 3.39284204 1.82199376]\n", - "USVd => [[1. 9. 6.]\n", - " [2. 4. 6.]\n", - " [3. 8. 3.]]\n", - "USVd@rank2 => [[2.27571625 8.70200595 5.94787683]\n", - " [1.22318899 4.18145497 6.03173892]\n", - " [2.04499401 8.22307947 3.0390196 ]]\n", - "||A-USVd||_F 1.8219937599763407\n", - "USVd@rank1 => [[2.27747026 8.71226915 5.9321303 ]\n", - " [1.46888535 5.61909622 3.82600794]\n", - " [1.84748528 7.06739811 4.81214776]]\n", - "||A-USVd||_F 3.8511087217022104\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "from scipy import linalg\n", - "from numpy.linalg import svd, matrix_rank\n", - "\n", - "# 適当な3×3行列(rank(A)=3)を作成して表示\n", - "A = np.array([ [1,9,6],[2,4,6],[3,8,3] ])\n", - "print(\"A\\n\",A, \"\\nrank\", matrix_rank(A))\n", - "\n", - "# SVD(特異値分解)を実行\n", - "U, Sigma, Vd = svd(A)\n", - "print('それぞれの行列(U,S,Vd)の形状を確認 =>', U.shape, Sigma.shape, Vd.shape)\n", - "print('特異値 => ', Sigma) #Sigmaは対角成分のみをベクトルのように持っている事がわかる。\n", - "\n", - "#積がもとのAと一致するかcheck\n", - "print(\"USVd =>\", np.dot(U, np.dot(np.diag(Sigma),Vd) ) )\n", - "\n", - "#Sigmaをrank2で近似してみる ≒ 行列の(2,2)成分を0にする\n", - "Sigma[2] = 0.0\n", - "USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) )\n", - "print(\"USVd@rank2 =>\", USVd)\n", - "print(\"||A-USVd||_F \", linalg.norm(A-USVd,\"fro\"))\n", - "#Sigmaをrank1で近似してみる ≒ 行列の(1,1)&(2,2)成分を0にする\n", - "Sigma[1] = 0.0\n", - "USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) )\n", - "print(\"USVd@rank1 =>\", USVd)\n", - "print(\"||A-USVd||_F \", linalg.norm(A-USVd,\"fro\"))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tvke5nx56FZ-" - }, - "source": [ - "確かに特異値分解ができているが、これだけではどんな恩恵があるのか、 \n", - "なぜ低ランク近似を考えるのかあまりピンとこないだろう。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xC5Pil9881f6" - }, - "source": [ - "## 画像データの特異値分解\n", - "\n", - "では次に行列として、より具体的なもの、画像を考えてみよう。画像データは\n", - "- 縦横に並ぶピクセルの数を行列の行と列の数に対応させる\n", - "- 各ピクセルの画素値(8ビット,グレースケールで表現するなら、0が黒255が白の256階調)を各\"番地\"での行列要素の値に対応させる\n", - "\n", - "ことで、自然と行列とみなすことができる。\n", - "\n", - "適当な写真をもってきて、簡単のためグレースケールに変換した後、特異値分解をしてみよう。\n", - "\n", - "宇都宮大学オリジナルキャラクター「宇~太」の写真を用いる" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "9vB1BQQd_QpL", - "outputId": "63d0181d-6f6e-4020-bba3-7f7b5c00a8c3" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2022-10-11 06:41:42-- https://raw.githubusercontent.com/SotaYoshida/Lecture_DataScience/main/notebooks/pic_for_notebook/u_ta.jpeg\n", - "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.108.133, 185.199.109.133, ...\n", - "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 146087 (143K) [image/jpeg]\n", - "Saving to: ‘u_ta.jpeg’\n", - "\n", - "\r", - "u_ta.jpeg 0%[ ] 0 --.-KB/s \r", - "u_ta.jpeg 100%[===================>] 142.66K --.-KB/s in 0.008s \n", - "\n", - "2022-10-11 06:41:43 (17.1 MB/s) - ‘u_ta.jpeg’ saved [146087/146087]\n", - "\n", - "sample_data u_ta.jpeg\n" - ] - } - ], - "source": [ - "import requests\n", - "from PIL import Image\n", - "from IPython.display import display\n", - "\n", - "!wget \"https://raw.githubusercontent.com/SotaYoshida/Lecture_DataScience/main/notebooks/pic_for_notebook/u_ta.jpeg\" -O u_ta.jpeg\n", - "# ls コマンドでファイルを表示\n", - "!ls " - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 280 - }, - "id": "A_fIQBqfL7de", - "outputId": "f8be541c-5c2e-4712-f514-9ea89f42657d" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_8_0.png" - } - }, - "output_type": "execute_result" - } - ], - "source": [ - "#画像ファイルを読み込み\n", - "img = Image.open('u_ta.jpeg')\n", - "gray_img = img.convert('L')\n", - "gray_img.save('u_ta_mono.jpeg')\n", - "gray_img = gray_img.resize((gray_img.width//3, gray_img.height//3)) #画像をリサイズ\n", - "gray_img " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "6-AHTquvMIVx", - "outputId": "af1d319f-76c4-4282-8631-bbd3164d9b90" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "full rank => 196\n", - "rank 9 Fnorm 3371.396392985502 # of m.e. 4743\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_1.png" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 19 Fnorm 1837.5080112082685 # of m.e. 10013\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAANgAAAEHCAAAAADpVNd/AABRKUlEQVR4nO39SbMkSZImBn7MLKJqZu89390jPPbIzMiqyqpGd3VPNxoAYYZmiOYyRLjggAN+G/4DbhgQDQiYwwxmBtMNdHdVduUaWbF7LO7P32ZmqirMHw4iastzj8hsAi4JpAaFuz8ze2rCyiy8fLyI/Nc4vETaPwhC2F4E57cBiYDUjxECEKQoQNSf6qfaDYQQYUAgoiXEQDfhwf3mXxCCIAFp/7VlCOpNufup3b99yXzt/9Uuvf3C/1auPxH2x3b9ibA/tutPhP2xXX8i7I/t+hNhf2zXnwj7Y7v+RNgf2/Unwv7Yrv/dEPZKiI1dmP6/+PqDb/SaRfw7X7cJe82X/zt8zdFHpb3E1777Q9f/Go/y+0VxxnXkNV8jIlK//3ixAvCIjj0ss0OG9i81QIa7T/LgN4//cfD5g7d+AMtBenXRMzQk9X+yrVXrrUV3xIrvYCMCIiQJFQEBU1X6ZhuQnMxEJFxMIKLCCA+KqohKkAwRNYbsH9q83vrVlENoqz6HA8r4CtlAOv5Rdu+TIo0uMEREVSBCgCTrzTMAYNguewUJ96AmVSmhqcsyrW+uXFLWbO7amQikXGvXd52UaXKnkpYEEQ5CZMczqejd/MQACR7wc4e/zSjgayi7zTEh5/uz3kEEFGnPMSAMQqAEEFpIysJIgOEhqsLoOjPxYbOZou+yWSjJGKQjgurbMXWLro9pcvoUfTZLYBnndcssrpwXUn++tSX20idNuH6IYwBChQQ0SAkAkKAg2tYQCUJFBUCMyYNYLkqJYATVTETTYmWxXV/elLzokoAhEKUDsUCXSxm322G5SAkSqoMLmVKIu81QKSE7pLSx6JWdzqON9aoiSLd2P4MUsO4XpQACFRCUgJCCoBAhIlL3vebOZPTiNOu6bEktlZuLl5dbWakmgjA6xaKURRKkCeGjsJP5CdGhTnh9XA0c5rxeQYCy2/czHdwxtMoVb2mQW4QRESJCFZKskigiEgiESAQQEKFK23VUU5oiSpHUnax6Q4zr6/PvXlwO6c6du8mMLlYIYyoUoYiogxFCiqiCDEFVLoL6uObHrAIqAEdTFzMjZ+2125M41MevEFY/x5n/M2Fq2N+OdROIiIgCasnXmQFJ6eTsbJUwTVdXL168uNxG13UrVwhpCDOKlSRhmqhETApp3Aw4xGwnUvN3Q0QoUIJ6rATrJ7hPEzTk/4CwY36hZQUEAqhGpQ2kEBQR5V4fEwixZL5ZmJhYf3a67DhtLr978fzl9YDUmYQbBa4CKCx5IJJBU/ESqiZQLQDCFZZ9No57sROpUth0IutigFARHhhSHjoCrxKG+ZmpzLqXQkTQhagmqOVOhAQRqqbj1ix30i1PFhbjzcXLb55frCftFotlRgSAUveEdhuHJ1FVMKKKukKq3MPa18q8VrQkDAAyDoSUR3LH15D1qvJo27MSVrcohVFtJ5SsnBOACAKqQiJbsm7RqQ83Fy/Pn5/fuPTLZZ+tSu3kIgDNthHuKmpgIUAG654FQkyaHZU5n9S+H0DMu6lqDIKcPbbXM+xVO4Z5Y6kr2MQ5XJspYzQHaBZ1UPrFKidLSct2ffHy/OJq49ItVotsSQgIp5ECUpIx3KEQTYi6Ig+KQCQ0h1cZkfmJgiRDAEZ1/drWA0jO6ThW5fwKx24bgFnfqLLKAcWDsX8dpKg2cSBD0mK1yEkU03BzeX7+8noTKfeLbJZyUgboxSTcQ7TQTOAgTEEBGAXa3JoU5JwFbPo9ql8hezFpokrOnNqz69jzOPqp/roAIqqq3tKMJagmWr2sxjAhgGxJRfqsJkIfbi7PX5xfbSbtF32XTVJSkBSJTJ/KlIVIAmeIiCGqvwKoqDKo3GkvVpcqlNSonnOjTNDcvAPCjljyWsJkVnkiqqKleuucggab3TYKq8eI1Kck0CRkMMr66uXLl1frgtT1i97MksZEMSgIOqeiShARbLZYpK6ajNitkQLUrwCCpEKlfXpO1s582P1OZekRYbcEca9nd6wVhreXmvJHACCQl9kA0RCwjMPlxfnL662L5a7ruqSicFcSVhngxTQYqKa/6Vc1VZB0BI+8hxpeNDeh7SYR7lZ5KHvVCB1RcoswNu9FQxkMVuYZJCW1g8w7AEC7ZRLQMAnLdn1z8fLl9cBkabHou1x5ojmbm4coFUwaDLKxKYQCmAkDO1bV7SNSteGOI3Hg5Up1HgW3GHhM2CshWgtJAm4kIIRl0Wxis5g2V1ssJwUhGijj5vry5cX1EJZy6vucVBnV6xbRMRmBCBVEjYgErLqHTREJQNGd9ydKkeqEtyBmp9mPgsxbPx4QdhhCCwFWiRAVBaBBICBAiM+OlAigAjHzYNA6HafN1fnFxc3gmvsORh89WerTKELLPR5kl6UuzjbTcOWlFEZM7kJCkjRjOXkjA9U7rcaKJDzIncvLWclX33cXi4nIIXVHHJvFOoBwCWYhnNRkkkmoRvXwzcxUYBZVF2Da3FxdXlyNzH3faSlBTV3S1K1OThb3ViynMkbYyWoa1ncEEJTt1cVNoU/oq6A6hSIASIbWgBYq6kyECFUVVSm3iL5SukcXmj7aERZHDFStCl1AukiRgEg2gRUPhlM0Qs2yqUBJB1hi2txcr9frkanv1F26btEpRrXu4b1Vd8L1dpHg3mcZJ7OAppxie3WzHTY3W49w1nhJq+EnWPVgSDM/VTHKjJdUlsWBpqfsEIyZsNdtv3qPCBQhoVCFCkiIikDUzEyECAZBK+OwubnZjLBkAqimJB5i/emdO30SBydqloGewjWF02OjcXriZVhf32zD3SA5+W6VQDMFgFIhsxqu3kj7+8Azbpb7iLBbNBFsN5kNFgCBqooqVESUam07RyCIMmyHYbsdvNqIZFAWsbw4u3d3pUAxgDBM07AEtQ/3Mjk0dQvEuP7uaouRUFPfP9mmpmZVWF2r6mztiZhdr3nzHRN2W52QZLWP1dMWtOBQVSEKIVUREFArijVOw2Y7jiUgrppScgRSXt25c7oQQqIGdCoxBUTMOp+iOKhqwsm77c3WvSAi7TzwowWBEfTZSnPvMbZ4ZlYg3x+PoflgRPOeGwgRNbjQukEpzSGp/PVShs12cijpUonVvDi5c+d00WlAAE2gUMkoDBeopeLh7qGar7XPm804eUQLlWTn/hAAQxgkSJ1RN8H8B/ZR9K3rVe8eWmMUSr21gHWbqlJVhJxREAqI8M3NejNtx4AAjHCl5uXZnTunfU5KNVA7kyhUTgwWiIglOrygqGbpu0UeYh1tkTtIDBLz82veVH29Ob6zo3+w9EPCbkHBUkUMUWVodqBIimqoqSBIMiI8pQ1j3H711cVGRLq+S2aKsUhaLO89OF0qNdEUk52gTMOiHzeJuqGOIYmAsEBLdHoypcjfjSOrm9XUYRUgCZgIZJL9a5wBmQNv5BUn+BW6qjwGRHwRAUZE3y/JSOqmIhR3RJmmIusv1j5uvhk319Yv71iXsiKoXXd6/8H9ZcIkPWNQlz4Y42q5GR15QwNBUTFhOKmWca42blzF226hVt0upozkECOrZwAyGBHVW5HddnnFV5RXCKvhjgjQhTPCuTANURMg6FHGoUzDOI7xzS8uyjRu3pRttoCZ0N0lp5O7d+8sOyOZuqGYqgR88lLEVS+pLAxSTYOCSThZ16Vx26/L7Pg051hETKikCtAwhKoraoAhPGCZ6E6NAEjHLCPJ6oCruAgKSME0ChRE0MtQps3N9Xo7jlO8/OKqlBL3utRlpY8FhPX92b27p302pY5jcpDCtRTB5DqhXIPOCIoQkqAClmlkOjG6MCKapGkyg5IQUYqkilkxKNSIBnnOLIO84nkc77EIksEWtrQoR32kKsAo03YzjuvLl9fbaSoYhlIc6uj6TqatE9YvTu89uH9nkVWFMfFOUg+LjYXJ5Mk5FJUIBiVcRKGJ4mWCWu4XIgI6yQggcnWVm9GpcVODBFvQOwdSu312QNixsqxYFCAwkZRzJxDRgAejuA+b9c12WF9drofioZAkBkspdcYBSWzR33v44N7pIgmA8MlppszDRDWO0olvJoMoJBAuBiCRXqbIyeB5HNIwFQ+RQEQD3sggtbqS9ak3jPAgJXUUygFAKjimjI2tBuaUOoGqlqBP43Yq65vr6812s1mPUxCWeglqt+zNxN1zWi7uvfHGg2XOEgVSPGpUIhMkK8JMOYFQRRR3gkoxeriH9BrejV22rUhEVIyn6sgIhLUgl5wZiPkDDba65SseE7Yz/SIwC2SIqek4jZv19Xa8vr6+2WzHKTwAFesSof1CJehTWDp99PTtJ3c1RKMwwhVh4Fi2KfeClMCIJIRqiAScIBeMIAmzvPJ+yqY6OhkBrcEk6Y6G/zWXCAAosU9iVO/kBwhTxcFjmFxF1AQxba6uXm6Gq+v1ZjsUSWIqmlJPiHZWChViy3tvvPX2m/dXZSLgJSA9AS+bKF3fu3cWhHUUQEw1SNJpLE6oqWpHzyqAFLZ1EmRE1FClRR1N+mKHWLeP+TFhx2HLTnYZFC8liTI4bm+uXl6db7fX6+24nSJbFlU16UXV0rQd2XXL1aM33n7r6b1VchGyuNtiOcVUxu20XCZz72SC5X5yOlQSwh0SQwShpgIRqDI8KGSEByihjICGHkSXuwAUe2AGDcjYE3YL9tHmWTModAdEZbq8ubq4ur4cps1QIiiaOlVVunYpG4bB8+Le3QdP33zy8DR7GaBKodhidTFwiuJni/Bhm2xK1mX6BE0pCUIBHymaaGjxc8p9UDwaDh0AqQo2TQKZQzYe+1LksVq8pe51hyxHUEqVh+23V1eX62FdIqCWBMnUTHRyzX1OQbeTB2+8+eTNR3cWOk3Fc28AInXpsylKoj6I9TQNfYqFmG2ihMJAd4iWEO1z4VSyCAGxLoIjwaieu4BmpHOnADBj0Jjls639iGOHBlqoczqCIqlsKO5enn92ebUuEZQwzZlifVIVFYwpGbh41N199ObbTx+epNiMjpxMJCcxPP+/f3Iz3nn7jVjmAd0N0zLZyA4lpphIqGquLnVElGwBUjLUdKDPPrWHUlrip6X7gzMazNlbFzXlgauf7GiHhdfnQTi4PcfSi5fzb8+vJ6iKiamoafXbkmqZDIp7d87uPbj3+PFKyzA4NWmEqIlvvvhv/tVVufvhn3/6znZIy5uBRcomW2fhnEiTEBMRAwJRoKh5YFMgiggDERooNNG6VUigytFcP9H+XX9rb81u5ceikFFde2ynG7oXj8mLU0TV1FQ1WUww0xwCBnHn6dO7pyf9asHtMBaIpQ7uhTFNL797uWZ3dXkxDLCgdiijK4OSCA8RRaFKEXMX67Vmq6BmuouRNVFJnwURhFR/qkWFTavgth3DrataFYHAUWq00mUzoCKcEFEzSkrWYaHW9cuHbz25s+zF6NNUQkxVSZ8inJpSD9lcPH/bqwKfNLQppVYDQ4YEOhINtAQhqlrtAWrtgqD6dDXybIApao6OM0j8e7x7rQk2JSyg2QCZ+pRQY7CKoIppTrlLq7Nl1y2WneVsVULEzCymmApVlV2fRbC+eHEDFU0RFE8uzTMno3pFjLGEcDI28YKa6bybKAbB3nOXfY6Ce5jx9nWLMLX2USEUyZYUkXJ66VMJ0BGEQFLKOedu+eTxWZ87XqkKghGFqtlUSimwpOH9MptO0+Zi0IzkTqKEKdD0eAuySBeVSiZa0JKSRwQZrBtsDqVnyvQgu1BpO7bItww0Zt+/EpZ6QGR151qGcaIXS6nLuV90fZdzf/L4/mmfckHXm9ALiZSyCcJrWQhtIQJieDkmKyImQTrNVKrnwBAoyEhKRYsWA7DUVaJCq8IPtkhxr/IP++cw65UDwvzwJ4ju8mtQmHUE0J3d0/VGUCR1i2XuVid3ThY559VJ33dmls1I0EVTNqsmUOBC6c6UQYw3mqVAzAOpVUyZAGRAtQZHjJqPVjBCRUVNgjW3HjpjiDtsf7/i3R+3CLuFBNf4mwDEQjUHgHy61aTKonmxOun6k3uP7vQ5p4V5NhM9kbFEMNT6bGzokwCiizs5ImR7DVOXrGPRvEM6RSIcMWNPgTAR1mImiJr4FE4NIPaL3qn4XdHcLta8FbYcS2KjqvrQ7gaB0JanBAVF++Xp6aI/vffgbJFSWsRaQSJjivDmf3HnZotqf9J58alcTS6eLKLYAgEEHUw13g+KSqgwyuz7iSjAkk1rKi52BWQ7VlH2dMlrCTtWHvPTCIio1/ojsX4JQULJ/cnZ6XJxevfeaZ9MF9MgjFBpMTsAMDyCEBVVM5wsPLYF29GVYhFThXQZDoqBEC2hFEJYRoZZ0obBqZnOMFytZNlXHDW525MlezGdCXvFV2QrUVR31tjA+pWKdFoWi9PTs+Xy5OzOqjPVhUqQIZ5NNQAyXDyiJT/MgJRykfDtugshIyJ8CgN8IixxBl8j1KJMoFtYS+mJqmkFAFwVOpNSf6dGZnu6ZLcLXy+KFRmFuENKaKZAZCGJ2+3UD+vTk9WyS4vlqjMB3ZbT6COulbTUBzFs67NWM9CH7WbMizQM8vW/fnjmLtcvz8e8hJmJ5NWjxyd919ngSbgtJ5oZHu6mogoQ2i0mgRaoFCoYrPUs0tCqI7Uht3QH0nSLMIWICYvG2K/uLiDAwnNKZ3rvZnO6ylkka2xBFetOY7NRvbnIp6vThW0uLzdY3l0VQZkYMV49//pqQiF+9V90y8vzm82bHONBjMMwRFo9fPLk6dvvPF6eLDIwrpKdXDnhUKtwj3RnZcuchVqC7gFRIdREW2/17Eu91o7ZMV2kqjhjcBdy0Ud4TABhi9zDIigM1LxmXvj1OLrmM9ecbbxeR9f13LAAsn3x7Ktn57/60izBznj54irdXeYFL7/1kP5sIesvfs3+5PSNf/bhgydniwU2kbcBFaerIAgG+uIQRfSi4UFI9ZJB7snY+VLHlKXb2fUgoKQOJQp8jAjm02XJ2hfp4KBIdGJiIlq260m603vxcn25kRLdWSfDzXp7/fLbrz///Nl1dAj4ySnyVNyYVYWWvEyb7cnCTvugv3z54s7q3v2fvPvn9zxuqEm1VPhJwOg5IZlwDKNH8aiwIyAisfN6pbn3R+riNkolEFJNwiy8Jusld1Q186qkpCK0BKYydH3Kw2cLUTHrVMrLi++ePfv806/ON0w5Q0MtpdW5esmrC7tztR2vT5aK2G4uIvW9UfTiO0ndv3zrn//1WV4lNZM9EkrNQ1GqTBMj3Iv7TJeKzn591XW1yvCAsFtbjKKqIpQs5bqIk8TlZdLFSepoyVqyTADienNqGhvRy7xYLnS4+ObzTz/59NnLaxfrckrJdBspp2Gbe0wX69P+5oYnXUyTM2WrJQTjRnJOn3z67W/feu+fqYhYspo3ggox+li8K+uu5lbnXRUurbB7X9x+y7s/3nIMqKoKJJtaY7KP/Wpx2uciSet9pwBEt2WlZRzv3X0e2FxefP3xbz/+8vnaFYtlziYkx2uTLtgPi6WVvF73FyEe4+BqFsVpyeROTirX529O3/H/IGBAxMQiQkSd9O00TWVblgRFgeBui+kOJuXOtH0fxxh1C0oS9QGRBRB2fX+20EJsCE0mEBW1ZFN4KZzyyYtvX3zx8e8+fXZRbHHSCcpk3SJVjMFZxHvhw0fLd96cTu5dirhzWp9/++3L602xp3kayjiub86frXsJFS+WtCZnzbo1gK11gVRd4ZqLbwCjzgicgCxHbm86uUVYVLOgBd043fQgULrksfF1ZwWWSEvJkqrGsN4WL9cyffzxpx9//Gwtq9Nljuin4hyG3PWLN/KiP3vYP/7rbly8k1flGne+stWiy5zW2+3V8y++/Pbb51frzXpjuP7i+kTVtIjlJEBEWZhyGnXRw3tluEdIcfcZEpY5MhOodMd77NiOkUGKmOUcoacLQkU79ndOtWiqQH+I011Vrm8eLofN9vJ/+LvPnp+/vC79YtlnM78oDssnD994+vTNN+7fWSwwmYzDUDYW28Wjcdy6B/rlnbfVt+e//Oby/PzPf9edb066pYiCELoioFkTluPEjoNvrNpgatajqqsWr1To5IAwv0WYGAnGILQYYWoq3E5JEs7oXRIRwCNGElfbnIfz7/7mv/z51HX2KKlPm6lL2q8evPOTn374ZEmU8uBsezlIArdnS18TZXJbZm7Wow8pIb2xmmL47tNxM9q4WpEitfIODkSBc3uNEPcCqSEDWI2S7FO6TdiORfGWgQ5CSRaI22YB0IPO3KVsqUwpqYKuHhHE+lO7ufjuu8vV3QsTTENxW91/8vjJm0/ffvrkLJVh8Mk3ZRxXN7Ay3NsOS1d7MTD1J/2CdPcYbqSzZXr6G1y4V3RBFDCIAeIeIjINWcMqTNJyLbvC1J0oSi30/l6OxWz3ItLNiSaIsDt78niBiYqYakHeFIRIfH3+zXfnF+r3YizFdfHgzXd/+pN3H62ymVzTx8G1bEe309Glu7+6uFktSrFeU7YokwNKsaWUyTnl1UDLgSCdyWoyqydwVtbOngRRGmUCMSFnQ94U4g/U3QNQrfi/l0ijmQokZHnSifvokwMKiGQJkOXZr78+v75x40109+89fPu999956/6JcZwmD1IinW7LVDicbILqnb64o9ZTzSRCzeiFce3uU2jHkAiKMYLhkkQoJuyW12kS7aYAWyNKRQWIkDkWezVquS2KM5wSRdinRQ4gfLxcUSWmllNEQBAe8eJ3v31xs9lEXpycPn7nR++///ThQst2cNbCpKTW680kFg/GoUgAN4uF5KCXoKQEUhTbItZbbNaTwqkqZqSDKoBKSFKKRGrg7xx7QWwXxwB4xT5/X5uViUK7Tp0EOW1TShBUMIoeoEfw6sXVzXYYl4/ffOuNN99+781HJ1bG7XYIyTlnUwnfiPUhZRpH64stCso1tTY3wUtQCO3M3MbLMfV1MSIkg6JSI1ADi6epWuLa7LXnAL7vejVV2/AI0zGlcIJIfdKUEDAQzgqLUUSCZXI8+ac/+/Dx3Tuny1y2k3tSF9UoVPrEPsRQnm+YTtaxyhrXK621kBIBVWEGS8mc0uldA+hzLg9aPSjtbJo4Nu7EDCqqHkYt5G0ab8NvwoAQmlOKRS8aACR3ZhUJjIgS0FqFsUqmkPTu/+UvHp/mRF9Pxaldz0592BRoJybhknyzyF0ex9wNkc7yNBWYAQwRFGWZ4uxsk07vamAPbdQ0e4QmjQh0jU+qqiKiM/lsKaVbdLzaKYGapRdTyQKpCTdGkQhWR4dQNRWRxeJ00ImPnj44WagWH0txaAIsyehDpNSZaIjQLcs0jGMK5F4nH5HFGF5lTVRP76xlsdztlorotPzr/KM2Tum+RqehGNUXPi6qerXjb87UM9RCSDIla00T9fEIVEVA61iK0y218l+IEuF0E6tlNwBpNY3sgyhErDpDqgIGjdFZor7142WcvZEOkTRBTRZo6gZHhYx1Z5Rrid5M1+s4dgvMqeVfcDCtO5sYHjy9fyZlitrMwhlQjlg++fU4Ubb9WUyQmEKTeKAEQiX3pqrdejP2uNwYY5zuroDCUaHGmEjJIlAGUv/Pn95g8WjFfa5ZkkSAlvIZdV2ia9A2dhnNmV2tJvN2AcsxnUEyghFqeTu93C40mT18YxnDZutlq6aSVAROd0/3JSJwfoMufBpcczYfS1DMKDmbpvL5y6svf/GF/NPHZ8sHp/3lZXfmBQIvYqs+RpdcwiIt308qohEMBEShZsLiQgla8RBpSeeK98982JVEgFF+GKUyCyACIhN6ZhFxKdubYXJYL0mhSoBOwmwoFB2+W/cohTklKeNI7RfGKaAyXn71t1+df/3sm/GTZf/ww3ffeuvu2d3znIqwQDj5GCaC4iiFJ7lmntXm3jBJIslyFEs6bedy11YQMcNu8wW5tcdua0VVoSgRalhAGaVcvuinEmraiypFULceJIlm63qPrTuTJfFp9Nwtk4+ji/r1s3/zbz65GE7ulOuX5YvfpHf/0Y+evpnu5Wy6jdgKA8kWProLHZpKDS1U4RFQmMIsc0pJtOwqZNna9Yhd9cdroOBXMY9cy32LWikMeoQHcqLWSnwXukuU4uEnp33WXK7dxGBwOHMnwqtNkaTr849/83e/ez5E6XvxSC+Giy8eP3j64/feenBytpxKUMqwYU5wTmKIKcgQhqpEzJyhExJ54TLnLWOuOprTFHMd8zFhtyFuihHCEj75hHCPyH1WpQmU4fSpuHJyJ+89/sZFy8X21Iz0KZD7NAWGLXLcfP3rf/nL70YuFrKSbdGu7/M3V7/jBx/85KP33zzpyhBqw/UaC0mYREJoDA0EQ0kBRCUEQek3oTNqE80EaE1BVmvUos4jwuw2YWEGgbJEmdQj5pKf9hglSghgEEo8PF1T7j/BJiVlBHI234adrsarr37581/8/dXytF/2z4uMHkXvj8NYhpu//5s33/vox2/cSyrppFy9OFuult2mrIdFNm0qQiCqIhIhDs9SrOn2qtqObVYFB/QHy/rIGCKpiHZmQXcSypJBEXqt8zdVd6gEh8WpR3r3zx+uWUARS+ITtPTl+cd/869+/a0v7640+WiCHIXTdS52l+Pnn//8X/34xx++cf9sdefk/HJLQpGw7SNmsppYRVAFFJZdoVuNsKuOrCX4QG1fvkXYsecRHjGlZMkU2VKAAul0H4qHh5iMhRDtHrwfL6P/6cPTNAxjSYkB65bx4suvfvXLX39+JacLDCq0PqCdbm4uH+mIVWzW1+df/OL9D997++nTO49l4s02T6dn69wWWi1woHW4ikgprUO19l3twd8DL5G1OPN7CavhM8noEnoBRJfTVk1zcmqNaRkhkmz55K8vbqJPcm1S6z9G02ybz3/xi19+cclVp/HC7pwid/piWCxLub57wnWvnej26+df/ObtDz744K0HZjENRZCzR420RCWCHqIRLK1/Z9KGYYtU7LPlzFoCvjmNB4SVW4Q5IMVdKQHvk4ims1xUVSXC6U4QHqIhdrKQRZHtRZykZe/ihYzNzbP////48TeDdhimfPbo3afT/7g+WZZ+sXzv5VplHEpon8p4dfPV37/59K33fvxotViG5Ykla11eaMV0IECEcizDvkMHrW6itUVVyJCMKD+EeQgdSo9A8OWZViV/ttxKqy+k0yM0akWT9KIo65vIy1Mtm3UJH87//jf/r19d66IvVzfy9j/8h//gnZvrf7MlZPmX/3n82+vnv/y759t0cnqPm4vn51+crd78px+99eTMeik9sxFRGBFaYxYh4aK5v5n2JZdoqSpVaZMBCNAd5XCTpXxMV5eLiofAYji1KEbIVqZhVI2piIiGWc4wIfE83XjE2b2X1/ClWS/D1Rd/97e//WWcrGR7vu4+/Gf/5794enrx7t9ur4fx27eWb90jz/+rn3/yzfUYp6fCq5dD+ublL9957633n2ZdyWVAQYmIGrKFhGvKIg8nMnRupkMEpTRvX6w6/DYD7zNhRwyjKEhoEGY5ZwYg5Uo4bEUKQ5ISZkZVhJdvmcTS3SdfXJbLwRDT1Zc//59+9cWz025TBn3nP/r3/8N/fOKbyweLm85k/Pxf66K78w9O/uHf/fzvv11PvZ1y6Jf+yZdnj9/4x3/29nsr+XYUVVWGQ9QELiT7TJyeOVyEtcETwdin2V3IUGWwRlwzYa+4VFYCStLMcoJISDDYKUUUEgRiqLUXZdw+7FPChT0oUwzj9vLLT3/x6cVYzheL0zd+/Fd/9dOny+3V5uqddy6GWPTrf/P0g6zDu3ff/9lvf/Xp803xrLnrXl6//Dz/5v1/7//WJ61pWjEJgCJJrCBpUPNU49yWyRSbNxgA1Lx23Er83aoJVhgLa51daCbIMISlRBelT85Cr4VmsUC3Mqxfru5juL749tnnv/viqxdXow5x58f/6J/87GmevhLHyVtPf1lK6uMCOZevsPjg7b/8/Lcff/r1i7Vf35ws03YYPn6+/vBs2aXmSFmAUFVVLQGfJLYgavCxBxPrEJ9qt33O7u8Iu1XnATE1J4Fa4NCKo8U0BPRSohTnQkUgXKgpiotMGK6/+e3Hv/vku8vNgLx4+h/85T/46FFar+VkqRKLMWK6WQwsW1nHYnXn4ds//eK3v/7ts+ffXqyfZqSujN99ee6PFG19RkBVRRChHsnayJRd7AKq6qwnm307zmgeex6W1aTWi7uXMoKEOUXBcIo76aWoWp2cklkw2Qlvhpff/vYXH3/27HKYxpP33/vopx++cw/bSU9PxNGvRhpGuboai5TYitjp6YM33/3RF88++/y5jONUKNNU3NkAqtrWhdp2KkiLPkmNmSsKV6WvBTdz6Hkr8XesPazOcwiBlO22YxBiYyE9Ss1chVdBpEBomBB9f3N5/uUXv/7Nl99dDJMt3/6rv/ro6Z1uUF3aiQ5D5PsYUsb45d//pHMkma6HvrMndz94ef7sk998/Hwatlm7s0UXtdWyta5p/RI1S/0y1UES9e09+Fv3T3MWf8gJFiBCBKIMDw2nCIJ1koGIwKEm4qOKCFXNQ3j1/KsvPv7kN19ebQacPPjLn/z1z97sfLTl6YnI9mYTD9+5/wKm0+f/9j8+De2E4/oK3enJ6dPp+ptf//9+9+ybl93iyZNVDrRATwIgFKFQMSTtbCQDbEXPLZ5Gpa2OhMGtHPTRjqNQ6pR3kGadBiHSKdWitcF5BBkhYmoLlSGw+frrTz/7+JNPzifKnfd/9NOffvTOsmw891nKsN6Mom+8/QUFuPzk4pGaJiK8OEvf5TOz9MFXz75D+tGTTirAg4ZQ1aSRCMUjWFAnm7RUBGJPWOXajB3MhB0nJdCKZYBplDkhpoW5BC1qs40CEYpAPpERzud/+9vffP3Ni4vS9/c/+vCnP3n/yb1u6qfw602UkjuuFz/51fW46Rcvnr3Tn4xjmYp0KjcXtujk3j8vV9dXLsunJ2UWrLqQoAYT3GRi0UADx3ZOPWfYWloN2LFLdYuuaOlqX19tboYWeTNIb3AXKoZLIZlLAPjmX3z62fnlEKv7P3rz3Z/86K3Hp1ZKqNKHwpwzxvyIa3fLcQUZNy7aGxhlCg21pS7uXG+tP7XBBNinzENZyxNMIuUaPrf6VzRPUnZlZQfMa4TdiqDbDqS7i6PVRYtKELPyF0gbGRPDUJwXn3757eUYy8dvv/3uux+8de+082EIVYEXQ4Rqvl9bKng5GiaklIRFoCoBLTI5J1GNoUs1KN4NjlKo1BqoTgmQoTvYcRej1DEFOBDD1xG2gyPDxSu8GpMAxWuNG5QUNs063oxecPP8/GobJ0/e++iD958+udsZvEwhqnVUS4B6b2mEp3KxMWvj41A9bMHEAtNkLGXOlbPNxahZm4CIZK0VvTKXU0La6KVG1S6f8j2EVZYxEEGPCIC+ddjEJMlaJwVFCTKmwQkpN5so/aP3f/qzH731YGVlwDiMTCIGNY0Q4Z1FckxpulgnA6qfYKKqUAwMbRkIh4jVXmvWMBOzgGQNIVkLxDBb6ZlnrV/7B/ZYDUoRPk6OKnxRNoNYkT5HnRvYhqUBMcEksFimLj1596d/8dN3Hi5tKoOXKVTNTINCKv1kmcexGG+ujfBgTF5iu0VOfbfqbAkApUhIjbIE3pZLQBgCqlVS1KT2ccrtyPLWbI/bSQlhABHbi4uNxItT0sM3pzkzLfrJRSAMUBB0R3eG8PL2P0mXy6c/+8v333ywknF9Oagtu+TDjUd+WDj28fJZvts/u3zgfxO40ZvrzVTo01CQrOtO79x5827//j95uuwuSA0U0KFmZlqG0kmgs7K6P7gzyBA1Y8yttXN/C0TTURL6trqXYBAxTiFTenknQdROn5iOMC1F0Sq0hbBaMR949z/9P0JPH9/punIVZVt0kZKRojGNdjVshotf/ouPy/1HOt29+RdX374bJVi8MPUmZfDfobtzcvIh/k8P+z6gAAmrdBE1DCs+DtbGTYZYTmqcIYEZvUKUH3Kpmi0QTQkdhjEBxPaaIpp1KjDVVIcGQCx1N9tCwfs/yyOST9ugWjY7GW/Wm+20vvn2u68+Ww/bcnUO5eJxV/JQyt1+sTCfhsk6i8mR3delPL+88No+K3OWSoSqMolgooR1QAmJQIRrpX/XUrArfD4g7NClonj7fH8ahVO3ygAEIZ5TLimRBarGEmIiIKdineqZb0afwnLfJ19fffP1J59+9d3VetiOo0Kz5Kfn48Ykl9HyYhGTCyhZxbRD0YhRVIaLm+6eVkigeh2qsrBhMpgMVHSqKqEWdXjKrBx3NeGog2lm6o7DFrIOKlNXAaeyMBDQMIjVL43QluouSOqpT2k9XrFYt0KUi6vvnn3xzbdffXc1SpetuGZNaTq/d5J1Gh6efj16XnWdctxOkTMI0+0EjeigpykbGvzEis2L1TJ3DL2IZhFXjyCizhfbEVbdsErCTNixLlGI1ur7zka9WpAMTptkyF1PAcIBjzK5M/qcAE7LJ9O5lvXVi2dfffH11y+uJg9NJzkrpnGaFKmT67vLzWXZ3jv92u+aRgmfUw9BzZq7O/cW6XRZEw61JJiilOJlkhRAlF4tclem4jG35GNPSbV4R8rjVnI9QgCRCMaUS1ES2p12edUbS0S4CyJqHcfi4fZ6Cqa7L7999t03n33xxXfXI1UXHQD41n2KJAqyu364sm1KsRQukxkhCLfOyjC6FELuvvXhe3e5ZgR9FzwJ6SAl0zrt6RFe40CIxj6JO5N3K9A81Iq1m1xEJVmAuhpN1SR5RAwxqTgQSUSQIgKnZzdjAF//7d/9f3/75efPLkdqNoUaSokgTCUk9+NG3riXtl50m0/v/yfvnJx2Xd/lftHF+ma9Pb/ebqYP/vzpXdxMRkLrdNiATEwmTksjzTwpyPAyDePkUdGXOc4UQOjH8NshlTXmFpCpEyZfBcEoL6fT5TZrdB2oqoqgRpC82pagDBe/+W8/ef5yEEs5iQi2iBIRaXHaj6vuZLl448Oby397fTndPHn/vf/r+wstbl1nMU52KtJ5mcqjR5tvb+JUIaoqynASIpoihXqEJmiqLY91LIp7tWIg2NIutxJ/x2V9ogyqUCaDo/ctI4JpddobIiUEOTQvJ3ztsmDwdPv3v/hqg5z7LnPcuo+L09MO0d9/590fv3dycr+39OnLD/W/709sOD//h3p9PWKxyD6VSFqGIMQ31xvWcYwMTN6KEVUk0yzlkqmVMkaX+3GaSsylz3Mm+lbzKY6v1qfAbSeKGyVEUUCjR5omVTXSkVAiXKg9hvXN1TcXJa9WKXy92Xp3+tY7P/7gnfuL1cnJyeqatLQ9X+V3Hy1LN33r3459XuZQp6iwJCuwhHWWRVd7NGvDQG1v2QpZNGkyETqSIkjJe0dRZjMdt32q29CAMrQ274UxujqOMtfcU7iIKYNCCRiS5mm7HU4XHzzVTVw7dfn43uO33/7ww7fu9eP1KL2VYSrp4aNn1Dv3Tj49f5pweT1tt56WnVYk0DsJES0W1ym3tqQag8jcBu20jop2TJuoEaJSvE6ZqFM64xVRvN25HiwAPLaxLJYSIMx37p9yGMfiTjWIZrUEYTKP0E42pw+vKZbvPnn3nXefvnnvJGO6vFm7TWUVQJS08njy40cvYn2y/W7quxTEGDAC0nVlcmY74eWkSUQYUQFRIBRChdBVCNThBSDFoNoUf3MbX+1cv80xIwBqoSqEDoAxbOijB0XUDGK5rzW7N0NQkvP+nz/BvQf3Hj95cNKpYrMJL2NYv1jkbgzxm+WmYOG5d9ELBwSB0JQYVGxGF1MNSVqiDh4nnaxySTUCErnUEK3aaxBZU20wiKi48e3y9NvVb9VFEVMwWy2Ylmnt4lCpQ9DJAhcRDtegqt55++lfTLpaJhN6KXXbp0wRbG6IzmzAtsip2v2tDJ+dm5kaQK/ZvGQOyZu12mrrIKlK1pGOIqCIOadolq12x4pKWNDdGwLqjtulObcDzVZUVGPYkJgzp6ItlCMZmEJFWKi1bKs/nWTRCcI9oJAIgZkgfFKV2lWSl30XFtN2dDERRtTBBip1ZA2TNkqapxRSR4WRYJ23hF1XPqDzoPCaXmLc6hZ+zbz7uZgHaLPCauDdOuIpJEIQIvAKoddMdfXeKK0/ufpuEVCwqJJipmSIM1idwZpErjCMe02TtjRtXcfRUlvxm+zBDa1DT5UaSr1dTXVsoOdCqXpfzpO+BdI4Joe5b7Y3Y36jlWaAgfaIQwg66a1qN2T2hDjnZdsj3/GiPUU2VK29IrvQv3bUVspEKUpq7af+AZRq10O9owiiaimlFDzqHt9xtzbw12MJqhFq8VFFMFWtBH0iI0h3uDdocha5uRa75ZDak52/4KgGXfbLbDCWKEI0NKQNPdsDpkf820+YnH0wETPLOVsE2lRO2VU1Vb4GxaJit9HivkCLblVNOSG88pUuwYM1Yy+Vc6XNAY6x49cxxrtnrBKVY9Q2ymT/odfssZlCoUBUzZKZJZc2Wxr7XTBXEGrNohKAmjIEZITUUgaNKWIeUlQbraUhlAHZCa/O3bg7uveLqUijzOjbzBipE19RjcLtQsxjZcIdsFrjdDRBTIZdSRakwuAyP9GW4KkQZ4XvGK4C1jkPkzvMQixMU5dMVRH19lU0Grtb8mP/5OdJunOhSlOL3P0epC5TlareZnk2wo7jsd3DantVNOWc+76rBTKYCyVrhNvKEUR0BjlrOqORJpSUTIaX2zHnfF0ggHZaIycRBV1oraFb5qfatupuuxDhEaG7If6NAVVTSe3lBxj78R6vEEapAlSrW0dx7XO/Wp52ljBu6UWFECW9siepABzdsoZPdXyL74b5iKpmcPrN//Pz6zun919+FqCcPE4+QYXIHYZC7Zyog/ObsKJRXQVQEMKpeJS5tmW+KNAG3DLcp6FMPxCP1RgbUe8YkNQtlittqtBpgGmbEqFtVP0w5AwhNBlBL65JSzjDRMeB5Zf/7483Z6ePxmdL8e7he6tsLJCU+hIDkxtUFBSHJ2n8FkCCCChI4RjJWSWvYSJzGXeTGUYkpOEH9ljrNfNmFzSlnBOIiHB3J1tfudaRbF4fApzhbiJS447axqEwmbbj8OLl1XS/jKMAlpd3l72yBCiis+4kIBJeWzr28kRW+WI5ML4EqPskxGzbanH393EMO167qCihKSez9iW16qAW5dZSLdThnEr3KAFv2U9oCAJiEIkyTAEIfRKRvDy723dSahFUlEKrqrDOKNidocJdprnuMWE7hqea0ZA2thqYPaNXVMUxYQ06r+OGQ7KYmdY0Nw4YTxEJEQlq+/am3Nry6i6NgLHznDvlmLajpLQ8u3+3TyHVEy3TRC1WtVBFeZtLpTGXOVRB04rFzCZUmkas37ob23JgiF5J1QYIQdRiEMtpuei7ZELWWTgeOh/K0Rz91qcmpsp6/oVOMYl0KWKiayf66MHzExuvBl+cnD1+93EWaE6Km2+effHc+8d/dq/vMsrNNlTnRxjzZGeAYBmzuogK5h7hWW0L5s0G3PLvX6nMQavDJZBPFn3OSpI+haaQobhGRXFFlYFQSAp6SsphdOv6LmQYpFuYbzejLFaLxV989eDrr64vN/Lu3Xc/+vOnCtGsWH/1d//Tr78ui/f/s5+cad8N0zZ1wh1oXRtRDIByCqCwulyV13OKtqbUBUCUEkf42yuBpqoSSQQxnN3vCZ94gjK5WpKFbV3cWQfr6uQUSsK1iqpCfIRrXiyutz4q1HSayql1/+D+Z3/7//jCO3ty96///XdPACJievnVr37+yZWsTqeYBkvjVlenWwdqDWkERSSngGTEMul2NKs9jirc13fMJoL0Ikfb6njgVs0xVtufFssQi+JxrXCHonAzhkbMRXWpjHRKShjVjHRXzV2eti9KR0s5F+qmt9XTxcN3n1+u86On731wZ1rDg37zzWeff3uxlZNSApZgq7UP2H17LbqJUsCJ26EkZGngd8zBMLBLqxMRDjvaY0dbDFUJOURSf988EpJ4MU3hTh+HkTXhGKECS6MiPJZIIuHjOCVo18XVZ9f94zcfLTsbOWhY9O/+rIxrnHTbcrEJU/Grr3/3y8+uQtPDJ2ddEr+JxeTrrp7hUCezCsPDweB4LX3uqrqoVQ1SD0xqGiSAiKiHN+w5dowrqqpMBcmsO1kldomhljuApXhiYAqKVM8DCeVEg5vvuqyisrQpsBV7/v/57z/HWz/7648eZh8m6QcUnUJXm6CjTKuFxcWzv/mbv/n0xhb3P/z33r1rcTNJd+JVQVbt0R6ySogLh2lZbO6NUGkjJauiZER4RPh0XA5xbABCGCVMrV+eLqyVGoMWbAnS2vNJEIJpGFdO6aW4h6a87May2eq3H//m4/W9Ly9vPrqTFmQMGMUF9CISWK10ff7Jv/qXv/hkXVaP3vurv7zfRSluksIq3KKsc51QzYkIUCbjPCNeKI1Z7ei3hpy6x2FE8MokMXGxlLrF6UlSliIMOCNKTF4mD8BBUyiE5bpjodzN321JUzGjrwc8P58wPLu3vfjmo7fPekuxHbSkcV0Woa4rv/jid7/417/65mZ59vjpjz96miEpCWWz6azZJdQJwAQDFLpy7LR5XmhhbFUzQJuUi9sdBbfbrIwwS7lfLnNAWOrOlHneBMji0VejEr6UcO1OXipU4ISIshQ5vbe8+vrsnS+/+tmP754udErcps16cTJhO2y/fvbb3/zm78/L6dmbj9/58K0VkTTLOFxvzlLV57VYtBorIhgJ06ShTX3IngtVM1RCeatz/Xb/GLNa7pcL42SG8AguJahqYalMElFKZFVRibM7roGby01OCkYJ97waFycJojp+Xc4/+dlP3nr8MN8Zr8Xz6cn1zdWzX3/83TfnF2Ond+88eudH7z5YaEqKaZyks1TRK87198YAg7qQOqm4uVBzLCg7TwgQtDGEO8JemWGaTLvlMgGZBfSpBBJFIUYRFqFTTBwqeqdbk7wcFguBO6OELs6Y3/vsmS10ccd/9/lv33nv7R89fsCU0mL43bPPP/vl/3AD6e1kZHf69KM/e++N+0Rst2suT+pRZWxuD9gcyBJQh6m2sr7qvM0jSTH/hlrfHRF2rBWDnaW8WORkyYaRSJqDRDgjJo8oYZ3khTIEhqthDLWzRdkWR849CaTTD24WZ29cCwzls9/m08WTt/s7S+PVF59fvrjCamHmUyyffPQXP3nvrTfOvrsa1tvokk313JtabQMF6CU8WMpU0qJOwqjzPyuuxR1lolBVPyLltvJQTf1ikXPSWEcERZVJfCykF2edBZSaQBSEA2ogWHNY4UXjSXr05seffHMdKfeZ2/Nnv7uakqbTq8s7cv/sJsbC7v5bH/30gzce3eu2V9fTxD57ME0NGKuqvpVIKsJ64ajY9YDs9lgrFBNVU4kjUm6XzqaUF8vezEB6HZ0VgRhHwKdaqliYNTXLP04o1snkVMRIA33C/ftvPHnj7r/99EIWi14Uk2WVcVimvJS8uBoDyzc+/OmfvftwtZLrq5cu3Wqh47UvQsTQhk9BCTCccEdmroPtWnlHLTWdzZoY6hCdH+KYWbfokyqjeFTLQmCuxI0A6T6JkYQuphDGtS2KZMQ0FTNhkVU+Pbl//2z1+Hw467L0sCQejrws5tstV/fe+unPfvzuqdHPry900fVdlqko2/KkVnDPpWIBJqTat8sgpVUYzqiP1El8h6AiXgVzqJ2BCJ8KqgfPMLhmImDFA6ZeioZT+pMXsoB//d17fUp0GctkXRLkzShv3n//Zz//R59MQ9dLzhnRn3bXMmG67B5+8NFPf/L0Xs/i4+VlPFiaTlsrq2WZpA3RBWrGq8Yp5pLT1OLJNs9PWwA4R8aqcsulOibMnT6UZAyXHGOoGOlR3CPozohIi1T9OEmbc6qaimpMAVtMwzh1OXO64eLs8Uf/+B///G8+vt6sHyRfdEjbL3O/evDuO+99+O7DJTdrFUw4Oz2NYbMufTpdbCevkcgM6oVTxBATuizKOWUyW+jmijRfeHdeX5O9//p4jy1WfU4JVBVXlpxMw71sttPoXmroF/l+PbZuuFhmwyblwhDrOpm26ynnfomphPYpbj7/u6/OP96+/C5LxMnw+M/e+eif9X0qwxB5ucR6g8VSx2mKZFPfx3W04VEVdKYXJawMl1m1NI+3tprHrD0qz1RUfDMeEfbfHRGWFjmZKUQUU7Z6slrSMm6nOVM/Tegf9EIitq4iESImEIZoHSZU1MwQgKR+O5WpvPhMBHq2eHh30fGyDl5PKu4BSJYAEJu8wpZSR0NAVJX1NDn4NKF47EwzWmgzw59NJvfa8nXKQ1XqASaA9AKBh3sklnEqtSCm1lc0hJQhCO3oFY6puUFgCoolRBQZIu48nH58ImUqZYW42RbTlAScKJLA2tYXQZ9wmOxBa7Qn3AHJ3OE2Mr/JGRquzLNjdX+8xxjhtYREhSpFWslBtGt2GBsS26CiGVbR2dbUBBIrcDqth+sQ94hOqVbD/5Y8qigUAByMbpMDytDMFXdDEmTGwQ9Xfhhivp4w1uxb1Z2sp5vQa1aUzoBESMs4EAqpk8xqiqXBzK33oJVfgNHma9ZsqLQMUH3o85jEuWBU5qfG1nuEuZJUdrj8/FfVnjs+3SLs6KdmAZvMCkPqrF6vhEWQ4i7ubQI4RKQlPHYZn3qTefa+aC0dYVSTqrPrWkeF7LHRkNjLIWUusdy9sssM1tNN9mRwfvF4U92C3xpRLY1XmRNEuHsN5yAeEvUYI96+mcicPK1Jl3qfeg65zBXalfB5ZkVt7MAuP7XP0B3gige9s4047IjbC+Ec6zTCjr37mCkDAUS0eQ0R7qURVlySuwpQe+ww921QoFpBiZogq0h4bSoRCIVR3TTUmX9N8NomxZzcbMuUPWFzCqZlcNvPMzm7tcshI1/hGKQOk1CQHhaMALx4LaoApJ57UAsrVOvZ0VEzJi2j57U3lVBhNBIFDK3R1W4PNTaQ++1TOcK24j1h9YMtwy+v0PSa6xWtWH0uEZLmc8GLN1Ek6yTKiIqTiajU07N27UpNeKqASS2f81pmTjTN2Z7A/tG3KWCHok2ZlUf7+SDnd/QA5rdvE3b8I0mvKxUEPeqeRykec4hnss+xo3nc0cipC6kTMxnCWuZAtIlEURtfSVAxCzDbcumyF7CmPhqb9gS3BIvUtnz5Aaa9MhEzdq3UEbXQncJSh7KFQlXCUvOmmzanE81oe+3vsdlDbU+o+kEtPcJ5IpjMe6wFjJjLZZrkVWtQf3FHwa201x9KGPcnRNHNqQxSwt2DgNbScVUEtB2LyPnJV9ma20Nbj03xFg2jKuWdyFUrCZB1bDpJn5NTs7qYJWDGruTWTjzIs/x+jgVabQDpEdQgKeHhZK2C1lqBUEsDCKCqDtEW+tYW5bbjw4maJPFg0ckkQme1EFE9zDoPp5r4plLrfzNZtRx/l1Kf+SataWcnvD/IsZg/GiwW0CBhdeaJCFRFm+eNZo8Acc5A2O75caf3qn6cAZqIUgfAy87rCNmpcbKWfnCWw3o7nWMT4MhUSdt/VWBuyehtrSix84MmQzv/q+oNFZiqxo6wpo8lIKDvQBbs6j9r76qUAKN2zbdzCFswrGQEFXX6UKVk3xY2L1/mUwcPuLKnYl8o9Pt8xahQkMeYIEZATeY8WwVXVBioO8NJkbA2PL0NZBMGpcmkpKSjA1F/j+EC6jydo54xKgqF6f5AYTSOEa1GphXw7IhpSmZfR8TbdH0/YVHTHmzTu2ZVuf9cDY4odVocgzVtBgbYDkpgrS0opapQobPaDdQvQD1yvS22FSzNVSiHzmD1nQ5Ju2XTceQ+Aq8pxNSqdhnRWR0MJLmOVmgBe7CdJEuA0NaTXR/u7ggM7D5bAEiAKD4q0JrPY+7kboWAmH2lJlpyQBaJiINlVy945zDuPMZbyuO2G3vAE23nIBiBlm4m6wC95vEIIKxIdH2lZtal2TgSUQIQKkhxMKA1uhG0aldrqbtj1c2D/x2YG9ZRWbp3CnebS3jr3MzXFInJTofOWxbVAa3brFkf2T2u3Sk4QHuZsxrjvEfauzvHadYy1cWo/aatv29vjF9joubqKvneT/wAYXuy6kRCyJzqnWkh96koIog2F3u2LfM56SJeZzG3e4HuEQdPLGowUO1WtDU30Wo6/6g8cv/s93+/xon8HsLabXYWsQbH88NulrSm3yrNmP2Ogx19sM3akL82o2NGAIgjeSLbmJz5Dxz+cUDLQSTdfub+z0PCvt/3kld+qCBPg/YAzKVcs/jw4Pfqc5d2QtP8evP79yJ5IHavsqY+q9cvfK8mZac+jgj7Xrp4YOLlYMnVfLd/169VbQXOLU9wsNSWZdiVADJ0ZsVOBiAURe17nSneUfZamrDTg99H9bEdk1ckdS8YcqiC50XvvPDZ/5F55GH1ayVkdq1CSGor+pHZUjVvs8XOM8MOvkluc/FI1o/euuV53H6LO0naeZvN2d1/7Ng7494PYitDZVN7FYTbO0TcSdfOc69N9zHHaZgJ5Q7bqH+9wpVXmfD9hOHQfh+EQPOD3BNcxSj2snlI+QyXtUfUijuVjEDzivcfqaDhTpccanzunhb3/DiaLDAv5TXRyw/ssYNHT9lL5AH5WpccuyKn3VqqwRVQG/aNneTuyDp8lCENTMEBK/Za6BXf/eBjO614q9j59Z8+1MVtCzTNP5ssAodn18+7rQEas2pBS/SwSlrU2cCzFHJf2nxg8PfX4Z7fbbYdyw4/+qpG/X6OQWo0fcvn2sU/xLycw2wAqw/bkBpChO4qTQJrRImZnBk3rpDdzLGDr3rNgg8oO/zsK596dY/tBWAfi+9NL0UaTAvuZWv+5RpZ6o7uHRDloEbZidVeiewWJpgLjerWe4122MUor3nz9++xQ+Y3fIgheyPLmWk7rCVq0awIlIdjDWaqg1rhbO5U3OzTctb19ewj7gzLbcT6mAzKngOvJ+t1Yy/2Zvng4wcSKcQsUXVNovWQJq8xlsq+K4Bgm9yCuftFAInWftAWFQAkJPZphuaw1bd3G+LW8g834KuUvXYWd7vd/tXDQh82P4QUtJaWus1nrKLZPgjr0HqQUWQGnWQXwDVMLgjOJ+NVyhtsVwMRthj10Blusegrm++IsNvvycxk7gRg3untaR4EKbP9aTZ6Vg2YoRrOy2U9J65Bp2TzSipk3rSNz/ZYRGQf9pO3JXHenj9ooV+nFaWxqcZ01RWq+p5CaOy09+xEzKXjjAiI1gacZg+CpZ0/hQiQJoT7XCLIlj+VuXl0j0LN4dls224B2js/8d+BsN0vz3TuUN39z7ONQi2JF9T5cMGZIQECoTMYLCFSOwVBzDMQWj4JAkDpaFKn++fLeY/tlsTdO7cF6/cStjP8raa45RuUOys//9EIbDXq3BveXe5LJBCszUdNGzYFSKnBmjR/RhEw2d99t693Nnz/uGe9Ikfr/b2ENaLmXxJC6rjQ3Wv7tAp24XKVjXr4mbRcxsy7On5D3BEa0t6uICMkKJCgzQXZB3QdK4iD+OKIsr26+gMIO3w8O/PcVHDt2AqdEfZGoOz9DUEb4g94RNnNB9zlHyJIUSUD4gQkwtRb3r9y6vus88HK9nnQ1/iS30MYj7yUpoY5QzotcG4nZu16VAmGN9gjKhIXcNYG7JoHqAFqPZGS0TgGgdPDa53XjMrWdAB3hUTC29RhHyz+AZ5HvUcdOkybd/Ch2yZAY1i9sUQc1FU3IuvgLzqdIa4OgRSXkJpHrIus9EFE3U09azuvtsmhtrqJeZTz95H22uv1HJtN8P4GhzZrjjsYxqYFGqTTUP/9aQ/BYIhXgY56MBPpNcnRjuKGKCaakcmAHZRe89GBBitUy7bTXvPSvteWfX/zaQMxMavHpntngyMAwgBS6LWSdf6WgLBOLKxFDpXX3M20rOOjpaJdlRvuCZDOqjzM9ZVSU8PzccqHtByiMDstcvipV12qYy4BQuU8HLoub04YVDXI2XTt4pf6z4gdDz1ACUY1w+1YW2kYjwiBoJjmbHNsLBBA54jvCCE6Wv+BNQOONtorx5vsqJq7lkhYO4GGOymvRQ5tTIjqrN3nezREo5aa1xnu4hGKQoCz41F3FEXMJC9X2tfk4c4PqJtKWwvvnH7aeVSz0fxD7VjzpGN2Yjgr4HnR1fUmKKn6TRq+c/LqfmtgHIniwbq0EoiYoHUEMecErhIqmvqzldgcvc3ePVuAJ4BK4CDF16Ij7BXibfJecYJ3bGp+x9wkPB9928AXkLU8IAhFtGc6T2hXAOEMoATpUEGMFHhBHVdBgKKAmCWzLuly1UFfhT7nULWunbvtvqPrD3apGpTWRjY2yxyHiFWrF6i/HS6hQq81OOEeFFCFLKOzjiiOIgn0rYhLUWMZxynqGUeaLHc5dxldoidrfsDOZ+NOH9czvA9AkCO1OBN7QOIr8zzaCA8RRH2TpBdBNqvldxChV6/fVUQsU4gpPNF9KsgJJuN2O0rX58FLOITX0zCeqb65XCzPN9cXV0NAEaLdKvfJUjYjPbH6JtoCoIZtkRT6gSWdyZ25uNsERxw7JqxtlTnxXH9Ux4xwyv6ZEVBTKHR0pxRvFWWqILyMkyYIGD656s00+tKg/eJkHWM2peUkkhaLbHqwJTFHceAch7dvOyKMB1GazM7r8fW6iZhRPXdFNC+x2hUeyPpeLCjS9+7BQtDdYYFgmaZitZa9jG5mIt6rJojlklOyEFGTZMlUMA9YqeSF7uho6Pm8w3cyOD9eOaLr2I7dJqxhQM1I7hCp3SlEbOFxWwQpltm5T4FSyhRiionT5KE+xnooEQBMQrNYNgmK5S5CrRmg5nn6XEEU2nCspp5rte/rlLocbkncUiKvU/fVZxGKHri34F4hzTaGbhCJiaYpQ6OM41hP4dkOY52lnUBxyQWiYhmiVMtdH0XqUV/BuSxVWpHFnBGuurV6WLt6oT1Yu6v9kNerxVemQzTjFU0zNjZVYupQQ9nBGbX4TaYJhGoSllKYtEjZDJN0y6VuhtEHByLE4EIVWEo5j77DuURAuiStNVlC6g4WaO4324yxnSbc7y7s5JG3lMdrOYaG6O4sViW5WrKdYWxzzA/0kYhKZ515t52kWy4k5W0xYBqcKh6iCjUzVY2DUpXqSWgNzebaHKAqv4oT72KLQxbtws1bQ0peR9juFjuHg5zn9zTL0gAooPW8zO4AdweXimo27Rcd3V0ky+BO2JAUDBNfTCGFqOiPza4mZrRR2kRMBZs/Vh/ffi+9ospfvV7refDYj6qVd6308hbeOD/ASnCzCAiKppws1IzoRcYCoCjAEM25mwq9mvRoqqFWi1ewtG2uOrJByagnku04duTrz37fXglUwl4hd/dJpe7IqHXdB3EQZx2CZq4x4wYAageeCoOaoFmZBYJIyUxErOs9dPRglMmSkOIoWoNQESqrMzxnuG/tnt0qdyofO/f4ezm2Z9yhazknX+eI5NA4sr7foicV0zq2SRRBpyZlVvRGJZPVES5pQZiMUwRFO6s1PSXmwtXZUjVjXOnasUxe5douPDu4XhO2zJmqmjGVmTdVH7Yvqk7+rDVrre3OFReIiiZllBARyya9hYSnCgFbBtTqoQDQpUJFpVX+Ueaq6bbeOcyToyW+hhO/h7Aaau3xn9nLaAHW/mS2vaattX8zVg3U+V6iiHCoSJ0IL61qHSLQRMCnScgyRfUPGTE/1R17mitw6GvgNVS99npNGmlWftJ6mWa7v0+7sx1cdPuBoMFrYhQwGK5SBwuqsvbz1qy5JnLKJnTXSVRNCEQ9yFqkbjMBQmcR2W3iqgAOoua2J36fKApmTb7fi9Lc/XbPZpspc8heVXUb5S5aOQiQ4WF16AdFRIUm9WRuUTBSMkWETqJGStC1m4HSXWJ+hlzbNa/sVu4TO8X8/RyTg1TUbtdilsV56KQcaX22kyYg7Wilhi9Fxc1qkXc9QYYNmNfErutGBb2oQV1Qlf1+HTPCLfMW44FabhQ2Ns4fPCLslsRW3tTI8qDpscbp0iZFSy3p3WUWIqgUqKgwglbndNfDZBhzYRu0FeIKIMau67qpREywBCBVFLM29Whtv4dI+8ImJzwQuiZSBznCH3KCW4VMs7yc0xKY99hcFnFUW7jzu0SE4YwK4YbXG0Vtr2i1s1XpKFIbikuXGWVEiNTRaVELJavmYtW5MoPpB6BA08516T8sijN9ODRmojvDIfubonk+rCDCHCwGYz4SojrKaFMVVTUEjNpJISn3Y9d0IjTltnH26T6ZV3DAiQNPeJak/aJ/SBTnHIdAaiN15d/u6e3yb5zDF8wMbuuJltOrTBQREQ8yRFSsElZRoNS7B7XUoUqEok2blDnWn3Uo5iPTuAenbmXIsUvE/gDHiIq9I9qsS84+YpPF2Xq27j0VUSdJY8CDEEV4qSNkw2MiQ8S6VNEqAegURacpL7bjWBAlpugwD3ZrZ2hCUEco7kI0HvJQ9syct9khsa/WK9b1N9hJUFe+lwuyggeHpRpqKHX2LSkmWgcuwFTcixdhETVFSJ4FtkDUOsvLcbwewgGxXqRv55tIPdauklZVa8whQOPMwd7HrP6P/KxXMY/mTNU6KACAHURDux1AQFKAEKopawtmiBhUop1dFnA6nXRRmYBoMXnLvatmzX0qHrS86FttsVTdOOsr2XcwvSKDsvvj1euVpp1ZztoZZgKIMFqx9UxU1R1Rs+ZwS6ZSOA8QZHjxEA2wCBQu8NCakRaf56CBbYKzu/u0nQbRVT0DbhciQdohcQDnuivMYcTBnjh45N9H2IGDKbVbrT272N2CTR02uwTUqvM6a5FBhpMUQw2FFShMJgh2qI0eVS80v9qqIq9VcvOC5eC76oOtktm05ryz5izQTiAPFMj3YB4tFzRPKKg5StSHXaNkAqq+M7zhhKnVpFdtcQdEMJFlgi6167J6ncfXRljWiFSrAU5G3+2eSvZc0sTqwrQ9vRPXPQdmaTsyBq/bY+3jexUus+N9O54TgpSUJcjCqQ7KQmseAxmliBCW+pSyISqq0VzamoGvlIEMp862cpfaQYvIauZ95+wdWtXv22OveX2GjWuXChBR22KljZVDbZVHbQWDGiBGRJmKE1CzOuqMYCFEe1t0Bq9sUqIO3KyKTNAKHEsFsbkDZ2c1xdmWzhVIO2dq/tfRVvtejlVtUeVcK28ZdUL7AeJaDbA3975AIIlmOg4lYDmZQqCmFhB39FmCriAk1TyMaEuusKD+G7PzMnu6+7xs6/fDHtA5kpvXc+wWWTMIUIsBag0Ya1tlhTAFrJN6Kq4kqPNMISqhZtmpKVmqo4MDIym9dgojXcRQIGLtXLMZUaYwxGQ+PXiPF/JA8nZdJ40y2f1wJJ07wo7pPo7omiAntHaxeWe0+KG2aINTsloTbGIR4WWIOiCYDEumkMwQcwPEixlqEFARgHraLndOuhwEIK2CpSISc5KioSyH5nn3BL6fYziQ2xkgEKCOMZ2jtHkFrRDKtAb2NWypCUsPL1BLmlRZy9xIwsTEEIUUiEF24qe7uTxo/vpe288c2f1xpDKakL4il6+K4vz5HZB30FbX5H3PdNk58TXHVx0SHDxdAcGYI6o2fWJvidqiWRH6nVBVCrhjxhy+Hzz+nYp8/aXf/9YBuX/Ih9qamlex12t/8G+/ssof1A6/765/EGF/jNefCPtju/5E2B/b9SfC/tiuPxH2x3b9ibA/tutPhP2xXX8i7I/t+t8sYf8zdcfHvIQRPF4AAAAASUVORK5CYII=", - "text/plain": [ - "" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_3.png" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 39 Fnorm 883.9820242926976 # of m.e. 20553\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_5.png" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 58 Fnorm 513.8683243934796 # of m.e. 30566\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_7.png" - } - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 196 Fnorm 8.531916171225453e-11 # of m.e. 103292\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAANgAAAEHCAAAAADpVNd/AABNXUlEQVR4nO29aaxl2XUe9n1rn3Pvm2vq7uq5m012syeyKQ6mJJOSbEqULFvK4NiQEjixgMQ2rMCGY1sBksDInxgIAiMwgsAynMAwFNmyJUim5IG0RUnWRFGQZFIimz2x52ZXj1XVVW+495y9vvxYe59z7n23aMGAAsXQIfu9eueeYa+95m+tvS8/jd+Tg7rRH/8fHQ1x6q0xDqr8xqkrKEK80SPL1YTqo1Qfuf4kAiJElWfW18Y7CaAMYjI36+OiNs5cs4EmgVCMnNAmquroRdUBxcXDO+uHcXY4depRguK0gv4Yrqg6lHoroclUxfPLCwSdZo+tnhmnh6x0EmT8CbDQBdaPQIBkjL1wUZKgmHROZ4fDY9bpJDC8ozy1EFz+JcVTYgLqP4RyVliTIBvfODwvCFL5X2FJTLvqzKo8UjE6DS8r4wqKRm4UcjVIz5QkThnK8Y4JhasM2aQHmkzcSNgwxfG8IISTW0IZhqmuXCuzBVYOFvpUx1WvliYTNwpYlTNpZCU1neJKYUjQ5Fz5fIVEjYpjqyysur56M6r+U3Uayzkynj08cKIChWYNUxQKWZ6o8pMipDovIXx1fJrM0Tjrk6khyoyc5qCt/sk6f1qdnMEEARrlosi9ivyVK1cHT8Y4uSIU4/vqqcnUa7h5mOIqmuVzlnkdDK1O0dZMp2HN7BSZjI80oXFicdfMkUBMLWMhWhydSD078KKo5zAwhlUeJETVVoZyVzpHgzq8aTIcrnBMw9Nj5INJYLHC1VwUK6lqGcc5HfmGqhQxJE0vm/xjMJhV+qYP0uTCkSOs4xkmd2KP62ObkY6VEVYWCZO5rr40Lpgyf8VMBeOhKk91yJy6G2q8WKOr4MDy+umKTGj8NczEQP7KzNkgo+sKUAKB4Xd9CKtDGXVm+mZNdb58SECscr1mxqaDnD5qmEyNcow6kBXZXTWM9VgzHit8D4aH4A16w3iPRsZM/A2GiR/cczyExSqtvYkshnxUvWqSWAxq2KUSlExImBjDallWgiQbiJ7Ibb06xsZRQUSW2G4q5GvmQ1AR1GrxC2dWbhvUbzKfLLdOBj8EF1UGioWbzMTEamzyY2vMHmc+pGiYlWEiRm88GsD6xjE4msRiE3WpRLEEN1N2c1S4OihyEmdNXzbeVGV8uMTqtGpt+qaqORrLKvMYiRjNTflFFps4xF0hu1PjVV0F64uLRExmnYOnqma+cGlNtFbN52mODRSXC4e/iOpIiDrkwa3ENUJ1EFMrMzyXNaKYKlm5hJPwDjXGHP4a5q1EZapOhoMjLPNyyoBMovupkS13iKBYQ3rVZ4b0jDPEVUpWjhp4rHqx1ZitaoYmAefov+Pl02yjvrI+c1SVU0FwJYfVplc+SMSoCJW8mtcUBx7MHJ6p4fXVqFaxHEmp8lsUc0plGU3NLoqtqjkLa+gw6OHUR0yNB1iO4fnlzvLnJIgN+Z6MrLjgFW4UyRiM35g+n5YygJImAsrqBqt+cTg3nbVidFe1qjyhJIfN2ifjWzTwHqrWsTJAw+BqfBJvqjpX5oKY8Gn6mniOJh54IGsQ7FDsU4l/HdF6OLHmOTSKYomYh5GPpl2Y/lU1LIRrtOuTp9dEzTHbXuSRU6OIlqkfdabIb31c9cZjornihHDqOKXho1Uc48eiUDFjDAtSzdLAf44WcnANhd2SiNxj5/bb8dQXs8U0rcxWmYC1UKI8QaPZL/5lnI1qjqeeb/KE8e9mNctmdZvVoav8GYMaJmFM2Sb3q5pP88y9Mwd6/slLs7vaQo+GTGV41zghEws3CU9ESqROsQPD6LR2bvi7WWXrBB5iDH/6jGozh8ihkDIEIGVufb5/dq974cuvNu++JclZnzZoZzFzI/8GPC+urBo6hBWD9k29TDys4mTUii42GEW9UFyZNlj+YSYGVS7IzgSHGAIaKe2f2zdeeurFo3svNtkH6anRRjVGxUKMclqfwJp6sqY6gzOeGNtJAqd1qgA0ow8YIrPRk8QThruGlGyCJK2kYkLeOnNuS378tWdef2X/NvrExwwcqFzXOPMc3S6pgV/1/YNaDIOaCOHgDlZIa8qogw8D6arziWr6BhkoV67FDmGcNT97rs0drj///NuvXLn+2+9bTUAHSlZdU6Wt4mBDRFsHO+GHVu8dMZOBleWPRhxZPHkXJ4+Y6DUKsapaMUgQIc0unEm+hK4+/dK1l4729q++fNdICCsUpeEEwtzWtHwIKTEgCxp5jVVBqdDIdNamNDSr8jeKbuFShdKL8Bfdqq+dsE1qLpxNuaPny0+/cu2l5e7e3pmT6/te33ZqaoOK1bC/hm2kSlI3GhCskrGmVetK1gzTUa9feQOAKV31NSvTCIGO+bm9Vp2g7s2vvnbtlW5/f29ve+vyDqtRW0+fBzKnsZaqKgzzOvBxOu56etS9Uy66GTk+MZ3FO0+EYzCBxV0W8xtsg7fnD5J3kCu//cwbl1/Bmd293e3GuuU2JpBctRnT4Y3AnurzxocX4z8ksyMeVGZkjboJYSt01aejuM3hDYMJLAMYLAhEoDl/xjy7XNLlp95645Lt7+7uzdvE9ngewjwxSSt8A8fH1FGqhCHEZF5Hng7zglEeT9GFaRA8dRPF3UztzzDJ1AQBhdK5syl3kAuOd564dPnV+f7uzva8bYhm4WkwQ6wuchpeaQxpys96dsDzi0ObzO8kZlw9PyVsVTymEssAi9ZCp+BXjefBMxca9ZmZknT9iUuvXN3a39vdmjXmJmm5g4j4xghqGjhoVc4mgb4q8KaK3dX3a/CnX+doUGK2iezWn1qRTlVXt4Le7Jzf8d6F7KDr5KmXXjzc3d3d32qTkaT1r9+jqbuZTF4xRlPK6od1KlWxjvg5pizV9p8irkblbNat8OqhOiZCk+JliJY0u3lfvYdbc/fl0y+9cLS3s7c7a8yMJJm7DfpdFbYKY+jgYOc4zCVKxLCinFyd+/UBl9/NOs1DnFpM5CT7H18LgPDm3FksZZLkdHn3wgsvnuzv7u3sNA0NBI125yAOk0kuDrvGwhrs+2R0NWKcxAGjLeOK2JzmHNWsMXTqnwcAe1TQ6lUpb84dNO4uh+DKWf7a868cbu/s7s5TKhVSOzq75QA8xMvgFB0wAqCzepICQI1qUxPyyegmoQVV52mIyk8xrhnEfzX21WSCOaZSxQRQ2LtpljuhMMtdeOfZr13Z2d7ZbpMRgJG2bPZ6Yjafzdpmliw1gvfd0dHipJNVqKGGqBNWlrktNic+LOOYkFG9w0ZtG9IWTuPfVS5P7wvyNLuwlxeUQ+7KcJf6Fy9d2drZ3Z7PzCQDaIm3np9vz7fnBWBRwfKQu8Pr71w/ySyZSYAkVZkG/UKNqqol3mwKB1O0SljlLjVyd8LBDabFcXAhdQ4ps/csyB3++itv2M721qxlIihJ9Lvu2W4t0aM6UXAGEZxv3SQ/vvLmlUUzyt2qy8bERYz+65QVXLdIA2HDnVWPNL2Qk5/1vObndrwDsjy73CmXdPLqpX53ez6rHTEZ9Lvv2TXCK443FSEC2N698/jSq4dWc9TxFdzIhNOjv5ExR4nu1/LPibaupT8AM8+cbbIju3LYDbkkf+OVazs77SxZ3CTA73zPNm2aAKy+QubYetedr738jtlwur57tIybVegGx3hZEcUpq4dnx8/V5+adczPvXN5LDqckuYRrr7xh89SmYYDe3f3AlpE2VhaGCDB+U0DPdNetrz13nOr7gelMjGxc1Y9VYk6ZhYGwkd6J9ajKNYmBpdm5He/l7jkTkNwDmV+8emmx07QN4aAIY77rA9tWsZ6pnE1G6aBcdse5r7yVxqQrZrIastNA1PqxmZfN2m0bXNowK0rnd9DLe5dEOZDhhOnk6PVXLzfzZIyARBIfeqgJL19RSYxhImtAQwGSbz/28gvLBDoqRLUGaayP6XdxNBOhXrtrKu0ChL3zqXPl3k1eDF3O169dvXzlqiHvtImS4JQDDz6cogxbSBrgBQyRhmAoEaPde/PTb6SJjEx64DQd2u+arkEUNfmvzgyLFYjDLux1necsIUM0orv29puX3jw8WvbuOzc3Bs8wE0k9/HASbVqCKc8dXlGeTQl09luPvvDqsQ3XoICao0CWYW3Iv7iR3DUdqz9V45YaGXpz0/wku7sEpWT99a+99Oqbh8vFou8Td3S02AO8lyX0ah55iEhDuVBATfOFAZ22we7LSdh9dz7ztUSfjHaCqQzBQxnhigJxQu1AcVM5U9k2jEPDEwjkrZu46LIDgCVcf+HZF94+XnZd77TGWpst3zkzdwIOiA8+lMaSU1hDD5maDMgn0YAoR/PQwTM+Ab5UEd6SuEx9cQV5phHWVOKCsFUgVXUWOGiwa+dM32cXwNTkVx9/6o3jbrHoQWuZrE3WpvzOlmXIsmYffDitzl5hlVciYAJFJwSv8TCAO2dPdBz7pCZMGX5MT6zEWKdjxZoIrMVcwpB/iTs7Xc4QrbGrTz/13LX+6KSjJVpKlhozavv4uEuUKe998wOUwQisztYEJyrC7mNB1RMkv+n9XzpJhSO1hxOYIglTq41NrT7VStVYcaR7yC1R6xDa3sk5k23rbz3+2692y8MTtyalhskamiWCzVZ3MgMdN33bPSSHvq4RepkKhSw8FB0szSPZQPjBo1/MHNCvMI1TiqZ8KZLHYaImvBxFcUr0qjjDZ1tdFtKse+Z3nrys43c6ppk1KSUzM5qBTL6N4+0kPvCxmyTCWfHO1bSgWrk8tBKUdkdG6JsP3vdFJ2tgMkbBp4O7DRM2pbsZ3zpYw0EeKYre7LojzZa//YVnj/PiWse2aVJKjTVWW4aYZFvLBXc+8uFdWUmGGTkUJ89e1RNVgzaaC+QzD3+xmQjVmK6tSmI5PSSKI22Fnma4EJPwACOs5O1OL2vxzOeeWfjhodu8SU1qUmrMSJoDBBP71B8++IfvbWSnO/JGBz1Iplvlg4/BFEjppoe/kkYWQStx1USSNFWh4ewoipM71uQxiLVtV2Ov/uKTS792nJumSU3TpDYlIwyUCaKRHe5/7KH9GmpUK4GcIol0A+SToNZZXNkYk4Tn1B0nX53dOMbgOoO0YkKGo1k/MQH2AMC3eqZrn/+td/zo2FObUtM0TWpaK20fEgCD+9n3P3Zui1bL414xoC7PUgbgGKN7IFiWud4/Iwrdu06+1gQstmHAVUwLRjJl5yphk6xkwJIGjSC3E5dP/ZuXdXIka9qGTdO2jTVFj6To08hnHn7vLVsN09AcAkJ0db/8K69d/K4PJdgIE2IyIxMeogAgMN1/fNWE2lUhTpzVWKodZGyzJ+NnRiRl9SIK0Gzmr/zaU8vFUU4ppZSapp2lBNIiOJHkroMHHr6lbZsmJUskqaCD6P7Bjwkn/O/+tENDe9OogkZGP4aDGBI3kIvf6kaPseLN6rALB24sso3qZI2M5qCZqXn13365scPctEFX26SAQgGA5nTHhQfvvyk1rbW0mgqHmVd67lOJvrv49HftRslrmq4LUJRygw2ZbtWCbr33y6ydXNP6yipeXbuDvo6Orebfw1X5+Fd/xz70wV//9IzJmpSapjHSoj8JEtDj4vves09LM5rRCkoIp0EgrmXLzvb1N3edkrE01FQfhUzUAl9oTAop1U13Pt/GG/4d9b1107gSBJePJz2BMTP++Bebj753V4/+xgnNZiklMxIF5BW8m9390Lv3aWbWgAl1iQuKCmm/OREcR9fMy0nBau9XSNNQ8QTAiBwh9Pe8fRjA41TFRiat0IVNfzasiP/gAAcP3//Ou79x3med/8Dnt2gppTRZnqPOz9773tvnNCQlJNAiXY6EQzBIt976LCXpSsCKXvAhD0lSUjYAEt0UsaOiK5X2ni9Oqv6DdVsN5zE9uXZE2rJic4fp237opllHQB/86nEyM9bWMvPc2y2P3n+QYDQYLToojRxn1AG0O25w80vZVbuLUXv5gGwcOAdArH4byufuer6NoY1pxkZjoSpva4SdFlGqTANvfVsQ4Oc/+ouJZgBIIqFr7rznzlu3SdJIEyO2qm+qPRRy7gAu6TKH8XEUEMEDAKiO2ktEIlL93W8shvB3DRngasvCqgxOOLaSOdVLBGdu48P8yMkXmEBBRsvtA4/dtUMnYUZGnxlZOumi4SQmRmlXEOlXHUVA6VZJrzkRkWW1CmIVEhHvfbwZnPa6kxp/3dDcn4qNq1SIyPMyzfahw2ccNELL9oFvuGtuQBr6N0uyE1F6LGVRVFWa29zMM147blgjKg+fLpUgqzY9eCiom0pMc/P5txsv9K4Osf44beZHaio0gCHmqArAcdWcw75l/hVk84wHPnTXbJ5oEs3CcpNiBBGsDSAxM44HZhkQD7sGDshKL64PSZ8AZ8KktleQEgH3XJatyeLqMbooDiEzyzMa1FimuMxRTanDPRVS3T7aPm9f07s/+p452pZW4nUShjoDbiBlYZ8jNTgzv06HLl+fF0KSy6PBvLT1qkwMDBmGCKRMAnDm5jcMGI3iRsEbXK9W/27WJmTlCXln+Ez2/k9c+leP3X/QJGvNioGpDc8DhgBHrpaMDt/bP07m9vqvPLpYLq8v/Ugnx/3O/sx0/uDc7nweKVs21agYYKJH5u53vFnz6EHSNrCOq66uHM2IrAMTGQ212RqiFrftu0/+2Lmdtkmpoepilaq/Kowf/w84tPjC5T0dNjz82/O+z1lyg+SkeWrOntm/913vvnNnZvAU8lmCTDllUN6/8BaHXBX1FcM4iwcrrQ1rFqYp45ieqz7QczMIpuWb08FsNm8aMxsKxiHfHE1cPMABLo7ffvGZJ5/wrSxk0ztJ1kYs6JIDubv0qn+O+7dfeOyh956x0rvnVArJdgK49a0ac41DG3PuU//QEPfUIHi1wBY6KS5ViyeAeEueN6lNqfwJhH2fLqgEAJnnd958+YWnXnrjnb4913bekPNuzsH3ImKn0KzFV5/+1dl9H3zs/ecbEqCbR888BHZnzlxNIePj+FZlbl0Ep1bxFGwQF5CdpUoX89md47mzIQuwxmqARkRBQFpee/npx1/42pV+Ls4PdrZ8mZO7e+kUHZ5e/50MwjNf+cn7v/OPXPTE6uMAuEm45Uq2yX0jJQOlNzKZzcZW4rhlCSscJHDRUpuNpKzGb7XjBgqzwXzlyc9/8WuH3rZbbOi2PU85nFeCawKrVChX0XPWtnji8Z/6ge+MB3tygwQn/dzWshYQihKNSc/AgY0ETMCctckgclv1SNg518tKHXmgHGKp/bjobz/1G7/4at+2M6IRNbMmGWT0wHykrJJye3msjQ9r8OLfbL4jEwByo2py0/mvpbE5ZxI2rnBgI8cwauOKJ6AioorJ8ovN0iLJNTi8oLTRLynRrj3+a7/2/LJtWgPEDBJzS8jOnF0GHGzN9g8uHGw3baMOfnj1jTeuXj86dFqKeW+XP/6N+6AT5lba38Xzr6Io3OiNsaZaOn0KaDbTSwHILHA7lS5IEec6Ap0tdtBhsv7FX/3ZJ05SO7dUMUXI1Hddtt1ze7eevePizoW9NG8Ih2WZUebd4vDKi1/98ldfXzIR8Oa1ywcOmpxIJXbMu9vHVkw7VgTw1LF2quFmGaVAzcuScvczcy+TaBRkI8LvGU//9GfesNmcNJYoIstTM7947z23n7/pXDsT3N3RdV7GawKY2vMXHvgOf/v5L//6F44hoFsKgDutLldwprOHNqRgm7Vp89Fs8tpBv07ODWHmLZYBK1i6gABymAl//if/1VvzXUVKIzcueXDLHXfec+dtN88NXfZ+iQjiIz6mQJicGaCDux/4yH/5hf/hVYPQBEYpUDCPtR/nXqsTfcNI/kZWcfX62ogAgA0C6FV7TjDICxzvJcIT/ZVP/czrW7sFLxLlzcUPfPCxi3sm9fnEDRE1jiuCVNc6OuEwuvcL+8CjL85MMMtRSfPk4aKF3fkJNtDEarxOebZKGAYPM+W2ALC3sgTEz2453AHRkF2AuZzU4Wd+9Nl2t1RELOetuz7yhx++YF0+qVA765JYIUHGLICBnkowyrK7LbcEh7IQryQoGQQqHRymDTwpDJxEkacIW+kGnFp8pbaGIueQY5S1g1cwwV/9P/8191yhNX377o/+kfee7fvjwSVQ1WMJkJOO4vRYox8CRvZvE0ATmbQjOQ0R2bideS0eVRzSDXKwU/rUTKRvnIHSuJdKbt4c5HDEVjeEAEG+9jd/ZRalfuvznd/4rR888MV1lRStSJ4DKOvJvKFYYCkUD4+Q0v7QSLWzkDBTCfghst9tO2qc/qIok6B3cHMrQUgzsmuVrUIkjxTy9hZQZjrDSyqo9Pnf3O8zEricve8//fhNWh5ChQhFDkOYxuZlh3mdNZR6rRGSdScmaTYHhq09VMs9zcFb63JYCVyz/ivq1kw/X7tNqYjArrmPqHsEkg6/IjZw5fl3fe9HthfH5WONhUgODUaRWkxL03UzGweg+U0C1RicAYQHphOzsPMmceOD6757Qtjk9DSyynXZH/dUnULhpeSg+tyTyd/9l7+Fy+tWc4vor0yqfeYVhwIVQAeEgsQF9CHT7J6cxP0twc1FkaSzCP98bT+EkaIyyZvoilA9eDCG3kBUUghBMu7AA1WR4ICyywx211wu8S/+0ZOjHtFq5O7uguCxCFFyqO8l5UjDKlYaTY6hkJ7zh+ayfHObQXkwUZTc5dJW2rj/wxDza/ixQthQmJk2iIEgvdCa07aDUp5YDkjud+4IUP/akZcGKrkHT6KBysFEuEvy7Fn0LIClKCbA5XKX2H3jd2tx039cx2+AFJMgaLaT1zxtJW1D/9lwNEVGVyL7sqtFRf9SEolSGImCHATototXDObPUxHEh/nzwCCcig5N+RXN5o2QCbNSdBi29xAJmPJ//+0vvv+hLoSPTgG5rJhX2rs60rRiIFQlfYOLbipHp2lOaFQX2kLNIlwwSXQPlskNu+/5Cil+4a0DwUHJVEITgMogKNfLP/8ry/27H3zg4nYLlwlRj49OqQorit/88dxFWE1AVqBTQsQOR4WaMK6q1pQlKxxTheKm5jMw2xCZOUD0UTpV2SUMBNIj/xwCn3vmwzkMn4++Jkcwqdd+5hfe3EqXn/y5vTvOf+RDF5ANE2yhTDoFHY9ypaJAImSCtpu8gSVrqjWNm4Bi7gfHtWId+xRGWi099SwOxks6SyI9uHNMcPHih8MIBIc19L8oHf7Wj31law/JiLde95+791s+cs8uRdCAyImEpDx0g1WdiBogQTmhZnbEU1Zv/ViPkqMzZ2gtrZ8IQB88NE8ZPRCWCqn3Wt/n7bc/S0CvmSHy6ACogJL8/+a/+FyeNaCYjhNaPP/cT7zn4x+5rQEcNKfgYGZJDKbTT8CHwnuaH07835pCTWCelaOGVLUHTxN+psLChr0BBbXIIN0IB/zMe55uAbuaw0CX+7yAFFc++yOX91q5scH1XgZrtfzCF275xMfu3Ju5I4WRtUDbECsMOLp0p4HwRGyXoVfwdDNEukaYSnBbZXbS5JNCBywJ8EigVfppoqDM9/8rAt4i1wac2rgn9r/8Y0+1u+ZICXUXMYLb+Y1/+M/Ov/fj799nzuaWyj1jbaN0lCrSTcFhW6Mcafh9A04NhFUZKLZjMhNdW0aaBK8IEyGWSNaBb7rjudb3/giKNRldob3yUz99OKfBkRqi6wHQmAW1XF565ecf/PZvPmOMqjQ0gBoxkyWFQG1ymTe+Knc3Ojj2wwxbpK2afQDINu7apPrTSYc5ZHThlj//d1459+c+2HNIT2KRxMkv/NgTW3PAICarAX1MjSdr2T/5xX/8iW+7Y+6kgRb9s7BiBjEMJ3YBbCwTg1RNh8nVMxMrwc+MLJoEXRTshbNnoontoe3eIEDypAI6AcwOtldfu3DzcXB8YJlf/Uc/1s9glubtEjNvE6/1IheJBlDWyvtFbg4+8G0f2hNhVkQwoAMQ5jAjoPiIT1/fFGB8Xf41AQIUkoZJEUCLRXMGelFmJEke5oqZBPv9fT8OmrzunNX/xj/8oloQUG67W/8z+/tHdMjv+fjTX7lsMzn7PrvNurc++9lHv/cj5+ElNiodbQY4o1E49IScXyviNIospupVTeXUjw02o/BxMKdeXqVExh/OcGMMlAlwQwfAPQXtFJxv/OLff6Mt/QVd88f/7H2v/+Srckc+8+fal3/p5586JHq5PPctlr/123d/x3deNFqBKAEXosJmJVVXQp5PSNnEJq39Do6tuPAJzV7sCnOGueTMsaAjZthpjDC1lJQkJ/y3fvgJzcIRId/3l76lv7r93ufnDtiLz999+3/1fV/5lz9/CQlEZgfO9OwPf+pbPvHADkHz6MSPLs6o2RZetnZ6eCO7NhSpx00UKj8nTVX9INcOiQ4n3LMsR2HdhQgQ404H3Lp//vfempkMkIHf8xdvOXLaH/pZULCrr9xzcmIPPPJnfvFfPHGSSlTJFq//k09/6JPfeJATx3g2fJYHtAPO6/gmQyVQuz42MXKyBGTUrmJcUvAhyemmLCSA1nfF85gkki7CYQJkL37qpw9nxTr29/6FT/ZHgroHz7xDQd0zH3XXEvt/6nu+8OOfv2ZWMITUHP/crzz2n38jCS9w0VApLY1ls6azUuGb5LuoHuo0F0dRHFhaaWPE6A5kJYFuWfISv5MpK9rueljswERf/PoPPz1rBVDmW9/752++Hk2KB7e8ZU7kq1kA2F9NH/7w05/+F68zyYNJc/76c//bo56iwlH8GmGR7bpZ29W4aEJJkcBTdqOI4kDQtFGsPLz+G6R6wCF3pydHX0L5GidI/spP/PPDrYgi1D/4lz6+eEcE5di+/UuCgKfe2Zfghv5auu+//dO/8NNP5iYaus23L//SI9G9KSY549F1yyubHQ7B1JinVL5NlwhMODbK5/QzCvNImECyywluhtK+nEucIaOLpMyBr/ztLzRN0f6d7/uB/eu9wUGa+NjPUm7pqRcfQtgH5mOc/b4/8bl/+RvvECRd7m9IFsW3zHAzJRVxWJrXvHQQLmAIMjYVLoe9Bgpbx5otcbwMJetzloUBAU2ZZeZEk8Mgk+P4V/7ec/NyZ3fvX/u2k+uR0BFyO49MZLvymw85JNJhUD5qPvkdT/3ML7xsjQPQLU3nRicKLCQEOEEA2FmNfKf2YhTMFWms2zdNDUvkXbh8fjfclyuZ925ErPJDaXgobV/yHq/8nV8+nlWs47v/ym3X3QKDAtxxx851B9C/6gEeVczqkPf90A/87KeecCPOf6sIt6F1eABFoyJQLc1pS1EDzQqqDxxbu5IVr8ltN0DRAf9ny+ZEpjnhKcmNEqzv/+3/9ZttG+LR3f6DfyK/A/QVcnP5mZuuJFD28uF+Xb2TIAq+XOz/qT/+85/67ZP5Dzy2IJTpyQmaPFWTDwBN6qrgDbM/zcRORyPNeuZWvRKv7HgOR5sdBpMoA1HL+H2CMk3K1//Rj1/bjkDX7Xt+8M7DvuYgSBIc23c/mSDas5cOIhGlCXA3Oo6RvvsTX/raXY8s4YnwJnhGurmV/S6cMwt/Oe0f2CyCI2Gjjk2oJ3X52XffCjrADHmPCsC4eV9eKAqww//jU9aSDjIf/IXv765C5X8sCElzD0CXjt+8P/pLozprEUT119MHPtJ3oAk0WOBFnmSl4RQG2z3RhDehbzHijaZjdcXfwGQAWp67o+2bCI2IYJfJSRdSyaKSA42+9Jlkkhls+fBf/9ChnJSTdIhOuYBHtjJN7C4p04wupwKzi2h+uQSVAnaz5BIsuFqsGtJ2MYMDID3SM2HZNAjm+OmUazy8vpNzi6iWyN0sKRcuRbsoKaO7ffGkFZND+pN/+cyhQFLJXRRjQzv5u29+BRD7lwUgU6BIGURzK29VP6xvp+RUZgPQzQDT3NNUAAPjE6csW5XJajw0FVqAuv52w+Wc5gVKIz26NcrSeokpI7lsn5SQlmf+6n+0PCTEHD0gRIZH5Wj3XS8ZoPTyyUxSGEwKljyrJ12GFB4l0DlKgAVKHQWNWVoRK63ZjJHoSQa9EqjU4sPbl47bdHzGBcqjvxAQUnZFJbJMHOEfOPvOTNk/8Fc+cB2Qoyb2AeU6SaQLEfg9f+luLbsTedaiO17Y3PbbhOaMAUhMEOFlNVO0KioVTGIr5TUlYoUmV4/R3K/GHUF2f/z0Yc7tkdwE9N6n6BQ3mGUPlIViAul66K/8rSt29vv/7PZ1Del55DsOuAmmxVtJJPTG//IQ3n7ram/LZpkXHRJ2d5qs9x48/NHzpd/WoqgGg6RkJfRhs/VOWhW2iVRuioP56UmEOJzMLz2TrjdbFx8GRB3ckokGZelzl81LKRVhWba+8tnZH33gpCPoIrKXMrIzqztaXHvj+ec+17tgRNfTZLKyaQno0XE6/8hfvwOCuYGlEBAr7iQzJZgdfvVk3Fnwd3E0Y/g/Ho79u57t9/LVo21Aykiu3KRcgb9oMoE8kRKOHvqGfHJ13NmNhPeLa1fzV169eu3SydHxUi2SifTU1p4bIAlgiiADn/vVP2kkzDycstNiBSchOIgLZ567xM31hxsQtsrAUDTedObK4pa37eqOAGY3b2N9jeBOV8mky1IWP1wGbCyY5N3iyisvPPv85eu43hmN5AwCSAMSiIh0NcBi8d9XEfYxqZQVnbGmJ2YKuXng7LMLq0YcqPMzHfiUsFVJVJ2j9KgfiVsioKVbY8EvZFqO7hyRyJYktfJA4/PJ4fVXfuOVa2+9uYCBSO3wcLPS6aBII00uGIZKu7ZNboBThjTUbkKmY1maLh48fXlS7FN11hvj+8kazXrE5Xu+d7EUQvplG3GEabDISgx0GADoMnZXnvnyky9ev34IM0tGgKVgE8EmslmpTSvF7kCqhpja+1jqaSi9EkQIRY0uCqa++/6Xn8+2Zg9uIJvNpvNUbUWMBq3F3rAxc5KQZUYHYVSEJchXnviXT716aGacF19CQVbgGcLL8hF2bsmsbc0M1nVdn3tmtH/mw31BBaAwPA5aDcJLuTXj7jPPXE0TD3W662MgbBPFKsBJTa2XfaNsSu6IWqUUWE60EhLP//iTz1xLaV5wuao8jKKrQLFxCODuN91xy01bs51528LQdUfd8eV3riwe+ZgHm4aEXmVpj5toVJHTfPDYSy96Wkk1b8ixzaTVXxSxzE0RvBTLzSMWNLmZsvjM33jSmnm8iLHDUelesdnB+f1zF3e2XvzskQPs7/8ftwSiwJAMTyXzpVtxEaIC+jOTCQksDf0Eicz7zj11LdlEqzZzbX3L6ulRMSF0WdlIyY1g4OwqJgQUf/KJbRUWRQtFr61t7ly4/V13Xbzt/FYyS9n/GSXorXcCEYVAZbMl4GI0A1vsjQSKNTcKZJEyhcMn4Wcfe+5SFEZLCLU5ut8ENg50ARDkqWuDUXJDQpZFDs0kQeZXU2lRN7nL5uceuvexi/P9/VkDV1bvZPrjnz1xiq89/xBqQ3s08TDJHAGfGwweRYpY3CNzg5VSfcxz5uzBW569XksoN9SxzeRUWEtALBdrGvdAK+QiCTHQFtLsoX8NJDqVdea2Rx96z20XZp4zvVtGPGTy/t67nqZghy89WL8PYmhlYO1Hj27BpIjxJasFQXh5ZTTF6fzBCy8iTce7ibC1bT9WfsV7fbndp8DGXK6YQBsip/TtP/7aTI7tW+9/34fu2Gn6vl8KRKKDAYPKz37Lk6kn+hdZlizVXJ2DJ4FUeu4xbD6C2rtU9iAjgth3779wfa2+u0pjs35i8tcQwtvhgfWAUrgsDYsxCaeju/N/+luv3vO+hx+4by8t8klRoCJvjvBOuh3WZMfL3SzcG4FAk0UpRc8YRSHH+kHmEFZzmMtLfCzKSSDfcv6ll7KtWI4VMppB8qbowORCSlC/3KZDSGQ0PZRVQqIJUv+tjzx3z4Xk/aLkN6GCDrFEy6LOzbrWxdcXjVm1DqXoqzRCngSiviNGT0zUa82tGMccDM1237mnryXdqKe5dPecInhwEWF5DnuPumqGO43Zs3tZEEvoeP+DZ7qjky7CJZe7GEULyrO7vM+339L3Eq+cGADl6JMK05sEwWEW7KB7dgUqIUdkhC4JnrMKj4V89oN3DjHZ+qFJrDi1j8Pa+fLByZINQGTrRSWm8uZYKIuc+9KmSETMau7FIiiw1jzfUw/i6BiloySYGgWISNGjuMnwyipRlZxQNoqxCqsk1RQ8vfeW567cwEnXwh+GXLsE+BhCNYKabfVIEeikRg4mAHLCBHnZuQMU4DDLoouwcMM5FjT7ghTYZcshnCxpMuWEG1FqmWU+TWLZUl5dTiYPW1kCGopynDv7ynOLU5YdGKCBCS6gia0pHVhq7uPrIk30BGfscFkKOz1SyGOgMiZ3RIzo0b9uVKazX8hl6pey6DwAAI/N4YREEDl61ytuEbU3QuggZ6yRFhnbCCmi7DvPPfcGNwQfddHO1HLUi6I/3ATdc3DS9qownwtl9wOnewQGdXmPQ07zYEb0a6iH5Mo51uL0Hhvm0KlYCRmdIwh8SyJUVhTWzMD7Bm7OurALslpJzth+5M1njk9XPJvwGpWiUvYsyAVjqPnixY67Vz2BrlQwasIFgskikIpuExBmggzIpe9QUoYcbtkgpjY2XJSzNqkLBieUgqyY0sI8ULKcW5SFIF5bsGKHFMHJmw6+eom2wpMKDWjUwBGHq10eee9dMMyazigyJ4cRkqrNj5qxABikUgaUIMvmpOfYr7CXgeDevqdanQpvN3QcZkBJQZ95TLjDnC65k2TKsR0Bncxkjmd48+DBM3mtwbYpKjaI4gSMK+0xswe3MtRud+4yE03KwaNIgQXAi81CRVgBwD2bAOY33j57ZvfSlcZc2t2JbmYY6A6LhM6iedNKeayE2WISRF9k96K0MLOygq0ka04nbt/+cuYaYSWOrsNR9YmVsXzPXi/AZ+0CM1Vb6ynS6cDYohkuGqw0bAQRdpz9r/3jr23d9198/joE+lYbiaPLwLIPqEkwWcTWoXIK2LS3lI05qzeZKXoWCmJERYQiCH7u/ieLliHoadbpwBRBoJDffXOf5c4077pkoJBLYhzm3CQoURkImkwVdo7s/nP/6yH08pdPIsy9ZzsbQCT3ukmGAMjLojnShtgFJvVgXiLHJTlRjGALZSuKKBTq5MKdL9pIhOIrhDYHkjEVt93psVGppzYry1Kkxp5FZas9HiWoZYGnEW0oUuLiF67MnOlKYBX2qKm0G7CAHoFXlqSkASiLBRYuNypl75OXPNPNScbuGKQVLyAod7e8eTwRRq1jHsIAJYiy7uy74UjsSVjT5dbVp0ikyDx8ISw9R0RQ7TGoHOss2L2yxWh4AaCDxyxCMU+KbSbLLnYlv2K0lIRXrLsK56RsJsRSwuLNwsOBKabI085hmhCyyWurBCBC3n6g7cECbjZNzsmyR4ChAl/KLTJcgygvHT0crMvOfY/H3hpmQv7g3X04ZSxh7JCiZFRWTJh7NB/RUM5nKvfJUl3jZZHEw6hY4d7TkpFabq9YjxsnmhSUHtjuGfbcmnDHoKcqbYr27uhjQcnPxLI5DgC51HzvL11ugzHme98HJ+BGJ/MXfvXk9j92s1MeSSfdiqlXZJ0uSurdnYLRZHJFJ4LIaO8y5d5p7DqsEVZ7kVhrCvFLEN9zwS1DrtgKrVn0idHI6Cp2CRLhAW5Gm7fFzrMRuov+6A/93RdnpKBsP/CBJWJPAdnxj/7EVfoX/sZBWZJBugoAFbFJ75YEyh3KjRyuZEYye1nfS0ZrniN7v8AU2Bngt0mBrPLM773VXXIRPVxE4mKenLHDBUKP5RG7lkghUnfG5h0R5OZPfsPf/9dXzXq/87/+3h6NS8r07qf+n74FP//EN/UqjjaqtaC7oWckShC8a2VKEJgzreCujN6daFyQd31ewXWa6sTWBBJSvu0ehden3OE5I2mRLMuYmYyWjbFfcJRSUBCakMFh9aKuHfy1P/X5x6/uv++TF4+EHgId+rn/O5sMOqzzrGhuDhFmAGAGl5Q7MpeIuHSuF5wkiVHodvXdKR3T6MiHUF/S+ftZPG8W5NmV2Ryn1nNrzGKSVBpBwoQFVOi99y8s37XtSVGGwIz93e9hNlte8yQ3g8M+/3ePDZAO7tOQpAA5SqeAOwk3RWvJMsmcBC3yUZZt1y3DgDw4LwyZASt2z0n/R/B//2GLZTphxwNmTna408IpZGQSLkNsGqxoz4ADz//Il7t3f/KPxr53pHsynRRP5zDC1f30j1xuBLL7T97VgUT2CjrkqFTJE2OVqxzHFq2d5gIdTOGZ4USU7wXP3USPoLXlwjWFYd5+aNZBbl5gNw9wyfwELZUzWsKFKIkXYYoF7df+6b8hfuPxp//0bVkB2kcPXXTCJmXh6O/9hJkALN///U53i6V/BLLHLJPKRrlkYHPN4AkgLfbEdjKg6IAiHO59rmX6ajwi9Z2eE+DtI7uZkmKNiuSg9RLaru/UJFiJ1ARQhhwRiEngU59tXU33T77yZz40y0qRgjO2TZP1Yn72R/5NQwnMt/y1cydRNQOFHlRsVOY5BuIQckZ/xKYxgFagbrFU6KMmIrkvh4pbELaWxpSG4/aRgx5elujQ3SG5QEPbZ1FmHr0yJsrKVlshwtwOkGD2+P/8se9/F3KSzEszC83Fqz/1M683BEHf/qFHjwTShZIcWKSgIDyAYGbJ8gJbbrRYhciy+64lK8u13JnzZK9GrDjool8C3B4628Pju3MUS9vk2QWnmbf0nOh0wAsgHdkysmi45cJLSXCm7jO//cnvuk3wHDa5AXT9pS/98u94G/o2/+ufuO4ECnuMzlis6qRHfAiXe9Kh2CczIAXfDCIRvR/uLmrBaVaJlb77Kon0B2/NsRxPkAs5vg4je859Xi730fROpoL6BTLqgIrJ/+W/eUQIMmS/4+N/6PbdtjWJfnx4+bnP/9aRUgygv/BXv+OkynDELYq1BQq6EJtl+MnylZd39uZNAmFMSaV5hiEnyrnPfbMTiX0ljp+e2PryK7/rXpdybNHvYpZcLu+ze87LxX7bjZBLU37HUynI25//3y83EUUz+86Zc2fP3Xpm9+jxly5fP/Sm7AKK7qEfeuQ48gICUcDGUDOMJk4JWb5Yvv21u49z9qalzMI+KhZZUHnZe+7tpuSp3h/GQzWaL8rGfOc9WS5BHgqWQ3myF8e73PIcja1mkhBFIDGklpY/ccvffjwRkJjS8rVLcjIpm5mlAnFm+54fvHAIVtSuoDlC7DEc1AWKJ7HZ297x7vjk2MhkiSYwg4B7znLvty6YDKdEsWSdAeb0t763qJfDlSUP7+8u5d697/MFdAHZ0gCvoA0NQHYaNX/rR39qmWrDdDCUdWshJz3f+t/8CS08MsVAo1iisJKNRG2pJ7xfdtcPz4NgzkcnOaNpSMEc7kIPt/nedqnwappBo9TX4shn34OssmxU4dSV4dmhKJ6yX+zmhVsDRNtYsDrCXiMIdmd+8EP/4HFvIiIpuXBp3JB5d9N3fv/thx0NUFm0P8Y/NTcTYkm0JNl2yoAszdxPTk4WTHDFt3W021tbM4uN/0azqFLRLJEHJbUPNDkwCUnOgNiVAbjLg4KjeeMnPZqyWE91bAX+IT3bN3/gl/7pl7vGSh+AYDA5TB3v+s7vvnt5TSmwtoBzKtqnoXROyDwzuyRriNiCgc3ebj457l0ua+dN2zSmkoRXZZqI4ghO5Xvvdo+V1VEGqP/0nAmXe6ducWGnX2TFxp+jepK1Yd4zmLaX//Yzv/l2T6NF4UtypQuPfts3nVt2ZXeLiEtjNVI0T9MEWbh8z0JGXnQ9txeDAlGAsiyn0OOVgGM4miJFxTX7zq19YRZcQvYAPJ2xCMSVKS26zppo64bDGFBiqVAU3BT5qPnmj1164qlnn756mAGAs/07Hnjfoxebk+sF9PBMi4SnqIYb3VGiexTrIYgNWW12/GiApoa3G7KTuhlQ3C0Bd1jPCKMAecwZ5XCHnAjmLeRAEoicLPdW1jTU1Y7h0KR8yDMf+9bu8ptvHefMtHPThYO590cO0YxOOpjLjmKASDUKiBcuK7irqdZAULV50KP1f6xybLhaoOZnemVJ6OHoPRSL8XVBgsPdkRfHzSy3Td852aekqNFFsu5FwizC8n4J7N6U6JJl9f2h5fAScDmMbKWaaUmxGEiUg0RvUb/NbqhrGasobmTSGmFTwM33rYcHETmqzQIc2V0Od8nh/aLj7Ngt6sYZbNBnKlHMUY9gSDIZG80e1Y24k8EVa/mi+ET0sVcwZcyk3GLHTCAXP0GJSpy0YZbMCsTof2/IsSK53Otdyr3kGXQH4RKKaXRluNRd7tjMlllJlOjmbGI7SNWvSivpD0AVYKZxg/eB+0CqrRTZaSlHSAVmWZRgQEmewnpFBDUdNKuUfR2+rezn4ZYWjXdg7hV7k0jZAfUOSO4u5Xz09ly5yVlLM1psCMHo7KYQ63xLgsio7xroOZOx/gCB+7B0IjXRPg0qqwT1BBwOdO7MTsBWKw4aBn1jkWxWLtUCS5i6LOSALoBIWJSVBUfuu6uX73Jv5ydInkGL9dLwglmVvDNQxhL1ZwAmixYCryl6LMNEX74SL7KF2mIhZ5JiM6fS6XLq+LosmywXBqB39vLcushFKIuIMcPlOb5ALS8XLy0P5LKU3EomGhC1ETH42GZFHuB96EPpdVQum+KweDaU1XAoDWflzrKniRfwdajrbUKebtBLtWJj7GgrLbLTkkDAxd7dxdy76J5z9sXld27eds/NLJ1kuTLgzEhAZgoIpC47h9cNJowOiMrIVtK3wLBYJoVOU6aMdGRIapDDN7qJ5iq7eVezUQRxrYVlQm1ZP1ZI03LpsBRclqjcu+TyLHnnyHmhd3bONsomeYqOD4ENnIS8cSHQWqdFay+o0rMevfocCixloDRE9QSlRhkIktM8S8qK/GW6GfnEdtxIFmtRYvj8yDgPsYgiay6Bfe4c3nf9mbNvYichE8l7d0UrNiJvcSg2eo7QsogY6iIWOMqOwEZFxZexzK4Y9qrUIdOk9ar4xmp6PI7/BnSNfiwYq3S0g15gQ7pcOSPK4n2We983F/ZmW81WY4IV9KpjkhQDQY5+eUPZidRKA3RA/LBoyTbGjnIGsLDJ6sY1hAQHnJZTrwKbqq7wXdewaaVhyA4AnVq0I13bWbZN7HaDnHt61rLPDu99dn6GzmYpKaNrAwph8gyi7ORQeuPc2ETujYgdS5NKoUTRrEIoNiqVRZUaILI5osjdm+fYqMeoPPquUxxjRedXrmjWLpodH+1K7mVzInW577Kycp6dnxFSP1tGe1WSZ8JlAQfHyt4SqnoJF8tOzaXOj2yoyHdpOyibhNRWqizz8gUMInLKw/pC1DAdg22s1lCYYgCDKE7BDoHaORK6xuTeedfLe889MubnZqEXPsuGLidlWO5NyskkcymwI0F0OlS+1y6ao0pq6zUYgggzz7FAXLG7FgTkKL3BmZQjnHTzQgEHSgYGVZ6cUrZT68c0PzIu6R1y78wn2bOa/Z02en0gzHp3ZYLogVzqOCLD9oVkRAeKzB0oTSkUkGJ9RUEhnO516ay8VqGgpNh9JVsWKCVTSbq+TgQ1cGzUsVEfQx5SetPMOzY5d94JbPd2WmFodTMScnpvcIeIHJXu2gQThSATHTnqqS4Lec0AyvaQBiFHXVyQwYYcngJyModiyRC4OsQNRE3N/qhjoX/jh5rzrWvaMnfPqZ1tbwVyEfOagGTu2UX0ZnR3uQmUF6WSZCrlBFBCRsR+hCsi39i5VlEBAp3JU7R3FDdOM4dnM5nLZKXH7kbZysaTa9/bQgHeXDy4dug2n89ms9CM8g1NbiWb9D43TecRhca0xmIchwN93eCOHqvkiJxVvtxVgDNH7zRcQGOsKXNomSejB3rvlNEYmyzdiITNRzO4sclP7uy4o37NSgFLvISUDZXZNUxNJ6dcJsX6JIpM9PgW14hbXbBQSDhpyEZ5wPRRVQ+VlCv6FyGWYCWDyqWBL6/1E/2708xJdM+hRhamtZEU5djyZREo3YLWdlLfJWNyKBIMyWIFsOWwFTKZld34mGIFaqm916KI6pOdBfSNL2VgA3dXij4qkLI87dsrughsDH8Hmuvu6afiLg14mteNemMlsje9pL6D5TCHGbEzHDKEFlnJBWeuuYZ7gN8sjaG1Q7uYl3hTZlgYY+w8myD3WCeXladDm7rhG9NVIG6d5i+HONqGvqh6ieSeDZRliaaIpWRetiq0utspEIVQN8CjpTa+viQS89JRqviOpEwWSDl2Bxn2FJ0klKuDHAOpFaqDsOGvQctq8FINZUQTZYEvhHaRjblTWxf6utPUB6IeG1Y1hZkVNk/g0KrJKLsR4QFLK4QTiLVUmdkgulORINikJU83ouPUsdbAookEr3i8CO0EAKldeHLPaiObMJ/JTT3bxjNShExlO/4oMpGu0sgTqIGLtFiZUN6RKFqO3QtKBc8T3ZhhqhuVjU66QJGrJ1YJWzsxkjTIXYn8S+xca8TZPKuJmkgX22cuUvRbozTGgXJYcIYBDVkOkTCjYqlqtLwYDd7Xjq/YjRtAo46GXqd2MV2JQ1Yc9EDYAMOe+nCYhJKnlp9Oyrt5cutsaRCUk8BsYlhzA10pAlsvgFoFZLNF1BiNFk4wh6Ay1lpnCCZDbAWCLJnnPAV7p2jhVInGkzHkZkr7qGGsQfPpxxjbE1OHBg4gSWKmpyRAVpZOlF1NRCvYQcwIJFgqvRVR9y2wCDMhuGjISpBypsWyJ4ukYJjlyfAHrGaNlwDUbDg5/PtUE1KIZNt0lsWGjtgujW5dFPtlQAkJM+lsQMVaPqqsK0ry8uAUNaLInIsKZ9IkmHsSYgv1vrii6SSPzmiFWxMCTi1lHEkZP1HlHQPUn3eiFtb0yL2l8t06sVeVl+zLRNA8JyqWLTmELNEWjO2e4ruIxbKBV06Qm5QQwY45rCwNOW0ZhuB1FVyc2sxN/Yql87PGVxpvKsTN2o7wpVIm0Uc7jhGuFJF9aVrMxl4mKDwUs4gczRmxwLhmkIAB2REbAcKJQBPgIVMbVOkUjesZ9sblE5VAjcldadqKGXKz6A+PNDGbwZ1k9qRosY8HZLMsAuaexSSHs28AQm5wRb23xPsAPBwVlePbbDtv3FK3quu/y2MDYRxVajUZqh/J5jlTyjDLBqGLRQRsEAEDinsOk1m6NXOOBn039ASyEPJIQAnuRKZb7A4RVQDJe7WWrdrkzeBo7Z1b/WTDOujRyg/BpoaHxglLKllSypaQ5Qm5j/IJwfhW+QQC5h1Lw17ESlktzJ1OIUcgLPRya9wb5kTIwUDBMvpkmLaYr4V9g36c+mjzOuiRwol+VQUDAIuWDIc3RjdzZEb7irVZyCTp4aOTAORsgbEBNEd0JQCgMpnd6WY9mKGczHsD6LRObjvtkjcc4ibHPBA20L4yEZjYwek5lEyg7aL7QC5jH3C4ZMjO8FMR/IY7l4sKJxBxZy65WnJBxmxIYVlg8BzltYQlYDtbKLt8hoXfVF/ZTHdThzq5qrB+tBtFGkbn6Gm2iE2I3HITzKGzZzRo0mNvXIc8yuSFEgEmg3IuMbLCkrplUZZTTnKJnWbW9Zrtztn7EL6eDve+ztHgdIlmgqvWomH9WRTNmEx9Cgwml/IgSCRK2aI2lhWr6Utm4JEbe47tM1lgHys9nq6UvZRXsswXJ7Z/0Fh5ZY2VsRYmltNT2aqEbfDPBS4aZ6jeWQ2+oBRRiPVGhrbTZfKWGT3B+PKgWBConKJbKSlb9p5MgOCxZwdgvShDbyxbIPVyt4OtXSPZTUhZDQonMOOpD9dq0OWGYganuRlqT0ZVM0sdJCJ5WJHUZ5jIrmydOaxEzITlDgDhjgy4pyYrei2NcqVlLApmD8upp9SbbR/MGwOQMzeMejy14oymV53egUU1tSyuM4QaJScc+sFmfZQn6TAz7yO5Eur3C8S6OY8rSudhrHtOSe50JdIzxKWb1Hij3np6R7ntHOy0VPKClQyjWDVotet3KFtOSVvb1G4w7yjYxODHagsHSy466/vsRN/E6l3CMsK1URkJnUSj+lhKEUUpc2bvTXIpMdPdDDkTSr3lnBOgnLWzf25W2+S6aQivkYCp9Ght+EHY1JdziHZH4x7OYlBelWY5N0MjSTlBYeNSViwQlVkuHfGIbudYy5l7JuQ+KbYsyKDQowD/vYSsDGztnZknS7E8vO+iJWcypOqVi8pXfG39WEtbJgndZA7KcsOIdQvG67MjNlR2UUxAru05DtAttogvq6WiIdYldyD1TGQfjWUu5aQMeDZBud0+mM+TodTaVdqXpoKoISAvFnPVTQ/Y/SqtGoKuqWerBeP64PCUWyc50SQHlEiWLVPqcmIgVfMd62pjF4aup7kDPctXTNIbJbl3ltKZ7XnbGGkBGwe8X4cx6tqqkVxlV/1jQ0i1IpoDlgMO9MUUqZkfySCkHlkNJbkZ6hSqiK1DQl8QqWzuveVcN9xxkMlcObvPtnfmW42VeD+2fvXMCtvXh54+NjvrZhrbnrolQoYiC9FyAkPp5mhN11oTQOYczTPhpovTkylgmNqCC2Sx18Kjza9TQOLKTuPuwazZImkmj+0jlEr9qRqK9bjv6zQcre8kNtQMK9MnclnTcFW4hNz2w7Z8L0hvprripnwFg7sZemVFP3d0+cizN1EIRu0Vc7Xznd2thja1cd6Ueudg+dZF7oYMAWJz1om5rHQNocYggkUsix+AIFq/p+szCxFxMAejkAEpgOGcJUK9C67sovcOdDn6HJFMiZ529re22iZFm2j5OmUpmzLiFEsSNQ2EKnmnmTnl2HBMOVxcc3lkDdqK6SVEyzvNYW7gmWEto3OBmfBsHisEkWPhWu5dFLE1u3QEWmJKRhC2tb9rs1JLSgGWOg0GV2fFqXJq/NaIOMXMIGyN1qntpKqv5vT5LE4Est7avcWJIXnXyLIckYogGpVyUlYPuGfvl4uT9qPbZk268tqsaQGIqWm25vNEgyF6mzMDDBcADB2rm1zVSkKFU0yb7MByajJGzRoahCqtcRiFtMOT3oXeYkvEUPjSLieDsHDPuffc92l3W3Dc8zIANrO2aZvUWqyLDTDSWSvtFNhhKCGWusmaFG76XQkDR1YOWyiEXp7OPrWSzVLNEtS8XS663KkhAPaUJ3MX5KkXfJH73pHm8hRW3G/bvw7IkqUmMTWxTxMUG6/F6BWrLMqa1KGx7AZNYptFsXKLdXJqwLihx2f9lBEupa0tR3ey7HLgTerMBfceyFJvCb2TDbmAZUrz259kSslIj73hQQEe4VH4TRH0+NbNIQuEVjg2Ocp1Kx9N12iOKhXFggp0Yww3gOlJmfUS3ZBos95z7nNeunuAoewFcsfycewg0wrRg/+uFwxJMk80KicAoim24g4kOSf60ABY53wslU+IGszCmo4NZyp1pdg23r6xPat0dDQeG/aYwDaK1bnLfQZANvmkT2bdsl+457L3HgCd3bsuT64ElG6DEv/3lqNvWuiNnY1FyQk7WBetnKZmwrbTe3GPgjhMj4Z1A6zwRzRIwtKyuHCHGXsCTeuCcm6M3F56wmxm6JygLFpRlG7/UhNbJgilBBhbKOXEUs4pysX6Ko1jEzbEVqes31oQPKTOg68ugXH1jNMkAhyWRgmUaiXPSE+ElYWBOdE65SXQthAd9Affer2Juj2i8I4oyqNPSW6xTja2KuCKBm0GTFGne3KchgbqQ0q0W5leSSvBfnkPlWI/I8EKahbrzlNAIuxFQ4tG3vQVIaSahy4tLHt8CUymZUuxOQi6qIqlDOdMJRkrAMyAVK2PdZNBmX4LiAqfquQJkyCYlTFDXAMAYrNg7OBOivRMQKZEl1QwYZsldbbly61wUIIuPvw7tNYK7NsnwBP6lJw9yZ6eZznVxrGydVqUDoehlpEMSf46YWsltZLDDVH1QEK5ojq9YnlJmmhwkwtISTW8h8Otrt1IXPT07R2WJb3yR956bd4Ryct+AdHJnQlHm5cJltGWV4744CoJHFV/A9NWtzrl8EPFaQKlr6H0RLAaxKpsaeYWKwtFyGlRU3emlEwCaWxmW3vbTcMk1C8axTedPTpZ9p1LGfGVMFEvy/C+7+AnKcqeQ9gzmd1BPLWxbT0IWyFr9AeFgBGjHCJpTRhHUCkpOgSsbFZljD0covXFBcJms3mL44Z17oTtx7jo+n4plq0iSUDZ1XfLpP4kzQZhmQY7hbghRFr/ZCRsctfUn6maJAAYdHglMSuiqTZHeEejwYyWZGaQx9druiUzMzNwd1B0or/17uOTRZ9zhp+cOLxf5h4ZnR/lZedpu1zH9TeO/xAxLKLFOqHr9bEVjQvQqmrqGI4OlkikkKyb08tSCSVzGUuqU/ZmIh20Zr6zAt7e/+Kx0XKHhgsl670huUjLJWdzzpoJEq3TwxuFZ50xlWOnwwoOpNdWO6mCBMUvl/8IgMSsP/bSegSjlW9bZkqx451cWQIX2810/vPZh3K3WGTvlmrcHVp23ZL9Yraz1TQ7satwfcUKaIZpXHejozkdw9c6S5HjCbxYCWX1BmFybX6MJDPQa/OJwNgixqMRW/D+5HyVoHhivv+FK7N84jajMXZ5aV3poGHqdsdenLKPDWtCOCFws6EvHDvFrhG72XA5p2fLRBIpOQTF2iPvpV4i0BceR5/DkQ7WYMvmw36cHeoWS/e86NEve7Xe+8LbIZgoy66qxdqUcnA05hsJG4C28sDSOlC24+S4JqgEjOVlIpsZ+8HdKGd3xRpFiRb4fd8fH7STiZYA3fLY5UXXpdmsTWh3WqQ0Y8798upWHcvQzF5ulFYnFhhs/hrjVvruhw73SWg23DQq3iSXAWSCt72iX6B8K0EUnAnRKM8wX3Z2bl1o2D9y+CT6prFYfZYSTOiRzm15hXAmIXAdZcSsUTDYGE0VwlZumqBUJWAZw9/yb2rKMkZLbHvSJzhhLlK5QbboQne6MvoMv2nuK0E64MRH2jfSMdD0tgCyJczbncXsDAcl52iHxzs1TcMmcfF0AlaKEkPkO7CqovaaPKGuB67TCUDWdoAxiYpt+tGXld9yV/aUj2+uzYsa50/4hkuvLmaWTTPNttpGyHlvx+ljbrnh14pnO+WIC2GnbeL6JQNCunLl9C/zlOddzxaQlWA40Au53D0zv1XyiLWiD3HruVeP5jtN25DpZJmwvZW8ZBCFH0PjDEa0SkMQfKOjWZPfVTBLqOEGgLIsRaVJm8UsigBsttjNnU4SLYny3OdY2+B0wPTW649xEtgNEilh613HV49PZk0CbWceC7BKa2oJDMYGKE1IGXECrQphIWyFDSuBxxjcV9EbpUPjn5HqGq7efK5fnvSeYUlZDeU5tiAyXr50+7m8/pKis/LZRZcczUAORhnnSnSx0WedYscpwoSh+glw0ttcLUg47NH2VqMsAdv9CxcP9va73HVZaMW6Y4zYH1+96T4fJ33ljRDlrBvpjnn7OFaOpzdKHrVJIptTl0x1gLUkPbxllP0SYw8Vx4Ptd97c292d0Z0iskxwidYvj+YPJU1ZNZnfEDYUN1wmsKxIiWZ2iJM662my1nSp/F4xHlOzqmr+hnK7Jo+pMH5xNTFHF/Lhl7qLZwjK3Nm797Jk3vP+pjieYeKjrDEqcYmY1nW3Li8d+HeKuoJ/T/xUufLTa/Sv/sEaMaIMptjD4R8TwgDi5Iv9hf397Obe0GRt4uHby3fNTm2ZXfk3KPLQjzCZ/ProQYs2yuIGBQPAz5zWzckbT5+pvroOYVDykCm+/TYunM3bdtjM+x7Lk5Pl/EL9NhFN38QqnCOAQagGGsTA0BtEuf+OYwWlmrrBieUqXrrEHgOAHn+zbDkSO2hR588cH76cmoZbC+TFSbPXtvUbMFaVYahOVTIL26qgstrEtRm+EaVrZ9cA0+HTKX81qEEx9aNalBRmki3J9nfVLRd5uSXb2rchmD51qM5JFToNZe7R1k9dEMZgasOxdnZ9pUQlpxqs4XIOQq8ahRIDvyY+Te6pne3VRMOJjRI9jXNQnVdd11M/4jB/m1TslEGY8vLUGoSgr4wmOnKKBRUCWStrOcqrByM2vCE20vXSozFaFq4uWq+3T4xPuX4Af4vucfLs6W9h8vTg5ZgubibsP4DjDwj7PT3+vQz61z9+fxD29eCmf8/j9wdhvwfHHxD2e3r8gY797o/fH4T9B8ux34PjDwj7/9vx+4Ow33vjMalbcFKlqPmWCvJayoC1DKHVlKx0K9UkvJzVaqo5TeFqZjsuYKjgXn1yrT9g8pZTqcL0ivVqi6bPHI8J2ldBuCHbVtk6dmV+OL0XJcVeAZMHdIbDwws0VBGI8nNoqVk/VrKxU59ONtddgQgqAAusZsBchYJOPW8CrI7PHLLw1WydqB0JK+dYMr5hJL8Ld3D6gv8XUeiASTCVHlgAAAAASUVORK5CYII=", - "text/plain": [ - "" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_9.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "# SVDを実行\n", - "a = np.asarray(gray_img)\n", - "u, s, v = svd(a)\n", - "fullrank = matrix_rank(a)\n", - "print(\"full rank => \", fullrank)\n", - "\n", - "# 陽に必要な行列要素の数を計算する関数\n", - "def num_of_me(u,s,v,rank):\n", - " m,n = u.shape\n", - " return m * rank + rank + rank*n\n", - "\n", - "#低ランク近似を得る\n", - "for factor in [0.05, 0.1, 0.2, 0.3, 1.0]:\n", - " rank = int(factor*fullrank)\n", - " ur = u[:, :rank]\n", - " sr = np.matrix(linalg.diagsvd(s[:rank], rank,rank))\n", - " vr = v[:rank, :]\n", - " b = np.asarray(ur*sr*vr)\n", - " img = Image.fromarray(np.uint8(b))\n", - " USVd = np.dot(ur, np.dot(sr,vr))\n", - " print(\"rank\",rank, \" Fnorm \", linalg.norm(a-USVd,\"fro\"), \" # of m.e. \", num_of_me(u,s,v,rank) )\n", - " display(img)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YOB6BFXV58Th" - }, - "source": [ - "幾つかのrankについて元のグレースケール画像との差分(フロベニウスノルム)と、陽に必要な行列要素の数、近似後の画像を表示させてみた。\n", - "\n", - "元の行列(rank=196, 行列要素の数103292)に対して\n", - "rank=39, 58などでの近似を用いることで、大体2-3万の行列要素で画像を表現できる事がわかる。\n", - "\n", - "今の場合は一枚の写真のみでサイズもたかがしれているものの、例えば画像認識タスクを行う機械学習モデルの訓練の場合には、一般に大量の画像データ(とラベル等)が必要になるため、近似で削減できる情報が数分の1スケールだとしても馬鹿にはできない。\n", - "\n", - "実際にはSVDを計算するコストも勘定に入れなければフェアな評価は難しく、SVDを陽に用いたアーキテクチャがやりたいタスクに対して最適である保証はないが、実際に画像認識モデルを作り学習を行う際には一考の余地はあると言えるだろう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zTJqCqNnU5hR" - }, - "source": [ - "### 練習問題\n", - "\n", - "上では、`numpy.linalg`にある`svd`でSVDを実装し、`scipy`の`linalg.diagsvd`関数を用いて低ランク近似を計算した。\n", - "かんたんな行列の例を参考にSVDの結果得られる$\\Sigma$の行列要素を書き換えて、もとの行列の低ランク近似を計算し、ライブラリの出力と一致するか確かめてみよう。※SVDや行列積などはnumpyを用いて良い。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition.txt deleted file mode 100644 index 2164a5c2..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition.txt +++ /dev/null @@ -1,65 +0,0 @@ -import numpy as np -from scipy import linalg -from numpy.linalg import svd, matrix_rank - -# 適当な3×3行列(rank(A)=3)を作成して表示 -A = np.array([ [1,9,6],[2,4,6],[3,8,3] ]) -print("A\n",A, "\nrank", matrix_rank(A)) - -# SVD(特異値分解)を実行 -U, Sigma, Vd = svd(A) -print('それぞれの行列(U,S,Vd)の形状を確認 =>', U.shape, Sigma.shape, Vd.shape) -print('特異値 => ', Sigma) #Sigmaは対角成分のみをベクトルのように持っている事がわかる。 - -#積がもとのAと一致するかcheck -print("USVd =>", np.dot(U, np.dot(np.diag(Sigma),Vd) ) ) - -#Sigmaをrank2で近似してみる ≒ 行列の(2,2)成分を0にする -Sigma[2] = 0.0 -USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) ) -print("USVd@rank2 =>", USVd) -print("||A-USVd||_F ", linalg.norm(A-USVd,"fro")) -#Sigmaをrank1で近似してみる ≒ 行列の(1,1)&(2,2)成分を0にする -Sigma[1] = 0.0 -USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) ) -print("USVd@rank1 =>", USVd) -print("||A-USVd||_F ", linalg.norm(A-USVd,"fro")) - - -import requests -from PIL import Image -from IPython.display import display - -!wget "https://raw.githubusercontent.com/SotaYoshida/Lecture_DataScience/main/notebooks/pic_for_notebook/u_ta.jpeg" -O u_ta.jpeg -# ls コマンドでファイルを表示 -!ls - -#画像ファイルを読み込み -img = Image.open('u_ta.jpeg') -gray_img = img.convert('L') -gray_img.save('u_ta_mono.jpeg') -gray_img = gray_img.resize((gray_img.width//3, gray_img.height//3)) #画像をリサイズ -gray_img - -# SVDを実行 -a = np.asarray(gray_img) -u, s, v = svd(a) -fullrank = matrix_rank(a) -print("full rank => ", fullrank) - -# 陽に必要な行列要素の数を計算する関数 -def num_of_me(u,s,v,rank): - m,n = u.shape - return m * rank + rank + rank*n - -#低ランク近似を得る -for factor in [0.05, 0.1, 0.2, 0.3, 1.0]: - rank = int(factor*fullrank) - ur = u[:, :rank] - sr = np.matrix(linalg.diagsvd(s[:rank], rank,rank)) - vr = v[:rank, :] - b = np.asarray(ur*sr*vr) - img = Image.fromarray(np.uint8(b)) - USVd = np.dot(ur, np.dot(sr,vr)) - print("rank",rank, " Fnorm ", linalg.norm(a-USVd,"fro"), " # of m.e. ", num_of_me(u,s,v,rank) ) - display(img) diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_8_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_8_0.png deleted file mode 100644 index 6f8260f6..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_8_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_1.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_1.png deleted file mode 100644 index b732f944..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_3.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_3.png deleted file mode 100644 index 47d2b120..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_3.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_5.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_5.png deleted file mode 100644 index fac56b39..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_5.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_7.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_7.png deleted file mode 100644 index dd1145bf..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_7.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_9.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_9.png deleted file mode 100644 index 76eb3225..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_SingularValueDecomposition_9_9.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_StyleGAN3.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_StyleGAN3.ipynb deleted file mode 100644 index 8adaf234..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_StyleGAN3.ipynb +++ /dev/null @@ -1,421 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "lHyvtTv97lQH" - }, - "source": [ - "# StyleGAN3+CLIPによる写真生成\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4_s8h-ilzHQc" - }, - "source": [ - "このノートブックでは、StyleGAN3+CLIPを用いた顔写真生成をデモンストレーションする。 \n", - "*ランタイムタイプはGPUによる実行が推奨 \n", - "\n", - "\n", - "\n", - "参考: \n", - "- [StyleGAN3](https://nvlabs.github.io/stylegan3/)\n", - "- [GitHub](https://github.com/NVlabs/stylegan3)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FTFcPiKW85XJ" - }, - "source": [ - "**StyleGAN3及びCLIPのライセンス**\n", - "\n", - "- StyleGAN3はGAN(敵対的生成ネットワーク)を用いた生成モデルのひとつで、NVIDIAから[こちらのライセンス](https://github.com/NVlabs/stylegan3/blob/main/LICENSE.txt)のもと提供されている。 \n", - "\n", - "- CLIPはOpenAIによる画像とテキスト(自然言語)の関連性を学習し画像分類を行うモデルでMITライセンスのもと公開されている[こちら](https://github.com/openai/CLIP)\n", - "\n", - "以下のコードを実行したりする分には問題はないが、別の用途で用いる際にはライセンスの詳細を参照し遵守すること.\n", - "なお、このノートブックの作成においてはこちらの[レポジトリ](https://github.com/ouhenio/StyleGAN3-CLIP-notebooks)を参考にした。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VdvqJ8Hx9Sxq" - }, - "source": [ - "## SetUp\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "PzDuIoMcqfBT" - }, - "outputs": [], - "source": [ - "#@markdown **準備** \n", - "# @markdown このセルを実行して、ダウンロード等の準備を行おう\n", - "\n", - "#@markdown ---\n", - "\n", - "!pip install --upgrade torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html\n", - "!git clone https://github.com/NVlabs/stylegan3\n", - "!git clone https://github.com/openai/CLIP\n", - "!pip install -e ./CLIP\n", - "!pip install einops ninja\n", - "\n", - "import sys\n", - "sys.path.append('./CLIP')\n", - "sys.path.append('./stylegan3')\n", - "\n", - "import io\n", - "import os, time, glob\n", - "import pickle\n", - "import shutil\n", - "import numpy as np\n", - "from PIL import Image\n", - "import torch\n", - "import torch.nn.functional as F\n", - "import requests\n", - "import torchvision.transforms as transforms\n", - "import torchvision.transforms.functional as TF\n", - "import clip\n", - "import unicodedata\n", - "import re\n", - "from tqdm.notebook import tqdm\n", - "from torchvision.transforms import Compose, Resize, ToTensor, Normalize\n", - "from IPython.display import display\n", - "from einops import rearrange\n", - "from google.colab import files\n", - "\n", - "device = torch.device('cuda:0')\n", - "print('Using device:', device, file=sys.stderr)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "Zxbhe4uLvF_a" - }, - "outputs": [], - "source": [ - "#@markdown **必要な関数の準備:** このセルも実行しておこう\n", - "\n", - "def fetch(url_or_path):\n", - " if str(url_or_path).startswith('http://') or str(url_or_path).startswith('https://'):\n", - " r = requests.get(url_or_path)\n", - " r.raise_for_status()\n", - " fd = io.BytesIO()\n", - " fd.write(r.content)\n", - " fd.seek(0)\n", - " return fd\n", - " return open(url_or_path, 'rb')\n", - "\n", - "def fetch_model(url_or_path):\n", - " if \"drive.google\" in url_or_path:\n", - " if \"18MOpwTMJsl_Z17q-wQVnaRLCUFZYSNkj\" in url_or_path: \n", - " basename = \"wikiart-1024-stylegan3-t-17.2Mimg.pkl\"\n", - " elif \"14UGDDOusZ9TMb-pOrF0PAjMGVWLSAii1\" in url_or_path:\n", - " basename = \"lhq-256-stylegan3-t-25Mimg.pkl\"\n", - " else:\n", - " basename = os.path.basename(url_or_path)\n", - " if os.path.exists(basename):\n", - " return basename\n", - " else:\n", - " if \"drive.google\" not in url_or_path:\n", - " !wget -c '{url_or_path}'\n", - " else:\n", - " path_id = url_or_path.split(\"id=\")[-1]\n", - " !gdown --id '{path_id}'\n", - " return basename\n", - "\n", - "def slugify(value, allow_unicode=False):\n", - " \"\"\"\n", - " Taken from https://github.com/django/django/blob/master/django/utils/text.py\n", - " Convert to ASCII if 'allow_unicode' is False. Convert spaces or repeated\n", - " dashes to single dashes. Remove characters that aren't alphanumerics,\n", - " underscores, or hyphens. Convert to lowercase. Also strip leading and\n", - " trailing whitespace, dashes, and underscores.\n", - " \"\"\"\n", - " value = str(value)\n", - " if allow_unicode:\n", - " value = unicodedata.normalize('NFKC', value)\n", - " else:\n", - " value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii')\n", - " value = re.sub(r'[^\\w\\s-]', '', value.lower())\n", - " return re.sub(r'[-\\s]+', '-', value).strip('-_')\n", - "\n", - "def norm1(prompt):\n", - " \"Normalize to the unit sphere.\"\n", - " return prompt / prompt.square().sum(dim=-1,keepdim=True).sqrt()\n", - "\n", - "def spherical_dist_loss(x, y):\n", - " x = F.normalize(x, dim=-1)\n", - " y = F.normalize(y, dim=-1)\n", - " return (x - y).norm(dim=-1).div(2).arcsin().pow(2).mul(2)\n", - "\n", - "def prompts_dist_loss(x, targets, loss):\n", - " if len(targets) == 1: # Keeps consitent results vs previous method for single objective guidance \n", - " return loss(x, targets[0])\n", - " distances = [loss(x, target) for target in targets]\n", - " return torch.stack(distances, dim=-1).sum(dim=-1) \n", - "\n", - "class MakeCutouts(torch.nn.Module):\n", - " def __init__(self, cut_size, cutn, cut_pow=1.):\n", - " super().__init__()\n", - " self.cut_size = cut_size\n", - " self.cutn = cutn\n", - " self.cut_pow = cut_pow\n", - "\n", - " def forward(self, input):\n", - " sideY, sideX = input.shape[2:4]\n", - " max_size = min(sideX, sideY)\n", - " min_size = min(sideX, sideY, self.cut_size)\n", - " cutouts = []\n", - " for _ in range(self.cutn):\n", - " size = int(torch.rand([])**self.cut_pow * (max_size - min_size) + min_size)\n", - " offsetx = torch.randint(0, sideX - size + 1, ())\n", - " offsety = torch.randint(0, sideY - size + 1, ())\n", - " cutout = input[:, :, offsety:offsety + size, offsetx:offsetx + size]\n", - " cutouts.append(F.adaptive_avg_pool2d(cutout, self.cut_size))\n", - " return torch.cat(cutouts)\n", - "\n", - "make_cutouts = MakeCutouts(224, 32, 0.5)\n", - "\n", - "def embed_image(image):\n", - " n = image.shape[0]\n", - " cutouts = make_cutouts(image)\n", - " embeds = clip_model.embed_cutout(cutouts)\n", - " embeds = rearrange(embeds, '(cc n) c -> cc n c', n=n)\n", - " return embeds\n", - "\n", - "def embed_url(url):\n", - " image = Image.open(fetch(url)).convert('RGB')\n", - " return embed_image(TF.to_tensor(image).to(device).unsqueeze(0)).mean(0).squeeze(0)\n", - "\n", - "class CLIP(object):\n", - " def __init__(self):\n", - " clip_model = \"ViT-B/32\"\n", - " self.model, _ = clip.load(clip_model)\n", - " self.model = self.model.requires_grad_(False)\n", - " self.normalize = transforms.Normalize(mean=[0.48145466, 0.4578275, 0.40821073],\n", - " std=[0.26862954, 0.26130258, 0.27577711])\n", - "\n", - " @torch.no_grad()\n", - " def embed_text(self, prompt):\n", - " \"Normalized clip text embedding.\"\n", - " return norm1(self.model.encode_text(clip.tokenize(prompt).to(device)).float())\n", - "\n", - " def embed_cutout(self, image):\n", - " \"Normalized clip image embedding.\"\n", - " return norm1(self.model.encode_image(self.normalize(image)))\n", - " \n", - "clip_model = CLIP()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "_aZvophLZQOw" - }, - "outputs": [], - "source": [ - "#@title { run: \"auto\" }\n", - "#@markdown **モデルの選択** \n", - "\n", - "\n", - "#@markdown There are 4 pre-trained options to play with:\n", - "#@markdown - FFHQ: Trained with human faces. \n", - "#@markdown - MetFaces: Trained with paintings/portraits of human faces.\n", - "#@markdown - AFHQv2: Trained with animal faces.\n", - "#@markdown - Cosplay: Trained by [l4rz](https://twitter.com/l4rz) with cosplayer's faces.\n", - "#@markdown - Wikiart: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the Wikiart 1024 dataset.\n", - "#@markdown - Landscapes: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the LHQ dataset.\n", - "\n", - "#@markdown ---\n", - "\n", - "base_url = \"https://api.ngc.nvidia.com/v2/models/nvidia/research/stylegan3/versions/1/files/\"\n", - "\n", - "Model = 'MetFaces' #@param [\"FFHQ\", \"MetFaces\", \"AFHQv2\", \"cosplay\", \"Wikiart\", \"Landscapes\"]\n", - "\n", - "#@markdown ---\n", - "\n", - "model_name = {\n", - " \"FFHQ\": base_url + \"stylegan3-t-ffhqu-1024x1024.pkl\",\n", - " \"MetFaces\": base_url + \"stylegan3-r-metfacesu-1024x1024.pkl\",\n", - " \"AFHQv2\": base_url + \"stylegan3-t-afhqv2-512x512.pkl\",\n", - " \"cosplay\": \"https://l4rz.net/cosplayface-snapshot-stylegan3t-008000.pkl\",\n", - " \"Wikiart\": \"https://archive.org/download/wikiart-1024-stylegan3-t-17.2Mimg/wikiart-1024-stylegan3-t-17.2Mimg.pkl\",\n", - " \"Landscapes\": \"https://archive.org/download/lhq-256-stylegan3-t-25Mimg/lhq-256-stylegan3-t-25Mimg.pkl\"\n", - "}\n", - "\n", - "network_url = model_name[Model]\n", - "\n", - "with open(fetch_model(network_url), 'rb') as fp:\n", - " G = pickle.load(fp)['G_ema'].to(device)\n", - "\n", - "zs = torch.randn([10000, G.mapping.z_dim], device=device)\n", - "w_stds = G.mapping(zs, None).std(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5XAAf8jZevsl" - }, - "source": [ - "## パラメータの指定と実行" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "z1rqpxkmd_wt" - }, - "outputs": [], - "source": [ - "#@markdown **Parameters**\n", - "\n", - "#@markdown `texts`: Enter here a prompt to guide the image generation. You can enter more than one prompt separated with\n", - "#@markdown `|`, which will cause the guidance to focus on the different prompts at the same time, allowing to mix and play\n", - "#@markdown with the generation process.\n", - "\n", - "#@markdown `steps`: Number of optimization steps. The more steps, the longer it will try to generate an image relevant to the prompt.\n", - "\n", - "#@markdown `seed`: Determines the randomness seed. Using the same seed and prompt should give you similar results at every run.\n", - "#@markdown Use `-1` for a random seed.\n", - "\n", - "#@markdown ---\n", - "\n", - "texts = \"female | smiling | black hair\"#@param {type:\"string\"}\n", - "steps = 100#@param {type:\"number\"}\n", - "seed = 1234#@param {type:\"number\"}\n", - "#@markdown ---\n", - "\n", - "if seed == -1:\n", - " seed = np.random.randint(0,9e9)\n", - " print(f\"Your random seed is: {seed}\")\n", - "\n", - "texts = [frase.strip() for frase in texts.split(\"|\") if frase]\n", - "\n", - "targets = [clip_model.embed_text(text) for text in texts]\n", - "\n", - "picmod = 30\n", - "\n", - "tf = Compose([\n", - " Resize(224),\n", - " lambda x: torch.clamp((x+1)/2,min=0,max=1),\n", - " ])\n", - "\n", - "def run(timestring):\n", - " torch.manual_seed(seed)\n", - "\n", - " # Init\n", - " # Sample 32 inits and choose the one closest to prompt\n", - "\n", - " with torch.no_grad():\n", - " qs = []\n", - " losses = []\n", - " for _ in range(8):\n", - " q = (G.mapping(torch.randn([4,G.mapping.z_dim], device=device), None, truncation_psi=0.7) - G.mapping.w_avg) / w_stds\n", - " images = G.synthesis(q * w_stds + G.mapping.w_avg)\n", - " embeds = embed_image(images.add(1).div(2))\n", - " loss = prompts_dist_loss(embeds, targets, spherical_dist_loss).mean(0)\n", - " i = torch.argmin(loss)\n", - " qs.append(q[i])\n", - " losses.append(loss[i])\n", - " qs = torch.stack(qs)\n", - " losses = torch.stack(losses)\n", - " # print(losses)\n", - " # print(losses.shape, qs.shape)\n", - " i = torch.argmin(losses)\n", - " q = qs[i].unsqueeze(0).requires_grad_()\n", - "\n", - " # Sampling loop\n", - " q_ema = q\n", - " opt = torch.optim.AdamW([q], lr=0.03, betas=(0.0,0.999))\n", - " loop = tqdm(range(steps))\n", - " for i in loop:\n", - " opt.zero_grad()\n", - " w = q * w_stds\n", - " image = G.synthesis(w + G.mapping.w_avg, noise_mode='const')\n", - " embed = embed_image(image.add(1).div(2))\n", - " loss = prompts_dist_loss(embed, targets, spherical_dist_loss).mean()\n", - " loss.backward()\n", - " opt.step()\n", - " loop.set_postfix(loss=loss.item(), q_magnitude=q.std().item())\n", - "\n", - " q_ema = q_ema * 0.9 + q * 0.1\n", - " image = G.synthesis(q_ema * w_stds + G.mapping.w_avg, noise_mode='const')\n", - "\n", - " if i % picmod == 0:\n", - " display(TF.to_pil_image(tf(image)[0]))\n", - " print(f\"Image {i}/{steps} | Current loss: {loss}\")\n", - " pil_image = TF.to_pil_image(image[0].add(1).div(2).clamp(0,1))\n", - " os.makedirs(f'samples/{timestring}', exist_ok=True)\n", - " pil_image.save(f'samples/{timestring}/{i:04}.jpg')\n", - "\n", - "try:\n", - " timestring = time.strftime('%Y%m%d%H%M%S')\n", - " run(timestring)\n", - "except KeyboardInterrupt:\n", - " pass" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-x13yvcFnPat" - }, - "source": [ - "Stepごとに指示に近づいている(上手くいった一例)。\n", - "\n", - "少しずつフェードアウトしてくところや、背景が髪の毛と変化(同化)していく点は不思議。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "dSRDbGRtjOUq", - "rAlPquBCSVud", - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "name": "Python_misc_StyleGAN3.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_StyleGAN3.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_StyleGAN3.txt deleted file mode 100644 index dd873e3f..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_StyleGAN3.txt +++ /dev/null @@ -1,274 +0,0 @@ -#@markdown **準備** -# @markdown このセルを実行して、ダウンロード等の準備を行おう - -#@markdown --- - -!pip install --upgrade torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html -!git clone https://github.com/NVlabs/stylegan3 -!git clone https://github.com/openai/CLIP -!pip install -e ./CLIP -!pip install einops ninja - -import sys -sys.path.append('./CLIP') -sys.path.append('./stylegan3') - -import io -import os, time, glob -import pickle -import shutil -import numpy as np -from PIL import Image -import torch -import torch.nn.functional as F -import requests -import torchvision.transforms as transforms -import torchvision.transforms.functional as TF -import clip -import unicodedata -import re -from tqdm.notebook import tqdm -from torchvision.transforms import Compose, Resize, ToTensor, Normalize -from IPython.display import display -from einops import rearrange -from google.colab import files - -device = torch.device('cuda:0') -print('Using device:', device, file=sys.stderr) - -#@markdown **必要な関数の準備:** このセルも実行しておこう - -def fetch(url_or_path): - if str(url_or_path).startswith('http://') or str(url_or_path).startswith('https://'): - r = requests.get(url_or_path) - r.raise_for_status() - fd = io.BytesIO() - fd.write(r.content) - fd.seek(0) - return fd - return open(url_or_path, 'rb') - -def fetch_model(url_or_path): - if "drive.google" in url_or_path: - if "18MOpwTMJsl_Z17q-wQVnaRLCUFZYSNkj" in url_or_path: - basename = "wikiart-1024-stylegan3-t-17.2Mimg.pkl" - elif "14UGDDOusZ9TMb-pOrF0PAjMGVWLSAii1" in url_or_path: - basename = "lhq-256-stylegan3-t-25Mimg.pkl" - else: - basename = os.path.basename(url_or_path) - if os.path.exists(basename): - return basename - else: - if "drive.google" not in url_or_path: - !wget -c '{url_or_path}' - else: - path_id = url_or_path.split("id=")[-1] - !gdown --id '{path_id}' - return basename - -def slugify(value, allow_unicode=False): - """ - Taken from https://github.com/django/django/blob/master/django/utils/text.py - Convert to ASCII if 'allow_unicode' is False. Convert spaces or repeated - dashes to single dashes. Remove characters that aren't alphanumerics, - underscores, or hyphens. Convert to lowercase. Also strip leading and - trailing whitespace, dashes, and underscores. - """ - value = str(value) - if allow_unicode: - value = unicodedata.normalize('NFKC', value) - else: - value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii') - value = re.sub(r'[^\w\s-]', '', value.lower()) - return re.sub(r'[-\s]+', '-', value).strip('-_') - -def norm1(prompt): - "Normalize to the unit sphere." - return prompt / prompt.square().sum(dim=-1,keepdim=True).sqrt() - -def spherical_dist_loss(x, y): - x = F.normalize(x, dim=-1) - y = F.normalize(y, dim=-1) - return (x - y).norm(dim=-1).div(2).arcsin().pow(2).mul(2) - -def prompts_dist_loss(x, targets, loss): - if len(targets) == 1: # Keeps consitent results vs previous method for single objective guidance - return loss(x, targets[0]) - distances = [loss(x, target) for target in targets] - return torch.stack(distances, dim=-1).sum(dim=-1) - -class MakeCutouts(torch.nn.Module): - def __init__(self, cut_size, cutn, cut_pow=1.): - super().__init__() - self.cut_size = cut_size - self.cutn = cutn - self.cut_pow = cut_pow - - def forward(self, input): - sideY, sideX = input.shape[2:4] - max_size = min(sideX, sideY) - min_size = min(sideX, sideY, self.cut_size) - cutouts = [] - for _ in range(self.cutn): - size = int(torch.rand([])**self.cut_pow * (max_size - min_size) + min_size) - offsetx = torch.randint(0, sideX - size + 1, ()) - offsety = torch.randint(0, sideY - size + 1, ()) - cutout = input[:, :, offsety:offsety + size, offsetx:offsetx + size] - cutouts.append(F.adaptive_avg_pool2d(cutout, self.cut_size)) - return torch.cat(cutouts) - -make_cutouts = MakeCutouts(224, 32, 0.5) - -def embed_image(image): - n = image.shape[0] - cutouts = make_cutouts(image) - embeds = clip_model.embed_cutout(cutouts) - embeds = rearrange(embeds, '(cc n) c -> cc n c', n=n) - return embeds - -def embed_url(url): - image = Image.open(fetch(url)).convert('RGB') - return embed_image(TF.to_tensor(image).to(device).unsqueeze(0)).mean(0).squeeze(0) - -class CLIP(object): - def __init__(self): - clip_model = "ViT-B/32" - self.model, _ = clip.load(clip_model) - self.model = self.model.requires_grad_(False) - self.normalize = transforms.Normalize(mean=[0.48145466, 0.4578275, 0.40821073], - std=[0.26862954, 0.26130258, 0.27577711]) - - @torch.no_grad() - def embed_text(self, prompt): - "Normalized clip text embedding." - return norm1(self.model.encode_text(clip.tokenize(prompt).to(device)).float()) - - def embed_cutout(self, image): - "Normalized clip image embedding." - return norm1(self.model.encode_image(self.normalize(image))) - -clip_model = CLIP() - -#@title { run: "auto" } -#@markdown **モデルの選択** - - -#@markdown There are 4 pre-trained options to play with: -#@markdown - FFHQ: Trained with human faces.  -#@markdown - MetFaces: Trained with paintings/portraits of human faces. -#@markdown - AFHQv2: Trained with animal faces. -#@markdown - Cosplay: Trained by [l4rz](https://twitter.com/l4rz) with cosplayer's faces. -#@markdown - Wikiart: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the Wikiart 1024 dataset. -#@markdown - Landscapes: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the LHQ dataset. - -#@markdown --- - -base_url = "https://api.ngc.nvidia.com/v2/models/nvidia/research/stylegan3/versions/1/files/" - -Model = 'MetFaces' #@param ["FFHQ", "MetFaces", "AFHQv2", "cosplay", "Wikiart", "Landscapes"] - -#@markdown --- - -model_name = { - "FFHQ": base_url + "stylegan3-t-ffhqu-1024x1024.pkl", - "MetFaces": base_url + "stylegan3-r-metfacesu-1024x1024.pkl", - "AFHQv2": base_url + "stylegan3-t-afhqv2-512x512.pkl", - "cosplay": "https://l4rz.net/cosplayface-snapshot-stylegan3t-008000.pkl", - "Wikiart": "https://archive.org/download/wikiart-1024-stylegan3-t-17.2Mimg/wikiart-1024-stylegan3-t-17.2Mimg.pkl", - "Landscapes": "https://archive.org/download/lhq-256-stylegan3-t-25Mimg/lhq-256-stylegan3-t-25Mimg.pkl" -} - -network_url = model_name[Model] - -with open(fetch_model(network_url), 'rb') as fp: - G = pickle.load(fp)['G_ema'].to(device) - -zs = torch.randn([10000, G.mapping.z_dim], device=device) -w_stds = G.mapping(zs, None).std(0) - -#@markdown **Parameters** - -#@markdown `texts`: Enter here a prompt to guide the image generation. You can enter more than one prompt separated with -#@markdown `|`, which will cause the guidance to focus on the different prompts at the same time, allowing to mix and play -#@markdown with the generation process. - -#@markdown `steps`: Number of optimization steps. The more steps, the longer it will try to generate an image relevant to the prompt. - -#@markdown `seed`: Determines the randomness seed. Using the same seed and prompt should give you similar results at every run. -#@markdown Use `-1` for a random seed. - -#@markdown --- - -texts = "female | smiling | black hair"#@param {type:"string"} -steps = 100#@param {type:"number"} -seed = 1234#@param {type:"number"} -#@markdown --- - -if seed == -1: - seed = np.random.randint(0,9e9) - print(f"Your random seed is: {seed}") - -texts = [frase.strip() for frase in texts.split("|") if frase] - -targets = [clip_model.embed_text(text) for text in texts] - -picmod = 30 - -tf = Compose([ - Resize(224), - lambda x: torch.clamp((x+1)/2,min=0,max=1), - ]) - -def run(timestring): - torch.manual_seed(seed) - - # Init - # Sample 32 inits and choose the one closest to prompt - - with torch.no_grad(): - qs = [] - losses = [] - for _ in range(8): - q = (G.mapping(torch.randn([4,G.mapping.z_dim], device=device), None, truncation_psi=0.7) - G.mapping.w_avg) / w_stds - images = G.synthesis(q * w_stds + G.mapping.w_avg) - embeds = embed_image(images.add(1).div(2)) - loss = prompts_dist_loss(embeds, targets, spherical_dist_loss).mean(0) - i = torch.argmin(loss) - qs.append(q[i]) - losses.append(loss[i]) - qs = torch.stack(qs) - losses = torch.stack(losses) - # print(losses) - # print(losses.shape, qs.shape) - i = torch.argmin(losses) - q = qs[i].unsqueeze(0).requires_grad_() - - # Sampling loop - q_ema = q - opt = torch.optim.AdamW([q], lr=0.03, betas=(0.0,0.999)) - loop = tqdm(range(steps)) - for i in loop: - opt.zero_grad() - w = q * w_stds - image = G.synthesis(w + G.mapping.w_avg, noise_mode='const') - embed = embed_image(image.add(1).div(2)) - loss = prompts_dist_loss(embed, targets, spherical_dist_loss).mean() - loss.backward() - opt.step() - loop.set_postfix(loss=loss.item(), q_magnitude=q.std().item()) - - q_ema = q_ema * 0.9 + q * 0.1 - image = G.synthesis(q_ema * w_stds + G.mapping.w_avg, noise_mode='const') - - if i % picmod == 0: - display(TF.to_pil_image(tf(image)[0])) - print(f"Image {i}/{steps} | Current loss: {loss}") - pil_image = TF.to_pil_image(image[0].add(1).div(2).clamp(0,1)) - os.makedirs(f'samples/{timestring}', exist_ok=True) - pil_image.save(f'samples/{timestring}/{i:04}.jpg') - -try: - timestring = time.strftime('%Y%m%d%H%M%S') - run(timestring) -except KeyboardInterrupt: - pass diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode.ipynb deleted file mode 100644 index d3221296..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode.ipynb +++ /dev/null @@ -1,374 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "xygiFz3F15TQ" - }, - "source": [ - "# コードの編集環境とGitHub Copilot\n", - "\n", - "この章では、Pythonを始め様々なプログラミング言語のソースコードを編集するための環境として、VS Codeを紹介する。 \n", - "また、GitHub Copilotという、大規模言語モデルを使ったコード補完ツールを紹介する。\n", - "\n", - ":::{note}\n", - "他のノートブックと同様に、Macユーザーは`Ctrl`を適宜`Command`に置き換えて読んでほしい。\n", - ":::\n", - "\n", - "免責事項として、本章の記述は2023年7月時点のもの(著者の理解)であり、アップデート等によって内容が不正確となる可能性があることを予めご了承いただきたい。 \n", - "また、一般論として、環境構築に伴うエラーの解決は、使用環境,バージョンや設定などに依存するため、本章の記述をそのまま適用できない場合があること、\n", - "インストール等に関する種々のトラブルについて著者は責任を負わないこともあわせてご了承いただきたい。 \n", - "これも一般論だが、OSに備わっているバックアップ機能(Windows バックアップ, TimeMachine)などで、常時バックアップは取るようにしよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EvTOzAC173gT" - }, - "source": [ - "## Visual Studio Code (VS Code)の導入\n", - "\n", - "エディタは様々なものがあるが、VS Codeは機能が豊富かつユーザー数が多い(=情報も豊富な)ため、最もオススメしやすいエディタである。 \n", - "とくに拡張機能が便利で、言語ごとに様々な拡張機能が用意されている。著者も紆余曲折ありVS Codeを95%位の割合でメインエディタとして使っている。\n", - "\n", - "### インストール方法\n", - "\n", - "1. VScodeのインストールは、[公式サイト](https://code.visualstudio.com/)またはOS毎のStore系のソフト(Microsoft Store, Mac App Store)からインストールする。\n", - "2. インストール後、VScodeを起動すると、日本語化を促されるので、必要であれば指示に従う。\n", - "3. 初めてPythonのコードをVS Codeで作成/開く際に、拡張機能のインストールを促されるかもしれない。その時は、インストールを許可しよう。\n", - "4. その他、必要に応じて拡張機能を導入したり、フォントを変更したりすると良い。表示サイズなどはショートカットで拡大(`Ctrl`+`+`)・縮小(`Ctrl`+`-`)できる。\n", - "\n", - "#### Windows+WSLの導入例\n", - "\n", - "著者はWindowsユーザーではないので、情報が古い可能性があるがご容赦頂きたい。\n", - "\n", - "1. Storeまたは[Webページ](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)からインストールする\n", - "\n", - " \n", - " \n", - "\n", - "2. 起動すると、日本語化を提案してくれるので日本語で使いたければ、インストールして再起動をクリック\n", - "\n", - " \n", - "\n", - "3. ターミナルから新しいターミナルを開くと規定のターミナルが開く(Windowsの場合だとpowershell?)\n", - " ∨記号から、Ubuntu(WSL)を選択すると、Ubuntu(Linux)ターミナルを起動することが出来る\n", - "\n", - " \n", - "\n", - " \n", - " \n", - "\n", - "\n", - "### Pythonコードの編集\n", - "\n", - "1. 適当なPythonファイルを作成してみよう。[ファイル]→[新しいファイル]で新規ファイルを作成する。 \n", - " その際**ファイルの種類を入力するか、ファイル名を入力してください**などという表示がでるのでpythonと打ち、Pythonファイルを作成する。 \n", - " Untitled-1などというファイルが作成されるので、`Ctrl+S`で保存しようとすると、ファイル名を入力するように促される。 \n", - " その際、適当な名前をつけてみよう。例えば`sample_code.py`などとする。\n", - "2. ファイルを編集したら、保存(`Ctrl+S`)しよう。編集内容が残っている場合は(標準では)ファイル名の横に丸◯が表示されるので、わかりやすい。\n", - " Pythonコードだけでなく、様々なファイルを編集したり閲覧したりすることができるので試してみよう。(例: pdfファイルをVS Codeにドラッグ&ドロップしてみよう)\n", - "3. 拡張子に応じて、なんのプログラミング言語で書かれたソースコードなのかを推定して、色分けしてくれたりする。\n", - "4. また、VS Codeでは、\"フォルダを開く\"ことで複数のソースコードを効率的に編集したりすることもできる。\n", - "\n", - "\n", - "### ターミナルの起動\n", - "\n", - "VS Codeでは、ターミナルをVS Code内で起動することができる。 \n", - "[ターミナル]タブから新しいターミナル(規定のターミナル)を起動することができ、画面の上下や左右などに分割して表示することができる。 \n", - "したがって、ソースコードを編集しながら実行したりといった作業がしやすい。\n", - "\n", - "Windowsの場合は、WSL(Windows Subsystem for Linux)をインストールしておくと、Linuxのターミナルを使うことができる。 \n", - "MacやLinuxの場合は言うまでもなく、規定のターミナルが開くので、Unix/Linuxコマンドを使えば良い。\n", - "\n", - "よく使うLinuxコマンドを下記の表にまとめる:\n", - "\n", - "|コマンド|説明|\n", - "|:--|:--|\n", - "|`ls`|カレントディレクトリのファイル一覧を表示する|\n", - "|`cd`|ディレクトリを移動する|\n", - "|`pwd`|カレントディレクトリのパスを表示する|\n", - "|`mkdir`|ディレクトリを作成する|\n", - "|`rm`|ファイルを削除する(ゴミ箱を経由しないので使用には注意すること)|\n", - "|`cp`|ファイルをコピーする|\n", - "|`mv`|ファイルを移動する|\n", - "|`cat`|ファイルの中身を表示する|\n", - "|`head`|ファイルの先頭を表示する|\n", - "|`tail`|ファイルの末尾を表示する|\n", - "|`grep`|ファイルの中から文字列を検索する|\n", - "|`echo`|文字列を表示する|\n", - "|`chmod`|ファイルのアクセス権を変更する|\n", - "|`sudo`|root権限でコマンドを実行する|\n", - "\n", - "それぞれのコマンドの使い方やオプションについては網羅的に説明することはしないので、適宜調べて使い方を覚えてほしい。 \n", - "Chat GPTなどに尋ねてみるのも良い。\n", - "\n", - "ターミナルからPythonコードを実行する際は、\n", - "\n", - "1. `python`コマンドでPythonの対話環境を起動して使う\n", - "2. `python`コマンドに続けてファイル名を入力し、そのファイルを実行する\n", - "\n", - "の2つの方法がある。最初は1の方法でも良いが、コードで実現したい作業が大きくなるにつれ、\n", - "作成したソースコードを後者の方法で実行することが多くなるはずだ。\n", - "\n", - "```bash\n", - "python sample_code.py\n", - "```\n", - "\n", - "※システムによっては`python3`などとバージョンを明示的に指定しないといけない場合もあるので注意すること。 \n", - "Pythonをコマンドラインで使う際に毎回`python`などと入力するのが面倒なら、\n", - "エイリアスを設定して別ののコマンド(著者は`py`としている)に置き換えてしまうのも良い。\n", - "\n", - "(Linuxコマンドやシェルについての知識が少しだけ必要になるが)詳しい方法については「python コマンド エイリアス」などで検索してみよう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 授業資料(.ipynb)をVS codeで実行・編集する\n", - "\n", - "VS Codeを使うと、ローカル環境で.ipynbファイルを実行・編集することができる。\n", - "著者も、この授業資料の作成にはVS Codeを使っている。\n", - "\n", - "以下で紹介するGitHub Copilotとの相性も良いので、今後プログラミング学習を継続するつもりだ、という方は、\n", - "VS Codeでの.ipynbファイルの実行・編集も是非やってみてほしい。\n", - "\n", - "### 授業資料のダウンロード方法\n", - "\n", - "本授業資料の.ipynbファイルは、GitHubのレポジトリかBookの各ページからダウンロードすることができる。\n", - "\n", - "* 方法1: GitHubの[レポジトリ](https://github.com/SotaYoshida/Lecture_DataScience)からダウンロードする.\n", - " `<>Code`という緑色のボタンをクリックし、`Download ZIP`をクリックすると、全てのファイルをダウンロードできる。\n", - " 展開したフォルダ内の`notebooks`というディレクトリが、本授業資料の.ipynbファイルがある場所である。\n", - " \n", - " \n", - "\n", - "* 方法2: Bookの各ページからダウンロードする. ブックの各章の上部にダウンロードボタン(下向き矢印)があるので、そこから`.ipynb`形式を選択し、ダウンロードすれば良い。\n", - " \n", - "\n", - "### ipynb形式のファイルをVS Codeで開く&実行する\n", - "\n", - "実行には当然Python環境が必要なので、インストール済みであるとする。\n", - "\n", - "1. ターミナルから \n", - "\n", - " ```bash\n", - " pip3 install jupyter\n", - " ```\n", - " などとして、Jupyterをインストールしておく。\n", - "2. VS Codeを起動し、ダウンロードした`ipynb`ファイルを開く。\n", - "3. コードセルを実行するには、`Shift+Enter`を押す。または、コードセルの左側にある`▶︎`をクリックする。このとき、複数のPython環境がインストールされている場合は、どのPython環境で実行するかを選択する必要がある。\n", - "4. コードセルの実行結果が表示される。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## GitHub Copilot\n", - "\n", - "GitHub Copilotは、GitHubがOpenAIと共同で開発したコード補完ツールである。 \n", - "背後には、GPT-3ベースのOpenAI Codexが動いており、文字通りcopilotとして様々なコードやスニペットを提案してくれる。\n", - "\n", - "GitHub Copilotは、VS Codeなどの拡張機能としても使用することができる。\n", - "ただし、GitHub Copilotが生成するコードは完璧ではないため、使う際は、**提案されたコードを注意深く確認し、必要に応じて修正を行う必要がある**ことは言うまでもない。\n", - "\n", - "GitHub Copilotを使うには、まず、GitHub Copilotのベータ版に登録する必要がある。学生は、学生証などを提出することで、無料で登録・使用することができる。上手く使いこなせれば、かなりの生産性向上が期待できるツールであり、私も日々の研究において活用している。\n", - "\n", - "もちろん、自身の意図を100%反映したコードを生成してくれるわけではないが、コードの骨組みを作ってくれるため大幅に作業が楽になることも多い。ときに「こんな書き方もあるのか」という気づきを与えてくれたりもする。\n", - "\n", - "\n", - "### VS Codeへの導入\n", - "\n", - "1. GitHub Copilotに登録する。この際、GitHubアカウントを作成する必要がある。\n", - " 既にGitHubアカウントを持っている場合は、そのアカウントでログインする。 \n", - " 「Github Copilot 学生申請」などで検索すると、学生向けの登録方法が見つかる。\n", - " 認証が済むと、GitHubのアカウントがPROアカウントになり、Copilotを使うことができるようになる。\n", - "2. 次に、[Copilotのページ](https://github.com/features/copilot/)から、Start my free trialをクリックし、指示に従う。\n", - "\n", - "3. VS Codeのアカウント(人型)のアイコンから、GitHubアカウントにログインする。\n", - "\n", - "4. VS Codeの拡張機能タブから[GitHub Copilot]などと検索したのち、拡張機能をインストールする(2.でインストールが始まるかも)。その後指示に従い、インストールを完了する。\n", - "\n", - "### 試してみよう\n", - "\n", - "試しに著者の環境(VS Code)で「適当な二次元データのヒートマップを描画するコードは以下のようになる」などと打つと... \n", - "以下のように、自身で入力した際よりも薄い色でコード(場合によっては複数行)が提案される。\n", - "\n", - "\n", - "\n", - "Copilotの提案を受け入れるには`Tab`キーを押し、棄却する場合には`Esc`を押せば良い。複数行に渡る場合も同様である。\n", - "こうした作業を繰り返して生成されたコードを実行してみよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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xv333x+HDx+OW265pe5dAwAdrvYg8pnPfCYOHjwYd999d7zxxhvxe7/3e/Hd7373PQ+wMjZVL7G9/UDnPhhcugR81Uuslypdir20f6XHe8kV84valfRv/bO/KNpW1fN5fHblvUXt/tfdq4ralc5xUXq9l57b0jk4Sq+9TV/8w6J2a77z86J2X7nx0qJ2Ver0eT94r6xzVnsQiYhYvXp1rF69ejx2BQB0kY6qmgEAJhdBBABII4gAAGkEEQAgjSACAKTpabfb7exOnEir1YpGoxH732qa3OwUlZYffvLy87p6n3XIKmWruuS6tKS1yn2WntvSa+W2+14oavenf/IHRe1Ky21Lj6Pqa6XqstzScS5Rej2VHmtp36ouza76/Ue58rFarVbMndmIZnP0z293RACANIIIAJBGEAEA0ggiAEAaQQQASCOIAABpBBEAIM24rL5L9Upr1jPm6iit9y89hlJVz6tRur2s+RJe/OU7Re1KroGq561Yun5zUbsv3vCBonal84Os/uCConYPbtld1K5U1fOmlB5Hlb9DpddTabvSa6XquVqqfv+ZLPN+ZHJHBABII4gAAGkEEQAgjSACAKQRRACANIIIAJCmp91ut7M7cSKtVisajUbsf2v0ZYRLKdmqX6ePcWkJZUbpc0S1S7ZHlJVblpaLlpY0l5Z4Diw8u6hdqapLS6suuc5Sct6yrveqdfr7z2TRarVi7sxGNJujf367IwIApBFEAIA0gggAkEYQAQDSCCIAQBpBBABIM2FW31WydXxVlh+Wlm5mKT2365/9RVG70lLQ0tLXTnbL139S1K50tdyqlZ6zDSuuLmp33srHitqVrvpbdf9KVfk7WXXZeNWr6paumFxamu0zo3O4IwIApBFEAIA0gggAkEYQAQDSCCIAQBpBBABII4gAAGl62u12O7sTJ9JqtaLRaMT+t0ZfRniiKK1tL1VlDXzVfStVOldC1cuYl86rUDrfSKmtOw8UtatyTorSORoGFp5d1K5kXpqI8uvznGtWF7W76jM3FbUrHbvS+VVKt1c6zlXPTVPyO1T1OSvV6fN5lL4PVP3+0+1arVbMndmIZnP0z293RACANIIIAJBGEAEA0ggiAEAaQQQASCOIAABp3lfXhu+9997493//99i2bVtMmzYt3nnnnbp2FRGdXwJWqpP7V9q3qs9F1piUluNVXfb4amHpZpXjUnVZbtVLtlddlltq0SVzKt1e1WW5pUqu5dIy1azfx6rfV0q3pyy3frXdETly5EjcdNNN8YUvfKGuXQAAXa62OyJ/9Vd/FRERGzdurGsXAECXqy2InIqhoaEYGhoa+brVKptREwDoTh31sOrg4GA0Go2RV39/f3aXAIAajSmIrF27Nnp6ek762rFjxyl3Zt26ddFsNkdee/bsOeVtAQCdb0x/mlmzZk2sXLnypG0WLlx4yp3p7e2N3t7eU/55AKC7jCmIzJ49O2bPnl1XXwCASaa2h1V3794db7/9duzevTuOHj0a27Zti4iIiy++OM4666zK99fJ829MFFlztaz5zs+L2pXOSVG1quctKFW6vSqXgC/ZVkT5uSg9t6Xzg5T2r/R4q76msubCKGlXOialsn5vs8Y4a3sTQW1B5O67746vf/3rI1///u//fkREvPjii7F06dK6dgsAdJHaqmY2btwY7Xb7PS8hBAD4jY4q3wUAJhdBBABII4gAAGkEEQAgTU+73W5nd+JEWq1WNBqN2P9WM/r6qi0tY+w6veysdBnz0mW9q95eleW2dew3Q+m1snT95qJ2pWW+pUr7V3qtlKp66fmSayDr97bT31c4Na1WK+bObESzOfrntzsiAEAaQQQASCOIAABpBBEAII0gAgCkEUQAgDTKd7uUkrdTV3U5a9UrvnayB7fsLmq3+oMLitpVXR5bddlrp6tyXLLeU7LKy7031kv5LgDQFQQRACCNIAIApBFEAIA0gggAkEYQAQDSCCIAQJr3ZXeAUzMRauA7eXn6iPIxzppXocr9lu7zKzdeWtRuzXd+XtSudL6R0jlYJtv8OhNhbpqJci44de6IAABpBBEAII0gAgCkEUQAgDSCCACQRhABANIo3yUiysoeqy6zU7Z3fBnlwNsPtIq2Vdq30jLfTl96vnS/z2x/vahdablt6fn45OXnFbXLKJWveownW2n2ZOKOCACQRhABANIIIgBAGkEEAEgjiAAAaQQRACCNIAIApDGPCBExuWrvM+ZUiKh+jEvnriiZa6LquRxKZc0hUfW5KJ3PI0vG73fV+6x6rhs6hzsiAEAaQQQASCOIAABpBBEAII0gAgCkEUQAgDS1le/+6le/ir/+67+OF154Id54442YN29e/Pmf/3n85V/+ZUybNq2u3cKoskpVS5Xut8ol4Ksueez07XW6yXa8JTq9RJpTV1sQ2bFjRwwPD8ejjz4aF198cbz88stx2223xeHDh2P9+vV17RYA6CK1BZHrr78+rr/++pGvFy5cGDt37oyHH35YEAEAImKcZ1ZtNpsxY8aME/770NBQDA0NjXzdapXNpAcAdKdxe1h1165d8cADD8TnPve5E7YZHByMRqMx8urv7x+v7gEACcYcRNauXRs9PT0nfe3YseOYn9m7d29cf/31cdNNN8Vtt912wm2vW7cums3myGvPnj1jPyIAoGuM+U8za9asiZUrV560zcKFC0f+e9++fTEwMBBLliyJr371qyf9ud7e3ujt7R1rlwCALtXTbrfbdW187969MTAwEIsWLYp//ud/jqlTp47p51utVjQajdj/VjP6+vpq6iVQtapXy51sjB/drtVqxdyZjWg2R//8ru1h1b1798bSpUvj/PPPj/Xr18fBgwdH/u3cc8+ta7cAQBepLYg899xzsWvXrti1a1fMnz//mH+r8SYMANBFaquaWblyZbTb7eO+AAAirDUDACQSRACANIIIAJBGEAEA0ozrWjPQTSbKXA4lx1H1MZRub6KMcanJdrxQwh0RACCNIAIApBFEAIA0gggAkEYQAQDSCCIAQBrlu3ACE6WEspOPo5P7VofJdrxQwh0RACCNIAIApBFEAIA0gggAkEYQAQDSCCIAQBpBBABIYx4RJgxLrFPKtVI/Y0wpd0QAgDSCCACQRhABANIIIgBAGkEEAEgjiAAAaZTvMmEoA6RU6bWiBPXUGRNKuSMCAKQRRACANIIIAJBGEAEA0ggiAEAaQQQASKN8F+AElKBC/dwRAQDSCCIAQBpBBABII4gAAGkEEQAgjSACAKQRRACANLXOI/KpT30qtm3bFgcOHIhzzjknli1bFn/7t38b8+bNq3O3AExSrx48XNTOHDGdo9Y7IgMDA/Gtb30rdu7cGU888US88sor8elPf7rOXQIAXaSn3W63x2tn3/72t2P58uUxNDQU73//+0dt32q1otFoxP63mtHX1zcOPQSgm7kj0hlarVbMndmIZnP0z+9xm+L97bffjsceeyyWLFlywhAyNDQUQ0NDI1+3Wq3x6h4AkKD2h1W/9KUvxZlnnhkzZ86M3bt3x9NPP33CtoODg9FoNEZe/f39dXcPAEg05iCydu3a6OnpOelrx44dI+3vuuuu+NnPfhbf//73Y+rUqXHzzTfHif4atG7dumg2myOvPXv2nPqRAQAdb8zPiBw8eDDeeuutk7ZZuHBhTJs27T3ff+2116K/vz/+4z/+IxYvXjzqvjwjAsBYeEakM9T6jMjs2bNj9uzZp9Sx4eHhiIhjngMB6lXyxuxNmYnCtdx9antY9Yc//GH8+Mc/jg9/+MNxzjnnxCuvvBJf/vKX46KLLiq6GwIATHy1Pax6xhlnxL/927/Fxz72sbjkkkvi1ltvjSuvvDI2b94cvb29de0WAOgitd0R+d3f/d144YUX6to8ADABWGsGAEgjiAAAaQQRACDNuE3xDuRQzgh0MndEAIA0gggAkEYQAQDSCCIAQBpBBABII4gAAGkEEQAgjXlEAH5Lrx48XNTOnC7wXu6IAABpBBEAII0gAgCkEUQAgDSCCACQpqOrZtrtdkREHGq1knsCcGLvHiqrmmn1Hq25J9AZfvO5/ZvP8ZPp6CBy6NChiIi4+ML+5J4AAGN16NChaDQaJ23T0y6JK0mGh4dj586dcdlll8WePXuir68vu0tdr9VqRX9/v/GsgLGsjrGslvGsjrE8Ne12Ow4dOhTz5s2LKVNO/hRIR98RmTJlSvzO7/xORET09fW5CCpkPKtjLKtjLKtlPKtjLMdutDshv+FhVQAgjSACAKTp+CDS29sb99xzT/T29mZ3ZUIwntUxltUxltUyntUxlvXr6IdVAYCJrePviAAAE5cgAgCkEUQAgDSCCACQpuuCyKc+9alYsGBBnHbaaXHeeefFZz/72di3b192t7rOr371q7j11lvjwgsvjNNPPz0uuuiiuOeee+LIkSPZXetK9957byxZsiTOOOOMOPvss7O703UeeuihuOCCC+K0006L6667Ln70ox9ld6krvfTSS3HjjTfGvHnzoqenJ5566qnsLnWtwcHBuOaaa2L69OkxZ86cWL58eezcuTO7WxNS1wWRgYGB+Na3vhU7d+6MJ554Il555ZX49Kc/nd2trrNjx44YHh6ORx99NLZv3x5///d/H4888kj8xV/8RXbXutKRI0fipptuii984QvZXek63/zmN+POO++Me+65J37605/GVVddFZ/4xCfiwIED2V3rOocPH46rrroqHnrooeyudL3NmzfHqlWrYsuWLfHcc8/Fr3/96/j4xz8ehw+XLXBIua4v3/32t78dy5cvj6GhoXj/+9+f3Z2udt9998XDDz8cv/zlL7O70rU2btwYd9xxR7zzzjvZXeka1113XVxzzTXx4IMPRsT/XWOqv78/br/99li7dm1y77pXT09PPPnkk7F8+fLsrkwIBw8ejDlz5sTmzZvjIx/5SHZ3JpSuuyPy/3r77bfjscceiyVLlgghFWg2mzFjxozsbjCJHDlyJLZu3RrLli0b+d6UKVNi2bJl8YMf/CCxZ3CsZrMZEeE9sgZdGUS+9KUvxZlnnhkzZ86M3bt3x9NPP53dpa63a9eueOCBB+Jzn/tcdleYRN588804evRozJ0795jvz507N954442kXsGxhoeH44477ogPfehDccUVV2R3Z8LpiCCydu3a6OnpOelrx44dI+3vuuuu+NnPfhbf//73Y+rUqXHzzTdHl/+FqTJjHcuIiL1798b1118fN910U9x2221JPe88pzKWwMSzatWqePnll+Mb3/hGdlcmpPdldyAiYs2aNbFy5cqTtlm4cOHIf8+aNStmzZoVH/jAB+LSSy+N/v7+2LJlSyxevLjmnna+sY7lvn37YmBgIJYsWRJf/epXa+5ddxnrWDJ2s2bNiqlTp8b+/fuP+f7+/fvj3HPPTeoV/I/Vq1fHM888Ey+99FLMnz8/uzsTUkcEkdmzZ8fs2bNP6WeHh4cjImJoaKjKLnWtsYzl3r17Y2BgIBYtWhQbNmyIKVM64gZZx/htrkvKTJs2LRYtWhTPP//8yEOVw8PD8fzzz8fq1atzO8ek1m634/bbb48nn3wyNm3aFBdeeGF2lyasjggipX74wx/Gj3/84/jwhz8c55xzTrzyyivx5S9/OS666CJ3Q8Zo7969sXTp0jj//PNj/fr1cfDgwZF/83+iY7d79+54++23Y/fu3XH06NHYtm1bRERcfPHFcdZZZ+V2rsPdeeedsWLFirj66qvj2muvjfvvvz8OHz4ct9xyS3bXus67774bu3btGvn61VdfjW3btsWMGTNiwYIFiT3rPqtWrYrHH388nn766Zg+ffrIM0uNRiNOP/305N5NMO0u8p//+Z/tgYGB9owZM9q9vb3tCy64oP35z3++/dprr2V3rets2LChHRHHfTF2K1asOO5Yvvjii9ld6woPPPBAe8GCBe1p06a1r7322vaWLVuyu9SVXnzxxeNehytWrMjuWtc50fvjhg0bsrs24XT9PCIAQPfyUAAAkEYQAQDSCCIAQBpBBABII4gAAGkEEQAgjSACAKQRRACANIIIAJBGEAEA0ggiAEAaQQQASPN/AIw9mYIwx9R+AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode_4_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "#適当な二次元データのヒートマップを描画するコードは以下のようになる:\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "\n", - "# 2次元データの生成\n", - "x = np.random.randn(1000)\n", - "y = np.random.randn(1000)\n", - "\n", - "# ヒストグラムの描画\n", - "plt.hist2d(x, y, bins=50, cmap='Blues')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "もう少し具体的にカラーマップも指定してみよう。以下のコード例は\n", - "「適当な二次元データのヒートマップを作成するコード、但しカラーマップはjetを用いる。」と入力したあとに提案されたコードである。" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Yw/nLkuWLMG5557rfHfOOefg61//ep16NL+47bbbsGXLFlx//fUAgAsuuAA///nPsW3bNg0UxLygpjEKmUwGl156KXbt2jX1Xblcxq5du7BmzZpadmVeMjk5iU2bNuEb3/gGvvvd72L58uX17tK84corr8SPfvQj7N27d+qzatUq3HDDDdi7d68GCRFcfvnlgTTcn/zkJ3jzm99cpx7NL0ZHR9Hc7P7UplIplMvlOvVICD9qLj1s3rwZN954I1atWoXLLrsM27dvx/Hjx7Fhw4Zad2XesXHjRjz22GP41re+hc7OTgwMDAAAurq60NbWVufezW06OzsDsRzt7e1YuHChYjwM/uAP/gBr167Fvffei3/37/4dnnvuOTz88MN4+OGH6921ecF73vMe3HPPPTjzzDNx3nnn4Yc//CHuv/9+3HTTTfXumhAzY7IOfO5zn5s888wzJzOZzORll102+eyzz9ajG/MOANN+vvzlL9e7a/OS3/iN35i85ZZb6t2NecH//t//e/L888+fzGazkytWrJh8+OGH692lecPQ0NDkLbfcMnnmmWdOtra2Tr7lLW+Z/C//5b9MFgqFendNiBmhZaaFEEIIEYrWehBCCCFEKBooCCGEECIUDRSEEEIIEYoGCkIIIYQIRQMFIYQQQoSigYIQQgghQtFAQQghhBChaKAghBBCiFA0UBBCCCFEKBooCCGEECIUDRSEEEIIEYoGCkIIIYQI5f8DoMI0uO77tY8AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode_6_0.png" - } - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import matplotlib.cm as cm\n", - "\n", - "#データの作成\n", - "x = np.arange(0, 10, 0.1)\n", - "y = np.arange(0, 10, 0.1)\n", - "X, Y = np.meshgrid(x, y)\n", - "Z = np.sin(X) + np.cos(Y)\n", - "\n", - "#ヒートマップの作成\n", - "plt.pcolor(X, Y, Z, cmap=cm.jet)\n", - "plt.colorbar()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1回目は`seaborn`ライブラリを使っていたのに対し、2回目では`matplotlib.cm`からカラーマップ`cm`を呼んでいる事がわかる。\n", - "ランダムなデータの作り方も1回目と2回目、あるいはユーザーの実行ごとに変わったりすることに注意しよう。\n", - "\n", - "繰り返しになるが、GitHub Copilotの提案が本当に自身の意図したものとなっているかについては、**常にユーザーである我々が注意して確認する必要があること**は肝に命じておこう。" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 練習相手・チューターとしてのCopilot/Chat GPT\n", - "\n", - "この授業を履修する皆さんにはぜひ、GitHub CopilotやChat GPTを、自身の学習のための練習相手や24時間対応のTAやチューターのように活用してもらいたい。 \n", - "大規模言語モデルを使用したチャットボット(Chat GPT)は、プロンプトと呼ばれる指示文を適切に与えることで、その文脈に沿った文章を生成してくれる(かもしれない)という性質のものである。\n", - "\n", - "自分が望むような文章を生成する、あるいは文章生成を\"回答\"とみなし活用するためには、プロンプトの与え方に工夫が必要になる。 \n", - "「何がわからないのかも分からない」状態では質問のしようがないのと同様、指示が漠然としているとおそらく有効な回答を引き出す蓋然性は低くなってしまう。\n", - "プログラミング学習に活用するための適切なプロンプトを工夫することは、それ自体が**自身のやりたい作業を言語化する**という作業になっていて、一定の学習効果が期待される。\n", - "\n", - "皆さんの主体的な学習にむけて、幾つかChat GPTの使用例を紹介してみよう。 \n", - "適当な指示文を与えてみる。\n", - "\n", - "\n", - "\n", - "\n", - "もちろん、ここでは具体的なファイル構造を示したりファイルを与えているわけではないので、正しく動く保証も全く無いわけだが、概ねもっともらしいコードを生成してくれている。\n", - "仮に提案されたコードがうまく動かない/使えないとき、うまく行かない理由と関連していそうな情報を与えてやったりすることで、解決策を提示してきたり、補足知識を与えてくれたりするという例も見せよう。\n", - "\n", - "\n", - "\n", - "\n", - "細かいことを言うと、2.の1つめの画像の提案(`encoding=\"SHIFT-JIS\"`)は、サポートされていないオプションの指定となりエラーになるが、(言語モデルはPythonの文法、とくにPythonの中での文字コードの指定に相当するコードを\"理解\"しているわけではないため)推論としては真っ当なものになっている。 \n", - "\n", - "実は上の画像で挙げた例は、実際にPythonでcsvやエクセルファイルを読み書きしようとする際に、よく遭遇するエラーの例になっていて、\n", - "私はそのことを知っているため、上のようなある種\"誘導的な\"プロンプトを与えることで、より有用な回答を得られるよう仕向けている。\n", - "2.の2つめの画像で、より適切なオプションを指定するためにもう少しヒントをあげているという訳だ。\n", - "\n", - "\n", - "\"自身の理解やこれまでの思考・試行を開示した上で質問をする\"ことが、他人に質問する際に有効な回答を引き出すための近道であることと同じで、\n", - "言語モデルを対話的に活用する上では、こうしたコツを抑えておくと良いかもしれない。\n", - "\n", - "また、大規模言語モデルの性質・特性やその背景にある基礎について理解を深めることも非常に重要な姿勢だと感じる。 \n", - "理研AIPシンポジウムでの岡崎直観先生の特別講演[Youtubeへのリンク](https://youtu.be/PUuk4Cv-ycg)が非常に参考になる。ぜひ一度視聴してみてほしい。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "include_colab_link": true, - "name": "Python_misc_python_env_forWin11.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode.py b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode.py deleted file mode 100644 index 8f1c7c5f..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode.py +++ /dev/null @@ -1,263 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# # コードの編集環境とGitHub Copilot -# -# この章では、Pythonを始め様々なプログラミング言語のソースコードを編集するための環境として、VS Codeを紹介する。 -# また、GitHub Copilotという、大規模言語モデルを使ったコード補完ツールを紹介する。 -# -# :::{note} -# 他のノートブックと同様に、Macユーザーは`Ctrl`を適宜`Command`に置き換えて読んでほしい。 -# ::: -# -# 免責事項として、本章の記述は2023年7月時点のもの(著者の理解)であり、アップデート等によって内容が不正確となる可能性があることを予めご了承いただきたい。 -# また、一般論として、環境構築に伴うエラーの解決は、使用環境,バージョンや設定などに依存するため、本章の記述をそのまま適用できない場合があること、 -# インストール等に関する種々のトラブルについて著者は責任を負わないこともあわせてご了承いただきたい。 -# これも一般論だが、OSに備わっているバックアップ機能(Windows バックアップ, TimeMachine)などで、常時バックアップは取るようにしよう。 - -# ## Visual Studio Code (VS Code)の導入 -# -# エディタは様々なものがあるが、VS Codeは機能が豊富かつユーザー数が多い(=情報も豊富な)ため、最もオススメしやすいエディタである。 -# とくに拡張機能が便利で、言語ごとに様々な拡張機能が用意されている。著者も紆余曲折ありVS Codeを95%位の割合でメインエディタとして使っている。 -# -# ### インストール方法 -# -# 1. VScodeのインストールは、[公式サイト](https://code.visualstudio.com/)またはOS毎のStore系のソフト(Microsoft Store, Mac App Store)からインストールする。 -# 2. インストール後、VScodeを起動すると、日本語化を促されるので、必要であれば指示に従う。 -# 3. 初めてPythonのコードをVS Codeで作成/開く際に、拡張機能のインストールを促されるかもしれない。その時は、インストールを許可しよう。 -# 4. その他、必要に応じて拡張機能を導入したり、フォントを変更したりすると良い。表示サイズなどはショートカットで拡大(`Ctrl`+`+`)・縮小(`Ctrl`+`-`)できる。 -# -# #### Windows+WSLの導入例 -# -# 著者はWindowsユーザーではないので、情報が古い可能性があるがご容赦頂きたい。 -# -# 1. Storeまたは[Webページ](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)からインストールする -# -# -# -# -# 2. 起動すると、日本語化を提案してくれるので日本語で使いたければ、インストールして再起動をクリック -# -# -# -# 3. ターミナルから新しいターミナルを開くと規定のターミナルが開く(Windowsの場合だとpowershell?) -# ∨記号から、Ubuntu(WSL)を選択すると、Ubuntu(Linux)ターミナルを起動することが出来る -# -# -# -# -# -# -# -# ### Pythonコードの編集 -# -# 1. 適当なPythonファイルを作成してみよう。[ファイル]→[新しいファイル]で新規ファイルを作成する。 -# その際**ファイルの種類を入力するか、ファイル名を入力してください**などという表示がでるのでpythonと打ち、Pythonファイルを作成する。 -# Untitled-1などというファイルが作成されるので、`Ctrl+S`で保存しようとすると、ファイル名を入力するように促される。 -# その際、適当な名前をつけてみよう。例えば`sample_code.py`などとする。 -# 2. ファイルを編集したら、保存(`Ctrl+S`)しよう。編集内容が残っている場合は(標準では)ファイル名の横に丸◯が表示されるので、わかりやすい。 -# Pythonコードだけでなく、様々なファイルを編集したり閲覧したりすることができるので試してみよう。(例: pdfファイルをVS Codeにドラッグ&ドロップしてみよう) -# 3. 拡張子に応じて、なんのプログラミング言語で書かれたソースコードなのかを推定して、色分けしてくれたりする。 -# 4. また、VS Codeでは、"フォルダを開く"ことで複数のソースコードを効率的に編集したりすることもできる。 -# -# -# ### ターミナルの起動 -# -# VS Codeでは、ターミナルをVS Code内で起動することができる。 -# [ターミナル]タブから新しいターミナル(規定のターミナル)を起動することができ、画面の上下や左右などに分割して表示することができる。 -# したがって、ソースコードを編集しながら実行したりといった作業がしやすい。 -# -# Windowsの場合は、WSL(Windows Subsystem for Linux)をインストールしておくと、Linuxのターミナルを使うことができる。 -# MacやLinuxの場合は言うまでもなく、規定のターミナルが開くので、Unix/Linuxコマンドを使えば良い。 -# -# よく使うLinuxコマンドを下記の表にまとめる: -# -# |コマンド|説明| -# |:--|:--| -# |`ls`|カレントディレクトリのファイル一覧を表示する| -# |`cd`|ディレクトリを移動する| -# |`pwd`|カレントディレクトリのパスを表示する| -# |`mkdir`|ディレクトリを作成する| -# |`rm`|ファイルを削除する(ゴミ箱を経由しないので使用には注意すること)| -# |`cp`|ファイルをコピーする| -# |`mv`|ファイルを移動する| -# |`cat`|ファイルの中身を表示する| -# |`head`|ファイルの先頭を表示する| -# |`tail`|ファイルの末尾を表示する| -# |`grep`|ファイルの中から文字列を検索する| -# |`echo`|文字列を表示する| -# |`chmod`|ファイルのアクセス権を変更する| -# |`sudo`|root権限でコマンドを実行する| -# -# それぞれのコマンドの使い方やオプションについては網羅的に説明することはしないので、適宜調べて使い方を覚えてほしい。 -# Chat GPTなどに尋ねてみるのも良い。 -# -# ターミナルからPythonコードを実行する際は、 -# -# 1. `python`コマンドでPythonの対話環境を起動して使う -# 2. `python`コマンドに続けてファイル名を入力し、そのファイルを実行する -# -# の2つの方法がある。最初は1の方法でも良いが、コードで実現したい作業が大きくなるにつれ、 -# 作成したソースコードを後者の方法で実行することが多くなるはずだ。 -# -# ```bash -# python sample_code.py -# ``` -# -# ※システムによっては`python3`などとバージョンを明示的に指定しないといけない場合もあるので注意すること。 -# Pythonをコマンドラインで使う際に毎回`python`などと入力するのが面倒なら、 -# エイリアスを設定して別ののコマンド(著者は`py`としている)に置き換えてしまうのも良い。 -# -# (Linuxコマンドやシェルについての知識が少しだけ必要になるが)詳しい方法については「python コマンド エイリアス」などで検索してみよう。 -# - -# ## 授業資料(.ipynb)をVS codeで実行・編集する -# -# VS Codeを使うと、ローカル環境で.ipynbファイルを実行・編集することができる。 -# 著者も、この授業資料の作成にはVS Codeを使っている。 -# -# 以下で紹介するGitHub Copilotとの相性も良いので、今後プログラミング学習を継続するつもりだ、という方は、 -# VS Codeでの.ipynbファイルの実行・編集も是非やってみてほしい。 -# -# ### 授業資料のダウンロード方法 -# -# 本授業資料の.ipynbファイルは、GitHubのレポジトリかBookの各ページからダウンロードすることができる。 -# -# * 方法1: GitHubの[レポジトリ](https://github.com/SotaYoshida/Lecture_DataScience)からダウンロードする. -# `<>Code`という緑色のボタンをクリックし、`Download ZIP`をクリックすると、全てのファイルをダウンロードできる。 -# 展開したフォルダ内の`notebooks`というディレクトリが、本授業資料の.ipynbファイルがある場所である。 -# -# -# -# * 方法2: Bookの各ページからダウンロードする. ブックの各章の上部にダウンロードボタン(下向き矢印)があるので、そこから`.ipynb`形式を選択し、ダウンロードすれば良い。 -# -# -# ### ipynb形式のファイルをVS Codeで開く&実行する -# -# 実行には当然Python環境が必要なので、インストール済みであるとする。 -# -# 1. ターミナルから -# -# ```bash -# pip3 install jupyter -# ``` -# などとして、Jupyterをインストールしておく。 -# 2. VS Codeを起動し、ダウンロードした`ipynb`ファイルを開く。 -# 3. コードセルを実行するには、`Shift+Enter`を押す。または、コードセルの左側にある`▶︎`をクリックする。このとき、複数のPython環境がインストールされている場合は、どのPython環境で実行するかを選択する必要がある。 -# 4. コードセルの実行結果が表示される。 -# - -# ## GitHub Copilot -# -# GitHub Copilotは、GitHubがOpenAIと共同で開発したコード補完ツールである。 -# 背後には、GPT-3ベースのOpenAI Codexが動いており、文字通りcopilotとして様々なコードやスニペットを提案してくれる。 -# -# GitHub Copilotは、VS Codeなどの拡張機能としても使用することができる。 -# ただし、GitHub Copilotが生成するコードは完璧ではないため、使う際は、**提案されたコードを注意深く確認し、必要に応じて修正を行う必要がある**ことは言うまでもない。 -# -# GitHub Copilotを使うには、まず、GitHub Copilotのベータ版に登録する必要がある。学生は、学生証などを提出することで、無料で登録・使用することができる。上手く使いこなせれば、かなりの生産性向上が期待できるツールであり、私も日々の研究において活用している。 -# -# もちろん、自身の意図を100%反映したコードを生成してくれるわけではないが、コードの骨組みを作ってくれるため大幅に作業が楽になることも多い。ときに「こんな書き方もあるのか」という気づきを与えてくれたりもする。 -# -# -# ### VS Codeへの導入 -# -# 1. GitHub Copilotに登録する。この際、GitHubアカウントを作成する必要がある。 -# 既にGitHubアカウントを持っている場合は、そのアカウントでログインする。 -# 「Github Copilot 学生申請」などで検索すると、学生向けの登録方法が見つかる。 -# 認証が済むと、GitHubのアカウントがPROアカウントになり、Copilotを使うことができるようになる。 -# 2. 次に、[Copilotのページ](https://github.com/features/copilot/)から、Start my free trialをクリックし、指示に従う。 -# -# 3. VS Codeのアカウント(人型)のアイコンから、GitHubアカウントにログインする。 -# -# 4. VS Codeの拡張機能タブから[GitHub Copilot]などと検索したのち、拡張機能をインストールする(2.でインストールが始まるかも)。その後指示に従い、インストールを完了する。 -# -# ### 試してみよう -# -# 試しに著者の環境(VS Code)で「適当な二次元データのヒートマップを描画するコードは以下のようになる」などと打つと... -# 以下のように、自身で入力した際よりも薄い色でコード(場合によっては複数行)が提案される。 -# -# -# -# Copilotの提案を受け入れるには`Tab`キーを押し、棄却する場合には`Esc`を押せば良い。複数行に渡る場合も同様である。 -# こうした作業を繰り返して生成されたコードを実行してみよう。 -# - -# In[3]: - - -#適当な二次元データのヒートマップを描画するコードは以下のようになる: - -import numpy as np -import matplotlib.pyplot as plt -import seaborn as sns - -# 2次元データの生成 -x = np.random.randn(1000) -y = np.random.randn(1000) - -# ヒストグラムの描画 -plt.hist2d(x, y, bins=50, cmap='Blues') -plt.show() - - -# もう少し具体的にカラーマップも指定してみよう。以下のコード例は -# 「適当な二次元データのヒートマップを作成するコード、但しカラーマップはjetを用いる。」と入力したあとに提案されたコードである。 - -# In[2]: - - -import numpy as np -import matplotlib.pyplot as plt -import matplotlib.cm as cm - -#データの作成 -x = np.arange(0, 10, 0.1) -y = np.arange(0, 10, 0.1) -X, Y = np.meshgrid(x, y) -Z = np.sin(X) + np.cos(Y) - -#ヒートマップの作成 -plt.pcolor(X, Y, Z, cmap=cm.jet) -plt.colorbar() -plt.show() - - -# 1回目は`seaborn`ライブラリを使っていたのに対し、2回目では`matplotlib.cm`からカラーマップ`cm`を呼んでいる事がわかる。 -# ランダムなデータの作り方も1回目と2回目、あるいはユーザーの実行ごとに変わったりすることに注意しよう。 -# -# 繰り返しになるが、GitHub Copilotの提案が本当に自身の意図したものとなっているかについては、**常にユーザーである我々が注意して確認する必要があること**は肝に命じておこう。 - -# ### 練習相手・チューターとしてのCopilot/Chat GPT -# -# この授業を履修する皆さんにはぜひ、GitHub CopilotやChat GPTを、自身の学習のための練習相手や24時間対応のTAやチューターのように活用してもらいたい。 -# 大規模言語モデルを使用したチャットボット(Chat GPT)は、プロンプトと呼ばれる指示文を適切に与えることで、その文脈に沿った文章を生成してくれる(かもしれない)という性質のものである。 -# -# 自分が望むような文章を生成する、あるいは文章生成を"回答"とみなし活用するためには、プロンプトの与え方に工夫が必要になる。 -# 「何がわからないのかも分からない」状態では質問のしようがないのと同様、指示が漠然としているとおそらく有効な回答を引き出す蓋然性は低くなってしまう。 -# プログラミング学習に活用するための適切なプロンプトを工夫することは、それ自体が**自身のやりたい作業を言語化する**という作業になっていて、一定の学習効果が期待される。 -# -# 皆さんの主体的な学習にむけて、幾つかChat GPTの使用例を紹介してみよう。 -# 適当な指示文を与えてみる。 -# -# -# -# -# もちろん、ここでは具体的なファイル構造を示したりファイルを与えているわけではないので、正しく動く保証も全く無いわけだが、概ねもっともらしいコードを生成してくれている。 -# 仮に提案されたコードがうまく動かない/使えないとき、うまく行かない理由と関連していそうな情報を与えてやったりすることで、解決策を提示してきたり、補足知識を与えてくれたりするという例も見せよう。 -# -# -# -# -# 細かいことを言うと、2.の1つめの画像の提案(`encoding="SHIFT-JIS"`)は、サポートされていないオプションの指定となりエラーになるが、(言語モデルはPythonの文法、とくにPythonの中での文字コードの指定に相当するコードを"理解"しているわけではないため)推論としては真っ当なものになっている。 -# -# 実は上の画像で挙げた例は、実際にPythonでcsvやエクセルファイルを読み書きしようとする際に、よく遭遇するエラーの例になっていて、 -# 私はそのことを知っているため、上のようなある種"誘導的な"プロンプトを与えることで、より有用な回答を得られるよう仕向けている。 -# 2.の2つめの画像で、より適切なオプションを指定するためにもう少しヒントをあげているという訳だ。 -# -# -# "自身の理解やこれまでの思考・試行を開示した上で質問をする"ことが、他人に質問する際に有効な回答を引き出すための近道であることと同じで、 -# 言語モデルを対話的に活用する上では、こうしたコツを抑えておくと良いかもしれない。 -# -# また、大規模言語モデルの性質・特性やその背景にある基礎について理解を深めることも非常に重要な姿勢だと感じる。 -# 理研AIPシンポジウムでの岡崎直観先生の特別講演[Youtubeへのリンク](https://youtu.be/PUuk4Cv-ycg)が非常に参考になる。ぜひ一度視聴してみてほしい。 diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode_4_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode_4_0.png deleted file mode 100644 index b4b38579..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode_4_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode_6_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode_6_0.png deleted file mode 100644 index c9bc0a97..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_VScode_6_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy.ipynb deleted file mode 100644 index ef2134b5..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy.ipynb +++ /dev/null @@ -1,892 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5ObsFxycyq-y" - }, - "source": [ - "# Numpyについて" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rFUjRPktyouP" - }, - "source": [ - "この授業で使うノートブックや、巷に転がってるPythonのコードでは、たびたび`Numpy`というものが使われています。\n", - "この補足ノートではその`Numpy`について説明します。\n", - "\n", - "`numpy`は数値演算ライブラリで、機械学習・画像音声処理などなど様々な場面で使用されるライブラリです。 \n", - "その特徴としては色々ありますが、\n", - "* 配列を用いた計算が楽かつ高速にできる \n", - "* その他数学的な処理がパッケージ化されている\n", - "\n", - "といったところでしょうか。\n", - "\n", - "1番目の点ですが、一般にPythonのような動的型付け言語に分類される言語は、Cなどの静的言語と呼ばれる言語に比べて、計算時間が長くかかってしまうことが多いです。\n", - "とくに、コンピュータを用いたシミュレーションの至るところに現れる配列の操作や、行列やベクトルに対する演算でその差が顕著なものとなります。\n", - "\n", - "一方、Pythonで読み出せる`numpy`ライブラリは、中身はC言語(およびFortran)で実装されていて、かつBLAS(行列演算ライブラリ)など最適化された線形計算ライブラリを使用できるためPythonの書きやすさを維持したまま、高速な計算を実現することができます。\n", - "\n", - "参考: NASAのModeling Gruによる数値演算速度の比較 \n", - "https://modelingguru.nasa.gov/docs/DOC-1762 \n", - "https://modelingguru.nasa.gov/docs/DOC-2783\n", - "\n", - "2番目の点 \n", - "numpyでは数学で用いる種々の関数(sin,cos,log,log10, etc.)が定義されていて簡単に読み出すことができます。また、乱数を生成してサイコロを振ったりすることも簡単です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4yAkLESw18J3" - }, - "source": [ - "## numpy.array" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n7PehTnq2FO7" - }, - "source": [ - "それでは`numpy`を`import`して、使ってみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1GqJqy6E2Fx0", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import numpy as np #numpyとかくと長いのでnpという名前で使う\n", - "\n", - "a = [ i for i in range(1,5001) ]\n", - "b = np.array(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vMRwzNrg2x7c" - }, - "source": [ - "まずは、1から5000までの整数が並んだリスト```a```と、 \n", - "それを```np.array()```関数に突っ込んだ```b```を定義してみました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "NfUOTAtO3BUl", - "outputId": "d56e79f4-0cb4-4a30-b0cc-5ccaaffd94bf", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a [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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000]\n", - "b [ 1 2 3 ... 4998 4999 5000]\n" - ] - } - ], - "source": [ - "print(\"a\", a)\n", - "print(\"b\", b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FMzFJCkV3FPc" - }, - "source": [ - "中身は同じものなのですが、```b```は途中を省略して表示してくれています。気が利いていますね。 \n", - "では`type`を調べてみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "qsO-w49n3My5", - "outputId": "685c671b-f927-42df-dbb8-555dd61ce432", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "aの型 \n", - "bの型 \n" - ] - } - ], - "source": [ - "print(\"aの型\", type(a))\n", - "print(\"bの型\", type(b))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4Vtge_q23TaX" - }, - "source": [ - "```a```は当然リスト型です。 \n", - "一方、```b```は```numpy.ndarray```という型であることがわかりました。\n", - "\n", - "```numpy.ndarray```というのは、numpyのもとで定義されているN-dimensional array、つまりN次元配列の略です。\n", - "\n", - "さて、次にnumpy.array同士の足し算をやってみましょう。 \n", - "リスト(2章のノート)の足し算では、リスト同士の結合を意味していました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "iyhT8VlK3tBy", - "outputId": "bc1c0074-b22c-451b-ef4e-afe64f4c6b57", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000]\n", - "aaの長さ 10000\n" - ] - } - ], - "source": [ - "aa = a + a \n", - "print(aa)\n", - "print(\"aaの長さ\", len(aa))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Bm2CnjvP4huy" - }, - "source": [ - "長さが倍になっています。\n", - "\n", - "一方、numpy.arrayである```b```を足してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "94HlgI5_4obB", - "outputId": "01ee9af3-bed3-46ff-88d9-2f556199a3c9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 2 4 6 ... 9996 9998 10000] 5000\n" - ] - } - ], - "source": [ - "bb= b + b\n", - "print(bb, len(bb))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TyJcH3664ydK" - }, - "source": [ - "というように、要素同士の和になっていることがわかります (長さは5000のまま)\n", - "\n", - "あるいは、3を```b```にかけてみると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Odi9GC2k48cq", - "outputId": "747635c9-145a-422f-d23b-11e2cd75bc64", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 3 6 9 ... 14994 14997 15000] 5000\n" - ] - } - ], - "source": [ - "b3 = 3*b\n", - "print(b3,len(b3))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AsKJ88dJ430w" - }, - "source": [ - "となり、すべての要素が3倍されています。\n", - "\n", - "これはよくよくみると**和**と**スカラー倍**が定義できている.つまり、ベクトルとしての性質を持っている事がわかります。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QfvRell3qWuC" - }, - "source": [ - "## np.dot\n", - "\n", - "データ分析をする際「要素ごとの積をとって和を取る」という操作が頻繁に表れます。 \n", - "たとえば$a=[1.0,3.0,4.0]$と$b=[-2.0,1.0,5.0]$について$1 \\times (-2) + 3.0 \\times 1.0 + 4.0 \\times 5.0 = 21$といった操作です。\n", - "この操作は数学的には、実数を成分にもつベクトルの内積に対応しますが`numpy`にはこの機能が備わっています。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "PPzYWVp_rIMx", - "outputId": "933d74eb-743b-4700-b879-7e42b2dd1fb6", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "21.0" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a = [1.0,3.0,4.0]\n", - "b = [-2.0,1.0,5.0]\n", - "\n", - "np.dot(a,b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8SOtK2AmrOxV" - }, - "source": [ - "多項式回帰の際の二乗誤差なども\n", - "\n", - "$\\chi^2 = \\sum^N_{i=1} (y_i - (ax_i+b))^2$は$y_i-(ax_i+b)$を$i$番目の成分に持つベクトルの自身との内積になるので、簡単に実装することができます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TBehECU08Xft" - }, - "source": [ - "## ブロードキャスト機能\n", - "\n", - "`numpy`にはブロードキャストと呼ばれる機能が備わっていて`ndarray`同士の二項演算では、形状を揃える機能が備わっています。たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "utqDGLBg8pne", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "x = np.array([1.0, 2.0, 3.0, 4.0])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0SN9arId8s02" - }, - "source": [ - "というベクトル(1次元のndarray)があったときに、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_7Phus0L8yMZ", - "outputId": "21b4268b-fe8a-4028-b3ec-7ba207d6b45d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([3., 5., 7., 9.])" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a = 2.0 \n", - "b = 1.0\n", - "a*x + b " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KWY0AyVv86Uw" - }, - "source": [ - "とすると、$a$でスカラー倍したのち、全ての成分に$b$が足されています。 \n", - "\n", - "$x$を$N$個成分を持つndarrayとして用意しておいて$y$に各点での関数$f(x_i) (i=1,...,N)$の出力を対応させたいときも下で見るようにブロードキャスト機能を使えば簡単に実装できます。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mUqn-XHHsQrc" - }, - "source": [ - "## arange, linspace" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zWCGWdSasV_D" - }, - "source": [ - "```np.arrange(始点,終点,公差)```や```np.linspace(始点,終点,数)```を使うと始点-終点の領域における等間隔な点を生成することができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "c1LeQetVsS9t", - "outputId": "a1c0f41e-eb48-48d6-e36b-31cf0f7e434e", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]\n", - "b [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]\n" - ] - } - ], - "source": [ - "a = np.arange(0.1, 1.0, 1.e-1) #終点は含まれない\n", - "b = np.linspace(1.0,10.0,10)\n", - "\n", - "print(\"a\", a)\n", - "print(\"b\", b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5_OViJTLsse1" - }, - "source": [ - "グラフを連続的に線で繋ぎたいときなどに重宝します" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "jCLpHQOvs7Mw", - "outputId": "cab31fe8-6958-4389-cca0-492feaccc45f", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "y [ 4. 5.91358025 12.7654321 24.55555556 41.28395062\n", - " 62.95061728 89.55555556 121.09876543 157.58024691 199. ]\n" - ] - } - ], - "source": [ - "x = np.linspace(0.0,10.0, 10)\n", - "a = 2.0; b=-0.5; c = 4\n", - "y = a * x**2 + b * x +c #二次関数\n", - "print(\"y\",y) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4Biuqzt-8UR4" - }, - "source": [ - "## 行列・線形代数\n", - "\n", - "ベクトルと同じように、`numpy.array`では二次元配列(つまり行列)を考えることも出来て、たとえば 左上から順に整数1,2,3,...という値をもった3行3列の行列を考えたければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "WZgc67d14spY", - "outputId": "a6bba0cf-9af0-4481-b8e3-f929ab2bae90", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[1 2 3]\n", - " [4 5 6]\n", - " [7 8 9]]\n" - ] - } - ], - "source": [ - "A = np.array( [ [1,2,3],[4,5,6],[7,8,9]] )\n", - "print(A)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p6W4J9Qw5-5e" - }, - "source": [ - "とすれば良い、といった具合です。\n", - "\n", - "他にも、たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "F5QZXmH-6rk-", - "outputId": "e6f2a29f-651c-4d4d-9636-3b2a9274f4c1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "行列B [[ 2. 0.1 -0.2]\n", - " [ 0.1 1.3 0.4]\n", - " [-0.2 0.4 3. ]]\n", - "Bの逆行列は [[ 0.50663777 -0.05147656 0.04063939]\n", - " [-0.05147656 0.80736928 -0.11108101]\n", - " [ 0.04063939 -0.11108101 0.35085343]]\n", - "Bの行列式は 7.3820000000000014\n" - ] - } - ], - "source": [ - "B = np.array( [ [2.0,0.1,-0.2], [0.1,1.3,0.4], [-0.2,0.4,3.0]])\n", - "print(\"行列B\", B)\n", - "print(\"Bの逆行列は\", np.linalg.inv(B))\n", - "print(\"Bの行列式は\", np.linalg.det(B))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nzlbA2Dr7Jeh" - }, - "source": [ - "といったように、線形代数(linalg <- linear algebraの略)で扱うような演算も簡単にできる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ouh3C4rJrzt9" - }, - "source": [ - "## 転置 .T" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HkBsSJvD7ZpP" - }, - "source": [ - "numpyは実はMatplotlibを使ったお絵かきでもよくお世話になる。それは、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "L1Ce9dXM7fU4", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tmp = [ [1,185,72,141], [2,165,50,543],[3,150,48,334],[4,172,65,123]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FtyBOgg17tyc" - }, - "source": [ - "というような入れ子のリストがあったときに、\n", - ">「2番目と3番目の値同士の二次元散布図がかきたい...」\n", - "\n", - "というようなケースがよくある。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "w6z-zdeT75QI" - }, - "source": [ - "このとき、ループをまわしてplotするのはめんどくさい。たとえば「2番目の値だけが入った配列に対して、3番目の値だけが入った配列を用意していっぺんにplotしたい」ときは転置(transpose,T)をつかえば一瞬で実現できる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "y-KkYrPy79aY", - "outputId": "3329b912-1fc6-440f-da9c-b66f57383349", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 1 2 3 4]\n", - " [185 165 150 172]\n", - " [ 72 50 48 65]\n", - " [141 543 334 123]]\n" - ] - } - ], - "source": [ - "ntmp = np.array(tmp).T #numpy.arrayに変換してから転置(transpose)を取りなさいという命令 .T\n", - "print(ntmp)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "h1VTI-0N86-U" - }, - "source": [ - "2番めと3番目の値だけ取り出したいときは、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "scuITZMh89wL", - "outputId": "6067a760-873b-4d70-dd6a-2a62c3d75589", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2番目の要素の配列 [185 165 150 172]\n", - "3番目の要素の配列 [72 50 48 65]\n" - ] - } - ], - "source": [ - "print(\"2番目の要素の配列\", ntmp[1])\n", - "print(\"3番目の要素の配列\", ntmp[2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AucAJOE08_vm" - }, - "source": [ - "とでもすればよいし、図も一度の命令だけで描ける\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OnbKmC4hWH3r" - }, - "source": [ - "あるいは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "xVheE25FWIr7", - "outputId": "30fa17de-4886-43f5-85aa-b9b4e3972bc3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[:,1] [185 165 150 172]\n", - "[:,2] [72 50 48 65]\n" - ] - } - ], - "source": [ - "print(\"[:,1]→\", np.array(tmp)[:,1])\n", - "print(\"[:,2]→\", np.array(tmp)[:,2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Cjn-eUnkWVh-" - }, - "source": [ - "などとしても良い。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "KjepB46w9IH-", - "outputId": "decf2096-bd4d-4d2c-acc3-d054a0bbd8a3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "filenames": { - "image/png": "/Users/sotauu/Desktop/Lecture_DataScience/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy_47_0.png" - }, - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "fig = plt.figure(figsize=(4,4))\n", - "plt.scatter(ntmp[1], ntmp[2]) #要素ごとにループを回したりしなくてよい\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eI1W1DL3Z7Xv" - }, - "source": [ - "文字列を含むリストをndarrayに変換したときの挙動には注意しよう. \n", - "文字列と数値は分けて使うのがオススメ." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "aNw6EUqdZ74j", - "outputId": "619defdf-ad1c-468a-d4d4-c20aeb742a3f", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "t [['Aさん' '170' '55']\n", - " ['Bさん' '160' '50']] data [['Aさん' 'Bさん']\n", - " ['170' '160']\n", - " ['55' '50']]\n", - "type \n" - ] - } - ], - "source": [ - "t = [ [\"Aさん\",170,55], [\"Bさん\",160,50]]\n", - "t = np.array(t)\n", - "data = t.T\n", - "print(\"t\",t, \"data\",data)\n", - "print(\"type\", type(data[1][0])) #文字列になってしまっている" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ENdvCzAI-Vqg" - }, - "source": [ - "(以下、都度追記)" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyORPKsRr7E5ZKXQ43j3EWAJ", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_numpy.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy.txt deleted file mode 100644 index 5286c916..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy.txt +++ /dev/null @@ -1,73 +0,0 @@ -import numpy as np #numpyとかくと長いのでnpという名前で使う - -a = [ i for i in range(1,5001) ] -b = np.array(a) - -print("a", a) -print("b", b) - -print("aの型", type(a)) -print("bの型", type(b)) - -aa = a + a -print(aa) -print("aaの長さ", len(aa)) - -bb= b + b -print(bb, len(bb)) - -b3 = 3*b -print(b3,len(b3)) - -a = [1.0,3.0,4.0] -b = [-2.0,1.0,5.0] - -np.dot(a,b) - -x = np.array([1.0, 2.0, 3.0, 4.0]) - -a = 2.0 -b = 1.0 -a*x + b - -a = np.arange(0.1, 1.0, 1.e-1) #終点は含まれない -b = np.linspace(1.0,10.0,10) - -print("a", a) -print("b", b) - -x = np.linspace(0.0,10.0, 10) -a = 2.0; b=-0.5; c = 4 -y = a * x**2 + b * x +c #二次関数 -print("y",y) - -A = np.array( [ [1,2,3],[4,5,6],[7,8,9]] ) -print(A) - -B = np.array( [ [2.0,0.1,-0.2], [0.1,1.3,0.4], [-0.2,0.4,3.0]]) -print("行列B", B) -print("Bの逆行列は", np.linalg.inv(B)) -print("Bの行列式は", np.linalg.det(B)) - -tmp = [ [1,185,72,141], [2,165,50,543],[3,150,48,334],[4,172,65,123]] - -ntmp = np.array(tmp).T #numpy.arrayに変換してから転置(transpose)を取りなさいという命令 .T -print(ntmp) - -print("2番目の要素の配列", ntmp[1]) -print("3番目の要素の配列", ntmp[2]) - -print("[:,1]→", np.array(tmp)[:,1]) -print("[:,2]→", np.array(tmp)[:,2]) - -import matplotlib.pyplot as plt -fig = plt.figure(figsize=(4,4)) -plt.scatter(ntmp[1], ntmp[2]) #要素ごとにループを回したりしなくてよい -plt.show() -plt.close() - -t = [ ["Aさん",170,55], ["Bさん",160,50]] -t = np.array(t) -data = t.T -print("t",t, "data",data) -print("type", type(data[1][0])) #文字列になってしまっている diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy_47_0.png b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy_47_0.png deleted file mode 100644 index 678780ac..00000000 Binary files a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_numpy_47_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_env_forWin11.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_env_forWin11.ipynb deleted file mode 100644 index 7e434f9f..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_env_forWin11.ipynb +++ /dev/null @@ -1,305 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "xygiFz3F15TQ" - }, - "source": [ - "# Pythonの環境構築 (Windows11版)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EvTOzAC173gT" - }, - "source": [ - "いくつかの方針が考えられるが、下記の導入を推奨とする。\n", - "\n", - "* Windowsターミナル\n", - "\n", - "* Windows Subsystem for Linux2(WSL2)\n", - "\n", - "\n", - ":::{note}\n", - "授業の受講者で環境構築を希望される方は、事前に相談することを強く推奨します。\n", - "とくにWindowsの場合、作成者(吉田)はWindowsユーザーではないので幾つかの情報が古い恐れがあります。\n", - ":::\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_LM9LKt-fBZq" - }, - "source": [ - "## Windowsターミナルの導入\n", - "\n", - "ターミナルとは、CUI(Character User Interface)、つまり \n", - "コマンドなどの文字列のみを用いてコンピュータを操作する環境を指す言葉です。\n", - "\n", - "CUIに対して、普段我々が使っているポインタやウィンドウなどは \n", - "GUI(Graphical User Interface)に相当します。\n", - "\n", - "何故現代においてもCUIが必要なのか、 \n", - "つまりマウスでポインタを動かしたりクリックするのではなく \n", - "一見不便そうな文字列だらけのインターフェースが用いられるのか、 \n", - "そこには*単に映画やドラマでハッカーの邪悪さを演出する*以上の理由があります。 \n", - "\n", - "計算機(コンピュータ)の発展の歴史的側面、パフォーマンス的側面から \n", - "その理由をすべて説明することはしませんが例えば授業で用いた \n", - "```ls```コマンドなどはCUIの利便性を表す一例になっていて、 \n", - "こうしたいわゆる\"機械的\"な操作についてはCUIに軍配が挙がります。\n", - "\n", - "Windows Terminalは、2019年にマイクロソフトがリリースしたターミナルで \n", - "コマンドプロンプトやPowerShellといったWindows独自のCUIに加えて \n", - "後述のWSLを統合的に扱うことができる環境となっています。\n", - "\n", - "\n", - "* Windows10の場合\n", - "\n", - " 後々のことも考えてこれを導入しておこう。 \n", - " MS storeでWindows terminalと検索し、 入手を押す\n", - "\n", - "* Windows11の場合\n", - "\n", - " 標準で入っているのでWindowsボタンで開くメニューから \n", - " 「terminal」などと検索すると出てくる" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rAlPquBCSVud" - }, - "source": [ - "## WSL2の導入" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jutP3oJrDq-1" - }, - "source": [ - "オペレーティングシステム(OS)の源流を遡ると、大まかには2つに大別される。 \n", - "1つがUnix系で歴史が古い。そしてもう1つはお使いのWindowsである。\n", - "\n", - "Unixはあるところで枝分かれし、LinuxやMac OSなどもUnix系に含まれる。 \n", - "サーバー用途のマシンや、スパコンなどの計算機環境では基本的にLinuxがOSとして採用されている。 \n", - "コンピュータの\"計算機\"としての側面や歴史的経緯から \n", - "プログラミング言語・開発環境などもUnix/Linuxとともに発展してきた部分が大きい。\n", - "\n", - "\n", - "一方でWindowsは、一般家庭でのコンピュータの需要拡大とともに独自の進化を遂げてきた。 \n", - "\n", - "Windowsユーザーが、プログラミング環境の構築やLinux-likeな作業をしたい場合 \n", - "方法は幾つかあるが最近だとWindows Subsystem for Linux (通称WSL)を使うのが \n", - "最も簡単かつ安全な方法の1つとされている。\n", - "\n", - "\n", - "この授業ではLinuxの中のUbuntuというディストリビューションを用意して使うことにしよう。 \n", - "Ubuntu自体はLinux OSの中ではGUI環境も良く出来ているディストリビューションで人気が高い。 \n", - "~日本語のシステムフォントがひどいWなんとかというOSよりはフォント・レンダリングも美しい~\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gancuw1N3uAJ" - }, - "source": [ - "* **手順1. WSLと仮想マシンプラットフォームの有効化**\n", - "\n", - " スタートメニューから「コントロールパネル」を検索して開く \n", - " \n", - "\n", - " コントロールパネルの[プログラム]>[Windowsの機能の有効化または無効化] を選択し\n", - " * 「Linux用Windowsサブシステム」\n", - " * 「仮想マシン プラットフォーム」 \n", - " \n", - " の2つにチェックを入れて有効化する(再起動が必要)\n", - "\n", - "\n", - "\n", - "* **手順2. Windows TerminalからWSLのインストール** \n", - "\n", - " スタートメニューからterminalなどと打ち込んで \n", - " Windows Terminalで右クリックして[管理者として実行]する \n", - " このアプリがデバイスに変更を加えることを許可しますか→[はい]\n", - "\n", - " ターミナルに\n", - " ```\n", - " wsl --install\n", - " ```\n", - " と打ち込んで実行(Enter)する \n", - " \n", - " \n", - "\n", - " 大量にヘルプが表示される場合は、\n", - "\n", - " ```\n", - " wsl --install -d Ubuntu\n", - " ```\n", - " と明示的にUbuntuを指定してインストールする\n", - "\n", - "\n", - "* **手順3. Ubuntuの起動**\n", - "\n", - " Ubuntuのウィンドウが開く※ので \n", - " 指示(Press any key to continue...)に従って適当なキーを押す。\n", - "\n", - " ※RyzenのCPUが搭載されたマシンを使っていて \n", - " ウィンドウが開いたときにerror: 0x800701bcが発生している場合は\n", - " [このページ](https://docs.microsoft.com/ja-jp/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package)を参考に \n", - " 「Linux カーネル更新プログラム パッケージ」をダウンロードして実行した後、手順1→2を再度行う。\n", - "\n", - "* **手順4. Ubuntuの初期設定**\n", - "\n", - " しばらくすると```Enter new UNIX username: ``` \n", - " とLinuxシステム用のusernameを求められるので \n", - " 適当なものを入力してEnterを押す \n", - " usernameは半角英数字にしよう。あとは...短い方があとあと便利。\n", - "\n", - " その後\n", - " ```NewPassword```\n", - " とパスワードの設定を求められるので打ち込んでEnter \n", - "\n", - " ```Retype new password```(もっかい打て)と言われるのでもう一度\n", - "\n", - " ユーザー名が緑色で表示されていて、エラーメッセージ等がなければOK\n", - "\n", - " \n", - "\n", - "\n", - "上記の手順以降は、スタートメニューからUbuntuと検索してUbuntuを開いても良いし \n", - "Windows terminalのタブの\"+\"のさらに右にある∨マークから \n", - "Ubuntuを選択すると(あるいはショートカットで)、Windows terminalの上でUbuntuが開く。\n", - "\n", - "なお、デフォルトの設定だとUbuntuを開くとUbuntuのホームディレクトリで開くし \n", - "Windows terminalから開くと、Windows側のホームディレクトリにいる状態で開く\n", - "\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iKAHNa6LSatq" - }, - "source": [ - "## WSL下でのPython環境の構築\n", - "\n", - "※以下では、直接/Windows TerminalのどちらでUbuntu環境を開いている場合も \n", - "便宜上\"Ubuntuターミナル\"と呼ぶことにしよう。\n", - "\n", - "WSL下にPython環境構築をする方法は以下の通り\n", - "\n", - "* **手順1. aptのupdate/upgrade**\n", - "\n", - " Ubuntuターミナルで以下を入力し実行する\n", - " ```\n", - " $sudo apt update\n", - " $sudo apt upgrade\n", - " ```\n", - "\n", - " 注:上の```$```は打ち込むのではなく、 Ubuntuターミナルの末尾にある```$```を指し \n", - " Pythonの対話モードなどで打ち込む場合と区別するための表記。\n", - "\n", - " sudoはコマンドの頭につけることで管理者権限で実行する、という命令を意味します。 \n", - " 実行時に、Ubuntu用に設定したパスワードが要求されます \n", - " 入力しても画面には表示されないので注意しながら打ち込んでEnterを押す。 \n", - " (間違っても再度入力を求めてくれますし、やめたければCtrl+C)\n", - "\n", - " aptはLinux(Debian系)のパッケージ管理システムです。 \n", - " ```\n", - " $sudo apt install xxxx\n", - " ```\n", - " などとして、様々なものを簡単にインストールすることが出来ます。\n", - "\n", - " ※PCの時刻設定がきちんと行われていないと、aptのupdateやupgradeに失敗します。\n", - "\n", - "* **手順2. Pythonのインストール**\n", - "\n", - " Ubuntuには初めからPython3系が含まれていますが、\n", - "\n", - " pythonの最新バージョンをpip込みでインストールしましょう。\n", - " ```\n", - " $sudo apt install python3-pip -y\n", - " ```\n", - " これでpython3.xとpython用のパッケージマネージャpipがインストールされます。\n", - "\n", - "* **手順3. Pythonの対話モードに入ってみよう**\n", - "\n", - " インストールが終わったら```python3```と打ち込んでEnterを押すと \n", - " Pythonの対話モードに入ります。対話モードの中で\n", - " ```\n", - " >print(\"Hello\")\n", - " ```\n", - " などと打ち込んで実行してみましょう。\n", - "\n", - " 打ちかけの作業を消したり、処理を中断する際はCtrl+Cを、 \n", - " 対話モードから抜けたければCtrl+Dを入力します \n", - " (書きかけのコードがあったり処理が実行されているときは先にCtrl+Cで中断してからCtrl+d)\n", - "\n", - "* **手順4. ライブラリのインストール**\n", - "\n", - " ライブラリ・モジュールをインストールしたければUbuntuターミナルから\n", - " ```\n", - " $pip3 install matplotlib\n", - " $pip3 install pandas\n", - " $pip3 install Selenium\n", - " ```\n", - " などを実行します。\n", - "\n", - " Google Colab環境では毎度\n", - " ```\n", - " !pip install japanize-matplotlib\n", - " ```\n", - " などとしましたが、一度インストールしておけば \n", - " コードの実行のたびにpipでインストール作業を行う必要はありません。 \n", - " (ライブラリのimportはセッションごとに必要です)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IGGzjhDdQPP9" - }, - "source": [ - "その他、Linuxコマンドの使い方等については[元のノートブック](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/main/notebooks/Python_misc_python_environment.ipynb)を参照" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "include_colab_link": true, - "name": "Python_misc_python_env_forWin11.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_env_forWin11.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_env_forWin11.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_environment.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_environment.ipynb deleted file mode 100644 index d764e817..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_environment.ipynb +++ /dev/null @@ -1,935 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "xygiFz3F15TQ" - }, - "source": [ - "# Pythonの環境構築\n", - "\n", - "**Windows11をお使いの方は[こちらのノートブック](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/main/notebooks/Python_misc_python_env_forWin11.ipynb)を参照してください**\n", - "\n", - "手元で作業がしたい、という方に向けて \n", - "ローカル環境にPythonを導入する方法をOSごとに紹介する。 \n", - "\n", - "難易度としてはLinux < Mac << (壁)<< Windowsといった感じ(私見).\n", - "\n", - ":::{note}\n", - "授業の受講者で環境構築を希望される方は、事前に相談することを強く推奨します。\n", - "とくにWindowsの場合、作成者(吉田)はWindowsユーザーではないので幾つかの情報が古い恐れがあります。\n", - ":::" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "sq5ewMLVBX_D" - }, - "outputs": [], - "source": [ - "#動画貼り付け用\n", - "from IPython.display import HTML\n", - "from base64 import b64encode" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6Z6mR5y871Nj" - }, - "source": [ - "## Windowsの場合\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EvTOzAC173gT" - }, - "source": [ - "いくつかの方針が考えられる。\n", - "\n", - "1. Pythonのインストーラを用いてインストールする \n", - " * メリット: Windows環境を汚さない, インストールが楽 \n", - " * デメリット: 他のプログラミング言語などへの拡張性が低い\n", - " \n", - "2. Linux環境を構築する(**推奨**)\n", - " * 2-1. Windows Subsystem for Linux(WSL)(**推奨**) \n", - " * メリット: Windows環境を汚さない, Linuxシェル環境・パッケージマネージャ(Pythonに限らず各種インストールが楽) \n", - " * デメリット: WSL特有の情報を調べる必要がある\n", - "\n", - " * 2-2. デュアルブート \n", - " * メリット: Windowsとは別に好きなLinuxディストリビューションを共存させられる \n", - " * デメリット: ディスク領域の分割などが必要\n", - " 慣れないとデータを吹っ飛ばす危険あり \n", - " (外部ストレージ等でのバックアップ必須です)\n", - "\n", - " * 2-3. その他 (Docker環境など)\n", - "\n", - " * このノートブックでは説明しない" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dSRDbGRtjOUq" - }, - "source": [ - "### 1.の方法" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 335 - }, - "id": "LlF9t8tRCl3-", - "outputId": "9cc59d5f-7f78-4094-d7aa-6fdf370b53bc" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(r'')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LxXDO1L1HSGZ" - }, - "source": [ - "以下のA)B)いずれかの方法でストアを開き \n", - "Python3.8かPython3.9を選び[入手]する。\n", - "\n", - "A) Microsoft Storeを開き、pythonと検索する。\n", - "\n", - "B)コマンドプロンプト※を開き、pythonと入力してEnter→Storeが開く。 \n", - "(※Win10の左下にある検索バーにcmdと打つと出てくる) \n", - "B)の方法だとstore上で古いpythonが開くかもしれないので \n", - "検索バーから再度pythonと検索しよう。\n", - "\n", - "**インストールしたpythonの使い方**\n", - "\n", - "コマンドプロンプト上で\n", - "```\n", - "python\n", - "```\n", - "と実行すると対話モードでpythonが開く。 \n", - "スタートメニューからpythonを起動しても同じ。\n", - "\n", - "\n", - "\n", - "```\n", - "print(\"Hello World\")\n", - "```\n", - "や、\n", - "```\n", - "for i in range(5):\n", - " print(i)\n", - "```\n", - "などを実行してみよう。\n", - "\n", - "Python(対話モード)を終了する際はCtrl+Z(もしくはCtrl+Cを実行後にCtrl+Z)→Enterを押すか、\n", - "```\n", - "exit()\n", - "```\n", - "と入力しEnterを押せば良い。\n", - "\n", - "**Python用のライブラリをインストールする方法**\n", - "\n", - "コマンドプロンプト上で\n", - "```\n", - "pip install matplotlib\n", - "pip install pandas\n", - "pip install Selenium\n", - "```\n", - "などとする。\n", - "\n", - "**ソースファイルの編集と実行**\n", - "\n", - "対話モードだと、長い処理を実現するのには向いていないので、 \n", - "作業をソースコードとしてファイルに書き出し、それを実行したくなる。 \n", - "実行したい場合は、コマンドプロンプト上で\n", - "```\n", - "python hogehoge.py\n", - "```\n", - "などとすると```hogehoge.py```というファイルに書いた処理が実行される。\n", - "\n", - "例: デスクトップにあるソースコードを実行する場合\n", - "\n", - "```\n", - "chdir Desktop \n", - "```\n", - "などして、適宜カレント(現在いる)ディレクトリの変更をするか\n", - "```\n", - "python Desktop/hogehoge.py\n", - "```\n", - "など実行するソースの(相対 or 絶対)パスの指定が必要になる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rAlPquBCSVud" - }, - "source": [ - "### 2-1. の方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jutP3oJrDq-1" - }, - "source": [ - "Windowsの中にLinux(とくにUbuntu)を入れる方法\n", - "\n", - "[Windows11用の資料](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/2021/notebooks/Python_misc_python_env_forWin11.ipynb)も参考になります。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 335 - }, - "id": "9Es-IU7ZFaEq", - "outputId": "b5ef62a9-2efd-4acf-d974-bc71b06cd521" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(r'')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iKAHNa6LSatq" - }, - "source": [ - "* **手順1.WSLの有効化**\n", - "\n", - " コントロールパネルから[プログラム]->[Windowsの機能の有効化または無効化] を選択し \n", - " 「Windows Subsystem for Linux」にチェックを入れて有効化する(再起動が必要)\n", - "\n", - "* **手順2. Ubuntuのインストール**\n", - "\n", - " Microsoft storeでUbuntuと検索し、1番目(単にUbuntuという名前のもの)か、 \n", - " あるいは20.04LTSをインストールする \n", - " \n", - " ※Windows OSのアップデートをしばらく行っていない場合、入手ボタンが押せない。 \n", - " 一般論として、OSのマイナーアップデートは都度行うようにしましょう。 \n", - " (メジャーアップデートは場合による...)\n", - "\n", - "* **手順3.Ubuntuの起動・初期設定**\n", - " \n", - " スタートメニューからUbuntuを起動する\n", - "\n", - " * Enter new UNIX username: Linuxで使うユーザー名を入力する\n", - " * new password: パスワードを設定する\n", - " * Retype new password: 確認のため再入力する\n", - "\n", - " これで、windows内にlinux環境が構築されます。\n", - "\n", - "* **手順4. aptのupdate/upgrade** \n", - "\n", - " Ubuntuターミナルに以下を入力し実行\n", - " ```\n", - " $sudo apt update\n", - " $sudo apt upgrade\n", - " ```\n", - "\n", - " 注:上の```$```は皆さんが入力すべきものではなく、 \n", - " Ubuntuターミナルにある$を指し \n", - " Pythonの対話モードなどで打ち込む場合と区別するための表記。\n", - "\n", - " sudoはコマンドの頭につけることで管理者権限で実行する、という命令を意味します。 \n", - " 実行時に、Ubuntu用に設定したパスワードが要求されます \n", - " 入力しても画面には表示されないので注意しながら打ち込んでEnterを押す。 \n", - " (間違っても再度入力を求めてくれますし、やめたければCtrl+C)\n", - " \n", - " aptはLinux(Debian系)のパッケージ管理システム \n", - " ※PCの時刻設定がきちんと行われていないと、aptのupdate/upgradeに失敗します。\n", - "\n", - " \n", - "\n", - "* **手順5. Pythonのインストール** \n", - "\n", - " Ubuntuには初めからPython3系が含まれていますが、 \n", - " pythonの最新バージョンをpip込みでインストールしましょう。\n", - "\n", - " ```\n", - " $sudo apt install python3-pip -y\n", - " ```\n", - " これでpython3.xの最新バージョンと、python用のパッケージマネージャpipがインストールされる\n", - "\n", - "* **手順6. ライブラリのインストール** \n", - "\n", - " ライブラリ・モジュールをインストールしたければ\n", - " ```\n", - " $pip3 install matplotlib\n", - " $pip3 install pandas\n", - " $pip3 install Selenium\n", - " ```\n", - " などを実行する。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qpMLRtznBk-F" - }, - "source": [ - "### Windows環境のどこにLinuxのファイルが保存されるか" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "m14aIZMayDK3" - }, - "source": [ - "\n", - "```C:\\Users\\XXX\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\LocalState\\rootfs```\n", - "\n", - "のXXX部分(や場合によってはドライブ部分C:)を皆さんの環境に置き換えたものが、 \n", - "Windows内に構築されたLinuxのルートディレクトリ(最上位のディレクトリ)となります。 \n", - "Ubuntuを開くと、rootfs以下のhomeディレクトリにログインした状態でターミナルが開きます。\n", - "\n", - "パスが上記と微妙に異なる場合は、 \n", - "WindowsのユーザーフォルダからAppDataを開いて、 \n", - "検索バーでUbuntuと検索すれば、 \n", - "該当するディレクトリが見つけられるはずです。 \n", - "(隠しフォルダを非表示にしていると見えないかも)\n", - "\n", - "\n", - "Windows11の場合は適当なフォルダ(エクスプローラー)を開くと \n", - "左側にLinuxのペンギンマークがあるので、そこから参照できます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pf6D3K6nDMGz" - }, - "source": [ - "### Linux側からWindows側のファイルにアクセスする" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1lD8ywRszRCM" - }, - "source": [ - "WindowsのディスクはLinuxからみた```/mnt/```以下にマウントされている。 \n", - "たとえば、```/mnt/c/Users/[ユーザー名]/Downloads```\n", - "で、Windows側のダウンロードフォルダのパスを指定できる。\n", - "\n", - "OneDriveによるバックアップに含まれているフォルダは、 \n", - "デフォルトパスから、OneDriveの下に変更されていることがあるので注意。\n", - "\n", - "(例: デスクトップはLinuxから見ると```/mnt/c/Users/[ユーザー名]/Desktop```のはずだが、 \n", - "デスクトップフォルダがOneDriveのバックアップ対象になっていると、 \n", - "```/mnt/c/Users/[ユーザー名]/OneDrive/Desktop```などと変更されてしまうので注意。)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2SNhn1kXHiRh" - }, - "source": [ - "### WSLのバージョン確認と更新\n", - "\n", - "Windows10を使っていてMS Storeから導入した方で \n", - "GUIを伴う処理を行いたい場合、WSLのバージョンを2にする必要がある。\n", - "\n", - "以下の手順でバージョンを確認し、必要なら更新しよう\n", - "\n", - "1. スタートメニューからWindows PowerShellを開く\n", - "\n", - "2. PowerShell上で下記のコマンドを入力し、バージョンを確認する\n", - " ```\n", - " > wsl --list --verbose\n", - " ```\n", - " 出力結果をみてUbuntuのVERSIONが1になっている場合 \n", - " 更新を行おう\n", - " \n", - "\n", - "3. 更新のための前準備として、https://aka.ms/wsl2kernel\n", - " にアクセスし \n", - " x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージをダウンロードする。 \n", - " ダウンロードが終わったらパッケージを起動して、案内にしたがって実行する\n", - "\n", - "4. PowerShellに戻り、\n", - " ```\n", - " wsl --set-version Ubuntu 2\n", - " ```\n", - " を実行しwslのバージョンを2に変更する(そこそこ時間がかかる)\n", - "\n", - " \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LUePSAzjio_g" - }, - "source": [ - "### WSL環境でMatplotlibのshow()などを使う\n", - "\n", - "\n", - "WSL(今はUbuntu)では、そのままでplt.show()などの \n", - "ウィンドウを開くような操作が使えない。\n", - "\n", - "その場合はx11とtkinterを含むpython3をインストールしよう\n", - "```\n", - "$ sudo apt update\n", - "$ sudo apt upgrde\n", - "$ sudo apt install language-pack-ja\n", - "$ sudo apt install x11-apps\n", - "$ sudo apt install python3-tk\n", - "```\n", - "\n", - "\n", - "さらにXサーバ(以下ではVcXsrvを選びます)をインストールする:\n", - "\n", - "1. https://sourceforge.net/projects/vcxsrv/\n", - " からDownload\n", - "\n", - "2. ダウンロードしたものを実行\n", - "\n", - " (デスクトップショートカットは無くても良い)\n", - " \n", - "\n", - "\n", - "3. スタートメニューからXLaunchを実行\n", - "\n", - " \n", - "\n", - " 道なりに進んでAdditional parameters for VcXsrvの欄に-acを入力し進む\n", - "\n", - "4. \"Save Configuration\"を選択してショートカットを作成することで、次回以降同様の作業をしなくても良いようにできる\n", - "\n", - "\n", - "```\n", - "$xlogo\n", - "```\n", - "を実行するか、Pythonの対話環境の中で\n", - "```\n", - "import matplotlib.pyplot as plt\n", - "fig = plt.figure()\n", - "plt.show()\n", - "```\n", - "などとやってウィンドウが表示されればOK.\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "h2K-l3Iu0vHS" - }, - "source": [ - "### 2-2.の方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5th6Q2I90yXC" - }, - "source": [ - "バックアップや起動ディスク等の知識なくデュアルブート環境を構築しようとすると \n", - "最悪の場合すべてのデータを失いますので、こちらを選ぶ場合は予め相談してください。\n", - "\n", - "Linux環境を構築をすれば、あとはLinuxを起動し、以下のLinuxの場合の手順に従うだけ。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c17cT0gy2fwF" - }, - "source": [ - "## Macの場合" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 335 - }, - "id": "-0EaMODUBA0a", - "outputId": "d71eaf40-8fb9-447f-bca7-be2f2f9dec99" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(r'')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HMrb9so42ihm" - }, - "source": [ - "python2.xやpython3.x (xは購入機種・時期によって違う)が元々入っている。 \n", - "\n", - "Launchpadにある[その他]から**ターミナル**を開き、 \n", - "```python```と入力し、タブキーを2回押すと該当するものが表示される。 \n", - "以下は一例:\n", - "```\n", - "python python2 python2.7-config python3-config python3.7-config python3.7m-config pythonw \n", - "python-config python2.7 python3 python3.7 python3.7m pythontex pythonw2.7 \n", - "```\n", - "\n", - "python3がある場合は、\n", - "```$python3```\n", - "と入力しエンターを押すと、pythonの対話モード(インタラクティブモードとも)が開く※。\n", - "\n", - "\n", - "※初回起動時はXcodeの導入が必要かもしれない \n", - "その場合は、ターミナルに\n", - "```\n", - "xcode-select --install\n", - "```\n", - "を打ち込みインストール作業を行う。 \n", - "Xcodeのサイズがでかいので安定したネットワーク下で実行すること.\n", - "\n", - "Python(対話モード)が起動できたら\n", - "```\n", - "print(\"Hello World\")\n", - "```\n", - "などと打って、エンターを押すと、文字列```\"Hello World\"```が表示されるので試してみよう。\n", - "\n", - "\n", - "\n", - "pythonの最新のバージョンやその他色々なものを導入したければ \n", - "今後のことも考えてMacにHomebrewと呼ばれるパッケージマネージャを導入しよう。\n", - "[参考](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)\n", - "\n", - "Homebrewが導入できたら、\n", - "\n", - "```\n", - "brew update\n", - "brew upgrade\n", - "brew upgrade python3\n", - "```\n", - "と順にターミナルで実行する(暫く掛かるかも). \n", - "\n", - "※python3がもともとない場合は、3つめのものを \n", - "```\n", - "brew install python3\n", - "```\n", - "などと置き換える。\n", - "\n", - "インストールに成功すれば、python用のパッケージマネージャ(pip)も使えるようになるはず。 \n", - "以後は\n", - "```\n", - "pip install matplotlib\n", - "pip install pandas\n", - "```\n", - "などとすると、python用のモジュールがインストールされ、 \n", - "pythonからいつでもインポートして使うことができる。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JBnG_Zeapnc5" - }, - "source": [ - "MacにDocker環境を入れておけば、```apt```で色々揃うので、レガシーコードの動作確認等にも役に立つ。\n", - "\n", - "M1以降のApple制のCPUを搭載している場合、Pythonのパッケージ管理やDockerの導入などはやや難易度が上がる。\n", - "(※英語で調べれば必要な情報は出てくる)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OtjKhaH451we" - }, - "source": [ - "## Linuxの場合" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0rZweyH-53og" - }, - "source": [ - "Linuxを使っている人が、pythonのインストールができないとは思いにくいが... \n", - "\n", - "ターミナルから\n", - "```\n", - "$sudo apt update -y\n", - "$sudo apt upgrade -y\n", - "$sudo apt dist-upgrade -y\n", - "$sudo apt autoremove -y\n", - "```\n", - "などを実行しパッケージマネージャのアップデート等を行った後 \n", - "python3系がない場合は\n", - "```\n", - "$sudo apt install python3\n", - "```\n", - "ある場合は\n", - "```\n", - "$sudo apt upgrade python3\n", - "```\n", - "などを実行すればよい。\n", - "\n", - "pipがない場合、\n", - "```\n", - "$sudo apt install python3-pip\n", - "```\n", - "を実行する。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N4vEf_Av9hjN" - }, - "source": [ - "# Linux/Unix ターミナルの操作" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3uyugO029lsM" - }, - "source": [ - "Linux(WSL)やUnix(Mac)のCUI環境で必要な基本的な操作をまとめる\n", - "\n", - "* Ctrl+C: 入力内容の消去・実行中の作業の中断\n", - "* Ctrl+D: ターミナル(タブ)を閉じる (Pythonの対話モードから出るときにも使う)\n", - "* Tab: 入力を補完してくれる\n", - "* *(半角アスタリスク): ワイルドカード記号\n", - "\n", - "基本的なコマンド\n", - "* ```cd``` \"現在地\"を変更する\n", - "```\n", - "$cd ./Desktop \n", - "$cd ../ \n", - "$cd ~\n", - "$cd -\n", - "```\n", - "1つめはhomeディレクトリからデスクトップ(があれば)移動 \n", - "2つめは1つ上の階層に移動する \n", - "3つめはホームディレクトリに移動 \n", - "4つめは直前にいたディレクトリに移動\n", - "\n", - "* ```ls``` ファイルやディレクトリなどを表示する.\n", - "```\n", - "$ls \n", - "$ls ../*.txt\n", - "$ls Picutures/pic_*.png\n", - "``` \n", - "1つめは現在いるディレクトリ以下のファイル等を表示 \n", - "2つめは現在いるディレクトリの1つ上の階層にある.txt拡張子の全ファイルを表示 \n", - "3つめは現在ホームディレクトリにいると仮定して、その直下にあるPictures以下にあるpngファイルのうち、冒頭が```pic_```のものを全て表示\n", - "\n", - "* mv ファイル・ディレクトリの移動・リネーム\n", - "\n", - " ```\n", - " $mv aa.txt ~/Desktop\n", - " $mv bb.txt ../AdDS/cc.txt\n", - " ```\n", - " 1つめ: カレントディレクトリにあるaa.txtというファイルをデスクトップに移動 \n", - " 2つめ: bb.txtを一つ上の階層にあるAdDSというディレクトリに移動し、cc.txtとリネームする。 \n", - " \n", - " ワイルドカード*で複数ファイルを一気に移動させることもできる。ディレクトリの場合も同様。 \n", - "\n", - "\n", - "* mkdir ディレクトリを作る\n", - "``` \n", - "$mkdir Desktop/AdDS2021\n", - "```\n", - "\n", - "* rm ファイルやディレクトリを削除する\n", - "```\n", - "$rm ./Desktop/report1.txt\n", - "```\n", - "ディレクトリを消すときは-rオプションが必要\n", - "```\n", - "$rm -r ./Desktop/AdDS2021\n", - "```\n", - " **rmコマンドで削除したものはゴミ箱に入れられずに削除されるので注意** \n", - " 特にワイルドカードを使って全て削除してしまうとバックアップを取っていないと復元は困難だし、誰も責任をとってくれない。\n", - " (rmコマンドにエイリアスを貼って、ゴミ箱を経由する命令に置き換えたりrmtrash(や類似のもの)を使用するのがオススメ)\n", - "\n", - "* grep 検索\n", - "``` \n", - "$grep \"Hello World\" Desktop/AdDS2021/*py\n", - "```\n", - "\n", - "\n", - "**タブ補完**\n", - "\n", - "Linux/Unixターミナルでは、タブによる入力補完が使えますので \n", - "ぜひ多用してください。\n", - "\n", - "ちなみに今Desktopにいて、そこに \n", - "```AdDS2019, AdDS2020, AdDS2021```\n", - "というディレクトリがあり、 \n", - "最初のものに移動したいとします。\n", - "こんなとき、いちいち\n", - "```\n", - "$cd AdDS2019\n", - "```\n", - "と打つのは面倒だし、打ち間違えたりします。\n", - "```\n", - "$cd Ad\n", - "```\n", - "と打った時点でタブをポンポンと叩くと、 \n", - "Desktopに上記のフォルダ以外の\"Ad\"を含むディレクトリがなければ \n", - "```AdDS20```まで入力が補完され、 \n", - "該当する候補(上の全てのディレクトリ)がターミナル上で表示されます。 \n", - "その後1を打って再びタブを叩くと、該当するものは一つですので \n", - "(ambiguityがなくなった時点で)最後まで入力が補完されます。\n", - "\n", - "\n", - "ちなみにPython側からLinuxのコマンドを実行したければ \n", - "```\n", - "import os\n", - "os.system(\"ls *.txt\")\n", - "```\n", - "などとすれば良い。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-59SkHdxcbdW" - }, - "source": [ - "## Linuxのホームディレクトリの変更\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Cr8gjvHLcf_0" - }, - "source": [ - "WSLを使用する際、Windows側から見るとLinux(Ubuntu)は```C:\\Users\\username\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\LocalState\\rootfs``` \n", - "といった階層に入っている。\n", - "\n", - "Ubuntuを起動した際に開くターミナルの\"位置\"(これをホームディレクトリと呼ぶ)は、 \n", - "上記のルートディレクトリ(rootfs)直下にあるhomeである。 \n", - "\n", - "たとえばWindows側のホームディレクトリ ```C:\\Users\\[username]```以下に \n", - "適当なディレクトリを作って、それをUbuntuのログイン(ホーム)ディレクトリとして設定することも出来る。\n", - "\n", - "※ 以下の操作では、emacsやvi(m)などのエディタに慣れていないうちは \n", - "システムファイルに余計な文字を書き込んでしまう危険性があるので \n", - "エディタの使い方を調べてから実行するなど、注意が必要です。 \n", - "(不安な場合はZoomで画面を共有しながら一緒にやりましょう)\n", - "\n", - "ホームディレクトリの変更方法は、 \n", - "1. Ubuntuターミナルから、管理者権限で```/etc/passwd```を開く \n", - "たとえば、emacsが入っていれば\n", - "```\n", - "$sudo emacs /etc/passwd\n", - "```\n", - "なければ\n", - "```\n", - "$sudo vim /etc/passwd\n", - "```\n", - "でファイルを開きます。\n", - "\n", - "\n", - "2. どこかに\n", - "```\n", - "Ubuntuユーザ名:x:1000:1000:\"\",,,:/home/ユーザ名:/bin/bash\n", - "```\n", - "といった欄があるので```/home/ユーザー名```部分を、 \n", - "Windows側に作成しておいた新しくLinuxのホームディレクトリとしたいディレクトリの \n", - "パスに置き換えて、passwdを上書き保存し、閉じる。\n", - "\n", - "* Emacsの場合 編集は簡単. Ctrl+X -> Ctrl +Sを押して上書き保存. Ctrl+X->Ctrl+Cで閉じる.\n", - "* vimの場合 iを押すとインサートモードに入り編集可能に. 編集モードから抜けるのはEsc. ```:wq```で保存して終了\n", - "\n", - "3. Ubuntuを再起動し、エラー等が表示されず、 \n", - "```pwd```コマンドで現在地を確認して設定したディレクトリになっているか確認しましょう。\n", - "\n", - "4. もともとのホームディレクトリにあった```.bashrc```(エイリアスなどの情報を書くファイル)を\n", - "新しいホームディレクトリに移動させれば完了です。\n", - "```\n", - "$cp -r /home/[user name]/.* ~/\n", - "```\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 隠しファイル/隠しフォルダ(dot files)について\n", - "\n", - "Linuxでは、ファイル名の先頭に```.```がついているものは隠しファイルと呼ばれ、通常の`ls`コマンドなどの表示対象外となる。\n", - "隠しファイルを表示するには、`ls`コマンドに`-a`オプションをつければよい。\n", - "\n", - "とくに、ホームディレクトリには、特定のアプリケーションの設定ファイルなどが隠しファイルとして保存されていることが多く、\n", - "数値計算ライブラリの開発や使用、ソースコードの編集・実行などの際には、隠しファイルを扱うこともある。\n", - "\n", - "これら隠しファイルや隠しフォルダは、dot filesと呼ばれることもあり、\n", - "新しい端末を購入したときの設定ファイルの移行などにも使われる。\n", - "\n", - "特に複数台の端末を使用している人などは、GitHubなどのリポジトリに自身のdot filesをアップロードしておき、\n", - "新しい端末を購入した際には、そのリポジトリからdot filesをダウンロードして使用することで、\n", - "移行をスムーズにしているようである(私は割とイチから設定するのが好きだったりします)。\n", - "\n", - "\n", - "以下では、代表的なものを少し紹介しておく:\n", - "\n", - "**.bashrc** : bashの設定ファイル \n", - "\n", - "エイリアスの設定などを書くことができる. エイリアスとは、例えばコマンドでpythonを使う際、いちいち`python`とか`python3.9`などを\n", - "指定しなくてもお目当てのpython環境を使用できるようにするためのもの. 例えば、.bashrcに\n", - "```\n", - "alias py=python3.9\n", - "```\n", - "などと書いておけば、`py`と打つだけでpython3.9が起動/使用できるようになる.\n", - "\n", - "注意としては\n", - "1. 使用しているシェルによって、設定ファイルの名前が異なることがある. 例えば、bashの場合は`.bashrc`だが、zshの場合は`.zshrc`となる.\n", - "2. 設定ファイルを変更した場合は、`source`コマンドを実行することで、変更を反映させる必要がある. 例えば、`.bashrc`を変更した場合は、\n", - "```\n", - "$source ~/.bashrc\n", - "```\n", - "とするか、ターミナルを再起動する必要がある.\n", - "\n", - "**エディタの設定ファイル**\n", - "\n", - "CUI/GUIを問わず、エディタの設定ファイルもホームディレクトリ直下の隠しディレクトリとして保存されることが多い.\n", - "\n", - "例えば私の環境だと、`~/.emacs`,`~/.vim`,`~/.vscode`,`~/.atom`など、今は使っていないものも含めて、\n", - "エディタの設定ファイルが保存されている。\n", - "\n", - "**sshの設定ファイル**\n", - "\n", - "SSHとは、スーパーサイエンスハイスクール...ではなく、Secure Shellの略で、ネットワーク上で安全にリモートコンピュータにログインしたり、\n", - "ファイルを転送したりするためのプロトコルである。\n", - "\n", - "例えば研究室内に置かれたワークステーションやスパコンなど別の環境にログインして重い計算を回す、といったときには基本的にはssh公開鍵認証を用いてローカル環境からリモート環境にログインすることになるが、\n", - "その際に使用する鍵や、リモート環境へのログインに必要な情報などが、ホームディレクトリ直下の隠しディレクトリ`~/.ssh`に保存される。\n", - "\n", - "例えば、(sshを使ったことがある場合は)`~/.ssh/config`に、接続先のホスト名やポート番号などが記載されたり、\n", - "逆にリモート側では、`~/.ssh/authorized_keys`に、接続を許可する公開鍵が記載されていたりする。\n", - "\n", - "なお、公開鍵認証とは、リモート環境にログインする際に、公開鍵と秘密鍵のペアを用いて認証を行う方式で、\n", - "秘密鍵はローカル環境に、公開鍵はリモート環境に置いておくことで、安全にログインを行うことができるものである。\n", - "秘密鍵の取り扱いに注意が必要であることは言うまでもない。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "dSRDbGRtjOUq", - "rAlPquBCSVud", - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "include_colab_link": true, - "name": "Python_misc_python_environment.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_environment.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_environment.txt deleted file mode 100644 index d02e6c97..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_misc_python_environment.txt +++ /dev/null @@ -1,9 +0,0 @@ -#動画貼り付け用 -from IPython.display import HTML -from base64 import b64encode - -HTML(r'') - -HTML(r'') - -HTML(r'') diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_practice.ipynb b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_practice.ipynb deleted file mode 100644 index d2204d15..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_practice.ipynb +++ /dev/null @@ -1,423 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 練習帳\n", - "\n", - "このノートブックでは、1-8章で抑えておくべき基本事項を確認するための練習問題を与える。\n", - "\n", - "CLで収集する授業のリアクションシートには、\n", - "* 練習帳のURL\n", - "* 質問: 授業や資料でわからなかったこと (なければ所感のみでOK)\n", - "* 所感: その回で理解した/できるようになったことを完結にまとめる\n", - "* 適当な雑談: 最近ハマっていること\n", - "\n", - "を設定された〆切までに提出すること。これをもって出席とみなす。\n", - "なお、(この授業に限らず)、2/3以上の出席がない場合、履修規程に従い自動的に不可となるため、必ず提出すること。\n", - "\n", - "この練習帳の目的は、皆さんが自分自身の理解・疑問点を確認するためであって\n", - "**練習帳で書いているコードや記述が正しいかどうかは一切授業の評点には関係がない**。\n", - "\n", - "したがって友人に見せてもらったり相談をして体裁を整える必要はまったく無い。\n", - "とにかく、自分の理解を確認するためにコードをどんどん書いてどんどん失敗しよう。\n", - "\n", - "質問やその返答を円滑にするための連絡帳のようなものだと思ってもらえれば良い。\n", - "\n", - "\n", - "また、教員に対する質問の見落としを防ぐため、リアクションシート(CL)の方で\n", - ">練習帳に詳細な質問とコードを書きました\n", - "\n", - "などと教えてもらえるとスムーズな対応が可能になります。\n", - "リアクションシートの提出や質問の際は、必ず練習帳の共有リンクを添えてください。\n", - "\n", - "\n", - "慣れないうちは、エラーの原因がわからない場合は、とにかく教員に聞く。\n", - "慣れてくると、自分でエラーメッセージをWebで検索したり、[よくあるエラー集](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_misc_Error.html)などを見て、解決ができるようになる。\n", - "Chat GPTなどに尋ねてみるのも、**疑問や問題を言語化し要約する訓練**になるので良いかもしれない。\n", - "それでもわからない場合は、エラーメッセージを添えて教員に尋ねよう。\n", - "\n", - "\n", - "## 練習帳のノートブックの共有の仕方\n", - "\n", - "以下の手順にならってください。1-3は1度やれば再び行う必要はありません。\n", - "\n", - "1. まずノートブックのコピーを作成し、ファイル名を適当に編集する: 例: 練習帳_氏名_123456X.ipynb (123456Xは学籍番号のつもり)\n", - "2. 右上の共有ボタンを押し、「制限付き」を「リンクを知っている全員」に変更\n", - " (共有ボタンが見えない場合、編集権限がないつまり「ノートブックのコピーをつくる」というお約束を忘れていることを意味する)\n", - "3. 「リンクを知っている全員」の右にある「閲覧者」を「編集者」に変更する\n", - "4. 最後に、ブックマークするか、リンクをコピーしどこかに保存しておこう(2回目以降はCLで一度提出した過去のURLをコピーするのが手っ取り早い)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "元の問題文さえ残っていれば、レイアウトは好きに改変してOK.\n", - "コードセル・テキストセルともに自由に追加して構わない。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第1章:Pythonの基礎\n", - "\n", - "練習問題: \n", - "1. 身長と体重に相当する変数を適当に定義し、BMI(体重kg ÷ 身長mの二乗)を計算した上でprintせよ (自身の身長体重を用いる必要はない)\n", - "2. 上で計算したBMIに対応する変数とstr関数を用いて文字列を連結し、\"AさんのBMIは22.0です\"などと表示させよ。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**1章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 変数の定義や四則演算の方法が分かる\n", - "* `print`や`str`などの基本的な関数の使い方がわかる\n", - "* プログラムの実行順序と、セルを跨いで実行する際の注意点がわかる\n", - "* 基本的な変数の型とその調べ方が分かる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第2章:Pythonの基礎2\n", - "\n", - "練習問題: \n", - "1. 要素に身長(単位:cm)と体重(単位:kg)を持つ適当なリストを定義し、5人のデータ(リスト)を要素にもつ**入れ子構造のリスト**を作成せよ。ただし3人目の身長と体重は必ず175,60とすること(それ以外は適当で構わない)。\n", - "2. 上のリストから、5人の平均身長と平均体重をそれぞれ計算するコードを作成せよ。算術平均を取る際は、数字の5などを使うのではなく、リストの長さを使ったり、汎用性の高いコードにすること。\n", - "3. 上のリストについて、`for`文を用いて全員のBMI(体重kg ÷ 身長mの二乗)を計算し、一人ずつBMIを表示させよ。(単位に注意)\n", - "4. `for`文のブロック内で`if`と`break`を用いて、「BMIが20.0以下なら、値を表示したあとにループを終了する」という処理を実現せよ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**2章の振り返り**\n", - "\n", - "**とくに2章は重要な概念が盛りだくさんなので、必ず練習したり、疑問があれば質問すること!**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* リストの定義や要素へのアクセスの方法(インデックスやスライス)が分かる\n", - "* リストに要素を加える方法が分かる\n", - "* `if`文による条件分岐が分かる\n", - "* `for`や`while`によるループ処理がわかる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第3章:関数\n", - "\n", - "練習問題:\n", - "1. 要素に実数値を持つ適当なリストを2つ以上定義し、任意の長さの実数値のリストについて平均と分散を返り値とする自作関数を作成せよ。\n", - "2. 1.で作った自作関数を1つの変数で受け取り(例`ret_value=myfunction(mylist)`)その返り値の型を調べよ。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**3章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 自作関数の定義の仕方が分かる\n", - "* 引数(インプット)や返り値(アウトプット)の扱い方が分かる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第4章:ライブラリ\n", - "\n", - "練習問題:\n", - "1. 授業で扱った`math`,`numpy`の何れかを使って、任意の半径`r`について円の面積と球の体積を計算する自作関数を作成せよ。\n", - "2. `matplotlib`を用いて、好きな図を作成させノートブック上に表示させよ。その際、`matplotlib`(とくに`matplotlib.pyplot`)の使い方を調べて\n", - " - 色をカラーコードで指定する\n", - " - グラフを構成するオブジェクトの透過度を設定する\n", - "\n", - " など、授業で指定していないオプションを試してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**4章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* ライブラリのインストールやインポートの仕方が分かる\n", - "* matplotlibの簡単な使い方が分かる\n", - "* Webの情報や公式ドキュメントを読んだりして、使い方を調べることができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第5章:確率と擬似乱数\n", - "\n", - "練習問題:\n", - "1. 0からn-1(nは適当な整数)までのn個の整数から、重複なくランダムにn個選ぶ(つまり0からn-1の無作為な並べかえをする)コードを作成せよ。(`numpy.random.choice`を使うとよい)\n", - "2. 1.を用いて、任意の文字列のリスト(例: 名前のリスト `[\"Aさん\",\"Bさん\",...]`)をランダムに並び替えて出力するコードを作成せよ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**5章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* `random`や`numpy.random`モジュールを用いて、簡単な確率的事象を表現する方法がわかる\n", - "* 適当な区間内でランダムな整数を生成することができる\n", - "* 適当な実数の乱数(一様乱数・正規乱数)を生成することができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第6章:相関・回帰分析\n", - "\n", - "練習問題:\n", - "1. 以下のデータ`x`(宇都宮市の月別平均気温)と`y`(アイスクリーム・シャーベットの消費量)のうち、8月のデータ(気温か消費量のいずれか)をランダムな値に変更し相関係数がどうなるか5通りほどで示せ。なお、値を変更する際は手でリストを書き換えるのではなく、リストの要素を書き換えるコードにすること。\n", - "2. 疑似相関について調べ例をあげよ。(できれば自身の興味に近いものや日本の事例などを調べてみること)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載(追記)\n", - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**6章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 相関分析の意味を、友人等に説明できる\n", - "* 長さの等しい2つのリストについて、相関係数を計算することができる\n", - "* 簡単な場合について自作関数とライブラリの出力が同じであることを確認することができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第7章:最適化問題\n", - "\n", - "練習問題:\n", - "1. 以下に示したデータ(`x`:年, `y`:男子100m走の世界記録(秒))について、6章で出てきたpolyfitを使って1-5次式までの多項式でフィッティングしてみよう。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載(追記)\n", - "y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ]\n", - "x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ]\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**7章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 多項式回帰の意味を、友人等に説明できる \n", - "* ライブラリを用いて多項式回帰(係数の最適化)を行うことができる\n", - "* 係数の最適化の結果から、グラフの描画点を生成し、可視化することができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第8章:ファイル操作\n", - "\n", - "練習問題:\n", - "1. Google Colaboratoryから授業で使ったノートを参照し、Google Driveをマウントしtest.txtファイルの中身を表示せよ。その際、Unix/Linuxコマンドである`cat`を用いれば良い。\n", - "2. matplotlibを用いて適当なグラフを描きGoogleドライブに保存せよ。\n", - "\n", - "この問題はDriveのマウント・パスの指定などの一連の作業が理解できているかを確認するものなので、エラーが出た場合はそのログや自身が試した工程について、スクリーンショットなども活用しながらできるだけ詳細に報告すること。特に問題なく作業ができた場合は、2の図を送るなどはしなくて構わない。 \n", - "\n", - "また、プライベートなGoogleアカウントを使用している(※授業では非推奨)場合、相談の際にはプログラムの出力結果やスクリーンショットなどに他人に見られて困るものが映っていないか配慮すること。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載(追記)\n", - "#1.のコードのヒント\n", - "!cat path_to_yourfile/test.text\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**8章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* Google ColaboratoryでGoogle Driveをマウントすることができる\n", - "* Google Drive上にあるcsvなどのファイルを読み込むことができる\n", - "* 読み込んだファイルの内容から、必要なデータを取り出してprintしたり、配列を作り、それをグラフとして描いたりすることができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 最終課題\n", - "\n", - "授業の後半で取り組む最終課題については、自由な発想で課題を設計し、取り組んでもらって構わない。\n", - "条件としては、以下のようなものが挙げられる:\n", - "\n", - "- 1人(ないし2名ペア)で取り組むこと\n", - "- ペアの場合は、それぞれの寄与を明確にし、一人の寄与が十分に認められること\n", - "- 都度、教員に相談しながら、計画的に進めること\n", - "- 事前に教員に確認すべき課題の例\n", - " - 個人情報(例えば自営業をしている実家のデータを分析するなど)を含む場合は、それをマスクする処理が可能であること\n", - " - 特定のサービス・ソフトウェア・アプリに関する分析(ゲームのデータなどは著作権等の理由から多くの場合不可)\n", - " - アカウントの作成やライセンス等の購入が必要な外部サービスを使用する課題でないこと(≒教員が特段の手続きを経ずとも、課題作成者のサポートや採点・評価が可能なものであること)\n", - "\n", - "その他、教員が不適切と判断した課題については、課題の変更を求めることがある。\n", - "\n", - "何もないところから課題を設計するのは難しい。以下の例を参考に、計画をたてよう:\n", - "\n", - "**公開データを元に、栃木県のデータを可視化・分析したい**とする。\n", - "その際に必要な工程や、分析を行うために学修すべき事項を列挙しながら、課題を設計していく。\n", - "\n", - "- データの収集: 興味のあるデータがオープンデータとして公開されているかを調べる。\n", - " - 例1: [e-Stat](https://www.e-stat.go.jp/)\n", - " - 例2: [オープンデータ・ベリーとちぎ](https://odcs.bodik.jp/090000/)\n", - "- 地図を描き、市町村ごとに特定のデータをカラーマップとして表示する事を考える。\n", - " - そのためには、市町村の境界線のデータが必要になる。例えば、[国土数値情報ダウンロードサービス](https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v2_3.html)からデータを収集するとする。\n", - " - 得られたデータを地図上で可視化するために、使えそうなライブラリを探す。例えば、[geopandas](https://geopandas.org/)や[folium](https://python-visualization.github.io/folium/)が使えそうである。\n", - " - 簡単なデータから初めて、ライブラリの使い方を学びながら、地図を描くことを目指す。\n", - " - その他、地図上に関連する(例えば...特定の商業施設やLRTの停留所など)ピンを打ってみる\n", - "- 実際のデータを元に、分析を行う\n", - "- 問題点が生じた場合、その原因を特定し、解決するために必要な知識を学ぶ。(以下試行錯誤...)\n", - "\n", - "といった具合だ。あくまで、例であるので、自身の興味に合わせて課題を設計していくこと。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "colab": { - "include_colab_link": true, - "name": "Python_practice.ipynb", - "provenance": [] - }, - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_practice.txt b/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_practice.txt deleted file mode 100644 index 0fedeedc..00000000 --- a/Lecture_DataScience_dotfiles/_build/jupyter_execute/notebooks/Python_practice.txt +++ /dev/null @@ -1,29 +0,0 @@ -# コードを以下に記載 - - -# コードを以下に記載 - - -# コードを以下に記載 - - -# コードを以下に記載 - - -# コードを以下に記載 - - -# コードを以下に記載(追記) -x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8] -y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502] - -# コードを以下に記載(追記) -y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ] -x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ] - - -# コードを以下に記載(追記) -#1.のコードのヒント -!cat path_to_yourfile/test.text - - diff --git a/Lecture_DataScience_dotfiles/_config.yml b/Lecture_DataScience_dotfiles/_config.yml deleted file mode 100644 index 4c54cce2..00000000 --- a/Lecture_DataScience_dotfiles/_config.yml +++ /dev/null @@ -1,49 +0,0 @@ -# Book settings -# Learn more at https://jupyterbook.org/customize/config.html - -title: 実践データサイエンス -author: "" -logo: logo.png - -exclude_patterns: [_build, README.md, .DS_Store, org_src] -only_build_toc_files: true - -# Force re-execution of notebooks on each build. -# See https://jupyterbook.org/content/execute.html -execute: - execute_notebooks: off - -# Define the name of the latex output file for PDF builds -latex: - latex_documents: - targetname: book.tex - -# Add a bibtex file so that we can create citations -bibtex_bibfiles: - - references.bib - -# Information about where the book exists on the web - -# Add GitHub buttons to your book -# See https://jupyterbook.org/customize/config.html#add-a-link-to-your-repository -html: - use_issues_button: true - use_repository_button: true - use_multitoc_numbering : true - extra_footer : "" - extra_footer: | - © Copyright 2020-2023 by 吉田 聡太 (Sota Yoshida). 本コンテンツはCC BY-NC 4.0 ライセンスの下に提供されています。 クリエイティブ・コモンズ・ライセンス ただし、資料中のコードセル部分はMITライセンスの下に提供されています。 - -launch_buttons: - binderhub_url: "" - colab_url : "https://colab.research.google.com" - -repository: - url: https://github.com/SotaYoshida/Lecture_DataScience # Online location of your book - path_to_book: "" # Optional path to your book, relative to the repository root - branch: "main" # Which branch of the repository should be used when creating links (optional) - -sphinx: - config: - html_show_copyright: false - bibtex_reference_style: author_year \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/_toc.yml b/Lecture_DataScience_dotfiles/_toc.yml deleted file mode 100644 index cc771eb1..00000000 --- a/Lecture_DataScience_dotfiles/_toc.yml +++ /dev/null @@ -1,48 +0,0 @@ -# Table of contents - -format: jb-book -root: index - -parts: -- caption: プログラムの実行方法 - chapters: - - file: notebooks/Python_chapter0_HowToUse.ipynb -- caption: 練習帳 - chapters: - - file: notebooks/Python_practice.ipynb -- caption: Pythonの基本文法 - numbered: true - chapters: - - file: notebooks/Python_chapter1_Introduction - - file: notebooks/Python_chapter2_ListLoop - - file: notebooks/Python_chapter3_Function -- caption: ライブラリと可視化 - numbered: true - chapters: - - file: notebooks/Python_chapter4_Matplotlib -- caption: データ分析の基礎 - numbered: true - chapters: - - file: notebooks/Python_chapter5_Probability.ipynb - - file: notebooks/Python_chapter6_Regression.ipynb - - file: notebooks/Python_chapter7_Optimization.ipynb - - file: notebooks/Python_chapter8_handling_files.ipynb -- caption: Tips&環境構築 - chapters: - - file: notebooks/Python_misc_Error.ipynb - - file: notebooks/Python_misc_python_environment.ipynb - - file: notebooks/Python_misc_python_env_forWin11.ipynb - - file: notebooks/Python_misc_VScode.ipynb -- caption: おまけ - chapters: - - file: notebooks/Python_misc_Pandas.ipynb - - file: notebooks/Python_misc_numpy.ipynb - - file: notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb - - file: notebooks/Python_chapter_BayesianOptimization.ipynb - - file: notebooks/Python_chapter_Bayesian_linear_regression.ipynb - - file: notebooks/Python_misc_StyleGAN3.ipynb - - file: notebooks/Python_chapter_WebScraping.ipynb - - file: notebooks/Python_misc_ODE.ipynb - - file: notebooks/Python_misc_PCA.ipynb - - file: notebooks/Python_misc_SingularValueDecomposition.ipynb - - file: notebooks/Python_misc_NewtonsMethod.ipynb \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/data/income_per_person_gdppercapita_ppp_inflation_adjusted.csv b/Lecture_DataScience_dotfiles/data/income_per_person_gdppercapita_ppp_inflation_adjusted.csv deleted file mode 100644 index 7e4ea1a1..00000000 --- a/Lecture_DataScience_dotfiles/data/income_per_person_gdppercapita_ppp_inflation_adjusted.csv +++ /dev/null @@ -1,194 +0,0 @@ -country,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040 -Afghanistan,603,603,603,603,603,603,603,603,603,603,604,604,604,604,604,604,604,604,604,604,604,607,609,611,613,615,617,619,621,623,625,627,630,632,634,636,638,640,643,645,647,649,651,654,656,658,660,663,665,667,669,672,674,676,678,681,683,685,688,690,692,695,697,699,702,704,707,709,711,714,716,719,721,724,726,729,731,734,736,739,741,744,746,749,751,754,756,759,761,764,767,769,772,774,777,780,782,785,788,790,793,796,798,801,804,807,809,812,815,818,820,823,826,829,833,837,841,845,849,853,857,863,868,874,880,885,891,897,903,909,915,921,927,933,939,945,951,957,963,969,976,982,988,995,1000,1010,1010,1020,1030,1030,1040,1060,1070,1120,1130,1130,1160,1140,1180,1190,1210,1200,1200,1190,1190,1190,1180,1180,1200,1190,1180,1100,1050,1150,1180,1210,1240,1130,1190,1170,1170,1300,1410,1470,1440,1400,1500,1240,1120,1100,1040,1030,950,818,732,881,904,930,956,982,972,871,1060,1100,1060,1140,1160,1290,1300,1530,1610,1660,1840,1810,1780,1750,1740,1800,1870,1950,1970,2000,2020,2060,2090,2130,2170,2220,2260,2310,2360,2420,2470,2520,2580,2640,2700,2760,2820,2880,2940 -Albania,667,667,667,667,667,668,668,668,668,668,668,668,668,668,668,669,669,669,669,669,669,671,672,674,675,677,678,680,681,683,684,686,688,689,691,692,694,695,697,699,700,702,703,705,707,708,710,711,713,715,716,718,720,721,723,724,726,728,729,731,733,734,736,738,739,741,743,745,746,748,750,761,772,784,795,807,819,831,844,856,869,882,895,908,922,936,950,964,978,993,1010,1020,1040,1050,1070,1080,1090,1110,1130,1140,1160,1170,1190,1200,1220,1240,1250,1270,1290,1300,1320,1340,1370,1390,1410,1420,1440,1460,1480,1500,1520,1540,1560,1580,1600,1620,1640,1650,1670,1690,1710,1720,1730,1740,1750,1770,1780,1790,1800,1810,1820,1830,1840,1850,1860,1870,1880,1890,1900,1910,1920,2000,2010,2090,2150,2270,2290,2440,2550,2660,2790,2820,2910,3010,3110,3220,3340,3460,3580,3700,3830,3980,4120,4320,4320,4330,4340,4340,4350,4360,4390,4400,4410,4430,4440,4450,4470,4490,4510,4530,4560,3230,3010,3320,3620,4130,4530,4070,4460,5100,5470,5960,6230,6620,7020,7460,7920,8450,9150,9530,9930,10200,10400,10500,10700,11000,11400,11900,12400,13000,13500,14000,14600,15100,15600,16000,16500,16900,17300,17700,18100,18500,18900,19300,19700,20200,20600,21100,21500,22000,22500 -Algeria,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,743,751,759,767,775,784,792,801,810,819,828,837,846,855,864,874,883,893,903,912,922,932,943,953,963,974,984,995,1010,1020,1030,1040,1050,1060,1070,1090,1100,1110,1120,1130,1150,1160,1170,1180,1200,1210,1220,1240,1250,1260,1280,1290,1310,1320,1330,1350,1360,1380,1390,1410,1420,1440,1450,1470,1490,1500,1520,1540,1550,1570,1590,1600,1620,1640,1660,1680,1690,1710,1730,1750,1770,1790,1810,1830,1850,1870,1890,1910,1930,1950,2000,2050,2100,2130,2170,2210,2240,2280,2320,2360,2420,2480,2540,2600,2660,2720,2780,2830,2890,2950,3010,3060,3120,3180,3230,3290,3340,3390,3450,3500,3550,3610,3660,3710,3760,3810,3860,3910,3960,4000,3980,4100,4100,4340,4390,4740,5200,5310,6190,6520,5640,4520,5590,5740,5960,5520,5860,6370,6810,7290,6490,7630,7650,7890,8200,8480,8980,9830,10400,10300,10300,10600,10800,11100,11200,10800,10500,10000,10200,10200,9870,9820,9400,9130,9300,9510,9460,9800,9970,10200,10400,10800,11500,11800,12300,12300,12600,12700,12600,12900,13000,13200,13300,13500,13700,14000,13800,13700,13700,13600,13600,13600,13600,13700,13900,14100,14300,14600,14900,15300,15600,15900,16300,16700,17000,17400,17800,18200,18600,19000 -Andorra,1200,1200,1200,1200,1210,1210,1210,1210,1220,1220,1220,1220,1220,1230,1230,1230,1230,1240,1240,1240,1240,1260,1270,1290,1300,1320,1330,1350,1370,1380,1400,1410,1430,1450,1470,1480,1500,1520,1540,1550,1570,1590,1610,1630,1650,1670,1690,1710,1730,1750,1770,1790,1810,1830,1860,1880,1900,1920,1950,1970,1990,2020,2040,2060,2090,2110,2140,2160,2190,2220,2240,2270,2300,2320,2350,2380,2410,2440,2460,2490,2520,2550,2580,2610,2650,2680,2710,2740,2770,2810,2840,2870,2910,2940,2980,3010,3050,3080,3120,3160,3200,3230,3270,3310,3350,3390,3430,3470,3510,3550,3600,3640,3680,3730,3790,3850,3920,3980,4050,4120,4190,4260,4330,4410,4480,4560,4640,4720,4800,4880,4970,5050,5140,5230,5320,5410,5500,5600,5690,5790,5890,5990,6100,6200,6310,6410,6520,6640,6750,6870,6980,7550,8160,8830,9540,10300,11200,12100,13000,14100,15200,16500,17800,19200,20800,22500,24300,26300,28400,30700,33200,33000,34000,34900,35300,34100,34000,34000,33500,32500,32100,30800,29900,29100,28400,27800,27600,27900,28200,28400,28400,28000,27200,26000,25900,26100,27200,29700,30800,31900,31700,31800,31900,34500,36300,39800,42700,43400,41400,41700,39000,42000,41900,43700,44900,46600,48200,49800,51500,53200,55000,56900,58700,60400,62100,63800,65400,66900,68500,70000,71600,73200,74800,76400,78100,79900,81600,83400,85300,87200,89100 -Angola,618,620,623,626,628,631,634,637,640,642,645,648,651,654,657,660,662,665,668,671,674,677,680,683,686,689,692,695,698,701,704,708,711,714,717,720,723,726,730,733,736,739,743,746,749,752,756,759,762,766,769,773,776,779,783,786,790,793,797,800,804,807,811,814,818,822,825,829,832,836,840,844,847,851,855,858,862,866,870,874,878,881,885,889,893,897,901,905,909,913,917,921,925,929,933,937,941,946,950,954,958,962,967,971,975,979,984,988,992,997,1000,1010,1010,1010,1050,1080,1110,1140,1170,1210,1250,1290,1330,1370,1410,1460,1500,1550,1600,1650,1700,1760,1810,1870,1930,1990,2060,2120,2190,2260,2330,2400,2480,2560,2640,2720,2810,2900,2990,3080,3180,3260,3340,3420,3290,3510,3400,3670,3810,3770,3860,4310,4130,4280,4690,4960,5170,5390,5230,5300,5550,5780,5670,6000,6060,5620,5200,5110,4720,4610,4590,4250,4110,4140,4240,4260,4290,4480,4620,4530,4390,4210,3790,2760,2770,2970,3210,3370,3500,3510,3510,3540,3180,3240,3460,3950,4600,5440,5980,5910,5900,5910,6000,6190,6260,6230,6030,5940,5850,5760,5670,5600,5550,5530,5550,5600,5670,5770,5880,6010,6140,6270,6410,6550,6700,6850,7000,7150,7310,7470,7640 -Antigua and Barbuda,757,757,757,757,757,757,757,758,758,758,758,758,758,758,758,758,759,759,759,759,759,764,769,775,780,785,790,796,801,806,812,817,823,828,834,840,845,851,857,863,868,874,880,886,892,898,904,910,917,923,929,935,942,948,954,961,967,974,980,987,994,1000,1010,1010,1020,1030,1040,1040,1050,1060,1060,1070,1080,1090,1090,1100,1110,1110,1120,1130,1140,1150,1150,1160,1170,1180,1180,1190,1200,1210,1220,1220,1230,1240,1250,1260,1270,1280,1280,1290,1300,1310,1320,1330,1340,1350,1360,1360,1370,1380,1390,1400,1410,1420,1460,1490,1530,1570,1600,1640,1680,1730,1770,1810,1860,1900,1950,2000,2040,2090,2150,2200,2250,2310,2360,2420,2480,2540,2600,2670,2730,2800,2870,2940,3010,3080,3160,3230,3310,3390,3470,3560,3650,3730,3830,3920,4010,4110,4210,4310,4420,4530,4640,4750,4870,4980,5100,5230,5360,5490,5620,5890,6160,6540,6650,6230,5670,6140,6440,7250,7850,8350,8470,9150,9960,10900,12100,13400,14800,15900,16400,16600,16500,17000,17700,16500,17100,17500,17900,18100,18800,17500,17500,18300,19200,20100,22500,24200,24000,20800,19100,18600,19100,18900,19500,20100,20800,20900,21000,21200,21300,21500,21700,22000,22300,22700,23100,23600,24100,24600,25100,25700,26200,26800,27400,28000,28600,29300,29900,30600,31300 -Argentina,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1530,1560,1580,1600,1620,1650,1670,1690,1720,1740,1770,1790,1820,1840,1870,1900,1920,1950,1980,2010,2040,2060,2090,2120,2150,2190,2220,2250,2280,2310,2350,2380,2410,2450,2480,2520,2550,2590,2630,2660,2700,2740,2780,2820,2860,2900,2940,2980,3030,3070,3110,3160,3200,3250,3300,3270,3500,3220,3260,3100,3050,3750,4080,4250,4850,4720,4890,5530,5890,5230,4780,5570,5730,6420,6920,7450,5820,6140,7040,6000,6340,6030,6720,7250,8010,8040,7840,8250,8270,8490,8250,8540,8230,7000,6710,6360,5700,6600,6680,7000,6900,7180,7680,7970,7630,7720,7990,8190,8280,7650,6920,6510,6640,6990,7110,7010,7360,7220,7330,7290,7510,7430,7220,7880,7460,7920,8570,8800,8450,8320,8430,7800,8030,8180,8580,8640,8910,9280,8510,9030,9510,9190,8820,9590,10300,10200,10400,10700,11400,11900,12200,12200,12500,13000,12800,12600,13300,12700,13500,13500,12600,12100,12400,12600,11600,12300,12500,12100,11100,10800,12000,13300,13900,14500,13900,14500,15500,15900,15200,14900,14100,12400,13400,14400,15500,16600,17900,18400,17200,18700,19600,19200,19500,18800,19100,18500,18700,18900,19300,19500,19800,20100,20400,20800,21200,21600,22100,22600,23000,23600,24100,24600,25200,25700,26300,26900,27500,28100,28700,29300 -Armenia,514,514,514,514,514,514,514,514,514,514,514,515,515,515,515,515,515,515,515,515,515,517,519,521,523,525,527,529,531,533,535,538,540,542,544,546,548,550,552,554,556,559,561,563,565,567,569,572,574,576,578,581,583,585,587,590,592,594,596,599,601,603,606,608,610,613,615,617,620,622,625,627,629,632,634,637,639,642,644,647,649,652,654,657,659,662,635,741,711,660,656,599,655,740,840,776,853,837,857,908,886,906,983,913,1010,890,849,814,887,919,979,902,973,1020,972,998,967,806,671,560,531,504,547,593,642,696,755,819,887,962,1000,1010,991,1030,1120,1270,1360,1470,1460,1510,1450,1410,1380,1350,1330,1300,1270,1410,1580,1730,1860,1840,1920,1960,2020,2140,2300,2300,2420,2350,2520,2610,2640,2540,2830,2950,3060,3150,3300,3320,3540,3590,3580,3840,3880,3820,3920,3940,3970,3880,3820,3790,3820,3870,3850,3810,3900,3880,3890,3900,3740,3340,1980,1850,1990,2170,2340,2440,2640,2740,2930,3220,3670,4210,4670,5360,6110,7010,7560,6530,6700,7020,7510,7730,7970,8180,8170,8410,8660,8930,9200,9460,9730,10000,10300,10500,10800,11000,11300,11500,11800,12000,12300,12600,12800,13100,13400,13700,14000,14300,14700 -Australia,814,816,818,820,822,824,825,827,829,831,833,835,837,839,841,843,845,847,849,851,853,860,886,916,967,1010,1030,1070,1090,1150,1400,1450,1480,1480,1560,1890,1860,1950,1920,1790,2270,1940,1770,2050,2330,2400,2650,3060,3510,3460,3270,3880,4550,4980,4360,4140,5050,4460,3800,4910,4790,4720,4540,4520,4800,4580,4710,5150,5230,5130,5430,5470,5890,6340,6360,6870,6650,6700,7100,6980,7120,7400,6750,7440,7150,7350,7200,7700,7490,7890,7410,7760,6650,6170,6270,5800,6130,5690,6480,6390,6690,6400,6370,6790,7160,7140,7510,7700,7830,8310,8690,8500,8490,8570,8350,8120,8090,7930,7610,7790,7860,8100,8340,8550,8910,9130,9150,9100,8940,8630,7710,7130,7470,7920,8270,8690,9010,9380,9600,9530,10100,11100,12200,12500,12000,11300,10700,10900,11300,11800,12100,12200,12100,12200,12700,13100,13200,13200,13500,14100,14300,14100,14700,15400,16100,16600,16700,17600,18300,18900,19700,20200,20400,21200,21400,21700,22400,22400,22700,23700,23900,24300,23900,23600,24900,25900,26000,26900,27700,28500,28600,28100,27900,28700,29600,30400,31200,32000,33100,34400,35300,35500,36400,37100,38100,38900,39400,40700,41300,41200,41400,41800,42600,42900,43400,43800,44400,45100,45800,46400,47100,47900,48700,49500,50400,51400,52500,53600,54800,56000,57200,58500,59800,61100,62400,63800,65200,66700,68200,69700,71200 -Austria,1850,1850,1860,1870,1880,1880,1890,1900,1910,1920,1920,1930,1940,1950,1950,1960,1970,1980,1990,1990,2000,2030,2070,2100,2140,2170,2210,2240,2280,2310,2350,2380,2400,2430,2450,2480,2500,2530,2550,2580,2610,2640,2660,2690,2720,2750,2780,2810,2850,2880,2910,2940,2960,2990,3020,3050,3080,3110,3140,3170,3210,3230,3250,3270,3300,3320,3340,3370,3390,3410,3440,3660,3660,3560,3690,3680,3740,3850,3950,3900,3930,4060,4060,4200,4290,4230,4340,4620,4580,4510,4720,4860,4920,4920,5160,5260,5290,5360,5620,5700,5700,5680,5850,5860,5900,6180,6370,6710,6690,6620,6660,6800,7070,6980,5780,5330,5270,5180,5100,4500,4800,5260,5700,5610,6230,6620,6690,6850,7130,7200,6960,6370,5680,5460,5490,5580,5740,6040,6800,7810,7530,8010,7550,7690,7190,3250,3680,4070,5190,6170,6940,7400,7410,7720,8490,9400,10000,10600,11000,11200,12100,12600,12900,13300,14000,14300,15000,15300,15900,16800,18000,18800,19800,20700,21500,21500,22500,23600,23500,24800,25400,25300,25800,26600,26700,27300,27900,28300,29100,30300,31300,32000,32300,32200,32900,33700,34500,35200,36400,37600,38800,39200,39600,39700,40600,41200,42300,43700,44300,42500,43200,44200,44400,44200,44100,44100,44100,44400,44600,44900,45100,45400,45800,46300,46900,47700,48500,49500,50500,51600,52800,53900,55100,56300,57600,58900,60200,61500,62900,64300,65700 -Azerbaijan,775,775,775,775,775,776,776,776,776,776,777,777,777,777,777,778,778,778,778,778,779,783,787,792,796,800,805,809,814,818,823,827,832,837,841,846,851,855,860,865,870,874,879,884,889,894,899,904,909,914,919,924,929,934,939,945,950,955,960,966,971,976,982,987,993,998,1000,1010,1020,1020,1030,1030,1040,1040,1050,1060,1060,1070,1070,1080,1080,1090,1100,1100,1110,1120,1070,1250,1200,1120,1110,1020,1110,1260,1430,1320,1460,1430,1470,1560,1520,1560,1690,1580,1740,1540,1470,1410,1540,1600,1700,1570,1700,1780,1700,1750,1550,1360,834,718,721,660,767,884,1120,1400,1580,1640,1730,1750,1830,1850,1820,1890,2070,2360,2530,2740,2730,2840,2730,2680,2630,2580,2540,2490,2440,2720,3070,3360,3640,3600,3770,3860,3990,4250,4580,4600,4860,4720,5080,5290,5350,5160,5750,6010,6240,6460,6780,6820,7290,7420,7400,7950,8080,7990,8260,8350,8460,8320,8230,8210,8310,8470,8470,8440,8670,8680,8760,8810,8510,8320,6350,4810,3810,3320,3330,3490,3800,4050,4460,4860,5340,5890,6440,8050,10700,13200,14400,15400,16000,15800,15900,16600,16700,16700,16000,16200,16600,16900,17000,17200,17400,17600,17900,18200,18500,18900,19300,19700,20200,20600,21100,21500,22000,22500,23000,23500,24000,24600,25100 -Bahamas,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570,1580,1590,1600,1610,1630,1640,1650,1660,1670,1680,1690,1700,1720,1730,1740,1750,1760,1770,1790,1800,1810,1820,1840,1850,1860,1870,1890,1900,1910,1920,1940,1950,1960,1980,1990,2000,2020,2030,2040,2060,2070,2090,2100,2110,2130,2140,2160,2170,2190,2200,2220,2230,2250,2260,2280,2290,2310,2320,2340,2350,2370,2390,2400,2420,2430,2450,2470,2480,2500,2520,2540,2550,2570,2590,2600,2620,2640,2660,2680,2690,2710,2810,2910,3020,3130,3240,3360,3480,3600,3740,3880,4020,4170,4320,4480,4650,4820,5000,5180,5380,5570,5780,5990,6220,6450,6680,6930,7190,7450,7730,8010,8310,8610,8930,9260,9600,9960,10300,10700,11100,11500,11900,12400,12800,13300,13800,14300,14800,15600,16400,17200,18200,19200,20000,21000,22000,23200,21200,21000,19900,21000,17100,14300,14800,15800,17700,21800,22700,21600,22500,23600,23600,24200,24300,24800,25000,25100,24300,22800,21600,21200,21500,22100,22700,23000,23800,25200,25800,26100,26300,25400,25100,25400,25500,25400,24400,22900,22900,22700,23000,22700,22300,21700,21500,21700,21900,22100,22200,22400,22600,22900,23200,23600,24100,24600,25100,25600,26200,26800,27400,28000,28600,29200,29900,30500,31200,31900,32600 -Bahrain,1240,1240,1250,1250,1260,1260,1270,1270,1280,1280,1290,1300,1300,1310,1310,1320,1320,1330,1330,1340,1350,1350,1360,1360,1370,1380,1380,1390,1390,1400,1410,1410,1420,1420,1430,1440,1440,1450,1450,1460,1470,1470,1480,1490,1490,1500,1510,1510,1520,1530,1530,1550,1570,1580,1600,1620,1640,1660,1680,1700,1720,1740,1760,1780,1800,1820,1840,1860,1880,1900,1920,1940,1970,1990,2010,2030,2060,2080,2100,2130,2150,2180,2200,2230,2250,2280,2300,2330,2360,2380,2410,2440,2470,2490,2520,2550,2580,2610,2640,2670,2700,2700,2700,2710,2710,2710,2710,2710,2710,2720,2720,2720,2720,2720,2720,2730,2730,2730,2730,2730,2730,2750,2760,2780,2790,2810,2820,2840,2860,2870,2890,2900,2920,2930,2950,3280,3640,4050,4500,5010,5570,6190,6880,7650,8510,9450,10500,11700,13000,14400,16000,16700,17400,18200,18900,19600,20300,21000,21600,22100,22600,23000,23500,24100,24800,25800,26700,27800,28900,30100,31400,31200,34000,35800,36600,33700,41200,40800,36800,40500,45200,42200,39000,38600,41300,32300,29700,28500,31500,32700,35600,38500,40000,44100,42900,43500,44100,44200,44900,45200,45500,44500,43700,43800,43900,43800,43200,43300,42800,41300,41100,40700,41500,43200,44400,44500,44600,44500,44300,44400,44400,44400,44500,44800,45300,45900,46700,47600,48600,49600,50700,51800,53000,54100,55300,56600,57800,59100,60400,61700,63100 -Bangladesh,876,876,876,876,876,876,876,876,876,875,875,875,875,875,875,875,875,875,875,875,874,875,875,875,875,875,875,875,875,876,876,876,876,876,876,876,876,877,877,877,877,877,877,877,877,878,878,878,878,878,878,878,878,879,879,879,879,879,879,879,880,880,880,880,880,880,880,881,881,881,881,883,885,887,890,892,894,896,898,901,903,905,907,909,912,939,907,947,954,927,968,878,947,969,982,957,885,1050,1050,962,995,1010,1090,1100,1090,1070,1090,1020,1030,1160,1160,1150,1150,1120,1180,1150,1180,1160,1010,1150,1060,1130,1170,1120,1170,1170,1200,1190,1190,1230,1230,1200,1200,1190,1190,1160,1190,1160,1140,1150,1180,1190,1170,1200,1180,1150,1080,1070,1070,1090,1030,1040,1050,1050,1050,977,1060,1020,985,1020,1060,1090,1070,1160,1150,1190,1180,1130,1210,1210,1240,1150,994,979,1080,1050,1070,1050,1090,1110,1090,1100,1080,1110,1140,1150,1180,1210,1220,1230,1290,1300,1340,1370,1400,1440,1470,1510,1550,1590,1640,1690,1730,1780,1840,1930,2030,2150,2250,2340,2440,2570,2710,2840,2970,3130,3320,3520,3720,3940,4170,4410,4640,4860,5060,5240,5400,5540,5680,5810,5940,6080,6210,6350,6490,6630,6780,6930,7090,7240,7400 -Barbados,913,914,914,914,914,914,914,914,915,915,915,915,915,915,915,916,916,916,916,916,916,922,929,935,941,948,954,960,967,973,980,987,993,1000,1010,1010,1020,1030,1030,1040,1050,1060,1060,1070,1080,1080,1090,1100,1110,1110,1120,1130,1140,1140,1150,1160,1170,1180,1180,1190,1200,1210,1220,1220,1230,1240,1250,1260,1270,1270,1280,1290,1300,1310,1320,1330,1340,1350,1350,1360,1370,1380,1390,1400,1410,1420,1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570,1580,1590,1600,1610,1620,1640,1650,1660,1670,1680,1690,1700,1710,1740,1770,1790,1820,1850,1880,1900,1930,1960,1990,2030,2060,2090,2120,2150,2190,2220,2260,2290,2330,2360,2400,2440,2480,2520,2550,2590,2640,2680,2720,2760,2800,2850,2890,2940,2980,3030,3180,3350,3520,3700,3890,4090,4300,4520,4750,4990,5360,5830,5510,5770,6410,6650,7340,7830,8400,9170,9270,9310,9440,10700,10400,10800,11200,11700,12600,13100,12800,12100,12000,12400,12400,12900,13100,13500,13800,13300,12700,12000,12000,12200,12400,12900,13400,13900,13900,14400,14100,14100,14400,14500,15100,15900,16100,16100,15400,15300,15400,15400,15300,15300,15400,15600,15800,16000,16200,16400,16600,16900,17200,17500,17800,18100,18500,18900,19300,19800,20200,20600,21100,21600,22100,22500,23000,23500,24100,24600 -Belarus,608,608,608,609,609,609,610,610,610,611,611,611,612,612,612,613,613,613,614,614,614,618,622,625,629,633,636,640,644,647,651,655,659,663,666,670,674,678,682,686,690,694,698,702,706,710,715,719,723,727,731,736,740,744,749,753,757,762,766,771,775,780,784,789,793,798,803,807,812,817,822,826,831,836,841,846,851,856,861,866,871,876,881,886,891,896,861,1010,968,899,895,820,897,1020,1150,1070,1180,1160,1190,1260,1230,1260,1370,1270,1410,1250,1190,1140,1250,1290,1380,1270,1380,1440,1380,1420,1260,1110,677,583,585,535,621,715,906,1130,1270,1320,1390,1410,1470,1480,1460,1510,1650,1890,2020,2180,2170,2260,2170,2130,2080,2040,2010,1970,1930,2140,2420,2640,2860,2820,2950,3030,3120,3330,3580,3590,3790,3680,3950,4100,4150,3990,4450,4640,4820,4980,5220,5240,5590,5680,5660,6080,6260,6290,6600,6770,6960,6940,6970,7050,7250,7500,7610,7690,8020,8150,8350,8520,8350,8250,7440,6860,6070,5450,5620,6290,6850,7120,7560,7960,8420,9070,10200,11200,12400,13500,15000,15000,16200,17200,17500,17700,17900,17200,16700,16900,17200,17600,17800,18100,18300,18600,18900,19300,19600,20000,20500,20900,21400,21900,22300,22800,23300,23900,24400,24900,25500,26000,26600 -Belgium,2410,2410,2410,2410,2410,2410,2410,2410,2410,2410,2420,2420,2420,2420,2420,2420,2420,2420,2420,2420,2420,2430,2430,2440,2450,2450,2460,2470,2470,2480,2490,2520,2560,2590,2630,2670,2710,2750,2780,2820,2860,2910,2950,2990,3030,3070,3120,3240,3230,3300,3400,3480,3550,3620,3820,3820,4010,4090,4090,4060,4240,4270,4350,4450,4560,4530,4630,4620,4760,4930,4990,4970,5240,5230,5360,5310,5330,5350,5460,5470,5690,5700,5830,5850,5830,5840,5870,6050,6040,6290,6380,6320,6410,6440,6460,6550,6620,6690,6740,6820,6960,6940,6980,7050,7140,7250,7320,7350,7350,7430,7600,7730,7810,7810,5700,4650,5180,4300,4000,4910,7390,7730,8200,8670,8990,8950,9010,8920,9460,9640,9730,9320,8820,8660,8410,8740,8960,9330,9090,8680,7090,6020,6150,4960,5010,5320,8340,9350,9780,10000,10300,10800,10700,11000,11400,11700,12000,12200,11900,12100,12600,13100,13700,14100,15000,15300,15700,16200,16800,17800,18900,19500,20500,21600,22500,22100,23400,23500,24100,24700,25800,25400,25800,25800,26500,26700,27100,27700,29000,29900,30700,31100,31500,31100,32000,32700,33100,34300,34900,36000,37300,37400,37900,38100,39300,39900,40600,41700,41700,40400,41100,41200,41000,40800,41400,41700,41900,42400,42800,43200,43600,44100,44600,45300,46000,46800,47700,48700,49700,50800,51900,53100,54300,55500,56700,58000,59200,60500,61900,63300,64700 -Belize,579,579,579,579,579,579,579,579,579,579,580,580,580,580,580,580,580,580,580,580,580,584,588,592,596,600,604,608,613,617,621,625,629,634,638,642,646,651,655,660,664,669,673,678,682,687,692,696,701,706,710,715,720,725,730,735,740,745,750,755,760,765,770,775,781,786,791,797,802,807,813,818,824,829,835,841,846,852,858,864,869,875,881,887,893,899,905,911,918,924,930,936,943,949,955,962,968,975,981,988,995,1000,1010,1020,1020,1030,1040,1040,1050,1060,1060,1070,1080,1090,1100,1120,1140,1150,1170,1190,1210,1220,1240,1260,1280,1300,1320,1340,1360,1380,1400,1420,1440,1460,1480,1500,1520,1540,1570,1590,1610,1640,1660,1690,1710,1730,1760,1790,1810,1840,1870,1880,1890,1910,1920,1930,1950,1960,1980,1990,2010,2030,2060,2080,2110,2150,2200,2250,2360,2440,2510,2570,2800,2910,3260,3320,3240,3370,3540,3700,4150,4090,3970,3810,3760,3700,3780,4080,4340,4820,5170,5600,6170,6450,6330,6210,6100,6090,6080,6370,6960,7090,7250,7720,7870,7870,8020,7900,7950,7810,7880,7860,7970,7900,8050,8060,7830,7780,7710,7640,7590,7550,7540,7560,7620,7710,7830,7970,8130,8300,8490,8670,8860,9060,9260,9470,9680,9890,10100,10300,10600 -Benin,597,597,597,597,597,597,597,597,597,597,598,598,598,598,598,598,598,598,598,598,598,601,604,607,610,613,616,619,622,625,628,631,634,637,640,643,646,650,653,656,659,662,665,669,672,675,678,682,685,688,692,695,698,702,705,709,712,715,719,722,726,729,733,736,740,744,747,751,754,758,762,765,769,773,777,780,784,788,792,796,799,803,807,811,815,819,823,827,831,835,839,843,847,851,855,859,864,868,872,876,880,885,889,893,898,902,906,911,915,920,924,928,933,937,944,951,957,964,971,978,985,994,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100,1110,1120,1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1260,1270,1280,1290,1270,1250,1190,1200,1180,1160,1140,1160,1180,1190,1200,1130,1160,1210,1250,1270,1250,1270,1270,1270,1250,1320,1320,1190,1210,1230,1260,1270,1330,1420,1470,1580,1470,1550,1610,1600,1530,1530,1450,1460,1470,1470,1500,1480,1520,1530,1570,1590,1620,1670,1700,1730,1740,1760,1740,1750,1810,1840,1830,1820,1820,1860,1940,2000,1990,2010,2080,2170,2260,2340,2430,2510,2590,2670,2750,2820,2880,2950,3020,3090,3150,3220,3300,3370,3440,3520,3600,3680,3760,3840 -Bhutan,629,629,630,630,630,630,630,630,630,630,630,630,631,631,631,631,631,631,631,631,631,633,634,635,636,638,639,640,641,643,644,645,646,648,649,650,651,653,654,655,657,658,659,661,662,663,664,666,667,668,670,671,672,674,675,676,678,679,680,682,683,684,686,687,688,690,691,692,694,695,697,698,699,701,702,703,705,706,708,709,710,712,713,715,716,717,719,720,722,723,724,726,727,729,730,732,733,735,736,737,739,740,742,743,745,746,748,749,751,752,754,755,757,758,759,761,762,764,765,767,769,771,774,776,779,782,784,787,789,792,795,797,800,803,805,808,811,813,816,818,821,824,827,829,832,835,837,840,843,845,848,858,868,878,888,898,908,919,929,940,951,961,972,983,995,1010,1020,1030,1040,1050,1070,1060,1030,1010,1020,955,1010,1050,1090,1110,1130,1230,1220,1290,1340,1380,1530,1940,2000,2110,2330,2320,2450,2540,2700,2900,3030,3140,3240,3400,3540,3720,4010,4200,4330,4520,4720,5450,5590,5850,6420,6810,7030,7070,7370,7740,8110,8870,9930,10600,11500,12300,13200,14000,14800,15400,15900,16400,16900,17300,17700,18100,18500,18900,19300,19700,20100,20600,21000,21500,22000 -Bolivia,854,854,854,854,854,854,854,854,855,855,855,855,855,855,855,856,856,856,856,856,856,864,873,881,889,898,906,915,924,932,941,950,959,968,977,987,996,1010,1020,1030,1040,1040,1050,1060,1080,1090,1100,1110,1120,1130,1140,1150,1160,1170,1180,1190,1200,1220,1230,1240,1250,1260,1270,1290,1300,1310,1320,1340,1350,1360,1370,1390,1400,1410,1430,1440,1460,1470,1480,1500,1510,1530,1540,1550,1570,1580,1600,1610,1630,1650,1660,1680,1690,1710,1730,1740,1760,1780,1790,1810,1830,1840,1860,1880,1900,1910,1930,1950,1970,1990,2010,2030,2050,2070,2090,2100,2120,2150,2170,2190,2210,2230,2250,2270,2300,2320,2340,2360,2390,2410,2430,2460,2480,2510,2530,2560,2580,2610,2630,2660,2680,2710,2740,2760,2790,2820,2830,2850,2880,2910,3200,3360,3390,3010,3010,3100,2850,2700,2700,2640,2690,2690,2770,2880,2950,3030,3170,3290,3490,3560,3660,3700,3800,3960,4070,4230,4450,4530,4570,4460,4330,4290,4030,3790,3760,3680,3500,3520,3580,3610,3710,3830,3810,3900,4000,4110,4200,4320,4450,4390,4410,4400,4430,4470,4580,4700,4840,4970,5190,5280,5410,5600,5790,6090,6330,6530,6710,6850,6980,7110,7250,7400,7550,7710,7870,8040,8220,8400,8580,8770,8970,9170,9370,9580,9790,10000,10200,10500,10700,10900,11200 -Bosnia and Herzegovina,669,669,669,669,669,669,669,669,669,669,670,670,670,670,670,670,670,670,670,670,671,674,677,681,684,688,691,695,698,702,706,709,713,716,720,724,727,731,735,739,742,746,750,754,758,762,765,769,773,777,781,782,782,783,783,783,784,784,785,785,786,786,787,787,787,788,788,789,789,790,790,801,812,823,835,846,858,870,881,894,906,918,931,944,957,970,983,997,1010,1030,1040,1040,1050,1050,1050,1060,1060,1060,1070,1070,1070,1090,1100,1110,1130,1140,1150,1170,1180,1200,1210,1210,1200,1200,1190,1180,1170,1160,1150,1140,1140,1140,1140,1170,1230,1260,1310,1260,1340,1380,1320,1250,1110,1110,1130,1080,1200,1190,1250,1290,1260,1240,1220,1190,1170,1150,1120,1100,1280,1380,1260,1280,1150,1290,1330,1380,1320,1510,1540,1690,1760,1800,1790,1940,2080,2090,2150,2140,2140,2340,2400,2620,2650,2680,2960,2900,2920,3060,3160,3310,3400,3390,3350,3310,3330,3290,3360,3260,3160,3060,2780,2440,1840,1370,1470,1830,3510,4750,5500,6010,6330,6600,6940,7210,7650,8320,8770,9280,9820,9580,9720,9890,9910,10300,10500,10900,11200,11600,12100,12500,13000,13500,14000,14400,14800,15300,15600,16000,16400,16800,17100,17500,17900,18300,18700,19100,19600,20000,20400,20900,21300 -Botswana,397,397,397,397,397,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,435,437,439,441,443,445,447,449,452,454,456,458,460,463,465,467,469,472,474,476,479,481,483,486,488,490,493,495,497,500,502,505,507,510,512,515,517,520,522,525,527,530,532,535,537,540,543,545,548,550,553,556,559,561,564,567,569,572,575,578,581,583,586,589,592,595,598,600,603,606,609,612,615,618,621,624,629,633,638,643,648,653,658,663,668,674,679,685,690,696,701,707,713,719,724,730,736,742,748,754,760,766,772,779,785,791,797,804,810,817,823,830,837,853,864,879,895,909,922,935,946,962,972,991,1000,1020,1040,1060,1150,1240,1350,1460,1570,1820,2320,2730,3160,2980,3370,3310,3750,3940,4310,4540,4700,5250,5630,5850,6090,6420,7200,7890,8110,8480,8490,8430,8520,8900,9220,9750,9640,10400,10400,10300,10700,11100,11200,11600,12400,13200,13800,12500,13300,13900,14200,15600,15900,15400,15500,16000,16500,17000,17500,18000,18500,19000,19500,20000,20500,21000,21400,21900,22400,22900,23400,23900,24500,25000,25600,26100,26700,27300,27900 -Brazil,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1120,1120,1120,1120,1130,1130,1130,1130,1140,1140,1140,1140,1150,1150,1150,1150,1160,1160,1160,1160,1170,1170,1170,1170,1180,1180,1180,1180,1190,1270,1230,1160,1120,1130,1170,1250,1330,1320,1360,1350,1280,1310,1330,1430,1480,1600,1600,1600,1490,1490,1540,1490,1520,1540,1480,1440,1510,1520,1450,1470,1500,1460,1560,1450,1500,1400,1340,1360,1490,1590,1370,1170,1170,1390,1260,1240,1270,1250,1200,1350,1310,1320,1300,1320,1460,1440,1370,1470,1490,1530,1590,1600,1530,1500,1470,1570,1490,1570,1720,1700,1780,1880,1850,1800,1830,1980,2140,2100,2000,1870,1900,2010,2130,2140,2330,2370,2410,2400,2310,2350,2210,2340,2450,2460,2660,2640,2810,2930,3030,3080,3190,3230,3370,3550,3520,3670,3940,4190,4440,4670,4830,4700,4710,4670,4840,4890,5220,5560,5940,6470,7090,7910,8370,8610,9280,9520,9770,10200,10900,10200,10100,9600,9930,10500,11100,11300,11100,11200,10300,10300,10100,10400,10800,11100,11100,11300,11200,11100,11400,11400,11600,11500,12100,12300,12600,13300,13800,13700,14500,15000,15100,15400,15400,14700,14000,14200,14300,14500,14600,14800,14900,15100,15300,15600,15900,16200,16500,16900,17200,17600,18000,18400,18800,19200,19700,20100,20600,21000,21500 -Brunei,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1530,1530,1540,1540,1550,1550,1560,1560,1570,1570,1580,1590,1590,1600,1600,1610,1610,1620,1620,1630,1630,1640,1650,1650,1660,1660,1670,1670,1680,1680,1690,1700,1700,1710,1710,1720,1730,1730,1740,1740,1750,1750,1760,1770,1770,1780,1780,1790,1800,1800,1810,1820,1820,1830,1830,1840,1850,1850,1860,1870,1870,1880,1880,1890,1900,1900,1910,1920,1920,1930,1940,1940,1950,1960,1960,1970,1980,1980,1990,2000,2000,2010,2020,2020,2030,2040,2040,2050,2060,2060,2070,2080,2090,2090,2100,2110,2110,2120,2130,2140,2150,2160,2170,2180,2190,2200,2210,2220,2590,3030,3530,4120,4800,5610,6540,7630,8900,10400,12100,14100,16500,19200,22400,26200,30500,35600,41600,48500,56600,57500,58500,59500,60500,61600,62600,63700,64800,65900,67000,68200,69300,70500,71700,72900,74200,75400,76700,78000,79300,83800,88700,93400,100000,96800,112000,120000,123000,146000,132000,102000,104000,101000,99200,95100,90100,89400,88000,84700,84700,84900,86400,84300,84600,86100,86400,83100,80800,81500,82100,82600,84100,85000,83900,83000,85400,84500,81900,79500,80600,82400,82000,79100,76100,74600,71800,71300,76900,83100,85700,88400,91000,93600,96100,98600,101000,103000,106000,108000,110000,113000,115000,118000,121000,123000,126000,129000,132000,135000,138000 -Bulgaria,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1100,1100,1110,1110,1120,1120,1130,1140,1140,1150,1150,1160,1160,1170,1180,1180,1190,1190,1200,1210,1210,1220,1220,1230,1240,1240,1250,1250,1260,1270,1270,1280,1280,1290,1300,1300,1310,1320,1320,1330,1340,1340,1350,1360,1360,1370,1380,1380,1390,1400,1420,1440,1460,1480,1510,1530,1550,1580,1600,1620,1650,1670,1700,1720,1750,1780,1800,1830,1860,1890,1900,1920,1930,1950,1960,1980,1990,2010,2030,2040,2080,2120,2150,2190,2230,2270,2310,2350,2390,2440,2480,2520,2570,2450,2330,2230,2120,2020,1930,1840,1750,1670,1590,1520,1540,1960,2100,2040,1970,2150,2430,2410,2420,2190,2070,2500,2620,2670,2680,2590,2620,2470,2530,2320,1790,1950,2130,2320,2530,2760,3320,3160,3480,3380,3580,3550,3890,4180,4480,4860,5120,5490,5700,6100,6420,6870,7200,7280,7570,7950,8160,8510,8800,9010,9710,9960,9810,10000,10400,10100,10300,10600,10400,10700,10400,10600,10600,10500,10300,9300,8600,8060,8000,8180,8450,8630,8580,8940,8490,8960,9530,10300,10900,11700,12700,13600,14800,15700,15200,15300,15700,15800,16000,16300,17000,17700,18300,18900,19400,20100,20700,21300,21900,22500,23100,23700,24300,24800,25400,25900,26500,27100,27700,28300,28900,29600,30200,30900,31600,32300 -Burkina Faso,480,480,480,480,480,480,480,480,480,480,480,480,480,481,481,481,481,481,481,481,481,482,482,483,483,484,484,485,485,486,486,487,488,488,489,489,490,490,491,491,492,493,493,494,494,495,495,496,496,497,498,498,499,499,500,500,501,501,502,503,503,504,504,505,505,506,507,507,508,508,509,509,510,511,511,512,512,513,513,514,515,515,516,516,517,517,518,519,519,520,520,521,522,522,523,523,524,524,525,526,526,527,527,528,529,529,530,530,531,532,532,533,533,534,535,535,536,536,537,538,538,538,537,537,537,536,536,535,535,534,534,533,533,533,532,532,531,531,530,530,529,529,528,528,527,527,526,526,525,525,524,537,550,563,576,590,605,619,634,649,659,681,717,702,711,731,726,781,794,799,790,810,830,774,747,703,683,714,778,766,759,771,767,738,729,801,900,857,898,858,821,872,851,857,845,869,938,970,1010,1060,1050,1080,1100,1150,1170,1230,1270,1300,1360,1350,1430,1470,1520,1520,1540,1550,1600,1650,1710,1770,1840,1900,1960,2020,2080,2130,2190,2240,2290,2340,2400,2450,2500,2560,2620,2670,2730,2790,2860,2920,2980 -Burundi,418,418,419,419,420,420,420,421,421,422,422,422,423,423,423,424,424,425,425,425,426,426,427,427,427,428,428,429,429,429,430,430,431,431,431,432,432,433,433,433,434,434,435,435,435,436,436,437,437,437,438,438,439,439,439,440,440,441,441,441,442,442,443,443,444,444,444,445,445,446,446,446,447,447,448,448,448,449,449,450,450,451,451,451,452,452,453,453,453,454,454,455,455,456,456,456,457,457,458,458,459,459,459,460,460,461,461,462,462,462,463,463,464,464,465,465,465,466,466,467,467,469,470,472,473,475,476,478,479,481,482,484,485,487,488,490,491,493,494,496,497,499,500,502,504,505,507,508,510,511,513,534,542,556,577,586,600,613,621,646,645,543,580,596,616,624,638,681,661,643,802,849,773,828,810,802,850,936,905,882,914,974,951,959,937,1030,1050,1070,1080,1070,1090,1120,1100,1020,959,870,790,768,795,775,754,751,763,731,742,724,738,748,759,760,764,772,779,791,803,749,721,705,691,678,664,652,643,638,638,642,650,661,674,688,703,718,734,750,767,784,801,819,837,856,875 -Cambodia,903,904,904,904,904,904,904,904,905,905,905,905,905,905,905,905,906,906,906,906,906,908,909,910,912,913,914,916,917,918,920,921,922,924,925,926,928,929,931,932,933,935,936,937,939,940,942,943,944,946,947,949,950,951,953,954,956,957,958,960,961,963,964,966,967,968,970,971,973,974,976,977,979,980,981,983,984,986,987,989,990,992,993,995,996,997,999,1000,1000,1000,1010,1010,1010,1010,1010,1010,1010,1020,1020,1020,1020,1020,1020,1020,1030,1030,1030,1030,1030,1030,1040,1040,1040,1040,1040,1040,1040,1050,1050,1050,1050,1050,1050,1060,1060,1060,1060,1060,1070,1070,1070,1070,1070,1080,1080,1080,1080,1080,1090,1090,1090,1090,1090,1100,1100,1100,1100,1100,1110,1110,1110,1120,1160,1150,1250,1190,1320,1370,1400,1500,1550,1490,1570,1650,1560,1590,1620,1660,1690,1670,1660,1550,1450,1170,1110,1110,1130,985,1010,899,847,830,799,798,798,795,800,930,1000,1040,1010,1070,1110,1020,1070,1100,1130,1160,1180,1290,1380,1460,1530,1630,1770,1970,2150,2330,2450,2420,2520,2660,2810,2970,3120,3290,3460,3640,3830,4020,4230,4440,4650,4840,5020,5190,5340,5480,5610,5740,5870,6000,6130,6270,6410,6550,6700,6840,7000,7150,7310 -Cameroon,626,626,626,626,626,627,627,627,627,627,627,627,627,627,627,627,628,628,628,628,628,631,634,637,640,643,646,650,653,656,659,662,665,669,672,675,678,682,685,688,692,695,698,702,705,708,712,715,719,722,726,729,733,736,740,744,747,751,754,758,762,765,769,773,777,780,784,788,792,795,799,803,807,811,815,819,823,827,831,835,839,843,847,851,855,859,864,868,872,876,880,885,889,893,897,902,906,911,915,919,924,928,933,937,942,946,951,956,960,965,970,974,979,984,993,1000,1010,1020,1030,1040,1050,1060,1070,1090,1100,1110,1120,1130,1150,1160,1170,1190,1200,1210,1230,1240,1250,1270,1280,1300,1310,1320,1340,1350,1370,1380,1400,1410,1430,1450,1460,1500,1540,1580,1620,1660,1700,1740,1780,1820,1850,1840,1870,1910,1950,1960,2010,2030,2130,2190,2220,2240,2290,2280,2330,2400,2380,2450,2510,2570,2740,3120,3270,3410,3570,3780,3930,3630,3370,2980,2850,2670,2510,2250,2230,2260,2320,2380,2430,2470,2510,2550,2590,2620,2650,2640,2650,2660,2660,2640,2660,2690,2740,2820,2900,2990,3050,3100,3170,3250,3310,3370,3440,3510,3580,3660,3730,3810,3900,3980,4070,4160,4250,4350,4440,4540,4640,4750,4850,4960,5070 -Canada,1310,1320,1330,1340,1350,1360,1360,1370,1380,1390,1400,1410,1420,1430,1440,1440,1450,1460,1470,1480,1490,1510,1520,1540,1550,1570,1590,1600,1620,1630,1650,1680,1700,1730,1750,1780,1810,1840,1860,1890,1920,1950,1970,2000,2030,2060,2080,2110,2140,2170,2200,2220,2240,2260,2280,2300,2320,2340,2360,2380,2410,2440,2480,2520,2560,2600,2640,2680,2730,2770,2810,2910,2830,3060,3080,2960,2730,2870,2720,2940,3020,3390,3510,3480,3710,3450,3450,3530,3740,3730,3960,4010,3950,3890,4030,3950,3810,4190,4310,4660,4860,5170,5560,5560,5470,5940,6420,6470,5960,6430,6790,7030,7310,7420,6710,7060,7740,8000,7400,6690,6430,5590,6310,6610,6610,7210,7470,8050,8580,8400,7980,6640,6090,5590,6120,6540,6830,7410,7520,7890,8880,10000,11600,12000,12300,11800,11500,11700,11700,11700,12000,12400,12900,13200,12700,13500,14300,14200,14100,14300,14500,14600,15300,15800,16500,17300,18100,18300,19000,19700,19900,20800,21600,22900,23500,23700,24600,25200,25900,26800,26800,27300,26100,26600,27900,29100,29600,30400,31500,31700,31300,30200,30100,30600,31600,32200,32400,33400,34400,35900,37400,37700,38500,38800,39600,40500,41200,41600,41600,39900,40700,41600,41800,42300,42900,43000,43100,43500,43800,44100,44400,44800,45200,45800,46400,47200,48100,49000,50100,51200,52300,53400,54600,55800,57100,58300,59600,61000,62300,63700,65100 -Cape Verde,529,529,529,529,530,530,530,530,530,530,530,530,530,530,530,530,530,531,531,531,531,533,535,538,540,542,545,547,549,552,554,556,559,561,563,566,568,571,573,575,578,580,583,585,588,590,593,595,598,601,603,606,608,611,613,616,619,621,624,627,629,632,635,637,640,643,646,648,651,654,657,659,662,665,668,671,674,677,679,682,685,688,691,694,697,700,703,706,709,712,715,718,721,724,727,730,733,737,740,743,746,749,752,756,759,762,765,769,772,775,779,782,785,789,792,795,799,802,805,809,812,812,811,811,810,810,809,808,808,807,806,805,805,804,803,802,801,801,800,799,798,797,796,795,794,793,791,790,789,788,787,792,798,803,787,787,792,760,749,807,837,860,879,895,908,919,930,938,946,952,959,872,820,803,772,787,775,766,832,906,1220,1300,1310,1400,1420,1510,1510,1580,1590,1640,1660,1640,1780,1880,2180,2420,2630,2860,3150,3430,3840,3850,3970,4070,4410,4640,4950,5630,5940,5810,5830,5990,5990,5960,5930,5920,6080,6240,6420,6600,6780,6970,7160,7340,7530,7710,7890,8070,8250,8440,8620,8810,9010,9210,9410,9620,9830,10100,10300,10500,10700 -Central African Republic,424,424,424,424,424,424,424,425,425,425,425,425,425,425,425,425,425,425,425,425,425,427,429,432,434,436,438,440,442,444,446,449,451,453,455,457,460,462,464,466,468,471,473,475,478,480,482,485,487,489,492,494,496,499,501,504,506,509,511,513,516,518,521,523,526,529,531,534,536,539,541,544,547,549,552,555,557,560,563,565,568,571,574,577,579,582,585,588,591,593,596,599,602,605,608,611,614,617,620,623,626,629,632,635,638,641,644,647,650,654,657,660,663,666,678,690,703,715,728,741,754,766,778,791,804,816,829,843,856,870,884,898,912,927,942,957,972,987,1000,1020,1040,1050,1070,1090,1100,1120,1140,1160,1170,1190,1210,1240,1270,1290,1320,1340,1370,1390,1420,1440,1430,1450,1380,1350,1340,1320,1280,1310,1290,1320,1350,1270,1220,1240,1180,1170,1190,1250,1240,1130,1090,1080,1070,973,1010,987,980,931,922,927,932,904,824,804,821,858,804,827,847,858,819,839,852,791,824,816,840,864,867,870,888,912,946,598,602,626,648,668,689,713,735,757,779,801,822,843,863,883,903,923,944,965,986,1010,1030,1050,1080,1100,1120,1150,1170 -Chad,418,418,418,418,418,418,418,419,419,419,419,419,419,419,419,419,419,419,419,419,419,421,423,425,428,430,432,434,436,438,440,442,444,447,449,451,453,455,457,460,462,464,466,469,471,473,475,478,480,482,485,487,489,492,494,497,499,501,504,506,509,511,514,516,519,521,524,526,529,531,534,536,539,542,544,547,550,552,555,558,560,563,566,568,571,574,577,579,582,585,588,591,594,597,599,602,605,608,611,614,617,620,623,626,629,632,635,638,641,644,648,651,654,657,668,679,690,701,713,725,737,749,762,775,789,802,816,830,844,858,873,888,903,919,934,950,967,983,1000,1020,1030,1050,1070,1090,1110,1130,1150,1160,1180,1200,1230,1250,1280,1310,1340,1370,1400,1430,1460,1490,1470,1470,1520,1470,1410,1390,1330,1310,1280,1340,1340,1330,1220,1130,1260,1440,1390,1250,1220,946,890,879,883,982,993,1200,1120,1060,1180,1220,1110,1170,1220,997,1060,1040,1030,1050,1090,1040,993,1070,1120,1230,1590,1790,1740,1740,1740,1750,1930,1860,1960,2010,2080,2050,1850,1850,1860,1880,1870,1870,1870,1890,1900,1930,1960,2000,2040,2080,2130,2180,2220,2270,2320,2370,2430,2480,2540,2590,2650 -Chile,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,984,989,985,962,990,998,1000,995,1000,986,985,998,994,1020,1040,1030,1060,1060,1060,1120,1120,1130,1150,1160,1180,1210,1220,1260,1330,1390,1410,1440,1390,1420,1470,1470,1510,1560,1590,1630,1620,1600,1640,1710,1750,1770,1680,1750,1910,1930,1900,2020,2120,2000,2130,2080,1980,2070,2350,2600,2660,2840,2810,2800,2680,2750,2900,2750,2780,2950,3150,3040,3150,3060,3240,3210,3110,3440,3420,3290,3340,3440,3210,3440,3390,3620,3770,4120,4100,4510,4330,4450,4470,3730,3560,4310,4340,4340,3670,4090,3490,3570,4230,4480,4600,4150,4010,4840,5000,4130,3200,2660,3210,3810,3950,4070,4540,4500,4510,4600,4450,4570,4600,4600,4900,5210,4560,5220,5010,5150,5230,5450,5750,5460,5550,5520,5950,6120,5630,5940,6070,6210,6450,6450,6360,6920,7010,7120,7250,7260,7780,7550,7000,6950,5950,6060,6550,6990,7460,7940,8290,7040,6730,7020,7050,7330,7690,8110,8820,8990,9540,10400,11000,11300,12200,12800,13600,14000,13800,14300,14600,14900,15300,16300,17000,17900,18600,19000,18500,19400,20400,21300,22000,22200,22500,22700,23000,23400,23800,24100,24400,24800,25200,25700,26100,26700,27200,27800,28400,29000,29700,30300,31000,31700,32400,33100,33900,34600,35400,36200 -China,984,984,984,984,984,984,984,984,984,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,1030,1030,999,973,979,979,986,995,992,985,975,1020,1010,991,983,1010,999,1030,1010,1020,1040,1070,1090,1100,1070,1090,1090,1110,1100,1100,1080,1090,1060,1000,1030,1060,1000,1010,1030,1020,1010,1000,1000,977,973,959,940,945,955,918,932,916,921,911,939,895,904,875,881,893,892,922,916,935,855,897,917,945,956,990,982,937,935,946,957,967,978,989,1000,1010,1020,1020,1030,1030,1040,1040,1050,1050,1060,1060,1050,1060,1050,942,1000,1050,1010,974,905,842,783,728,677,630,586,571,557,543,530,536,583,632,694,696,708,738,782,892,961,891,560,569,638,715,774,829,722,671,735,851,879,846,898,892,924,896,909,1020,1060,1080,1110,1180,1240,1460,1570,1610,1660,1610,1480,1530,1650,1860,2090,2340,2560,2790,3020,3220,3440,3700,3980,4320,4720,5170,5720,6410,7290,7950,8650,9530,10400,11100,12000,12800,13600,14400,15200,16000,16900,17800,18700,19700,20600,21400,22100,22800,23400,23900,24500,25000,25600,26200,26800,27300,27900,28600,29200,29800,30500,31200 -Colombia,962,962,962,963,963,963,963,963,963,963,964,964,964,964,964,964,964,965,965,965,965,968,970,973,975,978,980,983,985,988,990,993,995,998,1000,1000,1010,1010,1010,1010,1020,1020,1020,1020,1030,1030,1030,1040,1040,1040,1040,1050,1050,1050,1050,1060,1060,1060,1070,1070,1070,1070,1080,1080,1080,1080,1090,1090,1090,1100,1100,1100,1100,1110,1110,1110,1120,1120,1120,1120,1130,1130,1130,1140,1140,1140,1140,1150,1150,1150,1160,1160,1160,1170,1170,1170,1170,1180,1180,1180,1190,1190,1190,1200,1200,1200,1210,1270,1310,1360,1410,1440,1480,1500,1520,1540,1570,1590,1630,1720,1780,1830,1890,1950,1990,2030,2160,2280,2380,2380,2320,2240,2350,2440,2550,2560,2650,2650,2770,2850,2820,2780,2690,2620,2710,2750,2930,2950,2940,3110,3140,3110,3200,3240,3360,3370,3410,3400,3340,3460,3480,3530,3590,3590,3680,3710,3800,3820,3940,4080,4240,4390,4630,4850,5050,5090,5260,5420,5810,6050,6220,6280,6250,6260,6350,6440,6700,6970,7170,7310,7530,7560,7800,7840,8160,8440,8480,8630,8550,8070,8310,8330,8420,8630,8960,9260,9760,10300,10500,10600,10900,11500,11800,12300,12700,13000,13100,13400,13700,14000,14300,14600,14900,15200,15500,15900,16200,16600,16900,17300,17700,18100,18500,18900,19300,19700,20200,20600,21100,21500,22000 -Comoros,696,697,697,698,699,700,700,701,702,702,703,704,705,705,706,707,707,708,709,710,710,711,712,712,713,714,715,715,716,717,718,718,719,720,720,721,722,723,723,724,725,726,726,727,728,729,729,730,731,732,732,733,734,735,735,736,737,738,738,739,740,741,741,742,743,744,744,745,746,747,747,748,749,750,750,751,752,753,753,754,755,756,756,757,758,759,760,760,761,762,763,763,764,765,766,767,767,768,769,770,770,771,772,773,774,774,775,776,777,778,778,779,780,781,781,782,783,784,785,785,786,787,788,789,789,790,791,792,792,793,794,795,795,796,797,798,798,799,800,801,801,802,803,804,804,805,806,806,807,808,808,838,848,863,893,902,917,931,936,968,1030,1010,1080,1280,1350,1310,1420,1530,1500,1430,1430,1460,1460,1530,1530,1580,1530,1530,1510,1590,1640,1640,1690,1720,1730,1720,1710,1690,1690,1630,1600,1470,1550,1550,1430,1440,1380,1400,1380,1370,1480,1480,1480,1470,1470,1470,1480,1450,1420,1420,1410,1420,1420,1440,1430,1410,1410,1430,1440,1450,1470,1480,1490,1510,1530,1560,1590,1620,1660,1690,1730,1770,1810,1850,1890,1930,1970,2020,2060,2110,2150 -"Congo, Dem. Rep.",485,487,489,491,493,495,497,499,501,503,505,507,509,511,513,515,518,520,522,524,526,528,531,533,535,537,539,542,544,546,548,551,553,555,558,560,562,565,567,569,572,574,576,579,581,584,586,588,591,593,596,598,601,603,606,608,611,613,616,618,621,623,626,629,631,634,636,639,642,644,647,650,652,655,658,661,663,666,669,672,674,677,680,683,686,688,691,694,697,700,703,706,709,712,715,717,720,723,726,729,732,735,739,742,745,748,751,754,757,760,763,766,770,773,788,803,819,835,852,868,885,902,920,937,956,974,993,1010,1030,1050,1070,1090,1110,1140,1160,1180,1200,1220,1250,1270,1300,1320,1350,1370,1400,1430,1450,1480,1510,1540,1570,1760,1850,2000,2050,2140,2210,2190,2100,2090,2240,1960,2170,2160,2120,2030,2100,2010,2070,2170,2110,2210,2160,2270,2340,2050,1850,1790,1640,1590,1580,1580,1530,1510,1550,1510,1540,1530,1490,1420,1280,1130,973,809,750,731,704,648,623,583,529,504,504,516,534,549,559,575,591,588,609,630,653,685,726,750,742,745,751,759,763,768,774,782,792,805,820,836,854,872,891,911,931,952,973,995,1020,1040,1060,1090,1110 -"Congo, Rep.",575,576,578,580,581,583,585,586,588,590,591,593,595,596,598,600,601,603,605,606,608,610,612,613,615,617,619,620,622,624,626,627,629,631,633,635,636,638,640,642,644,645,647,649,651,653,655,656,658,660,662,664,666,668,670,672,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,743,746,748,750,752,754,756,758,760,763,765,767,769,771,773,776,778,780,782,784,787,789,791,809,827,845,864,883,903,923,945,966,989,1010,1030,1060,1080,1110,1130,1160,1190,1210,1240,1270,1300,1330,1360,1390,1420,1450,1490,1520,1560,1590,1630,1670,1700,1740,1780,1820,1860,1900,1930,1970,2000,2040,2070,2110,2140,2170,2500,2400,2230,2250,2290,2370,2600,2780,3010,3290,3480,3520,4010,3860,3710,3780,3400,3510,3790,4150,4890,5870,6020,6280,6030,5460,5330,5280,5230,5140,5120,5120,4930,4530,4580,4650,4490,4520,4280,4480,4520,4610,4520,4540,4740,4880,4640,4730,4920,5190,5210,5270,5320,5540,5540,5300,5650,5620,5660,5740,5820,5900,6000,6100,6220,6340,6470,6610,6760,6910,7060,7220,7380,7540,7710,7880,8050,8230,8410,8600 -Costa Rica,775,775,775,775,775,776,776,776,776,776,776,776,776,776,777,777,777,777,777,777,777,786,795,804,813,822,831,841,850,860,869,879,889,899,909,919,929,940,950,961,972,983,994,1010,1020,1030,1040,1050,1060,1080,1090,1100,1110,1120,1140,1150,1160,1180,1190,1200,1220,1230,1240,1260,1270,1290,1300,1310,1330,1340,1360,1370,1390,1410,1420,1440,1450,1470,1490,1500,1520,1540,1550,1570,1590,1610,1630,1640,1660,1680,1700,1720,1740,1760,1780,1800,1820,1840,1860,1880,1900,1920,1940,1970,1990,2010,2030,2060,2080,2100,2130,2150,2170,2200,2220,2250,2270,2300,2320,2350,2380,2280,2480,2250,2520,2460,2670,2430,2500,2350,2420,2350,2130,2490,2160,2300,2410,2720,2840,2830,2670,2950,2570,2530,2230,2470,2700,3130,3220,3270,3030,3020,3270,3650,3560,3830,3590,3760,4070,4070,4260,4280,4380,4600,4670,4940,5160,5310,5550,5760,5980,6210,6580,6910,7100,7060,7240,7680,7850,8010,7940,7580,6870,6870,7210,7070,7250,7400,7460,7700,7790,7790,8290,8660,8820,8960,8860,9130,9550,9710,9880,10000,10200,10500,10800,11000,11700,12400,12800,12500,13000,13400,13900,14000,14400,14900,15400,15800,16200,16700,17100,17600,18000,18500,18900,19400,19800,20300,20800,21200,21700,22200,22700,23200,23700,24200,24700,25300,25800,26400,27000 -Cote d'Ivoire,812,816,819,822,825,829,832,835,839,842,845,849,852,856,859,863,866,869,873,876,880,884,887,891,894,898,901,905,909,912,916,920,923,927,931,934,938,942,946,950,953,957,961,965,969,973,976,980,984,988,992,996,1000,1000,1010,1010,1020,1020,1030,1030,1030,1040,1040,1050,1050,1050,1060,1060,1070,1070,1080,1080,1080,1090,1090,1100,1100,1110,1110,1110,1120,1120,1130,1130,1140,1140,1150,1150,1160,1160,1160,1170,1170,1180,1180,1190,1190,1200,1200,1210,1210,1220,1220,1230,1230,1240,1240,1250,1250,1260,1260,1270,1270,1280,1290,1310,1330,1340,1360,1380,1390,1410,1430,1450,1470,1490,1510,1530,1550,1570,1590,1610,1630,1650,1670,1690,1720,1740,1760,1780,1810,1830,1850,1880,1900,1930,1950,1980,2000,2030,2060,2090,2130,2160,2200,2230,2270,2300,2340,2360,2490,2730,2630,2880,3290,3070,3260,3230,3530,3610,3760,3950,3940,3990,3980,4120,4440,4560,4830,4730,4020,3990,3830,3520,3290,3310,3290,3170,3090,3340,3190,3080,2970,2870,2790,2900,3030,3050,3110,3080,2950,2890,2790,2700,2690,2680,2670,2660,2670,2700,2690,2510,2710,2880,3060,3250,3450,3600,3760,3930,4100,4270,4440,4600,4760,4900,5030,5160,5280,5400,5520,5640,5770,5900,6030,6160,6300,6440,6580,6730,6880 -Croatia,1080,1090,1100,1110,1120,1130,1140,1150,1160,1170,1180,1190,1200,1220,1240,1260,1280,1300,1320,1340,1350,1360,1370,1380,1400,1410,1420,1430,1440,1450,1470,1480,1490,1500,1510,1530,1540,1550,1560,1580,1590,1600,1620,1630,1640,1660,1670,1680,1700,1710,1730,1730,1740,1750,1750,1760,1770,1770,1780,1790,1790,1800,1810,1820,1820,1830,1840,1840,1850,1860,1870,1900,1930,1960,2000,2030,2070,2100,2140,2180,2220,2250,2290,2330,2370,2420,2460,2500,2540,2590,2630,2650,2670,2690,2710,2730,2740,2760,2780,2800,2820,2870,2910,2960,3010,3060,3110,3160,3210,3260,3310,3310,3310,3310,3300,3290,3280,3270,3260,3250,3240,3270,3320,3440,3640,3760,3970,3850,4130,4290,4140,3960,3550,3610,3690,3580,3990,4010,4270,4440,4400,4370,4330,4290,4250,4220,4180,4140,4880,5290,4890,5010,4560,5180,5390,5660,5490,6350,6550,7290,7680,7950,8020,8760,9510,9680,10100,10200,10300,11400,11800,13100,13400,13700,15400,15200,15600,16500,17300,18300,19100,19300,19300,19400,19800,19800,20500,20200,19800,19500,18000,14100,12300,11300,11800,12600,13900,14600,15100,14700,15700,16200,17100,18000,18800,19500,20500,21600,22000,20400,20100,20700,20300,20200,20100,20600,21400,22000,22600,23200,23800,24500,25100,25800,26400,27100,27700,28300,29000,29600,30300,31000,31600,32300,33100,33800,34500,35300,36100,36900,37700 -Cuba,864,874,884,894,905,915,926,937,948,959,970,981,993,1000,1020,1030,1040,1050,1060,1080,1090,1100,1120,1130,1140,1150,1170,1180,1200,1210,1220,1240,1250,1270,1280,1300,1310,1330,1340,1360,1370,1390,1410,1420,1440,1460,1470,1490,1510,1530,1540,1560,1580,1600,1620,1630,1650,1670,1690,1710,1730,1750,1770,1790,1810,1840,1860,1880,1900,1920,1950,1970,1990,2010,2040,2060,2090,2110,2130,2160,2180,2210,2240,2260,2290,2320,2340,2370,2400,2430,2450,2480,2510,2540,2570,2600,2630,2660,2690,2720,2760,2790,2820,2850,2890,2920,2950,2990,3020,3060,3090,3180,3270,3360,3450,3550,3640,3740,3840,3940,4040,4190,4340,4490,4640,4790,4950,5100,5260,5420,5060,4250,3400,3660,4290,4990,5800,6650,5140,5410,4690,6280,5250,5790,6620,7280,7840,8870,7770,8330,8780,9410,9620,8350,8660,8930,9620,10900,10700,9440,9420,9460,9490,9460,9400,9340,9670,10600,9870,9620,9160,9730,10000,10700,11100,11500,11700,12100,12700,12900,12700,13700,13900,14100,14500,14600,14500,14300,14400,14300,14200,12400,10600,8870,9000,9270,10000,10300,10400,11100,11600,11900,12100,12400,13100,14100,15800,16900,17600,17900,18300,18800,19400,20000,20000,20000,20000,20000,20000,20600,21200,21800,22400,23000,23700,24200,24800,25400,26000,26600,27200,27800,28400,29000,29600,30300,31000,31700,32400,33100,33800 -Cyprus,853,854,854,854,854,854,854,854,854,855,855,855,855,855,855,855,855,856,856,856,856,866,876,887,897,908,919,930,941,952,963,975,986,998,1010,1020,1030,1050,1060,1070,1080,1100,1110,1120,1140,1150,1160,1180,1190,1210,1220,1240,1250,1260,1280,1300,1310,1330,1340,1360,1370,1390,1410,1420,1440,1460,1470,1490,1510,1530,1550,1560,1580,1600,1620,1640,1660,1680,1700,1720,1740,1760,1780,1800,1820,1850,1870,1890,1910,1940,1960,1980,2010,2030,2050,2080,2100,2130,2150,2180,2200,2230,2260,2280,2310,2340,2370,2390,2420,2450,2480,2510,2540,2570,2590,2620,2640,2660,2690,2710,2740,2770,2790,2820,2850,2880,2910,2940,2970,3000,3030,3060,3090,3120,3160,3190,3220,3250,3290,3320,3350,3390,3420,3460,3490,3530,3560,3600,3640,3670,3710,3860,4020,4180,4350,4530,4710,4900,5100,5310,5520,5750,5980,6220,6470,6740,7010,7290,7590,7900,8220,9270,9930,10200,10000,8430,10000,11600,12500,13600,14300,14600,15300,16000,17200,17800,18300,19300,20800,22100,23300,22900,24400,24000,24800,26500,26400,26700,27700,28800,30100,30800,31500,31900,32900,33700,34600,35500,36000,34400,33900,33200,31700,29800,29700,30400,31200,31700,32200,32700,33200,33800,34400,35000,35700,36400,37100,37900,38800,39600,40500,41400,42300,43200,44200,45200,46200,47200,48200,49300,50400 -Czech Republic,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1920,1940,1950,1970,1990,2000,2020,2030,2050,2070,2080,2100,2120,2140,2150,2170,2190,2210,2220,2240,2260,2280,2300,2320,2340,2360,2370,2390,2410,2430,2450,2460,2470,2480,2490,2500,2510,2520,2530,2540,2550,2560,2570,2580,2590,2600,2610,2620,2630,2640,2650,2690,2720,2760,2800,2830,2870,2910,2940,2980,3020,3060,3100,3140,3180,3220,3270,3310,3350,3400,3440,3490,3540,3590,3640,3690,3740,3800,3850,3900,3960,4020,4070,4130,4190,4250,4310,4370,4440,4500,4570,4650,4730,4810,4750,4700,4650,4590,4540,4490,4440,4790,4610,4950,5410,6000,5930,6340,6860,7010,6750,6480,6190,5890,5640,5570,6010,6660,6710,6750,6800,6840,6890,6940,6980,7030,7080,7120,7170,7570,8130,8190,8360,8240,8490,9130,9570,10100,10700,11100,11900,12300,12400,12100,12500,12900,13400,13900,14500,14800,15100,15600,16000,16500,16900,17300,17500,18100,18200,18300,18700,18500,18800,19100,19500,19600,19900,20000,20400,20600,20000,17700,17600,17600,18100,19200,20100,19900,19900,20200,21100,21900,22300,23100,24200,25700,27400,28800,29300,27700,28300,28800,28500,28400,29100,30400,31100,31700,32300,33000,33700,34400,35100,35900,36700,37500,38300,39100,40000,40900,41800,42700,43700,44600,45600,46600,47700,48700,49800,50900,52000 -Denmark,2010,2020,2020,2020,2030,2030,2030,2040,2040,2050,2050,2050,2060,2060,2070,2070,2070,2080,2080,2080,2090,2170,2180,2150,2190,2180,2190,2230,2250,2200,2210,2200,2260,2230,2340,2310,2300,2340,2340,2350,2410,2390,2380,2500,2590,2640,2670,2640,2750,2890,3030,2850,2930,2910,2900,3180,2970,2980,2930,3090,3030,3040,3100,3270,3210,3280,3260,3230,3260,3420,3530,3520,3690,3650,3720,3750,3790,3650,3750,3840,3910,3910,4020,4140,4120,4100,4220,4330,4330,4350,4590,4650,4730,4800,4860,5070,5200,5260,5280,5440,5560,5730,5810,6090,6170,6220,6330,6500,6630,6810,6930,7210,7110,7290,7650,7020,7220,6700,6390,7120,7360,7030,7630,8330,8250,7960,8330,8420,8630,9130,9590,9600,9240,9440,9620,9740,9890,10000,10200,10600,9020,8050,8130,8910,9720,8870,10100,10500,10700,11300,12100,12100,12100,12700,12800,12900,12900,13900,14100,15000,15300,16200,17000,17000,18400,19100,19500,20000,20700,21900,22200,22700,23800,24600,24300,24100,25700,26100,26500,27400,27300,27100,28000,28800,30100,31500,32700,32800,33200,33400,33800,34200,34700,34600,36300,37200,38100,39200,39900,40900,42300,42500,42600,42600,43700,44600,46200,46400,45900,43400,44000,44400,44300,44600,45100,45500,45700,46100,46600,47100,47500,48000,48600,49200,50000,50900,51800,52900,54000,55200,56400,57600,58900,60200,61600,62900,64300,65700,67200,68700,70200 -Djibouti,752,754,757,759,762,764,766,769,771,774,776,779,781,784,786,789,791,794,796,799,801,804,806,809,811,814,816,819,822,824,827,830,832,835,837,840,843,845,848,851,853,856,859,862,864,867,870,873,875,878,881,884,886,889,892,895,898,901,903,906,909,912,915,918,921,924,927,930,932,935,938,941,944,947,950,953,956,959,962,965,969,972,975,978,981,984,987,990,993,997,1000,1000,1010,1010,1010,1020,1020,1020,1030,1030,1030,1040,1040,1040,1050,1050,1050,1060,1060,1060,1070,1070,1070,1080,1110,1140,1170,1210,1240,1280,1320,1360,1400,1440,1480,1530,1570,1620,1670,1720,1770,1820,1870,1930,1990,2050,2110,2170,2230,2300,2370,2440,2510,2590,2660,2740,2820,2910,2990,3080,3180,3270,3290,3340,3440,3460,3500,3540,3530,3640,3760,3790,3740,3770,3740,3730,3750,3740,3720,3710,4410,4570,4590,4660,4440,4410,4600,3830,3680,3610,3550,3580,3580,3510,3860,3760,3680,3590,3420,3220,3100,2890,2850,2650,2610,2480,2330,2250,2190,2180,2130,2130,2150,2180,2230,2260,2330,2410,2510,2590,2640,2710,2790,2880,3000,3140,3270,3400,3540,3650,3790,3930,4070,4210,4330,4460,4570,4680,4790,4900,5010,5120,5230,5350,5470,5590,5710,5840,5970,6100,6240 -Dominica,663,663,663,663,663,664,664,664,664,664,664,664,664,664,664,665,665,665,665,665,665,670,674,679,683,688,692,697,702,707,711,716,721,726,731,736,741,746,751,756,761,766,771,776,782,787,792,798,803,808,814,819,825,831,836,842,847,853,859,865,871,877,882,888,894,900,907,913,919,925,931,938,944,950,957,963,970,976,983,989,996,1000,1010,1020,1020,1030,1040,1040,1050,1060,1070,1070,1080,1090,1100,1100,1110,1120,1130,1130,1140,1150,1160,1160,1170,1180,1190,1200,1200,1210,1220,1230,1240,1240,1260,1280,1300,1320,1340,1360,1380,1400,1420,1450,1470,1490,1510,1530,1560,1580,1600,1630,1650,1680,1700,1730,1750,1780,1810,1830,1860,1890,1920,1950,1980,2010,2040,2070,2100,2130,2160,2190,2210,2240,2260,2290,2310,2340,2360,2390,2420,2450,2470,2500,2530,2560,2590,2620,2650,2680,2710,2880,3070,3310,3490,3550,3740,3770,4140,3330,3770,4210,4390,4540,4820,4930,5320,5780,6330,6360,6730,6780,6910,7000,7080,7220,7440,7590,8020,8120,8180,8210,8050,8640,8880,8840,9080,9630,10300,10200,10200,10100,9980,10000,10400,10100,10200,10400,10600,10800,11100,11300,11600,11900,12100,12400,12700,13000,13300,13600,13900,14200,14500,14800,15100,15500,15800,16200,16500,16900,17300 -Dominican Republic,667,667,667,667,667,667,668,668,668,668,668,668,668,668,668,668,669,669,669,669,669,673,676,680,684,687,691,695,699,702,706,710,714,718,722,726,730,734,738,742,746,750,754,758,762,766,770,774,779,783,787,791,796,800,804,809,813,818,822,826,831,835,840,845,849,854,858,863,868,873,877,882,887,892,896,901,906,911,916,921,926,931,936,941,946,952,957,962,967,972,978,983,988,994,999,1010,1010,1020,1020,1030,1030,1040,1040,1050,1060,1060,1070,1070,1080,1080,1090,1100,1100,1110,1130,1140,1160,1180,1200,1220,1230,1260,1280,1300,1320,1340,1370,1390,1420,1440,1460,1490,1510,1540,1570,1590,1620,1650,1680,1710,1740,1770,1800,1830,1860,1890,1920,1950,1990,2020,2060,2240,2360,2260,2320,2390,2550,2620,2680,2610,2650,2510,2850,2940,3040,2580,2840,2860,2780,3000,3230,3480,3810,4170,4300,4400,4590,4700,4700,4800,4980,5070,5050,5170,5080,4850,4890,5160,5090,5630,5270,5210,5650,5950,5970,6190,6520,6920,7290,7660,7960,7980,8320,8170,8150,8780,9580,10300,10400,10400,11100,11300,11500,11900,12600,13400,14100,14700,15200,15800,16500,17100,17700,18300,18900,19400,20000,20500,20900,21400,21900,22400,22900,23400,23900,24400,25000,25500,26100,26700,27200 -Ecuador,529,529,529,529,529,529,529,530,530,530,530,530,530,530,530,530,530,530,530,530,531,534,537,541,544,548,551,555,558,562,566,569,573,576,580,584,588,591,595,599,603,607,611,615,618,622,626,630,634,639,643,647,651,655,659,663,668,672,676,681,685,689,694,698,703,707,712,716,721,726,730,735,740,744,749,754,759,764,769,773,778,783,788,793,799,804,809,814,819,824,830,835,840,846,851,857,862,868,873,879,884,890,896,902,907,913,919,925,931,937,943,973,1000,1030,1070,1100,1130,1160,1190,1230,1260,1310,1350,1400,1450,1490,1540,1580,1630,1680,1720,1760,1810,1850,1900,1940,1980,2030,2070,2110,2230,2200,2290,2550,2540,2520,2770,3020,3380,3370,3400,3380,3730,3730,3960,3980,4040,4130,4160,4280,4450,4450,4570,4570,4760,5080,5070,5200,5330,5470,5690,5830,6000,6540,6710,6840,7280,7500,7790,7960,8080,8170,8020,7630,7710,7810,7820,7130,7670,7470,7470,7610,7600,7570,7720,7730,7700,7870,7960,7440,7390,7550,7730,7810,8310,8610,8840,8880,9290,9180,9350,9930,10300,10700,10900,10800,10500,10300,10200,10200,10000,9920,9840,9820,9850,9940,10100,10300,10500,10700,10900,11100,11400,11600,11900,12200,12400,12700,13000,13300,13600 -Egypt,790,791,791,791,791,791,791,791,791,791,792,792,792,792,792,792,792,792,793,793,793,796,800,804,808,811,815,819,823,826,830,834,838,842,846,850,854,857,861,865,869,873,877,882,886,890,894,898,902,906,910,915,919,923,927,932,936,940,945,949,953,958,962,967,971,976,980,985,989,994,998,1000,1010,1000,992,984,976,968,960,952,960,987,1020,1050,1080,1110,1120,1130,1140,1150,1170,1180,1190,1200,1220,1230,1240,1250,1270,1280,1290,1310,1320,1340,1350,1360,1330,1340,1370,1350,1360,1390,1390,1420,1360,1400,1390,1350,1330,1370,1250,1270,1350,1430,1500,1520,1520,1540,1560,1560,1510,1530,1570,1630,1630,1670,1690,1700,1650,1620,1630,1630,1560,1580,1600,1630,1650,1670,1690,1700,1720,1720,1800,1850,1760,1730,1720,1760,1890,1930,2030,2080,2080,2100,2410,2480,2420,2350,2430,2580,3020,3050,3100,3050,3060,3150,3500,3690,3890,4200,4510,4480,4680,4960,5210,5440,5560,5670,5780,5830,5910,5840,5970,6010,6130,6290,6480,6710,6860,7140,7390,7510,7540,7640,7800,8000,8400,8840,9310,9560,9860,9820,9820,9810,9880,10100,10300,10500,10800,11200,11500,11800,12000,12300,12600,12900,13200,13500,13800,14100,14400,14700,15100,15400,15700,16100,16400,16800,17200,17600,17900 -El Salvador,974,975,975,975,975,975,975,975,976,976,976,976,976,976,976,977,977,977,977,977,977,986,994,1000,1010,1020,1030,1040,1050,1050,1060,1070,1080,1090,1100,1110,1120,1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1360,1370,1380,1390,1400,1410,1430,1440,1450,1460,1470,1490,1500,1510,1530,1540,1550,1560,1580,1590,1600,1620,1630,1640,1660,1670,1690,1700,1720,1730,1740,1760,1770,1790,1800,1820,1830,1850,1870,1880,1900,1910,1930,1950,1960,1980,1990,2010,2030,2050,2060,2080,2100,2120,2130,2150,2170,2190,2210,2220,2240,2260,2230,2300,2350,2450,2230,2570,2220,2530,2490,2500,2200,1960,2190,2230,2420,2330,2510,2300,2440,2610,2520,2680,2890,2690,2540,2550,3160,3960,3530,3440,3410,3570,3710,3640,3720,3890,3970,3930,3970,4000,4000,4340,4380,4630,4720,4870,4960,4940,4920,4870,4940,5090,5180,5380,5520,5570,5740,5950,5700,5140,4760,4530,4500,4530,4550,4500,4530,4520,4480,4530,4630,4910,5200,5450,5730,5760,5950,6120,6280,6360,6430,6540,6660,6750,6960,7200,7440,7500,7230,7300,7430,7530,7640,7710,7850,7990,8150,8290,8430,8590,8750,8920,9100,9280,9470,9680,9890,10100,10300,10600,10800,11000,11300,11500,11800,12000,12300,12600,12900,13100 -Equatorial Guinea,356,356,357,357,357,358,358,359,359,360,360,361,361,362,362,363,363,364,364,365,365,366,366,367,367,368,368,369,369,370,370,370,371,371,372,372,373,373,374,374,375,375,376,376,377,377,378,378,379,379,380,380,381,381,382,382,383,383,384,385,385,386,386,387,387,388,388,389,389,390,390,391,391,392,392,393,393,394,394,395,395,396,396,397,397,398,399,399,400,400,401,401,402,402,403,403,404,404,405,405,406,407,409,410,412,413,415,416,418,419,420,422,423,425,426,428,429,431,432,434,435,437,438,440,441,442,444,445,447,448,449,451,452,454,455,456,458,459,461,462,464,465,467,468,469,471,472,474,475,477,478,496,506,519,540,548,563,573,583,607,659,712,782,888,1010,1130,1170,1230,1250,1200,1150,1040,899,936,991,1140,1270,1280,1380,1350,1290,1250,1240,1200,1120,1190,1100,1110,1100,1060,1000,958,1250,1340,1510,1720,2750,6620,7880,9510,10800,16900,19400,21200,28100,31400,32300,35600,40000,38700,33700,34400,35600,32700,31200,27200,23700,21900,20500,19300,18000,16900,16000,15400,15000,14900,14900,15000,15300,15600,15900,16200,16600,17000,17300,17700,18100,18500,18900,19300,19800 -Eritrea,532,532,532,532,532,532,532,533,533,533,533,533,533,533,533,533,533,533,533,534,534,535,536,538,539,540,542,543,545,546,547,549,550,552,553,554,556,557,559,560,561,563,564,566,567,569,570,572,573,575,576,577,579,580,582,583,585,586,588,589,591,592,594,595,597,598,600,601,603,605,606,608,609,611,612,614,615,617,619,620,622,623,625,627,628,630,631,633,635,636,638,639,641,643,644,646,648,649,651,653,654,656,658,659,661,663,664,666,668,669,671,673,675,676,679,683,686,689,692,696,699,703,706,710,713,717,720,724,728,731,735,739,742,746,750,754,757,761,765,769,773,776,780,784,788,792,796,800,804,808,812,821,831,864,850,880,893,871,883,890,919,935,948,965,976,1020,1040,1090,1120,1130,1090,1110,1120,1120,1090,1020,999,983,913,994,997,999,981,1030,970,832,884,975,950,915,908,1000,1110,1270,1540,1590,1720,1830,1820,1780,1680,1770,1770,1660,1630,1630,1570,1560,1380,1410,1420,1510,1180,1160,1200,1240,1240,1250,1250,1260,1260,1270,1270,1290,1300,1320,1340,1370,1400,1430,1460,1490,1520,1560,1590,1630,1660,1700,1740,1780,1820 -Estonia,938,939,940,941,942,943,944,945,947,948,949,950,951,952,953,954,956,957,958,959,960,966,973,979,985,992,998,1010,1010,1020,1020,1030,1040,1040,1050,1060,1070,1070,1080,1090,1090,1100,1110,1110,1120,1130,1140,1140,1150,1160,1170,1170,1180,1190,1200,1200,1210,1220,1230,1240,1240,1250,1260,1270,1280,1280,1290,1300,1310,1320,1330,1340,1340,1350,1360,1370,1380,1390,1400,1410,1420,1420,1430,1440,1450,1460,1410,1640,1580,1470,1460,1340,1470,1670,1890,1750,1930,1900,1950,2070,2020,2080,2260,2100,2320,2060,1970,1890,2060,2140,2290,2110,2280,2400,2290,2360,2100,1840,1470,1360,1760,2030,2340,2510,2550,2680,2760,2950,3130,3150,3090,3000,2970,3150,3490,3620,3840,4040,4220,4010,3800,3730,3670,3600,3540,3480,3420,3810,4310,4710,5110,5050,5300,5440,5620,6000,6470,6500,6870,6690,7200,7490,7580,7300,8150,8520,8840,9150,9600,9660,10300,10500,10500,11300,11600,11600,12100,12300,12600,12500,12500,12600,12900,13300,13400,13500,14100,14200,14500,14800,14400,13000,11400,10700,10700,11400,12100,13700,14400,14300,15700,16800,17900,19400,20700,22800,25300,27400,26000,22200,22700,24500,25700,26100,27000,27300,27700,28600,29500,30400,31300,32200,33100,34000,34900,35800,36600,37500,38300,39200,40100,41000,41900,42800,43700,44700,45700,46700,47800,48800,49900 -Ethiopia,523,523,523,523,523,523,523,523,523,523,523,523,524,524,524,524,524,524,524,524,524,524,524,525,525,525,525,525,526,526,526,526,526,526,527,527,527,527,527,528,528,528,528,528,529,529,529,529,529,529,530,530,530,530,530,531,531,531,531,531,531,532,532,532,532,532,533,533,533,533,533,533,534,534,534,534,534,535,535,535,535,535,535,536,536,536,536,536,537,537,537,537,537,538,538,538,538,538,538,539,539,539,539,539,540,540,540,540,540,541,541,541,541,541,542,543,544,545,545,546,547,548,549,550,551,552,553,555,556,557,558,559,560,561,562,563,564,565,566,567,569,570,571,572,573,574,575,576,577,578,579,586,593,617,607,628,638,622,631,636,656,668,678,690,698,726,746,777,799,809,778,791,803,798,779,728,716,704,654,712,715,716,703,735,696,597,634,700,681,657,652,584,515,562,560,575,626,626,587,600,618,650,642,610,673,732,790,857,925,980,1070,1160,1230,1330,1430,1530,1610,1700,1800,1900,2010,2130,2240,2340,2440,2520,2600,2670,2730,2800,2860,2920,2990,3060,3120,3190,3260,3340,3410,3490,3560 -Fiji,785,785,785,785,785,785,786,786,786,786,786,786,786,786,787,787,787,787,787,787,787,790,793,795,798,801,803,806,809,812,814,817,820,823,826,828,831,834,837,840,842,845,848,851,854,857,860,863,866,869,872,875,877,880,883,886,889,892,896,899,902,905,908,911,914,917,920,923,926,930,933,936,939,942,945,949,952,955,958,962,965,968,971,975,978,981,985,988,991,995,998,1000,1010,1010,1010,1020,1020,1020,1030,1030,1030,1040,1040,1040,1050,1050,1050,1060,1060,1070,1070,1070,1080,1080,1110,1130,1160,1190,1220,1250,1280,1320,1350,1390,1420,1460,1500,1540,1580,1620,1660,1700,1750,1790,1840,1890,1940,1990,2040,2090,2150,2200,2260,2320,2380,2440,2500,2570,2630,2700,2770,2840,2920,2990,3070,3150,3230,3310,3400,3490,3580,3580,3590,3690,3750,3550,3460,3830,4050,4070,4490,4710,4960,5430,5460,5390,5440,5660,5670,6240,6020,6250,5730,5370,5700,5360,5730,5330,5380,5770,5890,5680,5950,5990,6210,6290,6510,6300,6330,6830,6670,6780,6990,7050,7410,7430,7510,7380,7380,7210,7350,7490,7570,7980,8350,8760,8860,9150,9420,9700,10000,10300,10600,10900,11200,11500,11800,12000,12300,12600,12900,13100,13400,13700,14000,14400,14700,15000,15300,15700,16000 -Finland,1240,1250,1250,1250,1250,1250,1260,1260,1260,1260,1270,1270,1270,1270,1280,1280,1280,1280,1290,1290,1290,1300,1300,1310,1320,1320,1330,1340,1350,1350,1360,1370,1370,1380,1390,1400,1400,1410,1420,1430,1430,1440,1450,1460,1460,1470,1480,1490,1500,1500,1510,1520,1530,1540,1540,1550,1560,1570,1580,1590,1590,1590,1490,1590,1610,1580,1590,1470,1670,1830,1900,1880,1910,1990,2000,2020,2100,2020,1950,1950,1920,1850,2010,2050,2030,2050,2130,2130,2170,2210,2300,2250,2140,2240,2340,2490,2620,2710,2790,2690,2790,2730,2660,2820,2890,2910,3000,3070,3060,3150,3190,3250,3390,3540,3350,3150,3170,2650,2300,2780,3100,3160,3460,3670,3740,3920,4030,4310,4560,4580,4500,4350,4300,4560,5050,5230,5540,5820,6070,5770,5450,5630,5640,6270,6250,5850,6250,6310,6720,7040,7230,7770,7950,7920,8510,8850,9020,9350,9330,9810,10600,11400,11600,11900,12500,13100,13400,13600,13800,15200,16400,16700,17900,19000,19400,19600,19400,19400,19800,21100,22200,22500,23100,23600,24200,24900,25400,26400,27600,29000,28900,27000,26000,25700,26600,27600,28500,30200,31800,33100,34900,35700,36200,36900,38200,39100,40500,42500,42600,38900,39800,40700,39900,39400,39000,39000,39400,39800,40300,40800,41200,41700,42200,42900,43600,44300,45200,46100,47100,48200,49200,50300,51400,52600,53700,54900,56100,57400,58600,59900,61300 -France,1800,1810,1810,1810,1820,1820,1820,1830,1830,1830,1840,1840,1850,1850,1850,1860,1860,1860,1870,1870,1880,1990,1840,1830,1790,1800,1850,1860,1740,1840,1800,1780,1910,1900,1880,1970,2010,2030,2070,2030,2180,2120,2070,2150,2210,2280,2420,2640,2050,2050,2150,2110,2380,2640,2960,3110,3230,3110,2900,2900,3080,3150,3250,3340,3390,3330,3470,3410,3640,3420,3300,3450,3630,3580,3730,3650,3610,3590,3390,3350,3550,3780,3910,3740,3540,3440,3390,3420,3500,3510,3640,3680,3750,3610,3960,3880,4000,3890,4110,4260,4310,4100,4050,4180,4260,4370,4300,4650,4630,4770,4540,5000,5420,5370,4500,3970,4550,4500,3860,4260,4550,4320,5190,5430,6030,6070,6280,6160,6520,7080,6830,6530,5960,6140,5930,5790,5870,6010,5860,6110,4820,4670,4700,4690,3600,4430,5910,6230,6990,7370,7920,8310,8450,8630,9010,9460,9920,10500,10700,10900,11700,12200,12800,13200,14000,14500,15200,15800,16300,17400,18200,18900,19600,20500,21000,20900,21700,22300,23000,23700,24000,24200,24800,25200,25500,26000,26500,27000,28100,29000,29500,29800,30100,29800,30400,30900,31300,31900,32900,33800,34900,35300,35500,35500,36200,36500,37100,37800,37600,36300,36900,37500,37300,37400,37500,37800,38100,38500,39000,39500,40000,40500,41000,41700,42400,43100,44000,44900,45900,46900,47900,49000,50100,51200,52300,53500,54600,55900,57100,58400,59600 -Gabon,390,390,390,390,390,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,393,393,393,393,393,393,393,393,393,393,393,393,393,393,393,393,393,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,395,396,396,396,396,396,396,396,396,396,396,396,398,399,401,403,404,406,408,409,411,413,414,416,418,420,421,423,425,427,428,430,437,444,451,458,465,473,480,487,495,502,509,517,525,532,540,547,555,563,571,579,587,595,603,611,619,627,636,644,652,661,715,773,835,903,976,1060,1140,1230,1330,1440,1650,1880,2160,2470,2820,2690,3240,3440,3860,4680,5830,6220,8400,18400,18300,21900,20800,22800,24700,27900,27800,25000,26900,25900,23300,18300,16500,15200,20000,19500,20100,19000,19200,19400,19900,20100,20700,20900,18600,17800,17700,17200,17200,16800,17000,15900,16300,15300,14800,15400,15900,16200,16500,16700,16800,16800,17000,17500,18000,18300,18700,19000,19400,19700,20100,20600,21000,21500,21900,22400,22900,23400,23900,24500,25000,25600,26100,26700,27300,27900 -Gambia,813,813,814,814,815,815,816,816,817,817,818,818,819,819,820,820,821,821,822,822,823,823,824,824,825,825,826,826,827,827,828,828,829,829,830,830,831,831,832,832,833,833,834,834,835,835,836,836,837,837,838,839,839,840,840,841,841,842,842,843,843,844,844,845,845,846,846,847,847,848,848,849,849,850,850,851,851,852,852,853,853,854,854,855,856,856,857,857,858,858,859,859,860,860,861,861,862,862,863,863,864,865,867,869,870,872,873,875,877,878,880,881,883,885,886,888,890,891,893,895,896,899,902,906,909,912,915,918,921,924,927,931,934,937,940,943,946,950,953,956,959,962,965,969,972,975,978,981,985,988,991,1030,1030,1050,1080,1090,1110,1120,1120,1150,1200,1350,1300,1270,1310,1410,1600,1600,1580,1690,1480,1600,1660,1680,1960,1780,1920,1960,1800,2030,1770,1700,1860,1590,1490,1320,1350,1370,1460,1510,1520,1510,1510,1510,1480,1450,1440,1470,1480,1520,1560,1600,1500,1550,1610,1540,1510,1520,1560,1600,1660,1540,1580,1600,1560,1590,1570,1570,1570,1580,1580,1590,1590,1610,1630,1650,1680,1710,1750,1780,1820,1860,1900,1950,1990,2030,2080,2120,2170,2220,2270 -Georgia,543,543,543,543,543,543,543,543,544,544,544,544,544,544,544,544,544,544,544,544,545,547,550,552,555,558,560,563,566,568,571,574,576,579,582,585,587,590,593,596,599,602,604,607,610,613,616,619,622,625,628,631,634,637,640,643,646,649,652,655,658,661,665,668,671,674,677,681,684,687,690,694,697,700,704,707,710,714,717,720,724,727,731,734,738,741,712,831,798,741,737,674,737,834,947,875,962,945,969,1030,1000,1030,1110,1040,1140,1010,965,926,1010,1050,1120,1030,1110,1170,1110,1140,1140,890,695,543,520,499,560,629,706,793,890,999,1120,1140,1190,1200,1180,1230,1340,1530,1640,1770,1770,1840,1770,1730,1700,1670,1640,1610,1580,1760,1980,2170,2350,2320,2430,2490,2570,2740,2950,2960,3130,3040,3270,3400,3440,3320,3700,3870,4120,4340,4500,4680,5210,5300,5410,5720,6190,6600,6970,7420,7930,8470,8810,9220,9350,9690,10100,10600,9620,9660,10100,9370,8010,6270,3430,2410,2180,2300,2620,2950,3070,3180,3260,3450,3660,4120,4420,4900,5430,6180,6410,6260,6730,7320,7880,8250,8750,9030,9270,9640,10100,10600,11000,11500,11900,12400,12800,13100,13500,13800,14200,14500,14800,15100,15500,15800,16200,16500,16900,17300,17700,18000,18400 -Germany,1640,1650,1660,1670,1690,1700,1710,1720,1730,1750,1760,1770,1780,1800,1810,1820,1830,1850,1860,1870,1890,1900,1910,1930,1940,1950,1970,1980,2000,2010,2020,2030,2040,2050,2050,2060,2070,2080,2090,2090,2100,2110,2120,2120,2130,2140,2150,2160,2170,2170,2180,2150,2180,2160,2210,2170,2340,2440,2410,2390,2510,2420,2520,2680,2730,2710,2710,2700,2850,2850,2820,2780,2960,3060,3260,3240,3180,3120,3230,3110,3060,3110,3140,3290,3350,3400,3400,3500,3600,3660,3730,3680,3800,3940,3990,4130,4210,4270,4380,4470,4590,4420,4450,4630,4750,4780,4860,5000,5010,5050,5160,5270,5470,5690,4790,4560,4630,4680,4740,4130,4480,4970,5410,4500,5270,5850,6010,6610,6900,6880,6780,6270,5800,6170,6730,7220,7840,8290,8880,9660,9690,10300,10400,10700,11100,8260,4070,4490,5240,6100,7230,7860,8540,9220,9900,11000,11700,12300,12800,13700,14800,15300,15800,16200,17000,17800,18200,18200,19200,20300,21100,21600,22400,23400,23600,23500,24800,25600,26300,27400,27600,27700,27500,28100,29000,29700,30300,30800,31700,32500,31300,32600,33000,32500,33200,33700,33800,34400,35100,35800,36800,37300,37300,37000,37400,37700,39100,40500,41000,38800,40400,42700,42800,42900,43400,43800,44100,44600,45200,45700,46300,46900,47600,48300,49100,50000,51000,52100,53200,54400,55600,56800,58100,59400,60700,62000,63400,64800,66200,67700,69200 -Ghana,696,696,697,697,698,698,699,699,700,701,701,702,702,703,703,704,704,705,706,706,707,707,708,708,709,710,710,711,711,712,712,713,714,714,715,715,716,716,717,718,718,719,719,720,720,721,722,722,723,723,724,724,725,726,726,727,727,728,728,729,730,730,731,731,732,733,733,734,734,735,735,737,739,740,742,744,745,747,749,750,752,754,755,757,759,760,762,764,765,767,769,771,768,773,763,768,742,747,744,742,724,700,738,756,789,808,867,896,909,957,952,1140,1130,1190,1180,1400,1310,1440,1150,2010,1570,1580,1880,2000,2150,2090,2140,1970,2030,2080,1760,1800,1850,1900,1950,2020,2100,2170,1950,1910,1860,1820,1780,1730,1690,1650,1440,1230,1290,1420,1680,1700,1630,1820,2000,1820,2170,1940,2090,2150,2250,2270,2320,2330,2320,2290,2230,2210,2180,2240,2460,2530,2400,2460,2560,2190,2070,2090,2230,2130,2090,1960,1770,1630,1710,1740,1780,1810,1870,1910,1920,1970,1990,2030,2040,2070,2110,2140,2190,2230,2260,2290,2330,2390,2460,2540,2630,2680,2850,2910,3060,3400,3630,3810,3870,3930,3980,4240,4380,4480,4650,4830,5000,5160,5320,5470,5610,5740,5880,6010,6150,6280,6420,6560,6710,6860,7010,7160,7320,7490,7650 -Greece,1370,1370,1380,1380,1380,1380,1390,1390,1390,1390,1390,1400,1400,1400,1400,1410,1410,1410,1410,1420,1420,1430,1440,1450,1470,1480,1490,1500,1520,1530,1540,1550,1570,1580,1590,1600,1620,1630,1640,1660,1670,1690,1700,1710,1730,1740,1760,1770,1790,1800,1810,1820,1830,1840,1840,1850,1860,1870,1870,1880,1890,1890,1900,1910,1920,1920,1930,1940,1950,1960,1960,1990,2020,2050,2080,2110,2140,2180,2210,2240,2270,2310,2340,2380,2410,2450,2480,2520,2560,2600,2640,2670,2710,2750,2790,2820,2860,2900,2940,2990,3030,3070,3100,3140,3190,3230,3270,3310,3350,3390,3440,3470,3500,3530,3600,3680,3760,3830,3910,4000,4080,4160,4240,4270,4400,4550,4620,4690,4700,4900,4710,4440,4740,4940,4970,5080,5010,5640,5430,5340,4490,3770,3170,2660,2230,1870,2760,3500,3560,3690,3780,4060,4040,4540,4630,4930,5300,5600,5800,5950,6150,6630,6840,7510,8100,8820,9290,9690,10300,11300,12200,13000,14600,15100,14600,15400,16200,16500,17400,17900,18100,18000,18000,18000,18400,19000,19300,19200,20100,20800,20700,21100,21100,20600,20900,21200,21800,22600,23400,24000,24800,25700,26600,28100,29500,29600,31100,32100,31900,30400,28700,26100,24400,23700,24000,24100,24300,24900,25500,26000,26600,27300,27900,28500,29200,29800,30500,31200,31900,32600,33300,34100,34800,35600,36400,37200,38000,38800,39700,40600,41500 -Grenada,959,959,959,959,959,959,959,960,960,960,960,960,960,960,961,961,961,961,961,961,961,965,970,974,978,982,986,990,995,999,1000,1010,1010,1020,1020,1030,1030,1030,1040,1040,1050,1050,1060,1060,1060,1070,1070,1080,1080,1090,1090,1100,1100,1110,1110,1120,1120,1130,1130,1130,1140,1140,1150,1150,1160,1160,1170,1170,1180,1180,1190,1190,1200,1200,1210,1210,1220,1220,1230,1240,1240,1250,1250,1260,1260,1270,1270,1280,1280,1290,1290,1300,1310,1310,1320,1320,1330,1330,1340,1340,1350,1360,1360,1370,1370,1380,1380,1390,1400,1400,1410,1410,1420,1430,1430,1440,1440,1450,1460,1460,1470,1480,1480,1490,1490,1500,1510,1510,1520,1520,1530,1540,1540,1550,1550,1560,1570,1570,1580,1590,1590,1600,1600,1610,1620,1620,1630,1640,1640,1650,1660,1690,1730,1770,1810,1850,1890,1940,1980,2030,2070,2120,2170,2220,2270,2320,2370,2430,2480,2540,2600,2780,3000,3270,3500,3630,4000,4280,4690,4830,4810,4800,4820,4740,4870,5090,5580,6140,6370,6830,7240,7330,7210,6990,7030,7120,7400,7740,8630,9220,9650,9440,9740,10600,10500,11900,11400,12000,12100,11300,11200,11200,11000,11300,12000,12700,12900,13200,13500,13800,14100,14500,14800,15100,15500,15800,16200,16500,16900,17300,17600,18000,18400,18800,19300,19700,20100,20600,21000,21500,22000 -Guatemala,857,857,857,857,858,858,858,858,858,858,858,858,859,859,859,859,859,859,859,860,860,867,874,881,888,895,903,910,917,925,932,940,948,956,963,971,979,987,995,1000,1010,1020,1030,1040,1050,1050,1060,1070,1080,1090,1100,1110,1120,1120,1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1350,1360,1370,1380,1390,1400,1410,1420,1440,1450,1460,1470,1480,1490,1510,1520,1530,1540,1560,1570,1580,1600,1610,1620,1630,1650,1660,1680,1690,1700,1720,1730,1740,1760,1770,1790,1800,1820,1830,1850,1860,1880,1890,1910,1920,1940,2100,1960,2140,2280,2210,2210,2330,2350,2600,2680,2440,2080,2040,2270,2570,3460,3300,3330,3670,4090,4210,4170,2730,2590,2570,2970,2930,2940,3120,3080,3030,3000,3020,2980,2970,3140,3220,3260,3320,3300,3340,3360,3570,3630,3720,3850,3940,4200,4320,4480,4630,4860,5080,5290,5280,5550,5850,6010,6160,6250,6140,5740,5460,5330,5150,5000,5020,5060,5100,5100,5170,5290,5370,5460,5600,5640,5750,5900,6000,6070,6070,6160,6170,6210,6270,6460,6710,6780,6670,6710,6840,6900,7010,7150,7290,7370,7440,7530,7640,7720,7810,7910,8020,8150,8300,8460,8640,8820,9020,9210,9420,9630,9840,10100,10300,10500,10700,11000,11200,11500 -Guinea,450,450,450,450,450,451,451,451,451,451,451,451,451,451,451,451,451,451,451,451,452,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,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,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,530,531,532,533,534,535,536,537,538,539,540,542,543,544,545,546,547,548,549,551,552,553,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,642,653,668,698,712,728,743,754,785,805,844,891,829,868,912,915,927,938,948,963,975,976,1000,1050,1070,1160,1160,1170,1150,1160,1150,1140,1130,1110,1080,1070,1080,1120,1140,1120,1090,1070,1060,1040,1040,1060,1080,1100,1120,1130,1150,1190,1180,1190,1200,1200,1200,1230,1200,1190,1210,1230,1240,1210,1180,1220,1240,1280,1310,1340,1370,1400,1440,1470,1500,1540,1570,1600,1640,1680,1710,1750,1790,1830,1870,1910,1950,2000,2040,2090 -Guinea-Bissau,777,777,777,777,778,778,778,778,778,778,778,778,779,779,779,779,779,779,779,779,779,780,781,781,782,783,783,784,785,785,786,786,787,788,788,789,790,790,791,792,792,793,793,794,795,795,796,797,797,798,799,799,800,801,801,802,803,803,804,804,805,806,806,807,808,808,809,810,810,811,812,812,813,814,814,815,816,816,817,818,818,819,820,820,821,822,822,823,824,824,825,826,826,827,828,828,829,830,830,831,832,832,833,834,834,835,836,836,837,838,838,839,840,840,841,842,842,843,844,844,845,845,845,844,844,844,844,843,843,843,843,842,842,842,842,841,841,841,840,840,840,840,839,839,839,838,838,838,837,837,837,869,901,936,1100,1030,1140,1190,1190,1180,1210,1260,1310,1340,1440,1520,1580,1640,1660,1710,1760,1680,1780,1780,1830,1860,1810,1650,1830,1830,1510,1740,1800,1610,1640,1690,1630,1570,1590,1560,1570,1610,1590,1580,1600,1630,1790,1870,1320,1310,1360,1360,1320,1300,1310,1340,1340,1350,1360,1370,1390,1490,1420,1400,1390,1420,1470,1510,1550,1590,1630,1680,1720,1770,1810,1850,1900,1940,1980,2030,2070,2120,2160,2210,2260,2310,2360,2410,2470,2520,2580 -Guyana,1210,1210,1210,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1230,1230,1240,1250,1260,1270,1280,1290,1290,1300,1310,1320,1330,1340,1350,1360,1370,1380,1380,1390,1400,1410,1420,1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570,1580,1590,1610,1620,1630,1640,1650,1660,1670,1680,1690,1710,1720,1730,1740,1750,1760,1780,1790,1800,1810,1820,1840,1850,1860,1870,1890,1900,1910,1930,1940,1950,1960,1980,1990,2000,2020,2030,2050,2060,2070,2090,2100,2120,2130,2140,2160,2170,2190,2200,2220,2230,2250,2260,2280,2310,2350,2380,2420,2450,2490,2530,2570,2610,2650,2700,2740,2780,2830,2870,2920,2960,3010,3060,3110,3160,3210,3260,3310,3360,3420,3470,3530,3580,3640,3700,3760,3820,3880,3940,4000,4060,3960,3850,3750,3650,3550,3460,3370,3280,3190,3100,3160,3120,2670,2910,3140,3240,3310,3280,3450,3550,3620,3480,3510,3760,4060,4100,3960,3860,3760,3810,3870,3360,3140,3000,3090,3080,3130,3040,2910,2840,3000,3220,3460,3730,3900,4210,4480,4420,4560,4510,4620,4670,4630,4780,4690,4940,5300,5410,5600,5840,6130,6390,6680,6890,7060,7250,7490,7740,8000,8270,8550,8840,9140,9450,9760,10100,10400,10800,11200,11500,11800,12100,12400,12700,12900,13200,13500,13800,14100,14400 -Haiti,633,633,634,634,634,634,634,634,634,634,634,634,634,635,635,635,635,635,635,635,635,642,648,655,662,668,675,682,689,696,703,710,718,725,732,740,748,755,763,771,779,787,795,803,811,819,828,836,845,853,862,871,880,889,898,907,916,926,935,945,954,964,974,984,994,1000,1010,1030,1040,1050,1060,1070,1080,1090,1100,1110,1120,1130,1150,1160,1170,1180,1190,1210,1220,1230,1240,1260,1270,1280,1300,1310,1320,1340,1350,1360,1380,1390,1410,1420,1430,1450,1460,1480,1490,1510,1520,1540,1560,1570,1590,1600,1620,1640,1650,1670,1690,1700,1720,1740,1760,1780,1790,1810,1830,1850,1870,1890,1910,1930,1950,1970,1990,2010,2030,2050,2070,2090,2110,2140,2160,2180,2200,2230,2250,2270,2270,2280,2280,2270,2290,2280,2370,2260,2400,2260,2410,2230,2360,2200,2300,2160,2320,2120,2030,2010,1950,1870,1910,1930,1980,2080,2140,2210,2330,2260,2430,2420,2520,2680,2860,2740,2600,2570,2530,2480,2420,2360,2320,2300,2250,2220,1880,1810,1630,1680,1720,1730,1740,1750,1740,1690,1660,1640,1560,1560,1570,1600,1590,1610,1500,1560,1590,1630,1650,1650,1650,1680,1710,1740,1770,1790,1820,1850,1880,1910,1950,1990,2030,2080,2120,2170,2220,2270,2320,2370,2420,2480,2530,2590,2640 -Honduras,675,675,675,675,675,675,675,675,675,675,676,676,676,676,676,676,676,676,676,676,677,685,694,703,712,721,730,740,749,759,769,779,789,799,809,819,830,841,851,862,873,885,896,907,919,931,943,955,967,980,992,1010,1020,1030,1040,1060,1070,1090,1100,1110,1130,1140,1160,1170,1190,1200,1220,1230,1250,1270,1280,1300,1310,1330,1350,1370,1380,1400,1420,1440,1460,1470,1490,1510,1530,1550,1570,1590,1610,1630,1650,1670,1700,1720,1740,1760,1790,1810,1830,1850,1880,1900,1930,1950,1980,2000,2030,2050,2080,2110,2130,2160,2190,2220,2250,2280,2300,2330,2360,2390,2420,2380,2490,2380,2160,2510,2450,2650,2910,2820,2940,2930,2570,2360,2260,2120,2110,1980,2050,2070,2150,2100,1870,1860,1850,2240,2350,2440,2440,2400,2400,2450,2470,2580,2360,2340,2450,2480,2470,2450,2510,2490,2540,2530,2570,2690,2740,2790,2840,2760,2750,2760,2760,2780,3070,3040,3240,3460,3670,3710,3580,3530,3340,3200,3210,3230,3140,3210,3260,3270,3170,3180,3270,3370,3240,3280,3300,3370,3380,3230,3330,3330,3370,3440,3570,3700,3850,4000,4080,3900,3970,4050,4140,4180,4230,4310,4390,4490,4590,4700,4800,4910,5020,5130,5240,5350,5470,5590,5720,5840,5970,6110,6240,6380,6520,6660,6810,6960,7120,7270,7440 -Hungary,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1350,1360,1380,1390,1400,1410,1420,1430,1440,1450,1460,1480,1490,1500,1510,1520,1530,1550,1560,1570,1580,1590,1610,1620,1630,1650,1660,1670,1680,1700,1710,1720,1740,1750,1760,1780,1790,1810,1820,1830,1850,1880,1910,1930,1960,1990,2020,2060,2090,2120,2150,2180,2220,2250,2280,2320,2350,2390,2430,2460,2500,2540,2570,2600,2640,2680,2710,2750,2790,2820,2860,2910,2960,3020,3070,3120,3180,3230,3290,3350,3410,3490,3570,3650,3570,3490,3410,3340,3260,3190,3120,3250,3380,3520,3670,4420,4240,4440,4840,5020,4920,4690,4580,5000,5040,5300,5670,5550,5840,6290,5870,5910,6220,5580,5000,4480,4010,4160,5190,5590,5920,6470,6670,6760,6950,7520,7150,7840,8360,8690,9140,9600,10000,10600,11200,11200,11900,12600,12700,13100,13000,13600,13800,14500,14900,15100,15100,16000,16300,16300,16500,16600,17300,17100,17600,17300,17700,18000,18600,18300,17100,15100,14600,14600,15000,15200,15300,15800,16500,17100,17900,18600,19500,20300,21300,22300,23200,23300,23600,22100,22300,22700,22500,23000,24000,24800,25400,26200,26900,27600,28500,29300,30100,30900,31700,32500,33300,34100,34800,35600,36400,37200,38000,38900,39700,40600,41500,42400,43400,44300,45300 -Iceland,926,926,927,927,927,927,927,927,927,928,928,928,928,928,928,928,929,929,929,929,929,939,950,960,970,981,992,1000,1010,1030,1040,1050,1060,1070,1080,1090,1110,1120,1130,1140,1160,1170,1180,1190,1210,1220,1230,1250,1260,1270,1290,1300,1320,1330,1340,1360,1370,1390,1400,1420,1440,1450,1470,1480,1500,1520,1530,1550,1570,1580,1600,1630,1620,1700,1750,1740,1710,1750,1810,1920,2040,2040,1820,1750,1770,1810,1820,1790,1850,1930,2010,2060,2190,2330,2360,2310,2350,2340,2270,2270,2350,2460,2520,2520,2530,2700,2760,2870,2840,2810,3010,3140,3160,3310,3230,3170,2800,2740,2580,2980,2510,2760,3100,2930,3120,3110,3350,3670,3810,4030,4450,4380,4180,4610,4640,4470,4450,4620,4620,5130,5400,6120,7050,7420,8030,8530,8750,9510,9510,9140,8730,8410,8180,9240,9890,10600,10700,10400,11000,11000,11100,10900,11600,12600,13600,14300,15300,14900,13900,14100,15100,16900,17600,18600,19400,19300,20200,21900,23000,23800,24900,25700,25800,24900,25700,26400,27800,29800,29200,29100,29100,28700,27400,27500,28200,28100,29300,30500,32100,33000,34100,34900,34700,35300,37900,39800,40800,43500,43300,40200,38800,39500,39700,41100,41400,42700,45300,46400,47400,48300,49600,50900,52300,53600,55000,56300,57600,58900,60300,61600,63000,64400,65800,67300,68800,70300,71800,73400,75100,76700,78400 -India,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1070,1070,1070,1070,1080,1080,1080,1080,1090,1090,1090,1090,1130,1090,1140,1150,1110,1160,1050,1140,1160,1180,1150,1060,1250,1260,1160,1190,1210,1300,1320,1310,1280,1310,1220,1230,1400,1390,1370,1360,1320,1380,1340,1370,1340,1160,1310,1200,1270,1300,1230,1260,1250,1270,1240,1230,1260,1240,1210,1190,1170,1150,1110,1130,1090,1070,1070,1080,1080,1050,1070,1040,1000,933,920,913,917,904,904,907,941,957,957,987,953,998,996,1040,1040,1040,1060,1120,1040,1030,1090,1090,1130,1160,1140,1110,1140,1130,1200,1190,1250,1290,1200,1260,1310,1320,1400,1420,1450,1480,1510,1630,1700,1760,1740,1800,1850,1930,2040,2150,2200,2290,2450,2500,2570,2620,2780,2960,3180,3420,3700,3790,4050,4410,4640,4830,5070,5390,5750,6090,6480,6890,7340,7800,8270,8720,9160,9550,9900,10200,10500,10800,11000,11300,11500,11800,12000,12300,12600,12800,13100,13400,13700,14000 -Indonesia,994,994,995,995,995,995,995,995,996,996,996,996,996,996,996,997,997,997,997,997,997,999,1000,1000,1000,1010,1010,1010,1010,1010,1010,1010,1020,1020,1020,1020,1020,1020,1020,1030,1030,1030,1030,1030,1030,1040,1040,1040,1040,1040,1040,1040,1050,1050,1050,1050,1050,1050,1060,1060,1060,1060,1060,1060,1070,1070,1070,1070,1070,1070,1080,1060,1050,1060,1070,1080,1100,1100,1080,1090,1090,1140,1100,1080,1160,1150,1140,1140,1130,1120,1080,1100,1130,1150,1150,1140,1140,1140,1130,1180,1200,1170,1140,1180,1190,1190,1210,1220,1210,1250,1310,1360,1370,1410,1400,1400,1400,1380,1410,1520,1460,1450,1480,1490,1550,1560,1640,1720,1770,1800,1800,1640,1610,1600,1610,1670,1770,1890,1920,1920,2060,2060,1510,1340,1070,947,978,1080,1260,1370,1450,1540,1550,1600,1680,1720,1680,1800,1660,1710,1750,1810,1790,1690,1710,1700,1690,1620,1760,1940,2110,2190,2380,2670,2720,2650,2840,2990,3070,3160,3360,3500,3300,3350,3520,3550,3710,3840,4010,4310,4630,4860,5090,5330,5640,6010,6390,6590,5650,5610,5810,5930,6120,6320,6550,6830,7100,7450,7790,8050,8430,8840,9250,9640,10000,10400,10800,11200,11700,12100,12600,13100,13600,14100,14500,14900,15300,15700,16100,16400,16800,17200,17500,17900,18300,18700,19200,19600,20000,20500,20900 -Iran,976,977,977,977,977,977,977,978,978,978,978,978,978,978,979,979,979,979,979,979,980,981,983,985,987,989,991,993,994,996,998,1000,1000,1000,1010,1010,1010,1010,1010,1020,1020,1020,1020,1020,1030,1030,1030,1030,1030,1040,1040,1040,1040,1040,1050,1050,1050,1050,1050,1050,1060,1060,1060,1060,1060,1070,1070,1070,1070,1080,1080,1080,1090,1100,1110,1110,1120,1130,1140,1150,1150,1160,1170,1180,1190,1190,1200,1210,1220,1230,1230,1240,1250,1260,1270,1280,1290,1300,1300,1310,1320,1330,1340,1350,1360,1370,1380,1390,1400,1410,1420,1430,1450,1460,1500,1530,1570,1610,1650,1690,1730,1790,1840,1900,1960,2020,2080,2150,2210,2280,2350,2420,2490,2560,2640,2710,2790,2870,2950,3040,3120,3210,3300,3390,3490,3580,3680,3780,3890,3990,4100,4010,3930,3850,3770,3690,3930,4380,4780,5070,5420,5740,5710,6190,6470,7090,7600,8240,9250,10200,11000,12100,13700,14500,15100,15500,17600,17000,14600,13000,11000,10300,11400,12400,12000,11800,10300,9950,9200,9350,10200,11200,11400,11100,10800,10900,11400,11300,11400,11400,11900,12000,12800,13700,14100,14600,15200,16400,16400,16600,17400,17900,16500,16000,16500,16000,16300,16800,17400,18000,18500,19100,19600,20100,20700,21200,21700,22200,22700,23200,23700,24200,24800,25300,25900,26400,27000,27600,28200,28900,29500 -Iraq,969,969,970,970,970,970,970,970,970,971,971,971,971,971,971,971,972,972,972,972,972,976,980,984,988,992,996,1000,1000,1010,1010,1020,1020,1030,1030,1030,1040,1040,1050,1050,1060,1060,1060,1070,1070,1080,1080,1090,1090,1090,1100,1100,1110,1110,1120,1120,1130,1130,1140,1140,1150,1150,1150,1160,1160,1170,1170,1180,1180,1190,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1350,1360,1370,1380,1400,1410,1420,1430,1440,1450,1460,1470,1490,1500,1510,1520,1530,1550,1560,1570,1580,1590,1610,1620,1630,1650,1660,1670,1700,1730,1760,1790,1820,1850,1880,1910,1940,1970,2000,2040,2070,2100,2140,2170,2210,2240,2280,2320,2350,2390,2430,2470,2510,2550,2590,2630,2680,2720,2760,2810,2850,2900,2940,2990,3040,3220,3460,4740,5480,5110,5310,5120,5550,5610,6080,6580,6710,6380,6920,7300,7440,7020,8000,7990,7700,7940,7500,8830,9710,10700,12200,11800,13500,17100,17000,13800,13000,11000,10900,11000,11300,13400,13500,11800,11500,4030,5200,6580,6630,6560,7060,8300,10800,12400,12200,12100,11000,7140,10700,10900,11700,11600,12200,12300,12700,13300,14600,15100,14700,14900,16100,16100,15900,15700,15400,15100,14900,14800,14800,14900,15100,15400,15700,16000,16300,16700,17100,17500,17800,18200,18600,19000,19500,19900,20300 -Ireland,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1450,1470,1490,1510,1540,1560,1580,1600,1630,1650,1670,1700,1720,1750,1770,1800,1820,1850,1870,1900,1930,1960,1980,2010,2040,1710,1430,1620,1430,1390,1800,2090,2290,2320,2350,2390,2420,2460,2490,2530,2560,2600,2640,2680,2710,2750,2790,2830,2870,2910,2960,2990,3020,3050,3080,3110,3140,3180,3210,3240,3270,3310,3340,3380,3410,3450,3480,3520,3550,3590,3630,3660,3700,3740,3780,3820,3860,3900,3940,3980,4020,4060,4100,4140,4180,4230,4270,4310,4360,4400,4450,4500,4550,4600,4560,4520,4480,4440,4400,4360,4320,4290,4410,4380,4390,4400,4410,4560,4710,4870,5010,5150,5010,4870,5030,5180,5350,5190,5370,5380,5390,5400,5400,5410,5420,5370,5440,5520,5780,6100,6200,6370,6560,6760,6850,7090,7060,7100,7030,7340,7800,8220,8460,8810,9120,9250,9320,9830,10600,11200,11400,11700,12300,12700,13000,13500,13500,14400,15300,15500,15900,16200,16400,16300,16900,17400,17300,18100,19100,20300,22100,22400,23000,23500,24800,27000,29200,32100,34300,37600,40800,42600,44200,45100,47300,48900,50400,50800,47600,45000,45700,45500,44900,45300,48900,60900,62800,64300,65600,67000,68400,70000,71500,73100,74700,76400,78100,79800,81600,83400,85300,87100,89100,91100,93100,95100,97200,99400,102000,104000,106000 -Israel,879,880,880,880,880,880,880,880,881,881,881,881,881,881,881,881,882,882,882,882,882,882,882,882,883,883,883,883,883,883,883,884,884,884,884,884,884,884,884,885,885,885,885,885,885,885,886,886,886,886,886,886,886,886,887,887,887,887,887,887,887,887,888,888,888,888,888,888,888,889,889,894,899,904,909,914,919,924,929,934,940,945,950,956,961,966,972,977,983,988,994,999,1010,1010,1020,1020,1030,1030,1040,1050,1050,1060,1060,1070,1070,1080,1090,1090,1100,1110,1110,1120,1120,1130,1080,1030,978,932,965,998,1030,1070,1110,1060,1330,1420,1210,1340,1460,1670,2000,2270,2590,3090,3450,3290,2730,2410,2210,2120,2150,2430,2890,3010,3090,3190,3480,3640,3820,4010,4200,4720,4530,4350,5050,5540,5780,5980,6160,6750,7000,7500,7910,8410,8900,9440,9320,9380,10600,11600,12200,13200,14300,14600,15200,15400,15200,14900,15300,15900,16700,17200,17300,17600,17400,17700,18300,19300,19400,19200,19800,20000,20400,21000,21900,22700,23500,23900,24300,24600,26100,25500,25000,24900,25700,26300,27400,28500,28900,28600,29600,30500,30700,31400,31800,32000,32600,33000,33400,33800,34300,34700,35200,35700,36300,37000,37800,38500,39400,40200,41100,42000,43000,43900,44900,45900,46900,47900,49000,50100,51200 -Italy,2220,2200,2270,2330,2430,2350,2410,2420,2550,2570,2370,2290,2340,2410,2440,2330,2290,2320,2490,2470,2470,2430,2460,2480,2550,2510,2580,2540,2510,2510,2470,2560,2580,2590,2610,2690,2490,2430,2470,2440,2520,2570,2600,2470,2470,2490,2470,2410,2480,2460,2430,2430,2400,2350,2190,2210,2220,2400,2490,2420,2400,2390,2460,2510,2470,2600,2420,2440,2460,2520,2640,2630,2590,2590,2770,2710,2610,2650,2780,2780,2850,2930,2990,3030,2940,3020,3170,3210,3170,3060,3140,3220,3200,3280,3290,3330,3370,3390,3400,3450,3530,3590,3670,3770,3880,4010,4110,4240,4300,4380,4380,4420,4560,4720,5130,5150,5720,6090,6690,5790,5180,5220,5430,5440,5370,5580,5550,5560,5850,5970,5620,5640,5830,5750,5770,6200,6320,6550,6540,6900,6640,6460,6430,6040,5110,3970,4960,5640,5940,6080,6420,6770,7060,7470,7760,8170,8480,8880,9250,9760,10400,11100,11600,12200,12400,12700,13400,14100,15100,15900,16600,16800,17300,18600,19300,18700,19900,20300,21100,22400,23100,23400,23700,23900,25100,26000,26600,27600,29200,30500,31100,31600,31800,31600,32200,33200,33600,34200,34700,35200,36500,37200,37200,37100,37400,37600,38200,38600,38000,35700,36200,36300,35200,34200,33900,34200,34600,34900,35200,35500,35800,36100,36500,36900,37500,38100,38800,39600,40400,41300,42200,43200,44100,45100,46100,47100,48200,49200,50300,51400,52600 -Jamaica,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1160,1150,1140,1140,1130,1120,1110,1100,1090,1080,1070,1060,1050,1050,1040,1030,1020,1010,1000,994,986,977,969,961,953,946,938,930,922,915,914,913,913,912,912,911,910,910,909,909,908,907,907,906,906,905,904,904,903,903,905,908,911,914,917,920,922,925,928,931,934,937,940,943,946,949,952,955,958,961,964,967,970,973,976,979,982,985,988,991,994,997,1000,1000,1010,1010,1010,1020,1020,1020,1030,1040,1050,1080,1100,1130,1160,1190,1220,1240,1280,1310,1340,1380,1410,1440,1480,1510,1550,1590,1630,1660,1700,1740,1780,1820,1860,1910,1910,1920,1920,1920,2290,2590,2920,3300,3040,2910,2790,2680,2850,3040,3430,3770,4100,4450,5020,5000,5180,5410,5510,5550,5620,5910,6250,6370,6460,6670,7070,7800,7690,7780,8310,7850,7700,7120,6870,6830,6610,6170,6230,6190,6300,6210,5890,5960,6390,6550,6960,7290,7580,7660,8300,8330,8450,8360,8180,7920,7930,7930,7980,8080,8330,8390,8410,8610,8680,8570,8150,8000,8100,8020,8030,8050,8110,8190,8340,8520,8710,8870,9040,9220,9410,9600,9800,10000,10200,10500,10700,10900,11200,11400,11700,11900,12200,12500,12700,13000,13300,13600 -Japan,1050,1050,1050,1050,1060,1060,1060,1060,1060,1060,1060,1070,1070,1070,1070,1070,1070,1070,1080,1080,1080,1080,1080,1080,1090,1090,1090,1090,1090,1090,1090,1100,1100,1100,1100,1100,1100,1100,1110,1110,1110,1110,1110,1110,1120,1120,1120,1120,1120,1120,1130,1130,1130,1140,1140,1150,1150,1150,1160,1160,1170,1170,1180,1180,1190,1190,1190,1200,1200,1210,1210,1220,1220,1230,1230,1320,1280,1300,1290,1350,1390,1340,1360,1350,1340,1380,1460,1520,1430,1480,1610,1520,1600,1590,1760,1770,1650,1660,1950,1790,1840,1880,1750,1850,1840,1790,2000,2040,2030,2000,2000,2070,2100,2100,2000,2150,2440,2480,2480,2700,2500,2720,2670,2630,2650,2710,2680,2660,2830,2860,2600,2570,2740,2950,2900,2920,3090,3180,3350,3850,3920,3910,3830,3830,3600,1820,1950,2080,2320,2420,2580,2760,3060,3210,3330,3520,3700,3900,4060,4360,4840,5370,5790,6220,6870,7190,7880,8630,9640,10800,14500,15000,16100,17100,16700,17000,17500,18100,19000,19800,20300,21000,21500,22000,22900,24200,24800,25700,27500,28900,30400,31400,31500,31500,31700,32400,33300,33600,33200,33000,33900,33900,33900,34300,35100,35700,36100,36700,36300,34300,35800,35800,36400,37100,37300,37800,38200,38600,39100,39400,39800,40300,40800,41400,42100,42900,43700,44600,45600,46500,47600,48600,49700,50800,51900,53100,54300,55500,56700,57900,59200 -Jordan,976,976,976,976,976,976,977,977,977,977,977,977,977,978,978,978,978,978,978,979,979,983,987,991,995,999,1000,1010,1010,1020,1020,1020,1030,1030,1040,1040,1050,1050,1050,1060,1060,1070,1070,1080,1080,1080,1090,1090,1100,1100,1110,1110,1120,1120,1120,1130,1130,1140,1140,1150,1150,1160,1160,1170,1170,1180,1180,1190,1190,1200,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1350,1360,1370,1380,1390,1400,1420,1430,1440,1450,1460,1470,1480,1500,1510,1520,1530,1540,1560,1570,1580,1590,1610,1620,1630,1640,1660,1680,1690,1720,1750,1770,1800,1830,1860,1890,1920,1950,1980,2010,2040,2070,2100,2130,2160,2200,2230,2260,2290,2330,2360,2390,2430,2460,2500,2540,2570,2610,2640,2680,2720,2760,2790,2830,2870,2910,2970,3020,3070,3120,2840,3740,3670,3870,3990,4060,4670,4560,4600,5170,5520,5430,5290,4620,4790,4130,4070,4040,4090,4290,4410,5280,5410,6310,6640,7570,7600,7820,7660,7990,7960,8360,8270,7900,6810,6280,6070,6810,6750,6760,6900,6830,6880,6950,7060,7240,7480,7780,7940,8400,8800,9160,9490,9720,9750,9470,9210,8960,8760,8620,8490,8390,8410,8450,8510,8540,8580,8640,8720,8830,8970,9130,9310,9500,9710,9920,10100,10400,10600,10800,11100,11300,11600,11800,12100,12400 -Kazakhstan,1140,1140,1140,1140,1150,1150,1150,1150,1150,1150,1150,1160,1160,1160,1160,1160,1160,1160,1160,1170,1170,1180,1180,1190,1200,1210,1210,1220,1230,1240,1250,1250,1260,1270,1280,1290,1290,1300,1310,1320,1330,1340,1350,1350,1360,1370,1380,1390,1400,1410,1420,1430,1440,1450,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570,1580,1590,1600,1610,1620,1630,1640,1660,1670,1680,1690,1700,1710,1720,1730,1740,1750,1770,1780,1710,2000,1920,1790,1780,1630,1790,2020,2300,2130,2350,2310,2370,2510,2460,2520,2740,2550,2820,2500,2390,2300,2510,2600,2780,2570,2780,2920,2780,2870,2550,2240,1370,1180,1190,1090,1260,1460,1850,2310,2600,2710,2850,2890,3020,3050,3010,3130,3420,3910,4180,4530,4520,4710,4520,4440,4360,4280,4210,4130,4060,4510,5100,5580,6050,5980,6260,6430,6640,7080,7630,7660,8100,7870,8480,8810,8910,8580,9570,10000,10400,10700,11300,11300,12100,12300,12200,13200,13300,13100,13500,13600,13700,13400,13200,13100,13200,13400,13300,13200,13500,13500,13600,13600,13100,11500,10900,10000,8870,8280,8450,8730,8720,9040,9950,11300,12400,13500,14700,16000,17500,18900,19300,19000,20100,21300,22000,23000,23600,23500,23400,23900,24200,24600,24900,25300,25700,26100,26600,27100,27700,28300,28900,29500,30200,30800,31500,32200,32900,33700,34400,35200,36000,36700,37600 -Kenya,854,856,859,862,864,867,870,872,875,878,881,883,886,889,892,895,897,900,903,906,909,912,914,917,920,923,926,929,932,935,938,941,943,946,949,952,955,958,961,964,967,970,973,977,980,983,986,989,992,995,998,1000,1000,1010,1010,1010,1020,1020,1020,1030,1030,1030,1040,1040,1040,1050,1050,1050,1060,1060,1060,1070,1070,1070,1080,1080,1080,1090,1090,1090,1100,1100,1100,1110,1110,1110,1120,1120,1120,1130,1130,1140,1140,1140,1150,1150,1150,1160,1160,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1330,1340,1350,1360,1370,1380,1400,1410,1420,1430,1440,1460,1470,1480,1500,1510,1520,1540,1550,1560,1580,1590,1600,1620,1630,1640,1660,1670,1690,1700,1720,1730,1750,1760,1780,1790,2050,1880,1750,1840,1890,1940,1970,1920,1800,1890,1770,1850,1870,1920,1950,2120,2140,2070,2130,1950,2010,2030,2060,2090,2000,2010,2110,2220,2220,2250,2250,2250,2190,2150,2160,2230,2280,2340,2360,2380,2340,2250,2180,2180,2200,2230,2180,2190,2180,2130,2150,2110,2110,2160,2220,2300,2400,2340,2350,2480,2560,2600,2680,2750,2840,2930,3010,3110,3220,3320,3420,3520,3620,3720,3810,3900,3990,4080,4180,4270,4360,4460,4560,4660,4760,4870,4980,5090,5200,5320 -Kiribati,551,551,552,552,553,553,554,554,555,555,556,556,557,557,558,558,559,559,560,560,561,561,562,562,563,563,564,564,565,565,566,566,567,567,568,568,569,569,570,570,571,571,572,572,573,573,574,574,575,575,576,576,577,577,578,578,579,579,580,580,581,581,582,582,583,583,584,584,585,586,586,587,587,588,588,589,589,590,590,591,591,592,592,593,593,594,594,595,595,596,596,597,597,598,599,599,600,600,601,601,602,602,603,603,604,604,605,605,606,606,607,608,608,609,626,644,663,682,702,722,743,768,795,822,851,880,911,942,974,1010,1040,1080,1120,1150,1190,1230,1280,1320,1360,1410,1460,1510,1560,1610,1670,1720,1780,1840,1900,1970,2030,2100,2170,2250,2320,2400,2480,2560,2650,2740,2830,2920,3020,3120,3230,3330,3440,3560,3680,3800,3920,3770,4160,4960,7100,7360,5290,4950,4900,4240,2310,2180,2350,2070,2180,2030,2010,1900,2190,1960,1960,1930,1920,1910,1920,1890,1890,1900,1990,1920,2010,1940,1980,1990,1920,1980,1910,1910,1830,1800,1730,1710,1760,1830,1840,1870,1900,1900,1890,1880,1880,1890,1890,1910,1930,1950,1990,2020,2070,2110,2160,2200,2250,2300,2350,2410,2460,2510,2570,2630,2680 -Kuwait,1100,1100,1110,1110,1110,1120,1120,1130,1130,1140,1140,1140,1150,1150,1160,1160,1170,1170,1170,1180,1180,1190,1190,1200,1200,1210,1210,1210,1220,1220,1230,1230,1240,1240,1250,1250,1260,1260,1270,1270,1270,1280,1280,1290,1290,1300,1300,1310,1310,1320,1320,1330,1330,1340,1340,1350,1350,1360,1360,1370,1370,1380,1380,1390,1390,1400,1400,1410,1420,1420,1430,1450,1470,1490,1510,1530,1560,1580,1600,1620,1650,1670,1700,1720,1750,1770,1800,1820,1850,1880,1900,1930,1960,1990,2020,2050,2080,2110,2140,2170,2200,2230,2270,2300,2330,2370,2400,2440,2470,2510,2540,2580,2620,2660,2590,2520,2450,2380,2320,2340,2350,2370,2350,2320,2300,2280,2260,2240,2210,2030,1860,1710,1570,1440,1450,1470,1480,1490,1500,1520,1530,1550,1560,1570,1590,1600,1620,2080,2680,3450,4430,5710,7350,9450,10500,11600,12800,14200,15700,17400,19300,21400,23700,26200,29000,32100,35600,39400,43600,48300,53400,62900,61700,58700,114000,90700,91300,86900,80100,108000,107000,84400,66800,64300,62700,57300,42200,47300,40200,45700,37000,18500,50200,68600,74400,81000,80500,78400,75900,70000,69900,68500,69400,80500,87600,93500,96200,96900,93700,81900,75200,77500,77600,74100,70800,69300,67300,67700,68400,68800,68700,68600,68800,69200,69900,70800,72000,73400,74900,76500,78100,79800,81600,83400,85300,87200,89100,91100,93100,95100,97200 -Kyrgyz Republic,508,508,508,508,508,508,509,509,509,509,509,509,509,509,509,509,509,509,509,510,510,514,519,523,528,532,537,542,547,551,556,561,566,571,576,581,586,592,597,602,607,613,618,623,629,635,640,646,651,657,663,669,675,681,687,693,699,705,711,717,724,730,737,743,750,756,763,770,776,783,790,797,804,811,818,825,833,840,847,855,862,870,878,885,893,901,909,917,925,933,941,950,958,967,975,984,992,1000,1010,1020,1030,1040,1050,1060,1060,1070,1080,1090,1100,1110,1120,1130,1140,1150,1170,1200,1220,1240,1260,1290,1310,1330,1360,1390,1410,1440,1470,1490,1520,1550,1580,1610,1640,1670,1700,1730,1770,1800,1830,1870,1900,1940,1970,2010,2050,2090,2130,2170,2210,2250,2290,2340,2380,2430,2480,2520,2570,2620,2680,2730,2780,2840,2890,2950,3010,3070,3130,3190,3250,3310,3380,3440,3510,3580,3570,3570,3560,3560,3550,3540,3540,3530,3520,3520,3510,3510,3500,3490,3490,3480,3480,3150,2680,2270,1810,1700,1790,1940,1950,1990,2080,2160,2140,2270,2400,2370,2420,2600,2790,2840,2790,2920,2870,3120,3180,3240,3290,3370,3490,3610,3720,3820,3930,4030,4130,4230,4330,4430,4530,4640,4740,4840,4950,5060,5170,5290,5400,5520,5650,5770,5900 -Lao,864,865,865,865,865,865,865,865,866,866,866,866,866,866,866,866,867,867,867,867,867,869,871,873,875,877,880,882,884,886,888,890,892,894,896,899,901,903,905,907,909,912,914,916,918,920,922,925,927,929,931,934,936,938,940,942,945,947,949,951,954,956,958,961,963,965,967,970,972,974,977,979,981,984,986,988,991,993,995,998,1000,1000,1010,1010,1010,1010,1020,1020,1020,1020,1020,1030,1030,1030,1030,1040,1040,1040,1040,1050,1050,1050,1050,1060,1060,1060,1060,1070,1070,1070,1070,1080,1080,1080,1090,1090,1090,1090,1100,1100,1100,1100,1100,1100,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1130,1130,1130,1130,1130,1130,1130,1140,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1350,1360,1370,1380,1390,1430,1460,1480,1510,1550,1570,1580,1590,1600,1610,1610,1610,1610,1610,1610,1640,1680,1730,1830,1910,2000,2100,2140,2260,2350,2440,2550,2660,2790,2940,3140,3320,3520,3730,3980,4240,4530,4830,5130,5430,5740,6010,6310,6620,6940,7260,7580,7890,8170,8430,8670,8890,9100,9310,9520,9730,9950,10200,10400,10600,10900,11100,11300,11600,11900 -Latvia,751,752,753,754,754,755,756,757,758,759,760,761,762,763,763,764,765,766,767,768,769,774,779,784,789,794,799,805,810,815,820,826,831,836,842,847,853,858,864,869,875,881,886,892,898,904,910,915,921,927,933,939,946,952,958,964,970,977,983,989,996,1000,1010,1020,1020,1030,1040,1040,1050,1060,1060,1070,1080,1080,1090,1100,1100,1110,1120,1130,1130,1140,1150,1160,1160,1170,1130,1320,1270,1180,1170,1070,1180,1330,1520,1400,1550,1520,1560,1660,1620,1660,1810,1680,1860,1650,1570,1510,1650,1720,1830,1690,1830,1920,1830,1890,1680,1470,1180,1090,1410,1620,1870,2000,2040,2130,2190,2340,2480,2490,2450,2370,2340,2480,2750,2850,3020,3170,3310,3140,2970,2920,2860,2810,2760,2710,2660,2960,3340,3650,3950,3910,4090,4200,4330,4620,4980,4990,5270,5120,5510,5730,5790,5570,6210,6490,6730,6950,7290,7320,7820,7950,7920,8500,8850,9380,9780,9970,10200,10700,11000,11400,11600,12200,12800,12700,13200,13400,14000,14800,13700,12000,8220,7950,8240,8270,8560,9420,10100,10500,11200,12000,13000,14300,15600,17500,19800,21900,21300,18600,18300,19800,20800,21600,22300,23100,23700,24600,25500,26500,27500,28500,29500,30500,31400,32200,33100,33900,34600,35400,36200,37000,37800,38700,39500,40400,41300,42200,43200,44100,45100 -Lebanon,1080,1080,1080,1080,1080,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1100,1100,1100,1100,1100,1110,1110,1120,1130,1140,1150,1150,1160,1170,1180,1190,1190,1200,1210,1220,1230,1230,1240,1250,1260,1270,1280,1290,1300,1300,1310,1320,1330,1340,1350,1360,1370,1380,1390,1400,1410,1420,1430,1440,1440,1450,1460,1470,1480,1500,1510,1520,1530,1540,1550,1560,1580,1590,1610,1630,1640,1660,1680,1690,1710,1730,1740,1760,1780,1800,1810,1830,1850,1870,1890,1910,1930,1950,1970,1990,2010,2030,2050,2070,2090,2110,2130,2150,2170,2190,2220,2240,2260,2280,2310,2340,2380,2410,2330,2260,2180,2110,2210,2320,2430,2610,2810,2940,3070,3210,3350,3500,3640,3800,3950,4110,4270,4440,4610,4780,4960,5140,5330,5520,5720,5920,6120,6330,6540,6760,6980,7210,7440,7680,7930,7020,7360,8370,9470,10100,9720,9750,8250,8820,8910,9360,9570,9490,9890,10700,11200,10500,11500,11600,12100,13100,14400,14800,15000,10400,4370,7510,7700,8710,9240,9310,5900,7140,10300,12900,12200,14300,10300,5990,7860,10700,10900,11300,11900,12500,12900,12500,12900,12700,12500,12500,12400,12100,12300,12300,12200,13300,14400,15600,16300,15700,15000,14100,13500,13100,13000,13200,13400,13700,13900,14200,14400,14700,15000,15300,15600,15900,16300,16600,17000,17400,17700,18100,18500,19000,19400,19800,20200,20700,21100 -Lesotho,393,393,394,394,394,394,394,395,395,395,395,396,396,396,396,396,397,397,397,397,398,398,398,398,398,399,399,399,399,400,400,400,400,400,401,401,401,401,402,402,402,402,402,403,403,403,403,404,404,404,404,405,405,405,405,405,406,406,406,406,407,407,407,407,407,408,408,408,408,409,409,409,409,410,410,410,410,410,411,411,411,411,412,412,412,412,413,413,413,413,413,414,414,414,414,415,415,415,415,416,416,416,416,416,417,417,417,417,418,418,418,418,419,419,419,419,420,420,420,420,420,421,421,422,422,423,424,424,425,425,425,426,426,427,427,428,428,429,429,430,430,431,431,432,432,433,433,434,434,435,435,453,460,472,490,498,508,519,530,536,564,560,636,694,738,736,735,798,779,772,774,688,803,992,1030,924,1050,1210,1410,1220,1160,1140,1150,1140,1160,1180,1210,1190,1270,1320,1380,1450,1520,1540,1600,1630,1700,1740,1740,1730,1780,1830,1830,1890,1910,1960,2030,2110,2230,2250,2380,2500,2620,2640,2660,2780,2810,2870,2960,3060,3150,3230,3320,3400,3480,3570,3650,3730,3820,3900,3990,4080,4170,4260,4350,4450,4550,4650,4750,4860,4960 -Liberia,797,797,797,797,797,797,798,798,798,798,798,798,798,798,799,799,799,799,799,799,799,801,804,806,808,810,812,814,817,819,821,823,825,828,830,832,834,837,839,841,843,846,848,850,852,855,857,859,862,864,866,869,871,873,876,878,880,883,885,887,890,892,895,897,899,902,904,907,909,912,914,916,919,921,924,926,929,931,934,936,939,941,944,946,949,951,954,957,959,962,964,967,970,972,975,977,980,983,985,988,991,993,996,999,1000,1000,1010,1010,1010,1020,1020,1020,1020,1030,1030,1030,1030,1040,1040,1040,1050,1050,1050,1060,1060,1060,1070,1070,1090,1100,1120,1140,1150,1170,1190,1210,1220,1240,1260,1280,1300,1320,1330,1350,1370,1390,1410,1440,1460,1480,1500,1550,1560,1590,1640,1650,1670,1690,1700,1750,1760,1760,1740,1730,1770,1800,1890,1960,1990,2080,2150,2200,2220,2240,2260,2110,2150,2110,2170,2210,2010,1870,1830,1720,1670,1610,1590,1620,1690,1760,875,764,505,342,266,247,263,503,606,688,839,832,844,579,583,598,624,657,675,683,700,734,772,819,805,785,754,776,801,829,850,872,894,916,938,960,982,1000,1030,1050,1070,1100,1120,1150,1170,1200,1220,1250,1280,1310,1330 -Libya,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1050,1070,1080,1090,1110,1120,1130,1150,1160,1180,1190,1210,1220,1240,1250,1270,1280,1300,1310,1330,1350,1360,1380,1400,1410,1430,1450,1470,1480,1500,1520,1540,1560,1580,1600,1620,1640,1660,1680,1700,1720,1740,1760,1780,1810,1830,1850,1870,1900,1920,1940,1970,1990,2020,2040,2070,2090,2120,2140,2170,2200,2220,2250,2280,2310,2340,2360,2390,2420,2450,2480,2510,2540,2580,2610,2640,2670,2710,2740,2770,2810,2840,2880,2910,2950,2980,3020,3060,3100,3130,3170,3210,3250,3290,3330,3370,3410,3460,3500,3540,3590,3630,3670,3720,3760,3810,3850,3900,3950,3990,4040,4090,4140,4190,4240,4290,4340,4390,4450,4500,4550,4610,4660,4720,4780,4830,4890,4950,5010,5070,5130,5580,5870,5840,5690,6990,8320,8470,9100,9580,12000,12800,16600,21700,29800,37100,42500,46000,59500,64700,65800,60200,51400,49500,40300,41700,50000,53600,54400,59400,57700,44100,42700,39000,34300,34700,29600,24200,23100,23600,26000,29400,27900,26300,26300,22600,22700,22200,21700,21500,21900,21200,20700,23000,23600,26000,27300,28600,29000,28400,29600,11200,22900,19900,15100,13500,17600,17900,18300,18600,21300,24200,27200,30100,32700,34800,36600,38000,39200,40200,41100,42100,43000,44000,44900,45900,46900,48000,49000,50100,51200 -Lithuania,1270,1270,1270,1270,1280,1280,1280,1280,1280,1280,1290,1290,1290,1290,1290,1290,1290,1300,1300,1300,1300,1310,1320,1330,1330,1340,1350,1360,1370,1380,1390,1400,1410,1410,1420,1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570,1580,1590,1600,1610,1620,1630,1640,1650,1660,1670,1680,1700,1710,1720,1730,1740,1750,1760,1770,1790,1800,1810,1820,1830,1840,1860,1870,1880,1890,1900,1920,1930,1940,1950,1970,1980,1900,2230,2140,1990,1980,1820,1990,2260,2560,2370,2610,2570,2640,2800,2740,2810,3050,2840,3150,2780,2660,2560,2790,2900,3100,2860,3090,3250,3100,3190,2840,2490,2000,1840,2390,2750,3160,3380,3430,3590,3690,3950,4180,4190,4110,3980,3930,4170,4610,4770,5050,5300,5530,5250,4960,4870,4770,4680,4590,4510,4420,4910,5550,6060,6560,6480,6780,6950,7170,7640,8220,8240,8700,8450,9090,9440,9530,9170,10200,10700,11000,11400,12000,12000,12800,13000,13000,13900,14200,14100,14600,14800,15000,14800,14700,14700,15000,15300,15400,15400,15800,15900,16100,16300,15800,14800,11700,9820,8880,9360,9910,10800,11700,11700,12200,13100,14100,15700,16900,18500,20200,22700,23600,20300,21100,22900,24100,25100,26300,27000,27900,29100,30400,31700,33000,34400,35700,37000,38200,39400,40400,41400,42400,43400,44300,45300,46300,47300,48400,49500,50600,51700,52800,54000,55200 -Luxembourg,1450,1450,1450,1450,1450,1450,1450,1450,1450,1460,1460,1460,1460,1460,1460,1460,1460,1460,1460,1460,1460,1470,1490,1510,1530,1550,1560,1580,1600,1620,1640,1660,1680,1700,1720,1740,1760,1780,1800,1820,1850,1870,1890,1910,1940,1960,1980,2010,2030,2050,2080,2100,2130,2150,2180,2200,2230,2260,2280,2310,2340,2370,2390,2420,2450,2480,2510,2540,2570,2600,2630,2660,2690,2730,2760,2790,2820,2860,2890,2930,2960,3000,3030,3070,3100,3140,3180,3220,3260,3290,3330,3370,3410,3450,3490,3540,3580,3620,3660,3710,3750,3800,3840,3890,3930,3980,4030,4070,4120,4170,4220,4270,4320,4370,4550,4730,4910,5100,5310,5510,5730,5960,6210,6460,6720,6990,7280,7570,7880,8200,8540,8880,9240,9620,10000,10400,10800,11300,11700,12200,12700,13200,13800,14300,14900,15500,16100,16800,17500,18200,18900,17600,18600,19200,18900,19600,20500,21700,21700,21700,22400,23200,23300,23400,25400,25600,25600,25400,26500,29300,29600,30100,31800,34100,35300,32700,33300,33800,35100,36100,36300,36100,36400,37600,39900,41100,45100,46700,50600,55200,57600,61800,62100,63800,65300,65400,65400,68200,71500,76500,81700,82800,85000,85400,87200,88600,91700,97900,94900,89100,91700,92000,89500,91000,93800,95300,97000,98100,99000,99700,101000,102000,103000,105000,106000,108000,110000,113000,115000,117000,120000,123000,125000,128000,131000,134000,137000,140000,143000,146000,149000 -"Macedonia, FYR",690,690,690,690,690,691,691,691,691,691,691,691,691,691,691,692,692,692,692,692,692,698,703,709,715,721,727,733,739,745,751,757,763,770,776,782,789,795,802,808,815,822,828,835,842,849,856,863,870,877,884,888,891,895,898,902,905,909,912,916,919,923,927,930,934,937,941,945,949,952,956,973,989,1010,1020,1040,1060,1080,1100,1120,1140,1160,1180,1200,1220,1240,1260,1280,1300,1330,1350,1360,1370,1380,1390,1400,1410,1420,1430,1440,1450,1470,1490,1520,1540,1570,1590,1620,1640,1670,1700,1700,1700,1700,1690,1690,1680,1680,1670,1660,1660,1680,1700,1770,1870,1930,2040,1980,2130,2210,2140,2050,1830,1860,1910,1850,2070,2080,2210,2300,2290,2270,2250,2230,2210,2190,2180,2160,2540,2760,2550,2620,2390,2710,2820,2970,2880,3330,3440,3830,4030,4180,4220,4610,5010,5100,5330,5370,5440,6010,6250,6920,7100,7280,8150,8080,8260,8780,9190,9740,10200,10300,10300,10300,10500,10600,11000,10800,10600,10400,9630,9050,8480,7860,7730,7640,7710,7780,7990,8290,8620,8320,8420,8590,8980,9390,9850,10500,11000,11000,11400,11600,11600,11900,12300,12800,13100,13500,14000,14500,15000,15500,16000,16400,16900,17300,17800,18200,18600,19000,19500,19900,20300,20800,21200,21700,22200,22700,23200,23700,24200 -Madagascar,573,573,573,573,573,573,573,573,573,574,574,574,574,574,574,574,574,574,574,574,574,577,580,583,586,589,591,594,597,600,603,606,609,612,615,618,621,624,627,630,633,636,639,642,645,648,651,654,658,661,664,667,670,674,677,680,683,687,690,693,697,700,704,707,710,714,717,721,724,728,731,735,738,742,746,749,753,756,760,764,767,771,775,779,782,786,790,794,798,801,805,809,813,817,821,825,829,833,837,841,845,849,853,858,862,866,870,874,878,883,887,891,896,900,918,936,955,974,993,1010,1030,1060,1080,1100,1120,1150,1170,1190,1220,1240,1270,1300,1320,1350,1380,1410,1430,1460,1490,1530,1560,1590,1620,1660,1690,1720,1760,1800,1830,1870,1910,1950,2000,2040,2080,2120,2160,2210,2250,2290,2280,2280,2290,2220,2270,2210,2210,2290,2390,2430,2500,2540,2460,2340,2330,2310,2180,2180,2070,2210,2170,1930,1840,1810,1690,1680,1650,1640,1620,1640,1650,1500,1480,1460,1420,1400,1390,1390,1400,1420,1440,1480,1260,1340,1370,1390,1420,1460,1520,1420,1390,1370,1370,1360,1370,1380,1400,1420,1460,1490,1520,1550,1580,1610,1640,1680,1720,1750,1790,1830,1870,1910,1960,2000,2040,2090,2130,2180,2230,2280,2330 -Malawi,350,350,350,350,350,350,350,350,350,350,350,350,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,351,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,352,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,353,354,354,354,354,354,354,354,354,354,354,354,354,354,354,354,354,354,354,354,355,355,355,355,355,355,355,355,355,355,355,355,355,355,355,355,355,355,355,356,356,356,356,356,356,356,356,356,356,356,356,356,356,358,360,362,364,365,367,369,371,373,375,377,378,380,382,384,386,388,389,391,393,395,397,399,400,402,404,406,408,409,411,423,435,446,458,459,489,501,510,518,522,538,526,505,483,537,579,621,600,624,620,694,748,791,823,833,844,865,921,941,924,805,800,815,823,829,805,754,738,734,744,792,727,796,711,821,863,873,879,878,866,800,792,816,837,840,854,908,948,996,1030,1050,1040,1060,1090,1090,1080,1110,1130,1160,1190,1210,1240,1270,1300,1330,1350,1380,1420,1450,1480,1510,1540,1580,1610,1650,1690,1720,1760,1800,1840 -Malaysia,997,997,997,997,997,998,998,998,998,998,998,998,999,999,999,999,999,999,999,1000,1000,1000,1000,1010,1010,1010,1010,1010,1020,1020,1020,1020,1020,1030,1030,1030,1030,1040,1040,1040,1040,1040,1050,1050,1050,1050,1050,1060,1060,1060,1060,1070,1070,1070,1070,1070,1080,1080,1080,1080,1090,1090,1090,1090,1090,1100,1100,1100,1100,1110,1110,1110,1120,1120,1130,1130,1140,1150,1150,1160,1160,1170,1170,1180,1180,1190,1200,1200,1210,1210,1220,1220,1230,1240,1240,1250,1250,1260,1270,1270,1280,1280,1290,1300,1300,1310,1310,1320,1330,1330,1340,1350,1390,1520,1560,1590,1690,1760,1650,1980,1900,1850,1990,1930,1850,2100,2320,2210,2470,3000,2930,2780,2520,2610,2800,2490,2700,2400,2510,2980,2370,2310,3120,2870,2630,2410,2210,2030,2250,2920,2980,2760,2830,2780,2880,2830,2930,2840,2760,2870,3000,3130,3230,3300,3420,3580,3670,3650,3880,4010,4160,4370,4600,5150,5410,5340,5880,6220,6620,7010,7420,7770,8050,8350,8790,8490,8400,8640,9190,9840,10600,11300,11900,12800,13600,14600,15700,16400,14800,15300,16300,16000,16600,17200,18000,18600,19300,20700,21000,20100,21100,21800,22600,23200,24200,25000,25700,26400,27200,28100,28900,29800,30600,31500,32300,33100,33900,34700,35500,36300,37100,37900,38800,39600,40500,41400,42300,43200,44200,45200,46200 -Maldives,842,843,843,843,843,843,843,843,843,844,844,844,844,844,844,844,845,845,845,845,845,845,845,845,845,845,845,844,844,844,844,844,844,844,844,844,844,844,843,843,843,843,843,843,843,843,843,843,843,843,842,842,842,842,842,842,842,842,842,842,842,842,841,841,841,841,841,841,841,841,841,841,841,840,840,840,840,840,840,840,840,840,840,840,840,839,839,839,839,839,839,839,839,839,839,839,839,838,838,838,838,838,838,838,838,838,838,838,838,837,837,837,837,837,837,837,837,837,837,837,836,838,839,840,841,842,843,844,845,846,847,848,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,888,908,929,950,972,995,1020,1040,1060,1090,1110,1140,1170,1190,1220,1250,1280,1310,1330,1370,1410,1410,1400,1440,1290,1270,1370,1530,1650,1900,2070,1950,2210,2720,2980,3160,3340,3510,3720,4200,4380,4520,4670,4850,5070,5390,5890,6320,6690,6860,6970,7230,8090,8920,7960,9200,9670,10500,10000,10500,11100,11200,11500,11900,12000,12200,12600,13000,13400,13800,14200,14500,14900,15300,15700,16100,16400,16800,17200,17600,17900,18300,18700,19200,19600,20000,20500,20900,21400,21900 -Mali,603,603,603,603,603,603,603,603,603,603,603,604,604,604,604,604,604,604,604,604,604,605,605,605,605,605,606,606,606,606,606,607,607,607,607,607,608,608,608,608,608,609,609,609,609,609,610,610,610,610,611,611,611,611,611,612,612,612,612,612,613,613,613,613,613,614,614,614,614,614,615,615,615,615,615,616,616,616,616,616,617,617,617,617,618,618,618,618,618,619,619,619,619,619,620,620,620,620,620,621,621,621,621,621,622,622,622,622,623,623,623,623,623,624,624,624,624,624,625,625,625,627,630,632,634,637,639,641,644,646,648,650,653,655,657,660,662,664,667,669,671,673,676,678,680,683,685,687,689,692,694,708,721,736,749,764,779,794,809,825,834,825,815,855,879,876,896,909,925,903,940,954,983,940,898,1000,1110,1180,1130,1390,1210,1160,1070,1110,1140,1150,1200,1210,1180,1280,1270,1390,1310,1320,1330,1310,1370,1400,1460,1510,1460,1640,1640,1740,1710,1760,1780,1790,1810,1830,1870,1880,1810,1790,1870,1920,1960,1990,2020,2050,2080,2120,2150,2190,2230,2280,2320,2370,2420,2480,2530,2590,2640,2700,2760,2820,2890,2950,3020,3080,3150 -Malta,781,782,782,782,782,782,782,782,782,783,783,783,783,783,783,783,783,783,784,784,784,791,798,806,813,821,828,836,843,851,859,867,875,883,891,899,908,916,924,933,941,950,959,968,977,986,995,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100,1110,1120,1130,1140,1150,1160,1170,1180,1200,1210,1220,1230,1240,1250,1260,1270,1290,1300,1310,1320,1330,1350,1360,1370,1380,1400,1410,1420,1440,1450,1460,1480,1490,1500,1520,1530,1540,1560,1570,1590,1600,1620,1630,1650,1660,1680,1690,1710,1720,1740,1760,1770,1790,1800,1820,1840,1860,1870,1890,1910,1920,1940,1960,1980,1990,2010,2030,2050,2070,2090,2100,2120,2140,2160,2180,2200,2220,2240,2260,2280,2300,2320,2340,2360,2380,2400,2420,2440,2460,2490,2510,2530,2550,2580,2600,2620,2640,2670,2690,2710,2740,2760,2790,2820,2720,2730,2780,2960,3270,3480,3810,4040,4540,4690,4980,5460,5970,7050,8100,8840,9550,10300,10900,11300,11600,11700,12000,12600,12900,13300,14300,15300,16200,16700,17300,17900,18700,19800,20400,21300,22300,23200,24600,24600,25100,25600,25500,26300,26700,27700,28400,27500,28300,28600,29100,30100,32300,34400,35700,36800,37900,39000,40300,41600,42800,44000,45200,46400,47500,48700,49800,50900,52000,53200,54400,55600,56800,58100,59300,60700,62000,63400,64800 -Marshall Islands,539,539,540,540,540,541,541,541,542,542,542,543,543,543,544,544,544,545,545,545,546,546,546,547,547,547,548,548,548,549,549,549,550,550,550,551,551,551,552,552,552,553,553,553,554,554,554,555,555,555,556,556,556,557,557,557,558,558,558,559,559,559,560,560,561,561,561,562,562,562,563,563,563,564,564,564,565,565,565,566,566,566,567,567,567,568,568,568,569,569,569,570,570,571,571,571,572,572,572,573,573,573,574,574,574,575,575,575,576,576,576,577,577,578,591,605,619,633,648,663,678,694,710,727,744,761,779,797,816,835,854,874,894,915,936,958,980,1000,1030,1050,1080,1100,1130,1150,1180,1210,1230,1260,1290,1320,1350,1380,1420,1450,1480,1520,1550,1590,1630,1660,1700,1740,1780,1820,1860,1910,1950,2000,2040,2090,2140,2190,2240,2290,2520,2420,2340,2320,2370,2340,2090,2130,2100,2330,2290,2120,2480,2680,2800,2720,2890,2820,2960,3100,3250,3480,3100,2890,2790,2720,2870,3020,3110,3110,3110,3200,3260,3370,3310,3250,3450,3500,3620,3700,3660,3670,3780,3780,3780,3770,3770,3770,3780,3810,3850,3900,3970,4050,4130,4220,4310,4400,4500,4600,4700,4810,4910,5020,5130,5250,5360 -Mauritania,527,528,528,528,528,528,528,528,528,528,528,528,528,528,529,529,529,529,529,529,529,532,534,537,539,542,545,547,550,553,555,558,561,563,566,569,572,574,577,580,583,585,588,591,594,597,600,603,606,609,611,614,617,620,623,626,629,632,636,639,642,645,648,651,654,657,661,664,667,670,673,677,680,683,687,690,693,697,700,703,707,710,714,717,721,724,727,731,735,738,742,745,749,752,756,760,763,767,771,775,778,782,786,790,794,797,801,805,809,813,817,821,825,829,833,838,842,847,851,856,861,870,880,890,900,910,920,930,940,951,961,971,982,992,1000,1010,1030,1040,1050,1060,1070,1080,1090,1100,1110,1130,1140,1150,1160,1170,1190,1230,1270,1310,1350,1390,1430,1480,1520,1560,1670,1940,1890,1760,2260,2550,2540,2600,2800,2720,2970,2960,2960,2750,2990,2760,2940,2860,2800,2890,2950,3010,2890,2970,2700,2720,2810,2830,2870,2910,2810,2780,2760,2840,2680,2860,2940,2740,2730,2850,2750,2730,2660,2740,2820,2990,3450,3450,3390,3260,3320,3370,3460,3570,3660,3600,3570,3590,3670,3780,3850,3920,3990,4070,4150,4230,4320,4420,4510,4610,4710,4820,4930,5030,5150,5260,5380,5500,5620,5740,5870 -Mauritius,940,940,940,940,941,941,941,941,941,941,941,942,942,942,942,942,942,942,943,943,943,947,952,957,961,966,970,975,980,985,989,994,999,1000,1010,1010,1020,1020,1030,1030,1040,1040,1050,1050,1060,1060,1070,1070,1080,1080,1090,1100,1100,1110,1110,1120,1120,1130,1130,1140,1140,1150,1160,1160,1170,1170,1180,1180,1190,1190,1200,1210,1210,1220,1220,1230,1240,1240,1250,1250,1260,1270,1270,1280,1280,1290,1300,1300,1310,1320,1320,1330,1340,1340,1350,1350,1360,1370,1370,1380,1390,1390,1400,1410,1410,1420,1430,1440,1440,1450,1460,1460,1470,1480,1500,1510,1530,1550,1570,1590,1610,1630,1660,1680,1700,1730,1750,1770,1800,1820,1850,1880,1900,1930,1960,1980,2010,2040,2070,2100,2120,2150,2180,2210,2240,2280,2310,2340,2370,2400,2440,2490,2480,2490,2550,2550,2560,2590,2590,2660,2760,3300,3240,3620,3280,3310,3120,3190,2920,3030,2970,3080,3350,3730,4080,4030,4630,4860,4960,5050,4470,4660,4860,4830,5020,5330,5810,6340,6720,6960,7390,7630,8020,8330,8560,8850,9240,9650,10100,10300,11100,11300,11400,11800,12400,12400,13400,14100,14900,15300,15900,16600,17100,17600,18300,18900,19500,20300,21000,21800,22600,23400,24200,24900,25700,26400,27000,27700,28300,29000,29600,30300,30900,31600,32300,33000,33800,34500,35300,36100,36900 -Mexico,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1370,1370,1370,1360,1360,1360,1360,1350,1350,1350,1340,1340,1340,1330,1330,1330,1330,1320,1320,1320,1310,1310,1310,1310,1300,1300,1300,1290,1290,1290,1280,1280,1280,1280,1270,1270,1270,1270,1260,1260,1260,1250,1250,1250,1250,1240,1240,1240,1260,1290,1320,1340,1370,1400,1430,1460,1490,1520,1550,1580,1610,1650,1680,1720,1750,1790,1820,1860,1900,1950,1990,2040,2090,2120,2230,2330,2180,2160,2330,2140,2350,2370,2590,2530,2650,2620,2670,2660,2560,2540,2390,2390,2360,2540,2660,2760,2870,3060,3050,3080,3140,3050,3190,3340,3140,3120,2950,2720,2770,2310,2540,2670,2830,3010,3060,3060,3180,3170,3400,3500,3540,3740,3760,3900,3940,4000,4110,4410,4620,4670,4540,4860,5130,5330,5570,5710,5710,6000,6110,6210,6520,7080,7320,7600,7840,8230,8490,8810,8870,9310,9760,10000,10300,10500,10500,11200,12000,12800,13600,13200,12500,12600,12700,12000,12000,11900,12200,12600,12900,13100,13300,13700,12700,13200,13900,14300,14500,15000,14700,14600,14600,15000,15300,15800,16000,16000,15000,15500,15900,16300,16300,16500,16700,16800,17000,17300,17600,17800,18000,18300,18600,18900,19300,19700,20100,20500,20900,21400,21900,22400,22900,23400,23900,24400,25000,25500,26100,26600 -"Micronesia, Fed. Sts.",518,518,518,519,519,519,520,520,520,521,521,521,522,522,522,523,523,523,524,524,524,525,525,525,526,526,526,527,527,527,528,528,528,529,529,529,530,530,530,530,531,531,531,532,532,532,533,533,533,534,534,534,535,535,535,536,536,536,537,537,537,538,538,538,539,539,539,540,540,540,541,541,542,542,542,543,543,543,544,544,544,545,545,545,546,546,546,547,547,547,548,548,548,549,549,549,550,550,550,551,551,551,552,552,552,553,553,553,554,554,554,555,555,555,567,578,589,601,613,625,638,651,664,677,691,705,720,734,749,764,780,796,812,828,845,862,880,898,916,935,954,973,993,1010,1030,1050,1080,1100,1120,1140,1170,1190,1210,1240,1260,1290,1310,1340,1370,1400,1420,1450,1480,1510,1540,1570,1610,1640,1670,1700,1740,1760,1770,2380,2740,2710,2670,2660,2730,2690,2420,2570,2420,2390,2230,2530,2660,2660,2760,2720,2760,2890,2930,3090,3020,3190,3060,2870,2970,3020,3170,3230,3260,3320,3220,3300,3310,3260,3200,3240,3340,3410,3430,3300,3180,3290,3330,3380,3410,3430,3470,3510,3560,3620,3680,3750,3820,3900,3980,4070,4160,4250,4350,4440,4540,4640,4740,4850,4960,5070,5180 -Moldova,621,621,621,621,621,621,622,622,622,622,622,622,622,622,622,622,622,623,623,623,623,626,630,633,637,640,643,647,650,654,658,661,665,668,672,676,679,683,687,690,694,698,702,706,709,713,717,721,725,729,733,737,741,745,749,753,757,761,765,770,774,778,782,787,791,795,799,804,808,813,817,821,826,830,835,839,844,849,853,858,862,867,872,877,881,886,851,994,956,888,883,809,884,1000,1140,1050,1160,1140,1170,1240,1210,1240,1340,1250,1380,1220,1170,1120,1220,1270,1350,1250,1350,1410,1350,1390,1230,1080,661,569,571,522,605,696,881,1100,1230,1280,1350,1360,1420,1430,1410,1460,1590,1820,1940,2090,2090,2170,2070,2030,1990,1950,1910,1870,1840,2040,2300,2510,2710,2670,2800,2860,2950,3140,3380,3380,3570,3460,3710,3860,3890,3750,4170,4350,4510,4660,4880,4900,5230,5310,5280,5670,5780,5740,5960,6040,6140,6060,6020,6030,6120,6270,6290,6290,6490,6520,6600,6670,6460,5420,3840,3800,2630,2610,2460,2510,2340,2270,2320,2470,2670,2850,3070,3310,3480,3590,3880,3650,3910,4180,4150,4540,4760,4750,4940,5130,5330,5540,5760,5990,6210,6420,6630,6820,7000,7170,7340,7500,7670,7840,8020,8200,8380,8560,8750,8950,9150,9350,9560 -Monaco,1950,1950,1950,1960,1960,1960,1960,1970,1970,1970,1970,1980,1980,1980,1990,1990,1990,1990,2000,2000,2000,2020,2050,2070,2100,2120,2150,2170,2200,2220,2250,2270,2300,2330,2350,2380,2410,2440,2470,2500,2520,2550,2580,2610,2640,2680,2710,2740,2770,2800,2840,2870,2900,2940,2970,3010,3040,3080,3110,3150,3180,3220,3260,3300,3340,3380,3410,3450,3490,3540,3580,3620,3660,3700,3750,3790,3840,3880,3930,3970,4020,4060,4110,4160,4210,4260,4310,4360,4410,4460,4510,4560,4620,4670,4730,4780,4840,4890,4950,5010,5070,5130,5190,5250,5310,5370,5430,5500,5560,5630,5690,5760,5830,5890,5990,6090,6200,6300,6410,6520,6630,6740,6860,6980,7100,7230,7350,7480,7610,7740,7880,8010,8150,8290,8440,8580,8730,8880,9040,9200,9360,9520,9680,9850,10000,10200,10400,10500,10700,10900,11100,11600,12100,12600,13200,13800,14400,15000,15700,16400,17100,17900,18700,19500,20400,21300,22200,23200,24200,25300,26400,27600,28600,30300,31400,30900,32100,33100,34300,35400,35800,36000,36700,36900,37300,37700,38500,39200,40800,42300,43200,43400,43700,43100,43800,44500,44800,45700,47100,48500,50200,50900,51100,51300,52200,52800,54600,60900,59900,53700,54100,58100,58100,57900,58300,58800,59500,60100,60700,61400,62000,62700,63400,64300,65400,66500,67800,69200,70700,72200,73800,75400,77100,78800,80600,82400,84200,86000,87900,89900,91900 -Mongolia,592,592,592,592,592,593,593,593,593,593,593,593,593,593,593,593,593,594,594,594,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,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,640,641,642,643,644,645,646,647,648,649,650,652,653,654,655,656,657,658,659,660,661,663,664,665,666,667,668,669,670,672,673,674,675,676,677,678,680,681,682,683,684,685,686,688,689,690,691,692,693,695,696,697,698,699,700,702,703,708,713,718,723,728,733,738,743,748,753,759,764,769,774,779,784,789,795,800,805,810,816,821,826,831,837,842,847,853,858,886,919,950,984,1020,1050,1090,1130,1170,1210,1250,1290,1340,1380,1430,1480,1530,1580,1640,1700,1730,1750,1850,1890,1950,1980,2120,2170,2210,2500,2220,2590,2910,3260,3190,3360,3570,3690,3610,5120,4610,4130,3970,4020,4240,4300,4440,4550,4640,4660,4750,4920,5220,5710,6050,6480,7060,7580,7370,7710,8880,9790,10700,11300,11400,11300,11400,12100,12600,12800,13100,13400,13700,14000,14300,14600,15000,15300,15600,16000,16300,16700,17100,17500,17800,18200,18600,19000,19500,19900 -Montenegro,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1070,1080,1090,1100,1110,1110,1120,1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1360,1360,1370,1370,1380,1380,1390,1390,1400,1400,1410,1410,1420,1430,1430,1440,1440,1450,1450,1460,1470,1490,1520,1540,1570,1600,1630,1650,1680,1710,1740,1770,1800,1830,1870,1900,1930,1960,2000,2030,2070,2080,2100,2110,2130,2140,2160,2170,2190,2200,2220,2250,2290,2330,2360,2400,2440,2480,2520,2560,2600,2600,2600,2600,2590,2580,2580,2570,2560,2550,2540,2570,2620,2720,2880,2990,3160,3070,3310,3440,3330,3190,2860,2920,2990,2920,3260,3270,3500,3650,3620,3600,3580,3550,3530,3510,3490,3460,4090,4440,4110,4230,3860,4380,4580,4820,4680,5420,5610,6260,6610,6850,6930,7590,8260,8420,8800,8900,9030,9980,10400,11500,11800,12200,13600,13500,13900,14800,15500,16400,17100,17400,17400,17500,17900,18000,18700,18400,18100,17800,16500,14600,11100,6940,6940,7810,9780,10200,10700,9760,10100,10100,10300,10500,11000,11400,12400,13700,14600,13700,14000,14500,14100,14600,14800,15300,15700,16200,16600,17000,17500,18000,18500,19000,19500,19900,20400,20900,21400,21800,22300,22800,23300,23800,24400,24900,25500,26000,26600,27200,27800 -Morocco,714,714,715,715,715,715,715,715,715,715,715,716,716,716,716,716,716,716,716,716,717,718,719,720,722,723,724,725,727,728,729,730,732,733,734,736,737,738,739,741,742,743,745,746,747,748,750,751,752,754,755,756,758,759,760,762,763,764,766,767,768,770,771,772,774,775,776,778,779,781,782,783,785,786,787,789,790,791,793,794,796,797,798,800,801,803,804,805,807,808,810,811,812,814,815,817,818,820,821,822,824,825,827,828,830,831,833,834,835,837,838,843,848,852,872,893,914,935,957,979,1000,1030,1060,1080,1110,1140,1170,1200,1230,1260,1300,1330,1360,1390,1430,1460,1500,1540,1570,1610,1650,1690,1730,1770,1810,1860,1900,1940,1990,2030,2080,2090,2100,2120,2140,2150,2110,2070,2030,1990,1950,1970,2000,2020,2040,2070,2130,2200,2270,2340,2420,2490,2500,2540,2620,2740,2990,3070,3100,3180,3410,3260,3510,3400,3450,3580,3760,3590,3860,3860,3910,4120,3960,3860,4200,3920,4340,4210,4460,4450,4480,4750,4840,5070,5250,5360,5700,5830,6110,6290,6440,6690,6790,7000,7070,7290,7270,7480,7720,7980,8240,8500,8760,9020,9260,9500,9740,9970,10200,10400,10700,10900,11100,11400,11600,11900,12200,12400,12700,13000,13300 -Mozambique,390,391,391,391,391,392,392,392,392,392,393,393,393,393,394,394,394,394,395,395,395,395,395,396,396,396,396,397,397,397,397,398,398,398,398,398,399,399,399,399,400,400,400,400,401,401,401,401,401,402,402,402,402,403,403,403,403,404,404,404,404,405,405,405,405,405,406,406,406,406,407,407,407,407,408,408,408,408,409,409,409,409,410,410,410,410,410,411,411,411,411,412,412,412,412,413,413,413,413,414,414,414,414,415,415,415,415,415,416,416,416,416,417,417,417,417,418,418,418,418,419,418,418,418,417,417,417,416,416,416,415,415,415,414,414,414,413,413,413,412,412,412,411,411,411,410,410,410,409,409,408,416,423,430,432,450,444,445,456,471,472,475,496,468,477,477,481,501,544,594,611,635,637,653,586,488,449,438,427,420,421,419,400,365,351,315,317,335,364,379,379,387,354,370,378,373,459,495,540,568,562,615,650,672,703,742,792,826,858,886,918,955,994,1040,1080,1120,1130,1160,1200,1240,1280,1310,1350,1380,1420,1450,1490,1520,1560,1590,1630,1660,1700,1740,1770,1810,1850,1890,1940,1980,2020 -Myanmar,840,840,840,840,840,840,840,840,841,841,841,841,841,841,841,841,842,842,842,842,842,842,842,843,843,843,843,843,843,843,843,844,844,844,844,844,844,844,844,845,845,845,845,845,845,845,845,846,846,846,846,846,846,846,846,847,847,847,847,847,847,847,847,848,848,848,848,848,848,848,848,858,867,876,885,895,905,914,924,934,944,954,965,975,985,996,1010,1020,1030,1040,1050,1060,1070,1090,1100,1110,1120,1130,1150,1160,1170,1180,1130,1090,1040,1000,959,972,985,999,1010,1030,1100,1180,1260,1340,1430,1400,1370,1330,1300,1260,1290,1330,1360,1390,1430,1450,1480,1500,1530,1560,1530,1500,1470,1450,1420,1330,1240,1170,1110,1050,877,736,618,616,617,617,618,619,619,694,694,696,638,704,733,758,719,810,815,814,861,862,853,850,791,790,817,826,837,836,814,785,799,806,828,849,878,890,932,951,969,975,986,979,935,867,743,746,743,728,788,826,877,927,974,1020,1060,1160,1310,1440,1590,1800,2020,2280,2550,2840,3110,3420,3720,3900,4150,4460,4770,5070,5350,5720,6100,6520,6960,7420,7860,8280,8660,8990,9290,9550,9790,10000,10300,10500,10700,10900,11200,11400,11700,12000,12200,12500,12800 -Namibia,540,540,540,540,540,541,541,541,541,541,541,541,541,541,541,541,541,542,542,542,542,550,558,567,575,584,593,601,610,620,629,638,648,658,668,678,688,698,709,719,730,741,752,764,775,787,799,811,823,835,848,860,873,887,900,913,927,941,955,970,984,999,1010,1030,1050,1060,1080,1090,1110,1130,1140,1160,1180,1200,1210,1230,1250,1270,1290,1310,1330,1350,1370,1390,1410,1430,1450,1470,1500,1520,1540,1560,1590,1610,1640,1660,1680,1710,1740,1760,1790,1810,1840,1870,1900,1930,1960,1980,2010,2050,2080,2110,2140,2170,2200,2240,2270,2300,2340,2370,2410,2450,2490,2530,2560,2610,2650,2690,2730,2770,2820,2860,2910,2950,3000,3040,3090,3140,3190,3240,3290,3340,3390,3450,3500,3550,3610,3670,3720,3780,3840,3870,3900,3960,4090,4120,4180,4230,4250,4390,4680,4620,5140,5520,6260,6510,6590,6170,6060,6110,5980,5970,6110,6140,6180,6020,6130,6340,6620,6710,6830,6940,6870,6490,6220,6070,6080,6070,5960,6120,5720,5970,6200,5920,5850,5900,5900,5970,5990,6030,6110,6070,6270,6450,7160,7260,7680,8100,8210,8110,8460,8720,8970,9260,9630,9910,9810,10200,10500,10900,11200,11600,11900,12300,12600,12900,13300,13600,13900,14200,14500,14800,15200,15500,15800,16200,16600,16900,17300,17700,18100 -Nauru,554,554,554,554,554,554,554,554,555,555,555,555,555,555,555,555,555,555,555,555,556,558,561,564,566,569,572,575,577,580,583,586,589,591,594,597,600,603,606,609,612,615,618,621,624,627,630,633,636,639,642,645,648,651,654,658,661,664,667,670,674,677,680,683,687,690,693,697,700,703,707,710,714,717,721,724,728,731,735,738,742,745,749,752,756,760,763,767,771,775,778,782,786,790,793,797,801,805,809,813,817,821,825,829,833,837,841,845,849,853,857,861,865,869,908,949,991,1040,1080,1130,1180,1230,1280,1340,1390,1450,1510,1580,1640,1710,1780,1860,1930,2020,2100,2190,2280,2380,2480,2580,2690,2800,2920,3040,3170,3300,3440,3580,3730,3880,4050,4580,5190,5880,6670,7550,8560,9690,11000,12400,14100,16000,18100,20500,23200,26300,29800,33700,38200,43300,49000,49300,49700,50100,50600,51200,49000,47000,45000,43100,41300,39400,37600,35800,34000,32300,30600,29000,27400,26000,24600,19500,16000,13200,12500,11400,9970,8820,7990,7480,6960,6490,5830,5830,5570,4900,3930,3960,5330,5800,6590,7340,7910,10100,12600,12300,13000,12800,12600,12700,12700,12700,12800,12900,13000,13200,13400,13700,14000,14300,14600,14900,15200,15500,15900,16200,16600,17000,17300,17700,18100 -Nepal,654,654,654,654,654,654,654,654,655,655,655,655,655,655,655,655,655,655,656,656,656,656,656,656,656,656,656,656,656,657,657,657,657,657,657,657,657,657,657,658,658,658,658,658,658,658,658,658,658,658,659,659,659,659,659,659,659,659,659,659,660,660,660,660,660,660,660,660,660,660,660,665,670,675,680,685,690,695,700,705,710,715,721,726,731,736,742,747,753,758,764,769,775,780,786,792,798,803,809,815,821,827,833,839,845,851,858,864,870,877,883,890,896,903,901,900,898,896,895,893,891,888,885,882,879,875,872,869,866,863,860,857,853,850,847,844,841,838,835,831,828,825,822,819,816,813,810,806,803,800,797,810,828,867,875,881,910,899,937,951,958,965,971,977,981,986,1030,998,984,1010,1010,978,985,957,993,983,1000,1000,1020,1020,965,939,1030,970,1040,1070,1090,1100,1150,1150,1200,1240,1260,1270,1340,1350,1390,1430,1440,1480,1540,1590,1560,1600,1650,1680,1720,1760,1850,1920,1990,2030,2100,2160,2270,2300,2290,2360,2420,2490,2570,2650,2730,2800,2880,2950,3030,3100,3170,3240,3310,3380,3460,3540,3610,3690,3780,3860,3940,4030,4120 -Netherlands,4230,4160,4390,4300,4500,4240,4270,3910,3480,3430,3930,3960,3450,3100,2980,3940,3750,3780,3830,3640,3900,3810,3840,4030,3990,3880,3940,4160,4240,4240,3870,4150,4330,4230,4260,4240,4370,4470,4510,4500,4530,4570,4450,4360,4400,4360,4360,4380,4440,4570,4650,4700,4640,4530,4800,4660,4840,4750,4610,4430,4640,4500,4670,4750,4940,4940,5110,4930,4950,5110,5260,5220,5270,5370,5160,5450,5450,5510,5480,5210,5500,5520,5590,5930,5960,6010,6020,6090,6090,6220,5890,5830,5930,5790,6050,6000,6160,6220,6220,6220,6060,6260,6420,6310,6290,6510,6540,6320,6350,6600,6790,6920,7000,7230,7010,6620,6500,5740,5300,5870,6650,7730,8060,8060,8450,8550,8960,9200,9410,9410,9120,8620,8360,8240,8020,8110,8450,8810,8430,9010,7810,7300,6590,6370,4210,4260,7110,8050,8760,9230,9460,9540,9580,10300,10900,11500,11900,12100,11800,12200,13100,13300,13700,14000,15100,15700,16000,16700,17700,18700,19600,20300,20800,21800,22600,22600,23600,24200,24800,25200,25600,25400,25100,25600,26400,27200,28000,28600,29500,30800,32100,32600,32900,33100,33900,34800,35800,37200,38600,40300,41700,42300,42100,42000,42700,43500,45000,46500,47100,45100,45500,46100,45400,45200,45700,46400,47100,47900,48500,49200,50000,50800,51600,52500,53500,54600,55700,56900,58100,59400,60700,62000,63400,64800,66300,67700,69200,70800,72300,73900,75600 -New Zealand,658,658,658,658,659,659,659,659,659,659,659,659,659,659,660,660,660,660,660,660,660,660,660,660,660,661,661,661,661,661,661,661,661,661,661,662,662,662,662,662,662,736,817,908,1010,1120,1250,1380,1540,1710,1900,2030,2170,2310,2470,2640,2820,3010,3220,3440,3670,3800,3930,4070,4210,4350,4500,4660,4820,4980,5150,5250,5860,6370,6390,6140,6030,6630,7110,5940,6240,6270,6070,5820,6170,5980,6000,6010,5930,6170,6260,6220,6340,6320,5970,6080,6660,6590,6650,6750,7180,7050,7410,7900,7640,8110,8620,8930,8080,7980,8890,9190,8720,8620,8680,8660,8570,8390,8220,8850,9450,8600,8120,8640,8640,8890,8250,7880,8660,8870,8360,7550,7310,7730,8060,8390,9880,10300,11000,11000,10700,10400,11500,11800,11700,11800,12200,13400,11800,12800,14400,13100,13300,13400,14900,14900,15400,15500,15700,16500,16200,16700,16700,17400,17900,18700,19500,18400,18200,19800,19300,20000,20400,21400,22200,21600,21900,20700,20800,21200,21400,22300,22600,22900,23800,23900,24300,24400,24200,24300,24200,22800,22800,24000,24900,25700,26200,26400,26300,27600,28300,29100,29900,30700,31400,32100,32600,33200,32500,32100,32300,32700,33300,33800,34500,34600,35300,35900,36400,36800,37400,38000,38600,39200,40000,40700,41600,42500,43400,44300,45300,46300,47300,48400,49400,50500,51700,52800,54000,55200,56400 -Nicaragua,973,973,973,974,974,974,974,974,974,974,975,975,975,975,975,975,975,976,976,976,976,986,997,1010,1020,1030,1040,1050,1060,1070,1090,1100,1110,1120,1130,1140,1160,1170,1180,1190,1210,1220,1230,1250,1260,1270,1290,1300,1310,1330,1340,1360,1370,1390,1400,1420,1430,1450,1460,1480,1490,1510,1520,1540,1560,1570,1590,1610,1630,1640,1660,1680,1700,1710,1730,1750,1770,1790,1810,1830,1850,1870,1890,1910,1930,1950,1970,1990,2010,2030,2050,2070,2100,2120,2140,2160,2190,2210,2230,2260,2280,2310,2330,2360,2380,2410,2430,2460,2480,2510,2540,2560,2590,2620,2650,2680,2700,2730,2760,2790,2820,2930,2640,2820,2940,3240,2780,2790,3530,3880,3130,2890,2600,3220,2880,2840,2200,2320,2370,2830,3010,3250,3060,3280,3170,3110,3270,3180,3380,3220,3520,3640,4130,4100,4340,4490,4350,4560,4430,4360,4280,4450,4770,5120,5540,5870,5860,6070,5950,6140,6000,6090,6100,6220,6880,6640,6760,7100,6400,4550,4550,4630,4470,4560,4360,4090,3910,3780,3270,3140,3000,2930,2880,2810,2840,2950,3080,3140,3200,3370,3460,3510,3490,3530,3670,3770,3870,4010,4090,3910,4030,4230,4450,4620,4790,4960,5140,5300,5470,5650,5830,6020,6200,6380,6560,6730,6890,7050,7210,7380,7540,7710,7880,8050,8230,8410,8600,8790,8980,9180,9390 -Niger,446,446,446,446,446,446,446,447,447,447,447,447,447,447,447,447,447,447,447,447,447,450,452,454,456,458,461,463,465,467,470,472,474,476,479,481,483,486,488,490,493,495,497,500,502,505,507,510,512,515,517,520,522,525,527,530,532,535,537,540,543,545,548,551,553,556,559,561,564,567,569,572,575,578,581,583,586,589,592,595,598,601,603,606,609,612,615,618,621,624,627,630,633,636,639,643,646,649,652,655,658,661,665,668,671,674,678,681,684,687,691,694,697,701,706,710,715,720,725,730,735,741,748,754,761,768,774,781,788,795,802,809,816,823,830,837,844,852,859,866,874,881,889,897,904,912,920,928,936,944,952,973,994,1020,1040,1060,1080,1100,1120,1140,1200,1220,1330,1430,1410,1480,1440,1420,1400,1330,1340,1390,1290,1050,1120,1060,1050,1110,1230,1280,1310,1300,1250,1200,974,967,987,928,956,934,894,888,803,788,792,784,783,776,826,792,753,778,773,785,757,763,778,773,816,780,814,802,863,874,900,897,907,928,949,992,1020,1050,1080,1100,1130,1160,1190,1210,1240,1270,1300,1330,1350,1380,1420,1450,1480,1510,1540,1580,1610 -Nigeria,851,853,854,856,857,859,860,862,864,865,867,868,870,871,873,874,876,878,879,881,882,886,890,894,898,903,907,911,915,919,923,928,932,936,940,945,949,953,958,962,966,971,975,980,984,989,993,998,1000,1010,1010,1020,1020,1030,1030,1030,1040,1040,1050,1050,1060,1060,1070,1070,1080,1080,1090,1090,1100,1100,1110,1110,1120,1120,1130,1130,1140,1140,1150,1150,1160,1160,1170,1180,1180,1190,1190,1200,1200,1210,1210,1220,1220,1230,1240,1240,1250,1250,1260,1260,1270,1280,1280,1290,1290,1300,1300,1310,1320,1320,1330,1330,1340,1350,1370,1400,1420,1450,1480,1500,1530,1560,1590,1620,1650,1690,1720,1750,1790,1820,1860,1900,1930,1970,2010,2050,2090,2130,2170,2210,2260,2300,2350,2390,2440,2490,2540,2590,2640,2690,2740,2850,2980,2990,3150,3110,2980,2980,3100,3160,3820,3560,3590,3800,3810,3530,3260,2670,2620,3000,3490,3900,3940,4050,4390,4060,4300,4430,4050,4210,4260,3610,3490,3230,3090,3270,2910,2540,2660,2760,3040,2950,2890,2870,2830,2750,2820,2820,2830,2770,2850,2900,2940,3160,4120,4150,4370,4550,4710,4910,5150,5260,5340,5480,5670,5670,5440,5480,5570,5680,5800,5930,6060,6200,6330,6470,6620,6760,6910,7070,7220,7380,7550,7710,7880,8060,8240,8420,8610,8800,8990 -North Korea,578,578,577,577,576,576,575,574,574,573,573,572,571,571,570,570,569,569,568,567,567,566,566,565,565,564,563,563,562,562,561,561,560,559,559,558,558,557,557,556,555,555,554,554,553,553,552,552,551,550,550,549,549,548,548,547,547,546,545,545,544,544,543,543,542,542,541,540,540,539,539,538,538,537,537,536,536,535,534,534,533,533,532,532,531,531,530,530,529,529,528,527,527,526,526,525,525,524,524,523,523,525,527,529,531,533,535,537,539,542,544,551,574,595,621,726,710,784,843,897,778,843,777,835,843,844,877,917,924,875,829,833,834,1010,1010,1100,1200,1320,1390,1260,1420,1440,1430,1450,1390,650,662,703,761,822,867,729,784,1020,1080,1150,1210,1320,1500,1450,1540,1620,1590,1580,1590,1630,1620,1650,1670,1640,1700,1700,1730,1750,1780,1840,1850,1880,1810,2020,1890,2070,2180,2140,2210,2120,2110,2140,2200,2260,2080,1970,1750,1620,1610,1440,1390,1230,1270,1380,1290,1370,1380,1410,1410,1460,1460,1390,1430,1410,1390,1400,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1390,1400,1420,1440,1460,1490,1520,1550,1590,1620,1660,1690,1730,1770,1810,1850,1890,1930,1970 -Norway,1280,1280,1280,1280,1290,1290,1290,1290,1290,1300,1300,1300,1300,1300,1310,1310,1310,1310,1320,1320,1320,1330,1340,1340,1350,1360,1370,1380,1390,1390,1400,1290,1310,1460,1530,1500,1460,1460,1470,1470,1600,1640,1650,1610,1640,1720,1750,1680,1590,1630,1670,1780,1760,1850,1900,2000,1960,1850,1920,1960,2030,1980,2150,2160,2240,2340,2360,2410,2400,2490,2480,2520,2670,2720,2800,2860,2910,2900,2760,2760,2830,2850,2860,2850,2900,2910,2910,2930,3060,3180,3250,3260,3310,3380,3380,3390,3440,3580,3560,3630,3640,3700,3730,3690,3690,3710,3850,4010,4120,4180,4330,4470,4650,4860,4920,5090,5240,4710,4480,5200,5480,4890,5370,5490,5460,5770,5830,6030,6280,6860,7360,6750,7050,7200,7420,7770,8260,8600,8750,9130,8320,8490,8120,7910,7450,8270,9030,10200,10800,11000,11400,11900,12300,12600,13200,13400,14000,14300,14200,14700,15400,16300,16700,17200,18000,18800,19400,20500,20900,21700,22000,23100,24100,25100,26000,27300,28900,30100,31100,32400,34000,34300,34400,35600,37700,39600,41000,41800,41700,42000,42800,43900,45300,46300,48300,50100,52300,54800,55900,56600,58100,59000,59500,59700,61700,62900,63900,65100,64500,62700,62300,62100,62900,62800,63300,63700,63800,64200,64800,65500,65900,66400,67000,67700,68700,69800,71100,72500,74000,75600,77300,79000,80700,82500,84400,86200,88100,90100,92100,94100,96200 -Oman,915,916,916,916,916,916,916,916,917,917,917,917,917,917,917,918,918,918,918,918,918,922,926,930,934,937,941,945,949,953,957,961,965,969,973,977,981,985,989,994,998,1000,1010,1010,1010,1020,1020,1030,1030,1040,1040,1040,1050,1050,1060,1060,1070,1070,1080,1080,1080,1090,1090,1100,1100,1110,1110,1120,1120,1130,1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1350,1360,1370,1380,1390,1400,1420,1430,1440,1450,1460,1470,1490,1500,1510,1520,1530,1550,1560,1570,1580,1600,1620,1650,1670,1690,1720,1740,1770,1800,1830,1870,1900,1930,1970,2010,2040,2080,2120,2150,2190,2230,2270,2310,2350,2390,2440,2480,2520,2570,2620,2660,2710,2760,2810,2860,2910,2960,3010,3150,3290,3440,3600,3760,3930,4100,4290,4470,4650,4610,5430,5540,5420,5320,5470,8880,15800,19300,19500,19100,20300,16900,18300,22200,23900,22900,21400,21200,21400,23900,25400,28400,31800,34900,34500,36000,35900,36200,35000,35600,36800,37400,37400,38300,38900,41000,42100,42000,44000,45400,44100,42000,41600,41500,42500,43000,44900,45600,45300,42100,43000,41900,40300,40100,39100,39400,38900,38400,38000,37600,37400,37400,37600,38000,38600,39200,40000,40900,41700,42700,43600,44600,45600,46600,47600,48700,49700,50800,52000 -Pakistan,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1040,1040,1040,1040,1050,1050,1050,1050,1060,1060,1060,1090,1060,1100,1110,1080,1130,1020,1100,1130,1150,1120,1030,1220,1220,1120,1160,1180,1270,1280,1280,1240,1270,1190,1200,1360,1350,1340,1330,1300,1370,1340,1380,1350,1180,1340,1230,1320,1360,1310,1360,1360,1390,1380,1380,1430,1420,1400,1390,1380,1370,1340,1380,1340,1320,1340,1360,1370,1350,1390,1360,1320,1240,1230,1230,1250,1190,1130,1110,1190,1190,1180,1190,1210,1200,1190,1210,1250,1310,1360,1420,1450,1530,1550,1610,1670,1800,1760,1730,1810,1830,1860,1910,1950,2060,2070,2210,2310,2400,2490,2530,2680,2770,2850,2940,3000,3060,3120,3270,3240,3280,3360,3430,3380,3390,3430,3500,3490,3520,3620,3810,4010,4180,4290,4270,4300,4280,4310,4370,4460,4580,4700,4870,5020,5220,5410,5600,5790,5980,6160,6340,6510,6670,6830,6990,7140,7300,7470,7630,7800,7970,8150,8330,8520,8700,8900,9090 -Palau,839,839,839,839,839,839,840,840,840,840,840,840,840,840,841,841,841,841,841,841,841,844,847,850,853,856,859,862,865,867,870,873,876,879,882,885,888,891,894,897,900,903,907,910,913,916,919,922,925,928,931,935,938,941,944,947,951,954,957,960,964,967,970,973,977,980,983,987,990,993,997,1000,1000,1010,1010,1010,1020,1020,1020,1030,1030,1040,1040,1040,1050,1050,1050,1060,1060,1060,1070,1070,1070,1080,1080,1090,1090,1090,1100,1100,1100,1110,1110,1120,1120,1120,1130,1130,1130,1140,1140,1150,1150,1150,1220,1290,1360,1440,1520,1600,1690,1790,1900,2010,2120,2240,2370,2510,2660,2810,2970,3150,3330,3520,3720,3940,4170,4410,4660,4930,5220,5520,5830,6170,6530,6910,7300,7730,8170,8640,9140,9670,10200,10800,11400,12100,12800,13500,14300,15100,16000,16900,17900,19000,20000,21200,22400,23700,25100,26500,28000,27100,29800,35700,51200,53500,39100,37300,37700,34100,18300,16200,16400,15900,15900,14100,13800,13400,15900,16300,17100,16100,14600,12500,13000,14100,15200,15100,15100,14000,13600,14000,14800,13800,14700,14800,14300,14200,13400,12100,12400,13000,13300,12800,13300,14400,14300,14800,15300,15600,16100,16600,17100,17600,18000,18500,19000,19400,19900,20300,20700,21200,21700,22200,22700,23200,23700,24200,24700,25300,25800 -Palestine,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1240,1240,1240,1250,1250,1250,1260,1260,1260,1270,1270,1270,1280,1280,1280,1290,1290,1290,1300,1300,1300,1310,1310,1310,1320,1320,1320,1330,1330,1330,1340,1340,1350,1350,1350,1360,1360,1360,1370,1370,1370,1360,1360,1290,1220,1160,1100,1130,1160,1190,1220,1240,1170,1280,1240,1280,1340,1110,1210,1220,1210,1150,1130,1460,1750,1560,1740,1450,1370,1380,1480,1650,1670,1690,1730,1890,1970,1500,1150,1180,1220,1260,1240,1230,1210,1200,1180,1170,1150,1140,1120,1110,1100,1080,1070,1050,1040,1030,1120,1190,1300,1460,1320,1560,1500,1690,1610,1750,1710,1910,1730,1780,1630,1630,1540,1740,1610,1520,1460,1650,1470,1740,1830,1980,2030,1960,2150,2400,2530,2260,2000,1700,1890,2030,2200,2060,2140,2200,2330,2440,2670,2750,2730,2640,2650,2690,2700,2700,2710,2710,2720,2740,2760,2800,2840,2890,2940,3010,3070,3140,3210,3280,3350,3420,3500,3580,3660,3740,3820,3910 -Panama,847,847,847,847,848,848,848,848,848,848,848,848,849,849,849,849,849,849,849,850,850,859,869,879,889,899,909,919,930,940,951,962,973,984,995,1010,1020,1030,1040,1050,1060,1080,1090,1100,1110,1130,1140,1150,1170,1180,1190,1210,1220,1230,1250,1260,1280,1290,1300,1320,1330,1350,1360,1380,1400,1410,1430,1440,1460,1480,1490,1510,1530,1540,1560,1580,1600,1620,1630,1650,1670,1690,1710,1730,1750,1770,1790,1810,1830,1850,1870,1890,1910,1930,1960,1980,2000,2020,2050,2070,2090,2120,2140,2170,2190,2210,2240,2260,2290,2320,2340,2370,2400,2420,2450,2480,2510,2530,2560,2590,2620,2650,2690,2720,2750,2790,2820,2860,2890,2930,2960,3000,3030,3070,3110,3150,3190,3220,3260,3300,3340,3390,3430,3470,3510,3550,3630,3710,3410,3430,3240,3130,3220,3340,3380,3490,3580,3860,3820,3960,4080,4390,4630,4930,5000,5290,5520,5810,6060,6360,6560,6910,7080,7330,7300,7250,7200,7100,7660,7830,8830,9020,9330,9220,9000,9240,9350,9400,7790,7610,7820,8380,8880,9170,9240,9210,9390,9800,10300,10500,10600,10400,10500,10700,11300,11900,12700,13900,14900,14800,15400,16900,18200,19100,19900,20700,21300,22300,23400,24500,25600,26700,27800,28900,29800,30800,31600,32400,33200,33900,34700,35500,36200,37100,37900,38700,39600,40400,41300,42300,43200 -Papua New Guinea,546,546,546,546,547,547,547,547,547,547,547,547,547,547,547,547,548,548,548,548,548,550,552,553,555,557,559,561,563,565,567,569,571,573,575,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,607,609,611,613,615,617,619,621,623,625,627,630,632,634,636,638,640,643,645,647,649,651,654,656,658,660,662,665,667,669,671,674,676,678,681,683,685,688,690,692,695,697,699,702,704,707,709,711,714,716,719,721,723,726,728,731,733,736,738,741,743,746,748,751,756,760,765,770,775,779,784,789,794,799,804,809,814,819,825,830,835,840,845,851,856,861,867,872,878,883,888,894,900,905,911,916,922,928,933,939,945,959,973,987,1000,1020,1030,1050,1060,1080,1090,1140,1190,1220,1290,1400,1450,1480,1510,1600,1730,1800,1850,1930,1930,1870,1770,1750,1860,1850,1770,1720,1680,1690,1640,1660,1700,1700,1710,1640,1550,1660,1840,2120,2190,2060,2160,2030,1900,1890,1790,1740,1700,1690,1700,1760,1760,1840,1910,1980,2090,2260,2390,2470,2620,2750,2760,2780,2800,2830,2850,2870,2900,2930,2980,3030,3080,3150,3210,3280,3350,3430,3500,3580,3660,3740,3820,3910,4000,4090,4180 -Paraguay,835,835,835,835,836,836,836,836,836,836,836,836,837,837,837,837,837,837,837,837,838,848,859,870,881,892,903,914,926,937,949,961,973,985,998,1010,1020,1040,1050,1060,1080,1090,1100,1120,1130,1150,1160,1170,1190,1200,1220,1230,1250,1270,1280,1300,1310,1330,1350,1360,1380,1400,1420,1430,1450,1470,1490,1510,1530,1550,1570,1590,1610,1630,1650,1670,1690,1710,1730,1750,1770,1800,1820,1840,1870,1890,1910,1940,1960,1990,2010,2040,2060,2090,2110,2140,2170,2190,2220,2250,2280,2310,2340,2370,2400,2430,2460,2490,2520,2550,2580,2610,2650,2680,2710,2750,2780,2820,2850,2890,2930,2960,3000,3030,3070,3100,3140,3170,3210,3250,3290,3330,3360,3400,3440,3480,3520,3560,3610,3650,3370,3350,3460,3450,3440,3240,3480,2950,2910,3320,3020,3000,2870,2870,2840,2890,2940,2990,3080,2990,2940,3000,3130,3130,3180,3270,3220,3330,3360,3400,3510,3560,3640,3810,4000,4140,4310,4660,5060,5490,6130,6480,6080,5730,5740,5790,5610,5680,5870,6030,6040,6090,6040,6190,6360,6640,6590,6720,6580,6360,6090,5920,5810,5950,6090,6120,6320,6570,6890,6530,7290,7510,7310,8230,8500,8640,8880,9080,9280,9490,9700,9910,10100,10300,10600,10800,11000,11300,11500,11800,12000,12300,12600,12900,13100,13400,13700,14000,14400,14700,15000 -Peru,1200,1200,1200,1200,1200,1200,1200,1200,1210,1210,1210,1210,1210,1210,1210,1210,1210,1210,1210,1210,1210,1210,1210,1220,1220,1220,1230,1230,1230,1240,1240,1240,1250,1250,1250,1260,1260,1260,1270,1270,1270,1280,1280,1280,1290,1290,1290,1300,1300,1300,1310,1310,1310,1320,1320,1320,1330,1330,1330,1340,1340,1340,1350,1350,1360,1360,1360,1370,1370,1370,1380,1380,1380,1390,1390,1400,1400,1400,1410,1410,1410,1420,1420,1420,1430,1430,1440,1440,1440,1450,1450,1460,1460,1460,1470,1470,1470,1590,1670,1750,1820,1920,2000,2110,2160,2290,2440,2560,2580,2590,2600,2610,2650,2690,2620,2800,3030,3090,3050,3090,3060,3110,3290,3430,3660,3660,3930,3900,4050,4360,3760,3370,3160,3430,3790,4050,4140,4090,4050,3970,3950,3860,3680,3640,3860,3910,3960,3970,4010,4210,4430,4630,4710,4860,4830,5030,5090,5170,5020,4890,5380,5670,5900,5970,6180,6390,6710,6760,6490,6450,6750,6860,6890,7050,7220,7590,7490,7290,7100,7340,7480,7620,7480,6340,6490,6470,6960,7400,6650,5720,5310,5320,5190,5350,5900,6230,6300,6600,6480,6480,6560,6520,6780,6980,7230,7600,8070,8650,9320,9310,9960,10400,10900,11400,11500,11800,12100,12400,12700,13100,13400,13700,14100,14400,14800,15100,15500,15800,16200,16500,16900,17300,17700,18000,18400,18900,19300,19700,20100,20600,21000 -Philippines,962,962,962,962,962,962,962,963,963,963,963,963,963,963,964,964,964,964,964,964,964,966,967,969,970,972,973,974,976,977,979,980,982,983,985,986,987,989,990,992,993,995,996,998,999,1000,1000,1000,1010,1010,1010,1010,1010,1010,1010,1020,1020,1020,1020,1020,1020,1020,1030,1030,1030,1030,1030,1030,1040,1040,1040,1040,1040,1050,1050,1050,1050,1060,1060,1060,1060,1070,1070,1070,1080,1080,1080,1080,1090,1090,1090,1090,1100,1100,1100,1110,1110,1110,1110,1120,1120,1120,1120,1340,1140,1190,1210,1250,1300,1300,1460,1530,1530,1660,1600,1470,1680,1930,2160,2040,2160,2080,2290,2110,2260,2240,2310,2320,2360,2400,2350,2320,2370,2340,2310,2100,2340,2450,2470,2590,2600,2260,1960,1710,1480,1290,1120,1520,1730,1780,1860,2010,2070,2190,2290,2380,2470,2530,2540,2640,2600,2660,2710,2810,2830,2890,2930,2990,3050,3100,3130,3210,3300,3490,3520,3630,3840,3950,4040,4160,4250,4300,4350,4330,3930,3560,3600,3670,3830,3980,4010,3890,3810,3800,3870,3960,4100,4210,4100,4130,4220,4260,4320,4440,4650,4780,4940,5180,5310,5290,5600,5710,5990,6310,6590,6880,7240,7580,7960,8350,8750,9160,9560,9950,10300,10600,10900,11200,11500,11700,12000,12300,12500,12800,13100,13400,13700,14000,14300,14600,14900 -Poland,1210,1220,1220,1230,1230,1240,1240,1250,1250,1250,1260,1260,1270,1270,1280,1280,1290,1290,1300,1300,1310,1310,1320,1320,1330,1330,1340,1340,1350,1350,1360,1360,1370,1380,1380,1390,1390,1400,1400,1410,1410,1420,1420,1430,1430,1440,1450,1450,1460,1460,1470,1470,1480,1480,1490,1500,1500,1510,1510,1520,1520,1530,1540,1540,1550,1550,1560,1570,1570,1580,1580,1610,1630,1660,1680,1710,1740,1760,1790,1820,1850,1880,1910,1940,1970,2000,2030,2060,2090,2120,2160,2190,2230,2280,2320,2360,2400,2450,2490,2540,2580,2610,2630,2660,2680,2710,2740,2760,2790,2820,2850,2880,2920,2950,3000,3040,3090,3130,3180,3230,3270,3330,3390,3450,3500,3560,3620,3680,3750,3810,3600,3310,3020,2900,2920,2940,3000,3550,4060,4380,3720,3400,3000,2830,1820,1890,3230,3740,4170,4490,4710,4840,4870,5070,5270,5440,5580,5790,5980,6070,6320,6740,6590,6920,7160,7500,7910,8150,8580,8440,8820,9380,9990,10700,11200,11600,11800,11900,12200,11900,11500,10800,10600,11000,11300,11400,11600,11400,11600,11400,10300,9520,9730,10100,10600,11300,12000,12700,13300,13900,14700,14900,15200,15800,16600,17200,18300,19600,20400,21000,21800,22900,23200,23600,24300,25300,26000,26900,27700,28500,29400,30300,31200,32100,33000,33800,34700,35500,36300,37100,37900,38800,39600,40500,41400,42300,43300,44200,45200,46200,47200 -Portugal,1680,1680,1680,1680,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1690,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1820,1790,1750,1720,1690,1680,1670,1660,1650,1640,1630,1630,1630,1640,1640,1690,1730,1740,1780,1800,1720,1760,1820,1780,1770,1720,1790,1780,1770,1750,1790,1830,1860,1910,1940,2030,2060,2070,2010,2090,2030,2010,2040,2000,2070,2080,2190,2250,2310,2410,2350,2340,2360,2370,2280,2280,2320,2260,2240,2280,2300,2330,2320,2330,2270,2280,2240,2130,2170,2270,2390,2640,2720,2590,2670,2620,3040,2720,2970,2900,3010,3030,3200,3290,3080,2810,3240,3230,3230,2980,3230,3150,3330,3490,3330,3560,3820,3780,3800,3850,4000,3990,4240,4420,4570,4740,4910,4940,5160,5460,5770,6160,6480,6880,7390,7700,8290,9020,9230,10100,10900,11800,13100,13100,12100,12600,13300,13600,14400,14900,15100,15400,15300,15000,15500,16100,17100,18400,19300,20200,21100,21300,20900,21000,21900,22500,23400,24400,25200,26000,26300,26400,26000,26400,26600,27000,27600,27600,26700,27200,26800,25800,25700,26000,26500,27000,27500,27900,28300,28800,29300,29800,30400,31000,31600,32200,32900,33700,34400,35200,35900,36700,37500,38400,39200,40100,41000,41900,42800,43800 -Qatar,1100,1100,1110,1110,1110,1120,1120,1130,1130,1140,1140,1140,1150,1150,1160,1160,1170,1170,1170,1180,1180,1190,1190,1200,1200,1210,1210,1210,1220,1220,1230,1230,1240,1240,1250,1250,1260,1260,1270,1270,1270,1280,1280,1290,1290,1300,1300,1310,1310,1320,1320,1330,1330,1340,1340,1350,1350,1360,1360,1370,1370,1380,1380,1390,1390,1400,1400,1410,1420,1420,1430,1450,1470,1490,1510,1530,1560,1580,1600,1620,1650,1670,1700,1720,1750,1770,1800,1820,1850,1880,1900,1930,1960,1990,2020,2050,2080,2110,2140,2170,2200,2230,2270,2300,2330,2370,2400,2440,2470,2510,2540,2580,2620,2660,2530,2410,2290,2180,2070,2190,2300,2420,2550,2530,2510,2230,2190,2160,2130,1920,1730,1560,1410,1270,1140,1130,1120,1110,1110,1100,1090,1080,1070,1060,1050,1060,1070,1080,1090,1320,1600,1940,2450,3080,3880,4880,6150,7740,9750,12300,15500,19500,24500,30800,38800,48900,61600,77500,97600,123000,155000,156000,159000,161000,158000,156000,160000,142000,146000,144000,131000,119000,99100,87200,82700,74400,73000,68700,69100,70600,70800,68300,75300,73800,74300,75100,76700,96600,104000,104000,108000,108000,111000,108000,116000,110000,119000,119000,120000,117000,125000,129000,125000,123000,121000,120000,118000,120000,121000,123000,124000,125000,127000,128000,130000,132000,135000,137000,140000,143000,146000,150000,153000,156000,160000,163000,167000,171000,175000,178000,182000 -Romania,815,815,815,815,816,816,816,816,816,816,816,816,817,817,817,817,817,817,817,817,817,829,840,852,863,875,887,900,912,925,937,950,963,977,990,1000,1020,1030,1050,1060,1080,1090,1100,1120,1140,1150,1170,1180,1200,1220,1230,1250,1270,1280,1300,1320,1340,1360,1370,1390,1410,1430,1450,1470,1490,1510,1530,1550,1580,1600,1620,1640,1670,1690,1720,1740,1770,1800,1820,1850,1880,1900,1930,1960,1990,2020,2050,2080,2110,2140,2170,2200,2230,2260,2290,2320,2350,2380,2410,2440,2470,2510,2550,2600,2640,2680,2720,2770,2810,2860,2910,3000,3110,3210,3180,3160,3130,3100,3070,3040,3010,3010,3000,2980,2970,2950,2940,2950,2960,2840,3050,3120,2950,3100,3130,3210,3250,3120,3460,3360,3260,3160,3060,2960,2870,2770,2680,2590,2510,3040,3680,3940,4210,4480,4780,5070,5240,5420,5620,5840,6060,6440,6650,7100,7520,7970,8850,9210,9210,9510,9620,10800,11400,11700,12200,12600,13100,13200,13500,13800,13700,13600,13500,13300,13800,13700,13900,13500,13400,12900,11500,10100,9280,9440,9820,10500,11000,10500,10300,10300,10500,11300,12100,12800,14000,14700,15900,17300,19100,17900,17800,18100,18300,19000,19700,20500,21600,22500,23400,24300,25300,26400,27400,28400,29300,30100,30900,31700,32400,33200,33900,34700,35500,36200,37000,37900,38700,39600,40400,41300,42200 -Russia,1430,1430,1430,1440,1440,1440,1440,1440,1440,1450,1450,1450,1450,1450,1450,1460,1460,1460,1460,1460,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570,1580,1590,1600,1610,1620,1630,1650,1660,1670,1680,1690,1700,1710,1720,1730,1740,1760,1770,1780,1790,1800,1810,1820,1840,1850,1860,1870,1880,1900,1910,1920,1930,1950,1960,1970,1980,2000,2010,2020,2040,2050,2060,2080,2090,2100,2120,2130,2140,2160,2170,2190,2200,2210,2230,2140,2510,2410,2240,2230,2050,2240,2540,2890,2670,2940,2900,2970,3150,3090,3170,3440,3200,3540,3140,3000,2880,3150,3270,3490,3220,3480,3660,3490,3600,3200,2810,1720,1480,1490,1370,1590,1830,2320,2910,3270,3420,3600,3650,3820,3860,3800,3950,4320,4950,5300,5750,5740,5980,5740,5640,5550,5450,5360,5270,5180,5760,6520,7130,7730,7650,8020,8240,8510,9090,9800,9840,10400,10100,10900,11300,11500,11100,12300,12900,13400,13900,14500,14600,15600,15900,15900,17100,17500,17400,18100,18400,18800,18600,18600,18600,19000,19500,19700,19700,20400,20600,20900,21200,20600,19600,16700,15300,13400,12800,12400,12600,11900,12700,14100,14800,15600,16800,18100,19300,21000,22800,24000,22100,23100,24100,24900,25100,24900,24100,24000,24400,24800,25200,25600,26000,26400,26900,27400,27900,28500,29100,29800,30400,31100,31800,32500,33200,33900,34700,35400,36200,37000,37900,38700 -Rwanda,431,432,432,433,433,434,434,435,435,436,437,437,438,438,439,439,440,440,441,442,442,443,443,444,444,445,445,446,447,447,448,448,449,449,450,451,451,452,452,453,453,454,455,455,456,456,457,457,458,459,459,460,460,461,462,462,463,463,464,465,465,466,466,467,467,468,469,469,470,470,471,472,472,473,473,474,475,475,476,476,477,478,478,479,479,480,481,481,482,482,483,484,484,485,486,486,487,487,488,489,489,490,490,491,492,492,493,494,494,495,495,496,497,497,498,499,499,500,501,501,502,503,503,504,505,506,507,508,509,509,510,511,512,513,514,514,515,516,517,518,519,520,520,521,522,523,524,525,525,526,527,547,553,563,583,589,599,607,610,631,635,605,673,592,509,532,553,577,600,647,696,685,668,669,681,784,746,759,806,854,928,957,1000,1020,954,972,999,963,902,894,865,865,964,942,492,674,736,786,790,766,785,821,907,912,964,1030,1100,1160,1250,1300,1350,1420,1510,1540,1620,1720,1770,1850,1930,2030,2110,2200,2280,2370,2440,2520,2580,2650,2710,2770,2830,2900,2960,3030,3090,3160,3230,3300,3380,3450,3530 -Samoa,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1400,1410,1410,1420,1420,1430,1430,1440,1440,1450,1450,1460,1460,1470,1470,1480,1480,1490,1490,1500,1500,1510,1510,1520,1520,1530,1530,1540,1540,1550,1560,1560,1570,1570,1580,1580,1590,1590,1600,1600,1610,1610,1620,1630,1630,1640,1640,1650,1650,1660,1660,1670,1680,1680,1690,1690,1700,1700,1710,1720,1720,1730,1730,1740,1750,1750,1760,1760,1770,1780,1780,1790,1790,1800,1810,1810,1820,1820,1830,1840,1840,1850,1850,1860,1870,1870,1880,1890,1890,1900,1910,1910,1920,1930,1950,1970,2000,2020,2050,2070,2100,2120,2150,2170,2200,2220,2250,2280,2300,2330,2360,2390,2410,2440,2470,2500,2530,2560,2590,2620,2650,2680,2710,2740,2780,2810,2840,2870,2910,2940,2980,3010,3050,3080,3120,3150,3190,3230,3260,3300,3340,3380,3420,3460,3500,3540,3580,3620,3660,3710,3750,3790,3840,3880,3430,3270,3550,3490,3690,4150,3880,3520,3470,3480,3510,3640,3820,3820,3740,3850,3650,3540,3500,3610,3480,3690,3920,3930,4000,4070,4330,4600,4770,4960,5160,5340,5410,5710,5730,5410,5400,5670,5640,5490,5510,5560,5880,5890,5950,6030,6090,6150,6220,6310,6410,6520,6640,6780,6920,7070,7230,7390,7550,7720,7890,8070,8250,8430,8620,8810,9000 -San Marino,1400,1400,1410,1410,1410,1410,1420,1420,1420,1420,1430,1430,1430,1440,1440,1440,1440,1450,1450,1450,1450,1460,1460,1460,1460,1470,1470,1470,1470,1480,1480,1480,1490,1490,1490,1490,1500,1500,1500,1500,1510,1510,1510,1510,1520,1520,1520,1530,1530,1530,1530,1550,1560,1570,1580,1590,1600,1620,1630,1640,1650,1660,1680,1690,1700,1710,1730,1740,1750,1770,1780,1790,1810,1820,1830,1850,1860,1870,1890,1900,1920,1930,1940,1960,1970,1990,2000,2020,2030,2050,2060,2080,2090,2110,2130,2140,2160,2170,2190,2210,2220,2270,2310,2360,2400,2450,2500,2550,2600,2650,2700,2750,2810,2860,2920,2980,3040,3100,3160,3220,3280,3350,3420,3490,3560,3630,3700,3780,3850,3930,4010,4090,4170,4260,4340,4430,4520,4610,4700,4800,4890,5150,5430,5720,6020,6340,6680,7040,7410,7810,8220,8660,9120,9610,10100,10700,11200,11800,12500,13100,13800,14600,15300,16100,17000,17900,18900,19900,20900,22000,23200,23400,24200,25900,27200,26400,28000,28200,28600,29800,30300,30200,29900,29900,30500,31000,31500,32200,33200,33900,34200,34300,34100,36600,38700,41800,43500,44300,47300,51000,51400,53100,52000,52600,53700,53900,55200,56600,54400,47200,44500,43100,41100,39200,39100,39200,39400,39600,39800,40000,40300,40500,40900,41300,41900,42500,43300,44200,45100,46100,47100,48100,49200,50300,51400,52500,53700,54900,56100,57300,58600 -Sao Tome and Principe,850,852,853,855,857,858,860,861,863,865,866,868,869,871,873,874,876,877,879,881,882,884,886,887,889,891,892,894,896,897,899,901,902,904,906,907,909,911,912,914,916,917,919,921,923,924,926,928,929,931,933,935,936,938,940,942,943,945,947,949,950,952,954,956,957,959,961,963,964,966,968,970,972,973,975,977,979,981,983,984,986,988,990,992,993,995,997,999,1000,1000,1010,1010,1010,1010,1010,1010,1020,1020,1020,1020,1020,1030,1030,1030,1030,1030,1040,1040,1040,1040,1040,1040,1050,1050,1050,1050,1050,1060,1060,1060,1060,1070,1070,1070,1080,1080,1080,1080,1090,1090,1090,1100,1100,1100,1110,1110,1110,1120,1120,1120,1130,1130,1130,1140,1140,1140,1150,1150,1150,1160,1160,1160,1160,1160,1210,1080,1150,1140,1250,1120,1240,1330,1420,1510,1590,1670,1770,1850,1920,2000,2080,2140,2150,2140,2220,2280,2260,2710,2700,3060,2950,2600,2630,2490,2300,2470,2280,2170,2160,2180,2090,2070,2050,2030,2030,2040,2030,2010,2010,2030,2000,2020,2020,2100,2130,2230,2370,2400,2530,2530,2640,2700,2720,2790,2890,2940,2990,3090,3190,3290,3390,3490,3590,3690,3790,3880,3980,4070,4160,4250,4350,4440,4540,4640,4750,4850,4960,5070,5180,5290,5410 -Saudi Arabia,846,846,847,847,848,848,849,850,850,851,852,852,853,853,854,855,855,856,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,874,875,876,877,878,879,880,881,882,883,884,885,887,888,889,890,891,892,893,894,895,896,897,899,900,901,902,903,904,905,906,907,909,910,911,912,914,916,919,921,923,926,928,930,933,935,937,939,942,944,946,949,951,954,956,958,961,963,965,968,970,973,975,977,980,982,985,987,990,992,994,997,999,1000,1000,1010,1010,1010,1010,1020,1020,1020,1030,1030,1030,1040,1040,1050,1060,1060,1070,1080,1090,1090,1100,1060,1030,995,962,966,970,975,979,983,987,1020,1060,1100,1140,1180,1230,1270,1470,1710,1990,2310,2680,3110,3610,4190,4860,5640,6550,7600,8830,10200,11900,13800,16000,18600,21600,25100,29100,33700,39200,45500,53600,60500,65100,103000,78400,92600,89600,82400,80900,84300,78700,65000,58100,52500,42800,41600,38000,38000,38300,42500,47300,47700,45800,44900,44000,44200,43800,44300,41700,43100,41500,39200,42300,44400,45500,45500,45100,46700,44500,45400,48500,49700,49500,50000,50700,50500,50100,50100,49800,49500,49200,49100,49200,49500,50100,50900,51800,52900,54000,55100,56400,57600,58900,60200,61500,62900,64300,65700,67200,68600 -Senegal,497,497,497,497,497,497,498,498,498,498,498,498,498,498,498,498,498,498,498,499,499,501,503,506,508,511,513,516,518,521,523,526,528,531,533,536,539,541,544,546,549,552,554,557,560,563,565,568,571,574,576,579,582,585,588,590,593,596,599,602,605,608,611,614,617,620,623,626,629,632,635,638,641,644,647,650,653,656,660,663,666,669,673,676,679,682,686,689,692,696,699,702,706,709,713,716,720,723,727,730,734,737,741,744,748,751,755,759,762,766,770,774,777,781,798,814,832,849,867,885,904,924,945,966,987,1010,1030,1050,1080,1100,1130,1150,1180,1200,1230,1260,1280,1310,1340,1370,1400,1430,1470,1500,1530,1560,1600,1630,1670,1710,1740,1780,1810,1840,1870,1910,1940,1970,2000,2030,2020,2070,2090,2120,2110,2130,2120,2040,2120,1920,2030,1970,2030,1870,1890,1980,2120,2000,1860,1930,1810,1750,1950,1940,1800,1810,1840,1860,1900,1810,1840,1830,1800,1770,1720,1760,1750,1760,1820,1890,1910,1950,1910,1980,2050,2100,2100,2140,2160,2150,2180,2160,2180,2190,2220,2300,2380,2470,2570,2680,2780,2890,2990,3100,3190,3280,3370,3450,3530,3610,3690,3770,3860,3940,4030,4120,4210,4300,4400,4500,4600 -Serbia,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1370,1380,1400,1410,1420,1430,1440,1450,1470,1480,1490,1500,1510,1530,1540,1550,1570,1580,1590,1600,1620,1630,1640,1660,1670,1680,1700,1710,1730,1740,1750,1750,1760,1770,1770,1780,1790,1800,1800,1810,1820,1820,1830,1840,1850,1850,1860,1870,1870,1880,1910,1950,1980,2020,2050,2090,2120,2160,2200,2240,2270,2310,2350,2390,2440,2480,2520,2570,2610,2660,2670,2690,2710,2730,2750,2770,2790,2810,2830,2850,2890,2940,2990,3030,3080,3130,3180,3230,3290,3340,3340,3340,3340,3330,3320,3310,3300,3280,3270,3260,3290,3330,3440,3630,3740,3940,3810,4080,4220,4070,3880,3470,3520,3590,3480,3860,3860,4110,4260,4210,4170,4120,4070,4030,3980,3930,3890,4570,4940,4550,4650,4230,4780,4970,5200,5030,5800,5970,6620,6950,7180,7220,7870,8520,8640,8990,9040,9130,10000,10400,11500,11700,12000,13400,13200,13500,14300,14900,15700,16300,16500,16400,16400,16700,16700,17200,16900,16500,16200,14900,13700,9830,6830,7000,7390,7580,8150,8380,7390,7990,8400,9000,9420,10300,10900,11500,12200,12900,12600,12700,13000,12900,13300,13100,13300,13700,14300,14800,15500,16100,16700,17300,17900,18400,19000,19400,19900,20400,20800,21300,21800,22300,22800,23300,23800,24300,24800,25400,26000,26500 -Seychelles,792,795,798,801,804,807,811,814,817,820,824,827,830,833,837,840,843,847,850,853,857,860,864,867,871,874,877,881,884,888,891,895,899,902,906,909,913,917,920,924,927,931,935,939,942,946,950,954,957,961,965,969,973,976,980,984,988,992,996,1000,1000,1010,1010,1020,1020,1020,1030,1030,1040,1040,1040,1050,1050,1060,1060,1070,1070,1070,1080,1080,1090,1090,1100,1100,1100,1110,1110,1120,1120,1130,1130,1140,1140,1140,1150,1150,1160,1160,1170,1170,1180,1180,1190,1190,1200,1200,1210,1210,1210,1220,1220,1230,1230,1240,1290,1330,1380,1430,1490,1540,1600,1660,1720,1790,1860,1930,2000,2070,2150,2230,2320,2400,2500,2590,2690,2790,2890,3000,3110,3230,3350,3480,3610,3750,3890,4030,4190,4340,4510,4680,4850,5120,5200,5290,5520,5500,5450,5560,5600,5740,6030,5540,5880,6270,6350,6210,6210,6080,6440,6270,6570,7440,7710,8250,8200,8320,8980,9460,9960,11400,11000,10400,10200,10100,10500,11500,11500,11500,12100,13300,14200,14400,15400,16000,15400,15100,15600,17300,18400,18300,18500,18000,17700,16800,16400,17800,19100,21000,20100,19800,20400,22600,23800,24800,25200,25500,26300,26900,27500,28200,29000,29700,30500,31200,32000,32700,33500,34200,35000,35800,36600,37400,38200,39100,39900,40800,41700,42600,43600,44600,45500 -Sierra Leone,734,734,734,734,734,734,735,735,735,735,735,735,735,735,735,736,736,736,736,736,736,740,743,747,750,754,758,761,765,769,772,776,780,784,788,791,795,799,803,807,811,815,819,822,826,830,834,839,843,847,851,855,859,863,867,872,876,880,884,889,893,897,901,906,910,915,919,924,928,932,937,942,946,951,955,960,965,969,974,979,983,988,993,998,1000,1010,1010,1020,1020,1030,1030,1040,1040,1050,1050,1060,1060,1070,1070,1080,1080,1090,1090,1100,1100,1110,1120,1120,1130,1130,1140,1140,1150,1150,1160,1160,1160,1160,1160,1160,1170,1160,1160,1150,1150,1150,1140,1140,1140,1130,1130,1120,1120,1110,1110,1110,1100,1100,1090,1090,1090,1080,1080,1070,1070,1060,1060,1060,1050,1050,1040,1080,1090,1110,1150,1170,1190,1210,1220,1270,1280,1280,1310,1300,1290,1350,1410,1370,1470,1570,1590,1540,1490,1500,1520,1530,1450,1430,1400,1440,1470,1520,1500,1440,1420,1340,1250,1280,1270,1260,1250,1270,1030,1050,1040,956,971,909,915,880,913,816,985,1030,1050,1050,1070,1130,1160,1180,1220,1250,1400,1660,1690,1320,1370,1430,1490,1590,1660,1730,1810,1880,1940,2000,2060,2110,2160,2210,2260,2310,2360,2410,2460,2520,2570,2630,2690,2750,2810 -Singapore,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,1030,1030,1030,1030,1040,1040,1040,1040,1050,1050,1050,1050,1050,1060,1060,1060,1060,1070,1070,1070,1070,1080,1080,1080,1080,1090,1090,1090,1090,1090,1100,1100,1100,1100,1110,1110,1110,1110,1120,1120,1120,1120,1130,1130,1130,1130,1140,1140,1140,1140,1180,1210,1240,1280,1310,1350,1390,1430,1470,1510,1550,1590,1640,1690,1730,1780,1830,1880,1940,1990,2050,2100,2160,2220,2280,2350,2410,2480,2550,2620,2890,2730,2350,2270,2510,2830,2580,2960,3000,3250,2930,2510,2180,2620,2680,2220,3090,2420,2760,2380,2710,3600,3710,3650,4130,3430,2550,3050,4310,3980,2940,2570,3660,4330,4910,4890,5340,4540,5310,5280,5260,5240,5210,5190,5160,5140,5110,5080,5060,5030,4760,3310,3960,4550,4200,4630,4120,4140,4660,4990,5520,5370,5720,5620,6140,6660,7330,8210,9210,10300,11400,12700,13900,14500,14800,15600,16600,17800,19300,20900,21900,22500,24100,25700,25300,25800,28000,30500,32600,34300,35600,37000,40200,43300,44900,46400,48600,45900,48300,51700,49800,51500,54600,59000,62000,65400,68400,66000,63700,72100,75000,76000,78500,80300,80900,81400,82600,83900,85300,86500,87700,89100,90600,92200,94000,95900,97900,100000,102000,104000,107000,109000,112000,114000,117000,119000,122000,125000,127000,130000 -Slovak Republic,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1430,1440,1450,1470,1480,1490,1500,1520,1530,1540,1550,1570,1580,1590,1600,1620,1630,1640,1660,1670,1680,1700,1710,1730,1740,1750,1770,1780,1800,1810,1830,1830,1840,1850,1860,1860,1870,1880,1890,1890,1900,1910,1920,1920,1930,1940,1950,1950,1960,1970,1980,2000,2030,2060,2080,2110,2140,2170,2190,2220,2250,2280,2310,2340,2370,2400,2430,2470,2500,2530,2560,2600,2640,2670,2710,2750,2790,2830,2870,2910,2950,2990,3030,3080,3120,3170,3210,3260,3310,3350,3400,3460,3520,3580,3540,3500,3460,3420,3380,3350,3310,3570,3430,3680,4030,4460,4410,4720,5100,5220,5020,4820,4600,4380,4190,4140,4460,4950,4980,5020,5050,5080,5110,5150,5180,5220,5250,5280,5320,5610,6030,6070,6200,6110,6290,6760,7090,7450,7950,8240,8810,9080,9150,8920,9270,9550,9910,10300,10700,11000,11200,11500,11800,12200,12500,12800,12900,13400,13400,13500,13800,13700,13900,14100,14400,14500,14700,14700,15000,15100,14700,12500,11600,11800,12500,13200,14000,14900,15400,15400,15600,16200,16900,17800,18800,20000,21700,24100,25400,24000,25200,25800,26200,26600,27200,28300,29200,30200,31400,32400,33600,34700,35900,37000,38000,39000,40000,41000,41900,42900,43800,44800,45800,46800,47800,48900,50000,51100,52200,53400,54600 -Slovenia,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1410,1420,1440,1450,1460,1470,1480,1500,1510,1520,1530,1550,1560,1570,1580,1600,1610,1620,1640,1650,1660,1680,1690,1710,1720,1730,1750,1760,1780,1790,1810,1810,1820,1830,1830,1840,1850,1860,1860,1870,1880,1880,1890,1900,1910,1910,1920,1930,1940,1940,1950,1990,2020,2060,2090,2130,2160,2200,2240,2280,2320,2360,2400,2440,2480,2530,2570,2620,2660,2710,2760,2770,2790,2810,2830,2850,2870,2890,2910,2930,2950,3000,3050,3100,3150,3200,3250,3300,3360,3410,3460,3460,3470,3470,3450,3440,3430,3420,3410,3400,3380,3420,3470,3600,3810,3940,4160,4040,4330,4500,4350,4160,3730,3790,3880,3770,4210,4220,4500,4680,4640,4600,4570,4530,4490,4450,4420,4380,5160,5590,5170,5310,4830,5480,5720,6000,5820,6740,6960,7740,8160,8450,8520,9320,10100,10300,10800,10800,11000,12100,12600,14000,14300,14700,16400,16300,16600,17700,18500,19600,20400,20700,20700,20800,21200,21300,22000,21700,21300,20900,19300,17600,16500,16900,17800,18400,19100,20100,20800,21900,22700,23400,24200,24900,26000,27000,28400,30200,31100,28500,28700,28800,28000,27600,28500,29100,29800,30400,30900,31500,32100,32700,33400,34100,34800,35500,36300,37100,37900,38800,39600,40500,41400,42300,43200,44200,45200,46200,47200,48200,49300 -Solomon Islands,363,363,363,363,363,363,363,363,363,363,364,364,364,364,364,364,364,364,364,364,364,365,367,368,369,371,372,373,374,376,377,378,380,381,382,384,385,387,388,389,391,392,393,395,396,398,399,400,402,403,405,406,407,409,410,412,413,415,416,418,419,421,422,424,425,427,428,430,431,433,434,436,437,439,440,442,443,445,447,448,450,451,453,454,456,458,459,461,463,464,466,467,469,471,472,474,476,477,479,481,482,484,486,488,489,491,493,494,496,498,500,501,503,505,514,522,531,540,549,559,568,578,588,598,608,618,629,639,650,661,672,684,696,707,719,732,744,757,769,782,796,809,823,837,851,865,880,895,910,926,941,957,973,990,1010,1020,1040,1060,1080,1090,1110,1130,1150,1170,1190,1210,1230,1250,1270,1200,1220,1200,829,892,1090,923,1010,1120,1180,1430,1290,1420,1410,1550,1510,1480,1720,1710,1720,1810,1790,1850,2020,2050,2170,2280,2260,2160,2140,2070,1730,1550,1470,1520,1560,1600,1670,1750,1830,1710,1780,1970,2020,2030,2020,2050,2070,2090,2110,2120,2140,2160,2180,2210,2240,2280,2320,2370,2420,2470,2520,2580,2640,2690,2750,2820,2880,2940,3010,3070,3140 -Somalia,694,694,695,696,696,697,698,698,699,700,700,701,702,702,703,704,704,705,706,706,707,708,708,709,710,710,711,712,712,713,714,714,715,716,716,717,718,719,719,720,721,721,722,723,723,724,725,725,726,727,728,728,729,730,730,731,732,732,733,734,735,735,736,737,737,738,739,740,740,741,742,742,743,744,745,745,746,747,747,748,749,750,750,751,752,752,753,754,755,755,756,757,757,758,759,760,760,761,762,763,763,764,765,765,766,767,768,768,769,770,771,771,772,773,778,783,788,793,799,804,809,815,820,826,832,838,844,850,856,862,868,874,880,886,892,898,905,911,917,924,930,937,943,950,956,963,969,976,983,990,997,1040,1050,1070,1110,1130,1150,1170,1180,1220,1210,1240,1270,1290,1130,1030,1160,1200,1190,1020,1080,1100,1260,1090,1070,1150,1030,1050,995,869,837,866,888,794,832,919,897,979,962,950,930,921,813,817,644,637,648,613,607,605,603,603,607,611,614,616,615,615,615,615,614,614,616,619,621,623,625,627,629,631,633,636,640,646,654,664,676,689,703,718,734,750,767,784,801,819,837,856,875,894,914 -South Africa,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1750,1630,1650,1660,1680,1690,1700,1710,1720,1630,1560,1550,1540,1530,1520,1510,1500,1490,1480,1470,1430,1400,1370,1320,1270,1220,1180,1220,1260,1310,1550,1620,1740,1700,1820,1470,1740,1520,1570,1630,1530,1130,1200,1680,1240,1290,1540,1580,1580,1700,1720,2560,2240,2160,2430,2750,2620,2590,2910,3400,3250,3110,2420,2220,1900,2270,2620,2990,2990,3050,3210,3170,3180,3130,3640,3850,3640,4430,3930,2800,3050,3680,4990,5050,5460,5960,5920,4700,4980,5040,5010,4970,4940,4900,4870,4830,4800,4760,4800,4830,4840,4850,4860,4870,5120,5180,5210,5530,5330,4970,4630,4400,4810,5260,5760,6220,6550,6220,6450,6660,6760,6750,6700,6720,6690,6720,6580,6880,6760,7080,7180,7190,7280,7460,7580,7750,7790,7700,7800,7870,7950,8130,8450,8740,8980,9080,9410,9530,9820,10000,10300,10200,10400,10800,10700,10700,10500,10500,10700,11100,11400,11000,10500,10700,10200,10000,10000,10200,10200,9900,9560,9130,9010,9090,9180,9400,9480,9390,9470,9720,9890,10100,10300,10600,11100,11500,12000,12200,11800,12000,12200,12300,12400,12500,12400,12300,12300,12300,12400,12400,12400,12500,12600,12700,12900,13100,13400,13600,13900,14200,14600,14900,15200,15500,15900,16200,16600,17000,17300,17700 -South Korea,575,575,574,574,573,573,572,571,571,570,570,569,568,568,567,567,566,566,565,564,564,563,563,562,562,561,560,560,559,559,558,558,557,557,556,555,555,554,554,553,553,552,551,551,550,550,549,549,548,548,547,546,546,545,545,544,544,543,543,542,541,541,540,540,539,539,538,538,537,537,536,535,535,534,534,533,533,532,532,531,531,530,530,529,528,528,527,527,526,526,525,525,524,524,523,523,522,522,521,520,520,522,523,525,527,529,531,532,534,536,538,544,565,585,609,711,693,765,821,872,755,815,749,802,806,805,834,869,873,825,779,781,780,940,936,1020,1110,1220,1290,1160,1310,1320,1310,1330,1270,596,606,643,696,751,793,740,794,1030,1050,1120,1110,1200,1210,1190,1150,1170,1150,1270,1350,1380,1520,1580,1730,1950,2080,2360,2680,3230,3570,3990,4470,4810,5210,5330,4740,4990,5300,5870,6380,6730,7710,8770,9860,10600,11600,12700,13400,14100,15300,16600,17700,18500,17400,19200,20800,21500,23000,23500,24600,25500,26700,28000,28600,28600,30400,31200,31800,32500,33400,34200,35000,35800,36800,37700,38700,39600,40600,41600,42500,43500,44500,45500,46500,47600,48600,49700,50800,51900,53100,54300,55500,56700,57900,59200,60500 -South Sudan,507,507,507,507,508,508,508,508,508,508,508,508,508,508,508,508,508,509,509,509,509,511,514,516,519,521,524,526,529,531,534,536,539,542,544,547,550,552,555,558,560,563,566,568,571,574,577,580,582,585,588,591,594,597,599,602,605,608,611,614,617,620,623,626,629,632,635,638,641,644,648,651,654,657,660,663,667,670,673,676,680,683,686,690,693,696,700,703,706,710,713,717,720,724,727,731,734,738,741,745,748,752,756,759,763,767,770,774,778,782,785,789,793,797,813,829,846,863,880,898,916,938,962,985,1010,1030,1060,1090,1110,1140,1170,1200,1230,1260,1290,1320,1350,1380,1420,1450,1490,1520,1560,1600,1640,1680,1720,1760,1800,1840,1890,1930,1980,2030,2080,2130,2300,2210,2250,2460,2450,2390,2500,2370,2290,2400,2320,2190,2270,2360,2210,2300,2200,1960,2100,2300,2650,2970,2830,2450,2400,2380,2600,2490,2290,2070,2100,2100,2090,2210,1980,2060,2100,2110,2090,2100,2150,2300,2370,2480,2640,2730,2810,2930,3000,3170,3400,3700,3720,3740,3790,3480,1810,1990,1990,1810,1860,1850,1820,1840,1850,1860,1880,1890,1920,1950,1980,2020,2070,2110,2160,2200,2250,2300,2350,2410,2460,2510,2570,2630,2680 -Spain,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,1530,1530,1530,1540,1540,1540,1550,1550,1560,1560,1560,1570,1570,1570,1580,1580,1590,1590,1590,1600,1600,1610,1610,1610,1620,1620,1620,1630,1630,1640,1650,1720,1720,1750,1820,1770,1720,1750,1820,1880,1900,1900,1940,1940,1870,1960,1950,1750,1800,1840,1980,2240,2430,2220,2280,2310,2540,2460,2320,2510,2560,2580,2620,2620,2530,2470,2420,2500,2490,2480,2520,2700,2600,2610,2580,2360,2470,2650,2680,2730,2910,2800,2800,2770,2720,2830,2900,2990,3030,2900,3090,3060,3170,3110,3150,3280,3230,3190,3200,3420,3500,3630,3660,3750,3960,3930,4250,4250,4530,4350,4220,4300,4190,4330,4400,3400,3110,3090,3320,3620,3550,3740,3860,4020,3740,3890,3940,3930,3890,3960,4340,4670,4620,4950,5120,5500,5640,5850,5680,5740,6440,7140,7820,8520,9010,9600,10100,10700,11500,12100,12700,13600,14700,15700,16100,16600,17100,17500,17600,17900,17900,18100,18500,18700,19000,19600,20600,21700,22800,23800,24300,24400,24000,24500,25100,25600,26400,27500,28600,30000,31000,31400,31800,32300,32900,33700,34300,34200,32700,32500,32100,31100,30700,31200,32200,33300,34000,34700,35500,36300,37100,38000,38800,39700,40600,41500,42400,43400,44300,45300,46300,47300,48400,49400,50500,51700,52800,54000,55200,56400 -Sri Lanka,898,898,898,898,898,898,898,898,899,899,899,899,899,899,899,900,900,900,900,900,900,901,902,903,904,905,906,906,907,908,909,910,911,912,913,914,915,915,916,917,918,919,920,921,922,923,924,924,925,926,927,947,967,987,1010,1030,1050,1070,1100,1120,1140,1170,1190,1210,1240,1270,1290,1320,1350,1380,1400,1360,1300,1300,1280,1290,1300,1310,1190,1270,1370,1470,1550,1560,1500,1390,1340,1560,1520,1490,1730,1720,1740,1740,1730,1800,1800,1860,1930,2040,2140,1980,1950,2030,2010,1950,1970,2050,2030,1910,2000,1920,1910,2030,1980,1850,1910,1970,1790,1880,1750,1690,1730,1690,1780,1870,1980,1970,1950,2070,1950,1850,1750,1760,1920,1800,1780,1880,1840,1780,1870,1900,1970,1910,1710,1650,1550,1580,1700,1760,1840,1890,1920,1900,1890,1950,1910,1890,1890,1870,1880,1870,1890,1880,1920,1930,1870,1990,2090,2130,2190,2130,2140,2190,2230,2250,2280,2400,2510,2620,2730,2850,2950,3070,3190,3280,3400,3390,3440,3480,3670,3780,3900,4120,4310,4510,4640,4910,5110,5300,5580,5450,5630,5920,6190,6530,6970,7390,7770,7990,8560,9210,9980,10200,10700,11100,11400,11900,12400,12900,13500,14000,14500,15000,15500,16000,16400,16800,17200,17600,18000,18400,18800,19200,19600,20100,20500,21000,21400,21900,22400 -St. Kitts and Nevis,1160,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1170,1180,1180,1190,1200,1210,1220,1220,1230,1240,1250,1260,1270,1280,1280,1290,1300,1310,1320,1330,1340,1350,1360,1360,1370,1380,1390,1400,1410,1420,1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570,1580,1590,1600,1610,1630,1640,1650,1660,1670,1680,1690,1700,1720,1730,1740,1750,1760,1770,1790,1800,1810,1820,1830,1850,1860,1870,1880,1900,1910,1920,1940,1950,1960,1980,1990,2000,2020,2030,2040,2060,2070,2080,2100,2110,2130,2140,2160,2170,2190,2210,2240,2270,2290,2320,2350,2380,2410,2440,2460,2490,2520,2550,2580,2620,2650,2680,2710,2740,2780,2810,2840,2880,2910,2950,2980,3020,3050,3090,3130,3160,3200,3240,3280,3320,3360,3400,3440,3480,3520,3560,3600,3650,3690,3730,3780,3820,3870,3920,3960,4010,4060,4100,4150,4200,4250,4300,4620,4860,5050,5330,5470,5830,6220,6720,7380,8030,8160,8070,8030,8910,9540,10700,11800,13000,14000,14300,14000,14400,15300,15900,16600,17400,18400,18000,18400,20200,21000,21200,20200,20600,22100,22300,22000,23100,22100,21400,21700,21300,22400,23500,24100,24700,25300,25700,26200,26700,27200,27800,28400,29000,29600,30200,30900,31600,32300,33000,33700,34500,35200,36000,36800,37600,38500,39300,40200,41100 -St. Lucia,874,875,875,875,875,875,875,875,875,876,876,876,876,876,876,876,876,877,877,877,877,880,883,886,889,892,894,897,900,903,906,909,912,915,918,921,924,927,930,933,937,940,943,946,949,952,955,958,961,965,968,971,974,977,981,984,987,990,994,997,1000,1000,1010,1010,1010,1020,1020,1020,1030,1030,1030,1040,1040,1040,1050,1050,1050,1060,1060,1070,1070,1070,1080,1080,1080,1090,1090,1090,1100,1100,1100,1110,1110,1120,1120,1120,1130,1130,1130,1140,1140,1140,1150,1150,1160,1160,1160,1170,1170,1180,1180,1180,1190,1190,1190,1200,1200,1210,1210,1210,1220,1230,1240,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1340,1350,1360,1370,1380,1390,1400,1410,1420,1430,1440,1450,1460,1470,1480,1490,1500,1560,1630,1710,1780,1860,1940,2030,2120,2220,2310,2420,2520,2640,2750,2870,3000,3140,3270,3420,3570,3720,3790,3820,4010,4150,4880,5270,5600,5680,5300,5380,5480,5730,6060,6430,7410,7500,8450,8940,9090,9000,9600,9520,9560,9600,9750,9540,10000,10100,10000,9540,9490,9860,10500,10400,11000,11000,11300,11100,10800,10800,10600,10500,10500,10700,10700,10800,10900,11000,11000,11100,11200,11300,11500,11700,11900,12100,12400,12700,12900,13200,13500,13800,14100,14400,14800,15100,15400,15800,16100 -St. Vincent and the Grenadines,838,838,838,838,838,839,839,839,839,839,839,839,839,840,840,840,840,840,840,840,840,846,852,858,863,869,875,881,887,893,899,905,911,917,924,930,936,942,949,955,962,968,975,981,988,995,1000,1010,1020,1020,1030,1040,1040,1050,1060,1060,1070,1080,1090,1090,1100,1110,1120,1120,1130,1140,1150,1150,1160,1170,1180,1190,1190,1200,1210,1220,1230,1230,1240,1250,1260,1270,1280,1290,1290,1300,1310,1320,1330,1340,1350,1360,1370,1370,1380,1390,1400,1410,1420,1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540,1550,1560,1570,1590,1600,1620,1630,1650,1670,1680,1700,1710,1720,1740,1750,1770,1780,1790,1810,1820,1840,1850,1870,1880,1900,1910,1930,1940,1960,1970,1990,2010,2020,2040,2050,2070,2090,2100,2120,2140,2200,2280,2350,2420,2500,2580,2670,2750,2840,2930,3010,3080,2850,2920,2910,2870,2570,2700,2750,3000,3050,3790,3330,3000,2730,2980,3030,3350,3420,3450,3630,3770,3900,4090,4290,4530,4680,5300,5370,5580,5620,5970,6220,6140,6620,6710,6950,7240,7430,7560,7680,8150,8760,9110,9320,10000,9850,10500,10300,9920,9870,10000,10200,10300,10500,10800,11100,11400,11700,12000,12300,12600,13000,13300,13600,13900,14200,14600,14900,15200,15600,15900,16200,16600,17000,17400,17700,18100,18500,18900 -Sudan,518,518,518,518,519,519,519,519,519,519,519,519,519,519,519,519,520,520,520,520,520,522,525,527,530,533,535,538,540,543,546,548,551,553,556,559,562,564,567,570,573,575,578,581,584,586,589,592,595,598,601,604,607,610,613,615,618,621,624,627,631,634,637,640,643,646,649,652,655,659,662,665,668,671,675,678,681,684,688,691,694,698,701,705,708,711,715,718,722,725,729,732,736,739,743,747,750,754,757,761,765,768,772,776,780,783,787,791,795,799,803,806,810,814,831,847,864,882,899,917,936,956,977,999,1020,1040,1070,1090,1110,1140,1160,1190,1220,1240,1270,1300,1330,1350,1380,1410,1450,1480,1510,1540,1580,1610,1650,1680,1720,1760,1790,1830,1880,1920,1960,2000,2160,2070,2110,2300,2280,2220,2320,2190,2120,2210,2130,2010,2090,2160,2010,2100,2000,1780,1900,2080,2390,2670,2550,2200,2150,2130,2320,2220,2040,1840,1860,1860,1850,1950,1740,1830,1900,1930,1900,1960,2020,2170,2210,2210,2290,2370,2450,2570,2590,2710,2910,3160,3320,3340,3370,3630,4100,4180,4190,4290,4390,4410,4440,4480,4520,4560,4600,4660,4730,4810,4900,4990,5100,5210,5330,5440,5560,5690,5810,5940,6070,6210,6350,6490,6630 -Suriname,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1640,1650,1660,1680,1690,1700,1710,1720,1730,1740,1760,1770,1780,1790,1800,1820,1830,1840,1850,1870,1880,1890,1900,1920,1930,1940,1960,1970,1980,2000,2010,2020,2040,2050,2060,2080,2090,2110,2120,2130,2150,2160,2180,2190,2210,2220,2240,2250,2270,2280,2300,2310,2330,2350,2360,2380,2390,2410,2430,2440,2460,2480,2490,2510,2530,2540,2560,2580,2590,2610,2630,2650,2670,2680,2700,2720,2740,2760,2780,2790,2810,2830,2850,2870,2890,2910,2930,2950,2970,2990,3010,3030,3050,3070,3120,3160,3210,3260,3310,3360,3410,3460,3520,3580,3640,3690,3750,3820,3880,3940,4000,4070,4140,4200,4270,4340,4410,4480,4550,4630,4700,4780,4850,4930,5010,5090,5170,5260,5340,5430,5520,5640,5780,5910,6050,6190,6330,6480,6630,6790,6940,7110,7270,7440,7610,7790,7970,8160,8350,8540,8740,9260,9720,10200,10500,9590,10600,11800,12500,11800,10800,11400,10800,10200,9870,11100,10800,9880,10600,11000,10500,10600,10400,9510,9660,9620,9600,10000,10100,9850,9730,10100,10400,10900,11800,12200,12500,13000,13400,13700,14200,14900,15100,15400,15300,14800,13100,13000,13200,13300,13300,13300,13300,13400,13500,13700,13900,14200,14500,14800,15100,15500,15800,16200,16500,16900,17300,17600,18000,18400,18800 -Swaziland,490,490,490,490,490,490,490,490,490,490,490,490,490,490,491,491,491,491,491,491,491,493,496,498,501,503,505,508,510,513,515,518,520,523,525,528,530,533,536,538,541,543,546,549,551,554,557,559,562,565,567,570,573,576,579,581,584,587,590,593,596,598,601,604,607,610,613,616,619,622,625,628,631,634,637,640,643,646,650,653,656,659,662,665,669,672,675,678,682,685,688,692,695,698,702,705,709,712,715,719,722,726,729,733,736,740,744,747,751,754,758,762,765,769,781,792,804,816,828,841,853,869,884,900,916,932,949,966,983,1000,1020,1040,1060,1070,1090,1110,1130,1150,1170,1190,1210,1240,1260,1280,1300,1320,1350,1370,1400,1420,1440,1500,1510,1540,1590,1610,1640,1660,1670,1730,1920,2120,2510,2590,2910,3280,3340,3580,3330,3390,4290,4260,4660,4790,5200,5250,5290,5300,5290,5210,5170,5370,5530,5380,5310,5450,5460,5720,5340,5460,5380,5320,5370,5430,5460,5610,5700,5740,5770,5830,5840,5840,6050,6250,6430,6750,7060,7250,7180,7160,7300,7320,7530,7900,8080,8050,7730,7660,7600,7560,7490,7450,7420,7440,7480,7570,7680,7820,7980,8150,8330,8510,8700,8890,9090,9290,9490,9700,9920,10100,10400 -Sweden,1410,1400,1470,1450,1360,1450,1460,1400,1330,1270,1370,1470,1380,1400,1410,1460,1490,1450,1460,1450,1470,1510,1520,1500,1550,1590,1590,1520,1540,1570,1530,1560,1520,1560,1580,1580,1630,1620,1590,1610,1630,1610,1540,1570,1640,1680,1620,1660,1680,1740,1790,1750,1720,1740,1760,1870,1850,1900,1920,1990,2030,1950,1890,1970,2010,2040,2010,2040,1860,1990,2240,2320,2360,2390,2480,2390,2540,2490,2400,2530,2470,2560,2470,2650,2600,2640,2670,2590,2630,2670,2730,2880,2850,2920,2930,3070,3150,3280,3390,3470,3490,3580,3530,3720,3780,3730,4030,4300,4160,4190,4260,4370,4550,4830,4940,5120,5410,5080,4700,4780,5090,4840,5190,5370,5750,5890,6190,6400,6600,7000,7320,7140,6870,7000,7460,7820,8090,8310,8570,9200,8520,8280,8340,8600,8840,9090,9990,10800,10900,11300,12000,11900,12100,12200,12900,13200,13600,14000,14000,14600,15100,16000,16600,17200,18400,19200,19200,19700,20400,21200,22100,22300,22300,23300,25100,25400,25400,24600,24800,25900,26000,25900,26500,26800,27900,28200,29200,29900,30600,31200,30900,30400,29800,29100,30000,31100,31500,32400,33700,35200,36900,37300,38000,38700,40300,41200,42900,44100,43500,40900,42900,43800,43300,43500,44200,45500,46400,47000,47500,47800,48300,48800,49400,50100,50800,51700,52700,53800,55000,56200,57400,58700,60000,61300,62600,64000,65400,66900,68400,69900,71400 -Switzerland,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2700,2710,2710,2710,2710,2710,2710,2710,2710,2740,2770,2800,2820,2850,2880,2920,2950,2980,3010,3040,3070,3110,3140,3170,3210,3240,3270,3310,3340,3380,3410,3450,3490,3520,3560,3600,3640,3680,3710,3780,4010,3860,3410,3960,3930,4250,5330,5040,4360,4650,4970,4940,4660,5030,4950,4330,5090,5530,5260,5570,5280,5390,6000,6630,6430,5770,5840,5790,6140,6220,6020,6010,6660,7160,7420,7350,7500,7480,7990,7500,8050,8270,7980,8760,8880,9230,9290,9640,9630,9410,9510,9210,9580,9840,10600,10500,10300,10700,10900,11000,11000,10700,10600,10700,10600,9420,9380,10000,10600,10300,11300,11800,12200,13000,13500,14100,14700,15100,14800,14000,13500,14000,13900,13800,13800,14300,14800,14700,14700,14500,14000,13700,13900,17600,18600,20500,20600,19800,20400,21800,21600,22100,23000,24300,25500,26100,25100,26400,27600,29000,29600,30300,31400,32000,32500,33100,33900,35300,37200,38300,39200,40200,40600,38000,37900,39000,39100,39900,41600,42000,41100,41100,42200,43500,43900,43900,45000,46500,47800,46700,46200,45700,45900,45900,45900,46900,48100,48700,50300,50700,50400,50100,51100,52400,54100,55800,56400,54500,55500,55900,55900,56300,56700,56500,56600,56900,57100,57400,57600,57900,58400,58900,59700,60600,61700,62900,64200,65600,67100,68500,70100,71600,73200,74800,76500,78200,79900,81700,83500 -Syria,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1090,1090,1090,1090,1090,1090,1090,1100,1100,1100,1100,1100,1100,1100,1100,1110,1110,1110,1110,1110,1110,1110,1120,1120,1120,1120,1120,1120,1120,1130,1130,1130,1130,1130,1130,1130,1140,1140,1140,1140,1140,1140,1140,1150,1150,1150,1150,1150,1150,1150,1160,1180,1190,1200,1210,1220,1230,1240,1250,1270,1280,1290,1300,1310,1330,1340,1350,1360,1370,1390,1400,1410,1430,1440,1450,1470,1480,1490,1510,1520,1540,1550,1560,1580,1590,1610,1620,1640,1650,1670,1680,1700,1710,1660,1620,1570,1530,1560,1590,1620,1650,1680,1680,1690,1690,1690,1700,1700,1710,1670,1640,1610,1580,1550,1520,1490,1510,1530,1550,1570,1590,1610,1640,1660,1680,1700,1720,1750,1770,1790,1690,2070,2300,2570,2260,2610,2700,2260,2280,2250,2210,2930,2580,2890,2810,2500,2580,2600,3010,2580,2740,3320,2930,3520,4070,4370,4180,4400,4410,4780,5060,4990,4890,4530,4650,4280,4230,4650,3750,3810,3990,4400,4500,4690,4890,5250,5390,5620,5290,5190,5230,5470,5340,5550,5740,5890,6090,6250,6500,6600,6360,6300,5000,4300,3500,3300,3100,2900,2900,2910,2930,2940,2950,2980,3000,3040,3090,3130,3180,3240,3300,3360,3430,3500,3570,3650,3730,3810,3890,3980 -Tajikistan,556,557,557,557,557,557,558,558,558,558,558,559,559,559,559,559,560,560,560,560,561,564,567,570,573,577,580,583,586,590,593,596,600,603,607,610,614,617,620,624,628,631,635,638,642,645,649,653,657,660,664,668,672,675,679,683,687,691,695,699,703,707,711,715,719,723,727,731,735,739,743,748,752,756,760,765,769,773,778,782,786,791,795,800,804,809,777,908,873,811,807,739,809,916,1040,962,1060,1040,1070,1130,1110,1130,1230,1150,1270,1120,1070,1030,1120,1160,1240,1150,1240,1300,1240,1270,1130,993,608,523,525,480,556,640,809,1010,1130,1180,1240,1250,1300,1310,1290,1340,1460,1660,1770,1920,1910,1980,1900,1860,1820,1780,1750,1710,1670,1860,2090,2280,2470,2430,2540,2600,2680,2850,3070,3070,3240,3140,3370,3500,3530,3390,3770,3940,4080,4210,4410,4420,4710,4790,4760,5110,5060,4890,4940,4870,4820,4630,4470,4350,4300,4280,4180,4070,4080,3990,3930,3860,3650,3310,2310,1900,1470,1270,1040,1050,1090,1110,1180,1280,1390,1510,1630,1710,1790,1890,1990,2020,2110,2210,2320,2440,2550,2640,2760,2840,2920,3010,3090,3180,3260,3350,3440,3520,3600,3690,3770,3850,3940,4030,4110,4210,4300,4390,4490,4590,4690,4800,4900 -Tanzania,562,562,562,562,562,562,563,563,563,563,563,563,563,563,563,563,563,563,564,564,564,565,567,568,570,571,573,574,576,577,579,581,582,584,585,587,588,590,592,593,595,596,598,600,601,603,604,606,608,609,611,613,614,616,618,619,621,623,624,626,628,629,631,633,634,636,638,639,641,643,645,646,648,650,652,653,655,657,659,660,662,664,666,667,669,671,673,675,676,678,680,682,684,686,687,689,691,693,695,697,699,700,702,704,706,708,710,712,714,716,718,720,721,723,725,727,729,731,733,735,737,744,750,757,763,770,776,783,789,796,803,809,816,823,830,836,843,850,857,864,871,878,885,892,899,906,913,920,927,935,942,1040,1040,986,1050,1050,1040,1040,1030,1050,1070,1040,1100,1140,1180,1190,1310,1330,1360,1350,1390,1410,1470,1470,1470,1500,1570,1580,1580,1560,1540,1480,1460,1420,1420,1380,1390,1420,1440,1460,1470,1450,1410,1380,1360,1370,1390,1400,1420,1450,1480,1530,1590,1660,1730,1820,1850,1940,1990,2030,2090,2190,2230,2320,2400,2490,2580,2680,2780,2890,3000,3110,3220,3320,3420,3520,3610,3700,3790,3870,3960,4050,4140,4230,4320,4420,4520,4620,4720,4820,4930 -Thailand,931,931,931,931,931,932,932,932,932,932,932,932,933,933,933,933,933,933,933,934,934,935,936,938,939,940,942,943,945,946,947,949,950,951,953,954,955,957,958,960,961,962,964,965,967,968,969,971,972,974,975,976,978,979,981,982,983,985,986,988,989,990,992,993,995,996,998,999,1000,1000,1000,1020,1030,1040,1060,1070,1080,1100,1110,1130,1140,1160,1170,1190,1200,1220,1230,1250,1270,1280,1300,1300,1310,1310,1310,1320,1320,1330,1330,1340,1340,1340,1350,1350,1360,1360,1370,1370,1370,1380,1380,1380,1380,1380,1370,1370,1360,1350,1340,1330,1320,1310,1300,1290,1280,1270,1260,1250,1240,1230,1230,1230,1230,1230,1230,1240,1240,1240,1240,1230,1230,1220,1220,1220,1210,1210,1200,1200,1190,1190,1190,1230,1260,1350,1290,1360,1330,1300,1310,1420,1540,1570,1640,1710,1770,1860,2000,2100,2210,2320,2400,2440,2480,2660,2710,2780,2970,3200,3450,3560,3640,3790,3920,4070,4230,4360,4540,4900,5480,6060,6650,7130,7630,8190,8760,9380,9800,9420,8600,8890,9190,9420,9910,10500,11100,11500,12000,12600,12800,12600,13500,13500,14400,14800,14900,15200,15700,16300,16900,17500,18200,18900,19600,20200,20800,21400,22000,22500,23000,23600,24100,24600,25200,25700,26300,26900,27500,28100,28700,29300,30000 -Timor-Leste,521,522,523,524,525,526,527,528,529,530,531,532,533,535,536,537,538,539,540,541,542,543,544,545,546,547,548,550,551,552,553,554,555,556,557,558,559,560,562,563,564,565,566,567,568,569,571,572,573,574,575,576,577,578,580,581,582,583,584,585,587,588,589,590,591,592,594,595,596,597,598,599,601,602,603,604,605,607,608,609,610,611,613,614,615,616,617,619,620,621,622,624,625,626,627,628,630,631,632,633,635,636,637,638,640,641,642,644,645,646,647,649,650,651,652,654,655,656,658,659,660,662,663,665,666,668,669,670,672,673,675,676,678,679,681,682,684,685,687,688,689,691,692,694,695,697,698,700,701,703,704,706,707,709,710,711,713,714,716,717,719,720,722,723,725,726,728,729,731,732,733,735,736,738,756,774,792,811,831,851,871,892,914,936,958,981,1010,1030,1050,1080,1100,1180,1260,1340,1440,1560,1740,1840,1830,1200,1390,1580,1430,1340,1300,1340,1240,1360,1530,1710,1850,1960,2030,2040,2110,2150,1930,1800,1490,1270,1110,986,890,822,779,756,747,749,758,771,787,804,822,840,859,878,897,917,937,958,979 -Togo,682,683,683,683,683,683,683,683,683,683,683,684,684,684,684,684,684,684,684,684,684,688,691,694,698,701,705,708,711,715,718,722,725,729,732,736,739,743,747,750,754,758,761,765,769,772,776,780,784,787,791,795,799,803,807,810,814,818,822,826,830,834,838,842,846,851,855,859,863,867,871,876,880,884,888,893,897,901,906,910,914,919,923,928,932,937,941,946,950,955,960,964,969,974,978,983,988,993,997,1000,1010,1010,1020,1020,1030,1030,1040,1040,1050,1050,1060,1060,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1070,1060,1060,1060,1060,1060,1060,1060,1060,1050,1050,1050,1050,1050,1050,1050,1040,1040,1040,1040,1040,1040,1040,1030,1050,1070,1080,1100,1110,1130,1140,1150,1170,1240,1290,1300,1330,1480,1640,1740,1790,1830,1970,1880,1960,1980,1850,1890,1830,1770,1830,1960,2030,1880,1710,1590,1450,1440,1450,1440,1410,1420,1420,1350,1310,1230,1020,1140,1200,1270,1410,1330,1330,1280,1220,1180,1200,1200,1180,1200,1190,1190,1190,1210,1230,1260,1280,1320,1350,1380,1430,1480,1530,1580,1630,1690,1740,1790,1830,1880,1920,1970,2010,2060,2100,2150,2200,2250,2300,2350,2400,2450,2510,2560 -Tonga,663,663,663,663,663,663,663,663,663,663,664,664,664,664,664,664,664,664,664,664,665,667,669,671,674,676,678,680,683,685,687,690,692,694,697,699,702,704,706,709,711,714,716,718,721,723,726,728,731,733,736,738,741,743,746,748,751,753,756,758,761,764,766,769,771,774,777,779,782,785,787,790,793,795,798,801,803,806,809,812,814,817,820,823,826,828,831,834,837,840,843,845,848,851,854,857,860,863,866,869,872,875,877,880,883,886,889,892,896,899,902,905,908,911,922,934,945,957,969,981,993,1000,1020,1030,1040,1050,1060,1070,1090,1100,1110,1120,1130,1150,1160,1170,1190,1200,1210,1230,1240,1250,1270,1280,1290,1310,1320,1340,1350,1370,1380,1400,1410,1430,1440,1460,1480,1490,1510,1530,1540,1560,1580,1590,1610,1630,1650,1660,1680,1700,1720,1740,1760,1780,1850,1910,1920,1990,2000,2020,2330,2660,3070,3290,3380,3620,3700,3800,3700,3680,3570,3800,3800,3940,4120,4260,4250,4230,4330,4470,4600,4740,4880,4950,4900,4950,4880,4640,4760,4840,4980,5100,5130,4950,5030,5190,5330,5410,5500,5520,5590,5670,5750,5850,5950,6060,6180,6310,6450,6590,6730,6880,7030,7190,7350,7510,7680,7850,8020,8200,8380 -Trinidad and Tobago,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1240,1250,1250,1260,1270,1280,1280,1290,1300,1300,1310,1320,1320,1330,1340,1350,1350,1360,1370,1380,1380,1390,1400,1410,1410,1420,1430,1440,1440,1450,1460,1470,1480,1480,1490,1500,1510,1520,1520,1530,1540,1550,1560,1570,1580,1580,1590,1600,1610,1620,1630,1640,1640,1650,1660,1670,1680,1690,1700,1710,1720,1730,1740,1750,1760,1760,1770,1780,1790,1800,1810,1820,1830,1840,1850,1860,1870,1880,1890,1900,1910,1920,1940,1950,1960,1970,1980,1990,2000,2010,2020,2030,2040,2090,2130,2180,2230,2280,2330,2380,2430,2490,2550,2610,2670,2730,2790,2850,2920,2990,3060,3130,3200,3270,3350,3420,3500,3580,3660,3750,3830,3920,4010,4100,4200,4290,4390,4490,4590,4700,4980,5050,5070,5020,5540,6500,6880,7220,7400,8070,8230,8420,8690,8810,9110,9380,9510,9980,10300,10700,10800,11200,11300,11800,11900,12900,13500,14800,15300,16200,16800,15600,14200,14800,14000,13400,12700,12100,12000,12300,12500,12200,12000,12300,12900,13800,14800,15900,17200,18300,19000,20400,23300,25000,26400,29800,31000,32000,30400,31300,31000,31300,31900,31600,31300,29600,29900,30300,30800,31200,31600,32100,32600,33100,33800,34400,35100,35900,36700,37500,38300,39200,40000,40900,41800,42800,43700,44700,45700,46700 -Tunisia,715,715,716,716,716,716,716,716,716,716,716,717,717,717,717,717,717,717,717,717,717,721,724,728,731,735,738,742,746,749,753,756,760,764,767,771,775,778,782,786,790,793,797,801,805,809,813,817,821,825,828,832,836,840,845,849,853,857,861,865,869,873,878,882,886,890,895,899,903,908,912,916,921,925,930,934,938,943,948,952,957,961,966,970,975,980,985,989,994,999,1000,1010,1010,1020,1020,1030,1030,1040,1040,1050,1050,1060,1060,1070,1070,1080,1080,1090,1090,1100,1110,1120,1130,1140,1150,1160,1170,1180,1200,1210,1220,1240,1260,1280,1290,1310,1330,1350,1360,1380,1400,1420,1440,1450,1470,1490,1510,1520,1540,1560,1580,1600,1610,1630,1650,1670,1680,1700,1720,1740,1760,1750,1930,1980,1990,1870,1970,1870,2090,1970,2180,2340,2250,2550,2610,2720,2730,2650,2870,2920,3030,3290,3800,3700,3900,4080,4290,4330,4510,4700,4920,5070,4950,5090,5140,5300,5100,5320,5210,5300,5620,5710,6020,6020,6100,6130,6470,6730,6960,7310,7570,7790,7830,8140,8580,8800,9180,9700,10000,10200,10400,10100,10400,10600,10800,10800,10800,11200,11600,12000,12500,12900,13400,13800,14200,14600,15000,15300,15700,16000,16400,16800,17100,17500,17900,18300,18700,19100,19500,20000,20400 -Turkey,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,1230,1240,1240,1250,1260,1260,1270,1280,1280,1290,1300,1310,1310,1320,1330,1330,1340,1350,1350,1360,1370,1380,1380,1390,1400,1410,1410,1420,1430,1440,1440,1450,1460,1470,1470,1480,1490,1500,1510,1510,1520,1530,1540,1550,1550,1560,1570,1580,1590,1600,1610,1620,1600,1590,1580,1560,1550,1530,1520,1530,1600,1670,1740,1750,1770,1780,1800,1810,1820,1840,1850,1870,1880,1890,1910,1920,1940,1950,1970,1980,2000,2020,2030,2050,2060,2080,2090,2110,2130,2140,2160,2180,2200,2090,1980,1880,1780,1690,1610,1530,1450,1380,1310,1560,1730,2010,1820,1990,2270,2350,2450,2270,2540,2560,2580,3030,3080,3310,3490,3230,2910,3010,2710,2570,2210,2790,2890,3210,2980,3200,3820,4090,4500,4020,4300,4270,5130,5450,5060,4920,4880,5050,5410,5530,5540,6170,6300,6590,6780,7070,7100,7550,7830,8420,8830,9650,9360,8880,8630,8290,9030,8830,9060,9350,9750,10200,11000,11100,10800,11400,11300,11700,12400,11600,12300,13000,13800,13900,13200,13900,12800,13500,14000,15200,16300,17300,17900,17800,16800,18000,19700,20300,21700,22400,23400,23700,24300,24900,25500,26200,26800,27500,28100,28800,29500,30100,30800,31500,32200,32900,33700,34400,35200,35900,36700,37600,38400,39200,40100,41000 -Turkmenistan,943,944,945,946,947,948,950,951,952,953,954,955,956,957,959,960,961,962,963,964,965,972,978,984,991,997,1000,1010,1020,1020,1030,1040,1040,1050,1060,1060,1070,1080,1090,1090,1100,1110,1110,1120,1130,1140,1140,1150,1160,1160,1170,1180,1190,1200,1200,1210,1220,1230,1230,1240,1250,1260,1270,1280,1280,1290,1300,1310,1320,1330,1330,1340,1350,1360,1370,1380,1390,1400,1400,1410,1420,1430,1440,1450,1460,1470,1410,1650,1590,1480,1470,1350,1480,1670,1900,1760,1940,1910,1960,2080,2040,2090,2270,2110,2340,2070,1980,1900,2070,2150,2300,2120,2300,2410,2300,2370,2110,1850,1130,977,981,899,1050,1210,1530,1910,2150,2240,2360,2390,2500,2530,2490,2590,2830,3240,3460,3750,3740,3900,3740,3670,3610,3550,3480,3420,3360,3740,4230,4620,5010,4950,5190,5330,5500,5870,6320,6350,6710,6520,7020,7300,7380,7110,7930,8290,8600,8890,9330,9380,10000,10200,10200,10900,10900,10500,10700,10600,10500,10100,9820,9600,9520,9520,9320,9110,9180,9000,8910,8780,8320,7710,6370,6290,5070,4600,4820,4200,4440,5110,5330,5510,5470,5590,5810,6500,7130,7820,8850,9250,9940,11200,12200,13200,14300,15000,15600,16700,17900,18800,20100,21300,22600,23800,24900,25800,26700,27400,28100,28800,29400,30100,30700,31400,32100,32800,33600,34300,35100,35800,36600 -Tuvalu,719,719,719,719,719,719,719,719,719,719,720,720,720,720,720,720,720,720,720,721,721,723,726,728,731,733,735,738,740,743,746,748,751,753,756,758,761,763,766,769,771,774,776,779,782,784,787,790,792,795,798,801,803,806,809,811,814,817,820,823,825,828,831,834,837,839,842,845,848,851,854,857,860,863,865,868,871,874,877,880,883,886,889,892,895,898,901,904,908,911,914,917,920,923,926,929,932,936,939,942,945,948,952,955,958,961,965,968,971,975,978,981,984,988,997,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100,1110,1120,1130,1140,1150,1170,1180,1190,1200,1210,1220,1240,1250,1260,1270,1290,1300,1310,1330,1340,1350,1360,1380,1390,1410,1420,1430,1450,1460,1480,1490,1510,1520,1530,1550,1560,1580,1600,1610,1630,1640,1660,1680,1690,1710,1720,1750,1750,2310,2640,2620,2610,2650,2780,2810,2580,2370,1880,1850,1950,1890,1840,1990,2160,2080,2370,2440,2490,2580,2840,2690,2520,2760,3180,3120,3060,3080,3290,3130,3050,2900,2930,3080,3290,3120,3010,3230,3210,3220,3270,3320,3390,3440,3490,3530,3590,3640,3700,3760,3830,3900,3980,4070,4160,4250,4340,4440,4530,4630,4740,4840,4950,5060,5170,5290,5400 -Uganda,464,464,464,464,464,464,464,464,464,464,464,465,465,465,465,465,465,465,465,465,465,467,470,472,474,477,479,481,483,486,488,491,493,495,498,500,503,505,507,510,512,515,517,520,522,525,527,530,532,535,538,540,543,545,548,551,553,556,559,562,564,567,570,572,575,578,581,584,586,589,592,595,598,601,604,607,610,612,615,618,621,624,627,630,634,637,640,643,646,649,652,655,658,662,665,668,671,675,678,681,684,688,691,694,698,701,704,708,711,715,718,722,725,729,730,731,733,734,736,737,738,741,744,748,751,754,757,760,763,766,769,772,775,778,781,784,788,791,794,797,800,803,806,809,813,816,819,822,825,828,832,779,808,823,791,822,846,860,843,863,881,849,861,934,978,972,1010,1030,1030,1110,1100,1100,1090,1060,1040,998,982,974,899,783,742,753,795,831,738,729,708,727,750,777,782,798,798,837,862,931,984,1000,1020,1070,1070,1090,1140,1170,1210,1240,1330,1390,1460,1510,1540,1630,1640,1640,1670,1690,1710,1760,1820,1880,1930,1990,2040,2100,2150,2200,2260,2310,2360,2410,2470,2520,2580,2640,2690,2750,2820,2880,2940,3010,3070 -Ukraine,763,764,765,766,767,767,768,769,770,771,772,773,774,775,776,777,778,779,779,780,781,786,791,797,802,807,812,817,823,828,833,839,844,850,855,861,866,872,878,883,889,895,901,906,912,918,924,930,936,942,948,955,961,967,973,980,986,992,999,1010,1010,1020,1030,1030,1040,1050,1050,1060,1070,1070,1080,1090,1090,1100,1110,1120,1120,1130,1140,1140,1150,1160,1170,1170,1180,1190,1140,1340,1290,1200,1190,1090,1200,1360,1540,1430,1570,1540,1590,1680,1650,1690,1840,1710,1890,1670,1600,1540,1680,1740,1860,1720,1860,1950,1860,1920,1710,1500,917,791,794,727,845,973,1230,1540,1730,1810,1900,1920,2010,2030,2000,2070,2270,2590,2770,3000,2990,3110,2990,2930,2880,2820,2770,2720,2670,2970,3360,3670,3970,3920,4110,4220,4350,4640,4990,5010,5290,5140,5530,5750,5810,5590,6230,6500,6750,6970,7310,7340,7840,7970,7940,8520,8730,8710,9070,9240,9430,9350,9330,9380,9570,9840,9910,9960,10300,10400,10600,10700,10500,9560,8610,7380,5720,5060,4590,4500,4450,4490,4800,5290,5620,6200,7000,7250,7830,8500,8740,7480,7820,8280,8320,8340,8240,7470,7670,7990,8330,8680,9040,9400,9750,10100,10400,10700,11000,11300,11500,11800,12100,12300,12600,12900,13200,13500,13800,14100,14400,14700,15000 -United Arab Emirates,998,1000,1010,1010,1010,1020,1020,1020,1030,1030,1040,1040,1040,1050,1050,1060,1060,1060,1070,1070,1080,1080,1080,1090,1090,1100,1100,1100,1110,1110,1120,1120,1120,1130,1130,1140,1140,1150,1150,1150,1160,1160,1170,1170,1180,1180,1190,1190,1190,1200,1200,1210,1210,1220,1220,1230,1230,1230,1240,1240,1250,1250,1260,1260,1270,1270,1280,1280,1290,1290,1300,1320,1330,1350,1370,1390,1410,1430,1460,1480,1500,1520,1540,1560,1590,1610,1630,1660,1680,1710,1730,1760,1780,1810,1830,1860,1890,1920,1940,1970,2000,2030,2060,2090,2120,2150,2180,2210,2250,2280,2310,2350,2380,2420,2300,2190,2080,1980,1890,1990,2090,2200,2320,2310,2290,2270,2220,2180,2130,1970,1830,1700,1570,1460,1350,1330,1310,1290,1270,1250,1230,1220,1200,1180,1160,1170,1180,1180,1190,1200,1210,1220,1220,1230,1240,1240,1250,1260,1410,1580,1770,1980,2220,2890,4920,8350,14200,24100,29000,34800,41800,40500,38800,59400,145000,163000,161000,163000,139000,155000,178000,176000,154000,141000,136000,126000,97100,98100,80100,89100,111000,106000,103000,98800,100000,102000,102000,105000,101000,98300,103000,99300,96400,98400,98600,92300,88600,79300,71700,61100,57600,58400,59800,62500,64100,66000,67100,67700,68200,68900,69400,70000,70800,71600,72700,73900,75300,76900,78500,80200,81900,83800,85600,87500,89400,91400,93400,95500,97600,99800,102000 -United Kingdom,3430,3440,3450,3340,3290,3440,3380,3550,3340,3400,3570,3490,3300,3420,3290,3590,3340,3350,3290,3190,3400,3400,3410,3460,3600,3630,3390,3600,3560,3550,3660,3650,3720,3710,3750,3980,4060,3980,4090,4010,4150,4020,3930,4080,4380,4530,4480,4370,4510,4570,4480,4630,4780,4900,5080,4910,5190,5190,5050,5210,5270,5200,4930,5350,5440,5520,5650,5620,5840,5840,6040,6310,6270,6270,6450,6460,6440,6410,6360,6170,6550,6630,6690,6850,6730,6630,6620,6830,6990,7160,7170,7270,7070,6960,7210,7380,7630,7640,7900,8110,8010,8100,8160,8010,8040,8200,8340,8420,8040,8160,8300,8490,8560,8850,8930,9330,9370,9270,9430,8680,8310,7420,7730,7890,8180,8410,8090,8650,8670,8870,8730,8270,8200,8410,8850,9120,9480,9750,9760,10100,11000,11900,12000,12100,11500,10900,10700,10500,10700,10900,11200,11500,11400,11800,12200,12600,12700,12800,12800,13200,13800,14000,14000,14500,15200,15400,15600,15900,16500,16800,17100,17400,18000,19200,19000,18900,19400,19900,20600,21100,20600,20400,20800,21600,22200,22900,23800,24900,26100,26600,26800,26400,26400,27000,28000,28600,29300,30100,31000,31900,33000,33700,34400,35400,36100,36900,37600,38200,37700,35800,36200,36500,36700,37100,38000,38500,38900,39500,40100,40700,41300,41900,42600,43300,44100,45000,45900,46900,47900,48900,50000,51100,52200,53400,54600,55800,57000,58300,59600,60900,62300 -United States,2130,2170,2200,2170,2170,2210,2250,2270,2110,2220,2280,2330,2290,2310,2360,2350,2250,2250,2260,2250,2240,2280,2340,2310,2380,2430,2450,2460,2460,2380,2550,2710,2810,2910,2770,2870,2910,2820,2800,2940,2790,2730,2710,2750,2900,2950,2970,3050,3130,3040,3060,3180,3350,3570,3580,3510,3580,3500,3520,3620,3710,3640,3750,3990,4130,3910,3880,4010,4060,4170,4060,4150,4220,4320,4190,4310,4270,4310,4390,4830,5290,5340,5550,5550,5520,5440,5480,5600,5460,5680,5640,5770,6200,5790,5520,6070,5830,6280,6300,6750,6820,7440,7370,7590,7350,7740,8470,8450,7610,8370,8280,8410,8660,8820,7980,8080,9060,8700,9370,9400,9180,8790,9130,10100,10200,10300,10800,10800,10700,11300,10100,9270,7990,7770,8310,8870,10100,10400,9910,10600,11300,13200,15700,18500,19800,18800,14800,14300,14500,14300,15300,16200,16500,17000,16600,17400,17400,17400,17000,17900,18100,18200,19000,19500,20300,21400,22500,22800,23600,24100,23900,24400,25400,26600,26300,25900,27000,28000,29300,30000,29600,30100,29200,30200,32100,33100,33900,34800,35900,36800,37100,36500,37300,37800,38900,39500,40500,41800,43200,44700,46000,46000,46400,47300,48600,49800,50600,51000,50400,48600,49400,49800,50500,51000,51800,52800,53300,54200,54900,55600,56500,57400,58400,59500,60600,61800,63100,64400,65800,67300,68700,70300,71800,73400,75000,76700,78400,80100,81900,83700,85600 -Uruguay,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1760,1800,1850,1890,1940,1980,2030,2080,2130,2180,2230,2280,2340,2390,2450,2510,2570,2630,2690,2750,2820,2880,2950,3020,3090,3170,3240,3320,3400,3480,3560,3650,3730,3820,3910,4000,4100,4200,4300,4400,4500,4610,4720,4830,4950,5060,5180,5310,5430,5560,5690,5690,6870,6790,6050,5070,5500,5550,5870,5090,5440,5050,5440,6270,6080,6720,6820,5930,7110,6320,5620,6000,6010,6380,6960,6730,6930,6540,5900,5930,5820,5860,6750,6860,6930,6130,6650,7240,7800,7760,8230,7710,9090,8520,6780,6270,6320,6800,7020,7730,6550,6650,7350,7480,7910,7330,7720,8520,8660,8430,9310,7480,6750,5740,6650,6850,6980,6910,7250,7200,7060,7030,6300,6230,6850,6890,7400,7740,7830,7930,8130,8570,8500,8740,9090,8950,8900,8780,8830,7890,8000,8070,7730,7630,7640,7610,7750,7320,7320,7670,7930,7850,7560,7610,7830,8280,8570,8610,9010,9510,10000,10200,9150,8560,8410,8480,9170,9830,9770,9830,9840,10100,10800,11000,11800,11500,12100,13000,13500,13200,12900,12400,11400,11500,12100,13000,13500,14300,15300,15900,17100,17900,18500,19300,19800,19800,20000,20600,21300,22000,22600,23300,23900,24600,25200,25900,26500,27100,27700,28300,28900,29600,30200,30900,31600,32300,33000,33700,34500,35300,36000 -Uzbekistan,502,502,502,502,503,503,503,503,503,503,503,503,503,503,503,503,503,504,504,504,504,505,507,508,510,512,513,515,516,518,519,521,523,524,526,528,529,531,532,534,536,537,539,541,542,544,546,547,549,551,552,554,556,557,559,561,563,564,566,568,570,571,573,575,577,578,580,582,584,586,587,589,591,593,595,596,598,600,602,604,606,608,609,611,613,615,590,688,660,612,608,555,606,685,777,717,787,772,790,837,816,834,904,840,926,818,779,747,813,842,896,826,890,932,888,911,905,782,676,584,550,519,559,602,649,699,752,810,873,881,919,926,910,942,1030,1170,1250,1350,1340,1390,1330,1310,1280,1250,1230,1200,1180,1300,1470,1600,1730,1710,1780,1830,1880,2000,2150,2150,2270,2200,2360,2450,2480,2390,2660,2780,2880,2980,3120,3140,3350,3410,3400,3650,3660,3570,3640,3620,3620,3510,3420,3360,3360,3370,3330,3270,3310,3270,3250,3230,3070,2990,2600,2480,2300,2240,2240,2310,2370,2450,2500,2580,2650,2730,2900,3070,3250,3530,3780,4020,4240,4470,4770,5070,5370,5700,6040,6360,6690,7040,7410,7780,8150,8500,8820,9110,9370,9620,9850,10100,10300,10500,10800,11000,11300,11500,11800,12000,12300,12600,12800 -Vanuatu,585,586,586,586,586,586,586,586,586,586,586,586,586,587,587,587,587,587,587,587,587,589,591,593,595,597,599,601,603,605,607,609,612,614,616,618,620,622,624,626,628,631,633,635,637,639,641,643,646,648,650,652,654,657,659,661,663,666,668,670,672,675,677,679,682,684,686,689,691,693,696,698,700,703,705,708,710,712,715,717,720,722,725,727,729,732,734,737,739,742,744,747,750,752,755,757,760,762,765,768,770,773,775,778,781,783,786,789,791,794,797,799,802,805,815,824,834,844,855,865,875,887,899,910,923,935,947,960,972,985,998,1010,1020,1040,1050,1070,1080,1090,1110,1120,1140,1150,1170,1180,1200,1210,1230,1250,1260,1280,1300,1310,1330,1350,1360,1380,1400,1420,1440,1460,1470,1490,1510,1530,1550,1570,1590,1610,1640,1660,1680,1700,1720,1740,2270,2100,2080,2000,2280,2310,1990,2020,2190,2590,2710,2680,2570,2520,2480,2500,2550,2560,2550,2490,2650,2610,2620,2690,2760,2720,2820,2660,2470,2510,2540,2610,2760,2830,2940,2970,2950,2920,2900,2890,2890,2810,2860,2890,2900,2900,2930,2960,2990,3030,3080,3130,3190,3260,3330,3400,3470,3550,3630,3710,3790,3880,3960,4050,4140,4230,4330 -Venezuela,682,682,682,682,682,682,682,682,682,683,683,683,683,683,683,683,683,683,683,684,684,687,690,693,696,699,702,705,708,711,715,718,721,724,727,731,734,737,740,744,747,750,754,757,760,764,767,770,774,777,781,784,788,791,795,798,802,805,809,813,816,820,823,827,831,834,838,842,846,849,853,878,904,930,957,985,1010,1040,1070,1110,1140,1170,1210,1240,1270,1350,1260,1390,1420,1360,1440,1290,1100,1530,1290,1480,1310,1180,1320,1300,1240,1200,1290,1380,1320,1300,1200,1190,1270,1300,1340,1410,1450,1660,1440,1470,1380,1600,1580,1470,1750,1740,1800,2070,2470,3160,3770,3980,4510,4980,4980,4160,4270,4160,4390,4830,4980,5490,5710,5960,5640,5590,5020,5260,6510,7510,8670,10300,11900,11600,11000,11200,11500,11500,12100,12500,13400,14600,13500,13400,13000,12400,12500,12400,13700,14000,13800,14200,14700,14700,15300,15500,15600,16300,17000,17600,18900,19500,19400,19000,18000,17400,16600,14900,14100,13800,14000,14700,15400,14000,14500,15500,16100,15800,15100,15300,15000,15600,15400,14200,14400,14600,13100,11900,13800,14900,16100,17300,17900,17100,16500,17000,17700,17700,16700,15600,15000,14500,14200,14000,13600,13300,13100,12900,12900,12900,13100,13300,13500,13800,14100,14400,14700,15100,15400,15700,16100,16400,16800,17200,17600 -Vietnam,861,861,861,861,861,861,861,861,862,862,862,862,862,862,862,862,863,863,863,863,863,862,862,861,861,860,860,859,858,858,857,857,856,855,855,854,854,853,852,852,851,851,850,849,849,848,848,847,847,846,845,845,844,844,843,842,842,841,841,840,840,839,838,838,837,837,836,836,835,834,834,841,848,856,863,870,878,886,893,901,909,917,924,932,941,949,957,965,973,982,990,999,1010,1020,1030,1030,1040,1050,1060,1070,1080,1090,1100,1110,1120,1130,1140,1150,1160,1170,1180,1180,1190,1200,1190,1180,1180,1170,1160,1160,1150,1140,1130,1120,1120,1110,1100,1090,1090,1080,1070,1070,1060,1050,1050,1040,1030,1030,1020,1020,1010,1010,1000,994,989,984,979,974,970,965,961,985,1010,1030,1060,1090,1100,1120,1130,1140,1150,1170,1270,1270,1290,1260,1230,1050,1000,1060,1050,1080,1150,1200,1130,1020,1170,1180,1170,1150,1100,1110,1180,1220,1300,1350,1350,1370,1430,1460,1500,1560,1670,1770,1900,2040,2200,2340,2440,2520,2650,2780,2920,3090,3280,3490,3690,3910,4090,4260,4490,4720,4910,5120,5370,5670,5960,6250,6550,6870,7210,7550,7880,8200,8490,8760,9010,9240,9470,9680,9900,10100,10300,10600,10800,11000,11300,11500,11800,12100,12300 -Yemen,877,879,882,884,887,889,892,894,897,899,902,905,907,910,912,915,917,920,923,925,928,931,933,936,938,941,944,947,949,952,955,957,960,963,965,968,971,974,976,979,982,985,988,990,993,996,999,1000,1000,1010,1010,1010,1020,1020,1020,1030,1030,1030,1030,1040,1040,1040,1050,1050,1050,1050,1060,1060,1060,1070,1070,1070,1080,1080,1080,1080,1090,1090,1090,1100,1100,1100,1110,1110,1110,1120,1120,1120,1130,1130,1130,1130,1140,1140,1140,1150,1150,1150,1160,1160,1160,1170,1170,1170,1180,1180,1180,1190,1190,1190,1200,1200,1200,1210,1210,1210,1220,1220,1220,1230,1230,1240,1240,1240,1250,1250,1250,1260,1260,1260,1270,1270,1270,1280,1280,1280,1290,1290,1300,1300,1300,1310,1310,1310,1320,1320,1320,1330,1330,1330,1340,1350,1360,1370,1370,1380,1390,1400,1400,1410,1420,1420,1430,1450,1450,1460,1480,1500,1510,1530,1810,2080,2190,2410,2490,2620,2940,3170,3350,3430,3360,3460,3430,3520,3550,3420,3390,3410,3440,3450,3330,3370,3460,3420,3490,3530,3560,3630,3740,3770,3890,3930,3970,4000,4050,4160,4170,4190,4230,4270,4480,3810,3790,3870,3770,2640,2330,2380,2430,2510,2560,2610,2670,2730,2790,2850,2910,2980,3040,3110,3180,3250,3320,3390,3470,3550,3620,3700,3790,3870,3960 -Zambia,663,665,667,668,670,671,673,675,676,678,680,681,683,684,686,688,689,691,693,694,696,698,700,701,703,705,706,708,710,711,713,715,717,718,720,722,724,725,727,729,731,732,734,736,738,740,741,743,745,747,748,750,752,754,756,758,759,761,763,765,767,769,771,772,774,776,778,780,782,784,786,787,789,791,793,795,797,799,801,803,805,807,809,811,813,815,816,818,820,822,824,826,828,830,832,834,836,838,841,843,845,847,849,851,853,855,857,859,861,863,865,867,869,872,900,930,960,992,1030,1060,1090,1130,1160,1190,1230,1260,1300,1340,1380,1420,1460,1500,1550,1590,1640,1690,1740,1790,1840,1890,1950,2000,2060,2120,2180,2250,2310,2380,2450,2520,2590,2690,2780,2880,2980,2830,3070,3220,2880,3130,3110,3050,2970,2970,3160,3450,3810,4320,4350,3820,3820,3760,3980,3770,3750,3590,3550,3310,3160,2930,2930,2800,2770,2750,2630,2540,2510,2500,2460,2400,2340,2280,2190,2280,2030,2030,2100,2120,2050,2080,2100,2160,2190,2280,2380,2480,2610,2750,2880,3060,3280,3360,3510,3580,3630,3630,3640,3750,3870,3980,4110,4240,4360,4490,4610,4720,4840,4950,5070,5180,5290,5410,5530,5650,5780,5910,6040,6170,6310,6450,6590 -Zimbabwe,869,870,871,872,873,874,875,876,877,878,879,880,881,883,884,885,886,887,888,889,890,891,892,893,894,895,896,898,899,900,901,902,903,904,905,906,907,908,910,911,912,913,914,915,916,917,918,920,921,922,923,924,925,926,927,928,930,931,932,933,934,935,936,937,939,940,941,942,943,944,945,947,948,949,950,951,952,953,955,956,957,958,959,960,961,963,964,965,966,967,968,970,971,972,973,974,975,977,978,979,980,981,983,984,985,986,987,989,990,991,992,993,994,996,997,998,999,1000,1000,1000,1000,1010,1010,1010,1010,1010,1010,1020,1020,1020,1020,1020,1040,1070,1090,1110,1130,1160,1180,1200,1230,1250,1280,1310,1330,1360,1390,1420,1450,1480,1510,1550,1560,1640,1660,1740,1870,1970,1950,1990,2000,2050,2030,2000,2010,2090,2020,1960,1670,2160,2560,2700,2830,2820,2790,2730,2620,2380,2250,2260,2410,2620,2580,2520,2380,2450,2410,2350,2450,2490,2590,2670,2370,2350,2520,2480,2690,2710,2750,2690,2570,2580,2320,1910,1780,1650,1580,1490,1210,1290,1460,1660,1850,1900,1910,1890,1860,1910,1950,2000,2050,2100,2150,2200,2260,2310,2360,2410,2470,2520,2580,2630,2690,2750,2810,2880,2940,3000,3070,3140,3210 diff --git a/Lecture_DataScience_dotfiles/data/mean_years_in_school_women_percent_men_25_to_34_years.csv b/Lecture_DataScience_dotfiles/data/mean_years_in_school_women_percent_men_25_to_34_years.csv deleted file mode 100644 index a8ebe191..00000000 --- a/Lecture_DataScience_dotfiles/data/mean_years_in_school_women_percent_men_25_to_34_years.csv +++ /dev/null @@ -1,188 +0,0 @@ -country,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015 -Afghanistan,15.4,15.8,15.4,15.6,15.9,16.1,16.4,16.6,16.2,16.4,16.5,16.7,17.3,17.4,17.4,17.5,17.6,17.6,18.1,18.1,18.6,18.5,18.9,18.9,19.2,19.1,19.4,19.7,19.9,20.1,20.3,20.5,20.7,20.9,21.3,21.4,21.5,21.9,22.2,22.3,22.6,22.9,23.1,23.4,23.5,23.7 -Albania,87.4,87.9,88.3,88.9,89.2,89.7,90.2,90.6,91,91.4,92,92.4,92.8,93.1,93.5,94,94.2,94.7,95,95.4,95.7,96.1,96.5,96.9,97.1,97.4,97.8,98.1,98.5,98.7,99,99.3,99.5,99.7,100,100,100,101,101,101,101,102,102,102,102,103 -Algeria,90,90.3,90.2,90.5,90.4,90.4,90.4,90.6,90.3,90.3,90.6,90.3,90.3,90.1,89.9,89.7,89.5,89.2,88.9,88.6,88.1,87.7,87.3,86.6,85.9,85.4,85.4,85.6,85.6,85.8,85.9,86.1,86.4,86.7,87.1,87.2,87.6,88,88.3,88.7,89,89.4,89.7,90,90.5,90.8 -Andorra,97,97.4,97.8,98.1,98.4,98.8,99.1,99.5,99.8,100,100,101,101,101,101,102,102,102,102,103,103,103,103,103,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,105,106,106,106,106 -Angola,51.3,51.4,51.9,52.3,52.8,53.2,53.4,53.8,54.3,54.8,55.3,55.7,56.1,56.4,56.9,57.5,58,58.4,58.7,59.3,59.9,60.4,60.8,61.2,61.8,62.4,62.8,63.5,63.9,64.5,65,65.7,66.2,66.7,67.3,67.8,68.5,68.9,69.5,70.1,70.5,71.2,71.7,72.2,72.9,73.3 -Antigua and Barbuda,103,103,104,104,104,105,105,105,105,106,106,106,106,107,107,107,107,108,108,108,108,108,108,109,109,109,109,109,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110 -Argentina,96.7,97.2,97.5,97.8,98.3,98.7,99,99.5,99.9,100,101,101,101,102,102,102,103,103,103,103,104,104,104,105,105,105,105,106,106,106,106,106,107,107,107,107,107,107,107,108,108,108,108,108,108,108 -Armenia,91.7,92.1,92.5,92.9,93.5,93.8,94.2,94.7,94.9,95.3,95.8,96.1,96.5,96.8,97.3,97.5,97.8,98.1,98.5,98.8,99.2,99.4,99.7,100,100,100,101,101,101,102,102,102,102,102,103,103,103,103,104,104,104,104,104,104,105,105 -Australia,95.2,95.5,95.7,96.1,96.3,96.5,96.9,97,97.3,97.5,97.7,97.9,98.1,98.3,98.4,98.6,98.8,99,99.1,99.2,99.4,99.5,99.7,99.7,99.9,100,100,100,100,101,101,101,101,101,101,101,102,102,102,102,102,102,102,103,103,103 -Austria,85,85.4,85.9,86.4,86.9,87.3,87.7,88.2,88.6,89.1,89.4,89.9,90.4,90.8,91.3,91.7,92.1,92.5,93,93.3,93.7,94.1,94.5,94.9,95.3,95.7,96.1,96.4,96.7,97.1,97.5,97.7,98.1,98.4,98.6,99,99.2,99.5,99.8,100,100,100,101,101,101,101 -Azerbaijan,86.9,87.2,87.7,88.2,88.6,89.1,89.5,89.8,90.3,90.7,91.1,91.4,91.9,92.3,92.6,92.9,93.3,93.7,94,94.4,94.7,95,95.4,95.7,95.9,96.4,96.6,96.8,97.1,97.4,97.7,98,98.2,98.4,98.6,98.9,99.1,99.4,99.6,99.8,100,100,100,101,101,101 -Bahamas,96.2,96.6,97.1,97.4,97.8,98.2,98.5,98.8,99.2,99.6,99.9,100,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,105,105,105,105,105,106,106,106,106,106,106,106,107,107,107,107,107,107,107 -Bahrain,79.5,80.3,81,81.9,82.8,83.5,84.5,85.1,86.1,87,87.9,88.7,89.5,90.5,91.4,92.3,93.3,94.2,95,96,97,97.9,98.9,99.9,101,102,102,103,103,104,104,105,105,105,105,106,106,106,106,107,107,107,107,107,107,108 -Bangladesh,47.3,47.8,48.2,48.6,49.2,49.6,50.2,50.7,51.2,51.7,52.4,53,53.7,54.2,54.7,55.5,56.2,56.9,57.8,58.3,59.3,59.9,60.8,61.7,62.4,63.4,64.2,65.1,66.1,66.8,67.7,68.4,69.2,69.9,70.7,71.6,72.4,73,73.7,74.4,75,75.7,76.2,76.8,77.4,77.9 -Barbados,93.9,94.3,94.8,95.1,95.6,96.1,96.4,97,97.4,97.7,98.2,98.6,99,99.3,99.8,100,101,101,101,102,102,103,103,103,104,104,104,104,105,105,105,106,106,106,106,107,107,107,107,107,108,108,108,108,108,108 -Belarus,98,98.5,98.9,99.1,99.5,99.9,100,100,101,101,101,102,102,102,102,103,103,103,103,103,103,104,104,104,104,104,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,105,105,105 -Belgium,95.2,95.6,96,96.3,96.7,97,97.3,97.7,98.1,98.3,98.5,99,99.2,99.5,99.7,100,100,100,101,101,101,101,102,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104,104,104,104,104,104,104,104,104 -Belize,81.2,81.6,82,82.4,82.8,83.3,83.9,84.2,84.9,85.2,85.7,86.2,86.6,87.1,87.5,87.9,88.5,88.9,89.4,89.7,90.2,90.7,91,91.5,91.9,92.5,92.9,93.1,93.6,94,94.5,94.8,95.3,95.6,96,96.4,96.7,97.1,97.5,97.8,98.2,98.5,98.9,99.2,99.5,99.9 -Benin,33.3,33.5,33.7,34.3,34.2,34.8,34.8,35.2,35.7,35.5,35.8,36.2,36.8,37,37.1,37.4,37.9,38.3,38.3,38.7,39,39.4,39.9,40.2,40.7,40.9,41.2,41.7,42,42.3,42.9,43.1,43.6,43.9,44.2,44.6,45.1,45.5,46,46.2,46.6,47.3,47.6,47.9,48.4,48.8 -Bhutan,32.5,32.5,32.9,33.2,33.6,33.8,34,34.4,34.4,35,35.1,35.5,36,36,36.3,36.9,37.2,37.4,37.9,38.1,38.5,38.9,39.2,39.6,40,40.4,40.8,41,41.4,41.8,42.3,42.6,43.1,43.4,43.8,44.2,44.7,45.1,45.6,46,46.4,46.8,47.4,47.7,48.2,48.7 -Bolivia,67.7,68.2,68.6,69.3,69.7,70.2,70.8,71.4,72,72.4,72.9,73.6,74.1,74.8,75.3,75.9,76.5,77.1,77.6,78.1,78.8,79.4,80,80.7,81.2,81.9,82.4,82.9,83.5,84,84.6,85.2,85.6,86,86.7,87.2,87.6,88,88.5,89,89.4,89.8,90.3,90.6,91.1,91.5 -Bosnia and Herzegovina,81.2,81.6,82.1,82.7,83.2,83.5,84.1,84.4,84.9,85.3,85.9,86.3,86.9,87.2,87.7,88.1,88.5,89.1,89.5,89.9,90.4,90.8,91.2,91.7,92.1,92.4,92.9,93.4,93.8,94.2,94.7,95.1,95.4,95.8,96.3,96.6,97,97.3,97.6,98,98.3,98.7,99,99.3,99.6,99.8 -Botswana,106,107,107,107,108,109,109,109,110,110,110,111,111,111,111,111,111,111,111,111,111,111,111,110,110,109,110,110,110,110,110,111,111,111,111,111,112,112,112,113,113,113,113,113,113,114 -Brazil,96.2,96.6,97.2,97.6,98.2,98.7,99,99.5,100,100,101,102,102,102,103,103,104,104,105,105,106,106,107,107,107,108,108,108,109,109,109,110,110,110,111,111,111,111,112,112,112,112,113,113,113,113 -Brunei,85.1,85.6,86,86.4,86.9,87.3,87.7,88.2,88.5,89,89.5,89.8,90.3,90.7,91.1,91.4,91.8,92.2,92.6,92.9,93.4,93.6,93.9,94.3,94.6,95,95.3,95.6,95.8,96.1,96.4,96.7,96.9,97.3,97.4,97.8,97.9,98.2,98.4,98.6,98.8,98.9,99.2,99.3,99.5,99.7 -Bulgaria,96.8,97.2,97.5,98,98.4,98.8,99.1,99.5,99.8,100,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,105,105,105,105,105,105,105,105,106,106,106,106,106,106,106,106,106,106,107,107,107 -Burkina Faso,37.9,37.8,38.6,38.8,39.6,39.4,40.2,40,40.7,41.3,41.6,42.2,42.4,43,43.2,43.4,44.5,44.7,45.5,45.3,46,46.7,47.1,47.7,48.6,48.9,49.7,50.5,51.2,51.9,52.4,53,53.4,54.1,55.1,55.4,56.1,56.5,57.1,57.7,58.1,58.8,59.1,59.7,60,60.6 -Burundi,54.3,55,55.2,55.8,56.4,56.5,56.7,57.7,58,58.2,58.8,59.4,60,60.5,60.8,61.7,62,62.5,63.1,63.6,64.3,64.7,65.3,65.9,66.7,67,67.7,68.5,69,69.5,70.2,70.9,71.3,71.9,72.4,72.8,73.4,74,74.5,75.1,75.4,76,76.6,77.1,77.6,77.9 -Cambodia,57,57.3,57.7,58,58.3,58.7,59.3,59.6,60,60.3,60.7,61.2,61.8,61.9,62.7,63,63.3,63.9,64.4,64.7,65.4,65.7,66.2,66.7,67.1,67.6,68.2,68.5,69.1,69.6,70.3,70.7,71.3,71.8,72.2,72.9,73.3,73.8,74.4,74.9,75.5,76.1,76.5,77,77.5,78.1 -Cameroon,48.5,49.2,49.5,50.1,50.9,51.3,52,52.7,53.4,54,54.6,55.5,56.3,56.9,57.8,58.4,59.4,60.1,61.1,61.9,62.9,63.7,64.7,65.6,66.6,67.6,68.5,69.4,70.1,70.9,71.7,72.4,73.1,73.8,74.4,75,75.6,76.3,76.8,77.4,77.8,78.4,78.8,79.3,79.7,80.3 -Canada,96.8,97.1,97.3,97.5,97.7,97.9,98.1,98.2,98.4,98.5,98.7,98.9,98.9,99.1,99.2,99.3,99.3,99.4,99.5,99.5,99.6,99.6,99.6,99.8,99.9,99.9,100,100,100,100,100,100,101,101,101,101,101,101,101,101,101,102,102,102,102,102 -Cape Verde,66.7,67.2,67.9,68.3,68.8,69.2,69.5,70.2,70.7,71.3,71.7,72.1,72.7,73,73.4,74,74.6,74.9,75.5,76,76.6,77,77.6,78.1,78.6,79,79.5,80.1,80.7,81.1,81.5,81.9,82.4,82.8,83.3,83.8,84.3,84.6,85.1,85.5,86,86.5,86.9,87.3,87.8,88.2 -Central African Republic,39.8,40.2,40.3,40.7,41,41.4,41.6,42.2,42.4,42.9,43,43.4,43.9,44.1,44.8,45,45.5,45.8,46.2,46.7,47.2,47.6,47.9,48.4,48.9,49.4,49.8,50.4,50.8,51.3,51.8,52.4,52.8,53.5,53.8,54.4,54.9,55.4,55.9,56.5,56.9,57.6,58,58.6,59.1,59.6 -Chad,22.8,22.9,22.9,23.4,23.5,23.9,23.8,24.2,24.1,24.5,24.4,24.7,25,25.2,25.4,25.6,25.8,26,26.2,26.2,26.8,26.8,27.2,27.2,27.6,28,28.2,28.5,28.7,29,29.2,29.6,29.8,30.2,30.6,30.6,31,31.3,31.6,32.1,32.3,32.7,32.9,33.3,33.7,34 -Chile,94.2,94.6,94.8,95.2,95.6,95.9,96.2,96.6,96.8,97.2,97.4,97.8,97.9,98.2,98.4,98.7,99,99.2,99.3,99.6,99.8,100,100,100,100,101,101,101,101,101,102,102,102,102,102,103,103,103,103,103,104,104,104,104,104,104 -China,66.5,67,67.4,68.1,68.5,69,69.4,70.1,70.5,71.1,71.6,72.1,72.7,73.1,73.6,74.2,74.7,75.4,75.8,76.3,77,77.5,78,78.4,79,79.5,80.1,80.5,81.1,81.6,82.2,82.6,83.1,83.7,84.1,84.7,85.1,85.6,86.1,86.6,87,87.5,87.9,88.4,88.8,89.2 -Colombia,89.8,90.5,90.9,91.4,91.9,92.5,92.9,93.4,93.8,94.3,94.7,95.2,95.7,96.1,96.7,97.2,97.6,98,98.5,98.9,99.4,99.9,100,101,101,101,102,102,103,103,103,104,104,104,105,105,105,105,106,106,106,106,107,107,107,107 -Comoros,55,55.4,56.1,56.5,57,57.6,58,58.4,58.8,59.5,59.9,60.5,61,61.6,62,62.6,63,63.8,64.4,64.8,65.6,66.1,66.8,67.4,67.9,68.6,69.3,70.1,70.6,71.2,71.8,72.6,73.2,73.9,74.4,74.9,75.6,76.2,76.7,77.3,77.8,78.4,78.9,79.4,79.8,80.3 -"Congo, Dem. Rep.",48.5,49,49.4,49.8,50.1,50.4,50.9,51.4,51.5,52.2,52.5,52.8,53.3,53.8,54.2,54.6,55,55.5,56,56.5,56.8,57.3,57.8,58.3,58.8,59.3,59.8,60.4,60.8,61.3,61.8,62.2,62.9,63.5,64,64.5,65,65.6,66,66.6,67.3,67.8,68.3,68.8,69.5,70 -"Congo, Rep.",54.8,55.6,55.9,56.5,57,57.7,58.4,59,59.6,60.1,60.7,61.3,62.1,62.8,63.5,64.4,65,65.9,66.6,67.4,68.2,69.1,69.9,70.8,71.7,72.7,73.6,74.4,75.3,76.2,77,77.8,78.5,79.1,79.9,80.6,81.2,81.9,82.5,83,83.7,84.2,84.7,85.2,85.8,86.3 -Costa Rica,101,101,102,102,103,103,103,104,104,104,105,105,105,105,106,106,106,106,106,107,107,107,107,107,107,107,107,107,107,107,107,108,108,108,108,108,108,108,108,108,108,108,109,109,109,109 -Cote d'Ivoire,38.7,39.4,39.6,40.2,40.3,40.7,41.3,41.7,42,42.2,42.9,43.2,43.7,44.1,44.6,45,45.4,46,46.5,47.1,47.6,48.1,48.8,49.2,49.8,50.3,50.9,51.4,51.8,52.5,53,53.6,53.9,54.4,54.9,55.4,56,56.4,56.9,57.4,57.9,58.3,58.9,59.5,59.9,60.5 -Croatia,91.6,92.1,92.4,92.8,93.4,93.8,94.2,94.7,95.1,95.5,95.9,96.2,96.8,97.1,97.6,97.9,98.4,98.8,99.1,99.5,99.9,100,101,101,102,102,102,103,103,103,104,104,104,104,105,105,105,105,106,106,106,106,106,106,107,107 -Cuba,95.6,95.9,96.1,96.2,96.6,96.7,96.9,97.1,97.4,97.6,97.6,97.9,98.1,98.3,98.4,98.6,98.8,99.1,99.2,99.4,99.7,99.9,100,101,101,101,101,102,102,102,103,103,103,103,104,104,104,104,105,105,105,105,105,105,106,106 -Cyprus,86.9,87.5,88.1,88.8,89.3,89.8,90.4,91,91.6,92.3,92.7,93.3,93.9,94.5,95.1,95.6,96.2,96.7,97.2,97.7,98.2,98.8,99.1,99.6,99.9,100,101,101,101,101,102,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104 -Czech Republic,91,91.5,92,92.3,92.7,93.2,93.6,93.9,94.3,94.7,95,95.4,95.7,96.1,96.4,96.7,97.1,97.4,97.6,98,98.2,98.4,98.7,99.1,99.2,99.5,99.8,99.9,100,100,101,101,101,101,101,101,102,102,102,102,102,102,102,103,103,103 -Denmark,94,94.5,94.8,95.2,95.4,95.8,96.2,96.5,96.8,97.2,97.6,97.8,98.1,98.4,98.7,99,99.3,99.6,99.8,100,100,101,101,101,101,101,102,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104,104,104,104,104 -Djibouti,29,29.5,29.7,30.1,30.2,30.6,30.9,31.3,31.5,32.1,32.2,32.7,32.9,33.3,33.6,34,34.5,34.7,35.2,35.6,36,36.4,36.8,37.3,37.7,38.1,38.6,39,39.5,40.1,40.6,41,41.6,42,42.5,43.1,43.6,44.1,44.6,45.1,45.7,46.1,46.6,47.2,47.6,48.2 -Dominica,99.8,100,101,101,101,102,102,103,103,103,104,104,104,105,105,105,106,106,106,107,107,107,108,108,108,108,108,109,109,109,109,109,110,110,110,110,110,110,110,111,111,111,111,111,111,111 -Dominican Republic,94.1,94.6,95,95.3,95.8,96.3,96.8,97.3,97.9,98.3,98.7,99.3,99.5,100,101,101,101,102,102,103,103,104,104,105,105,105,106,106,107,107,107,108,108,108,109,109,109,109,110,110,110,110,111,111,111,111 -Ecuador,89.1,89.5,90.1,90.7,91.1,91.5,92,92.5,93,93.5,93.9,94.4,94.8,95.4,95.8,96.1,96.8,97.1,97.6,97.9,98.4,98.8,99.2,99.6,100,100,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,104,105,105,105,105 -Egypt,52,52.4,53,53.5,54,54.5,55.2,55.9,56.2,57,57.5,58.2,58.8,59.5,60.2,60.9,61.6,62.3,63.1,63.9,64.6,65.4,66.3,67.2,68.1,69,69.9,70.7,71.4,72.2,73,73.8,74.4,75.2,75.9,76.6,77.1,77.8,78.5,79,79.7,80.3,80.8,81.4,81.9,82.4 -El Salvador,86,86.4,86.7,87.1,87.4,87.8,87.9,88.2,88.7,88.8,89.1,89.2,89.5,89.8,90,90.1,90.4,90.6,90.7,90.8,91,90.9,91.1,91.2,91.4,91.7,92,92.3,92.6,93,93.4,93.8,94.2,94.5,95,95.2,95.7,96,96.4,96.7,97,97.4,97.8,98,98.4,98.6 -Equatorial Guinea,52.4,52.9,53,53.6,54,54.3,54.8,55.3,55.6,56.2,56.5,57.1,57.6,58,58.4,59,59.5,60,60.4,60.9,61.3,61.9,62.3,62.8,63.4,63.8,64.3,64.8,65.4,65.9,66.4,66.9,67.5,68,68.5,69,69.6,70.1,70.7,71.3,71.8,72.3,72.9,73.4,74,74.5 -Eritrea,43.5,43.7,43.8,44.4,44.5,45.1,45.4,45.7,46.2,46.4,46.7,47.1,47.4,47.7,48.3,48.6,48.9,49.1,49.7,50.1,50.4,50.8,51.3,51.6,52.1,52.7,53.1,53.3,53.9,54.3,54.7,55.1,55.6,56.2,56.6,57.1,57.5,58,58.5,59,59.3,59.9,60.4,61,61.4,61.9 -Estonia,97.9,98.2,98.6,98.9,99.3,99.6,100,100,101,101,101,102,102,102,103,103,103,103,104,104,104,105,105,105,105,106,106,106,106,106,107,107,107,107,107,107,108,108,108,108,108,108,108,108,108,108 -Ethiopia,41.7,42.4,42.6,42.8,43.4,43.8,44.1,44.7,45,45.3,45.8,46,46.5,46.9,47.5,47.7,48.3,48.7,49.1,49.7,50.1,50.5,51.2,51.4,52,52.6,53,53.5,53.9,54.3,54.9,55.2,55.7,56,56.6,57.1,57.5,57.8,58.3,58.7,59.2,59.6,60,60.5,60.9,61.3 -Fiji,82.5,83.1,83.7,84.3,84.9,85.5,86.1,86.9,87.3,88.1,88.6,89.2,89.8,90.5,91.1,91.8,92.4,93.1,93.7,94.3,94.9,95.6,96.3,96.8,97.5,98,98.5,98.8,99.3,99.6,100,100,101,101,101,102,102,102,102,103,103,103,103,103,104,104 -Finland,96.9,97.3,97.7,98.1,98.4,98.8,99.1,99.5,99.7,99.9,100,101,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,105,106,106,106,106,106,106 -France,92.1,92.6,93,93.3,93.9,94.3,94.6,95.1,95.4,95.9,96.2,96.7,97.1,97.4,97.9,98.2,98.7,99.1,99.4,99.8,100,100,101,101,102,102,102,103,103,103,104,104,104,104,104,105,105,105,105,105,106,106,106,106,106,106 -Gabon,88.8,89.2,89.6,90.1,90.6,91.2,91.4,92.1,92.4,92.9,93.4,93.7,94.1,94.5,94.8,95,95.4,95.8,96,96.3,96.5,96.9,97.1,97.2,97.3,97.3,97.4,97.4,97.4,97.5,97.6,97.6,97.8,97.8,97.9,98.1,98.2,98.4,98.5,98.6,98.7,99,99,99.3,99.4,99.6 -Gambia,36.1,36.4,36.7,37.1,37.2,37.5,38,38.1,38.6,38.7,39.1,39.4,39.7,40.1,40.3,40.8,40.9,41.4,41.8,42.1,42.4,43,43.3,43.7,44.2,44.5,44.9,45.2,45.7,46.2,46.7,47,47.4,47.9,48.4,48.9,49.4,49.7,50.2,50.6,51.1,51.6,52.1,52.6,53.1,53.5 -Georgia,93.8,94.2,94.6,95.1,95.4,95.9,96.3,96.7,96.9,97.3,97.7,98,98.3,98.7,99,99.4,99.7,100,100,100,101,101,101,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104,104,104,104,104,104,104,104,104 -Germany,88.8,89.1,89.7,90.1,90.5,90.9,91.3,91.6,92.1,92.6,92.9,93.3,93.6,94.1,94.3,94.7,95.1,95.4,95.7,96,96.3,96.6,96.9,97.2,97.5,97.7,98,98.4,98.6,98.8,99,99.3,99.5,99.7,99.9,100,100,101,101,101,101,101,101,102,102,102 -Ghana,59.9,60.3,60.8,61.3,61.7,62.4,62.7,63.2,63.6,64,64.6,65,65.3,65.8,66,66.5,66.9,67.2,67.7,68,68.3,68.6,68.9,69.3,69.7,69.9,70.3,70.6,71,71.3,71.8,72.1,72.5,72.8,73.3,73.7,74.2,74.6,75,75.4,75.9,76.4,76.7,77.3,77.7,78.2 -Greece,88.9,89.3,89.8,90.3,90.8,91.2,91.6,92.1,92.5,93,93.4,93.8,94.3,94.7,95.1,95.6,96,96.3,96.8,97.2,97.6,97.9,98.3,98.8,99.2,99.5,99.9,100,101,101,101,101,102,102,102,102,103,103,103,103,103,103,104,104,104,104 -Grenada,93.9,94.3,94.8,95.1,95.6,96.1,96.4,97,97.4,97.7,98.2,98.6,99,99.3,99.8,100,101,101,101,102,102,103,103,103,104,104,104,104,105,105,105,106,106,106,106,107,107,107,107,107,108,108,108,108,108,108 -Guatemala,67.4,67.9,68.6,68.8,69.4,69.9,70.3,70.7,71,71.7,71.8,72.4,72.8,73.1,73.7,74,74.6,75.1,75.4,76,76.4,76.9,77.4,77.7,78.3,78.8,79.2,79.8,80.2,80.6,81.1,81.5,82,82.5,82.8,83.5,83.9,84.3,84.8,85.3,85.7,86.2,86.7,87.1,87.6,88.1 -Guinea,28.1,28.1,28.4,28.9,28.6,28.9,29.2,29.5,29.8,30,30.1,30.3,30.8,30.9,31,31.4,31.9,31.9,32.2,32.6,32.9,33.1,33.3,33.8,34,34.4,34.5,34.8,35.2,35.4,35.7,36.3,36.5,36.9,37.2,37.4,37.7,38.1,38.6,38.9,39.3,39.5,39.9,40.3,40.7,41.2 -Guinea-Bissau,32.1,32.5,32.7,33.1,33.3,33.5,33.7,33.9,34,34.7,34.6,35.2,35.2,35.6,35.9,36.3,36.5,36.8,37,37.5,37.6,38.1,38.5,38.6,39.2,39.4,39.6,40.1,40.6,40.7,41.1,41.4,42,42.4,42.6,43.1,43.5,44,44.4,44.7,45.1,45.6,45.8,46.3,46.7,47.2 -Guyana,97,97.3,97.8,98.2,98.4,98.7,99.1,99.3,99.5,99.6,100,100,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,102,102,103,103,103,103,103,104,104,104,104,104,104,105,105,105,105,105 -Haiti,59,59.5,59.9,60.6,60.7,61.4,61.8,62.2,62.7,63.1,63.5,64.2,64.4,65,65.5,66.1,66.7,67.2,67.8,68.4,69,69.6,70.3,70.9,71.6,72.3,73,73.8,74.3,74.9,75.5,76.2,76.8,77.4,78,78.6,79.1,79.8,80.2,80.8,81.4,81.9,82.5,83,83.6,84.1 -Honduras,92,92.5,93.1,93.6,94,94.2,94.9,95.4,95.8,95.9,96.5,96.9,97.2,97.8,98.1,98.4,98.9,99.1,99.6,99.8,100,101,101,101,101,102,102,102,103,103,104,104,104,105,105,105,106,106,106,107,107,107,108,108,108,108 -Hungary,95.3,95.6,95.8,96.1,96.4,96.5,96.8,97,97.2,97.4,97.7,97.9,98.1,98.4,98.6,98.8,98.9,99.1,99.3,99.5,99.6,99.8,100,100,100,100,101,101,101,101,102,102,102,102,102,103,103,103,103,103,103,104,104,104,104,104 -Iceland,96.7,97.2,97.6,98,98.2,98.6,99,99.3,99.7,100,100,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,104,105,105,105,105,105,106,106,106,106,106,106,106,106,107,107,107,107,107,107 -India,40.8,40.9,41.7,42,42.4,43,43.4,43.9,44.5,44.9,45.5,46,46.8,47.4,47.9,48.5,49.2,49.9,50.6,51.4,52.1,52.9,53.6,54.4,55.1,55.8,56.5,57.3,57.9,58.6,59.1,59.8,60.4,61.2,61.7,62.3,62.9,63.6,64.1,64.7,65.2,65.8,66.3,66.8,67.4,67.9 -Indonesia,65.8,66.4,67,67.4,68.1,68.6,69.3,69.8,70.6,71.2,71.8,72.5,73,73.8,74.5,75.3,75.8,76.7,77.4,78.1,78.8,79.7,80.4,81.3,82.2,82.9,83.8,84.3,85.1,85.7,86.6,87.2,87.8,88.3,89.1,89.6,90.1,90.7,91.2,91.8,92.3,92.7,93.2,93.6,94,94.5 -Iran,50.6,51.3,52.1,52.9,53.4,54.3,54.9,55.8,56.8,57.6,58.5,59.4,60.4,61.4,62.6,63.6,64.7,66,67.3,68.5,69.8,71.1,72.4,73.7,74.9,76.1,76.9,77.7,78.4,79.2,79.9,80.5,81.3,82,82.6,83.1,83.7,84.3,84.9,85.4,85.9,86.4,86.8,87.3,87.7,88.2 -Iraq,47.3,47.8,48.7,49.4,50,50.7,51.5,52.2,53,53.8,54.7,55.5,56.4,57.2,58.3,59.2,60.1,61.1,62.1,63.1,64.3,65.2,66.3,67.5,68.4,69.5,70.1,70.8,71.5,72.1,72.9,73.3,73.9,74.6,75.2,75.7,76.3,76.8,77.4,77.9,78.5,79,79.4,80,80.4,81 -Ireland,96.6,96.8,97.1,97.4,97.9,98.1,98.4,98.7,98.9,99.3,99.4,99.8,100,100,101,101,101,101,101,101,102,102,102,102,102,103,103,103,103,103,103,104,104,104,104,104,104,104,104,105,105,105,105,105,105,105 -Israel,93.4,93.7,94.1,94.5,95,95.4,95.7,96.1,96.5,96.8,97.1,97.5,97.9,98.2,98.5,98.8,99.2,99.5,99.8,100,100,101,101,101,101,102,102,102,102,102,103,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104 -Italy,92.4,92.8,93.2,93.6,94,94.3,94.6,95.1,95.4,95.7,96,96.4,96.8,97.1,97.4,97.7,98,98.3,98.6,98.9,99.1,99.4,99.6,99.9,100,100,101,101,101,101,102,102,102,102,102,102,103,103,103,103,103,103,104,104,104,104 -Jamaica,98.6,98.8,99.1,99.5,99.8,100,100,101,101,101,101,102,102,102,102,103,103,103,103,103,103,104,104,104,104,104,104,105,105,105,105,105,106,106,106,106,106,106,107,107,107,107,107,107,107,107 -Japan,94,94.3,94.6,95,95.3,95.5,95.8,96.2,96.4,96.7,96.9,97.2,97.4,97.6,97.8,98,98.2,98.4,98.6,98.8,98.9,99.1,99.3,99.4,99.5,99.7,99.8,100,100,100,101,101,101,101,101,101,102,102,102,102,102,102,102,102,102,102 -Jordan,68.1,68.9,69.9,70.8,71.6,72.7,73.6,74.5,75.6,76.6,77.6,78.5,79.6,80.7,81.7,82.7,83.9,84.9,85.9,86.9,87.9,88.8,89.7,90.7,91.6,92.4,93,93.6,94.1,94.6,95.1,95.6,96,96.4,96.7,97.1,97.5,97.8,98.1,98.4,98.6,99,99.3,99.4,99.7,99.9 -Kazakhstan,93.9,94.3,94.7,95.1,95.4,95.9,96.3,96.6,97,97.3,97.6,97.9,98.3,98.5,98.8,99.2,99.5,99.7,100,100,100,101,101,101,101,101,102,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104,104,104,104,104 -Kenya,54.4,55.1,56,56.7,57.5,58.4,59.1,59.9,60.9,61.7,62.6,63.5,64.4,65.5,66.6,67.7,68.6,70,71.1,72.2,73.4,74.5,75.8,77.1,78.2,79.4,80.4,81.3,81.9,82.8,83.5,84.2,84.8,85.3,86,86.4,86.9,87.4,87.8,88.3,88.7,89.1,89.5,89.9,90.3,90.6 -Kiribati,81.9,82.2,82.8,83.3,83.9,84.4,84.9,85.3,85.9,86.5,87.1,87.5,88.1,88.6,89.3,89.8,90.5,90.9,91.5,92.2,92.6,93.2,93.9,94.5,95.1,95.7,96.3,96.9,97.5,97.9,98.4,99,99.4,99.9,100,101,101,102,102,102,103,103,103,104,104,104 -Kuwait,88.6,89.1,90,90.4,91,91.8,92.1,92.7,93.4,94,94.5,95.1,95.5,96.1,96.7,97,97.5,98,98.5,98.9,99.2,99.6,100,100,101,101,101,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104,104,104,104,104 -Kyrgyz Republic,92.7,93,93.5,93.9,94.3,94.8,95.1,95.4,95.8,96.2,96.6,96.9,97.2,97.5,97.9,98.2,98.5,98.7,99.1,99.4,99.6,99.9,100,100,101,101,101,101,102,102,102,102,102,103,103,103,103,103,104,104,104,104,104,104,104,104 -Lao,62.1,62.4,63.2,63.4,63.9,64.2,64.6,65.4,65.7,66.2,66.7,67.1,67.9,68.1,68.8,69.3,69.7,70.1,70.8,71.2,71.8,72.2,72.8,73.4,73.8,74.4,74.8,75.3,75.9,76.2,76.9,77.4,77.7,78.2,78.8,79.1,79.6,80.1,80.5,81,81.4,81.9,82.3,82.7,83.1,83.6 -Latvia,93.2,93.6,93.9,94.4,94.7,95.1,95.5,95.9,96.2,96.7,97,97.4,97.8,98.2,98.6,98.9,99.3,99.7,100,100,101,101,102,102,102,103,103,103,104,104,104,105,105,105,106,106,106,106,106,106,107,107,107,107,107,107 -Lebanon,88.3,88.8,89.4,90,90.4,90.8,91.5,91.9,92.6,93.1,93.5,93.8,94.4,95,95.4,95.8,96.3,96.7,97.2,97.6,98.2,98.5,98.9,99.5,99.9,100,101,101,101,102,102,102,103,103,103,104,104,104,104,104,105,105,105,105,105,106 -Lesotho,129,129,129,129,129,129,130,130,129,130,130,130,130,130,129,130,129,129,129,129,128,128,128,128,127,127,127,127,127,127,127,127,127,126,127,126,126,127,126,126,126,126,126,126,126,126 -Liberia,30.5,30.9,31.4,31.7,32,32.6,32.8,33.3,34.2,34.5,35.2,35.5,36.3,36.8,37.5,38.3,38.9,39.8,40.5,41.6,42.3,43.4,44.4,45.6,46.6,47.7,48.5,49.4,50,50.8,51.5,52.2,52.9,53.5,54.3,54.8,55.6,56,56.7,57.3,58,58.5,59.2,59.7,60.3,60.9 -Libya,50,50.4,50.9,51.3,51.7,52,52.6,52.9,53.3,53.8,54.2,54.7,55.1,55.6,56,56.5,57,57.5,58,58.5,58.9,59.5,59.8,60.5,60.9,61.4,62,62.5,63.1,63.6,64,64.5,65.1,65.6,66.1,66.7,67.3,67.6,68.3,68.8,69.2,69.9,70.4,70.9,71.5,72 -Lithuania,95.2,95.5,96,96.3,96.6,97,97.4,97.6,98,98.3,98.6,98.9,99.2,99.4,99.7,100,100,100,101,101,101,101,102,102,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104,104,104,104,104,104,104,104 -Luxembourg,89.7,90.1,90.6,91.1,91.5,91.8,92.3,92.7,93,93.5,93.8,94.2,94.5,94.9,95.3,95.7,96,96.4,96.7,97.1,97.3,97.6,97.9,98.2,98.5,98.7,99.1,99.3,99.6,99.8,100,100,101,101,101,101,101,102,102,102,102,102,102,103,103,103 -"Macedonia, FYR",88.1,88.6,89.1,89.4,89.9,90.5,90.8,91.2,91.7,92.2,92.6,93,93.4,93.8,94.2,94.5,95.1,95.5,95.8,96.3,96.5,97,97.3,97.7,98,98.4,98.8,99,99.4,99.7,100,100,101,101,101,101,102,102,102,102,102,103,103,103,103,103 -Madagascar,72.1,72.7,73,73.3,74,74.6,74.8,75.2,76,76.3,76.9,77.4,77.9,78.4,78.9,79.4,80.1,80.5,80.9,81.4,82,82.2,82.8,83.1,83.9,84.3,84.8,85.1,85.4,86.1,86.4,87,87.3,87.7,88.3,88.7,89.1,89.5,90,90.4,90.7,91.2,91.7,92.1,92.4,92.8 -Malawi,44.6,44.9,45.5,46,46.4,46.8,47.2,47.8,48,48.6,49.1,49.6,50.3,50.9,51.2,51.8,52.5,53,53.7,54.3,55,55.5,56.4,57.1,57.8,58.5,59.1,59.6,60.3,61,61.5,62.3,62.8,63.5,64.1,64.7,65.3,65.9,66.5,67.1,67.7,68.3,68.8,69.3,69.8,70.3 -Malaysia,69.9,70.8,71.7,72.5,73.4,74.3,75.2,76.1,77,78,78.9,79.9,81,81.8,83,84.1,85.1,86.1,87.3,88.3,89.3,90.5,91.5,92.6,93.5,94.5,95,95.5,96.1,96.6,97.2,97.5,98,98.4,98.8,99.1,99.5,99.8,100,100,101,101,101,101,102,102 -Maldives,75.3,75.6,76.1,76.4,76.9,77.4,78.1,78.4,78.8,79.3,79.9,80.3,80.7,81.3,81.7,82.3,82.8,83.2,83.7,84.2,84.7,85.2,85.6,86.1,86.7,87.1,87.7,88,88.6,89,89.5,90,90.5,91,91.3,91.7,92.2,92.6,93.2,93.6,93.9,94.3,94.8,95.2,95.6,96 -Mali,35.5,35.8,36.7,36.6,36.5,37.7,37.6,37.5,38.3,38.7,38.5,39.2,39.5,40.2,39.7,40,41.3,41.5,41.7,41.9,42.5,42.7,43.2,43.9,43.8,44.3,44.9,45.3,45.7,46,46.4,46.5,47.2,47.3,47.6,48.1,48.5,49,49.4,49.6,50,50.2,50.9,51,51.5,52 -Malta,87.3,87.8,88.2,88.7,89,89.6,89.9,90.3,90.8,91.2,91.6,91.9,92.4,92.8,93.1,93.5,93.9,94.4,94.6,94.9,95.3,95.6,96.1,96.3,96.7,97,97.3,97.8,97.9,98.4,98.6,98.9,99.3,99.6,99.9,100,100,101,101,101,102,102,102,102,103,103 -Marshall Islands,86.1,86.8,87.1,87.5,88,88.4,88.9,89.5,89.8,90.4,90.8,91.3,91.8,92.1,92.6,93,93.4,93.9,94.3,94.8,95,95.4,96,96.4,96.7,97.1,97.6,97.7,98.1,98.5,98.9,99.3,99.5,99.9,100,101,101,101,101,102,102,102,102,103,103,103 -Mauritania,50,50.4,50.8,51,51.7,51.8,52.3,52.4,52.9,53.3,53.6,54.3,54.5,55,55.2,55.6,55.9,56.3,56.8,57.1,57.5,58,58.2,58.5,59.1,59.4,59.6,60.2,60.6,61,61.4,61.8,62.2,62.6,63.1,63.5,63.9,64.4,64.7,65.2,65.7,66.2,66.7,67.1,67.6,68 -Mauritius,75.9,76.5,77.1,77.8,78.2,78.9,79.4,80.1,81,81.4,82.1,82.8,83.4,84,84.7,85.4,86.2,86.8,87.4,88,88.7,89.3,90.1,90.7,91.3,91.9,92.5,93.1,93.4,93.9,94.5,94.9,95.2,95.7,96.2,96.6,96.8,97.2,97.7,97.9,98.2,98.6,98.9,99.2,99.4,99.7 -Mexico,81.2,81.6,82,82.6,83,83.4,83.7,84.1,84.6,85.1,85.4,85.9,86.3,86.7,87,87.6,88,88.5,88.8,89.3,89.8,90.2,90.7,91.1,91.6,92,92.5,93,93.4,93.9,94.2,94.7,95.1,95.4,95.9,96.3,96.7,97.1,97.4,97.8,98.1,98.3,98.8,99,99.3,99.6 -"Micronesia, Fed. Sts.",81.2,81.7,82.3,82.6,83,83.6,84,84.5,84.9,85.4,85.9,86.5,86.8,87.3,87.8,88.1,88.6,89.1,89.5,90,90.4,90.9,91.2,91.6,92.1,92.5,92.9,93.2,93.6,94.1,94.3,94.8,95.1,95.4,95.7,96.1,96.4,96.7,97,97.2,97.6,97.9,98.1,98.3,98.6,98.8 -Moldova,104,104,104,105,105,105,106,106,106,106,107,107,107,107,107,107,107,108,108,108,108,108,108,108,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107,107,108,108,108,108,108,108 -Mongolia,95.6,96.1,96.5,96.9,97.5,97.9,98.2,98.7,99.2,99.5,100,100,101,101,102,102,102,103,103,104,104,105,105,105,106,106,106,107,107,108,108,108,109,109,109,110,110,110,110,110,111,111,111,111,111,111 -Montenegro,86.2,86.7,87.1,87.5,88,88.5,88.9,89.4,89.8,90.1,90.6,91,91.4,91.8,92.3,92.6,93,93.4,93.8,94.1,94.5,94.9,95.3,95.6,95.9,96.2,96.6,96.9,97.2,97.5,97.8,98.1,98.4,98.7,98.9,99.2,99.4,99.7,99.9,100,100,101,101,101,101,101 -Morocco,46.6,47.1,47.3,47.8,48.4,48.6,49.1,49.7,50.2,50.5,50.9,51.5,52.1,52.6,53,53.5,54.1,54.8,55.3,55.8,56.3,56.9,57.5,58.3,58.8,59.5,60.1,60.8,61.2,62,62.5,63.1,63.6,64.2,64.8,65.3,65.9,66.4,67,67.5,68.1,68.6,69.2,69.8,70.2,70.9 -Mozambique,43.8,44.3,44.4,44.8,45.2,45.5,45.9,46,46.8,46.9,47,47.7,48.1,48.2,48.4,48.8,49.1,49.5,50,50.2,50.7,50.7,51.1,51.4,51.9,52.1,51.9,52.1,52.2,52.5,52.8,52.9,53.2,53.3,53.6,53.8,54.2,54.3,54.6,55,55.3,55.5,56,56.2,56.5,56.8 -Myanmar,83,83.8,84.2,84.6,85.2,85.8,86.2,86.5,87.1,87.7,88.2,88.7,89,89.7,90.2,90.7,91.1,91.8,92,92.6,93.2,93.5,94.1,94.6,95.2,95.5,96.1,96.6,97,97.4,97.9,98.3,98.6,99.3,99.7,100,100,101,101,101,102,102,103,103,103,104 -Namibia,89.6,90.1,90.6,91.3,91.7,92.1,92.5,93.1,93.5,93.9,94.4,94.9,95.2,95.7,96,96.5,96.9,97.5,97.7,98.3,98.7,99,99.4,99.8,100,100,101,101,102,102,102,103,103,103,104,104,104,105,105,105,105,106,106,106,106,107 -Nepal,23,23.6,23.8,24.2,24.7,25,25.4,25.7,26.4,26.9,27.2,27.6,28.1,28.8,29.5,29.9,30.5,31.3,32,32.5,33.3,33.9,34.7,35.7,36.4,37.3,38.1,38.9,39.6,40.3,41,41.7,42.3,43,43.7,44.2,44.8,45.6,46.1,46.7,47.3,47.9,48.5,48.9,49.6,50.1 -Netherlands,87.5,87.9,88.2,88.7,89.1,89.5,89.9,90.3,90.7,91,91.5,91.9,92.2,92.6,93,93.2,93.6,94,94.3,94.6,94.9,95.2,95.5,95.8,96.1,96.3,96.7,97,97.2,97.6,97.8,98.1,98.3,98.6,98.8,99.1,99.3,99.5,99.7,99.9,100,100,100,101,101,101 -New Zealand,95.1,95.5,95.8,96.2,96.5,96.9,97.3,97.6,97.9,98.2,98.5,98.8,99,99.3,99.6,99.9,100,100,101,101,101,101,101,102,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104,104,104,104,104,104,104,104 -Nicaragua,98.8,99.4,100,100,101,101,102,102,103,103,103,104,104,105,105,105,105,106,106,106,107,107,107,108,108,108,108,109,109,109,109,110,110,110,110,111,111,111,111,111,112,112,112,112,112,112 -Niger,35.6,36.6,36.8,36.7,36.6,36.9,37.7,37.6,37.5,38.3,38.1,38.8,38.4,39.1,39.4,40,39.6,39.9,40.4,40.7,40.9,40.9,41.7,41.9,41.9,42.6,42.5,43.2,43.2,43.6,44,44.4,44.8,44.9,45.2,45.4,45.7,46.2,46.3,46.8,47.3,47.5,48,48.2,48.6,48.8 -Nigeria,50.8,51.2,51.5,52.1,52.6,53,53.4,53.8,54.4,54.9,55.3,55.9,56.3,56.9,57.3,58,58.4,58.9,59.5,60.1,60.7,61.3,61.8,62.3,62.9,63.5,64,64.6,65.3,65.8,66.4,66.9,67.3,67.9,68.6,69,69.5,70.1,70.5,71.1,71.7,72,72.5,73.1,73.7,74.1 -North Korea,71.7,72.2,72.7,73.2,73.7,74.2,74.8,75.2,75.7,76.3,76.8,77.3,77.8,78.3,78.8,79.3,79.8,80.3,80.8,81.3,81.7,82.2,82.7,83.2,83.7,84.2,84.6,85.1,85.5,86,86.5,86.8,87.3,87.7,88.2,88.6,89,89.3,89.8,90.2,90.6,91,91.3,91.7,92.1,92.4 -Norway,93.5,93.9,94.3,94.7,95.1,95.3,95.7,96.2,96.5,96.8,97.1,97.4,97.7,98.1,98.4,98.6,98.9,99.1,99.4,99.7,99.9,100,100,101,101,101,101,101,102,102,102,102,102,102,102,103,103,103,103,103,103,103,103,103,103,103 -Oman,62.1,62.5,63,63.4,64,64.4,64.9,65.4,66,66.3,67,67.5,67.8,68.5,69.1,69.6,70,70.5,71.1,71.6,72.2,72.6,73.2,73.7,74.2,74.7,75.4,75.9,76.4,76.9,77.4,77.9,78.5,78.9,79.5,80,80.4,80.8,81.5,81.9,82.4,82.9,83.4,83.8,84.3,84.7 -Pakistan,32.1,32.4,32.7,33,33.5,33.6,34,34.4,34.7,35.3,35.5,36.1,36.5,36.8,37.5,37.7,38.2,38.9,39.3,39.8,40.5,41.2,41.7,42.5,43.2,43.8,44.5,45.2,45.8,46.4,47.2,47.8,48.4,49.1,49.7,50.3,50.9,51.6,52.3,52.8,53.4,54,54.7,55.3,55.8,56.4 -Palestine,75.8,76.3,76.8,77.3,77.9,78.3,78.8,79.5,79.9,80.5,81.1,81.6,82.1,82.7,83.1,83.6,84.2,84.7,85.3,85.7,86.3,86.7,87.3,87.8,88.4,88.9,89.2,89.8,90.3,90.7,91.2,91.6,92.1,92.5,92.9,93.3,93.7,94.1,94.5,94.8,95.2,95.4,95.8,96.2,96.5,96.8 -Panama,100,101,101,101,102,102,102,103,103,103,104,104,104,104,105,105,105,105,105,106,106,106,106,106,106,106,107,107,107,107,107,107,107,108,108,108,108,108,108,108,109,109,109,109,109,109 -Papua New Guinea,51.8,52.3,52.6,53.1,53.4,53.8,54.1,54.8,55.1,55.6,56.1,56.4,56.8,57.1,57.6,58.1,58.5,59,59.4,59.9,60.5,60.9,61.3,61.7,62.3,62.6,63.1,63.8,64.2,64.7,65.2,65.7,66.2,66.7,67.1,67.6,68.3,68.7,69.3,69.8,70.3,70.8,71.3,71.8,72.3,72.9 -Paraguay,94.2,94.8,95.2,95.7,96.3,96.6,97.1,97.3,97.8,98.4,98.6,99.1,99.4,99.8,100,101,101,101,102,102,103,103,103,104,104,104,105,105,106,106,106,107,107,107,108,108,108,108,109,109,109,110,110,110,110,110 -Peru,72.8,73.3,73.9,74.4,75,75.5,75.9,76.5,77.2,77.7,78.3,78.9,79.6,80.2,80.8,81.3,82,82.7,83.3,83.9,84.5,85.1,85.8,86.5,87.1,87.8,88.2,88.8,89.3,89.8,90.4,90.9,91.3,91.7,92.2,92.6,93,93.4,93.8,94.1,94.6,94.9,95.3,95.6,96,96.3 -Philippines,94.8,95.2,95.6,96,96.4,96.9,97.3,97.6,98.1,98.4,98.7,99,99.5,99.7,100,101,101,101,101,102,102,102,103,103,103,104,104,104,105,105,105,105,106,106,106,106,107,107,107,107,107,108,108,108,108,108 -Poland,96,96.4,96.8,97.2,97.5,97.8,98.1,98.5,98.8,99.2,99.4,99.7,100,100,100,101,101,101,102,102,102,102,102,103,103,103,103,103,104,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105 -Portugal,93.6,94.3,94.8,95.3,95.8,96.4,97.1,97.5,98.2,98.8,99.3,99.8,100,101,101,102,102,103,103,104,104,105,105,105,106,106,106,107,107,107,107,108,108,108,108,108,109,109,109,109,109,109,109,109,110,110 -Qatar,108,108,109,109,110,111,111,111,112,112,113,113,114,114,115,115,115,116,116,117,117,117,118,118,119,119,119,120,120,120,121,121,121,121,121,122,122,122,122,122,122,122,123,122,123,122 -Romania,90.8,91.3,91.5,91.9,92.3,92.7,92.9,93.2,93.5,93.9,94.2,94.4,94.7,94.9,95.2,95.5,95.7,95.9,96.1,96.4,96.6,96.7,97,97.2,97.4,97.5,97.8,98.1,98.3,98.6,98.8,99,99.3,99.5,99.7,99.8,100,100,100,101,101,101,101,101,102,102 -Russia,95.9,96.2,96.6,97,97.3,97.7,98.1,98.3,98.6,99,99.3,99.6,99.9,100,101,101,101,101,102,102,102,102,103,103,103,103,103,104,104,104,104,104,104,104,105,105,105,105,105,105,105,105,105,105,105,105 -Rwanda,57.5,58.1,58.8,59.3,59.9,60.2,61.1,61.8,62.6,63.2,63.7,64.5,65.1,65.9,66.8,67.6,68.3,69.1,70.1,71,71.9,72.8,73.7,74.6,75.6,76.6,77.4,78.3,79,79.8,80.5,81.3,81.9,82.4,83,83.5,84.2,84.7,85.2,85.7,86.1,86.6,87.2,87.4,88,88.4 -Samoa,95,95.4,95.8,96.2,96.6,97,97.5,97.8,98.1,98.6,98.9,99.2,99.6,100,100,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,105,105,105,105,106,106,106,106,106,106,106,107,107,107,107,107 -Sao Tome and Principe,59.7,59.9,60.5,60.9,61.8,62.1,62.7,63.3,63.6,64.2,64.5,65.1,65.6,66.2,66.9,67.2,67.9,68.4,68.9,69.6,70.1,70.7,71.2,71.8,72.4,73,73.6,74.2,74.9,75.2,75.7,76.5,77,77.5,77.9,78.3,78.9,79.3,79.8,80.3,80.8,81.3,81.7,82.1,82.6,83.1 -Saudi Arabia,44.4,44.8,45.5,45.9,46.5,47.1,47.6,48.3,49,49.7,50.2,50.9,51.7,52.4,53.1,53.7,54.5,55.3,56.1,56.9,57.7,58.6,59.4,60.4,61.3,62.2,63.2,64.1,65.1,65.9,66.7,67.6,68.4,69.2,69.9,70.7,71.4,72.1,72.7,73.4,74,74.7,75.3,75.8,76.5,77.1 -Senegal,42,41.9,42.6,42.6,43,43.4,43.8,44.2,44.6,45.4,45.5,46.3,46.4,46.9,47.4,47.8,48.3,49.1,49.3,50,50.5,51,51.5,52,52.7,53.1,53.8,54.5,55,55.6,56,56.4,56.8,57.5,58.1,58.7,59.1,59.5,59.9,60.5,61.1,61.4,62,62.4,62.9,63.5 -Serbia,90,90.4,90.9,91.2,91.8,92.1,92.6,93,93.5,93.9,94.2,94.7,95.1,95.5,95.8,96.3,96.6,97,97.3,97.7,98,98.4,98.7,99,99.4,99.6,99.9,100,100,101,101,101,101,102,102,102,102,102,103,103,103,103,103,104,104,104 -Seychelles,91.4,91.6,91.8,92,92.4,92.6,93,93,93.2,93.5,93.5,93.7,94,94,94.1,94.3,94.6,94.6,94.7,94.7,94.9,95,95.2,95.3,95.4,95.6,96,96.2,96.5,96.8,97.2,97.5,97.7,98.1,98.4,98.6,98.9,99.1,99.4,99.7,99.9,100,100,101,101,101 -Sierra Leone,37,37.4,37.5,37.8,38.6,38.6,38.7,39.3,39.7,39.4,39.8,40.1,40.9,41,41.5,41.6,42,42.3,42.6,43.2,43.4,43.8,44.2,44.6,44.9,45.2,45.8,46.1,46.5,46.9,47.2,47.4,48.1,48.2,48.7,49.1,49.5,49.9,50.1,50.7,51.2,51.6,52,52.4,52.7,53.2 -Singapore,79.5,80.1,80.6,81.1,81.6,82.3,82.6,83.2,83.8,84.2,84.7,85.3,85.8,86.3,86.7,87.2,87.8,88.3,88.8,89.3,89.8,90.3,90.9,91.4,91.9,92.3,92.9,93.3,93.8,94.2,94.6,94.9,95.3,95.7,96,96.3,96.7,97,97.2,97.5,97.8,98,98.2,98.5,98.7,98.9 -Slovak Republic,89.7,90.2,90.6,91.1,91.5,91.9,92.4,92.7,93.2,93.6,93.9,94.3,94.7,95.1,95.5,95.8,96.2,96.5,96.8,97.2,97.5,97.9,98.2,98.5,98.8,99.1,99.4,99.7,100,100,101,101,101,101,102,102,102,102,102,103,103,103,103,103,103,104 -Slovenia,92.8,93.4,93.9,94.1,94.6,95,95.4,95.8,96.1,96.5,96.9,97.3,97.7,98,98.5,98.8,99.2,99.5,99.8,100,100,101,101,102,102,102,102,103,103,103,104,104,104,104,104,105,105,105,105,105,105,105,106,106,106,106 -Solomon Islands,59.6,60.2,60.6,61.1,61.5,62.1,62.7,63.2,63.8,64.5,64.9,65.3,66.1,66.7,67.3,68,68.6,69.4,70,70.7,71.3,72.3,73.1,73.9,74.7,75.8,76.5,77.2,77.9,78.7,79.5,80.1,80.6,81.3,81.9,82.6,83,83.7,84.3,84.8,85.3,85.9,86.4,86.9,87.5,88 -Somalia,36.2,36.6,36.5,36.9,37.5,37.8,37.5,37.8,38.1,38.4,39.3,39.3,39.5,39.6,40.3,40.3,40.8,40.8,41.3,41.7,41.9,42.3,42.7,42.9,43.1,43.3,43.8,44,44.5,44.8,45.3,45.6,45.9,46.1,46.4,46.9,47.2,47.5,47.9,48.4,48.7,48.9,49.5,50,50.1,50.5 -South Africa,91.4,91.7,92,92.5,92.8,93.2,93.5,93.9,94.2,94.6,94.9,95.2,95.5,95.9,96.1,96.6,96.7,97.1,97.2,97.7,97.8,98.1,98.3,98.5,98.8,99,99.4,99.8,100,100,101,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104 -South Korea,80,80.6,81.1,81.7,82.1,82.7,83.2,83.8,84.3,84.9,85.3,86,86.4,87,87.4,88,88.4,89,89.5,90.1,90.5,91.1,91.5,92,92.5,92.9,93.4,93.8,94.2,94.5,94.9,95.3,95.6,96,96.2,96.5,96.9,97.1,97.4,97.7,97.9,98,98.3,98.6,98.8,99 -South Sudan,25.5,25.7,25.9,26.1,26.3,26.4,27.4,27.6,27.5,27.6,27.5,28.4,28.3,28.2,28.8,28.7,29.2,29.1,29.6,29.9,29.8,30.1,30.5,30.7,31,31.2,31.4,31.6,31.7,31.8,32.3,32.5,32.9,32.9,33.3,33.6,33.6,33.9,34.2,34.4,34.9,35.1,35.3,35.8,35.8,36.2 -Spain,90.1,90.6,91.1,91.7,92.1,92.4,93,93.4,94,94.4,94.9,95.2,95.7,96.1,96.5,97,97.5,97.8,98.2,98.7,98.9,99.4,99.8,100,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,104,105,105,105,105,105,105 -Sri Lanka,88.7,89.2,89.7,90.1,90.4,90.9,91.3,91.5,91.9,92.3,92.7,93.1,93.5,93.9,94.4,94.7,95.1,95.5,95.8,96.1,96.5,96.9,97.2,97.6,98,98.5,98.8,99.2,99.6,99.9,100,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104 -St. Lucia,96,96.4,96.9,97.3,97.7,98.1,98.6,99,99.5,99.8,100,101,101,101,102,102,103,103,103,103,104,104,104,105,105,105,106,106,106,107,107,107,107,107,108,108,108,108,108,109,109,109,109,109,109,109 -St. Vincent and the Grenadines,93.9,94.3,94.8,95.1,95.6,96.1,96.4,97,97.4,97.7,98.2,98.6,99,99.3,99.8,100,101,101,101,102,102,103,103,103,104,104,104,104,105,105,105,106,106,106,106,107,107,107,107,107,108,108,108,108,108,108 -Sudan,35.4,35.9,36.5,37.2,37.7,38.4,39,39.7,40.3,41.2,42,42.6,43.6,44.5,45.4,46.4,47.4,48.4,49.7,50.8,52,53.3,54.6,56.1,57.6,59.1,60.1,61.3,62.3,63.2,64.2,65,65.8,66.6,67.6,68.3,68.9,69.8,70.5,71.2,71.9,72.6,73.1,73.8,74.5,75 -Suriname,84.1,84.8,85.2,85.7,86.2,86.5,87,87.5,87.7,88.2,88.8,89.2,89.7,90.1,90.6,91,91.3,91.8,92.3,92.6,93,93.5,93.9,94.3,94.7,95,95.4,95.7,96.1,96.4,96.8,97.1,97.6,97.8,98.1,98.4,98.7,99,99.3,99.6,99.9,100,101,101,101,101 -Swaziland,87.3,87.6,88.2,88.7,89.5,89.8,90.5,90.7,91.4,91.8,92.3,92.7,93.1,93.6,94.2,94.5,94.8,95.3,95.6,96,96.4,96.7,97.1,97.3,97.8,98,98.2,98.3,98.8,98.9,99.2,99.5,99.7,100,100,101,101,101,101,102,102,102,102,103,103,103 -Sweden,95.1,95.3,95.7,96,96.4,96.8,97,97.4,97.7,97.9,98.3,98.6,98.8,99.1,99.4,99.5,99.8,100,100,101,101,101,101,101,102,102,102,102,102,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104,104,104 -Switzerland,83.1,83.6,84.1,84.4,84.9,85.4,85.9,86.3,86.7,87.2,87.6,88,88.4,88.8,89.2,89.6,90.1,90.5,90.9,91.2,91.6,92,92.3,92.7,93,93.4,93.7,94,94.4,94.7,95,95.3,95.6,95.9,96.2,96.4,96.8,97,97.3,97.5,97.7,98,98.2,98.4,98.6,98.8 -Syria,48.4,49,49.6,50.1,50.8,51.5,52,52.9,53.5,54.3,55,55.8,56.5,57.5,58.3,59.2,60.2,61.2,62.1,63.1,64.2,65.3,66.6,67.7,69,70.3,71.3,72.3,73.1,74.1,74.9,75.7,76.6,77.2,78.1,78.8,79.4,80.1,80.8,81.3,81.9,82.6,83,83.6,84.1,84.7 -Tajikistan,81.6,82.1,82.5,83.1,83.5,83.9,84.4,84.7,85.2,85.6,86,86.4,86.7,87.2,87.6,87.9,88.2,88.5,88.8,89.1,89.3,89.5,89.8,90,90.3,90.5,90.7,90.7,90.9,91,91.1,91.3,91.6,91.7,91.9,92,92.2,92.4,92.7,92.8,93,93.3,93.5,93.7,94,94.2 -Tanzania,65.3,66.1,66.4,66.8,67.4,68.1,68.5,69,69.7,70.1,70.6,71.2,71.8,72.2,73,73.5,74.1,74.6,75.1,75.8,76.4,76.9,77.3,77.9,78.5,79.2,79.7,80.2,80.9,81.3,81.8,82.4,82.8,83.3,83.8,84.4,84.8,85.3,85.6,86,86.5,86.9,87.4,87.7,88.3,88.7 -Thailand,82,82.4,83,83.5,84.1,84.4,85.1,85.6,86.1,86.5,87.3,87.9,88.2,88.7,89.4,89.9,90.4,90.9,91.5,92,92.6,93.3,93.7,94.2,94.7,95.2,95.8,96.1,96.6,97.2,97.6,98,98.3,98.8,99.2,99.5,99.9,100,101,101,101,102,102,102,102,103 -Timor-Leste,62.6,62.9,63.4,64,64.2,64.6,65.1,65.8,66.1,66.7,66.9,67.4,68.1,68.4,68.9,69.5,70,70.3,70.9,71.4,71.8,72.4,72.8,73.4,73.8,74.5,74.9,75.5,76,76.5,77,77.5,78,78.6,79,79.5,80.1,80.5,81.1,81.5,82,82.6,83,83.5,84,84.4 -Togo,37.3,37.8,37.9,38.3,38.6,39,39.3,39.6,39.8,40.1,40.4,40.9,41.3,41.6,41.9,42.3,42.4,43,43.4,43.7,44.1,44.3,44.9,45.3,45.7,46.1,46.5,47,47.4,47.9,48.3,48.9,49.1,49.7,50.2,50.7,51.2,51.7,52.2,52.7,53.2,53.6,54.2,54.8,55.2,55.7 -Tonga,89.4,89.8,90.2,90.8,91.1,91.5,91.9,92.3,92.7,93.1,93.6,93.9,94.3,94.7,95,95.3,95.8,96.1,96.5,96.8,97.1,97.4,97.7,98.1,98.4,98.8,99.1,99.3,99.6,99.9,100,100,101,101,101,102,102,102,102,103,103,103,103,103,104,104 -Trinidad and Tobago,95,95.4,95.8,96.3,96.6,96.9,97.4,97.9,98.2,98.6,99,99.2,99.6,100,100,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,104,105,105,105,105,105,105,105,106,106,106,106,106,106,106,106 -Tunisia,40.8,41.4,41.9,42.5,43.1,43.9,44.5,45.2,45.9,46.7,47.3,48.1,49,49.9,50.7,51.8,52.8,53.8,55,56.2,57.4,58.6,60,61.3,62.9,64.4,65.7,66.9,68.1,69.2,70.2,71.3,72.3,73.2,74.1,75.1,75.9,76.6,77.4,78.2,78.9,79.5,80.2,80.9,81.5,82 -Turkey,61.7,62.1,62.5,62.7,63.1,63.5,63.9,64.2,64.8,65.1,65.5,65.9,66.4,66.9,67.4,67.8,68.2,68.8,69.3,69.9,70.4,70.9,71.5,72.1,72.7,73.4,74,74.7,75.5,76.1,76.7,77.3,78,78.6,79.2,79.8,80.3,80.8,81.5,82,82.6,83.1,83.6,84.1,84.5,85 -Turkmenistan,87.6,88.2,88.5,89,89.5,89.9,90.3,90.7,91.1,91.6,91.9,92.3,92.7,93.1,93.5,93.8,94.2,94.6,94.9,95.3,95.5,96,96.3,96.6,96.8,97.2,97.4,97.8,98,98.3,98.6,98.8,99.1,99.3,99.5,99.8,100,100,100,101,101,101,101,101,101,102 -Uganda,52.7,53.2,53.4,53.9,54.4,54.7,55.2,55.6,56.1,56.6,56.9,57.4,57.9,58.5,58.8,59.2,59.9,60.2,60.8,61.3,61.8,62.2,62.9,63.5,64,64.5,65,65.5,66,66.5,67.2,67.7,68.3,68.9,69.4,70,70.6,71,71.6,72.1,72.7,73.2,73.8,74.3,74.9,75.4 -Ukraine,96.3,96.6,96.9,97.2,97.5,97.9,98.2,98.6,98.7,99.1,99.3,99.7,99.9,100,100,101,101,101,101,101,102,102,102,102,102,103,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104,104,104,104,104,104 -United Arab Emirates,90.9,91.4,92,92.4,93,93.6,94,94.5,95.2,95.6,96.1,96.5,97.1,97.5,98,98.4,98.8,99.3,99.7,100,101,101,101,102,102,102,102,103,103,103,103,104,104,104,104,104,105,105,105,105,105,105,105,105,106,106 -United Kingdom,90.6,91,91.4,91.8,92.2,92.6,93,93.3,93.8,94,94.4,94.8,95.2,95.5,95.9,96.2,96.5,96.7,97,97.3,97.6,97.8,98.2,98.4,98.7,98.9,99.1,99.4,99.6,99.8,100,100,100,101,101,101,101,101,101,102,102,102,102,102,102,102 -United States,96.8,96.8,97,97.1,97.2,97.3,97.5,97.6,97.7,97.8,97.9,98.2,98.3,98.4,98.6,98.7,98.9,99,99.3,99.3,99.5,99.7,99.9,100,100,100,100,101,101,101,101,101,102,102,102,102,102,102,102,103,103,103,103,103,103,103 -Uruguay,100,101,101,101,102,102,102,103,103,103,104,104,104,104,105,105,105,105,106,106,106,106,106,107,107,107,107,107,108,108,108,108,108,109,109,109,109,109,109,109,110,110,110,110,110,110 -Uzbekistan,87.8,88.3,88.8,89.1,89.6,90.1,90.4,90.9,91.2,91.7,92,92.4,92.8,93.1,93.6,93.9,94.3,94.6,94.9,95.3,95.7,95.9,96.3,96.6,96.9,97.1,97.5,97.8,98.1,98.3,98.6,98.8,99.1,99.4,99.7,99.9,100,100,101,101,101,101,101,102,102,102 -Vanuatu,75.9,76.4,76.9,77.4,77.9,78.3,78.8,79.3,79.7,80.3,80.6,81.1,81.5,82.1,82.6,83,83.5,83.8,84.5,84.8,85.4,85.7,86.1,86.7,87.1,87.5,87.8,88.2,88.8,89.2,89.6,89.9,90.4,90.8,91.3,91.6,92.1,92.4,92.7,93.2,93.7,94,94.3,94.7,95.1,95.4 -Venezuela,92.9,93.5,93.8,94.3,94.8,95.3,95.7,96.3,96.7,97.3,97.7,98.1,98.7,99.2,99.5,100,101,101,101,102,102,103,103,104,104,104,105,105,106,106,106,106,107,107,107,108,108,108,108,108,109,109,109,109,109,109 -Vietnam,79.9,80.5,81.1,81.3,81.9,82.5,82.8,83.4,83.7,84.2,84.9,85.3,85.8,86.2,86.6,87.1,87.6,88,88.5,89,89.4,90,90.4,90.9,91.4,91.7,92.2,92.6,93.1,93.5,94,94.3,94.8,95.2,95.6,96.1,96.5,96.8,97.1,97.6,98,98.3,98.6,98.9,99.3,99.6 -Yemen,11.2,11.3,11.4,11.9,12,12,12.4,12.4,12.8,13.1,13.4,13.6,13.9,14.1,14.6,15,15.4,15.8,16.1,16.7,17.2,17.6,18.2,18.8,19.5,20.2,20.7,21.3,21.9,22.4,22.8,23.4,23.8,24.4,24.9,25.4,25.7,26.3,26.7,27.2,27.6,28.1,28.6,29.2,29.5,30.1 -Zambia,58.2,58.9,59.4,60.1,60.8,61.4,62.1,62.7,63.4,64.1,64.9,65.7,66.3,67.2,68,68.7,69.4,70.1,70.9,71.6,72.5,73.3,74,74.8,75.5,76.2,76.8,77.3,77.8,78.4,78.7,79.2,79.7,80.1,80.5,80.9,81.4,81.8,82.1,82.6,83.1,83.4,83.9,84.3,84.6,85.1 -Zimbabwe,69.6,70,70.5,71.1,71.5,71.9,72.4,72.9,73.4,73.9,74.5,74.9,75.4,75.8,76.5,77,77.5,78,78.5,79,79.6,80.1,80.6,81.2,81.6,82.3,82.8,83.4,84,84.5,85,85.5,86.1,86.6,87.1,87.7,88,88.6,89.1,89.5,89.9,90.4,90.8,91.2,91.7,92.1 diff --git a/Lecture_DataScience_dotfiles/data/population_total.csv b/Lecture_DataScience_dotfiles/data/population_total.csv deleted file mode 100644 index aa195677..00000000 --- a/Lecture_DataScience_dotfiles/data/population_total.csv +++ /dev/null @@ -1,196 +0,0 @@ -country,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100 -Afghanistan,3280000,3280000,3280000,3280000,3280000,3280000,3280000,3280000,3280000,3280000,3280000,3280000,3280000,3280000,3290000,3290000,3300000,3300000,3310000,3320000,3320000,3330000,3340000,3350000,3360000,3380000,3390000,3400000,3420000,3430000,3450000,3470000,3480000,3500000,3520000,3540000,3550000,3570000,3590000,3610000,3630000,3640000,3660000,3680000,3700000,3720000,3730000,3750000,3770000,3790000,3810000,3830000,3840000,3860000,3870000,3890000,3910000,3920000,3940000,3960000,3970000,3990000,4010000,4030000,4050000,4070000,4080000,4110000,4130000,4150000,4170000,4190000,4220000,4240000,4260000,4290000,4310000,4340000,4360000,4390000,4420000,4450000,4480000,4500000,4530000,4560000,4590000,4620000,4650000,4680000,4710000,4740000,4770000,4800000,4830000,4860000,4890000,4930000,4960000,4990000,5020000,5050000,5090000,5120000,5150000,5180000,5220000,5250000,5280000,5320000,5350000,5390000,5420000,5460000,5500000,5550000,5600000,5650000,5700000,5760000,5810000,5870000,5930000,5980000,6040000,6100000,6160000,6210000,6270000,6330000,6390000,6460000,6520000,6580000,6640000,6710000,6770000,6840000,6900000,6970000,7030000,7100000,7170000,7240000,7310000,7380000,7450000,7520000,7590000,7660000,7750000,7840000,7930000,8040000,8150000,8270000,8400000,8540000,8680000,8830000,9000000,9170000,9350000,9530000,9730000,9940000,10200000,10400000,10600000,10900000,11100000,11400000,11700000,12000000,12300000,12600000,12800000,13100000,13200000,13300000,13200000,13100000,12700000,12400000,12000000,11800000,11600000,11500000,11500000,11800000,12200000,13000000,14000000,15100000,16200000,17100000,17800000,18400000,18900000,19400000,20100000,21000000,22000000,23100000,24100000,25100000,25900000,26600000,27300000,28000000,28800000,29700000,30700000,31700000,32800000,33700000,34700000,35500000,36400000,37200000,38100000,38900000,39800000,40600000,41500000,42400000,43300000,44100000,45000000,45800000,46700000,47600000,48400000,49200000,50100000,50900000,51700000,52500000,53300000,54100000,54900000,55700000,56400000,57200000,57900000,58600000,59300000,60000000,60700000,61300000,61900000,62500000,63100000,63700000,64300000,64800000,65400000,65900000,66400000,66800000,67300000,67700000,68200000,68600000,68900000,69300000,69700000,70000000,70300000,70600000,70800000,71100000,71300000,71500000,71700000,71800000,72000000,72100000,72200000,72300000,72300000,72400000,72400000,72400000,72400000,72400000,72300000,72300000,72200000,72100000,72000000,71900000,71800000,71600000,71500000,71300000,71200000,71000000,70800000,70600000,70400000 -Albania,410000,412000,413000,414000,416000,417000,418000,420000,421000,422000,424000,425000,426000,428000,429000,431000,432000,434000,435000,437000,439000,440000,442000,444000,446000,448000,449000,451000,453000,455000,457000,459000,461000,463000,466000,468000,470000,472000,474000,476000,478000,480000,483000,485000,488000,491000,494000,497000,500000,503000,507000,511000,515000,519000,523000,528000,533000,537000,542000,547000,553000,558000,564000,569000,575000,581000,586000,592000,598000,604000,610000,616000,622000,628000,634000,641000,647000,653000,660000,666000,673000,679000,686000,692000,699000,706000,713000,720000,727000,734000,742000,749000,757000,764000,772000,780000,788000,796000,804000,812000,820000,828000,836000,844000,852000,860000,868000,876000,884000,893000,901000,910000,918000,926000,932000,938000,943000,949000,954000,959000,964000,969000,974000,979000,984000,989000,995000,1000000,1010000,1010000,1020000,1020000,1030000,1030000,1040000,1040000,1050000,1060000,1080000,1100000,1120000,1140000,1150000,1160000,1160000,1180000,1200000,1210000,1230000,1250000,1260000,1290000,1320000,1350000,1380000,1420000,1460000,1500000,1540000,1590000,1640000,1690000,1740000,1790000,1840000,1900000,1950000,2000000,2050000,2100000,2150000,2200000,2250000,2310000,2360000,2410000,2460000,2520000,2570000,2630000,2680000,2740000,2790000,2840000,2900000,2970000,3040000,3120000,3200000,3250000,3280000,3280000,3240000,3190000,3140000,3110000,3090000,3090000,3100000,3120000,3120000,3120000,3120000,3110000,3100000,3080000,3050000,3020000,2990000,2960000,2940000,2930000,2920000,2920000,2920000,2920000,2930000,2930000,2930000,2940000,2940000,2940000,2950000,2950000,2950000,2950000,2950000,2940000,2940000,2940000,2930000,2930000,2920000,2910000,2910000,2900000,2880000,2870000,2860000,2850000,2830000,2820000,2800000,2790000,2770000,2750000,2740000,2720000,2700000,2680000,2660000,2650000,2630000,2610000,2590000,2570000,2550000,2530000,2510000,2490000,2470000,2450000,2430000,2410000,2390000,2370000,2350000,2330000,2310000,2290000,2270000,2250000,2220000,2200000,2180000,2160000,2140000,2110000,2090000,2070000,2050000,2030000,2010000,1980000,1960000,1940000,1920000,1900000,1880000,1860000,1840000,1820000,1800000,1780000,1760000,1740000,1720000,1710000,1690000,1670000,1660000 -Algeria,2500000,2510000,2520000,2530000,2540000,2550000,2560000,2570000,2580000,2590000,2600000,2600000,2610000,2630000,2640000,2650000,2660000,2670000,2690000,2700000,2710000,2730000,2740000,2760000,2770000,2790000,2810000,2820000,2840000,2860000,2880000,2900000,2920000,2940000,2960000,2980000,3000000,3020000,3040000,3060000,3080000,3100000,3120000,3150000,3170000,3190000,3210000,3230000,3250000,3280000,3300000,3320000,3350000,3370000,3390000,3420000,3440000,3460000,3490000,3510000,3540000,3560000,3590000,3610000,3640000,3670000,3690000,3720000,3750000,3780000,3810000,3840000,3870000,3900000,3930000,3970000,4000000,4030000,4070000,4110000,4140000,4180000,4220000,4250000,4290000,4330000,4370000,4410000,4450000,4490000,4530000,4570000,4610000,4650000,4690000,4730000,4770000,4820000,4860000,4900000,4950000,4990000,5030000,5080000,5120000,5170000,5220000,5260000,5310000,5360000,5400000,5450000,5500000,5560000,5620000,5690000,5770000,5840000,5910000,5990000,6060000,6140000,6220000,6300000,6380000,6460000,6540000,6620000,6710000,6790000,6880000,6960000,7050000,7140000,7230000,7320000,7410000,7510000,7600000,7700000,7800000,7900000,8000000,8100000,8200000,8300000,8410000,8510000,8620000,8730000,8870000,9040000,9220000,9410000,9610000,9830000,10100000,10300000,10600000,10800000,11100000,11400000,11700000,12000000,12300000,12600000,13000000,13400000,13700000,14100000,14600000,15000000,15400000,15800000,16200000,16700000,17200000,17700000,18200000,18800000,19300000,19900000,20600000,21200000,21900000,22600000,23200000,23900000,24600000,25300000,25900000,26600000,27200000,27800000,28400000,28900000,29400000,29900000,30300000,30800000,31200000,31600000,32000000,32400000,32800000,33300000,33800000,34300000,34900000,35500000,36100000,36800000,37600000,38300000,39100000,39900000,40600000,41300000,42000000,42700000,43300000,44000000,44600000,45200000,45800000,46300000,46800000,47400000,47900000,48300000,48800000,49300000,49700000,50200000,50600000,51100000,51500000,51900000,52400000,52800000,53200000,53700000,54100000,54600000,55000000,55400000,55800000,56300000,56700000,57100000,57400000,57800000,58200000,58500000,58800000,59100000,59400000,59600000,59900000,60100000,60300000,60500000,60700000,60800000,61000000,61100000,61300000,61400000,61500000,61600000,61700000,61800000,61900000,61900000,62000000,62100000,62200000,62200000,62300000,62400000,62400000,62500000,62500000,62600000,62600000,62700000,62700000,62700000,62800000,62800000,62800000,62800000,62800000,62800000,62800000,62800000,62800000,62700000,62700000,62600000,62600000 -Andorra,2650,2650,2650,2650,2650,2650,2650,2650,2650,2650,2650,2660,2660,2660,2660,2670,2670,2680,2680,2690,2700,2710,2720,2730,2740,2760,2770,2790,2800,2820,2840,2850,2870,2890,2910,2930,2950,2970,2990,3010,3030,3050,3070,3090,3110,3130,3150,3170,3190,3210,3230,3250,3270,3290,3310,3330,3350,3370,3390,3410,3440,3460,3480,3500,3520,3540,3570,3590,3610,3630,3650,3680,3700,3720,3740,3770,3790,3810,3840,3860,3890,3910,3930,3960,3980,4010,4030,4060,4080,4110,4130,4160,4180,4210,4230,4260,4290,4310,4340,4370,4390,4420,4450,4470,4500,4530,4560,4590,4610,4640,4670,4700,4730,4760,4790,4820,4850,4880,4910,4940,4970,5010,5040,5070,5110,5140,5170,5210,5240,5270,5310,5340,5380,5410,5450,5480,5520,5560,5590,5630,5670,5700,5740,5780,5820,5850,5890,5930,5970,6010,6200,6690,7250,7870,8530,9230,9990,10800,11600,12500,13400,14400,15400,16400,17500,18500,19600,20800,21900,23100,24300,25600,26900,28200,29500,30700,31800,32800,33700,34800,36100,37500,39100,40900,42700,44600,46500,48500,50400,52400,54500,56700,58900,61000,62700,63900,64400,64300,64100,64400,65400,67300,70000,73200,76200,78900,81000,82700,83900,84500,84400,83800,82400,80800,79200,78000,77300,77000,77000,77100,77200,77300,77400,77500,77600,77800,77900,78000,78000,78100,78200,78200,78300,78300,78400,78400,78500,78500,78500,78600,78600,78500,78500,78400,78300,78200,78100,77900,77700,77400,77200,76900,76600,76200,75900,75500,75100,74600,74200,73700,73300,72800,72300,71900,71400,70900,70500,70100,69600,69200,68900,68500,68100,67800,67500,67200,66900,66600,66400,66200,66000,65800,65600,65400,65300,65100,65000,64800,64700,64600,64500,64300,64200,64100,63900,63800,63700,63500,63400,63300,63100 -Angola,1570000,1570000,1570000,1570000,1570000,1570000,1570000,1570000,1570000,1570000,1570000,1570000,1570000,1570000,1570000,1580000,1580000,1580000,1590000,1590000,1600000,1600000,1610000,1620000,1630000,1630000,1640000,1650000,1660000,1670000,1690000,1700000,1710000,1720000,1740000,1750000,1760000,1770000,1790000,1800000,1810000,1830000,1840000,1850000,1870000,1880000,1890000,1910000,1920000,1940000,1950000,1970000,1980000,2000000,2020000,2040000,2050000,2070000,2090000,2110000,2130000,2140000,2160000,2180000,2200000,2220000,2240000,2260000,2280000,2300000,2320000,2340000,2360000,2380000,2400000,2420000,2440000,2460000,2480000,2500000,2520000,2550000,2570000,2590000,2610000,2630000,2660000,2680000,2700000,2730000,2750000,2770000,2800000,2820000,2850000,2870000,2890000,2920000,2940000,2970000,3000000,3020000,3050000,3070000,3100000,3130000,3150000,3180000,3210000,3230000,3260000,3290000,3320000,3350000,3380000,3400000,3430000,3460000,3490000,3510000,3540000,3560000,3590000,3620000,3640000,3670000,3700000,3720000,3750000,3780000,3800000,3830000,3860000,3890000,3920000,3940000,3970000,4000000,4030000,4060000,4090000,4130000,4180000,4220000,4260000,4310000,4350000,4400000,4440000,4490000,4550000,4660000,4770000,4890000,5000000,5120000,5220000,5330000,5430000,5540000,5640000,5750000,5870000,5980000,6090000,6200000,6310000,6410000,6520000,6640000,6780000,6930000,7090000,7280000,7470000,7680000,7900000,8130000,8380000,8640000,8930000,9240000,9580000,9930000,10300000,10600000,10900000,11200000,11500000,11800000,12200000,12600000,13000000,13400000,13800000,14300000,14700000,15100000,15500000,15900000,16400000,17000000,17600000,18200000,18900000,19600000,20300000,21000000,21800000,22500000,23400000,24200000,25100000,26000000,26900000,27900000,28800000,29800000,30800000,31800000,32800000,33900000,35000000,36100000,37300000,38400000,39600000,40900000,42100000,43400000,44700000,46000000,47400000,48800000,50200000,51700000,53100000,54600000,56100000,57700000,59200000,60800000,62400000,64100000,65700000,67400000,69100000,70800000,72500000,74300000,76000000,77800000,79600000,81400000,83300000,85100000,87000000,88900000,90800000,92700000,94600000,96500000,98500000,100000000,102000000,104000000,106000000,108000000,110000000,112000000,114000000,116000000,118000000,120000000,122000000,124000000,126000000,129000000,131000000,133000000,135000000,137000000,139000000,141000000,143000000,145000000,147000000,148000000,150000000,152000000,154000000,156000000,158000000,160000000,162000000,164000000,166000000,167000000,169000000,171000000,173000000 -Antigua and Barbuda,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,37000,36900,36900,36800,36800,36700,36600,36500,36400,36300,36200,36100,36000,35900,35800,35700,35600,35500,35400,35400,35200,35200,35100,35100,35100,35100,35100,35200,35300,35400,35500,35600,35700,35900,36000,36100,36200,36300,36300,36300,36200,36100,36000,35800,35600,35400,35200,34900,34700,34400,34200,33900,33600,33300,33000,32700,32400,32100,31800,31600,31400,31200,31000,30800,30600,30400,30200,30000,30000,30200,30600,31000,31500,31900,32300,32800,33200,33600,34100,34600,35000,35500,36000,36500,37000,37500,38000,38500,39000,39500,40100,40600,41200,41900,42800,43800,44900,46300,48400,50000,51300,52200,52900,53400,53800,54200,54700,55300,56100,57100,58300,59500,60800,62100,63400,64700,65900,67100,68200,69200,70100,70900,71600,72300,72900,73300,73500,73400,73100,72400,71600,70700,69800,68800,67800,67100,66600,66700,67300,68400,69900,71700,73600,75600,77700,79900,81800,83600,85100,86300,87300,88300,89300,90300,91400,92500,93600,94700,95700,96800,97800,98900,99900,101000,102000,103000,104000,105000,106000,107000,108000,109000,110000,111000,112000,113000,114000,115000,115000,116000,117000,118000,118000,119000,120000,120000,121000,122000,122000,122000,123000,123000,124000,124000,124000,125000,125000,125000,125000,126000,126000,126000,126000,126000,126000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,126000,126000,126000,126000,126000,125000,125000,125000,125000,125000,124000,124000,124000,124000,123000,123000,123000 -Argentina,534000,534000,534000,534000,534000,534000,534000,534000,534000,534000,534000,535000,536000,538000,540000,544000,548000,552000,558000,564000,571000,578000,587000,596000,607000,618000,630000,642000,656000,671000,687000,703000,721000,738000,756000,775000,793000,813000,833000,853000,874000,895000,917000,939000,962000,986000,1010000,1030000,1060000,1090000,1110000,1140000,1170000,1200000,1230000,1260000,1290000,1320000,1350000,1390000,1420000,1460000,1490000,1530000,1570000,1620000,1660000,1710000,1750000,1800000,1860000,1910000,1970000,2020000,2080000,2140000,2210000,2270000,2340000,2420000,2490000,2570000,2650000,2730000,2810000,2910000,3000000,3090000,3190000,3290000,3400000,3510000,3630000,3750000,3880000,4010000,4140000,4280000,4430000,4590000,4760000,4930000,5090000,5290000,5490000,5700000,5910000,6120000,6360000,6600000,6850000,7110000,7380000,7640000,7880000,8070000,8230000,8380000,8530000,8690000,8880000,9120000,9400000,9720000,10100000,10400000,10700000,11000000,11300000,11600000,11900000,12200000,12400000,12600000,12800000,13100000,13300000,13500000,13700000,14000000,14200000,14400000,14700000,14900000,15100000,15400000,15700000,16000000,16300000,16800000,17200000,17500000,17900000,18200000,18600000,18900000,19300000,19600000,20000000,20300000,20600000,21000000,21300000,21600000,22000000,22300000,22600000,22900000,23300000,23600000,24000000,24400000,24800000,25200000,25600000,26100000,26500000,26900000,27300000,27700000,28100000,28500000,29000000,29500000,29900000,30400000,30900000,31300000,31800000,32300000,32700000,33200000,33700000,34100000,34600000,35000000,35400000,35800000,36200000,36600000,37100000,37500000,37900000,38300000,38700000,39100000,39600000,40000000,40400000,40800000,41200000,41700000,42100000,42500000,43000000,43400000,43800000,44300000,44700000,45100000,45500000,45900000,46300000,46700000,47100000,47500000,47900000,48200000,48600000,49000000,49300000,49700000,50000000,50400000,50700000,51000000,51400000,51700000,52000000,52300000,52600000,52900000,53200000,53400000,53700000,54000000,54300000,54500000,54800000,55000000,55200000,55500000,55700000,55900000,56100000,56300000,56500000,56700000,56800000,57000000,57100000,57300000,57400000,57600000,57700000,57800000,57900000,58000000,58100000,58200000,58200000,58300000,58300000,58400000,58400000,58500000,58500000,58500000,58500000,58600000,58600000,58600000,58600000,58600000,58500000,58500000,58500000,58500000,58400000,58400000,58400000,58300000,58300000,58200000,58200000,58100000,58000000,58000000,57900000,57800000,57700000 -Armenia,413000,413000,413000,413000,413000,413000,413000,413000,413000,413000,413000,414000,414000,414000,415000,416000,417000,418000,420000,422000,424000,426000,428000,430000,433000,436000,439000,442000,446000,450000,454000,458000,462000,466000,470000,475000,479000,483000,488000,492000,497000,501000,506000,511000,515000,520000,525000,530000,534000,539000,544000,549000,554000,559000,564000,570000,575000,580000,585000,591000,596000,601000,607000,612000,618000,624000,629000,635000,641000,647000,652000,658000,664000,670000,676000,683000,689000,695000,701000,708000,714000,720000,727000,733000,740000,747000,754000,760000,767000,774000,781000,788000,796000,803000,810000,817000,825000,832000,840000,848000,855000,863000,871000,879000,887000,895000,903000,911000,919000,928000,936000,945000,953000,962000,971000,979000,988000,997000,1010000,1020000,1030000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1260000,1280000,1290000,1300000,1310000,1320000,1340000,1350000,1380000,1420000,1460000,1510000,1560000,1620000,1680000,1740000,1810000,1870000,1940000,2010000,2080000,2140000,2210000,2280000,2340000,2400000,2460000,2530000,2590000,2650000,2710000,2770000,2830000,2890000,2940000,3000000,3050000,3100000,3150000,3190000,3240000,3290000,3340000,3390000,3450000,3500000,3540000,3540000,3510000,3440000,3360000,3280000,3220000,3170000,3130000,3110000,3090000,3070000,3050000,3030000,3020000,3000000,2980000,2960000,2930000,2910000,2890000,2880000,2880000,2880000,2890000,2910000,2920000,2920000,2930000,2930000,2940000,2940000,2940000,2940000,2940000,2940000,2930000,2930000,2930000,2920000,2910000,2910000,2900000,2890000,2880000,2880000,2870000,2860000,2850000,2840000,2830000,2820000,2810000,2800000,2790000,2780000,2760000,2750000,2740000,2730000,2710000,2700000,2690000,2670000,2660000,2640000,2620000,2610000,2590000,2570000,2560000,2540000,2520000,2500000,2490000,2470000,2450000,2430000,2410000,2390000,2380000,2360000,2340000,2320000,2300000,2280000,2260000,2250000,2230000,2210000,2190000,2170000,2150000,2130000,2120000,2100000,2080000,2060000,2050000,2030000,2010000,2000000,1980000,1970000,1950000,1930000,1920000,1910000,1890000,1880000,1860000,1850000 -Australia,351000,350000,349000,348000,348000,347000,346000,345000,344000,343000,342000,341000,340000,340000,339000,338000,337000,336000,335000,335000,334000,334000,333000,334000,334000,335000,337000,338000,341000,344000,348000,354000,360000,367000,374000,382000,390000,399000,409000,421000,434000,449000,467000,488000,514000,544000,578000,615000,656000,699000,743000,787000,831000,877000,926000,977000,1030000,1080000,1140000,1200000,1260000,1310000,1360000,1410000,1460000,1510000,1550000,1590000,1640000,1680000,1720000,1770000,1820000,1860000,1910000,1960000,2020000,2060000,2120000,2180000,2250000,2320000,2400000,2480000,2560000,2650000,2740000,2830000,2920000,3010000,3090000,3170000,3250000,3320000,3390000,3450000,3520000,3580000,3630000,3690000,3740000,3800000,3850000,3910000,3960000,4020000,4090000,4140000,4210000,4300000,4410000,4520000,4670000,4810000,4920000,4960000,4970000,4990000,5070000,5200000,5350000,5470000,5590000,5710000,5830000,5950000,6070000,6190000,6310000,6400000,6470000,6530000,6590000,6640000,6690000,6740000,6800000,6850000,6920000,6980000,7050000,7120000,7180000,7250000,7320000,7400000,7490000,7600000,7750000,7950000,8180000,8410000,8620000,8820000,9010000,9210000,9420000,9640000,9860000,10100000,10300000,10500000,10700000,10900000,11100000,11400000,11600000,11900000,12300000,12600000,12800000,13100000,13300000,13500000,13700000,13800000,14000000,14200000,14300000,14500000,14600000,14800000,15000000,15300000,15500000,15700000,16000000,16300000,16500000,16800000,17000000,17300000,17500000,17700000,17900000,18100000,18300000,18500000,18700000,18900000,19100000,19300000,19500000,19700000,19900000,20200000,20600000,20900000,21300000,21700000,22100000,22500000,22800000,23200000,23500000,23800000,24100000,24500000,24800000,25100000,25400000,25700000,26000000,26300000,26600000,26900000,27100000,27400000,27700000,28000000,28200000,28500000,28800000,29000000,29300000,29500000,29800000,30000000,30300000,30500000,30800000,31000000,31300000,31500000,31700000,32000000,32200000,32500000,32700000,32900000,33200000,33400000,33700000,33900000,34100000,34300000,34600000,34800000,35000000,35200000,35400000,35600000,35800000,36000000,36200000,36400000,36600000,36800000,37000000,37200000,37400000,37500000,37700000,37900000,38100000,38200000,38400000,38600000,38700000,38900000,39100000,39200000,39400000,39500000,39700000,39800000,40000000,40100000,40300000,40400000,40600000,40700000,40800000,41000000,41100000,41200000,41400000,41500000,41600000,41700000,41800000 -Austria,3210000,3210000,3220000,3230000,3240000,3250000,3250000,3260000,3270000,3280000,3290000,3300000,3300000,3310000,3320000,3330000,3340000,3360000,3370000,3380000,3390000,3400000,3420000,3430000,3450000,3460000,3470000,3490000,3500000,3520000,3540000,3560000,3570000,3590000,3610000,3630000,3650000,3670000,3690000,3710000,3730000,3750000,3770000,3790000,3820000,3840000,3860000,3890000,3910000,3940000,3960000,3990000,4010000,4040000,4070000,4100000,4120000,4150000,4180000,4210000,4240000,4270000,4290000,4330000,4360000,4390000,4420000,4450000,4490000,4520000,4560000,4590000,4630000,4660000,4700000,4740000,4780000,4820000,4860000,4900000,4950000,4990000,5030000,5080000,5120000,5170000,5210000,5260000,5310000,5360000,5410000,5460000,5510000,5570000,5620000,5680000,5740000,5800000,5860000,5920000,5980000,6040000,6100000,6160000,6230000,6290000,6360000,6420000,6490000,6550000,6610000,6670000,6720000,6770000,6810000,6820000,6820000,6780000,6640000,6530000,6460000,6500000,6520000,6540000,6560000,6580000,6600000,6620000,6640000,6660000,6680000,6700000,6730000,6740000,6760000,6760000,6760000,6760000,6720000,6700000,6700000,6740000,6780000,6810000,6810000,6880000,6920000,6980000,6960000,6940000,6940000,6930000,6930000,6940000,6940000,6950000,6970000,6990000,7010000,7040000,7070000,7110000,7160000,7210000,7260000,7310000,7350000,7400000,7440000,7480000,7520000,7550000,7580000,7610000,7630000,7640000,7640000,7640000,7630000,7620000,7610000,7600000,7600000,7600000,7610000,7610000,7630000,7640000,7660000,7690000,7720000,7770000,7830000,7890000,7950000,7990000,8020000,8030000,8040000,8050000,8070000,8100000,8130000,8180000,8220000,8250000,8280000,8310000,8340000,8370000,8410000,8460000,8520000,8580000,8630000,8680000,8710000,8740000,8750000,8770000,8780000,8800000,8820000,8840000,8860000,8880000,8900000,8910000,8920000,8940000,8950000,8950000,8960000,8970000,8970000,8970000,8970000,8970000,8970000,8970000,8960000,8960000,8950000,8950000,8940000,8930000,8920000,8910000,8900000,8890000,8880000,8860000,8850000,8830000,8820000,8800000,8780000,8760000,8740000,8720000,8710000,8690000,8670000,8650000,8630000,8620000,8600000,8580000,8570000,8550000,8540000,8520000,8510000,8490000,8480000,8460000,8450000,8430000,8420000,8400000,8380000,8370000,8350000,8340000,8330000,8310000,8300000,8290000,8280000,8270000,8260000,8250000,8240000,8230000,8220000,8220000,8210000,8210000,8200000,8190000,8190000 -Azerbaijan,880000,880000,880000,880000,880000,880000,880000,880000,880000,880000,880000,880000,881000,882000,884000,886000,888000,891000,894000,898000,902000,906000,911000,916000,922000,928000,935000,942000,949000,957000,966000,975000,984000,993000,1000000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1300000,1310000,1320000,1330000,1350000,1360000,1370000,1380000,1400000,1410000,1420000,1430000,1450000,1460000,1480000,1490000,1500000,1520000,1530000,1540000,1560000,1570000,1590000,1600000,1620000,1630000,1650000,1660000,1680000,1690000,1710000,1730000,1740000,1760000,1770000,1790000,1810000,1820000,1840000,1860000,1870000,1890000,1910000,1930000,1950000,1960000,1980000,2000000,2020000,2040000,2060000,2080000,2090000,2110000,2130000,2150000,2170000,2190000,2210000,2230000,2250000,2280000,2300000,2320000,2340000,2360000,2380000,2400000,2430000,2450000,2470000,2490000,2520000,2540000,2560000,2590000,2610000,2630000,2660000,2680000,2710000,2730000,2760000,2780000,2810000,2830000,2860000,2890000,2930000,2990000,3060000,3140000,3230000,3330000,3430000,3540000,3650000,3770000,3900000,4030000,4170000,4320000,4460000,4590000,4720000,4840000,4960000,5070000,5180000,5280000,5390000,5480000,5580000,5670000,5770000,5860000,5960000,6050000,6150000,6250000,6350000,6450000,6560000,6670000,6780000,6890000,7010000,7130000,7240000,7360000,7470000,7580000,7680000,7780000,7860000,7930000,7990000,8050000,8120000,8200000,8280000,8360000,8450000,8540000,8630000,8720000,8820000,8920000,9030000,9150000,9260000,9390000,9500000,9620000,9730000,9830000,9920000,10000000,10100000,10200000,10300000,10300000,10400000,10400000,10500000,10500000,10600000,10600000,10700000,10700000,10800000,10800000,10800000,10900000,10900000,10900000,10900000,11000000,11000000,11000000,11000000,11000000,11000000,11000000,11100000,11100000,11100000,11000000,11000000,11000000,11000000,11000000,11000000,11000000,10900000,10900000,10900000,10900000,10900000,10800000,10800000,10800000,10700000,10700000,10700000,10700000,10600000,10600000,10600000,10500000,10500000,10500000,10400000,10400000,10300000,10300000,10300000,10200000,10200000,10200000,10100000,10100000,10100000,10000000,10000000,9960000,9930000,9900000,9870000,9840000,9810000,9780000,9750000,9720000,9690000,9650000,9620000,9590000,9560000 -Bahamas,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27400,27500,27500,27500,27500,27500,27500,27600,27600,27600,27600,27600,27700,27700,27700,27700,27700,27800,27800,27800,27900,28000,28200,28300,28600,28800,29100,29400,29700,30100,30500,30900,31300,31700,32200,32600,33100,33600,34200,34700,35200,35800,36300,36800,37300,37800,38300,38800,39300,39700,40100,40600,41000,41500,42000,42400,42900,43300,43800,44300,44700,45200,45600,46000,46500,46900,47300,47800,48300,48800,49300,49900,50500,51000,51600,52100,52600,53100,53500,54000,54400,54700,54900,55100,55300,55500,55700,55800,56000,55800,55500,55200,54900,54600,54300,54000,53700,53400,53500,53800,54500,55200,55800,56500,57200,58000,58700,59400,60100,60900,61600,62300,63000,63800,64500,65300,66000,66800,67600,68400,69400,70600,71900,73400,74800,76300,77800,79100,80000,81400,83400,85800,88600,91900,95600,99800,104000,110000,115000,121000,127000,134000,140000,146000,153000,159000,164000,169000,174000,178000,181000,185000,189000,193000,197000,202000,206000,211000,215000,220000,225000,230000,235000,239000,243000,248000,252000,256000,261000,266000,271000,276000,280000,284000,287000,290000,294000,298000,303000,309000,316000,323000,329000,336000,342000,349000,355000,361000,367000,372000,377000,382000,387000,391000,395000,399000,403000,407000,411000,414000,418000,421000,425000,428000,431000,434000,437000,440000,443000,445000,447000,450000,452000,454000,456000,458000,460000,461000,463000,465000,466000,467000,469000,470000,471000,473000,474000,475000,476000,477000,478000,478000,479000,480000,480000,481000,481000,482000,482000,483000,483000,483000,483000,483000,483000,483000,483000,483000,483000,483000,483000,482000,482000,482000,481000,481000,481000,480000,480000,479000,478000,478000,477000,477000,476000,475000,475000,474000,473000,473000,472000,472000,471000,470000,470000,469000,468000,468000 -Bahrain,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64500,64600,64600,64700,64800,65000,65100,65200,65400,65600,65800,66000,66200,66500,66800,67100,67400,67800,68200,68500,68900,69300,69700,70100,70500,70900,71200,71600,72000,72400,72800,73300,73700,74100,74500,74900,75300,75700,76200,76600,77000,77400,77900,78300,78700,79200,79600,80000,80500,80900,81400,81900,82600,83400,84200,85000,85700,86600,87400,88200,89000,89800,90700,91500,92400,93300,94100,95000,95900,96800,97700,98600,99500,100000,101000,102000,103000,104000,105000,106000,107000,108000,109000,110000,111000,112000,113000,114000,116000,117000,120000,123000,128000,134000,139000,145000,151000,157000,162000,168000,173000,178000,183000,187000,192000,196000,201000,206000,213000,220000,229000,240000,252000,267000,284000,303000,323000,343000,360000,374000,386000,396000,407000,419000,433000,449000,465000,481000,496000,510000,523000,536000,550000,564000,579000,595000,614000,637000,665000,698000,735000,779000,830000,889000,958000,1040000,1110000,1190000,1240000,1280000,1300000,1320000,1340000,1370000,1430000,1490000,1570000,1640000,1700000,1740000,1780000,1810000,1830000,1860000,1890000,1920000,1960000,1990000,2010000,2040000,2060000,2080000,2100000,2120000,2140000,2160000,2170000,2190000,2210000,2220000,2230000,2250000,2260000,2270000,2280000,2300000,2310000,2320000,2330000,2340000,2350000,2350000,2360000,2370000,2380000,2390000,2390000,2400000,2400000,2410000,2420000,2420000,2420000,2430000,2430000,2430000,2440000,2440000,2440000,2440000,2440000,2440000,2440000,2440000,2440000,2440000,2430000,2430000,2420000,2420000,2420000,2410000,2400000,2400000,2390000,2380000,2370000,2360000,2350000,2340000,2330000,2320000,2310000,2300000,2290000,2280000,2270000,2260000,2250000 -Bangladesh,19200000,19300000,19300000,19300000,19400000,19400000,19500000,19500000,19500000,19600000,19600000,19700000,19700000,19700000,19800000,19800000,19900000,19900000,20000000,20100000,20100000,20200000,20300000,20300000,20400000,20500000,20500000,20600000,20700000,20800000,20900000,21000000,21100000,21100000,21200000,21300000,21400000,21500000,21600000,21700000,21800000,21900000,22000000,22100000,22100000,22200000,22300000,22400000,22500000,22600000,22700000,22800000,22900000,23000000,23100000,23200000,23300000,23400000,23500000,23600000,23700000,23800000,23900000,24000000,24100000,24200000,24300000,24400000,24500000,24600000,24800000,24900000,25000000,25100000,25300000,25400000,25500000,25700000,25800000,25900000,26100000,26200000,26400000,26500000,26700000,26800000,27000000,27100000,27300000,27500000,27600000,27800000,27900000,28100000,28300000,28400000,28600000,28700000,28900000,29100000,29200000,29400000,29600000,29700000,29900000,30100000,30200000,30400000,30600000,30800000,30900000,31100000,31300000,31500000,31600000,31800000,31900000,32100000,32200000,32400000,32600000,32700000,32900000,33100000,33200000,33400000,33600000,33700000,33900000,34100000,34400000,34700000,35000000,35300000,35600000,35900000,36200000,36500000,36800000,37100000,37400000,37600000,37700000,37700000,37600000,37500000,37500000,37500000,37500000,37500000,37900000,38700000,39500000,40300000,41200000,42100000,43200000,44300000,45500000,46800000,48200000,49600000,51000000,52500000,54100000,55800000,57700000,59600000,61600000,63400000,65000000,66400000,67600000,68700000,69900000,71300000,73000000,74900000,77000000,79200000,81500000,83700000,86000000,88300000,90700000,93200000,95700000,98300000,101000000,104000000,106000000,109000000,111000000,114000000,116000000,119000000,121000000,124000000,126000000,129000000,132000000,134000000,137000000,139000000,141000000,143000000,145000000,147000000,149000000,150000000,152000000,154000000,156000000,158000000,159000000,161000000,163000000,165000000,166000000,168000000,170000000,171000000,173000000,175000000,177000000,178000000,180000000,181000000,183000000,184000000,186000000,187000000,188000000,189000000,191000000,192000000,193000000,194000000,195000000,195000000,196000000,197000000,198000000,199000000,199000000,200000000,200000000,201000000,201000000,202000000,202000000,202000000,202000000,203000000,203000000,203000000,203000000,203000000,203000000,203000000,203000000,203000000,202000000,202000000,202000000,202000000,201000000,201000000,200000000,200000000,199000000,199000000,198000000,198000000,197000000,196000000,196000000,195000000,194000000,193000000,193000000,192000000,191000000,190000000,189000000,188000000,187000000,186000000,186000000,185000000,184000000,183000000,182000000,181000000,180000000,179000000,178000000,177000000,176000000,175000000,174000000 -Barbados,81700,81700,81700,81700,81700,81700,81700,81700,81700,81700,81700,81800,81900,82100,82400,82700,83100,83600,84100,84800,85500,86200,87100,88000,89000,90100,91300,92500,93900,95300,96800,98400,100000,102000,103000,105000,107000,109000,110000,112000,114000,116000,118000,120000,122000,124000,125000,127000,129000,131000,133000,135000,137000,138000,140000,142000,143000,145000,147000,148000,149000,151000,152000,153000,155000,156000,157000,158000,159000,160000,161000,162000,163000,164000,165000,166000,167000,168000,169000,170000,171000,172000,173000,174000,175000,176000,177000,179000,180000,181000,182000,183000,184000,186000,187000,188000,189000,190000,191000,191000,191000,191000,191000,190000,188000,186000,184000,181000,179000,177000,174000,172000,170000,169000,167000,166000,164000,163000,161000,160000,158000,158000,158000,160000,161000,162000,164000,165000,167000,168000,169000,171000,172000,174000,175000,177000,178000,180000,181000,183000,184000,186000,187000,189000,191000,192000,195000,198000,202000,207000,211000,216000,220000,223000,225000,227000,228000,229000,230000,230000,231000,232000,233000,234000,235000,235000,236000,237000,237000,238000,239000,240000,241000,243000,245000,246000,247000,249000,250000,251000,252000,253000,254000,255000,255000,256000,257000,258000,259000,259000,260000,261000,262000,263000,264000,265000,266000,267000,268000,269000,270000,271000,271000,272000,273000,274000,275000,276000,277000,278000,280000,281000,282000,283000,283000,284000,285000,286000,286000,287000,288000,288000,289000,289000,289000,290000,290000,290000,290000,290000,290000,290000,290000,290000,289000,289000,289000,288000,288000,287000,287000,286000,286000,285000,284000,284000,283000,282000,282000,281000,280000,280000,279000,278000,277000,277000,276000,275000,275000,274000,274000,273000,272000,272000,271000,271000,270000,270000,269000,269000,268000,268000,267000,267000,266000,266000,265000,265000,265000,264000,264000,263000,263000,263000,262000,262000,261000,261000,260000,260000,260000,259000,259000,258000,258000,257000,257000,256000,256000,256000,255000 -Belarus,2360000,2360000,2360000,2360000,2360000,2360000,2360000,2360000,2360000,2360000,2360000,2360000,2360000,2360000,2370000,2370000,2380000,2380000,2390000,2400000,2410000,2430000,2440000,2450000,2470000,2480000,2500000,2520000,2540000,2560000,2580000,2610000,2630000,2660000,2680000,2710000,2730000,2760000,2780000,2810000,2830000,2860000,2890000,2910000,2940000,2970000,2990000,3020000,3050000,3080000,3100000,3130000,3160000,3190000,3220000,3250000,3280000,3310000,3340000,3370000,3400000,3440000,3470000,3500000,3530000,3560000,3600000,3630000,3660000,3700000,3730000,3770000,3800000,3840000,3870000,3910000,3940000,3980000,4020000,4050000,4090000,4130000,4170000,4210000,4240000,4280000,4320000,4360000,4400000,4440000,4480000,4530000,4570000,4610000,4650000,4700000,4740000,4780000,4830000,4870000,4920000,4960000,5010000,5050000,5100000,5150000,5200000,5240000,5290000,5340000,5390000,5440000,5490000,5540000,5590000,5640000,5700000,5750000,5800000,5860000,5910000,5960000,6020000,6070000,6130000,6190000,6240000,6300000,6360000,6420000,6480000,6540000,6600000,6660000,6720000,6780000,6840000,6910000,6970000,7030000,7100000,7160000,7230000,7300000,7360000,7430000,7500000,7570000,7640000,7710000,7750000,7720000,7710000,7720000,7760000,7800000,7870000,7940000,8020000,8100000,8180000,8260000,8340000,8410000,8490000,8570000,8650000,8730000,8820000,8900000,8980000,9050000,9120000,9190000,9250000,9320000,9380000,9440000,9510000,9570000,9630000,9700000,9770000,9830000,9900000,9970000,10000000,10100000,10100000,10200000,10200000,10200000,10200000,10200000,10200000,10100000,10100000,10100000,10000000,9990000,9930000,9870000,9810000,9740000,9680000,9620000,9580000,9540000,9510000,9490000,9470000,9470000,9470000,9480000,9480000,9490000,9480000,9470000,9450000,9430000,9420000,9400000,9380000,9360000,9340000,9310000,9280000,9260000,9230000,9200000,9160000,9130000,9100000,9060000,9030000,9000000,8960000,8930000,8900000,8870000,8840000,8810000,8780000,8750000,8730000,8700000,8670000,8650000,8620000,8600000,8570000,8540000,8520000,8490000,8470000,8440000,8410000,8380000,8350000,8330000,8300000,8270000,8240000,8210000,8180000,8150000,8130000,8100000,8070000,8050000,8020000,8000000,7970000,7950000,7930000,7910000,7890000,7870000,7850000,7840000,7820000,7810000,7790000,7780000,7770000,7750000,7740000,7730000,7720000,7710000,7700000,7690000,7680000,7680000,7670000,7660000,7650000,7640000,7630000,7620000,7610000 -Belgium,3140000,3150000,3170000,3180000,3200000,3210000,3220000,3240000,3250000,3270000,3280000,3300000,3320000,3330000,3350000,3370000,3390000,3410000,3430000,3450000,3480000,3500000,3520000,3550000,3580000,3600000,3630000,3660000,3690000,3720000,3750000,3780000,3820000,3850000,3880000,3920000,3950000,3980000,4020000,4050000,4090000,4120000,4160000,4190000,4220000,4260000,4290000,4330000,4360000,4390000,4430000,4460000,4490000,4530000,4560000,4590000,4620000,4660000,4690000,4720000,4750000,4790000,4820000,4850000,4890000,4920000,4960000,5000000,5030000,5070000,5110000,5150000,5200000,5240000,5280000,5330000,5380000,5420000,5470000,5520000,5570000,5620000,5680000,5730000,5790000,5840000,5900000,5960000,6010000,6070000,6130000,6190000,6240000,6300000,6360000,6420000,6490000,6550000,6620000,6690000,6770000,6840000,6910000,6990000,7080000,7160000,7240000,7330000,7400000,7450000,7500000,7540000,7590000,7660000,7720000,7750000,7750000,7720000,7670000,7610000,7560000,7540000,7570000,7640000,7710000,7780000,7840000,7910000,7970000,8030000,8080000,8130000,8180000,8230000,8260000,8290000,8320000,8350000,8370000,8370000,8340000,8290000,8260000,8260000,8290000,8330000,8390000,8460000,8540000,8600000,8640000,8680000,8730000,8780000,8830000,8890000,8940000,9000000,9050000,9110000,9170000,9230000,9280000,9340000,9390000,9440000,9490000,9530000,9570000,9600000,9630000,9660000,9690000,9720000,9750000,9770000,9790000,9820000,9840000,9850000,9870000,9880000,9890000,9900000,9910000,9920000,9930000,9940000,9960000,9980000,10000000,10000000,10100000,10100000,10200000,10200000,10200000,10200000,10200000,10300000,10300000,10300000,10400000,10400000,10500000,10500000,10600000,10700000,10800000,10900000,10900000,11000000,11100000,11200000,11200000,11300000,11400000,11400000,11500000,11600000,11600000,11700000,11700000,11700000,11800000,11800000,11900000,11900000,11900000,12000000,12000000,12000000,12100000,12100000,12100000,12200000,12200000,12200000,12200000,12300000,12300000,12300000,12300000,12400000,12400000,12400000,12400000,12400000,12500000,12500000,12500000,12500000,12500000,12500000,12500000,12500000,12600000,12600000,12600000,12600000,12600000,12600000,12600000,12600000,12600000,12600000,12700000,12700000,12700000,12700000,12700000,12700000,12700000,12700000,12700000,12800000,12800000,12800000,12800000,12800000,12800000,12800000,12800000,12800000,12900000,12900000,12900000,12900000,12900000,12900000,12900000,12900000,12900000,13000000,13000000,13000000,13000000,13000000,13000000,13000000,13000000 -Belize,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25500,25600,25600,25600,25600,25600,25600,25600,25600,25600,25600,25600,25600,25700,25700,25700,25700,25700,25700,25700,25700,25700,25800,25800,25800,25800,25800,25800,25800,25800,25800,25900,25900,25900,25900,25900,25900,25900,25900,25800,25800,25800,25800,25700,25700,25700,25600,25600,25600,25700,25700,25700,25700,25800,25900,25900,26000,26100,26300,26400,26600,26800,27100,27400,27700,28000,28300,28600,29000,29400,29800,30300,30800,31200,31700,32300,32800,33400,34000,34500,35100,35600,36100,36600,37100,37500,37900,38200,38500,38800,39100,39500,39800,40100,40500,41000,41500,42000,42500,43000,43500,44000,44600,45100,45700,46200,46800,47400,48000,48600,49200,49800,50500,51100,51600,52100,52600,53100,53600,54200,54700,55200,55800,56300,56900,57400,58000,58500,59700,61500,63900,66500,68900,71200,73400,75600,77700,79900,82100,84500,87000,89500,92100,94700,97400,100000,103000,106000,109000,113000,116000,119000,122000,125000,127000,129000,131000,133000,135000,137000,139000,141000,144000,148000,152000,156000,160000,165000,170000,174000,179000,183000,188000,191000,194000,198000,202000,207000,214000,222000,230000,239000,247000,255000,262000,269000,276000,283000,291000,298000,306000,314000,322000,329000,337000,344000,352000,359000,367000,375000,382000,390000,398000,406000,414000,421000,429000,436000,444000,451000,458000,466000,473000,480000,487000,493000,500000,507000,513000,519000,525000,532000,538000,544000,549000,555000,561000,566000,572000,577000,582000,587000,592000,597000,602000,607000,611000,616000,620000,624000,628000,632000,635000,639000,642000,646000,649000,652000,655000,657000,660000,662000,665000,667000,669000,671000,672000,674000,676000,677000,678000,680000,681000,682000,683000,684000,684000,685000,686000,686000,687000,687000,688000,688000,688000,688000,688000,688000,688000,688000,688000,688000,688000 -Benin,637000,637000,637000,637000,637000,637000,637000,637000,637000,637000,637000,637000,637000,638000,640000,641000,643000,645000,647000,650000,653000,657000,661000,665000,669000,674000,679000,684000,690000,696000,703000,710000,717000,724000,731000,738000,745000,752000,760000,767000,775000,782000,790000,798000,805000,813000,821000,829000,837000,846000,854000,862000,871000,879000,888000,897000,905000,914000,923000,932000,941000,951000,960000,969000,979000,989000,998000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1170000,1180000,1190000,1200000,1210000,1220000,1240000,1250000,1260000,1270000,1290000,1300000,1310000,1320000,1340000,1350000,1360000,1380000,1390000,1400000,1420000,1430000,1450000,1460000,1470000,1490000,1500000,1520000,1530000,1550000,1560000,1580000,1590000,1610000,1620000,1640000,1660000,1670000,1690000,1710000,1720000,1740000,1760000,1770000,1790000,1810000,1830000,1840000,1860000,1880000,1900000,1920000,1940000,1950000,1970000,1990000,2010000,2030000,2050000,2070000,2090000,2110000,2130000,2150000,2180000,2200000,2220000,2240000,2260000,2260000,2260000,2270000,2290000,2300000,2320000,2350000,2370000,2400000,2430000,2470000,2500000,2540000,2590000,2630000,2680000,2740000,2790000,2850000,2910000,2980000,3040000,3110000,3190000,3270000,3350000,3430000,3520000,3620000,3720000,3820000,3930000,4040000,4160000,4280000,4400000,4540000,4670000,4820000,4980000,5150000,5330000,5520000,5710000,5910000,6090000,6280000,6470000,6660000,6870000,7080000,7300000,7520000,7750000,7980000,8220000,8450000,8700000,8940000,9200000,9460000,9730000,10000000,10300000,10600000,10900000,11200000,11500000,11800000,12100000,12400000,12800000,13100000,13500000,13800000,14200000,14500000,14900000,15300000,15600000,16000000,16400000,16800000,17200000,17600000,18000000,18400000,18800000,19200000,19600000,20000000,20500000,20900000,21300000,21700000,22200000,22600000,23000000,23500000,23900000,24400000,24800000,25300000,25700000,26200000,26600000,27100000,27500000,28000000,28400000,28900000,29300000,29800000,30200000,30700000,31100000,31600000,32000000,32400000,32900000,33300000,33800000,34200000,34600000,35100000,35500000,35900000,36300000,36700000,37100000,37600000,38000000,38400000,38700000,39100000,39500000,39900000,40300000,40600000,41000000,41400000,41700000,42100000,42400000,42700000,43100000,43400000,43700000,44000000,44300000 -Bhutan,90000,90000,90000,90000,90000,90000,90000,90000,90000,90000,90000,90000,90100,90100,90200,90300,90400,90600,90700,90900,91100,91400,91600,91900,92200,92500,92900,93200,93600,94000,94500,94900,95400,95800,96300,96800,97200,97700,98200,98700,99100,99600,100000,101000,101000,102000,102000,103000,103000,104000,104000,105000,105000,106000,106000,107000,107000,108000,109000,109000,110000,110000,111000,112000,112000,113000,113000,114000,115000,115000,116000,117000,117000,118000,118000,119000,120000,120000,121000,122000,122000,123000,124000,124000,125000,126000,126000,127000,128000,128000,129000,130000,130000,131000,132000,133000,133000,134000,135000,136000,136000,137000,138000,138000,139000,140000,141000,141000,142000,143000,144000,145000,145000,146000,147000,148000,148000,149000,150000,151000,151000,152000,153000,154000,154000,155000,156000,157000,157000,158000,159000,160000,160000,161000,162000,163000,164000,164000,165000,166000,167000,168000,168000,169000,170000,171000,172000,172000,173000,174000,177000,181000,185000,189000,193000,197000,202000,207000,212000,218000,223000,229000,235000,241000,247000,254000,262000,271000,280000,289000,298000,308000,318000,328000,339000,350000,361000,373000,385000,397000,409000,420000,431000,442000,454000,467000,483000,500000,517000,530000,537000,537000,532000,523000,517000,515000,519000,529000,542000,558000,573000,590000,606000,623000,640000,657000,672000,687000,701000,714000,728000,741000,753000,765000,776000,787000,798000,808000,817000,826000,835000,844000,853000,862000,870000,878000,886000,893000,900000,907000,914000,920000,926000,932000,937000,943000,948000,952000,957000,961000,965000,969000,973000,976000,979000,982000,985000,988000,990000,992000,994000,996000,997000,998000,999000,1000000,1000000,1000000,1000000,1000000,999000,998000,997000,995000,994000,992000,989000,987000,984000,982000,979000,976000,972000,969000,965000,962000,958000,954000,950000,946000,942000,938000,934000,930000,925000,921000,917000,913000,908000,904000,900000,895000,891000,887000,883000,878000,874000,870000,866000,862000,858000 -Bolivia,1100000,1100000,1100000,1100000,1100000,1100000,1100000,1100000,1100000,1100000,1100000,1100000,1100000,1100000,1100000,1110000,1110000,1110000,1110000,1120000,1120000,1130000,1130000,1140000,1140000,1150000,1160000,1160000,1170000,1180000,1190000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1290000,1300000,1300000,1310000,1320000,1330000,1340000,1350000,1360000,1360000,1370000,1380000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1450000,1460000,1470000,1480000,1490000,1500000,1500000,1510000,1520000,1530000,1540000,1550000,1560000,1560000,1570000,1580000,1590000,1600000,1610000,1620000,1630000,1640000,1640000,1650000,1660000,1670000,1680000,1690000,1700000,1710000,1720000,1730000,1740000,1750000,1760000,1770000,1780000,1790000,1800000,1810000,1830000,1840000,1850000,1870000,1890000,1900000,1920000,1940000,1960000,1980000,1990000,2010000,2030000,2060000,2090000,2130000,2170000,2220000,2260000,2300000,2330000,2370000,2390000,2420000,2450000,2480000,2510000,2540000,2570000,2590000,2620000,2660000,2690000,2720000,2750000,2780000,2810000,2850000,2880000,2910000,2950000,2980000,3010000,3050000,3080000,3120000,3160000,3190000,3230000,3160000,3090000,3140000,3190000,3250000,3310000,3370000,3430000,3490000,3560000,3620000,3690000,3760000,3840000,3910000,3990000,4070000,4150000,4240000,4320000,4410000,4510000,4600000,4700000,4800000,4900000,5010000,5120000,5230000,5350000,5470000,5590000,5710000,5840000,5960000,6090000,6210000,6340000,6460000,6590000,6720000,6860000,6990000,7130000,7270000,7420000,7570000,7720000,7870000,8030000,8180000,8340000,8500000,8650000,8810000,8970000,9130000,9280000,9440000,9600000,9760000,9920000,10100000,10200000,10400000,10600000,10700000,10900000,11100000,11200000,11400000,11500000,11700000,11900000,12000000,12200000,12400000,12500000,12700000,12800000,13000000,13200000,13300000,13500000,13600000,13800000,13900000,14100000,14200000,14400000,14500000,14600000,14800000,14900000,15000000,15200000,15300000,15400000,15600000,15700000,15800000,15900000,16000000,16100000,16200000,16300000,16400000,16500000,16600000,16700000,16800000,16900000,17000000,17100000,17100000,17200000,17300000,17300000,17400000,17500000,17500000,17600000,17600000,17700000,17700000,17800000,17800000,17800000,17900000,17900000,17900000,17900000,18000000,18000000,18000000,18000000,18000000,18000000,18000000,18100000,18100000,18100000,18100000,18100000,18000000,18000000,18000000,18000000,18000000,18000000,18000000,17900000 -Bosnia and Herzegovina,852000,852000,852000,852000,852000,852000,852000,852000,852000,852000,852000,852000,853000,854000,855000,857000,859000,862000,865000,868000,872000,876000,881000,885000,891000,896000,903000,909000,916000,923000,931000,939000,948000,956000,964000,973000,981000,990000,999000,1010000,1020000,1030000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1260000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1350000,1370000,1380000,1390000,1400000,1410000,1430000,1440000,1450000,1460000,1480000,1490000,1500000,1520000,1530000,1540000,1560000,1570000,1580000,1600000,1610000,1620000,1640000,1650000,1670000,1680000,1700000,1710000,1730000,1740000,1760000,1770000,1790000,1800000,1820000,1830000,1850000,1870000,1880000,1900000,1920000,1930000,1950000,1970000,1980000,2000000,2020000,2040000,2050000,2070000,2090000,2110000,2130000,2150000,2170000,2180000,2200000,2220000,2240000,2260000,2280000,2300000,2320000,2340000,2360000,2380000,2410000,2430000,2450000,2470000,2490000,2510000,2540000,2560000,2580000,2600000,2630000,2660000,2710000,2760000,2820000,2880000,2940000,2990000,3050000,3110000,3170000,3230000,3290000,3350000,3420000,3480000,3540000,3590000,3630000,3680000,3720000,3760000,3810000,3850000,3900000,3940000,3990000,4030000,4060000,4100000,4140000,4180000,4220000,4270000,4310000,4350000,4390000,4440000,4480000,4510000,4510000,4460000,4370000,4240000,4090000,3950000,3840000,3780000,3750000,3750000,3760000,3770000,3770000,3780000,3780000,3780000,3780000,3780000,3770000,3760000,3750000,3720000,3690000,3650000,3600000,3570000,3540000,3520000,3510000,3500000,3500000,3500000,3490000,3480000,3480000,3470000,3460000,3450000,3440000,3430000,3420000,3400000,3390000,3380000,3370000,3350000,3340000,3320000,3300000,3290000,3270000,3250000,3230000,3210000,3190000,3180000,3160000,3140000,3120000,3100000,3080000,3060000,3040000,3020000,3000000,2980000,2960000,2950000,2930000,2910000,2890000,2870000,2850000,2840000,2820000,2800000,2780000,2760000,2740000,2730000,2710000,2690000,2670000,2650000,2630000,2610000,2590000,2570000,2560000,2540000,2520000,2500000,2480000,2470000,2450000,2430000,2420000,2400000,2390000,2370000,2360000,2340000,2330000,2310000,2300000,2290000,2270000,2260000,2250000,2240000,2230000,2220000 -Botswana,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,121000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,122000,123000,123000,123000,123000,123000,124000,124000,124000,125000,126000,127000,128000,130000,132000,135000,138000,141000,143000,146000,149000,152000,156000,161000,168000,174000,180000,187000,194000,201000,209000,217000,225000,233000,242000,251000,261000,268000,273000,276000,279000,282000,285000,288000,291000,295000,298000,309000,328000,356000,387000,413000,425000,437000,448000,459000,470000,480000,491000,501000,513000,525000,537000,551000,565000,581000,597000,615000,633000,653000,674000,696000,719000,743000,769000,796000,826000,858000,892000,928000,964000,1000000,1040000,1080000,1110000,1150000,1190000,1230000,1260000,1300000,1340000,1380000,1420000,1460000,1490000,1530000,1570000,1600000,1640000,1670000,1700000,1730000,1750000,1780000,1800000,1830000,1860000,1880000,1910000,1950000,1980000,2010000,2050000,2090000,2130000,2170000,2210000,2250000,2290000,2330000,2370000,2420000,2460000,2500000,2540000,2580000,2610000,2650000,2690000,2730000,2760000,2800000,2840000,2870000,2910000,2940000,2970000,3010000,3040000,3070000,3110000,3140000,3170000,3200000,3230000,3260000,3290000,3320000,3340000,3370000,3400000,3420000,3450000,3470000,3490000,3510000,3530000,3550000,3570000,3590000,3610000,3620000,3640000,3650000,3670000,3680000,3690000,3700000,3710000,3720000,3730000,3740000,3750000,3750000,3760000,3770000,3770000,3780000,3780000,3790000,3790000,3790000,3800000,3800000,3800000,3800000,3810000,3810000,3810000,3810000,3810000,3810000,3800000,3800000,3800000,3800000,3790000,3790000,3790000,3780000,3780000,3770000 -Brazil,3640000,3680000,3720000,3760000,3800000,3840000,3880000,3920000,3960000,4010000,4060000,4100000,4150000,4200000,4250000,4300000,4350000,4410000,4460000,4520000,4580000,4640000,4710000,4780000,4840000,4910000,4990000,5060000,5140000,5220000,5300000,5390000,5470000,5560000,5650000,5740000,5830000,5920000,6010000,6110000,6210000,6310000,6400000,6510000,6610000,6710000,6820000,6920000,7030000,7140000,7250000,7370000,7480000,7600000,7720000,7840000,7960000,8080000,8210000,8340000,8470000,8600000,8730000,8870000,9020000,9160000,9320000,9470000,9630000,9800000,9960000,10100000,10300000,10500000,10700000,10900000,11100000,11200000,11500000,11700000,11900000,12100000,12300000,12600000,12800000,13000000,13300000,13500000,13800000,14100000,14400000,14700000,15100000,15400000,15800000,16100000,16500000,16900000,17300000,17700000,18100000,18500000,18900000,19300000,19800000,20200000,20600000,21000000,21500000,21900000,22400000,22900000,23400000,23900000,24400000,24900000,25400000,26000000,26500000,27100000,27700000,28200000,28800000,29400000,30000000,30600000,31200000,31900000,32500000,33200000,33900000,34600000,35300000,36000000,36800000,37500000,38300000,39100000,39900000,40700000,41500000,42500000,43500000,44500000,45600000,46700000,47800000,48900000,50100000,51900000,54000000,55600000,57300000,59000000,60800000,62600000,64400000,66200000,68200000,70100000,72200000,74400000,76600000,78900000,81200000,83500000,85800000,88200000,90600000,92900000,95300000,97700000,100000000,103000000,105000000,108000000,110000000,113000000,116000000,118000000,121000000,124000000,127000000,130000000,133000000,136000000,138000000,141000000,144000000,147000000,149000000,152000000,155000000,157000000,160000000,162000000,165000000,168000000,170000000,173000000,175000000,178000000,180000000,182000000,185000000,187000000,189000000,191000000,193000000,195000000,197000000,199000000,201000000,202000000,204000000,206000000,208000000,209000000,211000000,212000000,214000000,215000000,217000000,218000000,219000000,220000000,222000000,223000000,224000000,225000000,225000000,226000000,227000000,228000000,229000000,229000000,230000000,230000000,231000000,231000000,232000000,232000000,232000000,232000000,233000000,233000000,233000000,233000000,233000000,233000000,233000000,233000000,232000000,232000000,232000000,232000000,231000000,231000000,230000000,230000000,229000000,229000000,228000000,227000000,227000000,226000000,225000000,224000000,224000000,223000000,222000000,221000000,220000000,219000000,218000000,217000000,216000000,215000000,214000000,213000000,212000000,211000000,210000000,208000000,207000000,206000000,205000000,204000000,203000000,202000000,201000000,200000000,199000000,198000000,197000000,195000000,194000000,193000000,192000000,191000000,190000000 -Brunei,2130,2130,2130,2130,2130,2130,2130,2130,2130,2130,2130,2130,2130,2140,2150,2160,2170,2190,2210,2230,2250,2280,2310,2340,2370,2410,2450,2490,2530,2580,2630,2690,2740,2800,2860,2920,2980,3040,3100,3170,3230,3300,3370,3440,3510,3580,3650,3730,3810,3890,3970,4050,4130,4220,4300,4390,4480,4580,4670,4770,4870,4970,5080,5190,5320,5440,5580,5720,5870,6020,6180,6350,6530,6690,6880,7090,7300,7500,7740,7990,8250,8500,8770,9050,9330,9630,9940,10200,10600,10900,11300,11600,12000,12400,12800,13200,13600,14100,14500,15000,15500,16000,16500,17000,17600,18200,18700,19300,19900,20600,21200,21800,22300,22700,23000,23400,23800,24200,24600,25000,25500,25900,26300,26600,27000,27400,27800,28200,28600,29000,29500,29900,30500,31100,31700,32300,32900,33600,34300,34900,35600,36300,37000,37800,38500,39300,40000,41300,43100,45400,48000,51000,53900,57000,60100,63400,66900,70500,74200,77900,81700,85600,89500,93600,97800,102000,107000,112000,118000,124000,130000,136000,142000,149000,155000,162000,168000,175000,181000,188000,194000,200000,206000,212000,218000,225000,231000,238000,244000,252000,259000,266000,274000,282000,290000,297000,305000,312000,319000,326000,333000,340000,347000,353000,360000,365000,370000,375000,379000,384000,389000,394000,400000,406000,412000,418000,423000,429000,434000,439000,445000,450000,455000,459000,464000,469000,473000,478000,482000,486000,490000,493000,497000,500000,504000,507000,510000,513000,515000,518000,520000,522000,525000,527000,528000,530000,532000,533000,534000,536000,537000,538000,538000,539000,540000,540000,540000,540000,540000,540000,540000,539000,539000,538000,537000,536000,535000,534000,533000,532000,531000,530000,528000,527000,525000,524000,523000,521000,520000,518000,517000,515000,514000,512000,511000,509000,508000,506000,505000,503000,502000,500000,499000,497000,496000,494000,493000,491000,490000,488000,487000 -Bulgaria,1990000,2000000,2010000,2020000,2030000,2040000,2050000,2060000,2070000,2080000,2090000,2100000,2110000,2120000,2130000,2140000,2150000,2160000,2170000,2180000,2190000,2200000,2210000,2220000,2230000,2240000,2250000,2260000,2270000,2280000,2290000,2300000,2310000,2320000,2330000,2340000,2350000,2360000,2370000,2380000,2390000,2400000,2410000,2420000,2430000,2440000,2450000,2460000,2470000,2470000,2480000,2490000,2500000,2500000,2510000,2520000,2520000,2530000,2530000,2540000,2540000,2550000,2560000,2570000,2580000,2590000,2600000,2620000,2640000,2660000,2680000,2700000,2730000,2740000,2770000,2800000,2840000,2870000,2910000,2950000,2990000,3040000,3080000,3120000,3170000,3210000,3260000,3310000,3350000,3400000,3450000,3500000,3560000,3610000,3660000,3720000,3770000,3830000,3880000,3940000,3990000,4050000,4100000,4150000,4210000,4260000,4310000,4360000,4420000,4470000,4530000,4590000,4660000,4720000,4770000,4820000,4870000,4920000,4970000,5030000,5090000,5160000,5260000,5370000,5480000,5600000,5700000,5800000,5880000,5960000,6030000,6110000,6190000,6270000,6350000,6420000,6470000,6520000,6570000,6620000,6670000,6720000,6780000,6840000,6890000,6950000,7010000,7070000,7140000,7200000,7250000,7310000,7370000,7430000,7500000,7560000,7630000,7690000,7750000,7820000,7890000,7950000,8020000,8090000,8160000,8220000,8280000,8340000,8400000,8450000,8510000,8560000,8610000,8660000,8700000,8740000,8770000,8800000,8830000,8850000,8880000,8910000,8930000,8950000,8970000,8980000,8970000,8960000,8940000,8900000,8840000,8770000,8680000,8580000,8470000,8380000,8290000,8210000,8140000,8070000,8000000,7930000,7870000,7800000,7740000,7680000,7620000,7570000,7510000,7460000,7400000,7360000,7310000,7270000,7220000,7180000,7130000,7080000,7040000,6990000,6940000,6890000,6840000,6790000,6740000,6690000,6640000,6590000,6540000,6480000,6430000,6380000,6320000,6270000,6210000,6160000,6100000,6050000,6000000,5950000,5890000,5840000,5790000,5750000,5700000,5650000,5610000,5560000,5510000,5470000,5420000,5380000,5330000,5290000,5250000,5200000,5160000,5110000,5070000,5030000,4980000,4940000,4890000,4850000,4810000,4770000,4720000,4680000,4640000,4600000,4570000,4530000,4500000,4460000,4430000,4400000,4370000,4340000,4310000,4280000,4250000,4230000,4210000,4180000,4160000,4140000,4120000,4100000,4080000,4060000,4040000,4020000,4000000,3980000,3960000,3940000,3930000,3910000,3890000,3870000,3850000 -Burkina Faso,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1670000,1680000,1680000,1690000,1690000,1700000,1700000,1710000,1720000,1730000,1740000,1750000,1760000,1770000,1780000,1790000,1810000,1820000,1830000,1850000,1860000,1870000,1890000,1900000,1910000,1930000,1940000,1960000,1970000,1980000,2000000,2010000,2030000,2040000,2060000,2070000,2090000,2100000,2120000,2130000,2150000,2170000,2180000,2200000,2210000,2230000,2250000,2260000,2280000,2290000,2310000,2330000,2350000,2360000,2380000,2400000,2410000,2430000,2450000,2470000,2490000,2500000,2520000,2540000,2560000,2580000,2590000,2610000,2630000,2650000,2670000,2690000,2710000,2730000,2750000,2770000,2790000,2810000,2830000,2850000,2870000,2890000,2910000,2930000,2960000,2980000,3000000,3020000,3040000,3070000,3090000,3110000,3130000,3160000,3180000,3200000,3220000,3250000,3270000,3300000,3320000,3340000,3370000,3390000,3420000,3440000,3470000,3490000,3520000,3540000,3570000,3600000,3620000,3650000,3670000,3700000,3730000,3760000,3780000,3810000,3840000,3870000,3890000,3920000,3950000,3980000,4010000,4040000,4070000,4100000,4130000,4160000,4190000,4220000,4250000,4280000,4320000,4370000,4410000,4460000,4520000,4570000,4640000,4700000,4760000,4830000,4890000,4960000,5030000,5100000,5170000,5260000,5340000,5430000,5530000,5620000,5720000,5830000,5930000,6040000,6150000,6270000,6400000,6530000,6670000,6820000,6990000,7160000,7340000,7530000,7730000,7930000,8140000,8360000,8580000,8810000,9050000,9300000,9550000,9820000,10100000,10400000,10700000,11000000,11300000,11600000,11900000,12300000,12700000,13000000,13400000,13800000,14300000,14700000,15100000,15600000,16100000,16600000,17100000,17600000,18100000,18600000,19200000,19800000,20300000,20900000,21500000,22100000,22700000,23300000,24000000,24600000,25300000,26000000,26700000,27400000,28100000,28800000,29600000,30300000,31100000,31800000,32600000,33400000,34200000,35000000,35800000,36600000,37400000,38200000,39000000,39900000,40700000,41500000,42400000,43200000,44100000,44900000,45800000,46600000,47500000,48300000,49200000,50100000,50900000,51800000,52600000,53500000,54400000,55200000,56100000,56900000,57800000,58600000,59500000,60300000,61200000,62000000,62800000,63700000,64500000,65300000,66100000,66900000,67700000,68400000,69200000,70000000,70700000,71400000,72200000,72900000,73600000,74300000,75000000,75700000,76300000,77000000,77600000,78200000,78800000,79400000,80000000,80600000,81200000,81700000 -Burundi,899000,899000,899000,899000,899000,899000,899000,899000,899000,899000,899000,899000,900000,901000,902000,904000,906000,909000,911000,914000,918000,922000,926000,930000,935000,940000,946000,952000,958000,965000,972000,980000,988000,995000,1000000,1010000,1020000,1030000,1030000,1040000,1050000,1060000,1070000,1080000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1140000,1150000,1160000,1170000,1170000,1180000,1190000,1200000,1210000,1210000,1220000,1230000,1240000,1250000,1260000,1260000,1270000,1280000,1290000,1300000,1310000,1320000,1330000,1330000,1340000,1350000,1360000,1370000,1380000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1470000,1480000,1490000,1500000,1510000,1520000,1530000,1540000,1550000,1560000,1570000,1580000,1590000,1600000,1610000,1620000,1630000,1640000,1650000,1670000,1680000,1690000,1700000,1710000,1720000,1730000,1750000,1760000,1770000,1780000,1800000,1810000,1820000,1840000,1850000,1870000,1880000,1900000,1910000,1930000,1940000,1960000,1970000,1990000,2000000,2020000,2030000,2050000,2060000,2080000,2100000,2110000,2130000,2150000,2160000,2180000,2200000,2210000,2230000,2250000,2260000,2280000,2310000,2360000,2400000,2450000,2490000,2530000,2580000,2630000,2680000,2730000,2790000,2840000,2890000,2950000,3010000,3080000,3150000,3230000,3320000,3390000,3460000,3510000,3540000,3580000,3620000,3670000,3740000,3820000,3910000,4010000,4120000,4220000,4330000,4450000,4570000,4700000,4840000,4990000,5140000,5280000,5420000,5540000,5660000,5770000,5870000,5960000,6040000,6110000,6190000,6280000,6400000,6560000,6740000,6950000,7180000,7420000,7680000,7940000,8210000,8490000,8770000,9040000,9320000,9600000,9890000,10200000,10500000,10900000,11200000,11600000,11900000,12300000,12700000,13000000,13400000,13800000,14200000,14600000,15000000,15400000,15800000,16200000,16600000,17100000,17500000,18000000,18400000,18900000,19400000,19900000,20400000,20900000,21400000,21900000,22500000,23000000,23500000,24100000,24600000,25200000,25800000,26300000,26900000,27500000,28000000,28600000,29200000,29800000,30300000,30900000,31500000,32100000,32700000,33300000,33900000,34500000,35100000,35700000,36300000,36900000,37500000,38100000,38700000,39300000,39900000,40500000,41100000,41700000,42300000,43000000,43500000,44100000,44700000,45300000,45900000,46500000,47000000,47600000,48200000,48700000,49300000,49800000,50400000,50900000,51400000,52000000,52500000,53000000,53500000,54000000,54500000 -Cambodia,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2100000,2100000,2100000,2100000,2100000,2110000,2110000,2110000,2120000,2120000,2120000,2130000,2130000,2140000,2140000,2150000,2150000,2160000,2160000,2170000,2170000,2180000,2180000,2190000,2190000,2200000,2200000,2210000,2210000,2220000,2220000,2230000,2230000,2240000,2240000,2250000,2250000,2260000,2260000,2270000,2280000,2280000,2290000,2290000,2300000,2310000,2310000,2320000,2330000,2340000,2350000,2360000,2370000,2380000,2390000,2400000,2410000,2420000,2430000,2450000,2460000,2480000,2490000,2510000,2530000,2540000,2560000,2580000,2590000,2610000,2630000,2640000,2660000,2680000,2700000,2710000,2730000,2750000,2770000,2790000,2800000,2820000,2840000,2860000,2880000,2900000,2920000,2930000,2950000,2970000,2990000,3010000,3030000,3050000,3070000,3090000,3120000,3140000,3170000,3200000,3230000,3260000,3300000,3330000,3360000,3390000,3420000,3450000,3490000,3520000,3550000,3590000,3620000,3650000,3690000,3720000,3760000,3790000,3830000,3870000,3900000,3940000,3980000,4010000,4050000,4090000,4130000,4170000,4210000,4250000,4290000,4330000,4370000,4430000,4540000,4660000,4780000,4910000,5050000,5180000,5310000,5440000,5580000,5720000,5870000,6030000,6180000,6330000,6470000,6580000,6690000,6780000,6880000,6990000,7140000,7300000,7450000,7530000,7520000,7400000,7190000,6960000,6770000,6690000,6750000,6920000,7170000,7450000,7710000,7960000,8200000,8430000,8690000,8970000,9290000,9620000,9970000,10300000,10700000,11000000,11300000,11600000,11900000,12200000,12400000,12600000,12900000,13100000,13300000,13500000,13700000,13900000,14100000,14300000,14500000,14800000,15000000,15300000,15500000,15800000,16000000,16200000,16500000,16700000,16900000,17200000,17400000,17600000,17800000,18000000,18200000,18400000,18600000,18800000,19000000,19200000,19400000,19500000,19700000,19900000,20100000,20300000,20400000,20600000,20800000,20900000,21100000,21200000,21400000,21500000,21600000,21800000,21900000,22000000,22100000,22200000,22300000,22400000,22500000,22600000,22700000,22800000,22900000,22900000,23000000,23100000,23100000,23200000,23200000,23300000,23300000,23300000,23400000,23400000,23400000,23400000,23400000,23500000,23500000,23500000,23500000,23400000,23400000,23400000,23400000,23400000,23400000,23300000,23300000,23300000,23300000,23200000,23200000,23200000,23100000,23100000,23100000,23000000,23000000,22900000,22900000,22900000,22800000,22800000 -Cameroon,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1860000,1870000,1870000,1870000,1870000,1870000,1880000,1880000,1880000,1890000,1890000,1900000,1900000,1910000,1910000,1920000,1920000,1930000,1930000,1940000,1950000,1950000,1960000,1960000,1970000,1970000,1980000,1990000,1990000,2000000,2000000,2010000,2020000,2020000,2030000,2030000,2040000,2040000,2050000,2050000,2060000,2060000,2070000,2070000,2080000,2080000,2090000,2090000,2100000,2100000,2110000,2110000,2120000,2130000,2130000,2140000,2140000,2150000,2150000,2160000,2160000,2170000,2170000,2180000,2180000,2190000,2190000,2200000,2200000,2210000,2220000,2220000,2230000,2230000,2240000,2240000,2250000,2250000,2260000,2260000,2270000,2280000,2280000,2290000,2290000,2300000,2300000,2310000,2310000,2320000,2330000,2330000,2340000,2340000,2350000,2350000,2360000,2370000,2370000,2380000,2380000,2390000,2390000,2400000,2410000,2420000,2420000,2430000,2440000,2450000,2450000,2490000,2550000,2640000,2730000,2820000,2900000,2960000,3000000,3040000,3090000,3140000,3200000,3280000,3350000,3430000,3510000,3590000,3670000,3760000,3850000,3940000,4030000,4120000,4220000,4310000,4380000,4460000,4540000,4620000,4700000,4790000,4880000,4970000,5070000,5180000,5290000,5400000,5520000,5650000,5780000,5920000,6060000,6210000,6360000,6530000,6700000,6880000,7060000,7250000,7460000,7670000,7890000,8120000,8360000,8620000,8880000,9160000,9450000,9740000,10100000,10400000,10700000,11000000,11400000,11700000,12100000,12400000,12800000,13100000,13500000,13800000,14200000,14500000,14900000,15300000,15700000,16100000,16500000,17000000,17400000,17900000,18400000,18900000,19400000,20000000,20500000,21100000,21700000,22200000,22800000,23400000,24100000,24700000,25300000,26000000,26600000,27300000,28000000,28600000,29300000,30000000,30800000,31500000,32200000,33000000,33700000,34500000,35300000,36100000,36900000,37700000,38500000,39300000,40200000,41000000,41900000,42700000,43600000,44500000,45400000,46200000,47100000,48000000,48900000,49800000,50700000,51600000,52500000,53500000,54400000,55300000,56200000,57100000,58000000,59000000,59900000,60800000,61700000,62600000,63600000,64500000,65400000,66300000,67200000,68100000,69000000,69900000,70800000,71700000,72600000,73400000,74300000,75200000,76000000,76900000,77700000,78500000,79400000,80200000,81000000,81800000,82600000,83300000,84100000,84800000,85600000,86300000,87000000,87700000,88400000,89100000,89700000,90400000,91000000,91600000 -Canada,646000,653000,661000,669000,677000,684000,693000,701000,709000,717000,728000,737000,748000,760000,773000,787000,803000,820000,838000,858000,879000,903000,928000,955000,983000,1010000,1050000,1080000,1120000,1160000,1200000,1250000,1290000,1340000,1390000,1450000,1500000,1560000,1620000,1680000,1750000,1810000,1880000,1950000,2020000,2090000,2170000,2250000,2320000,2410000,2490000,2570000,2650000,2730000,2810000,2880000,2950000,3030000,3100000,3170000,3230000,3290000,3360000,3420000,3480000,3540000,3600000,3650000,3710000,3760000,3820000,3870000,3920000,3970000,4020000,4080000,4130000,4190000,4240000,4300000,4360000,4420000,4480000,4530000,4590000,4650000,4700000,4760000,4810000,4860000,4910000,4960000,5010000,5060000,5110000,5160000,5220000,5280000,5350000,5440000,5530000,5630000,5720000,5860000,6020000,6190000,6370000,6550000,6750000,6980000,7180000,7380000,7600000,7820000,8020000,8140000,8200000,8260000,8370000,8540000,8760000,8960000,9120000,9240000,9370000,9520000,9690000,9880000,10100000,10300000,10400000,10600000,10800000,10900000,11000000,11100000,11200000,11300000,11400000,11500000,11700000,11800000,11900000,12100000,12200000,12400000,12600000,12900000,13100000,13400000,13700000,14100000,14500000,14900000,15300000,15700000,16200000,16600000,17100000,17500000,17900000,18300000,18700000,19000000,19400000,19700000,20100000,20400000,20800000,21100000,21500000,21800000,22200000,22500000,22800000,23200000,23500000,23700000,24000000,24300000,24500000,24800000,25000000,25300000,25600000,25900000,26200000,26600000,26900000,27300000,27700000,28000000,28400000,28700000,29000000,29300000,29600000,29900000,30200000,30500000,30700000,31000000,31300000,31600000,31900000,32300000,32600000,33000000,33400000,33800000,34200000,34500000,34900000,35300000,35600000,35900000,36300000,36600000,37000000,37300000,37600000,37900000,38200000,38600000,38900000,39200000,39500000,39800000,40100000,40300000,40600000,40900000,41100000,41400000,41600000,41900000,42100000,42400000,42600000,42800000,43000000,43200000,43400000,43600000,43800000,44000000,44200000,44400000,44600000,44800000,44900000,45100000,45300000,45500000,45600000,45800000,46000000,46100000,46300000,46500000,46600000,46800000,47000000,47100000,47300000,47400000,47600000,47800000,47900000,48100000,48200000,48400000,48500000,48700000,48800000,49000000,49100000,49200000,49400000,49500000,49600000,49700000,49800000,49900000,50100000,50200000,50300000,50400000,50500000,50600000,50700000,50800000,50900000,51000000,51100000,51200000,51300000,51300000,51400000,51500000,51600000 -Cape Verde,55700,55700,55700,55700,55700,55700,55700,55700,55700,55700,55700,55700,55800,55900,56000,56100,56200,56400,56600,56800,57100,57300,57600,58000,58300,58700,59100,59500,60000,60500,61000,61600,62100,62700,63200,63800,64400,65000,65500,66100,66700,67300,67900,68500,69100,69800,70400,71000,71700,72300,73000,73600,74300,74900,75600,76300,76900,77600,78300,79000,79700,80400,81200,81900,82600,83300,84100,84800,85600,86400,87100,87900,88700,89400,90200,91100,91900,92700,93500,94300,95200,96000,96800,97700,98600,99400,100000,101000,102000,103000,104000,105000,106000,107000,108000,109000,110000,111000,112000,113000,114000,115000,116000,117000,118000,119000,120000,121000,122000,123000,124000,125000,126000,127000,129000,130000,131000,132000,133000,134000,136000,137000,138000,139000,141000,142000,143000,144000,146000,147000,148000,150000,151000,152000,154000,155000,156000,158000,159000,161000,162000,164000,165000,167000,168000,170000,171000,173000,174000,176000,178000,186000,192000,195000,197000,197000,198000,198000,199000,200000,202000,206000,211000,217000,224000,231000,240000,249000,258000,265000,270000,273000,274000,273000,272000,272000,274000,276000,279000,282000,287000,292000,297000,303000,309000,315000,320000,325000,330000,335000,342000,350000,359000,369000,379000,389000,399000,408000,417000,426000,435000,444000,452000,460000,468000,475000,481000,486000,492000,497000,502000,508000,514000,520000,526000,533000,540000,546000,553000,560000,567000,574000,581000,588000,595000,602000,609000,615000,622000,629000,635000,641000,648000,654000,660000,665000,671000,677000,682000,687000,692000,697000,702000,706000,711000,715000,719000,723000,727000,731000,734000,738000,741000,744000,747000,749000,752000,754000,756000,758000,760000,762000,763000,764000,765000,766000,767000,767000,767000,768000,767000,767000,767000,766000,765000,764000,763000,762000,761000,759000,758000,756000,754000,753000,751000,749000,747000,745000,743000,740000,738000,736000,734000,731000,729000,727000,724000,722000,719000,717000,714000 -Central African Republic,479000,479000,479000,479000,479000,479000,479000,479000,479000,479000,479000,480000,480000,480000,481000,481000,482000,483000,483000,484000,486000,487000,488000,490000,491000,493000,495000,497000,499000,501000,503000,505000,508000,510000,513000,515000,518000,520000,523000,525000,528000,530000,533000,535000,538000,540000,543000,546000,548000,551000,553000,556000,559000,562000,564000,567000,570000,573000,576000,578000,581000,584000,587000,590000,593000,596000,598000,601000,604000,607000,610000,613000,616000,619000,622000,625000,628000,631000,635000,638000,641000,644000,647000,650000,653000,657000,660000,663000,666000,669000,673000,676000,679000,683000,686000,689000,693000,696000,700000,703000,706000,710000,713000,717000,720000,724000,727000,731000,735000,738000,742000,745000,749000,753000,756000,760000,764000,768000,771000,775000,779000,782000,786000,790000,794000,797000,801000,805000,809000,813000,817000,821000,824000,828000,832000,836000,848000,869000,898000,929000,960000,992000,1030000,1060000,1100000,1130000,1170000,1210000,1250000,1290000,1330000,1340000,1350000,1370000,1380000,1400000,1420000,1440000,1460000,1480000,1500000,1530000,1560000,1590000,1620000,1650000,1680000,1720000,1760000,1790000,1830000,1860000,1900000,1940000,1980000,2020000,2060000,2110000,2160000,2220000,2280000,2350000,2420000,2490000,2570000,2630000,2700000,2760000,2810000,2870000,2940000,3010000,3100000,3180000,3270000,3350000,3440000,3520000,3600000,3680000,3750000,3830000,3910000,3980000,4060000,4130000,4200000,4280000,4350000,4400000,4450000,4480000,4490000,4500000,4520000,4550000,4590000,4660000,4740000,4830000,4920000,5020000,5130000,5250000,5370000,5490000,5610000,5740000,5860000,5990000,6120000,6260000,6390000,6530000,6660000,6800000,6930000,7070000,7210000,7340000,7480000,7620000,7760000,7890000,8030000,8170000,8300000,8440000,8580000,8710000,8850000,8990000,9130000,9260000,9400000,9540000,9680000,9810000,9950000,10100000,10200000,10400000,10500000,10600000,10700000,10900000,11000000,11100000,11300000,11400000,11500000,11600000,11700000,11800000,12000000,12100000,12200000,12300000,12400000,12500000,12600000,12700000,12800000,12900000,12900000,13000000,13100000,13200000,13300000,13400000,13400000,13500000,13600000,13600000,13700000,13800000,13800000,13900000,14000000,14000000,14100000 -Chad,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1430000,1440000,1440000,1440000,1440000,1440000,1440000,1440000,1440000,1440000,1440000,1440000,1440000,1440000,1450000,1450000,1450000,1450000,1450000,1450000,1450000,1450000,1450000,1450000,1450000,1450000,1450000,1460000,1460000,1460000,1460000,1460000,1460000,1460000,1460000,1460000,1460000,1460000,1460000,1470000,1470000,1470000,1470000,1470000,1470000,1470000,1470000,1470000,1470000,1470000,1470000,1470000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1480000,1500000,1540000,1600000,1660000,1730000,1790000,1860000,1930000,2010000,2090000,2170000,2250000,2340000,2430000,2500000,2540000,2590000,2640000,2690000,2740000,2790000,2840000,2890000,2950000,3000000,3060000,3120000,3180000,3250000,3310000,3370000,3430000,3500000,3570000,3640000,3730000,3820000,3910000,4000000,4090000,4170000,4250000,4340000,4420000,4510000,4610000,4720000,4830000,4950000,5090000,5240000,5410000,5580000,5770000,5960000,6150000,6350000,6560000,6770000,7000000,7240000,7490000,7760000,8040000,8340000,8660000,9000000,9350000,9710000,10100000,10400000,10800000,11100000,11500000,11900000,12300000,12700000,13100000,13600000,14000000,14500000,14900000,15400000,15800000,16300000,16800000,17300000,17800000,18300000,18800000,19300000,19800000,20400000,20900000,21500000,22000000,22600000,23200000,23700000,24300000,24900000,25500000,26100000,26700000,27300000,27900000,28600000,29200000,29800000,30400000,31100000,31700000,32300000,33000000,33600000,34300000,34900000,35600000,36200000,36900000,37500000,38200000,38800000,39500000,40100000,40800000,41400000,42100000,42700000,43400000,44000000,44600000,45300000,45900000,46500000,47100000,47700000,48300000,48900000,49500000,50100000,50700000,51300000,51800000,52400000,53000000,53500000,54000000,54600000,55100000,55600000,56100000,56600000,57100000,57500000,58000000,58400000,58900000,59300000,59700000,60100000,60500000,60900000,61300000,61700000 -Chile,771000,771000,771000,771000,771000,771000,771000,771000,771000,771000,771000,772000,774000,777000,780000,785000,790000,796000,803000,812000,821000,831000,842000,855000,868000,882000,897000,914000,931000,950000,969000,990000,1010000,1030000,1050000,1070000,1100000,1120000,1140000,1160000,1180000,1210000,1230000,1250000,1270000,1300000,1320000,1340000,1370000,1390000,1410000,1440000,1460000,1490000,1510000,1540000,1560000,1590000,1620000,1640000,1670000,1700000,1730000,1750000,1780000,1810000,1840000,1870000,1900000,1930000,1960000,1990000,2020000,2050000,2090000,2120000,2150000,2180000,2220000,2250000,2280000,2320000,2350000,2390000,2420000,2460000,2490000,2530000,2560000,2600000,2640000,2670000,2710000,2740000,2780000,2820000,2850000,2890000,2930000,2960000,3000000,3030000,3070000,3110000,3140000,3180000,3220000,3260000,3290000,3330000,3370000,3410000,3450000,3490000,3530000,3570000,3610000,3660000,3700000,3740000,3790000,3840000,3880000,3930000,3990000,4040000,4100000,4150000,4210000,4280000,4340000,4410000,4480000,4550000,4630000,4710000,4790000,4870000,4960000,5050000,5150000,5240000,5340000,5440000,5550000,5650000,5760000,5860000,5970000,6080000,6190000,6330000,6470000,6610000,6760000,6910000,7060000,7220000,7380000,7550000,7720000,7890000,8070000,8250000,8430000,8620000,8810000,9000000,9190000,9380000,9560000,9750000,9920000,10100000,10300000,10400000,10600000,10800000,10900000,11100000,11300000,11400000,11600000,11800000,12000000,12200000,12400000,12600000,12800000,13000000,13200000,13500000,13700000,13900000,14100000,14300000,14500000,14700000,14900000,15100000,15300000,15400000,15600000,15800000,16000000,16100000,16300000,16500000,16700000,16800000,17000000,17200000,17300000,17500000,17600000,17800000,17900000,18100000,18200000,18300000,18500000,18600000,18700000,18900000,19000000,19100000,19200000,19300000,19400000,19500000,19600000,19700000,19800000,19900000,20000000,20100000,20100000,20200000,20300000,20300000,20400000,20400000,20500000,20500000,20600000,20600000,20600000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20700000,20600000,20600000,20600000,20600000,20500000,20500000,20500000,20400000,20400000,20300000,20300000,20200000,20200000,20100000,20100000,20000000,20000000,19900000,19900000,19800000,19800000,19700000,19600000,19600000,19500000,19500000,19400000,19300000,19300000,19200000,19200000,19100000,19000000,19000000,18900000,18900000,18800000,18800000 -China,322000000,324000000,327000000,330000000,333000000,336000000,338000000,341000000,344000000,347000000,351000000,353000000,356000000,359000000,362000000,365000000,368000000,371000000,374000000,377000000,380000000,383000000,386000000,388000000,391000000,393000000,395000000,397000000,399000000,401000000,402000000,404000000,405000000,406000000,407000000,408000000,409000000,410000000,411000000,411000000,411000000,411000000,411000000,411000000,410000000,409000000,408000000,407000000,406000000,404000000,403000000,401000000,399000000,397000000,395000000,393000000,391000000,389000000,386000000,384000000,381000000,379000000,376000000,374000000,372000000,371000000,369000000,368000000,367000000,366000000,366000000,365000000,365000000,364000000,364000000,365000000,365000000,366000000,366000000,368000000,369000000,370000000,371000000,372000000,373000000,374000000,376000000,377000000,378000000,380000000,381000000,383000000,385000000,387000000,388000000,390000000,392000000,394000000,397000000,399000000,401000000,403000000,405000000,407000000,410000000,412000000,414000000,416000000,419000000,422000000,425000000,428000000,433000000,438000000,443000000,447000000,452000000,457000000,462000000,468000000,472000000,474000000,476000000,478000000,479000000,481000000,483000000,485000000,486000000,488000000,490000000,493000000,497000000,500000000,503000000,506000000,509000000,511000000,514000000,517000000,520000000,522000000,525000000,528000000,531000000,533000000,536000000,539000000,542000000,546000000,554000000,570000000,582000000,593000000,602000000,611000000,620000000,629000000,638000000,648000000,658000000,668000000,680000000,692000000,706000000,723000000,741000000,761000000,782000000,804000000,825000000,845000000,866000000,885000000,904000000,921000000,937000000,952000000,966000000,980000000,994000000,1010000000,1020000000,1040000000,1050000000,1070000000,1090000000,1110000000,1130000000,1150000000,1170000000,1190000000,1200000000,1220000000,1230000000,1240000000,1250000000,1260000000,1270000000,1280000000,1280000000,1290000000,1300000000,1310000000,1310000000,1320000000,1330000000,1340000000,1340000000,1350000000,1360000000,1370000000,1380000000,1380000000,1390000000,1400000000,1400000000,1410000000,1420000000,1420000000,1420000000,1430000000,1430000000,1430000000,1440000000,1440000000,1440000000,1440000000,1440000000,1440000000,1440000000,1440000000,1440000000,1440000000,1440000000,1430000000,1430000000,1430000000,1420000000,1420000000,1420000000,1410000000,1410000000,1400000000,1400000000,1390000000,1390000000,1380000000,1380000000,1370000000,1360000000,1360000000,1350000000,1340000000,1340000000,1330000000,1320000000,1310000000,1300000000,1300000000,1290000000,1280000000,1270000000,1260000000,1260000000,1250000000,1240000000,1230000000,1220000000,1220000000,1210000000,1200000000,1190000000,1190000000,1180000000,1170000000,1160000000,1160000000,1150000000,1140000000,1140000000,1130000000,1120000000,1120000000,1110000000,1100000000,1100000000,1090000000,1080000000,1080000000,1070000000,1070000000,1060000000,1060000000,1050000000,1050000000,1040000000,1040000000,1030000000,1030000000,1020000000 -Colombia,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1220000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1290000,1310000,1320000,1340000,1360000,1380000,1400000,1430000,1450000,1480000,1500000,1530000,1560000,1590000,1620000,1650000,1680000,1710000,1740000,1770000,1800000,1830000,1850000,1880000,1910000,1940000,1960000,1990000,2010000,2040000,2060000,2090000,2110000,2130000,2160000,2180000,2200000,2220000,2230000,2250000,2270000,2290000,2320000,2340000,2370000,2390000,2420000,2450000,2480000,2520000,2550000,2580000,2620000,2660000,2700000,2740000,2790000,2840000,2890000,2930000,2990000,3040000,3090000,3150000,3200000,3260000,3310000,3370000,3430000,3490000,3560000,3620000,3680000,3750000,3810000,3880000,3960000,4030000,4110000,4190000,4270000,4350000,4440000,4530000,4630000,4720000,4820000,4920000,5020000,5120000,5230000,5350000,5480000,5620000,5770000,5920000,6080000,6230000,6390000,6560000,6730000,6900000,7080000,7270000,7460000,7650000,7850000,8010000,8140000,8240000,8340000,8440000,8540000,8640000,8740000,8850000,9000000,9200000,9440000,9690000,9950000,10200000,10500000,10800000,11100000,11400000,11700000,12000000,12300000,12700000,13100000,13400000,13800000,14200000,14600000,15100000,15500000,16000000,16500000,17000000,17500000,18000000,18600000,19100000,19700000,20300000,20900000,21500000,22100000,22600000,23100000,23700000,24200000,24800000,25300000,25900000,26500000,27100000,27700000,28400000,29000000,29700000,30400000,31000000,31700000,32300000,33000000,33600000,34300000,34900000,35600000,36200000,36800000,37400000,38000000,38600000,39200000,39800000,40400000,41000000,41600000,42200000,42700000,43300000,43800000,44400000,44900000,45400000,45900000,46400000,46900000,47300000,47800000,48200000,48700000,49100000,49500000,49800000,50200000,50600000,50900000,51200000,51600000,51900000,52100000,52400000,52700000,52900000,53100000,53300000,53500000,53700000,53900000,54100000,54200000,54300000,54400000,54500000,54600000,54700000,54700000,54800000,54800000,54800000,54800000,54800000,54800000,54800000,54700000,54700000,54600000,54500000,54500000,54400000,54300000,54100000,54000000,53900000,53800000,53600000,53500000,53300000,53200000,53000000,52800000,52600000,52400000,52200000,52000000,51800000,51600000,51400000,51200000,51000000,50700000,50500000,50300000,50000000,49800000,49500000,49300000,49000000,48800000,48500000,48300000,48000000,47800000,47500000,47300000,47000000,46800000,46500000,46300000,46000000,45800000,45500000,45300000,45100000,44800000 -Comoros,56300,56300,56300,56300,56300,56300,56300,56300,56300,56300,56300,56400,56400,56500,56600,56700,56800,56900,57100,57300,57500,57800,58000,58300,58600,59000,59300,59700,60100,60600,61000,61500,62000,62500,63000,63500,64000,64500,65000,65500,66000,66500,67000,67600,68100,68600,69200,69700,70300,70800,71400,72000,72500,73100,73700,74300,74900,75500,76100,76800,77400,78000,78600,79300,79900,80600,81200,81900,82500,83200,83900,84500,85200,85900,86600,87300,88000,88700,89400,90100,90900,91600,92300,93100,93800,94600,95300,96100,96900,97700,98400,99200,100000,101000,102000,102000,103000,104000,105000,106000,107000,108000,108000,109000,110000,111000,112000,113000,114000,115000,116000,117000,117000,118000,119000,120000,121000,122000,123000,124000,125000,126000,127000,128000,129000,130000,131000,132000,133000,134000,135000,137000,138000,139000,140000,141000,142000,143000,144000,145000,147000,148000,149000,150000,151000,152000,154000,155000,156000,157000,159000,163000,167000,170000,173000,176000,179000,182000,185000,188000,191000,194000,197000,200000,204000,207000,211000,216000,221000,225000,230000,235000,239000,244000,250000,257000,266000,276000,287000,297000,308000,318000,327000,336000,345000,355000,366000,377000,388000,400000,412000,424000,436000,449000,462000,475000,489000,502000,515000,529000,542000,556000,569000,583000,597000,612000,626000,642000,657000,673000,690000,707000,724000,742000,759000,777000,796000,814000,832000,851000,870000,888000,907000,926000,945000,965000,984000,1000000,1020000,1040000,1060000,1080000,1100000,1120000,1140000,1160000,1180000,1200000,1220000,1240000,1260000,1280000,1300000,1320000,1340000,1360000,1380000,1400000,1420000,1440000,1460000,1480000,1500000,1520000,1540000,1560000,1580000,1600000,1620000,1630000,1650000,1670000,1690000,1710000,1720000,1740000,1760000,1770000,1790000,1810000,1820000,1840000,1850000,1870000,1880000,1900000,1910000,1930000,1940000,1950000,1970000,1980000,1990000,2000000,2020000,2030000,2040000,2050000,2060000,2070000,2080000,2090000,2100000,2110000,2120000,2120000,2130000,2140000,2150000,2150000,2160000 -"Congo, Dem. Rep.",5160000,5160000,5160000,5160000,5160000,5160000,5160000,5160000,5160000,5160000,5160000,5170000,5170000,5170000,5180000,5190000,5200000,5210000,5220000,5240000,5260000,5270000,5290000,5320000,5340000,5370000,5390000,5420000,5450000,5490000,5520000,5560000,5590000,5630000,5670000,5710000,5740000,5780000,5820000,5860000,5900000,5940000,5980000,6020000,6060000,6100000,6140000,6180000,6220000,6260000,6300000,6340000,6380000,6420000,6470000,6510000,6550000,6590000,6640000,6680000,6730000,6770000,6810000,6860000,6900000,6950000,6990000,7040000,7090000,7130000,7180000,7230000,7270000,7320000,7370000,7420000,7460000,7510000,7560000,7610000,7660000,7710000,7760000,7810000,7860000,7910000,7970000,8020000,8070000,8120000,8180000,8230000,8280000,8340000,8390000,8450000,8500000,8560000,8610000,8670000,8730000,8790000,8840000,8900000,8960000,9020000,9080000,9130000,9190000,9250000,9320000,9380000,9440000,9500000,9560000,9620000,9690000,9750000,9820000,9880000,9950000,10000000,10100000,10100000,10200000,10300000,10300000,10400000,10500000,10600000,10600000,10700000,10800000,10800000,10900000,11000000,11100000,11100000,11200000,11300000,11400000,11400000,11500000,11600000,11700000,11700000,11800000,11900000,12000000,12000000,12200000,12400000,12700000,12900000,13200000,13500000,13800000,14200000,14500000,14900000,15200000,15600000,16000000,16500000,16900000,17400000,17900000,18400000,18900000,19500000,20000000,20600000,21100000,21700000,22300000,22900000,23600000,24200000,25000000,25700000,26400000,27000000,27700000,28400000,29100000,29900000,30700000,31500000,32400000,33500000,34600000,35900000,37300000,38800000,40300000,41600000,42800000,43800000,44800000,45900000,47100000,48400000,49800000,51400000,53000000,54800000,56500000,58400000,60400000,62400000,64500000,66700000,69000000,71300000,73700000,76200000,78700000,81300000,84000000,86700000,89500000,92300000,95200000,98200000,101000000,104000000,107000000,111000000,114000000,117000000,120000000,124000000,127000000,131000000,135000000,138000000,142000000,146000000,149000000,153000000,157000000,161000000,165000000,169000000,173000000,177000000,181000000,185000000,189000000,193000000,197000000,202000000,206000000,210000000,214000000,218000000,222000000,227000000,231000000,235000000,239000000,243000000,248000000,252000000,256000000,260000000,264000000,268000000,272000000,276000000,280000000,284000000,288000000,292000000,296000000,300000000,304000000,308000000,311000000,315000000,319000000,322000000,326000000,329000000,333000000,336000000,339000000,343000000,346000000,349000000,352000000,355000000,358000000,361000000,364000000,366000000,369000000,372000000,374000000,377000000,379000000 -"Congo, Rep.",314000,314000,314000,314000,314000,314000,314000,314000,314000,314000,314000,315000,315000,315000,316000,316000,317000,318000,318000,319000,321000,322000,323000,325000,326000,328000,330000,332000,334000,336000,338000,341000,343000,346000,348000,351000,354000,356000,359000,361000,364000,367000,369000,372000,375000,377000,380000,383000,386000,388000,391000,394000,397000,400000,403000,406000,409000,413000,416000,419000,422000,425000,428000,432000,435000,438000,442000,445000,448000,452000,455000,459000,462000,465000,469000,473000,476000,480000,483000,487000,491000,494000,498000,502000,506000,509000,513000,517000,521000,525000,529000,533000,537000,541000,545000,549000,553000,558000,562000,566000,570000,575000,579000,583000,588000,592000,597000,601000,606000,610000,615000,620000,624000,629000,634000,639000,643000,648000,653000,658000,663000,667000,672000,677000,682000,687000,692000,697000,702000,707000,712000,718000,723000,728000,733000,739000,744000,750000,755000,760000,766000,772000,777000,783000,789000,794000,800000,806000,812000,818000,827000,844000,862000,880000,900000,920000,942000,964000,987000,1010000,1040000,1060000,1090000,1120000,1150000,1180000,1220000,1250000,1290000,1330000,1360000,1410000,1450000,1500000,1540000,1590000,1640000,1690000,1740000,1790000,1840000,1890000,1950000,2010000,2070000,2130000,2190000,2250000,2310000,2380000,2440000,2510000,2580000,2650000,2720000,2800000,2880000,2960000,3050000,3140000,3230000,3320000,3410000,3500000,3610000,3720000,3840000,3980000,4120000,4250000,4390000,4510000,4630000,4750000,4870000,5000000,5130000,5260000,5400000,5540000,5690000,5830000,5980000,6140000,6290000,6460000,6620000,6790000,6960000,7140000,7320000,7500000,7690000,7880000,8080000,8280000,8480000,8680000,8890000,9100000,9310000,9520000,9740000,9950000,10200000,10400000,10600000,10800000,11100000,11300000,11500000,11700000,12000000,12200000,12400000,12700000,12900000,13200000,13400000,13600000,13900000,14100000,14400000,14600000,14900000,15100000,15400000,15600000,15900000,16100000,16400000,16700000,16900000,17200000,17400000,17700000,17900000,18200000,18400000,18700000,18900000,19200000,19400000,19700000,19900000,20200000,20400000,20600000,20900000,21100000,21400000,21600000,21800000,22100000,22300000,22500000,22700000,22900000,23200000,23400000,23600000 -Costa Rica,52000,53000,53500,54000,54500,55000,55500,56000,56500,57000,57600,58100,58700,59200,59700,60300,60800,61400,62000,62700,63400,64100,64800,65600,66400,67200,68000,68900,69900,70900,72000,73200,74500,75800,77200,78600,80100,81500,83000,84400,85900,87400,88900,90400,91900,93400,94900,96400,97900,99400,101000,102000,104000,105000,106000,108000,109000,111000,112000,114000,116000,118000,119000,121000,124000,126000,128000,131000,133000,136000,138000,141000,144000,147000,150000,154000,157000,160000,164000,168000,173000,177000,181000,186000,191000,196000,202000,207000,214000,220000,227000,234000,241000,247000,254000,261000,268000,276000,283000,290000,298000,305000,313000,320000,327000,334000,339000,346000,350000,355000,359000,364000,366000,374000,381000,391000,394000,400000,407000,414000,421000,429000,441000,453000,466000,479000,493000,506000,521000,535000,550000,566000,582000,598000,615000,632000,650000,669000,687000,707000,727000,747000,768000,790000,812000,835000,858000,882000,907000,933000,959000,986000,1020000,1050000,1080000,1120000,1160000,1200000,1240000,1290000,1330000,1380000,1430000,1480000,1540000,1590000,1640000,1690000,1750000,1800000,1850000,1900000,1950000,2000000,2050000,2100000,2150000,2210000,2270000,2330000,2390000,2450000,2520000,2590000,2660000,2730000,2800000,2870000,2940000,3020000,3100000,3180000,3260000,3340000,3430000,3510000,3600000,3680000,3770000,3850000,3930000,4000000,4060000,4130000,4190000,4250000,4310000,4370000,4430000,4490000,4550000,4600000,4650000,4710000,4760000,4810000,4860000,4910000,4950000,5000000,5040000,5090000,5130000,5170000,5210000,5250000,5280000,5320000,5350000,5390000,5420000,5450000,5480000,5500000,5530000,5550000,5580000,5600000,5620000,5640000,5660000,5680000,5690000,5710000,5720000,5730000,5740000,5750000,5760000,5770000,5770000,5780000,5780000,5780000,5780000,5780000,5780000,5780000,5780000,5770000,5770000,5760000,5750000,5740000,5730000,5720000,5710000,5700000,5690000,5670000,5660000,5650000,5630000,5610000,5600000,5580000,5560000,5540000,5520000,5500000,5480000,5450000,5430000,5410000,5390000,5360000,5340000,5320000,5290000,5270000,5250000,5220000,5200000,5180000,5160000,5130000,5110000,5090000,5070000,5050000,5030000 -Cote d'Ivoire,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1100000,1100000,1100000,1100000,1110000,1110000,1120000,1120000,1130000,1130000,1140000,1140000,1150000,1160000,1170000,1170000,1180000,1190000,1200000,1210000,1210000,1220000,1230000,1240000,1250000,1260000,1260000,1270000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1340000,1350000,1360000,1370000,1380000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1470000,1480000,1490000,1500000,1510000,1520000,1530000,1540000,1550000,1560000,1570000,1580000,1590000,1600000,1610000,1620000,1630000,1640000,1650000,1660000,1670000,1690000,1700000,1710000,1720000,1730000,1740000,1750000,1770000,1780000,1790000,1800000,1810000,1830000,1840000,1850000,1860000,1880000,1890000,1900000,1910000,1930000,1940000,1950000,1960000,1980000,1990000,2000000,2020000,2030000,2040000,2060000,2070000,2090000,2100000,2110000,2130000,2140000,2160000,2170000,2190000,2200000,2220000,2230000,2250000,2260000,2280000,2290000,2310000,2330000,2340000,2360000,2370000,2390000,2410000,2420000,2440000,2460000,2470000,2490000,2510000,2520000,2540000,2560000,2570000,2590000,2630000,2700000,2770000,2850000,2940000,3030000,3120000,3220000,3320000,3440000,3560000,3690000,3840000,4000000,4160000,4320000,4490000,4660000,4830000,5030000,5240000,5480000,5740000,6010000,6310000,6610000,6920000,7250000,7590000,7930000,8290000,8660000,9040000,9430000,9830000,10200000,10600000,11000000,11400000,11800000,12300000,12700000,13200000,13600000,14100000,14500000,15000000,15400000,15900000,16300000,16700000,17000000,17400000,17700000,18000000,18300000,18700000,19100000,19500000,19900000,20400000,20900000,21400000,22000000,22500000,23100000,23700000,24300000,24900000,25500000,26200000,26800000,27500000,28200000,28900000,29600000,30300000,31100000,31800000,32600000,33300000,34100000,34900000,35700000,36600000,37400000,38300000,39100000,40000000,40900000,41800000,42700000,43600000,44600000,45500000,46500000,47400000,48400000,49400000,50400000,51400000,52400000,53400000,54400000,55400000,56500000,57500000,58600000,59600000,60700000,61800000,62800000,63900000,65000000,66100000,67100000,68200000,69300000,70400000,71500000,72600000,73700000,74800000,75800000,76900000,78000000,79100000,80200000,81300000,82300000,83400000,84500000,85500000,86600000,87700000,88700000,89800000,90800000,91800000,92900000,93900000,94900000,95900000,96900000,97900000,98800000,99800000,101000000,102000000,103000000,104000000 -Croatia,1230000,1230000,1230000,1230000,1230000,1230000,1230000,1230000,1230000,1230000,1230000,1230000,1230000,1230000,1230000,1240000,1240000,1240000,1250000,1250000,1260000,1260000,1270000,1280000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1350000,1370000,1380000,1390000,1400000,1420000,1430000,1440000,1450000,1470000,1480000,1490000,1510000,1520000,1530000,1550000,1560000,1570000,1590000,1600000,1610000,1630000,1640000,1660000,1670000,1690000,1700000,1720000,1730000,1750000,1760000,1780000,1790000,1810000,1830000,1840000,1860000,1880000,1890000,1910000,1930000,1940000,1960000,1980000,1990000,2010000,2030000,2050000,2070000,2080000,2100000,2120000,2140000,2160000,2180000,2200000,2210000,2230000,2250000,2270000,2290000,2310000,2330000,2360000,2380000,2400000,2420000,2440000,2460000,2480000,2510000,2530000,2550000,2570000,2590000,2620000,2640000,2660000,2690000,2710000,2730000,2760000,2780000,2810000,2830000,2860000,2880000,2910000,2930000,2960000,2990000,3010000,3040000,3070000,3090000,3120000,3150000,3180000,3200000,3230000,3260000,3290000,3320000,3350000,3380000,3410000,3440000,3470000,3500000,3530000,3560000,3590000,3620000,3660000,3690000,3720000,3750000,3790000,3820000,3850000,3890000,3920000,3960000,4000000,4030000,4060000,4100000,4130000,4160000,4190000,4220000,4250000,4280000,4300000,4330000,4350000,4370000,4390000,4410000,4420000,4440000,4450000,4470000,4480000,4500000,4520000,4540000,4560000,4580000,4600000,4620000,4650000,4670000,4690000,4720000,4740000,4760000,4770000,4780000,4780000,4760000,4730000,4700000,4660000,4620000,4570000,4530000,4490000,4460000,4430000,4410000,4400000,4390000,4380000,4380000,4370000,4360000,4350000,4340000,4330000,4310000,4300000,4280000,4260000,4240000,4210000,4190000,4160000,4140000,4120000,4090000,4070000,4050000,4020000,4000000,3980000,3960000,3940000,3920000,3900000,3870000,3850000,3830000,3810000,3790000,3770000,3750000,3730000,3700000,3680000,3660000,3640000,3620000,3590000,3570000,3550000,3530000,3510000,3480000,3460000,3440000,3420000,3390000,3370000,3350000,3330000,3300000,3280000,3260000,3240000,3220000,3190000,3170000,3150000,3130000,3110000,3080000,3060000,3040000,3020000,3000000,2980000,2960000,2940000,2920000,2900000,2880000,2860000,2840000,2820000,2810000,2790000,2770000,2750000,2740000,2720000,2710000,2690000,2670000,2660000,2640000,2630000,2610000,2600000,2590000,2570000,2560000,2540000,2530000,2520000 -Cuba,345000,355000,366000,377000,389000,400000,412000,425000,438000,451000,470000,483000,496000,510000,523000,537000,550000,564000,578000,593000,608000,623000,638000,654000,670000,686000,702000,719000,736000,754000,773000,792000,811000,831000,851000,871000,892000,912000,933000,954000,976000,997000,1020000,1040000,1060000,1080000,1100000,1120000,1140000,1160000,1180000,1200000,1220000,1240000,1250000,1270000,1280000,1290000,1310000,1320000,1320000,1330000,1340000,1350000,1360000,1370000,1380000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1470000,1490000,1500000,1520000,1540000,1560000,1570000,1590000,1600000,1610000,1620000,1630000,1640000,1650000,1650000,1660000,1660000,1670000,1670000,1670000,1670000,1680000,1690000,1710000,1740000,1760000,1790000,1820000,1860000,1910000,1970000,2030000,2080000,2140000,2200000,2270000,2340000,2410000,2490000,2560000,2640000,2730000,2810000,2890000,2980000,3070000,3160000,3240000,3330000,3420000,3510000,3600000,3690000,3770000,3840000,3920000,4000000,4080000,4150000,4240000,4310000,4390000,4460000,4530000,4600000,4670000,4740000,4820000,4890000,4970000,5060000,5160000,5270000,5390000,5650000,5920000,6050000,6180000,6300000,6420000,6540000,6650000,6760000,6880000,7010000,7140000,7290000,7450000,7620000,7790000,7950000,8110000,8260000,8410000,8560000,8720000,8870000,9030000,9180000,9320000,9440000,9540000,9630000,9710000,9780000,9840000,9880000,9930000,9970000,10000000,10100000,10200000,10300000,10400000,10500000,10600000,10700000,10700000,10800000,10900000,10900000,11000000,11000000,11100000,11100000,11200000,11200000,11200000,11200000,11300000,11300000,11300000,11300000,11300000,11300000,11300000,11400000,11400000,11400000,11400000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11500000,11400000,11400000,11400000,11400000,11300000,11300000,11300000,11200000,11200000,11200000,11100000,11100000,11000000,11000000,10900000,10900000,10800000,10800000,10700000,10600000,10600000,10500000,10500000,10400000,10300000,10300000,10200000,10100000,10000000,9980000,9910000,9840000,9770000,9700000,9640000,9570000,9510000,9450000,9390000,9340000,9280000,9230000,9180000,9130000,9080000,9030000,8980000,8940000,8890000,8840000,8800000,8750000,8700000,8650000,8610000,8560000,8520000,8470000,8430000,8390000,8350000,8310000,8270000,8230000,8190000,8160000,8120000 -Cyprus,184000,184000,184000,184000,184000,184000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,185000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,186000,187000,187000,187000,188000,189000,190000,190000,192000,193000,194000,196000,198000,200000,202000,205000,207000,210000,212000,215000,218000,220000,223000,226000,229000,232000,235000,238000,242000,245000,248000,252000,256000,259000,263000,267000,271000,275000,278000,282000,286000,289000,293000,297000,300000,304000,308000,312000,316000,319000,323000,326000,330000,334000,338000,341000,345000,350000,355000,361000,368000,374000,380000,387000,394000,401000,407000,414000,422000,429000,436000,444000,453000,462000,473000,484000,494000,500000,507000,513000,521000,530000,540000,549000,559000,567000,573000,576000,578000,578000,579000,581000,585000,591000,598000,606000,614000,621000,628000,635000,642000,650000,658000,666000,673000,680000,685000,689000,692000,694000,698000,704000,712000,723000,736000,751000,767000,783000,801000,819000,837000,855000,873000,891000,909000,926000,943000,960000,977000,994000,1010000,1030000,1050000,1060000,1080000,1100000,1110000,1120000,1140000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1220000,1230000,1240000,1250000,1250000,1260000,1270000,1280000,1280000,1290000,1300000,1300000,1310000,1310000,1320000,1330000,1330000,1340000,1340000,1350000,1350000,1360000,1360000,1360000,1370000,1370000,1380000,1380000,1380000,1390000,1390000,1390000,1390000,1390000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1390000,1390000,1390000,1390000,1390000,1390000,1380000,1380000,1380000,1380000,1370000,1370000,1370000,1370000,1360000,1360000,1360000,1360000,1350000,1350000,1350000,1340000,1340000,1340000,1340000,1330000,1330000,1330000,1330000,1320000 -Czech Republic,5520000,5520000,5520000,5520000,5520000,5520000,5520000,5520000,5520000,5520000,5520000,5520000,5520000,5520000,5530000,5530000,5540000,5540000,5550000,5560000,5570000,5580000,5590000,5610000,5620000,5630000,5650000,5670000,5680000,5700000,5720000,5740000,5770000,5790000,5810000,5830000,5850000,5870000,5890000,5910000,5940000,5960000,5980000,6000000,6020000,6050000,6070000,6090000,6110000,6140000,6160000,6180000,6200000,6230000,6250000,6270000,6300000,6320000,6340000,6370000,6390000,6410000,6440000,6460000,6480000,6510000,6530000,6550000,6580000,6600000,6630000,6650000,6680000,6700000,6730000,6750000,6780000,6800000,6820000,6850000,6880000,6900000,6930000,6950000,6980000,7000000,7030000,7050000,7080000,7110000,7130000,7160000,7180000,7210000,7240000,7260000,7290000,7320000,7340000,7370000,7400000,7430000,7450000,7480000,7510000,7540000,7560000,7590000,7620000,7650000,7680000,7700000,7730000,7760000,7790000,7820000,7850000,7880000,7900000,7930000,7960000,7990000,8020000,8050000,8080000,8110000,8140000,8170000,8200000,8230000,8260000,8290000,8320000,8350000,8380000,8410000,8440000,8470000,8500000,8540000,8570000,8600000,8630000,8660000,8690000,8730000,8760000,8790000,8820000,8850000,8900000,9010000,9110000,9210000,9290000,9360000,9420000,9470000,9510000,9550000,9590000,9640000,9690000,9740000,9780000,9810000,9820000,9820000,9810000,9810000,9820000,9850000,9890000,9950000,10000000,10100000,10100000,10200000,10300000,10300000,10300000,10400000,10400000,10400000,10300000,10300000,10300000,10300000,10300000,10300000,10300000,10300000,10400000,10400000,10400000,10400000,10400000,10300000,10300000,10300000,10300000,10300000,10300000,10200000,10200000,10300000,10300000,10400000,10400000,10500000,10500000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10600000,10500000,10500000,10500000,10500000,10500000,10400000,10400000,10400000,10300000,10300000,10300000,10300000,10200000,10200000,10200000,10200000,10200000,10100000,10100000,10100000,10100000,10100000,10000000,10000000,9990000,9960000,9930000,9910000,9880000,9850000,9810000,9780000,9740000,9700000,9660000,9630000,9590000,9550000,9510000,9470000,9430000,9390000,9350000,9320000,9290000,9260000,9230000,9200000,9180000,9150000,9130000,9110000,9100000,9080000,9070000,9050000,9040000,9030000,9020000,9010000,9000000,8990000,8980000,8970000,8960000,8950000,8940000,8930000,8920000,8910000,8900000,8890000 -Denmark,1060000,1070000,1070000,1080000,1080000,1080000,1090000,1090000,1100000,1100000,1110000,1110000,1120000,1120000,1130000,1140000,1150000,1150000,1160000,1170000,1180000,1190000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1250000,1260000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1350000,1360000,1370000,1380000,1390000,1410000,1420000,1430000,1450000,1460000,1480000,1490000,1510000,1530000,1550000,1560000,1580000,1600000,1620000,1640000,1660000,1680000,1690000,1710000,1730000,1750000,1770000,1790000,1810000,1830000,1850000,1870000,1890000,1910000,1930000,1940000,1960000,1980000,2000000,2020000,2040000,2060000,2080000,2100000,2120000,2150000,2170000,2190000,2210000,2230000,2250000,2270000,2290000,2310000,2340000,2360000,2380000,2410000,2440000,2470000,2500000,2530000,2560000,2590000,2620000,2650000,2680000,2710000,2750000,2780000,2810000,2850000,2880000,2920000,2950000,2980000,3020000,3050000,3090000,3130000,3170000,3200000,3240000,3280000,3320000,3360000,3390000,3420000,3450000,3470000,3500000,3520000,3540000,3570000,3600000,3630000,3660000,3690000,3720000,3750000,3780000,3800000,3830000,3870000,3900000,3950000,4000000,4050000,4100000,4150000,4190000,4230000,4270000,4310000,4350000,4380000,4410000,4440000,4470000,4500000,4520000,4550000,4580000,4610000,4650000,4690000,4720000,4760000,4800000,4830000,4870000,4900000,4930000,4960000,4990000,5020000,5040000,5060000,5080000,5100000,5110000,5120000,5120000,5130000,5120000,5120000,5120000,5110000,5110000,5120000,5120000,5130000,5140000,5150000,5170000,5190000,5210000,5230000,5250000,5280000,5300000,5320000,5340000,5360000,5370000,5390000,5400000,5420000,5440000,5470000,5500000,5530000,5550000,5580000,5610000,5640000,5660000,5690000,5710000,5730000,5750000,5780000,5800000,5820000,5840000,5870000,5890000,5910000,5940000,5960000,5980000,6000000,6020000,6040000,6060000,6080000,6100000,6120000,6130000,6150000,6160000,6180000,6190000,6210000,6220000,6230000,6240000,6250000,6270000,6280000,6290000,6300000,6310000,6330000,6340000,6350000,6360000,6380000,6390000,6400000,6410000,6420000,6440000,6450000,6460000,6480000,6490000,6500000,6520000,6530000,6540000,6560000,6570000,6580000,6600000,6610000,6620000,6630000,6640000,6660000,6670000,6680000,6690000,6700000,6700000,6710000,6720000,6730000,6740000,6740000,6750000,6750000,6760000,6770000,6770000,6780000,6780000,6790000,6790000,6800000,6800000,6810000,6810000 -Djibouti,22800,22800,22800,22800,22800,22800,22800,22800,22800,22800,22800,22900,22900,22900,22900,23000,23000,23100,23200,23200,23300,23400,23500,23600,23800,23900,24000,24200,24300,24500,24700,24900,25100,25300,25500,25700,25900,26100,26300,26500,26700,26900,27100,27300,27500,27700,27900,28100,28400,28600,28800,29000,29200,29500,29700,29900,30100,30400,30600,30800,31100,31300,31500,31800,32000,32300,32500,32800,33000,33300,33500,33800,34000,34300,34600,34800,35100,35300,35600,35900,36200,36400,36700,37000,37300,37500,37800,38100,38400,38700,39000,39300,39600,39900,40200,40500,40800,41100,41400,41800,42100,42400,42700,43000,43400,43700,44000,44400,44700,45000,45400,45700,46100,46400,46800,47100,47500,47900,48200,48600,49000,49400,49700,50100,50500,50900,51300,51700,52100,52500,52900,53300,53700,54100,54500,55000,55400,55800,56200,56700,57100,57600,58000,58400,58900,59400,59800,60300,60700,61200,62000,63300,64800,66300,67900,69600,71500,73700,76400,79600,83600,88500,94200,101000,108000,115000,123000,131000,140000,150000,160000,169000,179000,191000,205000,224000,249000,277000,308000,336000,359000,375000,385000,394000,406000,426000,454000,490000,529000,564000,590000,607000,615000,618000,622000,630000,644000,661000,681000,700000,718000,733000,746000,759000,771000,783000,796000,809000,823000,837000,851000,866000,881000,897000,912000,927000,942000,957000,971000,986000,1000000,1010000,1030000,1040000,1060000,1070000,1080000,1100000,1110000,1120000,1130000,1140000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1250000,1260000,1270000,1280000,1280000,1290000,1300000,1300000,1310000,1310000,1320000,1320000,1330000,1330000,1330000,1340000,1340000,1340000,1350000,1350000,1350000,1350000,1350000,1350000,1350000,1350000,1350000,1350000,1350000,1350000,1350000,1350000,1350000,1340000,1340000,1340000,1340000,1330000,1330000,1330000,1330000,1320000,1320000,1320000,1310000,1310000,1310000,1300000,1300000,1300000,1290000,1290000,1290000,1280000,1280000,1280000,1270000,1270000,1260000 -Dominica,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20100,20100,20100,20200,20200,20300,20300,20400,20400,20500,20600,20600,20700,20800,20900,21000,21000,21100,21200,21300,21400,21500,21600,21700,21800,22000,22100,22200,22300,22500,22600,22800,22900,23100,23200,23400,23600,23700,23900,24100,24300,24500,24700,24900,25000,25200,25400,25600,25800,25900,26100,26300,26400,26600,26700,26900,27000,27200,27300,27400,27500,27500,27600,27600,27600,27600,27600,27600,27600,27500,27400,27400,27400,27400,27400,27500,27600,27700,27800,28000,28200,28500,28800,29100,29400,29700,30100,30500,31000,31500,31900,32500,33000,33500,34000,34300,34600,34900,35200,35500,35800,36100,36400,36700,37100,37400,37800,38200,38600,39000,39400,39800,40300,40700,41100,41500,42000,42400,42900,43300,43800,44200,44700,45200,45600,46100,46600,47100,47600,48100,48800,49600,50400,51100,51700,52300,52900,53700,54600,55500,56600,57800,58900,60000,61000,62000,62900,63900,65000,66300,67700,69000,70200,71100,71600,71700,71700,71800,72100,72600,73400,74200,74900,75300,75400,75200,74700,74200,73600,73000,72400,71700,71200,70900,70800,71000,71200,71400,71400,71100,70800,70300,69900,69700,69700,69800,70100,70400,70600,70800,71000,71100,71200,71400,71700,72000,72400,72800,73200,73500,73900,74300,74700,75100,75400,75700,76100,76400,76600,76900,77100,77300,77500,77600,77700,77800,77800,77900,77900,77900,77900,77800,77800,77800,77700,77600,77600,77500,77400,77300,77200,77000,76900,76700,76500,76300,76100,75900,75700,75400,75100,74800,74500,74200,73900,73500,73200,72800,72400,72100,71700,71300,70800,70400,70000,69600,69200,68800,68300,67900,67500,67000,66500,66100,65600,65100,64600,64100,63600,63100,62700,62200,61700,61200,60800,60300,59800,59400,59000,58500,58100,57700,57300,56900 -Dominican Republic,89000,89000,89000,89000,89000,89000,89000,89000,89000,89000,89000,89100,89200,89400,89700,90100,90500,91000,91600,92300,93100,93900,94800,95900,97000,98200,99400,101000,102000,104000,105000,107000,109000,111000,113000,115000,116000,118000,120000,122000,124000,127000,129000,131000,134000,136000,139000,142000,144000,147000,151000,154000,157000,161000,165000,169000,173000,177000,182000,186000,191000,196000,201000,206000,212000,217000,223000,228000,234000,240000,247000,253000,260000,266000,273000,280000,287000,294000,302000,309000,317000,325000,333000,342000,350000,359000,369000,378000,388000,398000,408000,419000,429000,440000,452000,464000,476000,488000,502000,515000,530000,545000,559000,575000,592000,610000,628000,645000,665000,684000,705000,725000,747000,767000,787000,805000,824000,843000,862000,882000,906000,936000,971000,1010000,1040000,1080000,1120000,1160000,1200000,1250000,1290000,1330000,1380000,1430000,1480000,1520000,1560000,1600000,1640000,1680000,1720000,1760000,1800000,1850000,1890000,1940000,1990000,2030000,2080000,2220000,2360000,2440000,2520000,2600000,2690000,2780000,2880000,2980000,3080000,3180000,3290000,3410000,3520000,3640000,3760000,3880000,4000000,4130000,4250000,4380000,4500000,4630000,4760000,4890000,5020000,5150000,5280000,5410000,5540000,5680000,5810000,5940000,6080000,6210000,6350000,6490000,6630000,6760000,6900000,7040000,7180000,7330000,7470000,7610000,7750000,7890000,8030000,8160000,8300000,8430000,8560000,8700000,8830000,8970000,9100000,9240000,9370000,9500000,9640000,9770000,9900000,10000000,10200000,10300000,10400000,10500000,10600000,10800000,10900000,11000000,11100000,11200000,11300000,11400000,11500000,11600000,11700000,11800000,11900000,12000000,12100000,12200000,12300000,12300000,12400000,12500000,12600000,12600000,12700000,12800000,12800000,12900000,12900000,13000000,13000000,13100000,13100000,13200000,13200000,13200000,13300000,13300000,13300000,13300000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13400000,13300000,13300000,13300000,13300000,13200000,13200000,13200000,13200000,13100000,13100000,13100000,13000000,13000000,12900000,12900000,12800000,12800000,12800000,12700000,12700000,12600000,12600000,12500000,12500000,12400000,12300000,12300000,12200000,12200000,12100000 -Ecuador,500000,500000,500000,500000,500000,500000,500000,500000,500000,500000,500000,500000,501000,502000,504000,506000,508000,511000,515000,518000,523000,527000,532000,538000,544000,551000,558000,566000,574000,582000,592000,601000,611000,621000,631000,642000,652000,663000,674000,685000,696000,708000,719000,730000,741000,752000,763000,774000,785000,796000,807000,818000,830000,841000,852000,863000,874000,885000,896000,907000,917000,928000,939000,949000,960000,971000,983000,994000,1010000,1020000,1030000,1040000,1050000,1060000,1080000,1090000,1100000,1110000,1130000,1140000,1150000,1170000,1180000,1190000,1210000,1220000,1230000,1250000,1260000,1280000,1290000,1310000,1320000,1340000,1350000,1370000,1380000,1400000,1420000,1440000,1460000,1470000,1490000,1520000,1540000,1560000,1580000,1610000,1630000,1660000,1680000,1710000,1730000,1760000,1780000,1790000,1810000,1820000,1840000,1850000,1870000,1890000,1900000,1920000,1930000,1950000,1960000,1980000,2000000,2010000,2040000,2090000,2140000,2190000,2240000,2290000,2350000,2400000,2460000,2520000,2580000,2640000,2700000,2760000,2830000,2910000,2980000,3070000,3150000,3310000,3470000,3560000,3660000,3750000,3850000,3960000,4070000,4180000,4300000,4420000,4550000,4680000,4810000,4950000,5100000,5250000,5410000,5570000,5730000,5900000,6070000,6250000,6430000,6610000,6800000,6990000,7180000,7370000,7570000,7770000,7980000,8180000,8390000,8610000,8820000,9050000,9270000,9500000,9740000,9980000,10200000,10500000,10700000,11000000,11200000,11400000,11700000,11900000,12200000,12400000,12600000,12900000,13100000,13300000,13500000,13700000,14000000,14200000,14400000,14700000,14900000,15200000,15400000,15700000,15900000,16100000,16400000,16600000,16900000,17100000,17300000,17600000,17800000,18000000,18300000,18500000,18700000,18900000,19100000,19300000,19600000,19800000,20000000,20200000,20400000,20600000,20700000,20900000,21100000,21300000,21500000,21600000,21800000,22000000,22100000,22300000,22400000,22600000,22700000,22800000,23000000,23100000,23200000,23300000,23500000,23600000,23700000,23800000,23900000,24000000,24000000,24100000,24200000,24300000,24300000,24400000,24500000,24500000,24600000,24600000,24700000,24700000,24700000,24800000,24800000,24800000,24800000,24900000,24900000,24900000,24900000,24900000,24900000,24900000,24900000,24800000,24800000,24800000,24800000,24800000,24700000,24700000,24700000,24600000,24600000,24600000,24500000,24500000,24400000,24400000,24300000 -Egypt,4240000,4240000,4240000,4240000,4230000,4230000,4230000,4230000,4220000,4220000,4220000,4220000,4220000,4220000,4230000,4240000,4250000,4260000,4280000,4300000,4320000,4340000,4370000,4400000,4430000,4460000,4490000,4530000,4570000,4620000,4660000,4710000,4760000,4810000,4860000,4910000,4960000,5010000,5070000,5120000,5170000,5230000,5280000,5340000,5390000,5450000,5500000,5560000,5620000,5680000,5740000,5790000,5850000,5910000,5970000,6030000,6090000,6140000,6210000,6270000,6330000,6390000,6460000,6520000,6590000,6660000,6730000,6800000,6870000,6950000,7020000,7100000,7180000,7250000,7340000,7420000,7510000,7590000,7680000,7780000,7870000,7960000,8060000,8160000,8250000,8350000,8450000,8550000,8660000,8760000,8870000,8970000,9080000,9190000,9300000,9420000,9530000,9650000,9760000,9880000,10000000,10100000,10200000,10400000,10500000,10600000,10700000,10900000,11000000,11100000,11300000,11400000,11500000,11700000,11900000,12000000,12200000,12400000,12600000,12800000,13000000,13200000,13400000,13600000,13800000,14000000,14200000,14500000,14700000,14900000,15200000,15400000,15600000,15900000,16100000,16400000,16600000,16900000,17200000,17400000,17700000,18000000,18200000,18500000,18800000,19100000,19400000,19700000,20000000,20300000,20700000,21200000,21700000,22300000,22900000,23500000,24200000,24800000,25500000,26300000,27000000,27700000,28500000,29300000,30100000,30900000,31700000,32500000,33400000,34200000,35000000,35900000,36700000,37500000,38300000,39200000,40100000,41000000,42000000,43000000,44100000,45200000,46400000,47600000,48900000,50200000,51600000,53100000,54500000,56000000,57400000,58800000,60000000,61300000,62500000,63700000,64900000,66200000,67400000,68600000,69900000,71200000,72600000,74000000,75400000,76800000,78200000,79500000,81000000,82500000,84100000,85900000,87800000,89800000,91800000,93800000,95700000,97600000,99400000,101000000,103000000,105000000,106000000,108000000,110000000,111000000,113000000,115000000,116000000,118000000,120000000,121000000,123000000,125000000,127000000,128000000,130000000,132000000,134000000,135000000,137000000,139000000,141000000,142000000,144000000,146000000,147000000,149000000,150000000,152000000,153000000,155000000,156000000,158000000,159000000,161000000,162000000,163000000,164000000,166000000,167000000,168000000,169000000,171000000,172000000,173000000,174000000,175000000,176000000,177000000,178000000,179000000,180000000,181000000,182000000,183000000,184000000,185000000,186000000,187000000,188000000,188000000,189000000,190000000,191000000,191000000,192000000,193000000,193000000,194000000,194000000,195000000,196000000,196000000,197000000,197000000,197000000,198000000,198000000,198000000,199000000 -El Salvador,248000,248000,248000,248000,248000,248000,248000,248000,248000,248000,248000,248000,248000,249000,250000,250000,251000,252000,254000,255000,257000,259000,261000,263000,265000,268000,270000,273000,276000,280000,283000,287000,291000,294000,298000,302000,306000,310000,314000,318000,322000,327000,331000,335000,340000,345000,349000,354000,359000,364000,369000,374000,380000,385000,391000,396000,402000,408000,414000,420000,426000,433000,439000,446000,452000,459000,466000,473000,480000,487000,494000,502000,509000,516000,524000,532000,540000,547000,555000,564000,572000,580000,589000,598000,606000,615000,624000,633000,643000,652000,662000,672000,682000,692000,703000,713000,724000,736000,748000,761000,775000,789000,803000,819000,836000,853000,872000,889000,908000,928000,948000,968000,988000,1010000,1030000,1050000,1080000,1100000,1120000,1150000,1170000,1200000,1220000,1250000,1270000,1300000,1330000,1360000,1390000,1420000,1450000,1480000,1510000,1540000,1570000,1610000,1640000,1680000,1710000,1750000,1790000,1820000,1860000,1900000,1940000,1980000,2030000,2070000,2110000,2160000,2200000,2240000,2280000,2320000,2370000,2430000,2490000,2550000,2620000,2690000,2760000,2840000,2930000,3020000,3110000,3200000,3290000,3380000,3480000,3570000,3670000,3770000,3860000,3960000,4050000,4150000,4240000,4330000,4420000,4500000,4580000,4660000,4730000,4790000,4860000,4920000,4990000,5050000,5120000,5190000,5250000,5330000,5400000,5470000,5540000,5610000,5670000,5730000,5780000,5830000,5870000,5910000,5940000,5970000,6000000,6030000,6060000,6080000,6110000,6140000,6160000,6190000,6220000,6250000,6280000,6310000,6340000,6380000,6410000,6450000,6480000,6510000,6550000,6580000,6610000,6640000,6670000,6700000,6730000,6760000,6790000,6810000,6830000,6850000,6870000,6890000,6900000,6920000,6940000,6950000,6960000,6970000,6980000,6990000,6990000,7000000,7000000,7000000,7000000,7000000,7000000,6990000,6990000,6980000,6980000,6970000,6960000,6950000,6930000,6920000,6910000,6890000,6870000,6850000,6830000,6810000,6790000,6760000,6740000,6710000,6680000,6650000,6620000,6590000,6550000,6520000,6480000,6450000,6410000,6370000,6330000,6290000,6240000,6200000,6150000,6110000,6060000,6020000,5970000,5920000,5870000,5830000,5780000,5730000,5680000,5640000,5590000,5540000,5500000,5450000,5400000 -Equatorial Guinea,80400,80400,80400,80400,80400,80400,80400,80400,80400,80400,80400,80400,80400,80500,80500,80600,80600,80700,80800,81000,81100,81200,81400,81600,81700,81900,82100,82400,82600,82800,83100,83400,83700,83900,84200,84500,84800,85100,85300,85600,85900,86200,86500,86800,87100,87300,87600,87900,88200,88500,88800,89100,89400,89700,90000,90300,90600,90900,91200,91600,91900,92200,92500,92800,93100,93400,93800,94100,94400,94700,95000,95400,95700,96000,96300,96700,97000,97300,97600,98000,98300,98600,99000,99300,99600,100000,100000,101000,101000,101000,102000,102000,102000,103000,103000,103000,104000,104000,104000,105000,105000,106000,106000,106000,107000,107000,107000,108000,108000,108000,109000,109000,110000,110000,110000,111000,111000,111000,112000,112000,114000,116000,120000,124000,129000,133000,137000,142000,147000,152000,157000,162000,166000,168000,169000,169000,169000,170000,170000,171000,171000,171000,174000,178000,184000,191000,197000,204000,212000,219000,226000,231000,234000,236000,238000,239000,242000,245000,248000,252000,255000,259000,263000,267000,271000,277000,285000,293000,301000,306000,307000,302000,293000,281000,269000,260000,252000,247000,244000,247000,255000,270000,291000,314000,338000,359000,376000,390000,402000,414000,427000,441000,455000,471000,487000,505000,524000,545000,567000,590000,614000,640000,666000,695000,725000,757000,792000,829000,868000,909000,951000,994000,1040000,1080000,1130000,1180000,1220000,1270000,1310000,1360000,1410000,1450000,1500000,1540000,1590000,1640000,1680000,1730000,1780000,1820000,1870000,1920000,1960000,2010000,2060000,2100000,2150000,2200000,2250000,2300000,2350000,2400000,2450000,2500000,2550000,2600000,2650000,2700000,2750000,2800000,2840000,2890000,2940000,2990000,3040000,3090000,3140000,3190000,3240000,3290000,3340000,3380000,3430000,3480000,3520000,3570000,3610000,3660000,3700000,3750000,3790000,3830000,3870000,3910000,3950000,3990000,4030000,4070000,4100000,4140000,4180000,4210000,4240000,4280000,4310000,4340000,4370000,4400000,4430000,4460000,4490000,4520000,4550000,4570000,4600000,4630000,4650000,4670000,4700000,4720000,4740000 -Eritrea,205000,205000,205000,205000,205000,205000,205000,205000,205000,205000,205000,205000,205000,206000,206000,207000,208000,209000,210000,211000,212000,214000,216000,217000,219000,222000,224000,226000,229000,232000,235000,238000,241000,244000,247000,251000,254000,257000,261000,264000,268000,271000,275000,279000,282000,286000,290000,294000,298000,302000,306000,310000,314000,318000,322000,326000,331000,335000,340000,344000,349000,353000,358000,363000,368000,373000,377000,382000,388000,393000,398000,403000,409000,414000,419000,425000,430000,436000,442000,448000,454000,459000,465000,472000,478000,484000,490000,497000,503000,510000,517000,524000,531000,538000,545000,552000,559000,567000,574000,582000,590000,598000,605000,613000,622000,630000,638000,646000,655000,664000,672000,681000,690000,699000,709000,718000,728000,737000,747000,757000,767000,777000,788000,798000,809000,820000,830000,841000,853000,864000,875000,887000,899000,911000,923000,935000,948000,960000,973000,986000,999000,1010000,1030000,1040000,1050000,1070000,1080000,1100000,1110000,1130000,1140000,1160000,1180000,1200000,1220000,1250000,1280000,1300000,1330000,1360000,1400000,1430000,1470000,1510000,1550000,1590000,1630000,1670000,1720000,1760000,1810000,1860000,1910000,1970000,2020000,2080000,2130000,2190000,2250000,2320000,2390000,2450000,2530000,2600000,2670000,2750000,2840000,2920000,3010000,3070000,3110000,3130000,3120000,3100000,3090000,3090000,3120000,3160000,3220000,3300000,3390000,3500000,3610000,3740000,3860000,3970000,4070000,4150000,4230000,4310000,4390000,4470000,4560000,4650000,4750000,4850000,4950000,5070000,5190000,5310000,5430000,5560000,5680000,5800000,5930000,6060000,6190000,6320000,6450000,6580000,6720000,6860000,6990000,7140000,7280000,7420000,7570000,7710000,7860000,8010000,8150000,8300000,8450000,8590000,8740000,8890000,9030000,9180000,9320000,9460000,9610000,9750000,9890000,10000000,10200000,10300000,10400000,10600000,10700000,10800000,11000000,11100000,11200000,11400000,11500000,11600000,11700000,11900000,12000000,12100000,12200000,12300000,12500000,12600000,12700000,12800000,12900000,13000000,13100000,13200000,13300000,13400000,13500000,13600000,13700000,13700000,13800000,13900000,14000000,14100000,14100000,14200000,14300000,14400000,14400000,14500000,14600000,14600000,14700000,14700000,14800000 -Estonia,334000,334000,334000,334000,334000,334000,334000,334000,334000,334000,334000,334000,335000,335000,336000,336000,337000,338000,340000,341000,342000,344000,346000,348000,350000,353000,355000,358000,361000,364000,367000,370000,374000,377000,381000,384000,388000,391000,395000,398000,402000,406000,409000,413000,417000,421000,425000,429000,433000,437000,441000,445000,449000,453000,457000,461000,466000,470000,474000,479000,483000,487000,492000,496000,501000,506000,510000,515000,520000,524000,529000,534000,539000,544000,549000,554000,559000,564000,569000,574000,580000,585000,590000,596000,601000,607000,612000,618000,623000,629000,635000,641000,647000,653000,659000,665000,671000,677000,683000,689000,696000,702000,709000,715000,722000,728000,735000,742000,748000,755000,762000,769000,776000,784000,791000,798000,805000,813000,820000,828000,835000,843000,851000,859000,867000,875000,883000,891000,899000,907000,916000,924000,933000,941000,950000,959000,967000,976000,985000,994000,1000000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1220000,1230000,1250000,1260000,1280000,1290000,1300000,1320000,1330000,1350000,1360000,1370000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1470000,1480000,1490000,1500000,1510000,1520000,1540000,1550000,1560000,1570000,1570000,1550000,1520000,1490000,1460000,1430000,1420000,1410000,1410000,1400000,1400000,1390000,1380000,1370000,1360000,1360000,1350000,1340000,1340000,1340000,1330000,1330000,1320000,1320000,1320000,1320000,1310000,1310000,1310000,1300000,1300000,1300000,1290000,1290000,1280000,1280000,1280000,1270000,1260000,1260000,1250000,1250000,1240000,1240000,1230000,1230000,1220000,1210000,1210000,1200000,1200000,1190000,1190000,1180000,1180000,1170000,1170000,1160000,1160000,1150000,1140000,1140000,1130000,1130000,1120000,1120000,1110000,1100000,1100000,1090000,1080000,1080000,1070000,1070000,1060000,1050000,1050000,1040000,1030000,1030000,1020000,1010000,1010000,1000000,997000,992000,986000,981000,976000,971000,966000,961000,956000,952000,948000,943000,939000,935000,932000,928000,924000,921000,917000,914000,911000,907000,904000,901000,898000,894000,891000 -Ethiopia,2950000,2950000,2950000,2950000,2950000,2950000,2950000,2950000,2950000,2950000,2950000,2950000,2960000,2960000,2970000,2980000,2990000,3010000,3020000,3040000,3060000,3090000,3110000,3140000,3170000,3200000,3240000,3280000,3320000,3360000,3410000,3460000,3510000,3560000,3610000,3660000,3710000,3760000,3810000,3870000,3920000,3980000,4040000,4090000,4150000,4210000,4270000,4330000,4390000,4450000,4520000,4580000,4640000,4710000,4770000,4840000,4910000,4980000,5050000,5120000,5190000,5260000,5330000,5410000,5480000,5560000,5640000,5710000,5790000,5870000,5960000,6040000,6120000,6200000,6290000,6380000,6470000,6550000,6640000,6740000,6830000,6920000,7020000,7120000,7210000,7310000,7410000,7510000,7620000,7720000,7830000,7940000,8050000,8160000,8280000,8390000,8510000,8630000,8750000,8870000,8990000,9120000,9240000,9370000,9500000,9630000,9770000,9900000,10000000,10200000,10300000,10500000,10600000,10800000,10900000,11100000,11200000,11400000,11500000,11700000,11900000,12000000,12200000,12400000,12500000,12700000,12900000,13100000,13300000,13500000,13700000,13800000,14000000,14200000,14400000,14600000,14900000,15100000,15300000,15500000,15700000,15900000,16200000,16400000,16600000,16900000,17100000,17300000,17600000,17800000,18100000,18500000,18800000,19200000,19600000,19900000,20300000,20800000,21200000,21700000,22200000,22700000,23200000,23800000,24400000,25000000,25600000,26300000,26900000,27700000,28400000,29200000,30100000,31000000,31900000,32600000,33100000,33600000,34100000,34600000,35300000,36100000,37100000,38300000,39500000,40800000,42100000,43500000,44900000,46500000,48100000,49800000,51600000,53500000,55400000,57300000,59200000,61000000,62800000,64600000,66500000,68500000,70500000,72500000,74600000,76700000,78900000,81000000,83200000,85400000,87700000,90000000,92400000,94900000,97400000,99900000,102000000,105000000,108000000,110000000,113000000,115000000,118000000,121000000,123000000,126000000,129000000,132000000,134000000,137000000,140000000,142000000,145000000,148000000,150000000,153000000,156000000,158000000,161000000,164000000,166000000,169000000,171000000,174000000,176000000,179000000,181000000,184000000,186000000,189000000,191000000,193000000,195000000,198000000,200000000,202000000,204000000,206000000,208000000,210000000,212000000,214000000,216000000,218000000,220000000,221000000,223000000,225000000,226000000,228000000,229000000,230000000,232000000,233000000,234000000,236000000,237000000,238000000,239000000,240000000,241000000,242000000,242000000,243000000,244000000,245000000,245000000,246000000,246000000,247000000,247000000,248000000,248000000,248000000,249000000,249000000,249000000,249000000,249000000,249000000,250000000 -Fiji,131000,131000,131000,131000,131000,132000,132000,132000,132000,132000,133000,133000,133000,133000,134000,134000,134000,134000,134000,135000,135000,135000,135000,136000,136000,136000,136000,136000,137000,137000,137000,137000,138000,138000,138000,138000,138000,138000,138000,138000,138000,138000,138000,138000,138000,138000,138000,138000,138000,137000,137000,137000,136000,136000,136000,135000,135000,135000,134000,134000,134000,133000,133000,133000,132000,132000,132000,131000,131000,131000,130000,130000,130000,130000,129000,129000,128000,128000,128000,127000,127000,126000,126000,126000,125000,125000,124000,123000,123000,122000,122000,122000,121000,121000,121000,121000,120000,121000,121000,121000,122000,123000,123000,125000,126000,128000,130000,132000,134000,136000,138000,140000,142000,143000,145000,147000,148000,150000,152000,154000,155000,157000,160000,162000,165000,167000,170000,172000,175000,178000,181000,183000,186000,189000,192000,195000,199000,204000,209000,215000,221000,227000,233000,240000,246000,253000,260000,267000,274000,282000,289000,296000,305000,314000,324000,335000,346000,357000,368000,380000,393000,407000,422000,436000,450000,464000,476000,488000,499000,510000,521000,532000,543000,554000,565000,577000,588000,598000,609000,622000,635000,651000,668000,685000,700000,712000,719000,722000,723000,725000,729000,735000,745000,755000,766000,775000,784000,793000,800000,806000,811000,814000,816000,817000,818000,822000,827000,835000,843000,852000,860000,867000,874000,880000,886000,892000,899000,906000,912000,919000,925000,931000,936000,941000,946000,950000,955000,959000,963000,967000,970000,974000,977000,980000,983000,985000,988000,990000,992000,993000,995000,996000,997000,998000,999000,999000,999000,999000,999000,999000,998000,998000,997000,996000,995000,993000,992000,991000,989000,987000,985000,983000,981000,979000,977000,974000,972000,969000,966000,963000,960000,957000,954000,951000,948000,945000,942000,938000,935000,931000,928000,924000,920000,917000,913000,909000,905000,901000,897000,893000,889000,885000,881000,877000,873000,868000,864000,860000,855000,851000,846000 -Finland,978000,986000,995000,1000000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1140000,1150000,1160000,1180000,1190000,1210000,1220000,1230000,1250000,1260000,1270000,1290000,1300000,1310000,1330000,1340000,1360000,1370000,1380000,1400000,1410000,1430000,1440000,1450000,1470000,1480000,1490000,1510000,1520000,1540000,1550000,1560000,1580000,1590000,1610000,1620000,1640000,1650000,1670000,1680000,1700000,1710000,1720000,1730000,1730000,1740000,1750000,1760000,1770000,1780000,1790000,1800000,1820000,1830000,1850000,1860000,1880000,1890000,1910000,1920000,1940000,1960000,1990000,2020000,2050000,2080000,2110000,2140000,2170000,2200000,2230000,2260000,2290000,2330000,2360000,2390000,2420000,2450000,2480000,2510000,2530000,2560000,2580000,2610000,2630000,2660000,2690000,2720000,2740000,2770000,2800000,2830000,2860000,2900000,2930000,2960000,3000000,3030000,3060000,3080000,3100000,3120000,3120000,3130000,3140000,3170000,3210000,3240000,3270000,3310000,3340000,3370000,3400000,3420000,3450000,3480000,3500000,3530000,3550000,3580000,3600000,3630000,3660000,3680000,3700000,3700000,3710000,3720000,3740000,3770000,3810000,3860000,3910000,3960000,4010000,4050000,4100000,4140000,4190000,4240000,4280000,4320000,4360000,4400000,4430000,4470000,4500000,4530000,4550000,4570000,4580000,4590000,4590000,4600000,4610000,4630000,4650000,4680000,4700000,4720000,4730000,4750000,4760000,4770000,4790000,4810000,4840000,4860000,4890000,4910000,4930000,4950000,4960000,4980000,5000000,5020000,5040000,5070000,5100000,5120000,5140000,5150000,5160000,5180000,5190000,5200000,5210000,5230000,5240000,5260000,5280000,5300000,5320000,5340000,5370000,5390000,5410000,5440000,5460000,5480000,5500000,5520000,5540000,5560000,5580000,5600000,5620000,5640000,5650000,5670000,5680000,5700000,5710000,5730000,5740000,5750000,5760000,5770000,5780000,5790000,5790000,5800000,5800000,5810000,5810000,5820000,5820000,5830000,5830000,5840000,5840000,5850000,5850000,5860000,5870000,5870000,5880000,5890000,5890000,5900000,5910000,5920000,5920000,5930000,5940000,5950000,5960000,5960000,5970000,5980000,5990000,6000000,6000000,6010000,6020000,6030000,6030000,6040000,6050000,6050000,6060000,6060000,6070000,6070000,6080000,6080000,6080000,6090000,6090000,6100000,6100000,6100000,6110000,6110000,6110000,6110000,6120000,6120000,6120000,6130000,6130000,6130000,6130000,6140000,6140000 -France,29400000,29400000,29500000,29600000,29700000,29800000,29900000,30000000,30100000,30200000,30300000,30400000,30500000,30600000,30700000,30900000,31000000,31100000,31300000,31400000,31500000,31700000,31900000,32000000,32200000,32300000,32500000,32700000,32800000,33000000,33200000,33400000,33500000,33700000,33900000,34100000,34200000,34400000,34500000,34700000,34900000,35000000,35200000,35300000,35500000,35600000,35800000,35900000,36000000,36200000,36300000,36400000,36500000,36600000,36800000,36900000,37000000,37100000,37200000,37400000,37500000,37500000,37600000,37600000,37700000,37800000,37800000,37900000,38000000,38100000,38200000,38300000,38400000,38400000,38500000,38600000,38700000,38700000,38800000,38900000,39000000,39200000,39300000,39400000,39600000,39700000,39700000,39900000,39900000,40000000,40000000,40100000,40100000,40200000,40200000,40300000,40300000,40400000,40500000,40600000,40600000,40700000,40800000,40800000,40900000,41000000,41000000,41100000,41100000,41200000,41300000,41400000,41500000,41500000,41200000,40700000,40000000,39300000,38900000,38800000,39100000,39300000,39600000,40000000,40400000,40700000,40900000,41000000,41200000,41400000,41700000,41900000,42000000,42000000,42000000,42000000,42000000,42000000,42000000,41700000,40900000,40100000,39400000,39200000,39300000,39700000,40300000,40800000,41200000,41600000,41900000,42100000,42400000,42700000,43100000,43500000,43900000,44400000,44800000,45300000,45900000,46500000,47100000,47800000,48400000,49000000,49400000,49800000,50100000,50500000,50800000,51300000,51700000,52200000,52600000,53000000,53300000,53500000,53700000,53900000,54100000,54300000,54500000,54800000,55100000,55400000,55700000,56000000,56300000,56700000,57000000,57200000,57500000,57700000,58000000,58200000,58500000,58800000,59000000,59300000,59600000,59900000,60200000,60600000,60900000,61200000,61600000,62000000,62300000,62700000,63000000,63300000,63600000,63900000,64200000,64500000,64700000,65000000,65200000,65500000,65700000,66000000,66200000,66400000,66600000,66800000,67100000,67300000,67500000,67700000,67900000,68100000,68300000,68500000,68700000,68900000,69000000,69200000,69400000,69500000,69600000,69800000,69900000,70000000,70100000,70200000,70300000,70400000,70500000,70500000,70600000,70700000,70700000,70800000,70900000,70900000,71000000,71000000,71100000,71200000,71200000,71300000,71400000,71400000,71500000,71600000,71600000,71700000,71800000,71900000,72000000,72000000,72100000,72200000,72300000,72400000,72500000,72600000,72700000,72800000,72800000,72900000,73000000,73100000,73200000,73300000,73300000,73400000,73500000,73600000,73700000,73700000,73800000,73900000,73900000,74000000,74000000,74100000,74200000,74200000,74200000 -Gabon,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000,159000,159000,159000,160000,160000,161000,161000,162000,163000,163000,164000,165000,166000,167000,168000,170000,171000,172000,174000,175000,177000,178000,180000,181000,183000,184000,186000,187000,189000,190000,192000,194000,195000,197000,199000,200000,202000,204000,205000,207000,209000,211000,212000,214000,216000,218000,220000,222000,224000,226000,227000,229000,231000,233000,235000,237000,239000,241000,244000,246000,248000,250000,252000,254000,256000,258000,261000,263000,265000,267000,270000,272000,274000,277000,279000,281000,284000,286000,289000,291000,294000,296000,299000,301000,304000,306000,309000,312000,314000,317000,320000,322000,325000,328000,331000,334000,336000,339000,342000,345000,348000,351000,354000,357000,360000,363000,366000,369000,372000,375000,379000,382000,385000,388000,391000,395000,398000,401000,405000,408000,412000,415000,419000,422000,426000,429000,433000,436000,440000,444000,447000,451000,455000,459000,463000,467000,470000,473000,476000,478000,479000,481000,483000,485000,488000,491000,495000,499000,504000,510000,516000,524000,533000,543000,554000,566000,578000,590000,602000,613000,625000,637000,650000,664000,679000,695000,712000,729000,748000,767000,787000,808000,830000,853000,877000,901000,927000,952000,978000,1000000,1030000,1060000,1090000,1110000,1140000,1170000,1200000,1230000,1260000,1290000,1330000,1360000,1400000,1440000,1490000,1540000,1590000,1640000,1700000,1760000,1820000,1880000,1930000,1980000,2030000,2070000,2110000,2150000,2190000,2240000,2280000,2330000,2370000,2420000,2460000,2500000,2550000,2590000,2640000,2680000,2730000,2770000,2820000,2870000,2910000,2960000,3010000,3050000,3100000,3150000,3190000,3240000,3290000,3330000,3380000,3430000,3470000,3520000,3560000,3600000,3650000,3690000,3730000,3780000,3820000,3860000,3900000,3940000,3980000,4010000,4050000,4090000,4120000,4160000,4200000,4230000,4260000,4300000,4330000,4360000,4400000,4430000,4460000,4490000,4520000,4550000,4570000,4600000,4630000,4660000,4680000,4710000,4730000,4750000,4780000,4800000,4820000,4840000,4860000,4880000,4900000,4910000,4930000,4940000,4960000,4970000,4980000,5000000 -Gambia,103000,103000,103000,103000,103000,103000,103000,103000,103000,103000,103000,103000,103000,103000,104000,104000,104000,104000,105000,105000,105000,106000,106000,107000,107000,108000,108000,109000,110000,111000,111000,112000,113000,114000,115000,116000,116000,117000,118000,119000,120000,121000,122000,123000,124000,124000,125000,126000,127000,128000,129000,130000,131000,132000,133000,134000,135000,136000,137000,138000,139000,140000,141000,142000,143000,144000,146000,147000,148000,149000,150000,151000,152000,153000,154000,156000,157000,158000,159000,160000,161000,163000,164000,165000,166000,168000,169000,170000,171000,173000,174000,175000,176000,178000,179000,180000,182000,183000,185000,186000,187000,189000,190000,191000,193000,194000,196000,197000,199000,200000,202000,203000,205000,206000,208000,209000,211000,212000,214000,216000,217000,219000,221000,222000,224000,225000,227000,229000,231000,232000,234000,236000,238000,239000,241000,243000,245000,247000,248000,250000,252000,254000,256000,258000,260000,262000,264000,266000,268000,270000,271000,273000,277000,284000,293000,304000,317000,331000,344000,357000,368000,377000,384000,389000,395000,401000,408000,416000,426000,436000,447000,460000,475000,490000,506000,521000,536000,552000,568000,585000,604000,625000,648000,673000,701000,732000,767000,804000,843000,881000,917000,949000,980000,1010000,1040000,1070000,1100000,1130000,1160000,1200000,1230000,1270000,1310000,1350000,1400000,1440000,1490000,1540000,1590000,1640000,1690000,1750000,1800000,1860000,1920000,1980000,2040000,2100000,2160000,2230000,2290000,2360000,2430000,2500000,2570000,2640000,2710000,2780000,2850000,2930000,3000000,3080000,3150000,3230000,3310000,3380000,3460000,3540000,3620000,3700000,3780000,3860000,3940000,4010000,4090000,4170000,4250000,4330000,4410000,4480000,4560000,4640000,4720000,4790000,4870000,4940000,5010000,5090000,5160000,5230000,5300000,5370000,5440000,5510000,5580000,5650000,5710000,5780000,5840000,5910000,5970000,6030000,6090000,6150000,6210000,6260000,6320000,6370000,6420000,6470000,6520000,6570000,6610000,6660000,6700000,6740000,6780000,6820000,6850000,6890000,6920000,6960000,6990000,7010000,7040000,7070000,7090000,7120000,7140000,7160000,7180000 -Georgia,1070000,1070000,1070000,1070000,1070000,1070000,1070000,1070000,1070000,1070000,1070000,1070000,1070000,1080000,1080000,1080000,1080000,1090000,1090000,1090000,1100000,1100000,1110000,1120000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1270000,1280000,1290000,1300000,1310000,1330000,1340000,1350000,1360000,1380000,1390000,1400000,1410000,1430000,1440000,1450000,1470000,1480000,1490000,1510000,1520000,1530000,1550000,1560000,1580000,1590000,1610000,1620000,1640000,1650000,1670000,1680000,1700000,1710000,1730000,1740000,1760000,1780000,1790000,1810000,1820000,1840000,1860000,1870000,1890000,1910000,1930000,1940000,1960000,1980000,2000000,2020000,2030000,2050000,2070000,2090000,2110000,2130000,2150000,2170000,2190000,2210000,2230000,2250000,2270000,2290000,2310000,2330000,2350000,2370000,2400000,2420000,2440000,2460000,2480000,2510000,2530000,2550000,2580000,2600000,2620000,2650000,2670000,2700000,2720000,2750000,2770000,2800000,2820000,2850000,2880000,2900000,2930000,2960000,2980000,3010000,3040000,3070000,3100000,3120000,3150000,3180000,3210000,3240000,3270000,3300000,3330000,3360000,3390000,3420000,3450000,3490000,3530000,3560000,3590000,3630000,3670000,3710000,3760000,3820000,3880000,3940000,4010000,4080000,4150000,4220000,4300000,4370000,4450000,4520000,4590000,4660000,4710000,4760000,4790000,4820000,4850000,4870000,4900000,4930000,4960000,4990000,5020000,5050000,5090000,5120000,5160000,5210000,5270000,5330000,5380000,5410000,5410000,5370000,5300000,5200000,5110000,5020000,4950000,4880000,4830000,4770000,4720000,4670000,4620000,4580000,4530000,4490000,4440000,4390000,4340000,4290000,4230000,4170000,4110000,4050000,3990000,3950000,3930000,3910000,3910000,3900000,3900000,3890000,3880000,3860000,3840000,3830000,3810000,3800000,3780000,3770000,3750000,3730000,3710000,3700000,3680000,3660000,3650000,3630000,3610000,3590000,3580000,3560000,3540000,3520000,3510000,3490000,3470000,3450000,3430000,3410000,3390000,3370000,3350000,3330000,3310000,3290000,3270000,3250000,3230000,3210000,3190000,3170000,3150000,3130000,3110000,3090000,3070000,3050000,3030000,3020000,3000000,2980000,2960000,2940000,2930000,2910000,2890000,2880000,2860000,2840000,2830000,2810000,2800000,2780000,2770000,2750000,2740000,2720000,2710000,2690000,2680000,2670000,2650000,2640000,2620000,2610000,2600000,2580000,2570000,2550000,2540000 -Germany,22900000,23000000,23100000,23200000,23300000,23400000,23500000,23600000,23700000,23800000,23900000,24000000,24100000,24300000,24400000,24600000,24700000,24900000,25100000,25300000,25500000,25700000,25900000,26200000,26400000,26600000,26900000,27200000,27400000,27700000,28000000,28300000,28600000,28900000,29300000,29600000,29900000,30200000,30500000,30700000,31000000,31300000,31600000,31900000,32100000,32400000,32700000,32900000,33200000,33400000,33700000,33900000,34200000,34500000,34700000,35000000,35300000,35600000,35800000,36100000,36400000,36700000,37000000,37300000,37600000,37900000,38200000,38600000,39000000,39300000,39700000,40100000,40500000,40900000,41200000,41600000,42000000,42400000,42800000,43200000,43600000,44100000,44600000,45000000,45500000,45900000,46400000,46800000,47300000,47800000,48300000,48900000,49500000,50100000,50800000,51500000,52200000,52900000,53700000,54600000,55400000,56300000,57100000,58000000,58900000,59800000,60700000,61600000,62400000,63400000,64200000,65100000,65900000,66700000,67300000,67600000,67600000,67200000,65300000,63700000,62400000,62900000,63400000,63800000,64200000,64600000,65100000,65500000,65900000,66300000,66600000,66900000,67300000,67600000,68000000,68400000,68900000,69500000,70200000,70900000,71400000,72000000,72200000,72000000,70700000,68800000,67500000,67600000,68700000,69500000,70000000,70300000,70600000,70900000,71200000,71500000,71900000,72200000,72500000,73000000,73400000,73900000,74500000,75100000,75700000,76300000,76800000,77400000,77800000,78300000,78600000,78800000,78900000,78900000,78900000,78900000,78800000,78700000,78600000,78500000,78300000,78100000,77900000,77800000,77700000,77700000,77800000,78100000,78400000,78700000,79100000,79600000,80000000,80500000,80900000,81200000,81400000,81500000,81500000,81500000,81500000,81500000,81600000,81700000,81700000,81700000,81500000,81300000,81100000,81000000,80900000,80900000,81100000,81300000,81500000,81700000,81900000,82100000,82300000,82400000,82500000,82600000,82600000,82600000,82500000,82500000,82400000,82400000,82300000,82300000,82200000,82100000,82000000,81900000,81800000,81700000,81600000,81500000,81400000,81200000,81100000,80900000,80800000,80600000,80500000,80300000,80100000,79900000,79700000,79500000,79200000,79000000,78800000,78500000,78300000,78100000,77800000,77600000,77400000,77100000,76900000,76700000,76500000,76300000,76100000,76000000,75800000,75600000,75500000,75300000,75200000,75000000,74900000,74700000,74600000,74400000,74200000,74100000,73900000,73700000,73600000,73400000,73200000,73100000,72900000,72800000,72600000,72500000,72300000,72200000,72100000,71900000,71800000,71700000,71600000,71500000,71400000,71300000,71200000,71100000,71000000 -Ghana,2020000,2020000,2020000,2020000,2020000,2020000,2020000,2020000,2020000,2020000,2020000,2020000,2010000,2010000,2010000,2010000,2010000,2000000,2000000,2000000,1990000,1990000,1980000,1970000,1970000,1960000,1950000,1950000,1940000,1930000,1920000,1910000,1900000,1890000,1880000,1870000,1870000,1860000,1850000,1840000,1830000,1820000,1810000,1800000,1790000,1780000,1780000,1770000,1760000,1750000,1740000,1730000,1720000,1720000,1710000,1700000,1690000,1680000,1680000,1670000,1660000,1650000,1650000,1640000,1640000,1630000,1630000,1630000,1630000,1620000,1630000,1630000,1630000,1630000,1630000,1640000,1640000,1650000,1660000,1670000,1680000,1690000,1700000,1710000,1720000,1730000,1740000,1750000,1760000,1770000,1780000,1790000,1800000,1810000,1820000,1840000,1850000,1860000,1870000,1880000,1890000,1900000,1910000,1930000,1940000,1950000,1960000,1970000,1980000,2000000,2010000,2020000,2030000,2060000,2090000,2150000,2200000,2250000,2310000,2360000,2420000,2480000,2540000,2600000,2670000,2730000,2800000,2860000,2930000,3010000,3080000,3150000,3230000,3310000,3390000,3470000,3560000,3650000,3730000,3820000,3920000,4010000,4110000,4210000,4310000,4420000,4530000,4640000,4750000,4870000,4980000,5070000,5190000,5340000,5500000,5680000,5860000,6050000,6250000,6450000,6650000,6870000,7090000,7300000,7510000,7710000,7890000,8060000,8220000,8400000,8600000,8830000,9080000,9350000,9600000,9830000,10000000,10200000,10400000,10600000,10800000,11100000,11500000,11900000,12300000,12700000,13100000,13500000,13900000,14200000,14600000,15000000,15500000,15900000,16300000,16800000,17200000,17600000,18000000,18500000,18900000,19400000,19900000,20400000,21000000,21500000,22100000,22700000,23300000,23900000,24500000,25100000,25700000,26300000,27000000,27600000,28200000,28800000,29500000,30100000,30700000,31400000,32000000,32700000,33300000,34000000,34600000,35300000,36000000,36600000,37300000,38000000,38700000,39300000,40000000,40700000,41400000,42100000,42800000,43500000,44200000,44900000,45600000,46300000,47100000,47800000,48500000,49200000,49900000,50600000,51300000,52000000,52600000,53300000,54000000,54700000,55300000,56000000,56600000,57300000,57900000,58500000,59200000,59800000,60400000,61000000,61600000,62200000,62800000,63400000,63900000,64500000,65100000,65600000,66200000,66700000,67200000,67800000,68300000,68800000,69300000,69700000,70200000,70700000,71100000,71500000,72000000,72400000,72800000,73200000,73500000,73900000,74300000,74600000,74900000,75300000,75600000,75900000,76200000,76500000,76800000 -Greece,2150000,2160000,2170000,2170000,2180000,2190000,2200000,2210000,2210000,2220000,2230000,2240000,2250000,2260000,2270000,2280000,2290000,2310000,2320000,2330000,2350000,2360000,2380000,2400000,2410000,2430000,2450000,2470000,2490000,2520000,2540000,2560000,2580000,2610000,2630000,2660000,2680000,2710000,2730000,2760000,2780000,2810000,2830000,2860000,2890000,2910000,2940000,2970000,2990000,3020000,3050000,3080000,3100000,3130000,3160000,3190000,3220000,3250000,3280000,3310000,3340000,3370000,3400000,3430000,3470000,3500000,3530000,3570000,3600000,3630000,3670000,3710000,3740000,3780000,3810000,3850000,3890000,3930000,3970000,4010000,4050000,4090000,4130000,4170000,4210000,4260000,4300000,4340000,4390000,4430000,4480000,4520000,4570000,4620000,4660000,4710000,4760000,4800000,4850000,4890000,4930000,4970000,5020000,5060000,5090000,5130000,5160000,5200000,5230000,5270000,5310000,5340000,5380000,5410000,5450000,5490000,5530000,5570000,5600000,5640000,5720000,5790000,5900000,5950000,5970000,5980000,6030000,6110000,6190000,6260000,6340000,6420000,6500000,6580000,6670000,6770000,6870000,6950000,7040000,7150000,7250000,7310000,7310000,7290000,7280000,7320000,7400000,7540000,7690000,7700000,7670000,7740000,7810000,7880000,7950000,8010000,8070000,8130000,8180000,8230000,8270000,8310000,8350000,8380000,8420000,8450000,8490000,8520000,8570000,8610000,8660000,8710000,8770000,8840000,8910000,9010000,9120000,9260000,9390000,9520000,9630000,9730000,9800000,9870000,9920000,9970000,10000000,10100000,10100000,10200000,10200000,10300000,10500000,10600000,10700000,10800000,10900000,11000000,11000000,11100000,11100000,11200000,11200000,11200000,11300000,11300000,11300000,11400000,11400000,11400000,11400000,11400000,11400000,11300000,11300000,11200000,11200000,11200000,11100000,11100000,11100000,11100000,11000000,11000000,11000000,10900000,10900000,10900000,10800000,10800000,10800000,10800000,10700000,10700000,10700000,10600000,10600000,10600000,10500000,10500000,10500000,10400000,10400000,10300000,10300000,10200000,10200000,10100000,10100000,10000000,9980000,9920000,9860000,9800000,9740000,9670000,9600000,9540000,9470000,9400000,9330000,9260000,9190000,9120000,9060000,8990000,8920000,8860000,8790000,8730000,8670000,8610000,8550000,8500000,8440000,8390000,8340000,8290000,8240000,8200000,8150000,8110000,8070000,8030000,7990000,7950000,7910000,7880000,7840000,7800000,7770000,7730000,7700000,7660000,7630000,7590000,7560000,7520000,7490000,7460000,7420000 -Grenada,29400,29400,29400,29400,29400,29400,29400,29400,29400,29400,29400,29400,29400,29400,29500,29500,29500,29600,29600,29600,29700,29800,29800,29900,30000,30000,30100,30200,30300,30400,30500,30600,30800,30900,31000,31100,31200,31300,31500,31600,31700,31800,31900,32000,32100,32200,32200,32300,32300,32400,32400,32400,32500,32500,32600,32700,32800,33000,33200,33400,33600,33800,34100,34400,34700,35000,35400,35700,36100,36600,37000,37500,38000,38600,39100,39700,40300,40800,41400,42100,42700,43300,44000,44900,45600,46500,47500,48500,49600,50700,51800,52900,53900,55000,56000,57100,58100,59000,59900,60800,61600,62400,63200,63800,64400,64900,65300,65700,66100,66500,66800,67200,67200,67100,67100,67000,66900,66800,66700,66600,66500,66500,66600,66800,67100,67300,67500,67800,68000,68200,68500,68700,69000,69200,69400,69700,69900,70200,70400,70700,70900,71200,71400,71600,71900,72100,72700,73600,74700,75900,76700,76600,77100,78100,79400,81000,82800,84600,86500,88300,89900,91300,92400,93400,94100,94600,94900,95000,94900,94700,94400,94200,93900,93600,93200,92400,91400,90200,89100,88600,89000,90600,93100,96000,98400,99900,100000,99400,98100,96900,96300,96500,97200,98300,99400,100000,101000,101000,101000,101000,102000,102000,102000,102000,103000,103000,103000,104000,104000,104000,105000,105000,105000,106000,106000,107000,107000,108000,108000,109000,109000,110000,110000,111000,111000,111000,111000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,111000,111000,111000,111000,110000,110000,110000,109000,109000,108000,108000,107000,107000,106000,105000,105000,104000,103000,103000,102000,101000,100000,99600,98800,98000,97100,96300,95400,94500,93600,92700,91800,90900,90000,89100,88200,87300,86400,85500,84600,83700,82800,81900,81000,80200,79300,78500,77600,76800,76000,75100,74300,73500,72700,71900,71100,70300 -Guatemala,459000,465000,471000,477000,483000,490000,496000,503000,509000,516000,524000,531000,538000,545000,552000,559000,566000,573000,580000,588000,595000,602000,610000,617000,625000,633000,640000,648000,656000,664000,672000,680000,688000,696000,705000,713000,722000,730000,739000,748000,757000,766000,775000,784000,794000,803000,813000,822000,832000,842000,852000,863000,873000,884000,895000,905000,916000,928000,939000,950000,962000,973000,985000,996000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1350000,1370000,1380000,1390000,1400000,1420000,1430000,1450000,1460000,1480000,1490000,1510000,1520000,1540000,1550000,1570000,1590000,1600000,1620000,1640000,1660000,1670000,1690000,1710000,1720000,1740000,1760000,1780000,1800000,1820000,1830000,1850000,1870000,1900000,1940000,1990000,2030000,2080000,2120000,2160000,2210000,2250000,2300000,2350000,2400000,2450000,2500000,2550000,2610000,2670000,2750000,2820000,2970000,3110000,3210000,3310000,3410000,3520000,3630000,3740000,3850000,3970000,4090000,4210000,4340000,4460000,4600000,4730000,4870000,5010000,5160000,5310000,5470000,5620000,5780000,5940000,6100000,6270000,6430000,6600000,6770000,6930000,7110000,7280000,7470000,7650000,7850000,8040000,8240000,8440000,8640000,8840000,9050000,9260000,9480000,9710000,9940000,10200000,10400000,10600000,10900000,11100000,11400000,11700000,11900000,12200000,12500000,12800000,13100000,13400000,13700000,14000000,14300000,14600000,14900000,15300000,15600000,15900000,16300000,16600000,16900000,17200000,17600000,17900000,18200000,18600000,18900000,19200000,19600000,19900000,20200000,20600000,20900000,21200000,21500000,21800000,22200000,22500000,22800000,23100000,23400000,23700000,24000000,24300000,24600000,24800000,25100000,25400000,25700000,25900000,26200000,26500000,26700000,27000000,27200000,27500000,27700000,27900000,28200000,28400000,28600000,28800000,29000000,29200000,29400000,29600000,29800000,30000000,30100000,30300000,30400000,30600000,30700000,30900000,31000000,31100000,31200000,31300000,31400000,31500000,31600000,31700000,31800000,31800000,31900000,32000000,32000000,32000000,32100000,32100000,32100000,32200000,32200000,32200000,32200000,32200000,32200000,32200000,32100000,32100000,32100000,32100000,32100000,32000000 -Guinea,984000,984000,984000,984000,984000,984000,984000,984000,984000,984000,984000,984000,985000,986000,988000,990000,993000,996000,999000,1000000,1010000,1010000,1020000,1020000,1030000,1040000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1290000,1310000,1320000,1330000,1340000,1350000,1360000,1380000,1390000,1400000,1410000,1430000,1440000,1450000,1460000,1480000,1490000,1500000,1520000,1530000,1540000,1560000,1570000,1580000,1600000,1610000,1630000,1640000,1650000,1670000,1680000,1700000,1710000,1730000,1740000,1760000,1770000,1790000,1810000,1820000,1840000,1850000,1870000,1890000,1900000,1920000,1940000,1950000,1970000,1990000,2010000,2020000,2040000,2060000,2080000,2100000,2110000,2130000,2150000,2170000,2190000,2210000,2230000,2250000,2270000,2290000,2310000,2330000,2350000,2370000,2390000,2410000,2430000,2460000,2480000,2500000,2520000,2540000,2570000,2590000,2610000,2630000,2660000,2680000,2710000,2730000,2750000,2780000,2800000,2830000,2850000,2880000,2900000,2930000,2950000,2980000,3010000,3030000,3060000,3090000,3140000,3190000,3230000,3270000,3320000,3360000,3410000,3470000,3520000,3580000,3630000,3690000,3750000,3810000,3880000,3950000,4020000,4100000,4160000,4220000,4260000,4300000,4320000,4350000,4360000,4380000,4400000,4420000,4460000,4510000,4590000,4690000,4810000,4940000,5080000,5230000,5380000,5550000,5770000,6040000,6370000,6760000,7160000,7540000,7870000,8130000,8340000,8500000,8650000,8810000,8970000,9140000,9310000,9490000,9680000,9880000,10100000,10300000,10600000,10800000,11000000,11300000,11500000,11800000,12100000,12400000,12700000,13100000,13400000,13800000,14100000,14500000,14800000,15200000,15600000,16000000,16400000,16800000,17200000,17600000,18100000,18500000,18900000,19300000,19800000,20200000,20700000,21100000,21600000,22100000,22500000,23000000,23500000,23900000,24400000,24900000,25400000,25900000,26400000,26900000,27300000,27800000,28300000,28800000,29300000,29800000,30300000,30800000,31300000,31800000,32300000,32800000,33200000,33700000,34200000,34700000,35200000,35600000,36100000,36600000,37100000,37500000,38000000,38400000,38900000,39300000,39800000,40200000,40600000,41100000,41500000,41900000,42300000,42700000,43100000,43500000,43900000,44300000,44700000,45000000,45400000,45700000,46100000,46400000,46800000,47100000,47400000,47700000,48000000,48300000 -Guinea-Bissau,218000,218000,218000,218000,218000,218000,218000,218000,218000,218000,218000,218000,218000,219000,219000,219000,220000,220000,221000,221000,222000,223000,224000,225000,226000,227000,228000,229000,230000,232000,233000,235000,236000,238000,240000,241000,243000,244000,246000,248000,249000,251000,253000,254000,256000,258000,260000,261000,263000,265000,267000,268000,270000,272000,274000,276000,278000,280000,282000,284000,286000,288000,290000,292000,294000,297000,299000,301000,303000,305000,307000,309000,312000,314000,316000,318000,321000,323000,325000,327000,330000,332000,334000,337000,339000,342000,344000,346000,349000,351000,354000,356000,359000,361000,364000,367000,369000,372000,374000,377000,380000,383000,385000,388000,391000,393000,396000,399000,402000,405000,408000,411000,413000,416000,419000,422000,425000,428000,431000,434000,437000,440000,443000,446000,449000,452000,455000,458000,461000,464000,467000,470000,473000,476000,480000,483000,486000,489000,493000,496000,499000,502000,506000,509000,513000,516000,519000,523000,526000,530000,535000,544000,552000,560000,567000,575000,584000,592000,601000,609000,616000,623000,630000,637000,644000,653000,662000,673000,685000,698000,712000,726000,741000,756000,769000,778000,784000,787000,788000,792000,801000,815000,833000,854000,877000,900000,922000,944000,966000,989000,1010000,1040000,1060000,1090000,1110000,1140000,1160000,1180000,1200000,1220000,1240000,1270000,1290000,1320000,1350000,1380000,1410000,1450000,1480000,1520000,1560000,1600000,1640000,1680000,1730000,1770000,1820000,1860000,1910000,1950000,2000000,2050000,2100000,2140000,2190000,2240000,2290000,2340000,2390000,2440000,2490000,2540000,2600000,2650000,2700000,2760000,2810000,2860000,2920000,2980000,3030000,3090000,3140000,3200000,3260000,3320000,3370000,3430000,3490000,3550000,3600000,3660000,3720000,3770000,3830000,3890000,3940000,4000000,4050000,4110000,4160000,4220000,4270000,4330000,4380000,4430000,4480000,4540000,4590000,4640000,4690000,4740000,4790000,4840000,4890000,4940000,4990000,5030000,5080000,5130000,5170000,5220000,5260000,5300000,5340000,5390000,5430000,5470000,5500000,5540000,5580000,5610000,5650000,5680000,5720000,5750000,5780000,5810000,5840000,5870000,5900000 -Guyana,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,167000,167000,167000,168000,168000,169000,169000,170000,170000,171000,172000,173000,174000,175000,176000,177000,178000,179000,181000,182000,183000,184000,186000,187000,188000,189000,191000,192000,193000,195000,196000,197000,199000,200000,202000,203000,204000,206000,207000,208000,210000,211000,213000,214000,216000,217000,219000,220000,221000,223000,224000,226000,228000,229000,231000,232000,234000,235000,237000,238000,240000,242000,243000,245000,247000,248000,250000,252000,253000,255000,257000,258000,260000,262000,264000,265000,267000,269000,271000,273000,274000,276000,278000,280000,282000,284000,286000,288000,290000,291000,293000,295000,297000,299000,301000,303000,305000,308000,310000,312000,314000,316000,318000,320000,322000,325000,327000,329000,331000,334000,336000,338000,341000,343000,345000,348000,350000,353000,355000,357000,360000,362000,365000,367000,370000,373000,375000,378000,380000,383000,386000,388000,391000,394000,396000,399000,407000,419000,433000,448000,465000,483000,500000,518000,536000,554000,572000,589000,606000,623000,638000,652000,665000,676000,686000,696000,705000,714000,722000,730000,738000,746000,754000,762000,770000,776000,780000,782000,781000,779000,775000,770000,764000,758000,751000,746000,743000,744000,748000,753000,758000,761000,762000,761000,758000,755000,753000,752000,752000,752000,752000,751000,750000,748000,746000,746000,747000,749000,753000,758000,763000,769000,773000,778000,782000,787000,791000,795000,799000,803000,807000,811000,814000,817000,820000,823000,825000,827000,829000,831000,832000,833000,834000,835000,835000,835000,835000,835000,834000,833000,832000,831000,830000,828000,826000,824000,822000,820000,817000,815000,812000,809000,806000,803000,800000,797000,793000,790000,786000,782000,778000,774000,770000,765000,761000,756000,752000,747000,742000,737000,732000,727000,721000,716000,710000,705000,699000,694000,688000,682000,676000,671000,665000,659000,654000,648000,642000,637000,631000,626000,620000,615000,609000,604000,599000,593000,588000 -Haiti,723000,723000,723000,723000,723000,723000,723000,723000,723000,723000,723000,723000,724000,725000,726000,728000,729000,732000,734000,737000,740000,743000,747000,751000,756000,761000,766000,771000,777000,783000,790000,797000,803000,810000,818000,825000,832000,839000,846000,854000,861000,869000,877000,884000,892000,900000,909000,917000,926000,934000,943000,952000,962000,971000,981000,991000,1000000,1010000,1020000,1030000,1040000,1050000,1060000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1160000,1170000,1180000,1190000,1200000,1220000,1230000,1240000,1250000,1270000,1280000,1290000,1310000,1320000,1330000,1350000,1360000,1380000,1390000,1400000,1420000,1430000,1450000,1460000,1480000,1490000,1510000,1530000,1550000,1560000,1580000,1600000,1620000,1650000,1670000,1700000,1720000,1750000,1770000,1800000,1830000,1850000,1880000,1910000,1940000,1980000,2010000,2040000,2080000,2110000,2140000,2180000,2200000,2230000,2260000,2290000,2320000,2350000,2380000,2420000,2450000,2480000,2510000,2540000,2580000,2610000,2640000,2680000,2710000,2750000,2780000,2820000,2850000,2890000,2920000,2960000,2990000,3030000,3060000,3140000,3220000,3280000,3330000,3390000,3450000,3510000,3580000,3650000,3720000,3790000,3870000,3940000,4020000,4100000,4190000,4270000,4360000,4450000,4530000,4620000,4710000,4790000,4880000,4960000,5050000,5140000,5240000,5340000,5450000,5570000,5690000,5820000,5960000,6100000,6240000,6380000,6530000,6670000,6810000,6960000,7100000,7240000,7390000,7530000,7670000,7820000,7970000,8110000,8260000,8400000,8550000,8690000,8830000,8980000,9120000,9260000,9410000,9560000,9710000,9850000,10000000,10100000,10300000,10400000,10600000,10700000,10800000,11000000,11100000,11200000,11400000,11500000,11600000,11700000,11900000,12000000,12100000,12200000,12300000,12400000,12500000,12600000,12700000,12800000,12900000,13000000,13100000,13200000,13300000,13400000,13500000,13500000,13600000,13700000,13700000,13800000,13800000,13900000,14000000,14000000,14000000,14100000,14100000,14200000,14200000,14200000,14200000,14200000,14300000,14300000,14300000,14300000,14300000,14300000,14300000,14300000,14300000,14200000,14200000,14200000,14200000,14200000,14100000,14100000,14100000,14000000,14000000,14000000,13900000,13900000,13900000,13800000,13800000,13700000,13700000,13600000,13600000,13500000,13500000,13400000,13400000,13300000,13300000,13200000,13200000,13100000,13100000,13000000,13000000,12900000,12800000 -Holy See,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,906,906,906,906,906,906,906,906,907,907,907,907,907,907,907,908,908,908,908,908,908,908,909,909,909,909,909,909,909,909,910,910,910,910,910,910,910,911,911,911,911,911,911,911,912,912,912,912,912,912,912,912,913,913,913,913,913,913,913,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,908,885,882,886,894,908,905,910,912,908,906,903,898,892,879,854,814,766,712,669,644,642,657,686,708,728,737,737,730,730,724,725,729,731,740,746,750,759,764,765,768,774,779,778,778,780,778,782,781,781,785,788,792,798,797,798,800,796,794,795,794,796,804,801,800,803,801,792,801,799,801,800,799,799,807,801,798,800,800,799,797,803,804,800,799,795,793,804,799,802,798,800,806,811,809,808,807,805,802,802,806,808,804,810,818,815,821,817,816,811,809,809,813,814,810,810,807,804,813,811,814,812,811,809,808,805,807,812,809,806,803,803,807,807,807,804,804,802,805,801,804,806,805,806,802,803,804,802,799,800,798 -Honduras,126000,130000,130000,131000,131000,131000,131000,132000,132000,132000,132000,133000,133000,134000,135000,137000,138000,140000,142000,144000,147000,150000,153000,156000,160000,164000,168000,173000,178000,183000,189000,195000,201000,208000,214000,221000,229000,236000,244000,251000,260000,267000,275000,283000,290000,298000,305000,311000,318000,324000,331000,337000,343000,348000,354000,359000,364000,368000,372000,376000,379000,382000,386000,389000,392000,395000,398000,401000,404000,408000,411000,414000,417000,421000,424000,427000,431000,434000,438000,441000,445000,448000,452000,455000,459000,462000,466000,470000,473000,477000,481000,485000,489000,492000,496000,500000,505000,510000,516000,523000,531000,540000,547000,558000,569000,582000,595000,608000,621000,635000,649000,664000,678000,692000,703000,712000,722000,731000,740000,749000,763000,784000,812000,840000,868000,896000,921000,942000,959000,980000,1000000,1020000,1040000,1060000,1080000,1100000,1120000,1140000,1160000,1180000,1210000,1240000,1260000,1280000,1300000,1330000,1360000,1390000,1430000,1490000,1550000,1590000,1630000,1680000,1720000,1770000,1820000,1870000,1930000,1980000,2040000,2100000,2160000,2220000,2280000,2350000,2410000,2490000,2560000,2640000,2720000,2800000,2880000,2970000,3060000,3150000,3250000,3350000,3460000,3570000,3680000,3790000,3910000,4030000,4150000,4280000,4410000,4540000,4680000,4810000,4960000,5100000,5250000,5400000,5550000,5710000,5870000,6030000,6190000,6360000,6520000,6690000,6860000,7030000,7200000,7370000,7540000,7710000,7870000,8040000,8190000,8350000,8510000,8660000,8810000,8960000,9110000,9270000,9420000,9570000,9720000,9870000,10000000,10200000,10300000,10500000,10600000,10700000,10900000,11000000,11100000,11300000,11400000,11500000,11700000,11800000,11900000,12000000,12100000,12200000,12300000,12400000,12500000,12600000,12700000,12800000,12900000,13000000,13100000,13200000,13200000,13300000,13400000,13500000,13500000,13600000,13700000,13700000,13800000,13800000,13900000,13900000,13900000,14000000,14000000,14000000,14100000,14100000,14100000,14100000,14100000,14200000,14200000,14200000,14200000,14200000,14200000,14200000,14100000,14100000,14100000,14100000,14100000,14100000,14000000,14000000,14000000,13900000,13900000,13900000,13800000,13800000,13800000,13700000,13700000,13700000,13600000,13600000,13500000,13500000,13400000 -Hungary,3500000,3530000,3560000,3590000,3620000,3650000,3680000,3710000,3750000,3780000,3810000,3850000,3880000,3910000,3940000,3980000,4010000,4040000,4070000,4110000,4140000,4170000,4200000,4240000,4270000,4300000,4330000,4370000,4400000,4430000,4460000,4500000,4530000,4560000,4600000,4630000,4660000,4700000,4730000,4770000,4800000,4840000,4870000,4910000,4940000,4980000,5010000,5050000,5090000,5120000,5160000,5200000,5230000,5270000,5310000,5340000,5380000,5420000,5450000,5490000,5530000,5570000,5600000,5640000,5680000,5720000,5750000,5790000,5830000,5860000,5900000,5940000,5970000,6010000,6040000,6080000,6120000,6150000,6190000,6220000,6260000,6290000,6330000,6360000,6400000,6430000,6470000,6510000,6550000,6590000,6630000,6680000,6720000,6770000,6810000,6860000,6910000,6960000,7010000,7060000,7120000,7170000,7220000,7270000,7320000,7370000,7420000,7470000,7530000,7580000,7640000,7700000,7760000,7810000,7840000,7860000,7870000,7890000,7900000,7920000,7960000,8010000,8090000,8150000,8220000,8290000,8360000,8440000,8500000,8570000,8640000,8700000,8770000,8830000,8900000,8970000,9030000,9090000,9150000,9210000,9270000,9320000,9380000,9430000,9300000,9170000,9030000,9080000,9150000,9230000,9340000,9480000,9600000,9690000,9770000,9830000,9880000,9910000,9940000,9970000,10000000,10000000,10100000,10100000,10100000,10200000,10200000,10200000,10300000,10300000,10400000,10400000,10400000,10500000,10500000,10500000,10600000,10600000,10700000,10700000,10800000,10700000,10700000,10700000,10600000,10600000,10500000,10500000,10400000,10400000,10400000,10400000,10400000,10400000,10400000,10300000,10300000,10300000,10300000,10200000,10200000,10200000,10200000,10100000,10100000,10100000,10100000,10000000,9990000,9960000,9930000,9900000,9870000,9840000,9810000,9780000,9750000,9720000,9690000,9660000,9620000,9590000,9550000,9510000,9480000,9440000,9400000,9360000,9320000,9280000,9240000,9190000,9150000,9100000,9050000,9000000,8960000,8910000,8860000,8810000,8760000,8710000,8660000,8610000,8560000,8510000,8470000,8420000,8370000,8320000,8280000,8230000,8190000,8140000,8100000,8050000,8010000,7960000,7920000,7870000,7820000,7780000,7730000,7690000,7640000,7590000,7550000,7500000,7450000,7410000,7370000,7320000,7280000,7240000,7200000,7160000,7120000,7080000,7040000,7000000,6970000,6930000,6900000,6870000,6830000,6800000,6770000,6740000,6710000,6680000,6650000,6620000,6590000,6570000,6540000,6510000,6490000,6460000,6440000,6410000,6390000 -Iceland,61400,61400,61400,61400,61400,61400,61400,61400,61400,61400,61400,61400,61500,61500,61600,61700,61800,62000,62100,62300,62500,62700,63000,63200,63500,63800,64100,64500,64800,65200,65600,66000,66500,66900,67300,67800,68200,68700,69100,69600,70000,70500,70900,71400,71900,72300,72800,73300,73700,74200,74700,75200,75700,76200,76700,77100,77600,78100,78600,79200,79700,80200,80700,81200,81700,82300,82800,83300,83900,84400,84900,85500,86000,86600,87100,87700,88300,88800,89400,90000,90500,91100,91700,92300,92900,93500,94100,94700,95300,95900,96500,97100,97800,98400,99000,99700,100000,101000,102000,102000,103000,104000,104000,105000,106000,106000,107000,108000,108000,109000,110000,110000,111000,112000,113000,113000,114000,115000,116000,116000,117000,118000,119000,119000,120000,121000,122000,122000,123000,124000,125000,126000,127000,127000,128000,129000,130000,131000,132000,132000,133000,134000,135000,136000,137000,138000,139000,139000,140000,141000,143000,145000,148000,151000,154000,158000,161000,165000,168000,172000,176000,179000,183000,186000,189000,192000,195000,197000,200000,202000,204000,207000,210000,213000,216000,218000,220000,222000,224000,226000,228000,231000,233000,236000,239000,242000,244000,247000,250000,252000,255000,258000,260000,263000,265000,268000,270000,273000,275000,278000,280000,283000,285000,288000,291000,295000,300000,305000,311000,316000,320000,323000,326000,327000,328000,330000,332000,335000,338000,341000,343000,346000,348000,351000,353000,355000,357000,360000,362000,364000,366000,368000,369000,371000,373000,374000,376000,377000,379000,380000,381000,382000,383000,384000,385000,386000,387000,388000,389000,389000,390000,391000,391000,392000,392000,393000,393000,393000,394000,394000,394000,394000,395000,395000,395000,395000,395000,395000,395000,395000,395000,395000,395000,395000,395000,395000,394000,394000,394000,394000,393000,393000,392000,392000,391000,391000,391000,390000,389000,389000,388000,388000,387000,387000,386000,386000,385000,384000,384000,383000,383000 -India,169000000,169000000,169000000,170000000,170000000,170000000,171000000,171000000,171000000,172000000,172000000,172000000,173000000,173000000,173000000,174000000,174000000,175000000,175000000,176000000,176000000,177000000,177000000,178000000,178000000,179000000,180000000,180000000,181000000,182000000,182000000,183000000,184000000,184000000,185000000,186000000,186000000,187000000,188000000,189000000,189000000,190000000,191000000,191000000,192000000,193000000,194000000,194000000,195000000,196000000,197000000,197000000,198000000,199000000,200000000,201000000,202000000,202000000,203000000,204000000,205000000,206000000,207000000,208000000,208000000,209000000,210000000,211000000,212000000,213000000,214000000,215000000,216000000,216000000,217000000,218000000,219000000,220000000,221000000,222000000,223000000,224000000,225000000,226000000,227000000,228000000,229000000,230000000,231000000,232000000,233000000,234000000,235000000,236000000,237000000,238000000,239000000,240000000,241000000,242000000,243000000,244000000,245000000,246000000,247000000,248000000,249000000,251000000,252000000,253000000,254000000,255000000,256000000,257000000,259000000,260000000,262000000,263000000,265000000,266000000,268000000,269000000,271000000,272000000,274000000,276000000,277000000,279000000,280000000,283000000,285000000,289000000,293000000,297000000,300000000,304000000,308000000,312000000,316000000,320000000,324000000,328000000,332000000,336000000,340000000,344000000,349000000,353000000,358000000,367000000,376000000,382000000,389000000,395000000,402000000,409000000,417000000,424000000,432000000,441000000,449000000,458000000,468000000,478000000,487000000,498000000,508000000,519000000,530000000,542000000,554000000,566000000,579000000,593000000,607000000,621000000,636000000,650000000,666000000,681000000,697000000,713000000,730000000,747000000,764000000,782000000,799000000,817000000,834000000,852000000,870000000,888000000,906000000,924000000,942000000,960000000,979000000,997000000,1020000000,1030000000,1050000000,1070000000,1090000000,1110000000,1130000000,1140000000,1160000000,1180000000,1200000000,1210000000,1230000000,1250000000,1260000000,1280000000,1290000000,1310000000,1320000000,1340000000,1350000000,1370000000,1380000000,1400000000,1410000000,1430000000,1440000000,1450000000,1460000000,1480000000,1490000000,1500000000,1510000000,1520000000,1530000000,1550000000,1560000000,1560000000,1570000000,1580000000,1590000000,1600000000,1610000000,1610000000,1620000000,1630000000,1630000000,1640000000,1640000000,1650000000,1650000000,1660000000,1660000000,1660000000,1670000000,1670000000,1670000000,1670000000,1670000000,1680000000,1680000000,1680000000,1680000000,1680000000,1680000000,1680000000,1680000000,1680000000,1670000000,1670000000,1670000000,1670000000,1670000000,1660000000,1660000000,1660000000,1650000000,1650000000,1640000000,1640000000,1640000000,1630000000,1630000000,1620000000,1620000000,1610000000,1610000000,1600000000,1600000000,1590000000,1590000000,1580000000,1570000000,1570000000,1560000000,1560000000,1550000000,1550000000,1540000000,1530000000,1530000000,1520000000,1520000000 -Indonesia,16100000,16200000,16200000,16200000,16300000,16300000,16400000,16400000,16400000,16500000,16500000,16600000,16600000,16700000,16800000,16800000,16900000,17000000,17100000,17100000,17200000,17300000,17400000,17500000,17700000,17800000,17900000,18000000,18200000,18300000,18500000,18600000,18800000,18900000,19100000,19200000,19400000,19600000,19700000,19900000,20100000,20200000,20400000,20600000,20800000,21000000,21100000,21300000,21600000,21800000,22000000,22200000,22400000,22600000,22800000,23000000,23300000,23500000,23700000,24000000,24200000,24500000,24800000,25000000,25300000,25600000,25900000,26200000,26500000,26800000,27100000,27400000,27700000,28000000,28300000,28600000,28900000,29200000,29500000,29900000,30200000,30500000,30800000,31200000,31500000,31900000,32300000,32600000,33000000,33300000,33700000,34100000,34500000,34900000,35400000,35800000,36200000,36700000,37200000,37700000,38200000,38600000,39200000,39600000,40100000,40500000,41000000,41400000,41900000,42300000,42800000,43200000,43700000,44200000,44600000,45100000,45500000,45800000,46200000,46700000,47300000,47900000,48400000,49000000,49600000,50200000,50800000,51400000,52100000,52700000,53400000,54100000,54900000,55800000,56600000,57400000,58300000,59100000,60000000,60900000,61800000,62800000,63700000,64400000,64600000,64900000,65300000,66200000,67200000,68400000,69500000,70900000,72300000,73900000,75500000,77300000,79200000,81200000,83300000,85500000,87800000,90100000,92600000,95100000,97600000,100000000,103000000,106000000,109000000,112000000,115000000,118000000,121000000,124000000,127000000,131000000,134000000,137000000,141000000,144000000,147000000,151000000,155000000,158000000,162000000,165000000,168000000,172000000,175000000,178000000,181000000,185000000,188000000,191000000,194000000,197000000,200000000,203000000,206000000,209000000,212000000,215000000,218000000,221000000,224000000,227000000,230000000,233000000,236000000,239000000,243000000,246000000,249000000,252000000,255000000,258000000,261000000,264000000,267000000,270000000,272000000,275000000,277000000,280000000,282000000,285000000,287000000,289000000,291000000,294000000,296000000,298000000,299000000,301000000,303000000,305000000,306000000,308000000,309000000,311000000,312000000,313000000,315000000,316000000,317000000,318000000,319000000,319000000,320000000,321000000,322000000,322000000,323000000,323000000,323000000,324000000,324000000,324000000,324000000,325000000,325000000,325000000,325000000,325000000,325000000,325000000,324000000,324000000,324000000,324000000,324000000,323000000,323000000,323000000,322000000,322000000,322000000,321000000,321000000,320000000,320000000,319000000,319000000,318000000,318000000,317000000,316000000,316000000,315000000,314000000,314000000,313000000,312000000,311000000,311000000,310000000,309000000,308000000,308000000,307000000,306000000 -Iran,6270000,6280000,6300000,6310000,6330000,6340000,6360000,6370000,6380000,6400000,6410000,6430000,6450000,6460000,6480000,6500000,6520000,6540000,6560000,6580000,6610000,6630000,6660000,6690000,6710000,6740000,6770000,6800000,6830000,6860000,6900000,6930000,6970000,7000000,7040000,7070000,7110000,7140000,7180000,7210000,7250000,7290000,7320000,7360000,7400000,7430000,7470000,7510000,7550000,7580000,7620000,7660000,7690000,7730000,7760000,7800000,7840000,7870000,7910000,7950000,7990000,8020000,8060000,8100000,8140000,8180000,8220000,8270000,8310000,8350000,8400000,8440000,8490000,8530000,8580000,8630000,8680000,8720000,8780000,8830000,8880000,8930000,8980000,9040000,9090000,9140000,9200000,9250000,9310000,9360000,9420000,9470000,9530000,9590000,9640000,9700000,9760000,9820000,9880000,9930000,9990000,10100000,10100000,10200000,10200000,10300000,10400000,10400000,10500000,10500000,10600000,10700000,10700000,10800000,10900000,11100000,11200000,11300000,11500000,11600000,11800000,11900000,12100000,12200000,12400000,12500000,12700000,12800000,13000000,13200000,13300000,13500000,13700000,13800000,14000000,14200000,14300000,14500000,14700000,14900000,15100000,15300000,15500000,15700000,15800000,16000000,16200000,16400000,16700000,16900000,17100000,17500000,17900000,18400000,18800000,19300000,19800000,20300000,20800000,21400000,21900000,22500000,23100000,23700000,24300000,25000000,25600000,26300000,27000000,27800000,28500000,29300000,30100000,30900000,31800000,32700000,33700000,34800000,36000000,37300000,38700000,40200000,41900000,43600000,45500000,47300000,49300000,51200000,53100000,54800000,56200000,57400000,58300000,59000000,59700000,60600000,61600000,62700000,63900000,65100000,66100000,67100000,68000000,68800000,69600000,70400000,71200000,72000000,72800000,73700000,74600000,75500000,76500000,77400000,78400000,79400000,80300000,81200000,82000000,82800000,83600000,84300000,85000000,85600000,86200000,86700000,87200000,87700000,88100000,88500000,88900000,89200000,89500000,89900000,90200000,90500000,90800000,91100000,91400000,91600000,91900000,92200000,92400000,92600000,92900000,93000000,93200000,93300000,93400000,93500000,93600000,93500000,93500000,93400000,93300000,93100000,92900000,92700000,92400000,92100000,91800000,91400000,91000000,90600000,90200000,89700000,89200000,88700000,88200000,87700000,87200000,86600000,86100000,85500000,85000000,84400000,83800000,83300000,82700000,82200000,81600000,81100000,80500000,80000000,79500000,79000000,78500000,78000000,77600000,77100000,76700000,76200000,75800000,75400000,74900000,74500000,74100000,73700000,73300000,72900000,72500000 -Iraq,1080000,1080000,1080000,1080000,1080000,1080000,1080000,1080000,1080000,1080000,1080000,1090000,1090000,1090000,1090000,1090000,1100000,1100000,1100000,1110000,1110000,1120000,1120000,1130000,1130000,1140000,1150000,1150000,1160000,1170000,1180000,1190000,1200000,1200000,1210000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1290000,1300000,1310000,1320000,1330000,1330000,1340000,1350000,1360000,1370000,1380000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1470000,1480000,1490000,1500000,1520000,1530000,1540000,1550000,1570000,1580000,1600000,1610000,1630000,1640000,1660000,1680000,1700000,1710000,1730000,1750000,1780000,1800000,1820000,1840000,1860000,1880000,1900000,1920000,1950000,1970000,1990000,2020000,2040000,2060000,2090000,2110000,2140000,2160000,2190000,2210000,2240000,2260000,2290000,2320000,2340000,2370000,2400000,2430000,2460000,2480000,2510000,2540000,2570000,2610000,2660000,2710000,2770000,2830000,2890000,2950000,3020000,3080000,3150000,3220000,3280000,3350000,3430000,3500000,3570000,3650000,3730000,3810000,3890000,3970000,4060000,4150000,4230000,4320000,4420000,4510000,4610000,4710000,4810000,4910000,5020000,5120000,5230000,5340000,5460000,5580000,5720000,5900000,6070000,6220000,6360000,6500000,6650000,6800000,6950000,7120000,7290000,7480000,7670000,7890000,8120000,8380000,8650000,8950000,9260000,9590000,9920000,10300000,10600000,11000000,11300000,11700000,12100000,12500000,12900000,13300000,13700000,14000000,14400000,14800000,15200000,15600000,15900000,16300000,16700000,17000000,17500000,17900000,18500000,19000000,19600000,20200000,20800000,21500000,22200000,22900000,23600000,24300000,24900000,25600000,26300000,27000000,27700000,28400000,29100000,29900000,30800000,31700000,32800000,33900000,35000000,36100000,37200000,38300000,39300000,40400000,41500000,42600000,43700000,44900000,46000000,47200000,48400000,49600000,50800000,52000000,53300000,54600000,55900000,57200000,58500000,59800000,61200000,62500000,63900000,65300000,66800000,68200000,69600000,71100000,72500000,74000000,75500000,77000000,78500000,80000000,81500000,83000000,84500000,86100000,87600000,89100000,90700000,92200000,93800000,95300000,96900000,98400000,100000000,102000000,103000000,105000000,106000000,108000000,109000000,111000000,113000000,114000000,116000000,117000000,119000000,120000000,122000000,123000000,125000000,126000000,128000000,129000000,131000000,132000000,134000000,135000000,137000000,138000000,140000000,141000000,143000000,144000000,145000000,147000000,148000000,149000000,151000000,152000000,153000000,154000000,156000000 -Ireland,4060000,4110000,4150000,4200000,4250000,4290000,4340000,4390000,4430000,4480000,4540000,4590000,4640000,4690000,4740000,4800000,4850000,4900000,4950000,5000000,5050000,5100000,5160000,5210000,5260000,5300000,5350000,5400000,5450000,5490000,5540000,5580000,5620000,5660000,5700000,5740000,5770000,5800000,5800000,5780000,5750000,5710000,5650000,5600000,5530000,5460000,5390000,5310000,5240000,5160000,5070000,4980000,4890000,4800000,4710000,4610000,4510000,4400000,4310000,4240000,4170000,4120000,4080000,4050000,4020000,3990000,3970000,3940000,3920000,3900000,3880000,3850000,3830000,3800000,3780000,3750000,3730000,3710000,3690000,3670000,3640000,3620000,3590000,3570000,3540000,3510000,3470000,3440000,3400000,3380000,3350000,3320000,3300000,3280000,3260000,3240000,3220000,3200000,3190000,3180000,3160000,3150000,3140000,3130000,3120000,3110000,3110000,3100000,3100000,3100000,3090000,3090000,3080000,3070000,3050000,3030000,3020000,3020000,3030000,3060000,3070000,3040000,3010000,2980000,2980000,2960000,2950000,2930000,2920000,2910000,2910000,2910000,2920000,2940000,2940000,2940000,2940000,2930000,2910000,2920000,2940000,2950000,2940000,2930000,2920000,2930000,2940000,2950000,2950000,2930000,2910000,2920000,2920000,2920000,2910000,2900000,2880000,2860000,2850000,2830000,2820000,2820000,2820000,2840000,2850000,2860000,2870000,2880000,2900000,2920000,2950000,2990000,3030000,3080000,3130000,3180000,3240000,3290000,3340000,3390000,3430000,3470000,3510000,3530000,3550000,3560000,3570000,3570000,3570000,3570000,3570000,3580000,3590000,3610000,3630000,3650000,3680000,3710000,3750000,3800000,3850000,3910000,3980000,4050000,4130000,4210000,4300000,4400000,4490000,4570000,4630000,4660000,4680000,4680000,4690000,4700000,4730000,4760000,4800000,4850000,4890000,4930000,4960000,5000000,5030000,5060000,5100000,5130000,5160000,5190000,5220000,5250000,5280000,5310000,5340000,5370000,5410000,5440000,5470000,5500000,5530000,5560000,5590000,5620000,5650000,5680000,5700000,5730000,5760000,5780000,5800000,5820000,5840000,5860000,5880000,5890000,5910000,5920000,5930000,5940000,5960000,5970000,5980000,5990000,6000000,6000000,6010000,6020000,6030000,6040000,6050000,6060000,6070000,6080000,6100000,6110000,6120000,6130000,6150000,6160000,6170000,6190000,6200000,6220000,6230000,6250000,6260000,6270000,6290000,6300000,6310000,6320000,6330000,6340000,6350000,6360000,6370000,6370000,6380000,6380000,6390000 -Israel,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,210000,211000,211000,212000,212000,213000,214000,215000,216000,217000,218000,219000,220000,222000,224000,225000,227000,229000,231000,233000,236000,238000,240000,243000,245000,247000,250000,253000,255000,258000,261000,263000,266000,269000,272000,275000,278000,281000,284000,288000,291000,295000,298000,302000,305000,309000,313000,316000,320000,324000,328000,332000,337000,341000,345000,350000,354000,359000,364000,369000,374000,379000,384000,389000,394000,400000,406000,413000,420000,428000,434000,436000,433000,426000,419000,418000,421000,431000,440000,451000,463000,476000,490000,504000,519000,534000,549000,565000,583000,609000,642000,685000,727000,762000,786000,814000,844000,877000,903000,930000,960000,994000,1030000,1070000,1110000,1150000,1200000,1260000,1350000,1450000,1550000,1640000,1720000,1800000,1870000,1940000,2010000,2090000,2170000,2260000,2360000,2440000,2520000,2590000,2650000,2710000,2780000,2850000,2940000,3030000,3140000,3240000,3340000,3430000,3510000,3590000,3670000,3740000,3820000,3880000,3950000,4020000,4080000,4150000,4220000,4290000,4380000,4500000,4640000,4810000,4990000,5170000,5330000,5490000,5630000,5770000,5890000,6010000,6130000,6240000,6350000,6470000,6600000,6760000,6920000,7100000,7270000,7430000,7570000,7700000,7820000,7940000,8060000,8190000,8320000,8450000,8580000,8710000,8840000,8970000,9100000,9220000,9350000,9480000,9600000,9730000,9860000,9980000,10100000,10200000,10400000,10500000,10600000,10800000,10900000,11000000,11200000,11300000,11400000,11500000,11700000,11800000,11900000,12100000,12200000,12300000,12500000,12600000,12700000,12800000,12900000,13100000,13200000,13300000,13400000,13500000,13600000,13800000,13900000,14000000,14100000,14200000,14300000,14400000,14500000,14600000,14700000,14800000,14900000,15000000,15100000,15200000,15300000,15400000,15500000,15600000,15700000,15700000,15800000,15900000,16000000,16100000,16200000,16200000,16300000,16400000,16500000,16500000,16600000,16700000,16700000,16800000,16900000,16900000,17000000,17000000,17100000,17100000 -Italy,18800000,18900000,19000000,19000000,19100000,19200000,19200000,19300000,19400000,19400000,19500000,19600000,19600000,19700000,19800000,19900000,20000000,20100000,20100000,20200000,20300000,20400000,20600000,20700000,20800000,20900000,21000000,21100000,21300000,21400000,21500000,21700000,21800000,21900000,22100000,22200000,22400000,22500000,22700000,22800000,23000000,23100000,23300000,23400000,23600000,23700000,23900000,24000000,24200000,24300000,24500000,24600000,24800000,25000000,25100000,25300000,25500000,25600000,25800000,26000000,26100000,26300000,26500000,26600000,26800000,27000000,27200000,27300000,27500000,27700000,27800000,28000000,28200000,28400000,28500000,28700000,28900000,29100000,29200000,29400000,29600000,29800000,30000000,30200000,30400000,30600000,30800000,31000000,31200000,31500000,31700000,31900000,32100000,32300000,32500000,32700000,32900000,33100000,33300000,33500000,33700000,34000000,34200000,34500000,34700000,35000000,35300000,35600000,35900000,36200000,36500000,36900000,37100000,37300000,37600000,37900000,38000000,37900000,37600000,37400000,37400000,37700000,38100000,38400000,38800000,39100000,39500000,39800000,40100000,40500000,40800000,41100000,41400000,41700000,42100000,42400000,42700000,43100000,43400000,43800000,44300000,44700000,44900000,45100000,45300000,45500000,45700000,46000000,46400000,46500000,46600000,47000000,47400000,47800000,48100000,48400000,48600000,48900000,49200000,49400000,49700000,50100000,50500000,50900000,51300000,51700000,52100000,52500000,52900000,53200000,53600000,53900000,54300000,54700000,55000000,55300000,55600000,55800000,56100000,56200000,56400000,56600000,56700000,56800000,56900000,57000000,57100000,57100000,57100000,57100000,57100000,57200000,57200000,57200000,57300000,57300000,57200000,57200000,57200000,57200000,57300000,57500000,57800000,58100000,58500000,58800000,59100000,59300000,59500000,59600000,59700000,59800000,59700000,59700000,59600000,59500000,59400000,59400000,59300000,59200000,59100000,59000000,58900000,58800000,58700000,58600000,58500000,58400000,58300000,58200000,58100000,58000000,57900000,57800000,57700000,57500000,57400000,57300000,57200000,57000000,56900000,56700000,56600000,56400000,56200000,56100000,55900000,55700000,55500000,55300000,55100000,54900000,54600000,54400000,54200000,53900000,53700000,53400000,53200000,52900000,52700000,52400000,52200000,52000000,51700000,51500000,51300000,51100000,50900000,50700000,50500000,50400000,50200000,50100000,49900000,49800000,49700000,49600000,49500000,49400000,49300000,49200000,49200000,49100000,49000000,48900000,48900000,48800000,48700000,48600000,48600000,48500000,48400000,48400000,48300000,48200000,48100000,48100000,48000000,47900000,47800000 -Jamaica,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,401000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,400000,401000,402000,403000,404000,405000,407000,409000,411000,414000,416000,419000,423000,426000,430000,434000,438000,442000,447000,452000,457000,463000,468000,473000,479000,484000,490000,496000,501000,507000,513000,519000,525000,532000,538000,544000,551000,558000,565000,571000,578000,585000,592000,600000,607000,614000,622000,629000,637000,645000,653000,661000,669000,677000,686000,694000,702000,711000,719000,728000,736000,745000,754000,762000,771000,780000,789000,798000,808000,817000,826000,834000,839000,841000,844000,846000,849000,851000,855000,864000,876000,889000,899000,912000,928000,946000,965000,986000,1010000,1040000,1060000,1080000,1100000,1110000,1130000,1140000,1160000,1190000,1210000,1230000,1240000,1250000,1260000,1270000,1300000,1320000,1350000,1370000,1400000,1440000,1470000,1500000,1520000,1540000,1560000,1580000,1590000,1610000,1630000,1650000,1680000,1700000,1730000,1760000,1780000,1800000,1830000,1850000,1880000,1900000,1930000,1970000,2000000,2030000,2060000,2080000,2110000,2130000,2160000,2200000,2240000,2270000,2310000,2340000,2360000,2380000,2390000,2410000,2420000,2440000,2470000,2490000,2510000,2540000,2560000,2590000,2610000,2630000,2660000,2680000,2700000,2710000,2730000,2740000,2760000,2780000,2790000,2800000,2820000,2830000,2840000,2850000,2860000,2870000,2880000,2890000,2900000,2910000,2910000,2920000,2920000,2930000,2930000,2930000,2940000,2940000,2940000,2930000,2930000,2930000,2930000,2920000,2920000,2910000,2900000,2890000,2880000,2870000,2860000,2850000,2830000,2820000,2800000,2790000,2770000,2760000,2740000,2720000,2700000,2690000,2670000,2650000,2630000,2610000,2590000,2560000,2540000,2520000,2500000,2470000,2450000,2430000,2400000,2380000,2350000,2320000,2300000,2270000,2240000,2220000,2190000,2160000,2130000,2110000,2080000,2050000,2020000,1990000,1960000,1940000,1910000,1880000,1850000,1820000,1790000,1770000,1740000,1710000,1690000,1660000,1630000,1610000,1580000,1560000,1530000,1510000,1480000,1460000,1440000 -Japan,30300000,30300000,30400000,30400000,30400000,30500000,30500000,30500000,30600000,30600000,30600000,30700000,30700000,30800000,30800000,30800000,30900000,30900000,30900000,31000000,31000000,31000000,31100000,31100000,31100000,31200000,31200000,31200000,31300000,31300000,31300000,31400000,31400000,31400000,31500000,31500000,31500000,31600000,31600000,31600000,31700000,31700000,31700000,31800000,31800000,31900000,31900000,32000000,32100000,32100000,32200000,32300000,32400000,32500000,32600000,32700000,32800000,32900000,33000000,33100000,33200000,33300000,33500000,33600000,33700000,33900000,34000000,34200000,34400000,34500000,34700000,34900000,35100000,35300000,35500000,35700000,35900000,36200000,36400000,36700000,36900000,37200000,37500000,37800000,38100000,38400000,38700000,39100000,39400000,39700000,40100000,40400000,40800000,41200000,41600000,42000000,42400000,42800000,43300000,43800000,44300000,44800000,45300000,45800000,46300000,46800000,47400000,47800000,48400000,49000000,49600000,50300000,51000000,51800000,52500000,53200000,53900000,54500000,55000000,55400000,56000000,56600000,57300000,58000000,58800000,59700000,60600000,61500000,62500000,63400000,64300000,65300000,66300000,67300000,68300000,69300000,70400000,71200000,72000000,72500000,73200000,74100000,75100000,76200000,76600000,77000000,77300000,78600000,80200000,81600000,82800000,84300000,85700000,86900000,88000000,89000000,90000000,91000000,91900000,92800000,93700000,94600000,95500000,96400000,97400000,98400000,99600000,101000000,102000000,103000000,105000000,106000000,108000000,110000000,111000000,112000000,114000000,115000000,116000000,117000000,118000000,119000000,120000000,120000000,121000000,122000000,123000000,123000000,124000000,124000000,125000000,125000000,125000000,126000000,126000000,126000000,127000000,127000000,127000000,127000000,128000000,128000000,128000000,128000000,128000000,128000000,128000000,129000000,129000000,129000000,129000000,129000000,128000000,128000000,128000000,128000000,128000000,127000000,127000000,127000000,126000000,126000000,126000000,125000000,125000000,124000000,124000000,123000000,123000000,122000000,122000000,121000000,120000000,120000000,119000000,118000000,118000000,117000000,117000000,116000000,115000000,115000000,114000000,113000000,113000000,112000000,111000000,111000000,110000000,109000000,109000000,108000000,108000000,107000000,106000000,106000000,105000000,105000000,104000000,103000000,103000000,102000000,101000000,101000000,100000000,99500000,98900000,98300000,97600000,97000000,96400000,95800000,95200000,94600000,94000000,93500000,93000000,92500000,92000000,91500000,91100000,90700000,90300000,89900000,89500000,89100000,88800000,88400000,88100000,87800000,87400000,87100000,86800000,86500000,86200000,85900000,85600000,85400000,85100000,84800000,84500000 -Jordan,217000,217000,217000,217000,217000,217000,217000,217000,217000,217000,217000,217000,217000,217000,217000,218000,218000,218000,219000,219000,219000,220000,220000,221000,222000,222000,223000,224000,224000,225000,226000,227000,228000,229000,230000,231000,232000,233000,234000,235000,235000,236000,237000,238000,239000,240000,241000,242000,243000,244000,245000,246000,248000,249000,250000,251000,252000,253000,254000,256000,257000,258000,259000,260000,262000,263000,264000,266000,267000,269000,270000,272000,273000,275000,277000,278000,280000,282000,284000,286000,287000,289000,291000,293000,295000,297000,299000,301000,303000,305000,307000,309000,312000,314000,316000,318000,320000,322000,324000,327000,329000,331000,333000,335000,338000,340000,342000,345000,347000,349000,352000,354000,356000,359000,361000,364000,367000,369000,372000,374000,377000,380000,382000,385000,388000,390000,393000,396000,398000,401000,404000,407000,410000,412000,415000,418000,421000,424000,427000,430000,433000,436000,439000,442000,445000,448000,451000,454000,457000,460000,481000,536000,576000,610000,644000,683000,728000,779000,832000,885000,932000,973000,1010000,1050000,1100000,1170000,1270000,1380000,1500000,1620000,1720000,1810000,1880000,1950000,2000000,2060000,2120000,2180000,2230000,2300000,2370000,2460000,2560000,2670000,2780000,2900000,3010000,3130000,3250000,3400000,3560000,3750000,3970000,4190000,4400000,4570000,4720000,4830000,4930000,5010000,5100000,5190000,5290000,5400000,5540000,5710000,5930000,6190000,6490000,6820000,7180000,7570000,7990000,8410000,8810000,9160000,9460000,9700000,9900000,10100000,10200000,10300000,10400000,10500000,10500000,10600000,10700000,10800000,10900000,11000000,11100000,11200000,11400000,11500000,11700000,11800000,12000000,12200000,12300000,12500000,12700000,12800000,13000000,13200000,13300000,13500000,13600000,13800000,13900000,14100000,14200000,14300000,14400000,14600000,14700000,14800000,14900000,15000000,15200000,15300000,15400000,15500000,15600000,15700000,15700000,15800000,15900000,16000000,16100000,16200000,16300000,16300000,16400000,16500000,16500000,16600000,16700000,16700000,16800000,16800000,16900000,16900000,17000000,17000000,17100000,17100000,17100000,17200000,17200000,17200000,17200000,17300000,17300000,17300000,17300000,17300000,17300000,17300000,17300000,17300000,17300000 -Kazakhstan,2040000,2040000,2040000,2040000,2040000,2040000,2040000,2040000,2040000,2040000,2040000,2040000,2040000,2050000,2050000,2050000,2060000,2070000,2070000,2080000,2090000,2100000,2110000,2130000,2140000,2150000,2170000,2180000,2200000,2220000,2240000,2260000,2280000,2300000,2320000,2350000,2370000,2390000,2410000,2430000,2450000,2480000,2500000,2520000,2550000,2570000,2590000,2620000,2640000,2670000,2690000,2710000,2740000,2760000,2790000,2820000,2840000,2870000,2890000,2920000,2950000,2970000,3000000,3030000,3060000,3080000,3110000,3140000,3170000,3200000,3230000,3260000,3290000,3310000,3350000,3380000,3410000,3440000,3470000,3500000,3530000,3560000,3600000,3630000,3660000,3690000,3730000,3760000,3800000,3830000,3870000,3900000,3940000,3970000,4010000,4050000,4080000,4120000,4160000,4200000,4230000,4270000,4310000,4350000,4390000,4430000,4470000,4510000,4550000,4590000,4640000,4680000,4720000,4760000,4810000,4850000,4900000,4940000,4990000,5030000,5080000,5120000,5170000,5220000,5270000,5320000,5360000,5410000,5460000,5510000,5560000,5620000,5670000,5720000,5770000,5820000,5880000,5930000,5990000,6040000,6100000,6150000,6210000,6270000,6320000,6380000,6440000,6500000,6560000,6620000,6700000,6830000,7040000,7320000,7640000,7990000,8370000,8760000,9170000,9580000,10000000,10400000,10800000,11200000,11600000,11900000,12200000,12500000,12700000,12900000,13100000,13300000,13500000,13700000,13900000,14100000,14300000,14500000,14600000,14700000,14900000,15100000,15200000,15400000,15600000,15800000,16000000,16200000,16300000,16500000,16500000,16500000,16500000,16400000,16200000,16000000,15800000,15600000,15300000,15200000,15100000,15000000,15100000,15200000,15400000,15500000,15700000,15800000,16000000,16200000,16400000,16600000,16900000,17200000,17500000,17700000,18000000,18200000,18400000,18600000,18800000,19000000,19100000,19300000,19500000,19600000,19800000,19900000,20000000,20200000,20300000,20400000,20600000,20700000,20800000,21000000,21100000,21200000,21300000,21500000,21600000,21800000,21900000,22000000,22200000,22300000,22400000,22600000,22700000,22800000,23000000,23100000,23200000,23300000,23400000,23500000,23600000,23700000,23800000,23900000,23900000,24000000,24100000,24100000,24200000,24300000,24300000,24400000,24500000,24500000,24600000,24700000,24700000,24800000,24800000,24900000,25000000,25000000,25100000,25100000,25200000,25300000,25300000,25400000,25400000,25500000,25500000,25500000,25600000,25600000,25700000,25700000,25700000,25700000,25700000,25700000,25800000,25800000,25800000,25700000,25700000 -Kenya,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2570000,2580000,2580000,2580000,2580000,2580000,2580000,2580000,2580000,2580000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2600000,2600000,2600000,2600000,2600000,2600000,2600000,2600000,2600000,2600000,2610000,2610000,2610000,2610000,2610000,2610000,2610000,2610000,2610000,2620000,2620000,2620000,2620000,2620000,2620000,2620000,2620000,2620000,2630000,2630000,2630000,2630000,2630000,2630000,2630000,2630000,2630000,2640000,2640000,2640000,2640000,2640000,2640000,2640000,2640000,2640000,2650000,2650000,2650000,2650000,2650000,2650000,2660000,2690000,2740000,2780000,2830000,2880000,2930000,2980000,3030000,3080000,3140000,3230000,3340000,3440000,3560000,3670000,3790000,3910000,4040000,4170000,4310000,4450000,4590000,4740000,4900000,5050000,5220000,5390000,5730000,6080000,6240000,6410000,6590000,6780000,6980000,7190000,7400000,7630000,7860000,8110000,8360000,8630000,8910000,9200000,9500000,9820000,10200000,10500000,10900000,11300000,11700000,12100000,12500000,13000000,13500000,14000000,14500000,15100000,15700000,16300000,16900000,17600000,18200000,18900000,19700000,20400000,21100000,21900000,22600000,23400000,24200000,25000000,25800000,26500000,27300000,28100000,29000000,29800000,30600000,31500000,32300000,33200000,34100000,35100000,36000000,37100000,38100000,39100000,40200000,41400000,42500000,43600000,44800000,46000000,47200000,48500000,49700000,51000000,52200000,53500000,54800000,56100000,57400000,58700000,60100000,61400000,62800000,64200000,65600000,67000000,68400000,69800000,71200000,72700000,74100000,75500000,77000000,78400000,79800000,81300000,82700000,84200000,85600000,87000000,88400000,89900000,91300000,92700000,94100000,95500000,96900000,98200000,99600000,101000000,102000000,104000000,105000000,106000000,108000000,109000000,110000000,111000000,113000000,114000000,115000000,116000000,117000000,118000000,120000000,121000000,122000000,123000000,124000000,125000000,126000000,127000000,128000000,128000000,129000000,130000000,131000000,132000000,133000000,133000000,134000000,135000000,135000000,136000000,137000000,137000000,138000000,139000000,139000000,140000000,140000000,141000000,141000000,141000000,142000000,142000000 -Kiribati,17900,17900,17900,17900,17900,17900,17900,17900,17900,17900,17900,17900,17900,17900,17900,17900,17900,17900,18000,18000,18000,18000,18100,18100,18100,18200,18200,18300,18300,18400,18400,18500,18500,18600,18600,18700,18700,18800,18800,18900,19000,19000,19100,19100,19200,19200,19300,19300,19400,19500,19500,19600,19800,19900,20000,20200,20300,20500,20600,20700,20900,21000,21100,21300,21400,21600,21700,21900,22000,22100,22300,22400,22600,22700,22900,23000,23200,23300,23500,23600,23800,23900,24100,24200,24400,24500,24700,24800,25000,25200,25300,25500,25600,25800,26000,26100,26300,26500,26600,26800,26900,27100,27300,27400,27600,27800,28000,28100,28300,28500,28600,28800,29000,29200,29300,29500,29700,29900,29900,30000,30100,30200,30300,30400,30500,30600,30600,30700,30800,30900,31000,31100,31200,31300,31400,31500,31500,31600,31700,31800,31900,32000,32100,32200,32300,32400,32500,32600,32700,32800,33000,33600,34300,35000,35800,36600,37500,38300,39300,40200,41200,42300,43300,44400,45400,46500,47500,48400,49400,50300,51200,52000,52800,53600,54400,55200,56000,56800,57700,58500,59300,60100,60900,61800,62800,64000,65500,67300,69100,70900,72400,73700,74800,75700,76700,77700,78900,80200,81600,83000,84400,85900,87300,88900,90500,92300,94300,96300,98400,101000,103000,105000,107000,109000,110000,112000,114000,116000,118000,120000,122000,124000,126000,128000,130000,132000,134000,136000,138000,140000,142000,143000,145000,147000,149000,150000,152000,154000,156000,157000,159000,161000,163000,165000,167000,169000,171000,172000,174000,176000,178000,180000,182000,184000,185000,187000,189000,190000,192000,194000,195000,197000,198000,200000,201000,203000,204000,206000,207000,209000,210000,211000,213000,214000,216000,217000,218000,220000,221000,222000,224000,225000,226000,227000,229000,230000,231000,232000,233000,234000,235000,236000,237000,238000,239000,239000,240000,241000,242000,242000,243000 -Kuwait,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81300,81200,81200,81200,81200,81200,81100,81100,81100,81100,81100,81100,81200,81200,81300,81400,81500,81700,81900,82100,82300,82600,82700,83000,83300,83700,84000,84400,84900,85300,85800,86200,86700,87100,87600,88100,88500,89000,89500,90000,90400,90900,91400,91900,92400,92900,93400,93900,94400,94900,95400,95900,96400,96900,97400,97900,98400,99000,99500,100000,101000,101000,102000,103000,104000,105000,106000,107000,108000,109000,110000,112000,113000,114000,115000,116000,118000,119000,120000,121000,123000,124000,125000,127000,128000,129000,131000,132000,133000,135000,136000,138000,139000,141000,142000,144000,145000,147000,148000,153000,158000,163000,168000,174000,182000,192000,205000,222000,243000,270000,301000,338000,380000,425000,474000,525000,579000,635000,691000,747000,801000,855000,909000,965000,1020000,1090000,1160000,1230000,1300000,1370000,1440000,1510000,1580000,1660000,1740000,1840000,1940000,2040000,2100000,2100000,2040000,1920000,1780000,1660000,1610000,1630000,1720000,1840000,1960000,2050000,2110000,2140000,2170000,2210000,2280000,2380000,2500000,2650000,2820000,3000000,3190000,3400000,3600000,3780000,3940000,4050000,4140000,4200000,4250000,4300000,4360000,4420000,4480000,4540000,4600000,4660000,4710000,4770000,4820000,4870000,4920000,4970000,5020000,5070000,5110000,5160000,5200000,5240000,5280000,5320000,5360000,5400000,5440000,5470000,5500000,5540000,5560000,5590000,5620000,5640000,5670000,5690000,5710000,5730000,5750000,5770000,5780000,5800000,5810000,5830000,5840000,5860000,5870000,5880000,5900000,5910000,5920000,5940000,5950000,5970000,5980000,6000000,6010000,6020000,6040000,6050000,6060000,6080000,6090000,6100000,6110000,6130000,6140000,6150000,6160000,6160000,6170000,6180000,6190000,6190000,6200000,6200000,6210000,6210000,6220000,6220000,6220000,6230000,6230000,6230000 -Kyrgyz Republic,530000,530000,530000,530000,530000,530000,530000,530000,530000,530000,530000,531000,531000,532000,533000,534000,535000,537000,539000,541000,543000,546000,549000,552000,556000,559000,563000,568000,572000,577000,582000,587000,593000,598000,604000,609000,615000,620000,626000,632000,638000,644000,649000,655000,661000,668000,674000,680000,686000,692000,699000,705000,712000,718000,725000,731000,738000,745000,752000,758000,765000,772000,780000,787000,794000,801000,808000,816000,823000,831000,838000,846000,854000,862000,869000,877000,885000,893000,901000,910000,918000,926000,935000,943000,952000,960000,969000,978000,987000,996000,1010000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1210000,1220000,1230000,1240000,1250000,1260000,1270000,1290000,1300000,1310000,1320000,1330000,1350000,1360000,1370000,1380000,1400000,1410000,1420000,1430000,1450000,1460000,1470000,1490000,1500000,1510000,1530000,1540000,1560000,1570000,1590000,1600000,1620000,1630000,1640000,1660000,1680000,1690000,1710000,1720000,1740000,1770000,1800000,1830000,1860000,1900000,1950000,1990000,2050000,2110000,2170000,2240000,2320000,2400000,2490000,2570000,2650000,2740000,2820000,2900000,2970000,3040000,3110000,3170000,3230000,3290000,3350000,3410000,3480000,3540000,3610000,3680000,3760000,3830000,3910000,3990000,4080000,4160000,4240000,4310000,4370000,4420000,4450000,4480000,4520000,4570000,4630000,4710000,4790000,4860000,4920000,4960000,4990000,5010000,5040000,5080000,5130000,5190000,5260000,5340000,5420000,5510000,5590000,5680000,5770000,5870000,5960000,6050000,6130000,6220000,6300000,6380000,6460000,6530000,6610000,6680000,6740000,6810000,6870000,6940000,7000000,7060000,7120000,7180000,7240000,7300000,7360000,7420000,7480000,7540000,7600000,7650000,7710000,7770000,7820000,7870000,7920000,7970000,8020000,8070000,8110000,8160000,8200000,8240000,8280000,8310000,8350000,8380000,8410000,8440000,8470000,8500000,8520000,8550000,8570000,8600000,8620000,8640000,8660000,8680000,8700000,8720000,8730000,8750000,8760000,8780000,8790000,8800000,8810000,8820000,8830000,8840000,8850000,8860000,8870000,8880000,8880000,8890000,8890000,8900000,8900000,8900000,8900000,8900000,8900000,8890000,8890000,8880000,8870000,8860000,8850000 -Lao,470000,470000,470000,470000,470000,470000,470000,470000,470000,470000,470000,470000,471000,471000,472000,473000,475000,476000,478000,480000,482000,485000,487000,490000,493000,497000,500000,504000,508000,513000,518000,523000,527000,533000,538000,543000,548000,553000,558000,564000,569000,574000,580000,585000,591000,597000,602000,608000,614000,620000,626000,632000,637000,643000,650000,656000,662000,668000,674000,681000,687000,694000,701000,708000,715000,723000,731000,739000,747000,756000,765000,774000,783000,792000,802000,813000,823000,834000,845000,857000,869000,881000,894000,906000,919000,932000,945000,958000,971000,985000,999000,1010000,1030000,1040000,1060000,1070000,1090000,1100000,1120000,1130000,1150000,1170000,1180000,1200000,1220000,1230000,1250000,1270000,1290000,1300000,1320000,1340000,1360000,1370000,1390000,1390000,1400000,1410000,1410000,1420000,1430000,1440000,1440000,1450000,1460000,1470000,1470000,1480000,1490000,1500000,1510000,1510000,1520000,1530000,1540000,1550000,1550000,1560000,1570000,1580000,1590000,1600000,1600000,1610000,1620000,1630000,1640000,1650000,1650000,1660000,1680000,1720000,1760000,1810000,1850000,1890000,1930000,1980000,2030000,2070000,2120000,2170000,2220000,2270000,2330000,2380000,2440000,2500000,2560000,2620000,2690000,2760000,2840000,2920000,2990000,3050000,3100000,3140000,3170000,3210000,3260000,3320000,3400000,3490000,3590000,3690000,3790000,3910000,4020000,4140000,4260000,4380000,4500000,4620000,4740000,4850000,4960000,5060000,5150000,5240000,5330000,5410000,5500000,5580000,5660000,5750000,5850000,5950000,6050000,6150000,6250000,6330000,6420000,6490000,6580000,6660000,6760000,6860000,6960000,7060000,7160000,7260000,7360000,7450000,7540000,7630000,7720000,7800000,7890000,7970000,8050000,8130000,8200000,8280000,8350000,8420000,8480000,8550000,8610000,8670000,8730000,8780000,8840000,8890000,8930000,8980000,9020000,9060000,9100000,9130000,9160000,9190000,9220000,9240000,9260000,9280000,9300000,9310000,9320000,9330000,9340000,9340000,9350000,9340000,9340000,9340000,9330000,9320000,9300000,9290000,9270000,9250000,9230000,9210000,9190000,9160000,9130000,9110000,9080000,9040000,9010000,8980000,8940000,8910000,8870000,8830000,8790000,8750000,8710000,8670000,8630000,8590000,8550000,8510000,8460000,8420000,8380000,8330000,8290000,8240000,8200000 -Latvia,591000,591000,591000,591000,591000,591000,591000,591000,591000,591000,591000,591000,591000,592000,593000,595000,596000,598000,600000,603000,605000,608000,612000,615000,619000,623000,628000,632000,637000,643000,648000,654000,660000,667000,673000,679000,685000,691000,698000,704000,711000,717000,724000,731000,737000,744000,751000,758000,765000,772000,779000,786000,793000,801000,808000,815000,823000,830000,838000,845000,853000,861000,868000,876000,884000,892000,900000,909000,917000,925000,934000,942000,951000,959000,968000,976000,985000,994000,1000000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1250000,1260000,1270000,1280000,1290000,1300000,1310000,1330000,1340000,1350000,1360000,1380000,1390000,1400000,1410000,1430000,1440000,1450000,1470000,1480000,1490000,1510000,1520000,1530000,1550000,1560000,1580000,1590000,1610000,1620000,1640000,1650000,1670000,1680000,1700000,1710000,1730000,1750000,1760000,1780000,1790000,1810000,1830000,1840000,1860000,1880000,1900000,1910000,1930000,1930000,1950000,1960000,1980000,2000000,2020000,2050000,2080000,2100000,2130000,2160000,2190000,2210000,2240000,2270000,2290000,2310000,2340000,2360000,2380000,2400000,2420000,2440000,2450000,2470000,2480000,2490000,2500000,2510000,2520000,2530000,2540000,2550000,2560000,2580000,2600000,2630000,2650000,2660000,2660000,2650000,2620000,2580000,2540000,2510000,2480000,2450000,2430000,2410000,2380000,2360000,2330000,2310000,2280000,2250000,2230000,2200000,2170000,2150000,2120000,2090000,2070000,2040000,2020000,1990000,1970000,1950000,1930000,1910000,1890000,1880000,1860000,1840000,1830000,1810000,1800000,1790000,1770000,1760000,1750000,1730000,1720000,1710000,1690000,1680000,1670000,1660000,1650000,1630000,1620000,1610000,1600000,1590000,1580000,1570000,1560000,1550000,1540000,1530000,1520000,1510000,1500000,1490000,1480000,1470000,1460000,1450000,1440000,1430000,1420000,1410000,1400000,1390000,1380000,1370000,1360000,1350000,1340000,1330000,1320000,1310000,1310000,1300000,1290000,1280000,1280000,1270000,1260000,1260000,1250000,1240000,1240000,1230000,1230000,1220000,1220000,1210000,1210000,1200000,1200000,1190000,1190000,1180000,1180000,1170000,1170000,1160000,1160000,1150000,1150000 -Lebanon,332000,332000,332000,332000,332000,332000,332000,332000,332000,332000,332000,332000,332000,333000,333000,334000,334000,335000,336000,337000,338000,340000,341000,343000,344000,346000,348000,350000,352000,355000,357000,360000,362000,365000,368000,370000,373000,376000,378000,381000,384000,387000,389000,392000,395000,398000,401000,404000,407000,410000,413000,415000,418000,420000,423000,425000,428000,430000,433000,436000,438000,441000,444000,447000,449000,452000,455000,458000,460000,463000,466000,469000,472000,474000,477000,480000,483000,486000,489000,492000,495000,498000,501000,504000,507000,510000,513000,516000,519000,523000,526000,529000,532000,535000,539000,542000,545000,548000,552000,555000,558000,562000,565000,569000,572000,576000,579000,582000,586000,590000,593000,597000,600000,607000,616000,629000,642000,655000,670000,685000,699000,715000,730000,746000,763000,779000,796000,814000,831000,850000,868000,887000,906000,926000,946000,967000,988000,1010000,1030000,1050000,1080000,1100000,1120000,1150000,1170000,1200000,1230000,1250000,1280000,1310000,1330000,1360000,1390000,1430000,1480000,1530000,1580000,1640000,1690000,1750000,1800000,1860000,1930000,1980000,2040000,2090000,2140000,2170000,2210000,2250000,2300000,2350000,2420000,2480000,2540000,2580000,2600000,2610000,2600000,2600000,2610000,2620000,2630000,2650000,2670000,2680000,2680000,2670000,2670000,2680000,2700000,2750000,2820000,2900000,2970000,3030000,3070000,3090000,3110000,3160000,3240000,3360000,3520000,3700000,3860000,3990000,4060000,4090000,4110000,4180000,4340000,4590000,4920000,5280000,5600000,5850000,6010000,6080000,6090000,6070000,6020000,5960000,5880000,5780000,5690000,5610000,5530000,5480000,5430000,5400000,5370000,5350000,5340000,5330000,5330000,5340000,5340000,5360000,5370000,5380000,5390000,5400000,5410000,5410000,5410000,5410000,5410000,5410000,5410000,5410000,5410000,5410000,5410000,5410000,5400000,5400000,5390000,5390000,5380000,5380000,5370000,5360000,5350000,5330000,5320000,5300000,5290000,5270000,5250000,5220000,5200000,5180000,5150000,5120000,5090000,5060000,5030000,5000000,4970000,4940000,4900000,4870000,4840000,4810000,4770000,4740000,4710000,4680000,4650000,4620000,4590000,4570000,4540000,4510000,4490000,4460000,4440000,4420000,4390000,4370000,4350000 -Lesotho,276000,276000,276000,276000,276000,276000,276000,276000,276000,276000,276000,276000,277000,277000,277000,278000,278000,279000,280000,281000,282000,283000,284000,286000,287000,289000,290000,292000,294000,296000,298000,300000,303000,305000,307000,310000,312000,314000,317000,319000,322000,324000,326000,329000,331000,334000,336000,339000,341000,344000,347000,349000,352000,354000,357000,360000,362000,365000,368000,371000,374000,376000,379000,382000,385000,388000,391000,394000,397000,400000,403000,406000,409000,412000,415000,418000,421000,424000,427000,430000,434000,437000,440000,443000,447000,450000,453000,457000,460000,464000,467000,471000,474000,478000,481000,485000,489000,492000,496000,500000,503000,507000,511000,515000,519000,523000,526000,530000,534000,538000,542000,546000,551000,555000,559000,563000,567000,572000,576000,580000,585000,589000,593000,598000,602000,607000,611000,616000,621000,625000,630000,635000,640000,645000,649000,654000,659000,664000,669000,674000,679000,684000,690000,695000,700000,705000,711000,716000,721000,727000,734000,744000,755000,766000,777000,788000,799000,812000,824000,838000,852000,866000,882000,899000,916000,934000,952000,972000,991000,1010000,1030000,1050000,1080000,1100000,1120000,1150000,1180000,1210000,1240000,1280000,1310000,1340000,1380000,1410000,1440000,1470000,1500000,1530000,1550000,1580000,1600000,1630000,1670000,1700000,1730000,1760000,1790000,1810000,1830000,1850000,1870000,1890000,1900000,1920000,1930000,1950000,1970000,1980000,2000000,2020000,2040000,2060000,2090000,2120000,2150000,2170000,2200000,2230000,2260000,2290000,2320000,2350000,2380000,2410000,2440000,2470000,2490000,2520000,2550000,2580000,2610000,2640000,2670000,2690000,2720000,2750000,2780000,2810000,2840000,2870000,2900000,2930000,2960000,2990000,3020000,3050000,3080000,3110000,3140000,3170000,3200000,3230000,3260000,3290000,3320000,3340000,3370000,3400000,3420000,3450000,3470000,3490000,3520000,3540000,3560000,3580000,3600000,3620000,3640000,3650000,3670000,3690000,3700000,3720000,3730000,3750000,3760000,3770000,3780000,3800000,3810000,3820000,3830000,3840000,3840000,3850000,3860000,3870000,3870000,3880000,3880000,3890000,3890000,3890000,3900000,3900000,3900000,3900000,3900000,3910000,3900000 -Liberia,314000,314000,314000,314000,314000,314000,314000,314000,314000,314000,314000,314000,314000,314000,315000,315000,316000,317000,318000,319000,320000,322000,323000,325000,327000,329000,331000,333000,336000,338000,341000,344000,346000,349000,352000,355000,358000,361000,364000,367000,370000,373000,376000,379000,382000,385000,389000,392000,395000,398000,402000,405000,408000,412000,415000,419000,423000,426000,430000,433000,437000,441000,445000,448000,452000,456000,460000,464000,468000,472000,476000,480000,484000,488000,492000,496000,500000,505000,509000,513000,518000,522000,526000,531000,535000,540000,544000,549000,554000,558000,563000,568000,573000,578000,583000,588000,593000,598000,603000,608000,613000,618000,623000,629000,634000,639000,645000,650000,656000,661000,667000,673000,678000,684000,690000,696000,702000,708000,714000,719000,725000,731000,737000,743000,750000,756000,762000,768000,775000,781000,787000,794000,800000,807000,814000,820000,827000,834000,841000,848000,855000,862000,869000,876000,883000,891000,898000,905000,913000,920000,930000,943000,958000,974000,991000,1010000,1030000,1050000,1070000,1100000,1120000,1140000,1170000,1200000,1220000,1250000,1280000,1310000,1350000,1380000,1420000,1450000,1490000,1540000,1580000,1630000,1670000,1720000,1770000,1830000,1890000,1960000,2030000,2100000,2160000,2190000,2200000,2190000,2170000,2130000,2100000,2060000,2020000,2000000,2010000,2070000,2190000,2360000,2550000,2730000,2880000,2990000,3060000,3120000,3180000,3260000,3380000,3510000,3660000,3810000,3950000,4070000,4180000,4290000,4390000,4500000,4610000,4730000,4850000,4980000,5100000,5230000,5360000,5500000,5630000,5770000,5910000,6050000,6200000,6350000,6500000,6650000,6800000,6960000,7110000,7270000,7430000,7590000,7760000,7920000,8090000,8250000,8420000,8590000,8760000,8930000,9110000,9280000,9450000,9630000,9800000,9980000,10200000,10300000,10500000,10700000,10900000,11000000,11200000,11400000,11600000,11800000,11900000,12100000,12300000,12500000,12600000,12800000,13000000,13200000,13300000,13500000,13700000,13900000,14000000,14200000,14400000,14500000,14700000,14900000,15000000,15200000,15300000,15500000,15600000,15800000,15900000,16100000,16200000,16400000,16500000,16700000,16800000,16900000,17100000,17200000,17300000,17400000,17600000,17700000,17800000 -Libya,531000,532000,532000,532000,533000,533000,533000,534000,534000,534000,535000,535000,536000,536000,537000,538000,539000,540000,541000,543000,544000,546000,548000,549000,551000,554000,556000,558000,560000,563000,566000,569000,571000,574000,577000,580000,583000,586000,589000,592000,595000,598000,601000,604000,607000,610000,613000,616000,619000,622000,625000,629000,633000,637000,641000,645000,649000,654000,658000,662000,666000,670000,675000,679000,683000,688000,692000,696000,701000,705000,710000,714000,719000,723000,728000,733000,737000,742000,747000,751000,756000,761000,766000,771000,775000,780000,785000,790000,795000,800000,805000,810000,815000,821000,826000,831000,836000,842000,847000,852000,858000,863000,868000,874000,879000,885000,890000,896000,902000,907000,913000,919000,924000,930000,936000,942000,948000,954000,958000,963000,968000,973000,978000,982000,987000,992000,997000,1000000,1010000,1010000,1020000,1020000,1030000,1030000,1040000,1040000,1050000,1050000,1060000,1060000,1070000,1070000,1080000,1090000,1090000,1100000,1100000,1110000,1110000,1120000,1120000,1140000,1160000,1190000,1210000,1250000,1280000,1320000,1360000,1400000,1450000,1500000,1550000,1610000,1670000,1730000,1800000,1880000,1960000,2040000,2130000,2230000,2330000,2430000,2540000,2650000,2750000,2870000,2980000,3100000,3220000,3350000,3480000,3610000,3750000,3870000,3990000,4110000,4220000,4330000,4440000,4540000,4650000,4760000,4860000,4950000,5040000,5120000,5200000,5270000,5360000,5440000,5530000,5620000,5700000,5790000,5880000,5970000,6050000,6120000,6170000,6190000,6200000,6200000,6200000,6230000,6290000,6370000,6470000,6570000,6660000,6750000,6820000,6890000,6960000,7030000,7100000,7160000,7220000,7280000,7340000,7400000,7450000,7500000,7550000,7600000,7650000,7700000,7740000,7780000,7830000,7860000,7900000,7940000,7970000,8000000,8030000,8060000,8080000,8110000,8120000,8140000,8150000,8160000,8170000,8180000,8180000,8180000,8170000,8170000,8160000,8150000,8140000,8130000,8120000,8110000,8090000,8080000,8060000,8050000,8030000,8010000,8000000,7980000,7970000,7950000,7930000,7920000,7900000,7880000,7870000,7850000,7830000,7810000,7800000,7780000,7760000,7740000,7720000,7700000,7670000,7650000,7630000,7610000,7580000,7560000,7530000,7510000,7480000,7460000,7430000 -Liechtenstein,5800,5800,5800,5800,5800,5800,5800,5800,5800,5800,5800,5800,5810,5810,5820,5830,5840,5850,5870,5890,5910,5930,5950,5970,6000,6030,6060,6090,6130,6170,6210,6250,6290,6330,6370,6420,6460,6500,6540,6590,6630,6680,6720,6770,6810,6860,6900,6950,6990,7040,7090,7130,7180,7230,7280,7330,7370,7420,7470,7520,7570,7620,7670,7720,7770,7830,7880,7930,7980,8040,8090,8140,8200,8250,8300,8360,8410,8470,8530,8580,8640,8690,8750,8810,8870,8930,8990,9040,9100,9170,9230,9290,9350,9410,9470,9540,9600,9660,9730,9790,9860,9920,9990,10100,10100,10200,10300,10300,10400,10500,10500,10600,10700,10700,10800,10900,11000,11000,11100,11200,11200,11300,11400,11500,11600,11600,11700,11800,11900,11900,12000,12100,12200,12300,12300,12400,12500,12600,12700,12800,12800,12900,13000,13100,13200,13300,13400,13500,13500,13600,13800,13900,14100,14300,14600,14800,15100,15400,15800,16100,16500,16900,17300,17700,18200,18600,19200,19700,20200,20800,21300,21700,22200,22600,23000,23400,23900,24400,25000,25400,25900,26200,26500,26800,27000,27300,27500,27800,28100,28400,28700,29100,29500,29900,30400,30800,31300,31800,32400,32800,33300,33700,34000,34300,34600,34900,35100,35300,35500,35800,36000,36300,36500,36800,37100,37400,37700,37900,38200,38400,38600,38900,39100,39400,39600,39800,40100,40300,40500,40700,40900,41100,41300,41500,41600,41800,41900,42000,42200,42300,42400,42500,42600,42600,42700,42800,42900,42900,43000,43000,43100,43100,43200,43300,43300,43300,43400,43400,43500,43500,43600,43600,43700,43700,43800,43800,43900,43900,44000,44100,44100,44200,44300,44300,44400,44500,44500,44600,44700,44800,44800,44900,45000,45100,45100,45200,45300,45300,45400,45500,45500,45600,45700,45700,45800,45800,45900,45900,46000,46000,46100 -Lithuania,779000,779000,779000,779000,779000,779000,779000,779000,779000,779000,779000,779000,780000,781000,782000,784000,786000,788000,791000,794000,798000,802000,806000,811000,816000,821000,827000,834000,840000,847000,855000,863000,871000,879000,887000,895000,903000,912000,920000,928000,937000,946000,954000,963000,972000,981000,990000,999000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1250000,1260000,1270000,1280000,1290000,1300000,1320000,1330000,1340000,1350000,1370000,1380000,1390000,1400000,1420000,1430000,1440000,1460000,1470000,1480000,1500000,1510000,1520000,1540000,1550000,1570000,1580000,1600000,1610000,1630000,1640000,1660000,1670000,1690000,1700000,1720000,1730000,1750000,1770000,1780000,1800000,1820000,1830000,1850000,1870000,1880000,1900000,1920000,1940000,1950000,1970000,1990000,2010000,2030000,2050000,2070000,2080000,2100000,2120000,2140000,2160000,2180000,2200000,2220000,2240000,2260000,2290000,2310000,2330000,2350000,2370000,2390000,2410000,2440000,2460000,2480000,2500000,2530000,2550000,2570000,2570000,2580000,2590000,2610000,2630000,2650000,2680000,2700000,2740000,2770000,2810000,2850000,2890000,2930000,2970000,3000000,3040000,3070000,3100000,3140000,3170000,3200000,3240000,3270000,3300000,3330000,3350000,3380000,3410000,3430000,3460000,3480000,3510000,3530000,3560000,3590000,3630000,3660000,3680000,3700000,3700000,3690000,3670000,3650000,3630000,3600000,3580000,3560000,3530000,3500000,3470000,3440000,3410000,3380000,3340000,3300000,3260000,3210000,3170000,3120000,3080000,3040000,3000000,2960000,2930000,2910000,2890000,2880000,2860000,2850000,2840000,2830000,2810000,2800000,2790000,2770000,2760000,2750000,2730000,2720000,2700000,2690000,2670000,2660000,2640000,2620000,2610000,2590000,2570000,2560000,2540000,2530000,2510000,2500000,2480000,2470000,2450000,2440000,2420000,2410000,2390000,2380000,2360000,2350000,2340000,2320000,2310000,2300000,2290000,2270000,2260000,2250000,2240000,2220000,2210000,2200000,2190000,2180000,2160000,2150000,2140000,2130000,2120000,2110000,2100000,2090000,2080000,2070000,2060000,2050000,2040000,2030000,2020000,2020000,2010000,2000000,1990000,1980000,1980000,1970000,1960000,1960000,1950000,1940000,1940000,1930000,1920000,1920000,1910000,1900000 -Luxembourg,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,128000,128000,128000,128000,129000,129000,130000,130000,131000,131000,132000,133000,133000,134000,135000,136000,137000,137000,138000,139000,140000,141000,142000,143000,144000,145000,146000,147000,148000,149000,150000,151000,152000,153000,154000,155000,156000,157000,158000,159000,160000,161000,162000,163000,164000,165000,166000,167000,168000,169000,170000,172000,173000,174000,175000,176000,177000,178000,180000,181000,182000,183000,184000,185000,187000,188000,189000,190000,192000,193000,194000,195000,197000,198000,199000,200000,202000,203000,204000,206000,207000,208000,210000,211000,213000,214000,215000,217000,218000,220000,221000,222000,224000,225000,227000,228000,230000,231000,233000,234000,236000,237000,239000,241000,242000,244000,245000,247000,249000,250000,252000,253000,255000,257000,258000,260000,262000,263000,265000,267000,269000,270000,272000,274000,276000,278000,279000,281000,283000,285000,287000,289000,291000,292000,294000,296000,298000,299000,302000,303000,305000,307000,309000,310000,312000,315000,317000,321000,324000,327000,330000,332000,334000,336000,338000,340000,342000,345000,348000,351000,354000,357000,359000,361000,363000,364000,365000,365000,365000,366000,367000,369000,371000,374000,378000,382000,386000,391000,397000,402000,408000,414000,420000,426000,431000,436000,440000,444000,447000,452000,458000,466000,475000,485000,496000,508000,520000,532000,545000,556000,567000,576000,583000,590000,597000,604000,611000,619000,627000,634000,642000,649000,655000,662000,668000,675000,681000,688000,694000,701000,707000,714000,720000,726000,732000,738000,744000,750000,756000,762000,768000,774000,779000,785000,790000,796000,801000,807000,812000,817000,822000,827000,832000,837000,842000,846000,851000,856000,861000,865000,870000,874000,879000,884000,888000,893000,897000,901000,906000,910000,914000,918000,922000,926000,930000,934000,938000,942000,946000,950000,954000,957000,961000,965000,968000,972000,975000,979000,982000,986000,989000,992000,995000,999000,1000000,1000000 -"Macedonia, FYR",392000,392000,392000,392000,392000,392000,392000,392000,392000,392000,392000,392000,392000,393000,394000,394000,395000,397000,398000,399000,401000,403000,405000,407000,410000,412000,415000,418000,422000,425000,429000,432000,436000,440000,444000,448000,452000,456000,460000,464000,468000,472000,476000,480000,485000,489000,493000,498000,502000,506000,511000,516000,520000,525000,530000,534000,539000,544000,549000,554000,559000,564000,569000,574000,579000,585000,590000,595000,601000,606000,612000,617000,623000,628000,634000,640000,645000,651000,657000,663000,669000,675000,681000,687000,693000,699000,706000,712000,718000,725000,731000,738000,745000,751000,758000,765000,772000,779000,786000,793000,800000,807000,814000,822000,829000,837000,844000,852000,859000,867000,875000,883000,891000,899000,907000,915000,923000,932000,940000,948000,957000,965000,974000,982000,991000,1000000,1010000,1020000,1030000,1040000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1250000,1290000,1320000,1350000,1370000,1390000,1410000,1430000,1450000,1470000,1490000,1510000,1530000,1550000,1570000,1590000,1620000,1640000,1670000,1700000,1720000,1740000,1750000,1770000,1780000,1800000,1830000,1850000,1880000,1900000,1920000,1940000,1960000,1970000,1970000,1980000,1990000,1990000,2000000,2000000,2000000,1990000,1990000,1980000,1980000,1980000,1990000,2000000,2010000,2020000,2030000,2040000,2050000,2050000,2060000,2060000,2060000,2070000,2070000,2070000,2070000,2070000,2070000,2080000,2080000,2080000,2080000,2080000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2080000,2080000,2080000,2070000,2070000,2060000,2060000,2050000,2040000,2040000,2030000,2020000,2020000,2010000,2000000,1990000,1980000,1970000,1970000,1960000,1950000,1940000,1930000,1920000,1910000,1900000,1890000,1890000,1880000,1870000,1860000,1850000,1840000,1830000,1820000,1810000,1800000,1780000,1770000,1760000,1750000,1740000,1730000,1720000,1710000,1700000,1680000,1670000,1660000,1650000,1640000,1630000,1620000,1610000,1600000,1590000,1590000,1580000,1570000,1560000,1550000,1540000,1540000,1530000,1520000,1510000,1510000,1500000,1490000,1490000,1480000,1470000,1470000 -Madagascar,1540000,1550000,1560000,1560000,1570000,1580000,1580000,1590000,1600000,1600000,1610000,1620000,1630000,1630000,1640000,1650000,1660000,1670000,1680000,1690000,1690000,1700000,1710000,1720000,1740000,1750000,1760000,1770000,1780000,1790000,1800000,1820000,1830000,1840000,1850000,1870000,1880000,1890000,1900000,1920000,1930000,1940000,1960000,1970000,1980000,2000000,2010000,2020000,2040000,2050000,2070000,2080000,2090000,2110000,2120000,2140000,2150000,2170000,2180000,2200000,2210000,2230000,2240000,2260000,2270000,2290000,2300000,2320000,2330000,2350000,2370000,2380000,2400000,2410000,2430000,2450000,2460000,2480000,2500000,2510000,2530000,2550000,2560000,2580000,2600000,2620000,2630000,2650000,2670000,2690000,2710000,2720000,2740000,2760000,2780000,2800000,2820000,2840000,2860000,2870000,2890000,2910000,2930000,2950000,2970000,2990000,3010000,3030000,3050000,3080000,3100000,3120000,3140000,3160000,3180000,3200000,3220000,3250000,3270000,3290000,3310000,3340000,3360000,3380000,3400000,3430000,3450000,3470000,3500000,3520000,3550000,3570000,3600000,3620000,3640000,3670000,3690000,3720000,3750000,3770000,3800000,3820000,3850000,3880000,3900000,3930000,3960000,3980000,4010000,4040000,4080000,4170000,4260000,4350000,4440000,4540000,4650000,4750000,4860000,4980000,5100000,5220000,5350000,5490000,5630000,5770000,5920000,6070000,6230000,6400000,6580000,6760000,6950000,7140000,7350000,7560000,7770000,8000000,8230000,8470000,8720000,8970000,9230000,9500000,9780000,10100000,10400000,10600000,11000000,11300000,11600000,11900000,12300000,12700000,13100000,13500000,13900000,14300000,14800000,15300000,15800000,16300000,16800000,17300000,17800000,18300000,18900000,19400000,20000000,20600000,21200000,21700000,22300000,23000000,23600000,24200000,24900000,25600000,26300000,27000000,27700000,28400000,29200000,29900000,30700000,31500000,32300000,33100000,33900000,34800000,35600000,36400000,37300000,38100000,39000000,39900000,40800000,41700000,42600000,43500000,44400000,45300000,46200000,47100000,48100000,49000000,50000000,50900000,51900000,52800000,53800000,54800000,55700000,56700000,57700000,58700000,59700000,60700000,61600000,62600000,63600000,64600000,65600000,66500000,67500000,68500000,69400000,70400000,71400000,72300000,73300000,74200000,75200000,76100000,77000000,77900000,78900000,79800000,80700000,81600000,82500000,83300000,84200000,85100000,85900000,86700000,87600000,88400000,89200000,90000000,90800000,91600000,92300000,93100000,93800000,94500000,95300000,96000000,96700000,97300000,98000000 -Malawi,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,737000,738000,738000,739000,739000,740000,740000,741000,741000,742000,742000,743000,743000,744000,744000,744000,745000,745000,746000,746000,747000,747000,748000,748000,749000,749000,750000,750000,751000,751000,751000,752000,752000,753000,753000,754000,754000,755000,755000,756000,756000,757000,757000,758000,758000,759000,761000,765000,772000,780000,791000,798000,814000,832000,853000,878000,901000,927000,953000,979000,1010000,1030000,1050000,1080000,1100000,1130000,1150000,1170000,1200000,1230000,1250000,1270000,1290000,1310000,1330000,1360000,1410000,1470000,1530000,1600000,1660000,1700000,1730000,1760000,1790000,1820000,1860000,1890000,1920000,1960000,1990000,2030000,2060000,2100000,2170000,2290000,2450000,2620000,2810000,2950000,3010000,3070000,3120000,3190000,3250000,3320000,3390000,3460000,3540000,3620000,3700000,3780000,3870000,3960000,4060000,4160000,4260000,4370000,4480000,4600000,4730000,4860000,5000000,5140000,5290000,5450000,5630000,5810000,5990000,6160000,6330000,6480000,6660000,6900000,7210000,7630000,8120000,8640000,9090000,9440000,9640000,9730000,9760000,9800000,9910000,10100000,10400000,10700000,11000000,11400000,11700000,12000000,12300000,12700000,13000000,13400000,13800000,14300000,14700000,15200000,15600000,16100000,16600000,17100000,17600000,18100000,18600000,19200000,19700000,20300000,20900000,21400000,22000000,22700000,23300000,23900000,24600000,25200000,25900000,26600000,27300000,28000000,28700000,29400000,30100000,30800000,31600000,32300000,33100000,33800000,34600000,35400000,36200000,36900000,37700000,38500000,39300000,40100000,40900000,41700000,42500000,43300000,44100000,44900000,45800000,46600000,47400000,48200000,49000000,49800000,50600000,51400000,52200000,53000000,53800000,54600000,55300000,56100000,56900000,57600000,58400000,59100000,59900000,60600000,61300000,62000000,62700000,63400000,64100000,64800000,65400000,66100000,66700000,67300000,67900000,68500000,69100000,69700000,70300000,70800000,71400000,71900000,72400000,72900000,73400000,73900000,74400000,74800000,75300000,75700000 -Malaysia,287000,287000,287000,287000,287000,287000,287000,287000,287000,287000,287000,287000,288000,289000,290000,291000,293000,295000,298000,300000,304000,307000,311000,315000,319000,324000,330000,335000,341000,348000,355000,362000,370000,377000,385000,393000,401000,409000,418000,427000,435000,444000,453000,463000,472000,482000,492000,502000,513000,523000,534000,545000,557000,568000,580000,592000,604000,617000,629000,642000,656000,670000,685000,701000,717000,735000,754000,773000,794000,816000,839000,864000,889000,911000,939000,969000,1000000,1030000,1060000,1100000,1140000,1170000,1220000,1260000,1300000,1340000,1390000,1430000,1480000,1540000,1590000,1640000,1700000,1760000,1820000,1880000,1950000,2010000,2080000,2140000,2200000,2270000,2340000,2400000,2470000,2530000,2600000,2660000,2730000,2810000,2880000,2950000,3010000,3070000,3130000,3190000,3250000,3320000,3390000,3450000,3530000,3600000,3680000,3760000,3840000,3930000,4020000,4110000,4200000,4290000,4390000,4480000,4580000,4670000,4770000,4860000,4970000,5070000,5180000,5290000,5400000,5500000,5560000,5600000,5640000,5680000,5710000,5790000,5890000,6000000,6110000,6270000,6450000,6640000,6840000,7040000,7250000,7460000,7680000,7910000,8160000,8420000,8690000,8970000,9250000,9530000,9790000,10000000,10300000,10500000,10800000,11100000,11300000,11600000,11900000,12200000,12500000,12800000,13100000,13500000,13800000,14100000,14500000,14800000,15200000,15600000,16000000,16500000,17000000,17500000,18000000,18500000,19000000,19500000,20000000,20500000,21000000,21600000,22100000,22700000,23200000,23700000,24200000,24700000,25200000,25700000,26100000,26600000,27100000,27600000,28100000,28600000,29200000,29700000,30200000,30700000,31200000,31600000,32000000,32500000,32900000,33300000,33700000,34100000,34500000,34900000,35300000,35700000,36100000,36500000,36800000,37200000,37500000,37800000,38100000,38400000,38700000,38900000,39200000,39400000,39700000,39900000,40100000,40300000,40600000,40800000,41000000,41200000,41400000,41500000,41700000,41900000,42100000,42200000,42400000,42600000,42700000,42800000,43000000,43100000,43200000,43300000,43400000,43500000,43500000,43600000,43600000,43700000,43700000,43700000,43700000,43700000,43700000,43700000,43600000,43600000,43500000,43500000,43400000,43400000,43300000,43200000,43200000,43100000,43000000,43000000,42900000,42800000,42700000,42700000,42600000,42500000,42400000,42400000,42300000,42200000,42100000,42000000,42000000,41900000,41800000 -Maldives,42400,42400,42400,42400,42400,42400,42400,42400,42400,42400,42400,42400,42400,42400,42500,42600,42600,42700,42800,42900,43000,43200,43300,43500,43600,43800,44000,44200,44500,44700,44900,45200,45500,45700,46000,46300,46500,46800,47100,47400,47600,47900,48200,48500,48800,49100,49300,49600,49900,50200,50500,50700,51000,51200,51500,51700,52000,52200,52500,52700,53000,53200,53500,53700,54000,54200,54500,54800,55000,55300,55500,55800,56100,56300,56600,56900,57100,57400,57700,58000,58200,58500,58800,59100,59300,59600,59900,60200,60500,60700,61000,61300,61600,61900,62200,62500,62800,63100,63400,63700,64000,64300,64600,64900,65200,65500,65800,66100,66400,66700,66900,67200,67100,66800,66600,66300,66100,65800,65600,65400,65300,65400,65900,66700,67500,68300,69100,70000,70800,71700,72600,73200,73600,73800,74000,74200,74400,74500,74700,74900,75100,75300,75500,75700,75900,76000,76000,75600,75000,74300,73700,74200,75200,76500,78000,79700,81500,83400,85500,87600,89900,92400,94900,97600,100000,103000,105000,108000,110000,113000,116000,119000,123000,128000,132000,137000,141000,145000,149000,153000,158000,164000,170000,176000,183000,190000,196000,203000,210000,217000,223000,230000,236000,242000,248000,254000,259000,264000,269000,274000,280000,287000,294000,302000,310000,319000,327000,336000,345000,355000,365000,375000,386000,397000,408000,418000,428000,436000,444000,452000,459000,466000,472000,479000,484000,490000,495000,499000,504000,508000,512000,516000,519000,523000,526000,530000,533000,537000,540000,544000,547000,550000,554000,557000,560000,563000,566000,569000,572000,574000,576000,579000,580000,582000,583000,585000,585000,586000,586000,587000,587000,586000,586000,585000,584000,583000,582000,581000,579000,577000,576000,574000,572000,569000,567000,564000,562000,559000,556000,553000,550000,547000,544000,541000,538000,535000,532000,529000,526000,523000,520000,517000,515000,512000,510000,507000,505000,503000,501000,499000,496000 -Mali,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1400000,1410000,1410000,1410000,1410000,1420000,1420000,1430000,1430000,1440000,1450000,1450000,1460000,1470000,1480000,1490000,1500000,1510000,1530000,1540000,1560000,1570000,1580000,1600000,1610000,1630000,1640000,1660000,1670000,1690000,1700000,1720000,1740000,1750000,1770000,1790000,1800000,1820000,1840000,1850000,1870000,1890000,1910000,1920000,1940000,1960000,1980000,2000000,2020000,2030000,2050000,2070000,2090000,2110000,2130000,2150000,2170000,2190000,2210000,2240000,2260000,2280000,2300000,2320000,2340000,2360000,2390000,2410000,2430000,2450000,2480000,2500000,2520000,2550000,2570000,2600000,2620000,2640000,2670000,2700000,2720000,2750000,2770000,2800000,2830000,2850000,2880000,2910000,2930000,2960000,2990000,3020000,3050000,3070000,3100000,3130000,3160000,3190000,3220000,3250000,3280000,3310000,3340000,3380000,3410000,3440000,3470000,3500000,3540000,3570000,3600000,3640000,3670000,3700000,3740000,3770000,3810000,3840000,3880000,3910000,3950000,3990000,4020000,4060000,4100000,4140000,4170000,4210000,4250000,4290000,4330000,4370000,4410000,4450000,4490000,4530000,4580000,4620000,4660000,4710000,4760000,4810000,4860000,4920000,4980000,5030000,5090000,5150000,5210000,5260000,5320000,5380000,5440000,5500000,5570000,5640000,5710000,5780000,5860000,5950000,6040000,6150000,6260000,6370000,6480000,6600000,6710000,6830000,6960000,7090000,7230000,7390000,7540000,7690000,7830000,7960000,8070000,8180000,8310000,8470000,8650000,8870000,9110000,9350000,9600000,9860000,10100000,10400000,10700000,11000000,11300000,11600000,12000000,12400000,12800000,13200000,13700000,14100000,14600000,15100000,15500000,16000000,16500000,17000000,17500000,18000000,18500000,19100000,19700000,20300000,20900000,21500000,22200000,22800000,23500000,24200000,24900000,25600000,26300000,27100000,27800000,28600000,29400000,30200000,31000000,31800000,32600000,33500000,34300000,35200000,36000000,36900000,37800000,38700000,39500000,40400000,41300000,42200000,43100000,44000000,44900000,45800000,46700000,47700000,48600000,49500000,50400000,51300000,52200000,53200000,54100000,55000000,55900000,56800000,57700000,58600000,59500000,60400000,61300000,62200000,63000000,63900000,64800000,65600000,66400000,67300000,68100000,68900000,69700000,70500000,71200000,72000000,72700000,73500000,74200000,74900000,75600000,76300000,76900000,77600000,78200000,78800000,79400000,80000000,80600000,81100000,81700000,82200000,82700000,83200000 -Malta,134000,134000,134000,134000,134000,134000,134000,134000,134000,134000,134000,134000,134000,134000,134000,135000,135000,135000,136000,136000,136000,137000,137000,138000,139000,139000,140000,141000,141000,142000,143000,144000,145000,146000,147000,148000,149000,150000,151000,152000,153000,154000,155000,156000,157000,158000,159000,160000,161000,162000,163000,164000,165000,166000,167000,168000,170000,171000,172000,173000,174000,175000,176000,177000,179000,180000,181000,182000,183000,185000,186000,187000,188000,189000,191000,192000,193000,194000,196000,197000,198000,199000,201000,202000,203000,205000,206000,207000,209000,210000,211000,213000,214000,216000,217000,218000,220000,221000,223000,224000,226000,227000,229000,230000,232000,233000,235000,236000,238000,239000,241000,242000,244000,246000,247000,249000,250000,252000,254000,255000,257000,259000,260000,262000,264000,266000,267000,269000,271000,273000,274000,276000,278000,280000,282000,283000,285000,287000,289000,291000,293000,295000,297000,298000,300000,302000,304000,306000,308000,310000,312000,312000,313000,313000,313000,313000,313000,312000,311000,311000,312000,313000,315000,317000,320000,321000,322000,322000,321000,320000,320000,320000,320000,321000,322000,323000,324000,326000,328000,331000,333000,336000,339000,343000,346000,349000,352000,355000,358000,361000,364000,368000,371000,374000,377000,380000,384000,387000,391000,394000,397000,399000,401000,403000,405000,407000,409000,410000,412000,414000,416000,418000,421000,423000,426000,428000,429000,431000,432000,433000,434000,435000,437000,438000,438000,439000,440000,440000,440000,440000,440000,440000,439000,438000,438000,437000,436000,435000,434000,432000,431000,430000,429000,427000,426000,425000,424000,423000,421000,420000,419000,418000,417000,416000,415000,414000,413000,412000,411000,410000,408000,407000,406000,405000,403000,402000,401000,399000,398000,396000,394000,393000,391000,389000,387000,385000,384000,382000,380000,378000,377000,375000,373000,372000,370000,369000,367000,366000,365000,363000,362000,361000,360000,359000,358000,357000,356000,355000,354000,353000,352000 -Marshall Islands,5830,5830,5830,5830,5830,5830,5830,5830,5830,5830,5830,5830,5830,5840,5850,5850,5860,5880,5890,5910,5920,5940,5970,5990,6010,6040,6070,6100,6130,6170,6200,6240,6280,6320,6360,6400,6440,6480,6520,6560,6600,6640,6680,6720,6760,6810,6850,6890,6930,6980,7020,7060,7110,7150,7190,7240,7280,7330,7370,7420,7460,7510,7550,7600,7650,7690,7740,7790,7840,7880,7930,7980,8030,8080,8130,8180,8230,8280,8330,8380,8430,8480,8530,8590,8640,8690,8740,8800,8850,8910,8960,9020,9070,9130,9180,9240,9300,9350,9410,9470,9530,9580,9640,9700,9760,9820,9880,9940,10000,10100,10100,10200,10300,10300,10400,10400,10500,10600,10600,10700,10800,10800,10900,11000,11000,11100,11200,11200,11300,11400,11500,11500,11600,11700,11700,11800,11900,12000,12000,12100,12200,12300,12300,12400,12500,12600,12600,12700,12800,12900,13000,13200,13400,13600,13800,13900,14000,14100,14200,14400,14700,15100,15500,16100,16700,17300,17800,18400,19000,19600,20400,21300,22300,23400,24500,25600,26600,27500,28400,29400,30600,31900,33300,34900,36600,38300,40200,42200,44100,45800,47300,48500,49400,50000,50600,51000,51400,51700,51900,52100,52200,52200,52200,52100,52100,52100,52100,52100,52200,52300,52400,52500,52700,52800,52900,53000,53100,53100,53200,53200,53300,53300,53300,53400,53500,53700,54000,54300,54700,55100,55600,56200,56700,57300,57900,58600,59200,59900,60600,61200,61900,62500,63000,63500,64000,64500,64800,65200,65400,65700,65900,66000,66200,66300,66400,66600,66700,66900,67100,67300,67500,67800,68100,68400,68700,69100,69500,69900,70300,70800,71200,71600,72000,72300,72700,73000,73300,73500,73700,73900,74000,74100,74100,74100,74100,74100,74000,73900,73800,73700,73600,73400,73200,73100,72900,72800,72600,72400,72200,72100,71900 -Mauritania,383000,383000,383000,383000,383000,383000,383000,383000,383000,383000,383000,383000,383000,383000,383000,384000,384000,385000,385000,386000,387000,388000,389000,390000,391000,392000,393000,395000,396000,397000,399000,401000,402000,404000,406000,407000,409000,411000,413000,414000,416000,418000,420000,421000,423000,425000,427000,428000,430000,432000,434000,435000,437000,439000,441000,443000,445000,446000,448000,450000,452000,454000,456000,458000,460000,461000,463000,465000,467000,469000,471000,473000,475000,477000,479000,481000,483000,485000,487000,489000,491000,493000,495000,497000,499000,501000,503000,505000,507000,510000,512000,514000,516000,518000,520000,522000,525000,527000,529000,531000,533000,536000,538000,540000,542000,544000,547000,549000,551000,554000,556000,558000,560000,563000,565000,567000,570000,572000,575000,577000,579000,582000,584000,587000,589000,592000,594000,597000,599000,601000,604000,607000,609000,612000,614000,617000,619000,622000,624000,627000,630000,632000,635000,638000,640000,643000,646000,648000,651000,654000,660000,676000,692000,709000,727000,747000,767000,789000,811000,834000,858000,883000,909000,936000,964000,992000,1020000,1050000,1080000,1120000,1150000,1180000,1220000,1250000,1290000,1330000,1370000,1410000,1450000,1490000,1530000,1580000,1630000,1670000,1720000,1770000,1820000,1870000,1920000,1980000,2030000,2090000,2140000,2200000,2260000,2330000,2400000,2470000,2550000,2630000,2710000,2790000,2870000,2960000,3040000,3130000,3220000,3310000,3410000,3510000,3610000,3720000,3830000,3950000,4060000,4180000,4300000,4420000,4540000,4660000,4780000,4910000,5030000,5160000,5290000,5420000,5550000,5680000,5810000,5940000,6080000,6210000,6350000,6490000,6630000,6770000,6910000,7050000,7190000,7340000,7480000,7630000,7770000,7920000,8070000,8220000,8370000,8520000,8670000,8820000,8970000,9110000,9260000,9410000,9560000,9710000,9860000,10000000,10200000,10300000,10500000,10600000,10800000,10900000,11000000,11200000,11300000,11500000,11600000,11800000,11900000,12000000,12200000,12300000,12500000,12600000,12700000,12900000,13000000,13100000,13300000,13400000,13500000,13700000,13800000,13900000,14000000,14100000,14300000,14400000,14500000,14600000,14700000,14800000,14900000,15000000,15100000,15200000,15300000,15400000,15500000 -Mauritius,62900,64200,65600,67000,68400,69900,71400,72900,74500,76000,78300,80000,81700,83400,85200,87000,88900,90800,92700,94700,96800,98800,101000,103000,105000,108000,110000,112000,115000,117000,120000,122000,125000,127000,130000,133000,136000,139000,142000,145000,148000,151000,155000,159000,164000,169000,174000,180000,187000,194000,201000,210000,218000,226000,234000,242000,249000,257000,264000,272000,279000,286000,293000,299000,305000,311000,316000,321000,325000,329000,332000,335000,337000,339000,341000,343000,345000,347000,349000,352000,354000,356000,358000,360000,362000,364000,365000,366000,367000,368000,369000,370000,370000,370000,371000,371000,371000,371000,371000,371000,371000,371000,371000,371000,370000,370000,370000,370000,370000,369000,369000,369000,370000,370000,371000,372000,373000,373000,374000,375000,375000,376000,378000,379000,381000,383000,384000,386000,388000,390000,391000,393000,395000,397000,399000,401000,403000,405000,407000,409000,411000,413000,415000,417000,422000,431000,443000,455000,467000,480000,493000,506000,521000,537000,554000,571000,588000,605000,623000,641000,660000,679000,698000,717000,736000,753000,770000,785000,799000,813000,826000,840000,852000,865000,878000,892000,907000,922000,938000,953000,966000,978000,989000,999000,1010000,1020000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1100000,1110000,1130000,1140000,1150000,1170000,1180000,1190000,1190000,1200000,1210000,1220000,1220000,1230000,1230000,1240000,1240000,1250000,1250000,1250000,1260000,1260000,1260000,1260000,1270000,1270000,1270000,1270000,1280000,1280000,1280000,1280000,1280000,1280000,1290000,1290000,1290000,1290000,1290000,1290000,1290000,1280000,1280000,1280000,1280000,1280000,1270000,1270000,1270000,1260000,1260000,1250000,1250000,1240000,1240000,1230000,1230000,1220000,1220000,1210000,1200000,1200000,1190000,1190000,1180000,1180000,1170000,1170000,1160000,1150000,1150000,1140000,1140000,1130000,1130000,1120000,1120000,1110000,1100000,1100000,1090000,1090000,1080000,1070000,1070000,1060000,1050000,1050000,1040000,1030000,1030000,1020000,1020000,1010000,1000000,997000,991000,985000,979000,973000,968000,962000,957000,951000,946000,941000,936000,932000 -Mexico,6180000,6200000,6220000,6240000,6260000,6280000,6300000,6320000,6340000,6360000,6380000,6400000,6420000,6450000,6470000,6490000,6520000,6540000,6570000,6590000,6620000,6650000,6680000,6710000,6740000,6770000,6800000,6830000,6860000,6900000,6930000,6970000,7000000,7040000,7070000,7110000,7140000,7180000,7220000,7250000,7290000,7330000,7370000,7410000,7450000,7500000,7550000,7600000,7650000,7700000,7750000,7810000,7870000,7940000,8000000,8070000,8140000,8210000,8280000,8350000,8430000,8510000,8600000,8680000,8770000,8860000,8950000,9040000,9140000,9240000,9340000,9440000,9550000,9640000,9750000,9870000,9980000,10100000,10200000,10300000,10500000,10600000,10700000,10900000,11000000,11100000,11300000,11400000,11600000,11700000,11900000,12000000,12200000,12400000,12600000,12700000,12900000,13100000,13300000,13500000,13700000,13800000,14000000,14200000,14300000,14500000,14600000,14800000,15000000,15100000,15100000,15100000,15100000,15100000,15100000,15100000,15100000,15100000,15100000,15100000,15100000,15100000,15300000,15500000,15800000,16000000,16300000,16500000,16800000,17100000,17400000,17700000,18000000,18300000,18700000,19000000,19300000,19600000,19900000,20300000,20700000,21200000,21800000,22400000,23100000,23900000,24700000,25400000,26200000,27100000,28000000,28800000,29700000,30600000,31600000,32600000,33600000,34700000,35800000,37000000,38200000,39400000,40600000,41900000,43300000,44600000,46000000,47400000,48900000,50400000,52000000,53700000,55500000,57300000,59100000,60900000,62600000,64300000,66000000,67700000,69400000,71000000,72600000,74200000,75800000,77400000,78900000,80500000,82100000,83700000,85400000,87100000,88800000,90600000,92300000,94000000,95700000,97300000,98800000,100000000,102000000,103000000,104000000,106000000,107000000,108000000,110000000,112000000,114000000,116000000,117000000,119000000,121000000,123000000,124000000,126000000,128000000,129000000,131000000,132000000,134000000,135000000,137000000,138000000,140000000,141000000,142000000,144000000,145000000,146000000,148000000,149000000,150000000,151000000,152000000,153000000,154000000,155000000,156000000,157000000,158000000,159000000,159000000,160000000,161000000,161000000,162000000,163000000,163000000,164000000,164000000,165000000,165000000,166000000,166000000,166000000,166000000,167000000,167000000,167000000,167000000,167000000,167000000,167000000,167000000,167000000,167000000,167000000,167000000,167000000,166000000,166000000,166000000,166000000,165000000,165000000,165000000,164000000,164000000,164000000,163000000,163000000,162000000,162000000,161000000,161000000,160000000,160000000,159000000,158000000,158000000,157000000,157000000,156000000,155000000,155000000,154000000,153000000,153000000,152000000,151000000 -"Micronesia, Fed. Sts.",16400,16400,16400,16400,16400,16400,16400,16400,16400,16400,16400,16400,16400,16400,16500,16500,16500,16500,16600,16600,16600,16700,16700,16800,16800,16900,17000,17000,17100,17200,17300,17400,17500,17600,17600,17700,17800,17900,18000,18100,18200,18300,18400,18500,18600,18700,18800,18900,19000,19100,19200,19300,19300,19400,19500,19600,19700,19800,19900,20000,20100,20200,20300,20400,20500,20600,20700,20800,20900,21000,21200,21300,21400,21500,21600,21700,21800,21900,22000,22100,22200,22300,22400,22500,22700,22800,22900,23000,23100,23200,23300,23500,23600,23700,23800,23900,24000,24200,24300,24400,24500,24600,24800,24900,25000,25100,25300,25400,25500,25600,25800,25900,26000,26100,26300,26400,26500,26700,26800,26900,27100,27200,27400,27500,27600,27800,27900,28100,28200,28400,28500,28700,28800,29000,29100,29300,29400,29600,29700,29900,30000,30200,30300,30500,30600,30800,31000,31100,31300,31400,32000,33400,34600,35700,36800,37900,39100,40400,41700,43100,44500,46000,47400,48900,50500,52200,54200,56300,58400,60200,61400,62100,62300,62300,62500,63100,64400,66100,68200,70600,73000,75500,78100,80700,83200,85700,87900,90000,92000,94100,96300,98800,101000,104000,106000,108000,108000,109000,108000,108000,107000,107000,107000,107000,107000,106000,106000,105000,104000,104000,104000,103000,104000,104000,104000,104000,105000,106000,106000,107000,108000,109000,109000,110000,111000,112000,113000,114000,115000,116000,117000,118000,119000,120000,121000,122000,122000,123000,123000,124000,124000,125000,125000,126000,126000,127000,127000,127000,128000,128000,128000,129000,129000,129000,129000,130000,130000,130000,130000,130000,131000,131000,131000,131000,131000,130000,130000,130000,130000,129000,129000,128000,128000,127000,127000,126000,126000,125000,124000,124000,123000,123000,122000,121000,121000,120000,119000,119000,118000,118000,117000,116000,116000,115000,115000,114000,113000,113000,112000,111000,111000 -Moldova,713000,713000,713000,713000,713000,713000,713000,713000,713000,713000,713000,713000,713000,714000,716000,717000,719000,721000,724000,727000,730000,734000,738000,742000,747000,752000,757000,763000,769000,775000,782000,789000,796000,804000,811000,819000,826000,834000,841000,849000,857000,865000,873000,881000,889000,897000,905000,914000,922000,931000,939000,948000,956000,965000,974000,983000,992000,1000000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1260000,1270000,1280000,1290000,1300000,1310000,1330000,1340000,1350000,1360000,1380000,1390000,1400000,1410000,1430000,1440000,1450000,1470000,1480000,1490000,1510000,1520000,1530000,1550000,1560000,1580000,1590000,1600000,1620000,1630000,1650000,1660000,1680000,1700000,1710000,1730000,1740000,1760000,1770000,1790000,1810000,1820000,1840000,1860000,1870000,1890000,1910000,1930000,1940000,1960000,1980000,2000000,2020000,2040000,2050000,2070000,2090000,2110000,2130000,2150000,2170000,2190000,2210000,2230000,2250000,2270000,2290000,2310000,2340000,2380000,2430000,2490000,2560000,2630000,2700000,2780000,2850000,2930000,3000000,3080000,3150000,3210000,3280000,3340000,3390000,3440000,3500000,3540000,3590000,3650000,3700000,3750000,3800000,3840000,3880000,3910000,3940000,3970000,4010000,4050000,4090000,4130000,4170000,4210000,4250000,4290000,4320000,4350000,4360000,4370000,4380000,4370000,4360000,4340000,4310000,4280000,4250000,4220000,4200000,4190000,4180000,4170000,4170000,4160000,4140000,4130000,4110000,4100000,4080000,4080000,4070000,4070000,4070000,4070000,4060000,4050000,4040000,4030000,4020000,4000000,3990000,3980000,3960000,3940000,3930000,3910000,3890000,3870000,3840000,3820000,3800000,3770000,3750000,3720000,3690000,3670000,3640000,3610000,3580000,3560000,3530000,3500000,3470000,3440000,3410000,3380000,3350000,3320000,3290000,3260000,3230000,3200000,3170000,3140000,3110000,3080000,3050000,3020000,2980000,2950000,2920000,2880000,2850000,2820000,2780000,2750000,2720000,2680000,2650000,2620000,2590000,2550000,2520000,2490000,2460000,2430000,2400000,2370000,2350000,2320000,2290000,2270000,2250000,2220000,2200000,2180000,2160000,2140000,2120000,2100000,2080000,2070000,2050000,2030000,2020000,2000000,1980000,1970000,1950000 -Monaco,7790,7790,7790,7790,7790,7790,7790,7790,7790,7790,7790,7790,7800,7810,7820,7830,7850,7870,7890,7910,7940,7970,8010,8040,8080,8120,8170,8220,8270,8330,8380,8440,8510,8570,8630,8690,8760,8820,8880,8950,9010,9080,9150,9210,9280,9350,9420,9480,9550,9620,9690,9760,9840,9910,9980,10100,10100,10200,10300,10400,10400,10500,10600,10700,10700,10800,10900,11000,11100,11100,11200,11300,11400,11500,11600,11600,11700,11800,11900,12000,12100,12200,12200,12300,12400,12500,12600,12700,12800,12900,13000,13100,13200,13300,13400,13500,13600,13700,13800,13900,14000,14100,14200,14300,14400,14500,14600,14700,14800,14900,15000,15100,15200,15400,15500,15600,15700,15800,15900,16000,16200,16300,16400,16500,16600,16800,16900,17000,17100,17300,17400,17500,17600,17800,17900,18000,18100,18300,18400,18500,18700,18800,19000,19100,19200,19400,19500,19700,19800,19900,20000,19400,19100,19100,19300,19700,20200,20800,21400,22000,22500,22800,23000,23200,23200,23300,23300,23300,23300,23300,23500,23700,24100,24400,24800,25200,25500,25800,26100,26400,26700,27200,27600,28100,28500,28800,29000,29200,29200,29300,29400,29600,29900,30100,30400,30700,31000,31300,31500,31800,32100,32400,32600,32900,33300,33800,34400,35100,35900,36500,37100,37500,37800,38000,38100,38300,38500,38700,38900,39100,39300,39500,39700,39900,40100,40300,40500,40700,40900,41100,41400,41600,41800,42000,42300,42500,42700,42900,43100,43300,43500,43700,43900,44100,44300,44500,44700,45000,45200,45400,45700,45900,46200,46400,46700,46900,47200,47500,47700,48000,48300,48600,48800,49100,49400,49700,50000,50300,50600,50900,51200,51500,51800,52100,52500,52800,53100,53400,53800,54100,54400,54700,55100,55400,55700,56000,56300,56600,56900,57200,57500,57800,58000,58300,58600,58800,59100,59300,59600,59800,60100 -Mongolia,619000,619000,619000,619000,619000,619000,619000,619000,619000,619000,619000,619000,619000,619000,619000,620000,620000,620000,621000,621000,621000,622000,623000,623000,624000,624000,625000,626000,627000,628000,629000,629000,630000,631000,632000,633000,634000,635000,636000,637000,638000,639000,640000,641000,642000,643000,644000,645000,646000,647000,648000,649000,650000,651000,652000,653000,654000,655000,656000,656000,657000,658000,659000,660000,661000,662000,663000,664000,666000,667000,668000,669000,670000,671000,672000,673000,674000,676000,677000,678000,679000,681000,682000,683000,684000,686000,687000,688000,689000,691000,692000,693000,694000,696000,697000,698000,699000,701000,702000,703000,705000,706000,707000,708000,710000,711000,712000,714000,715000,716000,718000,719000,720000,721000,723000,724000,726000,727000,728000,730000,731000,733000,734000,736000,737000,739000,740000,742000,743000,745000,746000,747000,749000,750000,752000,753000,755000,756000,758000,759000,761000,762000,764000,765000,767000,769000,770000,772000,773000,775000,780000,794000,808000,823000,839000,855000,872000,890000,910000,931000,956000,982000,1010000,1040000,1070000,1110000,1140000,1170000,1210000,1240000,1280000,1320000,1360000,1400000,1440000,1480000,1520000,1560000,1600000,1650000,1690000,1730000,1780000,1820000,1870000,1920000,1980000,2030000,2090000,2140000,2180000,2220000,2240000,2260000,2280000,2300000,2320000,2340000,2360000,2380000,2400000,2420000,2440000,2470000,2500000,2530000,2560000,2590000,2630000,2670000,2710000,2760000,2810000,2870000,2920000,2980000,3030000,3080000,3120000,3170000,3210000,3250000,3290000,3330000,3370000,3400000,3440000,3470000,3500000,3530000,3560000,3590000,3620000,3640000,3670000,3700000,3720000,3750000,3780000,3800000,3830000,3850000,3880000,3900000,3930000,3950000,3980000,4000000,4030000,4050000,4080000,4100000,4120000,4140000,4160000,4180000,4190000,4210000,4220000,4240000,4250000,4260000,4270000,4280000,4290000,4300000,4310000,4320000,4330000,4340000,4340000,4350000,4360000,4370000,4380000,4390000,4400000,4410000,4420000,4420000,4430000,4440000,4450000,4460000,4470000,4480000,4490000,4500000,4500000,4510000,4520000,4520000,4530000,4530000,4530000,4540000,4540000,4540000,4540000,4540000,4540000 -Montenegro,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,127000,128000,128000,129000,129000,130000,130000,131000,132000,132000,133000,134000,135000,136000,137000,138000,140000,141000,142000,143000,145000,146000,147000,149000,150000,151000,153000,154000,155000,157000,158000,159000,161000,162000,164000,165000,167000,168000,170000,171000,173000,174000,176000,177000,179000,180000,182000,183000,185000,187000,188000,190000,191000,193000,195000,196000,198000,200000,202000,203000,205000,207000,209000,211000,212000,214000,216000,218000,220000,222000,224000,226000,228000,229000,232000,234000,236000,238000,240000,242000,244000,246000,248000,250000,252000,255000,257000,259000,261000,264000,266000,268000,271000,273000,275000,278000,280000,283000,285000,288000,290000,293000,295000,298000,300000,303000,306000,308000,311000,314000,317000,320000,322000,325000,328000,331000,334000,337000,340000,343000,346000,349000,352000,355000,358000,362000,365000,368000,371000,374000,378000,381000,385000,388000,391000,395000,401000,411000,422000,433000,444000,453000,462000,470000,478000,487000,498000,510000,521000,529000,534000,534000,530000,525000,521000,520000,523000,529000,538000,547000,554000,560000,566000,570000,575000,581000,588000,595000,603000,609000,614000,616000,617000,616000,615000,615000,616000,617000,619000,620000,620000,620000,618000,616000,615000,614000,613000,613000,614000,615000,616000,618000,619000,621000,623000,624000,625000,626000,627000,628000,628000,629000,629000,629000,629000,629000,629000,629000,629000,629000,628000,628000,627000,626000,626000,625000,624000,623000,622000,620000,619000,617000,616000,614000,612000,610000,608000,606000,604000,602000,600000,598000,595000,593000,590000,588000,585000,583000,580000,578000,575000,573000,570000,568000,565000,563000,560000,557000,555000,552000,549000,546000,543000,541000,538000,535000,532000,529000,526000,523000,520000,517000,514000,511000,508000,505000,501000,498000,496000,493000,490000,487000,484000,481000,478000,475000,472000,470000,467000,464000,462000,459000,456000,454000,451000,449000 -Morocco,2500000,2510000,2520000,2530000,2540000,2550000,2560000,2570000,2580000,2590000,2600000,2600000,2610000,2630000,2640000,2650000,2660000,2670000,2690000,2700000,2710000,2730000,2740000,2760000,2770000,2790000,2810000,2820000,2840000,2860000,2880000,2900000,2920000,2940000,2960000,2980000,3000000,3020000,3040000,3060000,3080000,3100000,3120000,3150000,3170000,3190000,3210000,3230000,3250000,3280000,3300000,3320000,3340000,3370000,3390000,3410000,3440000,3460000,3480000,3510000,3530000,3560000,3580000,3600000,3630000,3650000,3680000,3700000,3730000,3760000,3780000,3810000,3840000,3860000,3890000,3920000,3940000,3970000,4000000,4030000,4060000,4080000,4110000,4140000,4170000,4200000,4230000,4260000,4290000,4320000,4350000,4380000,4410000,4440000,4470000,4510000,4540000,4570000,4600000,4630000,4670000,4700000,4730000,4770000,4800000,4830000,4870000,4900000,4940000,4970000,5010000,5040000,5080000,5130000,5190000,5270000,5350000,5430000,5520000,5600000,5690000,5770000,5860000,5950000,6040000,6130000,6230000,6320000,6420000,6520000,6620000,6720000,6820000,6930000,7030000,7140000,7250000,7360000,7470000,7580000,7700000,7820000,7940000,8060000,8180000,8310000,8430000,8560000,8690000,8830000,8990000,9240000,9530000,9840000,10200000,10500000,10900000,11200000,11600000,12000000,12300000,12700000,13100000,13500000,13900000,14200000,14600000,15000000,15300000,15700000,16000000,16300000,16700000,17000000,17400000,17800000,18200000,18600000,19100000,19500000,20000000,20500000,21000000,21500000,22000000,22500000,23000000,23500000,24000000,24400000,24900000,25300000,25800000,26200000,26700000,27100000,27500000,27800000,28200000,28500000,28800000,29200000,29500000,29800000,30200000,30500000,30900000,31200000,31600000,32000000,32400000,32900000,33300000,33800000,34300000,34800000,35300000,35700000,36200000,36600000,37100000,37500000,37900000,38300000,38700000,39100000,39500000,39800000,40200000,40500000,40900000,41200000,41500000,41800000,42100000,42400000,42700000,43000000,43200000,43500000,43700000,43900000,44200000,44400000,44600000,44800000,45000000,45200000,45300000,45500000,45700000,45800000,45900000,46100000,46200000,46300000,46400000,46500000,46600000,46600000,46700000,46800000,46800000,46800000,46900000,46900000,46900000,46900000,46900000,46900000,46800000,46800000,46800000,46700000,46700000,46600000,46500000,46500000,46400000,46300000,46200000,46100000,46000000,45900000,45800000,45700000,45600000,45500000,45400000,45300000,45200000,45100000,44900000,44800000,44700000,44500000,44400000,44300000,44100000,44000000,43800000 -Mozambique,1980000,1990000,1990000,2000000,2000000,2010000,2020000,2020000,2030000,2030000,2040000,2040000,2050000,2060000,2070000,2080000,2090000,2100000,2110000,2120000,2130000,2140000,2160000,2170000,2180000,2200000,2220000,2230000,2250000,2270000,2290000,2310000,2330000,2350000,2370000,2390000,2410000,2430000,2450000,2470000,2490000,2520000,2540000,2560000,2580000,2600000,2630000,2650000,2670000,2700000,2720000,2740000,2760000,2790000,2810000,2830000,2850000,2870000,2900000,2920000,2940000,2970000,2990000,3020000,3040000,3060000,3090000,3110000,3140000,3160000,3190000,3210000,3240000,3260000,3290000,3310000,3340000,3370000,3390000,3420000,3450000,3470000,3500000,3530000,3560000,3590000,3610000,3640000,3670000,3700000,3730000,3760000,3790000,3820000,3850000,3880000,3910000,3940000,3970000,4010000,4040000,4070000,4100000,4130000,4170000,4200000,4230000,4270000,4300000,4330000,4370000,4400000,4440000,4470000,4510000,4540000,4580000,4620000,4660000,4700000,4740000,4780000,4820000,4860000,4910000,4950000,4990000,5030000,5080000,5120000,5170000,5210000,5260000,5300000,5350000,5390000,5440000,5490000,5540000,5580000,5630000,5680000,5730000,5780000,5830000,5880000,5930000,5980000,6040000,6090000,6150000,6250000,6350000,6460000,6580000,6700000,6830000,6960000,7100000,7240000,7390000,7540000,7700000,7860000,8030000,8200000,8380000,8570000,8760000,8950000,9160000,9380000,9600000,9830000,10100000,10300000,10600000,10900000,11200000,11600000,11800000,12100000,12400000,12700000,12900000,13000000,13000000,13000000,13000000,13100000,13200000,13600000,14100000,14600000,15200000,15800000,16200000,16700000,17100000,17600000,18100000,18600000,19100000,19700000,20300000,20900000,21500000,22200000,22800000,23500000,24200000,24900000,25700000,26400000,27200000,28000000,28800000,29700000,30500000,31400000,32300000,33200000,34200000,35100000,36100000,37100000,38100000,39200000,40200000,41300000,42400000,43600000,44700000,45900000,47000000,48200000,49500000,50700000,51900000,53200000,54400000,55700000,57000000,58300000,59600000,61000000,62300000,63700000,65000000,66400000,67800000,69200000,70600000,72000000,73400000,74800000,76200000,77700000,79100000,80600000,82000000,83500000,84900000,86400000,87800000,89300000,90700000,92200000,93600000,95100000,96500000,98000000,99400000,101000000,102000000,104000000,105000000,107000000,108000000,109000000,111000000,112000000,113000000,115000000,116000000,117000000,119000000,120000000,121000000,122000000,124000000,125000000,126000000,127000000,128000000,130000000,131000000,132000000,133000000,134000000,135000000 -Myanmar,3510000,3510000,3510000,3510000,3510000,3510000,3510000,3510000,3510000,3510000,3510000,3510000,3510000,3510000,3510000,3520000,3520000,3520000,3530000,3540000,3540000,3550000,3560000,3570000,3570000,3580000,3590000,3610000,3620000,3630000,3640000,3660000,3670000,3690000,3700000,3710000,3730000,3740000,3760000,3770000,3790000,3800000,3810000,3830000,3840000,3860000,3870000,3890000,3900000,3920000,3930000,3950000,3960000,3980000,3990000,4010000,4020000,4040000,4050000,4070000,4080000,4100000,4130000,4160000,4200000,4240000,4290000,4340000,4400000,4470000,4540000,4630000,4710000,4780000,4880000,4990000,5110000,5220000,5370000,5520000,5680000,5830000,6000000,6170000,6330000,6520000,6710000,6890000,7090000,7300000,7520000,7750000,7980000,8220000,8480000,8740000,9010000,9270000,9530000,9780000,10000000,10200000,10500000,10700000,10900000,11100000,11200000,11400000,11500000,11700000,11900000,12000000,12200000,12300000,12400000,12500000,12600000,12700000,12800000,12900000,13000000,13100000,13300000,13400000,13600000,13700000,13800000,14000000,14100000,14300000,14400000,14600000,14800000,15000000,15200000,15400000,15600000,15800000,16100000,16300000,16500000,16700000,16800000,16800000,16800000,16900000,16900000,17000000,17000000,17000000,17200000,17500000,17800000,18100000,18500000,18900000,19300000,19700000,20100000,20500000,21000000,21400000,21900000,22400000,22900000,23400000,23900000,24500000,25100000,25700000,26400000,27000000,27700000,28300000,29000000,29700000,30400000,31100000,31900000,32600000,33400000,34100000,34900000,35700000,36500000,37200000,38000000,38700000,39400000,40000000,40600000,41200000,41700000,42200000,42700000,43200000,43800000,44400000,45000000,45500000,46100000,46600000,47100000,47600000,48100000,48500000,48800000,49200000,49500000,49800000,50200000,50600000,51000000,51400000,51900000,52400000,52900000,53400000,53900000,54300000,54800000,55300000,55700000,56200000,56600000,57000000,57400000,57800000,58200000,58600000,58900000,59300000,59600000,59900000,60200000,60400000,60700000,60900000,61100000,61300000,61500000,61600000,61800000,61900000,62000000,62100000,62200000,62200000,62300000,62300000,62400000,62400000,62400000,62400000,62400000,62300000,62300000,62300000,62200000,62100000,62100000,62000000,61900000,61800000,61700000,61600000,61500000,61400000,61200000,61100000,60900000,60800000,60600000,60400000,60200000,60100000,59900000,59700000,59500000,59300000,59000000,58800000,58600000,58400000,58200000,57900000,57700000,57500000,57300000,57000000,56800000,56600000,56400000,56200000,56000000,55800000,55500000,55300000,55100000,54900000,54700000 -Namibia,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,229000,230000,230000,230000,230000,230000,230000,230000,230000,230000,230000,230000,230000,230000,230000,230000,230000,230000,231000,231000,231000,231000,231000,231000,231000,231000,231000,231000,231000,231000,231000,231000,231000,231000,232000,232000,232000,232000,232000,232000,232000,232000,232000,232000,232000,232000,232000,232000,232000,232000,232000,233000,233000,233000,233000,233000,233000,233000,233000,233000,233000,233000,233000,234000,237000,242000,246000,251000,255000,260000,265000,270000,275000,280000,285000,290000,296000,301000,307000,312000,318000,324000,330000,336000,342000,349000,355000,362000,375000,397000,427000,460000,485000,495000,505000,515000,526000,538000,549000,562000,575000,588000,603000,617000,633000,649000,665000,683000,700000,719000,738000,758000,780000,804000,829000,855000,881000,905000,928000,949000,970000,991000,1010000,1030000,1060000,1080000,1110000,1150000,1190000,1250000,1300000,1360000,1410000,1470000,1510000,1560000,1610000,1660000,1710000,1760000,1810000,1860000,1900000,1930000,1960000,1990000,2010000,2030000,2060000,2080000,2110000,2140000,2170000,2220000,2260000,2320000,2370000,2430000,2480000,2530000,2590000,2640000,2700000,2750000,2810000,2860000,2920000,2970000,3030000,3080000,3140000,3190000,3250000,3300000,3360000,3410000,3470000,3520000,3580000,3630000,3690000,3740000,3800000,3850000,3910000,3960000,4020000,4070000,4130000,4180000,4230000,4290000,4340000,4390000,4440000,4490000,4540000,4590000,4640000,4690000,4740000,4780000,4830000,4870000,4910000,4960000,5000000,5040000,5080000,5120000,5150000,5190000,5230000,5260000,5290000,5330000,5360000,5390000,5420000,5440000,5470000,5500000,5520000,5550000,5570000,5590000,5620000,5640000,5660000,5670000,5690000,5710000,5720000,5740000,5750000,5770000,5780000,5790000,5800000,5810000,5820000,5830000,5830000 -Nauru,1830,1830,1830,1830,1830,1830,1830,1830,1830,1830,1830,1830,1840,1840,1840,1840,1840,1840,1850,1850,1850,1860,1860,1860,1870,1870,1880,1880,1890,1900,1900,1910,1920,1920,1930,1940,1950,1950,1960,1970,1970,1980,1990,2000,2000,2010,2020,2030,2030,2040,2050,2060,2060,2070,2080,2080,2090,2100,2110,2110,2120,2130,2140,2140,2150,2160,2170,2170,2180,2190,2200,2200,2210,2220,2230,2240,2240,2250,2260,2270,2280,2280,2290,2300,2310,2320,2320,2330,2340,2350,2360,2360,2370,2380,2390,2400,2410,2410,2420,2430,2440,2450,2460,2470,2470,2480,2490,2500,2510,2520,2530,2540,2550,2550,2560,2570,2580,2590,2600,2610,2620,2630,2640,2650,2660,2670,2680,2690,2700,2710,2720,2730,2740,2750,2760,2770,2780,2790,2800,2810,2820,2830,2840,2850,2860,2870,2880,2890,2900,2910,2950,3060,3190,3340,3480,3620,3760,3900,4050,4230,4430,4680,4950,5230,5500,5740,5930,6100,6240,6370,6500,6620,6740,6860,6970,7070,7150,7230,7310,7400,7490,7590,7720,7850,8010,8170,8350,8550,8760,8950,9160,9350,9550,9720,9860,9970,10000,10100,10000,10000,10000,10100,10100,10100,10100,10100,10100,10000,9950,9950,10000,10200,10500,10800,11100,11300,11300,11400,11300,11300,11200,11200,11200,11300,11300,11300,11400,11400,11400,11400,11500,11500,11500,11500,11500,11500,11500,11500,11500,11500,11500,11500,11500,11500,11500,11500,11400,11400,11400,11400,11300,11300,11300,11200,11200,11200,11100,11100,11100,11000,11000,10900,10900,10900,10800,10800,10700,10700,10700,10600,10600,10500,10500,10500,10400,10400,10300,10300,10200,10200,10200,10100,10100,10000,10000,9960,9910,9870,9820,9780,9740,9700,9660,9610,9580,9530,9490,9440,9400,9360,9320 -Nepal,3880000,3880000,3880000,3880000,3880000,3880000,3880000,3880000,3880000,3880000,3880000,3880000,3880000,3890000,3890000,3890000,3900000,3900000,3910000,3910000,3920000,3930000,3940000,3950000,3960000,3970000,3980000,3990000,4000000,4020000,4030000,4050000,4060000,4080000,4100000,4110000,4130000,4140000,4160000,4170000,4190000,4210000,4220000,4240000,4250000,4270000,4290000,4300000,4320000,4340000,4350000,4370000,4390000,4410000,4430000,4450000,4470000,4480000,4500000,4520000,4540000,4560000,4580000,4600000,4620000,4640000,4660000,4690000,4710000,4730000,4750000,4780000,4800000,4820000,4850000,4870000,4900000,4920000,4950000,4980000,5000000,5030000,5060000,5080000,5110000,5140000,5160000,5190000,5210000,5240000,5260000,5280000,5290000,5310000,5320000,5340000,5350000,5370000,5380000,5400000,5420000,5440000,5460000,5490000,5510000,5540000,5570000,5600000,5630000,5670000,5700000,5730000,5760000,5800000,5850000,5910000,5980000,6040000,6100000,6170000,6230000,6290000,6360000,6420000,6490000,6560000,6620000,6690000,6760000,6830000,6900000,6970000,7040000,7110000,7190000,7260000,7340000,7410000,7490000,7560000,7640000,7720000,7800000,7880000,7960000,8040000,8120000,8210000,8290000,8380000,8480000,8660000,8820000,8980000,9140000,9290000,9450000,9600000,9750000,9910000,10100000,10200000,10400000,10600000,10700000,10900000,11100000,11300000,11500000,11800000,12000000,12200000,12500000,12800000,13000000,13300000,13600000,13900000,14200000,14600000,14900000,15200000,15600000,16000000,16300000,16700000,17100000,17500000,17900000,18300000,18700000,19200000,19800000,20300000,20900000,21400000,21900000,22400000,22900000,23300000,23700000,24200000,24600000,25000000,25300000,25600000,25900000,26200000,26500000,26700000,27000000,27300000,27600000,28000000,28300000,28700000,29000000,29300000,29600000,29900000,30300000,30600000,30900000,31200000,31500000,31800000,32100000,32400000,32700000,32900000,33200000,33400000,33600000,33800000,34100000,34200000,34400000,34600000,34800000,34900000,35100000,35200000,35300000,35500000,35600000,35700000,35800000,35900000,36000000,36000000,36100000,36200000,36200000,36300000,36300000,36300000,36300000,36400000,36400000,36300000,36300000,36300000,36300000,36200000,36100000,36100000,36000000,35900000,35800000,35700000,35600000,35500000,35300000,35200000,35000000,34900000,34700000,34500000,34400000,34200000,34000000,33800000,33600000,33400000,33100000,32900000,32700000,32400000,32200000,32000000,31700000,31500000,31200000,31000000,30800000,30500000,30300000,30000000,29800000,29600000,29300000 -Netherlands,2250000,2260000,2260000,2270000,2270000,2270000,2280000,2280000,2290000,2290000,2290000,2300000,2310000,2310000,2320000,2340000,2350000,2360000,2380000,2390000,2410000,2420000,2440000,2460000,2480000,2500000,2520000,2540000,2570000,2590000,2620000,2650000,2680000,2700000,2730000,2760000,2780000,2810000,2830000,2860000,2880000,2900000,2930000,2950000,2980000,3000000,3030000,3050000,3080000,3100000,3120000,3140000,3170000,3190000,3210000,3230000,3250000,3270000,3290000,3320000,3340000,3370000,3390000,3420000,3440000,3470000,3500000,3530000,3560000,3590000,3620000,3660000,3700000,3730000,3770000,3810000,3850000,3890000,3940000,3980000,4030000,4080000,4120000,4170000,4220000,4280000,4330000,4380000,4430000,4480000,4530000,4590000,4640000,4700000,4760000,4820000,4880000,4950000,5010000,5090000,5160000,5230000,5310000,5390000,5470000,5550000,5620000,5710000,5780000,5850000,5920000,5990000,6070000,6170000,6280000,6390000,6520000,6640000,6740000,6800000,6860000,6930000,7030000,7150000,7260000,7370000,7470000,7570000,7680000,7780000,7890000,8000000,8120000,8230000,8340000,8430000,8510000,8600000,8690000,8780000,8870000,8960000,9040000,9100000,9180000,9290000,9440000,9620000,9790000,9930000,10000000,10200000,10300000,10400000,10600000,10700000,10900000,11000000,11100000,11300000,11400000,11600000,11800000,11900000,12100000,12200000,12400000,12600000,12700000,12900000,13000000,13100000,13300000,13400000,13600000,13700000,13800000,13900000,14000000,14100000,14100000,14200000,14300000,14400000,14400000,14500000,14600000,14700000,14800000,14900000,15000000,15100000,15200000,15300000,15400000,15500000,15600000,15700000,15700000,15800000,15900000,16000000,16100000,16200000,16300000,16400000,16400000,16500000,16600000,16600000,16700000,16700000,16800000,16800000,16900000,16900000,17000000,17000000,17100000,17100000,17200000,17200000,17300000,17300000,17400000,17400000,17500000,17500000,17500000,17600000,17600000,17600000,17600000,17700000,17700000,17700000,17700000,17700000,17700000,17700000,17700000,17700000,17700000,17700000,17600000,17600000,17600000,17600000,17600000,17500000,17500000,17500000,17500000,17400000,17400000,17400000,17400000,17300000,17300000,17300000,17300000,17200000,17200000,17200000,17200000,17200000,17100000,17100000,17100000,17100000,17100000,17100000,17000000,17000000,17000000,17000000,17000000,17000000,16900000,16900000,16900000,16900000,16900000,16800000,16800000,16800000,16800000,16800000,16700000,16700000,16700000,16700000,16700000,16600000,16600000,16600000,16600000,16500000,16500000,16500000,16500000 -New Zealand,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,100000,99800,99500,99000,98400,97600,96700,95600,94500,93200,91700,90400,89100,88000,86900,85900,85000,84200,83500,83000,82500,82200,82200,82600,83300,84400,85800,87500,89600,92100,94900,98400,102000,107000,112000,117000,124000,131000,139000,147000,157000,167000,178000,190000,202000,217000,232000,248000,265000,282000,301000,320000,340000,359000,380000,401000,422000,443000,464000,485000,505000,529000,548000,565000,584000,600000,615000,630000,644000,658000,670000,682000,695000,707000,720000,734000,749000,764000,781000,798000,816000,835000,852000,873000,896000,920000,944000,970000,996000,1020000,1040000,1070000,1090000,1120000,1140000,1150000,1150000,1150000,1170000,1200000,1240000,1270000,1300000,1330000,1350000,1380000,1410000,1430000,1450000,1470000,1490000,1510000,1530000,1540000,1550000,1560000,1570000,1590000,1610000,1620000,1630000,1630000,1630000,1640000,1660000,1700000,1750000,1800000,1830000,1870000,1910000,1950000,1990000,2040000,2090000,2140000,2180000,2230000,2280000,2320000,2370000,2420000,2480000,2530000,2580000,2630000,2670000,2700000,2740000,2770000,2820000,2870000,2930000,2990000,3040000,3080000,3110000,3120000,3130000,3140000,3150000,3160000,3190000,3220000,3240000,3270000,3290000,3310000,3330000,3360000,3400000,3450000,3500000,3560000,3620000,3670000,3720000,3750000,3780000,3820000,3860000,3910000,3960000,4020000,4080000,4140000,4190000,4230000,4280000,4320000,4370000,4420000,4470000,4520000,4570000,4610000,4660000,4710000,4750000,4790000,4830000,4880000,4920000,4960000,4990000,5030000,5070000,5110000,5140000,5180000,5210000,5250000,5280000,5310000,5340000,5370000,5400000,5430000,5450000,5480000,5500000,5530000,5550000,5570000,5590000,5610000,5640000,5660000,5670000,5690000,5710000,5730000,5750000,5760000,5780000,5790000,5810000,5820000,5840000,5850000,5860000,5880000,5890000,5900000,5920000,5930000,5940000,5950000,5970000,5980000,5990000,6000000,6010000,6030000,6040000,6050000,6060000,6070000,6070000,6080000,6090000,6090000,6100000,6100000,6110000,6110000,6110000,6120000,6120000,6120000,6120000,6120000,6130000,6130000,6130000,6130000,6130000,6130000,6130000,6130000,6130000 -Nicaragua,219000,219000,219000,219000,219000,219000,219000,219000,219000,219000,219000,220000,220000,220000,221000,222000,223000,224000,226000,227000,229000,231000,233000,236000,238000,241000,244000,247000,251000,255000,258000,263000,267000,271000,275000,280000,284000,289000,294000,298000,303000,308000,312000,317000,321000,326000,330000,334000,338000,342000,345000,349000,353000,356000,359000,362000,365000,368000,371000,373000,376000,378000,381000,383000,386000,389000,392000,395000,399000,402000,406000,409000,413000,417000,421000,425000,430000,434000,439000,444000,450000,455000,460000,466000,471000,477000,482000,488000,494000,500000,506000,512000,518000,524000,530000,536000,543000,550000,557000,564000,571000,579000,587000,595000,604000,612000,622000,631000,640000,649000,659000,669000,679000,687000,697000,707000,720000,731000,742000,753000,760000,767000,771000,779000,783000,791000,795000,799000,803000,807000,815000,819000,827000,835000,851000,871000,895000,915000,938000,962000,986000,1010000,1030000,1050000,1070000,1100000,1130000,1170000,1200000,1240000,1290000,1330000,1370000,1410000,1460000,1510000,1560000,1610000,1660000,1720000,1770000,1830000,1890000,1940000,2000000,2060000,2130000,2190000,2260000,2330000,2400000,2470000,2550000,2630000,2710000,2800000,2880000,2970000,3070000,3160000,3250000,3340000,3440000,3530000,3620000,3710000,3800000,3880000,3970000,4060000,4140000,4240000,4330000,4430000,4520000,4610000,4700000,4790000,4870000,4950000,5030000,5100000,5170000,5240000,5310000,5380000,5450000,5520000,5590000,5670000,5740000,5810000,5880000,5950000,6010000,6080000,6150000,6220000,6280000,6350000,6420000,6480000,6540000,6610000,6670000,6730000,6800000,6860000,6920000,6990000,7050000,7100000,7160000,7210000,7270000,7320000,7370000,7420000,7460000,7510000,7550000,7590000,7630000,7670000,7700000,7730000,7770000,7800000,7820000,7850000,7880000,7900000,7920000,7940000,7960000,7970000,7990000,8000000,8010000,8020000,8020000,8030000,8030000,8030000,8030000,8020000,8020000,8010000,8000000,7990000,7980000,7960000,7950000,7930000,7910000,7890000,7860000,7840000,7810000,7780000,7760000,7730000,7700000,7670000,7630000,7600000,7570000,7530000,7500000,7460000,7430000,7390000,7350000,7310000,7280000,7240000,7200000,7160000,7130000,7090000,7050000 -Niger,1240000,1240000,1240000,1240000,1240000,1240000,1240000,1240000,1240000,1240000,1240000,1250000,1250000,1250000,1250000,1250000,1250000,1250000,1260000,1260000,1260000,1270000,1270000,1270000,1280000,1280000,1290000,1290000,1300000,1310000,1310000,1320000,1330000,1330000,1340000,1350000,1350000,1360000,1370000,1380000,1380000,1390000,1400000,1410000,1410000,1420000,1430000,1430000,1440000,1450000,1460000,1470000,1470000,1480000,1490000,1500000,1510000,1520000,1530000,1530000,1540000,1550000,1560000,1570000,1580000,1590000,1600000,1610000,1620000,1620000,1630000,1640000,1650000,1660000,1670000,1680000,1690000,1700000,1710000,1720000,1730000,1740000,1750000,1760000,1770000,1780000,1790000,1800000,1810000,1820000,1830000,1840000,1850000,1860000,1870000,1880000,1890000,1910000,1920000,1930000,1940000,1950000,1960000,1970000,1980000,1990000,2010000,2020000,2030000,2040000,2050000,2060000,2080000,2090000,2100000,2110000,2120000,2140000,2150000,2160000,2170000,2180000,2190000,2200000,2220000,2230000,2240000,2250000,2260000,2270000,2290000,2300000,2310000,2320000,2330000,2350000,2360000,2370000,2380000,2400000,2410000,2420000,2430000,2450000,2460000,2470000,2490000,2500000,2510000,2530000,2560000,2640000,2720000,2800000,2880000,2960000,3040000,3120000,3210000,3300000,3390000,3490000,3590000,3690000,3800000,3910000,4030000,4140000,4260000,4390000,4510000,4640000,4770000,4900000,5040000,5180000,5330000,5490000,5650000,5820000,5990000,6160000,6340000,6530000,6720000,6920000,7120000,7320000,7540000,7770000,8010000,8270000,8550000,8840000,9150000,9480000,9820000,10200000,10600000,10900000,11400000,11800000,12200000,12700000,13100000,13600000,14100000,14700000,15200000,15800000,16400000,17100000,17700000,18400000,19100000,19900000,20700000,21500000,22300000,23200000,24100000,25000000,26000000,27000000,28000000,29100000,30200000,31300000,32500000,33700000,35000000,36300000,37600000,39000000,40400000,41900000,43400000,44900000,46500000,48100000,49800000,51500000,53200000,55000000,56800000,58600000,60500000,62400000,64400000,66400000,68500000,70500000,72600000,74800000,77000000,79200000,81400000,83700000,86000000,88300000,90700000,93000000,95400000,97900000,100000000,103000000,105000000,108000000,110000000,113000000,115000000,118000000,121000000,123000000,126000000,128000000,131000000,134000000,136000000,139000000,141000000,144000000,147000000,149000000,152000000,155000000,157000000,160000000,162000000,165000000,167000000,170000000,173000000,175000000,178000000,180000000,183000000,185000000,187000000,190000000,192000000 -Nigeria,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12100000,12200000,12200000,12200000,12200000,12200000,12300000,12300000,12300000,12400000,12400000,12400000,12500000,12500000,12600000,12600000,12700000,12700000,12800000,12900000,12900000,13000000,13000000,13100000,13100000,13200000,13200000,13300000,13400000,13400000,13500000,13500000,13600000,13600000,13700000,13800000,13800000,13900000,13900000,14000000,14100000,14100000,14200000,14200000,14300000,14400000,14400000,14500000,14600000,14600000,14700000,14800000,14800000,14900000,14900000,15000000,15100000,15100000,15200000,15300000,15300000,15400000,15500000,15500000,15600000,15700000,15800000,15800000,15900000,16000000,16000000,16100000,16200000,16200000,16300000,16400000,16500000,16500000,16600000,16700000,16700000,16800000,16900000,17000000,17000000,17100000,17200000,17300000,17300000,17400000,17500000,17600000,17600000,17700000,17800000,17900000,18000000,18000000,18100000,18200000,18300000,18300000,18400000,18500000,18600000,18700000,18700000,18800000,18800000,18900000,19000000,19000000,19100000,19100000,19200000,19200000,19500000,20000000,20700000,21500000,22300000,23100000,23900000,24800000,25700000,26600000,27600000,28600000,29600000,30700000,31900000,33000000,34200000,35500000,36800000,37900000,38400000,39000000,39700000,40400000,41100000,41800000,42600000,43400000,44300000,45100000,46100000,47000000,48000000,49100000,50100000,51200000,52300000,53500000,54700000,56000000,57300000,58700000,60100000,61700000,63400000,65200000,67200000,69300000,71400000,73500000,75500000,77500000,79500000,81500000,83600000,85800000,88100000,90500000,92800000,95300000,97700000,100000000,103000000,105000000,108000000,111000000,114000000,116000000,119000000,122000000,125000000,129000000,132000000,135000000,139000000,143000000,146000000,150000000,154000000,159000000,163000000,167000000,172000000,176000000,181000000,186000000,191000000,196000000,201000000,206000000,211000000,217000000,222000000,228000000,234000000,240000000,245000000,252000000,258000000,264000000,270000000,277000000,284000000,290000000,297000000,304000000,311000000,319000000,326000000,333000000,341000000,348000000,356000000,363000000,371000000,379000000,387000000,395000000,403000000,411000000,419000000,427000000,435000000,443000000,451000000,460000000,468000000,476000000,484000000,493000000,501000000,509000000,518000000,526000000,534000000,543000000,551000000,559000000,568000000,576000000,584000000,593000000,601000000,609000000,617000000,625000000,633000000,641000000,649000000,657000000,664000000,672000000,680000000,687000000,695000000,702000000,709000000,716000000,723000000,730000000,737000000,744000000,751000000,757000000,764000000,770000000,776000000,782000000,788000000,794000000 -North Korea,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4350000,4360000,4360000,4360000,4360000,4360000,4370000,4370000,4370000,4370000,4380000,4380000,4380000,4390000,4390000,4390000,4400000,4400000,4400000,4410000,4410000,4410000,4420000,4420000,4420000,4430000,4430000,4430000,4440000,4440000,4440000,4450000,4460000,4470000,4480000,4490000,4500000,4510000,4520000,4530000,4540000,4550000,4560000,4570000,4580000,4600000,4610000,4620000,4630000,4640000,4660000,4670000,4680000,4690000,4710000,4720000,4740000,4750000,4770000,4780000,4800000,4810000,4830000,4850000,4860000,4880000,4890000,4910000,4930000,4940000,4960000,4980000,4990000,5010000,5020000,5040000,5060000,5070000,5090000,5110000,5120000,5140000,5160000,5170000,5190000,5210000,5230000,5240000,5260000,5280000,5290000,5310000,5330000,5380000,5450000,5560000,5670000,5790000,5890000,6010000,6120000,6230000,6350000,6470000,6590000,6710000,6840000,6970000,7100000,7230000,7370000,7500000,7650000,7790000,7930000,8080000,8240000,8390000,8550000,8710000,8870000,9040000,9210000,9380000,9550000,9730000,9920000,10100000,10300000,10500000,10500000,10200000,10000000,9960000,9970000,10100000,10300000,10500000,10800000,11100000,11400000,11700000,11900000,12100000,12300000,12500000,12900000,13200000,13600000,14000000,14400000,14800000,15200000,15600000,16000000,16300000,16600000,16800000,17000000,17200000,17500000,17700000,18000000,18300000,18600000,18900000,19200000,19400000,19700000,20000000,20300000,20600000,20900000,21300000,21600000,21900000,22100000,22300000,22500000,22700000,22900000,23100000,23300000,23500000,23700000,23900000,24100000,24200000,24300000,24500000,24600000,24700000,24900000,25000000,25100000,25200000,25400000,25500000,25600000,25700000,25800000,26000000,26100000,26200000,26300000,26400000,26400000,26500000,26600000,26700000,26700000,26800000,26900000,26900000,26900000,27000000,27000000,27000000,27000000,27000000,27000000,27000000,27000000,27000000,27000000,27000000,26900000,26900000,26900000,26800000,26800000,26800000,26700000,26700000,26600000,26600000,26500000,26500000,26400000,26400000,26300000,26300000,26200000,26100000,26100000,26000000,26000000,25900000,25800000,25800000,25700000,25600000,25600000,25500000,25400000,25400000,25300000,25200000,25200000,25100000,25000000,25000000,24900000,24800000,24700000,24700000,24600000,24500000,24500000,24400000,24300000,24200000,24200000,24100000,24000000,24000000,23900000,23800000,23700000,23700000,23600000 -Norway,869000,873000,878000,883000,888000,893000,898000,903000,908000,913000,918000,924000,930000,936000,943000,951000,959000,967000,976000,986000,996000,1010000,1020000,1030000,1040000,1050000,1060000,1080000,1090000,1100000,1120000,1130000,1140000,1160000,1170000,1180000,1200000,1210000,1230000,1240000,1250000,1270000,1280000,1290000,1310000,1320000,1340000,1350000,1370000,1380000,1400000,1420000,1440000,1450000,1470000,1490000,1510000,1530000,1550000,1560000,1580000,1600000,1610000,1630000,1650000,1660000,1680000,1700000,1710000,1730000,1750000,1760000,1780000,1790000,1800000,1820000,1830000,1840000,1860000,1870000,1880000,1900000,1910000,1930000,1940000,1950000,1960000,1970000,1980000,1990000,2000000,2020000,2040000,2050000,2080000,2100000,2120000,2140000,2170000,2190000,2210000,2240000,2260000,2280000,2290000,2310000,2320000,2330000,2350000,2360000,2380000,2400000,2420000,2450000,2470000,2500000,2520000,2550000,2580000,2600000,2630000,2670000,2690000,2710000,2730000,2750000,2760000,2770000,2780000,2790000,2810000,2820000,2840000,2860000,2870000,2890000,2900000,2920000,2940000,2950000,2970000,2990000,3010000,3030000,3060000,3090000,3130000,3160000,3200000,3230000,3270000,3300000,3330000,3370000,3400000,3430000,3460000,3490000,3520000,3550000,3580000,3610000,3640000,3670000,3700000,3720000,3750000,3780000,3820000,3850000,3880000,3910000,3930000,3960000,3990000,4010000,4030000,4040000,4060000,4070000,4090000,4100000,4110000,4120000,4140000,4150000,4170000,4190000,4210000,4230000,4250000,4270000,4290000,4320000,4340000,4370000,4390000,4420000,4450000,4470000,4500000,4520000,4550000,4570000,4600000,4630000,4670000,4720000,4770000,4830000,4890000,4950000,5010000,5080000,5140000,5200000,5250000,5310000,5350000,5400000,5450000,5500000,5550000,5600000,5660000,5710000,5760000,5810000,5860000,5910000,5960000,6010000,6060000,6100000,6150000,6190000,6240000,6280000,6320000,6370000,6410000,6450000,6490000,6530000,6570000,6610000,6650000,6690000,6720000,6760000,6800000,6840000,6880000,6910000,6950000,6980000,7020000,7050000,7090000,7120000,7150000,7190000,7220000,7250000,7280000,7310000,7340000,7370000,7400000,7430000,7460000,7490000,7520000,7550000,7570000,7600000,7630000,7660000,7680000,7710000,7730000,7750000,7780000,7800000,7820000,7840000,7860000,7880000,7900000,7920000,7940000,7960000,7980000,8000000,8020000,8030000,8050000,8070000,8080000,8100000,8110000 -Oman,318000,318000,318000,318000,318000,318000,318000,318000,318000,318000,318000,318000,318000,318000,318000,319000,319000,319000,320000,320000,320000,321000,321000,322000,323000,323000,324000,325000,326000,326000,327000,328000,329000,330000,331000,332000,333000,334000,335000,336000,337000,338000,339000,340000,341000,342000,343000,344000,345000,346000,347000,348000,349000,350000,350000,351000,352000,353000,354000,355000,356000,357000,358000,360000,361000,362000,363000,364000,365000,367000,368000,369000,371000,372000,373000,375000,376000,378000,380000,381000,383000,384000,386000,388000,390000,391000,393000,395000,396000,398000,400000,402000,403000,405000,407000,409000,410000,412000,414000,416000,418000,419000,421000,423000,425000,427000,429000,430000,432000,434000,436000,438000,440000,441000,442000,442000,443000,443000,443000,444000,444000,444000,445000,445000,445000,446000,446000,446000,447000,447000,447000,448000,448000,448000,449000,449000,449000,450000,450000,450000,451000,451000,451000,452000,452000,452000,453000,453000,453000,454000,456000,462000,469000,477000,486000,496000,506000,516000,528000,539000,552000,565000,579000,594000,609000,625000,642000,660000,680000,701000,724000,749000,776000,807000,842000,882000,927000,978000,1030000,1090000,1150000,1220000,1290000,1360000,1430000,1500000,1560000,1620000,1680000,1740000,1810000,1890000,1980000,2070000,2150000,2200000,2240000,2250000,2250000,2250000,2270000,2290000,2330000,2390000,2440000,2510000,2580000,2660000,2760000,2880000,3040000,3240000,3460000,3710000,3960000,4200000,4420000,4640000,4830000,5000000,5150000,5270000,5360000,5440000,5510000,5570000,5640000,5710000,5780000,5840000,5900000,5950000,6000000,6040000,6090000,6130000,6170000,6220000,6260000,6300000,6340000,6390000,6430000,6470000,6510000,6550000,6590000,6630000,6680000,6720000,6760000,6790000,6830000,6860000,6890000,6920000,6950000,6980000,7000000,7020000,7040000,7050000,7070000,7080000,7090000,7100000,7100000,7110000,7110000,7110000,7110000,7100000,7100000,7100000,7090000,7080000,7070000,7060000,7050000,7030000,7020000,7000000,6990000,6970000,6950000,6930000,6910000,6890000,6870000,6840000,6820000,6800000,6770000,6750000,6720000,6700000,6670000,6650000,6620000,6600000,6570000 -Pakistan,13100000,13100000,13200000,13200000,13200000,13300000,13300000,13300000,13300000,13400000,13400000,13400000,13400000,13500000,13500000,13500000,13600000,13600000,13600000,13700000,13700000,13700000,13800000,13800000,13900000,13900000,13900000,14000000,14000000,14100000,14100000,14200000,14200000,14200000,14300000,14300000,14400000,14400000,14500000,14500000,14600000,14600000,14700000,14700000,14800000,14800000,14900000,14900000,15000000,15000000,15100000,15100000,15200000,15200000,15300000,15300000,15400000,15400000,15500000,15500000,15600000,15600000,15700000,15800000,15800000,15900000,15900000,16000000,16100000,16100000,16200000,16300000,16300000,16400000,16500000,16600000,16600000,16700000,16800000,16900000,17000000,17100000,17200000,17200000,17300000,17400000,17500000,17600000,17700000,17800000,17900000,18000000,18100000,18200000,18200000,18300000,18400000,18500000,18600000,18700000,18800000,18900000,19000000,19100000,19200000,19300000,19400000,19500000,19600000,19700000,19800000,19900000,20000000,20100000,20300000,20500000,20600000,20800000,21000000,21100000,21300000,21500000,21700000,21800000,22000000,22200000,22400000,22600000,22800000,23000000,23400000,23800000,24200000,24600000,25100000,25500000,26000000,26400000,26900000,27400000,27800000,28500000,29200000,30100000,31000000,31900000,32900000,34100000,35300000,36500000,37500000,38000000,38500000,39100000,39700000,40400000,41200000,42000000,42900000,43900000,44900000,46000000,47100000,48300000,49600000,50800000,52200000,53600000,55000000,56500000,58100000,59700000,61300000,63100000,64900000,66800000,68800000,70900000,73200000,75600000,78100000,80700000,83400000,86300000,89200000,92200000,95300000,98400000,101000000,105000000,108000000,111000000,114000000,117000000,120000000,123000000,126000000,129000000,132000000,135000000,139000000,142000000,145000000,148000000,151000000,154000000,157000000,160000000,164000000,167000000,171000000,174000000,178000000,182000000,186000000,189000000,193000000,197000000,201000000,205000000,208000000,212000000,216000000,220000000,223000000,227000000,230000000,234000000,237000000,241000000,244000000,248000000,251000000,254000000,258000000,261000000,264000000,268000000,271000000,274000000,277000000,281000000,284000000,287000000,290000000,293000000,296000000,299000000,302000000,304000000,307000000,309000000,312000000,314000000,317000000,319000000,321000000,323000000,325000000,327000000,329000000,331000000,332000000,334000000,336000000,337000000,338000000,340000000,341000000,342000000,344000000,345000000,346000000,347000000,348000000,348000000,349000000,350000000,351000000,351000000,352000000,352000000,353000000,353000000,353000000,354000000,354000000,354000000,354000000,354000000,354000000,354000000,354000000,354000000,354000000,354000000,353000000,353000000,353000000,352000000,352000000 -Palau,3880,3880,3880,3880,3880,3880,3880,3880,3880,3880,3880,3880,3880,3880,3880,3890,3900,3900,3910,3920,3930,3940,3950,3960,3980,3990,4010,4020,4040,4060,4080,4100,4120,4140,4160,4180,4200,4220,4240,4270,4290,4310,4330,4350,4370,4400,4420,4440,4460,4480,4510,4530,4550,4580,4600,4620,4640,4670,4690,4710,4740,4760,4790,4810,4830,4860,4880,4910,4930,4960,4980,5010,5030,5060,5080,5110,5130,5160,5180,5210,5240,5260,5290,5320,5340,5370,5400,5420,5450,5480,5500,5530,5560,5590,5620,5640,5670,5700,5730,5760,5790,5820,5850,5870,5900,5930,5960,5990,6020,6050,6080,6110,6140,6180,6210,6240,6270,6300,6330,6360,6400,6430,6460,6490,6530,6560,6590,6620,6660,6690,6730,6760,6790,6830,6860,6900,6930,6970,7000,7040,7070,7110,7140,7180,7210,7250,7290,7320,7360,7400,7440,7500,7610,7790,8010,8260,8520,8800,9090,9360,9640,9900,10200,10400,10600,10800,10900,11100,11200,11300,11500,11700,11900,12000,12200,12300,12300,12200,12200,12100,12200,12400,12700,13000,13400,13700,14000,14200,14500,14800,15100,15500,15900,16300,16800,17300,17700,18100,18500,18900,19200,19400,19600,19700,19800,19900,20000,20100,20200,20300,20500,20600,20800,20900,21100,21300,21500,21700,22000,22200,22400,22700,22900,23200,23400,23600,23900,24100,24300,24500,24800,25000,25200,25400,25500,25700,25900,26000,26200,26300,26500,26600,26700,26800,26900,27100,27200,27300,27400,27500,27600,27700,27800,27900,28000,28100,28200,28300,28300,28400,28500,28600,28600,28700,28800,28800,28900,28900,28900,29000,29000,29000,29000,29000,29000,29000,29000,29000,29000,29000,29000,29000,29000,29000,29000,29000,29000,28900,28900,28900,28900,28900,28900,28800,28800,28800,28700,28700,28700,28700,28600 -Palestine,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,166000,167000,167000,167000,168000,168000,169000,170000,170000,171000,172000,173000,174000,176000,177000,179000,180000,182000,183000,185000,187000,189000,191000,193000,195000,197000,199000,201000,203000,206000,208000,210000,212000,215000,217000,220000,222000,225000,227000,230000,233000,236000,238000,241000,244000,247000,250000,254000,257000,260000,263000,267000,270000,274000,277000,281000,285000,289000,293000,297000,301000,305000,309000,314000,318000,322000,328000,334000,339000,346000,351000,352000,350000,345000,339000,338000,341000,348000,356000,365000,374000,385000,396000,408000,420000,432000,444000,457000,472000,492000,519000,554000,588000,617000,636000,658000,683000,709000,731000,752000,776000,804000,834000,861000,884000,903000,922000,932000,924000,932000,949000,969000,988000,1000000,1020000,1030000,1050000,1070000,1100000,1130000,1160000,1180000,1190000,1180000,1170000,1140000,1120000,1120000,1140000,1180000,1230000,1280000,1320000,1360000,1400000,1430000,1470000,1510000,1550000,1600000,1650000,1700000,1760000,1820000,1880000,1950000,2020000,2100000,2190000,2290000,2390000,2500000,2620000,2740000,2870000,3000000,3120000,3220000,3310000,3380000,3440000,3500000,3580000,3660000,3750000,3850000,3960000,4070000,4180000,4290000,4410000,4540000,4660000,4790000,4920000,5050000,5190000,5320000,5460000,5600000,5740000,5880000,6020000,6160000,6310000,6450000,6590000,6740000,6880000,7030000,7170000,7320000,7470000,7610000,7760000,7910000,8060000,8210000,8360000,8510000,8660000,8810000,8960000,9110000,9260000,9410000,9560000,9700000,9850000,10000000,10100000,10300000,10400000,10600000,10700000,10900000,11000000,11100000,11300000,11400000,11500000,11700000,11800000,11900000,12100000,12200000,12300000,12400000,12600000,12700000,12800000,12900000,13000000,13100000,13200000,13300000,13400000,13600000,13600000,13700000,13800000,13900000,14000000,14100000,14200000,14300000,14400000,14400000,14500000,14600000,14700000,14700000,14800000,14900000,14900000,15000000,15100000,15100000 -Panama,78800,78800,78800,78800,78800,78800,78800,78800,78800,78800,78800,78900,79000,79300,79500,79900,80300,80800,81400,82100,82800,83600,84500,85500,86600,87700,89000,90300,91700,93300,94900,96600,98300,100000,102000,104000,106000,108000,110000,111000,114000,116000,118000,120000,122000,124000,126000,128000,130000,132000,134000,136000,138000,140000,142000,144000,146000,148000,151000,153000,155000,157000,159000,161000,163000,165000,167000,170000,172000,174000,177000,179000,181000,184000,186000,189000,191000,194000,196000,199000,202000,204000,207000,210000,213000,215000,218000,221000,224000,227000,230000,233000,236000,240000,243000,246000,250000,254000,258000,262000,266000,271000,276000,281000,287000,293000,300000,306000,312000,319000,326000,333000,341000,351000,365000,383000,402000,422000,443000,464000,480000,489000,491000,493000,495000,497000,499000,502000,504000,508000,516000,528000,543000,559000,576000,592000,608000,624000,640000,664000,691000,730000,763000,784000,790000,788000,794000,805000,821000,840000,860000,881000,904000,929000,954000,981000,1010000,1040000,1070000,1100000,1130000,1170000,1200000,1240000,1280000,1310000,1350000,1390000,1430000,1480000,1520000,1560000,1610000,1650000,1700000,1750000,1790000,1840000,1880000,1930000,1980000,2030000,2070000,2120000,2170000,2220000,2270000,2320000,2370000,2420000,2470000,2520000,2580000,2630000,2680000,2740000,2800000,2850000,2910000,2970000,3030000,3090000,3150000,3210000,3270000,3330000,3390000,3450000,3520000,3580000,3640000,3710000,3770000,3840000,3900000,3970000,4030000,4100000,4160000,4230000,4290000,4350000,4410000,4480000,4540000,4600000,4660000,4710000,4770000,4830000,4880000,4940000,4990000,5050000,5100000,5150000,5200000,5250000,5300000,5350000,5400000,5450000,5490000,5540000,5580000,5630000,5670000,5710000,5750000,5790000,5830000,5860000,5900000,5930000,5970000,6000000,6030000,6060000,6090000,6120000,6150000,6170000,6200000,6220000,6240000,6270000,6290000,6310000,6330000,6350000,6360000,6380000,6400000,6410000,6430000,6440000,6450000,6460000,6470000,6480000,6490000,6500000,6510000,6520000,6530000,6530000,6540000,6540000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6540000,6540000 -Papua New Guinea,755000,755000,755000,755000,755000,755000,755000,755000,755000,755000,755000,755000,756000,756000,757000,758000,760000,761000,763000,765000,768000,770000,773000,776000,779000,783000,787000,791000,795000,800000,804000,809000,815000,820000,825000,830000,835000,841000,846000,851000,857000,862000,867000,873000,878000,884000,889000,895000,901000,906000,912000,918000,923000,929000,934000,940000,945000,951000,957000,962000,968000,974000,980000,985000,991000,997000,1000000,1010000,1020000,1020000,1030000,1030000,1040000,1050000,1050000,1060000,1060000,1070000,1080000,1080000,1090000,1100000,1100000,1110000,1120000,1120000,1130000,1140000,1140000,1150000,1160000,1160000,1170000,1180000,1180000,1190000,1200000,1210000,1210000,1220000,1230000,1230000,1240000,1250000,1260000,1260000,1270000,1280000,1290000,1290000,1300000,1310000,1320000,1330000,1330000,1340000,1350000,1360000,1370000,1380000,1380000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1460000,1470000,1480000,1490000,1500000,1510000,1520000,1530000,1540000,1550000,1560000,1570000,1580000,1590000,1600000,1610000,1620000,1630000,1640000,1650000,1660000,1670000,1700000,1730000,1760000,1790000,1820000,1860000,1890000,1930000,1970000,2010000,2050000,2090000,2140000,2190000,2240000,2290000,2340000,2400000,2460000,2530000,2590000,2660000,2730000,2800000,2880000,2960000,3040000,3130000,3210000,3300000,3400000,3500000,3590000,3690000,3790000,3900000,4000000,4100000,4210000,4310000,4420000,4540000,4650000,4770000,4890000,5020000,5150000,5290000,5430000,5570000,5720000,5860000,6010000,6160000,6310000,6470000,6630000,6790000,6950000,7110000,7270000,7430000,7590000,7760000,7920000,8080000,8250000,8420000,8590000,8760000,8930000,9100000,9270000,9440000,9610000,9790000,9960000,10100000,10300000,10500000,10700000,10800000,11000000,11200000,11400000,11500000,11700000,11900000,12100000,12200000,12400000,12600000,12700000,12900000,13100000,13200000,13400000,13600000,13700000,13900000,14000000,14200000,14300000,14500000,14600000,14800000,14900000,15100000,15200000,15400000,15500000,15600000,15800000,15900000,16000000,16200000,16300000,16400000,16500000,16700000,16800000,16900000,17000000,17100000,17200000,17300000,17400000,17500000,17600000,17700000,17800000,17900000,17900000,18000000,18100000,18200000,18200000,18300000,18400000,18400000,18500000,18600000,18600000,18700000,18700000,18800000,18800000,18900000,18900000,19000000 -Paraguay,143000,143000,143000,143000,143000,143000,143000,143000,143000,143000,143000,143000,144000,144000,145000,146000,148000,149000,151000,153000,155000,158000,161000,164000,168000,172000,176000,180000,185000,190000,196000,202000,208000,214000,221000,227000,234000,241000,249000,256000,264000,272000,279000,286000,293000,300000,306000,312000,318000,324000,330000,335000,340000,344000,349000,353000,357000,360000,363000,365000,368000,369000,371000,373000,375000,377000,378000,380000,382000,384000,386000,388000,390000,391000,393000,395000,397000,399000,401000,403000,405000,407000,409000,411000,413000,415000,416000,418000,420000,422000,424000,427000,429000,431000,433000,435000,438000,441000,446000,451000,457000,464000,470000,479000,490000,501000,513000,524000,537000,549000,562000,575000,589000,603000,617000,632000,647000,662000,678000,694000,710000,727000,744000,761000,779000,797000,816000,835000,854000,874000,894000,915000,937000,959000,981000,1000000,1030000,1050000,1080000,1100000,1130000,1160000,1180000,1210000,1240000,1270000,1300000,1330000,1360000,1410000,1470000,1510000,1550000,1590000,1630000,1670000,1720000,1760000,1810000,1850000,1900000,1950000,2010000,2060000,2110000,2170000,2230000,2290000,2350000,2410000,2470000,2540000,2600000,2660000,2720000,2790000,2860000,2940000,3010000,3090000,3180000,3270000,3370000,3470000,3570000,3670000,3780000,3890000,3990000,4100000,4210000,4320000,4430000,4540000,4650000,4760000,4870000,4980000,5090000,5200000,5300000,5410000,5510000,5610000,5700000,5800000,5880000,5970000,6050000,6130000,6210000,6290000,6380000,6470000,6550000,6640000,6730000,6810000,6900000,6980000,7070000,7150000,7230000,7310000,7390000,7470000,7550000,7630000,7700000,7770000,7840000,7910000,7980000,8050000,8110000,8180000,8240000,8300000,8350000,8410000,8460000,8510000,8560000,8610000,8660000,8700000,8740000,8780000,8820000,8860000,8900000,8930000,8960000,9000000,9020000,9050000,9080000,9100000,9120000,9140000,9160000,9180000,9190000,9200000,9210000,9220000,9220000,9230000,9230000,9230000,9230000,9220000,9210000,9210000,9200000,9190000,9170000,9160000,9140000,9130000,9110000,9090000,9070000,9050000,9030000,9000000,8980000,8960000,8930000,8910000,8880000,8860000,8830000,8810000,8780000,8750000,8730000,8700000,8670000,8650000,8620000 -Peru,1310000,1310000,1310000,1310000,1310000,1310000,1320000,1320000,1320000,1320000,1320000,1320000,1320000,1320000,1330000,1330000,1340000,1340000,1350000,1360000,1370000,1380000,1390000,1400000,1420000,1430000,1450000,1460000,1480000,1500000,1520000,1540000,1560000,1580000,1610000,1630000,1650000,1680000,1700000,1720000,1750000,1770000,1800000,1820000,1850000,1870000,1900000,1920000,1950000,1980000,2000000,2030000,2060000,2090000,2120000,2150000,2170000,2200000,2230000,2260000,2290000,2330000,2360000,2390000,2420000,2450000,2480000,2520000,2550000,2580000,2620000,2650000,2690000,2720000,2750000,2790000,2830000,2860000,2900000,2930000,2970000,3010000,3050000,3090000,3120000,3160000,3200000,3240000,3270000,3310000,3340000,3370000,3400000,3430000,3460000,3490000,3530000,3560000,3600000,3640000,3680000,3730000,3770000,3820000,3870000,3920000,3970000,4020000,4070000,4120000,4170000,4230000,4280000,4340000,4390000,4450000,4500000,4560000,4620000,4680000,4740000,4810000,4890000,4960000,5040000,5120000,5200000,5280000,5370000,5450000,5540000,5620000,5720000,5810000,5900000,6000000,6100000,6200000,6300000,6400000,6510000,6620000,6730000,6840000,6960000,7080000,7200000,7320000,7450000,7580000,7730000,7920000,8130000,8340000,8560000,8790000,9020000,9270000,9520000,9780000,10100000,10400000,10700000,11000000,11300000,11600000,11900000,12300000,12600000,13000000,13300000,13700000,14100000,14400000,14800000,15200000,15600000,16100000,16500000,16900000,17400000,17800000,18200000,18700000,19100000,19500000,20000000,20500000,20900000,21400000,21800000,22300000,22700000,23200000,23600000,24000000,24400000,24800000,25200000,25600000,25900000,26300000,26600000,26900000,27300000,27600000,27900000,28300000,28600000,29000000,29400000,29800000,30200000,30600000,31000000,31400000,31800000,32200000,32600000,32900000,33300000,33700000,34100000,34400000,34800000,35100000,35500000,35800000,36200000,36500000,36800000,37100000,37400000,37700000,38000000,38300000,38600000,38800000,39100000,39400000,39600000,39800000,40100000,40300000,40500000,40700000,40900000,41100000,41300000,41500000,41600000,41800000,41900000,42100000,42200000,42300000,42400000,42500000,42600000,42700000,42800000,42800000,42900000,43000000,43000000,43000000,43100000,43100000,43100000,43100000,43100000,43100000,43100000,43100000,43100000,43000000,43000000,43000000,42900000,42900000,42800000,42700000,42700000,42600000,42500000,42400000,42300000,42200000,42200000,42100000,42000000,41800000,41700000,41600000,41500000,41400000,41300000,41200000,41000000,40900000,40800000 -Philippines,1890000,1890000,1890000,1890000,1890000,1890000,1890000,1890000,1890000,1890000,1890000,1900000,1900000,1900000,1910000,1920000,1930000,1940000,1950000,1970000,1980000,2000000,2020000,2040000,2070000,2090000,2120000,2150000,2180000,2220000,2250000,2290000,2330000,2370000,2410000,2450000,2500000,2540000,2580000,2620000,2670000,2720000,2760000,2810000,2860000,2900000,2950000,3000000,3060000,3110000,3160000,3220000,3270000,3330000,3380000,3440000,3500000,3560000,3620000,3680000,3750000,3810000,3870000,3940000,4000000,4060000,4130000,4190000,4250000,4320000,4380000,4450000,4510000,4580000,4640000,4700000,4760000,4830000,4890000,4950000,5010000,5070000,5140000,5200000,5260000,5330000,5400000,5460000,5530000,5600000,5670000,5740000,5810000,5880000,5960000,6030000,6110000,6200000,6290000,6380000,6480000,6590000,6690000,6810000,6930000,7070000,7200000,7340000,7480000,7620000,7770000,7920000,8070000,8230000,8390000,8550000,8720000,8890000,9060000,9230000,9410000,9590000,9780000,9970000,10200000,10400000,10600000,10800000,11000000,11300000,11600000,11900000,12100000,12400000,12700000,13000000,13300000,13700000,14000000,14300000,14600000,14800000,15100000,15400000,15700000,16100000,16500000,17000000,17500000,18000000,18600000,19200000,19900000,20700000,21400000,22200000,23000000,23800000,24600000,25400000,26300000,27200000,28100000,29000000,30000000,30900000,31900000,32800000,33800000,34800000,35800000,36900000,37900000,39000000,40100000,41300000,42500000,43700000,44900000,46100000,47400000,48700000,50100000,51500000,52900000,54300000,55800000,57300000,58800000,60400000,61900000,63500000,65100000,66700000,68200000,69800000,71400000,73100000,74700000,76300000,78000000,79700000,81400000,83000000,84700000,86300000,87800000,89300000,90800000,92200000,93700000,95300000,96900000,98500000,100000000,102000000,103000000,105000000,107000000,108000000,110000000,111000000,113000000,114000000,116000000,118000000,119000000,121000000,122000000,124000000,125000000,127000000,128000000,130000000,131000000,133000000,134000000,135000000,137000000,138000000,139000000,141000000,142000000,143000000,144000000,146000000,147000000,148000000,149000000,150000000,151000000,152000000,153000000,154000000,155000000,156000000,157000000,158000000,159000000,160000000,161000000,162000000,162000000,163000000,164000000,164000000,165000000,166000000,166000000,167000000,167000000,168000000,168000000,169000000,169000000,170000000,170000000,171000000,171000000,171000000,171000000,172000000,172000000,172000000,172000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000,173000000 -Poland,9510000,9550000,9600000,9640000,9690000,9730000,9780000,9820000,9870000,9910000,9960000,10000000,10100000,10100000,10200000,10200000,10300000,10300000,10400000,10400000,10500000,10600000,10600000,10700000,10800000,10800000,10900000,11000000,11100000,11200000,11200000,11300000,11400000,11500000,11600000,11700000,11700000,11800000,11900000,12000000,12100000,12200000,12300000,12400000,12500000,12600000,12700000,12800000,13000000,13100000,13200000,13400000,13500000,13700000,13800000,14000000,14100000,14300000,14500000,14700000,14800000,15000000,15200000,15400000,15700000,15900000,16100000,16300000,16500000,16800000,17000000,17300000,17500000,17700000,18000000,18300000,18500000,18800000,19100000,19400000,19700000,20000000,20300000,20600000,20900000,21200000,21500000,21800000,22100000,22400000,22600000,22900000,23100000,23300000,23600000,23800000,23900000,24100000,24300000,24500000,24700000,24900000,25100000,25300000,25500000,25600000,25800000,26000000,26200000,26400000,26500000,26600000,26600000,26500000,26300000,25800000,25500000,25100000,24700000,24300000,24200000,24400000,24900000,25400000,25900000,26400000,26700000,27100000,27500000,27800000,28200000,28600000,29000000,29300000,29700000,30100000,30400000,30700000,31000000,30800000,30000000,28900000,27800000,26800000,25800000,24800000,24100000,23800000,24000000,24400000,24800000,25300000,25800000,26300000,26800000,27300000,27800000,28300000,28700000,29200000,29600000,30000000,30400000,30700000,31100000,31400000,31600000,31900000,32100000,32400000,32600000,32900000,33100000,33400000,33700000,34000000,34300000,34600000,34900000,35200000,35500000,35900000,36200000,36600000,36900000,37100000,37400000,37500000,37700000,37800000,38000000,38100000,38200000,38300000,38400000,38500000,38500000,38500000,38600000,38600000,38600000,38500000,38500000,38400000,38400000,38400000,38300000,38300000,38300000,38300000,38300000,38300000,38300000,38300000,38300000,38300000,38200000,38200000,38100000,38000000,37900000,37800000,37700000,37600000,37500000,37400000,37200000,37100000,36900000,36800000,36600000,36400000,36300000,36100000,35900000,35700000,35500000,35300000,35100000,34900000,34700000,34400000,34200000,34000000,33800000,33500000,33300000,33100000,32900000,32600000,32400000,32200000,31900000,31700000,31400000,31200000,31000000,30700000,30500000,30200000,30000000,29700000,29500000,29200000,29000000,28700000,28400000,28200000,27900000,27600000,27400000,27100000,26800000,26600000,26300000,26000000,25800000,25500000,25300000,25000000,24800000,24600000,24300000,24100000,23900000,23700000,23500000,23300000,23100000,22900000,22800000,22600000,22400000,22300000,22100000,22000000,21800000,21700000,21500000,21400000,21200000 -Portugal,3030000,3050000,3060000,3070000,3080000,3100000,3110000,3120000,3140000,3150000,3160000,3180000,3190000,3200000,3220000,3230000,3250000,3260000,3280000,3300000,3310000,3330000,3350000,3360000,3380000,3390000,3410000,3430000,3450000,3470000,3490000,3510000,3530000,3550000,3570000,3590000,3600000,3620000,3640000,3660000,3670000,3690000,3700000,3720000,3730000,3750000,3770000,3780000,3790000,3810000,3820000,3840000,3860000,3880000,3900000,3920000,3940000,3970000,3990000,4010000,4040000,4060000,4090000,4120000,4150000,4180000,4200000,4240000,4270000,4300000,4330000,4360000,4390000,4420000,4450000,4480000,4510000,4540000,4570000,4600000,4640000,4670000,4710000,4750000,4780000,4820000,4870000,4910000,4950000,4990000,5030000,5070000,5110000,5150000,5190000,5230000,5260000,5300000,5340000,5380000,5430000,5470000,5510000,5560000,5600000,5650000,5700000,5750000,5800000,5850000,5900000,5940000,5970000,5990000,6000000,6000000,6010000,6020000,6030000,6040000,6060000,6100000,6160000,6240000,6320000,6400000,6480000,6560000,6640000,6720000,6800000,6890000,6970000,7060000,7150000,7240000,7330000,7420000,7510000,7600000,7690000,7780000,7850000,7920000,7990000,8060000,8130000,8210000,8280000,8360000,8420000,8430000,8480000,8540000,8600000,8670000,8730000,8780000,8830000,8860000,8890000,8920000,8940000,8950000,8940000,8910000,8870000,8800000,8740000,8700000,8700000,8750000,8840000,8960000,9090000,9220000,9350000,9480000,9610000,9710000,9800000,9880000,9930000,9960000,9980000,9990000,9980000,9970000,9960000,9950000,9950000,9970000,10000000,10100000,10100000,10100000,10200000,10200000,10300000,10300000,10400000,10400000,10400000,10500000,10500000,10600000,10600000,10600000,10700000,10700000,10700000,10600000,10600000,10500000,10500000,10400000,10400000,10300000,10300000,10300000,10200000,10200000,10100000,10100000,10100000,10000000,10000000,9980000,9950000,9910000,9880000,9840000,9810000,9770000,9730000,9700000,9660000,9620000,9580000,9540000,9500000,9450000,9410000,9360000,9310000,9260000,9210000,9160000,9110000,9050000,8990000,8940000,8880000,8820000,8760000,8700000,8630000,8570000,8510000,8450000,8380000,8320000,8260000,8200000,8140000,8080000,8020000,7960000,7900000,7840000,7790000,7740000,7680000,7630000,7580000,7530000,7490000,7440000,7400000,7360000,7320000,7280000,7240000,7200000,7160000,7120000,7090000,7050000,7010000,6980000,6940000,6910000,6870000,6840000,6800000,6770000,6730000,6700000,6670000,6640000,6600000 -Qatar,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14100,14000,14000,14000,14000,14000,14000,14000,14000,14100,14100,14100,14100,14100,14200,14200,14300,14300,14300,14400,14400,14500,14600,14600,14700,14800,14900,14900,15000,15100,15200,15200,15300,15400,15500,15600,15600,15700,15800,15900,16000,16000,16100,16200,16300,16400,16500,16500,16600,16700,16800,16900,17000,17100,17100,17200,17300,17400,17600,17700,17900,18000,18200,18400,18500,18700,18900,19000,19200,19400,19500,19700,19900,20100,20300,20500,20600,20800,21000,21200,21400,21600,21800,22000,22200,22400,22600,22800,23000,23200,23400,23600,23800,24100,25000,27500,29900,32100,34000,35900,37600,39500,41500,44100,47400,51400,56300,61700,67600,73600,79800,86300,93200,101000,110000,119000,131000,142000,154000,164000,174000,182000,192000,205000,224000,248000,277000,309000,341000,371000,398000,422000,444000,462000,476000,487000,496000,502000,507000,513000,522000,535000,550000,569000,592000,617000,646000,689000,759000,865000,1010000,1190000,1390000,1590000,1780000,1950000,2110000,2250000,2370000,2480000,2570000,2640000,2690000,2740000,2790000,2840000,2890000,2940000,2980000,3030000,3070000,3110000,3150000,3190000,3230000,3270000,3300000,3340000,3370000,3400000,3430000,3460000,3490000,3510000,3540000,3560000,3590000,3610000,3640000,3660000,3680000,3710000,3730000,3750000,3770000,3790000,3810000,3830000,3850000,3870000,3890000,3900000,3920000,3930000,3950000,3960000,3970000,3980000,4000000,4010000,4020000,4020000,4030000,4040000,4050000,4050000,4060000,4060000,4070000,4070000,4070000,4080000,4080000,4080000,4080000,4080000,4080000,4070000,4070000,4070000,4060000,4060000,4050000,4050000,4040000,4030000,4030000,4020000,4010000,4010000,4000000,3990000,3990000,3980000,3970000 -Romania,5460000,5510000,5550000,5590000,5640000,5680000,5730000,5770000,5820000,5860000,5920000,5960000,6010000,6050000,6100000,6150000,6200000,6250000,6290000,6340000,6390000,6440000,6490000,6540000,6590000,6640000,6690000,6740000,6790000,6840000,6890000,6950000,7000000,7050000,7100000,7160000,7210000,7260000,7320000,7370000,7430000,7490000,7540000,7600000,7650000,7710000,7770000,7820000,7880000,7940000,7990000,8050000,8110000,8170000,8220000,8280000,8340000,8390000,8450000,8510000,8570000,8630000,8690000,8740000,8800000,8860000,8920000,8980000,9030000,9090000,9150000,9210000,9270000,9330000,9390000,9440000,9500000,9560000,9620000,9680000,9740000,9790000,9850000,9910000,9970000,10000000,10100000,10200000,10200000,10300000,10300000,10400000,10500000,10500000,10600000,10600000,10700000,10800000,10800000,10900000,11000000,11100000,11100000,11200000,11300000,11400000,11500000,11500000,11600000,11700000,11900000,12000000,12200000,12400000,12400000,12400000,12400000,12300000,12300000,12300000,12300000,12400000,12600000,12800000,12900000,13100000,13300000,13500000,13700000,13900000,14100000,14300000,14500000,14600000,14800000,15000000,15200000,15300000,15500000,15700000,15700000,15700000,15700000,15800000,15800000,15900000,15800000,15800000,15800000,16000000,16200000,16500000,16800000,17000000,17200000,17500000,17700000,18000000,18200000,18400000,18600000,18800000,18900000,19100000,19200000,19400000,19600000,19800000,20100000,20300000,20500000,20800000,21000000,21200000,21500000,21700000,21900000,22100000,22300000,22500000,22600000,22700000,22800000,22900000,23000000,23100000,23200000,23300000,23400000,23500000,23500000,23500000,23400000,23300000,23100000,23000000,22800000,22600000,22500000,22300000,22100000,22000000,21900000,21700000,21600000,21400000,21200000,21000000,20800000,20600000,20400000,20300000,20200000,20100000,20000000,19900000,19800000,19700000,19600000,19500000,19400000,19300000,19200000,19100000,19000000,18900000,18800000,18700000,18700000,18600000,18500000,18400000,18300000,18200000,18100000,18000000,17900000,17800000,17700000,17600000,17500000,17400000,17300000,17100000,17000000,16900000,16800000,16700000,16600000,16500000,16400000,16300000,16200000,16100000,16000000,15900000,15700000,15600000,15500000,15400000,15300000,15200000,15100000,15000000,14900000,14800000,14700000,14600000,14500000,14400000,14300000,14200000,14100000,14000000,13900000,13800000,13700000,13600000,13500000,13500000,13400000,13300000,13200000,13200000,13100000,13000000,13000000,12900000,12800000,12700000,12700000,12600000,12600000,12500000,12400000,12400000,12300000,12300000,12200000,12100000,12100000 -Russia,31100000,31100000,31100000,31100000,31100000,31100000,31100000,31100000,31100000,31100000,31100000,31100000,31100000,31200000,31200000,31300000,31400000,31500000,31600000,31700000,31900000,32000000,32200000,32400000,32600000,32800000,33000000,33300000,33600000,33800000,34100000,34400000,34800000,35100000,35400000,35700000,36100000,36400000,36700000,37100000,37400000,37800000,38100000,38500000,38800000,39200000,39500000,39900000,40300000,40600000,41000000,41400000,41800000,42200000,42600000,43000000,43300000,43700000,44100000,44600000,45000000,45400000,45800000,46200000,46600000,47100000,47500000,48000000,48400000,48800000,49300000,49700000,50200000,50700000,51100000,51600000,52100000,52500000,53000000,53500000,54000000,54500000,55000000,55500000,56000000,56500000,57000000,57500000,58100000,58600000,59200000,59700000,60200000,60800000,61400000,61900000,62500000,63100000,63700000,64200000,64800000,65400000,66000000,66600000,67300000,67900000,68500000,69100000,69800000,70400000,71000000,71700000,72400000,73000000,73700000,74400000,75100000,75800000,76500000,77200000,77900000,78600000,79300000,80000000,80800000,81500000,82300000,83000000,83800000,84600000,85400000,86200000,87000000,87800000,88600000,89400000,90200000,91000000,91900000,92700000,93600000,94500000,95300000,96200000,97100000,98000000,98900000,99800000,101000000,102000000,103000000,104000000,106000000,108000000,110000000,111000000,113000000,115000000,117000000,118000000,120000000,121000000,123000000,124000000,125000000,126000000,127000000,128000000,129000000,129000000,130000000,131000000,132000000,132000000,133000000,134000000,135000000,135000000,136000000,137000000,138000000,139000000,140000000,141000000,142000000,143000000,144000000,145000000,146000000,147000000,148000000,148000000,148000000,148000000,148000000,148000000,148000000,148000000,147000000,147000000,146000000,146000000,145000000,145000000,144000000,144000000,143000000,143000000,143000000,143000000,143000000,143000000,143000000,144000000,144000000,144000000,144000000,144000000,144000000,144000000,144000000,144000000,143000000,143000000,143000000,143000000,142000000,142000000,141000000,141000000,141000000,140000000,140000000,139000000,139000000,138000000,138000000,137000000,137000000,136000000,136000000,135000000,135000000,135000000,134000000,134000000,134000000,134000000,133000000,133000000,133000000,132000000,132000000,132000000,132000000,131000000,131000000,131000000,130000000,130000000,130000000,129000000,129000000,129000000,128000000,128000000,128000000,127000000,127000000,127000000,126000000,126000000,126000000,126000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,125000000,124000000,124000000,124000000,124000000,124000000,124000000,124000000,124000000,124000000 -Rwanda,928000,928000,928000,928000,928000,928000,928000,928000,928000,928000,928000,929000,929000,930000,931000,933000,934000,936000,938000,941000,944000,947000,950000,954000,958000,962000,967000,972000,977000,982000,988000,994000,1000000,1010000,1010000,1020000,1030000,1030000,1040000,1040000,1050000,1060000,1060000,1070000,1080000,1080000,1090000,1100000,1100000,1110000,1120000,1130000,1130000,1140000,1150000,1160000,1170000,1170000,1180000,1190000,1200000,1210000,1210000,1220000,1230000,1240000,1250000,1260000,1270000,1270000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1350000,1360000,1360000,1370000,1380000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1470000,1480000,1490000,1500000,1510000,1520000,1530000,1540000,1550000,1570000,1580000,1590000,1600000,1610000,1620000,1630000,1640000,1650000,1670000,1680000,1690000,1700000,1710000,1720000,1740000,1750000,1760000,1770000,1780000,1790000,1800000,1820000,1830000,1840000,1850000,1860000,1870000,1880000,1900000,1910000,1920000,1930000,1940000,1950000,1970000,1980000,1990000,2000000,2020000,2030000,2040000,2050000,2070000,2080000,2090000,2110000,2120000,2130000,2140000,2160000,2190000,2250000,2310000,2380000,2450000,2530000,2610000,2690000,2780000,2860000,2930000,3000000,3050000,3100000,3160000,3230000,3320000,3420000,3530000,3640000,3750000,3870000,3980000,4100000,4230000,4360000,4500000,4650000,4800000,4970000,5140000,5320000,5490000,5670000,5880000,6120000,6410000,6730000,7030000,7220000,7240000,7050000,6700000,6300000,6010000,5930000,6120000,6520000,7060000,7590000,8030000,8330000,8540000,8680000,8820000,8990000,9210000,9450000,9710000,9980000,10200000,10500000,10800000,11100000,11300000,11600000,11900000,12200000,12500000,12800000,13100000,13400000,13700000,14000000,14300000,14500000,14800000,15100000,15400000,15700000,16000000,16300000,16600000,16900000,17200000,17500000,17800000,18200000,18500000,18800000,19100000,19400000,19700000,20000000,20200000,20500000,20800000,21100000,21400000,21600000,21900000,22100000,22400000,22600000,22900000,23100000,23400000,23600000,23800000,24000000,24300000,24500000,24700000,24900000,25100000,25300000,25400000,25600000,25800000,26000000,26100000,26300000,26400000,26600000,26700000,26800000,27000000,27100000,27200000,27300000,27400000,27500000,27600000,27700000,27700000,27800000,27900000,27900000,28000000,28000000,28100000,28100000,28100000,28200000,28200000,28200000,28200000,28200000,28200000,28200000,28200000 -Samoa,47300,47300,47300,47300,47300,47300,47300,47200,47200,47200,47200,47200,47200,47200,47200,47200,47200,47200,47200,47100,47100,47100,47100,47100,47100,47100,47100,47100,47100,47100,47100,47100,47000,47000,47000,47000,47000,47000,47000,47000,47000,47000,46900,46900,46800,46700,46600,46500,46400,46200,46100,45900,45700,45500,45300,45100,44900,44600,44300,44100,43800,43500,43200,42900,42600,42300,42000,41700,41400,41100,40800,40500,40300,40000,39700,39400,39200,38900,38600,38300,38100,37800,37500,37300,37000,36800,36500,36200,36000,35700,35500,35200,35000,34800,34500,34300,34100,34000,34000,34100,34300,34600,34700,35100,35600,36100,36600,37200,37500,37700,37800,38000,37900,37700,37500,37300,37100,36900,36700,36500,36300,36500,36900,37700,38500,39300,40300,41500,43000,44400,46000,47500,49200,50800,52600,54400,56000,57500,58700,60000,61300,62600,64000,65400,66800,68700,70900,73600,76500,79400,82100,84400,86800,89200,91700,94200,96800,99500,102000,105000,109000,112000,116000,120000,123000,127000,131000,134000,138000,141000,143000,145000,147000,149000,150000,151000,152000,153000,154000,155000,156000,156000,157000,158000,159000,160000,161000,161000,161000,162000,163000,164000,166000,167000,169000,170000,171000,172000,173000,174000,175000,176000,177000,178000,179000,180000,181000,182000,184000,185000,186000,188000,189000,191000,192000,194000,195000,196000,198000,199000,200000,201000,203000,204000,205000,206000,207000,208000,209000,211000,212000,214000,215000,217000,219000,221000,223000,225000,227000,228000,230000,232000,233000,235000,236000,238000,239000,240000,241000,242000,243000,244000,245000,246000,247000,248000,249000,250000,251000,252000,253000,254000,255000,256000,257000,258000,259000,260000,261000,261000,262000,263000,264000,265000,266000,266000,267000,268000,268000,269000,269000,269000,270000,270000,270000,270000,270000,270000,270000,270000,270000,270000,270000,270000,270000,270000,269000,269000,269000,268000,268000 -San Marino,5490,5490,5490,5490,5490,5490,5490,5490,5490,5490,5490,5490,5500,5500,5510,5520,5530,5540,5550,5570,5590,5610,5630,5650,5680,5700,5730,5760,5800,5830,5870,5900,5940,5980,6020,6060,6100,6140,6180,6220,6260,6300,6340,6380,6420,6470,6510,6550,6590,6640,6680,6720,6770,6810,6850,6900,6940,6990,7030,7080,7130,7170,7220,7270,7310,7360,7410,7460,7510,7550,7600,7650,7700,7750,7800,7850,7900,7950,8010,8060,8110,8160,8210,8270,8320,8370,8430,8480,8540,8590,8650,8710,8760,8820,8880,8930,8990,9050,9110,9170,9230,9290,9350,9410,9470,9530,9590,9650,9720,9780,9840,9910,9970,10000,10100,10200,10200,10300,10400,10400,10500,10600,10600,10700,10800,10800,10900,11000,11100,11100,11200,11300,11400,11400,11500,11600,11700,11700,11800,11900,12000,12000,12100,12200,12300,12400,12400,12500,12600,12700,12800,12900,13100,13300,13500,13800,14000,14300,14700,15000,15400,15800,16200,16600,17000,17400,17800,18200,18600,18900,19100,19300,19400,19500,19600,19700,20000,20300,20700,21000,21400,21700,21900,22200,22500,22700,23000,23200,23500,23700,24000,24400,24700,25100,25500,25900,26200,26500,26800,27100,27400,27800,28100,28500,28900,29200,29600,30000,30400,30700,31100,31500,31900,32300,32700,33000,33200,33400,33600,33700,33800,33900,34000,34100,34200,34300,34400,34500,34600,34600,34700,34800,34800,34800,34900,34900,34900,34900,35000,35000,35000,35000,35000,34900,34900,34900,34900,34800,34800,34800,34700,34700,34600,34500,34500,34400,34400,34300,34200,34200,34100,34000,34000,33900,33800,33700,33700,33600,33500,33500,33400,33300,33300,33200,33100,33100,33000,33000,32900,32900,32800,32800,32700,32700,32600,32600,32600,32500,32500,32500,32400,32400,32400,32400,32300,32300,32300,32300,32300,32200,32200 -Sao Tome and Principe,22700,22700,22700,22700,22700,22700,22700,22700,22700,22700,22700,22700,22800,22800,22800,22900,22900,23000,23000,23100,23200,23300,23400,23500,23600,23700,23900,24000,24200,24300,24500,24700,24900,25100,25300,25500,25600,25800,26000,26200,26400,26600,26800,27000,27200,27400,27600,27800,28000,28300,28500,28700,28900,29100,29300,29600,29800,30000,30200,30500,30700,30900,31200,31400,31700,31900,32100,32400,32600,32900,33100,33400,33600,33900,34100,34400,34700,34900,35200,35400,35700,36000,36300,36500,36800,37100,37400,37600,37900,38200,38500,38800,39100,39400,39700,40000,40300,40600,40900,41200,41500,41900,42200,42500,42800,43100,43500,43800,44100,44500,44800,45100,45500,45800,46200,46500,46900,47200,47600,48000,48300,48700,49000,49400,49800,50100,50500,50900,51300,51700,52100,52400,52800,53200,53600,54000,54400,54800,55300,55700,56100,56500,56900,57400,57800,58200,58700,59100,59500,60000,60000,59200,58500,58200,58200,58800,59700,61000,62300,63500,64300,64600,64400,64200,64200,64800,66100,67900,70000,72200,74300,76000,77500,79000,80700,82600,84900,87400,90100,92600,94900,97000,98700,100000,102000,104000,105000,107000,109000,112000,114000,116000,119000,121000,124000,126000,129000,131000,133000,136000,139000,142000,145000,148000,152000,156000,159000,163000,167000,171000,175000,179000,183000,187000,191000,196000,200000,204000,209000,213000,218000,223000,227000,232000,237000,242000,247000,253000,258000,263000,268000,274000,279000,285000,290000,296000,301000,307000,313000,318000,324000,329000,335000,341000,346000,352000,357000,363000,369000,374000,380000,385000,391000,396000,402000,407000,413000,418000,424000,429000,434000,440000,445000,450000,456000,461000,466000,471000,476000,481000,486000,491000,496000,501000,506000,511000,516000,520000,525000,530000,534000,538000,543000,547000,551000,555000,559000,563000,567000,571000,575000,578000,582000,585000,589000,592000,595000,598000,601000,604000,607000 -Saudi Arabia,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2090000,2100000,2100000,2100000,2100000,2100000,2110000,2110000,2110000,2110000,2120000,2120000,2130000,2130000,2130000,2140000,2140000,2150000,2150000,2160000,2160000,2170000,2170000,2180000,2180000,2190000,2190000,2200000,2200000,2210000,2210000,2220000,2220000,2230000,2230000,2240000,2240000,2250000,2250000,2260000,2260000,2260000,2270000,2270000,2280000,2280000,2290000,2290000,2300000,2310000,2310000,2320000,2320000,2330000,2330000,2340000,2350000,2350000,2360000,2360000,2370000,2380000,2380000,2390000,2400000,2410000,2410000,2420000,2430000,2440000,2440000,2450000,2460000,2470000,2470000,2480000,2490000,2500000,2500000,2510000,2520000,2530000,2530000,2540000,2550000,2560000,2560000,2570000,2580000,2590000,2600000,2600000,2610000,2620000,2630000,2640000,2640000,2650000,2660000,2670000,2680000,2690000,2700000,2710000,2730000,2740000,2750000,2760000,2770000,2780000,2800000,2810000,2820000,2830000,2840000,2850000,2870000,2880000,2890000,2900000,2910000,2930000,2940000,2950000,2960000,2970000,2990000,3000000,3010000,3020000,3040000,3050000,3060000,3080000,3090000,3120000,3200000,3280000,3370000,3460000,3560000,3650000,3750000,3860000,3970000,4090000,4220000,4360000,4520000,4680000,4840000,5020000,5190000,5390000,5600000,5840000,6100000,6390000,6710000,7060000,7430000,7820000,8230000,8680000,9180000,9740000,10400000,11000000,11800000,12500000,13200000,13900000,14500000,15200000,15800000,16300000,16900000,17400000,17900000,18300000,18700000,19100000,19500000,19900000,20300000,20800000,21300000,21900000,22600000,23200000,23900000,24600000,25300000,25900000,26700000,27400000,28200000,29100000,29900000,30800000,31600000,32300000,32900000,33600000,34100000,34700000,35300000,35800000,36300000,36800000,37300000,37800000,38200000,38600000,39100000,39500000,39900000,40300000,40600000,41000000,41300000,41600000,41900000,42200000,42500000,42800000,43000000,43300000,43600000,43800000,44000000,44300000,44500000,44700000,44900000,45100000,45200000,45400000,45500000,45700000,45800000,45900000,46000000,46100000,46100000,46200000,46200000,46300000,46300000,46300000,46300000,46300000,46200000,46200000,46200000,46200000,46100000,46100000,46000000,46000000,46000000,45900000,45900000,45800000,45800000,45700000,45600000,45600000,45500000,45500000,45400000,45300000,45300000,45200000,45100000,45000000,45000000,44900000,44800000,44700000,44600000,44500000,44400000,44300000,44100000,44000000 -Senegal,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1010000,1020000,1020000,1020000,1020000,1030000,1030000,1040000,1040000,1040000,1050000,1060000,1060000,1070000,1070000,1080000,1090000,1100000,1100000,1110000,1120000,1130000,1130000,1140000,1150000,1160000,1160000,1170000,1180000,1190000,1200000,1200000,1210000,1220000,1230000,1240000,1240000,1250000,1260000,1270000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1350000,1360000,1360000,1370000,1380000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1480000,1490000,1500000,1510000,1520000,1530000,1540000,1550000,1560000,1570000,1580000,1590000,1610000,1620000,1630000,1640000,1650000,1660000,1670000,1690000,1700000,1710000,1720000,1740000,1750000,1760000,1770000,1780000,1800000,1810000,1820000,1840000,1850000,1860000,1880000,1890000,1900000,1920000,1930000,1940000,1960000,1970000,1980000,2000000,2010000,2020000,2040000,2050000,2070000,2080000,2090000,2110000,2120000,2140000,2150000,2160000,2180000,2190000,2210000,2220000,2240000,2250000,2270000,2280000,2300000,2320000,2330000,2350000,2360000,2380000,2390000,2410000,2430000,2440000,2460000,2490000,2550000,2610000,2670000,2740000,2810000,2880000,2960000,3040000,3120000,3210000,3300000,3390000,3480000,3580000,3680000,3790000,3900000,4010000,4130000,4260000,4390000,4530000,4660000,4800000,4940000,5060000,5190000,5320000,5450000,5590000,5750000,5920000,6100000,6290000,6480000,6690000,6890000,7110000,7330000,7560000,7790000,8030000,8270000,8510000,8750000,8970000,9200000,9420000,9650000,9880000,10100000,10400000,10700000,11000000,11300000,11600000,11900000,12200000,12600000,12900000,13300000,13700000,14100000,14500000,15000000,15400000,15900000,16300000,16700000,17200000,17700000,18100000,18600000,19100000,19600000,20100000,20600000,21100000,21600000,22100000,22700000,23200000,23700000,24300000,24900000,25400000,26000000,26600000,27200000,27800000,28400000,29000000,29600000,30200000,30900000,31500000,32100000,32800000,33400000,34000000,34700000,35300000,36000000,36600000,37300000,37900000,38600000,39200000,39900000,40500000,41200000,41800000,42500000,43100000,43800000,44400000,45100000,45700000,46400000,47000000,47700000,48300000,49000000,49600000,50300000,50900000,51600000,52200000,52800000,53500000,54100000,54700000,55300000,55900000,56600000,57200000,57700000,58300000,58900000,59500000,60000000,60600000,61200000,61700000,62200000,62800000,63300000,63800000,64300000,64800000 -Serbia,2150000,2150000,2150000,2150000,2150000,2150000,2150000,2150000,2150000,2150000,2150000,2150000,2150000,2150000,2160000,2160000,2170000,2170000,2180000,2190000,2200000,2210000,2220000,2230000,2250000,2260000,2280000,2290000,2310000,2330000,2350000,2370000,2390000,2410000,2430000,2450000,2470000,2500000,2520000,2540000,2560000,2590000,2610000,2630000,2660000,2680000,2700000,2730000,2750000,2770000,2800000,2820000,2850000,2870000,2900000,2920000,2950000,2980000,3000000,3030000,3060000,3080000,3110000,3140000,3160000,3190000,3220000,3250000,3280000,3310000,3330000,3360000,3390000,3420000,3450000,3480000,3510000,3540000,3570000,3610000,3640000,3670000,3700000,3730000,3770000,3800000,3830000,3870000,3900000,3930000,3970000,4000000,4040000,4070000,4110000,4150000,4180000,4220000,4260000,4290000,4330000,4370000,4410000,4450000,4490000,4530000,4560000,4600000,4640000,4690000,4730000,4770000,4810000,4850000,4890000,4940000,4980000,5030000,5070000,5110000,5160000,5200000,5250000,5300000,5340000,5390000,5440000,5490000,5540000,5580000,5630000,5680000,5730000,5780000,5840000,5890000,5940000,5990000,6040000,6100000,6150000,6210000,6260000,6320000,6370000,6430000,6480000,6540000,6600000,6660000,6730000,6850000,6960000,7060000,7150000,7230000,7310000,7380000,7440000,7500000,7560000,7610000,7670000,7730000,7780000,7840000,7890000,7940000,8000000,8060000,8120000,8190000,8260000,8340000,8420000,8500000,8580000,8660000,8750000,8830000,8910000,8980000,9060000,9130000,9190000,9250000,9310000,9350000,9400000,9450000,9520000,9600000,9700000,9800000,9860000,9880000,9860000,9780000,9680000,9580000,9490000,9410000,9350000,9300000,9260000,9210000,9170000,9140000,9100000,9060000,9030000,8990000,8960000,8920000,8880000,8850000,8820000,8790000,8760000,8730000,8700000,8670000,8640000,8610000,8580000,8540000,8510000,8470000,8430000,8390000,8360000,8320000,8270000,8230000,8190000,8140000,8100000,8050000,8010000,7960000,7910000,7870000,7820000,7770000,7720000,7680000,7630000,7580000,7540000,7490000,7450000,7400000,7360000,7310000,7270000,7230000,7180000,7140000,7090000,7050000,7010000,6960000,6920000,6870000,6830000,6790000,6740000,6700000,6650000,6610000,6560000,6520000,6480000,6430000,6390000,6350000,6310000,6270000,6220000,6180000,6140000,6110000,6070000,6030000,5990000,5950000,5920000,5880000,5850000,5810000,5780000,5750000,5710000,5680000,5650000,5620000,5580000,5550000,5520000,5490000,5460000 -Seychelles,12500,12500,12500,12500,12500,12500,12500,12500,12500,12500,12500,12500,12500,12500,12500,12600,12600,12600,12600,12600,12600,12700,12700,12700,12700,12800,12800,12800,12900,12900,13000,13000,13100,13100,13100,13200,13200,13300,13300,13400,13400,13500,13500,13600,13600,13700,13700,13700,13800,13800,13900,13900,14000,14000,14100,14100,14200,14200,14300,14300,14400,14400,14500,14500,14600,14600,14700,14700,14800,14800,14900,14900,15000,15000,15100,15100,15200,15200,15300,15400,15400,15500,15500,15600,15600,15700,15700,15800,15900,16000,16200,16300,16500,16700,16900,17200,17500,17800,18100,18400,18700,19100,19400,19800,20200,20500,20900,21300,21700,22100,22500,22900,23200,23400,23600,23800,24000,24200,24400,24600,24800,25000,25200,25400,25600,25800,26000,26200,26400,26600,26800,27100,27400,27900,28300,28700,29200,29700,30100,30600,31100,31600,32100,32600,33100,33600,34100,34700,35200,35800,36300,36900,37400,38000,38500,38900,39300,39800,40300,40800,41500,42400,43400,44500,45600,46800,47900,48900,50000,51100,52400,53700,55100,56600,58100,59600,61100,62500,63900,65200,66300,67300,68200,68900,69500,69800,70000,70000,70000,70100,70600,71500,72700,74100,75500,76700,77700,78500,79200,80100,81200,82600,84200,85900,87500,88700,89700,90300,90700,91000,91400,91800,92300,92800,93300,93700,94200,94700,95200,95700,96100,96500,96800,97000,97200,97400,97600,97700,97800,97900,98000,98100,98100,98200,98200,98200,98300,98300,98300,98200,98200,98100,98100,98000,97900,97700,97600,97400,97100,96900,96600,96400,96000,95700,95400,95000,94600,94300,93900,93500,93100,92700,92300,91900,91500,91100,90700,90400,90000,89700,89300,89000,88600,88300,88000,87700,87400,87100,86800,86500,86200,85900,85600,85400,85100,84800,84500,84200,84000,83700,83400,83100,82800,82500,82200,81900,81600,81300,81000,80700,80300 -Sierra Leone,794000,794000,794000,794000,794000,794000,794000,794000,794000,794000,794000,795000,795000,796000,797000,798000,800000,801000,804000,806000,809000,811000,815000,818000,822000,826000,830000,835000,839000,845000,850000,856000,861000,867000,873000,879000,885000,891000,897000,903000,909000,915000,921000,927000,933000,940000,946000,952000,959000,965000,972000,979000,987000,995000,1000000,1010000,1020000,1030000,1030000,1040000,1050000,1060000,1070000,1080000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1350000,1360000,1370000,1380000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1470000,1480000,1490000,1500000,1510000,1520000,1540000,1550000,1560000,1570000,1580000,1600000,1610000,1620000,1630000,1640000,1660000,1670000,1680000,1690000,1700000,1710000,1720000,1730000,1750000,1760000,1770000,1780000,1790000,1810000,1820000,1830000,1840000,1850000,1870000,1880000,1890000,1900000,1920000,1930000,1940000,1960000,1970000,1980000,2000000,2010000,2020000,2040000,2060000,2080000,2110000,2130000,2160000,2180000,2210000,2240000,2270000,2300000,2330000,2360000,2400000,2440000,2470000,2510000,2550000,2600000,2640000,2690000,2750000,2800000,2860000,2930000,2990000,3060000,3130000,3210000,3290000,3370000,3450000,3530000,3610000,3700000,3800000,3910000,4030000,4150000,4250000,4310000,4340000,4330000,4310000,4280000,4270000,4280000,4310000,4350000,4440000,4560000,4740000,4960000,5200000,5440000,5660000,5850000,6020000,6170000,6310000,6460000,6610000,6770000,6920000,7080000,7240000,7400000,7560000,7720000,7880000,8050000,8210000,8380000,8540000,8710000,8870000,9040000,9210000,9380000,9550000,9720000,9890000,10100000,10200000,10400000,10600000,10700000,10900000,11100000,11200000,11400000,11600000,11700000,11900000,12100000,12200000,12400000,12500000,12700000,12800000,13000000,13100000,13300000,13400000,13500000,13700000,13800000,13900000,14100000,14200000,14300000,14400000,14600000,14700000,14800000,14900000,15000000,15100000,15200000,15300000,15400000,15500000,15600000,15600000,15700000,15800000,15800000,15900000,16000000,16000000,16100000,16100000,16200000,16200000,16300000,16300000,16300000,16400000,16400000,16400000,16400000,16500000,16500000,16500000,16500000,16500000,16500000,16500000,16500000,16500000,16500000 -Singapore,30000,30000,30000,30000,30000,30000,30000,30000,30000,30000,30000,30000,30100,30200,30300,30500,30700,30900,31100,31400,31800,32100,32500,33000,33500,34000,34500,35200,35800,36500,37200,38000,38800,39600,40500,41300,42200,43100,44000,44900,45800,46800,47800,48800,49800,50800,51900,53000,54100,55200,56400,57500,58700,59900,61200,62400,63700,65000,66300,67700,69100,70600,72100,73700,75400,77200,79100,81000,83100,85200,87500,89900,92400,94500,97200,100000,103000,106000,109000,113000,116000,120000,123000,127000,131000,135000,139000,144000,148000,153000,158000,163000,168000,173000,179000,185000,190000,196000,203000,209000,216000,223000,229000,237000,244000,252000,260000,268000,276000,285000,294000,303000,313000,322000,331000,341000,350000,360000,370000,380000,396000,415000,437000,454000,473000,490000,511000,532000,553000,574000,577000,579000,552000,540000,537000,566000,608000,654000,696000,729000,749000,771000,794000,821000,849000,877000,907000,935000,958000,986000,1020000,1070000,1120000,1180000,1240000,1310000,1370000,1440000,1510000,1570000,1630000,1690000,1740000,1790000,1830000,1880000,1920000,1960000,2000000,2030000,2070000,2110000,2150000,2190000,2230000,2260000,2290000,2320000,2340000,2370000,2410000,2460000,2520000,2580000,2640000,2710000,2760000,2820000,2880000,2940000,3010000,3100000,3190000,3290000,3390000,3480000,3570000,3650000,3730000,3820000,3910000,4020000,4130000,4250000,4370000,4490000,4610000,4730000,4850000,4970000,5070000,5180000,5270000,5360000,5450000,5540000,5620000,5710000,5790000,5870000,5940000,5990000,6040000,6080000,6120000,6160000,6200000,6230000,6270000,6310000,6340000,6370000,6400000,6430000,6460000,6480000,6500000,6520000,6540000,6550000,6560000,6570000,6580000,6590000,6590000,6590000,6590000,6590000,6590000,6580000,6570000,6570000,6560000,6540000,6530000,6520000,6500000,6490000,6470000,6450000,6430000,6410000,6390000,6370000,6350000,6330000,6310000,6280000,6260000,6240000,6210000,6190000,6170000,6140000,6120000,6090000,6070000,6040000,6020000,5990000,5970000,5940000,5910000,5890000,5860000,5840000,5810000,5780000,5760000,5730000,5700000,5680000,5650000,5620000,5590000,5570000,5540000,5510000,5490000,5460000,5430000 -Slovak Republic,2140000,2140000,2140000,2140000,2140000,2140000,2140000,2140000,2140000,2140000,2140000,2140000,2140000,2140000,2140000,2150000,2150000,2150000,2150000,2160000,2160000,2170000,2170000,2170000,2180000,2190000,2190000,2200000,2210000,2210000,2220000,2230000,2240000,2240000,2250000,2260000,2270000,2280000,2290000,2290000,2300000,2310000,2320000,2330000,2340000,2350000,2350000,2360000,2370000,2380000,2390000,2400000,2410000,2410000,2420000,2430000,2440000,2450000,2460000,2470000,2480000,2480000,2490000,2500000,2510000,2520000,2530000,2540000,2550000,2560000,2570000,2570000,2580000,2590000,2600000,2610000,2620000,2630000,2640000,2650000,2660000,2670000,2680000,2690000,2700000,2710000,2720000,2730000,2740000,2750000,2760000,2760000,2770000,2780000,2790000,2800000,2810000,2820000,2830000,2850000,2860000,2870000,2880000,2890000,2900000,2910000,2920000,2930000,2940000,2950000,2960000,2970000,2980000,2990000,3000000,3010000,3020000,3030000,3050000,3060000,3070000,3080000,3090000,3100000,3110000,3120000,3140000,3150000,3160000,3170000,3180000,3190000,3200000,3220000,3230000,3240000,3250000,3260000,3280000,3290000,3300000,3310000,3320000,3340000,3350000,3360000,3370000,3380000,3400000,3410000,3440000,3510000,3590000,3660000,3740000,3820000,3890000,3950000,4020000,4080000,4140000,4200000,4250000,4300000,4340000,4380000,4420000,4450000,4480000,4510000,4540000,4580000,4620000,4660000,4710000,4750000,4800000,4850000,4900000,4950000,5000000,5040000,5070000,5110000,5140000,5170000,5190000,5220000,5240000,5270000,5290000,5310000,5330000,5350000,5360000,5380000,5380000,5390000,5400000,5400000,5400000,5400000,5400000,5400000,5400000,5400000,5400000,5400000,5400000,5400000,5400000,5410000,5420000,5430000,5430000,5440000,5440000,5450000,5450000,5450000,5450000,5450000,5450000,5450000,5440000,5440000,5430000,5420000,5410000,5400000,5390000,5370000,5360000,5340000,5320000,5300000,5280000,5260000,5240000,5210000,5190000,5170000,5150000,5120000,5100000,5080000,5060000,5030000,5010000,4990000,4960000,4940000,4920000,4890000,4870000,4850000,4820000,4800000,4770000,4750000,4720000,4690000,4660000,4640000,4610000,4580000,4550000,4520000,4490000,4460000,4430000,4400000,4370000,4340000,4320000,4290000,4260000,4240000,4210000,4190000,4170000,4140000,4120000,4100000,4080000,4060000,4050000,4030000,4010000,4000000,3980000,3960000,3950000,3930000,3920000,3900000,3890000,3880000,3860000,3850000,3830000 -Slovenia,470000,470000,470000,470000,470000,470000,470000,470000,470000,470000,470000,470000,470000,471000,472000,473000,474000,475000,477000,479000,481000,483000,486000,488000,491000,494000,498000,501000,505000,509000,514000,518000,523000,527000,532000,537000,541000,546000,551000,556000,561000,566000,571000,576000,581000,586000,591000,596000,602000,607000,612000,618000,623000,629000,634000,640000,645000,651000,657000,663000,669000,675000,680000,686000,693000,699000,705000,711000,717000,724000,730000,737000,743000,749000,756000,763000,769000,776000,783000,790000,797000,804000,811000,818000,825000,832000,840000,847000,854000,862000,870000,877000,885000,893000,901000,909000,917000,925000,933000,941000,950000,958000,966000,975000,983000,992000,1000000,1010000,1020000,1030000,1040000,1050000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1240000,1250000,1260000,1270000,1280000,1290000,1300000,1310000,1330000,1340000,1350000,1360000,1370000,1390000,1400000,1410000,1420000,1440000,1450000,1460000,1470000,1480000,1490000,1500000,1510000,1530000,1540000,1550000,1560000,1580000,1590000,1600000,1610000,1610000,1620000,1630000,1640000,1640000,1650000,1660000,1670000,1680000,1690000,1710000,1730000,1740000,1760000,1780000,1800000,1820000,1840000,1860000,1880000,1900000,1930000,1950000,1960000,1980000,1990000,2000000,2010000,2010000,2010000,2000000,2000000,1990000,1990000,1990000,1990000,1990000,1990000,1990000,1990000,1990000,1990000,2000000,2000000,2010000,2020000,2040000,2050000,2050000,2060000,2070000,2070000,2070000,2080000,2080000,2080000,2080000,2080000,2080000,2080000,2080000,2080000,2080000,2070000,2070000,2070000,2060000,2060000,2050000,2050000,2050000,2040000,2040000,2030000,2020000,2020000,2010000,2010000,2000000,2000000,1990000,1980000,1980000,1970000,1960000,1960000,1950000,1940000,1930000,1930000,1920000,1910000,1900000,1890000,1890000,1880000,1870000,1860000,1850000,1840000,1830000,1830000,1820000,1810000,1800000,1790000,1780000,1780000,1770000,1760000,1760000,1750000,1740000,1740000,1730000,1720000,1720000,1710000,1710000,1710000,1700000,1700000,1700000,1690000,1690000,1690000,1690000,1680000,1680000,1680000,1680000,1670000,1670000,1670000,1670000,1670000,1660000,1660000 -Solomon Islands,57000,57000,57000,57000,57000,57000,57000,57000,57000,57000,57000,57000,57000,57100,57100,57200,57300,57300,57400,57600,57700,57800,58000,58100,58300,58500,58700,58900,59100,59400,59600,59900,60200,60500,60700,61000,61300,61600,61800,62100,62400,62700,63000,63200,63500,63800,64100,64400,64700,65000,65300,65400,65600,65700,65800,66000,66100,66200,66400,66500,66600,66800,66900,67100,67200,67300,67500,67600,67700,67900,68000,68100,68300,68400,68500,68700,68800,68900,69100,69200,69300,69500,69600,69700,69900,70000,70100,70300,70400,70500,70700,70800,70900,71100,71200,71300,71400,71600,71700,71800,72000,72100,72200,72300,72500,72600,72700,72800,73000,73100,73200,73300,73500,73600,73700,73800,74000,74100,74500,74800,75200,75500,75900,76200,76500,76900,77200,77600,77900,78300,78600,79000,79500,80000,80600,81100,81700,82200,82800,83300,83900,84400,85000,85500,86100,86700,87300,87900,88400,89000,89800,91800,94100,96600,99200,102000,105000,108000,111000,114000,118000,121000,125000,129000,133000,137000,141000,145000,150000,155000,160000,166000,173000,179000,186000,193000,201000,208000,215000,223000,231000,238000,246000,255000,263000,271000,279000,287000,295000,303000,312000,321000,330000,339000,349000,359000,369000,380000,391000,402000,413000,424000,435000,447000,458000,470000,481000,493000,504000,516000,528000,540000,552000,564000,576000,587000,599000,611000,623000,635000,647000,659000,672000,684000,696000,709000,721000,734000,747000,760000,773000,786000,799000,812000,825000,839000,852000,865000,879000,892000,905000,918000,931000,945000,957000,970000,983000,996000,1010000,1020000,1030000,1040000,1060000,1070000,1080000,1090000,1100000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1350000,1350000,1360000,1370000,1380000,1380000,1390000,1400000,1400000,1410000,1410000,1420000,1420000,1430000,1430000,1440000,1440000,1450000,1450000,1450000,1460000 -Somalia,991000,992000,992000,993000,993000,994000,994000,994000,995000,995000,996000,996000,997000,999000,1000000,1000000,1000000,1010000,1010000,1010000,1020000,1020000,1020000,1030000,1030000,1040000,1040000,1050000,1050000,1060000,1070000,1070000,1080000,1090000,1090000,1100000,1110000,1110000,1120000,1130000,1130000,1140000,1150000,1160000,1160000,1170000,1180000,1190000,1190000,1200000,1210000,1220000,1220000,1230000,1240000,1250000,1250000,1260000,1270000,1280000,1290000,1290000,1300000,1310000,1320000,1330000,1330000,1340000,1350000,1360000,1370000,1380000,1390000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1460000,1470000,1480000,1490000,1500000,1510000,1520000,1530000,1540000,1550000,1560000,1570000,1580000,1590000,1600000,1610000,1620000,1630000,1640000,1650000,1660000,1670000,1680000,1690000,1700000,1710000,1720000,1730000,1740000,1750000,1760000,1770000,1790000,1800000,1810000,1820000,1830000,1840000,1850000,1870000,1880000,1890000,1900000,1910000,1920000,1940000,1950000,1960000,1970000,1990000,2000000,2010000,2020000,2040000,2050000,2060000,2080000,2090000,2100000,2120000,2130000,2140000,2160000,2170000,2180000,2200000,2210000,2220000,2240000,2260000,2310000,2350000,2400000,2440000,2490000,2540000,2590000,2640000,2700000,2760000,2810000,2870000,2940000,3000000,3070000,3140000,3230000,3310000,3390000,3440000,3470000,3480000,3510000,3630000,3880000,4290000,4830000,5420000,5950000,6360000,6600000,6720000,6740000,6750000,6790000,6890000,7020000,7170000,7300000,7400000,7460000,7490000,7520000,7580000,7700000,7890000,8140000,8420000,8720000,9010000,9290000,9560000,9840000,10100000,10400000,10700000,11000000,11400000,11700000,12100000,12400000,12800000,13100000,13500000,13900000,14300000,14700000,15200000,15600000,16100000,16600000,17100000,17600000,18100000,18700000,19200000,19800000,20400000,20900000,21500000,22100000,22800000,23400000,24000000,24700000,25400000,26000000,26700000,27400000,28100000,28900000,29600000,30300000,31100000,31900000,32600000,33400000,34200000,35000000,35900000,36700000,37500000,38300000,39200000,40000000,40900000,41800000,42600000,43500000,44400000,45300000,46200000,47100000,48000000,48900000,49800000,50700000,51600000,52500000,53400000,54300000,55200000,56100000,57000000,58000000,58900000,59800000,60700000,61600000,62500000,63400000,64200000,65100000,66000000,66900000,67700000,68600000,69400000,70300000,71100000,72000000,72800000,73600000,74400000,75200000,76000000,76700000,77500000,78200000,79000000 -South Africa,1440000,1450000,1450000,1460000,1460000,1470000,1470000,1480000,1480000,1490000,1490000,1500000,1510000,1510000,1520000,1530000,1540000,1550000,1560000,1570000,1580000,1590000,1600000,1610000,1630000,1640000,1650000,1670000,1680000,1700000,1710000,1730000,1750000,1770000,1780000,1800000,1820000,1840000,1860000,1880000,1890000,1910000,1930000,1950000,1970000,1990000,2010000,2030000,2050000,2070000,2090000,2110000,2130000,2150000,2180000,2200000,2220000,2240000,2260000,2290000,2310000,2330000,2360000,2390000,2420000,2450000,2480000,2510000,2550000,2590000,2630000,2670000,2710000,2750000,2800000,2850000,2900000,2950000,3010000,3070000,3140000,3200000,3260000,3330000,3400000,3470000,3540000,3610000,3680000,3760000,3840000,3920000,4000000,4080000,4160000,4250000,4340000,4430000,4520000,4610000,4710000,4800000,4900000,5000000,5100000,5210000,5320000,5420000,5530000,5650000,5770000,5880000,6000000,6130000,6260000,6400000,6540000,6680000,6830000,6970000,7130000,7280000,7440000,7600000,7770000,7940000,8110000,8290000,8470000,8660000,8840000,9040000,9240000,9440000,9640000,9850000,10100000,10300000,10500000,10700000,11000000,11200000,11500000,11700000,12000000,12200000,12500000,12800000,13000000,13300000,13600000,14000000,14300000,14600000,15000000,15400000,15800000,16200000,16600000,17000000,17500000,17900000,18400000,18900000,19400000,19900000,20500000,21000000,21600000,22200000,22800000,23500000,24100000,24800000,25500000,26200000,26900000,27600000,28300000,29000000,29800000,30500000,31300000,32100000,32900000,33700000,34500000,35200000,36000000,36700000,37600000,38400000,39400000,40300000,41200000,42100000,42900000,43700000,44400000,45100000,45700000,46400000,47000000,47600000,48200000,48800000,49400000,49900000,50400000,51000000,51600000,52300000,53000000,53800000,54500000,55300000,56000000,56700000,57400000,58100000,58700000,59400000,60000000,60600000,61200000,61800000,62400000,62900000,63400000,64000000,64500000,65000000,65500000,65900000,66400000,66900000,67300000,67800000,68200000,68700000,69100000,69500000,69900000,70300000,70700000,71000000,71400000,71800000,72100000,72400000,72800000,73100000,73400000,73700000,73900000,74200000,74500000,74700000,74900000,75200000,75400000,75600000,75800000,75900000,76100000,76300000,76400000,76600000,76700000,76800000,77000000,77100000,77200000,77200000,77300000,77400000,77400000,77500000,77500000,77600000,77600000,77600000,77600000,77600000,77600000,77600000,77600000,77500000,77500000,77400000,77400000,77300000,77300000,77200000,77100000,77000000,76900000,76800000,76700000,76600000,76500000 -South Korea,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9400000,9410000,9410000,9410000,9410000,9420000,9420000,9420000,9430000,9430000,9440000,9440000,9440000,9450000,9450000,9460000,9460000,9470000,9470000,9480000,9480000,9490000,9490000,9500000,9510000,9510000,9520000,9520000,9530000,9540000,9540000,9550000,9560000,9570000,9580000,9580000,9590000,9600000,9610000,9620000,9630000,9640000,9650000,9660000,9670000,9680000,9690000,9700000,9710000,9720000,9730000,9730000,9740000,9750000,9760000,9770000,9770000,9780000,9780000,9790000,9800000,9800000,9810000,9810000,9820000,9820000,9830000,9830000,9840000,9840000,9850000,9850000,9860000,9860000,9870000,9870000,9880000,9880000,9890000,9900000,9900000,9910000,9930000,9940000,9950000,9970000,9990000,10000000,10000000,10000000,10100000,10100000,10200000,10300000,10400000,10600000,10800000,10900000,11100000,11300000,11500000,11600000,11800000,12100000,12300000,12500000,12800000,13000000,13200000,13400000,13600000,13700000,13900000,14100000,14400000,14600000,14800000,15000000,15200000,15300000,15400000,15500000,15700000,15900000,16100000,16400000,16600000,17300000,18000000,18600000,18900000,19100000,19200000,19500000,19800000,20300000,20900000,21500000,22200000,23000000,23800000,24600000,25300000,26100000,26800000,27500000,28200000,28900000,29600000,30200000,30900000,31600000,32200000,32900000,33500000,34200000,34800000,35400000,35900000,36500000,37000000,37500000,38100000,38600000,39200000,39800000,40300000,40800000,41300000,41700000,42100000,42500000,42900000,43400000,43900000,44300000,44800000,45300000,45800000,46200000,46600000,47000000,47400000,47700000,48000000,48300000,48500000,48700000,48900000,49100000,49200000,49400000,49600000,49700000,50000000,50200000,50400000,50600000,50800000,51000000,51200000,51300000,51500000,51700000,51800000,52000000,52100000,52200000,52300000,52400000,52500000,52600000,52700000,52800000,52800000,52800000,52800000,52800000,52800000,52700000,52600000,52500000,52400000,52300000,52100000,52000000,51800000,51600000,51400000,51200000,50900000,50700000,50500000,50200000,49900000,49700000,49400000,49100000,48900000,48600000,48300000,48000000,47700000,47400000,47200000,46900000,46600000,46300000,46000000,45800000,45500000,45200000,44900000,44600000,44400000,44100000,43800000,43600000,43300000,43000000,42800000,42500000,42300000,42100000,41800000,41600000,41400000,41100000,40900000,40700000,40500000,40400000,40200000,40000000,39800000,39700000,39500000,39400000,39200000,39100000,38900000,38800000,38700000 -South Sudan,1030000,1030000,1030000,1030000,1030000,1030000,1040000,1040000,1040000,1040000,1040000,1040000,1040000,1050000,1050000,1050000,1050000,1060000,1060000,1060000,1060000,1070000,1070000,1070000,1080000,1080000,1090000,1090000,1090000,1100000,1100000,1110000,1110000,1120000,1120000,1130000,1130000,1140000,1140000,1150000,1150000,1160000,1160000,1170000,1170000,1180000,1180000,1190000,1200000,1200000,1210000,1220000,1230000,1240000,1250000,1270000,1280000,1290000,1300000,1320000,1330000,1340000,1360000,1370000,1380000,1400000,1410000,1420000,1440000,1450000,1460000,1480000,1490000,1500000,1520000,1530000,1550000,1560000,1580000,1590000,1600000,1620000,1630000,1650000,1660000,1680000,1690000,1710000,1730000,1740000,1760000,1770000,1790000,1800000,1820000,1840000,1850000,1870000,1890000,1900000,1920000,1940000,1950000,1970000,1990000,2000000,2020000,2040000,2060000,2070000,2090000,2110000,2130000,2150000,2170000,2180000,2200000,2220000,2230000,2240000,2250000,2260000,2270000,2280000,2290000,2300000,2310000,2320000,2330000,2340000,2350000,2360000,2370000,2380000,2390000,2400000,2410000,2420000,2440000,2450000,2460000,2470000,2480000,2490000,2500000,2510000,2520000,2530000,2550000,2560000,2580000,2600000,2630000,2650000,2690000,2720000,2760000,2810000,2850000,2900000,2960000,3010000,3070000,3130000,3200000,3260000,3330000,3410000,3480000,3560000,3650000,3730000,3820000,3920000,4020000,4120000,4220000,4330000,4450000,4570000,4710000,4850000,5010000,5170000,5320000,5450000,5570000,5670000,5740000,5780000,5770000,5710000,5600000,5490000,5430000,5460000,5590000,5810000,6100000,6410000,6700000,6970000,7240000,7500000,7790000,8110000,8470000,8860000,9260000,9670000,10100000,10400000,10800000,11200000,11500000,11900000,12200000,12600000,12900000,13300000,13600000,14000000,14300000,14700000,15000000,15400000,15800000,16100000,16500000,16900000,17300000,17600000,18000000,18400000,18800000,19200000,19600000,20000000,20400000,20800000,21200000,21600000,22000000,22400000,22800000,23300000,23700000,24100000,24500000,24900000,25400000,25800000,26200000,26600000,27100000,27500000,27900000,28300000,28800000,29200000,29600000,30000000,30400000,30800000,31200000,31600000,32000000,32400000,32800000,33200000,33600000,34000000,34400000,34800000,35100000,35500000,35800000,36200000,36600000,36900000,37200000,37600000,37900000,38200000,38600000,38900000,39200000,39500000,39800000,40100000,40300000,40600000,40900000,41100000,41400000,41600000,41900000,42100000,42400000,42600000,42800000 -Spain,11500000,11600000,11600000,11600000,11700000,11700000,11700000,11800000,11800000,11800000,11900000,11900000,11900000,12000000,12000000,12100000,12100000,12200000,12200000,12300000,12300000,12400000,12500000,12500000,12600000,12700000,12700000,12800000,12900000,13000000,13100000,13100000,13200000,13300000,13400000,13500000,13600000,13700000,13800000,13900000,13900000,14000000,14100000,14200000,14300000,14400000,14500000,14600000,14700000,14800000,14800000,14900000,15000000,15100000,15200000,15300000,15300000,15400000,15500000,15500000,15600000,15700000,15700000,15800000,15900000,15900000,16000000,16000000,16100000,16200000,16200000,16300000,16400000,16400000,16500000,16600000,16600000,16700000,16800000,16800000,16900000,17000000,17100000,17200000,17300000,17300000,17400000,17500000,17600000,17700000,17800000,17900000,18000000,18000000,18100000,18200000,18300000,18400000,18500000,18600000,18700000,18800000,18900000,19000000,19100000,19200000,19400000,19500000,19600000,19800000,19900000,20000000,20200000,20300000,20500000,20600000,20700000,20900000,21000000,21200000,21300000,21500000,21700000,21900000,22100000,22400000,22600000,22800000,23000000,23300000,23500000,23700000,24000000,24200000,24400000,24700000,24900000,25100000,25400000,25600000,25800000,26100000,26300000,26500000,26700000,26900000,27100000,27300000,27500000,27800000,28100000,28200000,28400000,28700000,28900000,29100000,29400000,29600000,29900000,30200000,30500000,30800000,31200000,31500000,31900000,32200000,32600000,32900000,33300000,33600000,34000000,34400000,34800000,35200000,35600000,36000000,36400000,36800000,37100000,37500000,37800000,38100000,38300000,38500000,38700000,38800000,39000000,39100000,39100000,39200000,39300000,39400000,39500000,39600000,39800000,39900000,40000000,40100000,40300000,40500000,40900000,41400000,42000000,42700000,43400000,44000000,44700000,45400000,46000000,46500000,46800000,46900000,46900000,46700000,46500000,46400000,46300000,46400000,46400000,46400000,46500000,46400000,46400000,46400000,46300000,46300000,46300000,46200000,46200000,46200000,46100000,46100000,46000000,46000000,45900000,45900000,45800000,45700000,45700000,45600000,45500000,45500000,45400000,45300000,45200000,45100000,45000000,44800000,44700000,44600000,44400000,44200000,44000000,43900000,43600000,43400000,43200000,43000000,42800000,42500000,42300000,42000000,41800000,41500000,41300000,41000000,40800000,40500000,40300000,40100000,39800000,39600000,39400000,39200000,39000000,38900000,38700000,38500000,38400000,38300000,38100000,38000000,37900000,37800000,37800000,37700000,37600000,37500000,37400000,37400000,37300000,37200000,37100000,37000000,36900000,36900000,36800000,36700000,36600000,36500000,36400000 -Sri Lanka,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1210000,1220000,1220000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1300000,1310000,1330000,1350000,1370000,1390000,1410000,1440000,1470000,1490000,1520000,1560000,1590000,1620000,1650000,1690000,1720000,1750000,1790000,1830000,1860000,1900000,1930000,1970000,2010000,2040000,2070000,2110000,2140000,2180000,2210000,2240000,2280000,2310000,2340000,2370000,2400000,2430000,2460000,2490000,2520000,2550000,2570000,2600000,2630000,2660000,2680000,2710000,2740000,2760000,2790000,2820000,2840000,2870000,2900000,2920000,2950000,2980000,3000000,3030000,3050000,3080000,3110000,3130000,3170000,3200000,3230000,3280000,3320000,3360000,3410000,3460000,3510000,3570000,3620000,3680000,3740000,3810000,3870000,3940000,4020000,4090000,4160000,4230000,4300000,4370000,4460000,4520000,4570000,4640000,4710000,4760000,4780000,4820000,4880000,4940000,5010000,5080000,5150000,5210000,5280000,5330000,5380000,5430000,5470000,5510000,5590000,5630000,5670000,5670000,5710000,5750000,5790000,5830000,5870000,5910000,5960000,6010000,6050000,6100000,6130000,6180000,6270000,6420000,6610000,6810000,7000000,7200000,7600000,7970000,8110000,8260000,8420000,8590000,8780000,8980000,9190000,9410000,9640000,9870000,10100000,10400000,10600000,10800000,11100000,11400000,11700000,11900000,12200000,12500000,12700000,13000000,13300000,13500000,13800000,14000000,14300000,14500000,14800000,15000000,15300000,15500000,15700000,16000000,16200000,16400000,16600000,16900000,17100000,17300000,17500000,17700000,17900000,18100000,18200000,18400000,18500000,18600000,18700000,18800000,18900000,19100000,19200000,19400000,19500000,19700000,19800000,19900000,20100000,20200000,20300000,20400000,20500000,20600000,20700000,20800000,20900000,21000000,21000000,21100000,21100000,21200000,21300000,21300000,21300000,21400000,21400000,21400000,21500000,21500000,21500000,21500000,21500000,21500000,21500000,21500000,21500000,21500000,21400000,21400000,21400000,21300000,21300000,21200000,21200000,21100000,21000000,21000000,20900000,20800000,20700000,20600000,20500000,20400000,20300000,20200000,20100000,20000000,19900000,19800000,19700000,19600000,19500000,19400000,19300000,19100000,19000000,18900000,18800000,18700000,18600000,18500000,18300000,18200000,18100000,18000000,17900000,17800000,17600000,17500000,17400000,17300000,17100000,17000000,16900000,16800000,16700000,16500000,16400000,16300000,16200000,16000000,15900000,15800000,15700000,15500000,15400000,15300000,15200000,15000000 -St. Kitts and Nevis,17200,17200,17200,17200,17200,17200,17200,17200,17200,17200,17200,17200,17200,17200,17300,17300,17300,17400,17400,17500,17600,17600,17700,17800,17900,18000,18100,18200,18300,18400,18600,18700,18900,19000,19100,19300,19400,19600,19700,19900,20000,20200,20300,20500,20700,20800,21000,21100,21300,21500,21600,21800,21900,22100,22300,22500,22600,22800,23000,23100,23300,23500,23700,23900,24000,24200,24400,24600,24800,25000,25200,25400,25500,25700,25900,26100,26300,26500,26700,26900,27100,27300,27600,27800,28000,28200,28400,28600,28800,29100,29300,29500,29700,29900,30200,30400,30600,30900,31100,31300,31600,31800,32100,32300,32600,32800,33100,33300,33600,33800,34100,34300,34600,34900,35100,35400,35700,35900,36200,36500,36800,37000,37300,37600,37900,38200,38500,38800,39100,39400,39600,40000,40300,40600,40900,41200,41500,41800,42100,42400,42800,43100,43400,43800,44100,44400,44800,45100,45400,45800,46000,46100,46500,47100,47700,48500,49300,50000,50500,51000,51200,51200,51000,50500,49900,49200,48400,47400,46400,45500,44900,44500,44300,44300,44300,44300,44100,43900,43700,43500,43200,43000,42800,42500,42300,42000,41700,41400,41000,40900,40800,41000,41400,41800,42400,42900,43400,43800,44300,44800,45400,46000,46600,47300,48000,48600,49200,49800,50300,50900,51400,52000,52600,53200,53700,54300,54800,55300,55900,56300,56800,57300,57700,58100,58500,58900,59300,59600,60000,60300,60600,60900,61200,61400,61600,61900,62100,62300,62400,62600,62700,62900,63000,63100,63200,63200,63300,63300,63400,63400,63400,63400,63300,63300,63300,63200,63100,63000,62900,62900,62700,62600,62500,62300,62200,62100,61900,61700,61600,61400,61200,61000,60900,60700,60500,60300,60100,59900,59700,59500,59300,59200,59000,58800,58600,58400,58200,58000,57800,57600,57400,57200,57000,56800,56600,56400,56100,55900,55700,55500,55300 -St. Lucia,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24000,24100,24100,24200,24300,24400,24500,24600,24800,24900,25100,25300,25600,25800,26100,26400,26800,27100,27500,27900,28400,28800,29300,29800,30300,30800,31400,31900,32500,33100,33700,34300,34900,35400,36100,36600,37200,37700,38300,38800,39300,39900,40300,40700,41000,41400,41900,42300,42900,43400,44000,44700,45400,46200,46900,47600,48100,48600,49100,49600,49800,50000,50000,49900,49800,49700,49600,49600,49500,49700,50000,50300,50600,50900,51300,51600,51900,52200,52600,53100,53700,54400,55000,55700,56400,57000,57700,58400,59100,59800,60500,61300,62000,62700,63500,64200,65000,65800,66600,67400,68200,69000,69800,71400,73700,76900,80200,82800,83900,84800,85500,86100,86700,87200,87700,88300,89000,89900,90900,92100,93400,94800,96300,97900,99500,101000,103000,104000,105000,106000,107000,109000,110000,111000,113000,115000,116000,118000,120000,121000,123000,124000,126000,129000,131000,134000,136000,138000,140000,142000,144000,145000,147000,149000,151000,153000,155000,157000,158000,160000,161000,162000,164000,165000,167000,169000,171000,173000,174000,175000,176000,176000,177000,178000,179000,180000,180000,181000,182000,183000,183000,184000,184000,185000,185000,186000,186000,186000,187000,187000,187000,187000,187000,187000,187000,187000,187000,187000,186000,186000,186000,185000,185000,184000,184000,183000,183000,182000,182000,181000,180000,180000,179000,178000,177000,176000,175000,174000,174000,173000,172000,171000,169000,168000,167000,166000,165000,164000,163000,162000,160000,159000,158000,157000,155000,154000,153000,152000,150000,149000,148000,146000,145000,144000,143000,141000,140000,139000,138000,137000,135000,134000,133000,132000,131000,130000,129000,128000 -St. Vincent and the Grenadines,25800,25800,25800,25800,25800,25800,25800,25800,25800,25800,25800,25800,25800,25800,25800,25900,25900,26000,26000,26100,26100,26200,26300,26300,26400,26500,26600,26700,26800,27000,27100,27200,27400,27500,27600,27800,27900,28000,28200,28300,28400,28600,28700,28900,29000,29200,29300,29500,29600,29800,30000,30100,30300,30500,30700,30900,31200,31400,31700,31900,32200,32500,32800,33100,33500,33800,34200,34600,35000,35400,35800,36200,36700,37100,37500,37900,38300,38700,39000,39400,39700,40100,40300,40500,40800,40900,41000,41100,41200,41400,41600,41900,42300,42700,43200,43800,44500,45000,45500,45800,46100,46200,46500,46300,46000,45600,45000,44400,43800,43200,42800,42300,42200,42400,42600,42800,43000,43200,43400,43600,43800,44100,44400,44800,45200,45600,46000,46400,46800,47200,47600,48200,48900,49700,50600,51500,52300,53200,54200,55100,56000,57000,58000,59000,60000,61000,62100,63300,64500,65800,67000,68100,69300,70600,72000,73500,75100,76600,78200,79600,80900,82100,83200,84200,85100,86000,86900,87700,88600,89500,90500,91400,92500,93500,94600,95600,96600,97600,98600,99600,101000,101000,102000,103000,104000,104000,105000,106000,107000,107000,108000,108000,108000,108000,108000,108000,108000,108000,108000,108000,108000,108000,108000,108000,109000,109000,109000,109000,109000,109000,109000,109000,109000,109000,109000,109000,110000,110000,110000,110000,111000,111000,111000,111000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,112000,111000,111000,111000,110000,110000,110000,109000,109000,109000,108000,108000,107000,107000,106000,106000,105000,105000,104000,104000,103000,102000,102000,101000,101000,99900,99300,98600,98000,97300,96600,95900,95200,94500,93800,93100,92400,91700,91000,90200,89500,88800,88000,87300,86600,85800,85100,84400,83700,82900,82200,81500,80800,80100,79400,78700,78000,77300 -Sudan,3990000,4000000,4000000,4010000,4020000,4020000,4030000,4030000,4040000,4040000,4050000,4050000,4060000,4070000,4080000,4080000,4090000,4100000,4110000,4120000,4140000,4150000,4160000,4170000,4190000,4200000,4220000,4240000,4250000,4270000,4290000,4310000,4330000,4350000,4370000,4390000,4410000,4420000,4440000,4460000,4480000,4500000,4520000,4540000,4560000,4580000,4610000,4630000,4650000,4670000,4690000,4690000,4700000,4700000,4710000,4710000,4720000,4720000,4730000,4730000,4740000,4740000,4750000,4750000,4760000,4760000,4770000,4770000,4780000,4780000,4790000,4790000,4790000,4800000,4800000,4810000,4810000,4810000,4820000,4820000,4830000,4830000,4830000,4840000,4840000,4840000,4850000,4850000,4850000,4860000,4860000,4860000,4870000,4870000,4870000,4880000,4880000,4880000,4880000,4890000,4890000,4890000,4890000,4890000,4900000,4900000,4900000,4900000,4900000,4910000,4910000,4910000,4910000,4910000,4910000,4920000,4920000,4920000,4950000,4970000,4990000,5010000,5040000,5060000,5080000,5100000,5130000,5150000,5170000,5190000,5220000,5240000,5260000,5290000,5310000,5330000,5360000,5380000,5410000,5430000,5450000,5480000,5500000,5530000,5550000,5580000,5600000,5630000,5650000,5680000,5730000,5880000,6040000,6200000,6370000,6550000,6730000,6920000,7120000,7330000,7540000,7770000,8000000,8250000,8500000,8770000,9050000,9340000,9640000,9950000,10300000,10600000,11000000,11300000,11700000,12100000,12600000,13000000,13500000,14000000,14500000,15000000,15600000,16100000,16700000,17200000,17800000,18300000,18900000,19500000,20100000,20900000,21700000,22500000,23300000,24100000,24800000,25400000,26000000,26600000,27300000,27900000,28700000,29400000,30200000,30900000,31600000,32300000,33000000,33700000,34400000,35200000,36000000,36800000,37700000,38600000,39600000,40500000,41500000,42500000,43500000,44600000,45700000,46800000,47900000,49000000,50100000,51300000,52500000,53600000,54800000,56100000,57300000,58500000,59700000,61000000,62300000,63500000,64800000,66100000,67400000,68600000,69900000,71200000,72500000,73800000,75100000,76400000,77800000,79100000,80400000,81700000,83000000,84300000,85700000,87000000,88300000,89600000,91000000,92300000,93600000,94900000,96300000,97600000,98900000,100000000,102000000,103000000,104000000,105000000,107000000,108000000,109000000,110000000,112000000,113000000,114000000,115000000,116000000,118000000,119000000,120000000,121000000,122000000,123000000,124000000,125000000,126000000,127000000,128000000,129000000,130000000,131000000,132000000,133000000,134000000,135000000,136000000,137000000,138000000,139000000 -Suriname,80700,80700,80700,80700,80700,80700,80700,80700,80700,80700,80700,80800,80800,80900,81000,81200,81300,81500,81800,82100,82400,82700,83100,83400,83900,84300,84800,85400,85900,86500,87100,87800,88500,89100,89800,90500,91200,91800,92500,93200,93900,94700,95400,96100,96800,97600,98300,99000,99800,101000,101000,102000,103000,104000,104000,105000,106000,107000,107000,108000,109000,110000,111000,112000,112000,113000,114000,115000,116000,117000,117000,118000,119000,120000,121000,122000,123000,124000,125000,125000,126000,127000,128000,129000,130000,131000,132000,133000,134000,135000,136000,137000,138000,139000,140000,141000,142000,143000,144000,145000,147000,148000,149000,150000,151000,152000,153000,154000,155000,157000,158000,159000,160000,161000,162000,164000,165000,166000,167000,169000,170000,171000,172000,174000,175000,176000,178000,179000,180000,182000,183000,185000,186000,187000,189000,190000,192000,193000,195000,196000,198000,199000,201000,202000,204000,205000,207000,208000,210000,211000,215000,223000,230000,236000,243000,250000,257000,265000,273000,282000,290000,298000,306000,315000,323000,332000,341000,351000,360000,367000,371000,373000,371000,368000,365000,363000,361000,361000,361000,362000,363000,363000,364000,365000,368000,371000,377000,384000,391000,399000,407000,415000,423000,430000,437000,444000,450000,456000,462000,467000,472000,478000,483000,488000,494000,499000,504000,510000,515000,521000,526000,532000,537000,543000,548000,553000,558000,563000,568000,573000,578000,582000,587000,591000,595000,599000,603000,607000,610000,614000,617000,620000,623000,625000,628000,630000,633000,635000,637000,638000,640000,641000,643000,644000,645000,646000,647000,647000,648000,648000,648000,649000,649000,649000,649000,648000,648000,648000,647000,647000,646000,645000,645000,644000,643000,642000,641000,640000,639000,637000,636000,635000,633000,632000,630000,629000,627000,625000,623000,622000,620000,618000,616000,614000,612000,610000,608000,605000,603000,601000,599000,597000,594000,592000,590000,588000,586000,583000,581000,579000,576000 -Swaziland,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86000,86100,86100,86100,86100,86200,86200,86200,86300,86300,86300,86400,86400,86400,86400,86500,86500,86500,86600,86600,86600,86700,86700,86700,86700,86800,86800,86800,86900,86900,86900,86900,87000,87000,87000,87100,87100,87100,87200,87200,87200,87200,87300,87300,87300,87400,87400,87400,87500,87800,88300,88600,89600,91100,92900,95100,97200,101000,104000,107000,110000,112000,112000,113000,113000,114000,114000,114000,115000,115000,116000,118000,121000,123000,126000,129000,132000,135000,138000,141000,144000,147000,150000,154000,157000,160000,164000,167000,170000,173000,176000,179000,182000,186000,189000,197000,212000,232000,255000,273000,279000,285000,292000,299000,307000,315000,324000,332000,341000,349000,357000,366000,374000,382000,392000,401000,411000,422000,434000,446000,459000,472000,487000,502000,517000,533000,550000,568000,585000,603000,621000,639000,658000,680000,705000,734000,767000,800000,833000,861000,886000,906000,924000,942000,961000,982000,1000000,1030000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1140000,1160000,1180000,1200000,1230000,1250000,1270000,1300000,1320000,1340000,1370000,1390000,1420000,1440000,1460000,1490000,1510000,1530000,1560000,1580000,1600000,1620000,1640000,1670000,1690000,1710000,1730000,1750000,1770000,1800000,1820000,1840000,1860000,1880000,1900000,1920000,1940000,1960000,1980000,2000000,2020000,2040000,2060000,2080000,2100000,2120000,2130000,2150000,2170000,2180000,2200000,2220000,2230000,2240000,2260000,2270000,2280000,2300000,2310000,2320000,2330000,2340000,2350000,2360000,2370000,2380000,2390000,2400000,2400000,2410000,2420000,2420000,2430000,2430000,2440000,2440000,2440000,2450000,2450000,2450000,2460000,2460000,2460000,2460000,2460000,2460000,2460000,2460000,2460000,2460000,2460000,2460000,2460000,2460000 -Sweden,2350000,2350000,2360000,2380000,2390000,2410000,2420000,2430000,2430000,2420000,2430000,2440000,2450000,2470000,2480000,2500000,2510000,2530000,2550000,2570000,2590000,2620000,2640000,2670000,2690000,2720000,2750000,2770000,2800000,2830000,2860000,2880000,2910000,2940000,2970000,3000000,3020000,3050000,3080000,3100000,3130000,3160000,3190000,3220000,3250000,3280000,3310000,3350000,3380000,3410000,3440000,3480000,3510000,3550000,3590000,3620000,3660000,3700000,3740000,3770000,3810000,3840000,3880000,3910000,3950000,3990000,4020000,4060000,4100000,4140000,4170000,4210000,4250000,4280000,4310000,4350000,4380000,4410000,4440000,4470000,4500000,4540000,4570000,4600000,4630000,4660000,4680000,4700000,4730000,4750000,4780000,4810000,4840000,4870000,4900000,4930000,4970000,5000000,5040000,5070000,5110000,5150000,5180000,5220000,5260000,5290000,5330000,5370000,5410000,5450000,5490000,5540000,5580000,5630000,5680000,5720000,5760000,5790000,5820000,5840000,5870000,5910000,5950000,5990000,6020000,6050000,6080000,6100000,6120000,6130000,6140000,6150000,6170000,6200000,6220000,6240000,6260000,6280000,6300000,6330000,6350000,6380000,6420000,6480000,6540000,6610000,6690000,6760000,6840000,6930000,7010000,7070000,7130000,7180000,7220000,7260000,7300000,7350000,7390000,7440000,7480000,7530000,7580000,7630000,7690000,7750000,7810000,7880000,7940000,8000000,8050000,8100000,8130000,8150000,8170000,8200000,8220000,8250000,8280000,8300000,8320000,8330000,8330000,8330000,8340000,8360000,8380000,8420000,8460000,8510000,8570000,8630000,8690000,8750000,8800000,8840000,8860000,8870000,8870000,8870000,8880000,8900000,8920000,8950000,8990000,9040000,9100000,9160000,9240000,9310000,9390000,9470000,9540000,9620000,9690000,9760000,9840000,9910000,9980000,10100000,10100000,10200000,10300000,10300000,10400000,10400000,10500000,10600000,10600000,10700000,10700000,10800000,10800000,10900000,10900000,10900000,11000000,11000000,11100000,11100000,11200000,11200000,11200000,11300000,11300000,11400000,11400000,11500000,11500000,11600000,11600000,11700000,11700000,11800000,11800000,11900000,11900000,11900000,12000000,12000000,12100000,12100000,12100000,12200000,12200000,12300000,12300000,12300000,12400000,12400000,12400000,12500000,12500000,12600000,12600000,12600000,12700000,12700000,12700000,12800000,12800000,12800000,12900000,12900000,12900000,13000000,13000000,13000000,13000000,13100000,13100000,13100000,13200000,13200000,13200000,13300000,13300000,13300000,13400000,13400000,13400000 -Switzerland,1830000,1830000,1840000,1850000,1860000,1860000,1870000,1880000,1890000,1900000,1900000,1910000,1920000,1930000,1940000,1950000,1960000,1970000,1970000,1980000,1990000,2000000,2010000,2020000,2030000,2050000,2060000,2070000,2080000,2090000,2100000,2110000,2120000,2140000,2150000,2160000,2180000,2190000,2200000,2220000,2230000,2240000,2260000,2270000,2290000,2300000,2310000,2330000,2340000,2360000,2370000,2390000,2400000,2410000,2430000,2440000,2460000,2470000,2480000,2500000,2510000,2530000,2540000,2550000,2570000,2590000,2600000,2620000,2630000,2650000,2660000,2680000,2700000,2710000,2730000,2740000,2760000,2780000,2790000,2810000,2820000,2840000,2850000,2870000,2880000,2890000,2910000,2920000,2930000,2950000,2970000,3000000,3020000,3050000,3080000,3110000,3150000,3180000,3220000,3260000,3300000,3340000,3380000,3420000,3460000,3500000,3550000,3590000,3640000,3680000,3730000,3770000,3810000,3850000,3870000,3880000,3880000,3880000,3870000,3870000,3870000,3870000,3870000,3880000,3890000,3900000,3920000,3950000,3980000,4010000,4040000,4070000,4090000,4110000,4130000,4150000,4160000,4170000,4180000,4200000,4220000,4250000,4280000,4320000,4360000,4400000,4460000,4510000,4570000,4620000,4670000,4730000,4790000,4850000,4910000,4970000,5030000,5080000,5140000,5210000,5300000,5390000,5500000,5620000,5730000,5830000,5920000,5990000,6060000,6110000,6170000,6220000,6270000,6310000,6340000,6360000,6360000,6340000,6320000,6310000,6300000,6320000,6340000,6380000,6420000,6460000,6490000,6530000,6570000,6620000,6670000,6740000,6820000,6890000,6960000,7020000,7060000,7090000,7120000,7140000,7170000,7200000,7240000,7290000,7350000,7410000,7480000,7560000,7650000,7740000,7830000,7930000,8030000,8130000,8230000,8320000,8400000,8480000,8540000,8610000,8670000,8730000,8790000,8850000,8900000,8950000,9010000,9060000,9110000,9160000,9200000,9250000,9290000,9330000,9370000,9410000,9450000,9490000,9520000,9550000,9590000,9620000,9650000,9680000,9710000,9740000,9770000,9800000,9830000,9850000,9880000,9900000,9930000,9950000,9970000,9990000,10000000,10000000,10000000,10000000,10100000,10100000,10100000,10100000,10100000,10100000,10100000,10200000,10200000,10200000,10200000,10200000,10200000,10200000,10200000,10300000,10300000,10300000,10300000,10300000,10300000,10300000,10300000,10300000,10300000,10300000,10400000,10400000,10400000,10400000,10400000,10400000,10400000,10400000,10400000,10400000,10500000,10500000,10500000,10500000,10500000 -Syria,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1340000,1350000,1350000,1350000,1350000,1360000,1360000,1360000,1370000,1370000,1370000,1380000,1380000,1390000,1390000,1400000,1400000,1410000,1410000,1420000,1420000,1430000,1430000,1440000,1440000,1440000,1450000,1450000,1460000,1460000,1470000,1470000,1480000,1480000,1490000,1490000,1500000,1500000,1510000,1510000,1520000,1520000,1530000,1530000,1540000,1550000,1550000,1560000,1560000,1570000,1580000,1580000,1590000,1600000,1600000,1610000,1620000,1630000,1630000,1640000,1650000,1660000,1670000,1680000,1690000,1690000,1700000,1710000,1720000,1730000,1740000,1750000,1760000,1770000,1780000,1790000,1800000,1810000,1820000,1830000,1840000,1850000,1850000,1860000,1870000,1880000,1890000,1900000,1920000,1930000,1940000,1950000,1960000,1970000,1980000,1990000,2020000,2050000,2080000,2110000,2140000,2170000,2200000,2230000,2270000,2300000,2330000,2370000,2400000,2440000,2470000,2510000,2540000,2580000,2620000,2660000,2700000,2740000,2780000,2820000,2860000,2900000,2940000,2990000,3030000,3070000,3120000,3160000,3210000,3260000,3300000,3350000,3410000,3500000,3590000,3690000,3800000,3910000,4030000,4160000,4290000,4430000,4570000,4720000,4880000,5030000,5200000,5370000,5550000,5740000,5940000,6140000,6350000,6570000,6800000,7040000,7280000,7540000,7790000,8060000,8340000,8630000,8930000,9250000,9590000,9940000,10300000,10600000,11000000,11400000,11700000,12100000,12400000,12800000,13200000,13600000,13900000,14300000,14800000,15200000,15600000,16000000,16400000,16800000,17100000,17400000,17800000,18300000,18900000,19600000,20300000,20800000,21000000,20900000,20400000,19800000,19200000,18700000,18400000,18300000,18300000,18500000,18900000,19600000,20500000,21500000,22500000,23400000,24200000,24900000,25500000,26100000,26600000,27100000,27600000,28000000,28500000,28900000,29300000,29700000,30100000,30400000,30800000,31200000,31500000,31900000,32200000,32500000,32800000,33200000,33400000,33700000,34000000,34300000,34600000,34800000,35100000,35300000,35500000,35800000,36000000,36200000,36400000,36600000,36800000,37000000,37100000,37300000,37500000,37600000,37800000,37900000,38000000,38100000,38200000,38300000,38400000,38500000,38600000,38700000,38700000,38800000,38800000,38900000,38900000,38900000,38900000,38900000,38900000,38900000,38900000,38900000,38800000,38800000,38700000,38700000,38600000,38500000,38500000,38400000,38300000,38200000,38200000 -Tajikistan,467000,467000,467000,467000,467000,467000,467000,467000,467000,467000,467000,467000,467000,468000,469000,470000,471000,472000,474000,476000,478000,481000,483000,486000,489000,492000,496000,499000,503000,508000,512000,517000,522000,526000,531000,536000,541000,546000,551000,556000,561000,566000,571000,577000,582000,587000,593000,598000,604000,609000,615000,620000,626000,632000,637000,643000,649000,655000,661000,667000,673000,679000,685000,691000,698000,704000,710000,717000,723000,730000,737000,743000,750000,757000,764000,770000,777000,784000,791000,799000,806000,813000,820000,828000,835000,843000,850000,858000,866000,874000,882000,890000,898000,906000,914000,922000,931000,939000,948000,956000,965000,974000,983000,991000,1000000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1080000,1090000,1100000,1110000,1120000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1260000,1270000,1280000,1290000,1300000,1310000,1330000,1340000,1350000,1360000,1380000,1390000,1400000,1410000,1430000,1440000,1450000,1470000,1480000,1490000,1510000,1530000,1580000,1640000,1690000,1740000,1790000,1850000,1900000,1960000,2020000,2090000,2160000,2240000,2320000,2400000,2490000,2570000,2660000,2750000,2840000,2930000,3020000,3110000,3200000,3300000,3390000,3490000,3590000,3690000,3790000,3910000,4020000,4140000,4270000,4400000,4540000,4690000,4840000,5000000,5150000,5280000,5400000,5500000,5590000,5680000,5760000,5850000,5930000,6020000,6110000,6220000,6330000,6450000,6580000,6710000,6850000,7000000,7150000,7310000,7470000,7640000,7820000,8000000,8180000,8360000,8550000,8730000,8920000,9110000,9290000,9480000,9660000,9840000,10000000,10200000,10400000,10500000,10700000,10900000,11000000,11200000,11400000,11500000,11700000,11900000,12000000,12200000,12400000,12500000,12700000,12900000,13000000,13200000,13400000,13600000,13700000,13900000,14100000,14200000,14400000,14500000,14700000,14800000,15000000,15100000,15200000,15400000,15500000,15600000,15800000,15900000,16000000,16100000,16200000,16400000,16500000,16600000,16700000,16800000,16900000,17000000,17100000,17200000,17300000,17400000,17500000,17600000,17700000,17800000,17800000,17900000,18000000,18100000,18100000,18200000,18300000,18300000,18400000,18400000,18500000,18500000,18600000,18600000,18700000,18700000,18800000,18800000,18800000,18900000,18900000,18900000 -Tanzania,3020000,3020000,3020000,3020000,3020000,3020000,3020000,3020000,3020000,3020000,3020000,3020000,3020000,3020000,3020000,3030000,3030000,3030000,3040000,3040000,3050000,3050000,3060000,3070000,3070000,3080000,3090000,3100000,3110000,3120000,3130000,3140000,3150000,3160000,3170000,3180000,3200000,3210000,3220000,3230000,3240000,3250000,3260000,3280000,3290000,3300000,3310000,3320000,3330000,3350000,3360000,3370000,3380000,3390000,3400000,3420000,3430000,3440000,3450000,3460000,3470000,3490000,3500000,3510000,3520000,3530000,3540000,3560000,3570000,3580000,3590000,3600000,3620000,3630000,3640000,3650000,3670000,3680000,3690000,3700000,3720000,3730000,3740000,3750000,3770000,3780000,3790000,3800000,3820000,3830000,3840000,3860000,3870000,3880000,3900000,3910000,3920000,3930000,3950000,3960000,3970000,3990000,4000000,4020000,4030000,4040000,4060000,4070000,4080000,4100000,4110000,4120000,4140000,4150000,4170000,4180000,4190000,4210000,4220000,4240000,4250000,4290000,4360000,4450000,4540000,4640000,4730000,4830000,4930000,5030000,5140000,5250000,5360000,5480000,5610000,5730000,5860000,5990000,6130000,6270000,6410000,6550000,6700000,6850000,7010000,7170000,7330000,7490000,7590000,7610000,7650000,7850000,8060000,8270000,8500000,8740000,8990000,9240000,9510000,9790000,10100000,10400000,10700000,11000000,11300000,11700000,12000000,12400000,12800000,13200000,13600000,14000000,14500000,15000000,15500000,16000000,16500000,17000000,17600000,18100000,18700000,19300000,19900000,20500000,21200000,21800000,22500000,23200000,23900000,24700000,25500000,26300000,27200000,28100000,29100000,30000000,30800000,31600000,32500000,33300000,34200000,35100000,36100000,37100000,38200000,39400000,40600000,41900000,43300000,44700000,46100000,47600000,49100000,50600000,52200000,53900000,55600000,57300000,59100000,60900000,62800000,64700000,66600000,68600000,70600000,72700000,74800000,77000000,79200000,81400000,83700000,86000000,88400000,90900000,93300000,95900000,98400000,101000000,104000000,106000000,109000000,112000000,115000000,117000000,120000000,123000000,126000000,129000000,132000000,135000000,138000000,141000000,144000000,147000000,151000000,154000000,157000000,160000000,163000000,167000000,170000000,173000000,177000000,180000000,183000000,187000000,190000000,194000000,197000000,201000000,204000000,207000000,211000000,214000000,218000000,221000000,225000000,228000000,232000000,235000000,239000000,242000000,245000000,249000000,252000000,256000000,259000000,262000000,266000000,269000000,272000000,276000000,279000000,282000000,285000000,288000000,292000000,295000000,298000000,301000000,304000000 -Thailand,4670000,4670000,4670000,4670000,4670000,4670000,4670000,4670000,4670000,4670000,4670000,4670000,4670000,4670000,4670000,4680000,4680000,4690000,4700000,4700000,4710000,4720000,4730000,4740000,4760000,4770000,4780000,4800000,4810000,4830000,4850000,4870000,4880000,4900000,4920000,4940000,4960000,4980000,5000000,5020000,5040000,5060000,5080000,5100000,5120000,5140000,5160000,5180000,5200000,5220000,5250000,5270000,5300000,5320000,5350000,5380000,5400000,5430000,5460000,5490000,5520000,5550000,5580000,5610000,5640000,5670000,5710000,5740000,5780000,5820000,5850000,5890000,5930000,5970000,6010000,6050000,6090000,6130000,6180000,6230000,6270000,6320000,6370000,6420000,6460000,6510000,6570000,6610000,6670000,6720000,6780000,6840000,6900000,6970000,7030000,7100000,7170000,7240000,7320000,7400000,7480000,7570000,7650000,7750000,7840000,7950000,8050000,8150000,8260000,8370000,8490000,8610000,8740000,8880000,9010000,9160000,9300000,9460000,9630000,9830000,10000000,10200000,10400000,10700000,10900000,11200000,11400000,11700000,12000000,12300000,12700000,13000000,13400000,13700000,14000000,14400000,14700000,15000000,15300000,15600000,15900000,16100000,16500000,16800000,17300000,17700000,18100000,18600000,19000000,19800000,20700000,21300000,21800000,22400000,23100000,23700000,24400000,25100000,25800000,26600000,27400000,28200000,29100000,30000000,30900000,31800000,32800000,33800000,34800000,35800000,36900000,38000000,39100000,40200000,41300000,42300000,43400000,44400000,45400000,46400000,47400000,48300000,49300000,50200000,51100000,52000000,53000000,54000000,54900000,55800000,56600000,57300000,57800000,58400000,58900000,59500000,60200000,60900000,61600000,62300000,63000000,63500000,64100000,64600000,65000000,65400000,65800000,66200000,66500000,66900000,67200000,67500000,67800000,68100000,68400000,68700000,68900000,69000000,69200000,69300000,69400000,69500000,69600000,69600000,69700000,69700000,69700000,69700000,69700000,69700000,69600000,69600000,69500000,69400000,69300000,69200000,69100000,68900000,68700000,68500000,68300000,68100000,67900000,67600000,67300000,67000000,66700000,66400000,66100000,65700000,65400000,65000000,64600000,64200000,63800000,63400000,63000000,62600000,62200000,61800000,61400000,61000000,60600000,60200000,59800000,59400000,59000000,58600000,58200000,57800000,57400000,57100000,56700000,56300000,56000000,55600000,55300000,54900000,54600000,54200000,53900000,53500000,53200000,52900000,52500000,52200000,51800000,51500000,51200000,50900000,50500000,50200000,49900000,49600000,49300000,49000000,48700000,48400000,48100000,47800000,47500000 -Timor-Leste,137000,137000,137000,137000,137000,137000,137000,137000,137000,137000,137000,137000,137000,138000,138000,138000,139000,139000,140000,141000,141000,142000,143000,144000,145000,146000,148000,149000,150000,152000,154000,155000,157000,159000,161000,162000,164000,166000,168000,170000,172000,173000,175000,177000,179000,181000,183000,185000,187000,189000,192000,194000,196000,198000,200000,202000,205000,207000,209000,211000,214000,216000,218000,221000,223000,226000,228000,231000,233000,236000,238000,241000,244000,246000,249000,252000,255000,257000,260000,263000,266000,269000,272000,275000,278000,281000,284000,287000,290000,293000,296000,300000,303000,306000,310000,313000,317000,320000,324000,327000,331000,334000,338000,342000,345000,349000,353000,357000,361000,365000,369000,373000,377000,381000,385000,390000,394000,398000,403000,407000,412000,416000,421000,425000,430000,435000,439000,442000,444000,446000,448000,450000,452000,454000,456000,457000,457000,455000,453000,451000,449000,447000,446000,444000,442000,440000,438000,437000,435000,433000,433000,438000,443000,449000,455000,461000,468000,476000,483000,491000,500000,509000,518000,528000,538000,548000,559000,569000,580000,592000,605000,621000,638000,654000,664000,665000,655000,636000,614000,596000,588000,591000,604000,625000,647000,667000,684000,700000,714000,731000,752000,777000,805000,834000,857000,871000,876000,872000,865000,863000,872000,893000,924000,961000,997000,1030000,1050000,1060000,1080000,1090000,1110000,1130000,1160000,1180000,1210000,1240000,1270000,1300000,1320000,1350000,1380000,1410000,1440000,1470000,1500000,1540000,1570000,1600000,1640000,1670000,1700000,1740000,1770000,1810000,1840000,1880000,1920000,1950000,1990000,2020000,2060000,2100000,2130000,2170000,2200000,2240000,2280000,2310000,2350000,2380000,2420000,2460000,2490000,2530000,2570000,2600000,2640000,2680000,2710000,2750000,2780000,2820000,2860000,2890000,2930000,2960000,3000000,3030000,3070000,3100000,3130000,3170000,3200000,3230000,3260000,3290000,3320000,3350000,3380000,3410000,3440000,3460000,3490000,3510000,3540000,3560000,3590000,3610000,3630000,3650000,3670000,3690000,3710000,3730000,3750000,3770000,3790000,3800000,3820000,3830000,3850000 -Togo,446000,446000,446000,446000,446000,446000,446000,446000,446000,446000,446000,446000,447000,447000,448000,449000,450000,451000,453000,455000,457000,459000,461000,464000,466000,469000,473000,476000,480000,484000,488000,492000,496000,501000,505000,509000,514000,518000,523000,528000,532000,537000,542000,546000,551000,556000,561000,566000,571000,576000,581000,586000,591000,596000,602000,607000,612000,618000,623000,628000,634000,640000,645000,651000,656000,662000,668000,674000,680000,686000,692000,698000,704000,710000,716000,722000,729000,735000,741000,748000,754000,761000,767000,774000,781000,787000,794000,801000,808000,815000,822000,830000,837000,844000,852000,859000,867000,874000,882000,889000,897000,905000,913000,921000,929000,937000,945000,953000,962000,970000,979000,987000,996000,1000000,1010000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1250000,1260000,1270000,1280000,1300000,1310000,1320000,1330000,1340000,1350000,1370000,1380000,1400000,1430000,1440000,1450000,1460000,1470000,1490000,1510000,1540000,1560000,1580000,1600000,1610000,1630000,1660000,1710000,1770000,1860000,1950000,2030000,2120000,2190000,2250000,2300000,2360000,2410000,2460000,2520000,2580000,2640000,2720000,2810000,2920000,3030000,3140000,3250000,3360000,3470000,3580000,3690000,3790000,3880000,3970000,4060000,4160000,4270000,4400000,4530000,4680000,4830000,4970000,5110000,5250000,5390000,5530000,5680000,5840000,6000000,6160000,6330000,6500000,6680000,6860000,7040000,7230000,7420000,7610000,7800000,7990000,8190000,8380000,8580000,8790000,8990000,9200000,9410000,9630000,9840000,10100000,10300000,10500000,10700000,11000000,11200000,11400000,11700000,11900000,12100000,12400000,12600000,12900000,13100000,13300000,13600000,13800000,14100000,14300000,14600000,14800000,15100000,15300000,15500000,15800000,16000000,16300000,16500000,16800000,17000000,17200000,17500000,17700000,17900000,18200000,18400000,18700000,18900000,19100000,19300000,19600000,19800000,20000000,20200000,20500000,20700000,20900000,21100000,21300000,21500000,21700000,21900000,22100000,22300000,22500000,22700000,22900000,23000000,23200000,23400000,23500000,23700000,23900000,24000000,24200000,24300000,24500000,24600000,24700000,24900000,25000000,25100000,25200000 -Tonga,18700,18700,18700,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18600,18500,18500,18500,18500,18500,18500,18500,18500,18500,18500,18500,18500,18500,18500,18500,18500,18500,18500,18600,18600,18600,18600,18600,18600,18600,18700,18700,18700,18700,18800,18800,18800,18800,18900,18900,18900,18900,19000,19000,19000,19100,19100,19100,19100,19200,19200,19200,19300,19300,19300,19300,19400,19400,19400,19500,19500,19500,19500,19600,19600,19600,19700,19700,19700,19800,19800,19900,20000,20200,20300,20500,20700,20900,21100,21400,21700,21900,22100,22300,22500,22700,22900,23100,23300,23500,23700,23900,24100,24300,24500,24700,24900,25300,25600,26000,26400,26800,27200,27600,28000,28400,28900,29400,30000,30600,31300,31900,32500,33200,34000,34900,35900,37000,38100,39300,40500,41700,43000,44300,45600,47200,49300,51200,52800,54200,55300,56400,57400,58500,59900,61600,63700,66300,69000,71800,74400,76800,79100,81100,82900,84400,85500,86300,87000,87600,88300,89300,90300,91400,92300,93000,93500,93700,93800,93800,94000,94100,94400,94700,94900,95200,95300,95500,95600,95800,96100,96400,96700,97100,97600,98100,98600,99200,99800,100000,101000,102000,102000,103000,104000,104000,105000,105000,105000,106000,106000,107000,108000,109000,110000,111000,112000,113000,114000,115000,116000,117000,118000,119000,120000,121000,122000,123000,124000,125000,127000,128000,129000,130000,131000,132000,133000,134000,135000,136000,136000,137000,138000,139000,139000,140000,141000,141000,142000,142000,143000,144000,144000,145000,146000,146000,147000,148000,148000,149000,149000,150000,151000,151000,152000,152000,153000,154000,154000,154000,155000,155000,156000,156000,156000,157000,157000,157000,157000,157000,157000,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000,158000 -Trinidad and Tobago,60000,60000,60000,60000,60000,60000,60000,60000,60000,60000,60000,60000,60100,60200,60300,60400,60600,60800,61000,61300,61600,61900,62200,62600,63000,63500,63900,64400,65000,65500,66200,66800,67400,68100,68700,69400,70100,70700,71400,72100,72800,73600,74400,75200,76100,77100,78200,79300,80500,81700,83000,84400,85900,87500,89100,90900,92700,94600,96500,98600,101000,103000,105000,108000,110000,113000,116000,118000,121000,124000,127000,130000,134000,137000,140000,144000,147000,151000,155000,159000,163000,167000,171000,176000,180000,185000,190000,195000,200000,205000,210000,216000,222000,227000,233000,240000,246000,252000,258000,265000,271000,277000,284000,290000,296000,303000,309000,316000,323000,330000,337000,344000,351000,358000,364000,369000,374000,380000,385000,391000,387000,383000,379000,383000,386000,389000,393000,396000,400000,406000,413000,419000,425000,431000,437000,444000,451000,459000,467000,476000,487000,502000,519000,534000,547000,559000,575000,593000,611000,629000,646000,659000,676000,695000,717000,740000,763000,786000,809000,829000,848000,865000,880000,893000,903000,912000,920000,926000,931000,938000,946000,956000,969000,983000,997000,1010000,1030000,1040000,1050000,1070000,1090000,1100000,1120000,1140000,1160000,1170000,1180000,1200000,1200000,1210000,1220000,1230000,1240000,1240000,1250000,1260000,1260000,1260000,1260000,1260000,1270000,1270000,1280000,1280000,1290000,1300000,1300000,1310000,1320000,1320000,1330000,1330000,1340000,1350000,1350000,1360000,1360000,1370000,1370000,1380000,1380000,1380000,1380000,1380000,1380000,1380000,1380000,1380000,1380000,1380000,1370000,1370000,1370000,1370000,1360000,1360000,1360000,1350000,1350000,1350000,1340000,1340000,1340000,1330000,1330000,1320000,1320000,1310000,1310000,1300000,1300000,1290000,1280000,1280000,1270000,1260000,1260000,1250000,1240000,1230000,1230000,1220000,1210000,1200000,1200000,1190000,1180000,1180000,1170000,1160000,1150000,1150000,1140000,1130000,1130000,1120000,1110000,1110000,1100000,1100000,1090000,1080000,1080000,1070000,1070000,1060000,1060000,1050000,1040000,1040000,1030000,1030000,1020000,1020000,1010000,1010000,1000000,998000,993000,988000,983000 -Tunisia,862000,863000,863000,864000,865000,865000,866000,867000,867000,868000,868000,869000,870000,872000,873000,875000,877000,879000,882000,884000,887000,890000,894000,897000,901000,905000,909000,914000,919000,924000,929000,934000,940000,946000,951000,957000,962000,968000,974000,980000,985000,991000,997000,1000000,1010000,1020000,1020000,1030000,1030000,1040000,1050000,1050000,1060000,1070000,1070000,1080000,1090000,1090000,1100000,1110000,1110000,1120000,1130000,1140000,1140000,1150000,1160000,1170000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1260000,1270000,1280000,1290000,1310000,1320000,1340000,1350000,1370000,1380000,1400000,1410000,1430000,1450000,1460000,1480000,1490000,1510000,1530000,1550000,1560000,1580000,1600000,1620000,1630000,1650000,1670000,1690000,1710000,1730000,1750000,1760000,1780000,1800000,1820000,1840000,1860000,1890000,1910000,1940000,1970000,2010000,2050000,2080000,2120000,2150000,2190000,2230000,2270000,2310000,2350000,2390000,2430000,2470000,2510000,2560000,2600000,2650000,2690000,2740000,2790000,2830000,2880000,2930000,2980000,3030000,3090000,3140000,3200000,3250000,3310000,3360000,3420000,3480000,3540000,3610000,3700000,3770000,3840000,3890000,3940000,3990000,4030000,4080000,4120000,4180000,4240000,4300000,4380000,4460000,4550000,4640000,4740000,4840000,4950000,5060000,5170000,5290000,5410000,5530000,5650000,5780000,5920000,6050000,6210000,6370000,6550000,6730000,6930000,7130000,7320000,7510000,7690000,7870000,8050000,8230000,8420000,8600000,8780000,8960000,9110000,9260000,9380000,9500000,9600000,9700000,9790000,9860000,9940000,10000000,10100000,10200000,10300000,10400000,10500000,10600000,10800000,10900000,11000000,11100000,11300000,11400000,11500000,11700000,11800000,11900000,12000000,12100000,12200000,12300000,12400000,12500000,12600000,12700000,12800000,12800000,12900000,13000000,13000000,13100000,13200000,13200000,13300000,13300000,13400000,13400000,13500000,13500000,13600000,13600000,13700000,13700000,13800000,13800000,13800000,13900000,13900000,13900000,14000000,14000000,14000000,14000000,14000000,14100000,14100000,14100000,14100000,14100000,14100000,14100000,14000000,14000000,14000000,14000000,14000000,14000000,14000000,13900000,13900000,13900000,13900000,13900000,13900000,13800000,13800000,13800000,13800000,13800000,13700000,13700000,13700000,13700000,13700000,13600000,13600000,13600000,13600000,13600000,13500000,13500000,13500000,13400000,13400000,13400000,13400000,13300000 -Turkey,9770000,9790000,9800000,9820000,9830000,9850000,9860000,9880000,9890000,9910000,9920000,9940000,9960000,9970000,9990000,10000000,10000000,10100000,10100000,10100000,10100000,10100000,10200000,10200000,10200000,10200000,10300000,10300000,10300000,10400000,10400000,10400000,10500000,10500000,10500000,10600000,10600000,10600000,10700000,10700000,10700000,10800000,10800000,10800000,10900000,10900000,10900000,11000000,11000000,11000000,11100000,11100000,11100000,11200000,11200000,11300000,11300000,11300000,11400000,11400000,11400000,11500000,11500000,11600000,11600000,11700000,11700000,11700000,11800000,11800000,11900000,12000000,12000000,12100000,12100000,12200000,12200000,12300000,12400000,12400000,12500000,12600000,12700000,12700000,12800000,12900000,13000000,13000000,13100000,13200000,13300000,13300000,13400000,13500000,13600000,13600000,13700000,13800000,13900000,14000000,14000000,14100000,14200000,14300000,14400000,14400000,14500000,14600000,14700000,14800000,14900000,14900000,15000000,15000000,15000000,14900000,14800000,14700000,14500000,14400000,14300000,14200000,14100000,14100000,14100000,14200000,14300000,14400000,14600000,14800000,15100000,15300000,15500000,15800000,16000000,16300000,16600000,16900000,17200000,17600000,17900000,18100000,18300000,18500000,18700000,19000000,19400000,19800000,20300000,20800000,21400000,22000000,22500000,23100000,23700000,24300000,24900000,25500000,26200000,26800000,27500000,28100000,28800000,29500000,30200000,31000000,31700000,32500000,33300000,34100000,34900000,35700000,36600000,37500000,38400000,39300000,40200000,41100000,42000000,43000000,44000000,45000000,46000000,47100000,48100000,49100000,50100000,51100000,52100000,53000000,53900000,54800000,55700000,56700000,57600000,58500000,59400000,60400000,61300000,62300000,63200000,64200000,65100000,66100000,67000000,67900000,68800000,69600000,70400000,71300000,72300000,73400000,74600000,75800000,77000000,78300000,79500000,80700000,81900000,83000000,83800000,84500000,85000000,85400000,85800000,86100000,86500000,87000000,87400000,87900000,88400000,88900000,89400000,89900000,90400000,90900000,91400000,91800000,92200000,92600000,93000000,93300000,93700000,94000000,94300000,94600000,94800000,95000000,95300000,95500000,95600000,95800000,95900000,96000000,96100000,96200000,96200000,96300000,96300000,96300000,96200000,96200000,96100000,96000000,95900000,95800000,95700000,95500000,95300000,95200000,95000000,94800000,94600000,94300000,94100000,93800000,93600000,93300000,93100000,92800000,92500000,92200000,91900000,91600000,91300000,91000000,90700000,90300000,90000000,89700000,89300000,89000000,88600000,88300000,87900000,87600000,87200000,86900000,86500000,86100000,85800000 -Turkmenistan,367000,367000,367000,367000,367000,367000,367000,367000,367000,367000,367000,367000,368000,368000,369000,370000,371000,372000,373000,375000,376000,378000,380000,382000,385000,387000,390000,393000,396000,400000,403000,407000,411000,414000,418000,422000,426000,430000,434000,438000,442000,446000,450000,454000,458000,463000,467000,471000,476000,480000,484000,489000,493000,498000,502000,507000,512000,516000,521000,526000,531000,536000,541000,546000,551000,556000,561000,566000,571000,576000,582000,587000,592000,598000,603000,609000,614000,620000,626000,631000,637000,643000,649000,655000,661000,667000,673000,679000,685000,691000,698000,704000,711000,717000,724000,730000,737000,744000,751000,758000,765000,772000,779000,786000,793000,800000,808000,815000,822000,830000,838000,845000,853000,861000,869000,877000,885000,893000,901000,910000,918000,926000,935000,944000,952000,961000,970000,979000,988000,997000,1010000,1020000,1020000,1030000,1040000,1050000,1060000,1070000,1080000,1090000,1100000,1110000,1120000,1130000,1140000,1150000,1170000,1180000,1190000,1200000,1210000,1230000,1260000,1290000,1330000,1360000,1410000,1450000,1500000,1550000,1600000,1660000,1720000,1770000,1830000,1890000,1950000,2010000,2070000,2130000,2200000,2260000,2320000,2390000,2460000,2530000,2590000,2660000,2730000,2810000,2880000,2950000,3020000,3090000,3170000,3240000,3320000,3410000,3490000,3590000,3680000,3790000,3900000,4010000,4120000,4210000,4290000,4360000,4410000,4470000,4520000,4560000,4610000,4660000,4700000,4750000,4810000,4870000,4940000,5010000,5090000,5170000,5270000,5370000,5470000,5570000,5660000,5760000,5850000,5940000,6030000,6120000,6200000,6280000,6360000,6430000,6500000,6570000,6640000,6700000,6770000,6830000,6890000,6950000,7010000,7070000,7130000,7190000,7250000,7310000,7370000,7430000,7490000,7540000,7600000,7650000,7700000,7750000,7800000,7840000,7890000,7930000,7970000,8000000,8030000,8070000,8090000,8120000,8150000,8170000,8190000,8210000,8230000,8250000,8260000,8280000,8300000,8310000,8330000,8340000,8350000,8360000,8380000,8390000,8400000,8410000,8410000,8420000,8430000,8430000,8440000,8440000,8440000,8450000,8450000,8440000,8440000,8440000,8440000,8430000,8430000,8420000,8410000,8400000,8390000,8380000,8370000,8360000,8350000,8340000,8320000 -Tuvalu,2500,2500,2500,2500,2500,2500,2500,2500,2500,2500,2500,2500,2500,2500,2510,2510,2510,2520,2520,2530,2540,2540,2550,2560,2570,2580,2590,2600,2620,2630,2640,2660,2670,2690,2700,2720,2730,2750,2770,2780,2800,2810,2830,2840,2860,2880,2890,2910,2920,2940,2960,2970,2990,3010,3020,3040,3060,3070,3090,3110,3130,3140,3160,3180,3200,3210,3230,3250,3270,3290,3300,3320,3340,3360,3380,3400,3420,3440,3450,3470,3490,3510,3530,3550,3570,3590,3610,3630,3650,3670,3690,3710,3730,3750,3780,3800,3820,3840,3860,3880,3900,3920,3950,3970,3990,4010,4040,4060,4080,4100,4130,4150,4170,4200,4220,4240,4270,4290,4310,4340,4360,4390,4410,4440,4460,4490,4510,4540,4560,4590,4610,4640,4660,4690,4720,4740,4770,4800,4820,4850,4880,4900,4930,4960,4990,5020,5040,5070,5100,5130,5170,5220,5290,5370,5470,5570,5660,5760,5860,5980,6100,6250,6390,6540,6680,6820,6940,7040,7130,7210,7300,7380,7460,7540,7620,7680,7750,7820,7890,7960,8050,8150,8280,8410,8530,8650,8750,8820,8880,8950,9000,9050,9110,9160,9190,9230,9260,9280,9310,9350,9420,9510,9640,9770,9890,10000,10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,12000,12100,12200,12300,12400,12600,12700,12800,12900,13100,13200,13300,13400,13500,13600,13700,13700,13800,13900,14000,14100,14200,14200,14300,14400,14500,14600,14700,14800,14900,14900,15100,15100,15200,15300,15400,15500,15600,15700,15800,15900,16000,16000,16100,16200,16200,16300,16400,16400,16500,16500,16600,16700,16700,16800,16800,16800,16900,16900,17000,17000,17100,17100,17200,17200,17200,17300,17300,17400,17400,17400,17500,17500,17500,17500,17600,17600 -Uganda,2100000,2100000,2100000,2100000,2100000,2100000,2100000,2100000,2100000,2100000,2100000,2100000,2100000,2100000,2100000,2110000,2110000,2110000,2110000,2120000,2120000,2120000,2130000,2130000,2140000,2140000,2150000,2150000,2160000,2170000,2170000,2180000,2190000,2190000,2200000,2210000,2220000,2220000,2230000,2240000,2250000,2250000,2260000,2270000,2280000,2280000,2290000,2300000,2310000,2310000,2320000,2330000,2340000,2340000,2350000,2360000,2370000,2380000,2380000,2390000,2400000,2410000,2420000,2420000,2430000,2440000,2450000,2460000,2460000,2470000,2480000,2490000,2500000,2500000,2510000,2520000,2530000,2540000,2540000,2550000,2560000,2570000,2580000,2590000,2600000,2600000,2610000,2620000,2630000,2640000,2650000,2660000,2660000,2670000,2680000,2690000,2700000,2710000,2720000,2730000,2730000,2740000,2750000,2760000,2770000,2780000,2790000,2800000,2810000,2820000,2830000,2830000,2840000,2850000,2860000,2870000,2870000,2880000,2890000,2900000,2900000,2930000,2970000,3030000,3090000,3150000,3210000,3280000,3340000,3410000,3470000,3540000,3610000,3690000,3760000,3830000,3910000,3990000,4060000,4140000,4230000,4310000,4400000,4480000,4570000,4660000,4750000,4850000,4940000,5040000,5160000,5310000,5460000,5600000,5750000,5900000,6060000,6220000,6400000,6590000,6790000,7010000,7240000,7490000,7750000,8010000,8290000,8580000,8870000,9160000,9450000,9720000,9990000,10300000,10500000,10800000,11100000,11500000,11800000,12200000,12500000,12900000,13300000,13700000,14200000,14600000,15200000,15700000,16300000,16800000,17400000,18000000,18700000,19300000,19900000,20600000,21200000,21900000,22600000,23300000,24000000,24900000,25700000,26600000,27600000,28500000,29600000,30600000,31700000,32800000,33900000,35100000,36300000,37600000,38800000,40100000,41500000,42900000,44300000,45700000,47200000,48700000,50200000,51800000,53400000,55100000,56800000,58500000,60200000,62000000,63800000,65700000,67600000,69500000,71400000,73400000,75400000,77400000,79400000,81500000,83600000,85700000,87900000,90000000,92200000,94400000,96600000,98900000,101000000,103000000,106000000,108000000,110000000,113000000,115000000,117000000,120000000,122000000,124000000,127000000,129000000,132000000,134000000,136000000,139000000,141000000,144000000,146000000,148000000,151000000,153000000,155000000,158000000,160000000,162000000,165000000,167000000,169000000,171000000,174000000,176000000,178000000,180000000,182000000,184000000,186000000,188000000,190000000,192000000,194000000,196000000,198000000,200000000,202000000,204000000,206000000,207000000,209000000,211000000,212000000,214000000 -Ukraine,11200000,11200000,11200000,11200000,11200000,11200000,11200000,11200000,11200000,11200000,11200000,11200000,11200000,11200000,11300000,11300000,11300000,11400000,11400000,11400000,11500000,11600000,11600000,11700000,11800000,11800000,11900000,12000000,12100000,12200000,12300000,12400000,12600000,12700000,12800000,12900000,13000000,13100000,13300000,13400000,13500000,13600000,13800000,13900000,14000000,14200000,14300000,14400000,14600000,14700000,14800000,15000000,15100000,15200000,15400000,15500000,15700000,15800000,16000000,16100000,16300000,16400000,16600000,16700000,16900000,17000000,17200000,17300000,17500000,17700000,17800000,18000000,18200000,18300000,18500000,18700000,18800000,19000000,19200000,19400000,19500000,19700000,19900000,20100000,20300000,20400000,20600000,20800000,21000000,21200000,21400000,21600000,21800000,22000000,22200000,22400000,22600000,22800000,23000000,23300000,23500000,23700000,23900000,24100000,24300000,24600000,24800000,25000000,25300000,25500000,25700000,26000000,26200000,26400000,26700000,26900000,27200000,27400000,27700000,28000000,28200000,28500000,28700000,29000000,29300000,29500000,29800000,30100000,30400000,30700000,30900000,31200000,31500000,31800000,32100000,32400000,32700000,33000000,33300000,33600000,33900000,34300000,34600000,34900000,35200000,35500000,35900000,36200000,36500000,36900000,37300000,37800000,38400000,38900000,39500000,40000000,40600000,41100000,41600000,42100000,42700000,43200000,43700000,44300000,44800000,45300000,45700000,46100000,46400000,46700000,47100000,47400000,47800000,48100000,48500000,48800000,49000000,49300000,49500000,49800000,50000000,50200000,50400000,50600000,50800000,50900000,51100000,51200000,51300000,51400000,51500000,51500000,51400000,51300000,51100000,50900000,50600000,50200000,49700000,49300000,48800000,48400000,48000000,47600000,47200000,46900000,46600000,46400000,46200000,46000000,45800000,45600000,45300000,45100000,44900000,44700000,44400000,44200000,44000000,43800000,43600000,43400000,43100000,42900000,42700000,42500000,42200000,42000000,41700000,41500000,41200000,40900000,40700000,40400000,40200000,39900000,39600000,39400000,39100000,38900000,38700000,38400000,38200000,38000000,37700000,37500000,37300000,37100000,36900000,36600000,36400000,36200000,36000000,35800000,35500000,35300000,35100000,34900000,34600000,34400000,34200000,34000000,33700000,33500000,33300000,33100000,32800000,32600000,32400000,32200000,32000000,31800000,31600000,31400000,31200000,31100000,30900000,30700000,30600000,30400000,30300000,30200000,30000000,29900000,29800000,29700000,29600000,29500000,29400000,29300000,29200000,29100000,29000000,28900000,28800000,28700000,28600000,28500000,28400000,28300000,28200000 -United Arab Emirates,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40200,40300,40300,40400,40400,40500,40600,40700,40800,40900,41000,41200,41300,41400,41600,41800,42000,42200,42400,42700,42900,43200,43400,43700,43900,44200,44400,44700,44900,45200,45400,45700,46000,46200,46500,46800,47000,47300,47600,47900,48100,48400,48700,49000,49200,49500,49800,50100,50400,50700,51000,51300,51600,52000,52400,52900,53300,53800,54200,54700,55200,55600,56100,56600,57000,57500,58000,58500,59000,59500,60000,60500,61000,61500,62000,62600,63100,63600,64200,64700,65300,65800,66400,66900,67500,68100,68600,69200,69800,69600,67300,69100,72600,76500,79600,81700,83100,84600,87400,92600,101000,112000,126000,139000,150000,160000,170000,183000,204000,235000,279000,333000,397000,471000,554000,647000,748000,852000,952000,1040000,1120000,1190000,1250000,1320000,1390000,1470000,1560000,1660000,1760000,1860000,1970000,2090000,2210000,2330000,2450000,2570000,2700000,2840000,2990000,3150000,3330000,3510000,3740000,4090000,4580000,5240000,6040000,6890000,7670000,8270000,8670000,8900000,9010000,9070000,9150000,9270000,9400000,9540000,9680000,9810000,9940000,10100000,10200000,10300000,10400000,10600000,10700000,10800000,10900000,11100000,11200000,11300000,11400000,11500000,11600000,11800000,11900000,12000000,12100000,12200000,12300000,12400000,12500000,12600000,12700000,12800000,12900000,13000000,13100000,13200000,13200000,13300000,13400000,13500000,13500000,13600000,13700000,13700000,13800000,13900000,13900000,14000000,14000000,14100000,14100000,14200000,14200000,14300000,14300000,14300000,14400000,14400000,14500000,14500000,14500000,14600000,14600000,14600000,14600000,14700000,14700000,14700000,14700000,14700000,14700000,14800000,14800000,14800000,14800000,14800000,14800000,14800000,14800000,14800000,14800000,14800000,14800000,14800000,14800000,14800000 -United Kingdom,12300000,12500000,12600000,12800000,13000000,13100000,13300000,13500000,13600000,13800000,14100000,14300000,14500000,14700000,14900000,15100000,15300000,15600000,15800000,16000000,16200000,16500000,16700000,16900000,17100000,17400000,17600000,17800000,18100000,18300000,18500000,18800000,19000000,19200000,19500000,19700000,19900000,20100000,20400000,20500000,20700000,20900000,21100000,21300000,21500000,21600000,21800000,22000000,22200000,22400000,22600000,22800000,23000000,23200000,23400000,23600000,23900000,24100000,24300000,24500000,24800000,25000000,25300000,25600000,25900000,26200000,26500000,26700000,27000000,27300000,27700000,28000000,28300000,28600000,28900000,29200000,29500000,29900000,30200000,30500000,30800000,31200000,31500000,31900000,32200000,32500000,32900000,33200000,33500000,33900000,34200000,34600000,34900000,35300000,35700000,36100000,36400000,36800000,37200000,37600000,38000000,38400000,38800000,39200000,39500000,39900000,40300000,40700000,41100000,41500000,41800000,42200000,42400000,42700000,43000000,43300000,43500000,43600000,43600000,43600000,43800000,44100000,44400000,44700000,44900000,45200000,45300000,45500000,45600000,45800000,46000000,46200000,46400000,46600000,46800000,47000000,47200000,47400000,47700000,48000000,48200000,48400000,48600000,48800000,49100000,49200000,49400000,49700000,50000000,50400000,50600000,50600000,50700000,50800000,50900000,51100000,51300000,51600000,51800000,52100000,52400000,52800000,53200000,53600000,53900000,54300000,54600000,54900000,55200000,55400000,55600000,55800000,56000000,56100000,56200000,56200000,56200000,56300000,56300000,56300000,56300000,56300000,56300000,56300000,56400000,56500000,56600000,56700000,56900000,57000000,57200000,57300000,57500000,57700000,57800000,58000000,58200000,58300000,58500000,58700000,59000000,59100000,59300000,59600000,59900000,60300000,60800000,61400000,62100000,62700000,63300000,63800000,64300000,64600000,65000000,65400000,65800000,66200000,66600000,67000000,67300000,67700000,68100000,68400000,68700000,69100000,69400000,69700000,70000000,70300000,70600000,70900000,71100000,71400000,71600000,71900000,72100000,72400000,72600000,72900000,73100000,73400000,73600000,73800000,74100000,74300000,74500000,74700000,75000000,75200000,75400000,75600000,75800000,75900000,76100000,76300000,76400000,76600000,76700000,76800000,77000000,77100000,77200000,77300000,77500000,77600000,77700000,77800000,78000000,78100000,78200000,78300000,78500000,78600000,78700000,78800000,78900000,79000000,79200000,79300000,79400000,79500000,79600000,79600000,79700000,79800000,79900000,80000000,80100000,80200000,80200000,80300000,80400000,80500000,80600000,80600000,80700000,80800000,80900000,80900000,81000000 -United States,6800000,6930000,7070000,7200000,7340000,7490000,7630000,7780000,7930000,8080000,8290000,8460000,8640000,8820000,9020000,9220000,9430000,9650000,9880000,10100000,10400000,10600000,10900000,11200000,11500000,11800000,12100000,12400000,12800000,13100000,13500000,13900000,14300000,14700000,15100000,15500000,16000000,16500000,16900000,17400000,17900000,18500000,19000000,19600000,20200000,20800000,21400000,22100000,22700000,23400000,24100000,24900000,25600000,26400000,27100000,27900000,28700000,29500000,30300000,31100000,32000000,32800000,33700000,34500000,35400000,36300000,37200000,38100000,39000000,40000000,40900000,41900000,42900000,43800000,44800000,45900000,46900000,47900000,49100000,50200000,51400000,52500000,53700000,55000000,56200000,57500000,58800000,60100000,61400000,62700000,64100000,65400000,66700000,68100000,69400000,70700000,72100000,73500000,74900000,76300000,77800000,79300000,80700000,82300000,83900000,85500000,87200000,88800000,90600000,92400000,94100000,95900000,97500000,99300000,101000000,103000000,104000000,106000000,107000000,108000000,109000000,111000000,113000000,115000000,117000000,118000000,120000000,122000000,123000000,125000000,126000000,127000000,128000000,129000000,129000000,130000000,131000000,132000000,133000000,134000000,135000000,137000000,138000000,140000000,142000000,143000000,145000000,147000000,150000000,154000000,159000000,161000000,163000000,166000000,169000000,172000000,175000000,178000000,181000000,184000000,187000000,190000000,192000000,195000000,197000000,200000000,202000000,204000000,206000000,208000000,210000000,211000000,213000000,215000000,217000000,219000000,221000000,223000000,225000000,228000000,230000000,232000000,234000000,236000000,239000000,241000000,243000000,245000000,248000000,250000000,253000000,255000000,257000000,260000000,263000000,266000000,269000000,272000000,276000000,279000000,282000000,285000000,288000000,290000000,293000000,295000000,298000000,301000000,303000000,306000000,309000000,311000000,313000000,316000000,318000000,320000000,322000000,324000000,327000000,329000000,331000000,334000000,336000000,339000000,341000000,343000000,346000000,348000000,350000000,352000000,355000000,357000000,359000000,361000000,363000000,365000000,367000000,369000000,371000000,372000000,374000000,376000000,377000000,379000000,381000000,382000000,384000000,385000000,387000000,388000000,390000000,391000000,393000000,394000000,396000000,397000000,399000000,400000000,402000000,403000000,405000000,406000000,408000000,409000000,411000000,412000000,414000000,415000000,416000000,418000000,419000000,420000000,422000000,423000000,424000000,425000000,427000000,428000000,429000000,430000000,431000000,432000000,433000000,434000000,435000000,436000000,437000000,437000000,438000000,439000000,440000000,441000000,441000000,442000000,443000000,444000000,445000000,445000000,446000000,447000000,447000000 -Uruguay,55000,55000,55000,55000,55000,55000,55000,55000,55000,55000,55000,55100,55200,55500,55800,56200,56700,57300,58000,58800,59700,60700,61800,63000,64300,65700,67300,69000,70800,72700,74800,77000,79300,81600,84100,86500,89100,91700,94500,97300,100000,103000,107000,110000,114000,118000,122000,127000,132000,137000,143000,148000,155000,162000,169000,176000,184000,193000,202000,212000,222000,233000,243000,254000,265000,277000,289000,300000,312000,325000,337000,350000,363000,376000,390000,405000,420000,433000,448000,464000,481000,495000,514000,533000,551000,571000,593000,614000,637000,659000,682000,705000,728000,751000,774000,798000,820000,842000,863000,884000,905000,924000,946000,964000,981000,997000,1010000,1030000,1050000,1070000,1090000,1120000,1150000,1190000,1220000,1250000,1270000,1300000,1320000,1350000,1380000,1410000,1440000,1470000,1510000,1540000,1580000,1620000,1650000,1690000,1720000,1750000,1780000,1810000,1840000,1870000,1900000,1930000,1950000,1960000,1970000,2000000,2020000,2040000,2060000,2090000,2120000,2140000,2170000,2200000,2240000,2260000,2290000,2310000,2340000,2370000,2400000,2440000,2470000,2510000,2540000,2570000,2600000,2640000,2670000,2690000,2720000,2750000,2770000,2800000,2810000,2820000,2820000,2820000,2820000,2830000,2840000,2860000,2880000,2900000,2920000,2940000,2950000,2970000,2990000,3010000,3030000,3050000,3070000,3090000,3110000,3130000,3150000,3180000,3200000,3220000,3250000,3270000,3290000,3310000,3320000,3330000,3330000,3330000,3320000,3330000,3330000,3340000,3350000,3360000,3370000,3390000,3400000,3410000,3420000,3430000,3440000,3460000,3470000,3480000,3490000,3510000,3520000,3530000,3540000,3550000,3560000,3570000,3580000,3590000,3590000,3600000,3610000,3620000,3620000,3630000,3630000,3640000,3640000,3650000,3650000,3650000,3660000,3660000,3660000,3660000,3660000,3660000,3660000,3660000,3660000,3660000,3660000,3660000,3660000,3650000,3650000,3650000,3640000,3640000,3630000,3630000,3620000,3620000,3610000,3610000,3600000,3590000,3580000,3580000,3570000,3560000,3550000,3540000,3530000,3520000,3510000,3500000,3490000,3480000,3470000,3460000,3450000,3440000,3420000,3410000,3400000,3390000,3380000,3360000,3350000,3340000,3330000,3320000,3300000,3290000,3280000,3270000,3250000,3240000,3230000 -Uzbekistan,1920000,1920000,1920000,1920000,1920000,1920000,1920000,1920000,1920000,1920000,1920000,1920000,1920000,1920000,1930000,1930000,1940000,1940000,1950000,1960000,1970000,1980000,1990000,2000000,2010000,2020000,2040000,2050000,2070000,2090000,2110000,2130000,2150000,2170000,2190000,2210000,2230000,2250000,2270000,2290000,2310000,2330000,2350000,2370000,2390000,2420000,2440000,2460000,2480000,2510000,2530000,2550000,2580000,2600000,2620000,2650000,2670000,2690000,2720000,2740000,2770000,2790000,2820000,2840000,2870000,2890000,2920000,2950000,2970000,3000000,3030000,3050000,3080000,3110000,3140000,3170000,3190000,3220000,3250000,3280000,3310000,3340000,3370000,3400000,3430000,3460000,3490000,3520000,3550000,3590000,3620000,3650000,3680000,3720000,3750000,3780000,3820000,3850000,3890000,3920000,3960000,3990000,4030000,4070000,4100000,4140000,4180000,4210000,4250000,4290000,4330000,4370000,4410000,4450000,4490000,4530000,4570000,4610000,4650000,4690000,4740000,4780000,4820000,4870000,4910000,4960000,5000000,5050000,5100000,5140000,5190000,5240000,5290000,5340000,5380000,5430000,5480000,5530000,5590000,5640000,5690000,5740000,5790000,5850000,5900000,5960000,6010000,6070000,6120000,6180000,6260000,6480000,6680000,6880000,7080000,7300000,7520000,7760000,8010000,8270000,8550000,8840000,9140000,9450000,9790000,10100000,10500000,10900000,11300000,11700000,12100000,12500000,12800000,13200000,13500000,13900000,14300000,14700000,15100000,15500000,15900000,16400000,16800000,17200000,17700000,18100000,18600000,19000000,19500000,20000000,20500000,21000000,21400000,21900000,22400000,22900000,23300000,23700000,24100000,24500000,24800000,25200000,25500000,25800000,26200000,26500000,26900000,27300000,27700000,28200000,28600000,29100000,29500000,30000000,30500000,31000000,31400000,31900000,32400000,32800000,33200000,33600000,34000000,34400000,34800000,35100000,35500000,35800000,36100000,36400000,36700000,37000000,37300000,37500000,37800000,38100000,38300000,38600000,38800000,39000000,39200000,39500000,39700000,39900000,40100000,40200000,40400000,40600000,40700000,40800000,41000000,41100000,41100000,41200000,41300000,41400000,41400000,41400000,41500000,41500000,41500000,41500000,41500000,41500000,41500000,41400000,41400000,41400000,41300000,41300000,41200000,41200000,41100000,41000000,41000000,40900000,40800000,40700000,40600000,40500000,40400000,40300000,40200000,40100000,40000000,39900000,39800000,39700000,39600000,39500000,39400000,39300000,39100000,39000000,38900000,38800000,38600000,38500000,38400000,38300000,38100000 -Vanuatu,27800,27800,27800,27800,27800,27800,27800,27800,27800,27800,27800,27800,27800,27800,27800,27900,27900,27900,28000,28000,28100,28200,28200,28300,28400,28500,28600,28700,28800,28900,29000,29100,29200,29300,29500,29600,29700,29800,30000,30100,30200,30300,30500,30600,30700,30800,31000,31100,31200,31400,31500,31600,31700,31900,32000,32100,32300,32400,32500,32700,32800,32900,33100,33200,33300,33500,33600,33700,33900,34000,34100,34300,34400,34600,34700,34800,35000,35100,35300,35400,35600,35700,35800,36000,36100,36300,36400,36600,36700,36900,37000,37200,37300,37500,37600,37800,37900,38100,38200,38400,38500,38700,38900,39000,39200,39300,39500,39700,39800,40000,40100,40300,40500,40600,40800,41000,41100,41300,41500,41600,41800,42000,42200,42300,42500,42700,42900,43000,43200,43400,43600,43800,43900,44100,44300,44500,44700,44900,45100,45200,45400,45600,45800,46000,46200,46400,46600,46800,47000,47200,47700,48900,50300,51800,53300,54900,56600,58200,60000,61800,63700,65700,67800,70000,72100,74300,76400,78500,80700,82900,85400,88000,90800,93800,96800,99900,103000,106000,109000,113000,116000,119000,121000,124000,127000,130000,133000,136000,139000,143000,147000,151000,155000,160000,164000,168000,172000,175000,178000,181000,185000,189000,194000,199000,204000,209000,215000,220000,225000,231000,236000,242000,247000,253000,259000,265000,270000,276000,282000,288000,294000,300000,306000,312000,318000,324000,330000,336000,342000,348000,354000,360000,366000,372000,378000,385000,391000,397000,403000,409000,415000,421000,427000,433000,439000,445000,451000,457000,463000,469000,475000,480000,486000,492000,497000,503000,508000,514000,519000,524000,530000,535000,540000,545000,550000,555000,560000,564000,569000,574000,578000,583000,587000,591000,595000,600000,604000,608000,611000,615000,619000,623000,626000,630000,633000,636000,640000,643000,646000,649000,651000,654000,657000,659000,662000,664000,667000,669000,671000,673000,675000 -Venezuela,718000,718000,718000,718000,718000,718000,718000,718000,718000,718000,718000,719000,720000,722000,725000,729000,733000,739000,745000,752000,759000,768000,777000,788000,799000,811000,824000,839000,854000,870000,887000,905000,924000,943000,963000,982000,1000000,1020000,1040000,1070000,1090000,1110000,1130000,1150000,1170000,1200000,1220000,1240000,1260000,1280000,1300000,1320000,1340000,1360000,1380000,1400000,1420000,1440000,1460000,1480000,1500000,1520000,1540000,1560000,1580000,1600000,1620000,1650000,1670000,1690000,1720000,1750000,1770000,1800000,1830000,1860000,1890000,1920000,1950000,1980000,2020000,2050000,2080000,2120000,2150000,2180000,2220000,2250000,2280000,2310000,2340000,2370000,2400000,2440000,2470000,2510000,2540000,2580000,2620000,2660000,2700000,2730000,2770000,2810000,2840000,2870000,2900000,2930000,2950000,2980000,3010000,3040000,3070000,3090000,3120000,3140000,3160000,3180000,3200000,3210000,3230000,3250000,3270000,3290000,3330000,3360000,3400000,3440000,3480000,3520000,3560000,3600000,3640000,3670000,3710000,3750000,3790000,3850000,3920000,4000000,4080000,4170000,4250000,4340000,4450000,4570000,4700000,4860000,5030000,5250000,5480000,5740000,5990000,6240000,6500000,6760000,7020000,7290000,7560000,7850000,8150000,8460000,8790000,9130000,9480000,9820000,10200000,10500000,10900000,11200000,11600000,11900000,12300000,12600000,13000000,13400000,13700000,14100000,14500000,14900000,15300000,15800000,16200000,16600000,17100000,17500000,18000000,18400000,18900000,19400000,19900000,20300000,20800000,21300000,21700000,22200000,22700000,23100000,23600000,24000000,24500000,24900000,25400000,25900000,26300000,26800000,27200000,27700000,28100000,28600000,29000000,29500000,29900000,30300000,30700000,31200000,31600000,32000000,32400000,32800000,33200000,33600000,33900000,34300000,34700000,35000000,35400000,35700000,36100000,36400000,36700000,37100000,37400000,37700000,38000000,38300000,38500000,38800000,39100000,39300000,39600000,39800000,40000000,40300000,40500000,40700000,40900000,41100000,41200000,41400000,41600000,41700000,41900000,42000000,42200000,42300000,42400000,42500000,42600000,42700000,42800000,42900000,43000000,43000000,43100000,43200000,43200000,43300000,43300000,43300000,43400000,43400000,43400000,43400000,43400000,43400000,43400000,43400000,43300000,43300000,43300000,43200000,43200000,43100000,43100000,43000000,42900000,42900000,42800000,42700000,42600000,42500000,42500000,42400000,42300000,42200000,42100000,42000000,41900000,41800000,41600000 -Vietnam,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6550000,6560000,6570000,6580000,6600000,6610000,6640000,6660000,6690000,6720000,6750000,6790000,6830000,6880000,6920000,6980000,7030000,7090000,7150000,7210000,7280000,7350000,7420000,7490000,7570000,7640000,7710000,7780000,7860000,7930000,8010000,8090000,8160000,8240000,8320000,8400000,8480000,8560000,8640000,8720000,8790000,8860000,8920000,8990000,9060000,9130000,9200000,9270000,9340000,9410000,9480000,9560000,9640000,9720000,9810000,9900000,9990000,10100000,10200000,10300000,10400000,10500000,10600000,10700000,10800000,10900000,11100000,11200000,11300000,11500000,11600000,11700000,11900000,12000000,12200000,12300000,12500000,12600000,12800000,12900000,13100000,13300000,13400000,13600000,13700000,13900000,14100000,14200000,14400000,14600000,14800000,14900000,15100000,15300000,15500000,15700000,15900000,16100000,16300000,16500000,16700000,16900000,17000000,17200000,17300000,17500000,17600000,17800000,18000000,18200000,18400000,18600000,18800000,18900000,19100000,19300000,19500000,19700000,19900000,20100000,20400000,20600000,20800000,21000000,21200000,21400000,21600000,21900000,22100000,22300000,22600000,22800000,23000000,23300000,23500000,23700000,24000000,24200000,24500000,24800000,25400000,26000000,26600000,27400000,28100000,29000000,29800000,30800000,31700000,32700000,33700000,34700000,35700000,36800000,37900000,39000000,40100000,41200000,42300000,43400000,44500000,45500000,46600000,47700000,48700000,49800000,50900000,52000000,53200000,54400000,55600000,56900000,58300000,59700000,61000000,62500000,63900000,65300000,66800000,68200000,69700000,71100000,72600000,73900000,75200000,76400000,77500000,78500000,79400000,80300000,81100000,82000000,82700000,83500000,84300000,85100000,85900000,86700000,87600000,88500000,89400000,90500000,91500000,92500000,93600000,94600000,95500000,96500000,97400000,98400000,99300000,100000000,101000000,102000000,103000000,104000000,104000000,105000000,106000000,106000000,107000000,107000000,108000000,108000000,109000000,109000000,110000000,110000000,111000000,111000000,112000000,112000000,112000000,113000000,113000000,113000000,114000000,114000000,114000000,115000000,115000000,115000000,115000000,115000000,116000000,116000000,116000000,116000000,116000000,116000000,116000000,116000000,116000000,115000000,115000000,115000000,115000000,115000000,115000000,114000000,114000000,114000000,114000000,114000000,113000000,113000000,113000000,113000000,113000000,112000000,112000000,112000000,112000000,111000000,111000000,111000000,111000000,110000000,110000000,110000000,110000000,109000000,109000000,109000000,109000000,109000000,108000000,108000000,108000000,108000000 -Yemen,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2590000,2600000,2600000,2600000,2600000,2600000,2600000,2610000,2610000,2610000,2610000,2620000,2620000,2620000,2630000,2630000,2640000,2640000,2650000,2650000,2660000,2660000,2660000,2670000,2670000,2680000,2680000,2690000,2690000,2700000,2700000,2710000,2710000,2720000,2720000,2730000,2730000,2740000,2740000,2750000,2760000,2760000,2770000,2770000,2780000,2780000,2790000,2800000,2800000,2810000,2810000,2820000,2830000,2840000,2840000,2850000,2860000,2870000,2880000,2880000,2890000,2900000,2910000,2920000,2930000,2940000,2950000,2960000,2970000,2980000,2990000,3000000,3010000,3030000,3040000,3050000,3060000,3070000,3080000,3090000,3100000,3120000,3130000,3140000,3150000,3160000,3170000,3180000,3200000,3210000,3220000,3230000,3240000,3250000,3270000,3280000,3290000,3300000,3310000,3330000,3340000,3360000,3390000,3410000,3440000,3470000,3490000,3520000,3540000,3570000,3600000,3620000,3650000,3680000,3700000,3730000,3760000,3790000,3820000,3840000,3870000,3900000,3930000,3960000,3990000,4020000,4050000,4080000,4110000,4140000,4170000,4200000,4230000,4260000,4290000,4330000,4360000,4400000,4470000,4550000,4620000,4690000,4770000,4840000,4920000,5000000,5090000,5170000,5260000,5350000,5450000,5540000,5640000,5750000,5860000,5970000,6080000,6190000,6300000,6410000,6520000,6660000,6830000,7030000,7270000,7540000,7820000,8120000,8430000,8760000,9110000,9470000,9850000,10200000,10600000,11100000,11500000,12100000,12700000,13300000,14000000,14700000,15300000,15900000,16400000,16900000,17400000,17900000,18400000,18900000,19500000,20000000,20600000,21200000,21800000,22400000,23000000,23600000,24300000,24900000,25600000,26200000,26900000,27600000,28300000,28900000,29600000,30200000,30900000,31600000,32200000,32900000,33600000,34200000,34900000,35500000,36200000,36800000,37500000,38100000,38700000,39300000,40000000,40600000,41200000,41800000,42400000,43000000,43600000,44100000,44700000,45300000,45800000,46300000,46800000,47300000,47800000,48300000,48800000,49200000,49600000,50000000,50400000,50800000,51200000,51500000,51800000,52200000,52400000,52700000,53000000,53200000,53400000,53600000,53800000,54000000,54200000,54300000,54500000,54600000,54700000,54800000,54900000,54900000,55000000,55000000,55100000,55100000,55100000,55100000,55100000,55100000,55000000,55000000,55000000,54900000,54800000,54800000,54700000,54600000,54500000,54400000,54200000,54100000,54000000,53800000,53700000,53500000 -Zambia,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,747000,746000,746000,746000,746000,746000,746000,746000,746000,745000,745000,745000,745000,745000,745000,745000,745000,744000,744000,744000,744000,744000,744000,744000,744000,743000,743000,743000,743000,743000,743000,743000,743000,742000,742000,742000,742000,742000,742000,742000,742000,741000,741000,741000,741000,741000,741000,742000,743000,744000,747000,752000,757000,764000,771000,781000,792000,804000,815000,828000,843000,858000,874000,889000,905000,922000,939000,956000,977000,1000000,1040000,1070000,1100000,1140000,1170000,1210000,1250000,1290000,1330000,1370000,1410000,1450000,1490000,1540000,1580000,1630000,1680000,1730000,1780000,1830000,1890000,1940000,2000000,2060000,2120000,2180000,2250000,2310000,2370000,2430000,2490000,2560000,2630000,2710000,2790000,2870000,2950000,3040000,3140000,3240000,3350000,3450000,3560000,3680000,3790000,3910000,4040000,4170000,4320000,4470000,4630000,4790000,4960000,5140000,5320000,5500000,5690000,5890000,6090000,6310000,6520000,6740000,6960000,7170000,7390000,7600000,7810000,8030000,8240000,8450000,8670000,8900000,9140000,9390000,9670000,9950000,10200000,10500000,10800000,11100000,11400000,11700000,12100000,12400000,12700000,13100000,13500000,13900000,14300000,14700000,15200000,15600000,16100000,16600000,17100000,17600000,18100000,18700000,19200000,19800000,20400000,21000000,21600000,22200000,22900000,23500000,24200000,24900000,25600000,26300000,27000000,27700000,28400000,29200000,30000000,30700000,31500000,32300000,33100000,34000000,34800000,35700000,36500000,37400000,38300000,39200000,40100000,41000000,41900000,42900000,43800000,44800000,45800000,46700000,47700000,48700000,49700000,50800000,51800000,52800000,53800000,54900000,55900000,57000000,58100000,59100000,60200000,61300000,62400000,63500000,64600000,65700000,66800000,67900000,69000000,70100000,71200000,72300000,73500000,74600000,75700000,76800000,77900000,79100000,80200000,81300000,82400000,83500000,84600000,85700000,86800000,87900000,89000000,90100000,91200000,92300000,93300000,94400000 -Zimbabwe,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1090000,1100000,1100000,1100000,1110000,1110000,1120000,1120000,1130000,1130000,1140000,1140000,1150000,1160000,1170000,1180000,1180000,1190000,1200000,1210000,1220000,1230000,1240000,1240000,1250000,1260000,1270000,1280000,1290000,1300000,1310000,1320000,1330000,1340000,1350000,1360000,1370000,1380000,1380000,1390000,1400000,1410000,1420000,1430000,1440000,1450000,1460000,1480000,1490000,1500000,1510000,1520000,1530000,1540000,1550000,1560000,1570000,1580000,1590000,1600000,1620000,1630000,1640000,1650000,1660000,1670000,1680000,1700000,1710000,1720000,1730000,1740000,1760000,1770000,1780000,1790000,1810000,1820000,1830000,1850000,1860000,1870000,1880000,1900000,1910000,1930000,1940000,1950000,1970000,1980000,1990000,2010000,2020000,2040000,2050000,2060000,2080000,2090000,2110000,2120000,2140000,2150000,2170000,2180000,2200000,2220000,2230000,2250000,2260000,2280000,2300000,2310000,2330000,2350000,2360000,2380000,2400000,2410000,2430000,2450000,2470000,2480000,2500000,2520000,2540000,2560000,2570000,2590000,2610000,2630000,2650000,2670000,2690000,2710000,2750000,2830000,2920000,3010000,3100000,3200000,3300000,3410000,3520000,3630000,3750000,3870000,4000000,4130000,4270000,4410000,4550000,4700000,4850000,5010000,5180000,5350000,5540000,5730000,5920000,6120000,6310000,6500000,6700000,6920000,7160000,7430000,7720000,8030000,8340000,8660000,8980000,9290000,9600000,9900000,10200000,10400000,10700000,10900000,11100000,11300000,11500000,11700000,11900000,12100000,12200000,12400000,12500000,12600000,12800000,12900000,13100000,13300000,13600000,13800000,14100000,14400000,14700000,15100000,15400000,15800000,16200000,16500000,16900000,17300000,17700000,18100000,18400000,18800000,19200000,19600000,20000000,20300000,20700000,21100000,21500000,21900000,22300000,22700000,23100000,23600000,24000000,24400000,24800000,25200000,25600000,26000000,26500000,26900000,27300000,27700000,28100000,28500000,28900000,29300000,29700000,30000000,30400000,30800000,31200000,31500000,31900000,32200000,32600000,32900000,33200000,33500000,33900000,34200000,34500000,34800000,35100000,35400000,35600000,35900000,36200000,36400000,36700000,36900000,37200000,37400000,37600000,37800000,38000000,38200000,38400000,38600000,38800000,39000000,39100000,39300000,39400000,39600000,39700000,39800000,39900000,40000000,40100000,40200000,40300000,40400000,40500000,40500000,40600000,40600000,40700000 diff --git a/Lecture_DataScience_dotfiles/gitscripts.sh b/Lecture_DataScience_dotfiles/gitscripts.sh deleted file mode 100644 index 392c1d53..00000000 --- a/Lecture_DataScience_dotfiles/gitscripts.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!bin/sh - -git add . -git commit -m "fixed" -git push -f origin main - -jb build --all . -git checkout main -ghp-import -n -p -f _build/html -rm _build diff --git a/Lecture_DataScience_dotfiles/index.md b/Lecture_DataScience_dotfiles/index.md deleted file mode 100644 index 72f8ec0e..00000000 --- a/Lecture_DataScience_dotfiles/index.md +++ /dev/null @@ -1,38 +0,0 @@ -# 資料:実践データサイエンス - -本コンテンツは宇都宮大学の基盤科目「実践データサイエンス」の授業資料です。 - -## 資料の使い方 - -本講義では資料(≒ファイル形式)や利用する外部サービス等が幾つかある。 -慣れないうちは混同するかと思うので、ここに資料自体の説明と各種アプリケーションやサービスの説明をまとめておく。 - -### ブック -:::{margin} -概要を理解したり復習する際にはこちらのブックを閲覧してください -::: -本資料は[Jupyter Notebook](https://github.com/jupyter/notebook)形式で作成されたソースファイルを[Jupyter Book](https://jupyterbook.org/en/stable/intro.html)を用いて変換することで作成されたコンテンツになっている。この形式の資料を授業内では**ブック**ないし**Book**と表記・呼称する。 - -### ノートブック - -[Jupyter Notebook](https://github.com/jupyter/notebook)とは、Markdownテキスト・数式・図などを含んだドキュメント作成とPythonなどのプログラミング実行を提供する環境で、授業資料は`.ipynb`という拡張子のJupyterNotebook用ファイルとして作成されている。授業ではこれを**ノートブック**や**Notebook**などと表記・呼称する。 - -`.ipynb`形式のソースファイルの管理と共有には、GitHubと呼ばれる環境を利用していて、ソースファイルは[こちら](https://github.com/SotaYoshida/Lecture_DataScience)からも閲覧できる(この授業を受講したりプログラムを実行するのに皆さんがGitHubのアカウントを取得したりこのリンクを開いたりする必要は特段ありません)。 -Jupyter Notebookを編集・実行するための環境はいくつかあるが、本授業では環境構築やそれにかかるトラブルシューティングを最小化するために、Google Colaboratoryというサービスを利用して**Googleのクラウド環境上でJupyter Nootebookを編集・実行する方式**を採用している。 - -:::{note} -**授業に先立ってGoogleのアカウントの新規取得をお願いします** -::: - -**ブック**は概要をとらえたり復習をするときには見やすくて便利だが、実際に自身でコードを実行したりプログラムを書く場合には**Google Colaboratory上でJupyter Notebookを開く**ことになる。 -Google Colab.上でノートブックを開くには、各章の冒頭に用意された"Open in Colab"というボタンをクリックするか、上のロケットの形をしたボタンにマウスオーバーして"Colab"から開く。左の"Google Colaboratoryの使い方"や第1章のノートブックで試してみよう。参考: -![](notebooks/pic_for_notebook/pic_0_0.png) - - -## 不具合報告または問い合わせ - -本講義資料に関する不具合(リンク切れなど)の報告や問い合わせについては下記のフォームよりお願いします。 -授業受講者からの不具合報告関しては授業やCL等で返答します。授業外の問い合わせについては、お答え出来ない場合もありますので予めご了承ください。 - - - \ No newline at end of file diff --git a/Lecture_DataScience_dotfiles/logo.png b/Lecture_DataScience_dotfiles/logo.png deleted file mode 100644 index fa380b5b..00000000 Binary files a/Lecture_DataScience_dotfiles/logo.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/GPnote.pdf b/Lecture_DataScience_dotfiles/notebooks/GPnote.pdf deleted file mode 100644 index 8c09158d..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/GPnote.pdf and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter0_HowToUse.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter0_HowToUse.ipynb deleted file mode 100644 index 17542e2c..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter0_HowToUse.ipynb +++ /dev/null @@ -1,179 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Google Colaboratoryの使い方\n", - "\n", - ":::{note}\n", - "以下の内容は、Google Colaboratoryや関連サービスのアップデートに伴い、数ヶ月経つとところどころ文言が変更されている場合があります。適宜対応するものに置き換えて読んでいただけると助かります。\n", - ":::\n", - ":::{note}\n", - "Macユーザーの人は適宜下記のコントロールキー`Ctrl`を`command`(`⌘`)キーに読み替えてください。\n", - ":::\n", - "\n", - "Google Colaboratory上でノートブックを開くと、下記のような画面が開く。(上のOpen in ColabまたはロケットマークからColabを開いてみよう!)\n", - "\n", - "![](pic_for_notebook/pic_0_1.png)\n", - "\n", - "\n", - "この画面が開いたときに、右上にお使いのGoogleのアカウントのアイコンが表示されている人はそのまま以下へ、\"ログイン\"というボタンが表示されている人はまずそちらからご自身のアカウントにログインしてください。 \n", - "授業ではプログラミングの強力さを体感してもらうために、**Google Driveの中に入っているcsv/excelファイルを読み出して自動で作画をするプログラム**を書いたりする。\n", - "その際、教員やTAと受講者間でdriveを見ながら相談することもあり得る。プライベートなアカウントとは別に、**大学の授業で使う専用のアカウントを新規作成する**のを強く推奨します。\n", - "\n", - "\n", - "Google Colaboratory(あるいはJupyterNotebook)環境ではユーザーは\n", - "- **テキストセル**\n", - "- **コードセル**\n", - "\n", - "の2つを駆使して、自分だけのノートブックを作成したり、他者が作成した`.ipynb`形式のファイルを開いて編集したりプログラムを実行することができる。\n", - "\n", - "\n", - "## テキストセル\n", - "[+テキスト]というボタンを押すとテキストセルを追加することができます。\n", - "\n", - "\n", - "### テキスト部分への数式の挿入\n", - "\n", - "Jupyter Nootebookでは$\\LaTeX$形式の数式をサポートしていて、ドルマークで囲むと数式を表示させることもできます。 \n", - "$f(x) = \\frac{1}{2}\\exp{(-2x^2 + 3x + 5)}$\n", - "\n", - "\n", - "## コードセル\n", - "[+コード]というボタンを押すか、特定のショートカット`Ctrl + M B`でコードセルを追加することができる。\n", - "\n", - "コードセルに記述したPythonコードは、コードセルにマウスオーバーした際に現れる再生ボタンのようなアイコンをクリックするか、セル内で`Ctrl+Enter`を押すことで実行ができる。\n", - "実行のたびにいちいちマウスに手をやるのは面倒なので、是非ショートカットを使おう。\n", - "この例に限らず、手の移動を最小限にすることで作業を楽にしたり押し間違いを防ぐこともできる。\n", - "アプリケーションにあまり依らない共通のショートカット(`Ctrl+S`(`⌘+S`)は保存,`Ctrl+W`(`⌘+W`)はタブを閉じる, などなど)ので少しずつショートカットを覚えるようにしよう。\n", - "\n", - "\n", - "**コードセルにはコメントを除いて、全角文字は使わない**ように意識しよう。\n", - "**全角スペースなどが気づかずに混入して、エラーの原因になること**がよくある。\n", - "\n", - "## 重要な注\n", - "\n", - "ブックから開いたノートブック\n", - "```{margin}\n", - "ノートブックの実体(ソースファイル)は[GitHub上](https://github.com/SotaYoshida/Lecture_DataScience)にあります\n", - "```\n", - "は、皆さんがコピーをするなどしない限り、実行はできても保存はできません。\n", - "```{warning}\n", - "**必ず、[ドライブにコピーを保存]ボタンか、[ファイル]->[ドライブにコピーを保存]を押し、\"ご自身のファイル\"を編集・保存するようにしてください**\n", - "![](pic_for_notebook/pic_0_2.png)\n", - "```\n", - "\n", - "上の画像のように、ノートブックのファイル名の横にGitHubのロゴ(タコ足猫)が表示されている場合、\n", - "皆さんが開いているのはGitHubからインポートされたノートブックであって、皆さん自身のファイルではありません。 \n", - "途中でうっかりタブやブラウザを閉じてしまうと作業内容が消えてしまいます。\n", - "\n", - "私も一連の講義資料作成時にGitHubから開いたノートブックを直接編集して数時間分の作業内容を消してしまったことが何度もあります...。辛いです。\n", - "\n", - "コピーを編集している場合は、左上のノートブック名の隣がGoogle driveのロゴになっているはず。 \n", - "この場合、編集されたものはGoogle Driveに一定時間で自動でバックアップされるので安心ですし、いつでもどの端末からでも開いて作業を再開することができます。 \n", - "![](https://drive.google.com/uc?export=view&id=1IibFQS1TVq6xDhG62AP9yG2Sy0c89Zut)\n", - "\n", - "\n", - "```{margin}\n", - "MS Officeなど、他の多くのソフトでも共通のショートカットなので、こまめに保存する手クセを付けておきましょう。\n", - "保存!保存!!保存!!!\n", - "```\n", - "Windowsなら`Ctrl+ S`, Macなら`Command + S`を押すことで随時Google Driveにバックアップを保存することができます。 \n", - "誤った内容に編集してしまった場合もGoogle Colaboratoryの\"最終編集: X月Y日\"といったところやGoogle Drive上でファイルの上で右クリック→\"版を管理\"から復元することができます。\n", - "\n", - "## なんか挙動が変だな、と思ったら。\n", - "\n", - "複数のセルにまたがるコードを実行していくうちに変数に意図しないものが入っていたりなんか変だな、挙動が怪しいな、と思ったら[ランタイム]や[編集]などから下記の操作を行ってみましょう。\n", - "\n", - "* セルの実行を停止したい場合: [ランタイム]→[実行の中断]で中断 (or [セッションの管理]から不要なセッションを削除する)\n", - "* 再起動したい場合: [ランタイム]→[ランタイムを再起動]\n", - "* 出力をいったん全部消したい: [編集]→[出力をすべて消去]\n", - "\n", - "## Google Driveからファイルのインポート\n", - "\n", - "Google Colaboratoryでは、Google Driveに保存されたファイルの内容を読み込んだり、逆にコードでテキストファイル,エクセルファイルや画像,音声などを作成しGoogle Driveに保存することができます。\n", - "\n", - "お使いのアカウントのDriveをGoogle colab.から操作する方法は主に2通りあります。\n", - "\n", - "1つめ: \n", - "以下を実行し、出てくるURLに遷移 \n", - "authorization codeをコピーし枠内に貼り付けてEnterを押す \n", - "(Google colabからgoogle driveのファイルにアクセスできるようになります)\n", - "\n", - "```Python\n", - "from google.colab import drive\n", - "drive.mount('/content/drive/') ##google driveを/content/という場所にマウント (2番めと整合するようにパスを選びましたが、マウントする場所は自由に選べます)\n", - "```\n", - "\n", - "たとえばgoogle drive直下にあるXXX.pngというファイルを指定したい場合は\n", - "```Python\n", - "filename = \"/content/drive/My Drive/XXX.png\"\n", - "```\n", - "とすれば良い。\n", - "\n", - "2つめ: \n", - "Google Colabの左側にあるフォルダマークをクリックし、(「ファイルのブラウジングを有効にするには、ランタイムに接続してください。」と出る場合は、少し待ってください) \n", - "次に、Google driveのロゴがついたフォルダをクリックする(画像の、[ファイル]というところの右下にある、driveのロゴがついたグレーがかったフォルダマーク) \n", - "![](https://drive.google.com/uc?export=view&id=1RMjCaZN7emkVBqlYF-gFMcG8FRnw-9Xv)\n", - "\n", - "この場合は自動で```/content/drive```という場所にマウントされるので(仕様が変更になる可能性あり) \n", - "google drive直下にあるXXX.pngというファイルを指定したい場合はやはり\n", - "```Python\n", - "filename = \"/content/drive/My Drive/XXX.png\"\n", - "```\n", - "などとすれば良い。 \n", - "また、driveを一度マウントした後でパスがわからなくなったときには左の[ファイル]からdriveに相当するフォルダにマウスオーバーして縦3点$\\vdots$から[パスをコピー]で、パスをクリップボードにコピーすることができます。\n", - "\n", - "\n", - "## シェルコマンドとドライブ内のファイルのパス\n", - "\n", - "Google Colab.では先頭にエクスクラメーションマークをつけることで\n", - "* ls (リスト,ファイル等表示)\n", - "* mkdir (ディレクトリ作成)\n", - "\n", - "などのLinux/Unixで用いられるコマンドを実行することもできる。 \n", - "たとえばGoogle Driveをマウントした後にマイドライブ直下にあるpng画像のリストを表示させたければ\n", - "```bash\n", - "!ls /content/drive/MyDrive/*.png \n", - "```\n", - "とすればよい。\n", - "なお、半角のアスタリスクはワイルドカード記号「対象を任意に」という命令になっている。\n", - "\n", - "\n", - "\n" - ] - } - ], - "metadata": { - "colab": { - "include_colab_link": true, - "name": "Python_chapter0_HowToUse.ipynb", - "provenance": [] - }, - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter1_Introduction.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter1_Introduction.ipynb deleted file mode 100644 index 6b040732..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter1_Introduction.ipynb +++ /dev/null @@ -1,1010 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rk52fX27r7hj" - }, - "source": [ - "# Pythonの基本 その1:\n", - "\n", - "授業の冒頭で説明するように、プログラミングによるデータ分析は、複雑なデータの取り扱いを簡単にしてくれたり、系統的な作業を可能にしミス(精度)をコントロールすることが出来たりと利点が多い。しかし、その恩恵を受けるためには基本的な事項をまず学修しなくてはならない。\n", - "\n", - ":::{margin}\n", - "さらにいうと英語で検索できればウェブ上で収集できる情報は何倍にも膨れ上がる.\n", - ":::\n", - "この授業で重視するのは**Pythonの文法や作法、テクニックではない**。というのも、自分が実現したい操作・作業をきちんと**言語化**することさえできれば、授業で扱う程度の内容であればググればだいたいのことは解決できるし、インターフェース(見た目)が違ったとしても別のプログラミング言語やデータ解析ツールにも応用が効く。 \n", - "\n", - "したがって、以降では「いったいなんのためにホニャララなんてものを導入(定義)するのか?」を意識しながら学習していくことにしよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9f041YDhyHKb" - }, - "source": [ - "## 変数の定義と簡単な演算\n", - "\n", - "**「\"値\"に固有の名前(識別子)を付したもの」** を**変数**と定義する。\n", - "\n", - "どのようなものが\"値\"として扱えるかは後で見ていくことにして、まずは代表的な値である**実数値**,**整数**を変数として定義してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_emEY3U-SGBk" - }, - "outputs": [], - "source": [ - "a = 2.0 \n", - "b = 5" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CUJ8eEf8x2bs" - }, - "source": [ - "これで変数```a```と変数```b```に値が代入され\"定義\"された。 \n", - "プログラムでは通常、等号記号(`=`)は代入に使用される。値の代入は、等号の左に変数(値を入れたいものの名前)、等号の右に値を書くことで行う。\n", - "\n", - "注: よく書籍などでは変数を箱と見立てて箱の中に数値や文字列を入れる説明もよく見られるが、変数は値が保管されるメモリ上の住所を示すものというのが正確。関連した話題としては、次の章の**リスト操作の注意点**を参照.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kSahHBeguqRX" - }, - "source": [ - "## 簡単な演算\n", - "次に、上で定義された変数を使って四則演算をしてみよう。\n", - "\n", - "足し算" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "PLwBPo2OyCvc", - "outputId": "e803fa31-9566-4d87-a253-a3a99ee33753" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "7.0" - ] - }, - "execution_count": 6, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "a+b " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1ntUEuJWyBoC" - }, - "source": [ - "引き算" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "1IpzKL9TyW2k", - "outputId": "08807a99-86e7-40a3-f556-bd67d6cf2338" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "-3.0" - ] - }, - "execution_count": 7, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "a-b" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S4-CasuLyiJM" - }, - "source": [ - "掛け算 掛け算記号は`*`(アスタリスク)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "ZQCmuN-IyiZQ", - "outputId": "80bc16fe-5012-4c2e-db6a-001609a5d640" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "10.0" - ] - }, - "execution_count": 8, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "a*b" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "割り算" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a/b" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uYolSMVnyiiz" - }, - "source": [ - "演算した結果を別の変数`c`として定義したり代入して保存しておくこともできる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "8Z5Q-TN0yirc" - }, - "outputs": [], - "source": [ - "c=a*b " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_eyM3WdUyiyP" - }, - "source": [ - "`c`の値が後で知りたいと思ったときは、以下のように`print`関数というものを使う" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "dS6W58sfyi8w", - "outputId": "0b78e406-7d9d-4f8c-d584-4cd1195f3680" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "10.0\n" - ] - } - ], - "source": [ - "print(c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SvfvgAEu2hAq" - }, - "source": [ - "変数の値を確認することは、プログラムが正しく動いているかを確認する最も単純かつ強力な方法である。 \n", - "慣れないうちは「値はなんだっけな?」「何かおかしい、意図した動きと違うな」と思ったら`print`してみよう。\n", - "\n", - "またコード部分に`#`(半角シャープ記号)をつけるとその行の`#`以降に書かれたことは無視されるのでコメント(注釈)を書いたりすることができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MArtGR067qrB" - }, - "outputs": [], - "source": [ - "print(\"Hello\") # Helloとプリントする(ここは読まれない)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "なれないうちは**どういった計算をするのか**、**その行をいつ編集したのか**などコメントを逐一書いておくのも良い。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "uNWje7ZmSPQh" - }, - "outputs": [], - "source": [ - "## 10月1日に編集\n", - "print(b//a) # 切り捨て除算 \n", - "print(b%a) # bをaで割った余り\n", - "print(a**b) # aのb乗" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "上の例で、`#`を忘れると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 135 - }, - "id": "CVrAtuQS7zqd", - "outputId": "a02ec808-9b4b-4ce3-cbd6-5d75b0561b7f" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(\"Hello\") Helloとプリントする\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "print(\"Hello\") Helloとプリントする" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "F5KhEPy9ngiO" - }, - "source": [ - "構文エラー(SyntaxError)が発生する。\n", - "基本的に`SyntaxError:`は**あなたの書いたコードがPythonの文法上許されない書き方になっている**ことを意味している。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(\"Hello\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "は一見問題ないように見えるが、`print`関数の右側の括弧`(`が全角になっているため、これもSyntaxErrorとなる。\n", - "細かな文法やエラーの原因の特定については、一緒に少しずつ慣れていこう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qYviUyHp50-g" - }, - "source": [ - "一度定義した変数は、値を更新することもできる。\n", - "\n", - "```a = a + 2```は、\"aに2を加えた値\"でaを再定義することを表し、```a += 2 ```と書いても同じ結果が得られる。(`+=` を用いた書き方のほうがシンプルなので、今後多用します)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "kShmmBdw6Bfg" - }, - "outputs": [], - "source": [ - "a = 2.0 \n", - "a += 4.0; print(\"2行目\", a) \n", - "a -= 3.0; print(\"3行目\", a)\n", - "a *= 3.0; print(\"4行目\", a)\n", - "a /= 3.0; print(\"5行目\", a)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "上では、セミコロン(`;`)で、複数のコードを1行に書くことができる機能を用いた。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ksTr3vgORMth" - }, - "source": [ - "## 変数名に関する約束\n", - "\n", - "この授業では**変数名に全角文字(ひらがな・カタカナ・漢字)は使わず、文字列かコメントにのみ使う**と約束をしよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lHrhJ0kP3sqB" - }, - "outputs": [], - "source": [ - "#非推奨\n", - "あ=1.0\n", - "print(あ)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "e7-sDw8n3Vnh" - }, - "source": [ - "上記のように、変数名にひらがな等を使用すること自体は可能で、Google Colaboratoryでも何も特別なことをしなくてもひらがなが使える。また、最近の多くのプログラミング言語は全角文字をサポートしている。\n", - "ただファイルの互換性などを考慮すると、一般にはひらがなや漢字など全角文字を変数に指定することは避けたほうが無難である。\n", - "\n", - "また、変数名などにひらがなを使うことに由来して起こりがちなバグとしては「括弧()を間違って全角にしてしまってそれに気が付かない」といったことがある。コードを編集する際に日本語の変数などを利用していると、半角・全角の切り替え忘れなどが生じうるので、コードセルではなるべく半角英数字のみを使うというのが、ミスを防ぐための一つの方法にもなっている。\n", - "\n", - "以降ではこの慣例にならって、変数名に全角文字は使わない。変数名は基本的に半角英数字, アンダースコア`_`のみで定義しよう。\n", - "```+-%/=```などの記号も使うことができない。たとえば```-```は既に引き算という演算を表すのに使用されているので、```a-b``` という名前の変数を定義しようとしても、コンピュータにとっては変数ではなく[a マイナス b]という演算だと認識されてしまう。\n", - "また変数の頭に数字を使うこともできない。 例: ```2a```\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "9nJInAMR8xBc" - }, - "outputs": [], - "source": [ - "a=5.0\n", - "a2 = a*2.0 #これはOK" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "-AQ_v6oN80VD", - "outputId": "8341c2a7-9ebb-4730-d47a-1b1ce7f2ac1b" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 2a = a*2.0 #これは構文エラー(SyntaxError)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "2a = a*2.0 #これは構文エラー(SyntaxError)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "67WnrlQFvGzc" - }, - "source": [ - "その他、よくあるエラーについては[こちら](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_misc_Error.html)を参照" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Xzh2hrEGQyoh" - }, - "source": [ - "## Pythonでの文字列操作\n", - "\n", - "Pythonでは、数値はもちろん文字列も**値**として扱うことができる。文字列は`\"\"`(ダブルクォーテーション)か`''`(シングルクォーテーション)で囲むことで定義することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Uf5RoETJQf9T" - }, - "outputs": [], - "source": [ - "text = \"私の名前はXXXです\" ## XXXのところを自分の名前にしてみましょう。\n", - "print(text)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vu7JQswcQima" - }, - "source": [ - "文字列には、足し算や整数値との掛け算が適用できる。たとえば\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1KfLiGbXSGtu" - }, - "outputs": [], - "source": [ - "text1 = \"ティッシュ配りの\"\n", - "text2 = \"バイトを監視する\"\n", - "print(text1 + text2) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gapLeKPbSS9X" - }, - "source": [ - "とすれば、`text1`と`text2`にそれぞれ代入した2つの文字列を連結した一つの文字列を表示することができる。\n", - "また、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lkPrilk0Smn1" - }, - "outputs": [], - "source": [ - "a = 2\n", - "print(str(a)+\"人の\"+text1+ text2 * 5 +\"正社員\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SXWbu7hERxhk" - }, - "source": [ - "とすれば、`text2`部分を5回繰り返して他の文字列とつなぎ合わせた長い文字列を作ることもできる。\n", - "\n", - "1点注意点としては、整数値を代入した`a`を文字列として他の文字列と結合したいときは、\n", - "`str()`関数(`str`はstringの略)を使って、文字列に変換してやらなくてはならない。\n", - "これに関連して、後ほど変数の**型**というものを勉強する。\n", - "\n", - "また足し算と掛け算は定義できるが、文字列に対して引き算や割り算を行おうとするとエラーを吐く。\n", - "\n", - "**※もう少し詳細な文字列操作**\n", - "`replace`関数,`split`関数,`strip`関数なども便利ですが、この章では省略します。以降の\"ファイル・文字列操作\"の章で扱います。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cA-K0W0gdUVm" - }, - "source": [ - "## プログラムの実行順 \n", - "\n", - "基本的にプログラミングでは、上から処理が実行される。 \n", - "(ループや関数が導入されると少し事情が異なり、ブロックと呼ばれる処理単位でまとめて実行されることもあるが、この点については、2・3章以降で追々見ていくことにしましょう)\n", - "\n", - "以下の2行のコードは、実行するとエラーが出る。 \n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "Nxtzf6oydyPo", - "outputId": "7928123b-07af-4bbb-c159-969ac7098e58" - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mnum\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'num' is not defined" - ] - } - ], - "source": [ - "print(num)\n", - "num=2" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pDZNSdGSXLLS" - }, - "source": [ - "理由は、エラーメッセージを読むと分かるように、```num```という変数が定義されていない(not defined/undefined)のに、その値を`print`しようとしたからである。\n", - "\n", - "\n", - "\n", - "もちろん```num=2```の代入部分を含むコードを実行した後ならエラーはでない。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "iGbewJx35Cv-", - "outputId": "39440ce3-4345-42f7-c5f9-ef3d405a7cdc" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2\n" - ] - } - ], - "source": [ - "num=2\n", - "print(num)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "diGHO3vHByMP" - }, - "source": [ - "とくにGoogle Colab(Jupyter Notebook)環境では、**セルをまたいでコードを実行することがあるので、意図した変数の値がきちんと引き継がれているか注意が必要**になる。また**変数のスコープ**という概念にも注意が必要となる(関数を扱う第3章で解説します).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nvVmV3T2eNNg" - }, - "source": [ - "Jupyter Notebook環境では、セルのコードを逐次実行した場合**コードセルの左側に表示される括弧[ ]内の整数でコードの実行順を確認することができる**。コードやノートが複雑になってくると、正しい順番で実行しないとエラーが出たり、エラーは出ないけれど意図した出力にならないといった事が起こりえるので、注意が必要。慣れないうちは、処理(プログラム)をあまりバラバラのセルに書かず、一つにまとめて書くのがオススメ\n", - "\n", - "**良い例**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "i04YCgvREx3D" - }, - "outputs": [], - "source": [ - "a = 2\n", - "f = a**2 + 3*a + 1\n", - "print(f)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "M9wpT6pdE94M" - }, - "source": [ - "**悪い例**\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NZz13R9wE5d-" - }, - "outputs": [], - "source": [ - "a = 5" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "tSEolkA1FBIb" - }, - "outputs": [], - "source": [ - "f = a**2 + 3*a + 1\n", - "print(f)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QWdmQhl7FOdy" - }, - "source": [ - "このようにコードを分けてしまうと、```f```では最後に```a```に代入された値を用いて計算が行われるので、```a=5```のセルを実行し忘れると、意図した値にならない。(あるいは未定義ならエラーとなる)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iZWBifqG1hiM" - }, - "source": [ - "## 変数の型   \n", - "プログラムの中で扱う変数には様々な\"型\"(`type`, タイプ)が存する。\n", - "代表的なものとしては、 \n", - "- `float`: 浮動小数点数(≒実数の有限桁内の近似)\n", - "- `int`: 整数 \n", - "- `str`: 文字列 (stringの略) \n", - "- `bool`: 真偽値 (下で説明します) \n", - "\n", - "が挙げられ、この他にも様々な型が存在している。 \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CiI90I_KBFp4" - }, - "source": [ - "たとえば以下のように変数の型は```type()```という関数を使うことで調べることができる。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lk5U6eRixEmS" - }, - "outputs": [], - "source": [ - "a=2\n", - "b=2.0\n", - "print( type(a), type(b))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SeEQBeHX_Ajq" - }, - "source": [ - "```{margin} 浮動小数点\n", - "いい加減な理解としては、\"実数値\"に近い概念だと思ってください。\n", - "\"いい加減な理解\"というのは\"厳密には違う\"という意味で、それについては後で説明します。\n", - "```\n", - "`a=2`は`int`(整数)型で、`b`(=2.0)は`float`、つまり浮動小数点(floating point)。\n", - "\n", - "Pythonでは特定の型同士のみに許された特殊な演算等もある。変数の型が調べたくなったときは```type```関数を使ってみよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ju30-9Eg_mkm" - }, - "source": [ - "### プログラムでの実数の取り扱い" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uV441Uk-5U6g" - }, - "source": [ - "整数としての2(つまり`int`型の2)は理想的な整数2であるのに対して、`float`型の2.0というのは、 \n", - "「コンピュータが扱える有限の精度のもとで十分2.0とみなせる値」という意味しか持たない。\n", - "\n", - "変数`a`に以下の値を代入して`print`してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_bHmWs7-70G_" - }, - "outputs": [], - "source": [ - "a = 2.00000000000000000000055511151231257827021181583404541015625\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Cil16n_8jY5E" - }, - "source": [ - "コンピュータで実数値を表現する際、小数点以下の桁数を無限桁考慮するのは、機械にとっても大変なので、ある程度の精度で打ち切ることが必要になる。\n", - "\n", - "Pythonで扱う実数値は、現在の世界標準である[IEEE 754](https://ja.wikipedia.org/wiki/IEEE_754)という規格のもとで、十進数に換算して16桁程度の精度(倍精度実数の場合)の近似となっている、とザックリ理解しておけば当面は問題ないでしょう。\n", - "\n", - "たとえば、`0.3`と`0.1+0.1+0.1`は、コンピュータが無限の精度を持っていれば(つまり0.3や0.1のあとに無限に0が続く数を扱うことができれば)等しい数になるべきだが、有限の精度を採用している都合上\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "guk4yu1W-ceA", - "outputId": "997d7dab-636b-4a3b-8602-8c7105b5f980" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-5.551115123125783e-17\n" - ] - } - ], - "source": [ - "print(0.3 - (0.1+0.1+0.1))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "fVklyhDm-0do" - }, - "source": [ - "というように差をとると極小の値だけずれている事が分かる。\n", - "\n", - "授業で扱う対象の場合は、この有限精度が実用上のトラブルを起こすことは無いはず。\n", - "一方で(研究等で)いわゆる数値計算を行う場合は、このようなごく小さな誤差が掛け算によって増幅され無視できない影響を引き起こすことがしばしばあるので、工夫や適切な処理が必要になることもある。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9pzeE-C812cT" - }, - "source": [ - "$\\clubsuit$ さらに進んだ注\n", - "\n", - "コンピューターでは、0か1の二値を取るビット(bit)を最小単位として数値など各種の情報を表現して扱います。\n", - "たとえば整数値は、ビットを用いた表現と1対1対応させることができます。ビットが2つ使えるとするならば、[00]が1, [01]が2,[10]が3,[11]が4といった具合です。\n", - "\n", - "一方で実数は、いくらでも小さく分割できるため集合としては非可算無限(それぞれの値に、1対1対応する\"番号\"をつけることができない)となり、これをコンピューターで扱おうとすると、必ず何らかの\"近似\"が必要になります。\n", - "この近似の方法として通常用いられるのが、**浮動小数点**という考え方でありその標準を定めたものが前述のIEEE754となります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0rTMkwwu542w" - }, - "source": [ - "## 予約語\n", - "\n", - "Pythonには、あらかじめ役割が与えられている言葉(**予約語**)があり変数名として使う事はできません。 \n", - "\n", - "実際にコード用のセルにこれらの語句を入力すると下記のように黒ではなく別の色で表示されます。このような場合は**変数に別の名前をつける**ようにしましょう。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NZupgRYXzOqc" - }, - "outputs": [], - "source": [ - "# 予約語は色で分かる\n", - "False, None, True, and, as, assert, break, \n", - "class, continue, def, del, elif, else, except, \n", - "finally, for, from, global, if, import, in, is, \n", - "lambda, nonlocal,not, or, pass, raise, return, \n", - "try, while, with, yield" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "予約語の役割については登場したその都度説明します。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2clzBTJo47u2" - }, - "source": [ - "## ブール(bool)\n", - "真偽値(`bool`,ブール)は`True`(真)と`False`(偽)の二値を取る型です。たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ft3Id7uO5VtR" - }, - "outputs": [], - "source": [ - "a=2.0; b = 5.0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "v3Dkiheo5ZE7" - }, - "source": [ - " のとき、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jlQpKJu6xTv-" - }, - "outputs": [], - "source": [ - "print(a < b) # aがbより小さいかどうか" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "e6CjUOwrxcgH" - }, - "outputs": [], - "source": [ - "print(a == b) # aがbと等しいかどうか プログラムでの等号は=ではなく==です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GjZXvoth5lZv" - }, - "source": [ - "これを考えるとなにが嬉しいかというと、ある条件をみたす(みたさない)ときだけ特定の作業をするプログラムを書くことが出来ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "wHr_li34xe8s" - }, - "outputs": [], - "source": [ - "if a==b: \n", - " print(\"aとbが一緒だよ!!やったぜ!!!\")\n", - "else:\n", - " print(\"aとbが違うじゃないか!!!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xyNnie55N77B" - }, - "source": [ - "このような**条件分岐**の具体例については次の章で見ることにしましょう。 " - ] - } - ], - "metadata": { - "colab": { - "include_colab_link": true, - "name": "Python_chapter1_Introduction.ipynb", - "provenance": [] - }, - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.10" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter2_ListLoop.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter2_ListLoop.ipynb deleted file mode 100644 index fd391ec6..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter2_ListLoop.ipynb +++ /dev/null @@ -1,2025 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9f041YDhyHKb" - }, - "source": [ - "# Pythonの基本 その2: \n", - "\n", - "\n", - "[この章の目的]\n", - "プログラミングで非常に重要な概念である配列や繰り返し処理について学ぶ。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FxEjmIHu3StG" - }, - "source": [ - "## リスト\n", - "\n", - "実際にいろんなデータを扱う際には、値や変数をまとめて処理したくなります。\n", - "こうしたときに必要になるのが以下で扱う**リスト**型を始めとする**配列**です。\n", - "\n", - "リストは、値や変数などを括弧[ ]で括り、カンマで区切ることで作ることができます。\n", - "例: ```[1.0, 2.0, 3.0]``` \n", - "また好きな名前の変数にリストを代入する(リストに名前を割り振る)こともできます" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "dxpkCjfvjsDD" - }, - "outputs": [], - "source": [ - "heights=[178.0, 180.0, 153.0]\n", - "\n", - "# 変数heightsをprint\n", - "print(heights)\n", - "\n", - "# 変数heightsの型をprint\n", - "print(\"変数heightsの型(type)は\", type(heights)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CI7AqILkzWYY" - }, - "source": [ - "リストの要素にできるのは数値だけではなく、文字列のリストも作ることができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "a7c5bw5O36CC" - }, - "outputs": [], - "source": [ - "names = [ \"Aさん\", \"Bさん\", \"宇大太郎さん\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SkfATN0Jj_Oo" - }, - "source": [ - "リストに入っている要素の数は、`len()`関数(lengthの略)で見ることができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "nexyb9lAkJC0" - }, - "outputs": [], - "source": [ - "print(\"リストnamesは\", names)\n", - "print(\"長さは\", len(names))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7NWIj0tWzxGa" - }, - "source": [ - "当然、長さに名前をつけて適当な変数として定義することもできます。\n", - "**関数の出力の結果を何度も後で再利用する場合**などは、このように変数に代入しておくと便利です。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "yQWDGLFCmszW" - }, - "outputs": [], - "source": [ - "ln_a = len(names)\n", - "print(\"リストnamesの長さは\", ln_a, \"で、型は\", type(ln_a)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gjwXE2cJz05q" - }, - "source": [ - "文字列と値を組み合わせたようなリストも作ることができます。 \n", - "例:名前、身長、体重 => ```[\"Aさん\", 178, 66]```\n", - "\n", - "また、これを拡張して、入れ子に(リストのリストを作成)することもできます。\n", - "``` [ [\"Aさん\", 178,66], [\"Bさん\", 180, 70] ]```" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8kVQe42tkK-D" - }, - "source": [ - "### リストの要素にアクセスする, インデックス(index)\n", - "\n", - "リストの中の要素にアクセスするときは、半角括弧を使って[整数]といった形で\"番地\"を指定します。 \n", - "このときの番地(あるいは座標といっても良いですが)を指定する整数のことをインデックス(index)と呼びます。\n", - "\n", - "**【重要】Pythonでは要素にアクセスするためのインデックスは1からではなく、0からカウントします!**\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "kRMlRuwhj2Rc" - }, - "outputs": [], - "source": [ - "a = [\"Aさん\", 178, 66]\n", - "print(a[0])\n", - "print(a[1])\n", - "print(a[2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ci65y6MBoSvU" - }, - "source": [ - "ですので、`a[3]`にアクセスしようとすると、\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mkON3qP1occT" - }, - "outputs": [], - "source": [ - "print(a[3])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zHlSjTaJn9UU" - }, - "source": [ - "list index out of range (リストのインデックスが用意された範囲(range)を逸脱している)というエラーが出ます。 \n", - "慣れないうちは0からカウントするのを変に思うかもしれませんが、これはプログラミング言語の仕様によるもので、Pythonの他にもC/C++なども0からカウントします。(ちなみにFORTRAN, Juliaなどは1からカウントします。)\n", - "\n", - "こうした0-based indexingと呼ばれる言語の利点はいくつかありますが、代表的なものは負のインデックスが自然に使えることでしょうか?\n", - "\n", - "理工系分野では、教科書などで行列やベクトルの要素を指定するのに1-based indexingを使うことも多いため、混乱するかもしれません。慣れるまでは注意が必要です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "D_hxwmblo4GK" - }, - "outputs": [], - "source": [ - "a = [\"Aさん\", 178, 66]\n", - "print(a)\n", - "print(a[-1])\n", - "print(a[-2])\n", - "print(a[-3])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "--1OHCHKo9An" - }, - "source": [ - "`[-1]`でアクセスすれば末尾の要素に、`[-2]`番目の要素は後ろから二番目といった具合です。\n", - "\n", - "長いリストを作って「えっとこれ前から何番目の要素だったっけ...?」というときに、 \n", - "後ろからX番目の要素といったように、サクッと取得できるのが便利なときもあります。\n", - "\n", - "入れ子にしたリストの要素を見たり、使いたいときには、少々慣れが必要です。 \n", - "```a = [ [[1,2], [3,4]], 5, 6]``` \n", - "このような場合では、一番外側の括弧から数えて、 \n", - "何番目の階層になっているかを考えることが必要になります。 \n", - "練習してみましょう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_yXPKxkk1XYh" - }, - "source": [ - "**練習**\n", - "\n", - ":::{margin} 変数名の規則\n", - "授業の資料のように、一時的な変数を使う場合は`a`や`tmp`といった意味のない変数名で十分なのですが\n", - "自身でいろんなコードを書くときは**後で自分や他人が見たときになんの変数のつもりか分かる**ような変数名にしましょう。\n", - "5日後の自分も他人のようなものです。\n", - ":::\n", - "1. [+コード]でセルを以下に追加し、下のリストを作成する \n", - " ```tmp = [ [\"Aさん\", 178,66], [\"Bさん\", 180, 70] ]```\n", - "2. ```tmp[i][j]```のi,jに可能な整数を入れて、Aさんの身長、Bさんの体重などをprint関数で表示してみましょう。\n", - "3. 2.と同じことを、負のインデックスを駆使してやってみましょう。\n", - "4. ```a = [ [[1,2], [3,4]], 5, 6]```を作成して、\n", - " len(a[0]) #0番目の要素の数をprintしてみましょう。\n", - "5. ```print(a[0][0][1])```を実行してみましょう。\n", - "6. 4.5.の挙動から推測して、aのリストの中から4を取り出したい場合どうすればいいのかprint関数を使いながら考えてみましょう。\n", - "\n", - "\n", - ":::{note}\n", - "テキストセルの内容をコードセルなどにコピー&ペーストしたければ、対象をドラッグして、`Ctrl+C`でコピー,`Ctrl+V`でペースト出来ます(Macの場合は`Ctrl`を`⌘`に置き換えてください)\n", - ":::" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZB9epIx_VAQ6" - }, - "source": [ - "### リストの結合\n", - "\n", - "2つのリストを結合することもできます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "YUsuP81s3_BG" - }, - "outputs": [], - "source": [ - "a=[1,3]\n", - "b=[2,4]\n", - "c= a+b\n", - "print(c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hfEDbcvd6bFE" - }, - "source": [ - "\n", - "上のリストを\"座標\"だと思えば、要素ごとの和になってほしいような気もしますが、リストの足し算は要素ごとの和ではなく\"リストの結合\"を意味します。\n", - "\n", - "> 補足: 要素ごとの和のような、数学などで必要な演算は以降で扱う```numpy```というモジュールを使って`ndarray`型と呼ばれるものにすれば簡単に実行できます\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CDhimmq_0x-q" - }, - "source": [ - "長さや階層の異なる2つのリストでも可能です." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "b3DFZtE602hP" - }, - "outputs": [], - "source": [ - "c=[1,2,\"Aさん\"]\n", - "d=[[5,6],[7,8]]\n", - "c+d" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ovAjU_321ROI" - }, - "source": [ - "### リストに要素を加える" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s568X9r-4c6J" - }, - "source": [ - "リストにあとから要素を加えたくなるときもあります. \n", - "そんなときは ```append```関数か```+=```を使います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "b_1nWHpd4ptJ" - }, - "outputs": [], - "source": [ - "A = [\"Aさん\", 178,66] \n", - "A.append(\"O型\")\n", - "print(\"A\", A)\n", - "\n", - "B = [ \"Bさん\", 180,70] \n", - "B += [\"A型\"]\n", - "print(B)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qpkIcDzA8S4X" - }, - "source": [ - "厳密には両者は違うのですが、この授業では見た目がスッキリするので後者をよく使います。 \n", - "入れ子のリストを作るときは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lqfalNz788Rx" - }, - "outputs": [], - "source": [ - "data = [ ]\n", - "data += [ [\"Aさん\",178,66] ]\n", - "data += [ [\"Bさん\",180,70] ]\n", - "print(\"data\", data)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wT8k9-LB9Y74" - }, - "source": [ - "などとする。空リストに既存(新規)のリストを追加したいときに、上のように`[ ]`が二重に必要な理由はリスト同士の和の演算が結合となることから理解できる。\n", - "実際に1重の括弧で試してみよう:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "GRI40dgS1U-u" - }, - "outputs": [], - "source": [ - "data2 = [ ]\n", - "data2 += [\"Aさん\", 178,66] # 1重カッコ これだと右辺のリストを空リストに結合することになる\n", - "data2 += [ \"Bさん\",180,70] # これも同様\n", - "print(data2)\n", - "print(\"data2\", data2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "u3Q7Qi8mnE4l" - }, - "source": [ - "こうしてしまう(リスト同士の単なる結合)と、人ごとにデータが区切られていないので扱うのに不便となる。\n", - "\n", - "リストに格納する情報に血液型を加えたりする際は以下のようにすればよい" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_l9GJWZ98srB" - }, - "outputs": [], - "source": [ - "### 名前,身長,体重,血液型,住んでる市区町村のリストを\n", - "a = [ \"Aさん\", 178, 66, \"A型\"]\n", - "print(a)\n", - "a += [\"宇都宮市\"]\n", - "print(\"住所追加後\", a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cdCiouyW2oqJ" - }, - "source": [ - "リストの要素は後から更新することもできます.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "XIATihMK9Lh6" - }, - "outputs": [], - "source": [ - "data = [ [\"Aさん\", 178,66],[\"Bさん\",180,70] ]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vdRIu-li9Oqe" - }, - "source": [ - "というリストがあったとして、Aさんの体重を修正したければ、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "fZ0mjwjn2uXd" - }, - "outputs": [], - "source": [ - "data[0][2] = 58 #Aさんの体重を更新\n", - "print(data) #リストを表示" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "血液型を追加したければ以下のようにすればよい。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "data[0] += [ \"A型\"]\n", - "data[1] += [ \"B型\"]\n", - "\n", - "print(data)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "a0gQkWzeUqgj" - }, - "source": [ - "### インデックスの取得" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V_MaDugdUs2T" - }, - "source": [ - "\n", - "```index```関数を使ってリスト内の、[興味のある要素]のインデックスを取得することができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DsvZFrmmU4iz" - }, - "outputs": [], - "source": [ - "tlist = [ \"いちご\", \"りんご\", \"ぶどう\"]\n", - "tlist.index(\"りんご\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZIyt7579U7bR" - }, - "source": [ - "重複する要素がある場合、初めにヒットしたインデックスを返します。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WD1qkBNvU8fH" - }, - "outputs": [], - "source": [ - "tlist2 = [ \"いちご\", \"りんご\", \"ぶどう\",\"メロン\",\"りんご\"]\n", - "tlist2.index(\"りんご\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "97rfD_PvVKU2" - }, - "source": [ - "複雑なデータを扱う際に「あれ、あの要素ってどこの番地にあるんだっけ?」といった状況に便利な関数です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rYMz3ClOhp9D" - }, - "source": [ - "### スライスを用いた部分リストの取得" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GSRzB_IPiPCO" - }, - "source": [ - "以下の```a```のようなリストがあったとき、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mkyfjA4ZiPtu" - }, - "outputs": [], - "source": [ - "data = [ \"years\", 1990, 1995, 2000, 2005, 2010, 2015, 2020]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0WmC8_qwiZPi" - }, - "source": [ - "始点,コロン(`:`),終点でインデックスの範囲を指定して、部分的に取り出すことが出来ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "z2fish5zixSf" - }, - "outputs": [], - "source": [ - "data[2:5]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "COx3lOQZjCFo" - }, - "source": [ - "終点のインデックスに相当する要素は取り出されないことに注意しましょう。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "XasfLIqRjHbe" - }, - "outputs": [], - "source": [ - "data[1:]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sG4YvJTQjIE0" - }, - "source": [ - "とすると、最後の要素まで含まれます。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LWya_HtMjKXw" - }, - "source": [ - "負のインデックスを使用することもできます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MKJ5-cJPi_xy" - }, - "outputs": [], - "source": [ - "data[1:-1]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BsLWAvmb3JDd" - }, - "source": [ - "### $\\clubsuit$ リスト操作の注意点 \n", - "\n", - "授業で扱う程度の内容のプログラミングに関する疑問は、ググれば自分でだいたい解決することができます。 \n", - "ただしこの項目で述べることは(初学者にとって)「直感に反するのだけど、どこがおかしいのか分からないので**そもそもどうググっていいかが分からない**」という点で、少し事情が異なります。 \n", - "\n", - "例を見せるために、以下の2種類のリストを用意します.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "IUJ1-lAY3T0n" - }, - "outputs": [], - "source": [ - "data1 = [[ \"Aさん\", 178,66], [ \"Bさん\",180,70] ]\n", - "tmp = [\"Aさん\", 178,66]\n", - "data2 =[ tmp, tmp] \n", - "\n", - "print(\"data1\", data1)\n", - "print(\"data2\", data2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "t2FS4d0U3-rq" - }, - "source": [ - "`data2`のようにまず雛形のリスト`tmp`を作って人数分の長さを持つリストを作ってから中身を編集しようと考えた場合、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w-uX1Alb4OOi" - }, - "outputs": [], - "source": [ - "data2[1][0]=\"Bさん\"\n", - "data2[1][1]=180\n", - "data2[1][2]=70" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iQwPT_WN4WG_" - }, - "source": [ - "という操作を思いつきます。このとき、`data2`の2つ目(0から数えて1番目)の要素だけを編集したつもりでも`data2`を`print`すると\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rkK0uOpz4huX" - }, - "outputs": [], - "source": [ - "print(data2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rVVjGsPu4jhj" - }, - "source": [ - "data2の最初の要素(Aさんのままであってほしいリスト)まで上書きされてしまっています。 \n", - "これは直感に反しているという点で、初学者が陥りやすい落とし穴です。\n", - "\n", - "※C言語などを学習していれば、参照渡し(ポインタ渡し)などである程度馴染みがあるかもしれません。\n", - "\n", - "「値を格納する箱というよりは値が保管される住所を示すもの」と1章の[変数の定義と簡単な演算]のところで書きました。 \n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xt1Q_B0f5QYL" - }, - "outputs": [], - "source": [ - "tmp = [\"Aさん\", 178,66]\n", - "data2 =[ tmp, tmp] \n", - "print(id(data2[0]), id(data2[1])) #それぞれのidを調べてprint\n", - "print(\"idが等しいか\", id(data2[0])== id(data2[1])) #id()は変数のidを確認する関数" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HktuZ7f85_FY" - }, - "source": [ - "今の場合、`data2`を最初に作ったときには0番目と1番目の要素(リスト)は同一の`id`を持つ`tmp`というリストです。 \n", - "したがって`tmp`の中身を書き換える操作(`data2[1][0]=\"Bさん\"`)は、`tmp`の更新を通して`data2`の要素いずれもに影響します。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LU95twWnrFGG" - }, - "source": [ - "このように、(特に)リストを入れ子にする際には、注意が必要です。なんかへんだな?と思ったときは要素の`id`に気を配ってみるのも重要です. \n", - "上のコードで、意図したものと違う挙動を起こした原因は、リスト`tmp`を参照する形で`data2`を作ったことでした。 \n", - "これは`copy`モジュールの`copy`関数を用いて配列のコピーを作成することで回避できます。(モジュールについては4章で説明します)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Bor6WGZzrIXO" - }, - "outputs": [], - "source": [ - "import copy #copyというモジュールをインポートする\n", - "tmp=[\"Aさん\",178,66]\n", - "data2 = [ copy.copy(tmp), copy.copy(tmp)]\n", - "print(id(data2[0]) == id(data2[1])) # ← data2の0番目と1番目のidが同じ(参照元が同じ)だと困るのでFalseであってほしい" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EZQPPyoaryQS" - }, - "source": [ - " また、リストのリスト(ネストされたリストといったりします)それ自体をcopyしたいときは、\n", - "```copy.deepcopy()```を使います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WkRQ4_klncVY" - }, - "outputs": [], - "source": [ - "import copy\n", - "data = [[ \"Aさん\", 178,66], [\"Bさん\",180,70] ]\n", - "\n", - "copydata = copy.copy(data)\n", - "deepcopydata = copy.deepcopy(data)\n", - "\n", - "\n", - "print(id(data), id(copydata),id(deepcopydata))\n", - "print(id(data[0]), id(copydata[0]), id(deepcopydata[0]))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "di-HvKQhpV4c" - }, - "source": [ - "上を見ると```data```というリストと```copydata```という\"リスト同士\"が異なるidを持っていても、それぞれの0番目の要素のidを見てみると、同じものを参照していることがわかります。 \n", - "このように、ネストされたリストをコピーして別々に扱いたい場合は特に注意が必要で、```deepcopy```のような作業が必要となります。(私も初めてプログラミングで配列を使ったときに、この点に気が付かずに時間をかなり溶かしました)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "66r8pzgrfwOi" - }, - "source": [ - "## 条件分岐 (if文)\n", - "\n", - "`if`文では、書かれた条件が成立した場合、後に続くブロックを実行します。 \n", - "`if`文を使って命題の真偽を判定することで、条件分岐を表現することができます。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "JOz7cyvQf2NX" - }, - "outputs": [], - "source": [ - "a=3.0; b =-0.3\n", - "if a > b: \n", - " print(\"aはbよりも大きい\")\n", - "if b > a:\n", - " print(\"bはaよりも大きい\") ##これは呼び出されない" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QF6tLC7agluM" - }, - "source": [ - "条件を満たすときはA,満たさないときはBをしたい、という場合には```else```を使う。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SacEU4f0gsmv" - }, - "outputs": [], - "source": [ - "if a< b:\n", - " print(\"aはbよりも小さい\")\n", - "else:\n", - " print(\"a>=b\") " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "t0pZV6Ghg31K" - }, - "source": [ - "```elif```(else ifの略)を用いれば、もう少し複雑な条件を表現することができる。\n", - "\n", - "たとえば、もし条件1が満たされればAを実行、条件1は満たされないが条件2が満たされればBを、さらに1も2も満たされない場合はCを実行するという場合は下記のようなコードになる:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "a68DTqL-hak5" - }, - "outputs": [], - "source": [ - "if a < b: #条件1\n", - " print(\"ab\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "fOvfCVFUiL1d" - }, - "source": [ - "if文は入れ子構造にすることもできる。その際はインデントを使ってブロックを表現する。\n", - "\n", - "たとえば`a`が偶数の場合は値をそのまま表示して、`a`が奇数の場合は3の倍数かそうでないかで処理を変える事を考えると、以下のようになる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ioNZB5iAiM_d" - }, - "outputs": [], - "source": [ - "if a % 2 == 0 :\n", - " print(a)\n", - "else:\n", - " if a % 3 == 0 :\n", - " print(str(a)+\"は3の倍数です\")\n", - " else:\n", - " print(str(a)+\"は3の倍数ではありません\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5qWPQPGMii74" - }, - "source": [ - "`if`文を使って条件分岐を作るときは**条件分岐にモレがないか**注意が必要です。例えば、変数`a`の値によって処理を行う場合" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Tv3MJC6ukVIM" - }, - "source": [ - "```py\n", - "if a > 0:\n", - " ## なんらかの処理1\n", - "if a < 0:\n", - " ## なんらかの処理2\n", - "```\n", - "\n", - "と書いてしまうと、`a=0`の場合、`if`文を2つともすり抜けてしまい、バグの原因になることがあります。はじめのうちは少々面倒でも```else```を使って、意図しないすり抜けがないかチェックするのが良いでしょう。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2oZ3vaYb3s1t" - }, - "outputs": [], - "source": [ - "a = 0 #aをいろんな値に変えて実行してみてください\n", - "if a > 0: #aが0より大きい場合\n", - " print(\"処理1:a+2=\", a+2)\n", - "elif a<0: \n", - " print(\"処理2:a*2=\", a*2) \n", - "else:\n", - " print(\"ゼロだよ?なんにもしなくていいの?\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1ecruqL3pHA4" - }, - "source": [ - "## ループ処理\n", - "\n", - "ループ処理は、プログラミングの中で**最も重要な概念の一つ**です。 \n", - "ループ処理を使うことで、同じ処理を繰り返し行うことができます。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cQKuOTIcJxYE" - }, - "source": [ - "### for文" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-hI7Tnwf79LU" - }, - "source": [ - "まず以下のコードを実行してみましょう:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "VgjXia0upIya" - }, - "outputs": [], - "source": [ - "for i in range(5):\n", - " print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vLdv2seGpj7Z" - }, - "source": [ - "上のコードは、\n", - ">iを0から4まで変化させながらiをprintする作業を繰り返しなさい\n", - "\n", - "という処理になっています。順番に見ていきましょう: \n", - "まず`range()`関数は、`range`型のオブジェクトを生成する関数で、`range(5)`は0から整数を5つ(0,1,2,3,4)を生成する関数です。やはり0始まりで、5が含まれないことに注意です。 \n", - "なお`range`関数の引数を`range(始点,終点,間隔)`と3つにすると、より複雑な整数の集合を作ることもできます。 \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HJ_Q30y-qNZv" - }, - "outputs": [], - "source": [ - "for i in range(0,6,2):\n", - " print(i) #やはり6は含まれないことに注意" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YMq8UkMY1UVt" - }, - "source": [ - "```in```(予約語なので色が変わってますね)は、`i`に`range()`で指定した数値の範囲(リストみたいなもの)を順番に突っ込んでいく関数と理解しておけばひとまずOKです。\n", - "\n", - "次に、リストの中身を順番に表示させてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DosIH6zO1aeW" - }, - "outputs": [], - "source": [ - "kudamono = [\"いちご\", \"りんご\",\"ぶどう\",\"メロン\"] #リストを定義\n", - "for tmp in kudamono:\n", - " print(tmp)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Mi49kwOX1iJ0" - }, - "source": [ - "上のコードでは、`tmp`という変数に`kudamono`というリストの中身が順番に当てはめられている事がわかります。 \n", - "ループを用いてリストの中身にアクセスする方法は主に2通りで、\n", - "\n", - "1. インデックスのループを回してリストにアクセスする\n", - "2. リストの要素に順番にアクセスする\n", - "\n", - "で、上のコードは2.に相当します。上の例で、1.の方法を採る場合は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SnMf5IBXAtuY" - }, - "outputs": [], - "source": [ - "for i in range( len(kudamono) ) :\n", - " print( kudamono[i] )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QbiNRP3tAwgD" - }, - "source": [ - "とすればよいです。\n", - "\n", - "インデックスと要素を同時に取得して使いたいときには```enumerate```関数を使って" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1sBjeAU3A8CJ" - }, - "outputs": [], - "source": [ - "for i, tmp in enumerate(kudamono):\n", - " print(i, tmp)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_iaSPpKgBBha" - }, - "source": [ - "とします。これによって○泉○次郎構文を作ることもできます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "3tNkMDDMBLi0" - }, - "outputs": [], - "source": [ - "for i, tmp in enumerate(kudamono):\n", - " print(tmp,\"は\"+str(i)+\"番目です\",str(i)+\"番目というのは0から数えて\"+str(i)+\"番だということです。\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s_IqtFV6rvKv" - }, - "source": [ - "### ブロックとインデント" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FE1LiUrVqrbU" - }, - "source": [ - "さて、上の`for`文のコードには、関数の前に半角スペースが4つあるのに気がついたでしょうか? \n", - "Pythonでは、`for`文を始め様々な処理の際に一連の作業\"ブロック\"を、**半角スペース4つ分**インデントを下げることで表現します。\n", - "\n", - "下のように、`for`文を使っているにも関わらず正しくインデントされていない場合はエラーが出ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ItpayRhWyBIZ" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - "print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "z1T_hDMgyCHI" - }, - "source": [ - "さて簡単な例でブロックごとの処理の挙動を確認しておきましょう。 \n", - "\n", - "**練習問題** \n", - "\n", - "以下のコードを実行すると、何回数字がprintされるでしょうか? \n", - "コードを実行する前に、三択で答えてみてください。 \n", - "\n", - "A. 8回\n", - "\n", - "B. 11回\n", - "\n", - "C. 13回" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "qM5QYdcJs5O-" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - " print(i) \n", - " for j in range(5):\n", - " print(i,j)\n", - "print(i,j)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tZxftTZBszWq" - }, - "source": [ - "`i`に関する繰り返し(ループとも呼びます)は、i=0,1の2回で、インデントが1ブロック下げられた操作を実行しますので、\n", - "`print(i)`を2回と、`j`に関するループを2回繰り返します。`j`はj=0,1,2,3,4をとり、`j`のループでは```print(i,j)```は合計2×5=10回呼ばれます。最後の行にある```print(i,j)```はどのループ(ブロック)の中にも入っていませんから、実行されるのは1回だけです。 \n", - "ということで、答えはC.の13回でした。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "llWzeLsx2kDq" - }, - "source": [ - "慣れないうちは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "VAgzCZ6K2lUI" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - " print(i)\n", - " for j in range(5):\n", - " print(i,j)\n", - " ## End j loop\n", - "## End i loop" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1geoDWVC2sjM" - }, - "source": [ - "などのように、どこでループを閉じるのかをコメントしておくと良いかもしれません。 \n", - "コードを編集しているうちに" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "USOd9Zdp2zaU" - }, - "outputs": [], - "source": [ - "for i in range(2):\n", - " print(i)\n", - "for j in range(5):\n", - " print(i,j)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jWjLB9Dy243B" - }, - "source": [ - "といったように意図しないインデントになってしまって、 \n", - "正しい答えを与えない(バグを作ってしまう)可能性があります。\n", - "\n", - "> 細かい注) Pythonでは通常インデント幅は4つの半角スペースで指定されます。 \n", - "Google Colab. では、 [ツール]→[設定]→[エディタ]から変更できますので、幅2が使いやすければ変更してください。 \n", - "また、プログラムファイルを編集する際、Tabキーを使ってインデントを指定するのと、スペースキーを用いてインデントを指定するのとで、どちらを好むかは、[タブ/スペース論争]として知られています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_r-xOslCuYQt" - }, - "source": [ - "**練習**\n", - "\n", - "リスト\n", - "```data = [ [\"Aさん\", 178,66] , [\"Bさん\",180,70], [\"Cさん\", 165,55]]```を用意し、 \n", - "[体重を二乗して身長にかけ合わせた量]の総和を計算するコードを作ってみましょう。\n", - "\n", - "ヒント1: 身長は入れ子になっているリストの[1]番目,体重は[2]番目 \n", - "ヒント2: total=0.0を定義して、体重の二乗×身長をfor文を使ってどんどん足していく。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "FJpla_3Fvbjw" - }, - "outputs": [], - "source": [ - "###以下は、不完全なコードです。これにあと3行ほど書き足してみましょう。 \n", - "###ちなみに答えは 2156493です.\n", - "data = [ [\"Aさん\", 178,66] , [\"Bさん\",180,70], [\"Cさん\", 165,55]]\n", - "total = 0.0\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Uf275kXcK-JN" - }, - "source": [ - "さて、ループ(for文)の使い方がなんとなく分かったでしょうか? \n", - "どんどん使ってみて、なれておいてください。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qucZen5vJ9PE" - }, - "source": [ - "他にも、たとえば、 1, 10, 100, 1000, 10000,...というループを回したい時、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "o7dH6aHKKP4i" - }, - "outputs": [], - "source": [ - "for i in [1,10,100,1000,10000]:\n", - " print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JTg8PfD3KW5U" - }, - "source": [ - "と書くのではなく、べき乗に対するループを回す" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Lwz3s8taKcvF" - }, - "outputs": [], - "source": [ - "for p in range(5):\n", - " print(10**p)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8qLiZx-VKhh-" - }, - "source": [ - "など、考えたい値を直接ループで扱うのではなく間接的な値(今の場合`p`)を扱うなどの考え方も、コードをスッキリさせる上で重要です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gPHPdQWAvKxc" - }, - "source": [ - "### リスト内包表記\n", - "\n", - "`for`文の別の使い方として、リスト内包表記と呼ばれる書き方があります。 \n", - "これを使うと、要素がたくさんのリストを簡単につくることができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oNiE_0IHwpUm" - }, - "outputs": [], - "source": [ - "a = [ i for i in range(1,1000,2) ] ## i を1から999まで2ずつ変えていったときの値を詰めたリストを作成\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2NxxShOxNFCH" - }, - "source": [ - "### break ループ処理を途中で抜けたい場合\n", - "\n", - "`break`は`for`文を途中で抜け出すのに使います。用途としては**目的を果たしたのでもうループを繰り返す必要がないとき**や**予期せぬ事が起きた場合にループ処理を終わらせてプログラムを終了するとき**などに使います.\n", - "\n", - "以下のような状況を考えてみましょう\n", - "\n", - "> Aさんは100万円を手にカジノにやってきて、 \n", - "掛け金が20万かつ50%の確率で勝ったり負けたりするギャンブルに目をつけました。 \n", - "\n", - "このAさんが [最大10回ゲームをやるが1回でも負ければ即座に賭けをやめたい]という状況をコードで表現する場合、以下のようなコードになります:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HPC5NF3FNUo3" - }, - "outputs": [], - "source": [ - "import random #これがなにかはとりあえず気にしない\n", - "\n", - "# 最初の手持ち金を定義\n", - "money = 1000000\n", - "\n", - "# ゲームを開始, 最大10回まで繰り返すことをfor文で表現\n", - "for i in range(10): \n", - " result = random.choice([True,False])\n", - " if result: # result==True, つまり勝った場合\n", - " money += 200000\n", - " print(\"勝った!!\")\n", - " else :\n", - " money -= 200000\n", - " print(\"負けたので帰ります\")\n", - " break\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`random.choice([True,False])`は1/2の確率で`True`か`False`を与える処理になっている。\n", - "True/Falseをそれぞれ勝ち負けに対応させられるので、その結果に応じて処理を分岐させていることが分かる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EGUKtqjeeyk9" - }, - "source": [ - "### $\\clubsuit$ While文\n", - "\n", - "`for`に似たものとして`while`もよく用いられる。 \n", - "\n", - "`while`文は、原理的には`for`文と`break`を組み合わせたコードでも実装可能なので発展的な内容($\\clubsuit$マーク)として授業ではスキップするかも...\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "snmJfYawx-7u" - }, - "source": [ - "\n", - "プログラムを書いていくうちに、繰り返しの数が前もってわからないケースに遭遇することがある。たとえば\n", - "\n", - "* 連続で6が5回でるまでサイコロをふる\n", - "* 利益がある値を超えるまで株の売買をくりかえす\n", - "\n", - "といったイメージ。この様な場合は、何回処理を繰り返せば良いか予め知ることはほとんど不可能となる。\n", - "\n", - "サイコロの例の場合だと、たとえば5回ふっただけで6が連続で出る奇跡的な状況も有りえますし、1000回ふっても100万回降っても連続で5回は出ないかもしれません。(某漫画の地下チンチロ編のようなイカサマサイコロを使用するとグッと確率はあがります)このような処理を実装したい場合には`while`文を使います.\n", - "\n", - "さっきのAさんとカジノのギャンブルを例に\n", - "> 手持ち100万からゲームを開始して\n", - ">「手持ちが50万以上150未満ある限り賭けを続けるコード」\n", - "\n", - "を作ってみましょう\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "IDmdI51Mx-Tp" - }, - "outputs": [], - "source": [ - "import random #ランダムに勝ち負けを決めるためrandomというライブラリを使います\n", - "\n", - "money = 1000000\n", - "\n", - "#手元に50万以上-150万未満ある限り賭け続けることをwhile文で表現\n", - "while 500000 <= money < 1500000: \n", - " ## choice([True,False])でTrue(勝ち)とFalse(負け)をランダムに生成 \n", - " result = random.choice([True,False])\n", - " if result: # 勝ちの場合\n", - " money += 200000 \n", - " print(\"勝った!!\")\n", - " else : #負けの場合 20万失う\n", - " money -= 200000\n", - " print(\"負けた..\")\n", - "\n", - "# 500000 <= money < 1500000部分が\"False\"、つまりお金が50万以下か150万以上になったら\n", - "# while文が終わり、以下のprint文が読まれる\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "b9q7gVgWATh0" - }, - "source": [ - "といった具合です. 使用例が思い浮かばなければ「`while`なんてのがある」とだけ覚えておけば当面はOKです. \n", - "ちなみに上のコードは`random`モジュールの(疑似)乱数を用いているので、実行ごとに買ったり負けたり結果が変わります。何度か実行してみてください。\n", - "\n", - ">余談 これを応用すると↓のようなものを作って遊ぶこともできます(作者は私ではありません)。 \n", - "十亀vs松田シミュレータ https://mattz.xii.jp/yakiu/yakiu.html \n", - "(十亀選手(ライオンズ)と松田選手(ホークス)の驚異的な相性を元に作られた対戦シミュレータ)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iwv7BiM8NG47" - }, - "source": [ - "### $\\clubsuit$ continue\n", - "`continue`文は、`for`や`while`文の中で[以降の処理を無視する]のに使います. \n", - "具体的な用途としては[特定の条件を満たす場合にのみ適用する処理を書きたい]場合などがあります.再びカジノの例で考えてみましょう.\n", - "\n", - "まず、Aさんに勝負のたびに所持金を叫ばせるコードは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "eWE2Z2jVObxz" - }, - "outputs": [], - "source": [ - "import random\n", - "money = 1000000\n", - "while 500000 <= money < 1500000:\n", - " result = random.choice([True,False])\n", - " if result:\n", - " money += 200000 \n", - " else :\n", - " money -= 200000\n", - " print(\"今の所持金は...\"+str(money)+\"円だ\")\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eMPfQSziPEOP" - }, - "source": [ - "となります。これに少しずつ、より複雑な条件を加えていくことにしましょう. \n", - "\n", - "最初の掛け金を一旦5万円にすることにして[連続で勝った場合、コインを投げて表が出たら掛け金を2倍にする]という条件をいれてみましょう。これをプログラムで表現するのには以下のような実装が考えられます.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "M1F8_JYdPJFI" - }, - "outputs": [], - "source": [ - "import random\n", - "money = 1000000\n", - "\n", - "# 連続勝数を記録する変数hitを定義\n", - "hit = 0 \n", - "# 掛け金をセット\n", - "bet = 50000 \n", - "\n", - "# メイン部分のコード\n", - "while 500000 <= money < 1500000:\n", - " result = random.choice([True,False])\n", - " if result :\n", - " money += bet \n", - " hit +=1 #勝ったら連勝数をプラス1する\n", - " else :\n", - " money -= bet\n", - " hit = 0 #負けたら連続勝ち数を0にリセット\n", - " print(\"今の所持金は...\"+str(money)+\"円だ\")\n", - "\n", - " # コインの表裏を決める\n", - " coin = random.choice([True,False])\n", - " if hit >= 2 and coin: \n", - " bet = bet * 2\n", - " print(\"掛け金をレイズ!\",\"次は\"+str(bet)+\"円を賭けるぞ!!\")\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "A8XHg35QQtD0" - }, - "source": [ - "さらに**掛け金をレイズするかどうか悩んで、コインを投げて決めるのは、所持金が80万以上のときだけ**という、\n", - "より複雑な条件を実装するのに`continue`を使ってみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "5AgDgp8fQ3He" - }, - "outputs": [], - "source": [ - "import random\n", - "money = 1000000\n", - "\n", - "#連続勝数と掛け金を設定する\n", - "hit = 0 \n", - "bet = 50000 \n", - "while 500000 < money < 1500000:\n", - " result = random.choice([True,False])\n", - " if result:\n", - " money += bet \n", - " hit +=1 \n", - " else :\n", - " money -= bet\n", - " hit = 0 \n", - " print(\"今の所持金は...\"+str(money)+\"円だ\") \n", - "\n", - " # ここから下が追加された部分\n", - " if money < 800000:\n", - " continue # もし所持金が80万未満ならcontinue(以下の処理は実行しない)\n", - "\n", - " coin = random.choice([True,False])\n", - " if hit >= 2 and coin :\n", - " bet = bet * 2\n", - " print(\"掛け金をレイズ!\",\"次は\"+str(bet)+\"円を賭けるぞ!!\")\n", - "\n", - "print(\"最終的な所持金は...\"+str(money)+\"円だ\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p_ZvXiuc2ece" - }, - "source": [ - "### 例外処理" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6hnBZUQ1XpUW" - }, - "source": [ - "以下の処理は[ある値から都度10を引いていって平方根を取った値を表示する]というコードです\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "dWDJaf9G2hPi" - }, - "outputs": [], - "source": [ - "import math #sqrt(square root)関数を使うための1行\n", - "s = 124\n", - "#for i in range(20):\n", - "while True:\n", - " s -= 10\n", - " print(math.sqrt(s)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZX5FTHyOYdcF" - }, - "source": [ - "しかし、あるところでsの値が負になってしまい、sqrtが計算できなくなってしまいます(虚数を導入すれば定義できますが、`math`の`sqrt()`関数は非負の引数に対して定義されていますのでエラーが出ます)\n", - "\n", - "エラーが出る(≒予期しないことが起こる)とプログラムはそこで止まってしまいます。 \n", - "通常はそれで良い(問題があればエラーが起きないと対処しようがない)のですが、複雑な状況になると「エラーを無視してとにかくプログラムを最後まで実行させたい」「エラーが起こるときにエラーを回避するような仕組みをプログラム自体に実装したい」といった状況も起こりえます.\n", - "\n", - "上の例でいうと「`s`の値が正なら平方根を表示して、負の場合はエラーメッセージだけを表示してエラーが起きた回数をカウントする」という作業が必要な場合は以下のように \n", - "- ```try:``` 試行したい処理のブロック \n", - "- ```except:``` 例外(エラー)が起こった場合の処理のブロック \n", - "という2つの操作(`try`,`except`ともに予約語)を駆使することで、最後までプログラムを実行させることができます." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "7nhzIqnHZDRJ" - }, - "outputs": [], - "source": [ - "import math\n", - "s = 124\n", - "hit = 0 \n", - "for i in range(20):\n", - " s -= 10\n", - " try:\n", - " print(math.sqrt(s)) \n", - " except : \n", - " print(\"sの値が\"+str(s)+\"になったのでsqrtが計算できません\")\n", - " hit += 1\n", - "print(str(hit)+\"回 sqrtの計算でエラーがありました\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vcWhB2ld2EjT" - }, - "source": [ - "このノートブックでは説明しませんがexceptの後に具体的な例外を指定して例外の種類に応じた操作を行うことも出来ます。https://docs.python.org/ja/3/library/exceptions.html" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N7bZPiJyEpx-" - }, - "source": [ - "## $\\clubsuit$ タプル・辞書型\n", - "\n", - "発展的な内容です。 \n", - "以下のタプル・辞書型は使いこなせれば便利ですが、授業では必ずしも必要ではない(リストで代用できる)ので、興味に応じて学習してください。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5JH8ZSsU2lL8" - }, - "source": [ - "### タプル(tuple)型, 丸括弧\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FYc9ztofGU8M" - }, - "source": [ - "リストに似た型としてタプルと辞書があります。 \n", - "タプルは\"immutable\"(要素が変更不可)なリストと覚えておけばよいでしょう。\n", - "リストは要素を`[]`で囲むことで作ることができました。タプルは丸括弧`()`で囲むことで作ることができます" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4CNAqWljyjS1" - }, - "outputs": [], - "source": [ - "a = (1.0, 2.0, 3.0)\n", - "print(a, type(a))\n", - "\n", - "print(a[0]) ##要素にアクセスするときはタプルのときでもやはり角括弧を使う" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "I1IILsgUyk4T" - }, - "source": [ - "値をリストのように格納しておきたい、という状況下かつ、リストの値を後で変更することがないなら\n", - "タプルを使うのも一つの手です. \n", - "タプルを使うメリットとしては以下の通りです: \n", - "* (予期せず)値を更新しようとするとエラーを吐いて教えてくれる\n", - "* (場合によりけりですが)リストよりも早く処理が実行される(ことがある)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "d-wmV-24zIa9" - }, - "outputs": [], - "source": [ - "##たとえば...\n", - "a = (1.0, 2.0, 3.0)\n", - "##たとえば...2つ目の2.0を4.0に変更しようとすると....\n", - "a[1] = 4.0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Xp-zrOGUzclF" - }, - "source": [ - "↑エラーがでたかと思います。\n", - "\n", - "次に中身が同じ(1から5000までの整数)リストとタプルを用意して、1万回要素の和を計算するという計算をしてみましょう.\n", - "この計算自体に意味はありません。 \n", - "`time`というライブラリを使って2つの作業に係る時間を調べてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "RNRVJHBvzrRR" - }, - "outputs": [], - "source": [ - "import time #時間を計測するためのライブラリをインポート\n", - "itnum=10000 #繰り返す回数を設定\n", - "\n", - "#リストを使った計算\n", - "t0= time.time() \n", - "a = [ i for i in range(1,5001) ] #リストを定義\n", - "for i in range(itnum):\n", - " sum(a)\n", - "t1 = time.time()\n", - "\n", - "#タプルを使った計算\n", - "t2= time.time() \n", - "b = ( i for i in range(1,5001)) #タプルを定義\n", - "for i in range(itnum):\n", - " sum(b)\n", - "t3 = time.time()\n", - "\n", - "print(\"リストの処理にかかった時間\", t1-t0)\n", - "print(\"タプルの処理にかかった時間\", t3-t2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_DFBdeB61zTN" - }, - "source": [ - "タプルの方が実行時間が短い事がわかります. \n", - "今の例では差は人間にとっては気にならない程度の差ですが、複雑な処理になってコードがなかなか計算を完了しないときには、リストをタプルにするなど、コードのパフォーマンスを改善する作業が必要となります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "X69TUPNt2nfh" - }, - "source": [ - "### 辞書型, 波括弧\n", - "\n", - "辞書型は、キーと値の2つの要素をあわせ持つ型です. \n", - "リストにいれたものをいっぺんに扱うときに、毎回番地を指定したりループで要素を回して、望むものを持ってくるのは面倒です。\n", - "\n", - "たとえば以下の名前と年齢のリスト\n", - "```\n", - "data=[[ \"Aさん\",25],[\"Bさん\",21],[\"Cさん\",18]]\n", - "```\n", - "\n", - "があったとき、これまで習った方法だけを駆使してBさんの年齢を取得するには例えば以下のようなコードになります" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oWV6iYr520v5" - }, - "outputs": [], - "source": [ - "data=[[ \"Aさん\",25],[\"Bさん\",21],[\"Cさん\",18]]\n", - "\n", - "for person in data:\n", - " if person[0] == \"Bさん\" :\n", - " print(\"Bさんの年齢=\", person[1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QfC_TsDD3mYh" - }, - "source": [ - "このようなfor文とif文などを組み合わせた要素の探索が面倒なら、予め名前と年齢という2つの関係のある量を辞書として定義してしまえばよいのです。\n", - "\n", - "辞書型は波括弧`{}`で囲むことで構成できます.\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "GgnqzQYq4XbS" - }, - "outputs": [], - "source": [ - "Dict_age = {'Aさん' : 25, 'Bさん': 21, 'Cさん': 18}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n25YgOic5Gnp" - }, - "source": [ - "Bさんの値(今は年齢)を知りたければ以下のように一行で取得可能です." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "bHh_DVUZ5KTH" - }, - "outputs": [], - "source": [ - "Dict_age[\"Bさん\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HP-pNfHg4Y5e" - }, - "source": [ - "辞書を作る際には、 要素を取り出すためのキー(key)と値(value)の組み合わせで指定します.\n", - "その際\n", - "```\n", - "{\"key\" : value}\n", - "```\n", - "と`key`と`value`をコロン:をつかって区切り、複数要素を入れる際はカンマで区切ります. \n", - "`key`は文字列や数字(たとえば小中学校の出席番号とか)を使用することができ`value`は様々な型が使えます。\n", - "\n", - "値(`value`)として、リストを保持することもできます.次のように年齢と出身県のリストを値にもつ辞書にしてみましょう.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "PWzZQh4p5lqC" - }, - "outputs": [], - "source": [ - "Dict = {'Aさん' : [25,\"栃木県\"], 'Bさん': [21,\"茨城県\"], 'Cさん': [18,\"群馬県\"]}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cDz_Xk0I6D1k" - }, - "source": [ - "Cさんの個人情報にアクセスする際は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "gqsBmc4o6Rkn" - }, - "outputs": [], - "source": [ - "Dict[\"Cさん\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "E9fJ-WT76ROd" - }, - "source": [ - "とすればいいことがわかります.\n", - "\n", - "慣れないうちはタプルや辞書を使わずリストだけ覚えておけば問題ないのですが(私も簡単なコードだと、面倒だからリストでやっちゃう)複雑な処理になると(タプルにしないと)パフォーマンス差が顕著になったり(辞書にしないと)コードの可読性が低くなったりミスの原因になるので、タプルや辞書型もうまく組み合わせながら使えると良いです。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter2_ListLoop.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter3_Function.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter3_Function.ipynb deleted file mode 100644 index 18a6e487..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter3_Function.ipynb +++ /dev/null @@ -1,715 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7Id5T1JiYLyY" - }, - "source": [ - "# 関数\n", - "\n", - "[この章の目的]プログラム内での関数と戻り値,スコープの概念を獲得する。\n", - "\n", - "ここでは、Pythonにおける関数の定義と関数が返す値[戻り値(返り値とも呼ぶ)]、ややテクニカルですが重要な点である変数のスコープについて説明する。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "39hwOTPKHdBK" - }, - "source": [ - "## 関数の定義" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8YqBoNnXHjDe" - }, - "source": [ - "既に現れた```print```や```len```などはPythonに備え付けられた\"組み込み関数\"と呼ばれるものの一種。\n", - "以下に示すように、組み込み関数とは別にユーザーが独自の関数を定義することもできる。\n", - "\n", - "たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oeG9EoBPYflr" - }, - "outputs": [], - "source": [ - "p1 = [2.0, 4.0, -5.0]\n", - "p2 = [1.0, 3.0, -4.0]\n", - "#...中略\n", - "p100 = [5.5,-2.0, 3.0]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "f-1OoOC3ZFfW" - }, - "source": [ - "といったようなリスト(ある点の$x,y,z$座標だと思ってください)がたくさん(たとえば100個)あったときに、任意の2つの点の距離を求める操作が必要だったとする。\n", - "そんなとき${}_{100}C_2=4950$通りに対して毎回" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "lrWeMpk5ZGy6" - }, - "outputs": [], - "source": [ - "d_1_2 = ( (p1[0] - p2[0])**2 + (p1[1] - p2[1])**2 + (p1[2] - p2[2])**2 ) ** 0.5\n", - "d_1_100 = ( (p1[0] - p100[0])**2 + (p1[1] - p100[1])**2 + (p1[2] - p100[2])**2 ) ** 0.5" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lyuVwV40Ytk8" - }, - "source": [ - "などと書くのは面倒だし、コードが4950行以上になってしまう。\n", - "\n", - "このように、同様の操作が何回も必要になるときに役に立つのが、**関数**である。\n", - "\n", - "関数とは、処理を抽象化して、(必要なら)引数(ひきすう)を受け取り、(必要なら)戻り値/返り値を返すようなものといえる。\n", - "\n", - "\n", - "例として*「任意の長さが3の数値リストに対して3次元空間での距離を計算する関数」*を自作してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "f0iYOWb5Zfcp", - "outputId": "b42f1ff6-dd82-4cb7-e8a3-4f4a29676c14" - }, - "outputs": [], - "source": [ - "def calc_d(l1,l2): \n", - " return ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5\n", - "\n", - "t = calc_d(p1,p2) \n", - "print(\"点1\",p1, \"と点2\", p2, \"の距離は\", t, \"です\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "r6JbFf61Zv3l" - }, - "source": [ - "`calc_d`は自作した関数の名前で、関数名の後ろのカッコには**引数**(ひきすう)を指定する。\n", - "\n", - "リスト(```l1```)とリスト(```l2```)を突っ込んだときに距離を計算して```return```する(返す)という一連の操作を```def```(defineの略)した、というのが上のコードで行っていることになる。\n", - "\n", - "コロン`:`は「以下で関数の中身を記述するブロックが開始する」ことを意味していて、インデントによってどこまでが関数のブロックかがわかるようになっている。(ブロックについては```if```や```for```を思い出してください)\n", - "\n", - "定義した関数を使用する際には、この関数```calc_d()```に必要な引数(変数,今の場合リスト)```l1,l2```を代入して使う。\n", - "関数に入れる引数は代名詞のようなもので、関数に入れるものを`l1`,`l2`という名前にあわせて定義しておく必要はない。これもある種の抽象化である。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "vfn_uW7jsk1x", - "outputId": "fdbad61a-ab09-423b-daae-9dca5c621215" - }, - "outputs": [], - "source": [ - "print(calc_d(p1,p100)) #←これでも使えるし\n", - "print(calc_d([20.0, 1.0,-5.0], [-2.0, 3.0,5.5])) #←などとして変数でなく値を直接書いても使える" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JYEIUOkRx34k" - }, - "source": [ - "上の例のように100個の点の3次元座標に対応するリストがある場合,\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rQeQdGnqytj6", - "outputId": "57e68e0c-4e6c-49c9-de91-51e56a20adea" - }, - "outputs": [], - "source": [ - "import random \n", - "#3次元の座標点をランダムに100個作っている n,iはダミー変数\n", - "lists = [ [ random.gauss(0,1) for n in range(3)] for i in range(100)] \n", - "\n", - "hit = 0\n", - "for j in range(100):\n", - " for i in range(j+1,100): # i>j\n", - " distance = calc_d( lists[j], lists[i])\n", - " #print(j,i, distance) # 4950回文の計算結果をprintすると邪魔なのでコメントアウトした\n", - " hit += 1 \n", - "print(hit) #回数だけ表示しよう\n", - "#上のjのループ内で、iはj+1から99までを回る。 j+1= 100つまり j=99のとき range(j+1,100)はちゃんと空になる\n", - "#つまり、長さ100のリストにindex=100でアクセス(範囲外参照)したりすることはない。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YsUvuSp0hHta" - }, - "source": [ - "などとすれば、全組み合わせ(${}_{100}C_2$)に対して距離を計算することが出来る。 \n", - "上で使われているインデックス($j,i$)の模式図: \n", - "\n", - "\n", - "引数は通常関数の中で行う操作に必要な変数を指定する。上の例では2つのリストを引数とした。\n", - "\n", - "関数内の操作に関数外からの情報(インプット)が必要ない場合は引数なしの関数でも構わないし、\n", - "関数の外に値を渡す(アウトプットする)必要がなければreturn文を明示的に書かなくても問題ない。\n", - "`return`文がない場合は自動で```None```(値なし)が返される関数となる。\n", - "\n", - "幾つか例を作って、挙動を理解してみよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "hKXXnar5huWZ", - "outputId": "654717fd-5230-412a-f84d-9fd88761d9aa" - }, - "outputs": [], - "source": [ - "def name(): #引数なしで、ただ以下の文字列を表示する関数\n", - " print(\"私は田中です\")\n", - "\n", - "def myname(namae): #引数namaeを使って、以下の文字列を表示する関数\n", - " print(\"私は\"+str(namae)+\"です\")\n", - "\n", - "def myname_return(namae): # myname()で表示させた文字列自体を返す関数\n", - " return \"私は\"+str(namae)+\"です\"\n", - "\n", - "print(\"name()の実行→\", name()) ## name()が実行されたあとにココのprint文が実行される。\n", - "\n", - "print(\"myname()の返り値→\", myname(\"吉田\"))\n", - "\n", - "print(\"myname_return()の返り値→\", myname_return(\"吉田\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KfNDxdUVaxhm" - }, - "source": [ - "戻り値```return```は単一の値や文字列に限らず、複数の値でも可能で、リストを返すことも出来る。\n", - "\n", - "先程の自作関数```calc_d```の場合、戻り値は`float`(実数値)だが" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_6vSVbsia69R", - "outputId": "c951d169-b3bf-4f2d-c5f8-3bbcb2caa21a" - }, - "outputs": [], - "source": [ - "def calc_d_print(l1,l2):\n", - " return \"距離は\"+str( ( (l1[0] - l2[0])**2 + (l1[1] - l2[1])**2 + (l1[2] - l2[2])**2 ) ** 0.5 )+\"です\"\n", - "\n", - "def zahyo_and_d(l1,l2):\n", - " d = calc_d(l1,l2) #関数の中で、先程の自作関数を呼んでいる\n", - " return [l1,l2],d #座標を結合したリストと距離を返す\n", - "\n", - "ret = calc_d_print(p1,p2)\n", - "print(\"関数calc_d_print→\", ret,type(ret))\n", - "\n", - "\n", - "ret = zahyo_and_d(p1,p2)\n", - "print(\"関数zahyo→ \", ret,type(ret))\n", - "print(\"座標の結合リスト\",ret[0],\"距離\",ret[1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "oVUqT1cDbijH" - }, - "source": [ - "といったように、様々な返り値を持つ関数を定義できる。\n", - "\n", - "当然だが、関数の定義は関数の呼び出しよりも前に行う必要がある。\n", - "(\"前\"というのも実はambiguousなのだが、この授業では関数はコードの上部で定義することとする。)\n", - "\n", - "\n", - "上の例はあくまで「任意の長さが3の数値リストに対して3次元空間での距離を計算する関数」であり、3成分以上のリストに対しては対応していない。\n", - "\n", - "実際に関数を定義する際には、より操作を抽象化することで、より汎用的な関数を作ることが求められることも多い。\n", - "上の例で言えば、「長さが共通の任意の2つの数値リストに対して距離を計算する関数」に拡張することなどが考えられ、その場合は以下のように書ける。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# 3つ以外の成分でも使えるユークリッド距離を計算する関数\n", - "def calc_d_Re(l1,l2): \n", - " if len(l1) != len(l2):\n", - " print(\"次元が違います!\")\n", - " return None\n", - " distance = 0\n", - " for i in range(len(l1)):\n", - " distance += (l1[i] - l2[i])**2\n", - " distance = distance ** 0.5\n", - " return distance" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 引数値のデフォルト値" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gwbplPrRy35O" - }, - "source": [ - "関数を定義するときに、引数にデフォルト値(とくに値を指定しなければこの値が選ばれる)を設定することも出来る。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "EGy5tiLSzKHq", - "outputId": "1c4fc107-7cf3-43d8-b6be-1f7e296db0d2" - }, - "outputs": [], - "source": [ - "#数値リストの要素のp乗和を計算する関数\n", - "def sump(tmp,p=2): \n", - " return sum([tmp[i]**p for i in range(len(tmp))])\n", - "\n", - "list1 = [10.0,20.0,30.0,40.0]\n", - "print(\"default\", sump(list1)) #pを指定しなければp=2が選ばれる\n", - "print(\"p=1\", sump(list1,p=1))\n", - "print(\"p=2\", sump(list1,2))\n", - "print(\"p=3\", sump(list1,3))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hOiz1XSGKDyx" - }, - "source": [ - "上の場合、引数を指定する際に`p=`などは書いても書かなくてもなくてもOKだが、デフォルト値が複数設定されている関数を作った場合には、どの変数を指定しているのかを明示的にするため、`p=3`などと引数に入力する。\n", - "\n", - "\n", - "ココまでで説明したように、自作の関数を定義することで作業を*パッケージ化*し、コードを簡略化することができます。「繰り返しの操作は関数にする」ことを心がけよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Hi4Bw-xWK3d5" - }, - "source": [ - "## 変数のスコープについて\n", - "\n", - "以下の内容は、これまで学習したfor文や関数のインデントとも関連した話題で、非常に重要な反面、初学者がつまづきやすい点でもある。\n", - "\n", - "一般に、プログラミングでは[グローバル変数]と[ローカル変数]と呼ばれるものがある。\n", - "その名(global/local)が示すとおりグローバル変数とはどこからでも参照できる変数で、\n", - "ローカル変数とは、ある有効範囲(たとえば関数内)のみで参照できる変数になる。\n", - "\n", - "例を見ながら理解していこう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SDXBYARcMssS" - }, - "outputs": [], - "source": [ - "a = 2\n", - "list1 = [10.0,20.0,30.0,40.0]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Hz1s_N4CM5GE" - }, - "source": [ - "のように、関数内での代入などブロック化に書かれたコードではない場合、変数はグローバル変数として定義される。 \n", - "そのため、一度定義されれば関数に引数として渡さなくても参照することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "lqCI3oOSNCWs", - "outputId": "681dbaae-556a-457c-d82e-32a9291921c6" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " print(a)\n", - "\n", - "a = 2\n", - "testfunc()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sXaRD7zMO7gq" - }, - "source": [ - "一方、関数の中で定義(代入)されるローカル変数は、関数の外で参照することはできない。 \n", - "(注: あとで説明するように関数内でglobal変数であることを宣言すれば関数の外でも参照できるがあまり推奨はされない)\n", - "\n", - "以下のコードを実行して,関数の中で定義された変数`abcd`を`print`しようとしてもエラーが起こってしまう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 202 - }, - "id": "0C7YGdYCPGZ0", - "outputId": "4f82d90c-791e-4946-f384-526d3178cb72" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " abcd = 1.000\n", - "testfunc()\n", - "print(abcd)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Skv7X7b3N2vc" - }, - "source": [ - "では、次のコードを実行すると、最後に表示される`a`の値はどうなるだろうか? \n", - "\n", - "2?それとも5?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "MRy8oApxN8em", - "outputId": "321ced5c-3002-4eee-e298-7a172cf3effc" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " a = 5\n", - "a= 2\n", - "testfunc()\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wNbcnDiiOPqV" - }, - "source": [ - "となり`a`の値は更新されない。\n", - "これは`testfunc`の中で定義されている`a`は、関数の内部で定義(代入)される変数であるため、ローカル変数とみなされて処理が行われるため。\n", - "\n", - "実際`id`関数を用いて取得できる変数のIDを`print`させてみると、関数の内と外とで`id`が異なることも分かる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "feLgu_e4OPcc", - "outputId": "6e647e2f-2a1c-411a-ef4b-365e61e9e906" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " a = 5\n", - " print(\"関数の内部\", a, id(a))\n", - " \n", - "a= 2 \n", - "print(\"関数の実行前\", a, id(a))\n", - "testfunc()\n", - "print(\"関数の実行後\", a, id(a)) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-y5mwt3OPiFY" - }, - "source": [ - "一方で、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "csjHT3p_Pl3D", - "outputId": "6a5ad181-d94e-4f56-da8c-aa85f4a3c604" - }, - "outputs": [], - "source": [ - "def testfunc():\n", - " global abc, a #global変数の宣言\n", - " abc = 5\n", - " a += 2\n", - "\n", - "a=2\n", - "print(\"実行前\")\n", - "print(\"a\",a , id(a))\n", - "testfunc()\n", - "print(\"実行後\")\n", - "print(\"a\", a, id(a)) #別の変数として再定義されていることが分かる\n", - "print(\"abc\", abc)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qctKvajGMmO9" - }, - "source": [ - ":::{margin} プログラミング言語とスコープ\n", - "Pythonでは、インデントでブロックを定義したりすることで短いコードを書くことができますが、一方で変数のスコープが分かりづらいことがしばしばあります。たとえば関数内で、定義されていない変数を用いたコードがあればPythonでは「global変数で定義されているのでは?」と解釈され実行が試行されますが、このことを「気が利いている」と感じる人もいれば「意図しない参照が起きて余計なバグの温床になる」と、見る人によって違う捉え方になったりします。\n", - ":::\n", - "\n", - "といったように、関数の中で使う変数をグローバル変数として宣言すれば、関数の外でもその変数を使うことができる。\n", - "\n", - "ただし、このようなコードの書き方は、処理が複雑化してくるとどこでその変数が定義されたり更新されたりしているかがわかりづらく、予期しない挙動の原因にもなるため一般には非推奨である。\n", - "\n", - "[関数には引数として変数を渡して、必要な戻り値を取得する]というコードを書くのがあくまで基本となる。(まぁPythonだとちょっと設計思想が違うのですが...)\n", - "\n", - "また、関数を用いる際に、変数のスコープに関して混乱を避ける手助けとなる方法は...メインプログラムと関数内とで変数の命名規則を区別しておく: \n", - "たとえば...メインコード(global変数)で使うリストの名前の区別には数字を使う、関数の引数にはアルファベットを使うなどの工夫(ルール作り)もオススメ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "RKaOuz0HQsVh" - }, - "outputs": [], - "source": [ - "def func_join(listA,listB): #特殊なリストの結合をして返す関数\n", - " return listA + 2 * listB \n", - "\n", - "list1 = [ 2.0,30.0,18.0]\n", - "list2 = [ 9.0,4.0,8.0]\n", - "nlist = func_join(list1,list2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6TUuABHM4ei0" - }, - "source": [ - "### $\\clubsuit$ 関数内でのリスト更新\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vRetz7vT4iyg" - }, - "source": [ - "上では、数値(float)と関数を例に説明しましたが、リストの場合はもう少し挙動が複雑になる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5rZLX1Vh4p2f", - "outputId": "ca13440a-d6b6-44c9-8521-f6ea3ce39efe" - }, - "outputs": [], - "source": [ - "def func_update_list(in_list):\n", - " in_list[0] = \"AAA\"\n", - "\n", - "tmp = [ \"SS\", 1,2,3]\n", - "print(\"実行前\", tmp, id(tmp), id(tmp[0]))\n", - "func_update_list(tmp)\n", - "print(\"実行後\", tmp,id(tmp),id(tmp[0])) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5w-Zo7Pw5YyA" - }, - "source": [ - "リストオブジェクト自体のidは引き継がれていて、リスト内要素(0番目)の更新が反映されていることがわかる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "OgGkbM7u-k15", - "outputId": "8283c13a-5d99-48cc-b879-ea53284581a3" - }, - "outputs": [], - "source": [ - "def func_update_list(in_list):\n", - " in_list[0] = \"AAA\" \n", - " in_list = [\"BBB\", 0,1,2] ##ココはローカル変数扱い\n", - " return in_list\n", - "\n", - "tmp = [ \"SS\", 1,2,3]\n", - "print(\"実行前\", tmp, id(tmp), id(tmp[0]))\n", - "ret = func_update_list(tmp)\n", - "print(\"実行後\", tmp,id(tmp),id(tmp[0])) \n", - "print(\"ret\", ret,id(ret),id(ret[0])) " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 関数とメソッド\n", - "\n", - "これまで登場してきた`print`や`len`などの関数は、Pythonに組み込まれている関数で、`関数()`という自作関数と同じ方法で呼び出せた。\n", - "\n", - "一方で、リストや文字列などのオブジェクトに対して、`オブジェクト.関数()`という形で呼び出せる関数がある。\n", - "\n", - "これらは**メソッド**と呼ばれ、オブジェクト(正確にはクラス)に対して定義された関数になっている。\n", - "\n", - "たとえば、リストに対して`append`というメソッドを呼び出すと、リストの末尾に要素を追加することができた:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "a = [1,2,3]\n", - "a.append(4)\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "関数もメソッドも、引数を取り何らかの操作をするという点では同じだが、両者はその設計思想が異なるため、混乱しないように注意する必要がある。\n", - "大雑把に言えば、**関数は引数を取り、何らかの操作を行い、戻り値を返す**という設計思想であるのに対し、**メソッドはオブジェクトに対して何らかの操作を行う**という設計思想である。\n", - "\n", - "この授業では、クラスについての説明を行わないため、自分でクラスないしメソッドを定義することはないとは思うが、\n", - "ライブラリ等で用意されているクラス・メソッドを用いることも多いため、混乱した場合はこの違いを意識するようにすると良い。" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyM6vO7bZgJuLDdF+5NjdpNA", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter3_Function.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "file_extension": ".jl", - "mimetype": "application/julia", - "name": "python", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter4_Matplotlib.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter4_Matplotlib.ipynb deleted file mode 100644 index 8b5dd68a..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter4_Matplotlib.ipynb +++ /dev/null @@ -1,1277 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OCa-xyVjiadQ" - }, - "source": [ - "# ライブラリ/パッケージ/モジュールとデータの可視化(Matplotlib)\n", - "\n", - "[この章の目的]\n", - "* [ライブラリ]という概念の獲得\n", - "* Pythonを用いた各種グラフの描画\n", - "\n", - "\n", - ":::{margin} ライブラリ/パッケージ/モジュール\n", - "授業では呼び方が混在しているかと思います。正確な定義としてはライブラリ/パッケージ/モジュールの順に、より上位の集合を指しますが境界はあいまいな印象です。\n", - ":::\n", - "Pythonでは(他のプログラミング言語と同様)特定の作業がパッケージ化されたプログラム群が用意されていてこれらをライブラリ/パッケージ/モジュールなどと呼ぶ\n", - "Pythonのライブラリ/パッケージの多くはGitHub上で開発・公開されていて、簡単にインストールしたりインポートして使うことができる。 \n", - "\n", - "データ分析, AI・機械学習, エクセル等の操作, Webスクレイピングなど、非常に多岐にわたるライブラリが存在していて誰でも気軽に使うことができますし、幾つかのライブラリ/モジュールは標準で組み込まれているため、インストール作業をすることなく、以下のように簡単にインポートして使うことができます。\n", - "\n", - "たとえば`math`という名前のモジュールをインポートする際には\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "hGBW_qTNkvRq" - }, - "outputs": [], - "source": [ - "import math" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "It2WtKEtkwNT" - }, - "source": [ - "とします。簡単ですね。\n", - " \n", - "上のコードを実行し`math`モジュールを一度`import`してやれば、数学で多用される円周率```pi```,対数関数```log(),log10()```,指数関数```exp```,三角関数```sin,cos```などを使うことができます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KbRzvsm95XU_" - }, - "source": [ - "モジュール内に用意されている関数を利用するときは通常 \n", - "```モジュール名.関数```や```モジュール名.関数(引数)```といった形で使います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "9BbEO3a8k0VH" - }, - "outputs": [], - "source": [ - "print(math.log(2.0)) #自然対数 \n", - "print(math.log10(2.0)) #常用(底が10)対数\n", - "print(math.exp(2.0)) #指数関数\n", - "print(math.pi) #円周率pi (引数なし)\n", - "print(math.sin(math.pi)) # sin(pi)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cGKN5FijmR8v" - }, - "source": [ - "注:sin(π)は厳密に0になるべきですが1章で述べたように実数が有限の精度なので微小な量0からずれています" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "69y4fMDWSB11" - }, - "source": [ - "## Numpy" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FIsrOtnTR4qZ" - }, - "source": [ - "データ分析などで非常によく使われるNumpyというライブラリがあります。 \n", - "Numpyの大きな特徴に、数値を要素に持つ配列の計算・演算を高速に行うことが可能という点があります。\n", - "\n", - "簡単な作業ならリストでも代用できるので必須ではありませんが、コードを大幅に簡略化することもできるため、今後ノートブックでもたびたびNumpyが用いられます。\n", - "詳しくは[こちらのノートブック](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/main/notebooks/Python_misc_numpy.ipynb)を参照してください." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_RjUF-6603dn" - }, - "outputs": [], - "source": [ - "#先程のmathもnumpyで置き換え可\n", - "import numpy as np #numpyをnpという名前で使う\n", - "print(np.log(2.0))\n", - "print(np.log10(2.0))\n", - "print(np.exp(2.0))\n", - "print(np.pi)\n", - "print(np.sin(np.pi))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "以降、数値を要素に持つリストを使って演算やグラフを描画するときは、`numpy`の`ndarray`型というものに変更して使う事が多いです。 \n", - "リストを`ndarray`型に変換するには、numpyの`array`関数を用います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "list_a = [ 1.23, 9341.22, -32.33] \n", - "list_a = np.array(list_a)\n", - "print(list_a, type(list_a))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "XD-dP853zCmO" - }, - "source": [ - "## Matplotlibを用いた作図\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SGAFbBQJnplQ" - }, - "source": [ - "\n", - "以降ではMatplotlibと呼ばれるライブラリを使って、各種のグラフを作成する方法を見ていきましょう.\n", - "\n", - "Matplotlibは様々なグラフが描ける一方で少々テクニカルな部分が多いので**細かい部分は分からなくても心配は不要です** \n", - "「こういうおまじないを唱える(書くと)こうなる」というざっくりとした理解でまずは大丈夫です。 \n", - "\n", - ":::{margin} ライブラリの使い方を調べる\n", - "Pythonのライブラリの細かな使い方を調べる時、真っ先に思いつくのが**ググる**ことだ。\n", - "最近だと日本語で書かれた情報に気軽にアクセスできるのは良いことだが、(この授業資料同様)不正確な記述が含まれていてかえって理解を遠ざける危険性もある。\n", - "なにか困ったときに一番頼りになるのは大元のライブラリの公式ドキュメント以外ありえない。なぜなら開発者が作ってんだから。\n", - ":::\n", - "はじめはネットに転がっている誰かが書いたコードを少しずつ流用し、自分の目的のためにどうすれば良いか類推しながら改良していって、 \n", - "自分の描きたいグラフに近づけていくのが良いでしょう。(私もよく過去の自分が作成したコードを流用して作図しています)\n", - "\n", - "慣れてくるといろんな図を作ったり、細かいところにこだわったりしたくなります。 そんなときは以下のチートシートが役に立ちます. \n", - "https://github.com/matplotlib/cheatsheets \n", - "\n", - "\n", - "まず、以下のコードを実行して、`matplotlib`内の`pyplot`モジュールをインポートします. \n", - "`matplot.pyplot`だと名前が長いので```plt```という名前で使えるように```import XXX as YY``` などとします.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "oevjB6tvA97n" - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt \n", - "\n", - "from matplotlib import pyplot as plt #でも同じ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-KUcnUBIg2W2" - }, - "source": [ - "いくつかのライブラリにはディレクトリのように\n", - "```\n", - "LibraryA \n", - "├ module1.py \n", - "│ └─ sub_module1_1.py \n", - "│ └─ sub_module1_2.py \n", - "├ module2.py \n", - "︙ \n", - "```\n", - "という階層構造があり\"子\"はピリオドで指定します. \n", - "上の```matplotlib.pyplot```はその一例です." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ycksu5i7BsWp" - }, - "source": [ - "次に、Matplotlibは標準だと日本語が文字化けして豆腐のように表示されてしまうので、 \n", - "日本語フォントを使うためのライブラリをGoogleのサーバにインストールします" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Qwb9pJyCAcfC", - "outputId": "29634cc6-f768-4511-fd59-4ebc352de8dd" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting japanize-matplotlib\n", - " Downloading japanize-matplotlib-1.1.3.tar.gz (4.1 MB)\n", - "\u001b[K |████████████████████████████████| 4.1 MB 5.1 MB/s \n", - "\u001b[?25hRequirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from japanize-matplotlib) (3.2.2)\n", - "Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.19.5)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.4.7)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (0.10.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.8.2)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.3.2)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from cycler>=0.10->matplotlib->japanize-matplotlib) (1.15.0)\n", - "Building wheels for collected packages: japanize-matplotlib\n", - " Building wheel for japanize-matplotlib (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for japanize-matplotlib: filename=japanize_matplotlib-1.1.3-py3-none-any.whl size=4120274 sha256=f4b79909d06560d80efbd01142270456e2403c260cad143b4647081c91d3a36c\n", - " Stored in directory: /root/.cache/pip/wheels/83/97/6b/e9e0cde099cc40f972b8dd23367308f7705ae06cd6d4714658\n", - "Successfully built japanize-matplotlib\n", - "Installing collected packages: japanize-matplotlib\n", - "Successfully installed japanize-matplotlib-1.1.3\n" - ] - } - ], - "source": [ - "!pip install japanize-matplotlib #!から始めることでLinuxコマンドを使うことができる。\n", - "import japanize_matplotlib\n", - "import numpy as np #ついでにコレもインポート" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QPB383yO9SFq" - }, - "source": [ - "Pythonでグラフを作る際の基本は、**データ(描画したいもの)が入ったリストを作ること**です。\n", - "\n", - "リストに対して、線や棒、いろんな形のシンボルを描いたりして、どんどんグラフを構成する要素を足しながら、 \n", - "それらの色や線種、透過度や太さ,背景色などを変えつつ徐々に望むようなグラフにしていきます。\n", - "\n", - "以下では代表的なグラフを例に、Matplotlibを使った作画を試してみましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "88mhl_c22S4-" - }, - "source": [ - "### 棒グラフ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "j98rkXdk03-h" - }, - "source": [ - "Aさんの共通テストの得点をリスト(括弧[ ]内に、数字カンマで区切る)に格納します。 \n", - "順番(各科目の名前(ラベル))は、国語,英語,数IA,数IIB,化学,物理,世界史として... " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WWBmSr7L0_6s" - }, - "outputs": [], - "source": [ - "data = [152, 170, 82, 85, 79, 92, 88]\n", - "label = [\"国語\",\"英語\", \"数IA\", \"数IIB\", \"化学\", \"物理\", \"世界史\"]\n", - "total = sum(data)\n", - "#print(\"合計得点は\", total, \"点で、得点率は\"+str(total/900)+\"%です\")\n", - "print(\"合計得点は\", total, \"点で、得点率は\"+str(\"%6.1f\" % (100* total/900))+\"%です\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4gaNmr3CefUn" - }, - "source": [ - "Aさん優秀ですね。これを棒グラフにでもしてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "S0rBmtTL3YsB" - }, - "outputs": [], - "source": [ - "plt.figure( figsize=(10,2) ) \n", - "plt.bar(label,data,align='center',width=0.5,color=\"red\") \n", - "plt.xlabel(\"各科目\"); plt.ylabel(\"Aさんの得点\") \n", - "plt.show() \n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4SV4bCn9nxqV" - }, - "source": [ - "棒グラフが描けたでしょうか。それぞれの行の意味を順に説明します。 \n", - "\n", - "* 1行目: \n", - "```plt.figure(figsize=(10,2)) ``` \n", - "ここでは、`matplotlib.pyplot`内の`figure`という関数を読んでいます。 \n", - "上で`matplotlib`モジュール内の`pyplot`というモジュールを \n", - "`plt`という名前でインポートしたので`plt.figure`というのは、 \n", - "`pyplot`内の`figure`という関数を使うことを意味します。 \n", - "役割としては、図を描くキャンバスを用意しているようなイメージです。 \n", - "ここでは```figsize=(10,2)```という引数を指定しました。 \n", - "(指定しなければ自動で図のサイズが決まります) \n", - "figsize=(横,縦)で大きさが指定できます、figsizeを変えて試してみましょう \n", - "\n", - "* 2行目: \n", - "```plt.bar(label,data,align='center',width=0.5,color=\"red\")``` \n", - "`pyplot`内の`bar`という関数(棒グラフを描く関数)を使っています。 \n", - "1つめの引数はx軸上の値で、2つめはy軸に対応する値です。 \n", - "x軸用のリストが数値以外のときは整数値を割り当ててプロットしてくれます \n", - "(7個データがあれば、x=0,1,...,6に割り当てられる)\n", - "\n", - "* 3行目: \n", - "```plt.xlabel(\"各科目\"); plt.ylabel(\"Aさんの得点\") ``` \n", - "ここではx軸とy軸のデータの種類(ラベル/labelと呼ぶ)を指定しています。 \n", - "\n", - "* 4行目: \n", - "```plt.show()``` \n", - "それまでに指定した条件で絵を描いて表示する\n", - "\n", - "* 5行目: \n", - "```plt.close() ```キャンバスを閉じる。 \n", - "とくに一つのプログラムで複数絵を描くときはこれを書きましょう。 \n", - "(closeしないと、どこまでがどのグラフのための指示かわからず \n", - "意図しない絵になることがあります)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QJU3ua-h6JS0" - }, - "source": [ - "#### **練習** \n", - "国語と英語の得点を100点満点に換算し、 \n", - "いくつかの得点や棒グラフの色を変えてプロットしてみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "nmcYXrZACP4n" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EJpfw2KwCPdV" - }, - "source": [ - "\n", - "\n", - "---\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BzWX1S4I3ERW" - }, - "source": [ - "### 円グラフ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lH6qwevuz3Wo" - }, - "source": [ - "世の中には多くの円グラフの誤用が溢れています。 \n", - "ワイドショーなどで総和が100%になっていなかったり、 \n", - "円に対して占める割合が明らかに間違っていたりと、ひどい有様です。 \n", - "\n", - "他にも、奥行方向に傾いた円グラフも誤った印象を与えます。 \n", - "このように、円グラフというのは作成する際に注意が必要ですし、 \n", - "作成した円グラフがおかしいと「私は教養のない人です」 \n", - "と言っているようなもので大変恥ずかしい思いをします。 \n", - "\n", - "そもそも円グラフにしなきゃいけないデータってあるんでしょうか? \n", - "帯グラフなどのほうがよっぽど量の比較にも向いています。\n", - "\n", - "あれ...無くない?ということで円グラフはオマケとします。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "onNa3DTcgq-y" - }, - "outputs": [], - "source": [ - "#どうしても円グラフが描きたい方へ (下のコードを適当にいじって遊んでみてください)\n", - "tlabels = [\"Aと答えた人\",\"Bと答えた人\",\"Cと答えた人\"]\n", - "ratio = [513,142, 249]\n", - "\n", - "plt.figure(figsize=(4,4)) \n", - "plt.pie(ratio,labels=tlabels,counterclock=False, startangle=90,autopct=\"%.1f%%\")\n", - "plt.show()\n", - "plt.close() \n", - "# labels=tlabelsは、 pie()関数の中のlabelsという引数にtlabelsを突っ込むという意味\n", - "# label(ラベル)とは、凡例(legend)のこと。それぞれのオブジェクトが何を指すのか\n", - "# counterclockは反時計回りのオプションをFalse(偽)とするのでつまり時計回り(回りくどいな...)\n", - "# startangleは円グラフの始点を、x軸から見て何度のところにとるかで、今は90度(つまり12時の方向)と設定.\n", - "# autopctは「値を%表記に直せ」というオプションで、 %.1f%%は小数点以下1桁まで出力しなさいという命令." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "efNzOCmBlOyj" - }, - "outputs": [], - "source": [ - "tlabels = [\"Aと答えた人\",\"Bと答えた人\",\"Cと答えた人\"]\n", - "ratio = [513,142, 249]\n", - "\n", - "plt.figure(figsize=(10,3)) \n", - "plt.ylim([-1,1]) #plt.ylim(-1,1)でも可\n", - "xs = 0.0\n", - "for i in range(len(tlabels)):\n", - " tx = ratio[i]\n", - " ty = 0.0\n", - " plt.barh([ty],width=tx,left=xs,label=tlabels[i]+\"(\"+str(ratio[i])+\"人, \"+str(\"%4.1f\" % (100*ratio[i]/sum(ratio)))+\"%)\")\n", - " xs += ratio[i]\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Bvlp1LLbpLut" - }, - "source": [ - "こっちの棒グラフのほうが良い気がする" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6iN_Tl4millJ" - }, - "source": [ - "### plot: 線の描画\n", - "\n", - "説明変数$x$と目的変数$y$があって、 \n", - "とくに**$x$に対する$y$の振る舞い**に興味がある場合には```plot```を使います。\n", - "\n", - "たとえば、日付($x$)に対するコロナウイルス感染者($y$)の推移をプロットしてみましょう。\n", - "日付は、WHOのSituation Reportが初めて発表された2019年1月20日を起点(ゼロ)とする経過日数として表すことにして...\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 539 - }, - "id": "N0LR-xQii7b3", - "outputId": "0254ee47-8280-4fec-fb06-81463204cafc" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtIAAAEFCAYAAADOuQCgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZyN5f/H8dc1GGMf2yBMtCJZMkWlGkXZSX0lSkTSQouKtl/afC2JRIsv0TcVlexblsbyrcgyoey7CUmDLGNmzPX74zpzZoYZxjTmnuX9fDzux7nPdd/nzOeMY+Y917nu6zLWWkRERERE5MIEeF2AiIiIiEhOpCAtIiIiIpIBCtIiIiIiIhmgIC0iIiIikgEK0iIiIiIiGZDf6wIyqkyZMrZKlSpelyEiIiIiudiqVav+tNaWTe1Yjg3SVapUYeXKlV6XISIiIiK5mDFmV1rHNLRDRERERCQDFKRFRERERDJAQVpEREREJANy7Bjp1MTFxbF3715iYmK8LkUkTwoKCqJSpUoUKFDA61JEREQuulwVpPfu3UuxYsWoUqUKxhivyxHJU6y1HDp0iL1791K1alWvyxEREbnoctXQjpiYGEqXLq0QLeIBYwylS5fWJ0IiIpJn5KogDShEi3hI//9ERCQvyXVBOq+y1npdgoiIiOQVp0/D99/Dm296XYmnFKQvgmPHjgHwyiuv+BeNadq0qf/41KlTqVatGuHh4Vx99dXUqlWL8PBwrrjiCiIiIs56vvj4eO68806aNWvGqVOnUv2a99xzDwcPHvQ//8iRI9NVa1xcHLt372bPnj0X8hL93nnnHZYtWwbAxo0b+fLLL3nzzTcZOnSoP9y3adOGkJAQbr75ZipWrMjo0aP9j2nbtm2Gvu6FioyM5IEHHjjvef379+ebb75J9/OuWLGC2bNnp3n85MmT/Pzzz+l+voSEhPOe079/fyIjI3nqqadSvB9++uknJkyY4L9/7733nve5WrZs6d+PiIhgzZo1/vvDhw9nzJgxTJ8+nWHDhnH69Gm6dOmSzlciIiK5TkIC/O9/0Ls3VKoEt98OgwbBH394XZlnctXFhtlFy5YtUw3EybVo0YImTZowb948ypQpQ7169Zg6dWqq5z733HM89dRTlChRgvvuu4///ve/FC9e3H/8yJEjHD9+nLJlU129EnCBeejQoezdu5fo6GiCgoLYunUra9eu5Y477qBTp05UrlzZf/7x48cZMWIEP//8M9HR0YSEhPDwww9z1113AS5A3n333YSGhjJ+/HgKFizItddeS6dOnWjVqhVFixb1P9e0adPo0KEDI0eOpH///vTo0YO2bdvSsGHDFDWuWrWKRx99NNX6ly5dSqFChQDYvHkzHTt2TPW8zz77jOrVq6f5fchM27Zto1u3bkybNu2sY19//TXHjh2jUaNGvP7668ycOfOsc44ePcodd9yBMQZjDAEBAezcuZPZs2dTt25d/3lt2rTh0KFD/vt//fUXEydOpHz58tx1110MHz6cWrVqkZCQQOHChVm4cCFvvvkmv/76K/Xq1eP+++/nueee8z8+MjKSp59+GoB169YRHh5OYGAgxYsX54svvvCfd+TIEeLj4/njjz+oVasWW7Zs4eDBg/7XUrduXSpWrPjPv5EiIpJ9WQurVsGkSW7bswcKFoQWLaBDB3dbuLDXVXom9wbpp5+GyMjMfc46dWD48DQPz5kzh6FDh/LLL7/QuHFjtm3bxvz58ylWrBiRkZE0btyYPn36AFCgQAGCgoLInz9/iv3kYmJiePbZZ7npppto0aIF4IZwNGvWjFdeeYVmzZoB8PnnnxMeHk6HDh3Yv38/GzZsICYmxt+z+sEHH1CjRg2uv/567r//fkJDQ5k2bRpz5sxh2rRpREdHs2TJEv/XjY6O5r777uP555+nRo0abN68mSeeeILnnnuOzZs306tXL+rUqcNLL71EpUqVWLp0KV27dmXIkCFUrFiRw4cPc/jwYYoVK8a2bdsYMWIEy5cvp1evXkRGRtK3b99Uv3/16tVLddn38PBwTp8+7b9/4sQJatasyfjx41Oc16VLF44fP+6/f9NNN3HixAnA9QwfPHiQOnXqAHDJJZf4e5JnzpxJz549qVSpEgBz587lnXfeYffu3cyePdv/mORWr15N586dmTRpEpdddtlZxw8fPkxcXFyqrzNR8eLFU/RWnzhxgvr161OjRo0U550+fZrXXnuNTZs2AVC+fHmWLVvGlVdeyY033kidOnWIi4tj2rRp3HTTTZQvX57p06fTs2dPnn32WSIiIjh8+DDBwcEcOXKE4OBg//euW7du9OvXj9dff51XX32VtWvXUrlyZZYuXcr333/PmjVrCA0N5bvvvqNx48aUKVOGRYsWsXr1akaNGqUgLSKSG1kL69e74DxxImzbBgUKwF13wYAB0Lo1JOvQy8tyb5D2QLNmzWjWrBnh4eEsWLCAV155hbZt2xIWFkbTpk2ZO3cu4IZeTJ06lZ9++ol9+/ZRsGBBZs+ezd69e/0fx69atYr+/ftTr149xo8fz9tvv03+/PkpV64cHTp0YNq0acTGxnLbbbfx1ltv8eyzzzJx4kSOHj3KjTfeyKlTpxgxYgS1atXy13fHHXcA8OeffzJq1CjmzZvH4cOH6du3L1WrVuXAgQOUK1eOF154gTfeeIMGDRowYMAAateuTeHChXn//fepVasWPXv25KeffiI6Opq5c+dSsWJFpkyZwsmTJ5kyZQorVqzgkksuoX379jRq1IiBAwfSp08f3nvvPfr378+gQYOyZEjHDz/84N9funQpX375JR988EGq53bv3p3+/funaGvSpAklSpRI0ZaQkMCwYcP4+uuvKVOmDNdcc02qz3f8+HFKlSp1Vvvff/9NsWLFUn3M+++/zyOPPELBggXPOrZhwwa++OILTpw4wYgRI9i+fTs7duyge/fugPvD7JlnnuGpp56iW7duDBs2jGeffZaAgAD279/P448/zpAhQ4iKivL/0RQTE8O2bdtYsGAB3bt3Z9u2bQAUKlSI1q1bs3nzZkJCQoiLi6NRo0bMmTOHvn37Ehsby1VXXZXmaxcRkRxq82YXnCdNgt9+g4AAuOMOePFFuPtuSOX3Wl6Xe4P0OXqOvda2bVuqVKnCoEGD+O6770hISKBr167069eP8PBwAGrVqsXUqVPJly8fAB999BHBwcF06NAhxXNNmDCBxx57zH9/yJAhtGnThqJFi/LSSy8xefLks4LZnDlzaNWqFQEBAZQqVYonnniCSpUqUa5cOQB+/fVXGjRoAMCiRYv8wy3y5ctHmTJl/ENDFixYQFRUFFFRUWzZsoVy5crRp08fPvroI+rUqeN/LY8//jg9e/ZMUcNbb73FyJEj+f333zPnm3oe27dvJzQ0NN3nnzp1in379qWYD3nWrFm89dZb3HvvvXz77bdpDi8BiIqKombNmina4uPjadu2LSNGjDgrhK5YsYKPP/6YzZs3n/Vcx48fJzY2lubNm7N7927i4+MpU6YMhw4dYuzYsVx55ZU0adKEoUOHMnjwYLZv3+4f3nLNNddQuXJlrrvuOipWrEjFihUJCwtj8uTJvPDCC1hrWb58OcuXL6dQoULMmTMHcOOlmzRpQnR0NF26dKFw4cJERkaycOFCSpUq5X9/iIhIDrdzZ9KwjTVrwBi45Rb44AO45x4ICfG6wmwt9wbpbOLRRx+lWLFi/P3334D7+P6DDz5g+fLlXHfddQQGBgJQv359Zs2axVdffcWrr75K1apV+eWXX/xDQaKiosifPz9jxowBXGCuW7cuDzzwABEREaxcuZLp06ezefNmunbtys6dO3nwwQdp06YNU6ZM8Y8vBjde+siRI/77t912W4qaE1el27VrF4UKFaJ06dL+x0VFRVG2bFlCQkKYM2cONWrU4KmnnuKhhx6ibdu2BAUFnfU9ePLJJ7n99tsB90fEqlWrqFChAkWKFOH111/PlO/z+UyYMIHBgweneqx58+YpLgYFGDNmzFm95pdffjmzZ8+mZMmS7N+//5xf7/vvv+ell17yf59jY2Pp0aMH7dq1OytEr1q1iueff54HHniAtm3b8tlnn1GyZEkAfvzxR0JDQ6lZsyYhISEkJCQwZcoUGjRowDXXXMOrr77K1KlT+e6771izZg3dunUjLi6OJUuWYIzhlltu8f97lilTBmstH374IeXKlaN9+/Z07drVX8fjjz/u3//9998ZNGgQJ06cYN68ecTGxjJx4kR/b3jiGGsREcmBoqLg669d7/Py5a6tfn0YNgz+9S/QsL10U5C+iB566CFeeOEFihcvzqpVqwB3cVflypV57rnnaNasGS+++CLgxukuWLCAVatW+ccD165dmwULFgBp90gnioqK4r///S+tWrWib9++nDp1ihYtWnDjjTeycuVKbrnlFv+5zZs355ZbbuHWW289K0QDhISEsGrVKoYMGULv3r0BFwSffvppOnXq5J8ruF+/ftSvX59JkyYRFxeX5kIce/fupXHjxv46CxQoQIjvL9zOnTv7z5s9ezYvvfTSWY/funXrWW0zZ84kLCwsRdvOnTt58sknU7QlJCTwf//3f4SGhqa4gC+5gIAAAgKSJrCZM2cOY8eOZfHixSnOq1atWqqPP9OoUaO45ZZbKFmyJEeOHGH//v3ccccd3HvvvTzxxBP+8+Lj4xk9ejTjxo1j+vTpVKhQgW+//ZZGjRoxY8YMKleuTFhYGI888gihoaH+oR0APXr04Msvv+T999+n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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsUAAAEFCAYAAAALy5oxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZzNZf/H8dc1dtmXsc+MUknIMmiTGUuiLMktUrJEWkmi5e53a6GkxS2lRLRoUbKVpTCD6s7aRLJFyIQQYzfDXL8/rjlzzmzWmTkzc97Px+M8zpzv+Z5zruEY77nO5/pcxlqLiIiIiEggC/L3AERERERE/E2hWEREREQCnkKxiIiIiAQ8hWIRERERCXgKxSIiIiIS8PL7ewAA5cqVs2FhYf4ehoiIiIjkcatWrdpnrS2f+niOCMVhYWGsXLnS38MQERERkTzOGLM9veN+LZ8wxrQzxoyPi4vz5zBEREREJMD5NRRba2dba/uVLFnSn8MQERERkQCnhXYiIiIiEvByRE1xehISEti5cycnTpzw91BEAlLhwoWpWrUqBQoU8PdQREREslyODcU7d+6kePHihIWFYYzx93BEAoq1lv3797Nz506qV6/u7+GIiIhkuRy70O7EiROULVtWgVjED4wxlC1bVp/UiIgEgldegaiolMeiotzxAJKjF9opEIv4j/79iYgEiEaNoEsXbzCOinK3GzXy77iyWY4tnwh01lqFEhERkUD1yisulEZGeo9FRcGKFTBkyPk/X2IiHD0Khw/DoUPu2vfSvTu0awe33w7z5sHUqSlfOwDkje4TWTztf+TIEQD+/e9/J28ycssttyTfP2PGDGrWrElERARXXnkldevWJSIigho1ahAdHZ3m+U6dOsXNN99MmzZtOHnyZLqveccdd7B3797k5x87duw5jTUhIYEdO3bw559/ns+3mOzVV1/l+++/B2DDhg18+umnvPDCC7z22mtYawHo0KEDwcHB3HDDDVSpUoXx48cnP6Zjx44X9LrnKyYmhrvvvvus5w0bNowvv/zynJ93+fLlzJkzJ8P7jx8/zooVK875+RITE896zrBhw4iJiWHAgAEp3g8//fQTH3/8cfLtzp07n/W5brvttuSvo6Oj+fnnn5Nvjx49mgkTJjBr1izeeOMNTp8+Tc+ePc/xOxERkWzlmb397jvYvh0mToROndx9X3wB778P//0vvPgiDB0KDzwAd98NHTpA8+bu8TVrQuXKULw45MsHJUpAlSpw1VXQuDG0aAEdO8I997jnOnoUPv7YPVeABWLIKzPFnjeO57caz7T/1KmZ8vS33XZbuuHW16233kqrVq2YP38+5cqVo2HDhsyYMSPdcwcPHsyAAQMoWbIkd955Jx9++CElSpRIvj8uLo6jR49SvnyaHQiTJSQk8Nprr7Fz504OHDhA4cKF+f3331mzZg0tWrSge/fuVKtWLfn8o0ePMmbMGFasWMGBAwcIDg6md+/etG7dGnBh8PbbbyckJITJkydTqFAh6tSpQ/fu3WnXrh3FihVLfq6ZM2fStWtXxo4dy7Bhw+jXrx8dO3bkxhtvTDHGVatWcf/996c7/qVLl1KkSBEANm3axF133ZXueR999BFXXXVVhn8OmWnLli306dOHmTNnprnviy++4MiRI0RGRvLcc8/x9ddfpznn0KFDtGjRAmMMxhiCgoLYtm0bc+bMoX79+snndejQgf379yff/ueff/jss8+oWLEirVu3ZvTo0dStW5fExESKFi3KwoULeeGFF1i3bh0NGzakW7duDB48OPnxMTExDBw4EIC1a9cSERFBwYIFKVGiBJ988knyeXFxcZw6dYq///6bunXrsnnzZvbu3Zv8vdSvX58qVapc/B+kiIicH2vh779h40bYtMldb9wIhQvDzTenPHfo0LSPL1TIBd8SJdx18eJQvjxcemnKY55L6mMlSsAvv0D//u4ybpzLUwEWjHNHKB44EGJiznxO5crQujVUqgS7drnfgp57zl3SU68ejB59xqecO3cur732Gr/88gstW7Zky5YtfPfddxQvXpyYmBhatmzJ448/DkCBAgUoXLgw+fPnT/G1rxMnTjBo0CCuv/56br31VsCVSbRp04Z///vftGnTBoApU6YQERFB165d2b17N+vXr+fEiRPJM55vv/02tWrVolGjRnTr1o2QkBBmzpzJ3LlzmTlzJgcOHGDJkiXJr3vgwAHuvPNOnnjiCWrVqsWmTZt46KGHGDx4MJs2beKRRx6hXr16PP3001StWpWlS5fSq1cvRo0aRZUqVTh48CAHDx6kePHibNmyhTFjxrBs2TIeeeQRYmJiGJreP1CgYcOG6W7fHRERwenTp5NvHzt2jNq1azN58uQU5/Xs2ZOjR48m377++us5duwY4GZs9+7dS7169QCoXLly8gzv119/Tf/+/alatSoA8+bN49VXX2XHjh3MmTMn+TG+Vq9eTY8ePfj888+59NJL09x/8OBBEhIS0v0+PUqUKJFiFvnYsWM0adKEWrVqpTjv9OnT/Oc//2Hjxo0AVKxYke+//57LL7+c6667jnr16pGQkMDMmTO5/vrrqVixIrNmzaJ///4MGjSI6OhoDh48SKlSpYiLi6NUqVLJf3Z9+vThySef5LnnnuPZZ59lzZo1VKtWjaVLlxIVFcXPP/9MSEgI3377LS1btqRcuXIsWrSI1atX89ZbbykUi4hkpePHYfNmb+j1DcC+TQcKFYLLL4cmTSA0FH74Ae64A/r2TT/YXmzrzKgoF4Y9k4vNm6ecbAwQuSMUn4vSpV0g3rEDQkLc7YvUpk0b2rRpQ0REBAsWLODf//43HTt2JDw8nFtuuYV58+YBrrxhxowZ/PTTT+zatYtChQoxZ84cdu7cmfyR96pVqxg2bBgNGzZk8uTJDB8+nPz581OhQgW6du3KzJkziY+Pp1mzZrz44osMGjSIzz77jEOHDnHddddx8uRJxowZQ926dZPH16JFCwD27dvHW2+9xfz58zl48CBDhw6levXq7NmzhwoVKjBkyBCef/55rr32WkaMGME111xD0aJFefPNN6lbty79+/fnp59+4sCBA8ybN48qVaowffp0jh8/zvTp01m+fDmVK1emS5cuREZG8vLLL/P444/z3//+l2HDhjFy5MhsKZv48ccfk79eunQpn376KW+//Xa65953330MGzYsxbFWrVqRelFnYmIib7zxBl988QXlypXj6quvTvf5jh49SpkyZdIcP3z4MMWLF0/3MW+++SZ9+/alUKFCae5bv349n3zyCceOHWPMmDFs3bqVP/74g/vuuw9wv2Q99thjDBgwgD59+vDGG28waNAggoKC2L17Nw8++CCjRo0iNjY2+RegEydOsGXLFhYsWMB9993Hli1bAChSpAjt27dn06ZNBAcHk5CQQGRkJHPnzmXo0KHEx8dzxRVXZPi9i4iIj7PV+iYmws6d3rDrG4B37HCzwh5Vq8KVV7p63iuvdJcrrnA5Jl8+7yffzz7rZm8fegiuvz7zv6cVK1IG4MhId3vFCoXi7GKMaQe0q1GjxplPPMuMLpD2jfOf/2TbX2THjh0JCwtj5MiRfPvttyQmJtKrVy+efPJJIiIiAKhbty4zZswgX758ALzzzjuUKlWKrl27pniujz/+mAceeCD59qhRo+jQoQPFihXj6aefZtq0aWlC1ty5c2nXrh1BQUGUKVOGhx56iKpVq1KhQgUA1q1bx7XXXgvAokWLkksa8uXLR7ly5ZLLLxYsWEBsbCyxsbFs3ryZChUq8Pjjj/POO+9Qr1695O/lwQcfpH///inG8OKLLzJ27Fj++uuvzPlDPYutW7cSEhJyzuefPHmSXbt2pei5+8033/Diiy/SuXNnvvrqqwxLOABiY2OpXbt2imOnTp2iY8eOjBkzJk2gXL58Oe+++y6bNm1K81xHjx4lPj6etm3bsmPHDk6dOkW5cuXYv38/EydO5PLLL6dVq1a89tprvPLKK2zdujW5hOTqq6+mWrVqNGjQgCpVqlClShXCw8OZNm0aQ4YMwVrLsmXLWLZsGUWKFGHu3LmAqy9u1aoVBw4coGfPnhQtWpSYmBgWLlxImTJlkt8fIiJyFp6Szffec/W506e7etxGjWDKFDcTfPy49/zixV3YvfFGF3g94ffyy+GSSzJ+Hd9SUE8pQ1bN3qa3cE/lE9nLWjsbmB0eHt73op4oG984999/P8WLF+fw4cOA+4j87bffZtmyZTRo0ICCBQsC0KRJE7755humTp3Ks88+S/Xq1fnll1+Syy1iY2PJnz8/EyZMAFz4rV+/PnfffTfR0dGsXLmSWbNmsWnTJnr16sW2bdu455576NChA9OnT0+uxwVXX+zb67lZs2YpxuzZkWz79u0UKVKEsmXLJj8uNjaW8uXLExwczNy5c6lVqxYDBgzg3nvvpWPHjhQuXDjNn8HDDz9M8+bNAfcLwapVq6hUqRKXXHIJz2VUrpLJPv74Y17JYCFl27ZtUyyEBJgwYUKa2ezLLruMOXPmULp0aXbv3n3G14uKiuLpp59O/nOOj4+nX79+dOrUKU0gXrVqFU888QR33303HTt25KOPPqJ00icX//vf/wgJCaF27doEBweTmJjI9OnTufbaa7n66qt59tlnmTFjBt9++y0///wzffr0ISEhgSVLlmCMoWnTpsl/n+XKlcNay7hx46hQoQJdunShV69eyeN48MEHk7/+66+/GDlyJMeOHWP+/PnEx8fz2WefJc9Se2qSRURypYvt1BAfD/v2wd693mvfS+pj+/e7Lg0eQUEQG+vCbsuW3hnfK6+EihXhQrpJafY22+WN8olseuPce++9DBkyhBIlSrBq1SrALWyqVq0agwcPpk2bNjz11FOAq2tdsGABq1atSq6fveaaa1iwYAGQ8UyxR2xsLB9++CHt2rVj6NChnDx5kltvvZXrrruOlStX0rRp0+Rz27ZtS9OmTbnpppvSBGKA4OBgVq1axahRo3j00UcBF+oGDhxI9+7dk1u/PfnkkzRp0oTPP/+chISEDDdu2LlzJy1btkweZ4ECBQgODgagR48eyefNmTOHp59+Os3jf//99zTHvv76a8LDw1Mc27ZtGw8//HCKY4mJifzf//0fISEhKRav+QoKCiIoyNtYZe7cuUycOJHFixenOK9mzZrpPj61t956i6ZNm1K6dGni4uLYvXs3LVq0oHPnzjz00EPJ5506dYrx48czadIkZs2aRaVKlfjqq6+IjIxk9uzZVKtWjfDwcPr27UtISEhy+QRAv379+PTTT3nzzTcpUaIEN998MzfffDNxcXHcdddd9O7dm/Lly7N582bGjBmTXPt78uRJWrduTXR0NJMmTeLXX39NHo9vPfZdd93Fd999R7t27Vi9ejVdu3aldu3aNG7cmEmTJhEfH59umYeISK7gu+A+IgLmznUdFV58EebMyTjceo6ls4kY4MJs2bJu0Vr58m69UtOm7usVK2D+fNepYfRoSJoUyzSavc12eSMUZ/EbJyYmJrl0ILXo6GiaNGnCunXrKFWqVJr7GzZseEGvWaVKFX788UeKFStGo0aN2LlzZ5qA6FGxYkWmT5/OM888Q8+ePbn77rt54YUXku9//fXX6devH61atUpeHLho0aLkxXcAn332GYULF+bGG28kPDycAwcOpOhe4atHjx7J4fedd96hXLly6bYLa9u2LW3btk1z/PXXX0+e7QQoU6YMI0aMoF+/finOGz9+fPKstseUKVM4cuQI48aNS3dsvn777TdGjhzJn3/+yfz58zOs/T2TNWvWMH/+fKYmdTIpXbo05cqVY8SIETRo0CDFuT169CAsLIwlS5Ykz+R36tSJoKAgxo4dy8iRIylQoACvv/46I0aMYOHChcybN48vvviCNWvWcPDgQR599FHef/99KlWqxKRJk/jggw94+eWX2bRpE6VKlaJPnz707t2b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+DDMneuC8DffuJ3lSpaE9u1dEL755rSzwb60qYaIiEhg82soNsa0A9rVqFHDn8OQXOqff2D2bLer3Lffurrg4GC46y4XhCMj1T9YREREzo1fa4qttbOttf1K+n6WLZIkvQ01du1yGxC2auUCcM+erotE//5u6+W//oJ334XWrRWIRURE5NypfEJypNQbamzfDj16uA4SAJdfDk88AXfcAQ0bgjH+G6uIiIjkfgrFkiM980zKHebABeKSJeGHH6BWLQVhERERyTwKxZIj7diR/vFDh+Dqq7N3LCIiIpL3qU+x5ChHjriewhntPq4NNURERCQrKBRLjrF4MdStC++843oKFymS8n5tqCEiIiJZRaFY/O7YMRg4ECIiXKeJJUtgzhx47z0IDXW1w6GhMH68egmLiIhI1lBNsfjVDz+4tmq//w6PPAIvvQSXXOLu04YaIiIikl00Uyx+cfw4DB4MTZvCqVMQFQVjxngDsYiIiEh20kyxZLtly9zs8IYNbtONV16B4sX9PSoREREJZJoplmxz8iQ8/TRcfz0cPeq2Zh43ToFYRERE/E8zxZItVq2Ce++FdeugTx947TW3EYeIiIhITqCZYslS8fHwn/9AkyZw4IDrKjFhggKxiIiI5CyaKZYs88svrnY4JgZ69IDRo6F0aX+PSkRERCQtzRRLpktIgBdfhEaNYNcumDEDPvhAgVhERERyLs0US6Zat87VDq9aBV27wtixULasv0clIiIicmaZPlNsjClujJlkjHnHGHNvZj+/5EynTsHIkdCgAWzfDl98AZ9+qkAsIiIiuUNWlE/UAd6w1vYHWmXB80sOs3Ej3HgjPPkktGvnZos7d/b3qERERETO3TmFYmNMZ2PMVGPMjlTHuxhjlhtjVhljXgOw1v5orV1jjKkHHM+CMYufTZkCYWEQFARlykDt2rB5s5sZ/uILCA729whFREREzs+5zhTvBR4ECnoOGGNCgRdws8HhQFVjzB1J910PDAAGZvSExph+xpiVxpiVe/fuvcDhS3abMgX69XMlEta6NmvWwgsvuBpiY/w9QhEREZHzd06h2Fq72Fq7L9XhW4Bp1to4a60F3gU6GmOCge5AH2vt0TM853hrbbi1Nrx8+fIXOn7JZs88A8eOpTx2+rTbqllEREQkt7qYmuKywG6f27uAYKAXUAkYb4wZdxHPLznQjh3n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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# 感染者数と重傷者数\n", - "y= [282,314,None,581,846,1320,2014,2798,4593, 6065,7818,9826,11953,14557,17391,20630,\n", - " 24554,28276,31481,34886, 37558.40554,43103,45171] #2019年2月13日までのデータ\n", - "\n", - "y_sev=[51,51,None,96,177,237,324,461,976,1239,\n", - " 1370,1527,1795,2110,2296,2788,3219,3859,4821,6101,6188,6484,7333,8304]\n", - "\n", - "plt.figure(figsize=(12,4)) \n", - "plt.xlabel(\"2019年1月20日以降の経過日数\")\n", - "plt.plot(range(len(y)),y, label=\"世界全体での新型コロナウイルス感染者数\",color=\"red\")\n", - "#x軸が0から始まる整数値(0,1,...)で良い場合は、x軸のデータを指定しなくてもplotしてくれる\n", - "plt.plot(y_sev, label=\"重傷者数\",color=\"blue\") \n", - "plt.legend() ##凡例(線や点等の説明)を描画する\n", - "plt.show()\n", - "plt.close() \n", - "\n", - "plt.figure(figsize=(12,4)) \n", - "plt.xlabel(\"1月20日以降の経過日数\")\n", - "plt.yscale(\"log\") ## y軸を対数スケールに変換\n", - "plt.plot(range(len(y)), y, marker=\"x\",label=\"世界全体での新型コロナウイルス感染者数\",color=\"red\") ## markerの値を指定すれば、線だけじゃなく点を描くことも出来る。\n", - "plt.plot(y_sev, label=\"重傷者数\",marker=\"o\",color=\"blue\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5Hbzfjw0pqhu" - }, - "source": [ - "下のグラフはy軸の対数スケールをとってみました。 \n", - "*データが無い日の値は0ではなくNone(値なし)にすることに注意しましょう*" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AP4eGtKElufB" - }, - "source": [ - "**注意** \n", - "当然ですが、x軸とy軸方向でデータの数が合っていないとエラーを起こします。 \n", - "\n", - "「一緒にしているつもりなのにエラーが出る...」と言う場合は \n", - "len()関数などを実行してリストの長さ/要素の数をチェックしてみましょう。 \n", - "カンマがピリオドになるなどして、意図しないリストになっているかもしれません。 \n", - "\n", - "例: \n", - "(意図したリスト) [2,3,5] ←長さ3のリスト \n", - "(間違えて作ったリスト) [2.3, 5] ←カンマがピリオドになっていて、長さ2のリストになっている \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EiGt8E4VoWEI" - }, - "source": [ - "\n", - "\n", - "**練習**: \n", - "「matplotlib marker」でWeb検索してみて、どんな形状のmarkerが使えるか調べてみましょう。 \n", - "その中から\"x\"(バツ印)以外の好きなシンボルを選んで上のグラフの二番目をプロットしてみましょう。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Oy34IWVsCLZv" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H15gDDnkmz5p" - }, - "source": [ - "### scatter: 散布図の描画\n", - "\n", - "$x$と$y$、2つの量があって、どちらにも興味がある、 \n", - "あるいは両者の間の相関に興味がある場合、散布図を描くと、見通しやすくなることが多いです。\n", - "\n", - "以下では、2017年の宇都宮の平均気温とアイスクリームの消費量の相関を見てみましょう。 \n", - "気温・アイスクリームの消費量ともに、1月から12月に順番にリストに入れていくことにします。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 304 - }, - "id": "ZpNvApJ-nVKv", - "outputId": "377c58ab-36c5-4194-e701-9be33e08a4a0" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAARsAAAEfCAYAAABxvGI3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deZxcVZn/8c/XECBsNjskEsOgBmSR8ENBQHYIImCMCgPKpogLm4hRcEAYRFECo7KIyCqMMyhbIAoEGLaRPQEkgIIwoNJsYQkgNCQk398f5xSpNNV9qzp1q7urn/fr1S+qTt2q+3RIPTn3nHPPI9uEEELZ3tPfAYQQhoZINiGElohkE0JoiUg2IYSWiGQTQmiJSDYhhJaIZBNCaInF6jlI0nDgE8C6wAjgKeAm28+UGFsIoY2oaFGfpL2AzwN3AH8G3gJGkZLPm8B3bb9WcpwhhEGu12QjaQywge2renh9dWBz25eWEl0IoW0U9mxCCKEZeh2zkfRzYP1aLwHzgd/b/mkZgYUQ2kvRZdStwDaVp8ANwHb5+bLA1bY3KzXCEEJbKJyNsj2v8ljS/MpzSQJmlxhbCKGNFCUb5dkoSD2bd9h+Gdi5lKhCCG2nnnU2i9Et0YQQQqOKko1tX1h5ImnfkuMJg5ik44Bnbf+yl2PutL1pXij6RWA6ad0WwCu27+jhfScAT/X22TWOf8z2BQ38CqFEhZdRLYkitD1JJwObAh+W9EdgLjAD2Ap4HHgGOEfSGrYt6evAe6s+YjPgFUkdVW2v2D6zNb9BWFRFs1FnABsAlYPU/bHtLUuNMAxYkv4CvEFaBlHLMGC47fWq3nMnKXHMBD4NHA2cTprdnGj7kHzck8A+wJxePvs3tsdI2hg4p9vrq+X3vtStfQ/bj9T1C4am6rVnY/ugVgUSBq0tbf+z1gu5F/LHGi9NBKbbfixNagKwI3Bht+PmAif3cN7DKw9sTwc27HbuuIwaYOq5XWFt29f28PrKwBa2ryglujCgSdofeBs4IjetACwOPJufTwaGk3oX38ttq+dj/ga8CMwi9WzOJyWul/NnLwdsBHzO9sHdzns6cClwr+1Xc9tawGVVh9Xq2exte+ai/dahr4p6Nk9K2lLS5cDtLLgRcyTpRsw5wFGlRxkGJNvn54cXAUjaD/iA7aNrHH6VpB2BnwHfJyWbmcAppK1OHgDOAnbPn/1q7vVMlLRht8/6F+DSSqLJRpAGkHfJsSzUs5F0MbD0ovy+YdHUs6jvwvw/aivSFhNLAJ3AsbafLjm+MEBJ2oSUHKqtACwuaZdu7d/IP5sDh+S2/Ui9E0hjPl8GHpW0mu1nAWzfTPqHDUm3kHo5s5r7m4RWqWs/G9tzgOvzTwjYvot3j5PsR42ejaT1SZdRdwJH5ub3sSDZYPtNSXcAY4BnJa0IXAd05UPGAldUjfEsSRrsfbzOkGOjuH5WV7IJYVFUxkkk/d32FvnxkVWHrCnpp6Txnwdz23DgNdtb1/pMSVNIl069krQ3KdG9F/hmX3+HsOgi2YRmKlqXNTqvsYHUs6kM/D5h+xM1jt8oT5XX8qFuz18ALu9+kO2LyGNKoX8VbTHxRdv/KWmhLqjt+ZI+DCxnu6e/DGGIkLQ5cDZpzOZ7vRzaU8+mJ/cW9Gzekcd5zqsr4NAviqa+rwN2Is0aLA88CfyF1H1dCviS7RfLDzO0A0nLdF+TI2kJYK7tnhYGhjZRNGj2AWBf0kDdI8B/2v4SadXoXpFoQiNqLf6z/VYkmqGhKNk8C/wDWI405b2CpNHAGsCPJC1ZcnwhhDZRdBl1ve0dJP2guhm4mTTec4jtT5UbYgihHRQlm8VIKz0vAf4N2IE0hnN3PuQPtp8rO8hGrbTSSh4zZkx/hxHCkDNjxowXbK9c67Wiqe/NgUeBh4HTSAusPgT8N/BT2wNy9H/MmDFMnz69v8MIYciR9LeeXisas1kPWJG0lPx5UnJ6D+keqS5JqzQryBBCe+s12dg+g7SS80bSvjbnku6mPRq4N/83hBAK1bOC+GukO71PB14FfphXZYYQQt0Kb06zfQtpUd/qtl+rTjSSNigzuBBC+6j3TtjvAhtImtyt/WdNjieE0KYKL6PyIr59SLum7Zk3rh5Omp2KDdFDaGNT7utk8rRHeHp2FyM7RjBp/FgmjBtV/MYaim7EXAm4mLQ37Bqkzc4nkdbabMeCzc9DCG1myn2dHHX5TLrmpqK4nbO7OOrytKtqXxJO0WXUJcC3SaU2xgOrAp8n7YQfpXdDaGOTpz3yTqKp6Jo7j8nT+lacop7ZqBGkHsxSpPIZy/bpTCGEQeXp2V0NtRcp6tnsBBxIumS6Anja9rnAc6Rp8B5J+pyk30n6e1Xb+yRNk3SzpNslbZrbF5d0bm67V9L2Ve85VNLdku6X9O0+/ZYhhIaN7Ki9EWJP7UWKFvW9BewNvJ+UYCTpUFJlhYcLPnsWaZPrxava/oO0Tmdr4CvAL3L7JGC27c2AXYEzJS2RN2XaE9gC+BgwIRckCyGUbNL4sYwYPmyhthHDhzFp/Ng+fV491RXmSPoacAzwJ9unVl5T1e7TNd53Sz6munkf229WnbvSH9uFtG8OtjvzxtdbANsD5+cN15F0HqmKYtz4FELJKoPALZmNqrD9F0nn2L6v20sNbSBdSTSSdiMNPO+XX1qRBYXNINV9XiW339GtfZNany3pQNIlH6NHj24krBBCDyaMG9Xn5NJdXYv6JK0DPFHjpQdrtPX2OZJ0EqnW8462/5pfeo6UXCpWy209tb+L7V/Z3tj2xiuvXPMO9xBCP+o12UiaKGkv4AzgJ5KWq/rZgtyTaMDRwKO2j6y6nAK4Ejggn3NVYFPgtty+j6ThkoaRLrWuavCcIYQBoOgy6mDghvz4KdJm54+R9ib+HfDTBs93MPBnSV+satsROBU4V9JdpFXJB+XB6emSriJt1vU2cHEuIh9CGGSKks1IUmJZnTR+8ghwAWmsZTnbPW6UU2F7tarHq/Zy6N49vP9k4OSi84QQBraiMZu3SCuF5wCvseD2BAPfKjGuEEKbKUo284E3gdeBv3Z77bVSIgohtKWiZLM0qdD7SNLYCqRejYBzygsrhNBuipJNJ2lL0CdIvZx1SCt/1wb+Kunj5YYXQmgX9Szqq1S9vAb4CWlWCtKWExNZeNFdCCHUVJRs9rf9JHCFpOWB1yu3DgCvSHqs1OhCCG2j12STE03l8cs1Xn+ze1sIIdRStFPfIcC6pHGbw0iXTn8CPgLcDyxle/uePyGEEJKiLSZOA34FfBg4HnjM9q7A47Z3A5YsP8QQQjso6tlMzQ9XYuGB4MrivkPLCCqE0H6Kxmx2zTdA7t7D6/eWElUIoe0U9Ww2IF1G3QN0AGtK+n7VfwFOtv1GuWGGEAa7oqnvV0jVFGYDHyIVpXsv8IeqY2JGKoRBpJm1oBpRtIL4RVLNqGHAR0nJZ3vgBGCe7Rm255cbYgihWSq1oDpnd2EW1IKacl9n6ecuSjafIm14NRbYxPZjtr9H2qD8l5KOLTvAEELzNLsWVCOKBoh/C6nUCvD1qvYH805965UbXgihmZpdC6oRde1BnG9RmJvL8Vba3rZ9f2mRhRCartm1oBpR74bnB5NWDl8q6VFJx/ZWxiWEMDA1uxZUIwqTjaQdSVtLbJCLy61LqngwqeB9tSpiri1psqSnJO1U1S5JJ0q6K1e+/ELVa7vnipgzJJ3S+K8YQqiYMG4UJ05cn1EdIxAwqmMEJ05cvyWzUfVsMbE/6e7v+QC250o6HLhD0sm9zEZVKmJWl3uZT5rd6l5rZS/gg6SqCssCd0q6kVRN8wekapivAhdL+qzty+r67UII79LMWlCNqOcyalXgIEmfzNtMVMZwbiLt4leT7Vtsv9Ct7VHbM2scvgvwKyevApcCO5NqjV9m+xXbBs4CJtQRcwhhgKmnZ/Myaf/hDYFvSXoDONX2t5sYR08VMdVD+7tERcwQBrZ6ejb3kDbNOtH2DqSbLw+QdFgT44iKmCG0uXqSzanAdyR9FCDXipoMjG9iHFcCXwaQtBRpu9FrgKuBz0haNh/3pXxsCGGQKbyMsv2GpD2AkyT9jFRD6nkaL73bm8uAj0uaTtq+4se2nwGQ9CPgVklzgP+NweEQBielcdf2svHGG3v69KjSG0KrSZphe+Nar9W1qC+EEBZVQ8kmb6QVQggNa7Rnc7ykg0qJJITQ1upZZwOApLVIW05sWl44IYR21UjP5vvAIVErKoTQF0V7EO+THy5N6tH8j6Q1qw75re23ygouhNA+ii6jlq16fGq355BuJwghhEJFO/Wd0apAQgjtLdbZhBBaIpJNCKElItmEEFoikk0IoSXq3fD805JOkrRl2QGFENpTvT2b6/LPFyT9XtL7SowphNCG6rpdwXaXpBeBo0gbk18habztl0qNLoTQNuq9jDoGOAxYzvZdpIoHx5cZWAihvdRbEfMHwBGkXg22rwKWKTGuEEKbqbdnMwr4HdBRabO9X0kxhRDaUL09m07b29m+pN4P7qEi5mhJ10q6XdLNkt6f2xeXdG5uv1fS9lXvOTRXxLxfUjPLx4QQWqjMdTaVipiLV7WdC5xhezPgJOD03D4JmJ3bdwXOlLSEpM2BPYEtSFUxJ0iqub9pCGFg61OykbRi0THdK2LmEi1r256aX78aWE/S4qSKmGfl9k7gDlKC2QU43/acXIXzPODTfYk5hNC/CpONpCMkja16fjTwwz6cq4PU26n2PKkaZk8VMXtqrxXngZKmS5o+a1b304QQ+luvySYv3hNwjKTF8grizwKH9+FcL5CSR7WVc3tUxAyhzfWabGw/BfyZtK5mFHAGMNF2V6MnypdBMyXtBJAHgR+yPZdU5fKA3L4qaVfA23L7PpKG58oO+wJXNXruEEL/q6ci5h8kdZBuV9jf9hOLcL6DgAvyIsG3gP1z+6nAuZLuIvWkDsrbjU6XdBVwN/A2cLHtqD4XwiBUV0VMSdcAp9i+ofyQFl1UxAyhfzSjIuabwDrNCymEMNTUWzfq88BFktaw/Z0yAwqhnUy5r5PJ0x7h6dldjOwYwaTxY5kwblR/h9Uv6l1B/DawFzAyj7eEEApMua+Toy6fSefsLgx0zu7iqMtnMuW+zv4OrV/UvajPaXBnP+Ds0qIJoY1MnvYIXXPnLdTWNXcek6c90k8R9a+GVxDbfrb4qBDC07NrrxDpqb3dNZps7i4lihDa0MiOEQ21t7tGk01UwAyhTpPGj2XE8GELtY0YPoxJ48f28I72Vu9sVEXxopwQAsA7s04xG5U0mmxCCA2YMG7UkE0u3UXdqBBCS0TPJoQCsTCvOSLZhNCLysK8ynqZysI8IBJOg2I2KoRexMK85mk02excShQhDFCxMK95Gko2tp8pK5AQBqJYmNc8dScbSXEJFYacWJjXPI30bO6VdIKkJUqLJoQBZsK4UZw4cX1GdYxAwKiOEZw4cf0YHO6DRmaj/go8CFwjaXvb80uKKYQBJRbmNUcjPZsXgRuAzwDDJW0uaaW+nFTS13OVy+mSvp/bGq6WGUIYPOrq2eQv/hKkvWxWIG0+PoMFFS3rlmtQfYlUhO5t4EpJ2wJHAafanipp5/zZu1JVLTPXHL9Z0np5Q/QQwiBRmGwkLQYcB7xE6t0caXter2/q3QbAbZVkIely4JN0q5Yp6Yyqapn75vZOSZVqmf+zCDGEEFqs8DLK9tu29wdOAFZbxEQD8ACwlaT35sHmz5KK1zVaLXMhUREzhIGtkW1BXwZ+vKgntP0IcApwDXAZcA/wJI1Xy+z+uVERM4QBrNFFfQ8t6gklLQnca3sz4NPAhsBvaLxaZghhEOmPGzGHAUdLGkOqR3Wm7cclNVotM4QwiNQ7G7UxqXfxLdtvLMoJbb9OKgvTvf1vwDY12ucAey/KOUMI/a/eulHTSZud3ypp9XJDCiG0o7ovo2yfJ+kJ4PeStrM9u8S4QghtptEB4puAM4D/KCecEEK7Kkw2ko6VtEnlue3zgHUkbVRqZCGEttJrspG0AbAdcI+kvSR9ML/0Y/J0dAgh1KOoZ/MM6T6mkcChwFO5fRrwsRLjCiG0mV6Tje1Zth8DVgWOsN2V298ENm9BfCGENlHXbJTtGTXaYmFdCKFuUcolhH42VOpSRbIJTTdUvjzNMJTqUkX53dBUlS9P5+wuzIIvz5T7Ovs7tAFpKNWlimQTmmoofXmaYSjVpWqklMuWkq4uM5gw+A2lL08zDKW6VI30bN6kxqZVIVQbSl+eZhhKdaka2anv7rw9aAg9GkpfnmYYSnWpYjYqNFXlSxKzUfUbKnWpItm02FCYFh4qX57QmEg2LTSU1lSE0F2/TH1L+l6uiHmbpEskLSvpI5JukXSnpKmSls/Hdki6LFfEvEvShv0RczPEtHAYyhpONpKWknSapMP7ckJJ65OqKnzc9uakO8m/BlwMHGZ7U1KZl+PzWyYDN+dqDF8Bzu/LeQeCmBYOQ1lDySb3Km4H1rH90z6e8wVS9YTKJdww4FXgZdv357ZzgE/lxzvn59h+AHhN0lo1YhvwRepiWjgMZY0s6vsocCbweWBuX09o+xlSHe9fSDoKeBl4kKqql7miQiUZLVbZ2iKrWRFzMBSpi2nhMJT1OkCcy+N22H4O+BOwje03c/3vPpG0DbCl7S/n57uTLqNWqTpmCWBOftolaYmqLS1qVsQcDGJaOAxlRUnjX4D/lvQccBHwu9z+oqT351pPjVobWKLq+eI5jmUkrWf7QVKdqGvy678nFaz7paR1gGVt/18fzjsgxLRwGKp6TTa2/wxsKGldYE9guqRpwHBgNNCXZHMhsKmku0mXY12k/Yw7gLMlzQdeBPbNxx8D/FrSvoBJ25SGEAaZenfqe4hUMvdYYFdgK+B9fTlhroi5bw8vf7zG8S8Du/XlXCGEgaOhsRfb84ApklYltqcIITSgTwO9ts9qdiAhhPbW6DqbuL0hhNAnjV4K3V1KFCGEttdoslEpUYQQ2l6jycalRBFCaHsxoxRCaIlINiGElohkE0JoiUg2IYSWiNmoEEJLNJpsdi4lihBC22so2eSNr0IIoWExZhNCaIminfo+VvX0bdLWnc/YjsV9IYSGFN1Y+fWqx+8hbd25hqQpwLF5y4kQQihUtFPfu2p7SxoOHAlcTirJEkIIhRoes7E91/YPgOck7VJCTCGENlQ0ZrMFsFl1m+2T8sPDgTcaPaGkrYB/r2paA5hKKj53Kmkz9FnAPrZfltQBnAusTqox9dWq+lIhhEGiaMzmn/RQNiXvJdww27cAWwNIeg9wC6nq5Q3Anrbvl/QNUkXMQ1hQEfM0SRsAvwbG9eXcIYT+UzRmcz9QZi9iX1KSWYZ3V8T8CynZ7AwcmuN5QNJrktay/Xj1B0k6EDgQYPTo0SWGHELoi35bZ5O3GD0M+DmwIkOgImYIQ1l/Lur7HHCb7dmkS7VeK2JWvW/QVsQMYSgrTDaSVpJUxg2YXyWNv5AviZaRtF5+rVZFTNqhImYIQ1U91RIuARaTNBP4SR9L7i5E0iqkMrz3VDXvR1TEDKFt1ZNslrT9cUmbk770U22fsigntf08aSq7uu1+oiJmCG2r18uoXOPbALZvA7YFRkr6SQtiCyG0kR6TTV4DcxywkaT1AWzPt30EsLykPVsTYgihHfSYbHJi+TywKfBLSXtXvXwEcKSkEWUHGEJoD4WzUXksZXtggqT9cttrwGe6rX8JIYQe1VW723aXpH8Fxla1xfRzCKFudSUbSHd7Aw+WGEsIoY3FtqAhhJboU7KRNErSic0OJoTQvuq5XeEjeXe+yvMO0i0Ed5QZWAihvRQt6hPpHqXpkg7Oa28uAo63fVUrAgwhtIdek02uovAkaa3NUsCjwAzbV5QfWgihndQzZiPbXXk70L2ArfONlCGEULe6kk3lge27SauHp3bbYyaEEHpVT7JZ6BjbM0j70BxTSkQhhLZUT7LZrkbbWcCaTY4lhNDGClcQ5/ugurfNA75QSkQhhLYUK4hDCC0RySaE0BJFi/p2kjSm2SeVNFrSFEk3Srpe0gZ5pfItku6UNFXS8vnYDkmXSbpd0l2SNmx2PCGE8hX1bF4ErpS0dpPPeybwHdvbktbudAIXA4fZ3pS0avn4fGylIuZmwFdIZXpDCINMUUXMeyRNBKZImlXjkB/a/p9GTihpNdJq5AMlbQLMJM1uRUXMENpYPTv1PU4qqzKC1AvZs+rnj30452hSre4LbX8CeInUe4mKmCG0sboGiG3fS6oftaft56p+3urDOWcDD9h+ID//LTCPqIgZQltrZDbqp8DnJb13Ec/5GLCUpLXy8/HAvURFzBDaWiPbglrSCcCqwCt9PaHt+ZK+RKp+OZx0+fRlUs8pKmKG0KbqTjYAtq9uxknzJdS23ZoHZEXMKfd1MnnaIzw9u4uRHSOYNH4sE8aN6q9wQhi0Gko27aLeBDLlvk6OunwmXXPnAdA5u4ujLp8JEAknhAYVLeobJul/JbVNre1KAumc3YVZkECm3Nf5rmMnT3vknURT0TV3HpOnPdKiaENoH0UDxIsBw0kDwye0IJ7SNZJAnp5duwZfT+0hhJ4VJZt5wFu29waWlvS1FsRUqkYSyMiO2tWFe2oPIfSsaA/it4HhklYCfgFc15KoStRIApk0fiwjhg9bqG3E8GFMGj/2XceGEHpXzzqb4aSZo+OAMyT9SdK/SxrW+9sGpkYSyIRxozhx4vqM6hiBgFEdIzhx4voxOBxCHygVUOjlAOke2x+tej4cOBb4oO09So6vTzbeeGNPnz69x9djOjuEckiaYXvjWq/VM/XdfQ/iucDRki6QNNb2oJuamTBuVCSXQSj+kRjc6kk2Ne/qtr1fc0MJoWex5mnwq+eu7++0IpAQehNrnga/um/EzAv8ViozmBB6EmueBr+6ko2kg4E/AZdKelTSsbkOeAgtEWueBr/CZCNpR2AdYAPbWwPrkvaemVRuaCEsEGueBr96ejb7A0fYng/vzEYdDuwhKaozhJaINU+DXz2zUasCB0l6GLjT9su250i6CRgDxEZWoSViycLgVk+yeRn4K7Ah8C1JbwCn2v52qZGFENpKPZdB9wCv2z7R9g6kSgcHSDqs3NBCCO2knp7NqcAVkl61fY/tv0maDJwA/LwvJ5V0AbA28GZu+g/STn2/ApYjbXa+bz7X4qQ6U+sAS5LqTd3Ql/PWI1aphlCOwmRj+w1JewAnSfoZKRE8T67R1Eejga1tV5INkq4nXZ5NlbQzcDqwK2nWa7btzSSNAm6WtF4fKzv0KlaphlCeeku5zLZ9oO3NbW9jew/bTy3CeTuAX0q6VdLpkpYC1rY9NZ/vamC93KvZhVTEDtudwB3AFotw7h7FKtUQytNfU9fTgWNsbwnMAs7I/632PLBi/nm2qr1mkTpJB0qaLmn6rFm1incWi1WqIZSnX5JN7iX9Iz+9hDSFvmK3w1YGXiAVpKtOLjWL1DWjImasUg2hPEUbnn9W0gGSDsk/e0papCWbkkZI+kG+RAL4JKmnM1PSTvmY7YGH8gLCK4EDcvuqwKbAbYsSQ09ilWoI5SkaIN6A1Lt4g1QgbjSwj6TXgL37Mkhru0vSC8Ddkl4BOoGvAisAF0g6BniLXAWTNBt2rqS7AAEHlTE4DAsGgWM2KoTmK9ypr+abpINI90p9tfkhLbqinfpCCOXobae+eu/6Xl7SdpXnts8AVqm6FAohhF4Vjdl8UtJmwOrA7pKulbR+fnmi7TmlRxhCaAtFYzZrADuQ1sW8DdwOvArgvlx/hRCGrF6Tje1ftSqQEEJ7i/1oQggtUc+NmGEQihtKw0DTyIbnu3d7fkfzwwnNULmhtHN2F2bBDaVT7uvs79DCENbIZdQ3uz2PXtEAFTeUhoGokWQzp1t977nNDiY0R9xQGgaieqor7CtpbeBhYC0lu7HwndhhAIkbSsNAVLSobx/SHdlrA4fafhQYQboZ8oDSowt9EjeUhoGoaNxlcWAjYG9ga0mX2v4j8L3SIwt9FjeUhoGo8EZMSR8DtgWuB/4V+ARwNXCm7b7tUlWyuBEzhP6xqDdivgd4zfYM25NIW3L+H3B+E2MMIbS5ejY8vxO4s+r528B/5p8QQqhL3K4QQmiJRlYQry7pt5LukHSOpOXKDCyE0F6Kpr6XqkoqvwBOtP1x4Crgv8sOLoTQPorGbNYhTXnPAt6wfT+A7ask7SZprO0BtwZ+xowZL0j6W4tOtxJpn+bBYDDFChFvmcqK9f09vdDr1HcuHncWqTzur4HHgZNt35Z38HvK9t+bHOygIml6T1N9A81gihUi3jL1R6xFPZvPAe8j3Qf1F+DfgFNypYPbh3qiCSHUr2iA+G3S/sN7AcsC5wB/JS3s26zc0EII7aTXZGP7v4BnbH8P+AzwGmlgeHfgo+WHNygMpq1TB1OsEPGWqeWx1nO7whds/yY/7gAmA2sCjw/UulEhhIGnT0XqQgihUUXrbIZJGpUfryBpM0nva01oIYR2UjRAvDSwR368A2msZu282G/I3+og6QJJd0q6Of/s1t8xVUj6nKTfSfp7VdvoXGjw9hxvj2siWq2HeLeW9GTVn+8v+jPGapJ2z6vp/zfHvZSkj0i6Jf+dmCpp+f6Os6KHePeT9JeqP9/vlxpDwTqb35MW6cwGTgP+BlwJ3ASMtb1RmcENdJJuBHa2/WZ/x9KdpK2Ah4AHba+W264HTrU9VdLOwNdt79qfcVb0EO/+wPCBVr9M0grAdcAnbHdJmgw8BXwN2NP2/ZK+Aaxj+5D+jBV6jPcfwIrAbbava0UcRb2TLwAXkKbAKx62vSfwz7KCGkQ6gF9KulXS6XkR5IBg+xbb76wQzbGtbXtqfv1qYL2BUq+9e7zZGNIK9ptyj2zDfgjtXWy/BGxhu7Kp82LAm8DLlVX2pGUin+qP+LrrId4u0p/vv+ZezRWS1iwzjqJksyXwQdKXCmBdYLm8odZ383+HsunAMba3BGYBx/RzPL3pIMVY7XnSv24D1ZPAFNvbAIcDv+226X6/sf2mpCUl/Zy0Ve6DVO3LbXsOA6gCSY14zyPtK36h7a2BnwO/KTOGoj+MscAqQOGD6DQAAAV/SURBVOVf7I1If2m3BgQYuLus4AY62wdWPb2EdKk5UL3AuxPLygzge3lsn1/1+M+SXgFGki4B+lWeKDmbdFl6jaS1SN+VyutLAHP6K77uusebm39Sed32zZLGSJJLmqIuSjZnkxJKpWdzEfBh2yeVEcxgImkEaS/mH+R/xT4J3Nu/UfXM9hxJMyXtZPtaSdsDD9kesCV5JH0FuMv2A3kwuwN4pp/DQtKSpOGF/W3/A8D245KWkbSe7QdJ+3Zf08vHtEyteHP7d4H/sv0PSRsD/ygr0UBxsvkNMJrUi6lYR9J5+fHhtl8pJbIBLg+0vQDcnf/F7QQG+iLHg4ALJB0DvAXs38/xFLkbOCPPfM4H9sk7Rfa37Uk7IlwkvfPVuBHYDzhb0nzgRWDffonu3XqK94/AZZLeIvXC9i4ziKLZqPcCB9g+RdIewIeBW4HKINhLZWbCEEL7KOrZvA5MzY//SJqV6rT9YqlRhRDaTl23K0gab3taC+IJIbSpelcBH9G9IS9oCyGEuvR6GSWpMpo+TtLVpIHilUgDoerxjSGE0E2vycb2JyEtc7e9c358o+17q0a1Q3gXSSsuytiepGG25zUzptC/ino2lXuflpE0jnTZtaykZUqPLAwIkm7u7fW8+hRJHwC+aftgSesCk0hTwbU+8zLgwIJkdI6k60gbtp3CgvU1qwDft31pD5+9JvAB0qX/DcAUUmWQVYB5pEVtv64ca/uJ3n6/0DxFs1Gfyf9dNT8WcC2wGmmxX2h/nwJG2X5U0sHAC7YvzjdOzuzhPfsAm0m6oaptL9vPS9oU+Ajp1oPu77vX9nfy46+Q1qm8Vm+gkvYl3ZJRuVVgMdKNw1+xfbukpYGpkp62fT2wgaTNKpvDhXIVXUYdAyBpE9sL3X4el1FDxlKkuu6bd2ufTNp2BEn/j5QcPirpR8B4YN3K6uS8CHR4XsJ/NHAcaSP9as9U9ThWAE4CDgW2JVX4+K983KdrBZk/e4Ltyj+QN+S7xm+0fTuA7dclfQsYl59fKWmKpEttv9XYH0toVNFl1NLA70n/AlTPPgnYMI/fbFtmgKF/2Z4l6dHcIwFA0ubAzMrqcdsz8irqb5K2IbkEuD7/g/Qd0t+zebbfkrQYtS+vHieVC8L2S5IuBL5IuhRaOz+uuKnG+7cC7ujWNg64q9vvcz8LFqVCqmP/iXyeUKKins3rwDZ5gHiHFsUUBp4fkRZ4VuoMvQL8sNaBts/KD995XdJw0u0RALsBY/Jl2SrAHrZPk3Rtt8+5VdIDwLeBLbqd5l+Ab3RrWxf4c7e2uRTPmj6c3xvJpmT13gJ/SqlRhAFJ0n4s3AsZRfoCP59fB7jA9gX59eUkTbI9OfeK9waGky7F3sjHLAscJ+kJ0l3nl+T2hbaOUNqO9iekv6MTSJdf/yTdUPjjGuEuwYKEVjGdtEPBRVWfuylwiO0v5Ka3SFsuhJLVtajP9rXFR4V2Y/sC21tXfkh7nhxf3Wb7gpwYDiH1fB6S9GvgdlKiORtYqjImYvtF23uR7uD+DPBYPt18SR/KM1mQei5XNBBuJ2n7iWqXAptI2lvSiLz51lnAb6uOGUXaZS+UbMjvIxyaYmXS2Md6eQfAE2x/xPZppJ7DEpUDJS0n6YfA4qTLowuVSjk/TNpW84M5ee1Gmkmq1410u9zKA9Q7ApsANwMnAEfavqrqsE9QewwoNFmUcgl1q576ruPYZUlfcAGX2v5Rbj8DuMH2Ffn5CqSZqTeAP5CKH65L2rLSwAE9nOJC2xd2O+eZwHG2n6vz9xlJWrPztXqOD4smkk1oG0pFFLezfVmdx+8OTBuqezK1WiSbEEJLxJhNCKElItmEEFoikk0IoSUi2YQQWiKSTQihJf4/2VXKhFHhbhsAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]\n", - "\n", - "plt.figure(figsize=(4,4)) \n", - "plt.title(\"宇都宮市\") ## 図にはタイトルをつけることができます\n", - "plt.xlabel(\"平均気温 (℃)\") #軸ラベルの指定\n", - "plt.ylabel(\"世帯あたりのアイスクリーム・シャーベットの消費金額 (円)\")\n", - "plt.scatter(x,y)\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B-535rGQpYsg" - }, - "source": [ - "相関係数などの情報を含んだもう少しかっこいい図を作ってみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 348 - }, - "id": "bOGBYPK7pgJZ", - "outputId": "05eba7a2-d3a0-4e48-afa4-416483f3b606" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]\n", - "\n", - "r = np.corrcoef(x,y) ## x,yの配列間の相関行列を計算します \n", - "corrcoef=r[0,1] ## 行列の非対角要素が相関係数です。 r[0,1], 0行目1列の値\n", - "\n", - "def seasoncolor(month): #季節ごとに適当に色を塗ってみましょう\n", - " if month <= 2 or month ==12:\n", - " return \"blue\"\n", - " elif 3 <= month <=5:\n", - " return \"green\"\n", - " elif 6 <= month <=8:\n", - " return \"red\"\n", - " elif 9<= month <=11:\n", - " return \"orange\"\n", - " else:\n", - " print(\"month\",month, \" is not supported\")\n", - "\n", - "fig = plt.figure(figsize=(5,5))\n", - "ax = fig.add_subplot(111) ## 注2\n", - "ax.set_facecolor(\"#D3DEF1\")\n", - "ax.set_title(\"宇都宮市\")\n", - "ax.set_xlabel(\"平均気温 (℃)\")\n", - "ax.set_ylabel(\"世帯あたりのアイスクリーム・シャーベットの消費金額 (円)\")\n", - "ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - "for i in range(len(x)):\n", - " tcol=seasoncolor(i+1)\n", - " ax.scatter(x[i],y[i],marker=\"o\",s=10,color=tcol,zorder=20000,alpha=0.7)\n", - " ax.text(x[i],y[i],str(i+1)+\"月\",color=\"k\",fontsize=8)\n", - "ax.text(0.1,0.9, \"r=\"+str(\"%5.2f\" % corrcoef), transform=ax.transAxes,fontsize=12)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WTDhlmHY7r2p" - }, - "source": [ - "### $\\clubsuit$ ```ax (matplotlib.axes) ```" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qQHLqX9ntOur" - }, - "source": [ - "\n", - "上では、axという見慣れないものが導入されました。\n", - "\n", - "キャンバスの上に小さな作業領域```axes```を指定するための```add_subplot```や```add_axes```といった関数があります。\n", - "```ax```はこれらの関数で生成される作業領域に慣例的に用いる変数です。\n", - "\n", - "たとえばキャンバスを四分割して、似たようなグラフを4つ同時に描いたりするのに便利です。\n", - "\n", - "```axes```を使いこなすのは少々テクニカルな点も多いので、よくわからない部分はとりあえず飛ばし読みで構いません。 \n", - "慣れてくると、その便利さに気がつくはずです。 \n", - "細かい図の書き方は追々、一緒に勉強していきましょう。\n", - "\n", - "axに関しては、日本語で書かれた以下の記事もおすすめです \n", - "https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 319 - }, - "id": "5btbwRL4YCJq", - "outputId": "252c4ae4-b687-4c45-ff80-62e92db6ede9" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "data = [152, 170, 82,85,79,92,88]\n", - "label = [\"国語\",\"英語\", \"数IA\", \"数IIB\", \"化学\", \"物理\", \"世界史\"]\n", - "\n", - "fig = plt.figure(figsize=(10,5))\n", - "axTL= fig.add_subplot(2,2,1) #TL: Top Leftのつもり\n", - "axTR = fig.add_subplot(2,2,2) #TR: Top Rightのつもり \n", - "axBL = fig.add_subplot(2,2,3) #BL: Bottom Leftのつもり\n", - "axBR = fig.add_subplot(2,2,4) #BR: Bottom rightのつもり\n", - "axTL.plot(y_sev)\n", - "axTR.scatter(x,y)\n", - "axBL.bar(label,data,align='center',width=0.5,color=\"red\") \n", - "axBR.text(0.5,0.4,\"右下だよ\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "161cPa6nrVJG" - }, - "source": [ - "### Google Driveのマウントと、Google Colab.上で作ったグラフの保存\n", - "\n", - "プログラムを実行して絵を描けるようになったら、次にそれを保存して、レポートに貼り付けたり、 \n", - "誰かに送ったりする必要が出てくると思います。 \n", - "\n", - "Google Colab.では、同じGoogleのサービスであるGoogle drive上にファイルを保存したり(無料版で15GBまで) \n", - "保存したファイルを他人と共有することができます。\n", - "\n", - "皆さんのアカウントのGoogle DriveにあるファイルにGoogle Colab.からアクセスするためにはマウントという作業が必要です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Cr7sAeT37OSo" - }, - "outputs": [], - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive') # ←のマウントする際の名前は好きに決められる。drive.mount('gdrive')とかでもOK" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "fKJKV7iQj_kt" - }, - "source": [ - "上のコードを実行し(複数アカウントを所持している方はアカウントの選択をして)\n", - "ポップアップ等の指示に従い操作を行います。成功すると、Mounted at ほにゃららというメッセージが出ます。\n", - "\n", - "上のコードは「google driveをdriveという名前でマウントする」という操作を表しています。 \n", - "マウントできていれば、以下のコードを実行すると、 \n", - "皆さんのアカウントのマイドライブ直下のファイル一覧が表示されます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "6CyxsW43aDh0" - }, - "outputs": [], - "source": [ - "!ls ./drive/MyDrive" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Mem3umDTc21A" - }, - "source": [ - "Google Colab.からは、!マークをつけることでLinuxやMac(Unix)同様のコマンドが使えます。 \n", - "上のlsというコマンドは(List Segmentsの略で)ファイルやディレクトリの情報を表示するコマンドです。\n", - "\n", - "半角のスラッシュ```/```はディレクトリ階層を意味していて、windowsで言うところの¥に相当します。\n", - "\n", - "コンピュータでディレクトリやパスを指定するときは通常このような**パス**と呼ばれるものを指定して扱います。 \n", - "※パスについてはファイル操作のノートに詳しい記述があります。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tWWrxd0N_z4k" - }, - "source": [ - "次に、GoogleDriveに、図を保存する用のフォルダを作っておきましょう. \n", - "\n", - "mkdir(make directoryの略)コマンドで、マイドライブ直下に```Colab_pic```というディレクトリを作ることにします." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ou5uXl-U_zV9" - }, - "outputs": [], - "source": [ - "!mkdir './drive/MyDrive/Colab_pic' " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "t3G421FJjMMG" - }, - "source": [ - "上のコードを実行後にエラーが出ていなければGoogle driveを開くとColab_picというディレクトリが作成されているかと思います。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dlHHaqPA_8we" - }, - "source": [ - "一度フォルダを作ってしまうと、2回目以降は上のコードを実行しても「既にフォルダありますよ!!」というメッセージがでますので \n", - "ノートを開くたびに実行する必要はありません。 \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "enGmvm6gAVoE" - }, - "source": [ - "これで準備ができました。試しに以下のコードを実行して図を保存してみましょう。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "PHW-hUepA0dD" - }, - "outputs": [], - "source": [ - "### 先程の図\n", - "fig = plt.figure(figsize=(6,6))\n", - "ax = fig.add_subplot(1,1,1) \n", - "ax.set_facecolor(\"#D3DEF1\")\n", - "ax.set_title(\"宇都宮市\")\n", - "ax.set_xlabel(\"平均気温 (℃)\")\n", - "ax.set_ylabel(\"世帯あたりのアイスクリム・シャーベットの消費金額 (円)\")\n", - "ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - "for i in range(len(x)):\n", - " tcol=seasoncolor(i+1)\n", - " ax.scatter(x[i],y[i],marker=\"o\",s=10,color=tcol,zorder=20000,alpha=0.7)\n", - " ax.text(x[i],y[i],str(i+1)+\"月\",color=\"k\",fontsize=8)\n", - "ax.text(0.1,0.9, \"r=\"+str(\"%5.2f\" % corrcoef), transform=ax.transAxes,fontsize=12)\n", - "plt.savefig(\"./drive/My Drive/Colab_pic/scatter_Utsunomiya_ice.pdf\") ##### ここがさっきと違います! \n", - "#plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LdmUlNpQjwEL" - }, - "source": [ - "Google drive上の指定したフォルダに、ファイルが作られたでしょうか? \n", - "matplotlibはファイル名を変えるだけで指定した拡張子で描画してくれるので色々試してみましょう \n", - "(.jpg,.pdf,.eps,.pngなど)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uICk2RZ5uFwD" - }, - "source": [ - "**余談** \n", - "プレゼンのスライドに載せる画像は可能な限り、ラスタ形式ではなくベクタ形式(pdfやepsなど)がおすすめです。 \n", - "(それか、高解像度でjpegやpngを作ってスライドで使って、誰かにスライドを渡すときは軽量化する) \n", - "プレゼンで図が滲んでいるスライドを見せていると「あぁ配慮が足りないんだな」と思われて損をしてしまうかもしれません。 \n", - "論文でラスタ画像を使う場合は「トンデモ論文だと思われて誰にも読まれない危険性」を理解して使いましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WHPD2iPs0JlX" - }, - "source": [ - "**練習**\n", - "これまでの(棒グラフ,円グラフ,1次元図,散布図)のグラフを描画したコード部分で、 \n", - "データを自由に足してみながら、plt.show()を書き換えてファイルに出力してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "IOyDWeNzUzou" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FS7A2eX6daYK" - }, - "source": [ - "### gifアニメーションの作成" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "u5BC24cadfQH" - }, - "source": [ - "「なんだこの程度のグラフならExcelでも簡単にできるじゃん...」と思った皆さんのために、もう少し凝ったことをやってみましょう。 \n", - "gifアニメーション(パラパラ漫画)を作ってみます。 \n", - "\n", - "以下のリンクに、x軸をGDP,y軸を24歳から35歳の平均就学年数の女性/男性比(%)としたグラフを画像ファイル(png)にしたものを公開しました。 \n", - "(もともとのデータはFACTFULNESSから来ているのでライセンスフリーです) \n", - "https://drive.google.com/drive/folders/1kD0Sk8EL-JSDJv-V8Bim3UytNSlofc6s?usp=sharing\n", - "\n", - "1. まずこれをダウンロードしてください。\n", - "2. ZIP形式で保存されるので、それを解凍してください\n", - "3. 解凍したフォルダを自身のGoogle Driveの好きな場所にアップロードしてください \n", - "※以下のコードをそのまま使いたければ```AdDS```というディレクトリを作ってその下にアップロード\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qH7GKz_yfRhO" - }, - "source": [ - "たとえば私のようにGoogle Driveのマイドライブ直下のAdDSというフォルダの下に \n", - "GDPvsWomenInSchoolというフォルダを置いたとします\n", - "\n", - "参考スクリーンショット(ディレクトリ名が古い(AdDS2021)ので注意): \n", - "![](https://drive.google.com/uc?export=view&id=12v-XLgCHTpOehkJ2pmJIZ7zcaGIH4OZv) \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "C79BzM_hhBT3" - }, - "source": [ - "年代ごとに別々になったたくさんのグラフを、1つのパラパラ漫画にまとめてみましょう\n", - "\n", - "先程のグラフがgoogle driveに保存されているかどうかは、以下のコマンドで確認できます(アップロードして直後はファイルが見つからないことがあります)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "uFfxkEk-hGsO" - }, - "outputs": [], - "source": [ - "!ls ./drive/MyDrive/AdDS/GDPvsWomenInSchool/*.png" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8k2AXhuTfqJF" - }, - "source": [ - "AdDS/GDPvsWomenInSchool/の部分は皆さんのフォルダ名に適宜変更してください.\n", - "\n", - "pngファイルをまとめてgifにするコードは以下のとおりです。(処理にしばし時間がかかります)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Uqdk5CaBdgJi" - }, - "outputs": [], - "source": [ - "from PIL import Image\n", - "import glob\n", - "\n", - "files = sorted(glob.glob('./drive/My Drive/AdDS/GDPvsWomenInSchool/GDPvsWomen*.png')) ##まとめたいpngをワイルドカードで指定\n", - "images = list(map(lambda file: Image.open(file), files))\n", - "\n", - "oupf = './drive/My Drive/Colab_pic/GDPvsWomen.gif' ##出力名と保存場所を指定する\n", - "images[0].save(oupf, save_all=True, append_images=images[1:], duration=400, loop=0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eiu1iJjEokt6" - }, - "source": [ - "エラーが出なければおそらく変数```oupf```で指定した場所に、gifファイルが生成されていると思います。\n", - "\n", - "\n", - "私の作成例([ファイルへのリンク](https://drive.google.com/file/d/1Y4EkRP3U-aUcziBOoHyxuBZWbT7ZGL-k/view?usp=sharing))は以下のとおりです \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7rVhvZASjDPK" - }, - "source": [ - "### $\\clubsuit$おまけ\n", - "\n", - "その他のグラフ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "9nJ-tBtxjFJ2" - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "from mpl_toolkits.mplot3d import axes3d\n", - "from mpl_toolkits.mplot3d.axes3d import get_test_data\n", - "import os\n", - "\n", - "X, Y, Z = get_test_data()\n", - "fig = plt.figure(figsize=(10,5))\n", - "ax = fig.gca(projection='3d')\n", - "ax.set_xlabel(\"x\")\n", - "ax.set_ylabel(\"y\")\n", - "ax.set_zlabel(\"target function\")\n", - "ax.view_init(elev=45)#上から見た角度を調整できる\n", - "ax.plot_surface(X, Y, Z,cmap=plt.cm.viridis)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c34ap-zmHd5s" - }, - "source": [ - "二次元ヒストグラム" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "n00yqPx9Hf1E" - }, - "outputs": [], - "source": [ - "import matplotlib.cm as cm\n", - "import numpy as np\n", - "\n", - "mu1 = [ 3.0, 2.0]\n", - "cov1 = [ [1.0, 0.7],[0.7,1.0]]\n", - "numS = 50000\n", - "\n", - "sample1 = np.random.multivariate_normal(mu1,cov1,numS)\n", - "x1, y1 = sample1.T\n", - "\n", - "fig = plt.figure(figsize=(6,5))\n", - "ax1 = fig.add_subplot(111)\n", - "H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet)\n", - "ax1.scatter(mu1[0],mu1[1],color=\"k\",marker=\"x\")\n", - "ax1.set_title('sample1')\n", - "ax1.set_xlabel('x'); ax1.set_ylabel('y')\n", - "fig.colorbar(H1[3],ax=ax1)\n", - "plt.show()\n", - "plt.close()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n2vmy-cwzHVi" - }, - "source": [ - "日本地図" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "eFGbkhOQzH27" - }, - "outputs": [], - "source": [ - "!pip install japanmap\n", - "from japanmap import pref_names,pref_code,groups,picture\n", - "import matplotlib.pyplot as plt\n", - "from pylab import rcParams" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "KkH_HRkYMmUw" - }, - "outputs": [], - "source": [ - "plt.figure(figsize=(6,6))\n", - "plt.imshow(picture({'栃木県': 'red', '群馬県': 'blue'}))" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter4_Matplotlib.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter5_Probability.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter5_Probability.ipynb deleted file mode 100644 index 03f78a7e..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter5_Probability.ipynb +++ /dev/null @@ -1,1684 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 確率と疑似乱数\n", - "\n", - "[この章の目的]\n", - "コンピュータで確率・乱数を扱う概要を学ぶ。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OgC7tgxYLNx4" - }, - "source": [ - "この章では、確率と擬似乱数について扱います。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4rzt6Nw35wtJ" - }, - "outputs": [], - "source": [ - "#ライブラリをインポートしておきましょう\n", - "import random\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8Pc1kC3ELQF3" - }, - "source": [ - "## 疑似乱数について\n", - "\n", - "コンピュータで何かの処理を実現したいときや、自然科学や統計学などで様々なことをシミュレーションしたいとき、[確率的な事象]を考えたくなることがよくあります。 \n", - "\n", - "たとえば人◯ゲームや◯鉄のようなゲームを作るときにもサイコロの出目が必要になりますし、技が急所に当たる確率や色違いのポ◯モンが出現する確率などを設定しなければなりません.\n", - "\n", - "真に理想的なサイコロならば1から6の目が出る確率は等しく1/6ですが、このような\"理想的な\"サイコロは、現実世界でも、コンピュータの上でも実現することはできず、我々人間が乱数をシミュレーションして扱う際には、何らかの確定的な方法で乱数列(**十分ランダムだとみなせる数の集合**)を生成することになります。\n", - "\n", - "真の意味での乱数と区別する意味で、我々が普段ゲームなどで扱う乱数は擬似乱数と呼ばれるべきものです。以下ではめんどくさいので、単に乱数と呼ぶことにします。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EDPi_vGwQ3lb" - }, - "source": [ - "**$\\clubsuit$ 細かな注**\n", - "\n", - "乱数を生成する方法はいくつもあるが代表的なものはメルセンヌツイスタと呼ばれる方法で、多くのプログラミング言語でも採用されている。\n", - "```{margin}\n", - "ちなみにモンテカルロはカジノで有名なモナコの地名Monte Carloに由来。\n", - "```\n", - "また[モンテカルロ法]と検索すると(主に学術的な分野で)乱数がどのように活用されているか、雰囲気を味わうことができます。 \n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "DeY7-UhTPrpm" - }, - "source": [ - "## Pythonでの乱数生成\n", - "\n", - "Pythonでは`random`モジュールを使えば簡単に乱数を使用することができる。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Jz-0jgJnLG3L", - "outputId": "6b61c6b6-c249-4413-8223-49fa276e3826" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "random.randint(1,6)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "b1m6sjIoLJTu" - }, - "source": [ - "のように`random.randint(最小値,最大値)`とすると指定した閉区間の整数値をランダムに生成することができる。 \n", - "上のコードセルを実行するたびに答えが変わること(ランダム性)も確かめよう。\n", - "\n", - "今の場合、最小値に1、最大値に6を採用したことで、この乱数をサイコロの出目とみなすことができる。 \n", - "(```range```などと違い、最大値の6も含まれていることに注意! 紛らわしい...。)\n", - "\n", - "100個のサイコロの出目を保持しておきたければ、2章で学習したリスト内包表記を用いて" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "zc0Q1VTiLoRU", - "outputId": "ffaced8e-d9de-42f0-d871-2865312c788c" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1, 4, 5, 3, 4, 2, 2, 5, 5, 6, 1, 2, 6, 3, 2, 4, 3, 6, 6, 5, 5, 6, 4, 4, 2, 3, 3, 5, 4, 6, 6, 6, 6, 4, 3, 2, 1, 5, 6, 4, 3, 2, 5, 2, 6, 4, 3, 6, 1, 3, 5, 2, 6, 3, 2, 3, 3, 3, 1, 4, 1, 5, 2, 6, 4, 4, 4, 3, 2, 3, 6, 6, 3, 1, 2, 6, 1, 3, 1, 6, 2, 5, 2, 6, 5, 2, 1, 1, 4, 1, 2, 3, 1, 2, 5, 2, 3, 6, 2, 3]\n" - ] - } - ], - "source": [ - "a = [random.randint(1,6) for i in range(100)]\n", - "print(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y7fYRqZyM6R5" - }, - "source": [ - "などとすればよい。$10^p$回 ($p=1,2,...,6)$回サイコロを振った場合の出目をそれぞれヒストグラムにしてみると... \n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 353 - }, - "id": "wXlYsFMLSRBo", - "outputId": "d8defd9e-3de9-433f-8a90-84684107b1c1" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# サンプルの数を指定し、それぞれのサイコロの出目を用意して入れ子のリストにする\n", - "ps = [1,2,3,4,5,6]\n", - "Ns = [10**p for p in ps ]\n", - "results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ]\n", - "\n", - "# ヒストグラムのビンの始点,終点,ステップを定義\n", - "tbin = np.arange(0.5,7.5,1) \n", - "\n", - "# 作図 (axを用いて、一つのグラフに6つの領域を用意して作画する)\n", - "# add_subplit(n,m,i)で、縦n個, 横m個の領域を用意した場合の i番目(列方向,行方向の順番にカウントする. a行b列の小領域は i = (a-1)*m + b)\n", - "fig = plt.figure(figsize=(20,5))\n", - "axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1 ) ] #データの個数に応じて小領域の数を自動で変えたい場合は\"(2,3\"部分の工夫が必要。\n", - "for i in range(len(axs)):\n", - " axs[i].set_xlabel(\"Roll\")\n", - " axs[i].set_ylabel(\"Count\")\n", - " axs[i].set_title(\"$n=10^\"+str(ps[i])+\"$\") #$$で囲むとlatex表記を用いることができる\n", - " axs[i].hist(results[i],bins=tbin,rwidth=0.5) #ヒストグラムを描画\n", - "#グラフ間の縦の間隔hspaceをdefault値(0.3)から少し大きく調整\n", - "plt.subplots_adjust(hspace=0.45) \n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y-fe9b34H3Vf" - }, - "source": [ - "1-6の出る目の頻度が確率から期待される振る舞いに漸近していく事がわかる. c.f. 大数の法則" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eG-f9mSG2BzL" - }, - "source": [ - "今のようなサンプル数が大きく異なるヒストグラムを比較する場合、縦軸のスケールを揃えて比較するほうが良い。**相対的な頻度**になおしてみよう。 \n", - "そのためには、```density```というオプションをオン(`True`)にするか、明示的に各サンプルの\"重み\"を```weights```でリスト(`ndarray`)として与える。\n", - "\n", - "後者は確率分布などを扱うときに便利なオプションとなるが、この授業では扱わない。 \n", - "```density=True```は\"各サンプルの重みを等価にする\"という```weights```の特別な場合に相当する. \n", - "つまりサンプル数が$N$ならweights=[すべての要素が$1/N$の配列(リストやndarray)]とするのと等価。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 353 - }, - "id": "p30xWe7Y16zV", - "outputId": "fef2f58e-baa3-4928-d145-18acd82f60d3" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ps = [1,2,3,4,5,6]\n", - "Ns = [10**p for p in ps ]\n", - "results =[ [random.randint(1,6) for i in range(N) ] for N in Ns ]\n", - "tbin = np.arange(0.5,7.5,1) \n", - "fig = plt.figure(figsize=(20,5))\n", - "axs = [ fig.add_subplot(2,3,i) for i in range(1,len(results)+1) ]\n", - "for i in range(len(axs)):\n", - " axs[i].set_xlabel(\"Roll\")\n", - " axs[i].set_ylabel(\"Count\")\n", - " axs[i].set_title(\"$n=10^\"+str(ps[i])+\"$\") \n", - " axs[i].hist(results[i],bins=tbin,rwidth=0.5,density=True) #density=Trueオプションを指定\n", - " axs[i].plot([1,6],[1/6,1/6],color=\"gray\",linestyle=\"dashed\") #ココを追加した\n", - "plt.subplots_adjust(hspace=0.45) \n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mv4HquL-oEeb" - }, - "source": [ - "\n", - "---\n", - "\n", - "以下では、`random`モジュールのよく使う(?)機能をいくつか紹介する." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JULqiaqvQ1xs" - }, - "source": [ - ">また、`numpy`にも```numpy.random```という下位のモジュールがあるので、 `random`を`numpy.random`としても多くの場合では互換性がある。```import numpy as np```とあだ名を使うなら`random`を`np.random`に置き換えて試してみよう。 \n", - "※ `randint`の場合は、`np.random.randint`だと終点を含まないなど、微妙な違いがあるので注意。モジュールの使い方や実装については[公式Document](https://numpy.org/doc/stable/reference/random/generated/numpy.random.randint.html?highlight=randint#numpy.random.randint)を参考にすること。これは`numpy`に限らない。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "obMICxycf5C7" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LzCSWKWDRucl" - }, - "source": [ - "## 無作為抽出" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UgwUfAjUoNuu" - }, - "source": [ - "リストやrangeなどからランダムに要素を選びたいときには```random.choice```が便利だ。 \n", - "(たとえば[出席番号のリストからランダムに選ぶ]などをイメージしよう) \n", - "\n", - "ループに入れて5回くらい実行してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "7FZXoHS2M7G9", - "outputId": "a7c84ce0-f365-4114-e01a-2619f6fe7abc" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a=> 6 \tb=> 75 \tc=> 日本\n", - "a=> 1 \tb=> 13 \tc=> アメリカ\n", - "a=> 1 \tb=> 88 \tc=> 中国\n", - "a=> 6 \tb=> 10 \tc=> 中国\n", - "a=> 1 \tb=> 98 \tc=> 日本\n" - ] - } - ], - "source": [ - "for i in range(5):\n", - " ## 引数(リスト)からランダムに要素を抽出する\n", - " a = random.choice([1,3,5,6]) \n", - "\n", - " ## 引数(range,0から99)からランダムに要素を抽出する\n", - " b = random.choice(range(100)) \n", - "\n", - " ## 引数(リスト)からランダムに要素を抽出する\n", - " c = random.choice([\"日本\",\"アメリカ\",\"中国\"]) \n", - " \n", - " print(\"a=>\", a, \"\\tb=>\", b, \"\\tc=>\", c)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "y-PR19-BQsjw" - }, - "source": [ - "「0から99までの100個の整数値から重複を許さずに10個選びたい」といった場合は、\n", - "```numpy.random```の```choice```関数を使うのがよい。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "XStnPUmjQ1KC", - "outputId": "8e676f8f-f6d1-4837-c37d-3a198bcb5b6b" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([86, 28, 99, 31, 17, 92, 89, 50, 76, 69])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "np.random.choice(range(100),10,replace=False) # replace = True/Falseで重複を認めるかどうかを指定できる " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kBUApMPPotU-" - }, - "source": [ - "(上の関数の`replace=True` or `replace=False`を変えて何回か実行してみて、抽出された数に重複があるかどうかを確かめてみよう)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_zRfhX355dSk" - }, - "source": [ - "ちなみに選んだものをソートしたければ以下のようにする:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "mbRw7qky5g6N", - "outputId": "bfb5fe6c-5a80-4243-dfa6-707b133dd84e" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0, 13, 17, 36, 48, 49, 75, 84, 96, 97]\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "sorted_array = sorted( np.random.choice(range(100),10,replace=False) )\n", - "\n", - "print(sorted_array)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Sb2yCyYhRrT_" - }, - "source": [ - "## 一様分布からの乱数生成\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sirCg9xiKY5U" - }, - "source": [ - "上記のような離散的な乱数とは異なり、連続的な数について乱数が必要になる場合もある。\n", - "\n", - "その一つの例である一様乱数は、ある\"有限\"区間での確率(密度)が等しい確率に従う乱数で、 \n", - "```random.uniform()```関数を使えば、指定した区間での一様乱数を生成することができる。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "qk74yCgrUAcR", - "outputId": "7cedd8d8-18e5-4777-8d00-b5dd0e59eecd" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3.6791118523291146" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "random.uniform(1,10) #[1,10)または[1,10]からの一様乱数 (randomモジュールでは半開区間/閉区間どちらになるかはroundingに依存するらしい)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "utoYGaTWo2KQ" - }, - "source": [ - "xとyの値を[-1,1]の範囲でランダムに10000サンプル生成してplotしてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 336 - }, - "id": "7V2JoDACo88B", - "outputId": "4dc89e14-0649-461f-f5ce-d097c80f5d97" - }, - "outputs": [ - { - "data": { - "image/png": "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J9RPjDum6PV9nEf9hEU7EhERERERERERqSgNtRMRERERERERkapQ4klERERERERERKpCiScREREREREREakKJZ5ERERERERERKQqlHgSEREREREREZGqUOJJRERERERERESqQoknERERERERERGpCiWeRGrIzOaY2Wtm9h4zu8jMdpjZdfWOS0REGoP6CRERKcfMvmFm/y14/YCZ/Wk9YxIZiznn6h2DyHnFzP4n8B7gPwP7nXN/WeeQRESkgaifEBGRUsxsGrDWOfdhM2sC3gDmOud+UdfARMpQ4kmkxsxsAtAP/Adwg3Pu3TqHJCIiDUT9hIiIlGNmzwP/A7gC+JJz7tY6hyRSVnO9AxA5D70XuBj4T+T/RfvX9Q1HREQajPoJEREp5/vA54GpwA/qG4rI2FTxJFJjZrYeeAKYDrQ451bVOSQREWkg6idERKScqDJ2G/l/oLhGlbHS6FTxJFJDZvY54DfOub8zswuAzWa2yDm3sd6xiYhI/amfEBGRsTjnTprZi8ARJZ3kbKCKJxEREREREZGzRDSp+L8Cn3LOvVHveETG0lTvAERERERERERkbGY2E9gDbFDSSc4WqngSEREREREREZGqUMWTiIiIiIiIiIhUhRJPIiIiIiIiIiJSFUo8iYiIiIiIiIhIVSjxJCIiIiIiIiIiVaHEk4iIiIiIiIiIVIUSTyIiIiIiIiIiUhX/H5T5IkaeiJfGAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "num = 10000\n", - "xs = [ random.uniform(-1,1) for i in range(num)]\n", - "ys = [ random.uniform(-1,1) for i in range(num)]\n", - "\n", - "# 3つの領域に、散布図・xのヒストグラム・yのヒストグラムを描く\n", - "fig = plt.figure(figsize=(20,5))\n", - "axs = [fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)]\n", - "axs[0].scatter(xs,ys,color=\"green\",s=0.5,alpha=0.4) \n", - "axs[0].set_xlabel(\"x\");axs[0].set_ylabel(\"y\")\n", - "axs[1].set_xlabel(\"x\");axs[1].set_ylabel(\"count\")\n", - "axs[2].set_xlabel(\"y\");axs[2].set_ylabel(\"count\")\n", - "axs[1].hist(xs,bins=50,ec=\"w\") #xのヒストグラム (binの数50はいい加減に選んだ)\n", - "axs[2].hist(ys,bins=50,ec=\"w\") #yのヒストグラム 同じく\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lMYjaSEPc6NC" - }, - "source": [ - "**$\\clubsuit$** 散布図とヒストグラムをまとめて描く\n", - "\n", - "もうちょっとかっこよく描きたければ`seaborn`というモジュールの`jointplot`を用いると良い。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 497 - }, - "id": "C4rRe6-AdOHa", - "outputId": "82de3397-78e0-4c1c-fda6-6f4cba78ee0e" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/dist-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n", - " FutureWarning\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbcAAAGoCAYAAADFF6ulAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9fXBd13Uv9jsWSeC+hLy8qRSRMmzDstKSniKkQzokX+iYSSqZTvxsF+Wb1mFVCorHvs+NIDJTGa/SmJbpjhNEnQeQnufeqBlCjIYvqs1i7DzZpqVniQ75QmiEVBRRh0xii3gOFNGVy5tLuQZAUz7942IdrrPOWnvviw+KAvZvBgPgnH32Xvtzfey1107SNEVERERERMRiwlveaAIiIiIiIiLmG5G5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw7L3mgCZono4hkREbGUkbzRBNzoiJpbRERERMSiQ2RuERERERGLDpG5RURE4La33YYkSVr+ue1tt73RpEdEqEjepBFK3pRELwRue9tteGXilZa/W9uxFv/4D/+44GXNppyI648kSbDjsR0tf3finhN4k64hb3bEPTcP3qwOJREzeGXilVkvStejrNmUM1tcL+Z7PQWKiIiI2SEyt4hFg+vFfK+nQLEYMRvh4C3L34Kf/fRnLZcVBYqli8jcbiDMViNYjLhubfGWpkluMeFGH0ezFUKiQBHRCiJzC8D1lDRvZLPf9cR1M4H+bPG1+XU1Hy9C4WA2iPvRNx4icwvA9ZI0r+uieb0Wpbj4LW7c6MLBLMbfbJjOjb4fvRSxpJjbjW6uua64XovSLMqZdVk3Omax0M7WAhAxgxud+UYsGJYUc4uOABFvKGa50MbF+TojWhsWBZYUc4uIiIjwImp7iwIxQklERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw6RuUVERERELDpE5hYRERERsegQmVtERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw6RuUVERERELDpE5hYRERERsegQmVtERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw6RuUVERERELDpE5hYRERERsegQmVtERERExKJDZG4REREREYsOkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6JCkafpG09AykiQ5DuDmWXx6M4AfzTM5c8WNRtONRg9w49F0o9ED3Hg03Wj0ADceTXOh50dpmu6cT2IWG96UzG22SJJkNE3TzW80HRw3Gk03Gj3AjUfTjUYPcOPRdKPRA9x4NN1o9Cw2RLNkRERERMSiQ2RuERERERGLDkuNuT36RhOg4Eaj6UajB7jxaLrR6AFuPJpuNHqAG4+mG42eRYUltecWEREREbE0sNQ0t4iIiIiIJYDI3CIiIiIiFh0ic4uIiIiIWHSIzC0iIiIiYtEhMreIiIiIiEWHNyVz27lzZwog/sSf+BN/lupPMBb5emniTcncfvSjGyk8XERERMSNi6W6Xr4pmVtERERERIQLkblFRERERCw6ROYWEREREbHoEJlbRERERMSiQ2RuERERERGLDpG5RUREREQsOkTmFhERERGx6BCZW0RERETEokNkbhERERERiw7zwtySJDmcJMn/kyTJ/228T5IkOZQkyfeSJDmbJMmvsHd7kiT5+5mfPfNBT0RERETE0sZ8aW6PAdjpeP9BAL808/MJAP8bACRJ8gsAPgtgC4BfBfDZJEkq80RTRERERMQSxbwwtzRN/xLAJUeSjwD4s7SJEQCrkyRZC+ADAJ5O0/RSmqZ1AE/DzSQjIiIiIiK8uF57bm8F8A/s/4mZZ9bzBUV9sv6GpFsIyLLrk3UnPfRuLjRrZcrnVprriTeyX643xuvjQf0eAjmGtG9D8vONxeuJ2dBhfePLa+ziWMtlRcw/3jQOJUmSfCJJktEkSUZfffXVWedTn6zj0HOHvBPWlS40P5nnbOkNLbs+WUf/qX4Mjgya9Tv03CGM18ez71qlTyvz0HOHMHZxLJenlsbVRiHtPBc65yO/2X47229C8xyvj6P6ZBUHThxw9nsoQxocGUT/qX61LykN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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import seaborn as sns\n", - "sns.jointplot(xs,ys,color=\"green\",s=2,alpha=0.5)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GfCEsChab-8L" - }, - "source": [ - "### じゃんけん関数\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N53MCJmFcCOH" - }, - "source": [ - "乱数を使ってじゃんけんをする関数を作ってみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "PpBWvAI4gMT-" - }, - "outputs": [], - "source": [ - "def Janken( ): \n", - " r = [\"グー\",\"チョキ\",\"パー\"]\n", - " return r[random.randint(0,2)] " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "id": "H5AqdOWPhvu1", - "outputId": "176292e9-259c-4812-cb65-38f8ac8255a1" - }, - "outputs": [ - { - "data": { - "application/vnd.google.colaboratory.intrinsic+json": { - "type": "string" - }, - "text/plain": [ - "'チョキ'" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "Janken()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "9v7W2jAYWcjq", - "outputId": "d71b3607-e10d-410e-a023-b6f43770287b" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "パー\n", - "パー\n", - "パー\n", - "グー\n", - "パー\n" - ] - } - ], - "source": [ - "#あるいは、手を0,1,2として計算する関数とじゃんけんの手に反映させる部分を分けても良い\n", - "\n", - "def Janken():\n", - " return random.randint(0,2)\n", - "RPS = [\"グー\",\"チョキ\", \"パー\"] #integer to Rock-Paper-Scissors\n", - "\n", - "#5回手を表示させてみる\n", - "for i in range(5): \n", - " print(RPS[Janken()])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qWL3blMmgUz0" - }, - "source": [ - "今の場合```Janken()```は、単に1/3の確率で手を選ぶ関数ですが、これを拡張していけば確率を1/3から変動させたじゃんけんの実装もできます。 \n", - "たとえば、0から1の区間から一様乱数を発生させて、ある領域に含まれたらグー、ある領域に含まれたらチョキ、残りはパー、とすればよいですよね?\n", - "\n", - "じゃんけん関数を工夫したり、サザ◯さんやドラ◯もんのじゃんけんのパターンを解析することで、 \n", - "毎週土曜や日曜にドラ◯もんやサザ◯さんを倒す関数を作ってみるのも面白そうです。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AuCckqr2i5jE" - }, - "source": [ - "### $\\clubsuit$一様乱数を用いた円周率の計算\n", - "\n", - "プログラミングでド定番の、乱数を使って円周率を求める方法も \n", - "Pythonならサクッと実装することができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "6TEeSxCVjJt6", - "outputId": "bd0afdda-67b5-4547-bde4-18a06023d5d4" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "3.13704" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def pi_approx(p):\n", - " num = 10**p\n", - " x = np.random.rand(num)\n", - " y = np.random.rand(num)\n", - " return 4*np.sum(x*x+y*y < 1.0) / num\n", - "\n", - "pi_approx(5) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QegeQ0ycjXxC" - }, - "source": [ - "このコードでは、$10^p$組の一様乱数を発生させて、 \n", - "円弧の中に入った個数/全体の数(num)で割ることで円周率を求めています。 \n", - "(1/4円の面積は$\\pi$/4で、正方形の面積が1であることを使う) \n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dNBjTYMDlKEv" - }, - "source": [ - "乱数により生成するサンプルの数を増やしていって、精度が改善する様子を見てみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 372 - }, - "id": "rr99Qw8xlKUW", - "outputId": "cd5c524a-ba4e-4315-e611-c6d165f7c8c4" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "p= 1 \t pi_approx 2.8 log10(abs(diff)) -0.46649147797051027\n", - "p= 2 \t pi_approx 2.92 log10(abs(diff)) -0.6544446417698763\n", - "p= 3 \t pi_approx 3.1 log10(abs(diff)) -1.3809833709877704\n", - "p= 4 \t pi_approx 3.1316 log10(abs(diff)) -2.000319167792708\n", - "p= 5 \t pi_approx 3.1458 log10(abs(diff)) -2.3759917290460537\n", - "p= 6 \t pi_approx 3.140808 log10(abs(diff)) -3.105322034013356\n", - "p= 7 \t pi_approx 3.1410364 log10(abs(diff)) -3.254727173274235\n", - "p= 8 \t pi_approx 3.14153816 log10(abs(diff)) -4.263654581782899\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "np.random.seed(1234)\n", - "sum = []\n", - "for p in range(1,9): #サンプル数を一桁ずつ増やす\n", - " tmp = pi_approx(p)\n", - " sum += [[10**p, np.log10(abs(tmp-np.pi))]]\n", - " print(\"p=\",p, \"\\t\", \"pi_approx\", tmp, \"log10(abs(diff))\", np.log10(abs(tmp-np.pi)))\n", - "sum = np.array(sum).T\n", - "\n", - "fig= plt.figure(figsize=(10,3))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"Sample number\")\n", - "ax.set_ylabel(\"Diff. in log10\")\n", - "ax.set_xscale(\"log\")\n", - "ax.plot(sum[0], sum[1],marker=\"o\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eXm9gIwmm8eN" - }, - "source": [ - "あまり効率は良くない($10^8$サンプルあっても4桁くらいしか合っていない)。 \n", - "ちなみに2つの領域に生成された乱数の比から円周率を計算する方法では、領域の面積が近くなるような設定で計算する方が精度が良い。 \n", - "\n", - "なお、上のコードはメモリを食うので、これ以上$p$を増やすとだんだんGoogle Colab上では計算が厳しくなってくる。それまでの作業にも依存するが、$p\\geq9$にして実行するとクラッシュする。このように場合によってはメモリ使用量も気にする必要がある。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "f6QZ9qjDfsqn", - "outputId": "a50d0030-b569-4546-8b90-89988d3e455b" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "p=7のとき => ndarrayのサイズは~ 0.16 GB程度\n", - "p=8のとき => ndarrayのサイズは~ 1.6 GB程度\n" - ] - }, - { - "data": { - "text/plain": [ - "3.14164512" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "def pi_approx_mem(p):\n", - " num = 10**p\n", - " x = np.random.rand(num)\n", - " y = np.random.rand(num)\n", - " print(\"p=\"+str(p)+\"のとき => ndarrayのサイズは~\", (x.nbytes+y.nbytes) / 1000**3 , \" GB程度\")\n", - " return 4*np.sum(x*x+y*y < 1.0) / num\n", - "\n", - "pi_approx_mem(7)\n", - "pi_approx_mem(8) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2NsCW4t6VDhJ" - }, - "source": [ - "## 正規分布からの乱数生成\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rzhAnv6SpCDB" - }, - "source": [ - "正規分布は多くの特徴的な性質を有しています. \n", - "それらは後述するとして...正規分布に従う乱数を生成するには \n", - "```random.gauss()```もしくは```random.normalvariate()``` を用いればよい. \n", - "※両者は基本的に同じだが、前者のほうが高速らしい" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4G-CT2njVm_z" - }, - "outputs": [], - "source": [ - "a = random.gauss(0.0, 1.0) #平均0.0,標準偏差1.0の正規分布からの乱数生成" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0N_wucnuV4I7" - }, - "source": [ - "サンプル数を何通りか作って、正規分布になっているかチェック" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 391 - }, - "id": "fUlcUJTpVIDU", - "outputId": "7ad9c280-2b3a-4e5a-91ca-337b168cfa0d" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mu,sigma a: 0.0067173334130862326 1.005917217916256\n", - "mu,sigma b: -0.062043437506205806 0.9809649613610115\n", - "mu,sigma c: 0.0029861824182547607 1.0029708839095104\n", - "mu,sigma c: 2.6103380608022205e-05 1.0002128303060538\n" - ] - } - ], - "source": [ - "Na = 100; Nb = 1000; Nc = 100000\n", - "a = [ random.gauss(0.0, 1.0) for i in range(Na)] \n", - "b = [ random.gauss(0.0, 1.0) for i in range(Nb)] \n", - "c = [ random.gauss(0.0, 1.0) for i in range(Nc)] \n", - "c2 = [ random.normalvariate(0.0, 1.0) for i in range(Nc)] #一応normalvariateも使ってみる\n", - "\n", - "fig = plt.figure(figsize=(30,5))\n", - "axs = [ fig.add_subplot(141),fig.add_subplot(142),fig.add_subplot(143),fig.add_subplot(144)]\n", - "axs[0].hist(a,bins=50,density=True,rwidth=0.8)\n", - "axs[1].hist(b,bins=50,density=True,rwidth=0.8)\n", - "axs[2].hist(c,bins=50,density=True,rwidth=0.8)\n", - "axs[3].hist(c2,bins=50,density=True,rwidth=0.8)\n", - "plt.show()\n", - "plt.close()\n", - "\n", - "#平均と分散も計算してみる\n", - "print(\"mu,sigma a:\",np.mean(a), np.std(a))\n", - "print(\"mu,sigma b:\",np.mean(b), np.std(b))\n", - "print(\"mu,sigma c:\",np.mean(c), np.std(c))\n", - "print(\"mu,sigma c:\",np.mean(c2), np.std(c2))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tOJ2sDbAWsmp" - }, - "source": [ - "サンプル数が増えるにつれて、正規分布に収束していく様子が見られます. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rryfI2IcbZvG" - }, - "source": [ - "## 乱数の種(seed)の固定" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QWSXDIgFcFE7" - }, - "source": [ - "これまでのプログラムでは、実行の度に答えが変わりました。 \n", - "\n", - "擬似的にでもランダム性が担保されているというのは便利だが、 \n", - "実際にプログラミングで乱数を使って何かの作業を実装したいときは、 \n", - "何か直感と反するような振る舞いをコードが示した際、 \n", - "それがランダム性からくる偶然の挙動なのか、コードにバグがあるせいなのかを特定したくなる。 \n", - "そんなときには、\n", - "```random.seed(適当な整数値)``` \n", - "を使って乱数の\"種\"を指定することで、再現性のあるコードにすることができます。 \n", - "たとえばサイコロの例でいうと" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "muv9OX6Lctxd", - "outputId": "bf8ee0ef-d88a-43b1-ef7b-3243a1475f6d" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[3, 3, 4, 2, 3, 3, 2, 6, 2, 6]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "[ random.randint(1,6) for i in range(10)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "D4e9eLKBc03z" - }, - "source": [ - "は実行する度に答えが変わるが" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QyIpj2cCc3Nu", - "outputId": "a61edc46-9f1e-4faa-9ca4-1e34a69042ba" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[4, 1, 1, 1, 5, 1, 6, 6, 1, 1]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "random.seed(1234) \n", - "[ random.randint(1,6) for i in range(10)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dG_z5FK6c8gT" - }, - "source": [ - "は何度実行しても同じ答えになる。これは、乱数の生成前に\"種\"を指定しているため。\n", - "\n", - "イメージとしては、「無限に長い疑似乱数の羅列の中から10個並んだ数を選ぶときに、 \n", - "どこからどこまでを抽出するかを指定する」のが、 \n", - "この```random.seed```関数です(細かいことを無視すると、だいたいこんなイメージ). \n", - "\n", - "注意点としては、たとえばループを回して乱数を生成するときに\n", - "``` \n", - "for i in range(10):\n", - " random.seed(1)\n", - " print( random.uniform(0,1) )\n", - "```\n", - "などとすると、乱数を生成する前に毎回seedが1に固定されるので \n", - "毎回同じ乱数になってしまうので、意図した挙動になるブロックで使うこと。\n", - "\n", - "\n", - "**余談** \n", - "古いゲームだと、起動してからの経過時間が乱数の種になっていることが多いようで、 \n", - "このパターンを調べることができれば、 \n", - "原理的には(1/30~1/60秒程度の正確な入力が可能なら)望むようにゲームをスイスイ攻略することもできます。\n", - "\n", - "これを利用して攻略を進めたり、コンピュータにゲームの操作をやらせて、 \n", - "メタル◯ライムに会心の一撃を食らわせてレベルアップしまくる動画などが昔はやりました(今も時々ある)。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V0zLmxiTqQkj" - }, - "source": [ - "## 正規分布に関して\n", - "\n", - "この授業は確率・統計の授業ではないので、深入りはしませんが、 \n", - "正規分布(ガウス分布,ガウシアン)に少し触れておきます. \n", - "(厳密性は少々犠牲にし、変数が1次元の場合の正規分布に限る)\n", - "\n", - "正規分布が重要である理由はいくつかありますが、\n", - "* 世の中に(近似的に)正規分布に従う確率変数がたくさんある\n", - "* \"性質が良い\"(扱いやすい)確率分布である\n", - "\n", - "の2点が代表的なところでしょうか。 \n", - "たとえば、身長や体重の分布や、大学入試センター/共通試験の得点の分布なども、正規分布に近いことが知られています。\n", - "\n", - "ある変数$x$が中心$\\mu$、標準偏差$\\sigma$の正規分布に従うとき、 \n", - "$x$の確率密度関数$f(x)$は、以下の様に表現されます.\n", - "\n", - "$f(x) = \\frac{1}{\\sqrt{2\\pi \\sigma^2}}\\exp{(-\\frac{(x-\\mu)^2}{2\\sigma^2})}$\n", - "\n", - "一見、難しそうな式ですが、$x=\\mu$で最大値となり、 \n", - "$x$が$\\mu$から離れていくとどんどん値が小さくなる関数になっています。\n", - "\n", - "関数の形を見てなんとなく「平均値の周りに広がった分布になっているんだな」 \n", - "と理解できれば問題は有りません。\n", - "\n", - "実際に、上の$x$についての関数$f(x)$の値を、$\\mu$や$\\sigma$を変えながらplotしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "S1dZcJafx2SK", - "outputId": "d23cee0c-ad63-4934-abd1-854f5605ddb3" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def gaussian(mu,sigma,xr):\n", - " return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2)\n", - "\n", - "xr = np.arange(-6.0,6.0,0.01)\n", - "yr1 = gaussian(0.0,1.0,xr); yr2 = gaussian(1.0,2.0,xr); yr3=gaussian(-2.0,0.5,xr)\n", - "\n", - "fig= plt.figure(figsize=(12,4))\n", - "plt.plot(xr,yr1,label=\"mu=0.0, sigma=1.0\")\n", - "plt.plot(xr,yr2,label=\"mu=1.0, sigma=2.0\")\n", - "plt.plot(xr,yr3,label=\"mu=-2.0, sigma=0.5\")\n", - "plt.plot([-7,7],[0,0],color=\"gray\", linestyle=\"dotted\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "29z5n4TqCt4B" - }, - "source": [ - "こんな感じ。このような形状の分布を示すデータ(量)が世の中には溢れています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UDYHtsge7Pp0" - }, - "source": [ - "指数関数$\\exp$の前についている係数$1/\\sqrt{2\\pi \\sigma^2}$は、 \n", - "この関数をあらゆるxの値で足し上げたときに、その値が1になるようにつけてあります. \n", - "つまり、x軸と関数$f(x)$が囲む領域の面積=xの全区間での積分$\\int^{\\infty}_{-\\infty}f(x) dx $が1になります. \n", - "\n", - "こうしておけばどの$\\mu,\\sigma$を持つ正規分布を考えたときにでも、 \n", - "「どこからどこまでの区間の面積が全体に占める割合が何%だ」といった表現が可能になります。 \n", - "つまり、確率として扱いやすくなります。\n", - "\n", - "> ちなみに関数$\\exp{\\left(-\\frac{(x-\\mu)^2}{2\\sigma^2}\\right)}$は、$x$に対する有限区間での積分を解析的に求めることはできず(数値的に求めることはできる)、$x \\in [-\\infty,\\infty]$で積分した場合にのみ、閉じた形で書き下すことができます。 \n", - "その際、積分値$\\int^\\infty_{-\\infty}\\exp{\\left(-\\frac{(x-\\mu)^2}{2\\sigma^2}\\right)}$が、$\\sqrt{2\\pi \\sigma^2}$になります。 c.f. ガウス積分\n", - "\n", - "以下では$\\mu=0.0$, $\\sigma=1.0$のみを考えることにして、もう少し正規分布の特徴的な性質について見てみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "q9MT3YZ2_xZQ", - "outputId": "3d8809db-b465-4bef-f591-67728484e5b2" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "def gaussian(mu,sigma,xr):\n", - " return np.exp(- (xr-mu)**2 / (2.0 * sigma**2) ) / np.sqrt(2.0*np.pi * sigma**2)\n", - "\n", - "fig= plt.figure(figsize=(14,4))\n", - "axs = [ fig.add_subplot(131),fig.add_subplot(132),fig.add_subplot(133)]\n", - "xr = np.arange(-5.0,5.0,0.01)\n", - "yr = gaussian(0.0,1.0,xr)\n", - "for i in range(3):\n", - " axs[i].plot(xr,yr,label=\"mu=0.0, sigma=1.0\")\n", - " axs[i].plot([-4,4],[0,0],color=\"gray\", linestyle=\"dotted\")\n", - "x_sig1 = np.arange(-1.0,1.0,0.01)\n", - "x_sig2 = np.arange(-2.0,2.0,0.01)\n", - "x_sig3 = np.arange(-3.0,3.0,0.01)\n", - "axs[2].fill_between(x_sig3, 0.0*x_sig3, gaussian(0.0,1.0,x_sig3),color=\"green\",alpha=0.9)\n", - "axs[1].fill_between(x_sig2, 0.0*x_sig2, gaussian(0.0,1.0,x_sig2),color=\"blue\",alpha=0.9)\n", - "axs[0].fill_between(x_sig1, 0.0*x_sig1, gaussian(0.0,1.0,x_sig1),color=\"red\",alpha=0.9)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "407lr-tuAn6f" - }, - "source": [ - "上の図では、$\\mu \\pm 1\\sigma$, $\\mu \\pm 2\\sigma$, $\\mu \\pm 3\\sigma$の領域での正規分布とx軸とが囲む領域を、それぞれ赤色、青色、緑色で塗りつぶしました。 \n", - "(1シグマ, 2シグマ, 3シグマと呼んだりします)\n", - "\n", - "これらが占める面積は、それぞれ0.6827, 0.9545,0.9973(いずれも\"約\")となり、 \n", - "68%,95%,99%区間などと呼ぶことも多いです。 \n", - "このことは、任意の$\\mu,\\sigma$を持つ1次元の正規分布について成立します。\n", - "\n", - "正負の値をとる$x$(たくさんの人のなんかの得点とでも思ってください)の分布が \n", - "平均0.0,標準偏差が1.0の**正規分布に従っている場合**(理想的な場合)なら、 \n", - "全体の68%程度の人の得点は1シグマ領域(赤)、 \n", - "つまり-1から1までの間に分布していることになります。\n", - "\n", - "もちろん、実際の場合、分布は真には正規分布になっていないので、 \n", - "平均と標準偏差を計算したときに、いつでも1シグマの中に \n", - "全体の68%が分布しているわけではありません。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "g3oE50i_s5g0" - }, - "source": [ - "### $\\clubsuit$ おまけ: 多変数正規分布\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "a30dQ8kttEdq" - }, - "source": [ - "上の正規分布の考え方を拡張して、多変数の場合を考えることもできます。\n", - "\n", - "2つ以上の変数であることを明示的に表すため、\n", - "多次元正規分布や多変数正規分布などと呼ばれることが多いです。\n", - "\n", - "1次元の正規分布が、中心と分散(あるいは標準偏差(分散の平方根))で特徴づけられたのに対し、\n", - "多次元正規分布は、中心(ベクトル)と共分散(行列)によって特徴づけられます。\n", - "\n", - "$N$個の変数が、\n", - "平均を$\\boldsymbol{\\mu}$,共分散を$\\Sigma$とする$N$次元正規分布に従うとき、\n", - "$\\boldsymbol{x}$の確率密度関数は\n", - "\n", - "$\\frac{1}{\\sqrt{(2\\pi)^N |\\Sigma|}} \\exp{\\left( -\\frac{1}{2}(\\boldsymbol{x}-\\boldsymbol{\\mu})^T \\Sigma^{-1} (\\boldsymbol{x}-\\boldsymbol{\\mu}) \\right)}$\n", - "\n", - "で与えられます。\n", - "\n", - "注) $x$←がGoogle ColabのTeXだとうまく太字にならないが多成分(ベクトル)のつもり\n", - "\n", - " \n", - " \n", - "二次元の場合に、適当な$\\mu$と$\\Sigma$を取って、多次元正規分布からサンプルしてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "eEhR7h_Q_sG-" - }, - "outputs": [], - "source": [ - "mu1 = [ 3.0, 2.0]\n", - "cov1 = [ [1.0, 0.7],[0.7,1.0]]\n", - "mu2 = [ -2.0, -0.5 ]\n", - "cov2 = [ [0.6, -0.3],[-0.3,1.0]]\n", - "numS = 50000\n", - "\n", - "sample1 = np.random.multivariate_normal(mu1,cov1,numS)\n", - "sample2 = np.random.multivariate_normal(mu2,cov2,numS)\n", - "\n", - "x1, y1 = sample1.T\n", - "x2, y2 = sample2.T" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Lk-DKB0TIBcH" - }, - "source": [ - "散布図にすると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "oF_6fwL3H_wv", - "outputId": "433f20dc-c446-400a-d9e9-5f8f1280a5a7" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig= plt.figure(figsize=(10,5))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\");ax.set_ylabel(\"y\")\n", - "ax.scatter(x1,y1, s=5,color=\"green\", alpha=0.2,label=\"sample 1\")\n", - "ax.scatter(x2,y2, s=5,color=\"orange\", alpha=0.2,label=\"sample 2\")\n", - "ax.scatter(mu1[0], mu1[1], marker=\"x\", color=\"blue\", alpha=0.9,label=\"mean 1\")\n", - "ax.scatter(mu2[0], mu2[1], marker=\"x\", color=\"red\", alpha=0.9,label=\"mean 2\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4oNT4TCKF7R0" - }, - "source": [ - "こんな感じ。\n", - "\n", - "二次元のヒストグラムにすると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "cps0KeLqF85P", - "outputId": "62f898f6-3787-4f81-ac0c-61d83d8d7542" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsYAAAEWCAYAAABlvlEHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de7xcdXnv8c+XEEDucotAqKFyUUQESoEWayOoIKKoxwvaIlB6IqfSY5BTBWwPnqOeYi8GW31RU6FARZGiFErxAkgOpS2Uq9wCEiBIMJAT5Fqugef8sdaGIVnPZM/O7L3mN/N9v177lT3PrFnz27dnflnze36PIgIzMzMzs1G3VtsDMDMzMzMbBJ4Ym5mZmZnhibGZmZmZGeCJsZmZmZkZ4ImxmZmZmRngibGZmZmZGeCJsRVI0pmSvtj2OMzMbPWcs60knhjbUJN0rKTrJD0r6cy2x2NmZs0krSvpdEn3SXpC0k2S3tX2uGy0rN32AMwm2S+ALwIHAq9qeSxmZpZbG7gf+G3g58DBwHmS3hQRi9scmI0OXzG2nkn6rKQH6v/R3ynpAEl7S/p3SY9KWirpa5LW6XhMSPoDSXfVj/uCpNdJ+jdJj0s6b+x4SbMlLZF0kqTlkhZL+p0u4zmkvrLwaH2+3cbui4jvR8Q/Ag9P6jfFzGxAlZKzI+I/I+LzEbE4Il6MiIuBe4Ffm+zvkdkYT4ytJ5J2Bo4Ffj0iNqK6ErsYeAE4DtgC+A3gAOAPVnr4gVQJbl/gM8B84HeB7YBdgY92HPua+lzbAkcA8+vnXnk8ewBnAJ8ANge+AVwkad01/2rNzMpWcs6WNAPYCbit96/cbGI8MbZevQCsC+wiaXr9P/u7I+L6iLg6IlbUb3l9g+rtsE5/FhGPR8RtwK3AjyPinoh4DPgBsMdKx/9JRDwbEf8X+Gfgww3jmQN8IyKuiYgXIuIs4FmqRG5mNuqKzNmSpgPnAGdFxB1r9B0w64EnxtaTiFgEzAU+DyyTdK6kbSTtJOliSQ9Kehz4P1RXDzo91PH50w23N+y4/UhE/GfH7fuAbRqG9Frg+PotuUclPUp1NaPpWDOzkVJizpa0FvD3wHNUV7vNpownxtaziPh2RLyFKsEF8GXgNOAOYMeI2Bg4CdAaPM2rJW3QcftXqArpVnY/8KWI2LTjY/2I+M4aPLeZ2dAoKWdLEnA6MAP4LxHx/BqMyaxnnhhbTyTtLGn/ej3YM1RXDV4ENgIeB56U9Hrgv/Xh6f6XpHUk/RZwCPAPDcf8LXCMpH1U2UDSuyVtVI93bUnrAdOAaZLWk+TdWMxsJJSWs6km7G8A3hMRT/dhTGY98cTYerUucAqwHHgQ2Ao4EfgfwMeAJ6gS33fX8HkeBB6huuJwDnBM0zqziLgO+K/A1+rjFwFHdhzyx1QvBCdQFY08XcfMzEZBMTlb0mupivJ2Bx6U9GT9ke5wYdZvioi2x2D2CpJmA9+KiJltj8XMzLpzzrZh4ivGZmZmZmZ4YmxmZmZmBngphZmZmZkZ4CvGZmbWA0nTJN0o6eK2x2Jm1m9FbVslrR+wadvDMLM1tnR5RGw50UfvIMVT430m+FFEHDTR57JVfApYCGy8ugOds82GycTzdkk5u6iJcZVgP9H2IMxsjX3+vjV59FOMPxN8ftVuXjZBkmYC7wa+BHx69Y9wzjYbHhPP2yXl7MImxmZmVXsuJ69WnAp8hqo5RCNJc4A51a1NpmRQZjbYSsrZpYzTzOwlawGvansQI0bSIcCyiLi+3re2UUTMB+ZXj9nG1d1mVlTO9sTYzIojYHrbgxg9+wHvlXQwsB6wsaRvRcTvtjwuMxtwJeVs70phZsUZe1tuPB/WHxFxYkTMjIhZwGHATzwpNrPxKClne2JsNjQGNc3039jVh/F8mJlZu/qds1feNlLS9pKukbRI0nclrVPH161vL6rvn7W6c3tibGbFKenqwzCKiAURcUjb4zCzMkxCzh7bNnLMl4F5EbED8AhwdB0/Gnikjs+rj+vKE2MzK46vGJuZlaOfObtj28hv1rcF7A+cXx9yFvC++vND69vU9x9QH5/yBRUzK05JFc5mZqOux5y9haTrOm7Pr3e7GbPytpGbA49GxIr69hJg2/rzbYH7ASJihaTH6uOXZ0/uibGZFaefFc6SFgNPAC8AKyJiL0mbAd8FZgGLgQ9HxCP1lYavAgdT7Vl/ZETc0KehmJkNpR5z9vKI2KvxPOPcNnJNeCmFmRWpz+vV3hYRu3ck4xOAyyNiR+Dy+jbAu4Ad6485wGlr+nWYmY2CPuXssW0jFwPnUi2h+CqwqaSxh88EHqg/fwDYDqC+fxPg4W5P4Imx2dBYkXxs1OWjTFOwxrhzXdrK69XOjsrVVMl464k/jZnZ8OtXzk62jfwd4Argg/VhRwAX1p9fVN+mvv8nEdG18ZAnxmZWnB4rnLeQdF3Hx5yVThfAjyVd33HfjIhYWn/+IDCj/vyl9Wq1zrVsZmbWYAp2Evos8GlJi6jWEJ9ex08HNq/jn+bld/9SXmNsZsXpsZAjXa9We0tEPCBpK+BSSXd03hkRIcmtjc3MJmgyCqYjYgGwoP78HmDvhmOeAT7Uy3k9MTaz4vSz+C4iHqj/XSbpAqrk+pCkrSNiab1UYll9+Evr1Wqda9nMzKyBW0KbmU2ifr0tJ2kDSRuNfQ68E7iVV65LW3m92sdV2Rd4rGPJhZmZNSipKdMgjMGsUL3++axI4tkbTE/3eP7MExN4TPa1ZV/D1Orj1YcZwAX1fu9rA9+OiB9KuhY4T9LRwH3Ah+vjL6Haqm0R1XZtR/VnGGZmw6ukK8aeGJtZccauPqypel3amxviDwMHNMQD+GQfntrMbGT0K2dPhVLGaWb2kpKuPpiZjbqScnarE+OmjlNtjsfMyiDcEtrMrBQl5exBuGL8tohIe1abma1MwPTxZq/BWBZtZjaySsrZgzAxNjPriQRrF5JkzcxGXUk5u+2J8VjHqQC+ERHzVz6g7kRVd6PaZEoHZ6Mma5Hcr90hsjeSem3NnP3ZZuPstrLr+SSeZabB2K1CgunTpvQpzdZQv/52+rUbjtnUKSlntz0xXqXjVERc2XlAPVmeDyBt4+5TZtbb1QfrG0nrAVcC61K9fpwfESe3OyozG3Ql5exWh5l0nLqy+6PMbNRJMH3dtkcxkp4F9o+IJyVNB66S9IOIuLrtgZnZ4CopZ7fW+a5Lxykzs+5KaqM0RKLyZH1zev3hd/LMrLuCcnabQ2jsONXieMysFCXtFj9kJE0Drgd2AL4eEdesdL/rQszslQrK2a0NM+s4ZTb5sl/7rHXyVkm812K3rNAtOz4rysvGuXES/2USh2IyVZOCh16yiHgB2F3SplQXN3aNiFs77nddSKNeC1on+/wuyrMpVkjOLmSYZmYdBBRS4TysIuJRSVcAB+FlcGbWTUE5u7U1xmZmE1bQerVhImnL+koxkl4FvAO4o91RmdnAKyhnD8AQzMx6JKoNw2yqbQ2cVa8zXgs4LyIubnlMZjboCsrZnhibWXkKKuQYJhFxM7BH2+Mws8L0MWdn+6lLOhP4beCx+tAjI+ImVbs8fBU4GHiqjt+Qnd8vLVa4fhaW7JDEH0ris5L4Zkk8K5p7PIlnX1vWQS87f3Y85AWBmQEp2PHE2Fo1kV++Xotye9VrLuxXB71u5xmQfGHt62/ObtxPvb7vjyLi/JWOfxewY/2xD3Ba/W8jv7SYWZkKKeQwMzP6lrMjIoBe9lM/FDi7ftzVkjaVtHVELG062MV3Zlaeggo5zMxGXm85ewtJ13V8zFnldNI0STcBy4BLO/ZT/5KkmyXNkzS2qnlb4P6Ohy+pY438smFm5fFSCjOzcvSWs5dHxF7dDmjaTx04EXgQWIdqL/XPAv+716H6irGZlWeswnk8H2Zm1q5JytkR8ShwBXBQRCyt29Y/C/wdsHd92APAdh0Pm1nHGnlibGbl8VIKM7Ny9DFnZ/upS9q6jgl4Hy83HroI+Lgq+wKPZeuLGd8QzAZZtuNCt2robNeIrMXznj0+d1Z9nrVszpY63ZXEM1nr525/5v2qiJ9iXkphAyv7+8/0mkd6bS2fyc6T7W6T6ZZr3Y7aav3N2Y37qUv6iaQt62e7CTimPv4Sqq3aFlFt13ZUt5P7pcXMylNQe1Ezs5HXx5yd7aceEfsnxwfwyfGe3xNjMyuPrxibmZWjoJxdyDDNzDoU1F7UzGzkFZSzPTE2s/IUdPXBzGzkFZSzCxmmjY6sECWLb5TEuxV3ZMV0WTHKG7qcq5fnzv7csl1jZifxy5J4VtyXFRV2uy/7fnc71xQqKMnaIOlXG+SJyP6msrzTrZV7kywXZsV0WbFer63ouxX99Zoves2dLuIrRkE5u5BhmpmtxNnLzKwcheTs1odZb7dxHfBARBzS9njMrADelcLMrBwF5ezWJ8bAp4CF5O8Dm5m9UkFvy5mZjbyCcnarne8kzQTeDXyzzXGYWWHcEtrMrBwF5ey25++nAp8hrxpA0hxgTnVrkykZlJkNuIKuPgwTSdsBZwMzgADmR8RX2x2VmQ28gnJ2a8OUdAiwLCKulzQ7Oy4i5gPzq8dsE1M0PJt0vbZlziq3ZyXxbpXS2WOSMW3f5VRNFifxbH1VWlidtXiekcQfTuIT2Umi18dMcdV4QUl2yKwAjo+IGyRtBFwv6dKIuL3tgb1Sr7+PvbaW77X9MvS+g042puxr63VXmiwHz0riTyXxZUkcet+Jw4ZWQTm7zaUU+wHvlbQYOBfYX9K3WhyPmZViLMmO52M8p5OmSbpR0sX17e0lXSNpkaTvSlqnjq9b315U3z+rv1/YYIuIpRFxQ/35E1T1Idu2OyozG3h9ztmTqbWJcUScGBEzI2IWcBjwk4j43bbGY2aFmTbOj/EZKwIe82VgXkTsADwCHF3HjwYeqePz6uNGUv2fgj2Aa1aKz5F0naTr8quMZjZy+puzJ02rxXdmZhPSx6sPKxcBSxKwP3B+fchZwPvqzw+tb1Pff0B9/EiRtCHwPWBuRDzeeV9EzI+IvSJiL1i/nQGa2WAp6IrxAAwBImIBsKDlYZhZKcYqnMdni+rq5Uvm17ULY1YuAt4ceDQixhZ/LuHl5QLbAvcDRMQKSY/Vxy/v9UsolaTpVJPicyLi+22Px8wK0FvObtVATIxtmGW/YlnxxVZJfLckPiuJZ4UlVG/+Ntk8iWd1Nm9M4ouT+D9mA8qKZrJW0VkxzUSK7PpVHDfFrVl7K+RYXl29bDjNOIuArVJfHT8dWBgRX2l7PP2T5aOsYG4ixXfZY7K//+z4bEl3Fs++tqxV9ONJPCuy65JrU722os9kX4MNnIKK7woZpplZh/4l2bEi4IOB9ahmKV8FNpW0dn3VeCYv/y/lAWA7YImktan2kMy2AxlG+wGHA7dIuqmOnRQRl7Q4JjMbdJ4Ym5lNoj61F42IE4ETAeorxv8jIn5H0j8AH6TaMecI4ML6IRfVt/+9vv8nETEy20hGxFVU330zs/ErqCW0i+/MrDyTX8jxWeDTkhZRLbI5vY6fDmxexz8NnDDhZzAzGxX9LZheT9J/SPqppNsk/a863pdtNn3F2MzKI6qFD33UWQQcEfcAezcc8wzwof4+s5nZkOtvzn4W2D8inqyLga+S9AOqixXzIuJcSX9Dtb3maXRssynpMKptNj+SndxXjM2sPGNvyxWwJ6aZ2cjrY86OypP1zen1R9CnbTZ9xdj6JPtVyqqMd0ziOyTxNzSHs3bNs5M4VKVUTfZN4psm8cVJ/IUk/r4kfn4ST793WdOErIV0tx0jpriVc78UVMhhg6TXPJXtGNFt94Rsl4Zs14heWzZnf5tZq/hM9rwPJfFs/Fne6abXVtHZDj2ZQvPaMOstZ69ui00kTQOup5o0fB24mz5ts+mXFjMrk7OXmVk5+rDF5piIeAHYXdKmwAXA69dscC/zS4uZlaegCmczs5E3STk7Ih6VdAXwG/Rpm02vMTaz8hTUXtTMbOT1d1eKLesrxUh6FfAOYCFwBdU2mtC8zSaMY5tNv2yYWXkKai9qZjby+puztwbOqtcZrwWcFxEXS7odOFfSF4EbeeU2m39fb7P5S+Cwbif3xNj6JCsU6bV4JSmyy9o4/3ES77ItzFYH/7wxvnnyzsrCnzU/+a6/eW1j/Nb1fr35if80H1OzrDXr+kk8+15n54GJtZEeAC6+s66yIqvslyZrv5z9fWStorvJxpQVtSVVwtmXsHsSvzOJ75Xk4OWzmuNLkvM8kVUzAyvuSu7IiqxvSeJZYWH2c+uW86wVfczZEXEzDbOCfm2z6ZcWMyuPJ8ZmZuUoKGcXMkwzsw4FJVkzs5FXUM4uZJhmZivxrhRmZuUoJGd7Ymxm5Sno6oOZ2cgrKGcXMkwzsw7elcLMrBwF5WxPjEder78C2W4SWdVwFt+vOfz25PDfbw6/7gO3NcY/mPdZZlrSs/l13N0Y/9lOOzXGL0sHm8i6YF+XxFNZxXWhO0xMREFXH6wfem3x269fjmy3nSe6PGbzJD6rOazkObJW9Flr+UeT+H9N4o3NcMm/pdnxS5M4wOVJ0nske8BuSfyyLk/SJPu5Ze2usy86y6luOd2zgnJ2a8OUtB5wJdX/IdYGzo+Ik9saj5kVpKAka2Y28grK2W0O81lg/4h4UtJ04CpJP4iIq1sck5mVoKAkO0wknQEcAiyLiF3bHo+ZFaKgnN1aS+ioPFnfnF5/pC36zMw6xbTxfVhfnQkc1PYgzKw8peTsVufvdTu/66na4Hw9Iq5pOGYOMKe6tclUDs/MBlSsBc916W5okyMirpQ0q+1xmFlZSsrZrU6MI+IFYHdJmwIXSNo1Im5d6Zj5wHwAaRtfUZ4yWZHdrCSeFNkpKbI7PjnN4c3hubud0hjfOel3msUBtmJZY/ympKfqOjzXGH8iawubFancmsRTWeHHL5N4VpQ3fAUhIVgxbbxveL04qWOxqdDr73CvRXnPJ/GsiKvbeLLcmZzrdcnhWQPbDZP4rObwrh9LWtffs1djfKtfvb8xvuzbv9L8BFsk44G8gHCVS2C1rCM0e/Z4oixHZsXgi5O4i+z6paScPRArPiLiUUlXUL1F1/P0wcxGS0i8sPZ401fzf2xscvhdPjNbWUk5u81dKbYEnq8nxa8C3gF8ua3xmFlZXpg2AIvRbBV+l8/MmpSSs9u8Yrw1cFa9zngt4LyIuLjF8ZhZIQLxQin9Rc3MRlxJObu1iXFE3Azs0dbzm1m5ArGikCQ7TCR9B5gNbCFpCXByRJze7qjMbNCVlLMHYo2xTYVeiwiyopN3JadPCk6yApL3NIeP3+2LjfETklU2W1zzZGOcC5LnhbQt5Rt/v7nz3d9u11wR+NBzWzWf6NLkebOiGRYm8eYiwbxQKCv66dalq0yBeK6U/qJDJCI+2vYYxifLd9N7PE9WADury2N2aA6/Ojl8ux6f4pBnm+NPNv897MN/NMZ3/tWfNcY3TVroPfqx5kq651ineTzAP70meQF4W/KAbybxf0lej1ZkRXmLk/gNSXzjJJ4V8VmvSsrZnhibWXFKelvOzGzUlZSzW2vwYWa2Jl5g2rg+zMysff3K2ZK2k3SFpNsl3SbpU3X885IekHRT/XFwx2NOlLRI0p2SDux2fl8xNrPilLRezcxs1PU5Z68Ajo+IGyRtBFwvaWwR47yI+IvOgyXtAhwGvBHYBrhM0k51L41VeGJsZsWp3pZz+jIzK0E/c3ZELAWW1p8/IWkhsG2XhxwKnBsRzwL3SloE7A38e9PBfmUxs+JUhRx50Y+ZmQ2OHnP2FpKu67g9v94ffRV1i/o9qNog7gccK+njwHVUV5UfoZo0X93xsCV0mUh7YjxUuv04s6rbbCeDmb0df2Ry+Nubw295a/PWDenuE3+V7D7x1eR5k07UQLorxYqkSddlHNAYf+yC1zQ/IOkU3fx/U8grqHvdfWJ0KqgDvJTC6P0lrNe/qez4LA4oybVZe+Qs1b6+ObzOes27UvzWNpc1xt/LRY3xnbizMZ7tSvGPvL8xfju7NMYB5u52SmP8kt0Oboz/7Irdmk/UPCRYnLR4fiT7+WS7MGW5M/v9ynb6yXYxsR5z9vKIaO5Z3kHShsD3gLkR8bik04Av1E/3BeAvgd/rdayeGJtZgbyUwsysHP3N2ZKmU02Kz4mI7wNExEMd9/8tMNY07gFeuTHizDrWyLtSmFlxxrb+8a4UZmaDr585W5KA04GFEfGVjvjWHYe9H7i1/vwi4DBJ60raHtgRkg2+8RVjMyuUJ71mZuXoY87eDzgcuEXSTXXsJOCjknanWkqxGPgEQETcJuk84Haq9TSfzHakAE+MzaxA/dosXtJ6wJVUK8/XBs6PiJPrqwrnApsD1wOHR8RzktYFzgZ+DXgY+EhELF7jgZiZDbF+NviIiKsANdx1SZfHfAn40njO74lxkSbS7jQrLpmVxF/bHM6Wwyedoo/+wNcb49/86bHND0i6Iz99UnP8rv9sju+2f3McIKmlY9HGzV/zv2WVfM0dpKvpVKPHk3i21Ckr5MjiWWHJ8AnEs/1pL/ossH9EPFmvWbtK0g+AT1Pth3mupL8BjgZOq/99JCJ2kHQY8GXgI/0YiE1Er7/zWe7sUkzXqEuRVSSFXOslbY2zwrKktvd1mzUnns/SXOi2Ns0XxrL1nq/5p8ca48c8fGbzgDZvDgPc+56tG+OPJpWID3+j+WQP/0OygUDWQnpBUtG4Yv3kAVmr6Ozn3OvUqdvxo5G3+5izJ53XGJtZcfq1Xi0qY1ueTK8/AtgfOL+OnwW8r/780Po29f0H1OvdzMwsUVJdiK8Ym1lxenxbruuemJKmUS2X2AH4OtV7AY9GxNilnM49L7cF7geIiBWSHqO6ZrZ8ol+Lmdmw6+dSisnmibGZFalfe2LWRRi7S9oUuIB0B1kzM5uoUvae91IKK8Jab53d9f4NZne/34bLWHvR8XyM+5wRjwJXAL8BbCpp7MGde16+tB9mff8mVEV4ZmaWmIycPVk8MbbBt9Vs1r3kCqZ/eV7j3VvPm8frrrjCk+MR0q/1apK2rK8UI+lVwDuoSkCvAD5YH3YEcGH9+UX1ber7fxIR0ecvz8xsqHiN8ThI2o5q26MZVMUu8yMia/Brr5BVsWZtnyHvU5ztVrFjc/gPm8N7f+DKxvhHsi0a7mkOP35UU3QBt//pqew7dy7XPQ8/Ou64l+45+RvzYM5cmH8qr7t9AWxV39Gl0HdFczdSTkyqupfcvkPzA76VPMEz2TNnlc+9tnh229Gqwnmdfpxqa+Csep3xWsB5EXGxpNuBcyV9EbiRajN56n//XtIiqh/QYf0YREkkHUTVjH0a8M2IaP7DGUjZ31r2N5XtYpCdp4ssL+ycxNdrTmJvp7n1890056lj/tuZzedPdvThX5N49vKSnB5g+3OXNsb3OeyaxvjOazW3qZ73keMa48vu/pXmJ87ew7kxex1MdmFiSRLPeMegTB9z9qRr85r1CuD4iLhB0kbA9ZIujYjbWxyTDaixyfC+c+e+dPvAeS9PivmT5sRpwyn61F40Im4G9miI3wPs3RB/BvjQGj9xoer/QHyd6sr6EuBaSRc5b5tZN/3K2VOhtVFGxFJgaf35E5IWUlV8O8Fao87J8dgE2ZPi0TUIb7mNoL2BRfV/HJB0LtUWds7bZtZVKTl7INYYS5pFddVmlfdXJM2RdF213dJTUz00GzCdyygAT4pHVEnr1YbMS9vV1Tq3sjMza1RSzm59YixpQ+B7wNyIWKU1WETMj4i9qu2WsvVeNioOnLdSAd4XmgvybLiVlGRHjS9mmNnKSsrZrS74qFuwfg84JyK+3+ZYypIVECQtR4G0mG6HPZvjzZ084S3NBfi/RXPx3Tt+elVj/PnGIjvYePvm+McWwhbz5vHquXN55NRTWX7ccS/dBla9cnx883kA/vfGzf2lb+FNzQ/4YXKiJ5N4ZNUrWevnXltCW0ntRYfMS9vV1Tq3sgOqixnAfABpm5Z27Mhe2p5I4lkxXTaxn0Chc9b6+bYkvnZzK+dFvK4x/gm+0XyeJPU/lOTIrOR3URJ/T1LMDKTtoo9JKvb+9bBfa4x/N+m6vmzTpPgu24n8xunJHck3ifuS+M1JvNfiThiVwryScnabu1KIqsJ7YUR8pa1xWBlWnhQDLD/uOF69PlUBHnhZxQgpqYvSkLkW2FHS9lQT4sOAj7U7JDMbdCXl7DavGO8HHA7cIummOnZSRFzS4phsEO09e5VJ8UvGJsNz5sIPL4R/XTDlw7N2lJJkh0ndBvtY4EdU27WdERHZNU8zs5eUkrPb3JXiKkBtPb8V5D8WsORtb+PpBQua7/+T4zwpHjGBimkvOmzqixe+gGFm41ZSzl5t8Z2kP5T06qkYjFkmnRSP8aR4pJTUXrQNzttmNkhKytnj2ZViBtUm7udJOqheG2xm1qpSKpxb4rxtZgOllJy92ql5RPyxpD8B3gkcBXxN0nnA6RFx92QP0JpkFdEzujymxxamv9scfuev/lNj/L00x/lFc/jpZ5P4vc3xHQ9vjmfjPGvXDycPgF+wTWP87m+/sfkBX0tOdP9dyR1ZXXcWfz6JWyYQzxXSXrQNztu9VvpnL4XZjjHdJLtSPDGzOf5gcpqLmyv4b5qzSqNGAO5/xWYhL3vjY80/7hnJRgznJGmt8/DNZ8/m4fpdvBsacvyGs2fz5IIFPJ/k/33+pjm+3xuub4wf/ua/b4w/+wfN36OFGzZ/j9Lv9b8k8RXZ70W2i8XiJN5tV4rsOYZrt4p+5mxJ2wFnU016ApgfEV+VtBnwXWAW1Q/jwxHxSH1h4KvAwVRbzRwZETdk5x/XPsYREVS/Ug9S/bReDZwv6c8m+HWZmU3Y2Hq18XyMKudtmwybz57Nb15xBW9ceU/52sx589jpiivYcPbsqR2YDbQ+5+wVwPERsQuwL/BJSbsAJwCXR8SOwOX1bYB3Uf1vZkdgDnBat5Ov9oqxpE8BHweWA98E/iginpe0FnAX8JnxfBVmZv0ytl7Nmjlv22R5eMEC7jn1VH613kP+0Y6dgmbOm8dWc+ey7NRTeXJ1dSE2UvqZsyNiKWEw+bcAABznSURBVLC0/vwJSQupOnAeCsyuDzsLWAB8to6fXV8suFrSppK2rs+zivGMcjPgAxHxip2uI+JFSYf0/iWZma25QViLNsCct23S3FZPhn917lyWAUuOO+4Vk+IlK2+raUZPOXuLqnPmS+bXjYNWIWkWsAdwDTCjY7L7IC+vL81a2U9sYhwRJ3e5b+HqHm9m1m8lbRbfBudtm2ydk+Ot6qvHnhRbpsecvTwi9lrdQZI2pOqePDciHu+sMY6IkDShzpt+L3JK9brIPmvxnBXSdWsJ/Ybm8G8kh7+lOTyDhxrjb73jP5of8OXm8MafSJ63uS6uWkXU4Nq37toY/3s+npwILv+jdzff8aPkAfdmhRPLkvjDSTwrshuuIoupUNKemNYPvebOXl/aslbRWU5dv8u5koK9jZLiu6RtMps0hx96aKvG+O0zdmmMH/ipBY1xvan5/J9OWkV/5eerxu467jg+XU+KAU5baVJ8cvNQIfuv2dXN4QPf3Jycs2KuE3dOiu9mJc97SxJfnrxupg+YSI4fjWlYv3O2pOlUk+JzIuL7dfihsSUSkrbm5Rfp1bay7zSu4jszs0FSVTivO64PM5scs1cqwDswKcgz62fOrneZOB1YGBFf6bjrIuCI+vMjgAs74h9XZV/gsWx9MYzKf1XMbKh4KYVZu2bPm8eec+dy9amn8qPjjuPAefPYt756/CMvp7CV9Dln7wccDtwi6aY6dhJwCnCepKOB+4CxfVsvodqqbRHVdm1HdTu5J8ZmViRPjM3aMTYpvqGeFMPLk2FPji3Tr5wdEVcBWdOiAxqOD+CT4z2/J8ZmVhyvMTZrx3azZ780KV6w0uS3c3J854UXwu0LWhihDaKScrYnxgMhK6bLfjzdOtxlHm8OH9bcRW/DWcsb45snhWWRFFnoS8lwmhsc8fP/3nyia9inMf5Nfr8xfvlXkgI7qJbrN7k360yXVYpk8axYz0V2/eJ9jEdNr387vR7fY2fQtMAW0s53jySFWXdOb45f0xx+8VUbNMYve+8qF8oAOHizf26Mv37j+xrjNJ/+5Qy8YAG3vu1tPL1gAfsAl6103I+OO447L7yQxQsW8N3mU/GR/ZI7kud+Kvn5/Bu/2RjffZ/mKr6bjk2quGcl41meFdNlP/9tk/gdSRwg+fmnynwdKSlnlzFKM7MObglt1p7HVtO8Y7Gbe9hKSsrZnhibWXFKelvOzGzUlZSzPTE2syKV8racmZmVk7PLGKWZWQdv12ZmVo6ScrYbfJhZccaS7Hg+rD8kfUjSbZJelLTadq1mZmNKytmtXjGWdAZwCLAsIpp7+46E7MfQvGNEfnyXyuodknM90xyesX5z6+esOnjBZs29pd+0X3PrzBv3270x/m1+pzF+Hb/WGL/1jF9vjHNrcxiAe7M7kjLwtAo4230ii2cVzjYRpaxXGyK3Ah8AvtH2QPqvn3+bWbvgpL30/bs1x29qDmc7KPzLU29tjC9ef/vG+NPvbG5rvceRzbvt7Jds2pOkeAAeuCS549kknrTH3uuXzQn9dZvd3Ri/k52bT/SO5Hm/lcTTHaCy1+asy3C3XU8m0ka6TKXk7LaXUpwJfA04u+VxmFlBXmQtt3ueYhGxEKDqxmpmNn4l5exWJ8YRcaWkWW2OwczKNAhvudmqJM0B5lS3Nml1LGY2OErJ2W1fMV4tJ1kzW1lJhRwlkXQZ8JqGuz4XEReO5xwRMR+YX51vm+jj8MysUCXl7IGfGDvJmtnKgnLWq5UkIt7e9hjMbPiUlLMHfmI8XLLF9NlC/mxRfrKQf/s35E+dFR0kxXfZL/Dt7NIY/zuOaow/lBQvPJG0Tf33XzS3+OTMZG3S15rDLM0K4ABuSOLNBYd5MV3WQtomXzntRa1k2e9Yt/ySFNmlLeSTAq8rkvh6zeEnZ2zRGD/mI6c1xt/LPzXGd/rUCY3xDe54sfmJm+uoAdj28OSOy5N4UoJ//mbvaYzfyU6N8UfZtPlEyfeOJ5N4Kiumy4r1sjjAzb0+eaHKydlljNLMrENJb8sNC0nvB/4a2BL4Z0k3RcSBLQ/LzApQUs5udR9jSd8B/h3YWdISSUe3OR4zK0MgnmWdcX10I2k7SVdIur3eo/dTdXwzSZdKuqv+99V1XJL+StIiSTdL2nMKvtyBEBEXRMTMiFg3ImZ4Umxm49WvnD0V2t6V4qNtPr+ZlSn697bcCuD4iLhB0kbA9ZIuBY4ELo+IUySdAJwAfBZ4F7Bj/bEPcFr9r5mZJfqYsyddGaM0M1tJP96Wi4ilwNL68yckLQS2BQ4FZteHnQUsoJoYHwqcHREBXC1pU0lb1+cxM7OEl1KYmU2SHtuLbiHpuo6POU3nrPdU34OqBeKMjsnug7xcPbMtcH/Hw5bUMTMzS/SzJbSkMyQtk3RrR+zzkh6QdFP9cXDHfSfWy9/ulLTaJWC+YjylskrWHnefyKqe7+3S1vSO6c3x/9ccvm/W6xvja//mC43xu9mhMb70+83tSHm0OcyCJH5xEn9kcXJH1poTqrlMk2yXiW4V6NaGQLzw4rivPiyPiL26HSBpQ+B7wNyIeLyzu1tEhCRvFTnUem373q3Fb6+PuSyJN+/EwNXJLkZJTr1vo+Zc/tc7NMdv2elNjfGT3vyl5id4c3MY4B1XXtV8x/9pDi/acmZj/Bds3Rhfm+bXo2U/+ZXmJ3iiOZx3X85+lrOS+L8m8WzHI4DktTlVZqvoHnP26pxJc9fkeRHxF50BSbsAhwFvBLYBLpO0U0Q0//LgibGZFSheFM8+05/2opKmU02Kz4mI79fhh8aWSEjaGlhWxx8Atut4+Ey6/y/MzGzk9TNn99g1+VDg3Ih4FrhX0iJgb6qNHxp5KYWZFSdCvLBi2rg+ulF1afh0YGFEfKXjrouAI+rPjwAu7Ih/vN6dYl/gMa8vNjPrrsecPa7lbw2OrXcLOmNsJyEmsPzNV4zNrDzBaie947QfcDhwi6Sb6thJwCnAefUWkvcBH67vuwQ4GFgEPAVJZxszM3tZbzl7tcvfGpwGfKF6Jr4A/CXwez2eA/DE2MwKFCFWPN+XXSmuApTcfUDD8QF8co2f2MxshPQrZ+fnj5cWckv6W16uTOp5+ZsnxpMi+7ZmxRfZ4vustWhSEKAui/izYrfs9/RvmsN3L35j8x2LkvMkLae5usf401k71cVJPBsQ5MWOWWWGDR7x4gtOX9aWbgW5vRbfZe/qJoVcj7yrOZ7l2qT+jZuawws+eFBj/N6dZjXG9+L65Angkre+uzG+Ls82xp9go8b4RkluvpnmQkHuSAaUvQ723BI6K6br9TW+m2Er+p7cnL3StpnvB8Z2rLgI+Lakr1AV3+0I/Ee3c/mVxczKE0B/llKYmdlk62POrrsmz6Zai7wEOBmYLWn3+pkWA58AiIjbJJ0H3E61pccnu+1IAZ4Ym1mJXhQ84/RlZlaEPubspGvy6V2O/xKQ7De4Kr+ymFmZytzO08xsNBWSsz0xNrPyBMUkWTOzkVdQzvbE2MzKU1CSNTMbeQXlbE+Mp1RWZZrtPjGjt+O7Na3N1rw/nMRnJfFTkng21LuT+L03JHdkO0bcksQzXdpje/eJ8gXdf8RmfTGRV/LmnRXg8SSevQxnz/395vCNs5L4ns3xHZLTP9gcvu/I5hbS9y1ujgPM/sAPG+Pr8Fxj/E52an6Of0ueI9t94sYkfnkSf00SX5r9zLKdRLrthpTJXo+y36NCX78KytmeGJtZeQKSHZ/MzGzQFJSzPTE2s/IU9LbcsJD058B7gOeo3gs6KiKynWHNzF5WUM5eq+0BmJn1bCzJjufD+uVSYNeI2A34GXBiy+Mxs1IUlLNbnRhLOkjSnZIWSTqhzbGYWUEKSrLDIiJ+HBFj39GrqVqrmpmtXkE5u7WlFJKmAV8H3gEsAa6VdFFE3N7WmCZf1i4yW+CftfPutVgDuC577qRq7sZklXzWdvqWJcn5s+qIbBX+4iSetdTMWnPaUCvobbkh9XvAd5vukDQHmFPd2mTqRjQpJpBr0+Ko7Fy/TOJZUXaWO7Pi7iRHLkpy/zeT02R1Zc0dpAFYcHZy5/LkARsm8WuT+J1JPCsszH402XjSB2TfjIm0cc5em4esJXRBObvNNcZ7A4si4h4ASecCh1K17TMz666QJFsSSZfRXKP/uYi4sD7mc1Tf/XOazhER84H51bHbdNsrx8xGSSE5u82J8bbA/R23lwD7rHzQcF19MLO+eBF4pu1BDJ+IeHu3+yUdCRwCHBARnvSa2fgUlLMHflcKX30ws1UU9LbcsJB0EPAZ4Lcj4qm2x2NmBSkoZ7c5MX4A2K7j9kzyRbVmZi8rKMkOka8B6wKXSgK4OiKOaXdIZlaEgnJ2mxPja4EdJW1PNSE+DPhYi+Mxs1IUlGSHRURkJU1mZt0VlLNbmxhHxApJxwI/ompYfEZE3NbWeCZmsr992buVWaVsVt0KeYVr1mo5eQ2MxV2eoxfZebK/nKxyO1PIX6BNnH/ENumyX7J+5v4sN2c5L8vz6yfxHt+IfTrZDePqZGegu7qcq9dOZ7OSePZjyDbo+LskvkX2xAuT+OIk/nASz36W2c5TABv3eK6J7JQyIAoYIrS8xjgiLgEuaXMMZlaggq4+mJmNvIJy9sAX35mZreJFhm6bTzOzoVVQznZLaDMrTwAvjPPDzMza1cecLekMScsk3doR20zSpZLuqv99dR2XpL+qOyzfLGnP1Z3fE2MzK1Mh7UXNzIx+5uwzWbXn4gnA5RGxI3B5fRvgXcCO9ccc4LTVndxLKdZI9hPsVgTXi14X8ndrj5wt8M9+BbKivOy5syqI7HvUa9tUz3CsQ0Hr1WwYTeSXr9fclsWz14WsCi7L2dl5XtscfmRZEt82OQ9A0nY682QSf6TXNtjJa/Dy7DWyW3Fck6QQMX0dzI7v9phMoYmvjzk7Iq6UNGul8KHA7Przs4AFwGfr+Nl1Q6KrJW0qaeuIWJqd3xNjMyuPJ8ZmZuWY/Jw9o2Oy+yAv/6+sqcvytoAnxmY2RApqL2pmNvJ6y9lbSLqu4/b8ugvyuERESJpwp2RPjM2sTL5ibGZWjvHn7OURsVePZ39obImEpK2BsbU/PXdZdvGdmZVn7G05F9+ZmQ2+yc/ZFwFH1J8fAVzYEf94vTvFvsBj3dYXg68Yr6Hs29frZn29nif7zUk6FgF5B59MVhCQFc31WnyX8a+kjUPQe82KWat67aLXY2FZep5eC86yjntZJ9ZuRd9Z8V3ytT2SvYZl58meO0sO2deWXUDMfga9vsZ3K8jvtatrofqYsyV9h6rQbgtJS4CTgVOA8yQdDdwHfLg+/BLgYGAR1S/xUas7v2chZlaesT0xzcxs8PUxZ0fER5O7Dmg4NoBP9nJ+T4zNrDzelcLMrBwF5WxPjM2sPEEx7UXNzEZeQTnbE2MzK4+XUpiZlaOgnO1dKcysPH2scJZ0hqRlkm7tiG0m6VJJd9X/vrqOS9JfSVok6WZJe/b7SzMzGzoF7STkK8ZrpNefYFaSmf0YsjaSvbb47HZfv3bW6Ndv8wD8Vdjg6+96tTOBrwFnd8ROAC6PiFMknVDf/izwLmDH+mMf4LT636En6QtU7VVfpNoj9MiI+EW7oxoGvf4i92u3imyHoV53eujW7jhrUz0ziS/qMZ7ZKIkvTOLZ97TX1+BMt9fTXluFF6qgNca+Ymxm5Rnb+mc8H6s7VcSVrLpn0qHAWfXnZwHv64ifHZWrgU3rzeRHwZ9HxG4RsTtwMfA/2x6QmRWijzl7svmKsZmVafzr1SbSXnRGxybwD/LyRqrbAvd3HLekjnXdMH4YRETnZbINqF7qzMzGp5A1xp4Ym1l5XgSeGffRE2kv+pKICEmeBAKSvgR8HHgMeFtyzBxgTnVrk6kampkNst5ydqtaWUoh6UOSbpP0oqQJv2CZ2Yia/LflHhpbIlH/u6yOPwBs13HcTPK2WcWRdJmkWxs+DgWIiM9FxHbAOcCxTeeIiPkRsVf1n5H1p3L4ZjaovJRitW4FPgB8o6XnHzD9KnTLiim66fVXoJDV8zbcJn/rn4uAI6jajB4BXNgRP1bSuVRFd491LLkoXkS8fZyHnkPVavXkSRzOiOu1KKtfm8RmxXcbJ/GJ/L8wK2rLzpUV02UFh9nXkH3vuhUQ9sNEXjeHrCivoO3aWpkYR8RCAEltPL2ZDYM+vT5I+g4wm2ot8hKqyd4pwHmSjgbuAz5cH34JcDBVmfxTwFH9GcXgk7RjRIxtM3AocEeb4zGzwhQypx/4NcZer2Zmq+jj1j8R8dHkrgMajg3gk/155uKcImlnqtWC9wHHtDweMytFQdu1TdrEWNJlwGsa7vpcRFzYEG9UV4/Pr865jQtgzKyoQo5hERH/pe0xmFmhCsrZkzYx7mGtmplZbwq6+mBmNvIKytkDv5TCzKxRIUnWzMwoJme3MjGW9H7gr4EtgX+WdFNEHNjGWKZWr78V2S4TWSVuN0NW4WqjbWzrH7OhNWi5Odv1ots0IntM1lI52/li5caUY7LXwux7l51nsyTerx2jJmLQfv5rqKCc3dauFBcAF7Tx3GY2BAra+sfMbOQVlLO9lMLMylPQejUzs5FXUM72xNjMyvMi/etnYGZmk6vPOVvSYqr1pi8AKyJiL0mbAd8FZgGLgQ9HxCO9nruVltBmZmvshXF+mJlZ+/qfs98WEbtX7ecBOAG4PCJ2BC6vb/fMV4yLNJEV7IW8h2E2Xt7V3GwAZEXiE5EV5fX6+tXrpcnsebPivmzqlH0vuk21Rui1efJz9qFUXUwBzgIWAJ/t9SS+YmxmZmZmg2ILSdd1fMxpOCaAH0u6vuP+GRGxtP78QWDGRJ7cV4zNzMzMbFAs71gekXlLRDwgaSvgUkl3dN4ZESFpQteofcXYzMzMzIoREQ/U/y6j2v53b+AhSVsD1P8um8i5PTE2swKNlTiP58PMzNrVv5wtaQNJG419DrwTuBW4CDiiPuwI4MKJjNRLKcysQAW1UTIzG3l9zdkzgAskQTWP/XZE/FDStcB5ko4G7gM+PJGTe2JcpBGqYjVrVNBu8WZFyf6upuLvLXuObKqSXV3sdazZ8ZN9/lHSv5wdEfcAb26IPwwcsKbn98TYzArkK8ZmZuUoJ2d7YmxmBSonyZqZWTk52xNjMytQ4MK6dkg6HvgLYMuIWN72eMysBOXkbE+MzaxAXmPcBknbUVWA/7ztsZhZScrJ2Z4Ym1mBynlbbsjMAz7DBLdBMpuYXidU2dSmjInZcConZ3tibGYFKufqw7CQdCjwQET8tN4mKTtuDlC3aN1kSsZmZoOunJztibGZFaicqw8lkXQZ8JqGuz4HnES1jKKriJgPzK/Ot82EWrKa2bApJ2e3MjGW9OfAe4DngLuBoyLi0TbGYmYlKufqQ0ki4u1NcUlvArYHxq4WzwRukLR3RDw4hUM0syKVk7Pbagl9KbBrROwG/Aw4saVxmFmR3BJ6KkXELRGxVUTMiohZwBJgT0+KzWx8ysnZrVwxjogfd9y8GvhgG+Mws1KV87acmU2WyS6yK+MKZxnKydmDsMb494DvZne6kMPMmvlFqy31VWMzsx6UkbMnbWLcrYgjIi6sj/kc1XfqnOw8LuQws1WVc/XBzMzKydmTNjHOijjGSDoSOAQ4ICI84TWzHpSTZM3MrJyc3dauFAdRbRL/2xHxVBtjMLOSlVPhbGZm5eTsttYYfw1YF7i03vrn6og4pqWxmFlxxiqczcxs8JWTs9valWKHNp7XzIZFOW/Lmdlk6dcVSLeQnnzl5OxB2JXCzKxH5bwtZ2Zm5eTsthp8mJmtgbGrD+P56E7SQZLulLRI0gmTNmQzs5FVTs72FWMzK1B/rj5ImgZ8HXgHVTe3ayVdFBG3r/HJzcysVk7O9sTYzArUt0KOvYFFEXEPgKRzgUMBT4zNzPqmnJxd2MR46XL4/H1tj2INbQEsb3sQk8RfW5na+Npeu2YPX/oj+PwW4zx4PUnXddyeXzcOAtgWuL/jviXAPms2NntZX3L2IP3teSzNPJZmwzaWNcjb5eTsoibGEbFl22NYU5Kui4i92h7HZPDXVqYSv7aIOKjtMdjq9SNnD9Lvp8fSzGNp5rG8rKSc7eI7MxtlDwDbddyeWcfMzGzwTHrO9sTYzEbZtcCOkraXtA5wGHBRy2MyM7Nmk56zi1pKMSTmr/6QYvlrK9Mwf21dRcQKSccCPwKmAWdExG0tD8teaZB+Pz2WZh5LM4+lz6YiZysi+nk+MzMzM7MieSmFmZmZmRmeGJuZmZmZAZ4YT5lhbTsraTtJV0i6XdJtkj7V9pj6TdI0STdKurjtsfSbpE0lnS/pDkkLJf1G22MyW5mkz0t6QNJN9cfBAzCm4yWFpPHuzToZY/iCpJvr78mPJW3T4lj+vM4jN0u6QNKmLY7lQ/Xr0YuSWtmibFBe8yWdIWmZpFvbGkNpPDGeAh0tDN8F7AJ8VNIu7Y6qb1YAx0fELsC+wCeH6Gsb8ylgYduDmCRfBX4YEa8H3szwfp1WvnkRsXv9cUmbA5G0HfBO4OdtjgP484jYLSJ2By4G/meLY7kU2DUidgN+BpzY4lhuBT4AXNnGkw/Ya/6ZQDF7CA8CT4ynxkstDCPiOWCshWHxImJpRNxQf/4E1cRq23ZH1T+SZgLvBr7Z9lj6TdImwFuB0wEi4rmIeLTdUZkVYR7wGaDV6vWIeLzj5ga0OJ6I+HFErKhvXk21v2xbY1kYEXe29fwM0Gt+RFwJ/LKN5y6VJ8ZTo6mF4dBMHsdImgXsAVzT7kj66lSqF8AX2x7IJNge+H/A39VLRb4paYO2B2WWOLZ+m/4MSa9uaxCSDgUeiIiftjWGTpK+JOl+4Hdo94pxp98DftD2IFo0Eq/5w8oTY+sLSRsC3wPmrnQVo1iSDgGWRcT1bY9lkqwN7AmcFhF7AP8JDM36dyuLpMsk3drwcShwGvA6YHdgKfCXLY7lJKZwArqasRARn4uI7YBzgGPbHEt9zOeoltid0/ZYzCbCDT6mxlC3nZU0nWpSfE5EfL/t8fTRfsB760Kf9YCNJX0rIn635XH1yxJgSUSMXeE/H0+MrSUR8fbxHCfpb6nW0075WCS9ieqdlp9KgiqX3yBp74h4cCrH0uAc4BLg5MkYx3jGIulI4BDggJjkJgk9fF/aMNSv+cPOV4ynxtC2nVX16nA6sDAivtL2ePopIk6MiJkRMYvqZ/aTIZoUU7+Q3y9p5zp0AHB7i0MyayRp646b76cqrppyEXFLRGwVEbPqvLAE2HOyJsWrI2nHjpuHAne0MY56LAdRLTt7b0Q81dY4BsTQvuaPAl8xngJD3nZ2P+Bw4BZJN9Wxk9quGrdx+0PgnDp53wMc1fJ4zJr8maTdqYrLFgOfaHc4A+OU+j+2LwL3Ace0OJavAesCl9ZX06+OiFbGI+n9wF8DWwL/LOmmiDhwqp5/kF7zJX0HmA1sIWkJcHJEnN7GWErhltBmZmZmZngphZmZmZkZ4ImxmZmZmRngibGZmZmZGeCJsZmZmZkZ4ImxmZmZmRngibGZmZmZGeCJsZmZmZkZ4ImxDQhJvy7pZknrSdpA0m2Sdm17XGZmtirnbBtWbvBhA0PSF4H1gFcBSyLiT1sekpmZJZyzbRh5YmwDo25LfC3wDPCbEfFCy0MyM7OEc7YNIy+lsEGyObAhsBHVVQgzMxtcztk2dHzF2AaGpIuAc4Htga0j4tiWh2RmZgnnbBtGa7c9ADMASR8Hno+Ib0uaBvybpP0j4idtj83MzF7JOduGla8Ym5mZmZnhNcZmZmZmZoAnxmZmZmZmgCfGZmZmZmaAJ8ZmZmZmZoAnxmZmZmZmgCfGZmZmZmaAJ8ZmZmZmZgD8f04jbS0+23W4AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.cm as cm\n", - "\n", - "fig = plt.figure(figsize=(12,4))\n", - "ax1 = fig.add_subplot(121)\n", - "H1 = ax1.hist2d(x1,y1, bins=40, cmap=cm.jet)\n", - "ax1.scatter(mu1[0],mu1[1],s=80,color=\"w\",marker=\"x\")\n", - "ax1.set_title('sample1')\n", - "ax1.set_xlabel('x'); ax1.set_ylabel('y')\n", - "plt.colorbar(H1[3],ax=ax1)\n", - "\n", - "ax2 = fig.add_subplot(122)\n", - "H2 = ax2.hist2d(x2,y2, bins=40, cmap=cm.jet)\n", - "ax2.scatter(mu2[0],mu2[1],s=80,color=\"w\",marker=\"x\")\n", - "ax2.set_title('sample2')\n", - "ax2.set_xlabel('x'); ax2.set_ylabel('y')\n", - "plt.colorbar(H2[3],ax=ax2)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OaZwSal6DI54" - }, - "source": [ - "中心付近にたくさん分布している様子が見て取れます。\n", - "\n", - "各サンプルごとに、$x$,$y$の分散、共分散を計算してみると...\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5EAvo8YhEtJE", - "outputId": "62b67f10-2c7d-4f6c-c91d-83b18a8046a5" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Sample1\n", - "var(x) 0.994590632112357 var(y) 0.9890686124916055 cov(x,y) 0.6931785449875472\n", - "Sample2\n", - "var(x) 0.5996593224718298 var(y) 0.996967770694425 cov(x,y) -0.29333540781674877\n" - ] - } - ], - "source": [ - "print(\"Sample1\")\n", - "print(\"var(x)\", np.var(x1), \"var(y)\", np.var(y1), \"cov(x,y)\", np.cov(x1,y1)[0,1])\n", - "\n", - "print(\"Sample2\")\n", - "print(\"var(x)\", np.var(x2), \"var(y)\", np.var(y2), \"cov(x,y)\", np.cov(x2,y2)[0,1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PCrFiZDgFthf" - }, - "source": [ - "確かに上で与えた共分散の各成分ともちゃんと一致しています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5JbFvkfifi2X" - }, - "source": [ - "-- \n", - "\n", - "ちなみに...サンプルを使うのではなく、 \n", - "式から計算される値をつかって3次元の図を描くと" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SnbjKTj-fjHZ" - }, - "outputs": [], - "source": [ - "nmesh= 1024 \n", - "x = np.linspace(-6, 6, nmesh)\n", - "y = np.linspace(-6, 6, nmesh)\n", - "X, Y = np.meshgrid(x, y)\n", - "\n", - "Z = np.exp( -0.5 * ( (X-mu1[0])* cov1[0][0] * (X-mu1[0]) + (Y-mu1[1])*cov1[1][1]* (Y-mu1[1]) - 2 * (X-mu1[0])*cov1[0][1]* (Y-mu1[1]) )) / ( 2*np.pi * np.sqrt(np.linalg.det(cov1)) )\n", - "Z2 = np.exp( -0.5 * ( (X-mu2[0])* cov2[0][0] * (X-mu2[0]) + (Y-mu2[1])*cov2[1][1]* (Y-mu2[1]) - 2 * (X-mu2[0])*cov2[0][1]* (Y-mu2[1]) )) / ( 2*np.pi * np.sqrt(np.linalg.det(cov2) ))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "5ekW3SwDfouI", - "outputId": "3a618e18-5217-43ec-a579-c575bc207c27" - }, - "outputs": [ - { - "data": { - "image/png": "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oNfrccstt+DYsWNYuHChrZdGRERkNeavicEMNjLMX0SD8UQN2Z277roLzz33HBYsWAAAiI6OxokTJ+z2Tq09qq+vx9q1a3H27FkUFRUxJBDRzfC3MPvEDEYTivlrbDCDEdEIDJnBeFmU7M4DDzyAvLw8AEBVVRW0Wi0/5EboySefxPbt21kFIyIiomFh/hobzGBENBZ49Ynszpo1a7BmzRokJCRAKpVi9+7d/LAbgQMHDiA0NBRJSUm2XgoRERFNEsxf1mMGI6Kxwo0asjtSqRT79u2z9TLs2s3umG/ZsgWHDx+2waqIiIhosmL+Gh5mMCKaCOxRQzSFlJeXY9GiRZDL5QCAhoYGhISEID8/H0FBQTZeHRHZKZbM7RMzGNEkwgxGRKPA8dxE01FkZCQKCwt5x5yIboYbNfaJGYxoEmMGI6JhYDNhIiIiIiIiIiJ7x40aolF64403MGfOHMTHx2Pjxo22Xo5FdXV1rOQQERHRlMIMRkRTHZsJE41CXl4eDhw4gFOnTkEmk6GpqcnWSyIiIiKa8pjBiGg64IkaolF4++238fzzz0MmkwEAFAqFjVdERERENPUxgxHRdMCNGqJRqKqqwtdff43MzEzcfvvtKCgosPWSiIiIiKY8ZjAimg549YloCIsXL8aVK1cGfX3z5s3Q6XRobW3FiRMnUFBQgOXLl6OmpgYODhyeQkRERGQNZjAimu64UUM0hCNHjgz52ttvv42lS5fCwcEBGRkZcHR0xLVr1xAQEDCBKyQiIiKaepjBiGi649UnolF44IEHkJeXB8B4BFer1bKzPxEREdE4YwYjounAQRCEm71+0xeJpiutVos1a9agtLQUUqkUO3bswMKFC229LCKi0eB9AfvEDEZkATMYEU0hQ2YwbtQQERFNb9yosU/MYERERFPbkBmMV5+IiIiIiIiIiOwEN2qIiIiIiIiIiOwEN2qIiIiIiIiIiOzED43n5r11IiIioonHDEZERDRN8UQNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd4EYNEREREREREZGd+H+iquRLHySExAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from mpl_toolkits.mplot3d import axes3d\n", - "fig = plt.figure(figsize = (20, 6))\n", - "axL = fig.add_subplot(121, projection=\"3d\")\n", - "axR = fig.add_subplot(122, projection=\"3d\")\n", - "\n", - "axL.set_xlabel(\"x\"); axL.set_ylabel(\"y\"); axL.set_zlabel(\"f(x,y)\");axL.view_init(azim=-110,elev=60)\n", - "axR.set_xlabel(\"x\"); axR.set_ylabel(\"y\"); axR.set_zlabel(\"f(x,y)\");axR.view_init(azim=-110,elev=60)\n", - "\n", - "axL.plot_surface(X,Y, Z, cmap = cm.jet) \n", - "axR.plot_surface(X,Y, Z2, cmap = cm.jet)\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2sWhUyhvT_F2" - }, - "source": [ - "こんな感じ。 \n", - "x,yのメッシュ点をいっぱいつくって、各点でのzの値を定義に則って計算し、 \n", - "z=f(x,y)の値に応じて色をつけている." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mwuxsycbbR81" - }, - "source": [ - "## $\\clubsuit$ ランダムウォーク(酔歩)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "guih1t2JbX25" - }, - "source": [ - "ここまでの乱数の生成方法を応用すると、ランダムウォーク(酔歩)と呼ばれるものを実装することもできます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LiiMqnftjAE-" - }, - "source": [ - "あなたは原点(0,0)に立っていて、毎秒ごとに[-1,1]の一様乱数に従ってx方向とy方向に移動するとします。 \n", - "T秒後に立ってる場所や、軌跡をプロットしてみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 320 - }, - "id": "wwuiBws_jVlj", - "outputId": "99f9df52-4420-43c9-b919-a09d3bfbf8b2" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAATwAAAEvCAYAAADYR30zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9d3Cc6X3n+X3QaKCBRs45M4BgTsMwiZKosS3J2q1TOWydpa317ezK9pnHs72W/c+Oaveu5N09s3jn9d2OT7qdqTpZ3vLtWvaMRprAmeFwOEzDMCSHAQCRc2qgERqdnvvjy2eetxPQABqhgedT9RbQ3W+//XQDz7d/6fk9QkoJg8Fg2AqkrPcADAaDYa0wgmcwGLYMRvAMBsOWwQiewWDYMhjBMxgMWwYjeAaDYcuQuh4vWlRUJOvq6tbjpQ0Gwybm008/HZVSFsd6fF0Er66uDjdu3FiPlzYYDJsYIUTXQo8bl9ZgMGwZjOAZDIYtgxE8g8GwZViXGF40fD4fent74fF41nsoGxKHw4GqqirY7fb1HorBkLRsGMHr7e1FdnY26urqIIRY7+FsKKSUGBsbQ29vL+rr69d7OAZD0rJhXFqPx4PCwkIjdlEQQqCwsNBYvwbDColb8IQQDiHENSHEHSHEfSHE95/eXy+EuCqEaBNC/I0QIm25gzFiFxvz2RgMK2cpFt48gC9JKfcB2A/gl4QQxwD8GYBzUsomABMAfjvxw1x9XC4X/vIv/zLu8zs6OvDMM8+gqakJv/7rvw6v17uKozMYDIkgbsGTZPrpTfvTQwL4EoC/fXr/awD+UUJHGHs8C95eKksVvD/+4z/G2bNn0dbWhvz8fPzwhz9c0esbDIbVZ0kxPCGETQhxG8AwgHcAtANwSSn9T0/pBVCZ2CFG8sorr+Ds2bNfiJyUEmfPnsUrr7yy7Gt+73vfQ3t7O/bv348/+qM/WvBcKSUuXLiAb33rWwCA73znO/i7v/u7Zb+2wbBZkRLw+xc/b61YUpZWShkAsF8IkQfgvwHYGe9zhRAvA3gZAGpqapbysuFjgMvlwvnz5wEA586dw9mzZ3H+/HmcOXMGUsplxbt+8IMf4N69e7h9+zbcbjf2798f9bwf//jHKCkpQV5eHlJT+fFVVVWhr69v2e/JYNiMjI8D9+9T9J5/fr1HQ5ZVliKldAkh3gdwHECeECL1qZVXBSDqzJdSvgrgVQA4fPjwsv1PIQTOnTsHADh//vwXwnfmzBmcO3cuIcH97Oxs3L59O+bjo6OjK34Ng2GzMjcHfP45Ba+5mb/PzABO53qPbAmCJ4QoBuB7KnYZAE6DCYv3AXwLwE8AfAfAT1djoGFjwblz574QOwAJEzsAcLvdeO6556I+9uMf/xjNzc1wuVzw+/1ITU1Fb28vKitX3ZM3GDY0fj/Q1gZ0dgINDcD+/YDNRuEbGACamtZ7hEuz8MoBvCaEsIGxv/8ipXxDCPE5gJ8IIf4tgFsAVj16r2J2Vs6ePbsi0cvOzobb7f7i94UsPAA4deoU/vZv/xa/8Ru/gddeew3f/OY3l/W6BkOyIyXQ2ws8fAgUFgIvvgg4HPrx8nI+ZhU8Fdtb84VDUso1Pw4dOiTD+fzzzyPui0YwGJRnzpyRAOSZM2ei3l4uv/mbvylbWlrkH/7hHy56bnt7uzxy5IhsbGyU3/rWt6TH41n268ZLvJ+RwbBWjI1JefGilB9dDMrxccsDlnkYCEj5938vZWenlA8eSHn5spQ/+5mUV64kfjwAbsgFtGfDLC2LFyEE8vLyQmJ2KqaXl5e3Irf2xz/+cdznNjQ04Nq1a8t+LYMhmXG5gPZ2uqu73vrfUBHogXj2HAABGZSY/r3vYSK9DOPfOYuJCT7ns8+AlBSgrAw4cgQoKlr7cSed4AEsS5GWbKwSPbMawWBYPYJBoL+fMbr5eaCuDti/T8L2Zg8m//f/B4OuEkz8yz+B68/+E9J+eh3Zv/41zLokZmf1vPzKV4D09HV7C8kpeEDkUisjdgbD6tHZCTx+TNHbsYNixykngHPn8GS4EuOv/xy7Xz+PFAQx8E/+EP3//f+M3HSBsmzA4wFmZ9dX7IAkFjyDwbB2OBx0RaengdZW4MEDICtLHQIF/+sfovevL+ImDiIVfmR+918hJ0VgcpKJjMZGoKRkvd+FETyDwRAHZWU8FD4fa+ump4Fpt8TIn/w5MjGLFAThgx3B8/8Hqv/d/4jDhwXSlt1OJPFsmPZQBoMhebDbgbw8oLhIIu3f/VvM/uSnCP6j/w7ln1/Aie/ux3N/ewZ1588izb6yNe6Jxlh4BoNhWXz+OdDdLVCaVoxdLz+Hwv/zuxApAviPfwakeamIGyy2biy8pyy1W8pf/MVfoKmpCUKIkKVmUkr8/u//PpqamrB3717cvHnzi8dee+01bNu2Ddu2bcNrr732xf2ffvop9uzZg6amJvz+7//+iju/GAxrwfQ0sG8fcOA//UsU/V//lmIHUOTOnQNW0MxjtUhewQsXhTVuD3Xy5Em8++67qK2tDbn/rbfeQmtrK1pbW/Hqq6/iu9/9LgBgfHwc3//+93H16lVcu3YN3//+9zHxtEDpu9/9Lv7qr/7qi+f9/Oc/X9F7MRjWgowMZl8BRFpyG8yyUySn4L3yCnD2rBY5KXl7jdpDAcCBAwdQV1cXcf9Pf/pTfPvb34YQAseOHYPL5cLAwAB+8Ytf4PTp0ygoKEB+fj5Onz6Nn//85xgYGMDU1BSOHTsGIQS+/e1vm1ZThqQgI4ONApKJ5IvhSckyb9U44Nw5it3588CZM3x8ldtD7dq1K+Z1+vr6UF1d/cVt1Tpqofurqqoi7jcYNjoZGcDk5HqPYmkkn+Cp+ABAkVPCd+YM71+D9lAGgyE5LbzkdGmtoqdIkNgB+MLCi3Z8/vnnCz63srISPT09X9xWraMWur+3tzfifoNhIzM+zg4oqUlmMiWn4KmYnRVrTG8ZRGsPFe1YyJ0FgF/91V/F66+/Diklrly5gtzcXJSXl+Oll17C22+/jYmJCUxMTODtt9/GSy+9hPLycuTk5ODKlSuQUuL11183raYMGxafD7h+Hbh1C6iuBp55Zr1HtEQWaqWyWsdK2kPJYFDKM2ekBPgz2u1lspT2UOfPn5eVlZXSZrPJ8vJy+du//dtPhxeUv/M7vyMbGhrk7t275fXr1794zg9/+EPZ2NgoGxsb5Y9+9KMv7r9+/bpsaWmRDQ0N8nd/93djtrgy7aEM68nkpJTvvivlvXts+bQRwSLtoYRch5qvw4cPyxs3boTc9+DBAzQ3N8d3gVdeYeJCubHK4svL25C1P4liSZ+RwZBAenpYaLx7N7CRIy5CiE+llIdjPZ5kHvhTXnklNBurYnobtPbHYEhWgkHg7l3G7E6cALKz13tEKyM5BQ9ImkJHgyGZuXKFLZ2eey75EhTRSM6khcFgWHX8fkaODh7cHGIHbDDBW494YrJgPhvDWtPTA+Tmbi7nacMInsPhwNjYmJnYUZBSYmxsDA7rVlAGwyoyMMAtFw8cWO+RJJYNY6hWVVWht7cXIyMj6z2UDYnD4QhZgmYwrBYuFzfcOXYMyMxc79Eklg0jeHa7HfX19es9DINhU/Dee9xDAmBmtaiI7djT0vSRlcVdxMKZnaXQ5eYmbjxeL9vCA2wptV5sGMEzGAyJY98+oKMDGBsD3G4eVlJT2bI9mstaXs59KwYHQ9u6LwcpdQ2fzwecPLmy660UI3gGwyakqChy31ePB5iaAm7cAI4e5RIxn4/t2q0IATQ3A/fvA6Wly09aTE3RNQZoMRYU8FhPNkzSwmAwxE8wuPTnOBw80tO5k1hxMRCrE1lJCc+z9LuIG7+fYnnlClBTw20dvV5g586lXyvRGMEzGJKIyUng5k3grbd0jG4pDA1pN7WmBujujn1uczPw6BEQCMR//f5+4P33KXovvghUVNDK27t3Y9TyxT0EIUQ1gNcBlAKQAF6VUp4XQrwC4J8DUOnVP5VS/izRAzUYtipSAiMjQHs795FoaOB9Q0PAUvN8g4MUMoAur9dLEY2WoHA46Ab/7GdAfr4ei7XRuPVnIEBRO3RIu64PH/L3jbAnLbC0GJ4fwB9IKW8KIbIBfCqEeOfpY+eklP8h8cMzGLYuwSDQ20uhS0kBmpqYUEhJoXB1dGjBk5JiGGutq8fD2rqZGS1GQrDFkyowDufJE/379u061idE6DJ268+srNCYn822PPd7tYhb8KSUAwAGnv7uFkI8ALCB+yYYDMmJ1wt0dVHQcnOBPXsiExDFxexJ5/PRqrp9m/G43bsBtdWKy8VY2vg4bxcWAkeOhJai1NQAFy/yselpy+ba07w2AFRVsRHRcjbUbmigizs6Gvke1oNledVCiDoABwBcBXASwO8JIb4N4AZoBU4kaoAGw1ZhZoZWVV8f42zHj8e22Gw2itTwMA+Ph91MPv6Y3U2s5OXRPR0fZzytqIiCWVjINu2VlbQknU5afzU1tNKuXwdOn17Z0jKbDWhpofA+//z6L1Nbcj88IUQWgA8B/C9Syv8qhCgFMArG9f4NgHIp5T+L8ryXAbwMADU1NYe6urpWOnaDIamRkkLldjN5MDYG1NbSQotnFWFrK2NkAF1Jj4flH7OzdEHr60OtOSlZKjI6ypjgxASfV1xMESwo0Oe3tfE6e/cuPAafj7G7xcb7ySd0x6Ns9JdQFuuHtyTBE0LYAbwB4BdSyj+P8ngdgDeklLsXuk60BqAGw2ZFJQZmZkKP2Vm6iU4nxaC6Ov5M5u3bumSkqYkWYW5u9JUTsQgGKXojIxRBt5vJiaIirorYvp2/z89TTKMdgQCtxC9/eWHrze0GLl8GTp1anmscLwlrACqEEAB+COCBVeyEEOVP43sA8I8B3FvuYA2Gzcj9+xS8ggKKW2Ehf2Zm0uVbKipDC/A6c3N0W5fqLqakcCyFhbzt89HKVMvZHz/mYaWkhHG5nh4K4fbtQGPj4q+dnU3X+eHDxa3G1WQpMbyTAH4LwF0hhNrD8E8B/KYQYj/o0nYC+BcJHaHBkORkZdHlS0R3filp3eXksMbt0SPG5h48ABbZX2pR7HZaimVlTJQAtMxu3qQrnJXFZMZnn1H4Tp2Kz/VWlJYy0ZIUgielvAQgmo6bmjuDYQFycphxTQR37tCVPHqU1qHPx2v39tK1XEn/jYkJClxNjb6vr4/jr6tjQiUzk0mInJylXXt+nkK9nmIHmLW0BsOqk5tLlzYRzM1R6FQBsM3GVQ1793KBfkZG/Av+h4dpGZaW8rh2ja6nVfDGxhhvdLloQZaWLn3MwSDw6ae87kqbEawUI3gGwyqj3D6PZ2kuYDSeeQZ4800uLVPs2UOh2rOHwnLiBC2w3l4mCDIzKYTWZEFbGy3DlhYWJF+6xPunpvQ5gQDd5bw8XnM58UaAomqzMd633hjBMxjWAGXlrVTwhKBweb36vvC6OyVegHY91brbtLTQNbiffhr6XJ+PMbv6etbhAWzptJTsr5XeXiZYnntu/WvwACN4BsOaUFrK+FtNTfx1duG43bxGMMjrqUwtQEE9dIgdTi5f5jkFBVzM73Cw5MXlYpwuFqdP0xJ78kSLZmbm8sVuaooZ6uPHI1tQrRcbZiNug2GzMz1NN7Kvj4LV0BB/V+EnT+gaBoN8TkYGBczjiX5+bi4FMtY61txcWnrKFe7ooGtbW6ubhvr9PDc/H9i2bWnxO68X+OgjtoRay427F6vDM+2hDIYlEAhQKJZjJ2RlUVy+/GUKzfXrtMYGByk2g4OxnxsMAvv3M5bmdNJSq6+PLZiTk3xOejrPB2gBpqVxDJOTdF8nJvh+mpqYlHjyhPfl5elrTUwww+r1xve+p6dpIVZVra3YxYNxaQ2GOAkGKVBzcxSLzEyKidNJMVO/OxwLx6vsdgpMQwNFrq1Nu5o5ORSk8M7A+fnsVKxid1lZeo+IcGprKXSqZGV+nis57HYKljXmJ6WO1anXz8vj642O6vu9XuAXv+DvNhuvpaxDKWlx2mwsWr55kzWH1mzvRsEInsEQJ62tnOjPPactPdVdxOWiqzozQ6FR4ud00gorK4uMhaWksHi4ooKCd+kS414ff0xBq6riioaZGf2c6mqKkd0emXA4cUKvmlAIQattYIBHXR2Fu7aWr3Xnjh5LMMj7pqYY+1P3bdtGwbx4kecGArTcams5ZrudXwLKfU5NpQWpNgPaSJgYnsEQB+PjtLCef37xhIPfH7pmdmSEgrBtG0UsVhLAakVZKS0FDh6kkPj9QGdnpHX3pS9p1zUcn4/C2dFBy6++XvfV8/koZC0tfJ3+fi4nS0tjGUlGBq3Q3l5acmlpFMSSEr5eayut1bY2/XpFRRT5hoaVZ6WXSkKbByQKI3iGZOPyZU7k5daSjY9TSKanKXzV1dGFb2iIBcDRKC6m5VRczPWrbW1MWhw5Et+CfLUG98kTCnFdHa20mRm6tc89R4GTkkXMqgFodjYF0evVmd5o2d4XXlj6CoxEYwTPYEgAExMUoiNHVrbz1sQEhW9qimJTVkarzevVx9AQ3UaPh/G3cHbsoHuanc1EhlU4fT5alCMjtNhirWyYmtKZWeVuu1wUwa4uvq6KwXV0MK43OUnrMC+Pr/3OO/wsVL+94uKNL3gmhmcwxEF+Pt3K69eBY8fiLydxu4EPPoj+2KNHPACKhctFwWpspHUVq1WUeo4SIbXnxcgIryElXU5rpjWcnBzuXdvcTBdZXfPOHa7TLSnRiZfqauDdd/l7WRnFbnSU1z94kEmKmZmNl5GNhhE8gyFOiou5ZvXqVYpePNZMaqoWx5QUWnAzM3QRGxooWA8e6JZMlZXcwwLQLdYdDgqN3U5BU+d2d4fuOpadzddraaFIxUNaGq06r1c3OBgeDq25y8igON65Q9e+sVEnKT78kNbo8eNrH69bDkbwDIYlUF7Oif7JJxQhFdiPRUYGEx0A3cirV7XYARRBa/Fw+D6x+/ax3KO/n5bYQrjd/DkwQNdZ7UGrLLXMTFqqNhsFbmCA152cpEV35AjFrrOThzUm5/cz4eL1RiZM9u9f/w2248UInsGwRCorKRDt7bRwqquZiFgocTA6yjISr1e3dJ+c1CLmcNBymp1lRvSll5iUePSIbqPaSnHvXlp+jx8zidLdTQFubqbVNTQUuuQsFnY730N9PS1X1RigrIwxwrff5nvLz2e5i9fLcUVzs+O1JjcCJmlhMKwAj4elGf39FI+GhkhR6OsD7t0DDh+mKN26Ffr43r06a/voEWNwO3fysZERnl9ZSSGrqqLV5nLR+hsZoSubksKSlqYmWmXWAuihIY5PraAoLWXCZLHuJz09XGERzrZtfM8Ax71v38ZoDACYpIXBsKo4HFxt0NBAsbpwgYJQW0sRam9nbOz4cQqRdfmY1bVVTEyEbnRTXAw8+yxrADMyaGXNzGhBLC7mzzff5M/eXlqAwSCFV0qeU1NDl3UpLZ6qqym0H3ygi59Pn6aAOp0sY9koTQHixQiewZAAnE66nlNT3LehvZ3uoNvN9kp2O4P+o6O87XCwzGVmhnvJKgvJ5YrMrmZm8jl377KOD9AFv0LQ3QwGeR3V8TgYZNzNZlt+HzuAon3oEIuTX3qJbntFhU6iJBumeYDBkEBycljWcfAgLbKTJ1nTdvEira36eoqcErHZWSYyfD7eb7NFz3babEwOqMLntDRafcGg3mjHunY1JYXnrETsFA8e0IpVMUq7nW51MmIsPINhFSgooIWnOgtv3854W08P4365uVoc79/X3UUWqp0D6CpXVFDIbt1itnh8nNdKhLhZmZ+ntTo3tzEbASwHY+EZDKtAMEgLbHSU8bbWVlp1TU20kFTNmxDaFX30iCK5GHY7LbiDB+kCA4nZEc069idPGLuz2xlDXG4T0I2GsfAMhgQTCHBFRkoKY3t37ujuw5OTLPsoLw99Tl0drbuldBcRghZfRwdjewUF8W/kHYuREWaUlcudlbWy6200jOAZDAnE72cyQtXbKVQNXXZ27Ocu5s5GY/duimdnJ2N5lZW0FpcqVDMzbBjgduvOKZsRI3gGQxz4/cy85uWxzCOai+fzAVeuaDcToMhVVq7c8lqIwkIeHg+F7/JlvZdsaenCNXJ+P+OMXV0sfD50aPO4r9EwgmcwLILfz0xqWhpjcrdvU8Sqq/U62WCQNXiqI/GhQ0wurCUOB+OF27dz2VhbG93TujomHcJXgvT10aorKuIysmRYC7tSjOAZDAugrLa8PF0vNzPDAt8bN5gZrapi/MzrZSHxrl3rt/Kgr4+Z1Z07GYNTy9cuXGDtnNoHQ0qWm+Tlsdxlo6yUWG3M0jKDIQaBANutFxYyrhWN8XG6uoODtJSOH1/bMYZz6RJd7uFh3t61i+P3eimEXV2M+R0+zLKTmzd5ntrgJ9kxS8sMhmUyNMSyjFhiBzAJoTa23rNnbcYVi6kp1sxt367Xu16+zMdSUxmbq6nRi/3T09nm6tEjFkYfPJg8XU+WS9yCJ4SoBvA6gFIAEsCrUsrzQogCAH8DoA5AJ4Bfk1IusN2vwZAc9PUt3AkkEGBGNjVV71y2nnR3U9Q+/pjip/rojY/TwquuZkmMNVYnBN3f/HyW0mzbFrm+dzOxFAvPD+APpJQ3hRDZAD4VQrwD4J8CeE9K+QMhxPcAfA/AHyd+qAbD2uHzMUFx4ED0x4NBCoTTySVkatPq9aSggPVzubk8rJlhn48W3wcfMI7X2Bj6eGkpmwHcuMEGBvv2LS2zLGVyxAHjfktSygEAA09/dwshHgCoBPBNAC8+Pe01AB/ACJ4hyRkYYCws2qSXkr3t7HYKw7VrLABebxbKCns8dGfr6riU7cIFdk+xruzIzOSqirt3gY8+YpxP1Q0GAnSXFzoOHFj7zPRSWVYMTwhRB+AAgKsASp+KIQAMgi6vwZDU9PWFtmkKf8ztBl58kVbNRrds1ObYXm/ozmfROjWnpFDE797Ve3Go9+hwMNERCPB+m43XaWhgM9GNtgdtNJYseEKILAD/H4D/SUo5JSx/bSmlFEJETfsKIV4G8DIA1GyWlciGTYnHQ1GItdqgrIwZz7ExXYSsNqHeaPT3s8mA00nBGxlhciLWhjtSch1tfz+TH4ODjAeWlvL9Op0Ut+JiutDJVqS8JMETQthBsft/pZT/9endQ0KIcinlgBCiHMBwtOdKKV8F8CrAspQVjNlgWFX6+/XWhdFITdWb2rz4Is9bh+quRenspKVmt7MU5cQJrgK5dYvWnTUj6/PRoktJYfb2uedose3YwXW6Lhez0MlenLyULK0A8EMAD6SUf2556O8BfAfAD57+/GlCR2gwrDFe7+IB++Ji1t09eECRUG7eRsHno+C1tDB2p95PSQlr7q5f58+iIor1e+/pLSJ37gwV+6wsCmSi20+tB0sxSE8C+C0AXxJC3H56/AoodKeFEK0AvvL0tsGQtNTVcSWFWiYWi5YWunyTkwu7tKrl+lpit9P6jLbHRlERExKffspawzff5BjLy9lmSkq+9/FxJjjee48CuRlYSpb2EoBY4dkvJ2Y4BsP643DoDiSqw3A07Ha6edevLyxot29TGPftW59Gmh4PW0h5PLREAwGW0Xi9zDArBgaAN96IfH5xMa3BzYBZaWEwRKGxUW86vZArV1bGtbQLucBHjvBad+7wyMmhm6j2m0hJ0b9nZUX2ylsuwSCXvT15wjGq7RjV0dFBkQsnK4txu/R0Pq+5eeNnouPFCJ7BEIWsLNao9fTELk9RxCpOtnLiBLOdd+/SVQwG9YY7gQBvBwIsDm5vp7scT/fjWPT3M76Ym6sTEOFYd1BrbKTQTk9TBKenWYLi9+t1wsm4aU84RvAMhhg0NbF+rbY2MRZOTg47mMzNMTamhK2sTJ+zYwfr/G7cYBa1uXlp9W2Tk2wJ5fezC0phYejjgQDjkx0dOkb5y7+sLdT8fC5BCwYpeqOjXLJ2+za/BFSypqhoZZ/FemEEz2CIQX4+43n379PKS9Ra2YwMJg1GR2nxdXWx9ZTTSWGtqqK11d7ORf21tVzjupDbPDLCJgCzs8yyVleHivTcHGOS3d18X7t3U7QuXOBj4Z2YU1Io0Dk5THwEg1xy9tlnHNepU8lRaByOaQ9lMCzAzIyOdaWlUYgqKhInfsEgi5jdbuCZZyIf93j4+PAwrb+aGgrZ3BzjcKmptAaHhnj+iROhVt34OMc/MkIRrKujsCpu3eL5iyVTZmcZf/T76cKvd6OEWJj2UAbDCnA6aQ21tNDC6e/n1oh2O4WvvHzhfSoWIyWFgqM22A7H4aBrOjlJS7Ozkz3urlyhpTg3x/NUA4OpKV5PdTz2+ShysZoB5OfzfcUSPClpgT56RBe/oSG5ExhG8AyGOBCCMbWCAi1+AwMUntRUil9FxfLELxhcfIlWbi6tt8FBviagxQ6gcO3YoS2v7m5aZc88s/DmQPn53Pzn8WP+npenkxNSsrW93795djAzgmcwLBGr+O3axWVX/f0UB5uN61QrK0Ndx4WIR/AUZWVc16pc2JQUdjhRe2sojh5lcuLaNQrxjh3Rs6y5ubQgR0cpepOTjM3l5/MYGeG1NoPYAUbwDIYVIYQWB2X59fWxCWdmJhMQFRULt08PBOJbtiUly2SU2O3cyWRGrHFVV1McHzzgOtldu6I3DSgp4QFQfN1uvo+xMd537RoTHPn5zNKGZ36TCSN4BkMCUeK3axetpt5eJh0KCig2ZWWR4haPhTc8TOGamtL3VVUtPp60NMbvxseZEe7p4eqQWNZnSopuIFpXR+vv7beZrVUdnn/5lxd/3Y2KETyDYYUEg4yXWd2+lBRtOani3Z4eik5VFYuOlegIQUGamIgsNg4EGLPzevWi/rQ0bq84Oxu9p100CgpYgNzZyY1+GhpiW4dWhKDl2tVF4VTWZbJiBM9gWAbBIONdDgddzQ8/pEW0c2ekBZeaSpGrqtKbZV+6RHGrr9f7Znz6KUVz+3bduklKiiFA0czJ4WvOzVF8wlu5LzTe4WG6qVLqjYfiobKS8b3e3vgFdqNi6vAMhjiZm2N8Lj2dgvH4Me+3locAkbVw0QgEeK0nT3i7vp6xvoEBXtcqfM+F7uoAACAASURBVF1dLPgFeDsjg88FtLg6HDzy8iisOTm8f3KSlmVfH69ZXc3XWcp+FQCv8dlnfG48S+nWi8Xq8IzgGQxx4PfTKlPZUI+HMbqF2LOHArNYQmJ0lMXB4+Osh6ut5X2trboJZ3Y28Itf0DqrqqKr3N/PxgR+P8ejxtTTw98BusBNTXxOvFnjaASDwPvvU/Cam5d/ndXGFB4bDAng9m26oHv20DVUFhZAUWtsZEJBbWwNMF7X2ckatoUW3qu1qTMzPP/iRYrUqVN0I2/dovAdP84434MHvB+gAKam0npTDQ/cbrq/qq37xAQfcziW38QzJQXYuzf5GwgYC89gWITWVq5aKCtj3Cwnh3Gt8nKKya1bFKiBAdbkAQz2W6dWVVX8ruD8PMta6ut5BIMU2MeP6c6WljJpAdC9fvZZCqLPxyxqRgazq6oT8+AgBXJiQrezKixM7hUTsTAWnsGwTNxuCp2ypoRgfE7Fx5T76PPR6qqrowANDUXucdHbS4troYaiivR0Fvu+/z5jhSUlFK+6Ogqdqo8DaMF99BGFbGyM57a0aDGzFkJ7PHSD79/nmKuqKJ6ffcYVGcm+X0U8GAvPYAjD7aY1NTZGIXG7KTgqTub3U0ii7WNRXEwhuXuXpR/z80w6KI4d4znhTE5ShAoKKJZvvx26ubf19TIzee2BAcb2UlMpzADwjW/E9x6npijCAwM6Y9vczOsm205kVkzSwmCIE6vQNTbSorLZKDx+P++/f58iVlWlLb9wiou1eLW08PcrV+ju2u0Ulqqq0Hja1at8fb+fAjY3B3zpSxSy7m6ec/Ag3WiXiy6vlexsWmnLKRtxu/UetABfo6yM1uJCK0Q2IkbwDIYFmJmhBdberu/LytKZz6VSXc0C3WjxsSdPKJgFBRQZa7umjz5iQiQjg2I2MxP63JQUusMPH0Ze9+jR2HvoLoWPP2amODubwqwKoVtaFm5AEAspF48TSsnPIjU1Mf31TAzPsGUZGqJVtn177Lozt1tnXHfu1N1CHj2KLnhqWZbqWGKlvJwxvZ4elm84nRROn0+7pzU1FJXcXAqgqsMDGEubnNS3m5r4Htxu3TcP4HtJTaX7WVu79Jq6WJw8yW7JHR28rdbPLtfKu3GDopmdrY/UVLrmaq9bl4u3d+/WLe9XEyN4hk2Lz8fJ299PoYpmBRUUUNhyc/VSq5kZlp4oKiqY9VQuaKzedQMDTGhMT/M1AYptbi5FdHyciY7t2ylgpaU8V8X4rGIH6LicFYeD44ynvm857N7Ncd28yZ/19cvP5h4+zM//888Xrll0OvlFE28ThZVgBM+wacnNpYu4dy+tJ2XJ2e3a4lAZV6eTk/Lq1dAtF53OyC0KF4qTqcX92dm6W3Jjo27QOTlJMbHbOcHT03mu202LzeGgQOzfz1jg+DhrAFXCwuGgSK+mMBQXs9Tlzh0K9759i/f5UzWEQ0MseSkt5XVcLr1MbmYmutU8M8Oi7vR0/q2se3wkGiN4hk1LVpa23l54gQkJZTWlpIQKW3+/tsqsRMvEWp/3pS/pFQxDQ3QJZ2cpYOrcaHE3n4+WY3o6LahAgLEygG7gvXsUjdFRWqeqM0pPD93phXrcJQKnk4XO3d3cYrKhgcKtMrjT03yPhYUUxsFB3R9QCf2tW7Rmt22jGE5N8brW+GRqKkXu/n2+n/v3aV23tKyOqJukhWFTc+kSs6JqbevkJCeoCqiHu5HReOYZ3S/Oyp07tHwaGvR9LhddVJVZVTgcFKmpKe3e5eWxPs7rZcDe2mbd66UA9/VRXFTWtLhYi+jgoM74LsftVJtxL3ZMTVGgAQra9DSFt6CAS9va2yny6vD5KOTW9cVOJwVMWcANDbzd1cXPIBjk7yUlFLySkuh7fCyGSVoYtjS5uRQ1JXjp6RSPR494226nFXL/Pt3Ivj5aMVlZOnNrtaLUyoW0NAb11YTt76fI+f0UrtOnKXJeLy3Ljg4KnbWfnctFAYnWaCAtjRncujqKyOAgX+v2bQplSQnFrrOT9+/ZE9n1eCEGBphUUJ9RWlrokZMTentujqs41AoPgOfY7Uz2APwSmZhguY619rCujuMEKNjl5bTyJif5eakkCUCx27cv+hdMIjAWnmFD4nJRcHw+Fusul+5utikvL+fvLhctrepqip/KjKo9WgFOYqdTLxP72tf0RB4YYObS79dtmxQlJZz8OTmRFpdaE2tFbct44gTHEg+BAIVzeFiv6PB4eJ3aWr5+vG7u8DAtRSn5vGhJHZ+Pf4fOTt3i6tIlvZKkrIzWqd/P69nt/KyrqvjlEQxyvBMT+ovEmrXNzubzBwdZrO31UtCPH1+eS2vq8AxJg5ScNMpFcjopBAcPRp7r83ES1tXFnuBqU+rxcVpjNTWRHYe9XnYhUezezfMePtSWlSItjcF8FbNrbeV56eksRrZSXMzXKiriJLe+zqlTK98jwuulW6ksrsJCikpqKj+vaKs5YjE4yPeRmso4WnExhbWjg3+LsjJawSpZo96LSrYoSku14AMcW1oax5aWRmFbyPX2emlp9/byy+PIkaWv+kiYSyuE+BGArwMYllLufnrfKwD+OYCRp6f9qZTyZ0sbomGroxbHt7dzQjQ10Uq4e1dPHoWUtNQePeK5aWm0bBReLydMTw+tjqoqCt7+/aHZ1YkJvd+sldlZTlTlgimyshi7unAhcvzhYgfQqhwZCb2vpoZW2dzc8gRPStYVdnXx2n6/Ti6oLPDo6NLr5tTGQP39tHjVUrOKisjdyh480Imf2lr+nRwOuqg9PXR7Af7d5udpSYd3cY5FWhobLFRWMj764IFO5CSKpcTw/jOAvwDwetj956SU/yFhIzJsOdrbGec6dCi0JGFighacYmyMFltqKlcXdHZygioXsrVVu3kOB+9XovPuu7wvGAx1X8OxFgJbM4qxau8WIi1Nv1ZDAyfv6Chd2xdeiF+Y5ucpJt3dtE5Vh+SZGbr76jqpqcsv6RCCQqO+CAC+Z5WsUFhXXNTVaZF1uTgeISiYKmHhdIb+DeOhpIRWsDXpkSjiFjwp5UUhRF3ih2DY6jQ2cnI9fswJ5XBwos3O0m2am9PFq8XFnFRXrujJmJHBCZeZSdfLbg89RkcpFidP0kWy2XgNdd1Y+zSEL++KRVMTrZjr13k7M5NjV2L30ktalIqKaDl99hkLcxWBAIVNNShISaHVJQSt2a4uWlO7dnHMPh9jf4laZaHYtYufcU8Prd9Ll3i/6hJjDR+88QZ/FhTw71ZaSpfY6eQXyzvv0HIvLY2+W9pCpKaubIPzWCwphvdU8N4Ic2n/KYApADcA/IGUcmKx65gYniEabW20Lo4c4YR++JDxH5UtVT3m0tP1sqqbN3Xb8nCCQYra7CwFsqVFl5B4PJyQACfxoUN6uVhLiw7GDw0xrhSv+FnZty+01MQ6ro8+ovD6fBS6QIBCn57Onx4PBXPbNoqFy6VXjQC6kcBqdjYJBCh61mRLTg7FqLpa75Gxf3/stbxuNz/XQ4d0AfJqktCkRRTBKwUwCkAC+DcAyqWU/yzGc18G8DIA1NTUHOqy5q0NhqcMDjJ+k5oaudGM00lrsLpaT/SuLk46a2JDLUi/ciUyvnb6NIVmbo6b5qg+cO+8Q4E5cCBy+8NgkK7ugwfRx5yWxh3BOjp4WKdUdTWXZ4WXjMzPs0RF7UURLfEyNkard3aWQt3TQ6unsJBxSrebY62ujox1JhqPh5bm9DRjhurzHxujICrrLpqbfu8erfDGxtUdI7DKghfvY+EYC8+wEJOTbHMeTmMjLR6rOHz+OcWjsZGTb3SUSQq7ncKQmUlxUDE4tcLC4aAQZWezHk2tnjhyJHocTJWlpKVRhPbt421rM87FqK2lOOXlLa1QeHycVm5ubmgDUZUoUOPasyf+BMFykJJJiexsur4KZY339/MzbWgIdbU7Ovj579mzemNTrGrhsRCiXEqp8lz/GMC9lVzPYAAoUjk5tIDS0+kOXb7MSd/eTsE4cIAWmXJ3e3vp4lVUcGLZ7bT+2toYN1PtjpSweTzRLba7d3l/WRkPJU6zs4wDnj5NF/PKFQbjy8spgAslQhRdXTwcDj6vvJxu3mLiV1AQ3R10OnWiYX4+8fE8K1IyASQl38OOHbq8x27nZ97QQCvwwgV+MdXW8gtGhQY2AnFbeEKIvwbwIoAiAEMA/vXT2/tBl7YTwL+wCGBMjIVniIXbzeC/cpHu3KHYtLRw0oR3ECkvZ1ZvcFBPKpU0KCvjNZS7NzHB61lrx9S5ClUzpwQsPZ1jcTophDt3cjLPzTF+mJFB0Skujoynzc1RtKemaLWOjGjrsqyM1uj8PK9fUUGLdG5u8Xo1gFaV2it2+3aK72rsUTE3R6Hv6eFnUVPD97uQuE5O8rOamdF1edevc93xamMKjw1Jg9vNYH5NDQuAFdZ9WfPydCbTiuqIYiUrSxf/KsvEWkgcTkaGThqkpdGCUVZNeTkD+IEA8JWvLF9cAgEKVX8/S2tsNl63o0OXYTz/fOxlYvPzbP8O8HNqbk58V2K1aXdXF78kKitprS01Tjg6SuFT/e++9rXV3zjIrKU1JA0ZGbSeenqA997TS5lSU+k2+Xx6uVc4SuxOnmTMq61N78wVrVlnWhrLSdRKhZQUWiApKRS5x48pLtu3c8IPDNBimZ+naJaXL+892mwUqexsuun79jEOqMTOZgvtxqJwufhloKitpcgnkpkZbc05nRTUw4eX37WkqIjJnIEBimcwuPr97hbDCJ5hw6DKHUpLWdA6MKBXNhQURK5dDae0lFZIQQHd3OvXtbuqLDSF10tRVMvCgkHgzTf5mMPBoHxFRaRFUl/PjO1yBU9RVUXrSdXuNTdTgK3rVINBWoLWspDSUiZWwsfl9bLw2uGgS6yOxdbVBoP8XLq76XpXVTELm8gaOBWv3AgYwdsCKMtoKesr1xK/X++d6nLp1kLWBfWLiR3AGN5bbwFf/WrkrmLZ2czkdnXRggGY+LDZKDrWFQUeD+Nzt29TgCsrWcIC0E1baQnI7CwtWCvqvQrB13/4kAKmSElhAXOs2JnHw/dVXc3PSrVqEkKLn9NJy9C6d0R/P93OXbtWv65vI2AEbwswNsZJvX07g/jrzfy8XgHR28t4UUEBXagjRyhC1sLgpaJiXIC24B4/5mHl6tXQ2zYblzTduaMTDCqzCtD9LC3lNQMBCnV6OoWmrCw+a+ryZVp2ipwcWo0VFfw7jY9rcbfZ6FK6XLT6FkoUOBw8p74+VNC8Xi1+LhctyCNHdPlKURHfy1YQO8AI3pYhP5+TeGZG70q/HkSrsVNbIQ4PUwTDe6mpglZr8iIaDQ2ha2F37qSbKAQn/oULkWtDAcYO5+Y48Xt6QrO4ioMH9fIoj4diOT9PwRod5X1qT4xoqB3LrKiC4f5+iqwVaz3g1NTiZS9paXz9ixf5mW3bxs9V9bPLy9OZ4GvXmBSqrKRQZmfzfyMRO59tdIzgbRHS0ljPdvs28MknnFDrsedoW5teOqUIBGjdWIt4bTZapNnZvD9WUt/aXFKJ3fPP872pvV4PHqTVZBW7o0dp8W3fznPVmtFAIPq+CzdvMsFhs4UuMxsZYajg4UMtrlZ8PoqQtfQlP1+XnszNha7MACI3646VyAinqYkxuM8/B95/n3HB8DWspaWM0V27xszpjh06vmkEz7ApUHEhKTn5Hz3iBD96dOV92ZaK2hAnEKD4zsxQfDMyKFguF90yFVsKp7mZlorVbevr43tTWyEqCzItjZNYrUjIyNDPn5qihVZSQuupuJjiFS5YDQ20FC9ejN0xRXVkefJEL5+am6O4KzHes4fxs1hlGT4fP4/BwcjlcOHxyIVwOLTA373L19+9O7TMJSeH2dPr1/medu6k+AeDm9+tNYK3BSgspKV04QKtgO3bGcC+fJmTo6hoedeNZ6PlWNhsFL/2dorvwYMUrL4+CojVhWtupvBEm4zz89pya2oKLUxWrYvu3aMQHTyoyyL6+ihKb71FMamtpfCqrKmiuJjPqazUbeEVe/dSPDs6+Jjq6OLxUGQDgfj3ZrDbGcccHOR1pqf5d0pJ4bGY4E1N8f3m5fH8ggJaut3dtHTLyihsyqpPT2cHlNu3mQVOS+PYV6u1+kbBFB5vIaam6Hq53XRlHA66as3NusdaPMzMMJY2MUExLS7mRFmutTgywkkXDFK8vvxlTvBAYOEd791uTuaMjNAsruqqAoTGAAG9ROrBg9D9JQoL+R5iNQgA9Drc/PzQxEM4zz7LDGtKCkU9ni8Fv59fSMePc6yqEeeBA/x561boCgwheDidPL+vTzfiVH+T4mL+TRZblfH4MQW7uprx3WTGrLQwRDA2xont9dKycLli78xlRUq6bW1ttKaqq3mt4WHt1pWU8CgsXNoWgjMzwMcf02ILj2FFw+2mZajcWIAT3+fjxM/NpZArEQ4EdFfllBRafBUV2noaHaUb3dsbej2rpZmWRqE4fZpWo9o1bGiIz7eeW1jI9xGvi9jWxoSOdQ/c3l4mOurrdW88KbWYq5q96mqWlajxjo7qjstS8rMsKmKW97PPeN7Ro5FhgZ6ele0fshEwKy0MIQSDnOCZmaFWymIV8FNTum2TdV8Ha1Gp281J1tlJiyQnRwtgtI1trDidXOnw1ltcGXHyJEXLOi6/n+IiBCfx4cMUlN5eupdC6C69quxifl7v7JWXx1hauAtvs1FQ1Odx8CDFOjxzWljIeJgQepew+/dZrtLcTDFRwp+VFb/Y+f0U4pMnQ++vqtL7vg4N0dpTe+3eukUx278/1DpPS6OQq/6AMzMc08AABTUrK/rforJy6U06kxFj4W0Rxsf5Ld7fr7tsVFRwgvT00KXJywu1igAK5OPHFIzm5ugNLaOhMq8jI7QAvV5OXnVkZ0dOuulpZhcXIyODY29uXlhEL17kJK+tZQxwMZf75k1+RkeO6PcAUGCs2xMeP65FUy35qqriuNRqB49Hb9W4GK2tOpsci85OhiMcDoq418u/4ULP2YoYl3YL43ZzAqu9VquqOEmsrowiEKCbNjXFDJ56/o0bFIo9e+KbvLGYm9OlJ2NjnLAFBbSS5ucpTNZ1sg4HrZeREd0CKhonTtCas1pTbjcFaniYt60t1heivZ2W0NQUP4/U1FCX2UpLC4XUZgN+/nOdOMnMZAzy5k2KXmkpv2wOH44UZ7W6ZHSUn7mymqPhdgMffMDfs7L4mS32nK2IcWm3GFIya9jTw4mbnc0YUH4+J6eUFB+bjW6bEJysNhutv5wcTvLUVN1+/OjRlYkdQOtHNQMAaM199FHsPmnKqjp4MLTZZDBIoVBJjsuX6VIfPsznfPABxaq5mff97GfcUvCrX42+96tasytEqBWnHktJoXVYWUkB7etjUe/du5GFxGp8//AP+vbYGF/XmtEeGaG1Fgzyb1NfT+HyeBjLy8/X7mUwyHirqjFU+89WVy8tRmogxsLbZEjJiej1cuKrmF347+p2enpoUawSwYYGTsS+Pk62Z59d2QTzeGgt7tpFy87jYWxKWWEAJ3l6Ot3nQIDu8+Ags4q5ubSEVNmHco1HRiieRUUswQAoUnv36i0aL1+moJw8GSl6y13CVlDAL45YO2vl5/O9qoyuzcZxPnnCL5IdO3RzAtXItKtLb2B99Civowqigch4nSES49JuIjo6OLGX2slCdQJ59tnQFuCDgwy0q8Lk7GwKprXAdudOBr49HmZyY8XMlNVSUMCJbj3P5WJ9m9pDVU3yx4/5nlTrJ0C7kVVVoW2TFHZ7aKnK+LiOteXksPZMbcAdDNL1fPSI15eSr69Eb2hI76Oq+MY39O9S8jrhe9QCfJ1gkONVriZAET5xQt/u7KQ1aEUIinL4l01eHv8+k5OhZTZ2O/Diiyu3srcCRvA2CVLSPUtN1V0vKiri6y92+TLF4+tf10IUCNCySUmhSzgxwUkMUKB6eiInerQ6LRUvm5mh1dLdzTGqIl+165XNpvdi7eig61ZZqZd29faGtkEqL9cZxbt3dclHZSVFRS2ytwrG8eMUXBXP6+ujOxgumjU12hoUgmKikiU1NfxSuXs3+rrbeGls1GU8ALO7tbX8nC9f1udlZtJFdjj4N1FW49gYhQ/g46oI2bAwRvA2ERcuMC6l9lcYH1+8G621FZFKBBQVcaL7/bS8Rkf5eEEBJ2AwyEOtVFgOal2mitEdPcpr3rtHa7G2liLg91OUhofptno8rAVTPdpUIiO8Jq6wkBZRezutoqIiXmN2lr9nZen6OmuBcfgYhdCbd6+Er3+dAnn5cmTzASFoPccax+HDFHi14baUtJZTU2lVt7XpYvHKytXvGpzMGMHbRFy5ootQAYpDdzeP9HRt9aWm6tZG955uq2R1G48e5aQZHta7zAO0JJxOWhJCUFAHBxfeAT4nRxfkqkNKHZuz2eieut26Y3BFBceiatbq6zmZ7XY2NgAoWqqsZTEOHdKbdw8OaustUezezTGq95WbS2FqbeVrK7f4+ecjO8EUFLBmMHxZmnpsoT5/e/fybwroYvFAQG+WbYjEZGk3EeEbzjgcdHW2baMwdHUxYSElJ4Y1QG91z65do1Vk3Y7wG9/g88bGmK0dGKD4NTRQoFT8aGyMk12JYzg+H5d7VVTQmlRu7cAAhXTHDl2wa7PxvrEx3aDU6eT7EILJioMHtXXncjHuF76sSzXnTBR5edqyzM3VonPpUmjpjBrXtm0Uv2hbS1r720V7bCGs5UOFhYzBDgzQ3VaNEBZaemeIxAheEpGZGd3aEkIvC1Nb9gGRXTeqq/UmzoGALhF58IClFHY7X6OigjVe0er1VHY0FpOTvPbBg9r1klK7o8rSqaqioGVmcuLfukWxVG2QRkboznk8tNrUzl/z89G7h6SmcrlbRgbPdbl4hJ+nWrc/eMAYn2L7dn4+6j0HAjyno4MJn4qKyP00vF4uvl8tollx5eX8ouruZjiioICJJVOPFx9G8JKIzMzISef3c4I/ekQx3LOHk0JK4I03+JzDh0OXE1VX0yL56KPQQHggQKtsJS3MnU6KkjXOFC3439sbum7VuuBf8cYb+veKCsavmpv5GioGefcur+P3M+6lqK+noDocFE+Xi89RZTejo4yrud10HdWm3Qqbja7srl0UvP5+/ZjqoqzGXVnJMagWTCrZsBSsff0WQ9XiVVUxKXLpkm7oaVgYE8PboPh8FLLxcVpt1gaWxcW0fFTzyMxMup7V1UsLaLe3hxbbpqVROJqbKRjLCY5LGbqvRFtbqBAthYICWjOTk3oPV4ClJrEKb10uik9fHxMXTU28zrvvUvhv3uR7VLuRDQ/rz9jn47n5+XxuZ2dk0ubFFymSnZ2hDUsBXq++nmU98Vh+QrCl/NWroU1FVRb5l34pvtrHqSmGKWprF+66vBUwSYskIZ51pJmZFIDiYrpuDsfSi4HVTlhdXZzoysppbNSJjmCQr7F///Jqvz78kFZmtEA9QKsyIyN0kqtxKMrKeHt+ngIwMKDd+fx8PpaVpdsghS8vU3urfv45z5ub45eC6rf33HOR8a+JCZ4fK7bW2MjP7plnGEu11vA5HAwrjI6GxlkXQ5UKvf12aAjihReWZmmrtvOqQcJWLWExgpck+P20hjIz+U/rdCZ2D8+ZGb1jV24uXajBQQrF3Bytmz17+PvjxzzPbmcnEGtyIx5UfzVFQwOzrhkZPMJFWu0DaxWamhoKlmq3XlRE91K5jcEgz+/upog1NoYuQVMEg3T7VJ87tfdDW1vodoQzM3pLSEVZGcdx7Zpei7trV6j1Vla28Obe4Vhdd7udVhxAAb99OzRkEd7LbzH8fiZwpGT2eCsuPTOCt4VR6067ujihqqs5gVWA+/JlunZFRZHdi2dmKEJ9fXxeS8vCu2aFs5RuyHNzFJVYdWpCMIZnt3MMqam0YLq6OM6dOyl4C1k1IyMs61GlHr29FMETJ/R7Vdlfh0NvhBMMMqM8MsLndnTwM925k2I5McHHJifj2zs3HOvKDiXKPh+P9HR+/k1NdJXV+wtvgWVFrQ4ZG6MlmpGxtPEkO0bwthjj4xSE/n5aP1lZnLxlZZGC8M47LHVYaFK43RSDysqlW3rx8u67FLPyclq34+N6T1bVZTglRQu11fVVjQNioTao7unh56BWLFi3TLTZKG5q7wuAcczpaX17McI3JrKWtixEZSU/f9WavqWFFrFiepoCNj/Pc8vLGYecmWHSYufOyC8iv5/nuFx0jaM1TdismDq8TYqqSVNCZLOFJiHsdi6Wj7Xu1u/X3YEXIjs7tAvvavDiixx/b2/oXrFf+Qotlr4+vdpAUV9P9zKWVef305Xt6KB1qNai+nz6/uxsxv/GxyMTK/39kdnW3Fx+3io+aLXmwnc6q6vj30KV45SWss+eWrd8546OlVozwPfv88jJoZDPzVHQRkZoAT94oEuH+voY2zxwgG7v8DCPyUkKbmPj1nRrFyJuC08I8SMAXwcwLKXc/fS+AgB/A6AOQCeAX5NSLtDtnxgLb+X4fFy0roqMVd+28I1oiovpaqnso4oLTk3RCnjxxbUeuSYQoHB3doZO+vA+dGq1Qmlp6O5b0VCJl9ZWuuo7dujWS+3ttNhKSykGKing9dLKfPZZlurEsyWiQiVgMjP5s7ubIlNREbq/bjSys7VQqgx8dTWtTmsDh6oqWn537+rPSW3WYxXd+nrdzj2R8d9kIpEW3n8G8BcAXrfc9z0A70kpfyCE+N7T23+8nIEalobdzpjSnTt0Wfx+vfkLoLcdzMjQNWqqP55qz7SUmNxSkZLiokpnVJfe+XldUhOOEHTZrOIH6NUK4+MU9GiTWUo+7+FDuvHHjoVmOQcGaNUVF0euPU5Npfh+9ll8YldRoYumHQ4dq/R4+Do+nxY7taH2o0e0yMPZuZNWY1cXLc/5eR51dfzbPXigPodIHwAAIABJREFUaxatyYvdu/kFNj+v45HNzVtX6OIl7n95KeVFIURd2N3fBPDi099fA/ABjOCtGapb8Pw88LWvceLdvMmJf+QIF8Xn5IRuZDM5yYC26uLxD//A5yayjEHtsTo/r7c5zMujMKelURisy8G2baMrpmJpg4MUnv37WRB8/TrFemSE5RslJRSdkhI+Z2iIQmez6eeEU1/P5/T28ktCbX5TXa3d+oV2IgNoOanNfvx+Wl3WxExPT2iR9cGD/FxVQ9DCQiYSOjvp7rrdfM6DB9qilZKuvPoyamri3+zixdDmCZcu6dKajAz9ORsWZklJi6eC94bFpXVJKfOe/i4ATKjbUZ77MoCXAaCmpuZQ12L2vmFB1BaF5eW6YWReHn+/eZMFrYvt4aB63y21v95i47p+nROwpSVUSFU87tEjupk7d+paOCm5vEwt9zp1isLQ0cEgflMTBdPrpSD29VEIMjL43J07l5ZUmZig2PT387rT07SabTYKY16eznKHl53s3s3XbG3ludu3a+FSVFbS2lMW41e+EpocUsmU3l5ac6qt1aNH/KIoL+d4lFUcK3ly+jRjfqo2MzNzay8zW7OkhZRSCiFiqqeU8lUArwKM4SXqdbcio6O0kFpaGN/Jy6NF9fzzev3l7OzigqfaFiWK/n7GmdS4rAwMcDLb7dGtMFUQ3NjIWJu1CLulRf+elsbSmpoaCsHUlG53tRTy82lFzc7qjiw+H4Wqqooi5/eH9vVTYeepKdYnVlXRTX377cjrK+E+dEjvIGYlLY3vq66OQtnTQ9E+fpzjUcmb4mIKuRK88HXEypUfH6flfPjw1ha8xVip4A0JIcqllANCiHIAw4s+w7AiBgZowakJB3CS9vXRYtixg/f19+uGAj4frSFr0iLRqB5uKjs6PKw3ge7o4CRsaYnc+1ZKune9vTrTbGWhjaHT05fXJsnjofgODtKFPnqUbm5vL61K65pW5fqrLi+TkzqWlpZGa6+uLnKVTHk5/0aLZUmdTorU+Dg/hydPmH2urORnNzPDcR47RutNteefm2OC5N13eZ2qKv7NV6t0aLOwUpf23wMYsyQtCqSU/2qx65gs7fIZHmaAe2KCVo1qC56RQesqJ4eZz5ISWm8jI3QzVaZSLapfrXIFNUmnp3lY6+nS0ymCWVk6E2vtx6dQm4JPTdHNzcigeKy0nszno6B2djJx0dQU+jnMzurSDtW4NCcnsiC6ro6xv9xcbVmqLSGtFBTo/oXxftH09+tN0tW2mD09tCStnVFmZ/nFNz/PspQnT2g119cv55PZPCSs8FgI8ddggqIIwBCAfw3g7wD8FwA1ALrAspRFa82N4CWG2VkKn8vFiRJeCwbQQqqspOC43ZwYAwOcsA0Nq1+J7/dzbe3u3RRgJYTj4xyHlZMnKUAzM/pwu3luaane2GapBIMUubY2CumOHQu/75kZClhDA8c/PBxaJmKlpoZjc7tp4apOKuFLztQ+wCUliyeIgkFabwUFOpscCPDLob1dZ+CbmjjG2VkmMb785dXNvCcDZqXFJkVKxvKURaI2uk5Pp2ioAlTFsWM61uXxcPJ0dXECNjWtrCXUYoyO0lJ78UWO7e7dyFZIDgffgwq6hx8ZGcvr3jI5ydhbdjYtpsViln4/a/EaGnTjT7UJEqAzyY8fL17CokINAEXR56MwlpdT/JYTe1QlL0VFOuFz9y4/1507l3atzYgRvE3K1BQtp23baE1Y3Sv1uNqIRrVLDwQ4iWtqdMv37m5afdnZFL6iotUZ7yefRLZaKirixM/MpJtrrWlLFCMjdBHVBkULISXFcX6e1pXbHbqNJMAvBtWpJi2NLnt+PuNwXV2htXbWvnkA/047dvBz6OnhF8+OHXSRl4vai9fsakbM0rJNSk6OXlJmbXPk9+tuJzt3UtyUiExM0LJ67z0+t66OWVG1/+zdu9qCKS9f2fh8Pk7skREe1hoyFaNbCwoL6aJ6vYt3Hbl8Wa9csDYS2LOHt3fsiHRHm5qY8Lh6VW/G8+GHfGx+nq+fmsqYoCpxsdsproWFy7es5+b4RdXTw7+hEbv4MBZeEjM7S/dLtWMfHORC88JCZvpiBfm9Xlp2XV2cfHV1Os43PKx3zNq9e/GlXFYCAZ2hnZqi5VNSwphTdjZfV3U6WUuuX6cQhZfKABSewUFdcgJQ9CsrKWbxlnh0djLzu3s3xce6FWNpKWOm1tdwOFhDtxRUS6zeXo65poautxE7jXFpNzmtrQz+Z2QwsL5nT/xuqZS0vjo7acFUVekJ1N3NCVxaSksxngxpezstmW3b6BJulMr/7m6+T2sThGCQ1lF7Oy0xv59CrKze5YjI5CTrI4uKdBw1WsurvDy68AcOLH7NqSltKY+P83nKOjeNASIxLu0mJhikaE1O6o2ul2I9qc1/SkpoLba3sy/dgQN6y8fHjxkjCu/JFo6UtBgPHIjep209KS1ljVswSCtUreDIy2MW2+vlZ1hfH3+zzWjk5jJWeOcOxUmtdc3Lo6CqlvAuV+zdxjye0FCAzUYLuaaGRdBG5FaGEbwkZWKCE0vFmFSB7HLJzKQ71tbGeJTTqVsw1dZy+VJXF4uH1b64VkZH6a5uNLEDaJ06naxbGx2lhWTtdgwkrmA3NZWWpHJxd+zQTUStdHbq9a9zc0yQjIxQ8IqK+Nj27WbVRKIxgpekqA2ypaTbEwjQQlvJJi5C8PmNjbz+kyeMCdbV0RKanOTE7eigOFqXrnV2rizbuNo0NHD8L7ywNl2Ay8r4t7l7N/Y516/r1vdOJ4ur8/ISn6k2aIzgJSnNzYytTU3RVfJ6Y7dIXyopKXRnKyooEp2dXDpVWspJ6XIBH3/MmN/27dpdO3gwMa+/GlRWrt02hjMz/LykpBWZm8u/Tfjfx+nUa3e36qY7a41JWhjiwutlkL+zk3GuhgaK3OAgJ3V2Nq0+A/F4dCY8M1N3QH7mGSaXBgeZ4PH7GZZobGToYKMkepIVk7QwJATVpWR+nqLn9bIBaV0dM8VbfQ1nOA4Hrd9t2yhsnZ166Z+ynoNBfmkMDDB22trKeGy07iqGxGAsPMOiqPq6J0/0agFT+7V05udjl/dIyVCBzba6y/w2O8bCMywbtYi9tZV1dc8+a7KGK2GhWkYhNmaGe7NhBM8QgXV/CKeTXUqWsuLCYNioGMEzhDA9zdUCfj8zsqvVTMBgWA+M4BkiyMlhMP2TT3i7oIArLUpKTI2YIbkxgmcIQa3xnJ/nXg05OVwmde2aPiczk9lHUz9mSDaM4BmiMjen14YqxsaYwBgZ4bK2O3eAb3xj/cZoMCwVI3iGqMzNRS7BKiwM3W0snk2rDYaNhHFIDFHp64u+obUV484akg3zL2uIQG2co/Z0MBg2C0bwDBG0tXGpmFnXadhsGMEzhKD2Zt3IrZ4MhuViBM8QwpMndGVNZ13DZsQIniGEkRHTrcOweTGCZ/gCn4/lKIttVm0wJCtG8Axf4HJFbuhtMGwmjOAZvmBsjOtmDYbNSkJWWgghOgG4AQQA+BdqwGfYmAQCbEd+8uR6j8RgWD0SubTslJRyNIHXM6whvb1sQGndicxg2GwYl9YAKbnFY2Pjeo/EYFhdEiV4EsDbQohPhRAvJ+iahjVieJgbSC+2dtZgSHYS5dI+K6XsE0KUAHhHCPFQSnnResJTIXwZAGpqahL0soZE0NNj9lMwbA0SYuFJKfue/hwG8N8AHI1yzqtSysNSysPFxcWJeFlDgti5kxnamzfZ2t1g2KysWPCEEE4hRLb6HcBXAdxb6XUNa0dWFvDcc2z39NFH7JZiMGxGEmHhlQK4JIS4A+AagDellD9PwHUNa4jNBuzfz70rLl9m1tZg2GysOIYnpXwCYF8CxmLYAFRXc7XFjRvsibd7t2n0adg8mH9lQwQ5OdzLwuejizszs94jMhgSgxE8Q1RSU4FDh4CaGuDSJWBgYL1HZDCsHLOJj2FB6utZsnL9OjA1xV55fj+tP7+fS9LUz8pKCqXBsFEx/56GEIJBJiy6uwGvl2KmBO3xYx5OJxuEpqbyCAaB0VGgtNQInmFjY/49DQC4vKy3Vwvajh3cplGJms1Gq+7aNT6+b59OZty7x/scjvV9DwbDYhjB2+JICfT3A48eUbD274+9xCwtDTh+HPj0Uwrf4cO0Ant7gVOn1nbcBsNyMIKXREgJeDyRG2Qv91oDAxS6tDRg716gqGjx59lswJEjwGefAZ98QpGsrwfS01c+JoNhtTGCl0R4PMCFC0wc7Ny5vHiZlMDgIIXOZmOd3VJX+glBl/bRI/bQO3Bg6eMwGNYDI3hJREYGxa6zk9bZ7t1AeXnoOYEA18WOjDCRYLNxj4rsbCYanjyhYDU3M8mwEnbsALZtM4XJhuTBCF6SEAwyW1pdDXR06NUQAAuFKyspcmpfiuJiWmGBANfGut20EHfsAMrKEjcuI3aGZMII3gZjbAx4+DC01s3nizxvaEj/PjXF4/BhCp3PB1y8yOSDOgwGgxG8DUduLtDQAExPM3s6N7fw+TU1FLSeHuDOHVp0wSAfy8zU53k8fMzpXL2xGwwbHSN4GwzVeXh4GJifp1taXU1Lb2aGsTsh6Nb6/XRje3qYjLBy+rSui5ubYwcUAHjhBVMcbNi6mH/9DUQwyKzn48dAVRV71Hm9zKrOzPCYneVPZcXFsgDfeYc/nU6eX1VFgXzwANizZ23ej8Gw0TCCt0GYnARu3WJyIS2NxbxdXRSszEz+zM0FKip4OyODYqiELS2NGdxAQG+5COhOJ9b+duXl8dXcGQybDSN4GwS/n0LU1KQFbqFiXo+HMTvFqVMUPcXOncAvfkH39aWX6PqqZWG3bwMvvmhcW8PWwxQVbBAKC1kyUlUFFBQsLHaDg8zC5uUBX/sakxyffaYf9/m4CqKykmUjHg+zt0Kwz115OeODBsNWwwheEhEIUNju32cJyo4dFLTmZmZ1e3u12BUXAwcPcq/Zzz5jzC8lhVZdSwstyomJ9X5HBsPaYgQvSfB4gA8/ZIzv+edpBSpSUri86/594MoVPrZrFx9raKA119Oji4RnZ3me1So0GLYCRvCShJQUoKSE4vX++0xw9PUxcQEwobFjB13j3btDn7d3L1s4qULma9eA7dtp9Y2Nrc/7MRjWAxO2XgMCAS76F0L3l1M95qy3U1NZcxetr1xamhay2VnW6fX300pzOimGJSUsRA4nP59u74MHwFtvMdNbX08xfPLErMQwbB2M4K0BNhvdzNRUupiqi7A6xseBtjYu8K+oWPx6mZlAXR2PYJCxuOFhWnEeD3vWZWeHPqekhIIHsKlAXx8TJA8fUkCtqzIMhs2KcWnXiJYWZleFoMVVXMyfY2NcF7t3L1dBLHXpV0oKLbTmZsb2du2iyxqehX34kD+/+lXg6FEK7LVrFOKOjsS8R4Nho2MEb41wONhK6d49uritrcAHH7D85NQpFg0LsfLXqaqiW3ztGq3H0VG6vUNDvD89nUL7/PNsDzUywv0r/P6Vv7bBsNExLu0aUlfHTOrPfsZauOef54qJRAidQkquonj0iPE61TrKbqeoKoSge11eTvH1+ZKzEFnKxH5+hs1NEv6LJycTExQ7RX4+f370Ea2r4mIehYUUp3gYHub2iV/7Gq/f38/DbmcWtqeH4ldXx/W5ubmR18jIoDu9EfF6GZNc6PB6WWvY3LzeozUkA0bwVpm5OSYLxsa43OvkSf7e18cNrufnuWLC72cn41u3aJUpAczLi7RgPB42+rx+nbfffZeJkYoK4NgxnbBoaAA+/pjn5+QkR7NOj4edXebm+J4cjtAjJ4cJGHU7JYWrTgoKVt7B2bD5MYK3iszOMk4XCHBytrbyUNhs/Oly8QB0w06/n7G3uTlaaXa77lxss+mkRGMj43Y5OZGvb7cDzzxDK7KyclXfasJwOGittbXRzW5o4PtbSKwPHmT35+eeS8wGR4bNi5DhjdSWcxEhfgnAeQA2AP+3lPIHC51/+PBheUP1J98kqKVb4ahuJbG4cIHLxKandSYVYDytspKWSzDIWFV2NpCVFdokIB5mZymSybCzmJQS4qlJOzYGtLZKuN0C9fWMQdps0T/ntjYmZk6cMDG9rYwQ4lMp5eFYj6/YwhNC2AD8RwCnAfQCuC6E+Hsp5ecrvfZa4HLRigrfDGepvPkmf7a06IkJLFxmonraRdN+v58tnrq6aPGdOLH8sSVLjd0rr7wCl8uFc+fOQQiBggKJn/zkLDIySvFrv/Yn+PnPeV5NDcMDVgFvbGRG+tEjPmYwRCMRLu1RAG1SyicAIIT4CYBvAtiwgufzMeD/+eeMGQGMlx07Fv386Wl2Gh4cZJyssTHynK9+lbGk+/d5VFUxWaCSE1ZGR7nQf2iIMbqKCgquVZikjOxivJmRUsLlcuH8+fMAgHPnzuHs2bM4f/48zpw5g/37JbZtE3j/fZbRdHfzs92zh8kYIbieWO3lsdStJw1bgxW7tEKIbwH4JSnl//D09m8BeEZK+XuxnrPaLq2qKVNlFk+eUIQcDi1w0SgtBQ4donU2OUmRGxjg9crKOLHu3GFxr99PdzMvLzSrOjMD3LypY3JOJy2Sqiq6olevUvBaWihyJuakkVJ+IXKKM2fOfGHxAfx73LvHv0dnp37utm0MAczPA59+yix1bW1yJGoMiWMxl3bNBE8I8TKAlwGgpqbmUJdqybsK3Lypl1gJwUmi9LWggBaaECzOBXQbdCtOJwWppISu59AQrcKZGYpUZSVLQSYneTs/n9fOz2ecbXSUMblYLZi+/vX4Y01+P89VbvJmRkqJFItKBYPBL8RO8cknFLyaGpbe3L3L+zMy+CWXlcW/i9p/d6XhCkPysOoxPAB9AKott6ue3heClPJVAK8CtPAS8LpRCQQoTtnZtASCQQpeRQVr1MbHeVhRsbTw67jdtCKys2n9HT7M546O6rqvYJDnjY9z1cKjR3xufj6fU1vLLRSfPAm9/tDQwvvDPnpEFzozk0K7f3/yZFqXi7LwrJw9ezbEwgPYROHyZf5N6+r4Gc/M8EtK1SOOj9Pau3GDf4tdu0Jbahm2JokQvOsAtgkh6kGh+w0A/yQB1/2CwUGKTHp66JGWpruMKKPA7ebt9HTt8mRkcBJE49gxisr8PC2FqSnerwpbn302NA6XkUHLrbWVk81up6ubm8sOJOq5ExORyYjKSrrV7e2soSsr4zWKimiNeL2MTalF/gDf47PPRi8a3kxY3VnlxlrdW6vopaXpfT+UtZ6VxesUFPBoaWGWt7+fX3gff8zPu7lZn2vYeqxY8KSUfiHE7wH4BViW8iMp5f1FnrYknjyJr2+bEDrQn5HBIHZrK5MO2dkUl4wM7cpmZNCSmpmhQJaWMqExNwf8yq9QfK5dY9ZPLcuy21k83NYGvPce3aqGhtCWTg4HRTQtTferAyimQ0M6ljg4yCMW9fWhve02M0II5OXlhcTszp07BwDIy8v7Quz6+2m519ToL5jo1+MXSVERP8PRUd1OayUZb0Nyk5A6vKWSqKSFlHQfZ2dpNamduerrKSqPH/NxgBZgRgaFaGQk9Do2GzN7TicPl4tBcBXb++gjJjNKSkKfNzenX7e8XG+F2N29sJDFy0svLb3mLtmx1uFZb3u92gI/cIDJIoMhnLWI4a0bqqFmTg4nwf79jHfl5TFofeAARS4jI3bRbTCo93qdmaFL7PGwBbrXSxcoIyNyW8PZWb5GaiqFUZVKAKENNQsLGT/66KPF3092Nq2Pri66zbdv87lbyQULT1AIITA4SLGrrOTfeCskbwyrQ1JbeKuJlMAbb+jlWdnZdI9dLgqdzaZjd7m5FNnUVIqeahJw6BDXxlqTIsePM8sYi5QUfX5JCV352lqWWcTbVGCz4PPRfZ2YoNCZpINhMTa1hbeaqHq9ykomLdQuX5OTnHyxSh1sNlp89fWsBwP4u9vNONL9+xQuKSN70BUXawvTbueEDwYZw+zt5Z4Vieqbt5YEg0wKqWJqtVQu/LDePz9PK7e8nI1RjVVnSARG8GKgYnDbt/Nnairdzb4+Wh0DA3wsENDucH8/Y0w1NTrJkprKiex0UvAAuqnWTbRVEmNyku65x6O3X8zN1aUwPT18PNksndZWxlMBfg5C8P0JEXmo+9VObOGhBINhJRjBi0IwyJIWIRjLAyhcRUUUNrudwtf3tNqwtJRxNlXS0t2ta+ZaWjjhCwtpGT5+rMXu1Ckdn7t6VV8XoIVz+TKv3dyst10MJxBgEmZoiCL77LMbL9GxYwdd/ocP+Znu3BmZADIY1gIjeFFQpSyAFjGAltaePSxvcTrpkt6/z3Pr6rQoDQ3p6v87d+iWTUzQQgNoGW7fHuqazs1RCNxuClxqql6/++GHvL4qUfF4+BqDgxxTairv27Nn44mdorSUIjc4yDXMra0UQmPBGdYSI3hhjPz/7Z1rbBzVFcf/f9uxHeInMY2dOjixDXGhAkOCxStNlPAIUSGlaqv0S2mpRGmFVD5UFQgJofKJtrRSpbaoL7VFqNAXbUCgEEpKhSChwUpC0uDGhkSJsR2DSRbiFxuffjh3OpPN7O54PWuvs+cnrXZ25s7MmTMzZ8+999xzh/3qV0uLvqT796vn1NOjE96sXu0HP3d1+TOGVVWpR5fa3jQwoN8LF2ruttQqqYh6jpOT6rFdcIEaQy+ANpFQY9nTo4ZudFTlWrZMA2+7u7X619ycf/3MBFKNf2OjHxO3cKEavvlWTTfmJ2bwAvT1qfcBaDBxWZkaorExYPt27XVNJjWpZ3u7dkaUlamBWrdODeVLL+n+q1apcQwOY6utDU8WMDqqxvPoUfXkSPXYhof9T3m5ekmXXqrGgdQq7O7dwOWXZx6mVmiQWuVvatLOmO5u7QXv6Dj3R5QYc4uFpQRIJLTjIJlUT8v7TEzoi+nNLzsy4gc0e9XSsjL11OrrdV0i4ff0dnaqQerr07bB1lYNbPb29ap5p06pl3bihHp7DQ1+qvdUQzk0pHF6q1bN/2rh1JS2ex46pG19HR1nz6trGFGwsJRpUFMTniodUINWXa09sGNjatD27VPP7LrrtMzUlB/g/N57Gm/X2qpVT0Bf5OXLNTZveFg9xI8+0qqqR3W17lNTkz78pL9f2w67usLz7c03SkpUL8uWadD1a6+pEV+5cvrz9BpGJszgZWFyUgfze6MoDhzwh6g1NekLGZZ23AsSbm8/c31lpa7bufPsrC0bN2YPLj5yRKvO11xz7nlBpaVq7C+8UL3hXbu0J3u+xR0ahYsZvCyUlvpV0yVLgKuuivYCeplawoa01dersfQ6MwANro0ykuLoUTV082F+ilwpK1Pv7vjx7Gm0DGM6mMHLQmmpDi175hl9+d55R6ui2YzeihXp04wPDGiHg9ceCGjoycUXa7xepja5a6/VeLaXX9YwlEI1Bsmk9sQODvqTZXs6CwYaB397y+edp50abW06yqRQr9GYf5jBi0AyqW1qS5f6sXGdnZknxwlrD5yY0Ha/0VH1FF9/XUNZvJg/Lxxm7dr0bYklJRrv19ionRaDg9pzWyjjbE+e1Gr3u++q8W5u9sN0gsPIgr9TlxMJTbbQ2am6OnHCsqMY8WC9tFk4fVrbkqqqgMsu05eyr08/HR1qeKJULwcGNBi5vt5PRAD44RmLF2ssnzfSYv367A32yaS2Lw4NaWjKXE1c43lzR46oUW9p0Q6IYI7A6TIyoklSq6r8+EXDyEbe57TIhfli8Kam9KVbsEADe4PV2ERCjc0HH2ibU12dnzUlOLHP5KRWP712wIULtZcX0CSjqUHKp075sXy33hpNzuFh9fYaG9X7m62B9qneXEuLHzQd1/FfeUXvw403zsyAGsWBGbwcEdFsJyIa65baCyui2UzGx9Ub8Sb5SUdbm3pzFRUauLxhQ/pq6OnTOt1ge7sf0pKN2UqllA9vLhOJhP5hkDrxkWFkwuLwckBEPaZkUmPdxsbU2/ACkxMJ9dy8uTMqK/W7rU2Xy8t137ExNTxLlvjHHh9XDyxTm1tpqQ5fe/VVfxa0bHheqDdD26JFZ8qWulxRMT1P7PRpDY7u71dvbuXKeL25dNTUAGvWaJted7d27OzYEd37NYwgZvBCOHBAR1bU1QHbtp05Uc/y5doGV1mZ25ynwQSfmaiu1iQCb7yh43ijVlObmrSXN5FQD2x8XL9PnfKXJybUYJeXaxW7svLsb2/Zu8Zjx7RzZd262a9a1tWpLg4e9Ns4DSMXzOCFUFbm56KrrY03A0kUgzc+riM1RkY0e8rg4PSmaFyw4Mw082F4STbHxvR83nci4S+Pj6suKiu17BVXzF07Wnu7Gt0PP9TgZMPIBTN4IXR05O/YJSX+OFyPiQk1cO+/r98ff+zH47W352dOC9L35NIhop7g+Lh+z1UvsMeaNdpUUGZPrZEj9ujMMiUlakgGBnwjNz6uBm7xYr/KXAjDqUi/va8QKC21VO/GzDCDNwfU1OjY3IYG7eGsrS0MA2cY5zpm8OaAtWvnWgLDKE5y6Gc0DMOYn5jBMwyjaDCDZxhG0WAGzzCMomFGBo/kQyT7Se5xn01xCWYYhhE3cfTS/lhEfhjDcQzDMPKKVWkNwyga4jB495DcR/I3JM+BObQMwzhXyWrwSL5Icn/IZzOAnwNoA9AJYADAoxmOcxfJ3SR3Dw8Px3YBhmEYUYktASjJ5QCeFZFPZys7HxKAGoYx/8iWAHSmvbRNgZ+3A9g/k+MZhmHkkxl5eCQfh1ZnBcBhAN8QkYGMO+l+wwCOpKxuAPBezsLEg8lgMpgM81uGFhFJm8hsTua0CIPk7kyuqMlgMpgMJsNMj2NhKYZhFA1m8AzDKBoKyeD9Yq4FgMngYTIoJoNyzshQMG14hmEY+aaQPDzDMIy8MqsGj+QXSR4gOUVydcq2+0n2kuwheXOa/VeQ3OXKPUXFjARxAAAFG0lEQVRyRhMoumN4mV4Ok9yTptxhkm+6crFGTEfNOENyo9NNL8n7YpbhByTfckMEnyZZl6Zc7HrIdl0kK9x96nX3fnkc5w0cfxnJHST/457Nb4eUWUfyZOAePRinDO4cGXVL5SdOD/tIXhnz+VcGrm8PyQTJe1PKxK4HNyT1OMn9gXXnk9xO8pD7Dh2ySvIOV+YQyTsinVBEZu0D4FMAVgL4J4DVgfWXANgLoALACgB9AEpD9v8jgC1u+TEA34xRtkcBPJhm22EADXnSyUMAvpOlTKnTSSuAcqerS2KU4SYAZW75EQCPzIYeolwXgG8BeMwtbwHwVMz6bwJwpVuuBvDfEBnWQUcRxX7/o+oWwCYAzwMggKsB7MqjLKUABqExbXnVA4DPALgSwP7Auu8DuM8t3xf2PAI4H8Db7rveLddnO9+sengiclBEekI2bQbwpIhMiMg7AHoBdAULkCSA9QD+7Fb9DsDn4pDLHftLAP4Qx/HyQBeAXhF5W0QmATwJ1VksiMgLIpJ0P3cCaI7r2FmIcl2bofca0Hu/wd2vWBCRARHpdssfAjgIYBrTns8amwH8XpSdAOpSRjrFyQYAfSKSOjggdkTkXwBGUlYH73m69/xmANtFZEREPgCwHcDGbOcrlDa8TwI4Gvh9DGc/dIsBnAi8mGFlcmUNgCEROZRmuwB4geQbJO+K6ZxBsmWciaKfuLgT6kmEEbceolzX/8u4e38S+izEjqsuXwFgV8jma0juJfk8yUvzcPpsup3NZ2AL0v/551sPALBE/BFbgwCWhJTJSR+xT9NI8kUAjSGbHhCRv8d9vpjk+TIye3fXi0g/yU8A2E7yLffPNGMZoBlnHoY+8A9Dq9Z3Rj12HDJ4eiD5AIAkgCfSHGZGeihkSFYB+AuAe0UkkbK5G1q9+8i1sf4NwEUxi1AQunXt4rcBuD9k82zo4QxEREjGFkoSu8ETkRty2K0fwLLA72a3Lsj7UDe+zP3Th5WZtjwkywB8HsCqDMfod9/HST4NrYpFfhij6oTkLwE8G7Ipin5mJAPJrwL4LIAN4hpJQo4xIz2EEOW6vDLH3L2qhT4LsUFyAdTYPSEif03dHjSAIvIcyZ+RbBCR2MaXRtDtjJ+BiNwCoFtEhkJkzLseHEMkm0RkwFXbj4eU6Ye2KXo0Q/sGMlIoVdqtALa4HrkV0H+N14MF3Eu4A8AX3Ko7AMThMd4A4C0RORa2keQiktXeMrSBP7asMIyWcebfAC6i9lKXQ6scW2OUYSOA7wK4TURG05TJhx6iXNdW6L0G9N6/lM4g54JrD/w1gIMi8qM0ZRq9dkOSXdD3JjajG1G3WwF8xfXWXg3gpERI1JEDaWs7+dZDgOA9T/eebwNwE8l61wx0k1uXmTh7XCL0yNwOrWtPABgCsC2w7QFoj10PgFsC658DsNQtt0INYS+APwGoiEGm3wK4O2XdUgDPBc65130OQKuAcerkcQBvAtjnbnRTqgzu9yZoD2JfHmTohbaH7HGfx1JlyJcewq4LwPegxhcAKt297nX3vjXma78e2pywL3D9mwDc7T0XAO5x17wX2qlzbcwyhOo2RQYC+KnT05sIRDnEKMciqAGrDazLqx6gxnUAwMfONnwd2kb7DwCHALwI4HxXdjWAXwX2vdM9F70AvhblfDbSwjCMoqFQqrSGYRh5xwyeYRhFgxk8wzCKBjN4hmEUDWbwDMMoGszgGYZRNJjBMwyjaDCDZxhG0fA/wkyrGKSpIFEAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "xy = np.array([0.0,0.0]) #開始地点\n", - "T = 1000 #stepの数\n", - "\n", - "random.seed(1234) ## 同じ答えにしたければ乱数を固定しておきましょう\n", - "trajectory = []\n", - "for step in range(T):\n", - " xy += np.array([ random.uniform(-1,1), random.uniform(-1,1)])\n", - " trajectory += [ [ xy[0],xy[1]] ]\n", - "trajectory= np.array(trajectory).T \n", - "\n", - "fig = plt.figure(figsize=(5,5))\n", - "plt.scatter(0,0,marker=\"x\",color=\"black\",label=\"t=0\")\n", - "plt.scatter(xy[0],xy[1],marker=\"x\",color=\"red\",label=\"t=\"+str(T))\n", - "plt.plot(trajectory[0],trajectory[1],color=\"blue\",linewidth=1,alpha=0.3)\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ATuATFNHk6zp" - }, - "source": [ - "今の場合、x方向y方向いずれも、 \n", - "特別な方向への指向はなく完全にランダムですが、 \n", - "獲得関数や勾配といったものが定義されるとさらなる応用が考えられます。\n", - "\n", - "たとえば、地図に載っていない山があったと仮定して、 \n", - "その山の頂上にたどり着くためには、上のようなランダムウォークでは効率が悪いので、 \n", - "山の傾斜の情報(勾配)を利用しながらランダムな大きさで進む、といった方法が思いつきます。 \n", - "\n", - "大きさをランダムにすることで、局所的な峠に捕まることを避けることもできるかもしれません(場合によりけり).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iy5xGzVUm88o" - }, - "source": [ - "**$\\clubsuit$進んだ注**\n", - "\n", - "ランダムウォークやその派生の方法は、 \n", - "最適化や確率分布からのサンプリングが必要な状況下でよく用いられ、 \n", - "統計学、自然科学、機械学習など様々な分野で活躍しています。 \n", - "c.f. サンプリング,マルコフ連鎖モンテカルロ法" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter5_Probability.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter6_Regression.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter6_Regression.ipynb deleted file mode 100644 index 7e3ee1a5..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter6_Regression.ipynb +++ /dev/null @@ -1,830 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Vysbhio4dRuQ" - }, - "source": [ - "# 相関・回帰分析\n", - "\n", - "*相関関係は因果関係を含意しない (Correlation does not imply causation)*\n", - "\n", - "[この章の目的]\n", - "初歩的な相関分析と回帰分析がPythonで出来るようになる。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mm1vDuyut69e" - }, - "source": [ - "今回使用するライブラリをインポートしておきましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "vd39tZH4t6UZ" - }, - "outputs": [], - "source": [ - "from matplotlib import pyplot as plt \n", - "!pip install japanize-matplotlib \n", - "import japanize_matplotlib \n", - "import numpy as np " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7k8KOlPCIuaF" - }, - "source": [ - "## 相関分析 (復習)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Fm6stZb_IwM1" - }, - "source": [ - "1年次の必修科目、データサイエンス入門でも相関分析を学習したことかと思います。\n", - "\n", - "解析したいデータが2種類だけなら、プログラムを使うご利益はそれほど感じられないが\n", - "「多くのデータ間の相関関係を系統的に調べたい」「複数年度に渡るデータを解析したい」 \n", - "あるいは「その結果をベクタ画像として出力したい」となると \n", - "これまで学習してきた繰り返し操作や作図が役に立つ。\n", - "\n", - "\n", - "まずは簡単な例から初めよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HPWcU6_ylxcu" - }, - "outputs": [], - "source": [ - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aK_TO1InnQ2x" - }, - "source": [ - "上に示したのは、2017年の宇都宮市における月別の平均気温$x$と \n", - "世帯ごとのアイスクリーム・シャーベットの平均消費金額$y$で、 \n", - "散布図にすると↓こんな感じ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "T0uJSEOQmE47" - }, - "outputs": [], - "source": [ - "plt.figure(figsize=(6,6)) \n", - "plt.title(\"宇都宮市\") \n", - "plt.xlabel(\"平均気温 (℃)\")\n", - "plt.ylabel(\"世帯あたりのアイスクリム・シャーベットの消費金額 (円)\")\n", - "plt.scatter(x,y)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "DHPfNSoymCxz" - }, - "source": [ - "「平均気温とアイスの消費には相関がありそう」という直感の通り、正の相関があることが見て取れる。\n", - "\n", - "では\"どれほどの\"相関を持つかを表す量として相関係数を算出してみよう。 \n", - "相関係数$r$は以下のように定義され\n", - "$r = \\frac{ \\sum^n_i (x_i-\\bar{x})(y_i-\\bar{y})}{ \\sqrt{\\sum^n_i (x_i-\\bar{x})^2 \\sum^n_i (y_i-\\bar{y})^2} }$ \n", - "$\\bar{x},\\bar{y}$はそれぞれ$x,y$の平均値で$\\bar{x} = \\frac{1}{n} \\sum^n_i x_i $, $\\bar{y} = \\frac{1}{n} \\sum^n_i y_i $ \n", - "と書ける。\n", - "\n", - "下付き添字$i$は$x$の$i$番目の要素であることを表し(つまり$x$をn次元ベクトルとみなしたときの第$i$成分が$x_i$) \n", - "今考えているデータの場合、$\\sum$の和記号は$i$は1から12までの値を取り、対応する値を足し上げることを意味する。 \n", - "(\"$i$の和が1から12までを走る\"と言ったりもする)\n", - "\n", - "$r$は必ず-1から1までの値を取り1.0(-1.0)に近づくにつれ強い正(負)の相関を示す。 \n", - "(強いというのは曖昧な表現で絶対的な線引がある訳では無いことに注意)\n", - ">$|r|\\leq1$は、コーシーシュワルツの不等式を用いるか \n", - "上の$r$の定義と$n$次元ベクトル同士の内積の定義とを見比べると示せる(暇があればやってみよう)。 \n", - "\n", - "次に`x`と`y`、2つのリストを引数に持ち、相関係数$r$を返す関数を作成してみよう。\n", - "\n", - "にらめっこするために式を再掲:\n", - "$r= \\frac{ \\sum^n_i (x_i-\\bar{x})(y_i-\\bar{y})}{ \\sqrt{\\sum^n_i (x_i-\\bar{x})^2 \\sum^n_i (y_i-\\bar{y})^2} }$ " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Sqr9IFdzoT7A" - }, - "outputs": [], - "source": [ - "### ライブラリを一切使わない方法\n", - "def cor_coeff(x,y):\n", - " # xとyの長さが違う場合や長さ0の場合はエラーを出す\n", - " if len(x) != len(y) or len(x)==len(y)==0:\n", - " raise ValueError(\"Error: x&y must satisfy len(x) = len(y) != 0\")\n", - " n = len(x) \n", - " ## 平均を計算\n", - " xbar = sum(x)/n; ybar = sum(y)/n \n", - "\n", - " ##分子(numerator)の和を計算 (初期値を0に)\n", - " s_n = 0.0 \n", - " for i in range(n):\n", - " s_n += (x[i]-xbar)*(y[i]-ybar)\n", - "\n", - " ##分母(denominator)の計算 (和を先に計算して積を取り、最後にsquare rootをとる)\n", - " s_x = 0.0; s_y = 0.0\n", - " for i in range(n):\n", - " s_x += (x[i]-xbar)**2 \n", - " s_y += (y[i]-ybar)**2\n", - " s_d = (s_x * s_y)**0.5\n", - " # 一行で書くなら\n", - " #s_d = ( sum([(x[i]-xbar)**2 for i in range(n)]) * sum([(y[i]-ybar)**2 for i in range(n)]) )**0.5\n", - "\n", - " return s_n/s_d # 分子/分母の値を返す\n", - "\n", - "cor_coeff(x,y)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9IM8Ebhopmre" - }, - "source": [ - "という風に、$r$が約0.83で、非常に強い正の相関を示すことが分かる。\n", - "\n", - "少しずつ自作関数に慣れてきたら、上のように意図しない引数を入れたときの挙動なども設定すると \n", - "より**安全な**コードを作る事ができる。\n", - "\n", - "`x`と`y`の長さが違う場合(上の`raise`文でエラーが生じさせる場合)を試しておこう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cor_coeff(x,y[1:])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "相関係数の計算は、numpyライブラリを使うと実はもう少しシンプルに書ける" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mG4Fie5epxP_" - }, - "outputs": [], - "source": [ - "def cor_coeff_np(x,y):\n", - " xbar = np.mean(x); ybar=np.mean(y)\n", - " return np.dot(x - xbar,y-ybar) / np.sqrt( np.dot(x-xbar,x-xbar) * np.dot(y-ybar,y-ybar) ) \n", - "\n", - "cor_coeff_np(x,y) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "criDMWxYrJUo" - }, - "source": [ - "とすると、関数自体は3行で書けてしまう。\n", - "さらに$\\bar{x},\\bar{y}$をいちいち定義しないように書き換えれば、関数の中身自体は一行でかけてしまいます。\n", - "\n", - "上のコードを少し補足しておくと...分子や分母に現れる \n", - "$\\sum^n_i (x_i-\\bar{x})(y_i-\\bar{y})$や$\\sum^n_i (x_i-\\bar{x})^2 $といった項は、 \n", - "$i$番目の成分に$x_i-\\bar{x}$を持つベクトル$\\tilde{x}$と \n", - "$i$番目の成分に$y_i-\\bar{y}$を持つベクトル$\\tilde{y}$を定義しておくと、 \n", - "$\\tilde{x}\\cdot\\tilde{y}$, $\\tilde{x}\\cdot\\tilde{x}$, $\\tilde{y}\\cdot\\tilde{y}$といったように\n", - "ベクトルの内積の形でいずれも表すことができる。\n", - "\n", - "`numpy`にはブロードキャスト機能(Numpyのノートを参照)やベクトル積を計算する関数```dot```が備わっているので、 \n", - "それらを活用することで相関係数の計算を短く実装することができた。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eDhJHIZesEMQ" - }, - "source": [ - "更に言うと実は`numpy`には相関係数を計算する関数```corrcoef()```が予め用意されていて\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DZ8RiA7ssJUB" - }, - "outputs": [], - "source": [ - "print(np.corrcoef(x,y))\n", - "print(\"r(x,y)=\", np.corrcoef(x,y)[0,1])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n9KiMZZJsNZU" - }, - "source": [ - "を使えば \n", - "[ xとxの相関(=1.0), xとyの相関; \n", - "yとxの相関, yとyの相関(=1.0)] \n", - "といった2行2列の相関行列を取得することが出来る。 \n", - "確かに上の相関行列の[0,1]成分は、さっき計算した$r$の値と一致している。\n", - "\n", - "「初めからそれを教えろ!」と思うかもしれないが \n", - "**考えたい量を数式として定義してそれをプログラムに変換し、値が正しいことを確認する作業**は \n", - "**式(考え方)とプログラミング双方の理解を深める上で非常に重要**である " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-P5hjR0O3AOe" - }, - "source": [ - "### 相関分析と因果関係" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "NatgqwbX7Fua" - }, - "source": [ - "以下では、ある一つのグラフの例を見ながら、冒頭の \n", - "*相関関係は因果関係を含意しない (Correlation does not imply causation)* \n", - "に関して説明する。\n", - "\n", - "下の図は、2017年の家計調査・気候データから作成した散布図で、 \n", - "千葉市での平均気温と、しめじの消費支出の間の相関を示している。\n", - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UM5GOH1q8X5_" - }, - "source": [ - "生産量と平均気温の間に、強い負の相関が見て取れますが、これはどうしてでしょう? \n", - "「寒い季節には鍋が食べたくなるから」と言われるとふむふむと感じる一方で \n", - "「そもそも生産量が冬に多く、市場に出回る量が多いから」と考えることもできる。 \n", - "したがって、このデータを見ただけでは、しめじが冬によく売れる理由までははっきりとは分からない。\n", - "\n", - "事実、しめじの旬はGoogle検索によると9月下旬から11月初旬とのことで、 \n", - "最も売れている時期(12月1月)とは少し時期にズレがあり、 \n", - "購買意欲は必ずしも\"旬\"によって決まっている訳ではなさそうな印象を受ける。\n", - "\n", - "気温と特定の野菜の購買意欲の真の関係を知りたければ、 \n", - "「その野菜はビニールハウスなどの生産設備の向上で年中、安定した味で生産ができる」 \n", - "「比較的新しい品種で〇〇といえば秋、のような固定観念がない」 \n", - "「季節ごとの生産量がほぼ同じ」 \n", - "など、他の条件が揃った状況下で比較しなければ確度の高い議論は難しい。\n", - "\n", - "このように、因果関係を紐解くことは、我々が思うほど容易ではなく、それ自体が一つの学問分野になっている。 \n", - "気になる方は、たとえば\"因果推論\"で調べてみよう。\n", - "\n", - "\n", - "[疑似相関をまとめたおもしろいサイト](https://www.tylervigen.com/spurious-correlations) \n", - "のように顕著な例ならば「あぁ疑似相関だな」と気がつくが \n", - "我々が普段見ている情報の中には、擬似相関であるとひろく認識されていない情報もあるはずだ。 \n", - "物事の因果関係を断定するような言説に対しては一歩引いて見る姿勢も重要なように思う。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KqrDeFtadahi" - }, - "source": [ - "## 回帰分析\n", - "\n", - "以下では自分が立てたモデルを表現する関数のことを*モデル関数*、 \n", - "モデル関数とデータとの齟齬を最小化するようにモデル関数の係数を決定することを**回帰**、 \n", - "そして回帰に基づく分析を指して**回帰分析**と呼ぶことにする。\n", - "\n", - "データとモデル間の齟齬を表現する方法はいくつかあるが、 \n", - "以下では最もポピュラーな誤差の二乗和を採用することとし、 \n", - "その最小化を考える(**最小二乗法**とも呼ぶ)。\n", - "データや関数、最小二乗法をもう少しきちんと定義しよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PNqDUVt2U6zV" - }, - "source": [ - "$D$個の点$\\{x_1,x_2,...,x_D\\}$でのyの値$\\{y_1,y_2,...,y_D\\}$が観測されているとき、 \n", - "最小二乗法とは、ある決められたモデル関数$f(x)$との齟齬$\\chi^2 = \\sum^D_{i=1} (y_i - f(x_i))^2$を \n", - "最小化するように関数$f$の係数を調整すること。\n", - "\n", - "$f$自体をどう決める/設計するかも重要な話題だが、この授業では深入りしない。 \n", - "たとえば回帰を行う関数として、ニューラルネットワークを採用する立場を採ることも可能。 \n", - "参照: [おまけのノートブック: ニューラルネットワークによる回帰](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_chapter_ArtificialNeuralNetwork.html)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HVBB0OmSdxxo" - }, - "source": [ - "以下では、$f(x)$として単純な多項式のみを考えることにする。 \n", - "まず回帰を学ぶために、適当なデータを生成しておく。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "6IUd5fJ3dZBw" - }, - "outputs": [], - "source": [ - "\"\"\"\n", - "0,1で定義された区間でsample_size(int)個の点で\n", - "sin関数に正規乱数に従う誤差を加えた値を返す関数。\n", - "- sample_size: データの数\n", - "- std: standard deviation (標準偏差σ)\n", - "\"\"\"\n", - "def create_toy_data(sample_size, std):\n", - " x = np.linspace(0, 1, sample_size)\n", - " t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape) \n", - " return x, t\n", - "\n", - "#私と皆さんで結果が変わらないよう乱数のseedを固定\n", - "#randomモジュールの関数を使うときはrandom.seedを、\n", - "#numpyのrandom関数を使うときはnp.random.seedを用いる\n", - "np.random.seed(1234) \n", - "\n", - "x,y = create_toy_data(10,1.e-1) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pThY_bnkd6Ny" - }, - "source": [ - "これをグラフにしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "fnJAT51od7hR" - }, - "outputs": [], - "source": [ - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(x, y, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Txmm0IZQeh4u" - }, - "source": [ - "こんな感じ。\n", - "\n", - "このデータを、$p$次元の多項式(p=0,1,2,...)を最適化することを考えてみよう。 \n", - "$p$次式($p$次元多項式)は、$p+1$個の係数, $a_0$から$a_p$を使って\n", - "$a_0 + a_1x + a_2x^2\\cdots +a_p x^p $と書くことが出来る。\n", - "\n", - "上で定義した最小二乗法は、この関数と各データ点の齟齬が二乗誤差を最小にする係数$a_0,a_1,...,a_p$を求めることに相当する。\n", - "\n", - "$p$次元の多項式の最適化は、実はnumpyにある関数```polyfit()```を利用すれば簡単に実行できる。 \n", - "他にもscikit-learnなどのライブラリもより高度な関数のフィッティングが可能。 \n", - "\n", - "\n", - "> $\\clubsuit$進んだ注: \n", - "多項式で回帰を行う場合には、実はパラメータの最適解は\"閉じた形\"で与えられる。 \n", - "この辺りのことは、[おまけのノートブック:ベイズ線形回帰](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_chapter_Bayesian_linear_regression.html)で詳しく書いています。 \n", - "なお\"閉じた形\"というのは、数学や物理をやっていると出てくる表現で、答えが具体的な形で書き下せる、程度の意味。 \n", - "たとえば 行列$A$、ベクトル$\\vec{x},\\vec{y}$,スカラー$\\lambda$について方程式$A\\vec{x}=\\lambda \\vec{y}$が成り立つとき、 \n", - "$A$の逆行列をどうやって求めるか(数値的にやるのか解析的に求めるのか)はさておき、 \n", - "$\\vec{x} = \\lambda A^{-1}\\vec{y}$と書き直せるので \n", - "「$\\vec{x}$は閉じた形で与えられる」と言ったりもする。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CyOJpVE7xw5p" - }, - "source": [ - "### polyfit/poly1d関数\n", - "\n", - "たとえば今のデータを3次式でフィットしたければ、以下のようにする。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zDkIX4Y2jFDc" - }, - "outputs": [], - "source": [ - "## 多項式をplotするためのxの値を準備(グラフをなめらかにするために、0から1までの間の500点を等間隔に取る)\n", - "xp = np.linspace(0, 1, 500) \n", - "\n", - "#多項式の次元pを決める. 今は3次式.\n", - "p=3 \n", - "\n", - "#polyfit関数で最適化し、返り値(係数)を取得する\n", - "coeff = np.polyfit(x, y, p) \n", - "\n", - "#最適化された係数と、1次元入力xに対する多項式を計算してくれるpoly1d関数を用いて描画点xpでのモデル関数の値を計算する。\n", - "yp = np.poly1d( coeff )(xp)\n", - "\n", - "print(\"係数\",coeff)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MAkx9OThjvX_" - }, - "source": [ - "```np.polyfit(x, y, p)```では、データのx,yの値と多項式の次元pを引数として与え、 \n", - "$p$次の多項式でデータ$(x,y)$をfitしなさい($p$次までの係数を関数がデータと整合するように\"最適化\"しなさい) \n", - "という指令を与えている.\n", - "\n", - "```np.poly1d( np.polyfit(x, y, p) )(xp)```では、 \n", - "fitしたp次元の係数をもつ多項式に```xp```(今は500点)を代入して、対応する```y```の値を返す。 \n", - "上のコードはこの返り値を`yp`という変数に格納している。\n", - "\n", - "最後に、調整(最適化)された3次式の係数を表示してみた。 \n", - "ちなみに、表示される係数は次数が高いところから$a_3,a_2,a_1,a_0$です(ややこしい...)。\n", - "\n", - "グラフを描いてみるとこんな感じ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4E-yeiTVB2ep" - }, - "outputs": [], - "source": [ - "#お絵かき\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(x, y, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.plot(xp, yp,label=\"p=3\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZXSQcr3HYbQa" - }, - "source": [ - "\n", - "さて、$p$次の多項式は$p-1$次の多項式を特別な場合として含むため、 \n", - "一般に$p$(多項式の次元)を増やせば、より複雑な関数を表現することができる。 \n", - "(2次式は3次式の$a_3=0$の場合ですよね?)\n", - "\n", - "$p$を複数変えながら比較した図を作ってみよう。 \n", - "その方法は、$p$に関するループを回すだけ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_GTTZ_cjhiV1" - }, - "outputs": [], - "source": [ - "ps = [0,1,3,6,9]\n", - "xp = np.linspace(0, 1, 500) \n", - "\n", - "# 各pでのfitの結果(xpでの対応する値のリスト)をysに入れ子のリストにしていく\n", - "ys = []\n", - "for p in ps:\n", - " ys += [np.poly1d(np.polyfit(x, y, p))(xp)]\n", - "\n", - "# データのは以後にある\"真の関数\"(本当は知り得ない)の値をxpの各点で計算\n", - "ytrue = np.sin(2*np.pi*xp) \n", - "\n", - "# お絵かき\n", - "fig = plt.figure(figsize=(12,5))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(x, y, facecolor=\"none\", edgecolor=\"b\", s=80, label=\"Data\")\n", - "for i in range(len(ps)):\n", - " ax.plot(xp, ys[i],label=\"p=\"+str(ps[i]),alpha=0.8)\n", - "ax.plot(xp,ytrue,linestyle=\"dotted\", label=\"True\",color=\"k\")\n", - "ax.legend(loc=\"upper right\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tlSJwJXif_ZK" - }, - "source": [ - "> 注: 今の場合、データはsin関数に適当なノイズを足して作られている。 \n", - "解析の手法を学ぶ際には、このように答えを知っている状態からはじめて、 \n", - "手法がうまくデータを説明しているかどうかを検証したりする。 \n", - "一見ズルっぽいが、理論を理解したりプログラムで確認するためには重要なプロセスとなる。 \n", - "\n", - "現実のデータ解析の状況では、背後にある\"真の関数\"が分かっていることは非常に稀で、 \n", - "「興味のあるデータが、人間がよく知っている単純な式(有限次元の多項式や指数関数)で \n", - "完全に表現できる道理はない」ということも抑えておくべき重要な点となる. \n", - "真の関数というのは一般に[神のみぞ知る]で、 \n", - "人間ができることは、出来るだけ尤もらしい関数を見つけ、 \n", - "その背後にあるメカニズム(の主要部分)を解明することと言える.\n", - "\n", - "一般に、関数をどんどん複雑なものにしていくにつれて、関数の表現力(表現できるデータの幅)は大きく拡がる。 \n", - "その一方で、用意した関数がデータに過度に適合するあまり、 \n", - "**未知の点での値の予測精度(汎化性能)が著しく損なわれている危険性**がある。 \n", - "このことを予言能力がない(データに**過適合**している) と言う。 \n", - "データの背後にあるメカニズムが何かを考えたり理論的な解析をして初めて、 \n", - "回帰に用いる関数の妥当性が検証できるという点に注意しよう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pbsTjw4FydNh" - }, - "source": [ - "### $\\clubsuit$ モデルの複雑さとモデル選択" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0eo-o3kjyhaQ" - }, - "source": [ - "上の多項式回帰では、たとえば9次式はデータをピッタリと再現している一方で \n", - "真の関数(sin関数)の振る舞いよりもむしろ、測定誤差のようなものにまで過適合してしまっている。\n", - "\n", - "\n", - "ここで過適合を防ぐためにデータとの整合性(二乗誤差)だけでなく \n", - "**モデルの複雑さ**も定量化し、なるべく複雑すぎない関数が選ばれるよう勘定することを考える。 \n", - "\n", - "ここではこのモデルの複雑さ$C$として多項式の係数の絶対値の2乗和: \n", - "$C= \\sum_i |a_i|^2$を採用することにしよう。 \n", - "\n", - "\n", - "さらに、\"モデルを選択するための基準$L$\"を \n", - "$L = $(二乗誤差) + $\\lambda$ log10(モデルの複雑さ$C$)で定量化し \n", - "この$L$が最小になる多項式を採用することにしよう。 \n", - "(この選択はあくまで例であることに注意)\n", - "\n", - "各次数での多項式のモデルの複雑さ$C$と二乗誤差、そしてモデル選択基準量$L$を表示してみると...\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "mn3Bv6wkzMgT" - }, - "outputs": [], - "source": [ - "def complexity(r):\n", - " return np.sqrt(np.dot(r,r))\n", - "def my_criteria(comp,err,lam=1.0): #lambda=1.0\n", - " return err + lam * np.log10(comp)\n", - "\n", - "for p in ps:\n", - " coeff = np.polyfit(x, y, p)\n", - " diff = np.poly1d(np.polyfit(x, y, p))(x) - y\n", - " chi2 = np.dot(diff,diff)\n", - " comp = complexity(coeff)\n", - " print(\"p\",p, \"モデルの複雑さ(log10)→\", np.log10(comp),\n", - " \"二乗誤差\", chi2, \"モデル選択基準量\", my_criteria(comp,chi2))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hoNEkcu3049k" - }, - "source": [ - "9次式は、データをよく説明する一方で、非常に複雑なモデルになっている。 \n", - "\n", - "上記のモデル選択基準量$L$は$p=3$で最小となるため \n", - "この$L$の定義のもとでは3次式が選ばれることになる。\n", - "\n", - "このように実際のデータ分析や機械学習などのモデル選択では、 \n", - "既知のデータの記述能力(二乗誤差の最小化)とモデルの複雑さの低減(過適合を避ける)との \n", - "トレードオフでモデルを選択することが多い。\n", - "\n", - "上の$L$の定義中の$\\lambda$の大きさを変えることは \n", - "データとの整合性を高める/モデルの複雑さを抑える \n", - "のどちらを重視するかの\"度合い\"を決めることに相当する。 \n", - "($\\lambda$を適当に変えてみよう)\n", - "\n", - "参考→正則化でググってみよう.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P4Qe_dbjWN-j" - }, - "source": [ - "### (余談1) 100メートル走のタイム\n", - "\n", - "予言能力がないモデルとして、以下の例を考えてみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w4n_wIoM14c5" - }, - "outputs": [], - "source": [ - "y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ]\n", - "x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ]\n", - "\n", - "fig = plt.figure(figsize=(12,3))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"year\"); ax.set_ylabel(\"Mens 100m\")\n", - "ax.scatter(x,y,marker=\"o\",color=\"red\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wcJZySlf3Uq7" - }, - "source": [ - "図にしたのは、男子100mの世界記録の推移. \n", - "このデータに対して「$p=3$の多項式でフィットして予測する」という立場をとってみる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "OCUOlGTa3Q7B" - }, - "outputs": [], - "source": [ - "xp = np.arange(2020,2101,1)\n", - "fig = plt.figure(figsize=(12,6))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"year\"); ax.set_ylabel(\"Mens 100m\")\n", - "ax.set_xlim(1960,2100)\n", - "ax.set_ylim(0,12)\n", - "for p in [3]:\n", - " yp = np.poly1d(np.polyfit(x, y, p))(xp)\n", - " ax.plot(xp,yp,marker=\"x\",label=\"p=\"+str(p))\n", - "ax.scatter(x,y,marker=\"x\",color=\"red\") \n", - "ax.legend(loc=\"upper right\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Lebt_UTs4PAe" - }, - "source": [ - "2080年代には100m走のタイムがゼロになってしまうおかしな予測だと気がつく。 \n", - "\n", - "今の場合、我々はこのデータが100走の世界記録のタイムの推移であること、つまり\n", - "* 非増加関数であること\n", - "* 必ず正の値であること\n", - "\n", - "など、データが持つべき性質を予め知っているので、 \n", - "「このデータに対して単純な多項式回帰を当てはめるのはおかしい」 \n", - "と気がつくことが出来る。 \n", - "\n", - "**でも、他のデータではどうでしょう?**\n", - "\n", - "データを分析するためには、データの値だけをみて闇雲に分析するだけではダメで、 \n", - "データの背景やドメイン知識が不可欠である、という好例。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zL4J1CvJ9ciq" - }, - "source": [ - "### (余談2) 新型コロナウイルス感染症の陽性者数の推移に関して\n", - "\n", - "我々が現実世界で観測することのできる種々の\"値\"というのは、 \n", - "何らかの関数$f(x)$の、ある$x$での(実現)値と言える。 \n", - "\n", - "コロナウイルスの感染者数の推移は日付に対する関数として示される事が多い。 \n", - "日付に対して陽性者数の推移をプロットして変動の予想を立てることは簡単だが、 \n", - "コロナウイルスの感染者数の推移も単なる時間に対する1変数の関数であるはずなどがなく、 \n", - "たとえば検査数や我々の外出自粛や\"空気感\"、国・都道府県ごとの取り組み・政策、 \n", - "ウイルスの変異,その他様々な要素に左右される。\n", - "\n", - "我々人間がグラフにして理解できるのはたかだか3次元(3つの変数がある状況)まで。 \n", - "言い換えれば、人間は物事を理解するときに本来D次元(D>>3, Dは3よりずっと大きい)の変数で定義される関数を \n", - "3次元以下に射影した「影」をみて理解しようとする生き物だということは意識しておくべきだろう。\n", - "\n", - "緊急事態宣言が出され報道が加熱していた頃には、安易な感染者数予測で危険を煽ったり、 \n", - "あるいは逆に「心配する必要がない」などと極端な主張をする人が数多く現れた。 \n", - "また事態が収束したあとに「私のモデルはこんなに正しかった」という人も現れることだろう。 \n", - "だが、それは極めて高い蓋然性で偶然だろう。 \n", - "無限の数の関数を考えれば、データに適合するものが存在してもおかしくはない。 \n", - "何にでも言えることだが、モデルを立てて終わり、ではなく検証し続ける姿勢が重要。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter6_Regression.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.8.2 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.6" - }, - "vscode": { - "interpreter": { - "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter7_Optimization.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter7_Optimization.ipynb deleted file mode 100644 index 37de8e83..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter7_Optimization.ipynb +++ /dev/null @@ -1,36423 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "W7cNmbENdx0R" - }, - "source": [ - "# 最適化問題の基礎\n", - "\n", - "\n", - "[この章の目的]\n", - "最適化問題のイメージを掴み、一次元の単峰的な関数の最小値を探索できるようになる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "r244nZzmtIZ0" - }, - "source": [ - "種々のデータ解析や学術的分野での計算をはじめ世の中の多くの問題は**最適化問題**に帰着される. \n", - "最適化問題とは、大雑把に言えば「ある量の最小値/最大値とそれを与える変数/パラメータの値を知ること」と言い換えられる. \n", - "\n", - "「人生も、何らかの目的関数$f(x)$(一般に$x$は多次元),たとえば幸福感(不幸感)を最大化(最小化)すること \n", - "という意味では、最適化問題を考えていることに相当する」というと少し大げさでしょうか。\n", - "\n", - "\n", - "この章では、最適化の基礎について学んでいくことにしよう。 \n", - "授業では実際に最適化で必要な数学的な操作をするコードを作ったりする訳ではないが \n", - "「ライブラリに入れてポンッ」ではなく、背後にあるモチベーションや概念を理解しておくことは \n", - "自分が興味のある問題を最適化問題に帰着させて解くためには不可欠だ。\n", - "\n", - "※高校で微分を勉強していないという方に向けて末尾に数学的準備の項を設けてあるのでチェックしてください. \n", - "(よく知っているという方もさっと目を通してみてください) \n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "loZUoKQD9uYU" - }, - "source": [ - "## 考えたい問題のイメージ" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "L1wUnmJn9xoF" - }, - "source": [ - "以下で考えたい問題のポンチ絵\n", - "\n", - "\n", - "\n", - "\n", - "> あなたは変数$x$のある特定の点$t$での関数値$f(t)$を観測して知っている。 \n", - "> また、図中に**緑の線で示したような$f(x)$の振る舞いを予め知ることはできず \n", - "> 都度$x$を変えて調べることで初めて対応する$y$の値が分かる**状況を考えよう。 \n", - "> (そのことを点線で表現しています) \n", - "> このとき、$x$を変えながら$f(x)$が最小となる点を探すには一般にどうすればよいだろうか?\n", - "\n", - "\n", - "\n", - "変数が2次元(やそれ以上)の場合も、 \n", - "(実際上の難しさが違うとはいえ)基本的なアイデアは同様なので、 \n", - "以下では1次元の場合のみ扱うことにする.\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "---\n", - "\n", - "\n", - "\n", - "さて、1次元の場合に話を戻して...(図を再掲)\n", - "\n", - "\n", - "\n", - "$x$の値を$t$から更新していく方法として、色んな方法が考えられる。たとえば...\n", - "\n", - "1. ランダムに探索する(例:サイコロを振って、目が1-3なら$x$を適当な値だけ減らし出目が4-6なら$x$を増やしていく)\n", - "2. xを適当な区間に分割(10等分,100等分, etc.)その点で値を調べる\n", - "\n", - "などが考えられる。\n", - "\n", - "ただし$x$が薬品の濃度で$f(x)$が薬品の副作用だとしたとき(※)には、 \n", - "$x$を変えて$f(x)$の値を調べると言っても限界がある。\n", - "\n", - "※「1変数の関数であるはずがない」ことは一旦忘れることにして、イメージしやすいようこの例にした\n", - "\n", - "1.の方法では、**同じところを何度か行き来するので明らかに無駄が多い**し、 \n", - "2.の方法では**分割が少なすぎると十分な精度で最適解が見つからない** \n", - "**かといって分割が多すぎるとコストがかさむ**。\n", - "\n", - "したがって、**できるだけ少ない試行回数で最適な値を見つける効率のよい探索方法**が必要となる。 \n", - "そこで重要なのが、$x$を変えたときに関数$f(x)$がどのように変化するか、つまり微分(勾配)の情報である。\n", - "\n", - "**注意** \n", - "そもそも$f(x)$の式の形がわかっていて$f'(x)=0$となる(つまり極値を持つ)$x$の値が計算できるのなら \n", - "わざわざ$x$を更新するなどという手続きは必要ない。 \n", - "一般の問題では、関数やその勾配がそもそも書き下せなかったり \n", - "極値を与える$x$($f'(x)=0$の解)を解析的に解けなかったりする。 \n", - "そんなときは以下で考えるような、$x$を更新した探索が必要となる。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P1xRaNCVtMju" - }, - "source": [ - "## 最も基本的な最適化手法: 勾配法\n", - "\n", - "*以下では、微分の値のことを指して[勾配]と呼ぶことにする." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B-PHr6IztBRE" - }, - "source": [ - "さて、上の一次元の例をもっと簡略化することにして、単峰的(つまり1つしか谷が無い)場合を考えてみよう。\n", - "" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hsMxEg_frbpf" - }, - "source": [ - "この様な場合、斜面の傾きに沿ってパラメータを更新していけばいずれ$f(x)$の最小値が見つかりそうだ。 \n", - "点$x=t$での勾配は(あえて)偏微分で書くと$\\frac{\\partial f(x)}{\\partial x}|_{x=t}$となる。\n", - "\n", - "$x$の値を更新する際に、更新前の値を$x_{old}$,更新後の値を$x_{new}$と書くことにすると、 \n", - "$x_{new} = x_{old} -\\eta \\frac{\\partial f(x)}{\\partial x}|_{x=x_{old}}$ と更新する。\n", - "\n", - ">注) $\\frac{\\partial f}{\\partial x}|_{x=t}$という表記に慣れていない方は、$f'(x=t)$のことと思って頂いて結構です\n", - "\n", - "\n", - "\n", - "微分(傾き)が正の場合は、$x$を正に増やすと$f(x)$の値が増える \n", - "微分(傾き)が負の場合は、$x$を正に増やすと$f(x)$の値が減る \n", - "ことから、微分の値の前にマイナスがついている理由も納得できるかと思います。\n", - "\n", - "最小化でなく最大化を考える場合はマイナス符号は不要で`+`となる。 \n", - "(上と同じように考えてみましょう)\n", - "\n", - "上では、$\\eta$という係数(正の値)を導入したが、 \n", - "これは**傾いてる方向にどれくらいのスケールで$x$を更新するか**をコントロールするパラメータで、 \n", - "機械学習などの分野で[学習率]と呼ばれるものに対応している。 \n", - "今の単峰的な関数の場合、学習率$\\eta$は適当な値をひとつ選べば十分。\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uIAvrbNCx0c1" - }, - "source": [ - "ただし、上の$\\eta$が大きすぎたり小さすぎたりすると、なかなか効率的に$f(x)$の最適解を見つけられないことがある。\n", - "\n", - "$\\eta$が大きすぎると$x$の更新幅が大きすぎて谷をまたいでしまい、なかなか谷の底に落ち込まない、といったことが起こりえる." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jVRqeo3Hxbvx" - }, - "source": [ - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ETitsG3AyLI_" - }, - "source": [ - "一方で$\\eta$が小さすぎると、なかなか更新が進まず \n", - "これまた効率の悪い探索となってしまう。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xiFm1Ew9q5jk" - }, - "source": [ - "これ以外にも、最初の図のように多峰的(山あり谷あり)な関数だと、 \n", - "$\\eta$が小さいと局所的な谷に捕まってしまってなかなか大局的な谷にたどり着けない、 \n", - "かといって$\\eta$が大きすぎるとあらぬ方向に飛んでいってしまう、といったことが起こりえる。\n", - "\n", - "その様な場合にはもう少し\"賢い\"最適化の手法を応用したり、更新の幅を徐々に減衰させるなどの工夫が必要になる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cl4tMpwvU2OS" - }, - "source": [ - "### $\\clubsuit$その他の最適化手法\n", - "\n", - "勾配法の他にもたくさん問題に応じて最適化手法が用いられる。 \n", - "最適化を詳しくやろうとするとそれだけで半期の授業じゃ足りないくらいなので \n", - "興味がある方は下記のキーワードなどで調べてみよう。\n", - "\n", - "たとえば機械学習では、勾配の情報だけでなくそれまでの更新の履歴を活用した各種の最適化手法がよく用いられる。 \n", - "c.f. AdaGrad, Adam, etc.\n", - "\n", - "また、物理学から着想を得た最適化手法もよく用いられる \n", - "c.f. 焼きなまし法(Simulated Annealing)\n", - "\n", - "最適化の手法自体に(広義の)機械学習の手法を使うこともあります \n", - "c.f. ベイズ最適化(授業でも紹介します)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cxTy2daMOgO5" - }, - "source": [ - "### $\\clubsuit$目的関数の選択\n", - "\n", - "最適化問題を解く場合に最小化/最大化したい関数のことを目的関数と呼ぶ。\n", - "\n", - "データ分析をする上で最もよく出てくる目的関数はカイ自乗(chi-square)で \n", - "例えば回帰の場合、予測$y_i$と観測値$f(x_i)$との間の二乗誤差 \n", - "$\\chi^2 = \\sum_i (y_i-f(x_i))^2$といったように定義される。 \n", - "(データの数で割ったり平方根を取った値を採用することもある)\n", - "\n", - "機械学習の文脈では「予測の誤差(損失)を最小化したい」というモチベーションがあり \n", - "目的関数を損失関数/Loss functionなどと言ったりもする。\n", - "\n", - "\n", - "目的関数の選び方は問題によってまちまちで \n", - "その選び方によって\"最適なモデル\"も変わり得る、ということに注意しておこう。\n", - "\n", - "たとえば、二乗誤差を考える際「正解が10のところを20と予測した場合」と \n", - "「正解が1000のところを1010と予測した場合」とで二乗誤差の値自体は同じだが、 \n", - "データの数値に対する誤差が占める割合に着目すれば \n", - "前者は2倍(100%)ずれていて、後者は1%しかずれていない。\n", - "\n", - "このようにスケールの異なる量が出てくる状況下では \n", - "目的関数(誤差関数, 損失関数, etc.)の定義で対数を取ったりする場合もある。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6r7qWIUQ27li" - }, - "source": [ - "### 簡単な例でのプログラム\n", - "\n", - "下に凸な二次関数の最小値を、勾配降下法で求めてみよう. もちろん二次関数の場合は、極値を与える$x$の値は、 \n", - "プログラムを書くまでもなく平方完成で求められるが、目的は数値計算になれるためなので気にしないことにする。\n", - "\n", - "$f(x)=5x^2 -4x + 3$とでもしましょう。 \n", - "$x$についての微分はもちろん$\\frac{df(x)}{dx}=10x -4$になる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "vQmG-t4Y3PAY" - }, - "outputs": [], - "source": [ - "def f(x):\n", - " return 5.0 * x**2 - 4.0 * x + 3.0\n", - "def dfdx(x):\n", - " return 10.0 * x -4.0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "--DHmqJp3f0E" - }, - "source": [ - "はじめに$x=3.0$にいるとして、$\\eta=0.2,0.05,0.01,0.001$の4通りについて \n", - "勾配降下法でパラメータを100回更新してみる。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "vgoJsFe73raV" - }, - "outputs": [], - "source": [ - "step = 100\n", - "etas = [0.2, 5.e-2, 1.e-2, 1.e-3]\n", - "x_and_f = [ [] for i in range(len(etas))]\n", - "for i in range(len(etas)): \n", - " x = 3.0 #初期値\n", - " x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納\n", - " for tstep in range(step): # step回だけ更新を繰り返す\n", - " x = x - etas[i] * dfdx(x) # xnew = xold - eta * dfdx(at xold)になっている\n", - " x_and_f[i] += [ [ x, f(x) ] ] #結果をリストに格納" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P-v28tFN9uAj" - }, - "source": [ - "アニメーションで見てみると... (少し実行に時間がかかります)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 456 - }, - "id": "NEu9t-eoCAhx", - "outputId": "0cebb7be-d68a-46cd-8a63-1df1e5ae431f" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
\n", - " \n", - "
\n", - " \n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "from matplotlib import animation, rc\n", - "rc('animation', html='jshtml')\n", - "cols = [\"blue\",\"green\",\"orange\",\"purple\"]\n", - "x = np.linspace(-6, 6, 100);y = f(x)\n", - "\n", - "fig_scatter = plt.figure(figsize=(10,5))\n", - "plt.xlim(-4,4);plt.ylim(0,40)\n", - "plt.plot(x,y)\n", - "plt_scatter = []\n", - "for nth in range(len(x_and_f[i])):\n", - " plot_obj = []\n", - " for i, eta in enumerate(etas): \n", - " if nth == 0 :\n", - " tl = \"eta=\"+str(eta)\n", - " else :\n", - " tl = \"\"\n", - " plot_obj += [plt.scatter(x_and_f[i][nth][0],x_and_f[i][nth][1], c=cols[i],label=tl,alpha=0.7)]\n", - " plt_scatter.append(plot_obj)\n", - "plt.legend()\n", - "plt.close()\n", - "\n", - "animation.ArtistAnimation(fig_scatter, plt_scatter, interval=100)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ol7eW9lZ3vYI" - }, - "source": [ - "グラフが描画できたら、再生ボタンを押してみてください\n", - "\n", - "青($\\eta=0.2$)は$\\eta$が大きすぎて、谷を行ったり来たりしていることが分かる。 \n", - "一方で紫($\\eta=0.001$)は小さすぎて、なかなか最適解にたどり着かない。\n", - "\n", - "一般に考えたい関数に関して適切な$\\eta$を前もって知ることはできず、 \n", - "関数*の振る舞いを見ながら試行錯誤することが必要になる。\n", - "\n", - "*最適化したい量(損失関数と呼ぶ)の振る舞い" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tKDQnoQb-J7E" - }, - "source": [ - "## 勾配の計算について\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RYsa56Bt4TFB" - }, - "source": [ - "### 解析的に微分が計算できる場合\n", - "\n", - "\n", - "たとえば以下の例のように \n", - "例1: $f(x)= \\sum^p_{i=0} a_i x^i$ (多項式) \n", - "例2: $f(x)= \\exp{(-ax^2+bx+c)}$ (指数関数) \n", - "例3: $f(x)= \\ln{x}$ (自然対数) \n", - "\n", - "* $f(x)$が閉じた形で書き下せる\n", - "* 興味のある区間(定義域)で微分形が計算でき、有限の値を持つ場合\n", - "\n", - "$x$をその微分した表式に代入することで勾配法の実装が可能となる. \n", - "([有限の値をもつ場合]と限定したのは、微分が発散してしまうとパラメータの更新には実用上意味をなさないため)\n", - "\n", - "ちなみに導関数$f'(x)=0$の解(根)が手で計算できるなら数値計算する必要がないし、 \n", - "根を求めたいだけなら、勾配法を使う理由は(アルゴリズムの理解等の目的を除いて)特に必要ない。\n", - "\n", - "※最も単純な求根アルゴリズムであるニュートン法についての説明についてはおまけのニュートン法の章に記載がある。\n", - "\n", - "大量の関数を考えて微分した表式が必要な場合は、 \n", - "いちいち関数の微分形を導出してコードにするのは面倒なので、 \n", - "SympyなどのモジュールやMathematicaなどのツールを使うのも一つの手です." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jzSF_CiSrcAp" - }, - "source": [ - "### 数値的に勾配を計算する場合\n", - "\n", - "$f(x)$が具体的な$x$の形で書き下せない場合もある.\n", - "\n", - "たとえば「$f(x)$が条件$x$のもとで行った何らかの測定結果である場合」などがこれにあてはまる。\n", - "\n", - "より具体的な例をあげるなら、\n", - "あなたはとある医療薬品の効果(数値で表現できると仮定)を調べる研究をしているとして、 \n", - "温度$x$を変えながら何回か測定して$f(x)$の値を得るような状況を想像してください.\n", - "\n", - "このような場合、関数$f(x)$の具体的な表式がわからないので、勾配だって$x$に対する式として書き下すことはできない。\n", - "\n", - "しかし、微分の定義に立ち返って考えてみると、 \n", - "$f(x=a)$の値と、$x=a$から微小量$\\delta$だけ動かした場所での値$f(a+\\delta)$ \n", - "がわかっていれば$f'(x=a)$を\"近似的に\"計算することができる。\n", - "\n", - "\n", - "ただし、$\\delta$があまり小さくないと下の絵のように正しく勾配が計算できない一方で、$x$を調整する精度に限界があったり、勾配を計算する際のコンピュータの数値精度には限りがありますので、文字通りの意味で\"無限に小さい\"の$\\delta$を考えることはできず、有限の小さな値で$\\delta$を表現することになり、それにより数値計算に大きな誤差が紛れ込む危険性もある。\n", - "\n", - "$x$を動かしたときの関数の変動度合いがものすごく大きい(たとえば係数がめちゃくちゃデカイ)と、数値微分の精度は$\\delta$に対する依存性が強くなってしまう。\n", - "\n", - "![](https://drive.google.com/uc?export=view&id=1lY6wW0T09Nh9LoNNYRKrykaKMMGOFkhV) \n", - "\n", - "\n", - "解析的に微分ができる関数を使って、数値微分の簡単な例を示しておこう。\n", - "\n", - "関数$f(x)= x^4 - 3x^3 + 2x - 1$を$x=5$で微分した値$f'(5)$は定義から277となるが、 \n", - "$x=5$から$\\epsilon$だけずらした点での値を使って数値微分してみると\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "xwH40zbqgdfG", - "outputId": "b71b0ea1-4690-45a7-a322-ee5262217fdd" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "eps\t 1.0e+00 \tf'(5)\t 400.0000000000000 \t diff. 2.1e+00\n", - "eps\t 1.0e-01 \tf'(5)\t 287.6709999999986 \t diff. 1.0e+00\n", - "eps\t 1.0e-02 \tf'(5)\t 278.0517009999926 \t diff. 2.2e-02\n", - "eps\t 1.0e-04 \tf'(5)\t 277.0105001695811 \t diff. -2.0e+00\n", - "eps\t 1.0e-05 \tf'(5)\t 277.0010499943965 \t diff. -3.0e+00\n", - "eps\t 1.0e-10 \tf'(5)\t 277.0002538454719 \t diff. -3.6e+00\n", - "eps\t 1.0e-15 \tf'(5)\t 227.3736754432320 \t diff. 1.7e+00\n" - ] - } - ], - "source": [ - "def f(x):\n", - " return x**4 - 3.0* x**3 + 2.0*x -1.0\n", - "def fp(x,eps):\n", - " return (f(x+eps)-f(x))/eps\n", - "x=5\n", - "exact_fp = 277 \n", - "for p in [0,-1,-2,-4,-5,-10,-15]:\n", - " eps = 10**p\n", - " print(\"eps\\t\",str(\"%5.1e\" % eps), \"\\tf'(\"+str(x)+\")\\t\", str(\"%18.13f\" % fp(x,eps) ),\n", - " \"\\t diff.\",str(\"%5.1e\" % np.log10(abs(fp(x,eps)-exact_fp))))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ebgIJHf8hoti" - }, - "source": [ - "となり, $\\epsilon=0.01$程度では微分の値の誤差が1, $\\epsilon=$ 1.e-5でも2桁程度の精度しかない。\n", - "\n", - "一番小さい$\\epsilon=$で精度が逆に悪くなっているのは、 \n", - "あまりに小さい$\\epsilon$だと$f(x+\\epsilon)-f(x)$という引き算部分で数値誤差が発生し、 \n", - "さらに分母の小さな$\\epsilon$によってそれが増幅されるため。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V2b6emNrSLR-" - }, - "source": [ - "進んだ注) \n", - "中心差分という、分割する区間を中央をxに揃える方式だと、精度が若干改善される。 \n", - "このことは、テイラー展開から示すことができる[→参考](https://ja.wikipedia.org/wiki/有限差分)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "s8sV0EIWR2Wk", - "outputId": "198486ec-5851-423c-bbad-f2f11e0ae153" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "分割する区間の中央をxに揃える方式\n", - "eps\t 1.0e+00 \tf'(5)\t 281.2500000000000 \t diff. 6.3e-01\n", - "eps\t 1.0e-01 \tf'(5)\t 277.0424999999986 \t diff. -1.4e+00\n", - "eps\t 1.0e-02 \tf'(5)\t 277.0004249999886 \t diff. -3.4e+00\n", - "eps\t 1.0e-04 \tf'(5)\t 277.0000000424488 \t diff. -7.4e+00\n", - "eps\t 1.0e-05 \tf'(5)\t 276.9999999827633 \t diff. -7.8e+00\n", - "eps\t 1.0e-10 \tf'(5)\t 276.9991169770947 \t diff. -3.1e+00\n", - "eps\t 1.0e-15 \tf'(5)\t 454.7473508864641 \t diff. 2.2e+00\n" - ] - } - ], - "source": [ - "def fp2(x,eps):\n", - " return (f(x+0.5*eps)-f(x-0.5*eps))/(eps)\n", - "\n", - "print(\"分割する区間の中央をxに揃える方式\")\n", - "for p in [0,-1,-2,-4,-5,-10,-15]:\n", - " eps = 10**p\n", - " print(\"eps\\t\", str(\"%5.1e\" % eps), \"\\tf'(\"+str(x)+\")\\t\",str(\"%18.13f\" % fp2(x,eps) ),\n", - " \"\\t diff.\",str(\"%5.1e\" % np.log10(abs(fp2(x,eps)-exact_fp))))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H0f2hs7yEEc0" - }, - "source": [ - "## $\\clubsuit$その他の話題" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bnKTRlQJEI55" - }, - "source": [ - "冒頭にも書いたとおり、我々の身の回りにある多くの問題は最適化問題に帰着される。\n", - "\n", - "もう少し細かいことをいうと、今回考えたような連続的な変数に対して \n", - "最大/最小値を探索することは連続最適化と呼ばれ \n", - "離散的な変数を含む離散最適化/組み合わせ最適化とは区別される。\n", - "\n", - "組合せ最適化には、巡回セールスマン問題やナップサック問題などが含まれる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BQcTACZvsYyW" - }, - "source": [ - "## 数学的準備: 微分\n", - "\n", - "ある直線$y=ax+b$を考えたとき、直線の傾き$a$に着目すれば、 \n", - "$x$の増加分に対して$y$がどれだけ変化するかを知ることができる。\n", - "\n", - "一方、実社会で扱うデータは、一般に直線よりも複雑な形をしていて、 \n", - "それを式で表現しようと思うと、様々な関数の形を考える必要がある。 \n", - "(たとえば何かの値の季節変動などをイメージしよう)\n", - "\n", - "そこで、直線の場合の[傾き]を、直線以外の関数に\"拡張\"しようと考えるのは \n", - "至って自然な発想といえる。それが**微分**の概念である.\n", - "\n", - "微分(積分)の歴史は古く、人類史のどの時点でアイデアが確立したとするかは諸説あるが \n", - "最も代表的なものは、17世紀にニュートンとライプニッツが確立したとする説で \n", - "ニュートンは微分の概念を独自に定式化し、天体の軌道などを予測するなどの偉大な功績を残した.\n", - "\n", - "\n", - "以下の内容は、全学向けの授業ということもあって \n", - "厳密性はかなり犠牲にして微分の概念を導入している \n", - "(もちろん、大学の数学の教科書に載っている関数の連続性や微分の厳密な定義は非常に重要です).\n", - "\n", - "時間があったら、ヨビノリたくみ氏の[「中学数学からはじめる微分積分」](https://youtu.be/4p1rwfXbCoY)を視聴していただけると、イメージがつくかと思います。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OJqvQeu8wOgC" - }, - "source": [ - "### 微分の基本的な考え方\n", - "\n", - "定義: ある変数$x$について関数$f(x)$が与えられているとき、 \n", - "関数$f(x)$の$x=a$での微分を \n", - "$f'(a)=\\lim_{\\delta \\to 0} \\frac{f(a+\\delta)-f(a)}{\\delta}$と定義する. \n", - "\n", - "ここで、$\\lim_{\\delta \\to 0}$は0に限りなく近い(無限小)の$\\delta$を考えることを意味する。 \n", - "\n", - "つまり、関数をある点からちょこっとだけ動かしたときに、 \n", - "関数の値が変動する度合いがどれくらいかを表しています。 \n", - "上の定義は「無限小の幅で関数を直線で近似して傾きを計算している」とも言いかえられるでしょう。\n", - "\n", - "**直線の例** \n", - "$f(x) = ax + b $の$x=x_1$での微分値は定義に当てはめて計算すると \n", - "$f'(x_1)= \\lim_{\\delta \\to 0} \\frac{f(x_1+\\delta)-f(x_1)}{\\delta}= \\lim_{\\delta \\to 0} \\frac{(a(x_1+\\delta)+b)-(ax_1+b)}{\\delta} = a $ となる。 \n", - "つまり微分の値は直線の傾きに対応していて、 \n", - "なおかつ微分の値はどこの場所($x$)で調べても定数$a$であることを意味している。\n", - "\n", - "\n", - "**二次関数(放物線)の例** \n", - "$f(x) = ax^2 + bx +c $\n", - "の$x=x_1$での微分は、定義にならって計算すると\n", - "$f'(x_1) = 2ax_1+b$となる(確かめてみよう) \n", - "一方で$f(x)$を平方完成すると$f(x)=a(x+\\frac{b}{2a})^2 -\\frac{b^2}{4a} +c$となり、 \n", - "$x=-b/(2a)$で傾きが0になる。 \n", - "つまりこの二次関数は$x=-b/(2a)$で極値($a>0$なら最小値, $a<0$なら最大値)を持つ。\n", - "\n", - "微分が0というのは関数の形がそこで谷や峠になっていることを意味する。 \n", - "実際上の例でも微分の値は$x_1=-b/(2a)$のとき、値は0になっている.\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EKvfZuwG02Wv" - }, - "source": [ - "a=2.0,b=4.0,c=5.0とでもして、図をかいてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Bh0Y1E-A03PF", - "outputId": "8f311de7-2ee8-41e8-cce8-d37addcb1027" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from matplotlib import pyplot as plt\n", - "import numpy as np\n", - "xr = np.arange(-5.0,3.0,0.01)\n", - "yr = 2.0 * xr**2 + 4.0 * xr + 5.0\n", - "fig = plt.figure(figsize=(10,2))\n", - "plt.plot(xr,yr)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1Vdm0nMX1oCX" - }, - "source": [ - "確かに$x=-b/(2a)=-1.0$のところで極値(最小値)となっている。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HUp-OGlj6wOg" - }, - "source": [ - "微分の値もplotしてみると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ZyvYWUVX6xo6", - "outputId": "f8e5746d-43d0-44ed-bd13-a8eb3bc8a433" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABH4AAAD4CAYAAACaEyHPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd1yW9f7H8deXjYoiIjgAceIWFRdq2day0jLTytWwcRqnc9rnNE7lyfaukw1v98jsaGlWlmWKCwe4942iKE6c7O/vD9BfdUxJgQtu3s/Hw4dc133f8q4ILj/39f5+jbUWERERERERERHxPF5OBxARERERERERkZKhwY+IiIiIiIiIiIfS4EdERERERERExENp8CMiIiIiIiIi4qE0+BERERERERER8VA+pfnJQkNDbXR0dGl+ShERESlFy5cv32+trel0DvktXYOJiIh4trNdg5Xq4Cc6OprExMTS/JQiIiJSiowxKU5nkP+lazARERHPdrZrMFW9REREREREREQ8lAY/IiIiIiIiIiIeSoMfEREREREREREPVapr/IiIiIhI2ZCTk0NqaiqZmZlORyl2AQEBRERE4Ovr63QUERERx2nwIyIiIlIBpaamEhQURHR0NMYYp+MUG2stBw4cIDU1lfr16zsdR0RExHHnrHoZYwKMMUuNMUnGmLXGmH8VnncZY7YbY1YV/oot+bgiIiIiUhwyMzOpUaOGRw19AIwx1KhRwyPvZBIRETkfRbnjJwu41Fp7zBjjCywwxnxT+Nij1tppJRdPREREREqKpw19TvHUfy4REZHzcc47fmyBY4WHvoW/bImm+hOstcxKTuPzxJ1ORxEREREREREROc1ay/KUg7w0ez3WOjNKKdKuXsYYb2PMKiAd+N5au6TwoRHGmGRjzJvGGP8/eO1wY0yiMSZx3759xRT7t6Ym7uT5r9aRflS39IqIiJzNgs37+eSXbeTk5TsdRURERMRjZeXm8cXyVK57byE3friIiUt3kHropCNZijT4sdbmWWtjgQigozGmJfAk0BToAIQAj//Ba0dZa+OstXE1a9Ysptj/zxjDs9c2JzM3j5e/2Vjsf76IiIinyM7N55kZa5iwZAf5Dr3jJPJr77zzDs2aNaNu3bo899xzp8+/9dZbjB079qyvHTBgAJs3by7hhCIiIn/O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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "xr = np.arange(-5.0,3.0,0.01)\n", - "yr = 2.0 * xr**2 + 4.0 * xr + 5.0\n", - "yp = 4.0 * xr + 4.0 \n", - "fig = plt.figure(figsize=(20,4))\n", - "axs = [fig.add_subplot(121),fig.add_subplot(122)]\n", - "axs[0].plot(xr,yr,label=\"f(x)\"); axs[0].legend()\n", - "axs[1].plot(xr,yp,label=\"f'(x)\");axs[1].plot([-5,3],[0,0],color=\"gray\",linestyle=\"dotted\");axs[1].legend()\n", - "plt.show();plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dstsTQdJ7sFs" - }, - "source": [ - "$x<-1$では$f'(x)<0$で、$x>-1$では$f'(x)>0$となっていますね。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Z0uJ-5dE1xNE" - }, - "source": [ - "これまでは、定義に即して微分の値を計算していましたが、毎回調べたい点で定義に立ち返るというのは面倒です。\n", - "\n", - "関数が閉じた形で与えられているとき(つまり、$f(x)$が$x$の具体的な表式で与えられているとき) \n", - "多くはその微分$f'(x)$も$x$の関数として書き下すことができます。 \n", - "\n", - "そうすれば、$x$に特定の値を代入すれば好きな点での微分の値$f'(x)$を知ることができます。\n", - "\n", - "\n", - "とりあえずは以下を公式的に抑えておけば問題は有りません。\n", - "\n", - "1. $x$の$x$に対する微分は1\n", - "2. $a x^p$の$x$に対する微分は$apx^{p-1}$ ($a$は非ゼロの定数)\n", - "3. $\\exp{(x)}$(ネイピア数$e$の$x$乗)の$x$に対する微分は$\\exp{(x)}$ \n", - "4. $\\cos{x}$の$x$に対する微分は$-\\sin{x}$\n", - "5. $\\sin{x}$の$x$に対する微分は$\\cos{x}$\n", - "6. $\\log{x}$の$x$に対する微分は$1/x$ (x>0で定義される)\n", - "\n", - "いずれも、上の微分の定義や、指数関数/三角関数/対数関数の定義(c.f. マクローリン展開)から証明することができますので、興味があれば人生で一度はやってみてください。\n" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyNgJ/vjuDqbrPwWEhR7i48L", - "collapsed_sections": [ - "tKDQnoQb-J7E", - "BQcTACZvsYyW" - ], - "include_colab_link": true, - "name": "Python_chapter7_Optimization.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter8_handling_files.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter8_handling_files.ipynb deleted file mode 100644 index 3223271d..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter8_handling_files.ipynb +++ /dev/null @@ -1,1507 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JXf9XKfop6wz" - }, - "source": [ - "# ファイル・文字列操作\n", - "\n", - "[この章の目的]\n", - "text,csvやxlsx形式のデータをプログラムでサクッと扱えるようになる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LfaRUw0tp8wv" - }, - "source": [ - "この章では、テキストファイルやcsvファイル(excelファイルはおまけ$\\clubsuit$)をPythonで操作する簡単な方法を学習する。 \n", - "\n", - "これまでの章では、データはリストとして既に与えられた状態から解析を行ったが、実際にデータを扱う際は \n", - "既に誰かが作成した何らかのファイルをプログラムで読み込んで操作する場合も多い。 \n", - "この章の内容は、データ解析というよりは、Pythonでデータ解析をするための下準備に相当する。 \n", - "\n", - "愚直にコードを書いている事もあり少々泥臭い部分が多いが、この章のような操作のエッセンスを抑えておけば \n", - "普通にやると膨大な時間がかかる様々な処理を高速化・自動化することができるので、頑張って学習しよう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y0pkvGuu6B4t" - }, - "source": [ - "## 授業で使うファイルの準備\n", - "\n", - "予め以下のリンクをクリックして、ファイルをダウンロードし、 \n", - "ご自身のGoogle Driveにアップロードしておいてください。\n", - "\n", - "* [test.txt](https://drive.google.com/file/d/1U2uvrN18713ylN4OQiI2fsfX5gudL45w/view?usp=sharing) (テキストファイル)\n", - "\n", - "* [python_handling_test.csv](https://drive.google.com/file/d/1bYJNWdtujcQWfSBAa1UeXi2ZzJRJktil/view?usp=sharing) (csv, カンマ区切りのテキストファイル)\n", - "\n", - "* [kakei.xlsx](https://drive.google.com/file/d/1gJMVHivmP7R9Qf4LdqRhdPVc3x0IzD8v/view?usp=sharing) (エクセルファイル)\n", - "\n", - "本章では、ファイルの場所を指定する**パス**という概念がたびたび登場する。\n", - "以下のコードをそのまま使いたいという方は、マイドライブ直下に`AdDS`というフォルダを作り、さらにその中に```chapter8_data```というフォルダを作成し、ファイルをいれてください。\n", - "\n", - "パスについては後の節で詳しく説明します(今気になる方は末尾をチェック)。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GT7Cl8yb8iL8" - }, - "source": [ - "## テキストファイルの操作" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5LKmHodPF_n0" - }, - "source": [ - "膨大な行のテキストファイルに対して、人間が手で操作をするというのは時として非現実的です。 \n", - "\n", - "誤変換を置換するくらいなら、どのテキスト/メモ帳アプリやwordでもできますが、\n", - "全行(数千とか数万)に対して、決まった操作が必要な場合、プログラムにしてしまったほうが遥かに便利です。\n", - "\n", - "以下ではGoogle Driveのマイドライブの```AdDS```の下に作った```chapter8_data```というフォルダにファイルを保存したと仮定して話を進めますので、**適宜皆さんの場合に置き換えて使用してください**\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B6oBjOGQ8k1K" - }, - "source": [ - "まずはgoogle driveに保存した```test.txt```という名前のファイルを読み込んでみましょう。 \n", - "既に何回かやったようにgoogle driveをマウントします。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "oKJPB3hafCDd", - "outputId": "7b4ad307-91cd-4e63-e951-19fe78efb362" - }, - "outputs": [], - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FGYId3osJfo9" - }, - "source": [ - "**注意** 以後のコードは、google driveの中にあるファイルを読み書きしたりといった操作を行うため \n", - "上でGoogle Driveをマウントした状態でなければ実行しても多くがエラーとなる。\n", - "\n", - "---\n", - "\n", - "Google Driveのマウントができたら、先程のファイルがあるかlsコマンドで確かめてみよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Nx4kIQw48w7y", - "outputId": "b1b93834-5bd0-4954-a465-680acf6a9e11" - }, - "outputs": [], - "source": [ - "!ls /content/drive/MyDrive/AdDS/chapter8_data/*" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UCzT9lFC0x93" - }, - "source": [ - "*はワイルドカード記号で、対象を任意とする命令に相当します。 \n", - "*.拡張子 などとして使うのも便利です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lBNc6YKaJ-tO" - }, - "source": [ - "ファイルが見つからない場合は\n", - "> No such file or directory\n", - "\n", - "などと表示される。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9ypPj31PKJKY" - }, - "source": [ - "> $\\clubsuit$ 上のファイルをGoogle Driveに保存する方法としては \n", - "一度ローカルに保存したファイルをブラウザなどからアップロードする方法はもちろん \n", - "全てを(Linux)コマンドで行うこともできる。\n", - "```\n", - "!git clone https://github.com/SotaYoshida/Lecture_DataScience\n", - "!mkdir /content/drive/MyDrive/AdDS/\n", - "!mv Lecture_DataScience/Chapter8_data /content/drive/MyDrive/AdDS/chapter8_data\n", - "!ls /content/drive/MyDrive/AdDS/chapter8_data\n", - "```\n", - "1つめの行ではまず授業資料のGitHubレポジトリをColab環境で間借りしているgoogleのサーバー上にクローン(≒コピー)する。2行目でマイドライブの下にAdDSというフォルダの作成を試み、3行目でダウンロードしてきたレポジトリにある`Chapter8_data`をさっき作ったAdDSというフォルダの中に別名(先頭が小文字になっている)で移動する。\n", - "最後に、どんなファイルがあるかをlsコマンドで確認している。 \n", - " 重複する作業も多いのでこれらのコードはコードセルには書かなかったが、うまくアップロードできなかった場合やコマンドラインによるファイルの移動などをやってみたければ上の4行のコードをコードセルに貼って試してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Ayz1B8fz9wGb", - "outputId": "40f02a5b-6069-4c88-d4bd-a4271afbcbe0" - }, - "outputs": [], - "source": [ - "!ls /content/drive/MyDrive/AdDS/chapter8_data/*txt " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uYhMU-Od-s4Z" - }, - "source": [ - "とするとマイドライブ/AdDS/chapter8_data/にある`.txt`形式のファイル一覧を表示させることができる。 \n", - "`test.txt`が見つかったでしょうか?(DriveにアップロードしてColabから読み込みできるまでに少し時間がかかる場合がある)\n", - "\n", - "\n", - "では次に、このファイルに書かれているテキストを取得してみよう。 \n", - "方法は幾つかあるが、最も標準的なものとして、ファイルを開いてテキストを取得する方法を試してみよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YCF5xUQ_3r_3" - }, - "source": [ - "### テキストファイルを開いて内容を読み出す" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4qbsm40WpqK1" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/test.txt\" \n", - "inp = open(filename,\"r\")\n", - "lines = inp.readlines()\n", - "inp.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aZxGX1R4_QUN" - }, - "source": [ - "1行目でファイル名(正確にはファイルのパス)を指定し```filename```という変数にした。 \n", - "\n", - "2行目では、指定したパスにあるファイルを開いている。 \n", - "今はファイルに書き込むのではなく、既にあるファイルを開いて読み込むので`\"r\"`というオプションを指定している。 \n", - "他には`\"w\"`(書き出し,上書き), `\"a\"`(書き出し,追記)などがあり、新しく上書きでファイルを作成したい場合は`\"w\"`,すでにあるファイルの内容は消さずに追記したい場合は`\"a\"`を指定して使う。\n", - "\n", - "3行目では、`inp`(ファイルを`open`して得たオブジェクト)に対して```readlines```という操作を適用している。\n", - "これは、ファイルに書かれているテキストを(可能なら)全行に渡って読み込みメモリにストアする関数になっている。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "TMHIZJPTAvd7", - "outputId": "2aae100d-5f48-461b-b699-74985a929dca" - }, - "outputs": [], - "source": [ - "print(lines)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QSbIzGcdAyWH" - }, - "source": [ - "とすると、全ての行が読み込まれ、変数```lines```に格納されていることがわかる。ここで```\\n```は改行記号を意味する。\n", - "\n", - "ループを回して一行ずつ表示させると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "dPfMZpjUA_ZQ", - "outputId": "001554b4-6212-4ef7-ec3e-f255f8d5223b" - }, - "outputs": [], - "source": [ - "for line in lines:\n", - " print(line)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KS1P7UYYBFX2" - }, - "source": [ - "といった感じ(行ごとにスペースが生じている理由については後で説明します)。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "W4CNTbH5Avlf" - }, - "source": [ - "必要な行番号が分かっている場合は、`nlines = lines[2:10]`などとして、要らないところは捨てても良い。(リストのスライスについては2章を参照)\n", - "\n", - "次に、もう少し具体的なテキスト操作をしてみよう。 \n", - "まず、上の1行ずつ表示するコードでは、改行コードを明示的に含む文字列を一行ずつ表示したため、改めて`print`すると余分なスペースが空いてしまう。 \n", - "(`print`関数はデフォルトで末尾に改行```\\n```を挿入するのでファイルにある改行記号とあわせて2回改行してしまう→[参考リンク](https://docs.python.org/ja/3/library/functions.html#print))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "olRZ5IDD3yuV" - }, - "source": [ - "### strip関数\n", - "\n", - "たとえば```strip()```関数を使うと、文字列に含まれる空白、タブや改行コードを消去することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "fWB00WIvzOlz", - "outputId": "867eb590-a09a-4d51-baf6-57009d8a72a1" - }, - "outputs": [], - "source": [ - "a = \"test character\\t\"\n", - "b = \"test2 \\n\"\n", - "print(\"a\", a, \"←タブが隠れている\")\n", - "print(\"b\", b, \"←改行される\")\n", - "### strip関数をもちいて...\n", - "print(\"a.strip()\", a.strip(),\"b.strip()\",b.strip())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "先程のforループでstrip関数を適用してやると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "bwCxUBMdBOb2", - "outputId": "d964e851-62c0-4ded-9370-1f279c4a9dd7" - }, - "outputs": [], - "source": [ - "for line in lines:\n", - " print(line.strip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IpOm3O9rBlSH" - }, - "source": [ - "文字列の右側に空白や改行コードが入っていることが明確な場合は \n", - "`strip`の代わりに`rstrip`を使ってもOK(`rstrip`のrはrightの意味)。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "zVlMYYFtBnlD", - "outputId": "2b14197a-506d-4207-bbc4-2937db656ed5" - }, - "outputs": [], - "source": [ - "for line in lines:\n", - " print(line.rstrip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "E-iAh4w7BrbU" - }, - "source": [ - "\n", - "ファイルによってはインデントをするために左側にタブ```\\t```が含まれる場合もあります(PythonのコードをテキストとしてPythonから読むときなどがこれに該当)。そのような場合に左側にある空白やタブのみを取り除きたければ```lstrip()```を使って取り除くことができる。\n", - "\n", - "もちろんPythonではインデントが文法なので、インデントを一律で消す、といった操作は必要ないが、特定の状況では、`lstrip`も使えると便利だ。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "V1Uk2u1Z2haB" - }, - "source": [ - "上のファイルの文字列で`#`記号を含む行以降だけが必要な場合はどうすればいいでしょうか?\n", - "\n", - "最も単純(?)な実装は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "o9ePmRrlCQV3", - "outputId": "abd39a60-4d5b-40ae-8e81-e3d17f90e735" - }, - "outputs": [], - "source": [ - "hit = 0 #\n", - "for line in lines:\n", - " if \"###\" in line:\n", - " hit += 1 \n", - " continue\n", - " if hit == 0 :\n", - " continue #hitが0の状態では何もしない\n", - " print(line.rstrip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S4pLj4K-CQhm" - }, - "source": [ - "といった愚直な例が考えられる。\n", - "つまり、`#`を含む行に到達するまでの行は無視して、それ以降の行だけをリストに格納するというもの。\n", - "もちろん`#`を含む行が複数あるようなケースでは、自分が実現したい操作にあわせてコードを書き換える必要がある。\n", - "\n", - "以下では、`###data`までの行が必要ないので、必要なところまでを別のリストに格納してしまおう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "eYsStscDDXDa", - "outputId": "e5334884-190b-4a4b-d2a6-e3705becf3f0" - }, - "outputs": [], - "source": [ - "hit = 0 #\n", - "nlines = []\n", - "for line in lines:\n", - " if \"###\" in line:\n", - " hit += 1 \n", - " continue\n", - " if hit == 0 :\n", - " continue #hitが0の状態では何もしない\n", - " nlines += [line]\n", - "print(nlines)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p7_aA_O0p7tt" - }, - "source": [ - "### split関数" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RDD1fCO3DNm6" - }, - "source": [ - "また、1,2,3,4,5,6といったコンマやスペースで区切られたものをリストに格納したい場合には、```split```関数が便利。`split`関数は引数に何も指定しなければ、スペースや改行もしくはタブごとに文字列を区切ったリストを返す。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sample_text = \"This is a\\nsample\\ttext.\"\n", - "sample_text.split()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "1P4mcqMkCzbf", - "outputId": "6bbaadf5-f756-4990-c57c-e452f7ddd7d8" - }, - "outputs": [], - "source": [ - "for line in nlines:\n", - " print(line.split())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0QGZ-qxWDF6L" - }, - "source": [ - "カンマがあるときはカンマで分割する、という約束を表現したければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "R5Wk_P3gDJ2C", - "outputId": "9589e77b-476a-44e7-cb1c-61a45f67ca11" - }, - "outputs": [], - "source": [ - "for line in nlines:\n", - " if \",\" in line :\n", - " print(line.rstrip().split(\",\"))\n", - " else :\n", - " print(line.rstrip().split())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QaOMvxGUDx7g" - }, - "source": [ - "などとすれば良い。これを利用すれば、空のリストにファイルから読んだ要素を詰めていくといった操作も実現できる。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ocRjQCaGEF07", - "outputId": "8f26d228-b132-4002-efbb-694216794090" - }, - "outputs": [], - "source": [ - "# 数字とプロフィールの空リストを作り、そこに読み込んだものを詰めていく\n", - "# その際に、数字のリストとプロフィールのリストを分けたいとする\n", - "nums = [] \n", - "profs = [] \n", - "\n", - "for line in nlines:\n", - " if \",\" in line :\n", - " nums += [ line.rstrip().split(\",\") ]\n", - " else :\n", - " profs += [ line.rstrip().split()]\n", - "print(\"nums\", nums)\n", - "print(\"profs\", profs)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pu5-guZDEcIo" - }, - "source": [ - "上の`nums`の様に、予め全ての要素が整数だと分かっていて整数に対する演算(四則演算など)を後でするのなら、`str`(文字列)型ではなく`int`型にしておくほうが良いこともあるだろう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "J85gGgidEq6j", - "outputId": "87947845-dd2e-4574-e710-05b6c7e7819c" - }, - "outputs": [], - "source": [ - "##リスト内包表記を使った実装\n", - "nums = []\n", - "for line in nlines:\n", - " if \",\" in line : \n", - " tl = line.rstrip().split(\",\")\n", - " nums += [ [ int(tmp) for tmp in tl] ]\n", - "print(\"方法1:\", nums)\n", - "\n", - "## map関数(後述)を使った実装\n", - "nums = []\n", - "for line in nlines:\n", - " if \",\" in line : \n", - " nums += [ list(map(int, line.rstrip().split(\",\") )) ]\n", - "print(\"方法2:\", nums)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ageWDCqlpxPy" - }, - "source": [ - "### replace関数" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-ppyblOIq8PL" - }, - "source": [ - "`replace`関数で文字の置換が可能です" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "B78Kb1QKqA5P", - "outputId": "1048156c-f018-4f8a-87ff-3d01d047b562" - }, - "outputs": [], - "source": [ - "text = \"abcdあいうえお\"\n", - "text = text.replace(\"abcd\", \"1234\")\n", - "print(\"置換や→\",text)\n", - "print(\"除去にも→\", text.replace(\"4\", \"\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JHXIca-kE39k" - }, - "source": [ - "### $\\clubsuit$ map関数\n", - "\n", - "`map`関数は`map(操作,対象)`という風に使って、対象の各要素に対して一括で操作を適用することができます。 \n", - "今の場合、`['1', ' 2', ' 3', ' 4', ' 5', ' 6']`などの文字列のリストに対して、 \n", - "整数型に変換する```int```関数を作用させるという操作を一度に行います。\n", - "\n", - ">注: `map`関数の返り値はmap objectと呼ばれるものなので、 \n", - "元のようなリストの形で使いたい場合は```list()```を使ってリストに変換するステップが必要です。\n", - "\n", - "世の中には、アンケート結果や産業データなどがcsv(カンマ区切りのテキスト)ファイルで公開されている場合が多いですが、 \n", - "その場合は**上で説明したような手順でリストなどに格納すれば今まで行ったような解析やグラフ描画が実行できる**といったわけです。 \n", - "(もちろんcsvを読むのに便利なライブラリもありますが \n", - "いろんな形式のファイルをプログラムで読み込む場合には \n", - "上のような基本的な操作を組み合わせることも必要になります。)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7Zteg1NaYXuR" - }, - "source": [ - "### テキストファイルの書き出し" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "d1feYXb-4J-s" - }, - "source": [ - "次に、テキストファイルを書き込んで保存してみます。 \n", - "上の文字列で、敬称を\"さん\"から\"様\"に置換したテキストを作成して、それを別ファイルとして保存してみましょう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "J1fOkXTcYuQm" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/test_replace.txt\" \n", - "oup = open(filename,\"w\") ## oup は\"output\"の気持ち...\n", - "for line in lines:\n", - " print(line.rstrip().replace(\"さん\",\"様\"), file=oup) # file=[openしたファイル]にすることで、printする先をファイルに指定できます。\n", - "oup.close() #ファイルはきちんと閉じる." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BhsUEsIh6tC6" - }, - "source": [ - "Google Driveで、作成されたファイルをチェックしてみましょう。\n", - "\n", - "なお、filenameに元ファイルと同じものを指定すると```open(filename,\"w\")```を実行した時点で \n", - "ファイルが上書きされて空ファイルになるので注意しましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "navysabZ4enm" - }, - "source": [ - "今の例ではもちろん、手で置き換えたりするほうが遥かに速いですがこうしたPythonによるファイル操作を覚えておくと\n", - "\n", - "* ファイル自体が大量にあり、同じ操作を繰り返す場合\n", - "* 単一のテキストファイルに大量の行に渡って情報がある場合\n", - "\n", - "など、手作業が非現実的な様々な状況でも、楽ちんに作業を終わらせることができる(かもしれません)。\n", - "\n", - "上の内容や、これまでに学習したループ処理を駆使すると、 \n", - "数万人のデータが1行ずつ記載されたテキストファイルから条件にヒットする人の \n", - "情報だけを抽出して小さなファイルにまとめるといったことも可能です。\n", - "\n", - "**プログラミングを用いたファイル操作をする発想があるかどうか**がきっとこの先 \n", - "皆さんの生き方や働き方に大きな影響を与えると私は考えています。\n", - "\n", - "> **文字コードに関連した余談** \n", - "Windows環境で作成されたテキストファイルを扱う際は読み込みで、文字コードによるエラーが出るかもしれない。最近ではメモ帳でもUTF-8(世界標準)を採用しているよう(→[MicrosoftのWindows blogの記事](https://blogs.windows.com/japan/2020/02/20/about-windows-and-japanese-text/))だが、古いテキストファイルだとShift-JISになっているかも。そういうときは、```open(file, \"r\", encoding = \"shift_jis\")```など、ファイルを開くときにencodingを明示的に指定する必要がある。明示的にUTF-8で保存したいときは```open(file, \"w\", encoding = \"utf-8\")```などとする。 \n", - "参考: [公式ドキュメント](https://docs.python.org/ja/3/howto/unicode.html#reading-and-writing-unicode-data) \n", - "ここまで勉強してきた皆さんには「そんなの、パソコンに存在するShift-JISで書かれたテキストファイルを全てUTF-8に変換するPythonスクリプト書けばいいんじゃね?」という発想があることを期待しています。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "J5sIptAmd1ni" - }, - "source": [ - "## csv,エクセルファイルの操作" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ovU-6Bd-D9e1" - }, - "source": [ - "### アンケート分析\n", - "\n", - "冒頭の二番目のファイル[python_handling_test.csv](https://drive.google.com/file/d/1bYJNWdtujcQWfSBAa1UeXi2ZzJRJktil/view?usp=sharing)はあるアンケート結果をまとめたファイルになっています。\n", - "\n", - "これは、Google フォームで作成したアンケーで、国数英社理(中学の5科目)に対する得意/苦手意識の調査を想定した疑似アンケートです。\n", - "\n", - "このようなアンケート調査は事務作業や卒業研究などで頻繁に見られ、会社や大学など所属コミュニティで何らかの意思決定に用いられることも多いことでしょう。こうしたアンケート分析を行っていると、\n", - "* 各回答項目同士の関係が知りたい\n", - "* 明示的な項目以外の情報も抽出したい\n", - "\n", - "といった要望が出てきます。今の場合でいうと、\n", - "* 各科目ごとの得意・苦手意識の相関を調べたい\n", - "* 夜中(あるいは日中)にアンケートを回答した夜型(昼型)の人に見られる特徴がなにかないか?\n", - "\n", - "といったイメージです。そんなとき、\n", - "\n", - "> 国語が得意(どちらかというと得意)と回答した方に質問です。 \n", - "英語についてはどうでしょうか?\n", - "\n", - "などと新たに設問を増やしてアンケートをやり直すというのは得策では有りません。 \n", - "すでに得られた情報からさらなる情報を引き出すことを考えてみましょう。 \n", - "まずは、csvファイルに記載された情報を整理してプログラムで扱いやすくすることを考えます。\n", - "\n", - "> 余談: このcsvファイルをExcelで開こうとするとお使いの環境によって文字化けを起こすかと思います。これはgoogleフォームで作成されたcsvファイルの文字コードが世界標準のutf-8を使用しているのに対し、ExcelがShift-JISという時代遅れな文字コードでcsvファイルを開こうとするためです。Googleのスプレッドシートや、Mac標準のNumbersで開くと文字化けしません。\n", - "\n", - "> 2000件の回答は、もちろん私が手作業で入力したわけでも誰かに協力してもらったわけでもなく、一定のルール(傾向)を勝手に設定した上でランダムに回答を作成しフォームから自動回答するPythonスクリプトを書きました。 \n", - "時間に余裕があれば、こうしたWeb操作を自動化する方法も授業で扱います。 c.f. ブラウザ操作, Webスクレイピング" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zF6wdCGff4qd" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/python_handling_test.csv\" #読み込むファイルのパスの指定" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vq3T9r6wgBmg" - }, - "source": [ - "とりあえずファイルの中身を数行表示してみる。\n", - "\n", - "csvファイル(コンマ区切りのテキスト)なので、テキストファイルと同じ方法をとる(他の方法ももちろんある)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "4yG6dZUngpnA", - "outputId": "eb5da226-418d-4a75-e4fd-f680959f03ed" - }, - "outputs": [], - "source": [ - "inp=open(filename,\"r\")\n", - "csv_lines=inp.readlines() \n", - "inp.close()\n", - "print(\"行数は\",len(csv_lines))\n", - "for i in range(5):\n", - " print(csv_lines[i].rstrip())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mfdbVE1Bhrhi" - }, - "source": [ - "ちなみに...```pandas```ライブラリを使うとcsvをサクッと読み込むことができる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "fgDQrP-1hA0D", - "outputId": "8a51c3dc-77f5-4909-95b0-3e209da09a55" - }, - "outputs": [], - "source": [ - "import pandas as pd \n", - "df = pd.read_csv(filename)\n", - "print(df)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bMWTdHs9ilWM" - }, - "source": [ - "さて、```csv_lines```に格納したデータをもう少し扱いやすいように変更しよう。 \n", - "最初の0行目はどういうデータが入っているか(データの項目)を表している。 \n", - "1-2000行目には2000人分の回答が詰まっている。 \n", - "\n", - "これによると、 \n", - "> 0列目: 回答した時刻 \n", - "> 1列目: 性別 \n", - "> 2列目: 国語 \n", - "> 3列目: 数学 \n", - "> 4列目: 英語 \n", - "> 5列目: 社会 \n", - "> 6列目: 理科 \n", - "\n", - "らしい。いろいろなデータの整理方法があると思うがここでは、\n", - "* 処理A 0列目の時刻を24時間表記にして表示する \n", - "* 処理B 2-6列目の各科目の得意・苦手意識を、文字列を除去して数値[-2,-1,0,1,2]として扱う\n", - "\n", - "をまずやってみよう。\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Kso8FZs6nQa0", - "outputId": "3e2c5835-19b6-41de-ba7c-bda96bcc60d5" - }, - "outputs": [], - "source": [ - "#処理Aのための関数\n", - "#input_strが、\"年月日 時刻(h:m:s) 午前/午後 GMT+9\" という文字列である、という文字列の[構造]を知った上での実装になっていることに注意\n", - "def make_time_24h(input_str): \n", - " time = input_str.split()[1]\n", - " AMPM = input_str.split()[2]\n", - " hms = time.split(\":\")\n", - " h = int(hms[0])\n", - " if AMPM == \"午前\":\n", - " output_str = time \n", - " else :\n", - " if h != 12:\n", - " output_str = str(h +12)+\":\"+hms[1]+\":\"+hms[2]\n", - " else:\n", - " output_str = str(h)+\":\"+hms[1]+\":\"+hms[2] # 12時xx分だけは別の取り扱いが必要\n", - " return output_str\n", - "\n", - "nlines=[] #整理したものをリストとしてまとめるための空のリスト\n", - "for nth,line in enumerate(csv_lines[1:]): \n", - " nline = line.rstrip().replace('\"','').split(\",\") # 改行文字の除去、ダブルクォーテーションの除去, カンマで分割 \n", - " # この時点でnlineは0:時刻 1:性別, ...のリストとなっているはず print()でcheckしてみよう\n", - " # 処理A)\n", - " time = make_time_24h(nline[0])\n", - " #print(\"nline[0]\", nline[0], \"time\", time)\n", - " M_or_F = nline[1] #性別\n", - "\n", - " # 処理B)\n", - " points = [ int(nline[k].split()[0]) for k in range(2,7)] #各科目の値だけのリスト(points)を作成\n", - " # 上記をmap関数にしてみよう。\n", - "\n", - " nline = [time, M_or_F]+points #リストを連結(時刻,性別と各科目の値を同じ階層で結合)して、nlineという名前で上書き\n", - " nlines += [ nline ]\n", - "\n", - " # うまく編集できたか400行おきほどでprintしてチェックしてみる\n", - " if nth % 400 == 0 :\n", - " print(\"編集前\", line.rstrip())\n", - " print(\"編集後\", nline)\n", - " print(\"\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VVxC-_FanOp2" - }, - "source": [ - "最後に、各項目の得点を適当なリスト(あるいはnp.array)に整形しておけば、種々の分析を行うことができます。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "38OyKcL4DVtR", - "outputId": "a78ecf75-7448-4011-ee0c-00cd6acc7470" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "points = [ [] for i in range(5)]\n", - "for tmp in nlines:\n", - " for i in range(5):\n", - " points[i]+=[tmp[2+i]]\n", - "print(\"points\", np.array(points))\n", - "print(\"各科目の平均スコア:\", [np.mean(points[i]) for i in range(5)])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gplM2Js9DWwP" - }, - "source": [ - "相関分析は以降の章で扱うので具体例は省略します。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2_SWNlqrhMLY" - }, - "source": [ - "## $\\clubsuit$ 複雑なエクセルファイルの操作\n", - "\n", - "```kakei.xlsx```はエクセルファイルで以降では、2020年度前期のデータサイエンス入門(一部学科を除く)の \n", - "相関分析で使用されたエクセルファイル、[kakei.xlsx](https://drive.google.com/file/d/1gJMVHivmP7R9Qf4LdqRhdPVc3x0IzD8v/view?usp=sharing)を使用します。 \n", - "\n", - "\n", - "以下では、上と同じディレクトリに`kakei.xlsx`を置いたと仮定して \n", - "処理を行いますので、適宜ご自身の環境にパスを置き換えてください。\n", - "\n", - "※もともとはxlrdというライブラリを使って実装していましたが.xlsx形式をサポートしなくなるとのことで、pandasライブラリを用いた実装に変更しました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "FXWuDrYahMXf" - }, - "outputs": [], - "source": [ - "filename = \"/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx\" #読み込むファイルのパスの指定" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CcnorJJvmAR6" - }, - "source": [ - "まずはxlsxファイルをPythonで読み込んで、どんな\"シート\"があるのかを確認してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "vsLXQKlG8WYL", - "outputId": "7bf4f36d-c5f5-496e-d2ec-a93c7b854a2f" - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "input_file = pd.ExcelFile(filename)\n", - "sheet_names = input_file.sheet_names\n", - "print(\"pandas: シート名\",sheet_names)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SRyFwkbDqGjP" - }, - "source": [ - "たくさんシートがあることが分かります。 \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "X1HOxhl6edOF" - }, - "source": [ - "Sheet1の中身をのぞいてみましょう。まずは行と列の数を取得してみます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "0YivHM_Yed3Y", - "outputId": "f86c467c-0249-4f97-dabc-8d0cee8f51e9" - }, - "outputs": [], - "source": [ - "Sheet1 = pd.read_excel(filename, sheet_name=\"Sheet1\")\n", - "print(\"行,列の数\", Sheet1.shape)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "X5mDZqBWgXSD" - }, - "source": [ - "0-5番目の行にはどんな値がセルに入っているのかな...と思ったら" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "nu6LskLOf7zz", - "outputId": "8cdbd47d-1f90-460f-e825-74c8bcf45d44" - }, - "outputs": [], - "source": [ - "for i in range(5):\n", - " print( list(Sheet1.iloc[i]) )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xkzCNbhDpbOT" - }, - "source": [ - "などとする。このように、扱いたいファイルの\"構造\"を知ることが \n", - "やりたい操作を系統的に実行するための第一歩です。 \n", - "このエクセルを実際に開くとSheet1からSheet12までが複数都市の家計調査のデータで \n", - "S1からS12までが気候データになっていて \n", - "1-12までの数字が2017年の1月から12月までに対応していることが分かります。\n", - "\n", - "実際のデータを触っていると「2006年までとそれ以降とでデータファイル(.xlsx)の\"構造\"が違う」 \n", - "といったことも出てきます。 \n", - "最初は特定のものに合わせたコードを作り、徐々に\"汎用性の高い\"コードにしていくのがよいでしょう。\n", - "\n", - "このエクセルを使って実際に作業をするには、[細かいライブラリの使い方]などを説明することになるため \n", - "授業ではやらず、以下の\"おまけ\"にいれておきます。この作業や実践DSに限らず\n", - "* 自分がやりたい操作をきちんと言語化する\n", - "* 公式ドキュメントやWebから情報を探す\n", - "* とにかく試してみる\n", - "\n", - "という意識が重要です。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HJJ1Rd9XkITb" - }, - "source": [ - "### $\\clubsuit$$\\clubsuit$おまけ\n", - "\n", - "以下のコードは、プログラミングの\"ありがたみ\"を感じてもらうためのお試し用です。 \n", - "(昔書いたかなり読みにくいコードなのであまり真剣に読まないでください.)\n", - "\n", - "**大量の画像ファイルをドライブに生成するので、以下を読んだ上で実行してください**\n", - "\n", - "以下のコードたちを何もいじらずに実行すると、 \n", - "全都市の月別平均気温と全品目の世帯平均支出のうち、 \n", - "相関係数の絶対値が0.9以上のもの(291通り)をプロットして画像として保存します。 \n", - "```pthre```の値を小さくすると、生成される画像の数がとんでもなく増えるのでやらないでください。\n", - "\n", - "(0.9 → 291通り, 0.8 → 1234通り, 0.7 → 2871通り, \n", - " 0.6 → 5233通り, 0.5 → 8375通り, 0.0 → 32876通り)\n", - "\n", - "Google Colab上で実行して291枚の画像が生成されるまでに80~150秒程度かかるようです。\n", - "\n", - "この時間未満でエクセルで操作をして同様の処理を完了出来るという方は...おそらく地球上にいないでしょう(要出典)\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ALOn2XR5lfT-" - }, - "outputs": [], - "source": [ - "# 画像がいっぱい生成されると面倒なので画像を保存するフォルダを作成しておく\n", - "!mkdir /content/drive/MyDrive/AdDS/chapter8_data/kakei_cor_pic " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "dsPxfNhrr5e2", - "outputId": "6d37c43f-3c92-4ff2-84f2-609ba697704d" - }, - "outputs": [], - "source": [ - "!pip install japanize_matplotlib " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rZHYbCjWmXgG", - "outputId": "81a4fc87-c666-4255-f658-d01ed18d0e7e" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "from matplotlib import pyplot as plt\n", - "import japanize_matplotlib\n", - "import time\n", - "\n", - "class ebook:\n", - " def __init__(self,inpf):\n", - " self.input_file = pd.ExcelFile(filename)\n", - " sheet_names = input_file.sheet_names\n", - " self.sname = sheet_names\n", - " self.ns = len(sheet_names)\n", - " print(\"pandas: シート名\",sheet_names)\n", - " print(\"self.ns\", self.ns)\n", - "\n", - " s_kikou=[]; s_kakei=[]\n", - " for i, sheetname in enumerate(self.sname):\n", - " if \"Sheet\" in sheetname :\n", - " s_kakei += [ i ]\n", - " elif \"S\" in sheetname :\n", - " s_kikou += [ i ]\n", - " self.s_kakei,self.s_kikou = s_kakei,s_kikou\n", - " def indices(self):\n", - " return self.s_kakei, self.s_kikou\n", - " def readkakei(self,ikakei) :\n", - " ws = self.input_file.parse(sheet_name=self.sname[ikakei])\n", - " nr = ws.shape[0]\n", - " premode = True\n", - " items = []\n", - " for ii in range(nr): \n", - " trow = list(ws.iloc[ii])\n", - " hit = 0\n", - " if premode == True:\n", - " for jj,tmp in enumerate(trow):\n", - " if type(tmp) is str:\n", - " if \"市\" in tmp:\n", - " hit += 1\n", - " if hit > 5:\n", - " premode=False\n", - " i_kakei=[];p_kakei=[]\n", - " for jj,tmp in enumerate(trow):\n", - " if type(tmp) is str:\n", - " if \"市\" in tmp:\n", - " i_kakei += [jj]\n", - " p_kakei +=[ tmp ] \n", - " v_kakei = [ ]\n", - " else: \n", - " if ii >= 22:\n", - " if type(trow[8]) is str and trow[8] != \"\":\n", - " v_kakei += [ [trow[jj+1] for jj in i_kakei] ]\n", - " items += [trow[8]] \n", - " return i_kakei, p_kakei, v_kakei,items\n", - " def readkikou(self,ikikou):\n", - " ws = self.input_file.parse(sheet_name=self.sname[ikikou], header=None)\n", - " nr = ws.shape[0]\n", - " quantities = [];v_kikou=[]\n", - " premode=True\n", - " for ii in range(nr): \n", - " trow = list(ws.iloc[ii])\n", - " if premode :\n", - " if any([\"市\" in str(tmp) for tmp in trow]):\n", - " Tplaces = trow[1:]\n", - " premode=False\n", - " else:\n", - " quantities += [ trow[0] ]\n", - " v_kikou += [ trow[1:] ]\n", - " return Tplaces, v_kikou,quantities\n", - "\n", - "def seasoncolor(month):\n", - " if month <= 2 or month ==12:\n", - " return \"blue\"\n", - " elif 3 <= month <=5:\n", - " return \"green\"\n", - " elif 6 <= month <=8:\n", - " return \"red\"\n", - " elif 9<= month <=11:\n", - " return \"orange\"\n", - " return tcol\n", - "\n", - "def plot_cor(x,y,item,quantity,place,corrcoef): \n", - " fig = plt.figure(figsize=(4,4))\n", - " ax = fig.add_subplot(1,1,1)\n", - " ax.set_facecolor(\"#e0e0e0\")\n", - " ax.set_title(place+\" r=\"+str(\"%8.2f\" % corrcoef).strip())\n", - " ax.set_xlabel(item);ax.set_ylabel(quantity)\n", - " ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - " for i in range(len(x)):\n", - " tcol=seasoncolor(i+1)\n", - " ax.scatter(x[i],y[i],marker=\"o\",s=5,color=tcol,zorder=20000,alpha=0.7)\n", - " ax.text(x[i],y[i],str(i+1)+\"月\",color=\"k\",fontsize=8)\n", - " plt.savefig(oupdir + \"corr_\"+item+\"vs\"+quantity+\"_at_\"+place+\".png\",dpi=300) \n", - " plt.close()\n", - "\n", - "def calcor(date,places,items, Vs_kakei,Tplaces,quantities,Vs_kikou):\n", - " hit = 0; num_pic=0\n", - " Vs = [] \n", - " for j_K,place in enumerate(places):\n", - " for j_T, Tplace in enumerate(Tplaces):\n", - " if place != Tplace :\n", - " continue\n", - " for ik,item in enumerate(items):\n", - " kvalue = np.array([ Vs_kakei[i][ik][j_K] for i in range(len(Vs_kakei))])\n", - " quantity=quantities[iT]\n", - " Tvalue = np.array([ Vs_kikou[i][iT][j_T] for i in range(len(Vs_kikou))])\n", - " if all(Tvalue) == 0.0: ## missing value in climate data\n", - " continue\n", - " if printlog:\n", - " print(\"@\", place,\" \",item,kvalue,\" VS \",quantity, \",\",Tvalue)\n", - " corrcoef=np.corrcoef(kvalue,Tvalue)[0][1]\n", - " Vs += [ [ corrcoef, item, quantity, place] ]\n", - " if abs(corrcoef) > pthre:\n", - " hit += 1\n", - " if pltmode==True:\n", - " plot_cor(kvalue,Tvalue,item,quantity,place,corrcoef) \n", - " num_pic += 1\n", - " print(\"hit:\",hit, \" number of picture\", num_pic)\n", - "\n", - "if __name__ == \"__main__\":\n", - " ti=time.time()\n", - " T=True; F=False\n", - "\n", - " inpf = \"/content/drive/My Drive/AdDS/chapter8_data/kakei.xlsx\"\n", - " oupdir = \"/content/drive/My Drive/AdDS/chapter8_data/kakei_cor_pic/\" #適宜置き換える\n", - " iT = 6 # iT=6: 日平均気温\n", - " printlog= F #条件にhitした都市の品目と気候データを逐次printするかどうか. (Fを推奨)\n", - " pthre= 0.90 ## corrplotを描く相関係数のthreshold \n", - " pltmode = T ## T:plotする F:計算のみ ** 画像をいちいちplotして保存する必要がない場合Fを推奨\n", - " year=\"2017\" \n", - "\n", - " wb=ebook(inpf)\n", - " s_kakei,s_kikou=wb.indices() \n", - " Vs_kakei=[]; Vs_kikou=[];dates=[]\n", - " for i,ind_kakei in enumerate(s_kakei):\n", - " i_places,places, v_kakei,items = wb.readkakei(ind_kakei)\n", - " Tplaces, v_kikou, quantities = wb.readkikou(s_kikou[i])\n", - " if i+1 < 10:\n", - " date=year+\"0\"+str(i+1)\n", - " else:\n", - " date=year+str(i+1)\n", - " dates += [date]\n", - " Vs_kakei += [ v_kakei ]\n", - " Vs_kikou += [ v_kikou ]\n", - " calcor(dates,places,items,Vs_kakei,Tplaces,quantities,Vs_kikou) \n", - "\n", - " tf=time.time()\n", - " print(\"Elapced time[sec]:\", tf-ti)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "riw7f35TRWsD" - }, - "source": [ - "## 余談: 電子ファイルのフォーマット\n", - "\n", - "プログラムでデータを機械的に読み出して活用することで、人間が到底出来ないような作業効率を実現することができる場合も多い。\n", - "そんな光の側面ばかりなら良いが、実際にはそう上手くは行かないことも多い。\n", - "\n", - "業務のデジタル化・デジタルトランスフォーメーションなどといった標語とは裏腹に、世の中にあふれるcsv,スプレッドシートなどは、\n", - "csvと謳っておいて、実際にはカンマ区切りではなくタブ区切りであったり、機械判読を全く想定していないデータの書き方・並べ方となっているものが多く、プログラムを書ける人にとっては苦痛な状況も多い。 \n", - "\n", - "総務省統計局は令和2年2月に、政府統計(e-Stat)に関して[統計表における機械判読可能なデータの表記方法の統一ルールの策定](https://www.soumu.go.jp/menu_news/s-news/01toukatsu01_02000186.html)というものを出している。\n", - "これが最適な提案かはさておき、データの記述に法則性と機械判読性をもたせる意識を全員が持つことが重要なように思う。\n", - "\n", - "お掃除ロボットが床を綺麗にするためには、まずお掃除ロボットが走れるよう掃除する(床に物が散乱していない)という条件が求められる、という話だ(そうなの?)。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jH_bE8PSMP89" - }, - "source": [ - "## パスの指定\n", - "\n", - "ファイルがコンピュータ上でどこにあるかを指し示す文字列はファイルパス(path)と呼ばれる。 \n", - "```\"/content/drive/My Drive/XXX.png\"```もファイルパスの一例になっている。\n", - "\n", - "たとえば... \n", - ">[Sota]というユーザの[ドキュメント] (あるいは[書類])フォルダに \n", - "[csv_file]というフォルダがあり[test.csv]というcsvファイルが入っている\n", - "\n", - "とするとそのファイルを指し示すパスは \n", - "Windowsの場合→ ```C:\\Users\\Sota\\Douments\\csv_file\\test.csv``` \n", - "macOSの場合→ ```/Users/Sota/Documents/csv_file/test.csv```\n", - "となる。\n", - "\n", - "注: \n", - "* Windowsの場合→\"C\"の部分は皆さんのディスク環境に依存\n", - "* Google Colab.環境では、Unix(Mac)やLinuxと同様の方式(スラッシュを使用) \n", - "* バックスラッシュ\\はWindowsの日本語環境では¥円記号で表示される \n", - "(プログラムなどを書く人には厄介な仕様だったりする) \n", - "\n", - "コンピュータには、ホームディレクトリというものが指定されておりWindowsなら ```C:\\Users\\ユーザー名```,Macなら ```/Users/ユーザー名```に通常設定されていて、ユーザーがよく使うデスクトップや写真・ドキュメントなどのフォルダはホームディレクトリ直下に配置されている。また、ホームディレクトリは```~/```で簡略化して指定することもできる。\n", - "OSにもよるが...ライトユーザーはホームディレクトリより上の階層をあまり触らないことが推奨されている(と思う)。理由は、システムファイルが入っていることが多いため。\n", - "\n", - "パスの指定の仕方にはその他にも方法があり、ピリオドやスラッシュを駆使して現在のディレクトリからの[相対パス]で指定する事もできる。たとえば...\n", - "\n", - "Home \n", - "├ Documents \n", - "│└─ AdDS2021 \n", - "││  └─ Report1 \n", - "│└─ AdDS2020 \n", - "││  └─ Report1 \n", - "││  │  └─ StudentA \n", - "││  │  └─ StudentB \n", - "││  └─ Report2 \n", - "│└─ AdDS2019 \n", - "├ Picures \n", - "︙\n", - "\n", - "こういう階層構造になっていて、現在```Home/Documents/AdDS2020/Report1```という\n", - "ディレクトリにいるとすると、そこから\n", - "* StudentAへの相対パスは ```./StudentA```\n", - "* Report2への相対パスは ```../Report2```\n", - "* AdDS2019への相対パスは ```../../AdDS2019```\n", - "* Pictureへの相対パスは```../../../Pictures```\n", - "\n", - "といった感じ。前述のように愚直にReport1フォルダを指定するときは```/Users/Sota/Documents/AdDS2020/Report1```といった感じで、これを相対パスと対比させて絶対パスと呼んだりする。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kkrEMQUfhqzA" - }, - "source": [ - "### 余談: ファイル名に使用すべきでない文字\n", - "\n", - "授業で公開しているノートブックの名前は基本的に半角英数字とアンダースコアのみで構成されている。これは別に作成者(吉田)がイキってる訳ではない。\n", - "\n", - "* 半角スペース(以下␣という記号で表現する)\n", - "* 各種括弧 (),{},[]\n", - "* カンマ ,\n", - "* ピリオド .\n", - "* ハイフン -\n", - "* スラッシュ /\n", - "* エクスクラメーションマーク !\n", - "* 円記号(バックスラッシュ) ¥\n", - "* その他、機種依存文字などはもちろん、全角記号等\n", - "\n", - "などは、(プログラムで扱う予定がある)ファイルの名前には使用しないことが推奨される。その理由は色々あるが\n", - "\n", - "1. 機械の解釈にambiguity(あいまいさ)が生じる\n", - "2. (1.により人間側の操作が増えて)面倒\n", - "\n", - "というところに尽きる。例を示そう。 \n", - "Google Colab.上では冒頭に!を付けることで、以下に例を示すようなLinuxコマンドを実行できる。\n", - "\n", - "```!ls hogehoge.pdf``` #← lsコマンド リスト(該当ファイル等)を表示 \n", - "```!mkdir hogehoge``` #← make directoryコマンド \n", - "```!rm hogehoge``` #←remove(削除)コマンド " - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "i7-Lssixk1ig" - }, - "source": [ - "たとえば半角スペースが入った```test␣.pdf```というファイルがあったとする。 \n", - "これをlsコマンドで表示させようとして\n", - "\n", - "```\n", - "!ls test .pdf\n", - "```\n", - "\n", - "という命令を行うと、```test␣.pdf```という指定ではなく```test```と```.pdf```という2つのファイルが存在するかどうかを尋ねる命令になってしまう。 \n", - "この場合、```test␣.pdf```の有無を調べたければ、別途バックスラッシュを入れて「記号としての空白です」と機械に教えなくてはならない。 \n", - "```\n", - "!ls test\\ .pdf\n", - "```\n", - "\n", - "といった具合に、人間側の手間が必要になってしまう。 \n", - "人間が目で見るフォルダ名と機械に与えるべきパスが異なるというのは...やっぱり色んな場面で不便が生じる。\n", - "上記の記号や2バイト以上の文字はファイル(フォルダ)名に使わないのがコンピューターにとっては無難なのだ。\n", - "こういうことは小中高や大学でも理由付きで教えてくれなかったりするので、プログラミングをやって初めて気がつく(気にするようになった)という人も多いかもしれない。\n" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter8_handling_files.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb deleted file mode 100644 index 8614dbdc..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter_ArtificialNeuralNetwork.ipynb +++ /dev/null @@ -1,1168 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sKor3X3ievgT" - }, - "source": [ - "# 機械学習: ニューラルネットワークによる回帰" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4qZBy99AnBTn" - }, - "source": [ - "\n", - "\n", - "この章では、最も単純な、入力層・隠れ層・出力層からなるニューラルネットワークを使って、データから尤もらしい予測を与える関数を構築してみましょう。\n", - "\n", - "対象とする(疑似)データは、多項式回帰の際に用いたデータと同じsin関数+ノイズで生成することにします。\n", - "\n", - "\n", - "* すすんだ注: このノートブックでは「ニューラルネットワークをPythonで表現してみる」ことに重きをおくため、使用するデータを訓練データ,検証データ,テストデータに分けることはせず、データは全てニューラルネットワークの訓練データとして使うこととします。\n", - "授業で説明するとおり、一般に[教師あり学習]の文脈でニューラルネットワークを考える際は、本来データを上の様に複数用途に分けながら、モデル選択を行ったり、汎化性能の評価に使ったりします。" - ] - }, - { - "cell_type": "code", - "execution_count": 135, - "metadata": { - "id": "nme6EtxcerdN", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "def create_toy_data(sample_size, std):\n", - " np.random.seed(1234) #毎回同じデータになるように乱数の種を固定しておく \n", - " x = np.linspace(0, 0.5, sample_size)\n", - " t = np.sin(2*np.pi*x) + np.random.normal(scale=std, size=x.shape) \n", - " return x, t\n", - "\n", - "xt,yt = create_toy_data(40,5.e-2) " - ] - }, - { - "cell_type": "code", - "execution_count": 136, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "kZDRP8GFCSl1", - "outputId": "b2d6c33e-26ad-45d1-ed2a-30b914602522", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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3ok2PhEROXDff+/f3998E3r29GbbRx8NTz8NVarAiy9GHWF6UhImAHz4oU9FFm6WaubHp0+PJi4RETl4b78NP/+592XMzwwuucT3+5XEUxImgO/1uH597HPr1vl5ERFJTiH4jiWxlCunkpOoKAkTAAYNguee84Qrv5wcePll3xxWRESS08kn+4xG4VXvIcCzz8Lpp0cTV7pTEiYANG/um2h37+41AvPmweOPwwknwC23lHxLIhERKXsOO8xXvffu7clYCL7n75VX+pvvwYOjjjA9adsi+cltt0GXLvCPf8CDD0KzZjBqFJxyStSRiUX5fHwAABHUSURBVIjIwbrlFqhbF379a1i5EipVgiFDYNq0vAVZklgW4jgRbGa9gYeBDOCJEML/FXPdAOAloHMIIXtvHzMrKytkZ+/1EhERESlGCLBliydhGRlRR5P6zGxuCCEr1rm4TUeaWQYwAugDtAIGm1mrGNdVA64DZsUrFhEREXFm3pJICVj04lkT1gVYFkJYHkLYDowF+se47i7gz8DWOMYiIiIiUqbEMwmrB6zO9zon99hPzKwj0CCEMHlvH8jMhppZtpllry+uj4KIiIhIEolsdaSZlQMeBH67r2tDCCNDCFkhhKzMzMz4ByciIiISZ/FMwtYA+Xvz1s89tkc1oA3wrpmtALoBE80sZvGaiIiISCqJZxI2B2hmZk3MrCIwCPhpY4QQwsYQQu0QQuMQQmPgI6DfvlZHioiIiKSCuCVhIYSdwHBgKrAYGBdCWGhmd5pZv3h9XhEREZFkENdmrSGEKcCUQsduLebak+IZi4iIiEhZom2LRERERCKgJExEREQkAkrCRERERCKgJExEREQkAkrCRERERCKgJExEREQkAnFtUSEiIiLJb+1aWLAAateGDh3ALOqIUoOSMBEREYlpyxa46ip49VU49lhYuRKqVIFnnvFkTA6OkjARERGJ6bLLYNcuWLECqleHEOCFF6B3b/j0Uzj88KgjTG6qCRMREZEivvoK3nwTnnrKEzDwacgLL4T+/eHxx6ONLxUoCRMREZEi5syBE0+EQw4peq5vX/joo8THlGqUhImIiEgRNWvC11/HPvf1135eDo6SsBS2bh3cfz9ccw389a/w7bdRRyQiIsnipJNg1Sp4772Cx3/8ER55BIYMiSSslKIkLEVNmgTHHAOLF0PTpjB7NrRoAe++G3VkIiKSDCpU8Hqwc8+F226DDz6AZ5+F446D7t2hV6+oI0x+FkKIOob9kpWVFbKzs6MOo0z75htPuF5/Hbp0yTv+9tswaJAXW1apEl18IiKSPJYsgUcfhY8/hsxMuPhiL8xXr7CSMbO5IYSsWOfUoiIFPfccnHFGwQQM4JRToFs3eOkl+NWvoolNRESSS4sWPv0opU/TkSlo1Spo2zb2ubZt/byIiIhES0lYCmreHGbNin1u1iw/LyIiItFSEpaCLrgA3n/fa8Lye/FFn9s/66xo4hIREZE8qglLQdWrwyuvwIAB0L69/5o9G7780ldNVqoUdYQiIpLK3nsPHngAPvkEatXyOuSrr4aKFaOOrGzRSFiKOu44WL7c/+HXqAHDh8OyZZ6QiYiIxMtzz/mMTP/+8OGH8PDD8MYb/nrnzqijK1vUoiICIfhS35UrvT6rTZuoIxIRETl4W7ZAw4YwbRq0a5d3fOdOOOEEuOEG7zuWTvbWokIjYQm2bBl07gznn+9N7/r0gZNPhrVro45MRETk4LzzDrRqVTABAyhfHoYNg3HjoomrrFISlkBbtsCpp8Ill8DSpTBhgjdO7dEDTj8ddu8u/t45c+Dyy71D8fDhMH9+4uIWEREpia1bvS45lurV/eeg5FESlkDjxkHLll6cWC73b758ed8OIgQfvo3lkUd8RWOzZj6UW6cO9OwJzz+fuNhFRET2pXt3394o1l7F48d703DJo9WRCfTxx7H32jLz49nZPlKW31dfwR13+L0NG/qx3r1h4ED/x96nDxx2WPxjFxER2ZfDD/fZnnPOgSefhKOOgs2bvTh/xgz429+ijrBs0UhYAtWq5cX4saxcCbVrFz3+/PO+ymRPArZHq1aegI0fX/pxioiIHKj77/da565dfQanXj1PwN5911frSx4lYQk0ZIgv3V29uuDxhQth6lQf3SpswwZo1Cj2x2vY0M+LiIiUFRkZXmazerX3ply6FF57DRo3jjqyskdJWAIddRT84Q++ifa993rflDvu8DnyESOgZs2i93TsCG+9VfR4CPDmm9CpU/zjFhER2V+VK/vm35mZUUdSdsU1CTOz3ma2xMyWmdlNMc7fYGaLzOwzM5tmZsWM+aSO667zVZFffAEPPgjr13tB/gUXxL7+3HP9XcSjj+atnty5E+680xOxwjVkIiIikhzi1qzVzDKApcCpQA4wBxgcQliU75qTgVkhhM1mdiVwUgjh/L193FRo1rq/li2DwYPhu++8sevcuXD00fDCC3DkkVFHJyIiIsXZW7PWeK6O7AIsCyEszw1iLNAf+CkJCyG8k+/6j4AhcYwnaTVt6ns/fvIJrFgBd9+tLvsiIiLJLp5JWD0gfwl6DtB1L9dfCrwe64SZDQWGAjQsvEwwTZh5fVjHjlFHIiIiIqWhTBTmm9kQIAu4L9b5EMLIEEJWCCErUxV+IiIikgLiORK2BmiQ73X93GMFmFlP4PdAjxDCtjjGIyIiIlJmxHMkbA7QzMyamFlFYBAwMf8FZnYs8BjQL4SwLo6xiIiIiJQpcUvCQgg7geHAVGAxMC6EsNDM7jSzfrmX3QdUBcab2Twzm1jMhxMRERFJKXHdOzKEMAWYUujYrfn+3DOen19ERESkrNIG3iIiIhK5TZu8/+Xcub6X8kUXQcuWUUcVX2VidaSIiIikr0WL4JhjfDu/Dh1g1y7o0cM3A09lGgkTERGRyIQAgwbB7bfDpZfmHb/2WujaFU44wX9PRRoJExERkcjMng3bt8Ovf13w+JFHeiL2+OPRxJUIGgkTERGRyOTk+FSkWdFzrVvD228Xf28I8M47kJ0NtWrBgAFQo0b8Yi1tGgkTERGRyLRs6aNhO3YUPTdjBrRoEfu+f/8bunSB66+Hdetg6lQ46ih48cW9f74PPoCzzoIGDaB9e3jgAdi69eC/jgOhJExEREQi07q1J2K33eYjW3t88gmMHAnDhsW+74ILoHdv+PRTL+AfNw7eew+uuQYWLox9z4svwvnnQ9++8OGH8OijPtJ25pmxk8B4s5D/K04CWVlZITs7O+owREREpJT85z/Qvz/8979w6qmwYoWPWD3xBJxzTtHrFy6E007z68oXKqy6/XbYsAEeeaTg8W3boFEjmDIFOnbMO75rF5x0kid7F15Yul8XgJnNDSFkxTqnkTARERGJ1OGHw8yZ8I9/QOPGMHAgrFwZOwEDWLoUsrKKJmAA3br5+cLef9+nK/MnYAAZGXDllTB+/EF/GftNhfkiIiISOTM48UT/tS8NGvho2O7dUK7QcNKCBX6+sK1boXr12B+venXYsmX/Yz5YGgkTERGRpNKpE1SrBo89VvB4Tg785S9w+eVF7znuOJg1C9avL3pu/Hg45ZT4xLo3GgkTERGRpGIGY8dCr14webL/vnIlPPss3Hxz7OautWrB0KFw9tnw1FPQrJmPfj36qLe5ePDBxH8dSsJEREQk6TRv7tsdvfii7zdZq5bXlTVtWvw9f/oT3HMPdO/uU5AbNvgI2bvv+v2JptWRIiIikla2bfORs5o1ITMzvp9rb6sjNRImIiIiaaVSJR9Ji5oK80VEREQioCRMREREJAJKwkREREQioCRMREREJAJKwkREREQioCRMREREJAJKwkREREQioCRMREREJAJq1prPypXw9NOwahW0bAm/+hXUqbPv+7ZsgW+/hdq1vQGciIiIyL5oJCzXmDG+K/u330K3bvD559C6Nbz9dvH3/PADXHkl1K0LWVlQrx7cdBNs3564uEVERCQ5KQkDcnJg+HB47z14+GG4/HIYNQrGj4dBg2Dz5qL37NoFffvC1q2esK1dC3Pm+GaiF12U+K9BREREkouSMODZZz3Zat264PGTTvIRrgkTit4zdaonZ6NGwRFH+LEmTTxxmz4dPvss7mGLiIhIElMSho+EHXNM7HOtWsGaNUWPv/kmnH8+lCv0N1ipEpxzjp8XERERKY6SMDzRmjEj9rnp02MnaBUq+FRkLFu2+HkRERGR4sQ1CTOz3ma2xMyWmdlNMc5XMrMXc8/PMrPG8YynOEOGwLRpMGlSweOPPQbffAN9+hS9Z8AAeOYZT7jy27ABXn4ZzjorfvGKiIhI8otbiwozywBGAKcCOcAcM5sYQliU77JLge9CCE3NbBDwZ+D8eMVUnBo14NVXPbFq3hzatIGPPvLVj5MnQ0ZG0Xu6doXu3eG00+Cuu6BtW7/n5pvhiiugUaNEfxUiIiKSTOLZJ6wLsCyEsBzAzMYC/YH8SVh/4PbcP78EPGpmFkIIcYwrpm7d4KuvPOlavRrOOANOPbVozdceZvDUU/D3v8M113hvsRYt4H/+x0fWRERERPYmnklYPWB1vtc5QNfirgkh7DSzjUAt4Jv8F5nZUGAoQMOGDeMVLxUrwtlnl/z6jAxvbTF8eNxCEhERkRSVFIX5IYSRIYSsEEJWZmZm1OGIiIiIHLR4JmFrgAb5XtfPPRbzGjMrDxwKbIhjTCIiIiJlQjyTsDlAMzNrYmYVgUHAxELXTAR+lfvngcDbUdSDiYiIiCRa3GrCcmu8hgNTgQzgyRDCQjO7E8gOIUwERgGjzWwZ8C2eqImIiIikvHgW5hNCmAJMKXTs1nx/3gqcG88YRERERMoiS7bZPzNbD6yM86epTaEVmlIm6LmUPXomZZOeS9mjZ1I2JeK5NAohxFxVmHRJWCKYWXYIISvqOKQgPZeyR8+kbNJzKXv0TMqmqJ9LUrSoEBEREUk1SsJEREREIqAkLLaRUQcgMem5lD16JmWTnkvZo2dSNkX6XFQTJiIiIhIBjYSJiIiIREBJmIiIiEgE0joJM7PeZrbEzJaZ2U0xzlcysxdzz88ys8aJjzL9lOC5nGhmH5vZTjMbGEWM6aYEz+QGM1tkZp+Z2TQzaxRFnOmmBM9lmJnNN7N5ZvahmbWKIs50sq9nku+6AWYWzExtK+KsBP9PLjaz9bn/T+aZ2WWJii1tkzAzywBGAH2AVsDgGN+gLgW+CyE0BR4C/pzYKNNPCZ/LKuBi4IXERpeeSvhMPgGyQgjtgJeAexMbZfop4XN5IYTQNoTQAX8mDyY4zLRSwmeCmVUDrgNmJTbC9FPSZwK8GELokPvriUTFl7ZJGNAFWBZCWB5C2A6MBfoXuqY/8Ezun18CfmFmlsAY09E+n0sIYUUI4TNgdxQBpqGSPJN3Qgibc19+BNRPcIzpqCTP5b/5XlYBtBIrvkrycwXgLvxN/dZEBpemSvpMIpHOSVg9YHW+1zm5x2JeE0LYCWwEaiUkuvRVkuciibW/z+RS4PW4RiRQwudiZleb2Zf4SNi1CYotXe3zmZhZR6BBCGFyIgNLYyX9/jUgt5ziJTNrkJjQ0jsJE5FSZmZDgCzgvqhjERdCGBFCOBr4HXBL1PGkMzMrh08J/zbqWKSA14DGueUUb5E3AxZ36ZyErQHyZ7v1c4/FvMbMygOHAhsSEl36KslzkcQq0TMxs57A74F+IYRtCYotne3v/5WxwFlxjUj29UyqAW2Ad81sBdANmKji/Lja5/+TEMKGfN+zngA6JSi2tE7C5gDNzKyJmVUEBgETC10zEfhV7p8HAm8HdbeNt5I8F0msfT4TMzsWeAxPwNZFEGM6KslzaZbv5enAFwmMLx3t9ZmEEDaGEGqHEBqHEBrj9ZP9QgjZ0YSbFkry/6Ruvpf9gMWJCq58oj5RWRNC2Glmw4GpQAbwZAhhoZndCWSHECYCo4DRZrYM+BZ/eBJHJXkuZtYZeAWoCZxpZneEEFpHGHZKK+H/lfuAqsD43LUrq0II/SILOg2U8LkMzx2h3AF8R96bSomDEj4TSaASPpNrzawfsBP/WX9xouLTtkUiIiIiEUjn6UgRERGRyCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJExEREYmAkjARERGRCCgJE5G0ZWadczftrWxmVcxsoZm1iTouEUkPatYqImnNzO4GKgOHADkhhD9FHJKIpAklYSKS1nL3k5sDbAWOCyHsijgkEUkTmo4UkXRXC9/3sho+IiYikhAaCRORtGZmE4GxQBOgbghheMQhiUiaKB91ACIiUTGzXwI7QggvmFkGMMPMTgkhvB11bCKS+jQSJiIiIhIB1YSJiIiIREBJmIiIiEgElISJiIiIREBJmIiIiEgElISJiIiIREBJmIiIiEgElISJiIiIROD/A6MtUXdQon1aAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "###グラフにしてみる\n", - "import matplotlib.pyplot as plt\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qG3GbElypvo7" - }, - "source": [ - "ではいくつか必要な関数を適宜定義しながら進めていきましょう。\n", - "\n", - "*注: 以下のコードは入力・出力ともに1次元かつ、決まったニューラルネットワーク構造の場合に対して書かれているため、naiveに2層以上の隠れ層を持つニューラルネットワークに拡張するのはstraightfowardではなく、また効率的ではありません。" - ] - }, - { - "cell_type": "code", - "execution_count": 137, - "metadata": { - "id": "uRYnoX_rhm6U", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "nhl = 8 ## 隠れ層のノードの数を指定 これを増やすほどニューラルネットワークの表現能力が上がる一方、データに過適合しやすくなる(例外あり)" - ] - }, - { - "cell_type": "code", - "execution_count": 138, - "metadata": { - "id": "9NjbaZrFpw0K", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#重み行列W,V(今はベクトル)と、隠れ層でのバイアスbs,出力層でのバイアスを正規乱数で初期化\n", - "np.random.seed(1234) #結果が実行ごとに同じになるよう乱数を固定(バグを見つけやすくする)\n", - "W = np.random.normal(0.0,1.0,nhl)\n", - "V = np.random.normal(0.0,1.0,nhl)\n", - "bs = np.random.normal(0.0,1.0,nhl)\n", - "b0 = np.random.normal()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OqSaHMtth5to" - }, - "source": [ - "隠れ層で作用させる活性化関数を定義しておきましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": 139, - "metadata": { - "id": "z8XFRbf6h6q9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#シグモイド関数: 活性化関数の一つ\n", - "def sigmoid(z):\n", - " return 1.0/(1.0+np.exp(-z))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iHf3g_gsiENm" - }, - "source": [ - "最適化したい量(データとモデルの齟齬を表す量)を目的関数(target function)やloss functionなどと呼びます。(以下でもそれに倣う)\n", - "\n", - "以下では、データとANNのアウトプットの二乗誤差を目的関数として定めることにします。" - ] - }, - { - "cell_type": "code", - "execution_count": 140, - "metadata": { - "id": "AsIEltHxiEY4", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "### データとANNの出力間の二乗誤差を計算する関数を作っておく。\n", - "def calc_tloss(x,y,tW,tV,tbs,tb0,acf):\n", - " nhl = len(tW)\n", - " s=0.0\n", - " for i in range(len(x)):\n", - " s += (np.dot(tV, acf(tW*x[i]+tbs)) + tb0 - y[i])**2\n", - " return s" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Q_QhyjGnQVyJ" - }, - "source": [ - "上ではcalc_tlossの引数にacfという変数を指定し、acfにsigmoidを指定しました。 \n", - "この様にしておくと、sigmoid関数以外の活性化関数を使う際にも、上のcalc_tloss関数が使いまわせますね。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6P_hprmIWE0w" - }, - "source": [ - "## データの下処理\n", - "\n", - "機械学習などの分析では、データの値を中心0,分散1に変換して扱うのが基本です。\n", - "\n", - "このことを、データの標準化と呼びます。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 141, - "metadata": { - "id": "ABVMF4Y9WCBN", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "ymean = np.mean(yt)\n", - "ystd = np.std(yt)\n", - "ny = (np.array(yt)-ymean)/ ystd #それぞれのデータを平均をひいて標準偏差で割る" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p_n9AjxUYWUr" - }, - "source": [ - "なぜ標準化が必要なのかは、今のような1次元入力データの場合よりもむしろ多変数を扱う際を考えてみるとわかります。\n", - "\n", - "変数ごとに標準的なスケールが違う値を扱う場合、スケールの大きな量に学習が引っ張られる、ということが起こりえます。\n", - "\n", - "たとえば目的関数を[体重と身長、それぞれについての二乗誤差の和]とする場合、 \n", - "データが50kg、ニューラルネットワークの予測が55kgで10%違っていても、二乗誤差の値は25ですが、 \n", - "身長が180cm vs 198cmと10%違っていたら、二乗誤差の値は324となります。 \n", - "したがって、目的関数は身長の予測精度により強く依存することになり、 \n", - "身長をより重視する(きちんと再現する)方向へ、ニューラルネットワークの学習が引っ張られてしまいます。\n", - "\n", - "もちろん、身長をより高い精度で推測したいニューラルネットワークを構築したいなら話は別ですが、 \n", - "特定の値を特別視しない(全ての量を平等に扱う)のなら、通常は標準化を行います。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 142, - "metadata": { - "id": "e01pxFk0Qiuj", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "acf = sigmoid #sigmoid関数をacfという名前で使う" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eUXQaPuVQ_FR" - }, - "source": [ - "さて、初期値W,V,bs,b0と活性化関数にsigmoidを選んだニューラルネットワークとデータの値の二乗誤差は..." - ] - }, - { - "cell_type": "code", - "execution_count": 143, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Xsdv35IfQ_bs", - "outputId": "958a2fc0-1afa-4736-bde7-4c3051d1aedb", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "初期値での二乗誤差 61.29358546868393\n" - ] - } - ], - "source": [ - "print(\"初期値での二乗誤差\",calc_tloss(xt,ny,W,V,bs,b0,acf))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q5o7mlnFMPLF" - }, - "source": [ - "データ1個あたり、ニューラルネットワークとデータ値との間にどれくらい誤差があるかというと..." - ] - }, - { - "cell_type": "code", - "execution_count": 144, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "84AJ8uM3MYxi", - "outputId": "a374719e-bd7f-4d97-ad61-2d02ef322096", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "データ1個あたりの誤差: 1.2378770684995737\n" - ] - } - ], - "source": [ - "print(\"データ1個あたりの誤差:\", np.sqrt(calc_tloss(xt,ny,W,V,bs,b0,acf)/len(xt))) #データ1個あたりどれほど誤差*があるか *標準化された誤差" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iV0s8cpJrN2e" - }, - "source": [ - "ランダムに生成した重み(W,V)やバイアス項(bs,b0)では、まだニューラルネットワークは訓練がなされていないデタラメな関数なので、図にプロットしてみると...\n" - ] - }, - { - "cell_type": "code", - "execution_count": 145, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "pSmbEHP9MhfL", - "outputId": "3b7c5b66-55f3-4e47-dfca-3e5e2184ae62", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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sVtv9ZatIh99BKNHw7Bhyc8791zo2RM+/tgH8E+YAG+9BVdfDQsWJD/nmWdg4EDo3RvefRdGjvSWtjPOSJ4EppqF2HecAXJyckJubm7UYYiIiEg5+eYbOPNM+O9/4eSTYflyb7F65BE466ySxy9YAKee6sdVSxhYddttsG4dPPhgfPmmTXDAATBtGhx+eHF5fj4cd5wne7/6Vfm+LwAzmxtCyElWp5YwERERidR++8HMmfDPf0Lz5jBgAKxYkTwBA1iyBHJySiZgAN26eX2it9/27srYBAwgOxuuuAImTtztt7HTNDBfREREImcGxxzjXzvStKm3hhUUQFZCc9Knn3p9oo0boW7d5M9Xty5s2LDzMe8utYSJiIhIRuncGerUgYceii/Py4O//hUuu6zkOd27w6xZsGZNybqJE+GEE1IT6/aoJUxEREQyihmMHw+nnAJTp/r3FSvgySfhppuSL+5arx4MHQr9+sFjj0GrVt76NXKkL3Nx333pfx9KwkRERCTjtG7t2x0984zvN1mvno8ra9my9HPuugvuvBN69PAuyHXrvIXszTf9/HTT7EgRERGpUjZt8pazffaBBg1S+1rbmx2pljARERGpUmrW9Ja0qGlgvoiIiEgElISJiIiIREBJmIiIiEgElISJiIiIREBJmIiIiEgElISJiIiIREBJmIiIiEgElISJiIiIRECLtcZYsQIefxy+/BLatoULLoCGDXd83oYN8O23UL++LwAnIiIisiNqCSs0bpzvyv7tt9CtG3z2GbRvD6+/Xvo5P/4IV1wBjRpBTg40bgw33gibN6cvbhEREclMSsKAvDwYPhzeegseeAAuuwzGjIGJE2HQIPj555Ln5OdD796wcaMnbKtWwZw5vpnoeeel/z2IiIhIZlESBjz5pCdb7dvHlx93nLdwTZpU8pzp0z05GzMGfvlLL2vRwhO3996DTz5JedgiIiKSwZSE4S1hBx+cvK5dO/jqq5Llr7wCAwdCVsJvsGZNOOssrxcREREpjZIwPNF6//3kde+9lzxBq17duyKT2bDB60VERERKk9IkzMx6mtliM1tqZjcmqa9pZs8U1s8ys+apjKc0Q4bAjBkwZUp8+UMPwdq10KtXyXP694cnnvCEK9a6dfDcc9C3b+riFRERkcyXsiUqzCwbGAWcDOQBc8xscghhYcxhlwDfhRBamtkg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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xp = np.linspace(0.0,0.5,300)\n", - "yp = np.array([np.dot(V, sigmoid(W*xp[i]+bs)) for i in range(len(xp))])\n", - "\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\") \n", - "ax.plot(xp,yp*ystd+ymean,label=\"ANN\") #ニューラルネットワークの予測ypは、\"標準化された\"yの値に従って学習されているので、元のスケールに戻さないといけない。\n", - "ax.legend()\n", - "plt.show(); plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zfYX7Od8NEDt" - }, - "source": [ - "当然ですが、全然だめですね。\n", - "\n", - "状況を改善するためにニューラルネットワークのパラメータを徐々に更新(学習)していきましょう。 \n", - "そのためには、まず勾配を計算する関数を用意しておきます。\n", - "\n", - "loss functionを$f$と書くことにすると、必要な勾配は4種類で\n", - "$\\frac{\\partial f}{\\partial W}, \\frac{\\partial f}{\\partial V}, \\frac{\\partial f}{\\partial b}, \\frac{\\partial f}{\\partial b_0}$です。 \n", - "プログラムではそれぞれ```dw,dv,dbs,db0```とでも名前をつけることにして、勾配を返り値として与える関数を定義します。\n", - "\n", - "以下では、勾配降下法, Adamの2通りの最適化手法を用いてパラメータを更新することとします。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wOxttwbLdc1E" - }, - "source": [ - "## 勾配降下法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nyeC4YIfjnua" - }, - "source": [ - "勾配降下法とは、目的関数を微分した勾配の値のみを使ってパラメータを更新する方法です。 \n", - "たとえば,重み$W$の$i$番目を更新する際には \n", - "$W_i := W_i - \\eta \\frac{\\partial f}{\\partial W_i}$ \n", - "とします。($f$は目的関数で、$\\eta$は学習率(パラメータ更新のスケールを決めるパラメータ)です。)" - ] - }, - { - "cell_type": "code", - "execution_count": 146, - "metadata": { - "id": "xyL8Tvp1r6F-", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def calc_der(x,y,tW,tV,tbs,tb0,acf,acfder):\n", - " tdw = np.zeros(nhl)\n", - " tdv = np.zeros(nhl)\n", - " tdbs = np.zeros(nhl)\n", - " tdb0 = 0.0\n", - " #以下の勾配の計算は、目的関数が二乗誤差かつ全データでの勾配の和を使用する場合にのみ正しい\n", - " for i in range(len(x)):\n", - " g = np.dot(tV, acf(tW*x[i]+tbs) ) + tb0 - y[i]\n", - " tdb0 += 2.0 * g\n", - " for jth in range(nhl): \n", - " tdv[jth] += 2.0 * g * acf(tW[jth]*x[i]+tbs[jth])\n", - " tdw[jth] += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth]) *x[i]\n", - " tdbs[jth] += 2.0 * g * tV[jth] * acfder(tW[jth]*x[i]+tbs[jth])\n", - " return tdw, tdv, tdbs, tdb0\n", - "\n", - "#シグモイド関数の微分: 勾配の計算を具体的に求めるのに使う\n", - "def sigmoid_der(z):\n", - " return np.exp(-z)/ ((1.0+np.exp(-z))**2)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UOWJiYG6Nrp5" - }, - "source": [ - "さてW,V,bs,b0の初期値での勾配の値は" - ] - }, - { - "cell_type": "code", - "execution_count": 147, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "6Px2oXdcNzTQ", - "outputId": "413b3795-ca17-4929-b956-278ea19b15f9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([ 5.21872673e-02, -8.03960749e+00, 1.83009108e+00, 1.91103332e+00,\n", - " 3.24927634e+00, -7.23670010e+00, -1.12232153e+00, 7.58282404e-03]),\n", - " array([36.82875279, 29.24447765, 49.19261588, 9.67161219, 23.84412956,\n", - " 23.11524231, 35.19158249, 35.04412075]),\n", - " array([ 2.14818071e-01, -3.23527933e+01, 9.04076394e+00, 8.00770445e+00,\n", - " 1.34159140e+01, -2.80674027e+01, -4.66782630e+00, 2.97730658e-02]),\n", - " 58.69466810466825)" - ] - }, - "execution_count": 147, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "acf = sigmoid\n", - "acfder = sigmoid_der #sigmoid関数の微分sigmoid_derをacfderという名前で使う\n", - "calc_der(xt,ny,W,V,bs,b0,acf,acfder)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "k7vvCZExdmnK" - }, - "source": [ - "と計算できるようになりました。" - ] - }, - { - "cell_type": "code", - "execution_count": 148, - "metadata": { - "id": "skJRBuEBrn4b", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def fitGD(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose):\n", - " for i in range(nepoch):\n", - " tdw,tdv,tdbs, tdb0 = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder)\n", - " tW = tW - eta * tdw\n", - " tV = tV -eta * tdv\n", - " tbs = tbs -eta * tdbs\n", - " tb0 = tb0 -eta * tdb0 \n", - " if verbose == 1:\n", - " print(i, \"tloss =\", calc_tloss(x,y,tW,tV,tbs,tb0,acf))\n", - " return tW,tV,tbs,tb0,tdw,tdv,tdbs, tdb0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "W86sRWDOSZfU" - }, - "source": [ - "では実際に上の関数を使って、パラメータの値を更新してみましょう。 \n", - "(nhlの値に依りますが、ちょっぴり計算に時間がかかります)" - ] - }, - { - "cell_type": "code", - "execution_count": 149, - "metadata": { - "id": "Zy6GcfmpSZwc", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "nepoch = 2000\n", - "acf = sigmoid; acfder=sigmoid_der\n", - "verbose=0\n", - "eta = 0.01 #学習率(パラメータ更新のスケールを決めるパラメータ)\n", - "W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N-vuF2Z9SRXU" - }, - "source": [ - "更新された重み・バイアス(W,V,bs,b0)を使って、データとの二乗誤差を計算してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": 150, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "uZUXTpfhS1Y2", - "outputId": "97daaae6-ed44-4498-fc52-6a61ed1cbb00", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "学習後の二乗誤差 31.426829182338306\n" - ] - } - ], - "source": [ - "print(\"学習後の二乗誤差\",calc_tloss(xt,ny,W,V,bs,b0,acf))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3MfVJVWmTJlU" - }, - "source": [ - "すると、さっきより小さくはなっていますが、そこまで二乗誤差が減っていません。 \n", - "\n", - "実際にplotしてみても" - ] - }, - { - "cell_type": "code", - "execution_count": 151, - "metadata": { - "id": "fSpr9Db1SQZ1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "xp = np.linspace(0, 0.5, 500) \n", - "yp = 0.0*xp \n", - "for i in range(len(yp)):\n", - " yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 " - ] - }, - { - "cell_type": "code", - "execution_count": 152, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "M4SvRcWLSSyg", - "outputId": "8dab58c0-6aed-44f0-972f-4b1df0857d19", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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5ZehVi23QOiYMW5V9nCoOXr+eTeE8lqApakffRQ2bnS9VSLhpqJJ2NVXu1rFu+8u2b55s1sHb/36I38vKZ2EATRo0IAVK1YQFxdHREQEsbGxrFq1igsvvJDU1FS++uorHn/8caZNmwZARkZGwPMq8ny9WjFfRELY5s1uDakWLVzv1qHExLiE629/c4uJNm58+N6cmiQ319W5BRIbW35dmIg4c+a4NfJKa9bMLeWydKnbWaOy5ebmMn78eBYsWIDP52NlOevjVPS83ysEBwlEJJh273a9WN26wR13uKGAM890SdnhxMa6hC2cEjBwdXEffAAZGSXbrXXDK8OGeROXSKho2NAN65fm97v3noYNK+9nrV27Fp/PR2JiIk899RRNmjRh4cKFpKamkhNoJhFU+LzfS0mYiBxkrVsVvnFjt07Vjz+6obQ+feC009SjU55OnVyieu65RQvNbt7stgUCV0gvIuW75BLXm176PeaNN1ytZGXN5N2+fTvXX38948ePxxjDnj17aNasGREREbz++uv4C1Y1jouLY9++fQevK++8o6UkTEQO+vZbN5w4YQLUrevaYmPhwQfdJ9EPPvA2viO1apXbHHzECLjxRpg/v/J/xgsvuBmfxx3nivO7dHEzuj799OhmdomEg8suc7MiTzjB9R5//jnccgv86U+u5vJoZGZmHlyiYujQoZx22mncd999ANx44428+uqr9OrVi+XLl1OnTh0Aevbsic/no1evXjz11FPlnne0VJgvIgf94x9ur8FHHy177PHH3XDBU09VfVxHY+pU1yN11VUuSVqyBJ55xr25B2N/ytxctwF5/frl14mJhIuKFuaDmyk8ebJLwvbtcx9obrih/L1PqyMV5ovIEYuLc0syBLJtmzseSvbtc+tpzZzpatvADbdecokbYj3jDLelT2WKioImTSr3MUXCQWSk27M1yEtzVSsajhSRg0aPdkOOpfct3LHDLb9w4SGXYK5+3n/fDW8UJmCFWrRwwx+BNrwWEakq6gkTkYOaNnX1X8cf79brGTDA7fH48MNuJesKjipUG9u3l7/XY5s2boFIqVw5OfDhh7B4sVteYMyYyp3ZJqHHWospvWVEDXQk5V3qCROREm6+GV59FWbNcvskvveeqwN78EGvI/v9jjnGFfgGem/8/HPo3bvqY6rJVqxwe2Y++6y7/9VXbgHO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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.plot(xp,yp*ystd+ymean,label=\"ANN\") ## ニューラルネットワークの出力は標準化した値に対して学習されていることに注意\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cINfIqP4TTAV" - }, - "source": [ - "ほとんど学習が進んでいません...(絶望)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tDt2m0JKf1Ja" - }, - "source": [ - "学習の様子を都度printしてみる(```verbose=1```に設定する)ことにして \n", - "最初からやりなおしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": 153, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "U_Je7tlWfX9v", - "outputId": "72e92421-1808-4794-b074-74511b10a2e5", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "学習前のloss 61.29358546868393\n", - "0 tloss = 155.20176990047585\n", - "1 tloss = 636.6940976770327\n", - "2 tloss = 1982.0790483266553\n", - "3 tloss = 2056.051066857846\n", - "4 tloss = 75.1510373285995\n", - "5 tloss = 41.306942787588895\n", - "6 tloss = 40.230205073524374\n", - "7 tloss = 40.1956281449949\n", - "8 tloss = 40.19379266944327\n", - "9 tloss = 40.19298621925973\n", - "10 tloss = 40.19221490236367\n", - "11 tloss = 40.19144755457859\n", - "12 tloss = 40.19068317848521\n", - "13 tloss = 40.18992172293257\n", - "14 tloss = 40.189163166751285\n", - "15 tloss = 40.188407489902666\n", - "16 tloss = 40.18765467254862\n", - "17 tloss = 40.186904695016516\n", - "18 tloss = 40.186157537795744\n", - "19 tloss = 40.18541318153565\n" - ] - } - ], - "source": [ - "np.random.seed(1234)\n", - "W = np.random.normal(0.0,1.0,nhl)\n", - "V = np.random.normal(0.0,1.0,nhl)\n", - "bs = np.random.normal(0.0,1.0,nhl)\n", - "b0 = np.random.normal()\n", - "\n", - "nepoch=20 #20回だけ学習の様子を表示\n", - "verbose=1 \n", - "print(\"学習前のloss\", calc_tloss(xt,ny,W,V,bs,b0,acf))\n", - "#学習\n", - "W,V,bs,b0,dw,dv,dbs,db0=fitGD(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TJaqgLw7Uaau" - }, - "source": [ - "あるところからは、ほとんど学習が進んでいない事がわかります。\n", - "\n", - "原因として考えられるのは\n", - "* loss functionをパラメータ(超)空間上にプロットした際にプラトーが存在する\n", - "* 最適化手法や学習率の設定が適切でない\n", - "* 初期値が悪い\n", - "\n", - "などがあります。\n", - "\n", - "勾配降下法は、最もシンプルな勾配を使った最適化手法ですが、学習の途中で勾配がほとんど0になってしまって(勾配消失ともいう)、学習が進まなくなってしまう、といったことがよく起こります。 \n", - "\n", - "「勾配が小さいなら勾配にかける学習率を大きくすればええんとちゃいまんの...?」 \n", - "と思うかもしれませんが、学習率を単純に大きくしてしまうと、明後日の方向にパラメータを更新するせいで目的関数が発散してしまいます。(eta=0.1などとして試してみてください)\n", - "\n", - "注) 勾配降下法を拡張した、データを部分的に使うことで学習が停滞することを防ぐ、確率的勾配降下法(Stochastic Gradient Descent; SGD)は現在もよく使われています。\n", - "\n", - "以下では、Adamと呼ばれる別の最適化手法を試してみましょう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "A3NSz6JulqFB" - }, - "source": [ - "## Adam" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n0QGVWTmltgl" - }, - "source": [ - "Adamは、勾配降下法の様にその都度の勾配の情報だけを使うのではなく、\n", - "以前の勾配の情報も有効活用する手法です。\n", - "\n", - "Adamは2014年に提唱された比較的新しい手法で、以降の機械学習の論文では、Adamが最もよく使われています。(*最も\"良い\"という意味では必ずしもありません)" - ] - }, - { - "cell_type": "code", - "execution_count": 154, - "metadata": { - "id": "AdFBxZceoktL", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def updateAdam(A,mt,vt,i,beta1,beta2,eps):\n", - " mhat = mt / (1.0-beta1**(i+1))\n", - " vhat = vt / (1.0-beta2**(i+1))\n", - " return mhat / (np.sqrt( vhat )+eps)\n", - "\n", - "def fitAdam(x,y,tW,tV,tbs,tb0,acf,acfder,nepoch,eta,verbose):\n", - " mts = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ]\n", - " vts = [ np.zeros(nhl), np.zeros(nhl), np.zeros(nhl), np.zeros(1) ]\n", - " ## Adamで使用するパラメータ\n", - " beta1 = 0.9; beta2 = 0.999; eps = 1.e-6\n", - " omb1 = 1.0-beta1; omb2 = 1.0-beta2\n", - " ## 最適化\n", - " for i in range(nepoch):\n", - " tmp = calc_der(x,y,tW,tV,tbs,tb0,acf,acfder) ### 勾配を計算するところまでは同じ。\n", - " for n,mt in enumerate(mts):\n", - " mts[n] = beta1 * mt + omb1 * tmp[n]\n", - " vts[n] = beta2 * vts[n] + omb2 * (tmp[n]**2)\n", - " ### 重み・バイアスの更新\n", - " tW += -eta * updateAdam(tW, mts[0],vts[0],i,beta1,beta2,eps)\n", - " tV += -eta * updateAdam(tV, mts[1],vts[1],i,beta1,beta2,eps)\n", - " tbs += -eta * updateAdam(tbs,mts[2],vts[2],i,beta1,beta2,eps)\n", - " tb0 += -eta * (mts[3]/(1.0-beta1**(i+1))) / ( np.sqrt( vts[3]/ (1.0-beta2**(i+1))) + eps)\n", - " if verbose and i % 500 == 0:\n", - " print(i, \"tloss =\", calc_tloss(x,y,tW,tV,tbs,tb0,acf)) \n", - " return tW,tV,tbs,tb0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZzDaa2zCoeIm" - }, - "source": [ - "それでは重みを初期化して、再び学習をしてみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": 161, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "4mkH2DuglqLS", - "outputId": "de51a9b4-c624-4aba-b11d-24dfd9ee7183", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "学習前のloss 61.29358546868393\n", - "学習後のloss [0.89838996]\n" - ] - } - ], - "source": [ - "np.random.seed(1234) ## Gradient descentと同条件でスタートするためseedを固定\n", - "W = np.random.normal(0.0,1.0,nhl)\n", - "V = np.random.normal(0.0,1.0,nhl)\n", - "bs = np.random.normal(0.0,1.0,nhl)\n", - "b0 = np.random.normal()\n", - "\n", - "nepoch=2000\n", - "verbose=False\n", - "eta = 0.05\n", - "\n", - "acf = sigmoid ; acfder =sigmoid_der\n", - "print(\"学習前のloss\", calc_tloss(xt,ny,W,V,bs,b0,acf))\n", - "W,V,bs,b0=fitAdam(xt,ny,W,V,bs,b0,acf,acfder,nepoch,eta,verbose)\n", - "print(\"学習後のloss\", calc_tloss(xt,ny,W,V,bs,b0,acf))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0PJr6ceIFVS-" - }, - "source": [ - "さっきよりlossの値が小さくなっています。学習がうまく行ってそうですね。\n", - "\n", - "グラフにしてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": 156, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "QlVmPtFxVr3u", - "outputId": "b04eee9d-d29e-4add-9f68-7aeac862198d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xp = np.linspace(0, 0.5, 500) \n", - "yp = 0.0*xp \n", - "for i in range(len(yp)):\n", - " yp[i] = np.dot(V, sigmoid(W*xp[i]+bs)) + b0 \n", - "ytruth = np.sin(2*np.pi*xp)\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.scatter(xt, yt, facecolor=\"none\", edgecolor=\"b\", s=50, label=\"Data\")\n", - "ax.plot(xp,yp*ystd+ymean,color=\"C01\",label=\"ANN\")\n", - "ax.plot(xp,ytruth,color=\"C02\",label=\"Ground Truth\")\n", - "ax.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jOaGjLWiGE0-" - }, - "source": [ - "のように、データの特徴をそこそこうまく捉えたニューラルネットワークへと学習が進みました。\n", - "\n", - "実際には、ニューラルネットワークの精度(良さ)は、前述のような検証データに対する汎化性能で評価します。 \n", - "\n", - "上で示した例では、3層のニューラルネットワークにデータからそれらしい関数を学習させてみました。\n", - "\n", - "ニューラルネットワークの構造をより複雑化したりしながら、より複雑で高次元な回帰問題に応用したり、回帰問題だけではなく分類問題・画像生成・物体検知などなど、各種の楽しい実社会の問題に応用していきます。 (例: 第2回で説明した敵対的生成ネットワーク)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qMB-1YMwdqij" - }, - "source": [ - "## 最適化手法に関するまとめ\n", - "\n", - "ニューラルネットワークの学習がうまく進むかどうかは一般に\n", - "1. ネットワークの構造(アーキテクチャとも言ったりします)や活性化関数(とその微分)の持つ性質\n", - "2. 最適化手法や手法内のパラメータ\n", - "3. 重みやバイアスの初期値\n", - "\n", - "などに強く依存します。\n", - "\n", - "1.に関して \n", - "回帰問題における代表的な活性化関数としては\n", - "最近の傾向として、sigmoidよりも以下のReLU関数が使われることが多いです。 \n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 157, - "metadata": { - "id": "LKDihzzDT0-H", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "def relu(z):\n", - " return (z > 0)* z \n", - "\n", - "def relu_der(z):\n", - " return (z > 0)*1.0 \n", - " \n", - "#いずれも、zが実数値でもnp.array型のベクトルでも対応可能な表式" - ] - }, - { - "cell_type": "code", - "execution_count": 158, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "M962DFirJgu9", - "outputId": "ce0db346-fd65-47d4-8fcd-911179489442", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "##適当な区間のxの値を用意する\n", - "xp = np.linspace(-10.0,10.0,100)\n", - "yp_sigmoid = sigmoid(xp)\n", - "yp_relu = relu(xp)\n", - "\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax1 = fig.add_subplot(121)\n", - "ax1.plot(xp,yp_sigmoid,label=\"Sigmoid\")\n", - "ax1.legend()\n", - "ax2 = fig.add_subplot(122)\n", - "ax2.plot(xp,yp_relu,label=\"ReLU\")\n", - "ax2.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "f9ELoAn8hYNr" - }, - "source": [ - "sigmoid関数はx->+∞で1.0, x=-∞で-1.0に漸近します。\n", - "\n", - "一方でReLU関数はx=0までは0.0で、x>0.0で、xとなるような関数です。\n", - "\n", - "\n", - "なぜReLUがよく使われる様になったかと言うと、 \n", - "(特に隠れ層の数が多い深層学習において)学習するにつれて勾配の値が小さくなって学習が進まない、\n", - "という問題を解決するためです。\n", - "\n", - "それぞれの関数の微分を表示してみると" - ] - }, - { - "cell_type": "code", - "execution_count": 159, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "dj-P7bDfvYpr", - "outputId": "c8bf0288-f777-4bb1-efb2-d1546c867027", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "xp = np.linspace(-10.0,10.0,100)\n", - "yp_sigmoid = sigmoid_der(xp)\n", - "yp_relu = relu_der(xp)\n", - "\n", - "fig = plt.figure(figsize=(10,4))\n", - "ax1 = fig.add_subplot(121)\n", - "ax1.plot(xp,yp_sigmoid,label=\"Sigmoid\")\n", - "ax1.legend()\n", - "ax2 = fig.add_subplot(122)\n", - "ax2.plot(xp,yp_relu,label=\"ReLU\")\n", - "ax2.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B0FHTFBwvtLP" - }, - "source": [ - "sigmoid関数は微分の値が最大で0.25なのに対して、ReLU関数では最大1.0となるため勾配の消失が起こりにくいのです。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PiFx3X4xJd7V" - }, - "source": [ - "問題ごとに何が最適なネットワーク構造だったり活性化関数なのかは、 \n", - "予め分かることはなく、試行錯誤が必要です。 \n", - "ここまでこの授業で勉強してきた皆さんは既に、 \n", - "「この試行錯誤自体を人力ではなくコンピュータにやらせる方法はないか」という点に思い至るのではないでしょうか?\n", - "\n", - "これに関連したお話はベイズ最適化の回で説明します。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hpVMAFUiwUtT" - }, - "source": [ - "3.に関して\n", - "\n", - "また、ネットワークの重みやバイアスをどのような値から始めるかに学習が依存する場合もあります。\n", - "\n", - "というのも、今考えた3層のニューラルネットワークでは、 \n", - "重み$W$の学習に使う勾配の表式は、$V$に比例しています。\n", - "\n", - "したがって単純に勾配の情報のみを使う最適化手法では、 \n", - "$V$の初期値を0に取ったり、学習の過程で偶然$V$の値が0に近くなってしまうと、 \n", - "$V$が更新されノンゼロの値を持つまで$W$の学習は始まりません。\n", - "\n", - "どのような初期値を採用するべきかに関しても、予め知ることは一般にはできませんが、 \n", - "いくつかの特定の場合に関して、推奨される方法というのは存在しています。\n", - "\n", - "例: ReLU関数を活性化関数に使うときはHeの初期値というものが推奨されている" - ] - } - ], - "metadata": { - "accelerator": "TPU", - "colab": { - "authorship_tag": "ABX9TyPpQYMbqGEZMRisgxppnqSm", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_ArtificialNeuralNetwork.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter_BayesianOptimization.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter_BayesianOptimization.ipynb deleted file mode 100644 index 5a5dd3c9..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter_BayesianOptimization.ipynb +++ /dev/null @@ -1,934 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zy7aOwXne87b" - }, - "source": [ - "# ベイズ最適化による実験計画法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WSCRPDv9bBpz" - }, - "source": [ - "以下では、ベイズ最適化を用いた実験計画法を見てみよう。\n", - "\n", - "数学的部分やコードの詳細よりも「なんとなくこのあたりを探索しようかな」といった \n", - "人間の経験に依る部分を客観的な方法で置き換えた実験計画の方法論の強力さを感じることが目的なので難しいところはスキップしても構わない。\n", - "\n", - "ガウス過程の基本や詳細は[補足ノート](https://github.com/SotaYoshida/Lecture_DataScience/blob/main/notebooks/GPnote.pdf)に譲る.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "XWIv70U6e6In", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#使うライブラリのインポート\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import copy\n", - "from scipy import special\n", - "\n", - "## データの生成用関数\n", - "def f(x):\n", - " return np.sin(x) + 0.2 * x\n", - "\n", - "## ガウス過程のカーネル(共分散行列)の設計\n", - "def Mat52(Thetas,r):\n", - " tau,sigma = Thetas\n", - " thetar = r * np.sqrt(5.0)/sigma\n", - " return tau * (1.0 + thetar + (thetar**2) /3.0) * np.exp(-thetar)\n", - "def KernelMat(Thetas,xt,xp):\n", - " lt = len(xt); lp=len(xp)\n", - " Ktt = np.zeros((lt,lt)); Kpt = np.zeros((lp,lt)); Kpp = np.zeros((lp,lp))\n", - " for j in range(lt):\n", - " for i in range(j,lt):\n", - " r = abs(xt[i]-xt[j])\n", - " tmp = Mat52(Thetas,r) \n", - " Ktt[i,j] = tmp; Ktt[j,i] = tmp \n", - " for i in range(lp):\n", - " r= abs(xp[i]-xt[j])\n", - " Kpt[i,j] = Mat52(Thetas,r)\n", - " for j in range(lp):\n", - " for i in range(j,lp):\n", - " r= abs(xp[i]-xp[j])\n", - " tmp = Mat52(Thetas,r)\n", - " Kpp[i,j] = tmp; Kpp[j,i] = tmp\n", - " return Ktt,Kpt,Kpp\n", - "\n", - "## 事後共分散行列の計算\n", - "def calcSj(cLinv,Kpt,Kpp,yt,mu_yt,mu_yp):\n", - " tKtp= np.dot(cLinv,Kpt.T)\n", - " return mu_yp + np.dot(Kpt,np.dot(cLinv.T,np.dot(cLinv,yt-mu_yt))), Kpp - np.dot(tKtp.T,tKtp)\n", - "\n", - "## Cholesky分解\n", - "def Mchole(tmpA,ln) :\n", - " cLL = np.linalg.cholesky(tmpA)\n", - " logLii=0.0\n", - " for i in range(ln):\n", - " logLii += np.log(cLL[i,i])\n", - " return np.linalg.inv(cLL), 2.0*logLii\n", - "\n", - "## 獲得関数を計算, 次点の計算点を決める\n", - "def calcEI(xp,mujoint,sigmaj,xbest,ybest):\n", - " EIs = [ (mujoint[i]-ybest) * Phi((mujoint[i]-ybest)/sigmaj[i]) +\n", - " sigmaj[i]* np.exp(-0.5* ((mujoint[i]-ybest)/sigmaj[i])**2) for i in range(len(xp))]\n", - " xnew,ynew,ind=xybest(xp,EIs)\n", - " ynew= np.sin(xnew) + 0.2*xnew #+ 0.01 * (0.5-np.random.rand())\n", - " return xnew,ynew,EIs,ind\n", - "def Phi(z):\n", - " return 0.5 * special.erfc(-(z/(2**0.5)) )\n", - "\n", - "def xybest(xt,yt):\n", - " ind = np.argmax(yt)\n", - " return xt[ind],yt[ind],ind\n", - "\n", - "## お絵かき\n", - "def plotGP0(xt,yt,xp,ytrue):\n", - " fig = plt.figure(figsize=(8,4))\n", - " axT = fig.add_subplot(1,1,1)\n", - " axT.set_xlabel(\"x\"); axT.set_ylabel(\"y\")\n", - " axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0)\n", - " axT.scatter(xt,yt,marker=\"o\",color=\"black\",label=\"Data\")\n", - " axT.plot(xp,ytrue,color=\"red\",label=\"True\",linestyle=\"dotted\")\n", - " axT.legend(loc=\"upper right\")\n", - " plt.show()\n", - " #plt.savefig(\"BayesOpt_initial.pdf\",bbox_inches=\"tight\", pad_inches=0.1)\n", - " plt.close()\n", - "\n", - "def plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs):\n", - " fig = plt.figure(figsize=(16,4))\n", - " axT = fig.add_subplot(121)\n", - " axB = fig.add_subplot(122)\n", - " axT.set_xlabel(\"x\"); axT.set_ylabel(\"y\")\n", - " axB.set_xlabel(\"x\"); axB.set_ylabel(\"Acquisition function\")\n", - " axT.set_xlim(-2.0,12); axT.set_ylim(-2.0,5.0)\n", - " axB.set_xlim(-2.0,12)\n", - " axT.scatter(nxt,nyt,marker=\"o\",color=\"black\",label=\"Data\")\n", - " for i in range(len(ysamples)):\n", - " axT.plot(nxp,ysamples[i],alpha=0.1)\n", - " axT.plot(nxp,mujoint,label=\"GP mean\",linestyle=\"dashed\",color=\"blue\")\n", - " axB.plot(nxp,EIs,color=\"green\")\n", - " axB.set_yticklabels([]) \n", - " axT.fill_between(nxp,mujoint-sigmaj,mujoint+sigmaj,color=\"blue\", alpha=0.3)\n", - " axT.plot(xp,ytrue,color=\"red\",label=\"True\",linestyle=\"dotted\")\n", - " axT.legend(loc=\"upper right\")\n", - " plt.show()\n", - " plt.close()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "id": "jajF8gfhfJOo", - "outputId": "ce535d2e-ce2a-4a28-fc5c-f280bd89958a", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "Thetas=[2.0,2.0]\n", - "oxt = np.array([ 0.0 + 1.02*i for i in range(11)])\n", - "xp = []\n", - "for tmp in np.arange(-2.0,12.0, 5.e-2):\n", - " if (tmp in oxt)==False:\n", - " xp += [ tmp ]\n", - "xp = np.array(xp)\n", - "oyt = f(oxt)\n", - "ytrue = f(xp)\n", - "\n", - "SVs=[]\n", - "xt =[oxt[2],oxt[6]]; yt =[oyt[2],oyt[6]]\n", - "plotGP0(xt,yt,xp,ytrue)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xk7mXO-tfLVj" - }, - "source": [ - "一般には真の関数(赤色)は分からないので、勾配も計算できない。 \n", - "数値的に勾配を計算するには、各点で微小にxをずらした場合の観測が必要、さらに、学習率を変えながら適当な値を探索するというのは、1回のデータの観測(測定,取得,計算, etc.)コストが高い場合はあまり良い方策ではない。(\"学習率\"については最適化の章を参照)\n", - "\n", - "仮に勾配の計算ができたとしても、このデータの様に背後にある真の関数が多峰的(multimodal)な場合、勾配のみに基づく単純な最適化手法では局所解に停留する危険もある。\n", - "\n", - "そこでベイズ最適化を用いることで大局的な探索と局所的な探索をうまくトレードオフしながら最適値を探索する、ということを以下でデモンストレーションする。" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "5EmEXqIDfJ5P", - "outputId": "7218ed19-6bf8-40fb-aa87-c2807a66c156", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0 -1.6999999999999997 -1.3316648104524687\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5yU9bX48c/3aVO271IVEQQFRUEMlmtJRGLXWGIsSRTTjDEmuSb3ei2/ezW58abcGI0aTbxJNCqmWYhgQYlijQUFbCA2QBQRFtgy7Wnf3x/P7LILCyzbntnd83695rU7szPzHJbZ3efMOd/zVVprhBBCCCGEEEKI/siIOwAhhBBCCCGEEKKrJKkVQgghhBBCCNFvSVIrhBBCCCGEEKLfkqRWCCGEEEIIIUS/JUmtEEIIIYQQQoh+S5JaIYQQQgghhBD9lhXnwZVSK4AmIAB8rfW0OOMRQgghhBBCCNG/xJrUFk3XWq+POwghhBBCCCGEEP2PtB8LIYQQQgghhOi3lNY6voMr9T6wEdDAb7XWt3ZwnwuACwDKyso+NXHixL4NUgghxID18ssvr9daD407jv5syJAhesyYMXGHIYQQYoDoyt/muNuPD9daf6iUGgY8ppRaprV+qu0dionurQDTpk3TCxcujCNOIYQQA5BSamXcMfR3Y8aMQf42CyGE6Cld+dsca/ux1vrD4sdPgPuBg+KMRwghhBBCCCFE/xJbUquUKlNKVbR8DhwDvB5XPEIIIYQQQggh+p8424+HA/crpVriuFtr/UiM8QghhBBCCCGE6GdiS2q11u8BU+I6vhBC9Cee57F69Wry+XzcofRLyWSSUaNGYdt23KEIIYQQoofFPShKCCFEJ6xevZqKigrGjBlDscNFdJLWmvr6elavXs3YsWPjDkcIIYQQPUz2qRVCiH4gn89TV1cnCW0XKKWoq6uTKrcQQggxQElSK4QQ/YQktF0n3zshhBBi4JL2YyGEEEIIIYQoIc1uM6sbV7M+u57GQiONhUYa8g1kvAyhDgnCIPqoo4+GMkiYCZJWkqSVJGFFnyfMBGk7TWWikqpkFdXJaqoSVSSt5IB6w1eSWiGEEJ2ydu1aLrnkEp5//nlqampwHIdLL72U0047jQULFnDKKacwduxYCoUCZ599NldddVXcIQshhBAlK+/neXPdm7y29jVe++Q13lz3JqsaVrG6cTUNhYZePbZt2FQlq6hKVLVLdmuSNdSkatp9rE3VtrutOlmNZZRWGlla0QghhChJWmtOPfVUZs6cyd133w3AypUreeCBB1rvc8QRRzB37lwymQz7778/J598MgcccEBcIQshhBAlpanQxBMrnmDBigU8ufJJlny8hEAHACStJHsP2Zu96vbiqLFHMapyFLtW7MrQsqFUJapaK61pO42pTEzDxFQmhjIwDZMgDCgEBfJ+noJf/Fi8nvWyNOQbaCg0tPu4Kb8p+rx4fXnzcjblN7Exv5Gsl93uv6XCqeg46d1BUlydrMY0zB7/3kpSK4QQYocef/xxHMfhwgsvbL1t99135zvf+c5W9y0rK+NTn/oU77zzTrukdsGCBVx11VVUV1fz2muvceaZZ7Lffvvxq1/9ilwux+zZsxk3bhzr1q3jwgsvZNWqVQBcf/31HHbYYbz44ot873vfI5/Pk0qluO2225gwYQK33347DzzwANlslnfffZfTTjuNn//8573/TRFCCCF2YENuA/e+eS+z35rN/Pfm4wYuCTPBv+z2L1x2+GVMGT6F/Ybvx/ja8d2qfhqmgW3alDvlPRJ3wS+wMb+RjbmNW33ckNsQfd7m9rfWv9V6PefntvvclYnKrZPe4vWrPtO1Li9JaoUQoh868sitbzvzTLjoIshm4YQTtv76+edHl/Xr4Ywz2n9twYLtH++NN97odNW1vr6e559/nv/8z//c6mtLlixh6dKl1NbWsscee/D1r3+dF198kV/96lfceOONXH/99Xzve9/jkksu4fDDD2fVqlUce+yxLF26lIkTJ/L0009jWRbz58/niiuu4N577wVg8eLFLFq0iEQiwYQJE/jOd77Dbrvt1ql4hRBCiJ6kteaJFU/wu1d+x31L76MQFBhbPZaLD7yYkyeczCGjDiFpJeMOc7sSVoIR5SMYUT5ipx+b9/MdJsPbSoqXrl/a+vUfTf9Rl+KVpFYIIcRO+/a3v80zzzyD4zi89NJLADz99NNMnToVwzC47LLLmDRp0laPO/DAAxk5ciQA48aN45hjjgFgv/3244knngBg/vz5vPnmm62PaWxspLm5mYaGBmbOnMnbb7+NUgrP81rvM2PGDKqqqgDYZ599WLlypSS1Qggh+lQQBvztzb/x02d+ypK1S6hOVvON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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1 10.20000000000001 1.3401253124064523\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2 11.950000000000012 1.8119225385829674\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3 11.950000000000012 1.8119225385829674\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZxcVZ3w/885997aq3rLTjaSQAhhSSAJOwPEwRnHnzrgMqgj+IzDOCo6zqM8OIwv8XngURyXUZnBB8d56Qw44gLOiCOKQCABMYQQCCEBwpIQCEmnl+qu9S7n/P6o7iaB7Onu25X+vl+veqVu1a1zvlXp6q5vnXO+R1lrEUIIIYQQQgghmpGOOwAhhBBCCCGEEOJwSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpSVIrhBBCCCGEEKJpuXF2rpR6CegHIiC01i6JMx4hhBBCCCGEEM0l1qR2wIXW2l1xByGEEEIIIYQQovnI9GMhhBBCCCGEEE1LWWvj61ypF4EewAL/z1p7y17OuRK4EiCbzZ5+wgknjG6QQgghjlqPPfbYLmvtxLjjaGYTJkyws2fPjjsMIYQQR4nD+dsc9/Tjc621ryilJgH3KKU2WWsf3P2EgUT3FoAlS5bYNWvWxBGnEEKIo5BSakvcMTS72bNnI3+bhRBCDJfD+dsc6/Rja+0rA//uBO4ElsUZjxBCCCGEEEKI5hJbUquUyiql8oPXgYuBp+KKRwghhBBCCCFE84lz+vFk4E6l1GAcP7TW3h1jPEIIIYQQQgghmkxsSa219gXg1Lj6F0KIZhIEAdu2baNWq8UdSlNKpVJMnz4dz/PiDkUIIYQQwyzuQlFCCCEOwrZt28jn88yePZuBGS7iIFlr6erqYtu2bRx77LFxhyOEEEKIYSb71AohRBOo1Wp0dHRIQnsYlFJ0dHTIKLcQQghxlJKkVgghmoQktIdPXjshhBDi6CXTj4UQQgghhBBNqxbWuPeFe3m682mWHbOM82edL19mjjMyUiuEEOKg7Nixg/e///3MmTOH008/nbPOOos777wTgBUrVtDS0sKiRYtYsGABX/ziF2OOVgghxHjwfPfznPEvZ/D2/3g7V//2ai74wQWc+b0z2VXZFXdoYhRJUiuEEOKArLW8613v4vzzz+eFF17gscce40c/+hHbtm0bOue8885j3bp1rFmzhltvvZW1a9fGGLEQQoij3av9r3LW987i5eLL/PjdP2bHZ3Zwy9tv4ckdT3LRDy6iq9IVd4hilEhSK4QQ4oDuu+8+EokEH/3oR4dumzVrFlddddWbzs1ms5x++uls3rx5j9tXrFjBH/zBH/DOd76TOXPmcM0113DbbbexbNkyTj75ZJ5//nkAOjs7ufTSS1m6dClLly7loYceAmD16tWcddZZLF68mLPPPptnnnkGgO9///tccskl/NEf/RHHHXccV1999Ui9DEIIIcaIyER88I4PUg7KrPofq3jPwvcwKTuJvzz9L7nrsrvYtGsTn7z7k3GHKUaJrKkVQogmdMEFb77tve+Fj30MKhV429vefP8VVzQuu3bBu9+9530rVuy/vw0bNnDaaacdVGxdXV088sgjfP7zn3/TfU888QQbN26kvb2dOXPm8JGPfITVq1fzzW9+k29/+9v84z/+I5/61Kf49Kc/zbnnnsvWrVt561vfysaNGznhhBNYuXIlruvy29/+lr/7u7/jZz/7GQDr1q3j8ccfJ5lMMn/+fK666ipmzJhxUPEKIYRoPt9Z8x3uf+l+/vUd/8qJE0/c477lc5Zz7XnXct0D1/HBkz/IHx/3xzFFKUaLJLVCCCEO2cc//nFWrVpFIpHg0UcfBWDlypUsXrwYrTXXXHMNCxcufNPjli5dytSpUwGYO3cuF198MQAnn3wy999/PwC//e1vefrpp4ce09fXR6lUolgscvnll/Pcc8+hlCIIgqFzli9fTktLCwAnnngiW7ZskaRWCCGOUpWgwvUrr+f8WedzxaIr9nrONedew+0bbueTd3+STXM34WhndIMUo0qSWiGEaEL7G1nNZPZ//4QJBx6ZfaOFCxcOjYoC/NM//RO7du1iyZIlQ7edd9553HXXXfttJ5lMDl3XWg8da60JwxAAYwyPPPIIqVRqj8d+4hOf4MILL+TOO+/kpZde4oLdhqt3b9dxnKG2hBBCHH1ufvRmXiu9xu3vvn2fVY6TbpL/c+H/4d0/eTd3bLyD9yx8zyhHKUaTrKkVQghxQBdddBG1Wo2bb7556LZKpTIifV188cV8+9vfHjpet24dAMVikWOOOQZorKMVQggx/gRRwNd+9zWWH7uc82edv99z33XCuzi+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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "5 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXycdbn//9fn3mbLZG3SlTZtZWsRaGnZCgKyiBwUBVmEo3B+RysoiHoUUUTlSL/KOSqoeI6n5+hRoXpwAxUXFgFlEUsLRTaFFtpSuiSZJJPZ7rm3z++PSUILLU2zdDrJ9Xw88mhm5p6ZK2mbzHuu6/O5ldYaIYQQQgghhBCiFhnVLkAIIYQQQgghhBguCbVCCCGEEEIIIWqWhFohhBBCCCGEEDVLQq0QQgghhBBCiJoloVYIIYQQQgghRM2SUCuEEEIIIYQQomZZ1XxypdR6IAeEQKC1XlTNeoQQQgghhBBC1Jaqhtp+J2mtu6pdhBBCCCGEEEKI2iPjx0IIIYQQQgghapbSWlfvyZV6CegBNPBfWuvlOzlmKbAUIJVKHXHQQQft3SKFEEKMW6tXr+7SWrdWu45aNmnSJN3e3l7tMoQQQowTw/ndXO3x4+O01q8opdqAe5RSf9Na/2n7A/qD7nKARYsW6VWrVlWjTiGEEOOQUmpDtWuode3t7cjvZiGEEKNlOL+bqzp+rLV+pf/PDuB24Mhq1iOEEEIIIYQQorZULdQqpVJKqfTA58BpwNPVqkcIIYQQQgghRO2p5vjxZOB2pdRAHT/SWv++ivUIIYQQQgghhKgxVQu1WusXgcOq9fxCCFFLfN9n06ZNuK5b7VJqUjweZ8aMGdi2Xe1ShBBCCDHKqr1RlBBCiCHYtGkT6XSa9vZ2+idcxBBprclkMmzatInZs2dXuxwhhBBCjDI5T60QQtQA13VpaWmRQDsMSilaWlqkyy2EEEKMUxJqhRCiRkigHT753gkhhBDjl4RaIYQQQohRdve6u3l8y+PVLkMIISYECbVCCCGGZNu2bVx44YXMmTOHI444gmOOOYbbb78dgAceeICGhgYOP/xwDj74YK677roqVyvGklJqqVJqlVJqVWdnZ7XL2adorbn2vmt5261v44KfXYDWutolCSHEuCehVgghxG5prXnXu97FW97yFl588UVWr17N//3f/7Fp06bBY44//njWrFnDqlWruPXWW3n8celSjVda6+Va60Va60Wtra3VLmefct9L93H9g9dz6ORDeaH7BR55+ZFqlySEEOOehFohhBC7dd999+E4DpdeeungdbNmzeKKK6543bGpVIojjjiCtWvX7nD9Aw88wAknnMBZZ53FnDlzuPrqq1mxYgVHHnkkb37zm1m3bh0AnZ2dnHPOOSxevJjFixfz8MMPA7By5UqOOeYYFixYwLHHHsvf//53AL7//e9z9tlnc/rpp7P//vtz1VVXjdW3QYjduu+l+zCVyd3/eDcpO8X/rvnfapckhBDjnpzSRwghatCJJ77+uvPOgw9/GIpFOOOM199+ySWVj64ueM97drztgQfe+PmeeeYZFi5cOKTaMpkMjz76KNdee+3rbnvyySd57rnnaG5uZs6cOXzgAx9g5cqVfOMb3+Bb3/oWN910E1deeSUf//jHOe6449i4cSNve9vbeO655zjooIN48MEHsSyLe++9l89+9rP8/Oc/B2DNmjU88cQTxGIxDjzwQK644gr222+/IdUrxGh6cOODLJy6kMl1kzlv/nnc9sxtfOP0b5ByUtUuTQghxi0JtUIIIfbYRz7yER566CEcx+Gxxx4D4MEHH2TBggUYhsHVV1/N/PnzX3e/xYsXM3XqVADmzp3LaaedBsCb3/xm7r//fgDuvfdenn322cH79PX1kc/nyWazXHzxxbzwwgsopfB9f/CYk08+mYaGBgDmzZvHhg0bJNSKva4clFn5yko+svgjAJx98Nn875r/5YmtT3DczOOqXJ0QQoxfEmqFEKIGvVFnNZl849snTdp9Z/a15s+fP9gVBfj2t79NV1cXixYtGrzu+OOP584773zDx4nFYoOfG4YxeNkwDIIgACCKIh599FHi8fgO97388ss56aSTuP3221m/fj0nbteu3v5xTdMcfCwh9qZVm1dRDsscP+t4AA5pOwSAZzuflVArhBBjSNbUCiGE2K23vvWtuK7Lf/7nfw5eVywWx+S5TjvtNL71rW8NXl6zZg0A2WyW6dOnA5V1tELsax7c+CAAS/ZbAsDMhpmk7BTPdDxTzbKEEGLck1ArhBBit5RS3HHHHfzxj39k9uzZHHnkkVx88cXccMMNo/5c3/zmN1m1ahWHHnoo8+bN4zvf+Q4AV111FZ/5zGdYsGCBdGLF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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "6 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZhcVZn48e85d6m1q3rJwpbQhJ0ASSAB2dcEBFEGRLZRcJnIsLjLIj8UVAZRAUWccXBmBCWjOAgoKMomCAQICQQUwhqSkJClt9qXu53fH9UdspGNJJVOv5/nqaf73rpd961Kum+99b7nHGWMQQghhBBCCCGEGIx0swMQQgghhBBCCCE2liS1QgghhBBCCCEGLUlqhRBCCCGEEEIMWpLUCiGEEEIIIYQYtCSpFUIIIYQQQggxaElSK4QQQgghhBBi0LKbeXKl1DygCIRAYIyZ2Mx4hBBCCCGEEEIMLk1NavsdY4zpbnYQQgghhBBCCCEGH2k/FkIIIYQQQggxaCljTPNOrtTbQB9ggP80xty6hmOmAlMBUqnUgXvttdeWDVIIIcQ2a9asWd3GmOHNjmMwGzZsmOns7Gx2GEIIIbYRG3Ntbnb78eHGmEVKqRHAQ0qpV40xf1vxgP5E91aAiRMnmpkzZzYjTiGEENsgpdT8Zscw2HV2diLXZiGEEJvKxlybm9p+bIxZ1P91GXAPcFAz4xFCCCGEEEIIMbg0LalVSqWUUi0D3wNTgH80Kx4hhBBCCCGEEINPM9uPRwL3KKUG4vhfY8yfmxiPEEIIIYQQQohBpmlJrTFmLjCuWecXQojBxPd9Fi5cSK1Wa3Yog1I8HmennXbCcZxmhyKEEEKITazZE0UJIYRYDwsXLqSlpYXOzk76O1zEejLG0NPTw8KFC9lll12aHY4QQgghNjFZp1YIIQaBWq1GR0eHJLQbQSlFR0eHVLmFEEKIbZQktUIIMUhIQrvx5LUTQgghtl2S1AohhBBCCCEGpQfeeID5OVlyfKiTpFYIIcR6Wbp0Keeccw5jxozhwAMP5JBDDuGee+4B4LHHHiObzTJ+/Hj23ntvrrnmmiZHK4QQYig463dncfOzNzc7DNFkktQKIYRYJ2MMp556KkceeSRz585l1qxZ/OY3v2HhwoXLjzniiCOYPXs2M2fO5I477uD5559vYsRCCCGGgqpfpeSVmh2GaDJJaoUQQqzTo48+iuu6XHDBBcv37bzzzlxyySWrHZtKpTjwwAN58803V9r/2GOPcdRRR/Gxj32MMWPGcPnllzNt2jQOOugg9ttvP9566y0Aurq6OP3005k0aRKTJk3iqaeeAmDGjBkccsghTJgwgUMPPZTXXnsNgNtuu43TTjuNE088kd13351LL710c70MQgghtiLGGPzIpxpUmx2KaDJZ0kcIIQaho49efd8nPgEXXgiVCpx00ur3n39+49bdDR//+Mr3PfbY2s/38ssvc8ABB6xXbD09PTzzzDNcddVVq9334osvMmfOHNrb2xkzZgyf+9znmDFjBj/+8Y/5yU9+wo9+9CO++MUv8uUvf5nDDz+cBQsWcMIJJzBnzhz22msvnnjiCWzb5uGHH+Yb3/gGv/vd7wCYPXs2L7zwArFYjD333JNLLrmEUaNGrVe8QgghBqfQhACS1ApJaoUQQmy4iy66iCeffBLXdXnuuecAeOKJJ5gwYQJaay6//HLGjh272s9NmjSJ7bffHoBdd92VKVOmALDffvvx17/+FYCHH36YV155ZfnPFAoFSqUS+Xye8847jzfeeAOlFL7vLz/muOOOI5vNArDPPvswf/58SWqFEGIb54eN60DVl6R2qJOkVgghBqG1VVaTybXfP2zYuiuzqxo7duzyqijAT3/6U7q7u5k4ceLyfUcccQT333//Wh8nFost/15rvXxba00QBABEUcQzzzxDPB5f6WcvvvhijjnmGO655x7mzZvH0SuUq1d8XMuylj+WEEKIbVcQNf7WS6VWyJhaIYQQ63TsscdSq9X4j//4j+X7KpXKZjnXlClT+MlPfrJ8e/bs2QDk83l23HFHoDGOVgghxNDmR41KbcXfPNcjMXhIUiuEEGKdlFLce++9PP744+yyyy4cdNBBnHfeeVx//fWb/Fw333wzM2fOZP/992efffbhZz/7GQCXXnopV1xxBRMmTJBKrBBCCGk/FsspY0yzY1hvEydONDNnzmx2GEIIscXNmTOHvffeu9lhDGpreg2VUrOMMRPf50fEepBrsxCiWRYWFjLqplHs0bEHr138WrPDEZvIxlybpVIrhBBCCCGEGHSkUisGSFIrhBBCCCGEGHQGxtTKRFFCklohhBBCCCHEoLN89mOp1A55ktQKIYQQQgghBp2B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PGpu7j+am/uE5uaBmJsXPJ88JZNaM/vyXG387m8v3+Vz3kGnXOYfuxepHCwzqwL/ArzVez/V7XgWm5ldAGzx3t/e7ViWWAScCnzIe38KMEvvl8LsYW7Pysvp/KGwDqiY2S91N6rDx3fOfuvr8980p+yf5ub+p7m5b2huHgD9Pjcf6HwSLW04B8d7/+J93W9mvwJcAJzj++eg3UeBjbt8vGHutr5jZjGdSfMfvff/2u14lsjzgJeZ2UuBIjBkZp/w3vfbL9tHgEe89zte0f8sfThxAi8G7vfebwUws38FzgQ+0dWoltZmM1vrvX/czNYCW7od0FLp0zll0WluBjQ39zrNzf1Fc3Ofzs0HM588JVdq98XMzqVTNvIy73292/EsoluBp5vZ0WaW0Nnofk2XY1p0ZmZ09njc7b3/827Hs1S895d67zd474+i83/51T6cNPHePwE8bGbPmLvpHOB7XQxpqTwEPNfMynPfw+fQh003dnMN8Lq5918HXN3FWJZMH88ph1UfP4+am/uI5ua+o7m5D+fmg51PrNdeTDWz+4ACMDZ3003e+9/oYkiLZu6VwyvpdG/7qPf+j7sc0qIzs+cDNwLf5cn9LJd576/rXlRLy8xeCPyu9/6CbseyFMzsZDoNNxLgR8DrvffbuxvV4jOzK4DX0imF+Tbwq977VnejWhxm9inghcAKYDPwLuDzwGeAI4AHgdd473dvWNFT5hnnpfTpnHI4aW7ubZqb+4/m5t43CHPzYs7LPZfUioiIiIiIiOzQc+XHIiIiIiIiIjsoqRUREREREZGepaRWREREREREepaSWhEREREREelZSmpFRERERESkZympFRERERERkZ6lpFZERERERER6lpJakT5hZs8xszvMrGhmFTO7y8xO6nZcIiIig0pzs8jhYd77bscgIovEzN4DFIES8Ij3/k+6HJKIiMhA09wssvSU1Ir0ETNLgFuBJnCm9z7vckgiIiIDTXOzyNJT+bFIf1kOVIEanVeFRUREpLs0N4ssMa3UivQRM7sG+DRwNLDWe/+mLockIiIy0DQ3iyy9qNsBiMjiMLOLgdR7/0kzC4FvmNnZ3vuvdjs2ERGRQaS5WeTw0EqtiIiIiIiI9CztqRUREREREZGepaRWREREREREepaSWhEREREREelZSmpFRERERESkZympFRERERERkZ6lpFZERERERER6lpJaERERERER6Vn/H8BkNtde7ak+AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "7 8.100000000000009 2.589889810845086\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7UAAAEKCAYAAADNWnK8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd5xcdb3/8df3lKnbs0kICckm9AChJDSR3ouAVBUURH4RMYhelQsEL+CFn2JDiuLlx70XlVi4aFC5NroUARMIggQEQhICadt36mnf3x+7G4OUhCVkstn38/GY3T1nzux8ZuexM+c932astYiIiIiIiIgMR06tCxAREREREREZKoVaERERERERGbYUakVERERERGTYUqgVERERERGRYUuhVkRERERERIYthVoREREREREZtrxa3rkxZjHQB8RAZK2dUct6REREREREZHipaagdcLC1tr3WRYiIiIiIiMjwo+7HIiIiIiIiMmwZa23t7tyYV4AuwAL/Ya29+S2OmQnMBMjn89N32GGHjVukiIhstubPn99urR1d6zqGs9bWVtvW1lbrMkREZDMxlPfmWnc//qC19jVjzBjgbmPM89baP619wEDQvRlgxowZdt68ebWoU0RENkPGmCW1rmG4a2trQ+/NIiKyoQzlvbmm3Y+tta8NfF8FzAX2qmU9IiIiIiIiMrzULNQaY/LGmPrBn4EjgGdrVY+IiIiIiIgMP7XsfjwWmGuMGazjJ9ba39ewHhERERERERlmahZqrbWLgF1rdf8iIsNJGIYsW7aMSqVS61KGpUwmw4QJE/B9v9aliIiIyAZW64miRERkPSxbtoz6+nra2toY6OEi68laS0dHB8uWLWPy5Mm1LkdEREQ2MK1TKyIyDFQqFUaNGqVAOwTGGEaNGqVWbhERkc2UQq2IyDChQDt0+tuJiIhsvhRqRURERERk2Hq973V+/cKva12G1JBCrYiIrJeVK1fysY99jClTpjB9+nT23Xdf5s6dC8ADDzxAY2Mju+22GzvuuCNXXnlljasVEZGR4pYnb+Gkn5+EtbbWpUiNKNSKiMg6WWs58cQTOeCAA1i0aBHz58/nZz/7GcuWLVtzzP7778+CBQuYN28et912G08++WQNKxYRkZGiGlWJbUxs41qXIjWiUCsiIut03333kUqlOO+889bsmzRpEhdccMGbjs3n80yfPp2XXnrpDfsfeOABDjzwQE444QSmTJnCxRdfzJw5c9hrr73YZZddePnllwFYvXo1J598MnvuuSd77rknjzzyCABPPPEE++67L7vvvjsf+MAHeOGFFwC49dZbOemkkzjqqKPYdtttueiii96vP4OIiGyCoiR6w3cZebSkj4jIMHTQQW/ed9ppcP75UCrBMce8+fqzz+6/tLfDKae88boHHnjn+/vb3/7GHnvssV61dXR08Nhjj/GVr3zlTdc9/fTTLFy4kJaWFqZMmcK5557LE088wXXXXccNN9zAd7/7XS688EK+8IUv8MEPfpClS5dy5JFHsnDhQnbYYQceeughPM/jnnvu4dJLL+UXv/gFAAsWLOCpp54inU6z/fbbc8EFF7DVVlutV70iIjK8KdSKQq2IiLxrn/3sZ3n44YdJpVL85S9/AeChhx5i9913x3EcLr74Ynbaaac33W7PPfdk3LhxAGy99dYcccQRAOyyyy7cf//9ANxzzz0899xza27T29tLoVCgp6eHs846ixdffBFjDGEYrjnm0EMPpbGxEYCpU6eyZMkShVoRkRFCoVYUakVEhqF3alnN5d75+tbWdbfM/rOddtppTasowPe+9z3a29uZMWPGmn37778/d9111zv+nnQ6veZnx3HWbDuOQxT1n4wkScJjjz1GJpN5w21nzZrFwQcfzNy5c1m8eDEHrdVcvfbvdV13ze8SEZHN3+BY2jjRmNqRSmNqRURknQ455BAqlQo33XTTmn2lUul9ua8jjjiCG264Yc32ggULAOjp6WH8+PFA/zhaERERUEutKNSKiMh6MMZw55138uCDDzJ58mT22msvzjrrLK655poNfl/XX3898+bNY9q0aUydOpUf/OAHAFx00UVccskl7L777mqJFRGRNRRqxQyn9ZxmzJhh582bV+syREQ2uoULF7LjjjvWuoxh7a3+hsaY+dbaGW9zE1kPem8WkVo7+86z+eHTP2TxhYuZ1DSp1uXIezSU92a11IqIiIiIyLC1Zkyt1qkdsRRqRURE5F0xxsw0xswzxsxbvXp1rcsRkRFO3Y9FoVZERETeFWvtzdbaGdbaGaNHj651OSIywinUikKtiIiIiIgMWwq1olArIiIiIiLD1uD6tFqnduRSqBURERERkWFLLbXi1boAERHZ9HV0dHDooYcCsGLFClzXZXAs5RNPPEEqlapleSIiMoIp1IpCrYiIrNOoUaNYsGABAFdccQV1dXV86UtfWnN9FEV4nt5SRERk41OoFZ2BiIjIkJx99tlkMhmeeuop9ttvPxoaGt4QdnfeeWfuuusu2trauO2227j++usJgoC9996b73//+7iuW+NHICIimwOtUys1H1NrjHGNMU8ZY+6qdS0iIsPGQQfBrbf2/xyG/du33da/XSr1b//85/3bPT3927/8Zf92e3v/9m9+07+9YsWQy1i2bBmPPvoo3/nOd972mIULF/Lzn/+cRx55hAULFuC6LnPmzBnyfYqIiKxNLbWyKbTUXggsBBpqXYiIiLw7p5566jpbXO+9917mz5/PnnvuCUC5XGbMmDEbozwRERkBFGqlpqHWGDMBOBa4GviXWtYiIjKsPPDAP372/Tdu53Jv3G5sfON2a+sbt7fYYshl5PP5NT97nkeSJGu2K5UKANZazjrrLL72ta8N+X5ERETejkKt1Lr78XeBi4Dk7Q4wxsw0xswzxsxbvXr1xqtMRETelba2Np588kkAnnzySV555RUADj30UO644w5WrVoFQGdnJ0uWLKlZnSIisnkZXJ9WoXbkqlmoNcYcB6yy1s5/p+OstTdba2dYa2cMLh8hIiKbnpNPPpnOzk522mknbrzxRrbbbjsApk6dylVXXcURRxzBtGnTOPzww1m+fHmNqxURkc3FYJgdDLcy8tSy+/F+wPHGmGOADNBgjLnNWntmDWsSEZF1uOKKK95yfzab5Y9//ONbXnf66adz+umnv49ViYjISKXux1Kzllpr7SXW2gnW2jbgI8B9CrQiIiIiIvJuKNRKrcfUioiIiIiIDNng+rQKtSPXprCkD9baB4AHalyGiIiIiIgMM2vG1FqNqR2p1FIrIiIiIiLDlrofi0KtiIiIiIgMWwq1olArIiIiIiLDltapFYVaERFZL67rsttuu7HTTjux66678u1vf5skSd7xNosXL+YnP/nJRqpQRERGIq1TKwq1IiKyXrLZLAsWLOBvf/sbd999N7/73e+48sor3/E2CrUiIvJ+U/djUagVEdkMzZkzh7a2NhzHoa2tjTlz5mzQ3z9mzBhuvvlmbrzxRqy1LF68mP3335899tiDPfbYg0cffRSAiy++mIceeojddtuNa6+99m2PExERGSqF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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "8 8.05000000000001 2.5908498356204\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "9 8.05000000000001 2.5908498356204\n" - ] - } - ], - "source": [ - "Thetas=[2.0,2.0]\n", - "nxp = list(copy.copy(xp))\n", - "nxt = copy.copy(xt)\n", - "nyt = copy.copy(yt)\n", - "\n", - "n_iter = 10 ## 探索回数の上限\n", - "xopt = 6; yopt = -1.e+30\n", - "SVs=[]\n", - "plot = True\n", - "#plot = False\n", - "\n", - "for iter in range(n_iter):\n", - " lt=len(nxt); lp=len(nxp)\n", - " Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp)\n", - " mu_yt= np.zeros(lt)\n", - " mu_yp= np.zeros(lp)\n", - " cLinv,logdetK = Mchole(Ktt,lt) \n", - " mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp)\n", - " sigmaj=[ Sjoint[j][j] for j in range(lp)]\n", - " ysamples = [np.random.multivariate_normal(mujoint,Sjoint) for i in range(10)]\n", - " SVs += [ [ mujoint, sigmaj] ]\n", - " xbest,ybest,ind= xybest(nxt,nyt)\n", - " xnew,ynew,EIs,ind = calcEI(nxp,mujoint,sigmaj,xbest,ybest)\n", - " if plot :\n", - " plotGP(nxt,nyt,nxp,xp,ytrue,mujoint,sigmaj,ysamples,EIs)\n", - " nxt += [ xnew ]; nyt += [ ynew ]\n", - " nxp.pop(ind) \n", - " if ynew > yopt:\n", - " xopt= xnew; yopt = ynew \n", - " print(iter, xopt, yopt)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "T6Z8roWgcret" - }, - "source": [ - "探索点が増えるにつれて、効率的に最適解が探索出来ている(っぽい)。\n", - "\n", - "8回目の探索でx=8.05が探索されていて、真の解8.055...にそこそこ近いものが得られている。 \n", - "(実装の都合上、0.05刻みでしか点を打ってないことに注意)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s1KRB5HALEEX" - }, - "source": [ - "同じデータで、勾配法による最適化もやってみる。" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "iLMN0pJ3KcwN", - "outputId": "75f33bb6-c0cf-45d5-f45f-65accd178eb1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "探索回数 53 最適解(x,y)= 8.045494422941772 2.590816292488816\n" - ] - } - ], - "source": [ - "import numpy as np \n", - "\n", - "def f(x):\n", - " return np.sin(x) + 0.2 * x \n", - "def derf(x):\n", - " return np.cos(x) + 0.2 \n", - "\n", - "xexact = 8.055339554764814\n", - "\n", - "x = 6 \n", - "xopt = x; yopt=f(x)\n", - "tol = 1.e-2\n", - "eta = 1.e-1\n", - "\n", - "itnum = 10**4\n", - "for i in range(itnum):\n", - " x += eta * derf(x)\n", - " y = f(x)\n", - " if y > yopt:\n", - " xopt = x\n", - " yopt = y \n", - " if abs(xexact-xopt) < tol :\n", - " break\n", - "print(\"探索回数\",i, \"最適解(x,y)=\",xopt,yopt)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sOn3qlTGURH2" - }, - "source": [ - "$\\eta$を適切に選べれば、より少ない探索回数でより正確な解が求まるが、そんなことができたら苦労はしない...。\n", - "\n", - "また今の場合、勾配は式から計算したが、実際には差分をとって微分を近似することになるため探索回数は少なくとも2倍-3倍程度必要になる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4jSIRj1Dc3k8" - }, - "source": [ - "**言及しなかった重要な事項**\n", - "\n", - "* カーネル関数の選択と依存性\n", - "* ハイパーパラメータの最適化 or サンプリング\n", - "* 獲得関数の定義・選択と依存性\n", - "* 数値計算(とくにガウス過程の部分)のTips" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c1GBk01r0jz8" - }, - "source": [ - "## 備忘録: ライブラリの出力に関して" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "C4kpASFXurFl", - "outputId": "52b733dd-8b8e-4222-970d-856c242b1ad2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "train [2.04, 6.12] [1.2999286509533796, 1.061537984784846]\n", - "xp [-2. -0.44444444 1.11111111 2.66666667 4.22222222 5.77777778\n", - " 7.33333333 8.88888889 10.44444444 12. ]\n", - "My muj [5.75795234e-03 8.44113811e-02 7.33727607e-01 9.88413223e-01\n", - " 3.06567459e-01 9.73202438e-01 4.32586459e-01 4.31993679e-02\n", - " 2.79241473e-03 1.47812049e-04]\n", - "sigmaj [0.9999901297449515, 0.9978771506830272, 0.8245848824042269, 0.6584175494971636, 0.9813489474851831, 0.4100810951379304, 0.9125129281442049, 0.9991642392577667, 0.9999965079965879, 0.9999999902138795]\n" - ] - } - ], - "source": [ - "Thetas=[1.0,1.0]\n", - "nxp = np.linspace(-2,12,10)\n", - "nxt = copy.copy(xt);nyt = copy.copy(yt)\n", - "\n", - "n_iter = 10 ## 探索回数の上限\n", - "xopt = 6; yopt = -1.e+30\n", - "SVs=[]\n", - "plot = False\n", - "\n", - "lt=len(nxt); lp=len(nxp)\n", - "Ktt,Kpt,Kpp = KernelMat(Thetas,nxt,nxp)\n", - "mu_yt= np.zeros(lt)\n", - "mu_yp= np.zeros(lp)\n", - "cLinv,logdetK = Mchole(Ktt,lt) \n", - "mujoint,Sjoint = calcSj(cLinv,Kpt,Kpp,nyt,mu_yt,mu_yp)\n", - "sigmaj=[ np.sqrt(Sjoint[j][j]) for j in range(lp)]\n", - "print(\"train\", nxt,nyt)\n", - "print(\"xp\", nxp)\n", - "print(\"My muj \", mujoint)\n", - "print(\"sigmaj\", sigmaj)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_5TGmrsxxomr", - "outputId": "8279b55c-2d2b-4a8b-da53-a2a144af9074", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "sGP.kernel_ Matern(length_scale=1, nu=2.5)\n", - "[-5.75795234e-03 -8.44113811e-02 -7.33727607e-01 -9.88413223e-01\n", - " -3.06567459e-01 -9.73202438e-01 -4.32586459e-01 -4.31993679e-02\n", - " -2.79241473e-03 -1.47812049e-04]\n", - "[0.99999013 0.99787715 0.82458488 0.65841755 0.98134895 0.4100811\n", - " 0.91251293 0.99916424 0.99999651 0.99999999]\n" - ] - } - ], - "source": [ - "from sklearn.gaussian_process import kernels as sk_kern\n", - "import sklearn.gaussian_process as skGP \n", - "# sklearn GP\n", - "\n", - "nxp = np.linspace(-2,12,10)\n", - "nxt = np.array(copy.copy(xt))\n", - "nyt = np.array(copy.copy(yt))\n", - "\n", - "kern = sk_kern.Matern(length_scale=1.0, length_scale_bounds=(1.0,1.0), nu=2.5)\n", - "sGP = skGP.GaussianProcessRegressor(\n", - " kernel=kern,\n", - " alpha=1e-15, \n", - " optimizer=\"fmin_l_bfgs_b\", \n", - " n_restarts_optimizer=0)\n", - "\n", - "sGP.fit(nxt.reshape(-1, 1), nyt)\n", - "print(\"sGP.kernel_\", sGP.kernel_)\n", - "pred_mean, pred_std= sGP.predict(nxp.reshape(-1,1), return_std=True)\n", - "\n", - "print(pred_mean.reshape(-1,))\n", - "print(pred_std)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "4W09PtvH0hBl", - "outputId": "b25c7f62-43aa-45d9-901d-f633fa842971", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting GPy\n", - " Downloading GPy-1.10.0.tar.gz (959 kB)\n", - "\u001b[K |████████████████████████████████| 959 kB 4.3 MB/s \n", - "\u001b[?25hRequirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.19.5)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy) (1.15.0)\n", - "Collecting paramz>=0.9.0\n", - " Downloading paramz-0.9.5.tar.gz (71 kB)\n", - "\u001b[K |████████████████████████████████| 71 kB 8.9 MB/s \n", - "\u001b[?25hRequirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.29.26)\n", - "Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.4.1)\n", - "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy) (4.4.2)\n", - "Building wheels for collected packages: GPy, paramz\n", - " Building wheel for GPy (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for GPy: filename=GPy-1.10.0-cp37-cp37m-linux_x86_64.whl size=2565113 sha256=d3f5efe34d8d7393bde5e956d9d3aaa15a46e98c97fa52624778f8952750d950\n", - " Stored in directory: /root/.cache/pip/wheels/f7/18/28/dd1ce0192a81b71a3b086fd952511d088b21e8359ea496860a\n", - " Building wheel for paramz (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for paramz: filename=paramz-0.9.5-py3-none-any.whl size=102566 sha256=7642fed4b69b594975067d330d9293b5502326530e2cb3589eb51d00117e7bb7\n", - " Stored in directory: /root/.cache/pip/wheels/c8/95/f5/ce28482da28162e6028c4b3a32c41d147395825b3cd62bc810\n", - "Successfully built GPy paramz\n", - "Installing collected packages: paramz, GPy\n", - "Successfully installed GPy-1.10.0 paramz-0.9.5\n" - ] - } - ], - "source": [ - "!pip install GPy" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "rIZjn7IBxvsu", - "outputId": "74319b5f-1cb5-4343-daa5-066cf73dcef1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Name : GP regression\n", - "Objective : 3.2337691135149766\n", - "Number of Parameters : 3\n", - "Number of Optimization Parameters : 3\n", - "Updates : True\n", - "Parameters:\n", - " \u001b[1mGP_regression. \u001b[0;0m | value | constraints | priors\n", - " \u001b[1mMat52.variance \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mMat52.lengthscale \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mGaussian_noise.variance\u001b[0;0m | 1.0 | +ve | \n", - "results(default) [-2.88381322e-03 -4.22766071e-02 -3.67480418e-01 -4.95042500e-01\n", - " -1.53613693e-01 -4.87828001e-01 -2.16840168e-01 -2.16543149e-02\n", - " -1.39973895e-03 -7.40929687e-05] \n", - " [1.99999013 1.99787943 1.8399713 1.71674076 1.98148809 1.58407415\n", - " 1.91634063 1.9991646 1.99999651 1.99999999]\n", - "\n", - "Name : GP regression\n", - "Objective : 3.2405297752729125\n", - "Number of Parameters : 3\n", - "Number of Optimization Parameters : 3\n", - "Updates : True\n", - "Parameters:\n", - " \u001b[1mGP_regression. \u001b[0;0m | value | constraints | priors\n", - " \u001b[1mMat52.variance \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mMat52.lengthscale \u001b[0;0m | 1.0 | +ve | \n", - " \u001b[1mGaussian_noise.variance\u001b[0;0m | 1e-15 | +ve | \n", - "results(noise_var~0) [-5.75795228e-03 -8.44113803e-02 -7.33727600e-01 -9.88413214e-01\n", - " -3.06567456e-01 -9.73202429e-01 -4.32586454e-01 -4.31993675e-02\n", - " -2.79241470e-03 -1.47812047e-04] \n", - " [0.99998026 0.99575881 0.67994023 0.43351368 0.96304576 0.16816651\n", - " 0.83267985 0.99832918 0.99999302 0.99999998]\n" - ] - } - ], - "source": [ - "import GPy\n", - "\n", - "nxp = np.linspace(-2,12,10).reshape(-1,1)\n", - "nxt = np.array(copy.copy(xt)).reshape(-1,1)\n", - "nyt = np.array(copy.copy(yt)).reshape(-1,1)\n", - "\n", - "kern = GPy.kern.Matern52(input_dim=1,variance=1.0,lengthscale=1.0)\n", - "model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,normalizer=None)\n", - "print(model)\n", - "pred_mean, pred_var = model.predict(nxp)\n", - "print(\"results(default) \", pred_mean.reshape(-1,), \"\\n\",pred_var.reshape(-1,))\n", - "\n", - "model = GPy.models.GPRegression(X=nxt, Y=nyt, kernel=kern,noise_var=1.e-15, normalizer=None)\n", - "pred_mean, pred_var = model.predict(nxp)\n", - "print(model)\n", - "print(\"results(noise_var~0)\", pred_mean.reshape(-1,), \"\\n\",pred_var.reshape(-1,))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6czVZ0d87wu_" - }, - "source": [ - "GPyでは、予測誤差がデフォルトで1.0に設定されていることがわかった。\n", - "\n", - "これはかなり注意が必要。 \n", - "GPに限らず多くの場合、データを標準化(平均0,分散1)して使うので、予測誤差の分散が1.0というデフォルト値を使うというのは、 「GPの予測が、データ全体の広がりと同程度誤差を持つ」ことを仮定していて、場合によっては非現実的な仮定になり得る。 \n", - "Webに転がってるGPyを使ったコードだと、あまりこのあたりは認識されていないように思う。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xVtY7wj3XRX4" - }, - "source": [ - "## GPyOpt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bAI3991sXVIJ" - }, - "source": [ - "上で自前コードでやったことを、GPyOptを使ってやってみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "A0Aun9c-YQNF", - "outputId": "14ae57b8-94b8-45c1-c8db-2b7fad3c4eda", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: GPy in /usr/local/lib/python3.7/dist-packages (1.10.0)\n", - "Requirement already satisfied: paramz>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.9.5)\n", - "Requirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy) (0.29.26)\n", - "Requirement already satisfied: scipy>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.4.1)\n", - "Requirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPy) (1.19.5)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy) (1.15.0)\n", - "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy) (4.4.2)\n", - "Collecting GPyOpt\n", - " Downloading GPyOpt-1.2.6.tar.gz (56 kB)\n", - "\u001b[K |████████████████████████████████| 56 kB 2.3 MB/s \n", - "\u001b[?25hRequirement already satisfied: numpy>=1.7 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.19.5)\n", - "Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.4.1)\n", - "Requirement already satisfied: GPy>=1.8 in /usr/local/lib/python3.7/dist-packages (from GPyOpt) (1.10.0)\n", - "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (1.15.0)\n", - "Requirement already satisfied: cython>=0.29 in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (0.29.26)\n", - "Requirement already satisfied: paramz>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from GPy>=1.8->GPyOpt) (0.9.5)\n", - "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.7/dist-packages (from paramz>=0.9.0->GPy>=1.8->GPyOpt) (4.4.2)\n", - "Building wheels for collected packages: GPyOpt\n", - " Building wheel for GPyOpt (setup.py) ... \u001b[?25l\u001b[?25hdone\n", - " Created wheel for GPyOpt: filename=GPyOpt-1.2.6-py3-none-any.whl size=83609 sha256=b36359bb607ed1762b6fd67894ef7c988810df30bdafc0694e7c88cd11f5f48c\n", - " Stored in directory: /root/.cache/pip/wheels/e6/fa/d1/f9652b5af79f769a0ab74dbead7c7aea9a93c6bc74543fd3ec\n", - "Successfully built GPyOpt\n", - "Installing collected packages: GPyOpt\n", - "Successfully installed GPyOpt-1.2.6\n" - ] - } - ], - "source": [ - "#使うライブラリのインポート\n", - "!pip install GPy\n", - "!pip install GPyOpt\n", - "import GPy\n", - "import GPyOpt\n", - "import numpy as np \n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 300 - }, - "id": "AFlh-8hGXjnL", - "outputId": "a523a61c-5738-4a62-cdbb-3f539929cc79", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Estimated Opt. x 8.001075118805382 y 2.589416268802192\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def f(x): #GPyOptは最小値を探索するのでマイナスをかけておく\n", - " return - (np.sin(x) + 0.2 * x)\n", - "\n", - "\n", - "oxt = np.array([ 0.0 + 1.02*i for i in range(11)])\n", - "xt = np.array([ oxt[2], oxt[6]])\n", - "yt = f(xt)\n", - "xt = np.array( [ [ x ] for x in xt])\n", - "yt = np.array( [ [ y ] for y in yt])\n", - "\n", - "## BayesOptの準備・実行\n", - "bounds = [{'name': 'x', 'type': 'continuous', 'domain': (-2,12)}]\n", - "res = GPyOpt.methods.BayesianOptimization(f=f,X=xt,Y=yt, \n", - " kernel=GPy.kern.Matern52(input_dim=len(bounds)), \n", - " domain=bounds,acquisition_type='EI')\n", - "#print(\"bounds\", bounds,len(bounds))\n", - "res.run_optimization(max_iter=10)\n", - "\n", - "## 結果の描画等\n", - "xs = res.X; ys = res.Y\n", - "print(\"Estimated Opt. x\", res.x_opt[0], \"y\", -res.fx_opt)\n", - "xr = np.arange(-2.0,12.0,0.1)\n", - "yr = - f(xr)\n", - "\n", - "fig = plt.figure(figsize=(12,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.set_xlabel(\"x\"); ax.set_ylabel(\"y\")\n", - "ax.set_xlim(-2.0,12); ax.set_ylim(-2.0,5.0)\n", - "ax.plot(xr,yr,linestyle=\"dotted\",color=\"red\")\n", - "ax.scatter(xs,-ys,marker=\"o\",color=\"black\")\n", - "plt.show()\n", - "plt.close()" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_BayesianOptimization.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter_Bayesian_linear_regression.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter_Bayesian_linear_regression.ipynb deleted file mode 100644 index 682d266d..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter_Bayesian_linear_regression.ipynb +++ /dev/null @@ -1,426 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Qlp8TMCwqzju" - }, - "source": [ - "# ベイズ線形回帰" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qDs_Ob0fwnVN" - }, - "source": [ - "## 線形回帰 (多項式回帰の例)\n", - "\n", - "\n", - "線形回帰モデル: \n", - "$y({\\bf x},{\\bf w})= \\sum^{M-1}_{j=0} w_j \\phi_j({\\bf x}) = {\\bf w}^T\\boldsymbol{\\phi}({\\bf x})$を考える。 \n", - "\n", - "ここで$\\boldsymbol{\\phi}$は基底関数のベクトルで、\n", - "$p$次の多項式回帰の場合は$\\boldsymbol{\\phi}=(1, x, x^2, \\ldots, x^p)$といった感じ。\n", - "\n", - "実際この場合にベクトルの内積を書き下すと\n", - "${\\bf w}^T\\boldsymbol{\\phi}=w_0 + w_1x+ w_2x^2+ \\cdots + w_{p}x^p$となり、\n", - "$p$次多項式になっている。\n", - "\n", - "\n", - "さて目標変数$t$が、決定論的な関数$y({\\bf x},{\\bf w})$と平均0,精度$\\beta\\equiv 1/\\sigma^2$の誤差$\\epsilon$の和: $t=y({\\bf x},{\\bf w})+\\epsilon$で与えられていると仮定する。 \n", - "\n", - "つまり、$t$の確率分布が\n", - "$p(t|{\\bf x},{\\bf w},\\beta) = \\mathcal{N}(t|y({\\bf x},{\\bf w}),\\beta^{-1})$で与えられるとする。\n", - "\n", - "\n", - "入力$\\boldsymbol{\\mathrm{X}}=\\{{\\bf x_1},{\\bf x_2},\\ldots, {\\bf x_N}\\}$と、\n", - "対応する目標値を$\\boldsymbol{\\mathrm{t}}=\\{t_1,t_2,\\ldots, t_N\\}$と表すことにしておこう。\n", - "\n", - "これらのデータ点が上の分布$p(t|{\\bf x},{\\bf w},\\beta)$から独立に生成されたと仮定すると、 \n", - "データの目標変数についての確率分布は$p(\\boldsymbol{\\mathrm{t}}|\\boldsymbol{\\mathrm{X}},{\\bf w},\\beta) = \\prod^N_{n=1} \\mathcal{N}(t_n|{\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) ,\\beta^{-1})$で与えられる。 \n", - "(以下では、確率分布の条件部分にある${\\bf x}$などを適宜省略する)\n", - "\n", - "このとき、対数尤度は\n", - "$\\ln p(\\boldsymbol{\\mathrm{t}}|{\\bf w},\\beta) = \\sum^N_{n=1} \\ln \\mathcal{N}(t_n|{\\bf w}^T\\boldsymbol{\\phi}({\\bf x_n}) ,\\beta^{-1}) = \\frac{N}{2}\\ln\\beta - \\frac{N}{2}\\ln(2\\pi) -\\beta E_D({\\bf w})$となる。\n", - "\n", - "なお$E_D$は二乗和誤差関数:\n", - "$E_D({\\bf w}) \\equiv \\frac{1}{2}\\sum^N_{n=1} \\{ t_n- {\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) \\}$\n", - "である。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FjSnT2V6wk08" - }, - "source": [ - "対数尤度の勾配を書き下して、最尤推定を考えるとすると$\\nabla \\ln p(\\boldsymbol{\\mathrm{t}}|{\\bf w},\\beta) = \\beta \\sum^N_{n=1} \\{ t_n -{\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) \\} \\boldsymbol{\\phi}({\\bf x_n})^T $の根が必要。\n", - "\n", - "つまり$0= \\sum^N_{n=1} t_n \\boldsymbol{\\phi}({\\bf x_n})^T - {\\bf w}^T(\\sum^N_{n=1}\\boldsymbol{\\phi}({\\bf x_n})\\boldsymbol{\\phi}({\\bf x_n})^T)$をときたい。\n", - "\n", - "上の式を変形すると${\\bf w} = ( \\boldsymbol{\\Phi}^T\\boldsymbol{\\Phi} )^{-1} \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathrm{t}}$が根であることがわかる。 \n", - "つまり、最尤推定を与えるパラメータ${\\bf w}_{ML}$は、計画行列$\\boldsymbol{\\Phi}$を用いて閉じた形で与えられる。\n", - "\n", - "なお、計画行列の要素は\n", - "$\\boldsymbol{\\Phi}_{nj} = \\phi_j({\\bf x_n})$で与えられる。\n", - "\n", - "\n", - "\n", - "---\n", - "\n", - "次の1次元擬似データの回帰を考えてみる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 320 - }, - "id": "Had64uyx6ieC", - "outputId": "1dcbff3d-7d29-4bb7-84a5-4c65b3715e49", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "\n", - "## データ点の生成\n", - "np.random.seed(1234)\n", - "x = np.linspace(-2.0,6.0,1000)\n", - "beta = 1.e+2\n", - "xt = np.linspace(0.0,4.0,20)\n", - "yt = np.sin(xt) + np.array([ np.random.normal(0.0,1.0/np.sqrt(beta)) for i in range(len(xt))])\n", - "\n", - "fig = plt.figure(figsize = (15,5))\n", - "axs = [fig.add_subplot(111)]\n", - "axs[0].scatter(xt,yt,label=\"Data\",color=\"k\",marker=\"x\")\n", - "axs[0].legend()\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pX2ZEq1TAY_8" - }, - "source": [ - "これを,numpyモジュールの多項式fit関数と、上の計画行列によって3次式で回帰してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 282 - }, - "id": "JuQGBg5qq8x0", - "outputId": "0584baea-431a-4f0e-d787-59ec0d13ac82", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:30: RuntimeWarning: divide by zero encountered in log10\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "N = len(xt)\n", - "\n", - "## 多項式の次元を固定しておく\n", - "p=3\n", - "\n", - "##numpyのfit\n", - "yp = np.poly1d(np.polyfit(xt, yt, p))(x) \n", - "\n", - "## 計画行列を用いる方法\n", - "def phi(x,p):\n", - " return np.array([ x**i for i in range(p+1)])\n", - "Phi = np.zeros((N,p+1))\n", - "for i in range(N):\n", - " xn = xt[i]\n", - " tmp = phi(xn,p) \n", - " for j in range(p+1):\n", - " Phi[i][j] = tmp[j]\n", - "S = np.linalg.inv(np.dot(Phi.T,Phi))\n", - "wML = np.dot(S,np.dot(Phi.T,yt))\n", - "yD = [ np.dot(wML,phi(xn,p)) for xn in x ]\n", - "\n", - "#図のplot\n", - "fig = plt.figure(figsize = (20,4))\n", - "axs = [fig.add_subplot(121),fig.add_subplot(122)]\n", - "axs[0].scatter(xt,yt,label=\"Data\",color=\"k\",marker=\"x\")\n", - "axs[0].plot(x,yp,label=\"np.polyfit\",color=\"r\",alpha=0.5)\n", - "axs[0].plot(x,yD,label=\"DMat\",linestyle=\"dotted\", color=\"g\")\n", - "axs[0].legend()\n", - "\n", - "axs[1].plot(x,np.log10(abs(yp-yD)))\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jO4b2_In7Cd8" - }, - "source": [ - "となり、ライブラリの出力と計画行列を用いた最尤推定の結果とが \n", - "ピッタリ(ざっくり14桁程度)一致していることがわかる。\n", - "\n", - "マニアックな注: np.polyfitもおそらく計画行列を用いて定義されているはず。 \n", - "numpyの中身を見てないので不正確かもしれませんが、 \n", - "僅かな答えの差は、逆行列計算に由来するものではないかと想像します。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ppJnjTsXB0X9" - }, - "source": [ - "### L2正則化項がある場合への拡張\n", - "\n", - "二乗和誤差関数に、L2正則化項を入れた場合:\n", - "$\\frac{1}{2}\\sum^N_{n=1} \\{ t_n- {\\bf w}^T \\boldsymbol{\\phi}({\\bf x_n}) \\} + \\frac{\\lambda}{2} {\\bf w}^T{\\bf w}$\n", - "に拡張してみよう。\n", - "\n", - "上と同様に勾配を計算すると、最尤推定を与えるパラメータ${\\bf w}$は\n", - "${\\bf w}_{ML,L2} = (\\lambda I + \\boldsymbol{\\Phi}^T\\boldsymbol{\\Phi} )^{-1} \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathrm{t}}$ \n", - "(つまり計画行列に単位行列を足すだけ)となる。 \n", - "\n", - "(対数尤度が$|w|^2$に比例することからほとんど自明だが) \n", - "あとで示すように「L2正則化を課すこと」は、パラメータのベイズ的取り扱いにおいて \n", - "「事前分布にガウス分布を仮定すること」と等価である。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "XqR_eYP3K68v" - }, - "source": [ - "## ベイズ線形回帰" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P2WYkL5sOxhy" - }, - "source": [ - "次に、パラメータ${\\bf w}$をベイズ的に取り扱う事を考える。\n", - "\n", - "このノートでいう[ベイズ的]とはせいぜい「パラメータを点推定する立場より有限の幅をもつ確率分布としてパラメータを考える」という程度の意味である。 \n", - "\n", - "パラメータ${\\bf w}$が、平均$\\boldsymbol{\\mu}$,共分散$\\boldsymbol{\\Sigma}$で指定される多次元の正規分布に従うと仮定する: ${\\bf w} \\sim \\mathcal{N}(\\boldsymbol{\\mu},\\boldsymbol{\\Sigma})$ \n", - "\n", - "このとき、パラメータの事後分布は$p({\\bf w}|\\boldsymbol{\\mathcal{t}}) = \\mathcal{N}(\\tilde{\\boldsymbol{\\mu}},\\tilde{\\boldsymbol{\\Sigma}})$で与えられる。\n", - "\n", - "ここで事後分布の平均および共分散は以下のとおりである: \n", - "$\\tilde{\\boldsymbol{\\Sigma}}^{-1} =\\boldsymbol{\\Sigma}^{-1}+\\beta\\boldsymbol{\\Phi}^T \\boldsymbol{\\Phi},\n", - "\\tilde{\\boldsymbol{\\mu}}= \\tilde{\\boldsymbol{\\Sigma}} (\\boldsymbol{\\Sigma} \\boldsymbol{\\mu} + \\beta \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathcal{t}})$ \n", - "\n", - "...\n", - "\n", - "ここで簡単のため事前分布をさらに簡略化しよう。 \n", - "事前分布の平均$\\boldsymbol{\\mu}$が$0$(ベクトル)かつ、 \n", - "パラメータの事前分布の共分散が対角的(独立な分散をもつ)でなおかつ値が同じ, \n", - "つまり、上の$\\boldsymbol{\\Sigma}=\\alpha^{-1}I$とかける場合を考える。\n", - "\n", - "このとき、事後分布の平均および共分散は以下のように簡略化される: \n", - "$\\tilde{\\boldsymbol{\\Sigma}}^{-1} =\\alpha I +\\beta\\boldsymbol{\\Phi}^T \\boldsymbol{\\Phi}$ \n", - "$\\tilde{\\boldsymbol{\\mu}}= \\beta \\tilde{\\boldsymbol{\\Sigma}} \\boldsymbol{\\Phi}^T \\boldsymbol{\\mathcal{t}}$\n", - "\n", - "この条件のもとで対数事後確率(log posterior)は \n", - "$\\ln p({\\bf w}|\\boldsymbol{\\mathrm{t}}) = -\\frac{\\beta}{2}\\sum^N_{n=1} \\{t_n - {\\bf w}^T \\phi(x_n) \\}^2 -\\frac{\\alpha}{2} {\\bf w}^T{\\bf w} + $ (正規分布の係数からくるオマケの定数)となる。\n", - "\n", - "したがって正規分布で与えられる事前分布のもとでパラメータ${\\bf w}$の事後分布を最大化することは、 \n", - "L2正則化項がある場合の誤差関数の最小化と($\\lambda=\\beta/\\alpha$とすれば)等価であることがわかる。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "PvjZoBE7U9HF" - }, - "source": [ - "実用上は${\\bf w}$の分布を考えたあと、それを予測値の分布として伝播させる必要がある。\n", - "\n", - "一般に予測分布を評価する際は、サンプリング法などが必要になるが、\"性質の良い\"確率分布を用いる場合は、予測分布も閉じた形で書き下すことができる。 \n", - "実際、今の場合は予測分布も正規分布になる.\n", - "\n", - "\n", - "未知の点$x^*$での値を$t^*$と書くことにすると、\n", - "\n", - "$p(t^*|\\boldsymbol{\\mathrm{t}},\\alpha,\\beta) =\n", - "\\int p(t|{\\bf w},\\beta) p({\\bf w}|\\boldsymbol{\\mathrm{t}},\\alpha,\\beta) d{\\bf w} $\n", - "\n", - "今の場合、ガウス分布の性質から、\n", - "予測分布は以下で与えられる: \n", - "$p(t^*|{\\bf x},\\boldsymbol{\\mathrm{t}},\\alpha,\\beta) = \\mathcal{N}(t^*|\\tilde{\\boldsymbol{\\mu}}^T\\boldsymbol{\\phi}({\\bf x}),\\sigma^2_N({\\bf x}))$\n", - "\n", - "ここで、予測分布の分散は$\\sigma^2_N({\\bf x})= \\frac{1}{\\beta}+\\boldsymbol{\\phi}({\\bf x})^T \\tilde{\\boldsymbol{\\Sigma}}\\boldsymbol{\\phi}({\\bf x}) $\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "kmOBxfJPSJkQ", - "outputId": "b074a333-f044-4144-b9d5-11a7178f0a8e", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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QgjRpQKi4lpGo4QQQlxu79692Gy2LrteZGQk2dnZrR7jcDi4/vrrqa2txeVycccdd/DUU081e+zzzz9PREQE9913X5fFKLpHQCRSdrudpKQkQkJCzA5FCCFED2Cz2YiJiemy6126dKnNY0JDQ/nggw+IiorC6XQyceJEbrrpJsaNG3fVsY888kiXxSa6l9/vtae1RmtNcnKy2aEIIYQIYEopoqKiAHA6nTidTpRSLF68mOzsbHJzc3n88ccBoyP5smXLAPj888/Jzc0lLy+PH/7wh4wcORKAVatWcfvttzN9+nQGDhzIc889x9NPP83o0aMZN24cFy5cAOB3v/sdY8aMYdSoUXzzm9/Ebreb8PT+y+8TKZvNRkJCQpPNHYUQQggzuN1u8vLySEpKYvr06QwZMoQNGzawZ88edu7cyU9/+tOrznnggQd44YUXKC0txWq1Nvls9+7drF+/ns8//5yf/OQnREREsH37dsaPH88rr7wCwDe+8Q0+//xzduzYQVZWFi+++KJPnjVQ+H0i5fF4ZDRKCCFEj2C1WiktLeXEiRNs3bqV06dPExYWxoMPPsj69euJiIhocnxFRQVVVVWMHz8egG99q+kubFOmTCE6OprExERiY2O59dZbAcjJyaGsfjPB3bt3M2nSJHJyclizZg179uzp/gcNIH6dSNXU1BAfH9/sfntCCCGEWeLi4pgyZQrvvvsuW7du5Y477uCdd95h1qxZXl3n8tkWi8XS+NpiseByuQCYN28ezz33HLt27eLJJ5/E4XB03YMI/02kGmqjZGNiIYQQPcG5c+eoqKgAjH/ob968meHDh1NZWcns2bNZvnz5VdvBxMXFER0dzWeffQbAunXrvL5vVVUVqampOJ1O1qxZ0/kHEU347ao9m81GVFQUkZGRZocihBCih4mMjGzXSjtvrteW06dPc//99+N2u/F4PNx5551ce+213HLLLTgcDrTWPP3001ed9+KLL/Lwww9jsVi44YYbiI2N9Sq2f/u3f2Ps2LEkJiYyduxYqqqqvDpftE5p7fv9gwsKCnRJSUm33uP48eNER0cTFxfXrfcRQgjR8+3bt4+srCyzw+iQ6urqxtV+S5cu5fTp06xYscLkqPxXcz8rSqltWuuC5o732xGpfv36mR2CEEII0WmbNm3iF7/4BS6XiwEDBrBq1SqzQxKX8dtESgghhPAHd911F3fddZfZYYgW+G2xuRBCCHE5M0pZRO/SkZ8RSaSEEEL4vbCwMMrLyyWZEi3SWlNeXk5YWJhX58nUnhBCCL+XkZHBiRMnOHfunNmhiB4sLCyMjIwMr86RREoIIYTfCw4OZtCgQWaHIfyQTO0JIYQQQnSQJFJCCCGEEB0kiZQQQgghRAeZ0tlcKXUOONrNt0kAznfzPXqyQH7+QH52COznl2cPXIH8/IH87OCb5x+gtU5s7gNTEilfUEqVtNTOPRAE8vMH8rNDYD+/PHtgPjsE9vMH8rOD+c8vU3tCCCGEEB0kiZQQQgghRAf5cyK10uwATBbIzx/Izw6B/fzy7IErkJ8/kJ8dTH5+v62REkIIIYTobv48IiWEEEII0a0kkRJCCCGE6CC/TqSUUr9SSn2plNqplNqglIozOyZfUUrNUUrtUUp5lFIBsyxWKTVLKfV3pdRBpdRis+PxFaXUS0qps0qp3WbHYgalVD+l1Bal1N76n/uFZsfkK0qpMKXUVqXUjvpnf8rsmHxNKWVVSm1XSr1jdiy+ppQqU0rtUkqVKqVKzI7Hl5RScUqp1+t/z+9TSo03Iw6/TqSAzcBIrXUusB/4scnx+NJu4BvA38wOxFeUUlbgN8BNQDZwt1Iq29yofGYVMMvsIEzkAv5Za50NjAMeDaDvfS0wVWs9CsgDZimlxpkck68tBPaZHYSJpmit8wKwl9QK4F2t9XBgFCb9DPh1IqW1fk9r7ap/+SmQYWY8vqS13qe1/rvZcfhYIXBQa31Ya10HrANuMzkmn9Ba/w24YHYcZtFan9Zaf1H/5yqM/0NNNzcq39CG6vqXwfVfAbOKSCmVAdwM/N7sWITvKKVigeuBFwG01nVa6wozYvHrROoK84E/mx2E6FbpwPHLXp8gQH6Ziq8ppQYCo4HPzI3Ed+qntkqBs8BmrXXAPDvwDPAjwGN2ICbRwHtKqW1Kqe+YHYwPDQLOAX+on9b9vVIq0oxAen0ipZT6q1JqdzNft112zE8whv7XmBdp12vPswsRSJRSUcAbwD9qrS+ZHY+vaK3dWus8jFH3QqXUSLNj8gWl1C3AWa31NrNjMdFErXU+RknDo0qp680OyEeCgHzgt1rr0YANMKUuNsiMm3YlrfWNrX2ulJoH3AJM037WNKutZw9AJ4F+l73OqH9PBAClVDBGErVGa73e7HjMoLWuUEptwaiXC4SFB9cBRUqp2UAYEKOUelVrfa/JcfmM1vpk/f+eVUptwChxCITa2BPAictGX1/HpESq149ItUYpNQtjyLdIa203Ox7R7T4HrlFKDVJKhQBzgY0mxyR8QCmlMGol9mmtnzY7Hl9SSiU2rEhWSoUD04EvzY3KN7TWP9ZaZ2itB2L8ff8gkJIopVSkUiq64c/ADAIjgUZr/RVwXCk1rP6tacBeM2Lx60QKeA6IBjbXLw193uyAfEUp9Q9KqRPAeGCTUuovZsfU3eoXFiwA/oJRbPzfWus95kblG0qptcAnwDCl1Aml1INmx+Rj1wHfBqbW/10vrR+lCASpwBal1E6Mf0xs1loHXBuAAJUM/J9SagewFdiktX7X5Jh86QfAmvqf/Tzg/5kRhGwRI4QQQgjRQf4+IiWEEEII0W0kkRJCCCGE6CBJpIQQQgghOkgSKSGEEEKIDpJESgghhBCigySREkIIIYToIEmkhBBCCCE66P8DlQxlNpu7POIAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "## alpha(事前分布の精度=分散の逆数)は決め打ちとする\n", - "alpha = 1.e-5 #精度が小さい=分散が大きい=パラメータの事前知識が\"弱い\"\n", - "\n", - "## wの事後分布の計算\n", - "I = np.diag([1.0 for i in range(p+1)])\n", - "Sigma = np.linalg.inv( alpha * I + beta * np.dot(Phi.T, Phi) )\n", - "mu = beta * np.dot(Sigma, np.dot(Phi.T,yt))\n", - "\n", - "## 予測値(その分散)のリストを作成\n", - "y_BLR = []\n", - "for tx in x :\n", - " tmp = phi(tx,p)\n", - " mu_p = np.dot(mu,tmp) \n", - " term1 = 1.0/beta\n", - " term2 = np.dot(tmp,np.dot(Sigma,tmp))\n", - " sigma_p = term1 + term2 \n", - " #print(\"term1\", term1, \"term2\", term2)\n", - " y_BLR += [ [mu_p, sigma_p] ]\n", - "y_BLR = np.array(y_BLR).T\n", - "\n", - "## plot\n", - "fig = plt.figure(figsize = (10,4))\n", - "axs = [fig.add_subplot(111)]\n", - "axs[0].scatter(xt,yt,label=\"Data\",color=\"k\",marker=\"x\")\n", - "axs[0].plot(x,yD,label=\"Maximum Likelihood\",linestyle=\"dotted\", color=\"red\")\n", - "axs[0].plot(x,y_BLR[0],label=\"Mean\",linestyle=\"dashed\", color=\"blue\")\n", - "axs[0].fill_between(x,y_BLR[0]+np.sqrt(y_BLR[1]),y_BLR[0]-np.sqrt(y_BLR[1]),label=\"1sigma\", color=\"blue\",alpha=0.5)\n", - "axs[0].fill_between(x,y_BLR[0]+3*np.sqrt(y_BLR[1]),y_BLR[0]-3*np.sqrt(y_BLR[1]),label=\"3sigma\", color=\"gray\",alpha=0.3)\n", - "axs[0].legend()\n", - "plt.show()\n", - "plt.close() " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lrsQqCTcik91" - }, - "source": [ - "パラメータの広がりが予測に伝搬され、 \n", - "データが無いところで予測が不確かになっていることが見て取れる。\n", - "\n", - "\n", - "注) 上では、データの精度$\\beta$(分散の逆数)や、パラメータ${\\bf w}$の精度$\\alpha$を既知とした。 \n", - "実際には、$\\beta$そのものがわからなかったりする。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bH9TtwVJm2Hi" - }, - "source": [ - "\n", - "\n", - "(編集予定)\n", - "\n", - "## ブートストラップ法" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_Bayesian_linear_regression.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_chapter_WebScraping.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_chapter_WebScraping.ipynb deleted file mode 100644 index b7da2bfc..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_chapter_WebScraping.ipynb +++ /dev/null @@ -1,1091 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hZr60g6XehqN" - }, - "source": [ - "# Web操作・スクレイピング" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "y6bjRQEEPOur" - }, - "source": [ - "Webから情報を抽出・整形・解析したり、 \n", - "ブラウザ上での特定の操作を自動化する、といったことも \n", - "Pythonでは比較的容易に実行することができる。\n", - "\n", - "Web上にある情報にアクセスしたりする方法は色々あるが、大まかには2つに分類され\n", - "\n", - "1. プログラムでWebページにアクセスして中身(HTML)を読み、そこから情報を抽出する方法\n", - "2. ブラウザをプログラムに操作させて特定の作業を実行する方法\n", - "\n", - "この章では、とくに1.のWebから情報を抽出すること(スクレイピング)に絞ってそのエッセンスを紹介する。 \n", - "HTMLとは、Webページを作るための言語のことで、 \n", - "みなさんが普段からアクセスするほぼ全てのWebページは、 \n", - "HTMLで記述されています。\n", - "\n", - "\n", - "Webから情報を抽出したりする際、共通して言える注意点を述べておく:\n", - "* **対象とするページの利用規約を必ず確認する** \n", - "規約でスクレイピングを禁止しているページがある (例: Amazon, Twitter, Instagram, facebook, 金融系などなど) \n", - " 禁止している場合でも、APIが提供されている場合があります \n", - " ※APIはApplication Programming Interfaceの略です。 \n", - " 今の場合、大雑把にはデータ提供用の窓口とでも思ってください.\n", - "\n", - "* **サーバーに負荷をかけない** \n", - " 規約で特にスクレイピングを禁止していない場合でも、過度なアクセスをしてはいけません。 \n", - " (どこかの大学の教務ポータルみたいに落ちてしまったら大変です) \n", - " 過度なアクセスは、悪意のあるDos攻撃とみなされてアクセスを制限されたり、 \n", - " 最悪の場合、偽計業務妨害罪などの罪に問われる可能性があります。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4F9VwZUYTv-k" - }, - "source": [ - "\n", - "## 東京都の新型コロナウイルス関連情報の取得\n", - "\n", - "スクレイピングを可能とするライブラリは多数存在する。 \n", - "代表的なものは```requests```や```urllib```。以下では```requests```を使います。 \n", - "\n", - "JavaScriptの実行などがないページならこれでだいたい十分かと思います. \n", - "また```BeutifulSoup4```というライブラリを使うと、HTMLを構文解析して、 \n", - "タグなどを取り除くといった操作が比較的容易に行えます。\n", - "\n" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1つ目の例として、[東京都 新型コロナウイルス感染症対策サイト](https://stopcovid19.metro.tokyo.lg.jp/)の公開データを取得して \n", - "それをグラフにして可視化してみましょう。まずは必要なライブラリをインポートしておきます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "up8cPse8AetS", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import requests\n", - "import json\n", - "import datetime\n", - "import matplotlib.pyplot as plt\n", - "!pip install japanize-matplotlib \n", - "import japanize_matplotlib " - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "BnQLXHKjFjBq" - }, - "source": [ - "[東京都 新型コロナウイルス感染症対策サイト](https://stopcovid19.metro.tokyo.lg.jp/)の[レポジトリ](https://github.com/tokyo-metropolitan-gov/covid19)で公開されているデータ(json形式)を読み出す。\n", - "\n", - "指定したurlにリクエストを送り、レスポンスをjson形式で取得する" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "T_1P0zx8AkK2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "url = \"https://raw.githubusercontent.com/tokyo-metropolitan-gov/covid19/development/data/data.json\"\n", - "response = requests.get(url)\n", - "data = response.json()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SKHu3BaJGHV7" - }, - "source": [ - "上の`data`を直接`print`すると表示が冗長になるため \n", - "代わりに、jsonのキーとして何があるかを見てみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "pYuurgg8GQt0", - "outputId": "daada50f-ae8c-41fb-ae69-8173e3c676b9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_keys(['contacts', 'querents', 'patients_summary', 'inspections_summary', 'lastUpdate', 'main_summary'])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data.keys()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MauYUeNZGSUt" - }, - "source": [ - "それぞれ\n", - "* contacts: 新型コロナコールセンター相談件数\n", - "* querents: 帰国者・接触者電話相談センター相談件数\n", - "* patients_summary: 陽性患者数\n", - "* inspections_summary: 検査実施日別状況\n", - "* lastUpdate: 最終更新日時\n", - "* main_summary: (これはよくわからない)\n", - "\n", - "に対応している。\n", - "\n", - "陽性患者数のデータの構造を調べつつ結果を可視化してみよう。 \n", - "まずは型を調べてみる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "NkQkByDHH4d_", - "outputId": "a19e1dc9-5625-4cb3-8df2-20eb4305894d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "type(data['patients_summary'])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IHVWrC9OIEP0" - }, - "source": [ - "辞書型とわかったのでキーの一覧を見てみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "wv2FvdSkIDXg", - "outputId": "fa3a7ee8-dfdb-498d-de72-9f1cb9b70785", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_keys(['date', 'data'])" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data['patients_summary'].keys()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1yZUYEsmIK-I" - }, - "source": [ - "同様にして`data['patients_summary'][\"data\"]`が\"日付\"と\"小計\"をキーに持つ辞書のリストだと分かる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "hhAhiQfSISBz", - "outputId": "88e0f766-6994-4919-f500-de1be2c7232c", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'日付': '2020-01-24T08:00:00.000Z', '小計': 1}" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data['patients_summary'][\"data\"][0]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iXuc95Z_IkdB" - }, - "source": [ - "日付と陽性患者数をリストに直して、描画してみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "y66ZWnHdDK5s", - "outputId": "c7127a0a-d0e1-4f19-f137-a94dd00e6a63", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "# \"2022-01-01\"のような文字列をdatetimeに変換する関数\n", - "def str_to_dt(tstr):\n", - " tdatetime = datetime.datetime.strptime(tstr, '%Y-%m-%d')\n", - " tdate = datetime.date(tdatetime.year, tdatetime.month, tdatetime.day)\n", - " return tdate\n", - " \n", - "tdat = data['patients_summary'][\"data\"]\n", - "N = len(tdat)\n", - "tdat = data['patients_summary'][\"data\"]\n", - "dates = [ str_to_dt(tdat[i][\"日付\"].split(\"T\")[0]) for i in range(N)]\n", - "num_patients = [ tdat[i]['小計'] for i in range(N)]\n", - "print(dates)\n", - "print(num_patients)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 292 - }, - "id": "aZx0omoSFYVq", - "outputId": "44b64330-f48c-4cac-f963-0706adb35ce0", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize=(15,4))\n", - "plt.title(\"東京都\")\n", - "plt.xlabel(\"日付\")\n", - "plt.ylabel(\"陽性者数[人]\")\n", - "plt.plot(dates,num_patients, color=\"green\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "25k4E9a0WBHd" - }, - "source": [ - "## e-Statのデータを取得する\n", - "\n", - "[政府統計の総合窓口(e-Stat)](https://www.e-stat.go.jp/)は \n", - "日本の各府省が公表する統計データを一つにまとめた、 \n", - "政府統計のポータルサイトです。\n", - "\n", - "e-Statでは[API機能](https://www.e-stat.go.jp/api/)(ユーザー登録が必要)が提供されていて、 \n", - "指定されたURLに対してリクエストを送信することで各APIを利用することが出来ます。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0ixj5epofkdl" - }, - "source": [ - "### 準備1 e-Statの登録\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zfPiBxkmizMv" - }, - "source": [ - "以降の内容でも、e-StatのAPI機能を使用するため予めe-Statへの登録が必要です。\n", - "\n", - "国内のデータを使って最終課題に取り組みたいという方は \n", - "ここに記載の手順にならって登録しておきましょう。\n", - "\n", - "1. まず[こちら](https://www.e-stat.go.jp/mypage/user/preregister)のページからメールアドレス(Gmailを推奨します)を入力し、届いたメールから本登録を行う \n", - "このとき、gmailアカウントによる認証をオンにしておくと、以後のログインが楽。\n", - "2. [ログインページ](https://www.e-stat.go.jp/mypage/login)からログインし、\n", - "右上の[マイページ]に遷移\n", - "\n", - "3. [API機能(アプリケーションID発行)]に遷移する\n", - "4. 以下の例にならって、名称とURLを入力し、発行ボタンを押す\n", - "\n", - "\n", - "5. [appId]に生成された文字列を、どこかに控えておく(**appIdを他人と共有してはいけません**)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H_q7dts4iyJE" - }, - "source": [ - "### 準備2 Pandas e-Statのインストール\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "l2ywuL1Ki2QB" - }, - "source": [ - "さて、e-Statへの登録ができたでしょうか。 \n", - "\n", - "早速e-Statにあるデータをどんどん抽出したい \n", - "...のですが、[マニュアル](https://www.e-stat.go.jp/api/sites/default/files/uploads/2019/07/API-specVer3.0.pdf)を理解してAPIに適切なリクエストを送るというのは、 \n", - "それ自体がややハードルが高いかと思います。\n", - "\n", - "そこで、このノートブックでは[simaki](https://github.com/simaki)氏が作った \n", - "Python用のライブラリ[Pandas e-Stat](https://github.com/simaki/pandas-estat)を使用することにします。 \n", - "同氏によるQiitaの解説記事→https://qiita.com/simaki/items/05cc242d27b4e6781d19\n", - "\n", - "まずはインストール&インポートします。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "P20H8bGrXnC1", - "outputId": "f855e3db-570a-4091-eec2-df5c65ddf906", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: pandas-estat in /usr/local/lib/python3.7/dist-packages (0.3.1)\n", - "Requirement already satisfied: requests<3.0.0,>=2.26.0 in /usr/local/lib/python3.7/dist-packages (from pandas-estat) (2.26.0)\n", - "Requirement already satisfied: pandas<2.0.0,>=1.3.3 in /usr/local/lib/python3.7/dist-packages (from pandas-estat) (1.3.5)\n", - "Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (1.19.5)\n", - "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (2.8.2)\n", - "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.3.3->pandas-estat) (2018.9)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas<2.0.0,>=1.3.3->pandas-estat) (1.15.0)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2.10)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2021.10.8)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (1.24.3)\n", - "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.26.0->pandas-estat) (2.0.8)\n" - ] - } - ], - "source": [ - "!pip install pandas-estat\n", - "import pandas as pd\n", - "## import pandas_estat \n", - "# 以降では、pandas_estat内の関数は個別にimportすることにする (そうすると短い名前で使える)\n", - "#実行時の依存関係のエラーは当面問題ない(はず)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "81nepFn_cbZc" - }, - "source": [ - "次に```pandas_estat```からAPIを使用するためのIDを指定します" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zhWUx4u9aVtS", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "from pandas_estat import set_appid\n", - "appID = \"honyahonya\" # 引用符内を準備1で発行したappidに置き換える\n", - "set_appid(appID) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IMr1sWo20JI-" - }, - "source": [ - "## Pandas e-Statを使ってみよう" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KbrL52_4cdga" - }, - "source": [ - "ライブラリを使ってみましょう. \n", - "```read_statslist()```関数の引数に\"政府統計コード\"を指定することで、 \n", - "該当する統計データの一覧を```pandas.DataFrame```形式で取得することができます。 \n", - "[政府統計コードの一覧はこちら](https://www.e-stat.go.jp/help/stat-search-3-5)\n", - "\n", - "\n", - "政府統計コードそのものの一覧をdataframe形式取得するコードはそのうち書くつもりです。 \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wi4ef0kxtGRD" - }, - "source": [ - "それでは、さっそくPandas e-statを使ってみましょう。 \n", - "以下では、例にならって「サービス産業動向調査」の結果を抽出してみることにしましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "JZ6HgRbkcO3P", - "outputId": "79189f74-3fcc-4409-ca19-0b8359604627", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TABLE_INF STAT_CODE ... SUB_CATEGORY_CODE SUB_CATEGORY\n", - "0 0003179100 00200544 ... 02 需給流通\n", - "1 0003179101 00200544 ... 02 需給流通\n", - "2 0003085562 00200544 ... 02 需給流通\n", - "3 0003085612 00200544 ... 02 需給流通\n", - "4 0003090498 00200544 ... 02 需給流通\n", - ".. ... ... ... ... ...\n", - "137 0003412789 00200544 ... 02 需給流通\n", - "138 0003412790 00200544 ... 02 需給流通\n", - "139 0003412791 00200544 ... 02 需給流通\n", - "140 0003412792 00200544 ... 02 需給流通\n", - "141 0003412793 00200544 ... 02 需給流通\n", - "\n", - "[142 rows x 35 columns]\n" - ] - } - ], - "source": [ - "from pandas_estat import read_statslist\n", - "statslist = read_statslist(\"00200544\") # サービス産業動向調査\n", - "statslist" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wMHn2KBQgvgI" - }, - "source": [ - "次に、これらのデータがどうやって分類されているのかを調べてみましょう。 \n", - "列(column)を表示してみると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "p13KGCATg0aw", - "outputId": "575c6607-167d-4a64-e5ac-82da6935e06f", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['TABLE_INF', 'STAT_CODE', 'STAT_NAME', 'GOV_ORG_CODE', 'GOV_ORG_NAME',\n", - " 'TABULATION_CATEGORY', 'TABULATION_SUB_CATEGORY1',\n", - " 'TABULATION_SUB_CATEGORY2', 'TABULATION_SUB_CATEGORY3',\n", - " 'TABULATION_SUB_CATEGORY4', 'TABULATION_SUB_CATEGORY5',\n", - " 'TABULATION_CATEGORY_EXPLANATION',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION1',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION2',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION3',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION4',\n", - " 'TABULATION_SUB_CATEGORY_EXPLANATION5', 'NO', 'TITLE',\n", - " 'TABLE_EXPLANATION', 'TABLE_CATEGORY', 'TABLE_SUB_CATEGORY1',\n", - " 'TABLE_SUB_CATEGORY2', 'TABLE_SUB_CATEGORY3', 'CYCLE', 'SURVEY_DATE',\n", - " 'OPEN_DATE', 'SMALL_AREA', 'COLLECT_AREA', 'OVERALL_TOTAL_NUMBER',\n", - " 'UPDATED_DATE', 'MAIN_CATEGORY_CODE', 'MAIN_CATEGORY',\n", - " 'SUB_CATEGORY_CODE', 'SUB_CATEGORY'],\n", - " dtype='object')\n" - ] - } - ], - "source": [ - "print(statslist.columns)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "616jD7Q5hbLL" - }, - "source": [ - "例えば、```CYCLE```(周期)というものがあるので、 \n", - "CYCLEが\"月次\"(月ごと)になっているデータだけをピックアップして、 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HJGryvLBc0ty", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "statslist = statslist[statslist.CYCLE == \"月次\"] " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tGm4W58th85l" - }, - "source": [ - "\n", - "その```TABLE_INF```(統計表ID)と```TITLE```(タイトル)だけを表示してみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "vLnBXsfgh_C_", - "outputId": "987b8b47-5564-419c-d6c5-5aeac7746081", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TABLE_INF TITLE\n", - "2 0003085562 事業所・企業等の産業(中分類)別売上高,従業上の地位別事業従事者数(月次)【2013年1月~】\n", - "5 0003191203 事業活動の産業(中分類)別売上高(月次)【2013年1月~】\n", - "7 0003085489 事業活動の産業(中分類)別需要の状況【2013年1月~2016年12月】\n", - "8 0003085521 事業活動の産業(中分類),事業所・企業等の産業(中分類)別売上高(月次)【2013年1月~12月】\n", - "10 0003094573 事業活動の産業(一部中分類),事業所・企業等の産業(一部中分類)別売上高(月次)【2013年...\n" - ] - } - ], - "source": [ - "statslist[[\"TABLE_INF\", \"TITLE\"]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xuoghPkAciH6" - }, - "source": [ - "```TABLE_INF```の数値が[統計表ID]と呼ばれるものです。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TASwyySl35Rf" - }, - "source": [ - "ではこの中から\"事業活動の産業(中分類)別売上高(月次)【2013年1月~】\"を読み出してみましょう。 \n", - "それには```read_statsdata```という関数が用意されているので、 \n", - "引数に```TABLE_INF```(統計表ID)を入力すると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "eRg7btsH35X0", - "outputId": "11cd68e4-c244-4a4f-c6d3-446426d1e0ef", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " tab_code 表章項目 cat01_code 事業活動の産業 ... 時間軸(月次) unit value annotation\n", - "0 001 売上高(収入額) 00000 合計 ... 2013年1月 百万円 27331888 NaN\n", - "1 001 売上高(収入額) 00000 合計 ... 2013年2月 百万円 27395304 NaN\n", - "2 001 売上高(収入額) 00000 合計 ... 2013年3月 百万円 35140562 NaN\n", - "3 001 売上高(収入額) 00000 合計 ... 2013年4月 百万円 28676427 NaN\n", - "4 001 売上高(収入額) 00000 合計 ... 2013年5月 百万円 28648626 NaN\n", - "... ... ... ... ... ... ... ... ... ...\n", - "5035 001 売上高(収入額) 20000 その他 ... 2021年5月 百万円 869554 NaN\n", - "5036 001 売上高(収入額) 20000 その他 ... 2021年6月 百万円 956542 NaN\n", - "5037 001 売上高(収入額) 20000 その他 ... 2021年7月 p 百万円 937055 NaN\n", - "5038 001 売上高(収入額) 20000 その他 ... 2021年8月 p 百万円 894658 NaN\n", - "5039 001 売上高(収入額) 20000 その他 ... 2021年9月 p 百万円 1005051 NaN\n", - "\n", - "[5040 rows x 11 columns]\n", - "1.1.5\n" - ] - } - ], - "source": [ - "from pandas_estat import read_statsdata \n", - "df = read_statsdata(\"0003191203\") \n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pPWScZG1e0Zu" - }, - "source": [ - "これで、データを抽出することができました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "2IdKeyZ_vLqw", - "outputId": "62fa4030-df23-453c-8bee-9d6eab523c76", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['tab_code', '表章項目', 'cat01_code', '事業活動の産業', 'area_code', '地域',\n", - " 'time_code', '時間軸(月次)', 'unit', 'value', 'annotation'],\n", - " dtype='object')" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BC5Z5beZvgZ_" - }, - "source": [ - "もう属性を少し絞ってみましょう。\n", - "\n", - "dataframeの\"事業活動の産業\"列にどんなものがあるかを抽出し、 \n", - "```set```関数を使って重複を除くと..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "J1LtPEnxvf89", - "outputId": "917711c3-64d2-4f7f-9a02-1f61220056d5", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'37通信業',\n", - " '38放送業',\n", - " '39情報サービス業',\n", - " '4*航空運輸業,郵便業(信書便事業を含む)',\n", - " '40インターネット附随サービス業',\n", - " '41映像・音声・文字情報制作業',\n", - " '42鉄道業',\n", - " '43道路旅客運送業',\n", - " '44道路貨物運送業',\n", - " '45水運業',\n", - " '47倉庫業',\n", - " '48運輸に附帯するサービス業',\n", - " '68不動産取引業',\n", - " '69不動産賃貸業・管理業',\n", - " '70物品賃貸業',\n", - " '72専門サービス業(他に分類されないもの)\\u3000(※「純粋持株会社」(平成25年1月以降)を除く)',\n", - " '73広告業',\n", - " '74技術サービス業(他に分類されないもの)',\n", - " '75宿泊業',\n", - " '76飲食店',\n", - " '77持ち帰り・配達飲食サービス業',\n", - " '78洗濯・理容・美容・浴場業',\n", - " '79その他の生活関連サービス業\\u3000(※「家事サービス業」を除く)',\n", - " '80娯楽業',\n", - " '82aうち社会教育,職業・教育支援施設',\n", - " '82bうち学習塾,教養・技能教授業',\n", - " '82その他の教育,学習支援業',\n", - " '83医療業',\n", - " '84保健衛生\\u3000(※「保健所」を除く)',\n", - " '85社会保険・社会福祉・介護事業\\u3000(※「社会保険事業団体」(平成25年1月以降)及び「福祉事務所」を除く)',\n", - " '88廃棄物処理業',\n", - " '89自動車整備業',\n", - " '90機械等修理業(別掲を除く)',\n", - " '91職業紹介・労働者派遣業',\n", - " '92その他の事業サービス業',\n", - " '95その他のサービス業',\n", - " 'その他',\n", - " 'サービス産業計',\n", - " '合計',\n", - " 'G情報通信業',\n", - " 'H運輸業,郵便業',\n", - " 'K不動産業,物品賃貸業',\n", - " 'L学術研究,専門・技術サービス業\\u3000(※「学術・開発研究機関」(平成25年1月以降)及び「純粋持株会社」(平成25年1月以降)を除く)',\n", - " 'M宿泊業,飲食サービス業',\n", - " 'N生活関連サービス業,娯楽業\\u3000(※「家事サービス業」を除く)',\n", - " 'O教育,学習支援業\\u3000(※「学校教育」を除く)',\n", - " 'P医療,福祉(※「保健所」、「社会保険事業団体」(平成25年1月以降)及び「福祉事務所」を除く)',\n", - " 'Rサービス業(他に分類されないもの)\\u3000(※「政治・経済・文化団体」、「宗教」及び「外国公務」を除く)'}" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "set(df[\"事業活動の産業\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "u0GQxlyZwJa9" - }, - "source": [ - "\"42鉄道業\"を見てみましょう。 " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QM1iHQkKwVhq", - "outputId": "5a7c4bea-f252-48c2-846a-e7c039fc4bd0", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " 時間軸(月次) value unit\n", - "945 2013-01-01 583438 百万円\n", - "946 2013-02-01 529656 百万円\n", - "947 2013-03-01 644219 百万円\n", - "948 2013-04-01 627287 百万円\n", - "949 2013-05-01 581344 百万円\n", - "... ... ... ...\n", - "1042 2021-02-01 332987 百万円\n", - "1043 2021-03-01 424911 百万円\n", - "1044 2021-04-01 402705 百万円\n", - "1045 2021-05-01 341804 百万円\n", - "1046 2021-06-01 360438 百万円\n", - "\n", - "[102 rows x 3 columns]\n", - "1.1.5\n" - ] - } - ], - "source": [ - "ndf = df[df[\"事業活動の産業\"] == \"42鉄道業\"] #dfの中の、\"事業活動の産業欄が\"42鉄道業\"のものを抽出し、ndfと名前をつける\n", - "\n", - "ndf = ndf[ndf[\"時間軸(月次)\"].str.endswith(\"月\")]\n", - "ndf[\"時間軸(月次)\"] = pd.to_datetime(ndf[\"時間軸(月次)\"], format=\"%Y年%m月\")\n", - "ndf = ndf.sort_values(\"時間軸(月次)\")\n", - "\n", - "#必要なところだけ抽出すると...\n", - "ndf[[\"時間軸(月次)\", \"value\", \"unit\"]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AS81LjUszJuv" - }, - "source": [ - "図を描いてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "t-EtOX6tzLJh", - "outputId": "97e640e4-00d7-4ee7-d57a-e1fc7933f357", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: japanize-matplotlib in /usr/local/lib/python3.7/dist-packages (1.1.3)\n", - "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from japanize-matplotlib) (3.2.2)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (2.8.2)\n", - "Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.19.5)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (3.0.6)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (1.3.2)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->japanize-matplotlib) (0.11.0)\n", - "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->japanize-matplotlib) (1.15.0)\n" - ] - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "!pip install japanize-matplotlib \n", - "import japanize_matplotlib \n", - "import matplotlib.dates as mdates" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 205 - }, - "id": "_HnkKKiyxBuT", - "outputId": "4908d995-9efd-4c91-b947-3a906b029a9d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABsYAAAD3CAYAAACuCOEWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydd1wUR//HP3t39I4UpShYsMaCglHEjijGiAWNpqiJJjGxG2J7bEnsGjUxT/QxJho1auw1ItgFC/YuiqgICha6cMDd/v4gy49ywN2xu3fuzPv1yivJ3uzsvPnO7e3ud2eGYVkWFAqFQqFQKBQKhUKhUCgUCoVCoVAoFIrUkRm6ARQKhUKhUCgUCoVCoVAoFAqFQqFQKBSKGNDEGIVCoVAoFAqFQqFQKBQKhUKhUCgUCoUIaGKMQqFQKBQKhUKhUCgUCoVCoVAoFAqFQgQ0MUahUCgUCoVCoVAoFAqFQqFQKBQKhUIhApoYo1AoFAqFQqFQKBQKhUKhUCgUCoVCoRCBwtANEApHR0fWw8PD0M2gUCgUCoVCoVAoFAqFQqFQKBQKhUKhiMyNGzdesizrXHa7ZBNjHh4e2L9/v1772tjYICsri+cWGTckOZPkykGdpQ1JrhykOVNf6UOaM/WVPqQ5U1/pQ5oz9ZU2pPkCZDmT5MpBnaUP9ZU+JDmT5MphSGcvL6/HmrbTqRQ1oFQqDd0E0SHJmSRXDuosbUhy5SDNmfpKH9Kcqa/0Ic2Z+kof0pypr7QhzRcgy5kkVw7qLH2or/QhyZkkVw5jdKaJMQ0oFJIdSFchJDmT5MpBnaUNSa4cpDlTX+lDmjP1lT6kOVNf6UOaM/WVNqT5AmQ5k+TKQZ2lD/WVPiQ5k+TKYYzONDGmAZZlDd0E0SHJmSRXDuosbUhy5SDNmfpKH9Kcqa/0Ic2Z+kof0pypr7QhzRcgy5kkVw7qLH2or/QhyZkkVw5jdKaJMQ2o1WpDN0F0SHImyZWDOksbklw5SHOmvtKHNGfqK31Ic6a+0oc0Z+orbUjzBchyJsmVgzpLH+orfUhyJsmVwxidaWJMAyYmJoZuguiQ5EySKwd1ljYkuXKQ5kx9pQ9pztRX+pDmTH2lD2nO1FfakOYLkOVMkisHdZY+1Ff6kORMkiuHMTrTxJgG8vLyDN0E0SHJmSRXDuosLHvi9yBgewC813sjYHsA9sTvEe3YAI0vCVBf6UOaM/WVPqQ5U1/pQ5oz9ZU2pPkCZDmT5MpBnaUP9ZU+JDmT5MphjM40MaYBKysrQzdBdEhyJsmVgzoLx574PZgWMw1JOUlgwSIpJwnTYqaJmhyj8ZU+1Ff6kOZMfaUPac7UV/qQ5kx9pQ1pvgBZziS5clBn6UN9pQ9JziS5chijM2OMC5/xQfPmzdn9+/frtS/DMEa5IJyQkORMkisHdRaOgO0BSMpJKrfd3cod0WHRgh8foPElAeorfUhzpr7ShzRn6it9SHOmvtKGNF+ALGeSXDmos/ShvtKHJGeSXDkM6ezl5XWJZdk2ZbfTEWMacHBwMHQTRIckZ5JcOaizcCTnJOu0XQhofKUP9ZU+pDlTX+lDmjP1lT6kOVNfaUOaL0CWM0muHNRZ+lBf6UOSM0muHMboTEeMUSgUSjUwhhFjFAqFQqFQKBQKhUKhUCgUCoVCKQ0dMaYDNWrUMHQTRIckZ5JcOaizcIT7hsNUZlpqm4XcAuG+4aIcH6DxJQHqK31Ic6a+0oc0Z+orfUhzpr7ShjRfgCxnklw5qLP0ob7ShyRnklw5jNGZjhijUCiUajL6+Gj88/gfAIC9mT3m+M9BaL1QA7eKQqFQKBQKhUKhUCgUCoVCoVDIhY4Y0wFjzGAKDUnOJLlyUGdhkTEyeFp7wt7MHkGeQaInxWh8pQ/1lT6kOVNf6UOaM/WVPqQ5U19pQ5ovQJYzSa4c1Fn6UF/pQ5IzSa4cxuhMR4xRKBRKNQnaE4Q6NnUAAA/SH+DEgBOGbRCFQqFQKBQKhUKhUCgUCoVCoRAOHTGmAw4ODoZuguiQ5EySKwd1Fo58VT4SMhLQ0KEh/F398SjrEVLfpIpybA4aX+lDfaUPac7UV/qQ5kx9pQ9pztRX2pDmC4jrvCd+DwK2B8B7vTcCtgdgT/we0Y4N0PiSAmnO1Ff6kORMkiuHMTrTxJgGMjIyDN0E0SHJmSRXDuosHAmZCShkC+Fj7wM/Vz8AQGxqrCjH5qDxlT7UV/qQ5kx9pQ9pztRX+pDmTH2lDWm+gHjOe+L3YFrMNCTlJIEFi6ScJEyLmSZqcozGlwxIc6a+0ockZ5JcOYzRmSbGNGBtbW3oJogOSc4kuXJQZ+G4l3YPAOBj74NmNZrBQmGBC88viHJsDhpf6UN9pQ9pztRX+pDmTH2lD2nO1FfakOYLiOe85PIS5KpyS23LVeViyeUlohwfoPElBdKcqa/0IcmZJFcOY3SmiTEN5ObmVl1IYpDkTJIrB3UWjvvp9yFn5KhrVxcmMhO0cm6FCyniJsZofKUP9ZU+pDlTX+lDmjP1lT6kOVNfaUOaLyCec3JOsk7bhYDGlwxIc6a+0ockZ5JcOYzRmSbGNGBqamroJogOSc4kuXJQZ+G4l34P3rbeMJObAQD8Xf1xN+0uMpTiDRGm8ZU+1Ff6kOZMfaUPac7UV/qQ5iymr6HXYwJofElALGc3KzeN21mw+DDiQxx5cgQqtUrQNtD4kgFpztRX+pDkTJIrhzE608SYBlQqYS9SjBGSnEly5aDOwhGXFgcfe5/i//d39QcLFpdfXBbl+ACNLwlQX+lDmjP1lT6kOVNf6UOas1i+xrAeE0DjSwJiOYf7hsNEZlJqm7ncHL3r9MbDjIf4/Njn6LizI1bfWI20vDRB2kDjSwakOVNf6UOSM0muHMboTBNjFAqFoid5hXl4nPUYPg7/nxhr5dwKCkYh+nSKFAqFQqFQyMEYRthQKHxgDOsxUSh8ElovFI0dGkPGyMCAgbuVOxa2X4hfuvyC0wNPY3WX1fC08cTCSwvx7vZ3EX4mHDdf3TR0sykUCoVCIQ6FoRtgjMjlckM3QXRIcibJlYM6C8ODjAdgwaKhfcPibRYKCzSr0QyxKbGCH5+Dxlf6UF/pQ5oz9ZU+pDmL6cuNsOGSCdwIG6DogawYkBZfgDxnsXyNYT0mgMaXBMRyVqqUiM+IxxCfIZjXbl6pzxQyBXrW6YmedXriXto9bLizAbsf7sb2B9vR2qU1hjUahnxVPpZfXY7knGS4Wbkh3Ddc53M7jS8ZkOZMfaUPSc4kuXIYozMdMaaB/Px8QzdBdEhyJsmVgzoLw720ewCABvYNSm33d/XHtZfXkFeYJ3gbABpfEqC+0oc0Z+orfUhzFtPXGEbYkBZfgDxnsXwrWo/J1tRWlONz0PhKH7Gczz0/h5zCHHT37F5puYYODTG//XycCzuHmX4z8TL3JcadGodvor+p9tSiNL5kQJoz9ZU+JDmT5MphjM40MaYBCwsLQzdBdEhyJsmVgzoLQ1x6HExlpvCy9Sq13c/VDwXqAlx9eVXwNgA0viQgtq+hp+giLb4Aec7UV/qQ5iymrzGMsCEtvgB5zmL5hvuGw0xuVmqbjJEhIz8DM8/NRIG6QJR20PhKH7GcoxKjYKGwQLua7bQqb2dmh8+afobj/Y+jhnmNcp/r8+IDSfHl7ls81noQN7UwSXEGqC8JkORMkiuHMTrTxJgGsrOzDd0E0SHJmSRXDuosDHHpcahnVw8KWelZaf1c/QBAtOkUaXylj5i+3BRd1X1TtTqQFl+APGfqK31IcxbTt6IRNixYfHn8S1x9IfyLOaTFFyDPWSzf0HqhCKwVCADF6zEtDViKL5p9gY13N+KTI58gLS9N8HbQ+EofMZxZlsXRxKMIdAuEucJcp31ljAyv815r/EzXFx9Iia8x3LcYElLizEF9pQ9JziS5chijM02MacDOzs7QTRAdkpxJcuWgzsIQlxYHHwefctvtzezR0L4hLqRcELwNAI0vCYjpawxTdJEWX4A8Z+orfUhzFtN3bPOx5baZy80R5BmEmGcxCD0YisH/DMbxp8fBsqwgbSAtvgB5zmL6Psl+gnY12yFheAKiw6LRv35/TGszDcs6LMOl1Evoe7Av7qffF7QNNL7SRwznO2l3kJyTXOU0ihVR0YsPFW2vCFLiawz3LYaElDhzUF/pQ5IzSa4cxuhME2MaSEsT/o00Y4MkZ5JcOagz/2TlZyEpJwk+9uUTY0DRqLHLqZdRqC4UtB0AjS8JiOlrDFN0kRZfgDxn6it9SHMW09fSxBIA4GTuVDzCZmH7hVjbbS1iwmIw028mErMTMSJqBHru7Yld8bt4n46OtPgC5DmL5fs48zHi0uMQVDuo3GcD6g/A1p5b8abgDfod7IdjiccEaweNr/QRwzkqMQoMGHTx6KLX/uG+4bCQl55qSgYZvvH9Rqd6SImvMdy3GBJS4sxBfaUPSc4kuXIYozNNjGmgRo3y8zpLHZKcSXLloM78w7212tChocbP/Vz9kFOYgzuv7wjaDoDGlwTE9OXrTdXqQFp8AfKcqa/0Ic1ZTN+IJxFwMnfC+UHni0fYhNYLBQBYm1jjs6af4eSAk/gx8EcAwKTTk9BpZyesu7UOOQU5vKwjSVp8AfKcxfKNSowCgApH2Pi6+GJfn33wsvXCZ0c/w+obqwUZCUnjWzWGXoO2uogR46OJR9HSuSWcLZz12j+0XigWtF8Adyt3MGBgZ2oHNdRwMHPQqR5S+rO9mb3G7WLet+gDX98lUuLMQX2lD0nOJLlyGKMzTYxp4NWrV4ZuguiQ5EySKwd15p+49DgAqHDEmL+rPwDgfMp5QdsB0PiSgJi+4b7hkDGlLw8YMBjWeJhobSAtvgB5zmL7GvphHmnxBchzFss3rzAPJ56eQFDtIMhl8grLmchM0L9efxzuexh/dP8Dntae+D72e7TZ2gbfnPmm2uuxkBZfgDxnsXwjEyPR0L4hatvUrrCMm5UbtvfajhCvECy8tBCTz0xGXmEer+2g8a0cKazlJHSMU96k4NrLa3pPo8gRWi8U0WHRSBiegNjBsfC09sSSy0ugZtVa1yH1/syyLJZfWY40ZRpkZR5rmsnNEO4bbqCWVQ2f3yWpx7ks1Ff6kORMkiuHMTrTxJgGjDGDKTQkOZPkykGd+ScuPQ4WCgt4WHto/LyWVS14WHsgNiVW0HYANL4kIKbv+3Xfh5nMDJYKSzBg4GzhDEuFJdbcXIPrL6+L0gbS4guQ5yymrzE8zCMtvgB5zmL5xjyLQU5hDnrU7qFVeYYpmtJrW69t2N17N1iwKGRLT/Osz3ospMUXIM9ZDN90ZTpiU2LRvXbViQQLhQVWdVqFSa0mYVf8Lnxw+AOkvknlrS00vpVj6LWc3oaRrseeFk31Wd3EWElM5aaY2Goibr2+hX8e/6P1flLuz3mFeRh3ahxWXluJgfUHYnHA4uIRdjLIUMe6TvEoamOEz++SlOOsCeorfUhyJsmVwxidBUuMMQzTiWGYEyX+iWcYZgXDMC0YhjnJMMw5hmH2Mwzj8G95e4ZhdjIME8MwzHmGYVr+u51hGGbBv9uuMgzzoVBt5jDGDKbQkORMkisHdeafuLQ4+Nj7lBtZUxJ/V39cTL0o2ML3HDS+0kdM37j0OOSqcvFDux+K31Td32c/zOXmGHJ4CM4knxG8DaTFFyDPWUxfQz/MA8iLL0Ces1i+EU8iYG1ijfa12uu8byvnVlCqlBo/03U9FtLiC+jnbOjRqtVBjBifeHoCKlaFIM/y64tpgmEYjGsxDqu7rMa99Ht4/8D7uPHyBi9tIa1P6+J7+/VtJOUkafxMjLWc+HrBRegYRz2Jgoe1R4UziuhLX+++aGDfAMsuL9N6/Wqp9ucXuS8wJGII9ifsx5TWU7AkYAkGNhhYPMJuht8MxGXEIeZZjKGbWiF8rosm1ThXBPWVPiQ5k+TKYYzOgiXGWJY9ybJsZ5ZlOwPoCiAZwBIAWwGMZ1n2XQD/APju312WADjBsmx7AKMA/PHv9qEAGgB4F0BHADMYhqklVLsBwNHRUcjqjRKSnEly5aDO/HMv/R4a2DeotIy/qz9e5b1CfEa8oG2h8ZU+YvpeeH4BAODn4le8ra5dXezqvQueNp4YETUC+xP2C9oG0uILkOcspm9FDxqScpLwPOe5KG0gLb4Aec5i+KrUKkQlRqGze2eYyc30qoOvdSRJiy+gu7MxjFatDmLEODIxEs4Wzmju1Fyn/XrW6YmdITshZ+QI+ycMs87NqnYCkrQ+rY1vYlYiJpyagN77eoMBo7FMLStBH80A4O8FFyFjnFuYizPPzqC7Z3cwjOa/lb7IZXJMbjUZDzMfYlf8Lq32kWJ/vpt2F6EHQnHn9R2s7rIao98ZXepv7ejoiA8bfgg3KzcsvrRY8JdT9aWGueYRE/qsiybFOFcG9ZU+JDmT5MphjM5iTaU4DEAUAGsAaSzLXv13+28Aev/73yH//j9Ylr0OIIthmHoA3gPwP7aITAA7/i0rGGlpaUJWb5SQ5EySKwd15rnuvDS8yH2BhvYNKy3n51qUWIhNFXY6RRpf6SOm74WUC3Czcis3TairpSu29dyGVs6tMO7kOGy4s0GwNpAWX4A8ZzF9K3vQELAjAKOPj0bMsxhBH6CQFl+APGcxfC+mXsSrvFcIrhOsdx3hvuGwkFuU2iZn5Dqvx0JafAHdnY1htGp1EDrGSpUSJ5NOortn90pnYKiIJo5NsPe9vahlWQt/3v2z2glI0vp0Zb6v8l5hzvk56Lq7K/55/A++aPYF5rWbV+7cAQC1rWsLnoDga4SNkDGOfhYNpUrJ6zSKJQmuHYwWTi2w8urKCkf+lkRq/fn40+MYcHAACtlCbO+1HT3r9CxXJi0tDeYKc4xvMR5XX15FZGKkAVpaOfEZ8cgpyNGYaA6rH6ZzfVKLc1VQX+lDkjNJrhzG6Cx4YoxhGAWA8QBWAqgBoPjVXJZl8wEo/v1fBcuyJe8cngFwKbtPie2ajvU5wzAXGYa5mJaWBjMzM1hYWMDS0hKmpqawsbGBXC6Hvb09gP+f27Lsv11cXCCXy2FjYwNTU1NYWlrCwsICZmZmsLa2hkKhgJ2dHRiGKc52lq3DwcEBMpkMtra2MDExgZWVFczNzWFubg4rKyuYmJjA1tYWMpkMDg4OGutwdHQEwzCws7ODQqGAtbW13k729vaVOtnb20vOqaI42draSs6pqjg5OjpKzqmqONWsWVMwp+TCopuwlm4tK3WqZ1cPzpbOiE2JFfT75Ozs/NbGSd++Z2dnJzmnyuLE9WehnSwtLRGbGov2Hu0hl8vLOdV1q4s/g/5ESL0QzD4/G6tur4JcLue97zk6Or6VcapO3yt7zpKCU2Vxsre3F83pu07flVuY3UJugfkd5+PzZp/jfMp5DI0Yih57e2Dzg81QQsl737Ozs3sr41Sdvsd5S8mpsjg5ODgI7hTxJAKmclN0du+st1NovVCsCl5VvB6LtYk1VKwKNuY2OsWp7DnrbYlTdfpejRo1qnRydHREfEY8tj7aWunUc8biVFmcXF1dBY3ThZQLyC7IRk+vnno7OVk4oQAF5f7GuapcLL2yVKe+Z2dnZ7R9T4jvk729fTknMxszrLy6Ep12dsLGuxvxYdMPcWrAKSzotgCfNP0Ey7suh4e1Bxgw8LD2QHCdYJxLOYfNcZsFdbI1sy0XYwBwt3bXKU62traCxelY0jHYmNqgk1cnQc57crkcczvORVJOEvY+3Vtl33NwcDDavqfL98nW1hYb7m7AZ0c/g7e9NyIGRKBt7bYanbjfpc/bfo66tnWx/NpyqNQqo3FiLVh8GvUprEytMKvtLHjYFH2X3Kzc4GjmiN0Pd4M1Y3WKk5OTk1HESazznrOzs+ScKouTra2t5JyqilONGjUk52SIZ5bGct4r6+Tk5GRQJ00wQr/dwzDMBwACWZb9+t8RYBtYlu3w72dmAG6xLFufYZhHABqyLKv897OTAEYAmPvvPlH/bp8L4DHLsr9XdtzmzZuz+/fv16vNCoUChYXazd0sFUhyJsmVgzrzy8a7GzHz3EycDTtb5fQhXx7/Ejde3kB0WLQgbQFofElALN/HmY/RaVcnzGs3Dx82rHhJz0J1IaafnY6/7/+NIT5D8MO7P0Auk/PWDtLiC5DnLKZvhjIDLbe0hLWJNbILsuFm5YZw3/DihdnzCvNw4NEBbLy7EddeXoOlwhL96vXDx40+RiOHRtgTvwdLLi9Bck5yuX21hbT4Avo58/G3NhRCx5hlWXTY0QE+Dj74o/sfVe+gJfmqfPQ72A/P3zzH4b6H4WzhrNV+tE//P28K3iDmeQxOJp3EiacnkJidWFSeUaCQLV/e3cpd0OtCgJ/vktAxnnluJnY82IErH1yBucJc73q813uDRflnGgwYJAxP0Loe0vp0Sd98VT62xG3Bz9d+xsu8l+hZpye+afUN6tvXr7QONavGyKMjcSrpFDYHb0bbmm15b+f2+9sRHh0OOSOHilUVb5czciztsBT96vXTui6hYqxm1Wj7d1v4u/rjl86/8F4/B8uyGBoxFPfT7+PkgJOwMrGqsKwU+nOBugBzz8/Fpnub0KN2D6wIXAFLE8sKy5d0PpBwAGNOjsHywOU69RGhUKqU+CjiI1x7eQ1bem5Ba5fWpT6/mHIRgw4PQr+6/bAscJnW9UohzrpAfaUPSc4kuXIY0tnLy+sSy7Jtym4XYyrFLwBsAACWZeMBWDMM0+zfzz5G0TpjAHAARYkwMAzTGIANy7IPAewF8Nm/2y0B9C+xjyCYm+t/Yf62QpIzSa4c1Jlf4tLjYGNig5qWNass6+fih6ScJEEXpqbxlT5i+Z5POQ+gaH28ylDIFFjUfhG+eucrbInbgq9OfIW8wjze2kFafAHynMX0PZl0EixYbAjagIThCYgOiy71gNhcYY6B9Qdi73t7se+9fQjxCsGOBzvQc29PdN3VFeHR4dWeoou0+AK6O7/t6zEJHeNbr28hKScJwbX1n0ZRE6ZyU6zouAJZ+VmYGj1V6ynRxO7Te+L3VHsNqeoe2/M3TwRsD8Du+N24n34fa2+uxUcRH6HllpYYeXQkdj7YiYYODfH9u9/j9IDTWNphabmp50xkJjpPW6lPe/n4LgkZY5ZlEfUkCoFugdVKigH8rZtHynm6ZH9uv709Zp6die57umP2+dmoZ1cPu3vvxuouq6tMigGAjJFhRccVqG1TG1+d+ApJ2ZpHSepL5JNITI2ZikC3QCxqv6h4pKuVwgoqVoUHGQ90qk+oGF9/eR0vcl8INo0iB8MwCPcNx8u8l1h/Z32lZd/2/pyhzMCnUZ9i071N+LLZl1jdZXWlSTGgtHOIVwiaOjbFj1d+RL4qX+jmVgrLspgaPRWxqbFY2mFpuaQYALRxbYMxzcdgZ/xOndZyftvjrCvUV/qQ5EySK4cxOguaGGMYxgVAIwAlF9gZDmAtwzDRAN4HMOvf7TMBhDAMcxbAOgCf/rt9J4BkhmEuAjgJYCHLss+EbHdBQfnpGKQOSc4kuXJQZ365l3YPDR0aarWwMvfmZGyKcOuM0fhKH7F8Y1Ni4WjmiPp2VT8MYRgG37b+FrP8ZyHiSQSGRQ5DZn4mL+0gLb4Aec5i+h5/ehyOZo5o4dSiyrLNnZpjaYelOBd2DtPbTMfjrMcoUJduqz5rBJEWX0B35/kX57/V6zEJHeMjT45AxsgEefDawL4BpraZiqNPj2Lr/a1a7SNmn65uoqc6STVNx550ehKC9gRh3sV5SMlNwbDGw7C5x2ZcGXIFv3X7DR83+hieNp4IrReKBe0XFD/MN5OboVBdCDszO33/FFrB19pmQsb41utbePbmGS/9WdO6efokIEk4T5ftz8k5ydh4byMKVAX4o/sf2NpzK1o5t9KpTltTW6ztthb5qnx8cfwL5BbmVr2TFpx/fh5jTo5BsxrNsLrLagxsMBDRYdFIGJ6Amx/exBCfIfjl+i/4+drPWtcpVIyPJh6FnJGji0cXQeovia+LL7p7dsfqG6uRrkyvsNzb1p9LnqfbbmuLoD1BOPf8HBYHLMbUNlO1WoewpLOMkSHcNxyJ2YnYdn+bkE2vkp+u/YTdD3djcqvJeL/u+xWWG9diHHydfTE9ZjqeZj/Vqu63Lc7VhfpKH5KcSXLlMEZnRdVF9Idl2VQAtcpsuwqgnYayaShKlJXdzgKYLFQbNSGTiTGQzrggyZkkVw7qzB8syyIuPQ696vTSqnxjh8awNrHGhZQL6Fu3ryBtovGVPmL5Xki5gDaubbRK+nJ82uRT1DCvgcmnJ2PwP4MxxGcI1txcU63pm0iK79s4dRwfbRYrxiq1CseTjqOrR1edpvt0MHfA580+x4KLCzR+rusoYJL6NIc2zizLIuZZDNbdXofU3FSNZYQccc3xNvTpiMcRaOPSBk4WToLUP7zxcBxNPIrvL3yPdjXbwcvWq9LyYvbpihI9089Ox/VX12FtYl38j5WJFWxMbGBlYgVrE2uce34OSy4vQZ6qaFRzUk4SpsRMwZOsJ2jp3BLpynRk5GcgXZle/E9GfgYylBlIz09HfEY81Ky61LFZsLA3tcfB9w/C3dq90raH1gst7kvZBdn44PAH+OrEV9jac6tWyXp9qOg7Y0znrcgnkWDAoJtnt2rXxf19ue+wqdwUrJqFf83KR7+XRcrn6cz8TFx5cQUzz80s910Cil52qk5Sp55dPazouAIjj47EtJhpWB64XKdrybLcfn0bI4+OhIe1B/7o/ke5KQMZhsG8dvOgVCmx7MoymMvNMarZqCrrFSrGUYlRaO3SGvZm9oLUX5bJrSYjZF8I1txcgymtp2gsY4j+rO9vKZew5fpmSm4KAGBM8zEY1GCQ1scv69zJvRP8Xf3x87WfMbD+QFgoLCrYUzj2PtyL5VeXo3+9/hjTfEylZRUyBVZ2XIle+3ph0ulJ2BK8pcprVymftzRBfaUPSc4kuXIYo7OgibG3lepcxL2tkORMkisHdeaPF7kvkK5MR0OHhlqVl8vk8HX2FXTEGI2v9BHDN+VNCh5nPcbHjT7Wed++dfvC3sweI6NGYvb52cVrfXBv9QPQ6SEzKfkPteAAACAASURBVPEt+yBA37+XmPDVZrFifOXFFaQr0/V++Opm5YaknPJTQ+k6RRcpfboklTnnFeZh78O9+P3277iXfg9O5k6wMbFBVkFWubK6/q115W3o048yH+Fe+j38x+8/gh1DxsiwtMNSBO8NxqTTk/B3r7+hkFV8qyhmn64oofOm8A3+vv83sguydapPqVLix6s/lttuqbCEvZk97EztYG9mj/p29XE//b7GOjLyM6pMipXF2sQav3f7HQMODcCnUZ9iZ8jOKhOQunL95XUwYDSuuWVM5y0ukVDDvOLF0HWhZALySdYT9NjTA7POzcLarmu19nibztOVJSBYlsWjrEe4lHoJl1Iv4XLqZcSlx2nsExzPcqo/IU83z26Y3Goyll5ZiqaOTbVKVGniSdYTfHLkE1ibWOPPoD/haO6osZyMkWFxwGIoVUrMuzgPZnIzfNL4k0rrFiLGT7Of4k7aHUxvM533uiuisWNjvF/3ffxx+w+MaDwCLpYu5cqI3Z91+S1VqpTIUGYgMz8TGfkZ+D72e40J293xu/GN7zdat6GsM8Mw+Nb3Wwz8ZyDW31mP0e+M1lWrWlxMuYjwM+Hwd/XHgvYLtIqJp40nvn/3e0w8PRH/vfFfjG0xttLyb9N5iw+or/QhyZkkVw5jdKaJMQ2QtvgdQJYzSa4c1Jk/4tLjAAA+9j5a7+Pv6o+lV5YiLS8NDuYOvLeJxlf6iOF7IeUCgKrXF6uITu6dYG9ujxe5L0pt56Zv0uUBMynxXXhpocZRELPPz4aLpQsaOTSq8IEQYJjRZpVN0WWMMT729BgUjAKBboF67R/uG17qQQ/H4AaDdaqHlD5dEk3OqW9SseneJmy6uwmvla/RyKERlgQsQR/vPjj8+HC5vzUDBl83/1rQdr4NffrIkyMAwPv6YmWpZVUL37/7PcafGo9fb/xa6QM5Mft0LataGpNj7lbuiA6LhppVI6cgBzkFOcguyC71z5fHv6yw3h29dhQlwszsYGdqB1O5abkyAdsDeEmOc7hYumBD0AYMODQAwyKHYWfITt5GAZ59dhajjo2CraktclW5UKqUpT7v6tFVp/qEinFyTjJuvb6Fqa2nClJ/bZvamNRqEuZfnI9Djw+ht1dvrfZ7W87TmhIQ30Z/i6jEKOSp8nA59TJeK18DAGxMbODr4ove3r3R2rk1vjnzDZ69KZ8E4+sFhK+bf41br29hwaUFaOTYSOff3tQ3qfjoyEcoZAuxtcfWKpPPCpkCKzquQL4qH7POz4KZ3AyDfSr+fRYixscSjwGA4OuLlWViy4k4mHAQv1z/BXPfnVvuc7H7c0W/pVNjpmLzvc1FI3H/HY3LjeCtCl1HuWpybuPaBl09umL1jdUY6jNU8KlsOR5nPsbnxz6Hu7U71nRZAzO5mdb79qvXDyeSTmDF1RUIqBUAXxffCsu+LectvqC+0ockZ5JcOYzRmSbGNGBmZob8fMMu0Ck2JDmT5MpBnfnjXto9ALolxvxc/QAAsamx6FG7B+9tovGVPmL4Xki5ACuFFZo4NtG7jpe5LzVu1/XGVurxfZH7Ar/e+BXP3zzX+HlGfgaGRgwFALhYFCXIGjs2RiOHRmjk0Aj17Orh0KNDBhltxtcUXWLF+NjTY/Bz9YOtqa1e+5edosvV0hVKlRJ/3v0T/ev3h4e1h1b1SL1Pl0RTwra+fX38fvt37E/Yj0J1Ibp5dsOnTT5Fu5rtit8cLPu3drJwwqvcV4hKjMIHPh9otb6IPrwNfTriSQSaODaBp42nIPWXpG/dvjiaeBQrr65EJ/dOaO7UXGM5Mfu0v4s/9iSUXhfMQm5RvIaUjJHBxtQGNqY25fZ1t3LXmNhyt3JHG9c2VR5bU3K85LH1oa5dXazrtg5DI4bi06hPsaXnlnJTxelKVGIUvjr+FWrb1MamHpuKp5BMzklGLatasJRb4q+4vxDoHqj1tahQMT6aeBQAEFQ7iPe6OT5t8in2JezD7HOz0aFWB60ehot9ntbm5RaWZZFdkI0XuS+QmpuKF7kvMPv87HIJiHx1Pg48OgBvW2908eiC1i6t0dqlNRrYNyh17pzSegrv/bkkDMNgaYeleHjwIcacGIN97+1DHds6Wu2boczAsMhheJn7EpuDN6O+fdXr3QJF68mt6rwKo46OwtSYqTCTm1V4HSREjCMTI1HXti7q2tXltd6q8LL1wqAGg/BX3F8Y2XRkud8HsftzRb+Zeao8KGQK1LWrCzvTopcQ7MzsYGtqW/zf35z5ptyLdYDuCduKnCe3moze+3tj7a21Oo1A05cMZQZGRI2AGmr83v13vV6M/f7d73Ex5SImnJ6Ag30Oavx9A8i6vgSoLwmQ5EySK4cxOjNFS3hJj+bNm7P79+/Xa1+5XA6VSsVzi4wbkpxJcuWgzvwxNXoqIhMjcemDS1rvk1eYh+Z/NcewxsMww28G722i8ZU+Yvj23NsTzhbO2Nhjo951VPRmPfdWv7ZINb5peWlYc3MNNtzdgHxVPszkZnhT+KZcuZqWNbG0w1LcTbuLO6/v4G7aXdxPv498ddFFpIJRAAxQqC7/xpWuf2tdeZtinJSdhIAdAZjRZobeUzpp4n76ffQ/2B+1rGphR8gOrZJuUu3TZSk7kgEAZJBBDTUsFZYY1GAQhjUeBm9bb63q+/POn5h1fhbCfcMFGznWfHNzZBZklttub2aPq0Oual2PUDFOfZOKtn+3xYSWEzC+5Xje69dEhjIDwXuDYWVihQN9Dmhcl0WsPp2ck4zuu7vDy8YLGfkZ1V67BihKBCxov0DrlwiEGp0blRiFz499jo5uHbG221qYyEz0qmdP/B5MPjMZTR2bYn3Qeo0jjbMLsvFRxEe4/fo21nVfp9VIHqFi/PGRj5GUnYRj/Y/xXndJbr66ib4H+iKsfhgWBiyssryY52lN/VLBKNC2ZlvYmNoUJcLeFCXCtB1dw4BBwvAErY4t9Gjzx5mP8f6B91HTsiZ29d5VZeI3rzAPn0R+gisvrmBdt3Xo6N5R52PmFuZiRNQIxKbEYlWnVejlVX49aL5jnF2QDd8tvhjeeDim+4k3lSLH85zn6LizI/p498GywGWlPhP7uqPN1jZ4mVf+BTltrg/5OE8DlTuPPTkWRxOP4uSAk3C2cNa6Tl3JV+VjWOQwXEy9iE09NqFtzbZ613Ux5SIGHR6E0Lqh+DGw/PS/ADnXlxzUV/qQ5EySK4chnb28vC6xLFvurTjjW/XMCLCx0fw2hpQhyZkkVw7qzB/30u+hgX0DnfYxV5ijhVOL4qnq+IbGV/oI7ZuuTMfdtLto66r/zRtQ9Ga9hbz0A1QFo9D5TWSpxTdDmYEfr/yIwJ2BWHNzDYJrByOqXxTmt5tf7u9lIbfA1NZT0cGtA0Y2HYllgctw8P2DuPXRLRzpewQrO67EqGajNCbFAN1HuehKrzrlHzSZy82NMsbHnhY9dO3qqdv0YVXRwL4BVndZjYcZD/H1ia9RoC6och+x+/Se+D0I2B4A7/XeCNgegD3xe6reiQcWX15cbiSDGmrYmdrhbNhZzGk7R+ukGAB83OhjvO/9PpZdWYboZP4Tvjse7EBmQSbkTOnF7WWQIV2ZjpnnZiJfpd1bjULFODIxEixYBNcRdhrFktiZ2WFph6WIz4jHokuLNJYRq09/d+E7qFk11nRdg+iwaCQMT0B0WLTWD0tD64ViQfsFcLdyBwMG7lbuOj9sDa0XiuiwaKRNSNPp2FXR3bM75rWbhxNJJzA9Zjr0eWF1492NmHh6Ivxc/bA5eHOF0+9am1hjQ9AG1LWri8+PfY6LKRerrFuIGGflZ+Hc83OiTDvXrEYzjGw6Elvvb8XZZ2erLC/meVrTtHOFbCFinsUgPiMe5nJztHZpjY8bfYzpbaZjReAKbO6xGUf6HkEty1oa69R2dI1Q/bkkdWzrYFXnVbifcR+Tz0yutG8Xqgsx5uQYxKbE4sfAH/VKigGAhcIC67qtQ0vnlsVJkLLwHePTSaeRr87Xex3T6lLTqiaGNR6G3Q93l1sPUcz+nJWfBRWrAoPSa8doOxqRj/M0ULnzpFaToFQp8cv1X3SqUxdYlsXMczNx9vlZLGy/sFpJMaBoGsgxzcdgV/wu7Hu4T2MZqd0zVQX1lT4kOZPkymGMzjQxpoH09HRDN0F0SHImyZWDOvMDy7K4n34fDe0b6ryvn6sfbr26hTcF5UeHVBcaX+kjtO/F1KIHZNy0n/pS9sbWUmGJQrZQ52nspBLf7IJsrLq2CoE7A/HTtZ/Q0a0jIvpGYEXHFfC29dbpQYCJzAQ+Dj7oW7cvprSeAncrzetu8LVOiCbyCvMQmRgJFwsXuFm5FT8AeafGOzo/vBAjxseeHoOXjRfq2vI/vVGAWwDmtZuH08mnMevcrCofaIvZp7k3r5NyksCCLZ5mU4jkGMuyuJd2D7/f/h0jj46sMDGbmZ+p17oeDMNgQfsFqGtbF+NOjcPzHM3Tj+rDqaRTmBo9FR1qdcCi9otKfQ+XdliKL5p9gY13N+LDiA+R+ia1yvqEinHE4wjUsamj17VHdejg1gEjGo/A+jvrcSrpVLnPxejTRxOP4vDjwxjXYly1ppHkEgG6JtXKIoTzEJ8hGN9iPLY/2I4fr2geEaAJlmWx6toqzDw3E908u2F99/UVTrXFYWdmh409NqKWZS2MiBqBm69uVlpeCN9TyadQoC4QdBrFkkxoOQG1bWpj+tnpyCusfOSVmOfpyl5iiQyNxObgzVjRcQVm+M3A580+R2i9UAS4BcDHwQdTWk/R+FKNri+oCO0b6BaIaa2n4fDjw1h1fZXGMizLYlrMNEQlRmFu27no492nWse0MrHCH93/QBPHJhh9fDROJ58u9TnfzpGJkbAztUNrl9a81qsLo98ZDUuFZbnzh5j9ec75OcjIz8C4FuP0Tm7xcZ6uzNnb1rto6sl7f+Fp9lOd69aG1TdXY9v9bRjbfCwG1B/AS53jWoyDr7MvZpydobHdUrln0hbqK31IcibJlcMYnWliTAM1atQwdBNEhyRnklw5qDM/JOckI7sgGz4O2q8vxuHn6odCthBXXlzhvV00vtJHaN8Lzy/AVGaKFk4tql1XyRvbyx9cRhPHJph4eiISsxK1ruNtj29uYS7W3lyLjjs6YumVpfB39cfBPgfx3y7/LXf+4P5emZMzdXoQoGl0nj4jt3Rh3e11eJz1GD8G/oiYsBgkDE/AmOZjEJsai5NJJ3WqS+gY5xbmIuZZDLp4dClew4pvBvsMxuh3RmNL3BasvbW20rJi9mlNIxFyVblYfHmx1nVUNuIsMSsRW+O2YuzJsfDb5ofgvcH47sJ3uJ9+H5YKS431VSdha2VihdVdViO3MBdjTo7RaoReVdx6dQujj49Gffv6+LXLrxjYYGCpB3L96/fHtDbT8FPHn3Dj1Q30OdCnyt9vIWKcmZ+Js8/PIrh2sGD9uDKmtJ6C+nb1ER4djnRl6RtZMb7Ds87NQgP7BhjZdKSgx9IWoZwntJyAwQ0G4+frP2PT3U1VlmdZFvMvzsfSK0sRWjcUv3b5FeYKc62O5WzhjE3Bm2BraouPj3xcbpRJSYTwjXwSCQczB/g6+/JetyYsFBaY124eEjIT8PP1nystK+Z5WtP0pIB250q+RteI4Tuy6ciiaeCu/IioxKhyny+8tBDbH2zH+Bbj8UnjT3g5pq2pLf7s8Sfq2tXFqKOjcP75+eLP+HRWqVU4/vQ4unp0hUKm4K1eXXE0d8TIpiPxz+N/cP3l9eLtYvXnQ48OYWf8ToxpPgYTW03k5SUEfanKeVyLcQCAlVdX8nK8ktdKvlt8sejSIvTx7oNJrSbxUj8AKGQKrOy4EixYTDo9CSp16SnI3vZ7Jl2hvtKHJGeSXDmM0ZmuMUahUChacvzpcYyIGoHtvbbrPLImMz8TLf5qgXEtxmFiq4kCtZBC0Y/QA6EwkZlge8h23ut+nPkY7+1/D162XtgRsgNmcjPej2FISq7VUcuqFt6t+S5OJ5/Gi9wXCHQLxKRWk9DKuZXgx2bBorN7Z6wPWi/IsZJzktFtdzd0cu+E1V1WF29XqpQI2ReCvMI8RIRGwNrEWpDj68rRxKP47Ohn2NRjEzq4dRDsOGpWjbEnx+LQo0P4tcuv6Fmnp2DH0hbv9d5gofn63tnCGe5W7nC3di/+t5uVW/H/25nZaVzrw0RmgtbOrZGUk4TE7MTiugJqBaB9rfZoX6s9PKw9eFsnRBP7E/Zj7Mmx+KzJZ5jpP1Pvep5mP0X/g/2hkCmwK2QXalrVrLT87de38cWxL5DyJgXfv/s9BvsM1vvYurL34V6MPzUeO0N2GmxEws1XNxF6IBTBdYKxqtMq0RJ0iy4twq83fsW2ntuqPR3V20ChuhCfH/scJ5JOYHWX1ehRu4fGciq1CtPPTse2+9vwSaNPMKftHMgY3d91fZT5CGH/hEHGyLC913bUtqldXYUqKVAXoPXW1gjyDCq3HpLQTDo9Cfse7sP+PvvR2LGxqMcuC3cuUzAKFLL/Py0yX+dKYyOvMA8D/xmIR5mPsKf3HtS3rw8A+N/N/2H+xfn4uNHH+K7td7yfW17mvsQHhz/As5xnGNV0FLY/2M7rumqxKbEI+ycMqzqtwnve7/HUav3Iys9Cx50d0axGs2qtFawrz3Oeo+e+nqhjUwc7QnbovU6imPwQ+wN+v/07jvQ9UtwX9UHT9Q4DBosDFiOsQRgfTS3F7vjdmHh6Iia3moyxLcbyXj+FQqFIHbrGmA4YYwZTaEhyJsmVgzrzQ1x6HADAx173EWO2prZo7NhYkHXGaHylj5C+bwre4Oarm/Cv6S9I/XVs62BZ4DLceHUD3134Tqt93pb4lp2yLjknGbvid8HGxAZ/9/obG3ts1Doppo9zydF5HzX8CCeTTuJS6iWd69GGebHzoGbVmNFmRqntZnIzLA5YjOScZCy5tETr+oSO8dHEo7BSWMHfVZh+zSFjZFjWYRlaOrfEhFMTcO3lNY3lxOzTFY04sDGxQRePLrA2scbt17ex/s56zD4/G6OOjULIvhC02NIC72x+B9+c+abciLMCdQHOp5xHI4dGmNN2DiJDI3Fh0AWs6LgCgxoMgoe1BwD+RjJooo93HwxvPBzrbq/DoUeH9KojQ5mB4ZHDkVuYi/Xd11eZFAOAJo5NsO+9fWhbsy2mxEzBjLMzNK47JkSMIx5HwNnCWbDkujY0q9EME1tNxMFHB7H34d7i7UL26bi0OKy9uRYD6w80qqSYkM4KmQKrOq3COzXewdiTYzWey5UqJcaeHFs8VdfctnP1SooBgJetFzb32AylSomhEUPxLOdZuTJ8+15MuYjM/EzRplEsyX/8/gNbU1tMjZlabsQFhxjn6cSsREyPmQ5fZ18sClgkyLlSW8T6XTJXmGNNlzUwk5thyOEhaPd3O3it98L8i/PR0qkl5vjPESTh7mThhM3Bm2EuN8eKayt4n144KjEKJjITvddE4xMbUxt83fxrnE4+XbyentDxVbNqhEeHQ6lSYnngcqNIimnj/NU7X8FCboFlV6qXnNc0Op8FixVXV1Sr3oroV68f+tbtixVXV+By6uXi7W/LPRNfUF/pQ5IzSa4cxuhMR4xRKBSKlkw6PQkxz2JwbtA5vfafc34OtsZtxfWh12EqN+W5dRSKfkQnR+PDIx9ifff16OzRWbDjLLi4AGtursHywOXoV6+fYMfRh5Ijryp7k1ipUuJB+gPcTbuLu2l38efdP6FUKcuVc7dyR3RYtBhNLya7IBvBe4JhrjDHwT4HtZ5WSxtinsVgaMRQTGg5ARNaTtBYZs75OdhwZwP+7vV3tdeqqy4sy6L99vZo4dyi1Og2IXmZ+xKhB0ORV5iHPe/tKU4UGYK55+fijzt/lNqmaSQCy7J4mfcSSdlJSM5JRlJ2EpJykrD+znqN9TJgkDA8QcimV0m+Kh+DDw/G/fT72PfePtS10379uLzCPHwS+QmuvriKDUEb0K5WO52OrVKrsOTyEqy+uRqtXVrj186/wsXSRVcFrckrzIPvVl+E1g3F/PbzBTuONqjUKgw6PAhxaXE43Pcw3K01r3HIB2pWjcH/DMb9jPs42u8oapgb3w20kLzKe4UBBwcgPT8dO0N2op5dPQBFL7F8cfwLnE4+jf/4/Ye36SWvv7yOoRFD4Wrpim09t8HJwomXejXx3YXvsOnuJlwZcgVWJlaCHaciuBGYs/1nY0STEaIfv0BdgLBDYYjPiMeh9w9Va928t5Gll5eWW2vMXG6Ohe0XCpoQbPt3W6S8SSm3vbrXat12d0Mty1rYFFz19KdikFeYh867OsPNyg07Q3YKPrr3j9t/YO6FuZjXbh4+bPihoMfim+VXlmPltZXY994+NHdqrvP+LMvCe4O3xs+EvFbKzM9EyL4QyBgZDvY5WOW6khQKhUL5f+iIMR0wxgym0JDkTJIrB3Xmh7j0ODSwb6D3/v6u/shT5VW52Lmu0PhKHyF9z6ech4yRCT5NV7hvOPxd/TH97HTEpcVVWlbM+JYd9cW9SfzH7T9wLPEYfrn+C8aeHIugPUFosqkJeu/vjclnJleYFAOKph3Uleo6W5tYY0H7BYjPiMfKa/ysnQAUTe819/xceFh74MtmX1ZYLtw3HO7W7pgSPQV5hXlV1itkjO+k3cGzN8/Q1aOrYMcoi5OFE/7o/geUKiU+jfoUmfmZpT4Xq08/znyMHQ92wNPaE25WbpWORGAYBs4Wzmjp3BIhXiEY1WwU5rSdA3crzUkPXdcJE8LZVG6KXzr/AlOZKUYfH403BW+02k/NqjH5zGRcSLmApR2W6pwUAwC5TI6pbaZiVadVuP36Nvoc6CPoW9tnnp3Bm8I3CK4TzGu9+iCXybE8cDnUrBrDjgxD++3tNa4/xwc7HuxAbGosprWeZnRJMTG+xzXMa2BD0AYoGAUGHByAd/9+F97rvdFyS0ucTj6NxQGLeV1zrblTc/ze/XckZSfhk8hPkKHM+P+28OjLsiwin0QiwC3AIEkxAHjf+310cu+EJZeXICk7qdznQsd32eVluPryKhYFLDKKpJjY19K743eX25anysOSy9qPNteH1DepGrfrc63G8SjzEeIz4tHNs5vedfCNucIc41qMw+UXl3Hs6THBR/UuuLgA3Ty6YajPUMGOoyvaOo9sOhIOZg469z01q8bhx4fR50CfCstUZ03VqrA1tcWKwBV4mv0UI6JGVLgWrJShzwCkD0nOJLlyGKMzTYxp4NWrV4ZuguiQ5EySKwd1rj4qtQoP0h+goUNDvevgRlHEpsby1SwAZMWXW+TYdpktUTcBQsY4NiUWTRybCP7WITdNlJXCCl8e/xLZBdkVlhWzT2uaCiVXlYu5F+bi06OfYsnlJbjy4grq2NTB6HdGY1WnVYgKjcKtD2/xlkAA+HHu6N4RgxoMwv9u/q/UAuzVYePdjbiXfg8z/WZWOgrNysQKC9ovwMPMh/jp2k9V1itkjI8lHgMAdHbvLNgxNNHAvgFWd1mNhxkP8fWJr1GgLij+TIw+nVeYh69Pfg2GYfBX8F+ICYtBwvAERIdF6/Q2frhvOCzkFqW2WcgtEO4brlN7hHJ2s3LDyk4rEZceh/+c+w+0mf1i/sX5OPjoIKa3mY73675freO/5/0edvfeDTO5GQYfHoxvo78V5Hcp4nEEbExs0K6m7kk8IahtUxvveb+HB5kPitc15GtKMo60vDQsuLgAbVzaCLJGS3UR67epjm0dfNLoE6Tnp+P5m+dgwSJfnQ9TmSlMZfzPOODv6o81XdfgQfoDDI8ajpyCHAD8+t5Pv4/E7ER09+zOW526wjAMfnj3B7BgNZ47hIzvqaRTWH1zNYb4DEGIV4hgx9EFse8fKkpEVSdBpQ0VXZNVJ4ERlRgFAAbtz5oIaxAGJzMnfHH8C8HulZQqJSacngAbUxssDFgo2rqT2qBtn9Y09WRlqNQq7E/Yj157e+HL418iKz8LHzT4AOby0tfF+lwr6Uob1zYI8gjCxdSLvE8P+jZA0nMPgDxfgCxnklw5jNGZJsY0YG9vb+gmiI6YztyDbUO93ULjSwZ8OydmJyJPlafX+mIczhbO8Lb1RmwKv4kxUuJb0cgeEm4ChIpxviofl19cFnwdJg4XSxf83OlnPMp6hCnRUyp8oC1mn67sgcyOXjtwfeh1nBl4Br91+w3f+H6D97zfQ337+lDIFLwlEAD+nGe0mQEnCyeEnwnXuA6SLrzMfYkfr/yIQLdA9Kjdo8rygW6BCKsfhjU311Q5MlbIGB97egwtnFoIOs1dRQS4BWBeu3k4nXwas87NKu7jYvTpeRfn4earm1jWYVm1RiPwtU6YkM6BboGY0HICdsXvwl9xf1Vadt2tdfjt1m8Y3ng4RjUdxcvxGzk0KprK0bYu/r7/N++/S4XqQkQlRqGrZ1ejmnr5TPKZcttyVbm8jfhYeGkhsvKz8EO7H/ReO0tIxPxt2nZ/W7lt+ep8wUbXdHLvhJ86/YTrL68j9EAo76MCIxMjARg+keBp44nJrSbj+NPj2J9QetkFoeL7IvcFJp2eBB97H8zynyXIMfRB7PsHIRJU2qDpWg0AQuvqP31jVGIUGto3NIqRfyU5mHAQGQUZKFQXCnav9OOVH3H79W0sClgEZwtn3urlA1369EcNP0JNy5pYcnlJhfcjhepC7HywE0F7gjD25FioWBVWBK7A0X5HsTBgIRa2X2iQdQJvvL5Rbhufv8XGDCnPPThI8wXIcibJlcMYnY3vjsMIyMrKMnQTREcsZ2N4sE3jSwZ8O99LuwcA1UqMAUWjxmJTYqFm1Xw0CwA58a1oZA8JNwFCxfjGqxtQqpSiJcYAoF2tdvim1Tc4+OggNtzdoLGMmH26llUtjdvdrdzRxrUNbE1tK9yXrwQCwJ+znZkd5rebj3vp98qt5aErzxRoDgAAIABJREFUiy8vRm5hLmb7z9b6jeD/+P0HjuaO+Db621IjpsoiVIxf5b3ClRdXRJ1GsSyDfQZj9DujsSVuC9beWgtA+D69P2E/Nt7diFFNRyGodlC16wutF4rosGi9RpxxCO08tsVYdHTriLnn51Y4QvLQo0P4IfYHBNcOxky/mby+2W5vZo+sgvKOfPwuxabEIk2ZplVCWkyEHPERmxKLbfe34bOmn6GRQ6Nq1ycEYv42GWJ0Tc86PfGBzwe4n3Gf91GBkU8i0cKpBVwtXXlqrf6MaDwCzWs0x3cXvkO6Mr14uxDxVbNqTDo9CVkFWVjVaRUsFOUTNIZC7PsHPl8m0oWy12o1LWvC1cIVv93+DSeentC5vgxlBmJTYo1qGkWOJZeXlLv24vNe6dzzc/jfzf9hiM8Qgye5NaFLnzZXmGN8y/G4/OIyjj49WuqzfFU+tsRtQZddXTD5zGSYyc3w387/xZHQIwitFwqFTAGAn2slfXiW80zjdqFHXxoDpDz34CDNFyDLmSRXDmN0pokxDVhaWhq6CaIjlrMxPNh+2+LLxwi7t82ZD/h2vp9+HwCqtcYYAPi5+CEjPwNx6ZWvsaQLJMSXZYsezmgiKScJ556fq/Qh/NuOUDG+kHIBwP9P8ykWX77zJbp7dse82Hml1ujhELNPa3oAq8uDGr5uivl07ubZDf3q9sN/r/8Xt1/f1quOqy+u4u/7f+PTJp+ivn19rfezM7PD9+9+j9uvb+N/N/9XYTmhYnzi6QmwYA2aGAOKHgD29uqN+Rfnw3eLL2qvqy3YKPmHGQ8xLWYafJ198W3rb3mvX1+E/h7LGBlWdFwBJwsnjD4+utQDbqAo0TLh1AT4uvhiZceVkMvkvLdBqIdTEU8iYCozFX060KqoaGRHdZMdBeoCzDg7A+5W7hjfYny16hISMX+bDDW6RlOioLr3aqlvUnH15VWjeZAul8mxMGAh0pRpmBc7r3i7EPFde2tt0Qhi/1nwcajey3V8I/b9A58vE+lz7OiwaLwc+xLnBp3Dob6HUM+uHkYdG4WIxxE61XUi6QRUrMpo+nNJhEyoZ+ZnYvLpyfCy9cJMv5nVrk8IdO3TA+sPhJO5E748/iW813uj/fb2mHR6Ejrt7IRpMdPgYOaAtV3X4tD7hxDiFWI0I5kN9ftgDJDw3KMkpPkCZDmT5MphjM7GcWY3MpRKpaGbIDpiORtqbvGSvE3x5WuEnT7Ohp7ysrrwHed76ffgae1Z7QXDuZE5fE6n+Db1aX24lHoJA/8ZWGmZDw5/AN8tvhhzYgx2xe/C67zXIrVOHISKcWxKLOrZ1UMNc3EXQZUxMizrsAw1LWtizMkx5eIlVp8+k3wGx54eQ7ua7QzyoKYkfDvP8p8FezN7hJ8J1zlprGbVmH1+NpwtnDG2xVidj92zTk+E1AnByqsr8SD9gcYyQsX42NNjcLFwQdMaTQWpX1tkjAyd3TuDAYPXyteCjZLPK8zDVye+gonMBKs6r4KJzIS3uquLGN9jR3NH/Lfzf5Gam4qJpycWj8Z+kP4AI4+OhIe1B37r+lul6+NVh4oeQlVnGk+WZRH5JBKBboHVvubgm4qmJMtSZun8cLkk626tQ1x6HOa+OxeWJsZ3w8wh5vWWoUbXCHGvduxp0bqPfIxm5Ysmjk3webPPsf3BdsQ8iwHAf3yvvriKJZeWoFedXhjqM5TXuvnAEPcPhhphw8E51zCvgS3BW9DUsSm+OvEV9j7cq3UdUYlRcDJ3QkvnlkI1U28q+k2SM/Lifq4vs8/NxvM3z7E8cLnRnqd17dMHEw4iI///p55MzknGrvhdMJebY0PQBux9by+CagcZ1TpqgObfB3O5ueC/D8aA1J97lIU0X4AsZ5JcOYzRmSbGNKBQKAzdBNERy7myt1hmnptZPF2dkLxN8eVrhJ2uzsYw5WV14TvOcWlx1Z5GEShavN7V0rV4pA4fvE19WhcSMhMw+vhoDDg0AE+ynmBQg0EaFzle2H4hVndZjV5evXDu+TlMOj0Jrbe2Rv+D/fHL9V9w+/VtsCxrsGQvH8cVIsYqtQqxKbGiTqNYEjszO/za5Ve8zH2JCacmQKVWFX8mRp9+lfcKE09PRAP7Bvi9++8GfVAD8O/sYO6AH9r9gFuvb1U6cksTOx7swLWX1zC9zXTYmNrodfw5befAQmGBqTFTNU4dK0SMC9QFOJV0Cl09uhrFW70rrq4Ai9LrVvA9Sn7uhbm4m3YXPwb+aHRvCov129TSuSVm+s3E8afH0fKvlvBe743gvcFQqVXYELQBDuYOgh27okSRslCJx5mP9arz5qubSMpJQnCd4Oo2j3c0jfiY2noqvOy88MXxL/Bt9LfILsjWqc7ErESsuLoCQZ5BRjkCoyRiXm8ZanRNhcleC/2TvZFPIuFh7YGG9g31rkMIxrcYDy8bL4w9MRbtt7eH+//cebs+zMzPxLhT4+Bq6YqF7Rca3YN1QLr3D5VR0tnOzA6bgjehjUsbTDg1Adviyq/rV5YCdQFOPD2Brp7GcZ1RFk2/SaYyU9ia2mJoxFBMPDURL3Jf6Fzv/oT92P1wN8a1GGeUCUEOXfu0pqkngaL1HDu5dzLK7y1Q+veBI8QrxCD3L2JD2nmLNF+ALGeSXDmM0dn4fs2NgIoW35QyYjmH+4aXe5vZTGaG1i6tsS1uG4L3BiPsUBj2PtwLpUqYTPLbEF+WZXHr1a0Kp47T9a1NXZ0XXFpg8CkvqwufcS5QF+Bh5kNepkBhGAZ+LkXrjPHVxrehT+vC67zXmHN+DoJ2B+Fk0klMaDkBJ/qfwOKAxRoXOf7A5wP0rNMTiwMW48LgC9j33j6MazEOhepCLLm8BCH7QtDyr5aYfGay6MlevpLMQsT4Xvo9ZBVkGSwxBgDNajTDnLZzcCr5VKn1sITu0yzLIvxMODKUGfip409GseaHEM496/REb6/eWHl1JeLStJu+NUOZgUWXFqGNS5tqLUzvYumCWf6zcDH1Ijbe3VjucyF8Y1NikVWQhS4eXXivWx+EHiW/J34PtsRtweh3RhuNc0nE/G2yMbWBnJEjsyATLFioWBUK2AJcSr0k6HE1JS8mt5oMhmEw6PCgCkdMVkbEkwjIGJlRrl8D/P+Ij+ejnyM6LBpfvvMldvfeja/e+Qo7HuxAyL4Qrf/uLMtizvk5YBgGc9rOEbbhPCD29ZYhRtdUlOzNzs/W6/v0puANzjw7g+6e3Y3uIbO5whwhXiF4pXzF65pqLMtixtkZSMpOwk+dfoKdmR2PreYPqd0/aENZZ2sTa6wPWo9At0BMiZmC9XfWV7o/d53RzcN4z89lf5MWByxGTFgMxrUYhwOPDqDb7m7YdHeT1utdP8t5hhlnZ6CVcyt83fxrgQ2qh6592hhmM9KX4t/iL5+jQ60OiEqMktyMKZog7bxFmi9AljNJrhzG6EwTYxpQq7W7SJASYjmH1gtFXdu6kDPy4ou1RQGLsCNkB84POo/pbaYjNTcV40+NR/vt7bHw4kIkZiXy2gZjju/jzMf4+drPCNoThN77e1dYjgWLnnt74udrP2v10KUqZ5Zlcef1Hay8uhK99/VGypsUjeXehotEDj7j/CjzEQrUBby96erv6o/nb57jafZTXuoz5j6tC3mFefjl+i/otLMT/rz7J8IahOFE/xOY0HJC8XRS3E1A8hfJGh8SyRgZmjs1x8RWE7Gvzz5cGHQBiwMWQ6lWQsWqSpUVI9nL16hPIWLMjVo0ZGIMAIb4DEH/ev2x4uoKnEo6BUD4Pr3+znoce3oM0/2mo7FjY0GPpS1COc9tOxdWJlYIjw4vNSqvIlZcXVGUnG47p9oPMfvX64+Obh2x6NKicuc7IXyPPz0OU5kpOrh14L1ufahsBNfeh3urdWPwIP0Bpp+dDn9Xf0xuNVnveoREzN+mpZeXljvHK1VKUV7oKfu7NLbFWGztuRVqVo3Bhwfj1qtbOtUX8SQCfi5+ok9xqysl42sqN8W3rb/Ftp7bwLIswv4Jw9LLS6ucxvXIkyM4+vQoJracCHdr90rLGgNSud6qDE0P1me0mQFnS2cMOTwEBx8d1Km+M8/OQKlSIsjTeKZRLImmKfSqe324/cF27E/Y/3/snXd4VMX6gN9J74VIDS2EJgI/6QoKCkgXIiiIgoJelWsXRQX1IjZKwIIKyrUAKlIUg3RBsNCbKIi00KQjhBDSSJnfH+RwgWSz2WT37O6ZeZ8nD8nZPXO+l2/27O75zswwtMlQmlVoVpbwXIoK/flqinIO9gvmvx3+S6fqnXh1/atM3jbZ5v7L/15OgE8AN1e52ZVhlomivisF+QUxtMlQFvdczHXlruPldS/Te2Fvu+9P+TKfZ1c9S25+Lu/c/A5+Pp53p//lONqnrbBWl5SS/7T8D+k56bz929vuDsflqHbeUs0X1HJWydXAE511YawI/P09Z30GszDL+Wz2WZJTk3nouocK3f0YHRTNww0fZmXvlUy/bTrNKjRjyp9TaPttWwYtG8Tyv5czd+/cMk9J5mn5PZlxks93fE7CggTazW3HhN8mUC6oHG/e+CZv3PBGobs2A30DuaPWHYT5hzHhtwl0TOpIp6ROvLv1XZsjAopyzs3PZe2xtby24TVu/vZmun7flXe3vkuQXxARARFFtuNNHxKdmWdjis86UXWc0l6Lii0AnDadoqf1aUfJy8/jm73fcOvcW0nckkirSq1Y2mspo1uPtrlOS0mdK4RUoG+dvjZHoLq62OusOxFdkeONJzYSGxrr9ouRQgjevPFN6kbVZciKIbSa3YoqH1dx2XSXO87sYPSm0XSo2oH769/v9PZLi6tex9cEX8OrrV7l939+59Mdnxb73F0pu5i+czr31LuHhjENy3xsIQRvtX4LgBFrRlxRCHKF749//8gNlW7wmHWZihp5EegbSPXw6jz1y1NFrq9XEjJzM3n0p0cJ9gtmYtuJHnuhysz3Jk+46/ty33rR9ZjddTaBvoH0X9qf3079VqI29qXuY8/ZPR45jeLVFJXfFhVbsKjnIvrE9+GDPz6g98LeNm/gSs9J59X1r1I/uj6DGwx2dbhOwds/b5UU48L6qcdPsfqu1TzU8CHmdp9Lo2sa8dhPj/HRto9KXNhfdmgZ4f7htKzk3ptwbGHrHHEk/QhZuVkOt7f37F5Grh9J68qtGdJwSFnDcymq9OfLseUc6BvIh7d8yO1xtzN281je/u3tQn1cSsnyv5fTpkobj11j63KKcq0dVZsZnWfw7s3vcvj8YW5fcDuvb3jd5hS4n+34jDXH1jCy5UhqRtR0ccRlx9E+7a61HJ2Jv78/daPrMrD+QGbsnsGOMzvcHZJLUe28pZovqOWskquBJzp75jdpN5OV5fiHYG/HLOdlh5aRK3PpWrOrzef4CB/axralbWxbjqUf4+vdXzNz90z+9eO/EIhL63UYU10ADk0tYnZ+k5KTSNySyNH0o1QJrcKwpsNoX609Sw8u5fv937P62GryZT4NyjVgePPh9KjZ44oL1WH+YYX2N3yPpx9nyaElLDqwiPe2vse7W9+ldmRtutXsRrea3fjrzF+M3zL+0r5P/d9TRARGsOzQMn48/CNns89eurv+8caP06FaB8oHl780/dvVI13urnO3qf93ZcGZed59djc+wof4yHintFcvuh4RARFsOLGBPrX7lLk9bztnXf6aKBdUjkCfQI5mHKVxTGPevvltbqx8o902HHWuElqlyKlJy7Jmhj3y8vMI8QshPTe9zMd1do6llKw/vt5j7ngN9gumT+0+vLXpLTIyMoDSn+OLIzM3kyd+foKowCjG3TTOo6Z1cuXruGdcTxbsX3DxZopqHakVWavQc6SUjFw/kvCAcJ5r8pzTjl01rCovNHuBketHMjd57qVznrN9D5w7wL5z+7jv2vuc2m5ZMPrt1e/ht8fdzsfbP+adre+w/vh6xrYZ69C0ea+se4U9Z/cwvdN0KoVWclX4ZcbM9yZb53gzb+i52jcuIo7ZXWdz79J7GbB0AJ92/JQbKt1QbBs/HPoBgE7VO7ksTmdhK7/hAeEk3pRIh2odGL5mON3nd2dE8xHcV/++K8657259l2MZx/jglg8KTbPuqXjb562ycrlvuaByfNXpK55b9RxjNo/hYNpBXr/h9WIL83n5eaw4vIJbq97qsTm2de4AaDm7Jb1q9aJfnX4lulkkKzeLx39+nGDfYN65+R18fXydHa5TUa0/Q/HO/j7+vHvzuxdvOvl9Ipm5mYxoPuLSeWtv6l4OpR3i4eseNivcMmHLVQhBQnwCt1a9lXFbxvHZjs9YeGAhI1uOpEuNLpd8d6bsZNzmcXSq3om+dfqaGXqpcbRP2/qc5k1rdRnOz1z/DPP2zWPU+lHM7DLTo77jOBPVzluq+YJaziq5Gniis/DE+R2dQePGjeX8+fNLtW9kZCSpqalOjsizMcv5weUPsjNlJ6vuXOXQm3VOfg6tZrXiTHbhO6tjQ2NZfdfqErdlZn6LKjD5CB+EFOSRR/Xw6vSK60XPWj3LPBrpZMZJlh5ayqIDi1h/Yj35Mv+KQuLlRAZE0r5qezpV70Tb2LZF3l1/efGiYkhFsnKzCPYLZl6PeTZH8XgSzszzkJVD2J2ymxW9VzilPYAHlj/AgXMHnNKmN52zinpNCAQD6g1g1A2jSryQtaPOtoq9YX5hzO42mwblGpS4rZKQnZfN0F+HsvDAQvyEH7ky94rHA30C+eCWD7itesmmFnJ2jvef28+tc29ldOvR9K/b32ntloU2c9oUeXHK0XN8cQxfM5yZu2fyRacvPGa6PQNXv45PZpykY1JH6kXVY1bXWYVeawv2L+Dxnx/n9RteZ2D9gU49dr7Mp+/ivuw5u4dlCcuoEFLB6b6f7fiM1za8xi99fqF6eHWntessivLdcWYHQ38dys6UnfSr04+XW7xMeEB4se3M2TOHYauH8eT/PcnQJkNdGXKZcffnrWDfYEa3Hm3aBS5bviczTnLvD/dyKO0QU9pPoV1sO5tt3LHwDnLyc1hw+wJXhuoUSpLfkxkneX718/x05CfaVmlLh2odmLJ9yqX1nG6sdCNfd/napIjLjjd93nIGRfnmy3zGbxnPpG2TaFulLR/e8qHN89bmk5vps6gPE9tOpGetnmaE7DC2zh2Drx3MkYwjLD6wmAv5F2hQrgH96vSjV61eRAVGFdnWyHUjmbZzGp93/Nwj1328GtX6M5TMOV/mM2r9KKbtnMaAegN47YbX8BE+TN42mbGbx7L2rrVUDq1sUsSlp6T53XJyCy+tfYm/Uv7i1qq3clPlm/h0x6ccTT+KDz68dsNrDKg/wISIy47qffrLnV/y8rqX+fCWD+le0/ayHN6MajlWzRfUclbJ1cCdzjVr1twspWx+9XZdGCsCIYRHLgjnSsxwTruQRrOZzRhYfyCvtHzF4f3jpsYVWeQRCPYP2l/idszMr60LvaF+oXzZ+Uuuv+Z6l9zNcyrzFLd9dxtnL5wt9Ng1Qdewtu9ah+/c/PP0n9y5+E4alGvAjM4zCPQNdFa4LsGZeW4/tz11o+vy0a0fOaU9gI+2fcSYzWPY2G8j5YPLl6kts89ZRY2CLOrCY25+LgfTDrL37F72pu4lOTWZ+fvnF7nmiKPFj9I4Xx33ffXvY+pfUzmfc57POn52aYrLsnI+5zxDVgxh1bFVF9flCC5/xXEfvO5Bvkv+jm2nt/F448d55vpn7N5V7Owcz9o9ixfWvMDyhOXUjqrttHbLgrPO8bZYcnAJQ1YO4ZGGjzC8+fAyt+dszHgdf7P3G55b9RyvtnqVQdcOurQ9IyeDDt91IDoomvk95rvkLvfk1GS6zutKx2odmXTrJKf7Dlg6gOMZx1l+x3KntelMbPlm52Xz7tZ3+Xj7x1QOqcyEmyfYHFW0K2UXvRb0okn5JnzZ6UuPH43gqe9NrqI439NZpxn4w0D2nt3L++3eL3KqxBMZJ2g1uxXPNnmWJ/7vCVeHW2ZKml8pJV/u+pJR60cVukkkyDeIMa3HeM3d+ap9RyzOd+bumby09iXqRNXh846fF1koGLNpDJ/8+Qlb+m+xOU27J1DcuSM1O5V5++Yxe+9stp/eToBPAJ1rdKZvnb60qdyG7/d9T+KWxEvf99pVace0TtPcqVNiVOvP4Nh5a8zmMXy8/WNaVGjBkfQjHE0/ir+PP4ltEr3inOVIfnPzc5n611TGbRrHBXnhisfMvsmkLKjep/Py8+gxvwfnLpxj+R3LCfYLtrO396FajlXzBbWcVXI1cKezLow5QLly5ThzxvE1H7wZM5zn7ZvHU788xTddv6F5xUJ90S62ikyVQiqxru+6ErdjZn5dfaHX7GMvPLCQx356jL51+jK29ViPHqLvrDxn5WbR4KsGPN74cafenW/cRTv5lsnFTi1aEszs00XdWRvkG8RjjR+jenj1S0Wwval7OXDuwBVFsEohlTiecbzIdh3tl85yPnL+CAN/GMiR9CNMvmUy7au1L1N7p7NOM3jZYP488yfj2oyzOVVmVm4WI9ePZNaeWdxc5WYmtp1IdFC0zXadneNnf32Wn478xKZ+mzzmdWzrHB/mH8Zv/X8r0zRMR9OP0nVeV2qE1+Cbbt8Q4BtQllBdghmvYyklg5cPZv2J9SzttfTSyKrxW8bzwR8flPr9uaR8+MeHJG5JpFxgOVKyU5xWvDifc54mXzfhgQYPeGTRE+znd/PJzQz9dSiH0g7xQIMHGNZ0GEF+QZceT89Jp+eCnqRmp7Ko5yKvGLmt2udpe76p2akMWj6IP/75g7dvfptetXpd8fgXO7/glXWv8EOvH6gbXdfV4ZYZR/PbclZLTmaeLLTdmaOCXY3u01fyy5FfePSnRwn1D+XTDp8Wmm6ww3cdqBxSmS87f+nqUJ2CPd8/T//JnL1z+C75O1IvpBIVEMX5nPNXFHy9qdirWn8Gx5yllPx75b9ZcmjJFdu9pVBUmvzeMPuGIr+rect5WvdpWH98Pf2W9OPp65/m6eufdmNkrkG1HKvmC2o5q+Rq4E5nW4Wxks1ZpRiqdUwwx3nxwcVUCK5A0wpNS7V/UYujAvgJPzJyMkrcjpn5tbW2hRlrXrji2N1rdueJxk8we89spv41tdTtmIGz8pycmky+zKdedD2ntGfQKKYRQb5BbDixocxtmdmnE7ckFpqOMCsviwm/TeCpX55i0rZJ7ErZRc3wmjzY4EHG3zSepO5JbLtnG+v6riM2NLbIdh3tl85yjg2LZU63OdSNqstDKx5ibvLcUrd1+Pxh7lp0F7vO7mJK+ynFrh8X5BfE2DZjGd16NOuPr6fH/B5sP73d5vOdneMNJzbQomILjymKQdHneF/hy/mc89y16C4OpR0qVbt5+Xk8/cvT5ObnMrHdRI8sioE5r2MhBG+1fgtf4csLq19ASsmBcweYsn0Kd9S6w6VFMbhYHBcIzmSfQSIvrSOXlJxUpnZXHV1FTn4O7auWrbDtSuzlt1mFZizuuZgB9Qfw6Y5P6TG/BxO3TqTNnDbETY2j+azmJKcmM7HdRK8oioF6n6ft+UYGRvJFpy9oUbEFT//yNLN2z7ri8R8O/UBcRFyZp9Y2C0fzeyrzVJHbj6YfdUY4pqD79JW0jW3LN92+wVf40ndxX1YeXnnpsX2p+0hOTaZj9Y6uDtNp2PO9LuY6Xm31Kuv7rmdi24lk5mUWGgWZlZdF4pZEV4bpNFTrz+CYsxCCbae3FdqemZfpFTkuTX5PZJwocru3nKd1n4ZWlVrRvWZ3Ptr2EUfOF71+ojejWo5V8wW1nFVyNfBEZ10YK4KYmBh3h2A6rnbOyMngp8M/0aVGlxKvIXQ1CfEJjG49mtjQWASC2NBY/tXgXxzNOMqTvzxJXn5eidoxM7/Dmg7DV1w51VGwbzDDmg4z5dhXX2R2xrGfafIMt1W7jTc2vsGqo6vK1FZRJCUnXboQ2GZOm1JfMHVWnnef3Q1A3Sjn3r0d4BvA9eWvZ+PJjWVuy8w+XdwXox96/cCOATtY0XsF/+3wX15s/iJ31r6T68tff2n9CWf1S2c6xwTF8HWXr2lVqRVDfx3KZzs+c7iN3Sm76bOoD/9k/cOXnb6kQ7UOJdqvf93+zO46G4mk98LezN4zu+gYneh7LP0Yf5//m5YVWzqtTWdQ1Dl+wk0T+KDdBySnJtPt+26lOh988McHbDixgddvfJ2aETWdH7iTMOt1XCW0CiOaj2Dt8bU0+boJt8y9hZz8HJqUb+LyY7/929uFRjI74wLTj3//SERABM0qNCtTO66kJPkN8Q/h9RteZ/pt0zmZcZK3t77NkfQjSCSZuZn4CT9OZhQeceOpqPZ5uiS+Yf5hTO04lXax7XhhzQt8vuNz4OJosrXH1tKpeiePumGhOBzNrztvFnMWuk8Xpn50fb7r/h1xEXE8+OODPPfrc7SZ04b23128USFf5rs6TKdR0vwG+QXRs1ZPLuRdKPJxbykiqNafwXFnW7n0hhyXJr/efp7WffoiI5qPQCIZvWm0GyJyLarlWDVfUMtZJVcDT3TWhbEiOH36tLtDMB1XO/985Gey8rLoUqNLmdpJiE9g9V2r2T9oP6vvWs3LLV9mVKtRLP97OaM2jCrRXKVm5vfm2JsRCEL8Qi5d6DVr6oWiLjI749g+wod32r5DfGQ8j/30GAfOHXBOwPxvmj7jQmBZRhM4K8+7z+7G38ffJRfUW1ZsyY4zO0i7kFamdszs07a+GMWGxlI3uq7dteec1S+d7RzmH8ZnHT6jS40uvLbhNSZsmVDiuY83n9zMXYvvQkrJ7K6zHV6r7Pry1zP/9vm0qNiC51c/z4g1I8jOy77iOc70NUYpelphDAqf4xPiE+gR14PFvRZTL7oeT//6NEN/Hcr5nPMlam/TiU289/t7JNRKoHd8bxdHXzbMfB0H+wXjg8+ldSiNL89lHbn2dHjSAAAgAElEQVRlD1dcYMqX+aw8vJJ2se3w8/ErdTuuxpH8to1tS6h/aKHtuTLXK+5SN1Dt83RJfYP8gvi4/cd0qdGFURtG8fjKx7ll7i3kylzm7p3r8tehs3A0v666YctMdJ8umoohFZnddTb1o+rzTfI3V0yLnLg50bJ92tuLCKr1Z1Arx6XJr7efp3WfvkhsWCxDGg5hwYEFrD++3g1RuQ7VcqyaL6jlrJKrgSc62y2MCSF2CCFW2PhZKYT40YxAzcQTK5iuxtXOiw4uolxgOZdciB1YfyAPX/cw03dO59Mdn9p9vpn5nfbXNHJlLt/3+P6KC71mYVxkPvfsOaceO8w/jE86fIIQgodWPFTmwo5BUdP0lXY0gdNGjKXsplZErTKtb2SLFhVbkC/z2Xxyc5naMbNP94zrWWibo1+Yiip+OIornIP8gviw3Yf0q9OP9/94n5fWvmR3JOrKwyu5d+m9lAsqx7fdvqV+dP1SHTsmKIZpt01jSMMhzNg9g76L+15RLHCm74YTGwjzD+Pa6Gud1qazudq3alhVZnWZxZP/9yRJ+5Lo/n13fv/n92LbSM1O5alfnqJqWFVev+F1V4brFMx8HY/fMp58rryL34ypgVxxgWnb6W38k/UPHaqWbJSmu3A0v7bWY/SGu9QNVPs87YhvoG8gH7T7gGblm7Hg4AJSslMAOJV1yinTi5qBo/l11Q1bZqL7tG1C/UMv3WxxOd4y7Rw4nl9vLyKo1p9BrRyXJr/efp7Wffp/DGk0hCqhVXh1/aslnlnJG1Atx6r5glrOKrkaeKJzSUaMJUsp29v4uRUo+eJOXoInVjBdjSuds3KzWPH3CjrX6Oyyu7lfbP4i3Wp0482Nb7L4wOJin2tWfjNyMpi+czq3VbuN2lG1TTmmLVzhXD28OpNumcS+1H088+szTpkqxZmjCZzlvOvsLupGO3caRYOm5ZviK3zLPJ2iWX36fM55vt//PeWDylMltIpbvzC5ytnXx5cxrcdcKlA9+cuTNqfKmZs8l3/9+C9qR9VmTtc5VAuvVqZj+/n48WLzF/no1o9ITk3m9vm3M27zONrMaUPEhIgyTS16ORtPbKRZhWb4+vjaf7KbKCq/fj5+DG0ylJldZpKTn0OfhX2YvG1ykeceKSUj1o7gRMYJ3mv73qWpPD0ZMz97uGtqIFtrhcZFxJV4hObV/Pj3j/gIH9rFtitreC5FpbvUDVT7PO2or5+PH8cyjhXa7i2FhNLk1xk3xrgT3aeL51h64f4M3lPQd9TX24sIqvVnUCvHpc2vN5+ndZ/+H8F+wYxoPoK/Uv5i5p6ZJkflOlTLsWq+oJazSq4GnuhstzAmpby9LI8LIaoLIZIKRpgtE0I0FkL8nxDiZyHEOiHEfCFEdMFzo4QQ3woh1ggh1gshri/YLoQQowu2bRVC3OuIpKNER0e7snmPxJXOq46tIj03vczTKBaHj/Dh7Zvfpkn5Jjz969PFjsAxK7+z9szibPZZhjQaYsrxisNVzq0rt+Y/Lf/D8r+XM+G3CaVuJyc/hy92foGg6HU1JJIBSwew5OAScvJzStSmM5zTc9I5fP4w9aLqlbmtogj1D6VhTEM2nihbYcysPj1602iOZRzjo/YfseauNW79wuRKZyEELzZ/kRHNR7DwwEIe/PFB0nPSr3jOJ39+wtBfh9KqUiu+7vw11wRf47Tjd6nRhaTuSfgKXyZtm+SUqUUNUrJS2H12t0dOo3g5xeW3ZcWWLO65mNuq38bYzWMZ+MPAQouFz9k7h4UHFvJMk2dMWTvLGZj52cNdRZeiLjC1r9qeVcdW8cq6V0p1g8XKwytpWr4p0UGe/dnN0fx6813qBqp9ni6NrzcXElTLL6jn7Kivtxf0S5Nfby4iqNafQa0c6/yqQXHO3Wt2p1XFVozfMp7U7FQTo3IdquVYNV9Qy1klVwNPdC52+I4QYhBQ3cbDElglpVxp5xiTgWeklLuFEOWBfGAV0F9KuVUI8SjwGvAEkAj8JKV8XwjRGJgGNAHuAeoANwDhwDohxAopZdHfJstIaqo13jQcwZXOiw4sIiIgghsr3eiyY8DFadD+2+G/9F7Ym4d+fIjvun9HjYgahZ5nRn5z8nP45M9PaFGhBc0qNHP58ezhSuf76t/HzpSdfPjHh9SLqkfPWoWn2rOFlJIVh1fw1qa3SE5NJj4insPph69YXynIN4j2Vduz9Z+tDFk5hIohFelXpx/96/ancmhlm207w3nP2T0A1ImqU+a2bNGiYgum/zWd7Lxsu+tz2cKMPr366Gq+2vUVD1/3sOX7tMHDDR8mKjCKF9e8SNd5XcnJz+F4xnFC/UM5n3OebjW68U7bd0qdt+KoHVUbX1F4RJcxkqC0X8qN0YmeXhizl9/IwEgm3TKJWXtm8er6V+k6ryu943uz+ODiSxeUa0fUZkhD99+YUFLM/OwxrOkwhq8ZfsXUtWYVXRLiE0iIT8DHx4f8/HyklIzdPJaPtn+ERPL6Da/jI0q2BO6JjBNsO73NK4pFjubXeI0nbknkaPpRqoRWYVjTYV5zQQ7U+zxdGt8qoVWuWI/p8u2ejmr5BfWcHfV153uLM9D5tT4qOavkaqCdr0QIwchWI+kxvwfvbH2HV1u9al5gLkK1HKvmC2o5q+Rq4InO9q48PACsvuznjst+3wq8UdzOQohKQAjwsBDiV2AUUBVIkVJuLXjaJ0D3gt+7FfyNlPIPIE0IEQ/0AKbIi5wDvil4rksICwtzVdMei6ucL+RdYPnfy+lYrSMBvgEuOcblxATFMPW2qUgkg5YPIiUrpdBzzMjvwv0LOZJ+hEcaPeLyY5UEVzoLIRjVahQtKrTg+dXPs/309hLt9+fpP7n3h3t58McHkVLy3/b/ZfkdyxnbeuwVownGtB7DpFsn8UufX/ikwydcG30t7//+Pm2+acNDPz7Ez0d+LnKUgTOcd5/dDUC9aNeMGAPIz8/nQv4F6n9Rv9RT5bm6T5/POc/zq5+nVkQthjYZ6tJjlRSzztN96/RlUP1BHDp/iGMZx5BIzuecx1f40rFaR5cUxQxcscbQhhMbCPAJoPE1jUvdhhmUJL9CCO6uezcLbl9AkG8Qn+z45NLoOonkcPph5u+fb0K0zsHMzx6eMDWQ4SuE4IVmL/DvRv/mq11f8fLal0s8cmzl4Yv3ZnWo5tnri0Hp8uutd6kbqPZ5ujS+3jwyULX8gnrOjvp6wntLWdD5tT4qOavkaqCdC9OgXAP61+3PFzu/uHTTrzejWo5V8wW1nFVyNfBEZ3uFMSGl/NH4Ac5e9vtPgL1VHKtzccTXdCnlzcAZLo4Ku3S1T0p5gf+NXPOTUmZetv8xoAIQc/k+l22/MlghHhZCbBJCbEpJSSEwMJDg4GBCQkIICAggPDwcX19foqKigP8t+nb1v35+fvj6+hIeHk5AQAAhISEEBwcTGBhIWFgYfn5+REZGIoSgXLlyRbYRHR2Nj48PERER+Pv7ExoaSlBQEEFBQYSGhuLv709ERAQ+Pj6XhhJe3Ua5cuUQQhAZGYmfnx9hYWGldoqKiirW6cKFCy5x+jPjT85dOEe/Rv1Mc6pfvj5f9viSo+lH+fcv/yY7L/sKp8zMTJfmKTQ0lCl/TqFedD161O3h1DyVtu/l5+e7tO8F+AYwq88sygWV45GVj3Aq85RNp9T8VF5c+yI95vdgZ8pOXr/xddbdt45ONToRExNDQnwCO4fsZP+g/ewcspOE+ASio6MJ8Aug93W9+arbV2wcuJHHrn+MLae2cP+y+7l17q1M3TOVlOwUlh1fRps5bYiZGEObOW348eSPpe57h7IOEeQbxPU1rndJnubtn8eMPTMA/jdV3trhLD6yuER5Wn5i+f9cv2nDkiNLXHKOmPD7BI6mH2VS50kE+wd7xHkvOzvbtNfT0kNLuZo8mcfbW9926bnc1oiByqGVS+208cRGWlRuQbB/sEe/P+Xn55fYqXZUbXx8C3+cycrLYvxv4z3GyV6eAgMDC/U9V76e7ml0Dxvv3cg/T/zDurvXMajZIKc7FXeOyMnJueQUHBzMqJtH8fj1jzNj9wxeXvcykVGRdp1WHllJ1fCqNK7Y2LQ8lfa8l52d7bF9z1Xn8qysLMs5FZen3Nxch50GXj+QxLaJVA2rikBQNawq77R/hzvr3ekRTsXl6epzlrfkqSx9T0ppOafi8hQQEOCw072N72XDPRs4/eRp1vZby+Dmgz3Kqbg8ZWdne2WeStv3cnJyLOdkL0+ZmZmWc7KVp7y8PMs52cvT1e9LVnCylycfHx+7Tm+0f4NQ/1BG/zYaKaXHOxWXJ19fX6/MU2n7XmZmpuWc7OUJsJyTrTxdfc6ygpO9PAkh3OpUFKK4xc4LRnn1M/4EvpBSti94zB+oKaW0eduBEKIu8ImUsm3B342AcUC4lPKmgm2BwJ9SytpCiANAPSlldsFjPwODuTjSbJqUcnnB9lHAQSnlZ7aO3bhxYzl//nybbsURGhpKenq6/SdaCFc5D18znO/3fc/muzcT5Bfk9PaLY8H+BTz+8+P0qNmDie0mXpqaydX5/enwTwxaPojxN43nztp3uuw4jmBWn/7z9J/0WdSH62KuY0bnGVeMpknPSefj7R8zZfsU8mU+g64dxGONHyMyMLLUx8vOy2bJwSV8tesrNpzYgC++IC4WLQyCfYNLfbfqwB8GkpKdwoLbF5Q6xuJoM6dNkVMoVQ6pzKo7V+HrU3gqPYOk5KQip6tx9p25a46t4Z6l9/DQdQ/xUouXnNZuWTHzPB03NQ5J4fdKgWD/oP0uO25ROQaoEV6D+bfPJyIgwqH20nPSaTyjMY82epRnmz7rzFCdjqP5dVeOnIlqnz2K8pVSMuG3CXzwxwf0r9ufN2980+a0ilm5WTSd2ZTe8b1548ZiJzDwCFTLL6jnrH2tj2rO2tfaqOYLajmr5GqgnW0z9a+pvLr+Vaa0n0Kn6p1MiMw1qJZj1XxBLWeVXA3c6VyzZs3NUsrmV28vdo2xAt7gYlHsCqSUOYC9sbh7gRAhRLyUMhnoDGwBugshGkoptwMDgcUFz1/AxULYR0KIa7lYQNsnhJgHPAgsF0KEAL0Bl53N8/LsDYSzHq5wzs3PZenBpbSv1t70ohhAj7geHD5/mDGbx1AtvBovNHsBcH1+P9r+EZVDKtMzruRrbbkas/r0dTHXMf6m8Tz+8+M0+boJmbmZVA6tzM1VbmbF4RWcyjxF95rdebHZi1QLr1bm4wX6BtKrVi961erF7pTd3LHwDtJzrzzJlmVNpt1nd9Omcpsyx2kLW1PiHcs4Rvz0eEL9QgkPCCfMP4zwgHDC/cMv/bvgwIJCBZOyrj91NedzzjNs1TBqRdTi2SaeVUgx8zztrjVgilpjqFP1Tny560sGLB3A9E7TiQqMKnF7W05tIU/m0aJiC1eF7DQcza83r9NjoNpnj6J8hRA82+RZBIL3/3gfKSVvtX6ryOLY+hPrycjN8IppFEG9/IJ6ztrX+qjmrH2tjWq+oJazSq4G2tk299a7l692fcUbG9+gbZW2brk+5wxUy7FqvqCWs0quBp7obK8wJqWUDxh/CCFWOtK4lDJfCPEA8N+CEWbHuVjgmlOwLR84DdxfsMsrwDQhxP2A5OIaZwDfAjcKITYVbB8jpTzmSCyaoklKTnLZwu4bTmzgTPYZutVw2XJwdnmk4SP8ff5vJm+bTLWwatxT7x6XHm/rqa2sO76Ol1u8bMqaap5Ibn4ufsKPjNwM4GLxZ9aeWdQIr8G33b6lWYVmLjlu3ei6l455NaVZkyk1O5UTGSdcur6YrYv5kQGRDG4wmLQLaaTlpJF2IY3zOedJvZDK4fOHScu5+HdRlGX9qasZu3ksR9OPMqfrHK/98OwM3LmYfEJ8AgnxCQQFBZGVlQXATVVu4t8r/03/Jf35svOXxATZHhZ+ORuOb8BX+NK0QlNXhuwW3JkjjXMRQjC0yVCEEEz8fSISyejWowsVx1YeXkmQbxA3VrrRTZFqNBqNRqPRaDSej7+PPyNbjmTADwP4dMenPNb4MXeHpNFoNB5BSUaMXY7teRdt7SDlH0D7qzZvBQpdyZBSpgCFhtnIi/M9mjZcwdfX9vRlVuLqabqOpB9h+JrhAE4pji05uIQg3yDaxbYrc1ulRQjBqFajOJp+lJfWvsSE3yZwJuuM04uABh9v/5iIgAjurnu3U9stK2b26cQtieTK3ELbc/NzXVYUM3DmqJHdZ3cDUDeqbpnjsoWti/mjWo2y2zdtTcNYKaSSU2Jbc2wNX+z8gn9d9y+aVyw02tjtmNmnixq55YrzR3Fc7tuhWgc+6fAJD6146GJxrNOXVAgptOxmITac2MB15a4jzN/zFjy9Gkfz6wk5KiuqfPYwKM5XCMEz1z8DcKk4Nqb1mEvFMSklP/79I20qt/Gaor1q+QX1nLWv9VHNWftaG9V8QS1nlVwNtHPx3FTlJjpV78SHf3xIn/g+VAp1znUDM1Etx6r5glrOKrkaeKJz0Qs3/A8hhFhR8LMSaHL530KIFWYEaTYXLlxwdwimkLgl0eZUbGUlX+az5OASbql6CyH+IWVuryz4+fjRpXoXAE5nnUYiLxUBk5KTnHac/ef2s+TgEgbWH+hxF57N7NO2Riw5cySTLYY1HUawb3Ch7b1q9XK4rV0puwDXFsYS4hMY3Xo0saGxCASxobElXiPMlmu+zCc5NblMcaXnpPP86ueJi4jzuCkUDcw+TyfEJ7D6rtXsH7Sf1XetNr3gcrVv29i2fN7xc/4+/zd3L7mb4+nHi90/Oy+b3079RstKLV0ZptMoTX7dnaOyospnDwN7vsbIsaf+7ylm75nNC6tfIF/mA7A3dS9/n/+b9tWuvu/Kc1Etv6Ces/a1Pqo5a19ro5ovqOWskquBdrbPyy1eJjs3m1u/u5W4qXG0mdPGqdfEXI1qOVbNF9RyVsnVwBOd7Y0Ya0cR64tZneDgYHJyctwdhstxZQFjy8ktnMw8SdcaXcvcljMw7ji/HGevxzRl+xT8ffwZdO0gp7TnTMzs0+5c6+fqUSOVQiohpWT6zul0q9mNhjENS9zWnrN7CPMPM2UdqdL0waJGyPSK68XMPTPptaAXE26aQOcanUsV09jNYzly/ghzus4h2K9w8c0TUOU8bVCUb+vKrZl+23QGLx9M3yV9mdF5BlXDqha5/7Z/tnEh/wItKnj++mKgXn5BPeeS+j7T5OLIsfd+f4+D5w5yOP3wpc8pF/I874O1LVTLL6jnrH2tj2rO2tfaqOYLajmr5Gqgne2z5eQWhBBk5rpm1ihXo1qOVfMFtZxVcjXwROdiR4xJKfOBfCBcSpl3+U/Bds+8YlpGzp8veu0eq2Hrgr8zCgGLDy4mwCeA9lU9425uV49iOplxkm/3fsudte+kfHB5p7TpTMzs00WNZDJzrR9j1MjBBw6ytu9aknokERkQyaBlgzh47mCJ29l1dhd1ouoghOfeG3C56+q7VvN88+eZf/t84iPjeWTlI4zbPI68fMcWt1xzbA3Td07ngQYPeOQUigaqnKcNbPm2qNiCLzp9QUpWCv0W9+NQ2qEin7f+xPpLz/cGVMsvqOfsiO8zTZ6hS/UubDi54Yr37XGbx3nNXa6q5RfUc9a+1kc1Z+1rbVTzBbWcVXI10M72KWrZC2fNGmUGquVYNV9Qy1klVwNPdC62MCaEGA6UB54UQjQSQjQVQjQWQsQB84G2ZgRpNpGRke4OwRSKKmD4CB+ea/pcmdqVUrLk4BJurnIz4QHhZWrLWdgq9lUMqeiU9qf+NZWc/BweaviQU9pzNmb26bJMD+hMDOdKoZWYdts0cmUu9y27j1OZp0q0/+6U3dSLqufKEJ3G5fmNDYtlVpdZ3F3nbiZtm8Sg5YM4k3WmRO2k56TzwuoXqBles8znAVejynnaoDjfJuWb8HWXr0nPTafv4r7sS91X6DkbT2ykTlQdygWVc2WYTkO1/IJ6zo76bju9rdA2b/oir1p+QT1n7Wt9VHPWvtZGNV9Qy1klVwPtbB93LnvhDFTLsWq+oJazSq4Gnuhsb42xTkBXLk6n+BUwCpgBtALWc7FoZjlSUlLcHYIpXF3AiAyIJF/mczLzZJna3XZ6G0fSj9ClRhcnRVp2bK3HJBCczT5bprbTLqTxxc4v6FqjK3ERcWVqy1WY3ac9Ya2fy51rR9Xm846fczLzJIOWDSLtQlqx+/6T+Q9nss9QN9p164s5k6vzG+QXxJg2YxjTegzrj6/n9vm3s/30drvtjNs8jsPnD5N4U6LHTqFooMp52sCeb8OYhszsMpOc/Bz6Lu7L7pTdlx7Ly89j88nNtKzoHeuLgXr5BfWcHfX19i/yquUX1HPWvtZHNWfta21U8wW1nFVyNdDO9nHlrFFmoFqOVfMFtZxVcjXwRGd7hTFfILrg99PAT8BJYBnwB/CEyyJzIzExMe4OwTSMAsa5Z8+xtf9WutfszrjN41h/fH2p21x0YBF+wo/bqt/mxEjLRlGjmIY0HMLprNPcv+x+zueUfjjnzN0zSctJ45FGjzgxYueiUp82uNq5SfkmTLplEjtTdjJk5RCy87Jt7rv77MWiQt0o7yiM2crv3XXvZk63OUgkvRf2Zvae2TbbWHtsLdN2TmNwg8FeMd2ean26JL71o+szs8tMhBDcveRudpzZAcBfKX+RlpPmVYUx1fIL6jk76uvtX+RVyy+o56x9rY9qztrX2qjmC2o5q+RqoJ3t46pZo8xCtRyr5gtqOavkauCJzkJKaftBIY4B/wf8G2gHLABuB34G5gLvSCk7mBCnwzRu3FjOnz/f3WF4HWkX0ui1oBdpOWksvH0hFUIqOLS/lJJb595KtfBqfNHpCxdF6TyWHVrGkJVDaFahGdNum+bwKJkLeRdo+21b4iLi+LrL1y6KUuNMvt37Lc+uepbuNbvzfrv38RGF7w/4fMfnjNowig19Nzj8GvBETmed5smfn2T1sdXcU/ceRrYaSaBv4KXHM3Iy6DyvMz7ChyW9lnj8aDFN8ew/t597ltxDRm4GDzZ4kE93fErqhVQqhlRkeLPhXrGwskZzNUnJSQxfM5zMvMxL24J9g90yVa9Go9FoNBqNRuONJCUnkbglkaPpR4kIiCD1QirvtX2PXrV6uTs0jUajcRk1a9bcLKVsfvV2eyPGdgLTrtomgS3Aa0COc8LzLDyxgulqDOfwgHAm3TqJtAtpPPnLk+Tm59rZ80p2puzkQNoButbo6oowncLl+b2t+m28c/M7bDyx0e4ooqKYt28exzOOM6TREGeH6VRU7tNX06d2H0Y0H8HCAwsZtX4URd0csPvsbqIDoykf7B2zxdrLb0xQDNNum8aQhkOYsXsG/Rb3Y+qOqbSZ04a4qXG0mNWCv8//7RVTKBqo1qcd8Y2LiGN219kIBG9vfZvUC6kAnMg4wfA1w0lKTnJVmE5DtfyCes6O+nrK+pWlRbX8gnrO2tf6qOasfa2Nar6glrNKrgbauWRcvuzFlru3cP011/PahtdIyfK8Kc6uRrUcq+YLajmr5Grgic72RoytBO4FHuLiyDF/IB94A+gJfCKlPGhCnA6jR4yVjbnJcxn661D+3ejfvNDshRLv9/Zvb/PBHx+woe8Grgm+xoUROpfZe2bz/Orn6Vy9Mx/e8iF+Pn5298mX+XRK6oS/jz+Lei5CCGFCpBpn8ebGN/nvn/9lWNNhPNb4sSse67OoD77Cl9ldbU896K0sObiEJ396kgvywhXbfYUvE26a4DUXmTX2aTW7FScyThTaHhsay+q7VrshIo1Go9FoNBqNRqPReAo7U3bS4/seJMQnMP6m8e4OR6PRaFxCaUeMrQYigd+klL2llLdLKXtJKTcCScDdLojV7ZQrV87dIZjO1c6943vTv25/Jm+bzPK/l5e4ncUHF9OyYkuPLooVld++dfoysuVIlh5aynOrniNf5tttZ8XhFexN3cuQRkM8viim+3Rhhjcfzh217iBxSyIzd8+8tF1Kye6U3dSLrufqEJ2GI/ntUqMLUUFRhbbnyTwStyQ6MyyXolqfLo3vyYyTRW4/mn60rOG4HNXyC+o5a1/ro5qz9rU+qjlrX2ujmi+o5aySq4F2Lh31o+vzSKNH+GbvN6w+6tk3T6qWY9V8QS1nlVwNPNHZXmFsCXAfMFwIcVwI8Z0QYrYQYjbwItDM5RG6gZQUzx9C7GyKch7ZciQNYxoy9NehHEo7ZLeNvWf3sufsHo+eRhFs53dwg8EMazqMpH1JvLT2pSKn2Lucj7Z9RGxoLN1rdndFmE5F9+nC+Agfxt00jnax7RixdgTLDi0D4HjGcdJy0qgbVdeMMJ2Co/k9lXmqyO3eUDAxUK1Pl8a3SmgVh7Z7EqrlF9Rz1r7WRzVn7Wt9VHPWvtZGNV9Qy1klVwPtXHqeaPwENcNrMmLtCLJys5zSpitQLceq+YJaziq5Gniic7GFMSnlKinlcKANMALYJaXsW/Bzl5SyrylRmkxERIS7QzCdopyD/IKYfMtkAB796VG7b5BLDi4BoHP1zs4P0IkUl9/HGj/GY40f4+vdX/PGxjdsFsc2ndjEppObeKjhQyWadtHd6D5dNP4+/ky6ZRKNYhrx+M+Ps/HERnal7ALwqsKYo/n15oKJgWp9ujS+w5oOI9j3yjXjgn2DGdZ0mLPCchmq5RfUc9a+1kc1Z+1rfVRz1r7WRjVfUMtZJVcD7Vx6gvyCeKv1WxxMO8h7v7/nlDZdgWo5Vs0X1HJWydXAE53tjRhDCNFbSpkvpfxMSvliUY+7JjT3kZ6e7u4QTMeWc7Xwaky4aQLbT2/ntQ2vFdvGooOLaFq+KZVCK7kiRKdhL7/PNXmOQdcO4tMdn/LO1neKfM5H2z8iOjCavrW9ozas+7RtQv1D+bzj58SGxjLwh4E8+tOjADz9y9MkJSe5MkSn4dYMzBkAACAASURBVGh+vblgYqBany6Nb0J8AqNbjyY2NBaBIDY0ltGtR3vFOnKq5RfUc9a+1kc1Z+1rfVRz1r7WRjVfUMtZJVcD7Vw2WlduzV2172LK9in8deYvp7XrTFTLsWq+oJazSq4GnuhstzAGvCmEuM/Gz/1cnFLRUgQFBbk7BNMpzvm26rcxpOEQZuyewdzkuUU+51DaIXac2UG3mt1cFaLTsJdfIQQjW47k7jp3M/H3iUzeNvmKx/ec3cPyv5dzX/37CPEPcWWoTkP36eIpF1SOAfUHkJWXRUZuBgDHMo4xfM1wryiOOZpfby6YGKjWp0vrmxCfwOq7VrN/0H5W37Xaa3KsWn5BPWfta31Uc9a+1kc1Z+1rbVTzBbWcVXI10M5l56UWLxEVGMWLa14kLz/PqW07A9VyrJovqOWskquBJzqXZA64MYAo5vGxTorFY8jJyXF3CKZjz/m5ps/x26nfGLFmBA3KNaB+dP0rHl98cDHg+dMoQsnyK4TgzRvfJCM3g7GbxxLqF8p9194HwJTtUwjyDeL+a+93dahOQ/dp+3z656eFtmXmZZK4JdHjiwmlyW9CfILHexWHan1a+1of1Zy1r/VRzVn7Wh/VnLWvtVHNF9RyVsnVQDuXnajAKP7T8j889ctTTN85ncENBju1/bKiWo5V8wW1nFVyNfBEZ7uFMSnlNDMC8SR8fEoykM5a2HP28/Hj/Xbv031+dx5d+SjzeswjPCD80uOLDyymUUwjqoVXc3WoZaak+fX18WXCzRPIzM3kP+v/w19n/mLlkZUczzhOqF8ovxz5xWsKC7pP2+do+lGHtnsSOr/WR/taH9Wcta/1Uc1Z+1of1Zy1r7VRzRfUclbJ1UA7O4eecT2ZmzyXxC2JdKreidiwWKcfo7SolmPVfEEtZ5VcDTzR2fMi8gCEKG6AnDUpiXOFkAq83+59DqYd5MU1LyKlBC4WDrb+s5WuNbq6Okyn4Eh+/X38+eCWD6gXVY+v93zN8YzjAKTnpnvNNHug+3RJqBJaxaHtnoTOr/XRvtZHNWfta31Uc9a+1kc1Z+1rbVTzBbWcVXI10M7Oa/ONG95AInll3SuXrvt5AqrlWDVfUMtZJVcDT3TWhbEiyM3NdXcIplNS5xsq3cCwpsNYeGAhU/+aCsCSg0sA6FrTOwpjjuY30DeQtJy0QtuNafa8Ad2n7TOs6TCCfYOv2BbsG8ywpsOcGZZL0Pm1PtrX+qjmrH2tj2rO2tf6qOasfa2Nar6glrNKrgba2XlUC6/Gs02eZcXhFSw8sNAlxygNquVYNV9Qy1klVwNPdLZbGBNC3HDZ772FEEGX/d3YVYG5k8DAQHeHYDqOOD/S8BE6VuvIaxteo/nM5ry24TX8fPz4/dTvLozQeZQmv8fSjxW53Rum2QPdp0tCQnwCo1uPJjY0FoEgNjSW0a1He8V0mTq/1kf7Wh/VnLWv9VHNWftaH9Wcta+1Uc0X1HJWydVAOzuXQdcOolFMI15d/yqp2akuO44jqJZj1XxBLWeVXA080bkkI8ZeAxBC3Ag8BwQKIUKEEKHAu64Mzl1kZGS4OwTTccRZCEH7qu0B+CfrHwBy83O9ZmrB0uTXm6fZA92nS0pCfAKr71rN/kH7WX3Xaq8oioHOrwpoX+ujmrP2tT6qOWtf66Oas/a1Nqr5glrOKrkaaGfn4ufjx+jWo0nJTmH0ptEuO44jqJZj1XxBLWeVXA080dlmYUwIUV8IcY3xOxcLZCHAZOCTgh9LEh4e7u4QTMdR5w//+BDJlXMNe8vUgqXJrzdPswe6T1sdlVwNVHPWvtZHNWfta31Uc9a+1kc1Z+1rbVTzBbWcVXI10M7Op2FMQ/513b+YuWcm646vc+mxSoJqOVbNF9RyVsnVwBOdha2FFAumUHwHqApsBB4HvgJeAIzV0kZLKdubEKfDNG7cWM6fP9/dYViWuKlxhQpjAALB/kH73RCR60lKTiJxSyJH049SJbQKw5oO85oRRRqNRqPRaDQajUaj0Wg0Gk1JyczNpFNSJ/x9/FnUcxFBfkH2d9JoNBoPo2bNmpullM2v3m5zxJiUch3QDjghpewtpTQWU7oJaFPwryWJiYlxdwim46izN08tWNr8eus0e6D7tNVRydVANWfta31Uc9a+1kc1Z+1rfVRz1r7WRjVfUMtZJVcD7ewagv2CefPGN9l3bh8tZrUgbmocbea0ccsyKqrlWDVfUMtZJVcDT3Qudo0xKeUF4IwQQly2ORfIK/jXkpw+fdrdIZiOo87ePLWgzq8aqOSskquBas7a1/qo5qx9rY9qztrX+qjmrH2tjWq+oJazSq4G2tl1nMk6g6/wJS0nDYnkSPoRhq8ZbnpxTLUcq+YLajmr5Grgic7FrTHWSAixEogH5hesMwawiYtTK24yIT634IkVTFfjqHNCfAKjW48mNjQWgSA2NJbRrUd7xSgqnV81UMlZJVcD1Zy1r/VRzVn7Wh/VnLWv9VHNWftaG9V8QS1nlVwNtLPrSNySSJ7Mu2JbZl4miVsSTTm+gWo5Vs0X1HJWydXAE52LW2OsCpAJzALuAz4GGnCxKGaMIKuo1xjTaDQajUaj0Wg0Go1Go9FoNBprETc1Dknha8cCwf5B+90QkUaj0ThGadYYOyqlTOFi8ew48ABwBhgqpewvpezP/wpklsITK5iuRiVnlVwNtLO1UcnVQDVn7Wt9VHPWvtZHNWfta31Uc9a+1kY1X1DLWSVXA+3sOqqEVnFou6tQLceq+YJaziq5Gniis80RY5eeIMR1Uso/C35vBByQUqYV/P1/UsrfXR+m4+gRYxqNRqPRaDQajUaj0Wg0Go1GUzqSkpMYvmY4mXmZl7YF+wZ7zXIqGo1G4/CIMQOjKFbw+7bLimI+gL9To/QQoqKi3B2C6ajkrJKrgXa2Niq5GqjmrH2tj2rO2tf6qOasfa2Pas7a19qo5gtqOavkaqCdXUdCfAKjW48mNjQWgGA/9xTFVMuxar6glrNKrgae6FzsiDEhhABWA7uAFcBCKeWZgsfGAllSypHF7D8VqA9kFWx6G9gKTAEigAvA/VLKg0KIAGAycC0QBDwvpVxe0M6TwAAgAPhSSjnenlhZRoz5+vqSl5dn/4kWQiVnlVwNtLO1UcnVQDVn7Wt9VHPWvtZHNWfta31Uc9a+1kY1X1DLWSVXA+1sDv2X9CczN5OkHkmmHhfUy7FqvqCWs0quBu50Lu2IMR8gGxjJxSLWx0KIL4QQ7wAhxRXFCqgO3CKlNH6+Bz4FPpRStgbGAR8UPHcYcLZg++3AZCFEoBCiDdAfuAloCSQIIQqJOJOQkBBXNu+RqOSskquBdrY2KrkaqOasfa2Pas7a1/qo5qx9rY9qztrX2qjmC2o5q+RqoJ3NIT4ynuTUZOwty+MKVMuxar6glrNKrgae6Gx3KkVASikPAbOBuUBN4HpgXQn2jQI+EkL8IoT4QAgRAtSXUs4vaHgR0LBgtFgP4OOC7UeAtVwshvUAPpdSXpBSXgA+A3o54Ogw2dnZrmzeI1HJWSVXA+1sbVRyNVDNWftaH9Wcta/1Uc1Z+1of1Zy1r7VRzRfUclbJ1UA7m0N8ZDxpOWmcyjxl+rFVy7FqvqCWs0quBp7oXJLCWLwQ4itgBhAGdAA6Ah2EEH3s7LsJeEVK2RY4BXxY8O/lnARiCn6OX7b9GFChmO2FEEI8LITYJITYlJKSQmBgIMHBwYSEhBAQEEB4eDi+vr6X5rSMiYkp8t/IyEh8fX0JDw8nICCAkJAQgoODCQwMJCwsDD8/PyIjIxFCUK5cuSLbiI6OxsfHh4iICPz9/QkNDSUoKIigoCBCQ0Px9/cnIiICHx8foqOji2yjXLlyCCGIjIzEz8+PsLCwUjtFRUUV6xQYGGg5J1t58vPzs5yTvTwFBwdbzslenq52s4KTrTxFRERYzslengICAiznVFyejLat5FRcnkJCQiznZC9PV8dlBafi8hQYGGg5p+Ly5O/vbzkne3kyjmUlp+LyFBQUZDmn4vJ0dZtWcLKXJ+MztZWcistTcZ9JvNWpuDxdfr62ilNxeQoMDLSck708+fn5Wc7JVp6Cg4Mt52QvT7ba8mYnT8xTfGQ8AMmpyaY7RUREKJUnPz8/yzlZMU+ldVLpmqWnOBVFSdYY+wx4WEqZc9VjgcB3QA8pZb7NRv73/AZcLIzVklLWuGz7PqAeF9cwGyyl3FuwfRowDbgVOCil/KRg+2AgTkr5n+KOV5Y1xoKDg8nMzCzVvt6KSs4quRpoZ2ujkquBas7a1/qo5qx9rY9qztrX+qjmrH2tjWq+oJazSq4G2tkcjpw/Qptv2vDGDW8woP4AU4+tWo5V8wW1nFVyNXCnc2nXGFsEVALmCSEWCSEWCyGWCiGWAEmAj62imBAiWAjxesE0iQBduTiCbJsQokvBczoCfxYU3eYB/yrYXhG4AVhdsP0+IYS/EMIXuB/43iF7B8nPt1vnsxwqOavkaqCdrY1KrgaqOWtf66Oas/a1Pqo5a1/ro5qz9rU2qvmCWs4quRpoZ3OoHFqZYL9gklOTTT+2ajlWzRfUclbJ1cATnf2Ke1BK2fXqbUKIVkBbKWWinX0zhRD/ABuEEKnAEeARoBwwVQjxCpANDC7YZSLwqRBiPSCAx6SU2cAmIcT3wAYgF5gppdzkiKSj+Pv7e+S8l65EJWeVXA20s7VRydVANWfta31Uc9a+1kc1Z+1rfVRz1r7WRjVfUMtZJVcD7WwOPsKHWhG13FIYUy3HqvmCWs4quRp4onOxhTEAIcR84PL5FgUQBRRbGAOQUr4HvHfV5jQuTo949XMvAANttDMeGG/veM4iKyvLrEN5DCo5q+RqoJ2tjUquBqo5a1/ro5qz9rU+qjlrX+ujmrP2tTaq+YJaziq5Gmhn84iPjGfzyc2mH1e1HKvmC2o5q+Rq4InO9qZSREp5u5Sy52U/twNjhRB2i2reSmhoqLtDMB2VnFVyNdDO1kYlVwPVnLWv9VHNWftaH9Wcta/1Uc1Z+1ob1XxBLWeVXA20s3nER8ZzJP0ImbnmrhWkWo5V8wW1nFVyNfBEZ7uFMQMhhK8Q4hoAKeUCKWWu68JyL+fOnXN3CKajkrNKrgba2dqo5GqgmrP2tT6qOWtf66Oas/a1Pqo5a19ro5ovqOWskquBdjaP+Mh4APal7jP1uKrlWDVfUMtZJVcDT3QuUWFMCPE48DvwjRBitxDiP0II4drQ3Ed0dLS7QzAdlZxVcjXQztZGJVcD1Zy1r/VRzVn7Wh/VnLWv9VHNWftaG9V8QS1nlVwNtLN5GIUxs9cZUy3HqvmCWs4quRp4orOQUhb/BCE6Ab2AJ6SU+UIIf+Bd4KCUcpwJMZaKxo0by/nz57s7DI1Go9FoNBqNRqPRaDQajUaj8XqycrO49strefL/nuSZJs+4OxyNRqOxS82aNTdLKZtfvb0kI8YGA89KKfMBpJQ5wDNAPyFEiadi9CZiYmLcHYLpqOSskquBdrY2KrkaqOasfa2Pas7a1/qo5qx9rY9qztrX2qjmC2o5q+RqoJ3NI8gviKphVU0fMaZajlXzBbWcVXI18ETnkowYWwEsBHYA66SUKQXbxwOTpJTmTipbQvSIMY1Go9FoNBqNRqPRaDQajUajcR6Dlg3iRMYJFvda7O5QNBqNxi5lGTGWAuwBrgdmCyHmCSE6SCmf89SiWFnxxAqmq1HJWSVXA+1sbVRyNVDNWftaH9Wcta/1Uc1Z+1of1Zy1r7VRzRfUclbJ1UA7m0t8ZDz7zu0j/+LkYqagWo5V8wW1nFVyNfBE55KMGHsR2Cil/LHg7xrAGC6OHnvP9SGWDj1iTKPRaDQajUaj0Wg0Go1Go9FonMeMXTMYsXYEv/b5lWrh1dwdjkaj0RRLWUaMTQSeF0K0AJBSHgQSgc7ODdFziI6OdncIpqOSs0quBtrZ2qjkaqCas/a1Pqo5a1/ro5qz9rU+qjlrX2ujmi+o5aySq4F2Npf4yHgAU9cZUy3HqvmCWs4quRp4orPdwpiUMgPoBzwkhFgthPgJeAF42MWxuY3U1FR3h2A6Kjmr5Gqgna2NSq4GqjlrX+ujmrP2tT6qOWtf66Oas/a1Nqr5glrOKrkaaGdzcUdhTLUcq+YLajmr5Grgic4lGTGGlPKslPJhKWUbKeUtUsp+UsrDrg7OXYSFhbk7BNNRyVklVwPtbG1UcjVQzVn7Wh/VnLWv9VHNWftaH9Wcta+1Uc0X1HJWydVAO5tLTFAMkQGRphbGVMuxar6glrNKrgae6Gy3MCaEqCKECLrs7x4F/0YLIa51ZXDuIjMz090hmI5Kziq5Gmhna6OSq4FqztrX+qjmrH2tj2rO2tf6qOasfa2Nar6glrNKrgba2VyEEMRHxptaGFMtx6r5glrOKrkaeKJzsYUxIUQE0BGIFUJMFkLUAYYWPPwQ0MfF8bmFgIAAd4dgOio5q+RqoJ2tjUquBqo5a1/ro5qz9rU+qjlrX+ujmrP2tTaq+YJaziq5Gmhn8zG7MOZuX7NRzRfUclbJ1cATne2NGBsJ9AckUB+4A0AIEcrFdcfed2l0biIvL8/dIZiOSs4quRpoZ2ujkquBas7a1/qo5qx9rY9qztrX+qjmrH2tjWq+oJazSq4G2tl84iPj+SfrH1KzzVk3yN2+ZqOaL6jlrJKrgSc62yuMTQHWAR8ARllPABOBkVJKz1s1TaPRaDQajUaj0Wg0Go1Go9FoNC4hPjIewNRRYxqNRuNM7BXGBgHNgf8A4UAD4JqC332EED1dGp2b8PX1dXcIpqOSs0quBtrZ2qjkaqCas/a1Pqo5a1/ro5qz9rU+qjlrX2ujmi+o5aySq4F2Nh+zC2Pu9jUb1XxBLWeVXA080dnPzuP/AGlAJheLaCEF+4QBUVwcPWY5Lly44O4QTEclZ5VcDbSztVHJ1UA1Z+1rfVRz1r7WRzVn7Wt9VHPWvtZGNV9Qy1klVwPtbD7Vwqvh7+NvWmHM3b5mo5ovqOWskquBJzrbGzG2DjgATAbOAZuB48BfgL+UcppLo3MTwcHB7g7BdFRyVsnVQDtbG5VcDVRz1r7WRzVn7Wt9VHPWvtZHNWfta21U8wW1nFVyNdDO5uPv40+N8BqmFcbc7Ws2pfFNSk6izZw2xE2No82cNiQlJ7kgMtehUo5VcjXwRGd7hbGbgBuBwUB2wTYJPAf0FkJc68LY3Mb58+fdHYLpqOSskquBdrY2KrkaqOasfa2Pas7a1/qo5qx9rY9qztrX2qjmC2o5q+RqoJ3dQ3xkvGmFMU/wNRNHfZOSkxi+ZjhH0o8gkRxJP8LwNcO9qjimUo5VcjXwRGd7hbGpBT8Au4B5gJBSSuB14E2XReZGIiMj3R2C6ajkrJKrgXa2Niq5GqjmrH2tj2rO2tf6qOasfa2Pas7a19qo5gtqOavkaqCd3UN8ZDyH0g6Rk5/j8mN5gq+ZOOqbuCWRzLzMK7Zl5mWSuCXRmWG5FJVyrJKrgSc6i4s1rmKeIEQ14LSUMqPg725SykUFv3eWUi51fZiO07hxYzl//nx3h6HRaDQajUaj0Wg0Go1Go9FoNJbi273f8uyqZ1mesJzaUbXdHY7SxE2NQ1L4Gr9AsH/QfjdE5NkkJSeRuCWRo+lHqRJahWFNh5EQn+DusDQuombNmpullM2v3l7siDEhhD/gaxTFAC4rivkB/s4O1BOIiYlxdwimo5KzSq4G2tnaqORqoJqz9rU+qjlrX+ujmrP2tT6qOWtfa6OaL6jlrJKrgXZ2D/GR8QCmTKfoCb5mUlJfKSX/3969x0lZ1o0f/3z3fF5YFGVXE9gSNEVFPABaaub5sGlWhqHZyfo91eMBDH3yJ/YY5GpqB0sz9ZcPHjHXB0rNLM1ARTmYaGKCYoInFAFhYU/X74+ZG5dl2OM9M9dc3+/79fLlMod7rg/XPTfDXNwzc1+dS56kfou/KK+IZWuXxTm0tMnUHPvwsZPa9mfws7nbM8ZEZCjwdWAlsEeXq2cB/+OcOzx9w+s/O2PMGGOMMcYYY4wxxhhj4re+ZT1j7hjD1LFT+c6Y72R7OOr88/1/cvnTl/P0209TW17LmuY1tHS0bL2+MK+QAimgpaOFs0adxfkHnM+g4kFZHLEfJt47kVUbV213eV15HfPOmJeFEZl06/MZYyLSAPwm+cuvAW8BbwMNyfvtloZxesHHFcx009SsqTVizWHT1BrR1my94dPWbL3h09ZsveHT1my9YdPWC7qaNbVGrDk7qoqqGFo61M4YS4Puej/Y8gGXPXUZJ845kZc/eJkrx1/JE6c/wVUTr6KuvA5BqCuvo3FiI/PPmM+XR32Z25fdzpG/P5LbX7qd9o72DJb0XqbmePXG1X26PB207c/gZ3NPZ4yNAn4O1ALfAwT4L+B2YBlwhXPuMxkYZ5/ZGWPGGGOMMcYYY4wxxhiTHmc+dCab2zdz/4n3Z3sowWvvaOeuf93F1YuuZl3LOr4y6iu9Pgvsn+//k+kLpvPUW08xevBoLj/kcg7d9dAMjNo/OzpjTBAuGnsR5+59LqUFpVkYmUmX/pwxlgccAbwG23x7X+efW2Man1dqamqyPYSM09SsqTVizWHT1BrR1my94dPWbL3h09ZsveHT1my9YdPWC7qaNbVGrDl76qvrWb5uOd2deBEHX3ozpWvvM28/w8lzT+bSJy9lz0F78oeT/8D0Q6f3+qMR96rZizuPvZMbjriBDS0b+NJDX+L/PPZ/eOPDN9Ix/H7J1BxPGTtlu+9kK84vZu+avWlc1MgRvz+CO1++k7aOtrSNQdv+DH427/CMMRH5FDAByAeOBDqSV30SeBX4MfBl59xZGRhnnw3kjDERSfsB3TeamjW1Rqw5bJpaI9qarTd82pqtN3zamq03fNqarTds2npBV7Om1og1Z8+tL97K9AXTeeaLz7Bz6c5pexxfetOtaXkTjYsaWb1xNbXltXzjk99g8ZrFPLDiAYaVDePSgy7lxOEnIiL9fozNbZu5cemN/Or5X+FwnLfPeZy373k8vPLhbR57ytgpNNQ3xFjXvUzN8RsfvsFhsw+jsrCSD1s/3Kb1mbefYebCmSx8ZyEjq0Yy9cCpHPuxYwf0+52Klv25s2w29/mMMefc34Abgdedc0c7545J/lfnnDsM2B9oSt+Qs6eqqirbQ8g4Tc2aWiPWHDZNrRFtzdYbPm3N1hs+bc3WGz5tzdYbNm29oKtZU2vEmrOnvroeIO3fM+ZLbzo1LW9i2vxprNq4Codj1cZVXL7gcuaumMv39vsej37uUU4acdKAF2lKCkr4/v7f59HPPcpnd/8s1z93PePvGc+UeVO2eexp86fRtLx3b/03LW9i4r0TGXHbCCbeO7HX9+ssU3N818t3kSd5PHTqQ7x6zqvMO2Pe1gXAg3Y5iNnHz+amo24iT/I476/n8bk/fI6n33o61jFo2J+78rG5p+8YGwHcAJwIfIbE94utS15d5pw7Ou0j7KeBnDFWUFBAW1v6Tpf0kaZmTa0Raw6bptaItmbrDZ+2ZusNn7Zm6w2ftmbrDZu2XtDVrKk1Ys3Zs+rDVUycPZErx1/JpFGT0vY4vvSm046++2qX0l14+ovxLsx09vRbTzPpT5NSfnRgVVEV5+9/PgV5BRTmFVKYV7j15+j/T7/1NLe8eAstHS1b71eaX8qMCTP6dMZZJua4taOV8feMZ/+d9+fmz9zc7W3bOtr4/fLf89PFP+WtTW9x1G5HMfXAqbz0/ksDPrNOw/7cVTabd3TGWEEP97sM+JpzrkNEyoAbnHN3A4jID0TkGufchWkYb1aVlJTw4YcfZnsYGaWpWVNrxJrDpqk1oq3ZesOnrdl6w6et2XrDp63ZesOmrRd0NWtqjVhz9gwrH0ZpQWnazxjzpTedVm9cnfLyd5rfSevjHrLrIbR3tKe8bn3LeqYvmN7nbTa3N9O4qLFPC0aZmONHXn+ENZvX8OU9v9zjbQvyCvjCJ77AKSNO4bZ/3sYNz9/AcQ8cR77k0+4Sv1/RmXWAd62+8bG524Ux59xXO/3yWTp99KJzbqaIjO3Ng4jID4HPOOeOEJH9gJ8BxcC7wGTn3FoRGQT8FhhG4nvNvuWcWyKJ80N/DByVvE+jc25Wrwv7obW1NZ2b95KmZk2tEWsOm6bWiLZm6w2ftmbrDZ+2ZusNn7Zm6w2btl7Q1aypNWLN2ZMneYysGpn2hTFfetOptrw25RljteW1WXvsYWXDePDUB2lpb6HNtdHW0UZrRyutHa1bfz7tD6fh2P4T6Xa00LcjmZjjWctmUVdex6frPt3r+5QUlHDevudx5p5nMnH2RD5s3XZxpz+LgBr25658bN7hd4xFRKRCRKqcc6uAT3e6fBxQ3ov7jwNGJH8W4C7g+865Q4EHgSuSN20EHnPOTQC+AdyavPzLwCeAQ4FPAZeKyLDe5fVPXl6Pvy3B0dSsqTVizWHT1BrR1my94dPWbL3h09ZsveHT1my9YdPWC7qaNbVGrDm76qvr074w5lNvukwePXm7y0rzS5kydkraH3vK2CmU5pdu99gXH3gxg4oHMbRsKLXltXys8mPUV9czevBo9hmyDwfsfMAOF+76uqCX7jl+df2rzHtzHmfueSb5efl9vn91cTUbWzemvK6vi4Aa9ueufGzuzYj2I7EoBTAZQEQOJ/F9Y893d0cRKQWuBX6QvGhPYK1zbkny1zeT+P4ygBOSv8Y59w9gg4jUAycBN7mE9cDs5G1TPd43ReRZEXl27dq1FBcXU1paSllZGUVFRVRWVpKfn8+gQYMAGDJkSMr/V1RUkJ+fT2VlJUVFRZSVlVFaWkpxcTEVFRUUFBRQXV2NiFBTU5NyG4MHDyYvL4+qqioKCwspLy+npKSEkpISysvLKSwspKqqiry8PAYPHpxyGzU1NYgI1dXVFBQUUFFR0e+mQYMGWVPy37ow5wAAIABJREFUviISXFNP81RUVBRcU0/zFH2pY0hNO5qn8vLy4JpCnKeBNEX7c0hN3c1TcXFxcE09zVPXY1YITd3NU0FBQXBNIc6TNfW+qbCwMLim7uap6zErhKae5qmkpCS4pu7mqbKyMrimEOepv00FBQXBNfU0T9G2Q2ra0TwVFRUF19TTPHX9cymEpp7mKbqfD02fGPwJVn24iva89rTte+Xl5Tk5T73d99o62nhk1SOU5pdSW1GLIOxeuTszD5vJ5AMmp73p9D1P52ef/Rl15XUIQl15Hb849hc01Df02HTJIZdQWrDtolpRfhFTxk7p0zyVlJSkdZ7uXHbn1o9H7O88dbcIaO9Zdj9P0Riy1ZSKOLf9qY5brxQ5BtiHxEcYLgSuA/4E/Au42Tm3ZYd3Ttz/FyTOApstIo8BlwAXOedO63Sb151zHxORt51zu3S6/O7k401P3ucfycu/DQxyzs3o7rHHjBnj5syZ091NdqioqIiWlpaebxgQTc2aWiPWHDZNrRFtzdYbPm3N1hs+bc3WGz5tzdYbNm29oKtZU2vEmrNr7qtz+Y/H/4M/nvJH9q7ZOy2P4VNvOvzyH7+kcVEjP/vUzzhl5Ck519u0vInGRY2s3riafMmnorCCeWfMo7ywxw+b2yqdzZvbNjP+3vEcuuuh/OrIX/V7O03Lm5g2fxrN7c1bLxOEaw67htM+flo399xWrs1vHLLZPHz48IXOuXFdL+/pjLHdgZ2S/+3e6faHAiO7u6OIHAsMds7N7nTx28DQTrcpBqLfkebkryO7Jm+/zX06XZ42xcXFPd8oMJqaNbVGrDlsmloj2pqtN3zamq03fNqarTd82pqtN2zaekFXs6bWiDVnV311PUBaP07Rp964vbT2Ja5bch0n7HECJ484Gci93ob6BuadMY9Xz3mVO4+7kw9aPuDaJdf2aRvpbH5o5UOs3bKWSaMmDWg7DfUNzJgwY+uZdTXFNTgcb216q0/bybX5jYOPzT0tjD1FYhGsmcR3g/3bOfefwPeAq0RkbDf3PQnYWUSaRKSJxJln/xeoEJF9krf5ConvGQOYC3wVQET2AiqdcyuAB4CvJS8vA07rdJ+02LRpUzo37yVNzZpaI9YcNk2tEW3N1hs+bc3WGz5tzdYbPm3N1hs2bb2gq1lTa8Sas2tE1QgESevCmE+9cWrtaOXCJy6kqqiKH43/ESIC5HbvQbscxJl7nsktL97C0veW9vp+6WyetWwWwyuHM2HYhAFvq/Mi4KIzF3HCHidw3ZLreOWDV3q9jVye3/7ysbnbhTHn3AvAVcAy4GDgQRGpBTYAt/PRd4+luu93nXPHOOcanHMNwFLn3GTgHOA3IjIPOAW4LHmXHwIniMiTwG+Bc5OX3wesFpFngceBmc65N/tV20vR56lroqlZU2vEmsOmqTWirdl6w6et2XrDp63ZesOnrdl6w6atF3Q1a2qNWHN2lRSUsFvFbmldGPOpN06//McveeH9F7hy/JUMKfnou5ByvfcHB/6AmuIaLpl/Ce0d7b26T7qaX177Ms+88wxfHvVl8qSnc4T6bvqh0ykrLGPqvKlZb/WZj809fcfYaGAKie/0Ol1EHgT+CpQCI51zZ2dmmH03kO8YM8YYY4wxxhhjjDHGGNOzcx45h3ea3+GPp/wx20PJGUvfW0rD3AZOGnES133qumwPJ3ZzXp3Ddx//LpcdfBnn7n1uz3dIk8ufvpw7lt3BU194ipqSmrQ8xv3L7+f8J87PeqtJrb/fMXY38EugRkTuBPYD9gdGA2NFZGh3d85VQ4YM6flGgdHUrKk1Ys1h09Qa0dZsveHT1my94dPWbL3h09ZsvWHT1gu6mjW1Rqw5++qr61mxbgUdriMt2/etd6C2tG/hwicupKakhumHTN/u+hB6Txp+Ep+u+zTXLLqG1RtX93j7dDRvat3Efa/cx/HDj0/bohhAw8gGjtrtKK5aeBUr16/s8fYhzG9f+djc08LYeOAIEgthk4HngDuBNuBG4MR0Di5b3nvvvWwPIeM0NWtqjVhz2DS1RrQ1W2/4tDVbb/i0NVtv+LQ1W2/YtPWCrmZNrRFrzr766no2t2/u1QJIf/jWO1DXL7meZR8s4ycTf0J1cfV214fQKyL896H/Tbtr57KnLqO7T62D9DTPfW0uG1o3MGnUpNi33ZmIcOX4KynMK+QH83/Q4wJxCPPbVz429/QdY5uccz8FTgP2Ba4BlgDfAP4HSN+Hx2aRjyuY6aapWVNrxJrDpqk1oq3ZesOnrdl6w6et2XrDp63ZesOmrRd0NWtqjVhz9tVX1wOk7XvGfOsdiMXvLubXS3/NFz7xBY7c7ciUtwmld/fK3Tn/gPP587//zMOvP9ztbdPRPGvZLD4x6BMcNPSg2Lfd1bDyYVx60KU8+daT3Pnynd3eNpT57Qsfm7v9jrFcZt8xZowxxhhjjDHGGGOMMem1pnkN4+4eZ9+x1IPNbZs54X9PYHP7Zh469SGqiqqyPaS0a+1o5ZQ5p7B2y1oeaXiEyqLKjDzu0veWctKck7j8kMs5Z69zMvKYzjnO+tNZPLfmOf7U8Cdqy2sz8rime/39jjGVfFzBTDdNzZpaI9YcNk2tEW3N1hs+bc3WGz5tzdYbPm3N1hs2bb2gq1lTa8Sas29IyRCqi6rtjLEeXL34alasX8FPJv6k20WxUHoBCvMKmTFhBm9vepurF129w9vF3Txr2SxK8kv43MjPxbrd7ogIMyfMpN21c8n8S3b48ZEhzW9v+dhsC2Mp+PiZl+mmqVlTa8Saw6apNaKt2XrDp63ZesOnrdl6w6et2XrDpq0XdDVrao1Yc/aJCPXV9WlbGPOttz8WvL2A377wWyaNmsThtYd3e9sQejvbf+f9mTx6Mr976XcsfndxytvE2byhZQMPrHiAk0ecnPI73NJp98rdufjAi3ls1WP8fvnvU94mtPntDR+bbWEshUGDBmV7CBmnqVlTa8Saw6apNaKt2XrDp63ZesOnrdl6w6et2XrDpq0XdDVrao1Ysx/SuTDmY29fbGrdxJS/T2G3it24ZNwlPd4+13tTuWjsRexStgvT5k+jtaN1u+vjbG5a0cSmtk1MGjUptm32xeTRkxk3dBzTF0znnU3vbHd9f1ubljcx8d6JjLhtBBPvnUjT8qaBDjVjfNynbWEshQ0bNmR7CBmnqVlTa8Saw6apNaKt2XrDp63ZesOnrdl6w6et2XrDpq0XdDVrao1Ysx/qq+t5t/ld1m1ZF/u2fezti5kLZ7Jyw0oaD2ukvLC8x9vnem8qlUWVXH7I5by09iVuefGW7a6Pq9k5xx3L7uCTNZ9kv532i2WbfZUneVw18Sq2tG/hh0/9cLuPVOxPa9PyJqbNn8aqjatwOFZtXMW0+dNyZnHMx33aFsZSKCsry/YQMk5Ts6bWiDWHTVNrRFuz9YZPW7P1hk9bs/WGT1uz9YZNWy/oatbUGrFmP9RX1wOwYv2K2LftY29vzVs9j9+99Du+utdXOXTXQ3t1n1zu7c5xexzHZ3f/LNcuvpZ/b/j3NtfF1bz43cX8c+0/mTRqEiISyzb7Y2T1SC444AIefv1h/rjyj9tc15/WqxZdRXN78zaXNbc307iocUDjzBQf92lbGEthy5Yt2R5Cxmlq1tQaseawaWqNaGu23vBpa7be8Glrtt7waWu23rBp6wVdzZpaI9bsh2hhLB0fp+hjb29saNnA1HlTGVE1gqkHTu31/XK1tzemHzqdfMnnv576r23OpIqredayWZQXlHPKyFNi2d5AfG3vr7HfTvtx2VOX8f7m97de3pfWzW2bufvlu1m9cXXK63d0uW983KdtYSyFgoKCbA8h4zQ1a2qNWHPYNLVGtDVbb/i0NVtv+LQ1W2/4tDVbb9i09YKuZk2tEWv2w+6Vu1OYV5iWhbFM98b1XU5XPnMlb256k6sPu5rSgtJe38/H+Y1LbXktF469kMdXPc6cV+dsvTyO5g+2fMDc1+bSUN9ARWHFgLc3UAV5BVw18SrWt6xn+oLpH13ei9a1m9fy8+d+zmGzD+Pi+RdTkJf6PrXltbGNN5183KdtYSyFrp/7qYGmZk2tEWsOm6bWiLZm6w2ftmbrDZ+2ZusNn7Zm6w2btl7Q1aypNWLNfijMK2SPyj3SsjCWyd6BfpdTtKg2/Lbh3PWvuzii7ggOHHpgn8bg4/zG6ezRZzNmyBiuWHDF1u+ki6P5vlfuY0v7FiaNmjTgbcVl1OBR/MeY/+CBFQ/wyOuPAN23rly/ksueuozx947nmsXX8Mkhn2TWMbNonNhIaf62i6ul+aVMGTslreOPi4/7tH9LdR7o6OjI9hAyTlOzptaINYdNU2tEW7P1hk9bs/WGT1uz9YZPW7P1hk1bL+hq1tQasWZ/1FfX88q6V2LfbiZ7Gxc1pvwupynzpjD7ldlUF1dTVVRFdVE11cXV2/x/8TuL+cXzv2BL+0cfGzf/zfk0LW+iob6h12PwdX7jkp+Xz48n/JhT557KzIUzmTFhxoCbnXPc8fIdHLDzAexds3dMI43Ht/f9Ng+ufJBLn7yUg3c5mOLi4u1us/Cdhfzmhd/w8MqHKcwr5NSRp/L1T36dUYNHbb2NIDQuamT1xtXUltcyZeyUPu1X2eTjPm0LYykUFhZ6+bmX6aSpWVNrxJrDpqk1oq3ZesOnrdl6w6et2XrDp63ZesOmrRd0NWtqjVizP+qr63n034/S2tFKYV5hbNvNZO+qjatSXt7a0crGto2s3ria9S3rWdeyjtaO1h63t7l9M42LGvu0gOHr/MZpnyH7cO7e5/KbF37DI68/wnub3xvQYs/Tbz/N8nXLaZzYmIbRDkxRfhGNExs5Ze4pjL93PM1tzYmPlDzgQsoKy7hp6U0sencR1UXVfGfMdzh79NkMLRu63XYa6htyZiGsKx/3aVsYS2Hz5s3ZHkLGaWrW1Bqx5rBpao1oa7be8Glrtt7waWu23vBpa7besGnrBV3Nmloj1uyP+up62lwbr294nfrq+ti2m6neu1++e4fX1ZXXcf+J92/9tXOO5rbmrYtk61rW8YUHv5Dyvqs3ru7TOHyd37h9vPrjCMKazWsAtn5sJdDnBaBZy2ZRVVTFSSNOin2ccVi+bjn5ks+mtk1AovXCv1+Iw7F7xe5MP2Q6Z3z8DMoKy7I80vTwcZ+27xhLoby8PNtDyDhNzZpaI9YcNk2tEW3N1hs+bc3WGz5tzdYbPm3N1hs2bb2gq1lTa8Sa/REthsX9PWPp7nXOcf2S67l4/sWMGjSKkvySba5P9V1OIkJZYRm7lu/KqMGjOHiXg6krr0u5/dry2j6Nx9f5jdvPnvsZjm2/e6q5vZmfLPxJn7azpnkND618iNPrT6e0oLTnO2RB46JG2lzbNpc5HDXFNTx22mOcvdfZwS6KgZ/7tC2MpbB+/fpsDyHjNDVrao1Yc9g0tUa0NVtv+LQ1W2/4tDVbb/i0NVtv2LT1gq5mTa0Ra/bHyOqRQPwLY+nsbeto45InL+HaJddyev3pzD1lLjMnzKSuvA5BqCuvY8aEGb06g2nK2CmU5m+7MJNqUa0nvs5v3HZ0Jt2bm97k2KZjmTpvKncsu4MX3nuBto627W7XtLyJifdOZNzd42jtaGXXsl3TPeR+21Hr2i1ryc/Lz/BoMs/Hfdo+SjGFwYMH8/7772d7GBmlqVlTa8Saw6apNaKt2XrDp63ZesOnrdl6w6et2XrDpq0XdDVrao1Ysz+qiqoYWjo09oWxdPVuat3Edx//Lo++8SjfHfNdLjjgAkSk39/lFN2ncVEjqzeu7vd3Zvk6v3GrLa9N+Z1ulYWVDCsfxiOvP8I9/7oHgJL8EvYdsi/77bwf++20H+9seoerF11Nc3vz1vtdt+Q6dinbxcvv4dpRa1/PJsxVPu7T4pzr+VY5aMyYMW7OnDnZHoYxxhhjjDHGGGOMMcaocOZDZ7K5ffM238flo/c2v8e5fz6X5997nisOuYKzRp+V7SGp07S8iWnzp22zuFWaX7r1DD3nHK9veJ0la5bw3JrneG7Ncyx9bylb2rfscJt15XXMO2NeJobfJz21mvQZPnz4QufcuK6X20cppjBkyJBsDyHjNDVrao1Yc9g0tUa0NVtv+LQ1W2/4tDVbb/i0NVtv2LT1gq5mTa0Ra/ZLfXU9y9ctJ86TMeLuXbl+Jaf/4XReWvsSvz7y194tivk8v3FqqG9gxoQZO/zYShFhj6o9OHXkqVx28GXcd8J9LJ20lLknz93hNnf0kYXZ1lNr6Hzcp+2MMWOMMcYYY4wxxhhjjDEDduuLtzJ9wXSe+eIz7Fy6c7aHs51/rPkH5/75XNpdOzd/5mYOHHpgtodk+mHivRNTfjShr2eMmeyxM8b6wMcVzHTT1KypNWLNYdPUGtHWbL3h09ZsveHT1my94dPWbL1h09YLupo1tUas2S/11fUAsX7PWFy9f33jr3zpoS9RUlDC7BNme7so5vP8pktfm6eMnUJpfuk2l5XmlzJl7JQ4h5UWNr9+sDPGjDHGGGOMMcYYY4wxxgzYqg9XMXH2RK4cfyWTRk3K9nC2uudf9zBt/jRGDx7NrUffytCyodkekhmgpuVNNC5qZPXG1dSW1zJl7BQ1H01oes/OGOuDwYMHZ3sIGaepWVNrxJrDpqk1oq3ZesOnrdl6w6et2XrDp63ZesOmrRd0NWtqjVizX4aVD6O0oDTWM8b609u0vImJ905kxG0j2HfWvkydN5UJwyZw9/F3e78o5vP8pkt/mhvqG5h3xjxePedV5p0xL2cWxWx+/VCQ7QH4aN26ddkeQsZpatbUGrHmsGlqjWhrtt7waWu23vBpa7be8Glrtt6waesFXc2aWiPW7Jc8yWNk1chYF8b62tu0vIlp86fR3N4MwIbWDeRLPqeOOJWKworYxpUuPs9vumhq1tQa8bHZzhhLoaLC/wNk3DQ1a2qNWHPYNLVGtDVbb/i0NVtv+LQ1W2/4tDVbb9i09YKuZk2tEWv2T311fawLY33tbVzUuHVRLNLu2rl2ybWxjSmdfJ/fdNDUrKk14mOzLYyl0Nzc3PONAqOpWVNrxJrDpqk1oq3ZesOnrdl6w6et2XrDp63ZesOmrRd0NWtqjVizf+qr61n14Sqa2+IZZ197V29c3afLfeP7/KaDpmZNrREfm21hLIWioqJsDyHjNDVrao1Yc9g0tUa0NVtv+LQ1W2/4tDVbb/i0NVtv2LT1gq5mTa0Ra/ZPfXU9Dser61+NZXt97a0tr+3T5b7xfX7TQVOzptaIj822MJZCe3t7toeQcZqaNbVGrDlsmloj2pqtN3zamq03fNqarTd82pqtN2zaekFXs6bWiDX7p766HiC2j1Psa+/n6j+33WWl+aVMGTsllvGkm+/zmw6amjW1RnxsTuvCmIhMFZH5IrJYRG4RkSIR+ZiIPJS8/DER2SN52yIR+W3y8kUicnSn7XxPRBaIyBIRuSidYzbGGGOMMcYYY4wxxhjTPyOqRiBIrN8z1lvOORa8vYCqwipqy2sRhLryOmZMmEFDfUPGx2OM8VNBujYsIjsB1cBE55wTkbuAU4FvAj9zzs0RkROAXwAnA1OAD5xzE0SkDnhMRPYBxgFnAoclN/0XEXnMOfdsusaen5+frk17S1OzptaINYdNU2tEW7P1hk9bs/WGT1uz9YZPW7P1hk1bL+hq1tQasWb/lBSUsFvFbrEtjPWl9+9v/p0Fby/gikOuYPJek2N5/EzzfX7TQVOzptaIj81pO2PMObfGOXdpclGsAqgCXgRGO+fmJG/zR2AfESkCTgJuTF6+CniSxGLYScCtzrkW51wLcAuJBbbtiMg3ReRZEXl27dq1FBcXU1paSllZGUVFRVRWVpKfn8+gQYMAGDJkSMr/FxcXk5+fT2VlJUVFRZSVlVFaWkpxcTEVFRUUFBRQXV2NiFBTU5NyG4MHDyYvL4+qqioKCwspLy+npKSEkpISysvLKSwspKqqiry8PAYPHpxyGzU1NYgI1dXVFBQUUFFR0e+mQYMGddvU3t4eXNOO5qmlpSW4pp7mSUSCa+ppnsrKyoJr2tE8FRUVBdfU0zy1tbUF19TdPEX7c0hN3c2TiATX1NM8dT1mhdDU3Tx1dHQE19TdPLW1tQXX1NM8tba2BtfU3Tw554Jr6m6euh6zQmjqaZ7y8vKCa+punkpLS4Nr6m6e2tragmvqbp46OjqCa+ppnlpaWoJr2tE8AcE19TRPXf9cCqGpp3kqLCz0vmnUkFGsWLciln2vqKioV02VlZX8dPFPqauo4+wxZ2d9nvq777W0tHi776Xr+RTt1yE12XuWHzUVFBRktSkVcc7t8Mo4iMgs4BjgKuAOYI5zbmyn658GGoDHgXHOufXJy38CLAGOBOY65/43efnxQINz7lvdPe6YMWPcnDlz+jXmqqoq1q9f36/75ipNzZpaI9YcNk2tEW3N1hs+bc3WGz5tzdYbPm3N1hs2bb2gq1lTa8Sa/fSjBT9i1rJZvHjWi+TJwM7N6G3vo/9+lK89+jVmTJjBmXueOaDHzKZcmN+4aWrW1BrJZvPw4cMXOufGdb08rd8xBuCcmwTsARwKnAh0XabbGVgDvA0M7XT5rsnLdnR52nz44Yfp3LyXNDVrao1Yc9g0tUa0NVtv+LQ1W2/4tDVbb/i0NVtv2LT1gq5mTa0Ra/ZTfXU9m9s3s3rj6gFvqze9zjl+uvinfKzyY3z+458f8GNmUy7Mb9w0NWtqjfjYnLaFMRHZX0TOBnDObQJeBsqA50XkuORtjgZecM61Ag8AX09evguJhbR5ycsni0ihiOQDZwP/m65xA1RXV6dz817S1KypNWLNYdPUGtHWbL3h09ZsveHT1my94dPWbL1h09YLupo1tUas2U/11fUAsXzPWG96H379YV54/wW+t9/3KMwrHPBjZlMuzG/cNDVrao342Jy2j1IUkVLgOuBAoBl4g8TC107AbUARsAX4qnNuZfJ7xn4L7AkIcIlz7s/JbV0ETALagLucc9f09PgD+ShFY4wxxhhjjDHGGGOMMf2zpnkN4+4ex2UHX8a5e5+b1sfqcB0c/8DxtHa08qeGP1GQV5DWxzPG5I6Mf5Sic67ZOfct59w459zhzrkznXMbnXMrnXNHOucmOueOcs6tTN6+xTn3FefcIc65g6NFseR1VzvnDnDOHdSbRbGB6u5L2UKlqVlTa8Saw6apNaKt2XrDp63ZesOnrdl6w6et2XrDpq0XdDVrao1Ys5+GlAyhuqg6ljPGeuqd++pcln2wjO/v//0gFsVyYX7jpqlZU2vEx+a0nTGWbXbGmDHGGGOMMcYYY4wxxmTHaX84jaL8Iu467q60PUZbRxvHNB1DQV4BD536EHmStvNAjDE5KONnjOUyH1cw001Ts6bWiDWHTVNrRFuz9YZPW7P1hk9bs/WGT1uz9YZNWy/oatbUGrFmf9VX16f9jLEHVjzAivUrOH//84NZFMuV+Y2TpmZNrREfm+2MMWOMMcYYY4wxxhhjjDGx+vXzv2bmwpk8d+ZzVBdXx7791o5WPnP/Z6gorGDuyXODWRgzxsTHzhjrg5qammwPIeM0NWtqjVhz2DS1RrQ1W2/4tDVbb/i0NVtv+LQ1W2/YtPWCrmZNrRFr9ld9dT0AK9avGNB2dtR73yv38fqG17nggAuCWhTLlfmNk6ZmTa0RH5vtjLEURIRQf192RFOzptaINYdNU2tEW7P1hk9bs/WGT1uz9YZPW7P1hk1bL+hq1tQasWZ/rVi3gqPuP4qrD7uaz3/88/3eTqreLe1bOOr3R7FT6U40ndiEiAx0uN7IlfmNk6ZmTa2RbDbbGWN9UFVVle0hZJymZk2tEWsOm6bWiLZm6w2ftmbrDZ+2ZusNn7Zm6w2btl7Q1aypNWLN/tq9cncK8woH/D1jqXrv+dc9rNq4igsPuDCoRTHInfmNk6ZmTa0RH5ttYSyFjRs3ZnsIGaepWVNrxJrDpqk1oq3ZesOnrdl6w6et2XrDp63ZesOmrRd0NWtqjVizvwrzCtmjco8BL4x17d3ctplf/OMXHDT0IA6vPXxA2/ZRrsxvnDQ1a2qN+NhsC2MplJSUZHsIGaepWVNrxJrDpqk1oq3ZesOnrdl6w6et2XrDp63ZesOmrRd0NWtqjViz3+qr6we8MNa1d9ayWby96W0uOOCC4M4Wg9ya37hoatbUGvGx2RbGUmhtbc32EDJOU7Om1og1h01Ta0Rbs/WGT1uz9YZPW7P1hk9bs/WGTVsv6GrW1BqxZr+1d7SzfN1yRtw2gon3TqRpeVOft9G5d1PrJn71/K+YMGwC44eNj3Oo3sil+Y2LpmZNrREfmwuyPQAf5eXpWy/U1KypNWLNYdPUGtHWbL3h09ZsveHT1my94dPWbL1h09YLupo1tUas2V9Ny5t4fPXjADgcqzauYtr8aQA01Df0ejude3/30u9Ys3kNNx5wY7yD9UiuzG+cNDVrao342OzfiDwQ4im4PdHUrKk1Ys1h09Qa0dZsveHT1my94dPWbL3h09ZsvWHT1gu6mjW1RqzZX42LGmnt2PZMkeb2ZhoXNfZpO1Hvh60fcuPSG/l03ac5cOiBsY3TN7kyv3HS1KypNeJjsy2MpdDW1pbtIWScpmZNrRFrDpum1oi2ZusNn7Zm6w2ftmbrDZ+2ZusNm7Ze0NWsqTVizf5avXF1ny7fkaj31hdvZe2WtVxwwAUDHpvPcmV+46SpWVNrxMdmWxhLobi4ONtDyDhNzZpaI9YcNk2tEW3N1hs+bc3WGz5tzdYbPm3N1hs2bb2gq1lTa8Sa/VVbXpvy8sqiSja1bur1doqLi1m3ZR03Lb2Jo3c/mv122i+uIXopV+Y3TpqaNbVGfGy2hbEUNm3q/YE5FJqaNbVGrDlsmloj2pqtN3zamq03fNqarTd82pqtN2zVwTf9AAASr0lEQVTaekFXs6bWiDX7a8rYKZTml25zWZ7ksb5lPZ+671P8ZulverVAtmnTJm5+4WY2tG4I/mwxyJ35jZOmZk2tER+bbWEshcrKymwPIeM0NWtqjVhz2DS1RrQ1W2/4tDVbb/i0NVtv+LQ1W2/YtPWCrmZNrRFr9ldDfQMzJsygrrwOQagrr+Onh/2U2cfPZq+avbjy2St7tUDWUtDCLS/ewgl7nMDeNXtnsCA7cmV+46SpWVNrxMdmcc5lewxpMWbMGDdnzpxsD8MYY4wxxhhjjDHGGGNMF8++/SzXP3c9T6x+giElQ/jWPt/irFFnUVZYts3tZjw7g5uW3sTDpz7MnoP3zNJojTG5aPjw4Qudc+O6Xm5njKUwZMiQbA8h4zQ1a2qNWHPYNLVGtDVbb/i0NVtv+LQ1W2/4tDVbb9i09YKuZk2tEWvOXeN2Gcftx9zO7ONns3fN3vz42R9z+H2Hc9PSm9jUuomm5U0ces+h3Lj0RkoKSnjx/RezPeSMCGV++0JTs6bWiI/NdsaYMcYYY4wxxhhjjDHGmKxa+M5CrltyHU+sfoLygnK2dGyhraNt6/Wl+aXMmDCDhvqGLI7SGJNL7IyxPvBxBTPdNDVrao1Yc9g0tUa0NVtv+LQ1W2/4tDVbb/i0NVtv2LT1gq5mTa0Raw7HgUMP5PZjbue+E+6jzbVtsygG0NzeTOOixiyNLnNCnd/uaGrW1BrxsdnOGDPGGGOMMcYYY4wxxhjjjRG3jcCx/fvWgvDqOa9mYUTGmFxkZ4z1gY8rmOmmqVlTa8Saw6apNaKt2XrDp63ZesOnrdl6w6et2XrDpq0XdDVrao1Yc5hqy2v7dHlINMxvV5qaNbVGfGy2M8aMMcYYY4wxxhhjjDHGeKNpeRPT5k+jub1562X2HWPGmL6yM8b6YNCgQdkeQsZpatbUGrHmsGlqjWhrtt7waWu23vBpa7be8Glrtt6waesFXc2aWiPWHKaG+gZmTJhBXXkdglBXXqdmUUzD/HalqVlTa8THZjtjLIX8/Hza29tjHpHfNDVrao1Yc9g0tUa0NVtv+LQ1W2/4tDVbb/i0NVtv2LT1gq5mTa0Raw6f9YZPU7Om1kg2m+2MsT4oKyvL9hAyTlOzptaINYdNU2tEW7P1hk9bs/WGT1uz9YZPW7P1hk1bL+hq1tQasebwWW/4NDVrao342GwLYyls2bIl20PIOE3Nmloj1hw2Ta0Rbc3WGz5tzdYbPm3N1hs+bc3WGzZtvaCrWVNrxJrDZ73h09SsqTXiY7MtjKVQUFCQ7SFknKZmTa0Raw6bptaItmbrDZ+2ZusNn7Zm6w2ftmbrDZu2XtDVrKk1Ys3hs97waWrW1BrxsdkWxlII9XvXuqOpWVNrxJrDpqk1oq3ZesOnrdl6w6et2XrDp63ZesOmrRd0NWtqjVhz+Kw3fJqaNbVGfGy2hbEUOjo6sj2EjNPUrKk1Ys1h09Qa0dZsveHT1my94dPWbL3h09ZsvWHT1gu6mjW1Rqw5fNYbPk3NmlojPjaLj6t1cRCRd4GV/bz7TsCaGIeTCzQ1a2qNWHPYNLVGtDVbb/i0NVtv+LQ1W2/4tDVbb9i09YKuZk2tEWsOn/WGT1OzptZINpv3cM7t3PXCYBfGBkJEnnXOjcv2ODJJU7Om1og1h01Ta0Rbs/WGT1uz9YZPW7P1hk9bs/WGTVsv6GrW1Bqx5vBZb/g0NWtqjfjYbB+laIwxxhhjjDHGGGOMMcYYY1SwhTFjjDHGGGOMMcYYY4wxxhijgi2MpXZTtgeQBZqaNbVGrDlsmloj2pqtN3zamq03fNqarTd82pqtN2zaekFXs6bWiDWHz3rDp6lZU2vEu2b7jjFjjDHGGGOMMcYYY4wxxhijgp0xZowxxhhjjDHGGGOMMcYYY1SwhbE+EpFiESnN9jgyRRKqsz2OTLHe8Gl6DmtqjShtVvM81tQa0das7TmsrResOXSaWiPamq03fNqaFb7Wst7AiUi5iBRkexyZoq0X9DUr/HNJVS9krzmYhTER+YKIPCkiT4jIPSJSJiL7icjjIvKUiMwRkcHJ2+4mItNF5GUROa/Ldr6bvP2TInKDiHT9PToLGJG87ZHJ2y0QkdtFpCh5+V7Jx50vIg+KyC4+9opInohcIyLzROQfIjIjxUMdBUxI3r7Pv5+B9g4XkbdE5LHkf78PvLc2uR/PE5G/iciecffG1dxle78VkdtSXNWb5/BoEWkUkTdE5LjAW48Qkdc67c83xN3rYXPaj9FxNneam+i/g7s8VNaP0561pv0Y7WFz2o/TMfbuKyIPi8hfRGSuiOze5aGyfoz2sDenjtMxNefMcVpEvtjlObxKRP6zH83ev/aIsTVn9ukYm3Pl74f5InJ98vYLRORXIlLYj96cOE7H2JtL+3RczTmxTyev+1Hy9otE5BspHirrr6U97E3762nPen18z6NKRO5LXrdARE5OXi4iMkNEnhaRJSIyKcVD/SdQ2ekxF4jIQhG5ptNYDhKRX4rIGhEZraD3HBF5qdM+fZmC5sOSY3lKRO4WkTJPe4tF5HvJ596dO3ioXHztke5eH197pLs5/tcezrmc/w+oAZ4FSpO/bgS+D/wT2D952XeAnyd/rgMOAq4Azuu0nU8CfwLyk7++Fzily2Ndnfx/BfAasFvy11cBFyZ//jtwcPLnLwK/87R3VKcx5wPzgIO6PNZPSCygSl+3H3DvkcCPc2B/jqv3f4Azkj+PBx7ztbnT9hqA24HbUlzXm+fwnsC+wG3AcYG3fhX4Zrr2Z0+b03qMjrsZeLKHx8rqcdrD1rQeoz1tTutxOq5eEn8WPQ7snPz1bkBFl8fK6jHa096cOU7H2JxTx+lO2ywHngbKfdqvPWzNmX06xuZc+fvhycDsTr/+Pck/X3zZnz3tzZl9OsbmXNmnjwbmkHgtVQY8A3y8y2OF9J5HXL258p5HXL0+vufRCExO/jwUeD358yRgdrKnCngRGNbpcfKBmcmf9wCWAdXJ298NnJ68bj/g48BjwGgFvdOBY9K1T/vWnPx5GbBH8nYXA1d42psPHAMcD9y1g8fKxdce6e718bVHuptjf+0RxBljzrn3gcOcc83JiwqAzcBa59yS5GU3Aycmb7/KOfcM0NFlOy+QWAhr77SdaJuIyBjgueQvJwLznXNvJH/9axJv1gKMdM4tSP48m8TkxybG3mXOuehfE9QA7SR2PgBEZCfgfedcB4kDTJ+2HxffeoHhwN4i8mcR+auIfCa2WLzsPQB4JLnNJ4ERcf9Lk7iak127ABcBV6a4rlfPYefcy8655+No68q3VhL78xHJffkhEdl/gInb8bA5rcdoiK9ZEh+PMCj5L3P+Jol/EZnf6fqsH6d9ayXNx2hPm9N6nI7xOXwQ8CbwYxH5O3Ae/Xidlc5jdHL7XvWSW8fpuJpz5jjdxVTgBufcxugCH/Zr31rJrX26s4E058TfD4E3gAJJfPJEHtBK4g05wI/9Obl9r3rJrX06ruZc2acPAB51znU45zYBDwKfja704bV0cvte9ZIj73kQX69373kAl5JYsIPEwt6W5M8nATe5hPUknn8ndHqoE4E/Jn8+DrjPObfOOeeAG/noOP2cc+6VOBs7862XxD79peSZNfeLyIiYUrfyrHknoNk5tzJ5u3uBY+MpTYir1znX7pz7E53+ztBZrr72IM29ePjag/Q3x/7aI4iFMQDn3GYRKRGR64FSYCnwVqfrW0hMYG+2M0hE7gCWOOce6XT150n8xgMM6bx9Em8CDE3+vEJEjkr+PJnEv1yJVVy9ACLyWPL+Nzvn3u101Vl8tENv09uX7cfBs953SZxZ+Fngy8ANIjKkH1k75FnvYuC05LaOBnYhsYIfqxibbySxcLI5xXW9fQ6nlWetrwFNzrkjgfOBuzu/MR8Xz5rTfoyG2JorSPwrvm8CRwDDgK93ut6L47RnrWk/Ricf06fmtB+nY+r9GIl/hXsF8Knkr8/udL0Xx2jwrvc1cuc4HVdzLh2nAZDER4icAszqcpUX+7Vnra+RO/s0EEtzTvz90Dm3mMRZnzOT/z3mEv94NOLF/gze9b5GjuzTMTbnxD5N4jXSiZL4GKfBJN5crux0vRevpZOP51NvrrznEVevd+95OOdanHMdIjKBxHPyrFQdbH/sPdw597de3jatPOt9kcTZJUcA17P9n+ex8Kh5DVAuInsnL5/Ets+NWMTU25OcfO2Rgd7X8Oy1RwaaY3/tEczCmIjsBtwPPOScO4/Eb+LQTtcXAy292M4+JE49vd45N73T5aUAnVZJ32bbJ9+uycsg8QbABSLyOFAILO9nVnfjjKUXIPkHw2jgPBE5otNVtc65Vcmft+nty/bj4FOvc26uc+4Gl/AmiVXtvYmRT70kDrDHisgTwKHASyReKMcqjmYR+RbwonPuqRTX9eU5nFY+tTrnbnXO3ZP8+Z/AOqC2f2XdjtebZjJwjE6OacDNzrkPnHPfTv6/g8TH3XT+DiovjtM+tWbiGJ18TG+aycBxOqY/lz4AHnfO/TvZey9wYPL+3hyjk+PxpjeXjtPEN8c5c5zu5FvAHc65tk7392a/9qk1x/bpyEDnNyf+figik4Ei59xU59xUoFJEzk1e583+nByPN725tE/HOMc5sU875/4MPAT8FbiJxNcLvN7pJl68lk4+nje9ufKeR4zz6+V7HiJyPomPSzvJOfd0qg46PS9FpI7EWaH0dNtM8KnXOfcT59xjyZ8fA4aLiAw4sgtfmp1zDjgT+LmI/AV4h22fG7GIqbe77ef0a4909vr62iPNcxz7a48gFsZEpITEZ4h+0zn3IIBzbjlQkVzoAvgKidOqu9vOzsB1wBdSTN7nSfzlPjIPOEREhiV//TXggeTP5UCDc+7TwAYSO1BsYuw9WkROSt5/LbASGJS87nDgiei2/dl+XHzrFZEGSfwrIkRkEDCGxAunWPjWS2K1/lzn3OHAX4CFyT9kYxNXM4lTw/cTkSYSL4yPEpGrk9f15TmcNr61isg3JHHaMiKyB4l95M3+F27Pt2bSfIyGWJ/Hu4rIJZ1etB8HLEpe58Vx2rfWdB+jk9v1qpk0H6djfA4/CYyRxMfaQOI5HX0EgxfHaPCvN8eO03HNcc4cpzv5Oonvv+zMi/3at9Yc26cjA53fnPj7IYnv3O58hkYR8Inkz17sz+Bfb47t03HNcU7s0yJSBTzgnJtA4g21ffjoNaMXr6WTY/GqN4fe84hrfr17z0NEvgIMcc59wzn3QadNPUDiuYgkPu7xtE4dk9j2TKg/Ap8TkehMoXPx9Did7l4RuVhEdk/+PA74t4I5bnfOfcY5dxSJr1e5I67W5Nji6u1Ozr72SHevj689MjDHsb/2yNhp4Wl2NLAXcPtH7y3xF+Ac4Dci0gG8x7Yf5ZLKF4ERwAOdtnOHc+4mYF/n3Na/DLnEqYTfBuaKyBbgFRIfGwNwCHCziHxI4sXDBQPL205cvUuAX4rIZSS+f2oh8L/J644Hftjl9n3dflx8610M3Cgi/w044CK37UcUDpRvvXsC/09ENgGrgO/2q6p7sTQ7506LfhaR4cDlzrmLkhf15TmcTr61LiCxn+SR+Mz2ya7Tv4aOiW/N6T5GQ3zP47dJfIzHouR4l5BYFAR/jtO+tab7GA3+Naf7OB3Xc3iDJP4F2f2S+JiHF4Bbk1f7cowG/3pz6TgdV3MuHaejN1g+cM691eUqX/Zr31pzZp+G2Jpz5e+H1yRvP5/EP6JdDXwjeZ0v+zP415tL+3RczbmyT5cB10riY/Y2Az9yzq1LXufLa2nwrzdX3vOIq9fH9zy+D2yRxFdjRCYD9wHjReRZEnMz0zn3ZvL4U+OcWxPdOHn5j4G/iUgL8IRz7r40tKXiW+8zwH3JY1kLiTfz4+Zb88kiciOJBYQn+ehjRb3qdc51dyZbLr/2SHevj6890t0c+2sPiXmBPEgiMhoY75y7tccbB0AS/yLoPOfczGyPJROsN3yansOaWiNKm9U8jzW1RrQ1a3sOa+sFa872WNJNU2tEW7P1hk9bs8LXWtYbOBE5Fmh1zv0l22PJBG29oK9Z4Z9LqnrBj2ZbGOsFSXzE4ofuo8+7DJqIVJD43PH3sz2WTLDe8Gl6DmtqjShtVvM81tQa0das7TmsrResOdtjSTdNrRFtzdYbPm3NCl9rWW/gJPExgW84JW/yausFfc0K/1xS1Qt+NNvCmDHGGGOMMcYYY4wxxhhjjFEhL9sDMMYYY4wxxhhjjDHGGGOMMSYTbGHMGGOMMcYYY4wxxhhjjDHGqGALY8YYY4wxxhhjjDHGGGOMMUYFWxgzxhhjjDHGGGOMMcYYY4wxKtjCmDHGGGOMMcYYY4wxxhhjjFHh/wO8rEPBT9lRIQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "x = ndf[\"時間軸(月次)\"].values\n", - "y = ndf[\"value\"].values.astype(float) * 1.e-2 # XX億円に換算\n", - "\n", - "fig = plt.figure(figsize=(30, 4))\n", - "ax = fig.add_subplot(111) \n", - "ax.set_facecolor(\"#e0e0e0\")\n", - "ax.set_ylabel(\"鉄道業の収益 [億円]\")\n", - "ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=range(1, 13, 4)))\n", - "ax.xaxis.set_major_formatter(mdates.DateFormatter(\"%Y/%m\"))\n", - "ax.grid(True,axis=\"both\",color=\"w\", linestyle=\"dotted\", linewidth=0.8)\n", - "ax.plot(x,y,marker=\"o\",color=\"green\")\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-bB9Upw_zg_K" - }, - "source": [ - "新型コロナウイルスの感染拡大を受けて2020年の1月ごろから \n", - "緊急事態宣言の解除(5月25日)まで、大幅に収益が減っていることが分かる。\n", - "\n", - "\n", - "\n", - "---\n", - "\n" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "Nq2fTnB_fEjF" - }, - "source": [ - "### 備考\n", - "\n", - "あらかじめ興味のあるデータ,分類・属性等がわかっている場合は、 \n", - "上記のコードの対応するIDなどを変更すればよいし \n", - "コードを拡張して、データ,分類・属性等の一覧表などを適宜表示しながら、 \n", - "特定のキーワードを含むものに絞ってデータを取得したりもできる。\n", - "\n", - "ちなみに、GoogleColabで提供されているコードスニペット(テンプレートのようなもの) \n", - "を用いることで、プルダウンでデータ,分類・属性等を選んでプロットする、 \n", - "といったようにGoogle Colab.上で自分だけのe-Stat分析ツールを作ることもできる \n", - "(最終課題で取り組むのも良い)\n" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_chapter_WebScraping.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_Error.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_Error.ipynb deleted file mode 100644 index dd97b28f..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_Error.ipynb +++ /dev/null @@ -1,799 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4_5p-ivElTgJ" - }, - "source": [ - "# よくあるエラー集" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JvTtKsM5pmDk" - }, - "source": [ - "このノートブックにはPythonを触っていてよく起こりがちなエラーの例をまとめます. \n", - "**皆さんの手元で起こったエラーの例も共有したいので、ぜひ教えてください**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eYKyKUoYmDRE" - }, - "source": [ - "\n", - "エラーには、いろいろな分類の仕方がありますが代表的なものは以下のとおりです:\n", - "\n", - "* 構文エラー (syntax error)\n", - "* ランタイムエラー (runtime error) または 例外 (exception)\n", - "* 論理エラー (logic error)\n", - "\n", - "これらの代表的な例を以下で紹介します。\n", - "\n", - "pythonのようなインタプリタ言語では、実行時にコードの有効性が検証されるため、構文エラーはランタイムエラーとも言えますが、エラーメッセージに従って分類することにします。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SpDDGwnLnKqK" - }, - "source": [ - "## 構文エラー\n", - "\n", - "構文エラーとは、プログラミング言語の文法・構文規則に違反していることによるエラーです。 \n", - "代表的なものは\n", - "\n", - "* 括弧や引用符の閉じ忘れ\n", - "* コロンのつけ忘れ\n", - "* ピリオドとカンマの間違い\n", - "* 全角記号の使用\n", - "* ```=```(代入)と```==```(等号)の混同\n", - "* 不適切なインデント\n", - "\n", - "などがあります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aZyMaLbLoQK-" - }, - "source": [ - "**引用符のつけ忘れ**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "t_Q-dc0IoO0r", - "outputId": "5c62d651-f031-4ea7-b479-6304fc6a9bbb" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(\"Hello World)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m EOL while scanning string literal\n" - ] - } - ], - "source": [ - "print(\"Hello World) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ELW2rnF0oUd3" - }, - "source": [ - "**括弧の閉じ忘れ**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "1-pTnHTEoYsM", - "outputId": "64e6d562-5e01-418c-dfe7-297f24096eba" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(\"Hello World\"\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m unexpected EOF while parsing\n" - ] - } - ], - "source": [ - "print(\"Hello World\" " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zpAXxTJvofVN" - }, - "source": [ - "**ピリオドとカンマの間違い**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "ZkxkEWp4ojjV", - "outputId": "827a5e7d-bf65-4250-db41-fb2fae93630a" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m a = [2.2. 3.14] # ほんとはa = [2.2, 3.14]のつもり\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "a = [2.2. 3.14] # ほんとはa = [2.2, 3.14]のつもり" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Uyfg5Kwgn4QP" - }, - "source": [ - "**コロンのつけ忘れ**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "6Jq2pSYknQV3", - "outputId": "6e4d5ced-5ed2-492f-a507-ac52266aceb5" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m for i in range(2)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "for i in range(2)\n", - " print(i)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iyYf_NVRpH7x" - }, - "source": [ - "**全角記号の使用**\n", - "\n", - "これは見た目では気が付きづらいので、**\"invalid character\"というSyntaxErrorが出たときは、全角を疑う**というのもおすすめです。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "SX39eEOco8iW", - "outputId": "893459db-9bd1-4d27-cf28-14b5c56d1d77" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 1+1 #後ろの1が全角になっている\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n" - ] - } - ], - "source": [ - "1+1 #後ろの1が全角になっている" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "smCVbWbqpDhp", - "outputId": "e2620838-ea98-457d-fde5-37c09f030bf1" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 1+2\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n" - ] - } - ], - "source": [ - "1+2 # 和記号+が全角になっている" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "id": "YMM02tBIpMRS", - "outputId": "43e549e4-f66e-4e8a-b1c3-b997dfe6ad96" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "2" - ] - }, - "execution_count": 16, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "1 + 1 #これはOK" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "gQYVZ3HYpPUM", - "outputId": "2858a768-f80f-4ff6-ff78-b5629b107eb4" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 1 + 1\u001b[0m\n\u001b[0m  ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n" - ] - } - ], - "source": [ - "1 + 1 #+と後ろの1の間に全角スペースが入っている" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P5ijbBANp16z" - }, - "source": [ - "**=(代入)と==(等号)の混同**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "x8onYf_MqLVL", - "outputId": "698727a2-36a8-4c26-ae45-a4f39f38c416" - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m3\u001b[0m\n\u001b[0;31m if a = b : #ほんとは==のつもり\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "a = 2.0\n", - "b = 3.0\n", - "if a = b : #ほんとは==のつもり\n", - " print(\"a equal b!!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7Jj0xhgIqjlI" - }, - "source": [ - "**不適切なインデント**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GoxOOulCv2Z1" - }, - "source": [ - "下のコードは[予期しないインデント]というエラーがでる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 134 - }, - "id": "QIK7JWJqqlLO", - "outputId": "17b625d7-6a49-4dc0-9458-c463614aec97" - }, - "outputs": [ - { - "ename": "IndentationError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m3\u001b[0m\n\u001b[0;31m for j in range(5):\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unexpected indent\n" - ] - } - ], - "source": [ - "for i in range(5):\n", - " print(i) \n", - " for j in range(5): ## この行と次の行のブロックが不要にインデントされている\n", - " print(j)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ncV6G7KvrHKW" - }, - "source": [ - "## ランタイムエラー\n", - "\n", - "ランタイムエラーとは、 \n", - "書き方そのものはPythonの文法的に誤りではないものの、 \n", - "実際にコードを実行するとエラーになってしまうものを指します。\n", - "\n", - "非常に多岐に渡りますが、代表的なものとしては、\n", - "\n", - "* 範囲外参照\n", - "* 定義されていない変数の参照\n", - "* 意図しない変数の型に対する演算\n", - "* 0除算\n", - "\n", - "などがあります。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7qBpnEkqrwNV" - }, - "source": [ - "**範囲外参照**\n", - "\n", - "要素が2つしかないリストの3番目の要素にアクセスしようとすると、\n", - "当然エラーが出ます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "qyUnlHCzr_K_", - "outputId": "7c9384e5-d442-4c52-ed4c-e2882106288d" - }, - "outputs": [ - { - "ename": "IndexError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m \u001b[0;34m\"いちご\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"りんご\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mIndexError\u001b[0m: list index out of range" - ] - } - ], - "source": [ - "a = [ \"いちご\", \"りんご\"]\n", - "a[2]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kb2WM6BLtbYK" - }, - "source": [ - "関数の定義域を超えて引数に入れるのもダメです" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "gWGn5zoithdY", - "outputId": "8ceae3e1-f923-4a0a-9a25-3285fb7e2dcf" - }, - "outputs": [ - { - "ename": "ValueError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mValueError\u001b[0m: math domain error" - ] - } - ], - "source": [ - "import math \n", - "math.log(0.0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IJFs-2jnsDeK" - }, - "source": [ - "**定義されていない変数の参照**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uNO8rFMYsHiI" - }, - "source": [ - "当然、定義されていない変数を使うとエラーが起こります" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - }, - "id": "V1H-oFVFsF9x", - "outputId": "ce8d0ade-07f4-4223-bc52-99198bb2dbc4" - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'num' is not defined" - ] - } - ], - "source": [ - "print(num)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**ノートブック特有の注意点**\n", - "\n", - "作業途中に定義していた変数がメモリに残っていて、そのおかげで動いているが、\n", - "後日作業を再開した際(新しいセッションで実行したとき)にその変数が未定義となり動かなくなる。\n", - "といったことも稀に起こります。\n", - "とくに、セルを跨いで実行したりするノートブックの編集・実行においては、よく起こるミスです。\n", - "こうしたエラーを避けるには、適宜ランタイムやカーネルなどを再起動して、\n", - "新しいセッションで実行できるか確認するなどの対策が必要です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Y5x3eqQrsMQB" - }, - "source": [ - "打ち間違いにも注意です" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 185 - }, - "id": "8NAoPZHZsNbh", - "outputId": "64d1047d-66fa-423f-e912-21d9f900997d" - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0minput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"sample_file.txt\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0mimput\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'imput' is not defined" - ] - } - ], - "source": [ - "input = \"sample_file.txt\"\n", - "print( imput )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q-he-J69sS-Z" - }, - "source": [ - "**意図しない演算**\n", - "\n", - "数値と数値の足し算は出来ますが、\n", - "数値と文字のように型が異なる変数を足すことはできません。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - }, - "id": "Iovexbyrse_B", - "outputId": "6ffb6719-b2db-4c87-f332-0d78bab79646" - }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;34m\"私は\"\u001b[0m\u001b[0;34m+\u001b[0m \u001b[0;36m200\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m\"歳です\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m: must be str, not int" - ] - } - ], - "source": [ - "\"私は\"+ 200 + \"歳です\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zCWRYfAnJW8h" - }, - "source": [ - "和に限らず\"演算\"は一般に特定の型(同士)のみに定義されています。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GqJC1Plfk-0R" - }, - "source": [ - "また、リスト等の要素にアクセスするのに、 \n", - "角括弧と間違えて丸括弧を使うミスもよく見られます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 202 - }, - "id": "HHOWbWlBk_LK", - "outputId": "4a1d5377-ce2f-4449-a14a-0fdc608d1026" - }, - "outputs": [ - { - "ename": "TypeError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;31m#これはOK\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#これはNG\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mTypeError\u001b[0m: 'list' object is not callable" - ] - } - ], - "source": [ - "a = [1, 2, 3]\n", - "a[1] #これはOK\n", - "a(1) #これはNG" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1NNF7t3XtONA" - }, - "source": [ - "**0除算**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yeZ04wKttTMh" - }, - "source": [ - "0で割ることはできません" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 168 - }, - "id": "M3S_PXdFtPVQ", - "outputId": "12364983-d12c-4a1c-d48e-85dc04ad8191" - }, - "outputs": [ - { - "ename": "ZeroDivisionError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;36m300\u001b[0m\u001b[0;34m/\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mZeroDivisionError\u001b[0m: division by zero" - ] - } - ], - "source": [ - "300/ 0" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qrDtUKhXtnvo" - }, - "source": [ - "## 論理エラー\n", - "\n", - "論理エラーとは、文法的にもOK(syntax errorなし)で、ランタイムエラーも無く、最後までプログラムが実行されるが、「意図した通りに動かない」というものを指します。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "XjepDskttuhm" - }, - "source": [ - "たとえば「aが負かつ正なら文字列を表示する」という以下のコードは、論理的にはおかしい命令ですが、構文エラーにもランタイムエラーにもなりません\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w7CuitFBuE5Z" - }, - "outputs": [], - "source": [ - "a = 2.0\n", - "if a < 0.0 and a > 0.0: \n", - " print(\"aは正かつ負です!!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "9gWAbE1OvIeV" - }, - "source": [ - "人間側のエラーとも言えそうですね。 \n", - "第1章で説明したように、print文を使ったりしながらこうした論理エラーが無いか調べることもときに必要です。" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyNQPlOipy4Wx6FmhulV/Ewt", - "include_colab_link": true, - "name": "Python_misc_Error.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_NewtonsMethod.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_NewtonsMethod.ipynb deleted file mode 100644 index 8beda34e..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_NewtonsMethod.ipynb +++ /dev/null @@ -1,299 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aLf3PqMgkFNC" - }, - "source": [ - "# ニュートン法によるN次元多項式の求根\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0ZIFvSR9kOo9" - }, - "source": [ - "$n$次元多項式$f(x) = c_0 + c_1 x + c_2 x^2 + \\ldots + c_nx^n$が与えられた時、 \n", - "$f(x)=0$となるような解(根)をどのように求めたら良いだろうか?\n", - "\n", - "$n=2$までの場合については、中学までで習うようによく知られた公式がある。 \n", - "$n=3,4$の場合についてもそれぞれ、[カルダノの公式]や[フェラリの解法]として知られる \n", - "代数的な求根法が存在する。 \n", - "なお、5次以上の代数方程式には代数的な解法※が存在しないことが知られている(アーベル-ルフィニの定理) \n", - "(※方程式の係数の有限回の四則演算および冪根操作で解を表示すること)\n", - "\n", - "\n", - "方程式の解や積分値などが代数的/解析的に解けない場合は、もちろん数値計算の出番となる。 \n", - "\n", - "このノートブックでは、ニュートン法(あるいはニュートン・ラフソン法)として知られる求根アルゴリズムを紹介する。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tPW10YYsnOHs" - }, - "source": [ - "## ニュートン法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZnosTDdTnPFL" - }, - "source": [ - "ニュートン法による関数$f(x)=0$の求根アルゴリズム自体は非常にシンプルで\n", - "\n", - "1. 初期値$x \\in \\mathbb{R} $ (または$x \\in \\mathbb{C})$を決める\n", - "2. 上の初期値を$x_0$とでも呼ぶことにして、 \n", - " $ x_{t+1} = x_t - f(x_t) / f'(x_t) $ と$x$を更新し \n", - " $x$の値が収束するまで更新を繰り返す\n", - "\n", - "というものである。 \n", - "\n", - "$\\clubsuit$ 進んだ注 \n", - "高次元のベクトル$\\boldsymbol{x}$に拡張することもできる。 \n", - "$ \\boldsymbol{x}_{t+1} = \\boldsymbol{x}_{t} - \\partial f(\\boldsymbol{x}_t)^{-1} f(\\boldsymbol{x}_t)$\n", - "$\\partial f(\\boldsymbol{x}_t)$はヤコビ行列になるが、 \n", - "数値計算上の困難が有り、実際に解く場合には様々な工夫が必要となる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lP5pa0eSpqfz" - }, - "source": [ - "### ニュートン法のアルゴリズムの実装例\n", - "\n", - "$n=5$の多項式の例を用いて、ニュートン法のアルゴリズムを実装してみよう。 \n", - "実数係数の多項式の場合、非ゼロの係数を持つ最大の$n$が奇数次ならば、 \n", - "関数$f(x)$は必ず実軸を横切る(つまり、$f(x)=0$の解が存在する。 \n", - "\n", - "まず係数を適当に...\n", - "$c_0 = 1.0, c_1 = 1.0, c_2 = 2.0, c_3 = 3.0, c_4 = 4.0, c_5 = 5.0$\n", - "とでもして、プロットしてみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 276 - }, - "id": "mDpCwZF0kEnj", - "outputId": "c5eb065f-87bf-42d0-fc38-1c57f88b8848" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light", - "tags": [] - }, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np \n", - "from matplotlib import pyplot as plt\n", - "\n", - "\n", - "## 多項式の係数を定義\n", - "cs = np.array( [1.0, 1.0, 2.0, 3.0, 4.0, 5.0] )\n", - "\n", - "## 愚直に多項式とその微分を定義\n", - "def xpoly(x):\n", - " return np.array([1.0,x,x**2,x**3,x**4,x**5])\n", - "def xpoly_prime(x):\n", - " return np.array([0.0,1.0,2*x,3*x**2,4*x**3,5*x**4])\n", - "\n", - "# 適当な区間で点を作成して描画してみる\n", - "xr = np.arange(-100,100,1.0) \n", - "yr = np.array([ np.dot(cs,xpoly(x)) for x in xr])\n", - "fig = plt.figure(figsize = (20,4))\n", - "ax = fig.add_subplot(111)\n", - "ax.plot(xr,yr)\n", - "ax.plot(xr,0.0*yr,linestyle=\"dotted\",color=\"gray\") # y=0\n", - "plt.show()\n", - "plt.close() \n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1anohi6wsU2l" - }, - "source": [ - "ゼロ点($f(x)=0$となる$x$)があることはわかるが、このスケールだと具体的な値はよくわからない。\n", - "\n", - "次にニュートン法のアルゴリズムに対応する関数を作って解を求めてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "dqnujbsFspn8", - "outputId": "ceb388d5-e79c-4190-bce1-b6cf812fabe3" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "it 1 x -16.03067071498258 y -15383219.0 -5041023.966714532\n", - "it 2 x -12.854892481957197 y -5041023.966714532 -1651968.106196959\n", - "it 3 x -10.313885990777683 y -1651968.106196959 -541379.1850391383\n", - "it 4 x -8.28061578625216 y -541379.1850391383 -177429.79752234442\n", - "it 5 x -6.653441486353502 y -177429.79752234442 -58155.11457333112\n", - "it 6 x -5.3510406877452255 y -58155.11457333112 -19063.39609222064\n", - "it 7 x -4.308351359326742 y -19063.39609222064 -6250.001804089965\n", - "it 8 x -3.4733344532483637 y -6250.001804089965 -2049.456302435744\n", - "it 9 x -2.8044032112313464 y -2049.456302435744 -672.1354918462077\n", - "it 10 x -2.268410685784332 y -672.1354918462077 -220.3982199780121\n", - "it 11 x -1.8391438506400222 y -220.3982199780121 -72.1807419252783\n", - "it 12 x -1.4963673552041776 y -72.1807419252783 -23.526420007144324\n", - "it 13 x -1.2256340399442445 y -23.526420007144324 -7.546944476833993\n", - "it 14 x -1.0192792149298004 y -7.546944476833993 -2.3017219833384583\n", - "it 15 x -0.878192974042394 y -2.3017219833384583 -0.6001347172980255\n", - "it 16 x -0.8072662373727413 y -0.6001347172980255 -0.09757282508715664\n", - "it 17 x -0.7905468880551323 y -0.09757282508715664 -0.00434806118170894\n", - "it 18 x -0.789729888238273 y -0.00434806118170894 -9.879715826832669e-06\n", - "it 19 x -0.7897280233719703 y -9.879715826832669e-06 -5.135225578101199e-11\n", - "it 20 x -0.7897280233622771 y -5.135225578101199e-11 5.551115123125783e-16\n", - "x -20.0 => -0.7897280233622771 after 20 iterations\n" - ] - }, - { - "data": { - "text/plain": [ - "-0.7897280233622771" - ] - }, - "execution_count": 36, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "def Newton(cs,xini,tolxrel=1.e-6,toly=1.e-6,maxit=1000):\n", - " xp = xpoly(xini)\n", - " xpp = xpoly_prime(xini)\n", - " x = xini\n", - " itnum = 0\n", - " while True:\n", - " y = np.dot(cs,xp)\n", - " yp = np.dot(cs,xpp) \n", - " delta = y / yp\n", - " x += - delta\n", - " xp = xpoly(x)\n", - " xpp = xpoly_prime(x)\n", - " ynew = np.dot(cs,xp)\n", - " itnum += 1\n", - " print(\"it\", itnum, \"x\",x, \"y\", y,ynew)\n", - " if abs(delta/x) < tolxrel and abs(ynew) \", x, \" after \",itnum, \"iterations\")\n", - " return x \n", - "\n", - "x_initial = -20.0\n", - "Newton(cs,x_initial)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lg6vMncbwyfa" - }, - "source": [ - "$x=-20.0$から始めると、20回のiteration(反復)で、 \n", - "yの値が$5.e-16 \\simeq 0$の点が求められている事がわかる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_yFWkaZxxBqB" - }, - "source": [ - "今のようにうまくいく例もある一方で、関数や初期値によっては解に収束しない場合があるので注意が必要" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dPK_KIGcyuod" - }, - "source": [ - "# LICENSE" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q943wB7Z4DYK" - }, - "source": [ - "\n", - "Copyright (C) 2021 Sota Yoshida\n", - "\n", - "[ライセンス:クリエイティブ・コモンズ 4.0 表示 (CC-BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.ja)" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyMWxHIsatxKmpa/oePk47i/", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_NewtonsMethod.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_ODE.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_ODE.ipynb deleted file mode 100644 index c9e323d6..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_ODE.ipynb +++ /dev/null @@ -1,751 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wVdYiDLFHEEL" - }, - "source": [ - "# 常微分方程式の数値解法" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "MO6-C742mcJ-" - }, - "outputs": [], - "source": [ - "#使用するモジュールのimport\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JxV3JSWOd-W8" - }, - "source": [ - "## 常微分方程式" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AGBSpCwiHIgY" - }, - "source": [ - "多くの自然現象や社会現象は微分方程式として定式化される。\n", - "\n", - "身近な例としてはニュートンの運動方程式にはじまり、\n", - "金融や群集動態、感染症のモデルなどにも当てはまる。\n", - "\n", - "このノートでは、微分方程式のうちとくに一変数関数の場合である \n", - "常微分方程式(ordinary differential equation, ODE)について \n", - "いくつかの代表的な数値解法を解説するとともに、 \n", - "アルゴリズムを自分で実装してみよう。\n", - "\n", - "例えば1階の常微分方程式は、一般に以下の形で書くことが出来る: \n", - "$dx(t)/dt = f(x,t)$ (Eq. 1)\n", - "\n", - "これは、ある質点の時刻$t$での座標を$x(t)$と呼ぶことにすると、 \n", - "質点の位置の変化が$f(x,t)$の関数として書けるような状況に相当する。\n", - "\n", - "注) 別に$t$は時間である必要はないし、 \n", - "$x(t)$は座標以外の量(金融商品の価格など)何でも構わない。\n", - "\n", - "\n", - "一般に常微分方程式が与えられた時、まずはその解が変数分離などを用いて \n", - "閉じた形で書き下せないかと考えるわけだが、 \n", - "実際の多くの問題ではそうは上手く行かず、数値計算が必要となる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "duBNxeB_cUMU" - }, - "source": [ - "以下では、主として$dx/dt = f(x,t)$を考えるが、 \n", - "高階の微分を含む場合も、\n", - "\n", - "$$\n", - "\\left[\n", - "\\begin{matrix} \n", - "x_1 \\\\ \n", - "x_2 \\\\\n", - "\\vdots \\\\\n", - "x_r\n", - "\\end{matrix}\n", - "\\right]\n", - "= \n", - "\\left[\n", - "\\begin{matrix} \n", - "x \\\\ \n", - "dx/dt \\\\\n", - "\\vdots \\\\\n", - "d^{r-1}x/dt^{r-1}\n", - "\\end{matrix} \\right]\n", - "$$\n", - "\n", - "と置き換えれば、連立1階常微分方程式:\n", - "\n", - "$$\n", - "\\left[\n", - "\\begin{matrix} \n", - "x_2 \\\\ \n", - "x_3 \\\\\n", - "\\vdots \\\\\n", - "x_{r}\n", - "\\end{matrix}\n", - "\\right]\n", - "= \n", - "\\frac{d}{dx}\n", - "\\left[\n", - "\\begin{matrix} \n", - "x_1 \\\\ \n", - "x_2 \\\\\n", - "\\vdots \\\\\n", - "x_{r-1} \n", - "\\end{matrix} \\right]\n", - "$$\n", - "とみなすことが出来る。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "brvU1jS2W0NK" - }, - "source": [ - "\n", - "常微分方程式の解を求めるためには、 \n", - "適切な条件(初期条件や境界条件)を設定しなければならない。\n", - "\n", - "そのうち、変数$t$の最初の値(初期値,初期条件)$t_0$と \n", - "$x(t=t_0)$の値が与えられた問題を初期値問題と呼ぶ。 \n", - "※$t_0$は問題によって0だったり、$-\\infty$だったりする。\n", - "\n", - "\n", - "解の存在性や下記のリプシッツ条件など適切な条件の元での \n", - "解の一意性の証明等については教科書に譲る。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "o2JwiqJAd2LL" - }, - "source": [ - "###リプシッツ条件" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ipc62VyEeFXo" - }, - "source": [ - "関数$f$が$U$(たとえば$R^n$の部分集合) 上でリプシッツ(Lipshitz)連続であるとは、 \n", - "正実数$K$が存在し、任意の$x,y \\in U$に対し、 \n", - "$||f(x)-f(y)|| \\leq K ||x −y||$が成立することである。 \n", - "以下では$||\\cdot||$はユークリッドノルムとし、$K$をリプシッツ定数と呼ぶ。\n", - "\n", - "この$K$が存在しているとき、 \n", - "前述の常微分方程式の初期値問題は一意の解を持つ。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3BMukvRtgdZI" - }, - "source": [ - "## 代表定期な数値解法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-pwbBdUBgjMr" - }, - "source": [ - "### オイラー(Euler)法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JrC4_IHYgu8-" - }, - "source": [ - "1階の常微分方程式$dx(t)/dt=f(x,y)$を数値的に解く上で \n", - "最も基本的な考え方は時刻(便宜上そう呼ぶ)を \n", - "細かく分割した上で、$x$の任意時刻$t$での近似値を \n", - "初期値から初めて逐次的に求めていくことである。 \n", - "\n", - "以下では、その最も単純な例であるオイラー法を説明する。\n", - "\n", - "微分の定義:\n", - "$dx(t)/dt = \\lim_{h\\to 0} \\frac{x(t+h) - x(t)}{h}$から \n", - "微小変分$h$を十分小さく取れば、 \n", - "$x_{i+1} = x_{i} + h f(x,t_i)$という近似式が得られる。\n", - "\n", - "つまり、$i=0$の初期値$(x_0,t_0=0)$から順番に上の漸化式を用いて、 $i$番目の時刻$t_i$での座標$x_i$を推定していく。\n", - "\n", - "※一般に微小変分$h$は各ステップ$i$に依存しても良いが、簡単のため共通とした。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VgupCOzCjPwO" - }, - "source": [ - "例: $dx/dt = -2x^2t$, 初期条件$x(t=0)=1.0$のもとで \n", - "$0 < t \\leq 1.0$での$x$の値を予想してみよう:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "lI-2SaBkHCXa", - "outputId": "be62334d-2414-425b-a2a3-29a2efee59ff" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# f(x,t)のトイモデルとして dx/dt = -2tx^2 というものを考える\n", - "def f(x,t): \n", - " return - 2.0* x * x * t\n", - "#時刻tを間隔hで細かく分割する\n", - "h = 1.e-4\n", - "tr = np.arange(0.0,1.0,h) \n", - "#初期条件\n", - "x0 = 1.0 \n", - "\n", - "#求解\n", - "x = x0\n", - "xs = [x0]\n", - "for t in tr:\n", - " x += h * f(x,t)\n", - " xs += [x]\n", - "\n", - "#描画\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"x\")\n", - "plt.plot(tr,xs[:-1])\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_xzmhI0Rq7A_" - }, - "source": [ - "実は今の初期条件のもとでこの微分方程式は \n", - "閉じた形$x(t)=x_0/(x_0t^2+1)$で解が与えられるので、 \n", - "真の解と数値解法による近似解を比較できる。\n", - "\n", - "差分のlogを取ってみると...以下のようになる:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "dMy_G8hjq6i-", - "outputId": "acdfa5e0-6bf7-4e04-922a-8d9885e98d63" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def fexact(t):\n", - " return x0/(x0* t*t + 1.0)\n", - "xe = np.array([ fexact(t) for t in tr])\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\"); plt.ylabel(\"abs. diff.\")\n", - "plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])))\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q7jGOD0zssEL" - }, - "source": [ - "Taylor展開するだけで簡単に調べられるようにEuler法は局所打ち切り誤差が$O(h^2)$、 \n", - "大局打切り誤差が$\\sim O(h^2)\\times O(h^{-1})\\sim O(h)$の手法となっている。 \n", - "つまり1桁精度を上げたいなら$h$を1/10、つまり計算量を10倍にしなくてはならない。\n", - "\n", - "上の$h$を変えてチェックしてみよう。 \n", - "\n", - "大局誤差が$h$の$p$乗に比例する手法を一般に$p$次公式と呼び \n", - "上のEuler法は1次公式となる。\n", - "\n", - "Euler法に少し工夫を加えた修正Euler法は、2次公式であり \n", - "$h$を1/10すると、大局誤差は1/100にできる。 \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6ru34y_hvFV6" - }, - "source": [ - "### 4次のルンゲクッタ法 (RK4)\n", - "\n", - "次に4次公式の代表例である4次のルンゲクッタ法を紹介しよう。 \n", - "古典的ルンゲ=クッタ法などとも呼ばれるこの方法は、 \n", - "幾つかの$(x,t)$に対して$f(x,t)$の値を計算し、 \n", - "打切り誤差が互いにキャンセルしあうように \n", - "うまく重み付けをして次ステップの$x$の値を求めていく方法であり \n", - "様々なところで用いられている。\n", - "\n", - "基本的には2変数関数のTaylor展開をやれば更新式を導出できるが\n", - "煩雑なので導出については省略することにして結果だけ示すと\n", - "\n", - "$i$番目のステップでの$x,t$の値$x_i,t_i$が所与のとき、\n", - "以下の4点での$f(x,t)$の(近似)値を用意して \n", - "$ f_1 = f(x_i,t_i),\n", - "f_2 = f(x_i+\\frac{h}{2} f_1,t_i+\\frac{h}{2}),$\n", - "$f_3 = f(x_i+\\frac{h}{2} f_2,t_i+\\frac{h}{2}),\n", - "f_4 = f(x_i+h f_3,t_i+h)\n", - "$\n", - "\n", - "$x_{i+1} = x_{i} + \\frac{h}{6} (f_1+2f_2+2f_3 + f_4 )$\n", - "とすることで、4次公式が得られる。\n", - "\n", - "また、前述のような\"重み付け\"の選択には自由度があり、 \n", - "$ f_1 = f(x_i,t_i),\n", - "f_2 = f(x_i+\\frac{h}{3} f_1,t_i+\\frac{h}{3}),$\n", - "$\n", - "f_3 = f(x_i-\\frac{h}{3}f_1 + h f_2,t_i+\\frac{2h}{3}),\n", - "f_4 = f(x_i+hf_1-hf_2+h f_3,t_i+h)\n", - "$\n", - "\n", - "$x_{i+1} = x_{i} + \\frac{h}{8} (f_1+3f_2+3f_3 + f_4 )$\n", - "\n", - "という公式も知られている。\n", - "\n", - "\n", - "前者を実装して、先程の例でEuler法と比べてみると...\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "bpzo_HH03zsy", - "outputId": "2256e450-8361-4754-e1a8-332e05ff5372" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#求解(RK4)\n", - "xsRK4 = [x0]\n", - "x = x0\n", - "for t in tr:\n", - " f1 = f(x,t)\n", - " f2 = f(x+0.5*h*f1, t+0.5*h)\n", - " f3 = f(x+0.5*h*f2, t+0.5*h)\n", - " f4 = f(x+h*f3, t+h)\n", - " x += h*(f1 + 2*f2 + 2*f3 + f4)/6.0\n", - " xsRK4 += [x]\n", - "#描画\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"abs. diff.\")\n", - "plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])),label=\"Euler\")\n", - "plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label=\"RK4\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WqKW52Ncbg7c" - }, - "source": [ - "となり、高精度で解が得られていることが分かる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uIqPPSsJb-KD" - }, - "source": [ - "## 積分を用いた解法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "SUuqmECsuB4l" - }, - "source": [ - "常微分方程式 $\\frac{dx}{dt} = f(x,t)$は形式的には \n", - "$x(t') = x(t_0) + \\int^{t'}_{t_0} f(x(t),t,) dt$ と書くことが出来る。\n", - "\n", - "右辺の積分を数値的に計算することで、 \n", - "元の微分方程式の解を求めることを考えよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GSy9sdWUdyXI" - }, - "source": [ - "### Adams-Bashforth法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0mWaZoxBd1m5" - }, - "source": [ - "\n", - "\n", - "以下では特に、Adams-Bashforth法(AB法)と呼ばれる手法を考える。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "svbcn9pIM-n1" - }, - "source": [ - "まずは、2次のAB法を考えよう。\n", - "\n", - "$t_i$と$t_{i+1}$の間の$f(x(t),t)$を、現在居る$i$番目のステップと \n", - "1個前の$i-1$番目のステップを用いて、1次のLagrange補間で近似してみる。\n", - "\n", - "$\n", - "\\begin{align} \n", - "x_{i+1} &= x_i + \\int^{t_{i+1}}_{t_i} P_1(t) dt \\\\\n", - "P_1(t) &= f_{i-1}L_{i-1}(t) + f_i L_i(t) \\\\\n", - "L_{i-1} &= \\frac{t-t_i}{t_{i-1}-t_i}, L_{i} = \\frac{t-t_{i-1}}{t_{i}-t_{i-1}}\n", - "\\end{align}$\n", - "\n", - "各ステップの刻み幅$t_{i}-t_{i-1}$ for $\\forall i $を一定$h$としよう。 \n", - "このもとで上の積分を評価すると、 \n", - "$x_{i+1} = x_i + \\frac{h}{2} (-f_{i-1}+3f_i)$\n", - "という更新式を得る。\n", - "\n", - "この手法の局所打切り誤差は(またTaylor展開して)$O(h^3)$であり、 \n", - "2次の公式となる。一般的な分類に倣えば、この手法は過去の2ステップの情報を利用する、 \n", - "陽(explicit)解法かつ2段法(2-step method)となっている。\n", - "\n", - "\n", - "同様にして、一般に$m$ステップのAB法($n-1$次のLegendre補間を使用)は$m$次公式を与える。 \n", - "たとえば4次公式は$x_{i+1}=x_i + \\frac{h}{24}(-9f_{i-3} + 37f_{i-2} -59f_{i-1} +55f_{i})$\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "40VvY7-xRbXC" - }, - "source": [ - "**Adams-Bashforth法とRunge-Kutta法の違い**\n", - "\n", - "AB法では、過去に評価した$f$の値を用いるため、計算量の増加を防ぐことができる。 \n", - "つまり、各$f$の評価は1回だけで良い。 \n", - "一方で、RK4では各ステップで$f$を4回計算する必要がある。\n", - "\n", - "これは$f$の評価が複雑な場合 \n", - "(例えば解きたい微分方程式が行列(連立)になっていて、$f$に行列演算を含む場合など) \n", - "Runge-Kutta法よりも、高速に計算できるかもしれない。\n", - "\n", - "一方で、$m$次のAB法では過去の情報を利用するため、 \n", - "はじめの$m-1$回については、RK法などで予め求めておく必要がある。 \n", - "また、Runge-Kutta法と比較すると、誤差が大きかったり、 \n", - "数値的に不安定になりやすいことも知られている。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "v8lSgfj-jvu5", - "outputId": "45d3597a-12ff-43bf-eaa5-b24b1f4b6d0c" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def AB4(x0,m=4):\n", - " xsAB = [x0]\n", - " x = x0\n", - " fs = [ 0.0 for i in range(m)]\n", - " for i,t in enumerate(tr):\n", - " if len(xsAB) < m : #RK4\n", - " f1 = f(x,t)\n", - " f2 = f(x+0.5*h*f1, t+0.5*h)\n", - " f3 = f(x+0.5*h*f2, t+0.5*h)\n", - " f4 = f(x+h*f3, t+h)\n", - " x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0\n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " else:\n", - " f1,f2,f3 = fs[1:]\n", - " f4 = f(x,t)\n", - " x += h *(-9*f1 +37*f2 -59*f3 +55*f4 )/24.0 \n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " xsAB += [x]\n", - " return xsAB\n", - "\n", - "xsAB4 = AB4(x0)\n", - "#描画\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"abs. diff.\")\n", - "plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])),label=\"Euler\")\n", - "plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label=\"RK4\")\n", - "plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label=\"AB4\")\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dYfoXPujX-vw" - }, - "source": [ - "### Adams-Moulton法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2VU4odEJYEE7" - }, - "source": [ - "AB法は、現在$i$と過去のステップの情報のみを使用したが、 \n", - "$i+1$ステップの情報を使う(陰解法)ことで、より高精度の結果を得ることができる。\n", - "\n", - "3次のAB法($i-2,i-1,i$の情報)に加えて$i+1$番目の情報を用いて \n", - "3次のLagrange補間多項式$P_3(t)=\\sum^2_{j=-1}f_{i-j}L_{i-j}$のもと \n", - "$x_{i+1}=x_i + \\sum^2_{j=-2} f_{i+j} \\int^{t_{i+1}}_{t_i} L_{i+j}(t) dt $\n", - "という \n", - "更新式を考える。愚直に上と同様に各積分を評価すると \n", - "$x_{i+1}=x_i + \\frac{h}{24}(f_{i-2}-5f_{i-1}+19f_{i} +9f_{i+1}) $\n", - "という式が得られる。\n", - "\n", - "これは、4次精度の公式になっており、3ステップ(4次)のAdams-Moulton法と呼ばれる。 \n", - "右辺にある$f_{i+1}$の評価に関する計算コストの分だけ、3次のAB法に比べて増えることになる。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yI-0E3olcM4m" - }, - "source": [ - "### Adams-Bashforth-Moulton法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eLY3gCIokyI1" - }, - "source": [ - "AM法とAB法を組み合わせることで、使いやすい高精度な陽解法を作ろう \n", - "というのが予測子修正子法の発想である。\n", - "\n", - "4ステップのAB法を予測子, 4ステップのAM法を修正子として採用すると \n", - "以下の更新式が得られる:\n", - "\n", - "$\\begin{align}\n", - "x^{P}_{i+1} &= x_i + \\frac{h}{24}(-9f_{i-3}+37f_{i-2}-59f_{i-1}+55f_i) \\\\\n", - "x_{i+1} &= x_i + \\frac{h}{24}(f_{i-2}-5f_{i-1}+19f_i + 9f(t_{i+1},x^P_{i+1}))\n", - "\\end{align}\n", - "$\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 225 - }, - "id": "xu2CrHFXFh_p", - "outputId": "7c978fc2-0411-46a9-c1cb-cb48ceaee61c" - }, - "outputs": [ - { - "data": { - "image/png": "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aOnqoilk0NLmi6bsD0dfVtbaiUSC+++/nzPPzB4RfuWVVzjnnHP4xz/+wZQpUzLlt99+OzvvvDMHHnjgNrRXREREGlE9gtugOOfWAZ/JK3sQeHCA9a4GrgZ/y6sqNW+bpO9V+uqrrzJz5kyOPPLIzLIddtiB8ePHc8stt3DeeecB0NXVxSWXXMK9995bryaLiIhIHdUjuL0K7BKYn5oqq58ye8aKco6eZ5fSPaKZidPLv1dp+hy3rq4ujjrqKK688ko+//nPA9DW1sZdd93FO9/5TiZNmsSpp57KihUrePnllzO9be3t7Rx88ME8/rQ3ygEAABzUSURBVPjjOb1yIiIisn2qR3B7AtjTzGbgA9vJwEfq0I4ho62tjZ/+9Kccf/zxfO5zn8uUT5o0ibvvvpu5c+cyceJEjjrqKNasyZ72N336dBYvXpxz/puIiIhsv6o9HMgC4BFgbzNrN7MznXNx4BzgHmAZcItzbmk129EIDjroIA444AAWLFiQUz5jxgwWLlzIJz7xCR5//PE6tU5ERESGgqr2uDnnTilSfhcNPIxHpXR0dOTM33HHHZnpZ57JDn134IEH9rviFPx4byIiIjJ8DPk7J4iIiIiIp+AmIiIi0iAU3CpgSI41IiIiItsdBTcRERGRBqHgJiIiItIgFNxEREREGoSCW53ddtttmBnPPfcc4If4aG1tZfbs2Rx44IEcdthhPP/88znrrFq1ipEjR/KDH/ygHk0WERGROlFwq7MFCxZw+OGH5wy8u/vuu/PUU0+xZMkSTj/9dC655JKcdc4//3yOPvroWjdVRERE6kzBrY46OjpYtGgR1157LTfffHPBOps3b2bcuHGZ+dtuu40ZM2aw33771aqZIiIiMkTU416lQ853H/8uz61/bpu2kejsJBkOEX2uFYB9xu/DVw79Ssl1br/9dubNm8dee+3FhAkTePLJJ5kwYQIrVqxg9uzZbNmyha6uLh577DHAB73vfve73HfffTpMKiIiMgypx62OFixYwMknnwzAySefnDlcmj5UumLFCn784x9z1llnATB//nzOO+88Ro4cWbc2i4iISP2oxw0G7BkbSNI5up9dSveIZiZO37OsddavX88DDzzA008/jZmRSCQwM84+++ycesceeyxnnHEGAI899hi33norX/7yl9m4cSOhUIiWlhbOOeecbWq/iIiI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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def ABM(x0,m=4):\n", - " xsABM = [x0]\n", - " x = x0\n", - " fs = [ 0.0 for i in range(m)]\n", - " for i,t in enumerate(tr):\n", - " if len(xsABM) < m : #RK4\n", - " f1 = f(x,t)\n", - " f2 = f(x+0.5*h*f1, t+0.5*h)\n", - " f3 = f(x+0.5*h*f2, t+0.5*h)\n", - " f4 = f(x+h*f3, t+h)\n", - " x += h*(f1 + 2*f2+ 2*f3 + f4)/6.0\n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " else:\n", - " f1,f2,f3 = fs[1:]; f4 = f(x,t)\n", - " ## 予測子\n", - " xp = x + h *(-9*f1+37*f2-59*f3+55*f4) / 24.0 \n", - " f5 = f(xp,t+h)\n", - " ## 修正子\n", - " x += h *(f2 -5*f3 +19*f4 +9*f5 )/24.0 \n", - " fs[0] = f1; fs[1] = f2; fs[2] = f3; fs[3] = f4\n", - " xsABM += [x]\n", - " return xsABM\n", - "\n", - "xsABM = ABM(x0)\n", - "fig = plt.figure(figsize=(10,3))\n", - "plt.xlabel(\"t\");plt.ylabel(\"abs. diff.\");plt.yscale(\"log\")\n", - "plt.plot(tr,abs(xe-np.array(xs[:-1])),label=\"Euler\")\n", - "plt.plot(tr,abs(xe-np.array(xsRK4[:-1])),label=\"RK4\")\n", - "plt.plot(tr,abs(xe-np.array(xsAB4[:-1])),label=\"AB4\")\n", - "plt.plot(tr,abs(xe-xsABM[:-1]),label=\"ABM4\")\n", - "plt.legend();plt.show();plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6DUB18TOpj-9" - }, - "source": [ - "1桁程度、AB法よりも精度が改善していることがわかる。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_ODE.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_PCA.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_PCA.ipynb deleted file mode 100644 index cd685c53..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_PCA.ipynb +++ /dev/null @@ -1,1322 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dG3tCL-_aQHA" - }, - "source": [ - "# 主成分分析" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bzqUoCdAaRxG" - }, - "source": [ - "このノートブックでは主成分分析(principal component analysis, PCA)を説明する。 \n", - "基礎の理解に重点を置くため、scikit-learnなど既存のライブラリにあるPCA関数を利用するだけではなく、 \n", - "定式化とnumpyを用いた実装を行う。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "70ilJPZVd6LC" - }, - "outputs": [], - "source": [ - "from matplotlib import pyplot as plt\n", - "import numpy as np" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WEJasJ_KbKVJ" - }, - "source": [ - "## 主成分分析とは?" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "U6D19ywlbNFz" - }, - "source": [ - "まず主成分分析とはなんだろうか? \n", - "\n", - "Wikipediaには\n", - ">相関のある多数の変数から相関のない少数で全体のばらつきを最もよく表す \n", - "主成分と呼ばれる変数を合成する多変量解析の一手法\n", - "\n", - "とある。\n", - "\n", - "具体例を考えてみよう。 \n", - "ある集団200人の身長($x$)と体重($y$)のデータが下のように \n", - "得られているとしよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "id": "YZT6a_-cd5lG", - "outputId": "ce4dfd59-4bc4-427d-c990-fb89f88afc40" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "mean = [165, 68]\n", - "mvec = [0,0]\n", - "cov=np.array([[1,0.8],[0.8,1.0]])\n", - "np.random.seed(1234)\n", - "x=[]; y=[]; n=200\n", - "for i in range(n):\n", - " tx,ty = np.random.multivariate_normal(mvec,cov)\n", - " x += [ mean[0] + 8*tx]\n", - " y += [ mean[1] + 6*ty]\n", - "x=np.array(x);y=np.array(y)\n", - "xm = np.mean(x);ym = np.mean(y)\n", - "xp = np.arange(140,190,1); yp = np.corrcoef(x,y)[0,1] * (xp-xm) + ym\n", - "\n", - "fig = plt.figure()\n", - "plt.xlim(140,190); plt.ylim(40,100)\n", - "plt.xlabel(\"height [cm]\")\n", - "plt.ylabel(\"weight [kg]\")\n", - "plt.scatter(x,y)\n", - "plt.plot(xp,yp,color=\"red\",linestyle=\"dotted\")\n", - "plt.show();plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "RxtGVOUQeVpB" - }, - "source": [ - "上では\"何らかの方法で\"データの分布に沿った直線を描いてみた。 \n", - "\n", - "この赤色の線を\"体の大きさ\"とでも呼ぶことにすると、 \n", - "元々は身長(x)と体重(y)の2つの量によってこの集団のデータを表現していたが、 \n", - "集団に属する個人をこの\"体の大きさ\"という1つの量で \n", - "大雑把に指定(あるいは特徴づけ)できそうなことがわかる。\n", - "\n", - "主成分分析は**高次元のデータを特徴づける少数の\"軸方向\"を見つけて \n", - "その新たな軸に沿った値(主成分)でデータを表現し \n", - "データを低次元空間で近似する方法**と言える。\n", - "\n", - "\n", - "人間が視覚的に理解できる情報は、3次元までである。 \n", - "一方でデータを分析していると、多次元(4~数十など)のデータを扱うことが度々あるが、 \n", - "主成分分析などを用いて特徴を抽出することで解釈がしやすくなったり、 \n", - "大量のデータがあったときその冗長性を削減することができる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LwJ96CHthWmK" - }, - "source": [ - "## PCAの定式化\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iDqwKCP325Hl" - }, - "source": [ - "主成分分析の大雑把なモチベーションがわかったところで \n", - "上の軸方向/主成分の決め方を定式化しておこう。 \n", - "\n", - "主成分を決める方針は主に、[主成分の分散を最大化する方針]と \n", - "[情報量削減(主成分軸への距離の二乗和)の最小化]の2つがある。 \n", - "以下では、前者を採用することにしよう。\n", - "\n", - "\n", - "$p$次元の量を持つデータが$N$個観測されているとする→$\\{ x_{ni}\\} (n=1,...,N, i=1,....p)$ \n", - "このとき$p$個の各変数について、平均値を$\\bar{x}_i = \\frac{1}{N} \\sum_{n=1}^N x_{ni} $で定義する。\n", - "\n", - "このとき、$p$次元の成分それぞれの共分散を行列にもつ共分散行列${\\bf C}$($p\\times p$行列)は \n", - "$\n", - "{\\bf C} = \\frac{1}{N} \\sum^N_{n=1,N} ({\\bf x}_n - {\\bf \\bar{x}})\\cdot ({\\bf x}_n - {\\bf \\bar{x}})^T\n", - "$ \n", - "とかける。 \n", - "\n", - "次に、各データを成分にもつ行列\n", - "$\n", - "{\\bf X} = \n", - "\\begin{pmatrix}\n", - "x_{11} & x_{12} & ... & x_{1p} \\\\\n", - "x_{21} & x_{22} & ... & x_{2p} \\\\\n", - "\\vdots & \\vdots &\\ddots & \\vdots \\\\ \n", - "x_{n1} & x_{n2} & ... & x_{np} \n", - "\\end{pmatrix}\n", - "$\n", - "と \n", - "成分が1の$N$次元列ベクトル$1_N$で以下の($N\\times p$)行列を定義する: \n", - "$\n", - "\\tilde{{\\bf X}} = {\\bf X} - 1_N {\\bf \\bar{x}}^T\n", - "$\n", - "\n", - "これを用いて、もとの共分散行列を書き換えると...\n", - "$ {\\bf C} = \\frac{1}{N} \\tilde{{\\bf X}}^T \\tilde{{\\bf X}}$とかける。\n", - "\n", - "次にデータ集合をある$p$次元の係数ベクトル${\\bf u}$で$p$次元空間上に射影する:\n", - "$\n", - "{\\bf s}_n = {\\bf u}^T \\cdot ( {\\bf x}_n - {\\bf \\bar{x}})\n", - "$ \n", - "これを全データ点($n=1,2,...,N$)に対して行って$s_n$を縦に並べると$\n", - "{\\bf S} = \\tilde{{\\bf X}} {\\bf u}\n", - "$と書くことができる。\n", - "\n", - "\n", - "\n", - "このとき、適当な係数ベクトル${\\bf u}$のもとでの射影方向の分散は \n", - "$\\frac{1}{N}\\sum^N_{i=1} |{\\bf s}_i|^2 = \\frac{1}{N} ({\\bf u}^T\\tilde{{\\bf X}}^T) (\\tilde{{\\bf X}}{\\bf u}) = {\\bf u}^T {\\bf C} {\\bf u}\n", - "$\n", - "となる。\n", - "\n", - "今考えたい問題は、この分散を最大化するような射影${\\bf u}$を見つけることと言い換えられる。\n", - "\n", - "加えて、以下ではそのような射影として${\\bf u}^T \\cdot {\\bf u}=1$という条件を課すことにする。 \n", - "($p$次元空間での正規直交基底間の変換を探すことに対応)\n", - "\n", - "そのためには$J({\\bf u}) = {\\bf u}^T {\\bf C} {\\bf u} - \\lambda ({\\bf u}^T\\cdot {\\bf u}-1)$の最大化を考えれば良い(ラグランジュ未定乗数法) \n", - "$\\frac{\\partial J}{\\partial {\\bf u}} = 2 {\\bf C} {\\bf u} - 2\\lambda{\\bf u}=0 $から、今解きたい最適化問題は固有値問題: \n", - "${\\bf C} {\\bf u} = \\lambda{\\bf u}$に帰着されることがわかる。\n", - "\n", - "\n", - "この表式と上の分散の式から\n", - "$\\frac{1}{N}\\sum^N_{i=1} |{\\bf s}_i|^2 = \\lambda$となり \n", - "**未定乗数$\\lambda$がいま最大化したい分散に対応している**ことがわかる。 \n", - "\n", - "最大固有値$\\lambda_1$に属する固有ベクトルを第1主成分ベクトルと呼ぶ。 \n", - "第2主成分からは同様にして、第1主成分ベクトルと直行する固有ベクトルを考えれば \n", - "分散を大きくする軸を順番に決定することができる。\n", - "\n", - "\n", - "また、$\\frac{\\lambda_i}{\\sum^p_i \\lambda_i}$を$i$番目の寄与率と呼び \n", - "各主成分が元のデータに含まれる特徴をどの程度表現しているか \n", - "あるいは幾つ主成分を保持しておけば元のデータに含まれる特徴を十分に表現(近似)できるのかの指標として用いられる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "H3O1n9lz4XUZ" - }, - "source": [ - "## sklearnライブラリを使う方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nzN4jD9e4dAO" - }, - "source": [ - "irisデータを使ってsklearnで主成分分析をやってみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Zv70QfNg4aRG" - }, - "outputs": [], - "source": [ - "from sklearn import datasets\n", - "dataset = datasets.load_iris()\n", - " \n", - "target_names = dataset.target_names\n", - "targets = dataset.target \n", - "feature_names = dataset.feature_names\n", - "features = dataset.data" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "czUhoCKO5OVh" - }, - "source": [ - "このデータには、3種類('setosa,versicolor,virginica)のアヤメについて \n", - "がく片の長さ・幅と花弁の長さ・幅のデータが入っている。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "mm9pfNPO5AAF", - "outputId": "fea74b6f-38d5-4454-e6c2-7636921675df" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['setosa' 'versicolor' 'virginica']\n" - ] - } - ], - "source": [ - "print(target_names)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 206 - }, - "id": "bB57ea0d5dDH", - "outputId": "38f05195-5869-4f7f-ae6d-9fc3ec78b600" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)target
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
\n", - "
\n", - " \n", - " \n", - " \n", - "\n", - " \n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - " sepal length (cm) sepal width (cm) ... petal width (cm) target\n", - "0 5.1 3.5 ... 0.2 setosa\n", - "1 4.9 3.0 ... 0.2 setosa\n", - "2 4.7 3.2 ... 0.2 setosa\n", - "3 4.6 3.1 ... 0.2 setosa\n", - "4 5.0 3.6 ... 0.2 setosa\n", - "\n", - "[5 rows x 5 columns]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import pandas as pd\n", - "from pandas import DataFrame\n", - "df = DataFrame(features, columns = feature_names)\n", - "df['target'] = target_names[targets]\n", - "df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "7PGbM_BA5sdr" - }, - "source": [ - "\n", - "- がくの長さ/sepal length (cm)\n", - "- がくの幅/sepal width (cm)\n", - "- 花弁の長さ/petal length (cm)\n", - "- 花弁の幅/petal width (cm)\n", - "\n", - "の4次元のデータで、可視化して理解することは難しい。 \n", - "そこで、このデータを3次元/2次元に落とし込んで理解することを目指す。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 654 - }, - "id": "knCm13FX6b3H", - "outputId": "5f95b71a-b7ff-4eed-df6b-8fa9a98834d1" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "固有値 [4.22824171 0.24267075 0.0782095 ]\n", - "固有ベクトル [[ 0.36138659 -0.08452251 0.85667061 0.3582892 ]\n", - " [ 0.65658877 0.73016143 -0.17337266 -0.07548102]\n", - " [-0.58202985 0.59791083 0.07623608 0.54583143]]\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAS4AAAEuCAYAAAAwQP9DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9eXRb93nm/7n3YiUIgjtFihRJ7ZRlS7I2y3YdO0nj1EndTCebk7bO0nRJOpOkaZZ2TnM8mea0v6Z1pmlOe5rUPWlPJpuTTG2PXSexE7ux41ibxUUSSXETV3DDQuzAXX5/UPcKAAEQACEJlPGc42NJxL33C/DeB+/7fp/3eQVN06igggoq2EwQb/QCKqigggoKRYW4Kqiggk2HCnFVUEEFmw4V4qqgggo2HSrEVUEFFWw6VIirggoq2HQwrfPzilaiggoquFEQsv2gEnFVUEEFmw4V4qqgggo2HSrEVUEFFWw6VIirggoq2HSoEFcFFVSw6VAhrgoqqGDToUJcFVRQwaZDhbgqqKCCTYcKcVVQQQWbDhXiqqCCCjYdKsRVQQUVbDpUiKuCCirYdKgQVwUVVLDpUCGuCiqoYNOhQlwVVFDBpkOFuCqooIJNhwpxVVBBBZsO6zmgVnATQlEUIpEIoihiNpuRJAlRrHyHVbB5IKwzybpi3XwTQdM0IpEIALIso6qq8TNRFDGZTBUiq6CckNW6uUJcrxOoqkoikeDkyZMcPHgw5Wf6PVAhsgrKDFmJq5Iq3uTQNA1FUUgkEgAIgmAQlSAIKf+XJMk4RtM04vE48XgcgEgkQnV1NTabrUJkFdxwVIjrJoamaSQSCRRFQRAE4z9N0wyyygT9dcnnuXz5Mu3t7SiKAmDUx0wmU4XIKrjuqBDXTQpVVYnH4wZJpUdX8Xgci8WSk8B06MdLkoQkSUZEFovFiMViQIXIKri+qBDXTYbk1FAQhDUEomkao6OjeL1eNE3D4XBQW1tLXV0dVVVVWYksPcVMj8jSiUySJKM+ZjKZ8iLICirIFxXiuomg16VUVV1DLgDhcBi/34/T6eTIkSPGv/l8PsbGxgiHw1RXVxtEZrfbC4rIktehqirRaNT4twqRVVBKVHYVbxJkSw11uN1uRkdHMZlM3HrrrZhMpjW1Lk3TCAaD+Hw+vF4vkUgEp9NJbW0ty8vLdHZ2UlNTU/Da9Iisv7+fXbt2YbVaDSLTU8sKkVWQAZVdxZsVmqYhyzKyLGdMDRVFYXBwkHg8zrFjxzh//jzZvqwEQcDpdOJ0Ouno6EDTNAKBAD6fj5WVFc6fP09tba0RkdlstrzWmEykev0rW0RWIbIK8kGFuDYxdG1WttQwGAzS39/P1q1b6ejoMH6+TpRtQBAEampqqKmpIRwO09raCoDX6zXIsKamxiAyq9Wa93nzTS0rRFZBJlSIaxNC0zSi0SjhcNgoqKcTwczMDJOTk9x66604nU7jZ8USgH6cy+XC5XIBq8S5srKC1+tlbm6ORCKBy+Wirq6O2tpaLBZL3ueuEFkFhaBCXJsMemro8XhYXFykp6cn5eeJRILz589jMpk4duwYJlPqrzh5d3CjEEXRSB1hNS3ViWx6ehpFUVKILF9kI7JIJMLc3By1tbU4nc4Kkb2OUSGuTYTk1FAUxTUE5Pf7OX/+PN3d3UZal45iiSsfYpAkibq6Ourq6oBVIvP7/Xi9XiYnJwmFQoyPj9PY2Ehtbe0aUs11bb1+Fw6HcTqdBpEl184qRPb6QYW4NgEyabOSiUvTNCYmJpifn+fgwYNUVVVlPddGIq5Cj5Mkifr6eurr6wE4d+4ctbW1+Hw+JiYmAIz6mMvlyovINE0z3r++EZEckVWI7PWBCnGVObJps3QCisViDAwM4HA4OHbsWFkr1gVBoK6uji1btgCrDhU+nw+Px8P4+DiCIKQQmd47mc95k3dUMxGZyWQy/qsQ2eZHhbjKGLm0WYIgEI1GOX36NLt376apqSmvc24kVSxVbUyHyWSisbGRxsZGYLU+5/P5WFpaYnR0FEmSDCKrqakx2o3WI51MRJYcsepfBHV1dUYbU4XINhcqxFWGWE+bpaoqk5OTrKyscOedd+atp4JrQ0ClgtlspqmpySDheDyOz+djYWGBkZERJElClmUCgQAOhyPv6DKdyEKhED6fL+Vz0y18TCYToihWiKzMUSGuMsN6bTuRSIS+vj5qamoKEoHquJ41ro3CYrHQ3NxMc3MzsEpk/f39LC8vMz09jdlsNjYDnE5nQWmyKIopNj6KoiDLshHRVYisvFEhrjKCLMspvlnpD8v8/DwjIyPs27cPq9XK0NBQUde5VruK1xoWiwW73c62bduorq4mFovh9XqZnZ0lEAhgsVgMIquurs5KZOnpZib5hU5k+s+Ti/0VIrvxqBBXGSA9NUx/KBRFYWhoiGg0ytGjR7FYLEQikQ0RUDmnjPnCarWyZcsWo9gfjUYNDVkwGMRqtaYQWXLnQKF+ZOlEllzsrxDZ9UeFuG4wZFkmHA5jNptztu20tbXR09OzYeIpp+J8MchFOjabjdbWVlpbW43uAl1DFgwGsdvt1NXVpVhU54NMRCbLMmfOnGH//v2G40WFyK4fKsR1g6B/iwcCAS5cuGDYzCT/XG/b2b9//xpXho0S0MrKCiaTCbvdvqH3Ua4QBAG73Y7dbqetrc0YFOL1epmfnycajRIIBIyILJcXWaZzC4KALMuG9iw9za8Q2bVFhbhuAJItlfUt/mTIssyFCxcQBCFj2w5sLAKampoy0h69UVp/gPPtL7xRKPY9C4JAVVUVVVVViKJIPB6nsbERr9dreJE5HA7jc8jHiyw5+kuPyBKJRIXIriEqxHWdka7NSm/d0dt2urq6aGtry3qeYogrEokwOztLQ0MD+/fvN3yy9P7CmZkZFEUxtFPJbTnlkipCaTYKRFHE4XDgcDhob29H0zRCoRBer5eRkRFjOEgykRWyvmTxbDYiS56gVCGywlAhruuEbNosnbj0gRRut5sDBw7gcDhynq9QIllYWODSpUs0NDTQ3NxsHJ/cKN3d3Z3SXzgxMWGo2aPRKNXV1Rv6DMoFmepkgiBQXV1NdXW14UUWDAbxer0MDw8Ti8VSiMxmsxWUWmYjMkVR8Hq9tLW1pfj1V4gsNyrEdR2QS5ul10rOnj1LVVVV3m07uhnfelBVleHhYUKhEEePHmVqaion4aX3F+pqdo/Hw+joKNPT09TV1VFfX1+wdqoUyEc5X4pzJJsqbtu2DVVVDSLTvchisRhut7sgLzL93DqRybKM2+2msbGRWCxm3B/pg0cqRJaKCnFdY+hRVjZLZa/XSygUYteuXYbQMh/kE3HpYtXm5mb27NljXL+QSE1XsweDQaqrq3G5XIb/1tDQUFbJQTlDjzQLgSiKhqliZ2cnqqpy8uRJotEoFy5cIJFIFFUr1J0+0iMynRj1a+tEpvv1b4bP+VqiQlzXCOu17WiaxsjICF6vl6qqqoJIC9av8+ip4b59+wybmXyOWw8Wi4WWlhZaWloAjJ06XXJQVVVV1E5dvihVxLVR6O4UXV1ddHV1pZgq6rXCZCIzm80Zz6MTVzIypZaZiEyvkb0eiaxCXNcA61kqR6NR+vr6qK+v5+jRo7zyyislvXZyapjpm7+UOq50yUE4HE7ZqXM6nSkeXeWCUj/omWqFuUwVdSLLN21Nbk8CUqaMi6KYUux/PRBZhbhKiPRx95nSET0S6unpMepIpUKm1DAd13J3UBCENTt1wWAQj8fD4OAgfr+fkZERGhsbNyS9uB41ro2uYz1TRU3TcLlcBdXGkq+ZTmTLy8vMz8+zc+fONURWzlZHxaJCXCVCpnH3yVBVlaGhIcLhcNZIaCPIlhqm43rKGpIL3J2dnZw7d47m5maCwWBO6UUulGLtpSKuQpC+6SHLMn6/n7m5OXw+H6dPn075LArxIkv+s05SuSKym4HIKsRVAqiqitvtJhwO097evuahCIVC9PX10drayt69e0v60OSTGiZDJ65C11AKwhOE1alBTU1NKdILj8eTIr0o1EiwUNwI4kqHyWSioaEBQRCwWq10dXUZn0Uxpop6rSxbRHazEVmFuDaA5AK8LMtEo9E1D8Ts7CwTExPccsstxnScUkFVVU6dOpUzNcyGG/3gQnbpRbKRYLr04nrJIfI5Rymg73Cazea8TRVdLldGj7ZMBHSzElmFuIpEujZLkqQUXZXetqNpWta2nY1gYWHBSDsLKXzrkVOhD971SDEzGQkm29ZYrVYikQjBYJC6urqiyaec0s1shLOeqaLJZEpxh812nnRkIjL9Xo7H40b/bEtLS4qOrNxQIa4ioBfgk7VZyYLQlZUVBgYG6OzspK2t7Zqlhrr0oBAIglCwO8KNQibpRW9vLzMzM1y6dMl4//X19Xn1FiZjo78T/Qtro8iXANNNFXUvMrfbzfDwMJqmYbPZ8Pv9BQmD0+uxsViMmZkZamtrU+QXg4ODNDc309XVVfibvAaoEFcByKXN0gnh8uXLzM7Octttt5W8RSZ917AYGUU59RwWCrvdjtVqZe/evZhMJkN6MTo6ukZ6kcsZtlSpYikikXwjpXSke5FdvnyZUCiUEp3qhX6n05n3+9U0zfDh1/+uaRqPP/44d911V4W4NhvW02YpisLi4qLh6FBIYTmfgnm+u4b5XEtHIQ9wuRFeJulFIBBIacnJpmQvlzoZFE9c6dDrgfo8TV0YPD09TSAQMLzIamtrc3Y46I4lOvR7PRqN5hx7d71RIa51kK7Nyta2c/HiRex2O/v27Sv4Gnq0lonsCt01zAflRECFIhth6DuWyS052VwvdMnKtVjHjTqPqqop6vxsXmTpHQ61tbU4HA5jDYqiZCRS3fanXFAhrhxYT5ulaRpjY2MsLy+zb98+pqamirpOtmgmH0FpMddSVZWxsTFkWaahoSHjLlUmbCbCy+Z64fF4WFxcxOfzGULYYqQXpYqUVFUtycZNNsKBVC+yrVu3pnQ4TExMEAqFDC8yyCycDofDlYhrMyDXTENYbdvp7++ntraWI0eOEIvFii56Z3J6yDc1LPQbW5ZlpqenaW1txel0GtfRB03U19dnTCXKQT4BxUcoydILVVWpr69H0zRDbmAymQqaGFTKSOl6p5yZ0mzdi2x+fp5IJEIsFjMiMrvdTiQSyZu4nn32WT7+8Y+jKAq/+7u/y+c+97mUn09OTvLwww/j8/lQFIW/+qu/4oEHHijo/VaIKw3JqWGm5miAxcVFhoeH2bt3Lw0NDUD+NjOZkGwmWEhqWOgNv7y8zOjoKA0NDWzfvh1Zlo0du3R/dv0bWN+xu5mgaRpmsxmXy2XIDdInBq3nelHKVPFGFvkh1YvMbDYTi8Wor683TBU/+clPEolEeOaZZ7DZbHR2dmY9l6IofOxjH+MnP/kJ7e3tHD16lAcffDClhPIXf/EXvPvd7+YP//APuXDhAg888AATExMFrblCXEnQ3UAtFkvWth2dVI4cOZLSZ7YR4tLTNz01bGpqyis1zFcFr2ka4+PjLC0tsXPnTqLR6JrXpA+a0L+BL126RDQaRZIkqqqqaGxsLHt75/WQ6TNL36XLVBOqr6833FDLrThfqvPoxflkL7If/ehHPPDAAwSDQT760Y/yW7/1Wzz00EMZjz958iQ7d+5k+/btALz3ve/liSeeSCEuQRBYWVkBVh1/czn9ZkOFuK5ATw3PnDnDnXfeueamDIfD9PX10dLSkpFU0i2YC4EoiiwtLTE5OVnQrqFOeLlu2EQiQV9fH9XV1Rw5coSlpSUikci65012A9VrYqFQiIGBAVRVxeVyUV9fX1BfXSlwvXYEs7le6NILm81mdEsUOpQ3GeVGXJlqbiaTiXg8zmc+85l1m8JnZmbo6Ogw/t7e3s6rr76a8ppHHnmEt7zlLfz93/89oVCI5557ruB1vu6JK12blSnSmpubY3x8PGfbTrHCTlVVCQQCxGKxgncN15Mo+P1+BgYG2Llzp5ESFiNrEEXReJC3bt1qNAh7PB7GxsYytuaUMwolv0w1obm5OWZnZ1OkFzqRF/I7LLfITVGUjOQky3LJIu1vf/vbfOADH+BTn/oUr7zyCr/927/NwMBAQet/XRPXetosWZYZHBxEluV123aKibj01FAURXp6egq+MbKRkKZpTE1NMTMzw6FDh1KKqhtpstaJWW8Q1ut76a05NpvNILJSmwmWQ5+hvktXU1PD7t27U6QXuvdWvq4X5Rhx5ep5XA9bt25N2V2fnp5m69atKa957LHHePbZZwE4ceIE0WiUpaWlgsw0X5fEtZ42S/eR6u/vZ9u2bWzdurXku2rJu4YzMzMlM/fTeyRFUcwohL0Wu4PJrTnJmqHx8XFCoZChaFcUpeTXLhalTDczSS98Pt+agSOZpBflRlyZZBWF9LYePXqUS5cuMT4+ztatW/nOd77Dt771rZTXbNu2jeeff54PfOADXLx4kWg0amyS5IvXHXFlSg3TMTk5ec3adjLtGs7NzZWEuILBIH19fXR2dq75lktGsRFHPsdl0gzpZoKhUIhz584Zu3XJTqCFoBzEo7lkDJIkpUSk6U4PydKLGyGHWO882WqW+azTZDLx1a9+lfvvvx9FUfjQhz7ELbfcwuc//3mOHDnCgw8+yN/+7d/ykY98hC9/+csIgsA3vvGNgj+D1xVxrafNSiQSRCIRAoFAwW07+SDbrmGx9bHk9FSvw9166604nc6sxxTbulPswyUIV80EfT4fe/bsIRKJ4PF4mJycBKC2tpb6+vq8hbAbxfXuVUx3ekiWXiwvLxOLxQwxbLEDR3IRTiFIb/mBwj+vBx54YI0u6wtf+ILx53379vHyyy9vaJ2vC+LKR5vl9Xq5cOECNpuNXbt2lZy0cglKN0ImiqJw4cIFYrFYXvY5N7rnUBTFFEtjPRrR7VrMZnNOIWwpcKN7FZOlF4lEgo6ODiKRyBoNXb4TteHaClnj8XjBFtPXGjc9caX7ZmUSEo6Pj7O4uMihQ4cYHBwsqe2LqqpcunSJYDCYddewWA2Yoij09fXR1tZGT09PXjfuRiKna0F46dHI9RDC3mjiSj+P3jeYLr3QJ2rn63pRivVkirhCoVDZiZBvauJaLzWMxWL09fVRU1PD0aNHjZFTpSKu5NTw9ttvz3pjFUMKi4uLeL1eenp6ctazMqGcew7ThbDhcBiPx2MIYWOxGPPz8xsatgHl48eVHuHk43qRPC2o1GLgTBFXufUpwk1KXLl8s3QsLS0xNDTEnj17DLtcYI2TaTHXFgShIBuaQshS01bnMfr9fhobG3PWszLhRqeKhSD5IdaFsCdPniQcDqc4PhQqhC3FF9P1atXJ5XqRLL3Q7/eNNmxnirgikUhZOUPATUhcmqaxvLxsWHVkatu5dOkSgUBgTdsOrJJIsdv2es1pdHQ0Z2qY6bh8yESPEGtrazl8+DDnz5+/bhbM5UB4+sTn7u7uFNlBMULYckoVCzlPNunF/Pw8586dyym9KHY9uttuOeGmIi5Zlo0Wl2xtO/39/TQ1NXH48OGMN8xGU8XTp0/T3NycMzUs5pr65sHu3buNelAxZFIOBFQqpMsO8hXClluNayPn0T8Dq9XKkSNHckovinW9iEQilRrXtUA+bTtut5vR0VFuueUWamtrs56rWOJaWFggGAxy4MCBghTAkJtMNE1jYmKChYUFbr/99pQbaCMklEgkCnK13AyEt54Qtrq6mvr6+pIZCZYiVSx1J0Au6UU+rheZUG4mgnATEFe2th39hlAUxShqHjt2bF3BY6E1ruRdw9raWmpqagp+D9nIMpFIMDAwgM1mMzYPklFsxBWLxThz5gwmk4lEImE0TNfV1ZV8GtGNQi4hbDgc5syZMymN4oUKYUulmyoFcpHfeq4X+UgvCvHiul7YtHdpettO8kOtE0E4HGZgYID29vaMg1ozoZAaV/qu4blz54qK1jIJUPVJQdu3bzduukxrLYS4NE3D7XazsrLC8ePHDZLSG6YvX76MIAjU1dXR0NCwJrVIvlYoJhNJqLjsJsxSeTdVQ6oQdnFxkQMHDhhEVowQtlQR1/VWzWdzvRgZGSEajRKNRpmbm0uRXhRS41rPRBDge9/7Ho888giCIHDgwIE1LUH5YFMS13qWyqIoMjU1xezs7LpK8nTkmypm2jXciAJeJ2BYbUydmppat+WokOvpQlVZlqmrq6Oqqop4PJ5REOr1epmbm2NoaAibzWYMbNWJ68ykj+cGlwBwWE285/ZWmpzlJVDMBU3TUmo/cFUIu7i4mJcQtlQ1rlKg2HafdOmFvmsbj8eNLGVgYICLFy+mWNVkQz4mgpcuXeIv//Ivefnll6mrq2NhYaHgdcMmJK582nZCoRB+v5/jx48XHM6vR1y5BKXFenLpKZ9OLpqm5dVylG+qqHuJtbW10djYyNDQUNbXms1mY36fXifyeDy43W6i0ShuX5j/uKzS3uDEZjXjCyf49755PnLXtoLf941E+n2TTQg7NTVFIBBYk1KVSsdVCpQqbdWdYTs7Ow3phSzLPP/88/zsZz/jiSee4H3vex+f+MQnMh6fj4ng17/+dT72sY8ZXxiF1oN1bBriykeb5fP5OH/+PDabjZ07dxb1y5QkCVmWM/5sPUFpsYV9URSJxWKcPHmyoLQ2H+LSbab1TYlIJJI3uSbXifRhoytCNcroDMuL82iaht1uZ3rFRFxWsJjKo+ZTCmQTwuopFWAYKt5oR9hSu5/qEEWRO++8k5dffpmHHnqIBx98kJmZmazH52MiODw8DMBdd92Foig88sgjvPWtby14rZuCuPJp25mYmGB+fp5Dhw4xOjpatBYrG/nkIygtlrh8Ph9zc3McOXKkoOL+eruRo6OjeL3elMhwI7uDgiDQ3lSLsyZAk9OCBLi9K9iI0/vaWcxmszGQInnk1WZHJiHsxYsXjVSqWCFsqXCtrXH04rzD4WD37t0buoYsy1y6dIkXXniB6elp7rnnHmPoTCEoe+LStVmQeaZhLBajv78fp9PJsWPHDJHiRogr+dh8eg2Tjy10R3JoaAi/38+WLVsK3pHMRkLJds2HDx9e01KyEVlDk9PK/fua+MnFRQBqqqt595UaVzQaxePxGCOvdPlBfX192TXpbgSiKGKxWAxHh2KFsKWSl1yriEtHvsr5fEwE29vbOX78OGazme7ubnbv3s2lS5c4evRoQWsta+JKJBI5fbOWl5cZHBxMEWXCxifu6Mfm22tYzHWj0Si9vb00NzfT1NTE0tJSwWvNREL6buSOHTsMu+b1jin0Wrd3uNjT7Fizq2iz2WhrazN2rPRdO31TIJFI4PF4aGpqKhspQbFILs4XK4S9luZ/xSDbevLtVczHRPAd73gH3/72t/ngBz/I0tISw8PDRk2sEJQ1cUHmKEtVVaNf7/Dhw2s65jcScek6Lr021NPTY+yqrYd8i/N6n6R+bq/XW7SMIvl6MzMzTE5OcuDAgWsuGHRYTThyBFHJ8oPOzk4UReHs2bP4/X6mp6cRRdGIxpxO56ZLK3ORTrIQFjA2ONKFsKV639c64sqXuPIxEbz//vv58Y9/zL59+5AkiS996UsG4ReCsiauTKSlR0GNjY0cOXLkmrTtLC8vF9RrmLzeXNdNrjsl90kWGwXpRKmqqrF9ffTo0Zwi0o2kihtJbSRJwmKx0N3djcViIR6P4/F4mJ6eJhAIGOO/rsccR1VTmQnNIAkSLfaWosijEDmEPmQkXQg7PDxMIBBgaGioaCEsXJ8aV75fhOuZCAqCwKOPPsqjjz66obWWNXGlY35+npGRkXUdF4qNuCKRCIODgwiCkLWXMRdyEWY8HjcsdNLrThuRUcRiMU6dOkVLS0tenlwbSRVLCYvFYii6k3fthoeHicViG1K161A1lacmnuKFmRewmWy8b9f76K7p5rGlx/C95END40jTET518FOYxMIehWJ1XMmRaEtLC0NDQzQ3N2cUwtbU1OSVUl+PiKvS8lMA9BtDURSGhobyHuFVDHHpqWFXVxdLS0tF3ZTZiEuXaezatSujbqVY4WooFGJubo4DBw7knc4mE1e5pGeZdu38fr/RmgIYNaJCSPeJ8Sf41qVvYZWsKKrCF898kf0N+5lNzNJkXa2Jnlw4ybOTz/L2rrcXtOZS+dZnc4TVhbAmk8mIRLP1Fl7rWlmFuIqAPm1n69atebt8pivRcyHZ5ubo0aMoilK0mjeduDRNY3Jykrm5uTVjwnIdtx50+cfi4iIdHR15kxZsDlubbGp+t9tNOBymt7fXeJhzjT97fuZ5bJINq2QFCXwxHwPLA5gFs3GMKIgMeAY4seUE9db6vMmoFALUTG1DmZqkPR6PIYRNn6itf+ldy0EZlV7FArG4uMjFixfZv39/QVIBSZIyjplPR/KuoZ4axmKxDe1I6oQpyzIDAwNYLBZDppENhZCCLMv09/djs9nYvn078Xi8qLVuJiSr+QOBALt37zakB8nWxvX19SnRuFW0omqpv8tGWyOXI5dXR26h4Yl6eH7qeV6ee5nbGm7j80c/v0p066AUvYr5EI7Vas0phHU6nWiaVrChZCHryTTd+kajvFaTBpfLldcAiHTkkypm2zXciJGgHjkFAgH6+/vp6uqira0tr+PyIS59/Jh+3mLGmm0Ge5r1kF7sDgQCLC8vMzAwgKqqRo3o3dvfzaN9j+KP+9E0jRpLDX9y8E/4ws+/QEgJsRJfQdEUXBYXgiDQu9zLN4e+yYf3fXjdNVzvSUGQOaUOBAKMjY0RCARwu90pjeKFPjeKohRdT7zeKGvislqtead8yciVeqWnhun1so1YN4uiiM/nw+12FzSTMZ8al9vtZmxsLKVpvBgS0jRQVO3Kn9c+fAlFJZpQqbJISOLVn5Ur4QnCVWvj7u5uZFk2jPREv8hDrocYZ5w6Rx1v2/k2muxN/F7T79Gyt4W/7/97hrxDBnkICFzwXsjrutd6NmM+EEURl8tFbW2tEXXqQtjx8XEj5c7HERY2Pgz2eqKsiatYZIu4MqWG6Si2UK4oClNTU0SjUe64446Cvu1yRVz6ANlwOMzRo0dTvhEL2Y3UNI0fX1jgiV43i8sxXl48xYH93jEAACAASURBVLG6KHWuGhoaGqivr2fan+AH59zEZJUam4n3HG6jpWZzKd5NJhONjY3GHIHbYrfh8XhWU8u+MRaqF1BllVZLK3tr9zLkGzI+QxWVLmdXXtcpRY2r1DKGbELYZKcPvXaYqSVro8NgrydeN8SVr6C0mF+Q7r5QU1NDdXV1wSF6NrKMxWL09vbS2NiYMkA2+bh8ievclJ/vnZmh0WEiIin0Lchsb+/iwLZqlpeXOX1ugMeHItRV26ivqSaqqHz3zCwfe0MXkpi5c2EzIL1GpKfbg4OD9MR6eEV6hSV5CUEU2OrYysN7H87rvKWocZXKGicbAWYTwqa3ZOneW5mIq5zse5JxUxJXcqq4Xmq4UejN1/v370dRFObn5ze0Xh26x3z6FKJkFBIdDi8EETUFn8eP2STRUF/DRXeIdxxoxel0IrlaqF+apNaiEQqFiEajzMQFLo2LdGxpLNuUoRAIgkB1dTUWi4WDBw+iKAp7vHs4N3uOQCBAu62d5ZlltHpt3dSqlHKIjSLf82QTwuriZVVVsdlsVFVVGZF9NBrNOcvxRqGsiavYG0OPuPJJDYtFpuZrn8+34dadZAlFusd8ruPWXW9kBe9KgN1bG1fti+MKXfVXb8hqqwlBEDFbLTRWOQjHFcyRGHaLxNjYGMFgEEEQmJ+fp76+vqgibrkRnyRJNDc285bGtwBrewztdntKj2Eyyom4iulVTG/JUlWVc+fOGc+M/kU1NjZWUCdDPg6oAD/4wQ945zvfyalTpzhy5EhBa4cyJ65iocshzp49W1CvYb6IRqP09fXR0NCQ0nxdbKuRfrwsy5w/fx5Jkjh69GhJjAR/MbLEX/y/AQIxFYfdxlwgQSiqsq3WxDsOXLWErqsy89Zbmnj2/CKCAKIg8J4j7XQ2OaCjHb/fz+XLlwmHw0xPT68ec+WhrqmpKckDeD2Qi3DSh22k2xrX1NQYqRWU71DZYiCKIiaTic7OTmw2mzHv4JlnnqG/v5+3vOUtvPnNb+YTn/hE1qwlHwdUgEAgwN/93d9x/Pjxotd70xGXqqqMjo4SiUS45557Sp4a6o4Ue/fuXdMcupEeSVVVOXXqFB0dHbS3t+d1zHrENTzr5U9/2IvFZKKhpoqVqIxZEnlwu5nfuG8PFjF1rUe21bKj0UEwJlNrN+O0Xb09BEEweg27u7tTRKHDw8PYbDajyF9uo6ySkW+klMnWeGVlxRCDhkIhRkdH8/aoz7aW65kqrofklh+z2cyhQ4f4sz/7M0wmE1/+8pf5z//8z5yRdj4OqAB//ud/zmc/+1m+9KUvFb3WsiauQr+NdKuYxsZG7Hb7hkgr/QbXNI3x8XGWlpYyOlJA4cTVO+3nZ0OLqPEo7XKY++85jsvlyvv4XMTl9Xp5+pU+JJMZ5xUbhxq7idHFEA93i1TbTMRisTWfcV2VmbqqzDdn+hisTBbP6b2G5TY5qNgUL3kQK6w+pDU1NUaN02q1Gu83XxPF613jKuY8+qCMrVu38tBDD+U8Ph8H1LNnzzI1NcXb3va2m5e4CkH6rmExRXIdOiHoN18ikaC/vx+Hw8GRI0ey3iSFENdLI0t8/slBookEqqJSZZJ4wxts5E9bmYkrISv8YmAM98IC+3bv5JmpCeO9xBMqkijwi1kFaczDbW0OBE1D0cAk5n7Qcj2IyRbPenSSPDlIt7CRZXlDda5S1MhKVWcTBCGlNUcf+zUxMUE4HE7ZsctmonitdxVLcZ5wOFyyCFpVVf74j/+Yb3zjGxs+V9kT13rp0LXYNdRFqKIo4vf7GRgYYOfOnRmN+ZJRiK7qaz+fIJ6IUW0xYbHYWPSHeLrfzYfu6sx7nenXC8USfOr/vMrkikyV3c4WzxL7Wp2cnwus/jwu01Frp3cxzvirU2yrszLri+KNynTWVfEHv7KN5hJM60nvNdQtbKLRKK+99prxUOsTmK83rsX2fvrYr0AgkGKimMnaudwiLlj72RRiabOeA2ogEGBgYIB7770XWBVVP/jggzz55JMFF+jLnrhyITk1LOWuod72Mzs7y8zMTM4G6WTkK0/w+/0s+/xYTWaslqtpWUwurD6WTOrRaJSvPnWKqaBGe6MLURCY80e5d1cj7zq8lVlflGfPz7OjyYHbHaau2sJT/QvsaXawxWllzh/lKy9M8IW370bMIswtNlrRLWzcbjc9PT2GE2quhzoTStVmc611Sclq/q6urjXWzvpotGg0WpJoplS1skzI10QQ1ndAdblcKU6/9957L3/zN3/z+tpVLMahNF8IgsD58+eNBul8bYbzSRX1mYnvOtrFN07OEksoRqp2357Meq1c61RVFY/Hw5m+C7yyKDIXiBOIB+hqcGA3S8z6o/y3nQ0sB+O8NLqM/sxGEgqqBlVWE4Ig0FBtYSEQIxCVcdmvXb+arqWqrq5m27ZtGR9qvch/LQZu3AhBpa5oV6tUBk2DhONhupVuNL+Gx+NhYWHBcLsoN81UIcSVjwNqqbDpiKuQ1LCYmzQYDOLz+eju7i7YCzsXcSmKwsWLF1FVlWPHjnFcELHbrDw9MI/dLHKiVmPvlvw7/P2RBD88O8fwhI9b3SHOBmrwRVabiUNxhUF3gC0uGz2tq+esqzKzvbGK0cUQUVkjGk5gMQmYpdXPJyarSIKA3Xx9veDT21RisRjLy8uGutvpdBoPtSRJ1y3iiikxRv2jiILIDtcOzOLGyHwxsshX+r5CTIkhiiKn1dO81flWDrYdxGq14vF4DM+5ctrYKCRVhPUdUJPxwgsvFL2usieu9HRI10+tlxrqJFLIUIa5uTnGx8epq6tLGb5RyFozIRKJ0NvbS1tbGx0dHcbr3nOknfccWZU+/OIXv8j7OiuRBA9/4wyz3hCKqvFzt4hZ8tNZb2fKJzC/EkNRNaosCW7vWC33i6LAR+7u4qk+Ny/3ezm2q5ETXS5eGPFeSQ01PniiA4spc8pxvZqsrVZrysANvVakjwHTRaIbkSCsR1z+mJ+/PPuXLEWX0NDocHTwmds/Q5WpeE+qs4tniSpRWqpW66T+uJ9fen/J4Y7DKRFo+saGIAjU1dXR0NCQV6N0scj2uw2Hw+vWdm8Eyp64dBSaGhZCXLpneywW49ixYwwNDW3Isz4Z+mAMfSBrLuQbDTzVO82sJ4jDakJRVRAFPKEE7bV2VFVbJR9No95h4f/78SUefeetNDmtOKwm3nu0nW2JSU4c7yAWi3HnjgY84ThtLhttrvJKU9JrRbFYjNdee22NBKGhocEw1VsP+ZDvD8Z+wEJkgQZbw6ppY3CCH03+iP+y/b8U/V5kTU5Zn4iIqq0VoGYzUUxulE725i9V2rvRCT/XG2VPXPrswUAgkDJgYj3obT/rtaboLQ7Jnu0b8eTSobdLeDyevNadLsHIhuXlZS6NXUaUJEwmE0o8jkkAp82ENxzHE04gCVDvsLDFZWM5GGdkMURTht1CQRDY3ljFdvK7MW90y44+cGPPnj3A1aZhXXCcrGzP9Xtf7zN2h93YJJvxWotowR12Gz8v5nM42HiQn8/+HG/MiyRIhBIh7nbcvW4ElU0vp79np9NJIpEgHo9vaEd9vWGw5YayJ67BwUHMZnPBu4aFmAmmD9/Y6JSgZN1X+mCMbNCvmWt46OXLl5mfn+e/3n0rP3v8AtGEiqJoKILGfz3Uxht2NfBnT1ykyiLSWmMDTUPVtJLUra51QbuYemRy03C6sh1WW5Ki9ihz8hwOi4PDTYfzus7eur1c8l2iylSFhkZcibO79uoE52LWutWxlT/Y/wf8dPqnJNQEx1uOY3KbCjYSTNfLrayspJgo6tFabW1tQefe6DDY642yJ66enp6iR3dlIx9N04y5jKU2E1QUhVOnTrF9+3a2bNmS87UjC0Ee+X+DzPqjtNsV/nZvnCbX2l+JoigpPYyiKPLXv3kL//v5URZ9Mm8/tJWPvqEbi0nkc/fv4h9fHGchsGrpfKDdxa1b19pez8zMMDY2ZhSCi22c3iiemniKr1/4OjElxoktJ/jsoc9iN9kR5/sx930TFBl576+jdN2bkzDSle2JRIKXxl/ia699DVmWEUWR7TXb+XjPx9clnV/v+nXmw/OcXDgJwH1b7+PerfcaPy92Z7LL2cWHej5k/H3APbBhI0Gn04ndbuf2229PMVEcHR3FbDYbv9v1dmizfWnqyvlyQ9kTV7FpW7aIKxaL0dfXR21tbdYortiIa3Z2lkgkwp133rmu+6k3HOdD//YagZiMJAj0BmX+2/cG+PbvHk1Zkz4cor29PaWd4nh3Pd/8oIvTp09z/PgO49/v29NEW62d0YUgriozx7rqUpxMVVUlGo0arUuRSITl5WWjcVq/0WtqalLWcS2K82cWz/APA/+ApmlIgsQr7lf4St9X+NOOB7E9+8eAhiZIWOfOEnuDSqLjV/I+t9ls5smFJ6lz1GEz2ZBlmcvhyzw39Bzb1G0MDw8b2rH0nTuzaOYP9/8hD8sPIyJiM6XW/sqpOTr5HOkmitFoNKP/Vn19/ZrSRa6Iq0Jc1xGZCC8fj6tsx+ZC8kBWh8ORl2Vz/8wKCVXFcmV8varApcUQ3nCCesdqBKg3dGcr7GcTvO5pqWZPy9o1xONxent7EUXR8A9Ltj3WhaGzs7MMDg7icDgMTdW1wGuLrxFX4gYxCAicnv4p9pceQ5CjaFWNaLXdaIkQ5gs/IFoAcQEEE0EcJgcCAmaTGYvZQn1LPY2J1Ydbf6j1lqSGhoaUEWDZdhHLqTk61zlsNlvKDq3uv5Us/NVTy1w1rnwtyK8nyp64NuLJpT/U+jivhYWFdT2uoLCIS1fvNzc309PTwyuvvJJXKlFlkVDV1LRD08BullLGj+Uq7BcSBekDPHbt2sXIyEjG9ZnN5hRbl1AoxPLyMhcuXDCM5jYiRUhHnbUOk2gyPgNVjlEXDa1+EAgIYQ+iaEK11YEoFZyiHW46zCvzr1BrqSWuxpEEie3O7Qh+wYg8YDUK12c4BoPBnJEJlE7Eej09vdL9txRFMWQXExMTxg78ysoKTqfTWFdlV/E6Q08VdV8hm81m1IfyOVaW5XVf5/F4uHjxYopEI18ZxsF2F/taqxmYDRCTFSRB4L23b8EsavT29mKxWHI2dEP+pK4P2tAHeIyOjq5LeMkK987OTkKhEBcvXjSkCPq2vC5FKAa/1vlrPH35adxhN4qqYNFUPuMPg9kOSgJQEcLLCBYn8dveV/D5dRvm15Zeo9pczUf3f5RWUytuvzvldVarNWWqdnpkovuOuVwuJKlwAs2Gax1x5YIkSSnk7Xa7WVhYYHp6mmAwiN1u59VXXzWyiHywnongo48+yj//8z9jMploamriX/7lX+jszL83Nxk3NXGFQiHGxsbyKpQnY72IKzmCS7e4ybfR2iSJ/NP7D/Hv5+aY9kWoSXh58HBDXp5cA7Mr9E37cdnN2OXs19I3IVZWVlIGbRRTr0qXIujz/XQbG73fsK6uLm/Rb5Wpin+45x94yf0SUTnKselets98C81kQrPVQDyIVtVE9C1/jdp2GC2DDU8u2E12/mD/H6T8m8/nW9fpIj0y8Xq9KQVvp9OJoigbJrAbSVzpEAQBl8tFZ2enEW0//fTTTExMcM8993DixAk++clPsnv37ozH52MieOjQIU6fPk1VVRX/+I//yGc+8xm++93vFrXem5a4VlZW8Hq9HD58uOAcPVeNK3nQa6YIrhAfeItJ5N1HVrvnT506xeDgIAcOHFjjyaWqGt89PcPTA24CUdkw+lM1DYcW58QdCnZLKlnIskxfXx/V1dUpLq36Gjc6jzF9Wz55LFYh/YY2k403t7959S8td6GO/BQhvLiaLtpqib7jX1Cb92U9vlAUSjaSJK0peM/NzREOhw1PLp2wC9VRlSpVLKQ7JNd5jDFtV6Ltz33uczz99NO8+uqrvPrqqzkjr3xMBO+77z7jz3fccQff/OY3i15v2RNXob9YRVG4cOEC4XCYjo6OogqL2SKu9IGshRybDbpBYTAYZP/+/RmNBP9fv5tvn57GahKZ9ITRNGh0WKhzWBlzhzg96eNXdl51Yw2FQvT29tLd3U1ra+ua861HXHP+KAOzAWRVY3ezg+2NuWscenE7uWak9xuGw2GcTudqk/F6n4u9jvBD/45p7DlQ4ijb7kar2ZrykhvtDmGz2WhqaiISidDT02Nox6anp9E0LSWtvB521tfC/TQZmqZhsVi45557ch6fj4lgMh577DF+7dd+rej1lj1xFYJQKERfXx/t7e00NjYSDoeLOk8mHVemgayZUAhx6dGb1Wqlubk5a0Ptz0eWCMRkpr0Jolesb9yBGHUOCwIQk69Gh3qL0a233kpNzVr91npYCsZ58dIyTpsJSRD45cRqarXVmf+3enK/oT5teXl52SB+vak6uQh89WAnck/m1ppSGQmWivz09MrlchnDaL1e75o6YLb2nHKpk+nnSb//rlWnxDe/+U1Onz7Niy++WPQ5bhri0oll//79hqXuRiZSp48306f5rCfSzJe4dJLt7Oykra2NwcHBHIJZ8ATj2MwiiiYSTah4wwm84ThmUeDWthpDWb+wsGDsRAaiMpc9YcySyM4mh6Hn0iOuTDe8eyWKWRJxWFZvjVq7xqQnTHtNTeYbWdMgHgRzFYhryU0QBBxOBy6Xi5WVFXbt2kUwGGR6eppAIJBiKljq+QDXCtnITy86NzU1pbTn6MM2roXrw7WOuHSCXg/rmQjqeO655/jiF7/Iiy++uCETybInrvU+tGyTnvNp+ckGvcali1Xr6+vX1IlyHRuNyzx5cppZX4RD22p5095Upwm91Sg5KsqVvp3YXs9zg4vEFQ0BMIsgAJ31do52xml0mOnv70eSJGMnctYX5dHnRwjHZVQV9rU6+cM3dGOWxJzXMksiinr1ZwlFw2LKMt3YN0HV99+HEJgFQSJ6/9+kREsvzLzAV/q/QkSOsK9uH++wvWON5CIYDK5pWcmWapWLkWA+ZLGenbUgCMRiMfx+/xqxbyEoZjRZJmR6T4VEXOuZCAK89tpr/P7v/z7PPvsszc3NG1pv2RNXLiRrqNInPW+k31AURaLRKKdPn15XrJoODYHf/95FRpeixGQF+6lpPnBiG//9jTtSGq/TW40yrVc3GTzWVUdHnZ1wQmFhJQYIaGhMeCI0KAn+8xcn2dG5lW3bthnHfvfMNAlZZUuNDU3T6J9d4cykjzu663MS17Z6O6OLYeZWYogCmCSBfVuqEYS1N3LVD34LwT+FgAbI2H78acJN+1Ab9zDqH+XR3kcREamSqhj0DvJ/TP+H41wdSZW8g9fV1bUm1bLb7SmpVilwo8gvk5316dOnU8S+xZgJXsuIKxKJ5P2552Mi+OlPf5pgMMi73vUuALZt28aTTz5Z1Ho3LXHptZxsNjfFRlyapuF2u1lZWeHEiRMFi+8GFhOML0dIKKuDKWKywtdfmuB37+xg6OJ57HZ7xsbrZDJRVY1/eHGcx8/OoGmwv83JjiYHz11chCtkoqgqF+YCzCyqjMXM/O2x1M2CpWAch1Uyzm0SBbzhhPH3bLCbJd60t5FZXwRVg5YaK9VWE4lEIvWFiQiCf/IKaelvQkSc70Nt3MNF70VUTcUirZKzTbIxHhvP+S2eKdVaXl5meHjY0BPF4/GsaU0+KJeozWKxYDabjV7cUChkTJVOJBIpaWW296ppGnE5jsW08RQ702da6KCM9UwEn3vuuY0tMgmbjrg0TWN0dBSv15tTVV4McenNzJqm4XK5ilIMx5TVNC79xv7Fq6e4Zff2jLt8kBpxPXt+nsfPzlBllogrKj8bXsIkCsjqaqpoEgVMooisqFRZRJbDCqcv+7h399XIcF+rkxeHl9laK+KLJBhbCvGzoUU0DZrU1SnFmR7AuKxy+rKPxWCcVpeVzoYsn4HJBpIV5EjKP2vVq3q5OmsdAletehJqAoeYvxVzcqrV0dGBoijMz8/j9/s5e/YsZrPZkFxUVVXlfd5M79kf8+MOu3GYHYz4R3jF/QpWycrbu96e4gqR6xyFIpnAM9lZ62mlLi/RozG9JWk6OM1/TP4H8555WqpaeE/je6ixFL4ZoyPbhJ9ydIaATUBcyTdIPB6nv78fp9O5rl1MoalicjPzli1beO2114pa775mG1zRcglXJkK3VwscO5R7ly854jo37b/yHgR8wQT6PW41i8RklVhCxSKBJIlUmQBBIJ42aOM3D7YRiMqcmvAyuhSiq76KaquJH52fZ4ctTs+etZGPqmn84Jyb0cUQDqtE/2wAtz/GbxzYsja9FASiv/Z32P7j4yCIgIbc/UaUbXcDcMeWO7it4Tb6Pf2grb6/dze+u6jPFFa/iGpra/F6vdxyyy1Eo1GWl5cZGxszvLgaGhrWLXynk86Qd4ivDnwVRVXwxDxomsbO2p344j7+ceAf+eODf0xHdUfKOUrRZJ2L/NJV7bFYDI/HY7QkiXaRF8IvUO+sp9HSyIq8wtOXn+ahXbnnHuZCplpZubb7wCYgLh0+n4/z58+za9euvAp7hURcek1F11EpilJ0fazBYeZ/P9jN3/7czawvzHaXyFfed5SamtzfXMlE21ZrR9NWb271CllIooDTamJZjiOIoCDQ4rAQlWNUm0T2t6WSot0i8Qf3dHOow8W3T03TXrca8ltcVgZm/BkjruVgnPGlMO11qzWWWruJ83MB3rinEXuGO0Xe/QChxr1I8+fQHC0oHXfClfNJgsQXjn+B0wunCSQC7K3dy9LI0tqTFIBk4rTZbGu8uJaXl1PmODY0NGCrsmGWzBnPoWka/3ThnzAJJmpsNbjDbsJyGFVTqbHU4A65+eHYD2m0NdJa1crdrXdjkSwlabIuJGqzWq20trbS2tqKpmkMzQ8RG4nhX/QTj8ex2+1MeaeIJCLYzcXVAjMJWcvVGQI2AXFpmsbk5CSzs7N5jwmD/Igrmy/XRgv73bUmPn/cgsNRx+7du/O6QZMjmnfd3saLw0tc9oSxSiIxUcMqiUTjcWpsEm/uaeGV0SVWojKqovG+nibaajMXdNNNBBOKhkUSWFhYYGpqCovFYjzkmrj2HOvtK2n125HrMw8VkQSJ4y1Xi/FL5CYuTdN4xf0Kw/5hWqpaeNPWNxk1slxI9+KKx+P0z/Tz1Ve/iifmodXeyvt3vp+dW3YCV6P4uBonmAjSZF/d9ZWuyDliSgyHycFceI7F6CJNtiYSWoIL3gt8dP9Hr2tzdDoEQaDR1YjT6aS5qhnPkoeElkCJKvSe7cVuu7qhUUgKnanGVa5eXLAJiAtWb+hjx44V9Itej3zi8Th9fX3U1NSs8eXayE2ZSCSYmppiz549GfsjgzGZxUCM5ise8Mnr1YnWYTXxT+8/yLlpPwlZ4dyYmyf756mqcvCbh7byRK+bYFxFVjVkFf7tl1P85qE2nLa1GrM9LdV01NsZX1rCLfyMmObnsKub5eXV0Wt6u87s7Cw+vx9r3MSlGTN1NVVEZbilzYnTZjJ689aFpmIa+C7SzCm02k7it38YLPl1L3zr0rd4+vLTiIgomsLJ+ZP8j8P/A5O4+jnlSxgJIcH/Xfi/2J12dtftZim0xDfHv8lvLv4miXgCu91u7Ga2VLXgiXqotdbSYG3AH/cTlsNEEhHCcpjbGm7DKlnRNI0L3gvMhmaR1NJMGyo2amu0N3LHljv45fwv8cf9OBwOHtr/EF01XYZ2bGxsjHA4bLQkrWcUma3GVSGuIiEIAl1dXUX11mWDPp0637QzX8zPzzM3N8fWrVszktZ/Di/xZ09cQANEAf7yHfu4e2ejsd7k92gxiRztrGVkZIQ7GmL83n+/h5giMOgO8NUXxojJKmZJBBUWgzFeHffy5p6178VqlvjAnc2899mPs5LwoCDz47iF7bYqDpoOomlaiqf5Lt8KL1yYYXJxmQ473OJYneadb5HW8sL/xHzhh6DKIIiYxp4n/O7HwZRbbBiVozxz+RlcFheSsOrAcMl/iRH/CHvr9qa+WI5hGnsOYWUGtWE3Stc9V+psq1iMLBJTYkYk1exsZiGywI79OwjMBwiHw7jdboaHh3mT6U08qT7JYngRs2Tm47d+3NhMeObyMwCsxFcwi2YEBBRNQdTEkjRHb4T8jrccZ3vNdgaGB9jdsZutV1qj0u2s9a4F3ShS18nV1NRk3NlORiVV3CBK6b6pD2Q9ePBgyXZMkl0Yuru7M77GF07wZ09cQFY1zJJIQlH503+/wNMfO0GN3bzGVSK5SfrQoUP86y+neKJ3DlWDQFTGemWMmKqBisb3z84yvhTmrftb6KhLrXP859xPCSt+FG3VqieuxXls+DHeu/e9Ka8TBIHGOhfvvGu1X1KfMDM7O8vKygqxWIy5ubnsKvdEGMv5x9FE8+quo6Yh+CeRZk+jbLsr52coazKyJhOIBxBFkWpzNaIgklCvyjA0TUNAxfLSXyPNnQXJDJeeQfYMkzj8e8brHGYHqqaiqAqSKBFX4qt6MlMVITFETU2NYa4XDofpWupiemkaSZFoTDTS0NBATU0NZxbOcHLhJJIgIWsy22u20+ZoY2Fl4YalislosjfRYm6h1pp5epQoikZLElz9feqkbbPZchpFViKuMoCqqly4cAFFUTh69GjJWi4SiYSRct5+++3Mzc0Ri8XWvG7WH0EQVpXpoP9fY9YfpcZuTnGVSG+SfmXMw/89N0e9w4IowKRHJK6oaAioV3bsPKE4r4x7OD3p5ZG399CaNGpsyb+0pt4XV+PrvrfkCTOKonD69GlisZihctdrY4byW5W5IgZZPYH+cKuJbJcw4A65CSVChBKhVd2ZYGKHawfba1LrZ7bQLNJ8L5qzdfX8qoJp5Mck9j8E1tUe0iZ7E7/a8av8eOrHiKx+3u/a+S4j5dMhCAIOhwOHw0FXZ5cxVXtpaYnhkWEWvAs0mhqRRZkqUxUW0cJSZKkkoZRLfQAAIABJREFUxfkbYf+cPjEo2ZooFAoxNDSU0pJUiBxiPS+uWCzG7/zO73DmzBkaGhr47ne/S1dXV6Fv18Drgrj0gaytra1s27atJDcMXHUV3bFjhzE0M1t02OK0Ga00qqYRislowOkJL4qq4ffFqJeUjO1Ao4shBAGj13Bns4PxpTCN1RbcvghbXFa6Gx0IAsz5opwc9/IbB1f1YpOTkzSHmjFJJmRlNeIyC2bubL6zoPcqCAKSJNHV1UVXV1dKNDY4OGj0HHa2HcM8dwpUQFPRqupRWm9f9/zfHvk27dXt+GN+AokAqqbywLYHcJhTHxxBu0KO+u9QWJ0huUqaV3F/x/301PXgi/lotjfT6riqn8slQ9AbwEOJEPZf2mkRWohGoyiyQkgJMbkwyRZxy4atZG60/XMyaXd0dHDy5Emam5uNlqSnnnrKMJ9c7xr5eHE99thj1NXVMTIywne+8x0++9nPFu3FBa8D4tIV9ukjyPJBrmJwuquojmybAg3VFv70rbv5X88MEYiuPmQ1VhN/9eNL2MwSZhFaqzQ+cdjLHWntQK0umyFfAPCHE3Q3VPGrPU28fOEyVdVVpC9T98FPJBK8/c6307HcwV+d/iv8cT+32G/h0/s/XdBnkU7I6d/ees/hyY6P0Bm30xAeRqjtQnnTI2BdXxjpj/txmBzUWVd/R4uRRUzSWreCmKMdrXoLQtCNZnEgxFZQthwEW2q6JAgCnc5OOp1XHTaDiSDPuJ/Bp/g4ohzhvq33IQqZH8gqUxUtjhZ8MR8NDQ2EE2HUiIolbllNKyWJeDyeIgotBKVs1SmVNCO5JamtrY0vfOELvPjiixw8eJCHH36YT33qUxmPz8eL64knnuCRRx4B4J3vfCd/9Ed/tKHd2U1BXMW8OU3TiMVijI6OFjRINvmamT5YTdOM0DrdLSIuqzmNBH/9tlb6p1d4sm8Ol92MN5xAVjSimozZDJN+6Is1ck9a/egNuxr45biH0xNefOEEKzEZl93M84NLIAvIURmVVWW9zSJxqL3aCMn1Ibe3N9/O9x74HgAXL17EIpbOiSG555CuLhIHj+L2elleXmZlcIbqaj/19fU5d3kPNR7ipzM/pcHaQEJNoGoqi+FFvnvpu+yr28etjbcCoEkWYvf9T8y9/4bgn0LZdheJ297PGuZOQ0yJ8cUzX2TCO4FZMnN+6DzusJv3735/1vf04Z4P89jFx5gPz2OTbHzk1o/QU9/DhHUCs3m1LqmLQnXPsXzHvJXTpKBM93lbWxtbtmzhoYce4m1vext+vz/r8fl4cSW/xmQy4XK5WF5eLqgPOBmbgrgKhT6QVRAEDh48WJR9RqYBrbqE4lLIwk8ug3h+gA/f1cnu5mo++u1eBmZXMEsCv3uohkwOt8vBOKG4DKKASVqtUxnXkyTQNEaX1nqImSSRP71/N5cWgnz6h+fZ3VKNVR+qMR/mffubWI5o2Mwiv9JVvepZX99Gla0RTVv7TBfrgJovskVjwWCQ3t5eIx1LdkV45453ElfinFo4hVk04zA5eMn9EibBxPMzz/PQroe4vXrVoUOrqid+4hN5r0fTNJ4af4repV5Mmol6qR6X1cWzk8+yrXobESXC9prt7HTtTDmuyd7EZw99lrAcxmayIQmScT6LxUJTU5MhCs20e5f+HtPXVC6TgrL1furFeUEQMk6ZupG46YhLrzt1d3dvaCcy3UxQP++CqZkvvTxltNicnfRdcVQIARpxWePrZ/3cfZufgx1X3UxfHffwyccHUDUNfyRBLKGg9/JUWSREUUQQZPa1XjUpDMcVnjg3x5Qvwp7mat7c04jdLGExre5AhuMKcUWjzWXloTvaWFxc5OlXL/DSchXi3AraeT/Hu+r40J2diEmzFUu2S6vKmM5/H2nuLKqrg8SB3wFbqoNrcjTm8/nYvXs3wWBwTW2soaGBD/Z8kA/2fJCzi2f52vmv0WJfrRvGlThPjD/Bof2Hilpm73Iv/zH5H8iavNpEH3VjMpvwRD08O/ksVsnKz2d/zm90/wZHmo+sWX96nS09QhEEYc2YN73+NzQ0RFVVlfEe9S/RUqWK+vU3glyjyfLZVczHi0t/TXt7O7Is4/f7aWhoSD9V3ripiGt2dpaJiQmj7uR2uzfsyQUwNzfH+Pg4t912Gx/7/hBxWTUK5TFFZWg+iChcvYEUVeO1KZ9BXKqq8ekfnCeuKJglkWqrRDShcqBBICI5cK/EkVWVfY0WHr5j1ZpGVlS+8PQgQ/NBLJLIL0aXGVsOcWJ7HS+PePBFE3hDCQRN5fGzbqq1MHJgmTOBGuqrTdgtqxHZyQkv9+xqZHeGOYuCdwzRP43WsBPNmdmKOhcsL/01pktPg2BCmnwZ09QrRH7jsdUpPVlgMpkyRmPJO5V+UtMSSZAMWUQxD+nJ+ZM02BtYji0TjofR0JgJzVBvrae9enUoSUyJ8ZPpn6whrkxYL81Ljzh154fkqUGl8IkvFdaLuNZDPl5cDz74IP/6r//KiRMn+P73v88b3/jGDRHupiCufMwEh4aGiEajHDt2zJA6lMJMcHBwkEgkYpw300rMkoisqgisfhubJIHG6qvpaSiuEE6skhYaoGnYTfC+e3p46y1bmPFHiYZDhJdmsFzRZ40thRlZCNFUbVmtm2kmfj6yzD+97yArUZkfnZ+nzWWl0Syz5A/ww74Yn/+vR/nnS/3Uma8OPRAFYTU9Tfs8q1/7Go7er6NJZgRVJvrWLyPvKsADPBHBPPw0ms1l7OwJKzNICwMoW4+uea3on8QamQetJ2UdyX5ceqTimHcQD8WZikxRba0mSpQ3tr8x/7WlwSJZQFutow0tDRFQAuxw7cBpuRrdmgQTsirnVTAuJM3L5Pzg9XqNMWDBYLDoMW+yKqNoxd3fydjoMNh8vLg+/OEP89u//dvs3LmT+vp6vvOd72xozZuCuHIh2Uxw7969JTMT1DSNgYEBmpqaUkwKP3RXJ32zK8RlFQ2wSiJ/dG83X31hfPVACbY5Bd56y1UVe7VVoq7KjCcYR0AFAUTRxO4WJ6Io0FFnJ2hWGE1q5VM1jXSWFLRVL66D7S4uL4dpqjYzPz+P01ZFwuLEajbRs8XJkDtAc42VUExBunL+ZFgDkzh7vwaqjKDKgIrt2U8S7Lo3Z7SU9gmlLe7KYrXUz1tYmcH2409D1Me+UBBR7kO5+08yFtOTI5Wt3Vv5ztB3WAgssEfYww7/Dmbl2bzHgl0OXGY2NIvL4uK+tvu44L2AP+bHKTlprWrlo7d9lMdHH2c5uoxNsuGNe7l7y915RQEb2Q3TpwYlEgmj1ufxeLh06RLRaDSvMW+qpnLec54R/wgToQkcyw5uqb8l6w7pethoxAXre3HZbDYef/zxotaXCZuauPSBrHv37s2YLxcbcemTW3b8/+y9eXwkd3Xu/a2q3lvdUkutbUbbSLPvu8crXomxARuzmHDZErZLEkhILvcaSEJeAi+GS+6bS7gkDpshIQFCiNkSOwZDPGDwLB5Joxlto10aLb1IvaiX6lruHz1V05K6pe6WJnj88nw+fJjxdFdXddfvqfM75znP6ehYIZK7bZufv3p4P3/3/ASSIPD2G1s41ubjzp11vDC+gFPSqM3MmUJTyD51P3l/B+//pwuogoiOwB/ds5WtdUtlFLl5p3a/m6YqJ+PhBA6rREJWuKGtmiqnlZZqF3JGYXZuAavVSkq3sP3Ksd55cytf+cU43VMRVFXn5o4agnF5SQRoT86gCxYEQc3yz5UbXkiG0K2F5zkugdWF0n430vCPQLKBmkH3NKLW71/yMtvPP4OQDKM7a8jIAj8c/wGP/+An6BYbr259Nb+9+7fzHn5zxWb+6MjV8ruiKExMTDA3N8epU6dwu93mws+Vjmi6xo8mfsQTw0+Yw1tvbLiRP9j3B3SGOpmbm+OmppvoqOzgHbvewY8mfkQ0E+VY/TFublhd3W9go5qs89k7FzPmbSw2Rv9CP3XOOsJimIGFASqsFWzx5u/aKOZc8kVcv/bjWifySRLGxsaYnZ1dMZA1F+UQ1+XLlxkbG6O2tragf9bNHTXc3LGUKGvcNu7bWw9qhgsXZpf828zMDPLcMD/8nePEVAmfy4bHsfSrXy6jsFlEPvaqnXzjzCQT4SQ7Gzy87vAmBEGgwZpkf2WSCzEPkWSSPU1O3ngsSzhep5V339LGl58bI7QoE07I/OPpSV65r4FjbVdsg71tCLp6JToSQdPQrTZ0d2l9m+mXfQRrZTPS9Dk0bxOZo+9ZEbGJkVH0KwZ337el+V+ODGSioAh8pf8rCILAb+36rTU/y2KxUFVVhaIobN26NW9uzFHp4BsT3+DpyaeRBIlGVyOb3Zv55ewvuaXxFu5rvY9BeRC/I1uCr3XW8pvbS/ew2ig/ruVkUeyYt1llFrfFjSiIiEK2lSmYDJZNXIUirlQqtWGW2RuN64K4crHWQNZclLJVNPJk6XSaY8eOMTQ0VNR74ymF93y9k87JCDrwhkON3NeQJUtd180JQUaOrJAEVr/iFjodSXEpsIjLJnFgs5d333r1Zsx1f/2DB25C0UV6LvbS0bKJihynibFwgkBcNreI6YzKTweCJnFl3I2EbvpTap77WHbLJlpJPvDlbOS0HKqMtfvrSJfP0hHXEXY2ZdttACQbmSPvZLWGHq16G9JMF7rLz3dsKQAsggSCiKIrfHf0u0URl3H9xtSZ5V714XCYr1/8Ol2RLnRFx2qxMp2YxmPzIAkSyStOrRs14mwjWn7WajvLHfOm67rpOTY9M82YPEZTZTZKSypJKqylzw/NPZd817NRw2avBa4r4jLm8rW2tuYdfbQcxUZcxjSfmpoaM09WLOl99Ad9dE9FUK608zzRPYNbtnLo0NUexkOHDhV8Qs8nZP7ke710TkTQlQxVvziHx2FB12HfZi+P/MY2LFK2UGAQ9uHDhxFFESvZ/NlyaLq+JD0mioJpSGhg0L6fwZu/ij0TIYob76IXfzhMVVXVkpvY9ou/xDL8Y3RbBb5IEMdTf0jyVY8VpYYHkG/+b9iffgQxdhmLTUMXhKtODjqmNqoo6Dr2+ATidAzdswm9IiuXMCqVk4OTRKQIsiqjKAoWLIyHxql31eNRPSZp/WeaABZCqVGbIFyd4djU2sTJqZNMhCYIy2G0cY10Is10eprq6uqSdYvr8fD/VeG6Ia7Z2VkuXbpU0qDTYojLsLhZPs0n31DYfDg7voCsXiWFZEbjYjDD6dOnaW9vz2tvk4uPfr+PrskoFXaJqYRMNJzgWJsPt02ieyrCmfEFDja66OzsZPPmzUsUyrAyNwbQ7HMSS2X4YfcCNqtEncfO6w5l5Q6KojA9PY3L5WLvkRNZl9UruZVgMMilS5dM14CaKi+ukWfQ3bUgiMg2BVcqgjR3AbX5xqUXoutIk79EnD6H7q5F2X4/WF3o7jpSr/5bhPgsd557gqHwN5dIG96y/S1rfsfG8d1D38N76WlsEx5AQD76HrTGrLZrKDLEwMIAKTWFQ3IQz8TRRI0mXxNva34b0UCUyaFJM9JxOp1mbkzXdS5FLhFOh/HZfWyr3LYqqWyU53y5BGqTbNzefDsBX4ABdYAbD91IKpEiHA5z4cKFNce8Lcdqo8k2qq93o3FdENfi4iJTU1McP368qHYKA7larHwwLG7yOauu9V4DmyodzERTpi+8TRKosirmYNp86JuJ8el/HyQYlxkLJ2jw2M0bRACiKYUKe1Z6MReOcvZyb8FpRvlajC5OxwgnMjisEmlVIxhPs8nnIJVKce7cOTweD36/3xSi5jYXQzYpGwqF6O3r52Aiia4vYrM74IrkA3HlbWO58G1sZx+7Io1QkYaeJvGK/w/J6gbRgu7dzL7Km/nTth38w9A/oOkar+94Pfe33b/mdwwgRCdwjv+URWctuqcGMkls575Cqn4/iBJn5s7gsXoQEMjoGRySgxpHDX9xy18sUbz39PSQyWSWzHE8nznPC5EXst8HOjc33MzLm19ecNH+Kh1QDUiCRJW1iipbFVbJitVjxePx0NramneitpHkz5ezUlU1r03Ri5W04DohLsOTqtQv0miEXQ6jAVmW5YIWN8VuFf/81bt44xdPo2rZyKXGKXB/h7Mgac3F0vz+t86TzqjYLSIZRWP2iiOqrkNG04kmZKocFpRMBnV+ikM3FbaszqeC//lQGL/bhtefJfnZaJpfDMzQziy7d+9ete8MWDJdR+TtWLr+nowcxSonmXe0Ma/XUi3LV292Xcd27kvo9kqw2PkhMT4vXyD95EMcrj/Bfz/03031+W2Nt3F3691rfq8rrlOOowsSGFtLqxOSIVDTILpwWByIgkirt5W0miapJGnztC3ZigqCgMViYdOmTXg8HhRFYXR2lGdHnsWlurDb7dgddn4+/XNO1J+g0l6Z91yuVX9gqSh0HmuNeausrKSmpoaqqipzV7L8OBvVS3mtcF0QF5TH/vm2iul0mq6uLmpra80G5HwoNuLqqHXzb793A985eR6n3cLrb93PC2dOFXx991SEjKqZts11HjuzsTSXF5IoV3Ra0zGZjKLwjv0OXnX70VWTuPmIy2YRzZwbQDKVZG5mgde+4igul4toNFp0klo7/HZUXyvW2S7GA0mqb30HqUiSnp4edF2nurqaTfHzVIQGQRA55/byWZ8Tq67jEmy8EHiBvzr/Vzxy+JG1P2y186hoRBAkRGUR9EqExTm0yhawZCOIWxtv5YmRJxiLjWERLHhsHh7e9vCK4+QShiiJ2CptVFZWUu+sJ5PJkEwmicQinDl3hi11W/L2G74YIq5ij5FvzFskEjEnJFmtVrP3Mve6ShkG+6vAdUNc5WB51GRMCiqk+8qFJEkrh6DmQTKZ5NKFLl6xb2X+KR9cVsmc4CMIAnaLiNdhwSqJWPUMdT4P0XgcWYPfvOs4krT2jbmchF6xp57//cwQ05Ek8cVFLJrCm+48akZtJfUqCgJq+52o7Xcyc/o0zb563D5MpXts5Cyu5z6FLDqxKAnOk0bRrDgFK7rFgQPoDHYuOd+y4PSxsP+dODu/ghCbQvNtybqeXjnemcAZMmoGkWy1ss3Txi7frhWHMb73yfgkX+v/GhE5wuXFy6TUFI2uRtLWNNs3befmHTcTXYgu6Tc0ttPXE3Etx/LRZ6lUit7eXmZnZ5mamsLr9eJyuUilUmW5n4bDYR5++GFGR0dpa2vjW9/61go7qc7OTt773vcSjUaRJImPfOQjPPzwyofMatiYLs9rjPWolI2oaXJykt7eXg4dOlRUc2cxEdf8/DwvvPACO3bsKIq0AI62+theX0E8rRJJZkgpGq/a34DHYcFlyVZObVYbNputqOvOR0IdtW7+6O4Odntkbml28Ohv3kCjz73qe8qB1WqljiB2mw2pdht6RS0+XULSdZIWLxlVI62mTWth8zOT84jBPkjOl/R5maoOJg99kNT9/wf51g+hu7K/Y0bN8A8D/0C1o5qOyg62ercyHh9nYH4g73Wm1TRf6fsKqqbS6GqktaKVmcQMKSVFR2UHb9nxFhw2B3V1dezatYtjx47R1taGLMv09PQQjUYZGxsjEomU/T1uxFZsI8jP4XDgdDrZunUrR48epaGhgb6+Pt785jdz4cIFPvGJT3DmzJmir/PRRx/lrrvuYnBwkLvuuotHH310xWtcLhdf+9rXuHDhAk8++SR/8Ad/wMLCQknn/ZKPuIzp1Kqqcvz48aLLvmvluCYmJpiamlpVAJsPNovIZ9+wjycvzhGMp9m3uZJdDR7OjJ5ickHDYbdhB157uGGJo0Mh5COhdDrNzKUeXrU/6/hazHvKhe7wcUV+D94m7sos8kMhxaDNkrWH1uAu6S76+/vJZDKIo/+B6/n/ZUYt6VsfQW297YqLaSa/lsz4LF1HEMWs1/wVBJIB/rLrLxmPj2MVrDR5mqiyVbGYWeSz5z9LhbWCE/UneGDLA1hEC7quE8lESCpJ6pxZwa3f6UdD420730a9qz7v92X0G7a2tnL69Gk8Hk/eaCyvF3+Ba/lVRFz5YOS4jDFvL3/5y2lqauKTn/wkW7Zs4fHHH+fIkSNFHeu73/0uP/3pTwF429vexu23386nPvWpJa/ZnuP5tGnTJurq6ggEAiVZ51w3xFXOYlPVrBVye3s7ra2tJT3hChGXpmn09vaa3vXl6F/sVokHDly1Ej51cZhEIokmCKQUDZtV4t7dKxdQPiyvKsZiMbq7u1fIO5Zjo4hLbTqB2nQj0uQvQRBxCAKfPvFJnrdCUkmyu3o3dY46IpEICzNjCOc+QUxyYHG4sQka9pOPklYVbC98EeQ44ZoOLu5+FaLDxw7fDlyW1bcrf33hrwmlQvjsPiJyhPHYOHFHnAV5gR2VO3BanJycPonb6ubelnvRdZ0KawUCArIqY5NsyKqc175mNdTV1VFfX2+6P4RCIfMBmevFVYhYflVbxULHyTcM1ufz8aY3vYk3velNRR9rdnaWxsbsvd3Q0MDs7Oyqrz916hSyLNPR0VHSOV83xFUq5ufnuXDhAi6Xa0W/YTHIp+PKTey3tbVtiJbn7PlevnwmhGR30mJNUVnpJZzI8J3Oy/y3e7ateYxcHVcgEGBwcJADBw6s2tW/kREXokT67k8gTZ0BOYbm34no3cwylRc+n49KKY3b6USzVyJnMizKKpbUAuIzH0f21BF2VfOZaCexF/rRqrfid/r5wP4PmC4Oy3NLiqYwHhun1lGL1+ZlLDZGOB1GQGC7dzsVV+Y5VloruRC+YBKXx+bhwS0P8p2R7yCQlUA8tOWhktTnpnxlWTRmSBGmp6fp7+8v2FP5YsmTGcfJNwy2UJ/i3XffzczMzIr//olPfGLJ340uh0KYnp7mLW95C1/96ldLvo6XJHEZk68PHDjAwMBAWcdYnuOKRqOcP39+zUjGwGo3ZtdkhLOjYfpHJugKasynISHL1DqhErCI2VaiYmBEXEbv5tGjR9fcrmwIcek6YuBitrpX1YradHzNt8h2H4gSoibjcDhxSDqCbiEj2UmqIt9MThOTBOqTi2RsNQSTQU5On+S+1vvyHk8SJLw2LwklgdvqZot3C960lzs33cmpuauV3ZSWosXWcuW0s7/LsfpjtHnbCKfDVNurzRmM68VyKUKhaGwjvOI3qiUn37ms5gzxox/9qOCx6uvrmZ6eprGxkenp6YJzS6PRKPfffz+f+MQnOHHiRMnnfN0QVzGLzRhBpus6x44dQ9f1dflxGRHX9PQ0o6OjRc9iNN6b76b694tz/MXTAySSaeZlsFtE6j02khmNuYRGZTJDRtV52fbivbinp6dxu90cPXq0qMWQGy2UC+uZx7Be/Ha2qqdD+qY/BNGKGBpAr2pB2foKEJdev2pxk7jlw7h//klIpkCUkI++F2vPN6iocCOrMdyqgoaFhUh2ovTw5WEiVRFTF7fcefQ9u9/DZ89/lnA6jKZr3Ln5Th5oe4DJxUmmE9MAuC1uXtn2yhXXX+us3TDCyodC0djMzAyRSIT+/n78fn9ZbTqwMYMyCh0nmUyW5QxhGAY+8sgjfPWrX+WBBx5Y8RpZlnnNa17DW9/6Vl73uteVdc7XDXGtBcOXq7GxkebmZpPo1mskODAwQDweL2kW42rE9fmfXkLPpPF7XUTDSTJqNgJoqnIwOZ/AahF55y0t3F4EcWUyGcbGxnA6nezdu7doIlpvxCXMD2O9+O2s4FSUQJVx/OjDINkBHV0QkMZOkr77k0smTAMom4+TeP03ERJBdJcfrC7ExTmk0Wc4KCoMSir2+gN4nB7klMy+2n2mzbPFYsFut5PJZMwOih2+HXz8ho9zefEyFdYKWiqy4+fev//9DEYGUbTsIFfvFYeKDdsil4HcaCwej9Pa2mqmNAwV/1q5sVwU06hdLEqJuFbDI488whve8Aa+9KUv0drayre+lR3QcubMGf7mb/6GL37xi3zrW9/i2WefJRQK8fjjjwPw+OOPc/DgwaI/5yVBXIYv1/K2mPVEFLqus7CwgMfjKVm1XyixPzY2Rmwxhc9bgSSKiIKAomnoOrjtFmqdAo8+uIdAPM2p0Xn2bvKaQtXlMIbG1tTU4HA4Sr7WdRFXaiGrYDcjKgEhtYDm25KtCuo6lrGfkQkPo9VsXXkAmxvddvVpLp94P2LH3dySmie8OMyz891Y1DSv63gdt226zSTa0dFRIpEI3d3dAGbuqKqiyhxrZsAu2dlbvTfvdb8YFOG6ruPxePB6vSuisYGBAbNSuVo0tpG+9ctRLnHV1NTw4x//eMV/P3r0KF/84hcBePOb38yb3/zmdZ3fdU1cuq4zPj7OzMxMybKE1WBMo7HZbGzbtnaCfDmWE1duJfIVB5r4994AFXYLNW4bgVgaTYe0onF/u5WP/1s/wXi2TclfYeMzr91LtXtpzsog6n379rG4uEgymSzp/MqNuHzz3Tj/6S8gHc2aA4oSWN0IqYXsnwWL8QHogghKkeclCGj+HSBaeDW38OoC5+x0OpEkiZaWFmRZJhwOm+PBvF6vudBXi0JeTMSVex6FcmPG9PV80di1Jq58vbEvFlw3xLX8ZlNVlYsXL2YTrWv4cpUCozK3Z88e+vr6yjpGLnHJskxXVxd+v5+2tjZ27NJw2iz8YjjMpkoHn35oDzVuGzVuG5/49nPMRtP4K7JENRdL843Tk/zO7VfH0E9OTjI5OWkSdSKRKGvUmLGNzmQypo2P8f95r2m2hx2Df43gzDZNo2uIyXn0TBKtsgXBUYUYn0G3OhEyKXRXDVr12iVuITKB/eQnERfG0CrqkW/9EFrN2g8Lm81GQ0MDDQ0NpldVMBhkfHx8SdO4MV7LwIuFuFbDarmx3Ggsk8lcM+IqVzn/n4XrhrhykUwm6erqymvzUi50XWdkZIRQKMTRo0exWq1l+9UbxGX4h23dutWsrtitEr97ezu/m0NcNOOOAAAgAElEQVRGBhbSOjbp6qKySSIz0bR5fgMDAyQSCY4dPYq162tIXV+nMZMh2HIftP+PNYei5iKRSKBpmnmdmqaZizofiUnjJ9F1BazZm1m3V6LbvSTf8E2w2BESIWwnP4kU6EWt3UX61g+bry0INYP9J3+KkIqgVdRDOor9J39K8tVfANtKaUIh0sn1qoKrzqHDw8Mkk0mqqqrMpuJyiEvTNc6HzjMRn6DGUbPCbv9ao1A0FggECIfDLCwslJQbKwYvZttmuA6JKxQK0dfXx+7du1f0QJULVVU5f/48drudI0eOrPvHF0WRUCjE5cuXzVFpxWCrz8LYlIZ6pUE6rWgcaq5EURS6u7vxeDwcPHgQqe97SKcfA1sFOgI1g99EbNmOtuehNT/DyK2EQiHOnTuH1WqltrY2a33scJgkpmkaqqpeJTCrmyXTOzQF7G6wZPMvuquG9G98pqTvSVicQ5wfzSbw1TS6ux6SYcToVHbrWA50HWfoAq0TP6dVsiNvvYd5KpcQ2dTUFH6/v+gm4h9P/piTl0/isDhIq2lsURvHtGNY8tj7FItyo77caCyVSlFbW4uqqiXlxnJRqPWo3BzXfxauG+IykrNr+cwvh6FzKkRGyWSSzs5OmpubaWoqclDEGucZi8WIxWJFaapycVuLHWtlJf/elx3388p99bx8h4/Tp0/T2trKpk1ZM0Bx+BkQrSDZEHQBVbZgGfnpmsSlqqoZZRltF8lkkmAwaLbkVFdX4/f78XiyjqHGljKx5eVIz38ZWzIMgCBZSR//vXK+IhOW8/+IuDCa/YsgosVn0Ssa0Qu4q64aLaky0tjPkMaeRbp8Br2qDQDnTBfibR+m+kqu0hgNb1i8GLmjQoZ7aTXNczPP0eBuQBKywzcuhi8yk5gxZzL+qmD8ltXV1SXlxpYfYz3DYH9VuG6Ia2JigsXFxZLzWca2Ld97jCT3RkVvmqbR09ODqqrs3LmzJNICsEgS77qpid+5PZsbWozH6Dz3worz0101COpV5wpRV9BdhROphsup8XTNXfxOp5Pm5mbT8iQUCjE9PW1Oma6traWyspKRmQjijZ9ih9oPmQSZphvR6/YglpsgTkexnf9HdEclQjqWFbQmQqT3vIG4w8sPBr/JaHyUza7NvHrLq005g6ZrnLx8kqHoEHXOOu7YfAdOixPLxe8gzXYjzl0AeREhNo1Wvw8hNo10+QyKN2v1LYrikuvNNdxzOp1mbsyIVnRdR0dHYKn2TdVUukPddAW7kASJE/UnaK9cuf2/llh+XxeTG1s+UXu10WS/3ipuAJqbm4vymV8OwyFieaVpfHyc6enpDatGptNpOjs7aWxsLEtMCFejQ4skMjMzw8jIyFV31uQ8QngYvaIO9cg7EEd/lt1WqSqytQKOvCPvMQ3SMkSGq21RJElaMoE5FosxOztLb28vVquVzZs3s1i7H6fTiaBp6FeOa2jljAVQlAg2k8huEa1OdIsju/XUdZTW2/hy35cZiY7gtXrpDHUylZjiDw/8IQBPzT5FZ6ITu2RHVmV6wj18YNe7sc/1oHmbEeeHQcsgyHHIJAB9hZYs93r9fj9+vx9d10kkEgSDQVNXZdi/7KveR1eoi0pbJYuZRSqlShbkBX48+WOqHdXImsx3R7/LG7a+gc3u0u/RcrFWVTFfbsyYqG1EYxUVFQW3ir8mrg1AucNdl5sJ5koTjh49uiEtE0Y7kOHzNTg4WNa5GsQ1NDTEwsKCKXoVJp/H+sR7suPENAX1+HvJvOHriGM/YzEeZ8Kyhe2VK4sUxjbPcCIodTiDzWZjfn6enTt3Ul1dTTAYZGhoiEQigc/nM6MxwCRHYAlJFlpYursOzduEuDACFgfoGrrdS6iykbHxMeocdVkJhMXJXHKO2cQssipzeuE0myo3ZbdtmsZkdJjxYA+7syPCUWt2YJn4GSgyQnwOnJWoTTcUdb1utxu3221GK+FwmOnpaRoiDSyySFSJ0l7Vjh8/Q5EhvDYvzitGhiklxXBkuCji2igRbCktP7nRWEtLy5JobGFhgZ6eniXRWDlbxWK8uAxEo1F2797Ngw8+yOc+97mSPgeuI+IqN5mZS3hGk3RdXV3RbhFrVaFmZmYYHh5e0g5ULskKgmCG9IcOHcouel3D+r3fASUNFhuIEtKpv0FrvwNt92tILyyQmZrKe965U59L/f7i8Tjnz59nd4uf2hc+iRAawOPfyebb/xjNUc38/DyBQMA8X6N1xWazrSCxfAQmjf0M3VGFLlqzVcXaPaRe/iksDh8amrk903UddLCIFmQ9q28TEEBTEaMTiKkg4qWn0AQJcWEU3e5Fq9mOroPaeivqljtKnhcJVycHGdHnvtg+QqEQoVCIxcQiMSHGoriIx+oBARRdwS4VF2lvlCRjPS0/RjRmt9uxWCw0NzebwzY+9KEPkUgk6Orq4s477yxanW94cT3yyCM8+uijPProoyssbQz8yZ/8CbfddltZ5w7XEXGVCyPiKjTNZzUYeqd8N5kx4zASiXDs2LElQzzKIa50Ok0wGGTz5s3s2JFTUZMXQY5noxLIbnsEECLj6PV784pJdV1HURTzXIqGrkM6SnghysDoFPv37KT6e29BiExkCwEjP8E+P0L6jd9e4gaaSCQIBALmFqumpoba2lrcbrcps1AUhUwmQyaTQYpfxt71d+jeTai+tmz7j9OPXt2BF7ip4SZ+Nv0zLIKFjJbhcO1h6p31TIlT7K/cT2+yl4pMmlQySJ3TT0v1ToToZdTqbegOD+qWO1A3H1vV26sUCIKA1+vF6/XS1NREd3c3R2qO8J2R7zAdmMZmt1FbUct27/a1D8bG+blvhADVSKPkRmPf+MY3uO+++/j2t7/NBz/4Qb7whS9w/PjaTfTFeHEBnD17ltnZWe69917OnDlT1nm/5IlLFEXm5uYIBoN5p/ms9d58N4chn3A4HBw+fHjFTZhv8s5qMDy0KisrV3bT2yrQHb5sm43FDlp2ArV+Rdy5nCSNymHJUVYmie3f/wf66En8iop/72vRU16E+MxVTZVoRYhOIQQugtWN7vQhuGrMLZZh5xwKhRgbGyM1P02jNoXH7WJcqaGubks2/xeavbKxs2QnBzmqEaMT2TyXaOGh9odo97YzGZ+kwdXA4dqr3/GrGl7JVm0rl0b+jTq3m1fWHMYuWtDtFejuWtRt9xZ/zWXA6A/c27aXpsYmRqIjpBZTeGQPgz2DWCwW/H6/KX7Nh40wETSOcy2scXw+H5Ik8dhjj5mvKQbFeHFpmsYf/dEf8fd///erukyshZc0cem6TiQSMdX1pTak5vPkSqVSdHZ20tTUVFA+kW/WYSHkemhNTEysfJ8goDz4Bazf+a3sRBtdRbntQ+hXdE5GxLVa5bAYWJ7/P2jDz5IRnTg8doTB75OpqM3m1XT9qrhVSWF95v9BECVAJ3Psv6J1XJ3aY7Vas4p2rwXrf3wFOTJLLBanWbIxpf0WszYbdQ4fIqChoiNBcgHF6UfRQCS7kA7XHuZw7WHimThnA2dRVJm68T5aF0bY5qlEqzqCuDiHJtpA17JTgDwFZlhqSlYvpmWwyKtPOFoLuWRRZa/iUO0hyDGYSKVShEIhLl26RCqVWiJ+NfJRG9mqs17iyldVzL0HBUFY8u/r9eL6/Oc/z3333bdu6dF1Q1yl/kCZTHaStCiKtLa2ltVFv9yTyxi2sZZ8ohi/el3XGRsbY25uztR7Fdpi6g37kN91EiE6he6sBtfSRvJSKof5oGkaiYFncYhWHC7XlcK/iBiZQGu9FXHkP7IEJojZqM9egW73gCpjPf0Yct3eFaQhjTyLmpgnpFbg29yMU41SySUm2ceFywm81n20zD2Pze7A4vKiHPuvAGaVUtd1ElqCxy48RlgOIybnERemebv3KLudVUjhS6iVrYixrHWNWn8ArW7fyotTM1gu/jNiqB8hOs2u4DQW5zjqzldn3SlKxFpRjsPhYPPmzWzevNkctBsKhRgaGjLnG7rd7mvWqlMqCpFoIeJZrxfXL37xC06ePMnnP/954vE4sixTUVGR15t+NVw3xFUKjFab9vb2snr5DOQSyeXLlxkbG+Pw4cNrKq5FUVx1QpBR2dQ0bYmH1qrNz1Ynej6nBbJP+XQ6XfSAjVwYBL+3qgWbnCWB7BgiDb2qhczRdyFd/BeE0AC6ZzOW/u+DPetIimTLRmKJACwjrmQ0SDIap6ZxW3b0VSqFVZevaqgOHGB+apDI7CTBtIRrOkGtMo/P58NisaCqKmdnzhJKh2h0NiLFw8xJNp6RJ9kttaBbXehVrcjGRG1b/tK9OD+EOD+MkMkWNzJWT1brZXWh7HwgO5+xBJSyPRNFcclEHWPQ7tDQEIuLi1y6dGlV8et/BgrpuMpZM8V4cX396183//z4449z5syZkkkLXoLENTc3x6VLl9i3bx8ej4exsbF1e3L19/dnewSL3G6ulpzPZDJ0dnaaTde5i6CULSZgzsOrqamhq6sLURTx+/3U1tauaC7Oh2QySXd3N1u2bMG+40/Q/+W3EZIh0EHzb0c5+FYQLah7X599g6Ygjf4UUlFweEFJgQ56xVLSCgQCzCx6Oeh1I+opkDMI6Qhq81XTOEmS8LfsxN+yk/YrmrHA3AyT/aeQkalv2s+isohVsiKIArpkx6IqJK1KdrEpaTRbRUHCMqFkez0FOYrmqEQTYgi6hqDJCOkIeonEtZ5tnjHf0OfzMTo6SmVlJbOzswwMDBS0eL7WyOfpVW61shgvro3CS4a4dF1neHiYcDi8pNUm31DYYiEIAr29vVRXV3Pw4MGSnrT5iMvw0Oro6KC+Pv80mWIToUalThAE2tvbaW9vNyuTg4ODpFIpU2tVVVW14kaMRCJcvHiR3bt3X21OfvifEGe7QbSg1e8z+xCvXpiFzG0fwvof/y/C4hwgkjnxPnBfTfJMTU0xPT3N/tseQg9shf4fgKagHHwbWsvNea9FEAS8Lhtj09/gH0K/IKNruObdHPI/QHA+SMaRAdmCIujca3EjxaZQPZtJ1+xBuOKQUEgzplc0gCCiaypk0ljVOJp3TzYvWKR8Yfn3Xk5eaToxTU+oB4BWWyuSJOVtnO7p6TErszU1NXg8nmvqZqGq6grBdLnup8V4ceXi7W9/O29/+9tL/hy4johrtR9PURR6enryNkmvtW0rBKPE39zcXLInVz7iyvXQMmyIi3lfPhSqHNrtdjO/YrSzzM7OmkMbamtr8fv9LCwsMDQ0xMGDB5due20utObV/b91/w7kBx7LShgcPjPiMR4c8XicQ4cOZQsbm4+ibT6a5yA64qV/z0ZvVhfK3jcQDvXyxcDPcVu9VIkWIvICF5LP8rvHfo9vdH4DRYQ9la+gxtnCTI0fT/MebM6Kgpox4x7QK+rJ7Hk9lgv/hBToRbZWojt8WWJ2lt7mVQ5xzSZm+f7I93FIWUlL71wvR2xXx30tb9XJZDKEw2EmJyeJxWJ4PB6zcdqQ3WykiDWf++mLeYo1XEfEVQhrNUmXE3EZJOP3+8vqYVweOS330FrtfQVvyNg00n98EmFhDBoPo9/4AQR74afi8naWWCxGIBDg+eefJ5PJ0NraWp5tj5JGiM+iW5wmaWmaRl9fH6Iosn///jUXtjT4b1jOfBHdUQlqBtszf0agYSe6KOG44rhQKTmZS4axnH2GP7VV4W3ajdJxN4lMdis63jdYUDOmqqqpY5MkCaFqC/qtj5BJRxk/9TN8u24wh8mWinKIq3+hH5toMwfjJpNJxlJj3Ez+CNRqtVJfX2+OP4vFYgSDQSYmJhBFkZqamg11Rsk34efF3GAN1xlxLV/YBsHs2bOn4DDJUokrd9DrxMREWYvbyFUZHlrJZLKoGYwFI650HOu3/gssBkC0YA0PI0UnkF/1N0V5cAmCgMfjYWZmhsrKSrZu3UooFGJgYIB0Om26C6yVJBZiM1if+ShCIpCVZex4FfKBt9N9/jxVVVUrcnaFIA0+he68Gq0Ru4xPUdA0BUVXsQgiiUwSMSOzU+zGZamDS09hDV/CfePv425rW6IZGx8fJxaLUVlZaT5sjPyk8X0qioJkcZOy+8smLSgvxyUKInqOiZeqF59DyhW/tre3I8syoVCI0dFRFhcX6e/vN4msnPa1QjMVf01c1wC6rjMxMVFUk3Sx2y9N0+jv70eWZZNk8um4ioEoiiiKwrlz5/B4PBw4cKCoBV0o4hKmOyG1cHWh63bEyechHQHH2tN/VVWlp6cHt9ttDtUwdGiqqpo9ebmOEDU1NUu6AQAsz38uu0V010EmgdT591yemKHh6FtpbFo5MbsQdMmKoOc8THSNhobDvMZu5YnZn4Ouk9Gs/L5Uh6tue5acHVUI4WGE+Ay6NxtZm5qxKy6okUiEQCDAyMiI6TPm9/ux2+2m84XFYjFTB5IklUxC5URcu3y76J/vJ5gMZtuDNIVtntItwSHr/NrY2EhNTQ0XL16krq6OUChkXnOu82sxKDTh59fEtcEwRpAZUoK1njLFRFyZTIauri58Ph87d+40b8xi9FiFjhcIBNi1a5fpoVUM8uXjdF1HQ8RiCkGz0s3s1Pu1fz7DOnrTpk153TWWJ4mNLaVhgWwsfpfLhbAwgu6oAjmOMNuDlorRpj6F2C+TafjIymR+Aaj73oj15KOQSYKuojurUdtu467dr6Ftopvzg+e5YfdRWk9/9kqkcsVSZhXrUUEQqKqqMiNvw2est7cXWZZNm+uDBw+acotcZ4u1msINlENcNY4aXtP+GgYWBtDR8Xl8OJT1OZIYWzyfz2duG5PJJOFwmMHBQdLptOnFla84YyBfBPnrreIGQ5ZlXnjhBerr64tukl4ralqt0ldOz2EkEqG3txePx1MSacHKiMusHDYeRK/eihDsw1jE6u6HwL66s+ri4iLnz59n27Zt1NSsvT0SgKrQC1QHL6B5m0i03kMgFKK/v590Os0+oQZPbBQpOYciy1itToTqNoRAL+LEL9C23F7UdWqbjyLf9eeIE78EqxO1/W5w1RAIBAheTnLvTa/FYbejbj6GNPnL7EQgeRGtdjd6RWNRn5HrMzYxMcHExARer5euri4zqszVjBm/c74Efy7KrSpWO6o50XCC+fQ8Tw88TSwd47jnOHurix8rl4t8hON0OpcUZxYWFggGg1y6dMkUvxpToQzky3G92N1P4Tojrr6+PrZu3VrUIjSwWtRkOH/u378fj8dT0nvzwRgcu3fvXkZGRop+X+7n5S4gs3JosZN+zVewdH4VITKO1ngIdfdrVz3WwsICvb297N27N++15YPlZ/8TywtfJivO0rG03YbjgS+YpnsLDV70n/4Z3sV5REEgU9GE6KhGWpxBSJXWSqPX7kKt3WX+/fLly0xNTXH48GFzi6oefDN6VQvC/Ch6RT04fEjd/4hur0BrvRWKyFWNjo4yPz/PDTfcgCRJS5Ld4+PjpvbNsHLOTfDni8bW0yAdz8T5p0v/xPziPFbdytMTT5NW0xyty1N5XQNr5dpyB4YYjfChUIje3l4URTEtbBRFyZvjKtZu/FeF64q49u/fX3IZON9WMbfd5tixYwUFf5IkFSWlMKQAhodW7hO8FBjVyLxyB5sL5fh7izrOzMwM4+PjHDp0aHWTRF1DnOmGdBStohHLucfB4gSLFTQNafQkwvhz6K03I0kSSYuX0d0f4GjyP9BHf0bCXoccmMauxpjPeKlMJssqoxvkcvjwYSRJYjgyzExiBr/Tz7YtdyC0C4ijJ5EG/w3d6UOMjCGGh1COvvuqin/5pek6ly5dIp1Oc+DAgSXdCbnJbkP7NjQ0ZA7WMAoVgiCsiMaMiKwcTMWnSCgJfNbs1s7pdHIueO6aEFcucr3Gcr24pqenicVi9PX1LbElSpbxOxbrxTU+Ps473/lOJiYmEASBf/3Xf6Wtra2kz4LrjLjKmQeYz0jw4sWLAGuOrBdFMTuc9cwkAHftrMVfsTSPYyS+bTab6aFlVBRLhUFc5TZKG778BgmsqvLXNaw/eB/SxM/NCdSoco4ThIguCAiJANoVC5/FxUUOHjmOrh1EsLvxjj8HlW4Wd7+DjHurmU8yIhhj8a92vgMDAyiKYpLLU+NP8c+X/hmE7L/f23Ivr936WsSJ59C9m0CyoVMJkYmstU/dnrzH7e3tRRRF9uzZs+o55GrfNE1jfn6eYDC4wmfMmKAdCATw+/1LxrqVQiA6OrqWdYfQdA2xgDvrWliPgj/XGTUWi9Ha2kooFOL8+fM8+eST9Pf3s2PHjpI+o1gvrre+9a185CMf4Z577iEej5d/DWW961eEcp50y2ccdnZ2Fm0keDma4Xe/fxlFz77ufz8zxLfedZwmX/ZplGvX3NJytapWqq0NZBeb0+k0Pb6MG6vYJ59RFdV1nYMHD655Q1h/9MfZvkNBzCrLbd6srYwcBWsFqCmQrKj1B7h48SKSJF3VaElOlBPvgxt+FxCwCgLNZO21FUUhFAoxNTVFb28vXq/XnCKUS6SapnHhwgUcDge7d+9GEATimTjfGfoOPrsPi2hB1VWemniKWzffyqYrsxyXIM+iN3z/3W437e3tJd0zhkaqkM9YJpOhpqaGTZs2rdhS6rqe1YytkuBvqWih2l7NRHwCh+RASkn8RstvFH1+y69zI/obDamMx+Ohra2N5uZmPvaxj/Hss89y8OBB3v3ud/N7v7f2UJRivLguXryIoijcc889AOvajl5XxFUOjAjI8Lzavn07tbW1a78R+MLzMyQyGtKVGySaUvjsT4b49EN7zePlMyYsNalvLACHw8GxY8dIp9MEAgF6e3vNxVJbW4vX6827EBVF4XwJWioh0It06SlAyA531VSETCzrSOqsQohlPbhSd3yMzrEFfD5ffqLPQxwWi2WJeDKfRMHn8zEwMEBNTQ2tra3mexcziwgI5tgvSZAQEUlkEmhb7kDq/Rd0qwtBTaO7/OYkn9zvobu7G7/fv+RBUg6M7ZVu0wk6gvQP9NPmbUNRFE6dOrWmZsyIxHLJxWFx8LqO1/Hj9I/RrToHmg7Q5m0rcAar41pNsa6rq6OpqYlXvvKVPPTQQ8zPzxf1vmK8uAYGBqiqquKhhx5iZGSEu+++m0cffbQs/dlLnrggK084f/48Bw4cKInlwwllyd91HQIxeYmHVr7jldIsndtzaNyIDofDrIgZEczExIQpsjQiGEmSSKVSdHd309zcbN44a0GIXUa3OLNEpGtZnZQqozUeRH7ocVDSpBWdru5umpsbij7uis/JI1GYmZnh9OnTWK1WvF4vkUjEJOQaRw3VjmrC6TBVtipicgy31U29qx7N24Zuq0AIXwJbBdqmI0ucHYzm9aamprLPdzkWM4v8y6V/YWRyBF+ljz5rH/e23Mueij0rCNlobjc0Y0aucvkgEbfVzV5PtmBS6y3uAZoP14q4IFuNdrvdZveFgfV6cSmKwsmTJzl37hwtLS08/PDDPP7447zjHfkHvayGlzRxGdOpZVnmxhtvLLnr/rYOH72zcbQrJGS3iBysFRkZGSl5ZmK+cysmn5UbwWiaZi6YoaEhrFYriUSCHTt25PU+KvjZ7npAR3fXZpuldR3d5kV+eTa0X0xnI7jt27ebliwbhdnZWfbv309lZeUKQvb7/bxv7/v4Ut+XGI+N0+Bu4F173mUOpND929H9K+2RU6kUXV1dtLe3Fx1NF4Oh8BBDE0Nsb9iO1+slnolzLniOZk/zqpqxmpoaczYlrBwksp4Ev4FrSVyFBKjr9eJqamri4MGDtLdnx7g9+OCD/PKXv3zpE1cpP7aRNLdarbhcrrJI5s3HNzF0OchPxrNDGl6+xcHtTSL79q6e1F8L5bqViqJoCg4NKUddXR1jY2OMjY2ZebFVO/uTYay//GzW2iURyvpaVW9Dvu8voaK+LBlFMYjFYvT09Cxxo8jdUhqao9BwiPvt9+Pflo1g1hodl0gkzC37RvXvQZYMe/t7qamuMZviRURU7WqhJ5KOMBgZBGBb3baCsymNBL/FYiGdTjM/P09dXV1ZCX4DG0FchXYF5bhDFOPFdezYMRYWFggEAtTW1vLMM89w9GjpFVW4zoirWBhPYCNp/txzz5V1HIsk8ea9Lh594/GCHlqlYr0Wy5C1jrl8+fISKcdySxsjL7a8smc591WE6GR2xL2vHSE+jbL39ejV7czNzZmzHDdi1qSB+fl5Uy+Xb0EIgmAS8rZt25YkxVVVNa9lucWLQYYbTbLJZJKuri5O7DjBT8I/IZwKYxWtROUodzTdAUAoFeKbA98kpaUAODVzijdufyPVjuoVsymDwSBdXV1A9t5sb2+nsrKyrAS/gXw+WqVitWGwpQpQi/HikiSJz3zmM9x1113ous6RI0d417veVda5v+SIy5jmY8w4NFCO4tnQcZ0+fZqtW7eWtB3Lh/WODNNzZAmG5snAckubcDi8orJXU1ODNTKRdXYAkKzZvFF8homJCebm5pYIQDcCBhkePHgwPxnqOuL4cwjhIXTvZrQtL8PlctHa2mpavBjDN+LxuJnjkySJgYGBgmRYLoyxbHv27MHr9fKqylfRFehC1mSO1x+nozI7pKQz2ImiKzS6svm0QDLAueA57mq6yzxWrmZs06ZNnDt3joaGBnOLnDubMp9mbLU2pHw+WqWiUNRWzjDYYr247rnnHrq7u0s/2WW4rohrrYVuKNeXT/MpNM16LUQiESKRCDfccENBD61isV7SMvRnVqt1TeuY5f2HRl5seHiYVrmKTYudSBYXoiggKDKXFR/z8/NXZzluECYnJ5mZmVmVDKUXvoSl9wkQJNBV1KlTKLc+Yrpe5DZSGx7uExMTBINBqqqqWLz0C9yx81hEAW3zkaxZYZnaqGg0yoULF9i3b59ZdKlx1HBn850rXptW02b1E7JzHzNqfrGyEcHt3LnT3M4W0oz5/X6sVtn2XlIAACAASURBVKtJYrn5sdym8I0aTZYv4vp1k/V/EgyVdDQazWuvXE7PoeGh5Xa7N4S0yppzeAWGL3xtbW3JZf7cyt62bdtIRHeQ+EkE6+XT6ECw+hjB6qPs3bt3w0jLKIrEYjHTVDAvUhEsfd9HdzeAKIGuI008j7owhu5rW/FyURRJp9PIssytt96KGhhEP/MUl1UnGgJVc99FknUcW28t+cGwsLBAX18fBw4cKGrR7qraRW+4F6uYJeSkkmRH1Y4VrzNIa9euXWZuz7iWfJqx8+fPr/AZy91O5ib514vVIq5ft/xcYxgaJpfLlXfGIZTmyZXroXX06FFOnTpV9rkZOYz15LNyfeHXu1UFcHl98OrPoCyG6em5gMXtQ9M0Tp06tarVc7HQdZ3+/n40TVvbVFCVs5GVESEJAohidgxbHkxMTBAIBDh06BAWiwUxPYfob8DjrkNVVRLhGRYGfsFIwILNa6OhtoFGf+OaOqFQKMTg4GDh7WwebKncwr2t99IV6EIQBF62+WVsqdyy5DWLi4t0d3eb285CyG3JKcZnLJ1Os7CwsO4Ef6GIK5VKrXsbeq1xXROX4X7a0tKS17LFQLHN0oaAsRQPrUIwchbGn8s5Vj5f+I1AWpbpujhES9t2Ghqygy6WWz17PB4zL1bsFrtk1bqrBq1mO2KwD91ehSDH0N216JVLo8rcCG5JV4DVBUq24itJEl6XFWFTC+fUcwwGBpGnZHZLu7nFf4u5dV5eXZ6bm2N0dJTDhw8XXXlOKkl+NPEjxmPjWEUrL9v8MrZXLZVpGLmycgoHq/mMWSwWEokEW7ZsoaqqKq9mrFiLntW2my+W8WmFcF0RV+5CmJ+fNxf1WmXwYgwBDRJsbW0t2Y5mOYxJxdPT03kXSzEwtForfOHXCcPqZrlGK5/Vs7GoDcX7avIERVHo6uqirq6O5ubm4k5GEMnc/sdYznwRMdiPVrudzNH3LBGW5vYzLo/gtIZ9iHM9CJGJrCePtYLvEWUkNkJTZROqrjKcGOaE/4TpuQaY1xmLxZiamuLQoUMlFSROXj7JRHyCRncjsirz9MTT+Bw+6pzZiNiodm5E4SB3q5/JZDh79ix+v5+5uTkmJyeXaMZyE/xGLnWtBH++YbDXcjjHRuG6Ii4DU1NTTExMFDXjENbeKhqVyGJIcC0Y+YidO3cyOztLZ2cnkiRRV1dXlC4JMCt8R44c2dAKn6HRyk0+50NuNWzr1q0kk8kV8oS6ujoqKioQBIF0Ok1XVxetra15pxetCrsX5eY/zPtPRkHCbreb/YxLYHWhHPgvWR9+XUf3NjF8/q/w2XwIgoBFsGARLSzoCxxtO0pbWxuyLBMMBrlw4QKJRIKGhgai0ai5DSsG4/Fx/I6sotwm2RAQmE/NU+esM/3Yis2VFQujz7ajo8MU2a6mGbNarWZy34jIlm8pV4u4XuzkdV0Rl67r9PX1kUqlOHr0aNFbmNUirkKVyHLPz6gcut1uOjo66OjoWLHwjfYQY+Hnvt9wrzx06BCWmU7EoafBVoGy92Fwlz552cB6NFpOp5OWlhZaWlrM/Mvo6CjxeJyKigoikQg7d+5c0bO5HqiquqT/siAsDnT/1aR4g7uB/oV+HBZHtiiiK9Q4rspibDab6Yh65MgRotEogUDArOwZjq+rRck+m4+oHKXSXnnFoVbDaXEuSfBvZJRskFZ7e/uS79h4IObTjK3lM6brOpkro92WY6MmCF1LCGuc5IvqCjKZTLakX6T7qYHBwUEqKyuXJLcNTVQkEuHAgQMFSfC5557jpptuWvMziq0cZjIZgsEggUCAxcVFqquzgkWPx8OFCxdMwpOGf4z93/4QXZURBBHdWU3qTU+URV5GBLd///4Nj+AMconH40tGoK3nc4xtZ319fd7JTashlArxtxf+lvn0PJqucdB/kN/c/ptIgmT6pi0uLq6oohqzDQOBAMFgEMB8wLjd7iX3WygV4onhJ5BVGU3X2Fm9kwPOA1wavFRSgr8YyLLMuXPn6OjoKOnBkE6nCYVCBAKBvD5jiqLQ19dHdXU1fr/fjMRUVeXuu+/mhRde2LBrWAcKLvLrirgg+4OUiuHhYZxOp9l8m+uhlesxnw/PPfccN954Y8HXrEcJbwhFZ2dnmZ2dxev10tramh128PX7ESKTpo+7kEmQuekDWfO8ImHIRJLJ5IbKHeBqJW7//v24XC50XScej5sLP1dLVkr0YUQXZW07ryClpphNzGIVrTS6Gk0ft4GBAVRVZdeuXWv+TsaWMhAIkEgkzAVubCmTSpJQKoRVtCIlJDMfuZHVOIO0SnX9XY5czdj8/DwOhwNFUXC73Wzfvt28f3VdJxwO8+CDD9LT07Nh17EOFPyRrqutIpRnJpir4yrkobXW5+W70dfbviNJEi6Xi3g8bkZ9hlD0RGweqw5G6lTXdZATRR/byA/ZbDb27du3oTmLXIdVY6Hm+jq1t7cTXYwyH54v2poHrmqeivXILwSH5KDVc9UuxzAWlCSpKNKC7JZy06ZNpvdWOBw2t5RGZFlXk81pDY8Mc+jQoXU13S+HcZ+ul7RgqWbM8EHLZDIsLi5y9uxZU0u2adMm3v/+93P8+PENuoprh+uOuMqBkZxfzUOrEAzSWx6tbETP4fz8PH19fUtK5oZQVEs+iND9NTKpBAIagmRhcdNNFPM830hfquUYHx8nGAwWdFiVVZmv9n2VM3NnEAWR+9ru497N9xIOhwta88BVzdNGSz/WYyxoIDdflBtZnj59mnQ6bbYmrUVcGS3D4MIgMTlGo7uRFk/+38YgrW3btm2oO4eRQ7VareaYOiNn+fGPf5wnn3ySpqYm3vWud5n5yxcr/n9DXKFQiMnJyZI9ufKp7tfbvgNr+8KLL/sgmt2Bpf8HaBYnM7t+m7Gwhczs82ZVb3nTMWD6c61nq5UPRk7QGPFVaNv5vZHvcXr2NLXOWjRd43vD32OTaxNH6o/kteZxOp243W4zB7eRi0VVVbq7u/H5fGX5mueDEVnG43HsdjuHDh1ifn7ebG4vJOJVNIUnx55kPDaOTbJxeu40t2y6hYP+g0uOf61JS9O0JekRw0ssHo/z3ve+lzvuuIMf/vCHWK1WXvnKV27Y5280XvLEpeu6ubcvx5NruZRiIxqlR0dHWVhYWN0XXrSg3PQBlJs+AEDNlf8pikIwGDSbjo2F4vP5SCQS9PT0bLjFi6Zp5lZrrW1n73wvHpsHURARBRGraOVS5BJH6o5kLyvHmkfXdaanpxkcHMThcNDb21ucNU8RWE+Cfy1cvnyZ6elpc0ajy+Uym9tzRbyGPMHv9xOQAwxHh4mkIwRTQeySHXlSZn/NftN3PpVK0dnZueG/n5HrVBRlxVZZVVXe+973smvXLv74j/8YQRC45ZZbNuyzrxWuO+IqJcdlLLh0Ok1DQ0NZOYjciGu9PYe5vvC5k2dKgcViWdJ0PD8/v8Tmub29fUMtXgxZQmVlZVGWPrXOWqYXp3FZXKYcodqRP3IIBAJMTk5y4sQJ7Hb7Cmseo+K61tCN5bgWbqgGJicnmZub4+DBgyvEm/lEvIFAgHPnzhFWw/REe9AkDa/dS1yOcz55nrgcx2v3XjPSAhgaGiKTyeQlrfe97320trbyZ3/2Zy967VYurjviKhbGzev3+2loaGBubq6s4xgl4rwjw0pAqb7wxZ6bMRsvEomwY8cOIpEIZ8+exWazmdFLuZUuQ23e2Ni4aktVLl7b8VpGoiMEU0F0Xafd286tm25d8bqpqSmmp6eXqNbzWfNcvnx5hTXPar2HRlWyra1tQ3o7czE+Pk44HObAgQNr9j/ming7OjoIRoP83c/+DlEWmU/Oo0kaLpuLQDKATbfR2dnJzp07TVfVjcLQ0BDpdHqFgFfTND7wgQ/g9/v5+Mc/fl2RFrxEicuYTm14aC0sLJQ15xCy5KAoyrpIy8g7tbS0mL2BG4Xx8XECgYBpHVNbW8vWrVuXuA3oul7yFswwYyy1ubvW4eejDfcwOnsWqaKB9p2vxyotzeGNjY0RDodXdY5YzZrHbrfnJWUjallvVTIfRkdHiUQi7N+/v6xI2efxsdO/k0VlkYyawaE5SKVT9HT1MK6N09rauqG+YpCVASWTyRUj2jRN44Mf/CBut5tPf/rTL/q+xHy47nRcmUxmVRIKhUL09fWxb98+syM/FosxMjLC/v37S/osQ/uTSCTYvHlzSW0hBoy+tVwvpo1Arsp+z549q56XLGcHfAQCAdMdta6urqA0wehnLCcCkF74CpbefwHRCpqCtvkYmZd9ODsC7UqC31hM5S4Yg5QDgQCappldCJcuXWLXrl0bGrUYotVEIrGucwboDHTyg9EfIAoiqq6yzbON5nAzba1tpFIpQqGQSdh+v39dnRwjIyPE43GzemhA0zQ+/OEPoygKn/vc517spPXSEaAqilKw73BycpKpqakVQsBEIkF/fz+HDh0q+nNy2yOMp/38/Dwej4e6uro1tyxwVaS5b9++DX2a5s4k3Lp1a8mi11AoxNzcnClNqKuro7q6GlEUTUeKtfoZ8yIdw/6dt6G7ak1/LSE+i3zv/0TztZtDWnfs2LFhWxNZlpmammJkZAS73W6q3ddjzWPASGrLspy/V7IMTMQnmEvMYdEsLI4ssmf3niXyj1QqZYp40+l0QQvu1TA6Oko0Gl0hOtY0jY9+9KNEo1Eee+yxFztpwUuduAwPqFQqxb59+1YQSiqV4sKFCxw5cqSozyhUOdR1nWg0ytzcHKFQCKfTaW5Zlre4GL7wBw4c2FBhomEqWJILQwEYjqKBQIBwOIzFYiGVSnHw4MHyEvzJMPYn3pmdImQssvgc8p0fo3tWWZeWqhByXUtdLpcpFF1YWKCiosKMXkp1vzWi7eXygY1AIXPB5TAeMoFAgGg0WpTV0NjYGJFIJG9L05//+Z8zMzPDl770pbJmGf4K8NIlrlwPrULRRyaT4dy5c0UpgkupHBpCxEAgsMQBYnJy0uyH28gbpNy8UzEwHDeqq6tZWFgo2dECAF3H+sxHEWfPozsqEeQYmqOaM41vxdfYuuFiWGMIR76m5tyqXjAYLMqaJ/e9fX19iKLI9u3bN5S0jKlEa5HW/23vzKOivO4+/p1x2EdQEJBFWVVEQWo1qK+mmuihVWSJBvUkUQ9ZbK1vTNtoTUwTTWs0TYwx0YSkSQuJiQsDdBQI0bilJkYkQdwQqQiyDTPsCDLr8/7Be58MwwCz3IdleD7n9Jwm4syd6POde3/3+/v+jK2JNIQ3NDR0m+VIPvu9e/fQ1NSEiIiIHqK1Z88e3L17F2lpacNFtABbEi6tVssKi6kZWjqdDpcuXcLcuXN7/RlrnfCdnZ2oq6tDeXk5BAIBJkyYAC8vL2pHRBJMR7uGA3QdLZqamhAZGcn+pSaJFgqFgk20IJ+nz/82qnaIrqRBWHcdugdNaGl7AMfRY2EfmQjtlOU/78SspKGhAf/9738xY8YMk4TV8PP0NjmIYRi2VcrcY3h/ENEKDw+3Og6czHJUKBRQq9VsTr3hEBWGYbB3717cuHEDX3zxhdWTgQYY2xOu5uZm3Lhxw6QMLYZhcPHixV5THmi07+jnwo8fPx4KhQJyuRxKpZJ96I053U2hsbERt2/fpl4rIwV+UsPpbYdJEi3kcjk6OjrYh37MmDG9fh7d9Sy05x+C4/jJcHZyhKC1CppfPgudv/V9cCTgMCoqyqJjOGlzUSgU3Uy8bm5uKC4uhrOzM/UjbUdHB4qKivqNcbaEiooK1NbWQiwWo62tDa6urhg1ahR8fHyQlpaGy5cv48iRI1STQQYI22myBn7O0DI1SLCvv4A0RMtYLjzxI2k0mm7jtcaOHQsvLy+Ti8fGGpppoN+EbXhdboidnR18fHzg4+PD+qtIeJ0xf1VHRwdar5+Fl+cEOLj8f4Ff5ARB4x3ASuGqqalBTU2N2amlhp/HcHJQXV0drl69CkdHR4wbNw4ajYbag076MGnPfwS6LqQaGxvx0EMPQSgUstaRzMxM7Nu3Dx0dHXj55Zchk8msrokOJYadcNXV1bHDUK3d9tLoOewvF14kErETm0nKgEwmQ0lJCVxdXdkbPWN1h4qKCjQ0NPTdGmQB1vTwGfNXyeVyNjpo9OjRkMlkmB0QDseGa11bdoYBo1GCcfG0at36wzJo1WmEQiHc3Nxw7949BAcHw93dnXW7Eye8p6enxdYELkWruroacrm8WxeGQCBgh82GhYVh7969OHnyJD777DNs376d6vsPJsPuqKjRaKDRaMwWGcNAQBqiRQyRkZGRZide6j/0jY2N3dI3RSIRbt++DbVa3ecRzhJUKhWKioqot8MwDAOZTIbbt2/DwcEBjkwHwmRSuOBBVwKtRwg00ZsAkWUhe6S/01IDaG9otVo2K9+wp7Gzs5OtI6lUKpOiefQhomWRtaQfampqIJPJerj4GYZBWloapFIppFKpVaGGycnJyM7OhpeXl9F8rnPnziE+Ph5BQV3TjR577DG8+uqrFr+fEWznqEjC/63B2p5DoKdj3Vz0hyCQqBS5XI6ffvoJnZ2dGD16NHXRItfwoaGhVGOWAbDjtKKjo+Ho6Nj10NdOQHnlNag1Ojh7RcCzQ4XRox3M+vPTN63SFi3SiO3j42P0csfR0RH+/v7w9/dnj/x9RfPoQy5TuBCt2tpatsnb8L0PHTqEzMxMHD9+3Ook1vXr12PTpk1Yu3Ztrz+zYMECZGdnW/U+ljDshMsaaMw5JP4etVpNbfIziUpxdHREc3Mz/P39IRKJcP36dbZdx8vLyyonNXmQaOddAV11uMrKym5heo6OjvAPmgQETTKaaGFKnY/48xiG6eEAtxbSh+nn52fSztPwyK8fzePo6AgvLy82q55L0ZLJZKipqTEqWkeOHMGRI0eQnZ1NZVDHww8/jPLycqtfhwtGjHCRnkMiWJY8BCTymUTe0nyQjHm0AgICoFKpIJfLUVJSApVKxd5QGg7a6Avid7J4XJZOCyhbu8aGGRz1SJ49GdJqDGOJFv3NbyS2BDs7O0yaNIm6aJF5nJZklulH8wBgs+qLioqg1WrZNizaolVXV4eqqiqjoiWRSJCWlobs7GzqPY99cfHiRcyYMQO+vr54++23MW3atAF532FX42IYBiqVyuzfU1BQAA8PD4wfP96i2zlSG/L19TU5KcFUSD9jfx4tsnORy+XdBm30ZUsg031M9Tv14H4d7C6nQNBRD0YggnbGE9D5zeo2pNVSo62+qbK+vp5tnvbw8EBpaSnEYjGCgoKoihZJjwgKCmLHfNGCJOz6+PigtbWVjebpzzpiCnV1deztsuEXhFQqxcGDB5GTk0N9N11eXo7Y2FijNa7W1lYIhUKIxWLk5uZi8+bNKC0tpfn2tuPjMle4SBH+wYMHkMvlUCgUEAgE7FgnUx5m0nTMReqApR4tnU7H9hy2trb26DkEuq7KSQHXoqt9hoHd+V1AZxPg4gloOiFob4DqV6+gpKaZDaajVXfq6OhgTbx2dnbw9/enEipIoJnjboixIbDEOqJQKNDS0mJyNI8hcrkcFRUViIqK6vHnmJOTg3379iEnJ4d6jhfQt3AZEhgYiIKCApr1U9spzpuD/s2hk5MTAgMDERgYyDaykjmHRMSM1QXIMWvatGnUr7Ot8WgJhcJutoTm5mbI5XKUlpayD45Go7HOOqBVAfdrAbf/9/+IHMEAKLv2AwTjplJrPCbY29ujsbERkydPhqenJzucgjQb95Vo0R8k8sZwgjcNiGgZDoE1tI6QPte+onkMUSgU7NxPQ9E6efIk3n77beTm5nIiWv0hk8ng7e0NgUCA/Px86HQ66l8IvTHsdlyAaSPKyM1hf/UsEvkil8vZGpK3tzdcXFzY7XlkZCTVWXkMw7CZVJGRkVQ9WmQ4REdH10QgBwcHtufQbJc5w8Du9CsAwwCOrtBp1GipLEbzL/8X/tN6b5+yBFJ3mjBhQo/MMsNECzIjUH932RfkNpWLoD7S5G3u5GrDaB5jLVX19fUoKyszKlpnzpzB66+/jpycHOpHXsKaNWtw7tw51NfXw9vbGzt37oRarQYA/Pa3v8WBAwfw4YcfQiQSwcnJCe+8845JM0jNwHaOikDfwmWNE16/taWlpQVCoZBtKaK1syC3krSPWcDPouXs7IyQkBAIBAJ0dHT0OCKbM+tQ0HQXovyDYFRKNDU1QDNlOcZGr6G2ZuDnI1xwcHC/D6FhooWLiwsbM2TsOGxpU7MptLa24ubNm+xsSUsxNiTY3t6evfQw/MI5f/48XnnlFeTk5FAPphxi2JZwqVQqo7nzNNp3dDodbt26xX4L1tfXo62tzaRCeH/o30oSYaEF8SR5enr2msKgVCpZEdNoNCY3TqvuN6Gk4FuMD5wMz8Cp1NYM/LwbsuQIp+9/M5YAwaVrvaWlBcXFxUaTKaxBp9OhoqICFRUVsLe3Z29diTH5woUL2LZtG7Kzs/sMFrARbF+4aIhWb7nwpFWH7MTc3Nzg7e1tViIq8Q2NHz+e+tQZpVKJoqIis6Kh9XeXDx486DWwjss4ZCIstBIv9BMgVCoVVCoVpk6dCk9PT6pfElyJFtB1WVNaWsoeD0k0T2pqKs6ePYvGxkYcPXoU0dHRVN93iGLbwkWjfcfUXHhyVJHL5SYnopImbFOOQuZCjkLWFJ0NA+vGjBkDLy8v2Nvb48aNG5zUhkhBm4vdUGtrK65fv87aEh48eGDxxCBDmpubcevWLU5FyzDBFwAKCgrw4osvIjY2Ft999x1CQkLwwQcfUH3/IYjtCpe+aFlaL2pra8ONGzfMHg1lmIjq7OzMOqhJwZ08oFw41klhmGZUChHmqqoqKBQKuLu7w9fXF+PGjaPW2Ewa0y02xPbz2oa7IWJLINaR/prbe4OIVlRUFNXLGuDn22tjN8yFhYXYuHEjsrKyEBwcDABGp6ubQn/9hwzDYPPmzcjNzYWzszNSU1Mxc+ZMyz6U9diWcJGBGTqdDlqt1uJdFkAvF96w3mJvbw8XFxc0NDRw8oAS/5e1heH+XlutVrPCTFpbjEVVm/vaXOxY+kpEJeg3t5Mvm97it/XhUrT6eu2rV6/iueeeg0QiweTJk61+r2+//RZisRhr1641Kly5ubl4//33kZubi0uXLmHz5s24dOmS1e9rIbYlXCqVyuqRYQB3ufBAl3GvsrIS9vb2EIlErFeMRqZWXV0dKioqMGPGDKoZXcDPTntjx5X29na2uE88SqaaeIGu6/07d+4YfW1rMTcRFegSMdKuo/+ZDG9diSByIVpkh2jstW/evInk5GQcO3YMYWFh1N6zL1Pphg0bsHDhQqxZ03VzPGXKFJw7d476YF0TsS0D6uXLlzF9+nSIRCKLG6Xv3LmD9vb2HlG31sIwDBvBMnfuXIhEIrZoTGYcEhGzZMdBegNpZ3QBP4f09ZZ44eLigqCgIAQFBaGzsxNyuZw18RIR621nScTW2PW+tRBBNPe1BQIBxGIx21pEjMlkKvi4cePg6OjImoQHUrRu3bqF5ORkHD58mKpo9Ud1dXW3wEF/f39UV1cPlnD1yrATLqVSiZSUFBQWFmLBggWIj4/HvHnzTH6ISfKnnZ0dIiMjqd42kTQDrVbbLdzNyckJEydOxMSJE6FUKtmHQ6PR9PvA67/2nTt30NHRQS2VQh9ThrTq4+joyH4mlUqF+vp6lJaWGp3bqC+ItMWWxDjTEERHR0dMmDABEyZMgFqtRkVFBZsvVlFRQW3sGdBVnyS1OEPRKi0txfr163Ho0KEBa1oebgw74XJwcMDnn38OpVKJ06dP49ixY/jTn/6EefPmISEhAfPnz++1VqGfC0974gzxaInF4j7nBjo4OLAZT2q1GgqFgn3giWvfMPmBeMuEQiEiIiKoiy3Ju9IXW3Owt7eHr68vfH19odVqUV9fz+ZWiUQi6HQ6TkRLv/GYdp56W1sbGhoaMG/ePNjZ2aGxsbFHooWlFxZtbW24efOm0Vrc3bt38dRTTyE1NdXsAcY08PPzQ2VlJfvPVVVV1EMFaDAsa1yGqNVqnDt3DhKJBBcuXMDs2bORkJCAhQsXst/CXFoSVCoVmwpg6R8yCaqrq6tDe3s7u2sRi8W4ceMGRo8eTT0pgYzhAkB9diDQNQK+oaEBLi4uVjUZG6O2tpYd/ktbEEm9zFgtzvAm2dyWqt76GoGuXe/q1avxySefYPbs2VQ/kz591bhycnJw4MABtjj//PPPIz8/n7O19INtFef7QqPR4MKFC0hPT8f58+cRFRWFiIgInD59GmlpadQtCcT5HRISQk0QyfW9TCaDQqGAq6srgoODqR1TAOPtQbQgE6CVSiWb4kpu88hcQCcnJ9Y6Yu5uqaqqis1apz0jkIiWqUdP/eI+gD5DH0nAoLFb5qqqKiQlJSElJQVz5syh82GM0F//IcMw2LRpE/Ly8uDs7Ix//etfmDVrFmfr6YeRI1z6aLVavPXWW9i/fz/8/f0RHByMhIQELFmyhIqFgPiouPBokWDBwMBAiEQiyOVyNDc3sx4kDw8Pi0WMDMtwd3dHQEAA1XXrp5b2tosjt3nEOiISidgHvr/bxsrKStTX13ebAUkLS4v8BFK/VCgU7Fg6klFPopGMiVZNTQ0ef/xxvPfee1iwYAGtj2MLjEzhqq+vR3JyMrvTunz5MtLT03Hy5ElMmjQJCQkJiImJsSipkvi/uPBRkb/khoZYsmupq6tDY2MjxGIxu2sx9SEmrUekJkUTcvHh4OBg1jBVcusql8v7jKquqKhgB9fSvpwgSQyWzmo0hBz9SRaXSqXCpEmT4Ovr223tMpkMK1euxN69e7Fo0SKr39fGGJnC1Rs6nQ5XrlxBeno6vvrqKwQEBCAuLg5Lly41aedUU1OD6upqTvxfxFXeXysMGTFPdi2mHL1ICoN+PDQtdDodrl27BldXIutyWQAAFQ1JREFUV3bqiyUYxgyRWh9JTpg+fTp10VIoFKx3jfafZ3t7O4qKihAQEIC2tjY0NTXBxcUFlZWVmDRpEp5++mns2bMHS5Ysofq+NgIvXL1Baj3p6enIzc2Ft7c34uPjsWzZsh69f/oeLa6OKsREaa7HS9+1r294JQ8ijZ7G3iAjvsaNG0f1tpZEVZeVlUGpVMLHxwfe3t5WxyDrQ0SLi5tJMr1a/0uIfOHs2rULGRkZ8PX1xTPPPIPHHnuM+peJDcALlykwDIPi4mJIJBJkZ2djzJgxiI+PR2xsLMaOHYvjx48jLCwMYWFh1L/1a2trUVVVRWUXZ5jB5ebmBrlcjoiICOrj3zUaDa5cucLJ0ZNhGJSWlkKj0WDKlCloampiEzpo1Pr0PWADIVqExsZGrFixAq+88goiIiIglUoRFRWFX/3qV1TXYAPwwmUu5GZMIpEgKyuLnSi9Z88ejB8/nuotHJlYTTsNFeh6OIuLi+Hk5ASBQEBl1BmBDJ4ICAiwaFpOX5AiP4Aevjj9qGr9MEH95vb+6CvH3VrITXN4eHiPL4rm5masWLECW7duRWJiotXvlZeXh82bN0Or1eKZZ57Btm3buv16amoqtmzZwtp0Nm3ahGeeecbq9x0geOGylIaGBiQmJmLZsmUQCoWQSqUQCoWIi4tDQkICfHx8LBYxY7YBmpCjJ2kp6Sum2tzPQOplISEh1IfLkp2vSCTqdzSZseZ2Is697VyJcZVL0TKWuNra2oqVK1fi+eefR1JSktXvpdVqMXnyZJw6dQr+/v6YPXs2Dh8+jPDwcPZnUlNTUVBQgAMHDlj9foOAbfUqDiT29vb461//ym7jX3zxRVRVVSEjIwPJycnQarWIjY1FYmIiJkyYYLIAkBs4e3t7TJs2jbr5kwzimDlzJvsA29vbw8/PD35+fmyQIHHNmzOMwprU0v4g/10cHR1N8peRYbqjR49GSEgIe0wuKirqtsMkNUMuRYtYWIyJ1v3797Fq1Sps3LiRimgBQH5+PkJDQ9mom9WrV0MqlXYTLluF33FZAcMwkMlkyMzMRGZmJtrb2xEbG4v4+HgEBwf3+tARH9XYsWMRGBhIfV1VVVWoq6vDjBkzTDo6GQ6j6CummqSWcuFdIxclYrGYfRitgfiq5HI5NBoNHBwc8ODBA/zyl7/kRLSuXLliNHSxvb0dq1atwrp167Bu3Tpq7ymRSJCXl4dPPvkEAPD555/j0qVL3XZXqampeOmll+Dp6YnJkydj37593Zqohzj8UXEgkMvlyMrKQmZmJhobG7F06VIkJCR0m3pNBsv6+flxUswuLy9HS0sLIiIiLLr17Cumur29nbPUUmKnGDNmDHVTLNCVelBRUQFnZ2d2UCuNRFSgSyALCwuNitaDBw+watUqrFmzBk8//bRV72OIKcLV0NAAsVgMBwcHfPTRRzh69CjOnDlDdR0cwgvXQNPQ0ACpVIqMjAzIZDLExMRg9uzZOHToEN555x3q/ZLkBk6tVlObHqQfU11fXw+1Wo3Q0FD4+vpStYKQHei4ceM42Q0Y9jUaJqIaG6ZrKkS0jKXndnZ2Ys2aNUhMTMSGDRuolwMuXryIHTt24OuvvwYA7N69GwDw0ksvGf15rVYLd3d3tLS0UF0Hh/DCNZg0Nzfjww8/xFtvvYXw8HDMmzcPiYmJiIiIoCYwpJitv7ujRWNjI0pKShASEoKWlpZeY6otgXjAvLy8qA8RAbpEi4RFGlun4bgz0o3g4eHR7+dSqVQoLCzEpEmTetT6lEolnnzySfz617/Gpk2bqP+ZAF1WlMmTJ+P06dPw8/PD7Nmz8eWXX3aLwqmtrWWztLKysvDmm2/ihx9+oL4WjuCL84PJqFGjkJmZie+//x6+vr7IycnB3r17UVpaikcffRQJCQmYOXOmRSJG4nRcXV27TSaihUKhQFlZGWbOnMkmIYSGhrI3eWSMlre3t9mRzsQD5ufnx0lQXU1NDWpraxEVFdXrDlEoFMLd3R3u7u7duhHu3r3bZ/IDEa3Q0NAeoqVSqbB+/Xo8+uijnIkWAIhEIhw4cAAxMTHQarVITk7GtGnT8Oqrr2LWrFmIi4vDe++9h+PHj0MkEsHd3R2pqamcrGWg4XdcA4RSqezRQNzR0YHc3FxIJBLcuHEDCxcuREJCAh566CGTjmJklqKXlxcnRyyZTIbKysp+b+AMI51Niakmk6snTpxI3QMGmCZa/aHfCC4UCtkbSqFQyFpBDEe2qdVqJCcn46GHHsLWrVs5E60RAn9UHOp0dnbi66+/hkQiYdNdExIS2PhnQ4j505xZiuZQXV0NmUxm8s0kwbBh2lhMNVl7YGAgJ20u1dXV7K0qrVociXWuq6tDa2srvLy8EBgY2K1BX6PR4Nlnn0VERAS2b9/Oi5b18MI1nCDprhKJBJcuXeqR7kqMpaGhodTNnwBw79491slvzYNvaEfw9PTE2LFj2XoZF2vnMqtLrVajsLAQEyZMAMMwUCgUrFA7Ozvj8OHDCA0Nxc6dO3nRogMvXMMVw3TX8PBw/Pjjj5BIJNSHKDAMg7t37+L+/fvUUxjUajVqampQVlbG1sSMxVRbA9eiRXaJ+jfCWq0Wp06dwp49e1BeXo6VK1di1apVfN8hHUaOcP3lL39h23K8vLyQmppK3S81WOTn52PNmjWYO3curly5gqioKMTHx+PRRx+1egKNvp0iPDyc+o6BuO2nTJmC0aNHG42ptsZTxWXAoEajQWFhIQICAnocbXU6HV544QW4ubnhjTfewH/+8x+UlZXhueeeo7qGEcrIES4yqRgA3nvvPdy8eRMpKSmDvCo6vPbaa1i3bh2Cg4Oh1Wrx/fffQyKR4MyZMwgPD7c43ZVkzwsEgj4HfVhKX/17hp6qsWPHsq59U3d8RLQsHfbRF0S0jF0i6HQ6bNmyBXZ2dnj33XepvHd/TdNKpRJr167Fjz/+CA8PDxw9epST7oshwsgRLn12796Ne/fu4cMPPxzspXCKTqezON3V3N5AcyFprsaSEoythUTXmBpTfe/ePTQ2NnKSikrsGv7+/j0uQHQ6HV5++WWo1WocPHiQynub0jT9wQcf4OrVq0hJScGRI0eQlZWFo0ePWv3eQ5SRJVzbt2/HZ599Bjc3N5w9e5a6S30oo5/umpeXh4kTJyI+Ph6/+c1veux2SJuNm5sbJ9/aZDiEJS1CpsRUcylaWq2WzRkz9JjpdDrs2LEDzc3N+Pjjj6m9tylO+JiYGOzYsQNz586FRqPB+PHj2dw1G8S2hGvx4sWQyWQ9/v2uXbsQHx/P/vPu3bvR2dmJnTt3DuTyhgy9pbvGxsZi1KhRyMnJwfz58znxgJExXMaGQ5iLsZhqoVAIjUbDyfGwL9FiGAZ/+9vfUFNTg3/+859U62mm9B5Onz4deXl5bJdBSEgILl26xMkN7RDAtpzz33zzjUk/98QTT2Dp0qUjVriEQiEiIyMRGRmJ119/nU13Xb58ORoaGhATE4PFixdTf18yWt7Y7EBLEAgEcHV1haurK0JDQ1FSUoKGhgaMGjUKV65c6RFTbQ2kBcnHx8eoaL355pu4d+8e0tLSqF8C8JgO3a+qIUBpaSn7/6VSqUWWgS1btiAsLAyRkZFITExEc3MzzSUOCgKBAOHh4di4cSMcHR2xZcsWBAUFYfXq1YiNjcU//vEPyGQy9LMD75fm5maqomVIeXk5lEol5syZg+joaISFhbEdBAUFBbh37x46Ozstem0iWt7e3j1uohmGwTvvvINbt24hLS2NelItYNoUaf2f0Wg0aGlp6eHeHwkMy6NiX6xYsQIlJSUQCoUICAhASkqK2dOlT548iUceeQQikQh//vOfAQBvvvkmF8sdcOrr63Ht2jV2FBbxbmVkZFid7trY2Ijbt2+ziau0uXv3Ltra2nr1mBF3u1wuh06nMyumWqfToaioCJ6enj2avRmGwfvvv4/8/HwcPXqUepYXwZSm6YMHD+LatWtscT4zMxPHjh3jZD1DANuqcQ0kWVlZkEgk+OKLLwZ7KZzDMAyb7pqZmWlWumtfY+tp0J9oGWJOTDURLWOxOgzDICUlBefPn4dEIqE+vsyQ3NxcvPDCC2zT9Pbt27s1TXd2duKpp55CYWEh3N3dceTIESqhi0MUXrgsZfny5Vi1ahWefPLJwV7KgGJOuiuXcwkBoKysDO3t7Zg2bZpFhXgSUy2Xy3vEVDMMw071NhytxjAMPv30U+Tl5SEzM5OTXSRPn/DCZYgpN5O7du1CQUEBMjMzbfW62WRIumtGRgaamprYdNf8/Hw4ODggMTGRkyMUycSnlctvGFOt1Wrh4eGBsLCwHpOE0tLS8O9//xtSqdTsOZc8VOCFy1xSU1Px0Ucf4fTp0xYVmdPT07Fjxw4UFxcjPz8fs2bN4mCVgwNJd33//ffR0NCA1atX4/HHH6eWvAp0CUdZWRlV0dKHeNhEIhEEAgEbU+3g4AB/f3+kp6fj6NGjOHHiBCeXDDwmYVt2CK7Jy8vD3//+d5w/f97iv7TTp09HZmYmNmzYQHl1g4+HhwfEYjE8PDxw4sQJnD17Frt27UJFRQWWLFlidborwzC4c+cOlEolZ6J1/fr1bsZbkoT65Zdf4oMPPoBKpcK+fftG/E57qMLvuIwQGhoKpVLJXjPPmTPH4n7HhQsX4u2337apHRfQdVXv7u7eTdhbW1uRk5ODjIwMi9Nd9UWLi2ZvhmHYSUJBQUE9fj0jIwMff/wxdu7cia+//ho1NTX4/PPPqa6Bx2T4o+JgYavC1R+G6a6LFi1CfHx8n+muZEAuGfjBhWjduHEDTk5OCAkJ6fHrx48fx4EDB5Cdnd1jWo+1NDY2YtWqVSgvL0dgYCCOHTvWY7gG0BXzHRERAQCYOHEijh8/TnUdwwxeuLjAlAL/SBUufUxJdyWxOhqNhjPR0m8mNyQ3Nxd79+5FTk4O9SG3ALB161a4u7tj27Zt2LNnD5qamox6A8ViMe7fv0/9/YcpvHANFrxwdYeku6anp+Py5cuYO3cu4uLiIJVKsXz5cixevJgT0SouLoa9vb3RBIyTJ09i9+7dyMnJ4aznb8qUKTh37hx8fHxQW1uLhQsXoqSkpMfP8cLVDb44P5zoL5NpOOPg4IClS5di6dKlUKvVOHv2LF588UWo1WpoNBowDIOFCxdS84ORrDE7OzujonXmzBns2rWLU9ECgLq6Orb3cfz48airqzP6c52dnZg1axZEIhG2bduGhIQEztY0nLG5XsWhQlZWFvz9/XHx4kUsW7YMMTExJv0+rVaL3//+9/jqq69w8+ZNHD58GDdv3uR4tYODnZ0dfvrpJzzyyCO4evUq1q9fj1OnTmH+/Pl47rnnkJuba3HfIdAlWiUlJRg1ahRCQ0N7iNa3336L1157DSdOnKAytGPx4sWYPn16j/9JpdJuPycQCHrdVVZUVKCgoABffvklXnjhBdy5c8fqddki/FFxiGHudOLhTlNTE8aMGdPtQaaR7sowDG7fvg0ARofkXrhwAdu2bcOJEyfM7mW1BFOPivqsX78esbGxWLlyJefrG6L0elTkd1xDjOrq6m79cv7+/qiurh7EFXHL2LFje4jKqFGjsGDBAuzfvx9FRUX44x//iB9//BGPPPIInnrqKWRmZvZZByKixTCMUdH64YcfsHXrVkil0gERLQCIi4tDWloaACAtLa1bbhyhqakJSqUSQFcz/Hfffdct/ZTnZ/gaF8+QRigUIjo6GtHR0dDpdCgsLIREIsHevXuNpruS20mdTtejjQcACgoK8Ic//AFSqZSTAMXe2LZtG5KSkvDpp58iICCATXQoKChASkoKPvnkExQXF2PDhg0QCoXQ6XTYtm0bL1y9wB8Vhxgj7ahoKcbSXePi4pCfn48FCxYgKSmph2gVFhbid7/7HbKysoxaIniGHLwdYrhgSiaTKSQnJyM7OxteXl64fv06R6sdGhC7w8aNG1FVVYXg4GAkJCQgNjaWvSm8du0ann32WUgkEkyePHmQV8xjIrwdYrggEolw4MABxMTEsJlM5ooW0FXY3bRpE9auXcvBKocWAoEAP/30EwIDA3H69GmUlZVBIpFg1apVcHJyQnR0NKRSKTIyMnjRshH4HZcNU15ejtjYWJvfcQFd/ic7O7tu7UQk3XXnzp1ISkrCsmXLBnGFPBbA77h4bBtjIX8CgQDBwcHsbR6P7cDbIXh4zCQ9PZ1NYy0oKOj15/Ly8jBlyhSEhoZiz549A7hC24cXLh4eMyFZaw8//HCvPzOSOiAGA164eHqlsrISixYtQnh4OKZNm4b9+/cP9pKGBFOnTsWUKVP6/Jn8/HyEhoYiODgY9vb2WL16dY/WHx7L4YXLRlmzZg3mzp2LkpIS+Pv749NPPzX7NUQiEfbu3YubN2/ihx9+wMGDB/ldg4mMtA6IgYYvztsohw8ftvo19Kc5jx49GlOnTkV1dfWIcHObkrXGM3jwwsVjEuXl5SgsLER0dPRgL2VA+Oabb6z6/aZMpeaxHP6oyNMv9+/fx4oVK/Duu+/C1dV1sJczLJg9ezZKS0tx9+5dqFQqHDlyBHFxcYO9LJuBFy6ePlGr1VixYgWeeOIJPPbYY4O9nCFBb1lrNTU1WLp0KYDuHRBTp05FUlKSRR0QPMbhnfM8vcIwDNatWwd3d3e8++67Fr9OZ2cnHn74YSiVSmg0GqxcuRI7d+6kuFIeG4VvsuYxnwsXLmDBggXdZiS+8cYb7K7CVBiGQXt7O8RiMdRqNebPn4/9+/djzpw5XCybx3bgW354zGf+/Pno54vNJAQCAcRiMYCuo6dareYHrfJYBV/j4hkQtFotoqKi4OXlhSVLloyY20kebuCFi2dAGDVqFK5cuYKqqirk5+ePiMQKHu7ghYtnQBkzZgwWLVqEvLy8wV4KzzCGFy4ezlEoFGhubgYAPHjwAKdOnUJYWJjFr6fVavGLX/wCsbGxtJbIM8zgi/M8nFNbW4t169ZBq9VCp9MhKSnJKtHZv38/pk6ditbWVoqr5BlO9GeH4OEZUggEAn8AaQB2AfgjwzD8tmsEwh8VeYYb7wLYCkA32AvhGTx44eIZNggEglgAcoZhfhzstfAMLrxw8Qwn/gdAnEAgKAdwBMAjAoHg0OAuiWcw4GtcPMMSgUCwEMCLfI1rZMLvuHh4eIYd/I6Lh4dn2PF/P9JtO+CLZx0AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "from sklearn.decomposition import PCA\n", - "import numpy as np\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "from matplotlib import pyplot as plt\n", - "\n", - "# PCA関数の使用 (3次元)\n", - "pca = PCA(n_components=3)\n", - "pca.fit(features)\n", - "res = pca.fit_transform(features)\n", - "print(\"固有値\",pca.explained_variance_)\n", - "print(\"固有ベクトル\",pca.components_)\n", - "#描画\n", - "fig = plt.figure(figsize = (4, 4))\n", - "ax = Axes3D(fig) \n", - "for label in np.unique(targets):\n", - " p = ax.scatter(res[targets == label, 0],\n", - " res[targets == label, 1],\n", - " res[targets == label, 2],\n", - " marker = 'o', s = 20)\n", - "plt.show()\n", - "plt.close()\n", - "\n", - "# PCA関数の使用 (2次元)\n", - "pca = PCA(n_components=2)\n", - "pca.fit(features)\n", - "res = pca.fit_transform(features)\n", - "\n", - "#描画\n", - "fig = plt.figure(figsize = (4, 4))\n", - "plt.xlabel(\"PC1\"); plt.ylabel(\"PC2\")\n", - "for label in np.unique(targets):\n", - " plt.scatter(res[targets == label, 0],res[targets == label, 1],label=target_names[label])\n", - "plt.legend()\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3O_gzsZv0ARL" - }, - "source": [ - "このように、4次元のデータを低次元に射影することで \n", - "3種類のアヤメの持つ特徴を可視化できるようになる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0Kfac71jDg_m" - }, - "source": [ - "## 実装してみよう\n", - "\n", - "sklearnなどのライブラリは非常に便利だが \n", - "中で行われている計算を確認するには \n", - "複雑に設計されたソースコードを読み解かなければならず \n", - "「本当に自身が意図した計算をやっているのか」が分かりづらい。\n", - "\n", - "ライブラリを「使えれば良い」と「中身を分かった上で使う」の間には \n", - "* 問題が起きたときの対処能力\n", - "* 自身で新規な手法を開発して実装する能力\n", - "\n", - "などなど、様々な面で決定的な差が生じる。\n", - "\n", - "\n", - "以下では、必要な計算をなるべくブラックボックスにしないで \n", - "PCAを実装してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 206 - }, - "id": "XzrwCPxiENxC", - "outputId": "547606c2-6165-4379-985e-6ebd9a1f3d17" - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - "
\n", - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2
\n", - "
\n", - " \n", - " \n", - " \n", - "\n", - " \n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - " sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)\n", - "0 5.1 3.5 1.4 0.2\n", - "1 4.9 3.0 1.4 0.2\n", - "2 4.7 3.2 1.3 0.2\n", - "3 4.6 3.1 1.5 0.2\n", - "4 5.0 3.6 1.4 0.2" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#上のコードと同様 irisデータを取得\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "from pandas import DataFrame\n", - "from sklearn import datasets\n", - "dataset = datasets.load_iris()\n", - " \n", - "target_names = dataset.target_names\n", - "targets = dataset.target \n", - "feature_names = dataset.feature_names\n", - "features = dataset.data\n", - "\n", - "df = DataFrame(features, columns = feature_names) \n", - "df.shape\n", - "df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yvMc5aRnEzW9" - }, - "source": [ - "今のデータは、上の定式化におけるN=150, p =4の場合に相当する事がわかる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "bL_YdesrEh_Z" - }, - "outputs": [], - "source": [ - "N,p=df.shape\n", - "#データ行列の定義\n", - "X = df.values \n", - "\n", - "#p=1,2,3,4 各列の平均ベクトル(p×1行列)を定義\n", - "mv = np.array([ np.mean(X[:,i]) for i in range(p) ]).reshape(p,1) \n", - "\n", - "#共分散行列Cの計算\n", - "C = np.zeros((p,p)) # p×pのゼロ行列を作成\n", - "for i in range(N):\n", - " d = X[i,:].reshape(p,1) - mv \n", - " C += np.dot(d,d.T) / N " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HuxOkOthHxFz" - }, - "source": [ - "行列の固有値を求める部分の詳しい説明は、それだけでノートブックが複数必要なので \n", - "Numpyの中にある固有値・固有ベクトルを計算する関数```np.linalg.eig```を用いる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "QqPxlliMIBYR", - "outputId": "6dabab37-e2b2-430d-bac4-8e5236d591de" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "固有値 [4.20005343 0.24105294 0.0776881 0.02367619]\n", - "固有ベクトル [[ 0.36138659 -0.08452251 0.85667061 0.3582892 ]\n", - " [-0.65658877 -0.73016143 0.17337266 0.07548102]\n", - " [-0.58202985 0.59791083 0.07623608 0.54583143]\n", - " [ 0.31548719 -0.3197231 -0.47983899 0.75365743]]\n" - ] - } - ], - "source": [ - "vals,vecs = np.linalg.eig(C)\n", - "print(\"固有値\",vals)\n", - "print(\"固有ベクトル\",vecs.T) #固有ベクトルは縦に並んでいることに注意" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "MxWvorgrOokz" - }, - "source": [ - "sklearnで計算された```explained_variance_```(固有値に対応)=```4.22824171, 0.24267075, 0.0782095```と \n", - "わずかに値が異なっている。\n", - "\n", - "実はsklearnでは不偏分散が使われているため、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Xi7ViJPcI0Ub", - "outputId": "f725627e-41a2-4484-a772-cde66ab75df9" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[4.22824171 0.24267075 0.0782095 0.02383509]\n", - "[[ 0.36138659 -0.08452251 0.85667061 0.3582892 ]\n", - " [-0.65658877 -0.73016143 0.17337266 0.07548102]\n", - " [-0.58202985 0.59791083 0.07623608 0.54583143]\n", - " [ 0.31548719 -0.3197231 -0.47983899 0.75365743]]\n" - ] - } - ], - "source": [ - "#共分散行列Cの計算 (不偏分散, sklearnと整合)\n", - "C = np.zeros((p,p)) # p×pのゼロ行列を作成\n", - "for i in range(N):\n", - " d = X[i,:].reshape(p,1) - mv \n", - " C += np.dot(d,d.T) / (N-1) #分母 N → N-1\n", - "vals,vecs = np.linalg.eig(C)\n", - "print(vals)\n", - "print(vecs.T)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3jM5vMf-PMTg" - }, - "source": [ - "とすると、両者を整合させることができる。 \n", - "以降では、上の定式化を修正して不偏分散を用いることにしよう。\n", - "\n", - "このように、ライブラリのソースコードを読むか自身で実装した関数と比較することで初めて \n", - "「sklearnでは不偏分散が使われているんだな」ということが分かったりする。 \n", - "\n", - "細かな実装が式と整合しているかどうかを確かめるのは重要で \n", - "これを怠ると、再現性が損なわれたりバグの温床になる。 \n", - "\n", - "余談: \n", - "世の中でプログラムを書く人が全員「動けばいいや」の考えだと \n", - "それがいつかサービスやシステムを通して社会(や自分自身)に大きな不利益をもたらすかもしれない。 \n", - "(たとえば自動運転の車による事故などを想像してみよう)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "sCnY12i_I0oo" - }, - "source": [ - "各データに対する第1主成分軸に沿った\"得点\"は、 \n", - "最大固有値に対応する固有ベクトル```vecs[:,0]```が \n", - "射影になっていることを思い出すと、内積を取ればよい。 \n", - "```vecs[0]```とすると0番目の行ベクトルが取られて誤りになるので注意!\n", - "\n", - "各点について第1主成分得点を計算してリストに詰めておこう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "s87q-rYSI5Pe" - }, - "outputs": [], - "source": [ - "PC1s = [ ]\n", - "for i in range(N):\n", - " x = X[i,:].reshape(p,1) - mv \n", - " u = vecs[:,0].reshape(p,1)\n", - " PC1 = np.dot(u.T,x)\n", - " PC1s += [PC1]\n", - " #print(\"i\",i, \"PC1\",PC1)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ahhgln0nJWyC" - }, - "source": [ - "同様にして" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "39Of18TJJXuy" - }, - "outputs": [], - "source": [ - "PC2s = [ ] \n", - "for i in range(N):\n", - " x = X[i,:].reshape(p,1) - mv \n", - " u = vecs[:,1].reshape(p,1)\n", - " PC2 = np.dot(u.T,x)\n", - " PC2s += [ PC2 ]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tDgcr88IU8gQ" - }, - "source": [ - "プロットしてみよう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 279 - }, - "id": "uel1NAySJlIA", - "outputId": "36c11e0e-0709-49e3-9b59-c86ec0f82803" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "cols = [\"blue\",\"orange\",\"green\"]\n", - "\n", - "fig = plt.figure(figsize = (4,4))\n", - "plt.xlabel(\"PC1\"); plt.ylabel(\"PC2\")\n", - "for i in range(N):\n", - " x = PC1s[i]\n", - " y = PC2s[i]\n", - " plt.scatter(x,y,color=cols[targets[i]],alpha=0.4)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yFZRJdJIVDHD" - }, - "source": [ - "sklearnの出力と上下がひっくり返っている。 \n", - "yにマイナスをかけて向きをあわせてみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 283 - }, - "id": "EpFUgJ2tVUVP", - "outputId": "c85ae172-7208-492f-fb71-bdb828a4f06f" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(figsize = (4, 4))\n", - "plt.xlabel(\"PC1\"); plt.ylabel(\"PC2\")\n", - "for i in range(N):\n", - " x = PC1s[i]\n", - " y = PC2s[i]\n", - " plt.scatter(x,-y,color=cols[targets[i]],alpha=0.4)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ZLPdJtjsV6Tw" - }, - "source": [ - "sklearnと同じ結果を与える自作コードを作ることが出来ました。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "snHoZ1M0VbX0" - }, - "source": [ - "上の符号反転について:\n", - "\n", - "第2主成分に対応する固有ベクトルは、sklearnと自前関数で得られた値で符号が異なっている。 \n", - "今のように、分散を大きくする軸を見つける場合、 \n", - "当然軸の反転(固有ベクトル全体の符号)の自由度が残されている。 \n", - "実装によって符号が異なるのは、固有値問題を解く際に使用されているソルバー\n", - "におけるconventionの違いなどに由来している。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Oyz3uBo1Pa56" - }, - "source": [ - "# $\\clubsuit$ オートエンコーダ(自己符号化器)\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "wlQDrQiuYVi2" - }, - "source": [ - "上で紹介したPCAは、式(or 直交変換の定義)からもわかるように \n", - "空間上に\"平坦に\"分布するデータの特徴を説明するのにはうってつけです。 \n", - "\n", - "一方、一般のデータは必ずしも直線的な分布を持っているわけではなく \n", - "空間上で曲がったり複雑な幾何学形状をしていてもおかしくありません。 \n", - "\n", - "そんなデータに対して、データの冗長性を削減したり特徴をとらえるための方法の一つが \n", - "以下で説明するオートエンコーダです。 \n", - "\n", - "最も基本的なオートエンコーダは隠れ層がくびれた \n", - "以下のようなニューラルネットワークで構成されます。\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "LETpVaUGNKdH" - }, - "outputs": [], - "source": [ - "%%capture\n", - "#from keras.models import Sequential\n", - "#from keras.layers import Dense\n", - "!pip install ann_visualizer\n", - "from ann_visualizer.visualize import ann_viz\n", - "from graphviz import Source\n", - "from PIL import Image\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 595 - }, - "id": "RANsWPX9N7kg", - "outputId": "163b4d0d-dec5-46a7-bcd1-ed59f65ac78e", - "tags": [ - "hide-input" - ] - }, - "outputs": [ - { - "data": { - "image/png": "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w8QoAor/ZTD9MyAIAl5eXmzdupXIyEg+/PBDampqaO1ki5GREQ899BC7d+8mOzubMWPGkJWV1erztSdubm58/fXX7Ny5E3t7e1566SWefPJJjh49ikql6hQ26mgaPT09XF1deeKJJ9i0aRPXrl3j+PHjTJ48mejoaKZMmYKDgwNTp05l48aNlJdrZpC1zmRb7m2rjxfh12TI7uKBESoRTl+Hy8VQ10GrlzffR7lcTmpqKmvXrmX69Om4uLgwceJEjh8/zowZM/jvf/9LXl4e69atY8aMGbqwzi6Ctr7i6tWrGTZsGFu2bOG1115j//79zJs3r8OF382TDdrtDQ8//DC7du3C0tKy1c+YKIqcPXuWTz75BKVSyVdfffXnEn4Al2K75744iRSSzoOim4SydgDd8Kno2lRTQB6xXaqg+90hUkcZ2ZzsaEMeKCNGjODrr7/m3//+N+vXr6empqbV59LT0yMkJISoqCj09fUZMmQIcXFxnUZcDR48mC1btrBmzRrKy8t58sknWbhwIZcvX+5o03TcJTKZjMGDB/Pxxx9z/vx5UlJS+OSTTxBFkRdeeAFbW1uGDx/Oxx9/THJyMmp162eUGxoaSElJuefjkovhagnUdoNxX0+Aw+lQVNsx7ZeVlXH48GEWL15MaGgogYGBvPXWWygUCj766COSk5OJi4vjww8/ZOjQoTqx1wU5ePAgoaGh/POf/2wU86+++mqHFWpvisLCQt5++23eeustFi5cyKZNm9q8Jy8+Pp5///vfFBYW8n//93/06dOnnaztQiQnaGr8dTfUKki91H32MXYAOvHXiWighkquU0NRR5tyX1DRQCnXqOZGR5vywBAEgaeeeorFixezZMkS9u3b1yYBKAgCbm5uHD9+nH79+hEeHs6BAwc6hQAUBAEDAwOmT5/Ojh07WLJkCSdPnmTChAm88847FBYWdrSJOu4CbXinRCLBy8uLl156id27d5OXl8fPP/+Ml5cXn376Kb179yYwMJC//e1vREZGUl1dfdfPoUql4uLFiwwfPpx3330XxT3M4B7NgAo53SJtlFKEIxlQWKPJzXC/UalUXL58mRUrVjBhwgT8/PyYOnUqx44dY9SoUezZs4fs7Gz27dvHggULbklW1dqkVTo6htTUVKZMmcKUKVNwd3fnxIkTfP7557i7u3ea+6hWq0lJSeGFF15g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ztltrpxIc+OAtj1tn9hUe9XVTQ9y2r60qfa09jc3JjX3fWkFWFNov6/b2xNFsXElSKlUUlpaSl5eHiqViurqas6cOdPYd6jV6j8UFC2911TbLR13e3s3R/Jo32toaKC8vJz6+nrMzMxITEwkNTW1sS2JRIKRkVFjn3S7HTcnirq5PX19faqrq7l48SJGRkZ4eXmhVqvJz8+/pf++/dqkUinGxsaN57jZ/psnOm+/NiMjI/T09Br34GnPqe2LtZOnt9vfUt9vbGzcbF9sZGSERCJh48aN7N27957LOcmVKsa7O/DJiL6YG7Tdr5QKAp4WJoQ52bDzai49jAyY5uOEvuTO6AIXM+PG/5fpSTHX10cliijaO0RT36C99iT96dCJv06EFH30MEZAQGyHwKacGCjP1GT2dAwGa2/N6lvKbs0ewMF/bToEVEtVLtj1brMZjRiaQ//HjfG3HsCu97K4fv06EokEZ2dn1Go1u3btIjo6mr59+zJo0CCGDh2KnZ0dgiA0OTDB74NWU4NTSwOhSqVq8ZiW2mrO+fijAbKpgbWyspINGzYQHR2Nl5cXjz76KKampi1el/aczYWSaNuqqqriu+++4+zZs0yYMIHx48djbW3dpB0qlarxde0MYlO0JKhbcvaac8xub0utVnPu3DlOnDiBkZERw4YNw8PDA6lUikQiaRwob55dvVloah2lm23UHiuKInV1dbckGdE6aSqV6hZH7+YsiNpr1g702ve0YvpmZ+5mQVxfX994zTefT61WU1dX13hvb35PqVTe4lS2lJhDe123c/P5bqclUX7ztbXUlkQiaXSebkcrHm8/vzYku6KigpiYmCaPbY6ysjJOnTrFq6++SmatKWrHgZiGv4qetds9nedmRFGkIfsstfHbUJZmITbUoiy9hqiU3zGTLDG1w9B9CIhqGnLjEds4i94cP/77I7YVRFNXVU5NTU3j82hsbIxarebGjRucP3+elJQU5HL5PQsP7e+iqf5L+xw39V5zfY22vZb62Hvts//onNoIhqbOqa+v36wQ1iYmagptApymztnUpAz8vo+5ub1qTU0cae23smp65UMqlTaKCy1qtZq8vDwuXLhATk4OLi4uhIWF4eTkdMtxzW11aCl65GYxc/u1acVTS8c1xc1t1dbWsm7dOqKjowkPD2fKlCnN7kNvrp8TBKHZtq5evcq/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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "graph = temp = '''\n", - "... digraph G {\n", - "... \n", - "... graph[ fontname = \"Helvetica-Oblique\",\n", - "... fontsize = 20,\n", - "... label = \"\",\n", - "... size = \"15,30\" ];\n", - "... \n", - "... rankdir = LR;\n", - "... splines=false;\n", - "... edge[style=invis];\n", - "... ranksep= 1.4;\n", - "... {\n", - "... node [shape=circle, color=chartreuse, style=filled, fillcolor=chartreuse];\n", - "... x1 [label=1>];\n", - "... x2 [label=2>]; \n", - "... x3 [label=3>]; \n", - "... x4 [label=4>]; \n", - "... x5 [label=5>]; \n", - "... x6 [label=6>]; \n", - "... }\n", - "... {\n", - "... node [shape=circle, color=dodgerblue, style=filled, fillcolor=dodgerblue];\n", - "... a12 [label=1>];\n", - "... a22 [label=2>];\n", - "... a32 [label=3>];\n", - "... a42 [label=4>];\n", - "... }\n", - "... {\n", - "... node [shape=circle, color=coral1, style=filled, fillcolor=coral1];\n", - "... O1 [label=1>];\n", - "... O2 [label=2>]; \n", - "... O3 [label=3>]; \n", - "... O4 [label=4>];\n", - "... O5 [label=5>]; \n", - "... O6 [label=6>]; \n", - "... }\n", - "... {\n", - "... rank=same;\n", - "... x1->x2->x3->x4->x5->x6;\n", - "... }\n", - "... {\n", - "... rank=same;\n", - "... a12->a22->a32->a42;\n", - "... }\n", - "... {\n", - "... rank=same;\n", - "... O1->O2->O3->O4->O5->O6;\n", - "... }\n", - "... l0 [shape=plaintext, label=\"layer 1 (input layer)\"];\n", - "... l0->x1;\n", - "... {rank=same; l0;x1};\n", - "... l1 [shape=plaintext, label=\"layer 2 (hidden layer)\"];\n", - "... l1->a12;\n", - "... {rank=same; l1;a12};\n", - "... l3 [shape=plaintext, label=\"layer 3 (output layer)\"];\n", - "... l3->O1;\n", - "... {rank=same; l3;O1};\n", - "... edge[style=solid, tailport=e, headport=w];\n", - "... {x1; x2;x3;x4;x5;x6} -> {a12;a22;a32;a42};\n", - "... {a12;a22;a32;a42} -> {O1,O2,O3,O4,O5,O6};\n", - "... }'''\n", - "\n", - "dot = Source(graph)\n", - "dot.format = 'png'\n", - "dot.render('neural_network_01', view=False) \n", - "\n", - "im = Image.open(\"neural_network_01.png\")\n", - "plt.figure(figsize = (20,10))\n", - "im_list = np.asarray(im)\n", - "plt.imshow(im_list)\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nC35twUKT29_" - }, - "source": [ - "上には、入出力の次元が6で、隠れ層が1つ(ノード4)の場合のニューラルネットワークの図を描きました。\n", - "オートエンコーダではこのようなニューラルネットワークのパラメータを出力$y$が$x$にできるだけ一致するよう学習させるということを考えます。\n", - "\n", - "入力層から隠れ層への信号の伝播を符号化(エンコード)と呼び隠れ層から出力層への信号の伝播を復号化(デコード)と呼びます。\n", - "それぞれを別々に眺めるとエンコーダ部分はもとの入力の情報を圧縮するような働きをしているとみなせますし、一方デコーダ部分は一度圧縮した情報をもとに元の信号を再構成するような働きをします。\n", - "\n", - "オートエンコーダはPCAを特殊な場合として含むためPCAの拡張とみなすことができます。 \n", - "詳しくは記載しませんが、活性化関数を恒等変換にとって重み行列を直交行列に取り二乗誤差関数を最小化する表式を書き下すとPCAの表式が現れます。\n", - "\n", - "上では単純な順伝播型のニューラルネットワークを描きましたがオートエンコーダを構成するアーキテクチャは上記のような単純なANNに限らず畳み込みニューラルネットワークを用いた畳み込みオートエンコーダなども知られています。\n", - "\n", - " " - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_PCA.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_Pandas.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_Pandas.ipynb deleted file mode 100644 index 14262b98..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_Pandas.ipynb +++ /dev/null @@ -1,1359 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "g05kSZSuyD8r" - }, - "source": [ - "# Pandasの使い方 (基礎)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "NnDUb09nyHXf" - }, - "source": [ - "```Pandas```は、データ分析のためのライブラリで \n", - "統計量を計算・表示したり、それらをグラフとして可視化出来たり \n", - "前処理などの地道だが重要な作業を比較的簡単に行うことができます。\n", - "\n", - "\n", - "まずはインポートしましょう。```pd```という名前で使うのが慣例です。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "G0LxApMex5f6", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import pandas as pd " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "q-qC7xkDhU5A" - }, - "source": [ - "pandasでは主に```Series```と```DataFrame```の2つのオブジェクトを扱います。 \n", - "SeriesはDataFrameの特殊な場合とみなせるので、以下ではDataFrameのみ説明することにします。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-1ut22WgzFeQ" - }, - "source": [ - "## DataFrame型" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "A-RriyHt1r-p" - }, - "source": [ - "DataFrameはExcelシートのような二次元のデータを表現するのに利用され \n", - "各種データ分析などで非常に役にたちます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ubw2JSMmzCkX", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "from pandas import DataFrame" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "oeBpZK4l7knI" - }, - "source": [ - "以下の辞書型をDataFrame型のオブジェクトに変換してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "HKPVuPjz7jmb", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "data = { '名前': [\"Aさん\", \"Bさん\", \"Cさん\", \"Dさん\", \"Eさん\"],\n", - " '出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'],\n", - " '生年': [ 1998, 1993,2000,1989,2002],\n", - " '身長': [172, 156, 162, 180,158]}\n", - "df = DataFrame(data)\n", - "print(\"dataの型\", type(data))\n", - "print(\"dfの型\",type(df))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5F90_vjr8ukA" - }, - "source": [ - "jupyter環境でDataFrameを読むと、\"いい感じ\"に表示してくれる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "8VZZ6asj8qie", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "BkqFef0A83To" - }, - "source": [ - "printだとちょっと無機質な感じに。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xiIqLRFG82BW", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "print(df)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vn8s-8VR7b6Q" - }, - "source": [ - "```info()```関数を作用させると、詳細な情報が得られる。 \n", - "列ごとにどんな種類のデータが格納されているのかや、\n", - "メモリ使用量など表示することができる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2KsTF1d17anv", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.info()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-TsUcNTsBIIi" - }, - "source": [ - "## DataFrameの要素を確認・指定する方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6ChkvnngBLb_" - }, - "source": [ - "index: 行方向のデータ項目(おもに整数値(行番号),ID,名前など) \n", - "columns: 列方向のデータの項目(おもにデータの種類) \n", - "をそれぞれ表示してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "YkQCL0ay59o8", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.index" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WNqLrkQ35-4O", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-MtegVlt60qr" - }, - "source": [ - "行方向を、整数値(行数)ではなく名前にしたければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "aE51PtdW6pKE", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "data1 = {'出身都道府県':['Tokyo', 'Tochigi', 'Hokkaido','Kyoto','Tochigi'],\n", - " '生年': [ 1998, 1993,2000,1989,2002],\n", - " '身長': [172, 156, 162, 180,158]}\n", - "df1 = DataFrame(data1)\n", - "df1.index =[\"Aさん\", \"Bさん\", \"Cさん\", \"Dさん\", \"Eさん\"]\n", - "df1" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LaFJVeL27NqY" - }, - "source": [ - "などとしてもよい。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_uFFuzQM8FoQ" - }, - "source": [ - "### 特定の列を取得したい場合" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oQ9hZkVx8K-p", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"身長\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zn3WJ4_5946D" - }, - "source": [ - "とする。 \n", - "以下の方法は非推奨とする。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "3VyUAqQs9596", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.身長" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "uK8zkK3h8cpY" - }, - "source": [ - "値のリスト(正確にはnumpy.ndarray型)として取得したければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "tozKlT028hfi", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"身長\"].values" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "87TOA6-e8j8v", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"出身都道府県\"].values" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Yh97e7y58yHY" - }, - "source": [ - "などとすればよい。\n", - "\n", - "慣れ親しんだ形に変換したければ、リストに変換すればよい\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2Uh6YGih5FjE", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "list(df[\"出身都道府県\"].values)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WfpujEkA5BSD" - }, - "source": [ - "ある列が特定のものに一致するもののみを抽出するのも簡単にできる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "qlFGoUdc8zPn", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[df[\"出身都道府県\"]==\"Tochigi\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ItbqbBdn9HG0" - }, - "source": [ - "これは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Ubs3Zbjj9KA9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[\"出身都道府県\"]==\"Tochigi\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bUB1Puao9LqO" - }, - "source": [ - "が条件に合致するかどうかTrue/Falseの配列になっていて、 \n", - "df[ [True/Falseの配列] ]とすると、Trueに対応する要素のみを返す \n", - "フィルターのような役割になっている。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4xcTwpmcf3WK" - }, - "source": [ - "### 列の追加" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Hznr0hZMghcK", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#スカラー値の場合\"初期化\"のような振る舞いをする\n", - "df[\"血液型\"] = \"A\"\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1ved-4XAgMvq", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#リストで追加\n", - "df[\"血液型\"] = [ \"A\", \"O\",\"AB\",\"B\",\"A\"]\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "S_I81w5L-UOE" - }, - "source": [ - "### 特定の行を取得したい場合" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "he5uTk3H-kMs" - }, - "source": [ - "たとえば、行番号がわかっているなら、```iloc```関数を使えば良い" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "kbxrpQ1E-k8F", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.iloc[3]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2998C5BK_Wut" - }, - "source": [ - "値のみ取得したければ先程と同様" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "6HoJX4h__Uj3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.iloc[3].values" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4gwiSube_ax9" - }, - "source": [ - "また、以下のような使い方もできるが" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "4oabG7uA-TyS", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[1:4] #1から3行目まで" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hbFfX303_eVc" - }, - "source": [ - "```df[1]```といった使い方は出来ない。 " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "oH1A89pw_s6b" - }, - "source": [ - "### より複雑な行・列の抽出" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vxd7k3f3AJjj" - }, - "source": [ - "上にならって、2000年より前に生まれた人だけを抽出し" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rDrnJUg9_w1Q", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[ df[\"生年\"] < 2000 ]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iZrMq16v__fV" - }, - "source": [ - "さらにこのうち身長が170cm以上の人だけがほしければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "d6q2DR7nAYEv", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[(df[\"生年\"] < 2000) & (df[\"身長\"]>170)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-b36txVaA7fQ" - }, - "source": [ - "などとすればよい。 \n", - "他にも```iloc```,```loc```などを用いれば \n", - "特定の行・列を抽出することができる\n", - "\n", - "* ```iloc```は番号の指定のみに対応\n", - "* ```loc```は名前のみ\n", - "\n", - "**欲しい要素の数値もしくは項目名のリスト**を \n", - "行・列の2つついて指定してやればよい。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xZhc6nlDBXJH", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.iloc[[0], [0]] #0行目,0列目" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "i-W-XTw9Bz5-", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#スライスで指定することもできる\n", - "df.iloc[1:4, :3] #1-3行目かつ0-2列目 (スライスの終点は含まれないことに注意)\n", - "\n", - "#スライスの場合は、 1:4が[1,2,3]と同じ働きをするので、括弧[]はいらない" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "acMQBcZw5hmv" - }, - "source": [ - "```loc```を使う場合は、indexの代わりに項目名で指定する。\n", - "\n", - "※今の場合、行を指定する項目名が既に整数値なので \n", - "インデックスと見分けが付きづらいことに注意" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "JLlD6iUvCH-q", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.loc[1:4,[\"名前\",\"身長\"]] " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "y3rZAq4rCTSh", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.loc[[1,2,3,4],\"名前\":\"生年\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "WzV2r0oPA82E" - }, - "source": [ - "といった具合。\n", - "\n", - "```loc```を使う場合、1:4や[1,2,3,4]は \n", - "indexのスライスではなく、項目名を意味し \n", - "Eさんのデータも含まれている事がわかる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "py5Dt6wY10pB" - }, - "source": [ - "## Webページにある表をDataFrameとして取得する" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s7XShK0B15-t" - }, - "source": [ - "```pandas```内の```read_html```関数を用いれば、 \n", - "Webページの中にある表をDataFrame形式で取得することもできます。\n", - "\n", - "以下では例としてWikipediaの[ノーベル物理学賞](https://ja.wikipedia.org/wiki/%e3%83%8e%e3%83%bc%e3%83%99%e3%83%ab%e7%89%a9%e7%90%86%e5%ad%a6%e8%b3%9e)のページにある、受賞者一覧を取得してみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "WQG0tt0q2Hj-", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "url = \"https://ja.wikipedia.org/wiki/%e3%83%8e%e3%83%bc%e3%83%99%e3%83%ab%e7%89%a9%e7%90%86%e5%ad%a6%e8%b3%9e\"\n", - "tables = pd.read_html(url)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "xLVtylYB2Uow", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "print(len(tables))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "yBghdSUU2XdQ" - }, - "source": [ - "ページ内に、21個もの表があることがわかります。 \n", - "(ほとんどはwikipediaのテンプレート等)\n", - "\n", - "たとえば、2010年代の受賞者のみに興味がある場合は" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "nf2JwszO2nBM", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df = tables[12]\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "O6bVMFaNKeUT" - }, - "source": [ - "## Pandasで複雑なエクセルファイルを操作する" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KBgNqsmGKjvm" - }, - "source": [ - "Pandasにはread_excel()という関数が用意されていて、 \n", - "多数のシートを含むようなエクセルファイルを開くことも出来る。\n", - "\n", - "まずは必要なモジュールをインポートしよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "hBKVdR2zKxe_", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "from pandas import DataFrame" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "34iZ93suY1nz" - }, - "source": [ - "今まではGoogle Driveにいれたファイルを読み出していたが、 \n", - "Webから直接xlsxファイルを読み込んでみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "2yR7aEeImkAl", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "url = \"https://www.mext.go.jp/content/20201225-mxt_kagsei-mext_01110_012.xlsx\"\n", - "input_file = pd.ExcelFile(url)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YEsLWG0mY8z-" - }, - "source": [ - "ブック内のシートの一覧は以下のように取得できる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "VJv-enRZTxUt", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "sheet_names = input_file.sheet_names\n", - "print(\"pandas: シート名\",sheet_names)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Tn6Lq7UhT1ZX" - }, - "source": [ - "シートを指定するのは、インデックスかシート名の文字列で行う。\n", - "\n", - "\"1 穀類\"を使うことにして、 \n", - "pandasにあるread_excel関数を使ってみよう。 \n", - "read_excel関数の最初の引数にはパスの他に、urlも取れる。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "07xxSw7nVdK2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df = pd.read_excel(url,sheet_name=\"1穀類\")\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xew_ouFxVnLl" - }, - "source": [ - "同じものが得られている。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pPBxyiV2oVKV" - }, - "source": [ - "### データの整形\n", - "\n", - "次に、今取得したデータフレームのままでは少々扱い辛いので\"整形\"を考える。 \n", - "というのも前から4行ほど表示してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NKcdOLCMV3qM", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df[0:4] " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "CULET-99WJ3D" - }, - "source": [ - "最初の4行ほどに栄養素等の情報が入っているのだが、 \n", - "セルが結合されたりしているため、所々にNaNが入っていたりして見辛い。\n", - "\n", - "(碁盤目の構造を破壊してしまうため「セルの結合」は機械的な処理と \n", - "やや相性が悪く、プログラミングを用いたデータ分析では嫌われる)\n", - "\n", - "各省庁の公開データのフォーマットの統一化は今後に期待することにして... \n", - "まず以下の項目に該当する列だけを抽出する事を考える。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Jhdp9z7cZm97", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "targets = [\"食品名\", \"エネルギー\",\"たんぱく質\", \"脂質\", \"炭水化物\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zGrqpS-6jhaK" - }, - "source": [ - "該当するデータがどの行・列に格納されているかをコードで指定するのは、 \n", - "前述のファイル構造の事情からやや面倒くさい。 \n", - "\n", - "以下では、その場しのぎ的ではあるが、 \n", - "興味のある量が何番目かを指定してまとめてみることにしよう。\n", - "\n", - "そのために、1-2行目の要素を表示してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "yZ-IVG2Ma30o", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "#1-2行目(エクセルだと2行目)の要素から\n", - " #半角空白, 全角空白(\\u3000)や改行コード\\nを取り除いたリストを作って表示してみる\n", - "\n", - "for idx in range(1,3):\n", - " tmp = df.iloc[idx].values\n", - " tlist = list(map( lambda s: str(s).replace(\"\\u3000\",\"\").replace(\"\\n\",\"\").replace(\" \",\"\"),tmp))\n", - " print(tlist)\n", - "# for target in targets:\n", - "# tlist.index(target)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KEaiS1EAiWDY" - }, - "source": [ - "セルの結合により、興味のあるデータがどの列に記述されているかは注意が必要。 \n", - "\n", - "実際、[エネルギー]という文字列は1行目の6列目(それぞれインデックスでいうと0,5)で取得できるが、 \n", - "kJ単位になっていて、kcal単位でほしければ、7列目に格納された値が必要になる。 \n", - "\n", - "また、エクセルファイルを見るとわかるように、たんぱく質・脂質・炭水化物はさらに細分化されており、 \n", - "O列R列など、細かい列の分割が挿入されている. ~~これは大変困る~~\n", - "\n", - "単純にたんぱく質・脂質・炭水化物と表記されている列のインデックスはそれぞれ9,12,20となる。 \n", - "食品名が格納されている列(3)、エネルギー[kJ単位] (6)と合わせて確認してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "U-Hzne6VgWf3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "targets = [3,6,9,12,20]\n", - "df.iloc[:,targets]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LNk4oIypmpTe" - }, - "source": [ - "もう少し整形したいので、新しいデータフレームのコラムを書き換える。\n", - "\n", - "食品名等が記載されているのは10行目以降なので、それを使い \n", - "columnを指定する。\n", - "\n", - "さらに、食品名に含まれる余分な文字コードも削除しておこう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ZWkaRBZynATr", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "ndf = df.iloc[:,targets] \n", - "ndf = ndf.iloc[10:,:]\n", - "ndf.columns=[\"食品名\",\"エネルギー(kcal)\",\"たんぱく質(g)\",\"脂質(g)\",\"炭水化物(g)\"]\n", - "ndf[\"食品名\"] = ndf[\"食品名\"].str.replace(\"\\u3000\",\" \") # 食品名の中にある余分な全角空白(\\u3000)を半角スペースに置き換える\n", - "ndf" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "B5FN5MFcmECG" - }, - "source": [ - "次に、食品名の一覧を取得した後、興味のあるもの(日常的に馴染みのあるもの)だけを \n", - "ピックアップしてみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "_SI2LaqPmOK3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "print(list(ndf[\"食品名\"]))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "bT1akYL_pBXs" - }, - "source": [ - "この中から...\n", - "* こむぎ[パン類]食パンリッチタイプ\n", - "* こむぎ[パン類]フランスパン\n", - "* こめ[水稲軟めし]精白米\n", - "* そばそばゆで\n", - "* こむぎ[うどん・そうめん類]うどんゆで\n", - "\n", - "のみに興味があれば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "F2ouiW-jqpjm", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tshokuhin = [\"こむぎ [パン類] 食パン リッチタイプ\",\"こむぎ [パン類] フランスパン\",\"こめ [水稲軟めし] 精白米\", \"そば そば ゆで\", \"こむぎ [うどん・そうめん類] うどん ゆで\"]\n", - "ndf[ ndf[\"食品名\"].isin(tshokuhin)]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Jt2aLH3jrWSY" - }, - "source": [ - "などとする。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "So7B0ZauwuyT" - }, - "source": [ - "'6野菜類'でも同様に..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "aYwheZeiw0Oe", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df6 = pd.read_excel(url,sheet_name=\"6野菜類\")\n", - "df6.iloc[:,[3,6,9,12,20]]\n", - "ndf6 = df6.iloc[:,[3,6,9,12,20]] \n", - "ndf6 = ndf6.iloc[10:,:]\n", - "ndf6.columns=[\"食品名\",\"エネルギー(kcal)\",\"たんぱく質(g)\",\"脂質(g)\",\"炭水化物(g)\"]\n", - "ndf6[\"食品名\"] = ndf6[\"食品名\"].str.replace(\"\\u3000\",\" \") \n", - "ndf6" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "di6-R2kIx88j" - }, - "source": [ - "特定のキーワードを含むものを全て取得して、 \n", - "食品名を細かく指定したり、対応する行番号のインデックスを取得できたりする" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "XDN2orG9xP_j", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "kyabetu = ndf6[ndf6[\"食品名\"].str.contains('キャベツ')]\n", - "kyabetu" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "QboGKX8bx0yB", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tomato = ndf6[ndf6[\"食品名\"].str.contains('トマト')]\n", - "tomato" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ojENrlEZGepm" - }, - "source": [ - "DataFrame同士を結合してまとめるなどして \n", - "扱いやすいデータに整形していく.\n", - "\n", - "縦方向の結合はpandasのconcat(concatenateの略)を使う。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "SKoSAqvNGkrt", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tdf = pd.concat([kyabetu, tomato])\n", - "tdf" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "U6LFpNLN2sZh" - }, - "source": [ - "## DataFrameのcsv/Excelファイルへの書き出し" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tbZn9qyB2xTS" - }, - "source": [ - "DataFrameオブジェクトは、```pandas```内の関数を用いれば、 \n", - "簡単にcsvやExcelファイルとして書き出すことができます。\n", - "\n", - "先程の、2010年代のノーベル物理学賞受賞者のデータを、 \n", - "Google Driveにファイルとして書き出してみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "CKxWkUsW3Hi2", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "from google.colab import drive\n", - "drive.mount('/content/drive')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gsr83KhA3Hww" - }, - "source": [ - "**csvとして書き出す場合**\n", - "\n", - "適当にパスを指定して、DataFrameオブジェクトに \n", - "```to_csv```関数を作用させます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jLS-3W8F27Xe", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.to_csv(\"/content/drive/My Drive/AdDS2021/pd_write_test.csv\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "k6XnW1V93mik" - }, - "source": [ - "**Excelファイルとして書き出す場合**\n", - "\n", - "この場合も同様で、```to_excel```関数を用います。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "A4A69Qb83vkk", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "df.to_excel(\"/content/drive/My Drive/AdDS2021/pd_write_test.xlsx\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jrfPQzrq4GJK" - }, - "source": [ - "上記の関数内で文字コードを指定することもできます。 \n", - "例: ```encoding=\"utf-8_sig\"```, ```encoding=\"shift_jis\"```" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_Pandas.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_SingularValueDecomposition.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_SingularValueDecomposition.ipynb deleted file mode 100644 index ed3f4900..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_SingularValueDecomposition.ipynb +++ /dev/null @@ -1,479 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "HLZRySda6U-g" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LGVnPDHJw9_I" - }, - "source": [ - "# 特異値分解と情報削減\n", - "\n", - "このノートブックでは、行列の特異値分解と、その応用例として画像データの\"低ランク近似\"について説明する。\n", - "\n", - "関連する線形代数の知識、とくに諸定理の証明については、適宜線形代数の教科書等を参照すること。\n", - "\n", - "*純然たる*(≒形式的な?)線形代数の教科書には意外とSVDは載っていなかったりするので、工学であるとか数値計算など、応用を意識した教科書を参照するのが良い。\n", - "\n", - "Webで無料のものが良ければ、Mathematics for Machine Learningもいいかもしれない \n", - "※[著者らのページのリンク](https://mml-book.com)からPDFがダウンロードできる。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "aakEipnQ6lik" - }, - "source": [ - "## 特異値分解 (Singular Value Decomposition, SVD)\n", - "\n", - "特異値分解は、線形代数の中でも応用上非常に重要である。 \n", - "本ノートで説明するような画像処理や情報削減の方法として用いられるだけでなく、量子多体系(物性や素粒子・原子核などの物理学,量子化学などが対象とする系)の計算手法である密度行列くりこみ群(DMRG)法など、自然科学分野の理論計算などの根幹にもなっている汎用性の高い手法である。\n", - "\n", - "\n", - "**特異値分解定理**: \n", - "任意のランク$r=[0,\\min(m,n)]$の$m \\times n$行列$A$は\n", - "- $m \\times m$のユニタリ行列 $U$\n", - "- $m \\times n$の対角行列$\\Sigma$ \n", - "- $n \\times n$のユニタリ行列 $V$\n", - "\n", - "を用いて$\n", - "A = U \\Sigma V^\\dagger\n", - "$\n", - "と分解できる。 \n", - "上は$A$が複素行列の場合の表記で、実行列の場合は、$U,V$は直交行列であり、随伴操作(複素共役かつ転置)$\\dagger$は転置$T$となり、対角行列$\\Sigma$の各成分は非負となる。 \n", - "\n", - "以下では、特に断らない限り実行列の場合のみを考える。 \n", - "$\\Sigma$の各対角成分を**特異値**と呼び、慣例的に$\\sigma_1 \\geq \\sigma_2 \\geq ... \\geq \\sigma_r \\geq 0$となるよう並べられる。 \n", - "※一般の$m \\neq n$の場合は長方行列となるので、上での\"対角行列\"は正確には、対角ブロックとゼロ行列ブロックを含むような行列を指す。\n", - "\n", - "$m (3, 3) (3,) (3, 3)\n", - "特異値 => [15.52961563 3.39284204 1.82199376]\n", - "USVd => [[1. 9. 6.]\n", - " [2. 4. 6.]\n", - " [3. 8. 3.]]\n", - "USVd@rank2 => [[2.27571625 8.70200595 5.94787683]\n", - " [1.22318899 4.18145497 6.03173892]\n", - " [2.04499401 8.22307947 3.0390196 ]]\n", - "||A-USVd||_F 1.8219937599763407\n", - "USVd@rank1 => [[2.27747026 8.71226915 5.9321303 ]\n", - " [1.46888535 5.61909622 3.82600794]\n", - " [1.84748528 7.06739811 4.81214776]]\n", - "||A-USVd||_F 3.8511087217022104\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "from scipy import linalg\n", - "from numpy.linalg import svd, matrix_rank\n", - "\n", - "# 適当な3×3行列(rank(A)=3)を作成して表示\n", - "A = np.array([ [1,9,6],[2,4,6],[3,8,3] ])\n", - "print(\"A\\n\",A, \"\\nrank\", matrix_rank(A))\n", - "\n", - "# SVD(特異値分解)を実行\n", - "U, Sigma, Vd = svd(A)\n", - "print('それぞれの行列(U,S,Vd)の形状を確認 =>', U.shape, Sigma.shape, Vd.shape)\n", - "print('特異値 => ', Sigma) #Sigmaは対角成分のみをベクトルのように持っている事がわかる。\n", - "\n", - "#積がもとのAと一致するかcheck\n", - "print(\"USVd =>\", np.dot(U, np.dot(np.diag(Sigma),Vd) ) )\n", - "\n", - "#Sigmaをrank2で近似してみる ≒ 行列の(2,2)成分を0にする\n", - "Sigma[2] = 0.0\n", - "USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) )\n", - "print(\"USVd@rank2 =>\", USVd)\n", - "print(\"||A-USVd||_F \", linalg.norm(A-USVd,\"fro\"))\n", - "#Sigmaをrank1で近似してみる ≒ 行列の(1,1)&(2,2)成分を0にする\n", - "Sigma[1] = 0.0\n", - "USVd = np.dot(U, np.dot(np.diag(Sigma),Vd) )\n", - "print(\"USVd@rank1 =>\", USVd)\n", - "print(\"||A-USVd||_F \", linalg.norm(A-USVd,\"fro\"))\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "tvke5nx56FZ-" - }, - "source": [ - "確かに特異値分解ができているが、これだけではどんな恩恵があるのか、 \n", - "なぜ低ランク近似を考えるのかあまりピンとこないだろう。\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xC5Pil9881f6" - }, - "source": [ - "## 画像データの特異値分解\n", - "\n", - "では次に行列として、より具体的なもの、画像を考えてみよう。画像データは\n", - "- 縦横に並ぶピクセルの数を行列の行と列の数に対応させる\n", - "- 各ピクセルの画素値(8ビット,グレースケールで表現するなら、0が黒255が白の256階調)を各\"番地\"での行列要素の値に対応させる\n", - "\n", - "ことで、自然と行列とみなすことができる。\n", - "\n", - "適当な写真をもってきて、簡単のためグレースケールに変換した後、特異値分解をしてみよう。\n", - "\n", - "宇都宮大学オリジナルキャラクター「宇~太」の写真を用いる" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "9vB1BQQd_QpL", - "outputId": "63d0181d-6f6e-4020-bba3-7f7b5c00a8c3" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "--2022-10-11 06:41:42-- https://raw.githubusercontent.com/SotaYoshida/Lecture_DataScience/main/notebooks/pic_for_notebook/u_ta.jpeg\n", - "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.108.133, 185.199.109.133, ...\n", - "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.\n", - "HTTP request sent, awaiting response... 200 OK\n", - "Length: 146087 (143K) [image/jpeg]\n", - "Saving to: ‘u_ta.jpeg’\n", - "\n", - "\ru_ta.jpeg 0%[ ] 0 --.-KB/s \ru_ta.jpeg 100%[===================>] 142.66K --.-KB/s in 0.008s \n", - "\n", - "2022-10-11 06:41:43 (17.1 MB/s) - ‘u_ta.jpeg’ saved [146087/146087]\n", - "\n", - "sample_data u_ta.jpeg\n" - ] - } - ], - "source": [ - "import requests\n", - "from PIL import Image\n", - "from IPython.display import display\n", - "\n", - "!wget \"https://raw.githubusercontent.com/SotaYoshida/Lecture_DataScience/main/notebooks/pic_for_notebook/u_ta.jpeg\" -O u_ta.jpeg\n", - "# ls コマンドでファイルを表示\n", - "!ls " - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 280 - }, - "id": "A_fIQBqfL7de", - "outputId": "f8be541c-5c2e-4712-f514-9ea89f42657d" - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "#画像ファイルを読み込み\n", - "img = Image.open('u_ta.jpeg')\n", - "gray_img = img.convert('L')\n", - "gray_img.save('u_ta_mono.jpeg')\n", - "gray_img = gray_img.resize((gray_img.width//3, gray_img.height//3)) #画像をリサイズ\n", - "gray_img " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "6-AHTquvMIVx", - "outputId": "af1d319f-76c4-4282-8631-bbd3164d9b90" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "full rank => 196\n", - "rank 9 Fnorm 3371.396392985502 # of m.e. 4743\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 19 Fnorm 1837.5080112082685 # of m.e. 10013\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 39 Fnorm 883.9820242926976 # of m.e. 20553\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 58 Fnorm 513.8683243934796 # of m.e. 30566\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "rank 196 Fnorm 8.531916171225453e-11 # of m.e. 103292\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# SVDを実行\n", - "a = np.asarray(gray_img)\n", - "u, s, v = svd(a)\n", - "fullrank = matrix_rank(a)\n", - "print(\"full rank => \", fullrank)\n", - "\n", - "# 陽に必要な行列要素の数を計算する関数\n", - "def num_of_me(u,s,v,rank):\n", - " m,n = u.shape\n", - " return m * rank + rank + rank*n\n", - "\n", - "#低ランク近似を得る\n", - "for factor in [0.05, 0.1, 0.2, 0.3, 1.0]:\n", - " rank = int(factor*fullrank)\n", - " ur = u[:, :rank]\n", - " sr = np.matrix(linalg.diagsvd(s[:rank], rank,rank))\n", - " vr = v[:rank, :]\n", - " b = np.asarray(ur*sr*vr)\n", - " img = Image.fromarray(np.uint8(b))\n", - " USVd = np.dot(ur, np.dot(sr,vr))\n", - " print(\"rank\",rank, \" Fnorm \", linalg.norm(a-USVd,\"fro\"), \" # of m.e. \", num_of_me(u,s,v,rank) )\n", - " display(img)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "YOB6BFXV58Th" - }, - "source": [ - "幾つかのrankについて元のグレースケール画像との差分(フロベニウスノルム)と、陽に必要な行列要素の数、近似後の画像を表示させてみた。\n", - "\n", - "元の行列(rank=196, 行列要素の数103292)に対して\n", - "rank=39, 58などでの近似を用いることで、大体2-3万の行列要素で画像を表現できる事がわかる。\n", - "\n", - "今の場合は一枚の写真のみでサイズもたかがしれているものの、例えば画像認識タスクを行う機械学習モデルの訓練の場合には、一般に大量の画像データ(とラベル等)が必要になるため、近似で削減できる情報が数分の1スケールだとしても馬鹿にはできない。\n", - "\n", - "実際にはSVDを計算するコストも勘定に入れなければフェアな評価は難しく、SVDを陽に用いたアーキテクチャがやりたいタスクに対して最適である保証はないが、実際に画像認識モデルを作り学習を行う際には一考の余地はあると言えるだろう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zTJqCqNnU5hR" - }, - "source": [ - "### 練習問題\n", - "\n", - "上では、`numpy.linalg`にある`svd`でSVDを実装し、`scipy`の`linalg.diagsvd`関数を用いて低ランク近似を計算した。\n", - "かんたんな行列の例を参考にSVDの結果得られる$\\Sigma$の行列要素を書き換えて、もとの行列の低ランク近似を計算し、ライブラリの出力と一致するか確かめてみよう。※SVDや行列積などはnumpyを用いて良い。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_StyleGAN3.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_StyleGAN3.ipynb deleted file mode 100644 index 465068bd..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_StyleGAN3.ipynb +++ /dev/null @@ -1,421 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "lHyvtTv97lQH" - }, - "source": [ - "# StyleGAN3+CLIPによる写真生成\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4_s8h-ilzHQc" - }, - "source": [ - "このノートブックでは、StyleGAN3+CLIPを用いた顔写真生成をデモンストレーションする。 \n", - "*ランタイムタイプはGPUによる実行が推奨 \n", - "\n", - "\n", - "\n", - "参考: \n", - "- [StyleGAN3](https://nvlabs.github.io/stylegan3/)\n", - "- [GitHub](https://github.com/NVlabs/stylegan3)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FTFcPiKW85XJ" - }, - "source": [ - "**StyleGAN3及びCLIPのライセンス**\n", - "\n", - "- StyleGAN3はGAN(敵対的生成ネットワーク)を用いた生成モデルのひとつで、NVIDIAから[こちらのライセンス](https://github.com/NVlabs/stylegan3/blob/main/LICENSE.txt)のもと提供されている。 \n", - "\n", - "- CLIPはOpenAIによる画像とテキスト(自然言語)の関連性を学習し画像分類を行うモデルでMITライセンスのもと公開されている[こちら](https://github.com/openai/CLIP)\n", - "\n", - "以下のコードを実行したりする分には問題はないが、別の用途で用いる際にはライセンスの詳細を参照し遵守すること.\n", - "なお、このノートブックの作成においてはこちらの[レポジトリ](https://github.com/ouhenio/StyleGAN3-CLIP-notebooks)を参考にした。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VdvqJ8Hx9Sxq" - }, - "source": [ - "## SetUp\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "PzDuIoMcqfBT" - }, - "outputs": [], - "source": [ - "#@markdown **準備** \n", - "# @markdown このセルを実行して、ダウンロード等の準備を行おう\n", - "\n", - "#@markdown ---\n", - "\n", - "!pip install --upgrade torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html\n", - "!git clone https://github.com/NVlabs/stylegan3\n", - "!git clone https://github.com/openai/CLIP\n", - "!pip install -e ./CLIP\n", - "!pip install einops ninja\n", - "\n", - "import sys\n", - "sys.path.append('./CLIP')\n", - "sys.path.append('./stylegan3')\n", - "\n", - "import io\n", - "import os, time, glob\n", - "import pickle\n", - "import shutil\n", - "import numpy as np\n", - "from PIL import Image\n", - "import torch\n", - "import torch.nn.functional as F\n", - "import requests\n", - "import torchvision.transforms as transforms\n", - "import torchvision.transforms.functional as TF\n", - "import clip\n", - "import unicodedata\n", - "import re\n", - "from tqdm.notebook import tqdm\n", - "from torchvision.transforms import Compose, Resize, ToTensor, Normalize\n", - "from IPython.display import display\n", - "from einops import rearrange\n", - "from google.colab import files\n", - "\n", - "device = torch.device('cuda:0')\n", - "print('Using device:', device, file=sys.stderr)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "Zxbhe4uLvF_a" - }, - "outputs": [], - "source": [ - "#@markdown **必要な関数の準備:** このセルも実行しておこう\n", - "\n", - "def fetch(url_or_path):\n", - " if str(url_or_path).startswith('http://') or str(url_or_path).startswith('https://'):\n", - " r = requests.get(url_or_path)\n", - " r.raise_for_status()\n", - " fd = io.BytesIO()\n", - " fd.write(r.content)\n", - " fd.seek(0)\n", - " return fd\n", - " return open(url_or_path, 'rb')\n", - "\n", - "def fetch_model(url_or_path):\n", - " if \"drive.google\" in url_or_path:\n", - " if \"18MOpwTMJsl_Z17q-wQVnaRLCUFZYSNkj\" in url_or_path: \n", - " basename = \"wikiart-1024-stylegan3-t-17.2Mimg.pkl\"\n", - " elif \"14UGDDOusZ9TMb-pOrF0PAjMGVWLSAii1\" in url_or_path:\n", - " basename = \"lhq-256-stylegan3-t-25Mimg.pkl\"\n", - " else:\n", - " basename = os.path.basename(url_or_path)\n", - " if os.path.exists(basename):\n", - " return basename\n", - " else:\n", - " if \"drive.google\" not in url_or_path:\n", - " !wget -c '{url_or_path}'\n", - " else:\n", - " path_id = url_or_path.split(\"id=\")[-1]\n", - " !gdown --id '{path_id}'\n", - " return basename\n", - "\n", - "def slugify(value, allow_unicode=False):\n", - " \"\"\"\n", - " Taken from https://github.com/django/django/blob/master/django/utils/text.py\n", - " Convert to ASCII if 'allow_unicode' is False. Convert spaces or repeated\n", - " dashes to single dashes. Remove characters that aren't alphanumerics,\n", - " underscores, or hyphens. Convert to lowercase. Also strip leading and\n", - " trailing whitespace, dashes, and underscores.\n", - " \"\"\"\n", - " value = str(value)\n", - " if allow_unicode:\n", - " value = unicodedata.normalize('NFKC', value)\n", - " else:\n", - " value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii')\n", - " value = re.sub(r'[^\\w\\s-]', '', value.lower())\n", - " return re.sub(r'[-\\s]+', '-', value).strip('-_')\n", - "\n", - "def norm1(prompt):\n", - " \"Normalize to the unit sphere.\"\n", - " return prompt / prompt.square().sum(dim=-1,keepdim=True).sqrt()\n", - "\n", - "def spherical_dist_loss(x, y):\n", - " x = F.normalize(x, dim=-1)\n", - " y = F.normalize(y, dim=-1)\n", - " return (x - y).norm(dim=-1).div(2).arcsin().pow(2).mul(2)\n", - "\n", - "def prompts_dist_loss(x, targets, loss):\n", - " if len(targets) == 1: # Keeps consitent results vs previous method for single objective guidance \n", - " return loss(x, targets[0])\n", - " distances = [loss(x, target) for target in targets]\n", - " return torch.stack(distances, dim=-1).sum(dim=-1) \n", - "\n", - "class MakeCutouts(torch.nn.Module):\n", - " def __init__(self, cut_size, cutn, cut_pow=1.):\n", - " super().__init__()\n", - " self.cut_size = cut_size\n", - " self.cutn = cutn\n", - " self.cut_pow = cut_pow\n", - "\n", - " def forward(self, input):\n", - " sideY, sideX = input.shape[2:4]\n", - " max_size = min(sideX, sideY)\n", - " min_size = min(sideX, sideY, self.cut_size)\n", - " cutouts = []\n", - " for _ in range(self.cutn):\n", - " size = int(torch.rand([])**self.cut_pow * (max_size - min_size) + min_size)\n", - " offsetx = torch.randint(0, sideX - size + 1, ())\n", - " offsety = torch.randint(0, sideY - size + 1, ())\n", - " cutout = input[:, :, offsety:offsety + size, offsetx:offsetx + size]\n", - " cutouts.append(F.adaptive_avg_pool2d(cutout, self.cut_size))\n", - " return torch.cat(cutouts)\n", - "\n", - "make_cutouts = MakeCutouts(224, 32, 0.5)\n", - "\n", - "def embed_image(image):\n", - " n = image.shape[0]\n", - " cutouts = make_cutouts(image)\n", - " embeds = clip_model.embed_cutout(cutouts)\n", - " embeds = rearrange(embeds, '(cc n) c -> cc n c', n=n)\n", - " return embeds\n", - "\n", - "def embed_url(url):\n", - " image = Image.open(fetch(url)).convert('RGB')\n", - " return embed_image(TF.to_tensor(image).to(device).unsqueeze(0)).mean(0).squeeze(0)\n", - "\n", - "class CLIP(object):\n", - " def __init__(self):\n", - " clip_model = \"ViT-B/32\"\n", - " self.model, _ = clip.load(clip_model)\n", - " self.model = self.model.requires_grad_(False)\n", - " self.normalize = transforms.Normalize(mean=[0.48145466, 0.4578275, 0.40821073],\n", - " std=[0.26862954, 0.26130258, 0.27577711])\n", - "\n", - " @torch.no_grad()\n", - " def embed_text(self, prompt):\n", - " \"Normalized clip text embedding.\"\n", - " return norm1(self.model.encode_text(clip.tokenize(prompt).to(device)).float())\n", - "\n", - " def embed_cutout(self, image):\n", - " \"Normalized clip image embedding.\"\n", - " return norm1(self.model.encode_image(self.normalize(image)))\n", - " \n", - "clip_model = CLIP()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "_aZvophLZQOw" - }, - "outputs": [], - "source": [ - "#@title { run: \"auto\" }\n", - "#@markdown **モデルの選択** \n", - "\n", - "\n", - "#@markdown There are 4 pre-trained options to play with:\n", - "#@markdown - FFHQ: Trained with human faces. \n", - "#@markdown - MetFaces: Trained with paintings/portraits of human faces.\n", - "#@markdown - AFHQv2: Trained with animal faces.\n", - "#@markdown - Cosplay: Trained by [l4rz](https://twitter.com/l4rz) with cosplayer's faces.\n", - "#@markdown - Wikiart: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the Wikiart 1024 dataset.\n", - "#@markdown - Landscapes: Trained by [Justin Pinkney](https://www.justinpinkney.com/) with the LHQ dataset.\n", - "\n", - "#@markdown ---\n", - "\n", - "base_url = \"https://api.ngc.nvidia.com/v2/models/nvidia/research/stylegan3/versions/1/files/\"\n", - "\n", - "Model = 'MetFaces' #@param [\"FFHQ\", \"MetFaces\", \"AFHQv2\", \"cosplay\", \"Wikiart\", \"Landscapes\"]\n", - "\n", - "#@markdown ---\n", - "\n", - "model_name = {\n", - " \"FFHQ\": base_url + \"stylegan3-t-ffhqu-1024x1024.pkl\",\n", - " \"MetFaces\": base_url + \"stylegan3-r-metfacesu-1024x1024.pkl\",\n", - " \"AFHQv2\": base_url + \"stylegan3-t-afhqv2-512x512.pkl\",\n", - " \"cosplay\": \"https://l4rz.net/cosplayface-snapshot-stylegan3t-008000.pkl\",\n", - " \"Wikiart\": \"https://archive.org/download/wikiart-1024-stylegan3-t-17.2Mimg/wikiart-1024-stylegan3-t-17.2Mimg.pkl\",\n", - " \"Landscapes\": \"https://archive.org/download/lhq-256-stylegan3-t-25Mimg/lhq-256-stylegan3-t-25Mimg.pkl\"\n", - "}\n", - "\n", - "network_url = model_name[Model]\n", - "\n", - "with open(fetch_model(network_url), 'rb') as fp:\n", - " G = pickle.load(fp)['G_ema'].to(device)\n", - "\n", - "zs = torch.randn([10000, G.mapping.z_dim], device=device)\n", - "w_stds = G.mapping(zs, None).std(0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5XAAf8jZevsl" - }, - "source": [ - "## パラメータの指定と実行" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "cellView": "form", - "id": "z1rqpxkmd_wt" - }, - "outputs": [], - "source": [ - "#@markdown **Parameters**\n", - "\n", - "#@markdown `texts`: Enter here a prompt to guide the image generation. You can enter more than one prompt separated with\n", - "#@markdown `|`, which will cause the guidance to focus on the different prompts at the same time, allowing to mix and play\n", - "#@markdown with the generation process.\n", - "\n", - "#@markdown `steps`: Number of optimization steps. The more steps, the longer it will try to generate an image relevant to the prompt.\n", - "\n", - "#@markdown `seed`: Determines the randomness seed. Using the same seed and prompt should give you similar results at every run.\n", - "#@markdown Use `-1` for a random seed.\n", - "\n", - "#@markdown ---\n", - "\n", - "texts = \"female | smiling | black hair\"#@param {type:\"string\"}\n", - "steps = 100#@param {type:\"number\"}\n", - "seed = 1234#@param {type:\"number\"}\n", - "#@markdown ---\n", - "\n", - "if seed == -1:\n", - " seed = np.random.randint(0,9e9)\n", - " print(f\"Your random seed is: {seed}\")\n", - "\n", - "texts = [frase.strip() for frase in texts.split(\"|\") if frase]\n", - "\n", - "targets = [clip_model.embed_text(text) for text in texts]\n", - "\n", - "picmod = 30\n", - "\n", - "tf = Compose([\n", - " Resize(224),\n", - " lambda x: torch.clamp((x+1)/2,min=0,max=1),\n", - " ])\n", - "\n", - "def run(timestring):\n", - " torch.manual_seed(seed)\n", - "\n", - " # Init\n", - " # Sample 32 inits and choose the one closest to prompt\n", - "\n", - " with torch.no_grad():\n", - " qs = []\n", - " losses = []\n", - " for _ in range(8):\n", - " q = (G.mapping(torch.randn([4,G.mapping.z_dim], device=device), None, truncation_psi=0.7) - G.mapping.w_avg) / w_stds\n", - " images = G.synthesis(q * w_stds + G.mapping.w_avg)\n", - " embeds = embed_image(images.add(1).div(2))\n", - " loss = prompts_dist_loss(embeds, targets, spherical_dist_loss).mean(0)\n", - " i = torch.argmin(loss)\n", - " qs.append(q[i])\n", - " losses.append(loss[i])\n", - " qs = torch.stack(qs)\n", - " losses = torch.stack(losses)\n", - " # print(losses)\n", - " # print(losses.shape, qs.shape)\n", - " i = torch.argmin(losses)\n", - " q = qs[i].unsqueeze(0).requires_grad_()\n", - "\n", - " # Sampling loop\n", - " q_ema = q\n", - " opt = torch.optim.AdamW([q], lr=0.03, betas=(0.0,0.999))\n", - " loop = tqdm(range(steps))\n", - " for i in loop:\n", - " opt.zero_grad()\n", - " w = q * w_stds\n", - " image = G.synthesis(w + G.mapping.w_avg, noise_mode='const')\n", - " embed = embed_image(image.add(1).div(2))\n", - " loss = prompts_dist_loss(embed, targets, spherical_dist_loss).mean()\n", - " loss.backward()\n", - " opt.step()\n", - " loop.set_postfix(loss=loss.item(), q_magnitude=q.std().item())\n", - "\n", - " q_ema = q_ema * 0.9 + q * 0.1\n", - " image = G.synthesis(q_ema * w_stds + G.mapping.w_avg, noise_mode='const')\n", - "\n", - " if i % picmod == 0:\n", - " display(TF.to_pil_image(tf(image)[0]))\n", - " print(f\"Image {i}/{steps} | Current loss: {loss}\")\n", - " pil_image = TF.to_pil_image(image[0].add(1).div(2).clamp(0,1))\n", - " os.makedirs(f'samples/{timestring}', exist_ok=True)\n", - " pil_image.save(f'samples/{timestring}/{i:04}.jpg')\n", - "\n", - "try:\n", - " timestring = time.strftime('%Y%m%d%H%M%S')\n", - " run(timestring)\n", - "except KeyboardInterrupt:\n", - " pass" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-x13yvcFnPat" - }, - "source": [ - "Stepごとに指示に近づいている(上手くいった一例)。\n", - "\n", - "少しずつフェードアウトしてくところや、背景が髪の毛と変化(同化)していく点は不思議。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "dSRDbGRtjOUq", - "rAlPquBCSVud", - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "name": "Python_misc_StyleGAN3.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_VScode.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_VScode.ipynb deleted file mode 100644 index e4da4986..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_VScode.ipynb +++ /dev/null @@ -1,366 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "xygiFz3F15TQ" - }, - "source": [ - "# コードの編集環境とGitHub Copilot\n", - "\n", - "この章では、Pythonを始め様々なプログラミング言語のソースコードを編集するための環境として、VS Codeを紹介する。 \n", - "また、GitHub Copilotという、大規模言語モデルを使ったコード補完ツールを紹介する。\n", - "\n", - ":::{note}\n", - "他のノートブックと同様に、Macユーザーは`Ctrl`を適宜`Command`に置き換えて読んでほしい。\n", - ":::\n", - "\n", - "免責事項として、本章の記述は2023年7月時点のもの(著者の理解)であり、アップデート等によって内容が不正確となる可能性があることを予めご了承いただきたい。 \n", - "また、一般論として、環境構築に伴うエラーの解決は、使用環境,バージョンや設定などに依存するため、本章の記述をそのまま適用できない場合があること、\n", - "インストール等に関する種々のトラブルについて著者は責任を負わないこともあわせてご了承いただきたい。 \n", - "これも一般論だが、OSに備わっているバックアップ機能(Windows バックアップ, TimeMachine)などで、常時バックアップは取るようにしよう。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EvTOzAC173gT" - }, - "source": [ - "## Visual Studio Code (VS Code)の導入\n", - "\n", - "エディタは様々なものがあるが、VS Codeは機能が豊富かつユーザー数が多い(=情報も豊富な)ため、最もオススメしやすいエディタである。 \n", - "とくに拡張機能が便利で、言語ごとに様々な拡張機能が用意されている。著者も紆余曲折ありVS Codeを95%位の割合でメインエディタとして使っている。\n", - "\n", - "### インストール方法\n", - "\n", - "1. VScodeのインストールは、[公式サイト](https://code.visualstudio.com/)またはOS毎のStore系のソフト(Microsoft Store, Mac App Store)からインストールする。\n", - "2. インストール後、VScodeを起動すると、日本語化を促されるので、必要であれば指示に従う。\n", - "3. 初めてPythonのコードをVS Codeで作成/開く際に、拡張機能のインストールを促されるかもしれない。その時は、インストールを許可しよう。\n", - "4. その他、必要に応じて拡張機能を導入したり、フォントを変更したりすると良い。表示サイズなどはショートカットで拡大(`Ctrl`+`+`)・縮小(`Ctrl`+`-`)できる。\n", - "\n", - "#### Windows+WSLの導入例\n", - "\n", - "著者はWindowsユーザーではないので、情報が古い可能性があるがご容赦頂きたい。\n", - "\n", - "1. Storeまたは[Webページ](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)からインストールする\n", - "\n", - " \n", - " \n", - "\n", - "2. 起動すると、日本語化を提案してくれるので日本語で使いたければ、インストールして再起動をクリック\n", - "\n", - " \n", - "\n", - "3. ターミナルから新しいターミナルを開くと規定のターミナルが開く(Windowsの場合だとpowershell?)\n", - " ∨記号から、Ubuntu(WSL)を選択すると、Ubuntu(Linux)ターミナルを起動することが出来る\n", - "\n", - " \n", - "\n", - " \n", - " \n", - "\n", - "\n", - "### Pythonコードの編集\n", - "\n", - "1. 適当なPythonファイルを作成してみよう。[ファイル]→[新しいファイル]で新規ファイルを作成する。 \n", - " その際**ファイルの種類を入力するか、ファイル名を入力してください**などという表示がでるのでpythonと打ち、Pythonファイルを作成する。 \n", - " Untitled-1などというファイルが作成されるので、`Ctrl+S`で保存しようとすると、ファイル名を入力するように促される。 \n", - " その際、適当な名前をつけてみよう。例えば`sample_code.py`などとする。\n", - "2. ファイルを編集したら、保存(`Ctrl+S`)しよう。編集内容が残っている場合は(標準では)ファイル名の横に丸◯が表示されるので、わかりやすい。\n", - " Pythonコードだけでなく、様々なファイルを編集したり閲覧したりすることができるので試してみよう。(例: pdfファイルをVS Codeにドラッグ&ドロップしてみよう)\n", - "3. 拡張子に応じて、なんのプログラミング言語で書かれたソースコードなのかを推定して、色分けしてくれたりする。\n", - "4. また、VS Codeでは、\"フォルダを開く\"ことで複数のソースコードを効率的に編集したりすることもできる。\n", - "\n", - "\n", - "### ターミナルの起動\n", - "\n", - "VS Codeでは、ターミナルをVS Code内で起動することができる。 \n", - "[ターミナル]タブから新しいターミナル(規定のターミナル)を起動することができ、画面の上下や左右などに分割して表示することができる。 \n", - "したがって、ソースコードを編集しながら実行したりといった作業がしやすい。\n", - "\n", - "Windowsの場合は、WSL(Windows Subsystem for Linux)をインストールしておくと、Linuxのターミナルを使うことができる。 \n", - "MacやLinuxの場合は言うまでもなく、規定のターミナルが開くので、Unix/Linuxコマンドを使えば良い。\n", - "\n", - "よく使うLinuxコマンドを下記の表にまとめる:\n", - "\n", - "|コマンド|説明|\n", - "|:--|:--|\n", - "|`ls`|カレントディレクトリのファイル一覧を表示する|\n", - "|`cd`|ディレクトリを移動する|\n", - "|`pwd`|カレントディレクトリのパスを表示する|\n", - "|`mkdir`|ディレクトリを作成する|\n", - "|`rm`|ファイルを削除する(ゴミ箱を経由しないので使用には注意すること)|\n", - "|`cp`|ファイルをコピーする|\n", - "|`mv`|ファイルを移動する|\n", - "|`cat`|ファイルの中身を表示する|\n", - "|`head`|ファイルの先頭を表示する|\n", - "|`tail`|ファイルの末尾を表示する|\n", - "|`grep`|ファイルの中から文字列を検索する|\n", - "|`echo`|文字列を表示する|\n", - "|`chmod`|ファイルのアクセス権を変更する|\n", - "|`sudo`|root権限でコマンドを実行する|\n", - "\n", - "それぞれのコマンドの使い方やオプションについては網羅的に説明することはしないので、適宜調べて使い方を覚えてほしい。 \n", - "Chat GPTなどに尋ねてみるのも良い。\n", - "\n", - "ターミナルからPythonコードを実行する際は、\n", - "\n", - "1. `python`コマンドでPythonの対話環境を起動して使う\n", - "2. `python`コマンドに続けてファイル名を入力し、そのファイルを実行する\n", - "\n", - "の2つの方法がある。最初は1の方法でも良いが、コードで実現したい作業が大きくなるにつれ、\n", - "作成したソースコードを後者の方法で実行することが多くなるはずだ。\n", - "\n", - "```bash\n", - "python sample_code.py\n", - "```\n", - "\n", - "※システムによっては`python3`などとバージョンを明示的に指定しないといけない場合もあるので注意すること。 \n", - "Pythonをコマンドラインで使う際に毎回`python`などと入力するのが面倒なら、\n", - "エイリアスを設定して別ののコマンド(著者は`py`としている)に置き換えてしまうのも良い。\n", - "\n", - "(Linuxコマンドやシェルについての知識が少しだけ必要になるが)詳しい方法については「python コマンド エイリアス」などで検索してみよう。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 授業資料(.ipynb)をVS codeで実行・編集する\n", - "\n", - "VS Codeを使うと、ローカル環境で.ipynbファイルを実行・編集することができる。\n", - "著者も、この授業資料の作成にはVS Codeを使っている。\n", - "\n", - "以下で紹介するGitHub Copilotとの相性も良いので、今後プログラミング学習を継続するつもりだ、という方は、\n", - "VS Codeでの.ipynbファイルの実行・編集も是非やってみてほしい。\n", - "\n", - "### 授業資料のダウンロード方法\n", - "\n", - "本授業資料の.ipynbファイルは、GitHubのレポジトリかBookの各ページからダウンロードすることができる。\n", - "\n", - "* 方法1: GitHubの[レポジトリ](https://github.com/SotaYoshida/Lecture_DataScience)からダウンロードする.\n", - " `<>Code`という緑色のボタンをクリックし、`Download ZIP`をクリックすると、全てのファイルをダウンロードできる。\n", - " 展開したフォルダ内の`notebooks`というディレクトリが、本授業資料の.ipynbファイルがある場所である。\n", - " \n", - " \n", - "\n", - "* 方法2: Bookの各ページからダウンロードする. ブックの各章の上部にダウンロードボタン(下向き矢印)があるので、そこから`.ipynb`形式を選択し、ダウンロードすれば良い。\n", - " \n", - "\n", - "### ipynb形式のファイルをVS Codeで開く&実行する\n", - "\n", - "実行には当然Python環境が必要なので、インストール済みであるとする。\n", - "\n", - "1. ターミナルから \n", - "\n", - " ```bash\n", - " pip3 install jupyter\n", - " ```\n", - " などとして、Jupyterをインストールしておく。\n", - "2. VS Codeを起動し、ダウンロードした`ipynb`ファイルを開く。\n", - "3. コードセルを実行するには、`Shift+Enter`を押す。または、コードセルの左側にある`▶︎`をクリックする。このとき、複数のPython環境がインストールされている場合は、どのPython環境で実行するかを選択する必要がある。\n", - "4. コードセルの実行結果が表示される。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## GitHub Copilot\n", - "\n", - "GitHub Copilotは、GitHubがOpenAIと共同で開発したコード補完ツールである。 \n", - "背後には、GPT-3ベースのOpenAI Codexが動いており、文字通りcopilotとして様々なコードやスニペットを提案してくれる。\n", - "\n", - "GitHub Copilotは、VS Codeなどの拡張機能としても使用することができる。\n", - "ただし、GitHub Copilotが生成するコードは完璧ではないため、使う際は、**提案されたコードを注意深く確認し、必要に応じて修正を行う必要がある**ことは言うまでもない。\n", - "\n", - "GitHub Copilotを使うには、まず、GitHub Copilotのベータ版に登録する必要がある。学生は、学生証などを提出することで、無料で登録・使用することができる。上手く使いこなせれば、かなりの生産性向上が期待できるツールであり、私も日々の研究において活用している。\n", - "\n", - "もちろん、自身の意図を100%反映したコードを生成してくれるわけではないが、コードの骨組みを作ってくれるため大幅に作業が楽になることも多い。ときに「こんな書き方もあるのか」という気づきを与えてくれたりもする。\n", - "\n", - "\n", - "### VS Codeへの導入\n", - "\n", - "1. GitHub Copilotに登録する。この際、GitHubアカウントを作成する必要がある。\n", - " 既にGitHubアカウントを持っている場合は、そのアカウントでログインする。 \n", - " 「Github Copilot 学生申請」などで検索すると、学生向けの登録方法が見つかる。\n", - " 認証が済むと、GitHubのアカウントがPROアカウントになり、Copilotを使うことができるようになる。\n", - "2. 次に、[Copilotのページ](https://github.com/features/copilot/)から、Start my free trialをクリックし、指示に従う。\n", - "\n", - "3. VS Codeのアカウント(人型)のアイコンから、GitHubアカウントにログインする。\n", - "\n", - "4. VS Codeの拡張機能タブから[GitHub Copilot]などと検索したのち、拡張機能をインストールする(2.でインストールが始まるかも)。その後指示に従い、インストールを完了する。\n", - "\n", - "### 試してみよう\n", - "\n", - "試しに著者の環境(VS Code)で「適当な二次元データのヒートマップを描画するコードは以下のようになる」などと打つと... \n", - "以下のように、自身で入力した際よりも薄い色でコード(場合によっては複数行)が提案される。\n", - "\n", - "\n", - "\n", - "Copilotの提案を受け入れるには`Tab`キーを押し、棄却する場合には`Esc`を押せば良い。複数行に渡る場合も同様である。\n", - "こうした作業を繰り返して生成されたコードを実行してみよう。\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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xv333x+HDx+OW265pe5dAwAdrvYg8pnPfCYOHjwYd999d7zxxhvxe7/3e/Hd7373PQ+wMjZVL7G9/UDnPhhcugR81Uuslypdir20f6XHe8kV84valfRv/bO/KNpW1fN5fHblvUXt/tfdq4ralc5xUXq9l57b0jk4Sq+9TV/8w6J2a77z86J2X7nx0qJ2Ver0eT94r6xzVnsQiYhYvXp1rF69ejx2BQB0kY6qmgEAJhdBBABII4gAAGkEEQAgjSACAKTpabfb7exOnEir1YpGoxH732qa3OwUlZYffvLy87p6n3XIKmWruuS6tKS1yn2WntvSa+W2+14oavenf/IHRe1Ky21Lj6Pqa6XqstzScS5Rej2VHmtp36ouza76/Ue58rFarVbMndmIZnP0z293RACANIIIAJBGEAEA0ggiAEAaQQQASCOIAABpBBEAIM24rL5L9Upr1jPm6iit9y89hlJVz6tRur2s+RJe/OU7Re1KroGq561Yun5zUbsv3vCBonal84Os/uCConYPbtld1K5U1fOmlB5Hlb9DpddTabvSa6XquVqqfv+ZLPN+ZHJHBABII4gAAGkEEQAgjSACAKQRRACANIIIAJCmp91ut7M7cSKtVisajUbsf2v0ZYRLKdmqX6ePcWkJZUbpc0S1S7ZHlJVblpaLlpY0l5Z4Diw8u6hdqapLS6suuc5Sct6yrveqdfr7z2TRarVi7sxGNJujf367IwIApBFEAIA0gggAkEYQAQDSCCIAQBpBBABIM2FW31WydXxVlh+Wlm5mKT2365/9RVG70lLQ0tLXTnbL139S1K50tdyqlZ6zDSuuLmp33srHitqVrvpbdf9KVfk7WXXZeNWr6paumFxamu0zo3O4IwIApBFEAIA0gggAkEYQAQDSCCIAQBpBBABII4gAAGl62u12O7sTJ9JqtaLRaMT+t0ZfRniiKK1tL1VlDXzVfStVOldC1cuYl86rUDrfSKmtOw8UtatyTorSORoGFp5d1K5kXpqI8uvznGtWF7W76jM3FbUrHbvS+VVKt1c6zlXPTVPyO1T1OSvV6fN5lL4PVP3+0+1arVbMndmIZnP0z293RACANIIIAJBGEAEA0ggiAEAaQQQASCOIAABp3lfXhu+9997493//99i2bVtMmzYt3nnnnbp2FRGdXwJWqpP7V9q3qs9F1piUluNVXfb4amHpZpXjUnVZbtVLtlddlltq0SVzKt1e1WW5pUqu5dIy1azfx6rfV0q3pyy3frXdETly5EjcdNNN8YUvfKGuXQAAXa62OyJ/9Vd/FRERGzdurGsXAECXqy2InIqhoaEYGhoa+brVKptREwDoTh31sOrg4GA0Go2RV39/f3aXAIAajSmIrF27Nnp6ek762rFjxyl3Zt26ddFsNkdee/bsOeVtAQCdb0x/mlmzZk2sXLnypG0WLlx4yp3p7e2N3t7eU/55AKC7jCmIzJ49O2bPnl1XXwCASaa2h1V3794db7/9duzevTuOHj0a27Zti4iIiy++OM4666zK99fJ829MFFlztaz5zs+L2pXOSVG1quctKFW6vSqXgC/ZVkT5uSg9t6Xzg5T2r/R4q76msubCKGlXOialsn5vs8Y4a3sTQW1B5O67746vf/3rI1///u//fkREvPjii7F06dK6dgsAdJHaqmY2btwY7Xb7PS8hBAD4jY4q3wUAJhdBBABII4gAAGkEEQAgTU+73W5nd+JEWq1WNBqN2P9WM/r6qi0tY+w6veysdBnz0mW9q95eleW2dew3Q+m1snT95qJ2pWW+pUr7V3qtlKp66fmSayDr97bT31c4Na1WK+bObESzOfrntzsiAEAaQQQASCOIAABpBBEAII0gAgCkEUQAgDTKd7uUkrdTV3U5a9UrvnayB7fsLmq3+oMLitpVXR5bddlrp6tyXLLeU7LKy7031kv5LgDQFQQRACCNIAIApBFEAIA0gggAkEYQAQDSCCIAQJr3ZXeAUzMRauA7eXn6iPIxzppXocr9lu7zKzdeWtRuzXd+XtSudL6R0jlYJtv8OhNhbpqJci44de6IAABpBBEAII0gAgCkEUQAgDSCCACQRhABANIo3yUiysoeqy6zU7Z3fBnlwNsPtIq2Vdq30jLfTl96vnS/z2x/vahdablt6fn45OXnFbXLKJWveownW2n2ZOKOCACQRhABANIIIgBAGkEEAEgjiAAAaQQRACCNIAIApDGPCBExuWrvM+ZUiKh+jEvnriiZa6LquRxKZc0hUfW5KJ3PI0vG73fV+6x6rhs6hzsiAEAaQQQASCOIAABpBBEAII0gAgCkEUQAgDS1le/+6le/ir/+67+OF154Id54442YN29e/Pmf/3n85V/+ZUybNq2u3cKoskpVS5Xut8ol4Ksueez07XW6yXa8JTq9RJpTV1sQ2bFjRwwPD8ejjz4aF198cbz88stx2223xeHDh2P9+vV17RYA6CK1BZHrr78+rr/++pGvFy5cGDt37oyHH35YEAEAImKcZ1ZtNpsxY8aME/770NBQDA0NjXzdapXNpAcAdKdxe1h1165d8cADD8TnPve5E7YZHByMRqMx8urv7x+v7gEACcYcRNauXRs9PT0nfe3YseOYn9m7d29cf/31cdNNN8Vtt912wm2vW7cums3myGvPnj1jPyIAoGuM+U8za9asiZUrV560zcKFC0f+e9++fTEwMBBLliyJr371qyf9ud7e3ujt7R1rlwCALtXTbrfbdW187969MTAwEIsWLYp//ud/jqlTp47p51utVjQajdj/VjP6+vpq6iVQtapXy51sjB/drtVqxdyZjWg2R//8ru1h1b1798bSpUvj/PPPj/Xr18fBgwdH/u3cc8+ta7cAQBepLYg899xzsWvXrti1a1fMnz//mH+r8SYMANBFaquaWblyZbTb7eO+AAAirDUDACQSRACANIIIAJBGEAEA0ozrWjPQTSbKXA4lx1H1MZRub6KMcanJdrxQwh0RACCNIAIApBFEAIA0gggAkEYQAQDSCCIAQBrlu3ACE6WEspOPo5P7VofJdrxQwh0RACCNIAIApBFEAIA0gggAkEYQAQDSCCIAQBpBBABIYx4RJgxLrFPKtVI/Y0wpd0QAgDSCCACQRhABANIIIgBAGkEEAEgjiAAAaZTvMmEoA6RU6bWiBPXUGRNKuSMCAKQRRACANIIIAJBGEAEA0ggiAEAaQQQASKN8F+AElKBC/dwRAQDSCCIAQBpBBABII4gAAGkEEQAgjSACAKQRRACANLXOI/KpT30qtm3bFgcOHIhzzjknli1bFn/7t38b8+bNq3O3AExSrx48XNTOHDGdo9Y7IgMDA/Gtb30rdu7cGU888US88sor8elPf7rOXQIAXaSn3W63x2tn3/72t2P58uUxNDQU73//+0dt32q1otFoxP63mtHX1zcOPQSgm7kj0hlarVbMndmIZnP0z+9xm+L97bffjsceeyyWLFlywhAyNDQUQ0NDI1+3Wq3x6h4AkKD2h1W/9KUvxZlnnhkzZ86M3bt3x9NPP33CtoODg9FoNEZe/f39dXcPAEg05iCydu3a6OnpOelrx44dI+3vuuuu+NnPfhbf//73Y+rUqXHzzTfHif4atG7dumg2myOvPXv2nPqRAQAdb8zPiBw8eDDeeuutk7ZZuHBhTJs27T3ff+2116K/vz/+4z/+IxYvXjzqvjwjAsBYeEakM9T6jMjs2bNj9uzZp9Sx4eHhiIhjngMB6lXyxuxNmYnCtdx9antY9Yc//GH8+Mc/jg9/+MNxzjnnxCuvvBJf/vKX46KLLiq6GwIATHy1Pax6xhlnxL/927/Fxz72sbjkkkvi1ltvjSuvvDI2b94cvb29de0WAOgitd0R+d3f/d144YUX6to8ADABWGsGAEgjiAAAaQQRACDNuE3xDuRQzgh0MndEAIA0gggAkEYQAQDSCCIAQBpBBABII4gAAGkEEQAgjXlEAH5Lrx48XNTOnC7wXu6IAABpBBEAII0gAgCkEUQAgDSCCACQpqOrZtrtdkREHGq1knsCcGLvHiqrmmn1Hq25J9AZfvO5/ZvP8ZPp6CBy6NChiIi4+ML+5J4AAGN16NChaDQaJ23T0y6JK0mGh4dj586dcdlll8WePXuir68vu0tdr9VqRX9/v/GsgLGsjrGslvGsjrE8Ne12Ow4dOhTz5s2LKVNO/hRIR98RmTJlSvzO7/xORET09fW5CCpkPKtjLKtjLKtlPKtjLMdutDshv+FhVQAgjSACAKTp+CDS29sb99xzT/T29mZ3ZUIwntUxltUxltUyntUxlvXr6IdVAYCJrePviAAAE5cgAgCkEUQAgDSCCACQpuuCyKc+9alYsGBBnHbaaXHeeefFZz/72di3b192t7rOr371q7j11lvjwgsvjNNPPz0uuuiiuOeee+LIkSPZXetK9957byxZsiTOOOOMOPvss7O703UeeuihuOCCC+K0006L6667Ln70ox9ld6krvfTSS3HjjTfGvHnzoqenJ5566qnsLnWtwcHBuOaaa2L69OkxZ86cWL58eezcuTO7WxNS1wWRgYGB+Na3vhU7d+6MJ554Il555ZX49Kc/nd2trrNjx44YHh6ORx99NLZv3x5///d/H4888kj8xV/8RXbXutKRI0fipptuii984QvZXek63/zmN+POO++Me+65J37605/GVVddFZ/4xCfiwIED2V3rOocPH46rrroqHnrooeyudL3NmzfHqlWrYsuWLfHcc8/Fr3/96/j4xz8ehw+XLXBIua4v3/32t78dy5cvj6GhoXj/+9+f3Z2udt9998XDDz8cv/zlL7O70rU2btwYd9xxR7zzzjvZXeka1113XVxzzTXx4IMPRsT/XWOqv78/br/99li7dm1y77pXT09PPPnkk7F8+fLsrkwIBw8ejDlz5sTmzZvjIx/5SHZ3JpSuuyPy/3r77bfjscceiyVLlgghFWg2mzFjxozsbjCJHDlyJLZu3RrLli0b+d6UKVNi2bJl8YMf/CCxZ3CsZrMZEeE9sgZdGUS+9KUvxZlnnhkzZ86M3bt3x9NPP53dpa63a9eueOCBB+Jzn/tcdleYRN588804evRozJ0795jvz507N954442kXsGxhoeH44477ogPfehDccUVV2R3Z8LpiCCydu3a6OnpOelrx44dI+3vuuuu+NnPfhbf//73Y+rUqXHzzTdHl/+FqTJjHcuIiL1798b1118fN910U9x2221JPe88pzKWwMSzatWqePnll+Mb3/hGdlcmpPdldyAiYs2aNbFy5cqTtlm4cOHIf8+aNStmzZoVH/jAB+LSSy+N/v7+2LJlSyxevLjmnna+sY7lvn37YmBgIJYsWRJf/epXa+5ddxnrWDJ2s2bNiqlTp8b+/fuP+f7+/fvj3HPPTeoV/I/Vq1fHM888Ey+99FLMnz8/uzsTUkcEkdmzZ8fs2bNP6WeHh4cjImJoaKjKLnWtsYzl3r17Y2BgIBYtWhQbNmyIKVM64gZZx/htrkvKTJs2LRYtWhTPP//8yEOVw8PD8fzzz8fq1atzO8ek1m634/bbb48nn3wyNm3aFBdeeGF2lyasjggipX74wx/Gj3/84/jwhz8c55xzTrzyyivx5S9/OS666CJ3Q8Zo7969sXTp0jj//PNj/fr1cfDgwZF/83+iY7d79+54++23Y/fu3XH06NHYtm1bRERcfPHFcdZZZ+V2rsPdeeedsWLFirj66qvj2muvjfvvvz8OHz4ct9xyS3bXus67774bu3btGvn61VdfjW3btsWMGTNiwYIFiT3rPqtWrYrHH388nn766Zg+ffrIM0uNRiNOP/305N5NMO0u8p//+Z/tgYGB9owZM9q9vb3tCy64oP35z3++/dprr2V3rets2LChHRHHfTF2K1asOO5Yvvjii9ld6woPPPBAe8GCBe1p06a1r7322vaWLVuyu9SVXnzxxeNehytWrMjuWtc50fvjhg0bsrs24XT9PCIAQPfyUAAAkEYQAQDSCCIAQBpBBABII4gAAGkEEQAgjSACAKQRRACANIIIAJBGEAEA0ggiAEAaQQQASPN/AIw9mYIwx9R+AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#適当な二次元データのヒートマップを描画するコードは以下のようになる:\n", - "\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "\n", - "# 2次元データの生成\n", - "x = np.random.randn(1000)\n", - "y = np.random.randn(1000)\n", - "\n", - "# ヒストグラムの描画\n", - "plt.hist2d(x, y, bins=50, cmap='Blues')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "もう少し具体的にカラーマップも指定してみよう。以下のコード例は\n", - "「適当な二次元データのヒートマップを作成するコード、但しカラーマップはjetを用いる。」と入力したあとに提案されたコードである。" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Yw/nLkuWLMG5557rfHfOOefg61//ep16NL+47bbbsGXLFlx//fUAgAsuuAA///nPsW3bNg0UxLygpjEKmUwGl156KXbt2jX1Xblcxq5du7BmzZpadmVeMjk5iU2bNuEb3/gGvvvd72L58uX17tK84corr8SPfvQj7N27d+qzatUq3HDDDdi7d68GCRFcfvnlgTTcn/zkJ3jzm99cpx7NL0ZHR9Hc7P7UplIplMvlOvVICD9qLj1s3rwZN954I1atWoXLLrsM27dvx/Hjx7Fhw4Zad2XesXHjRjz22GP41re+hc7OTgwMDAAAurq60NbWVufezW06OzsDsRzt7e1YuHChYjwM/uAP/gBr167Fvffei3/37/4dnnvuOTz88MN4+OGH6921ecF73vMe3HPPPTjzzDNx3nnn4Yc//CHuv/9+3HTTTfXumhAzY7IOfO5zn5s888wzJzOZzORll102+eyzz9ajG/MOANN+vvzlL9e7a/OS3/iN35i85ZZb6t2NecH//t//e/L888+fzGazkytWrJh8+OGH692lecPQ0NDkLbfcMnnmmWdOtra2Tr7lLW+Z/C//5b9MFgqFendNiBmhZaaFEEIIEYrWehBCCCFEKBooCCGEECIUDRSEEEIIEYoGCkIIIYQIRQMFIYQQQoSigYIQQgghQtFAQQghhBChaKAghBBCiFA0UBBCCCFEKBooCCGEECIUDRSEEEIIEYoGCkIIIYQI5f8DoMI0uO77tY8AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import matplotlib.cm as cm\n", - "\n", - "#データの作成\n", - "x = np.arange(0, 10, 0.1)\n", - "y = np.arange(0, 10, 0.1)\n", - "X, Y = np.meshgrid(x, y)\n", - "Z = np.sin(X) + np.cos(Y)\n", - "\n", - "#ヒートマップの作成\n", - "plt.pcolor(X, Y, Z, cmap=cm.jet)\n", - "plt.colorbar()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1回目は`seaborn`ライブラリを使っていたのに対し、2回目では`matplotlib.cm`からカラーマップ`cm`を呼んでいる事がわかる。\n", - "ランダムなデータの作り方も1回目と2回目、あるいはユーザーの実行ごとに変わったりすることに注意しよう。\n", - "\n", - "繰り返しになるが、GitHub Copilotの提案が本当に自身の意図したものとなっているかについては、**常にユーザーである我々が注意して確認する必要があること**は肝に命じておこう。" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 練習相手・チューターとしてのCopilot/Chat GPT\n", - "\n", - "この授業を履修する皆さんにはぜひ、GitHub CopilotやChat GPTを、自身の学習のための練習相手や24時間対応のTAやチューターのように活用してもらいたい。 \n", - "大規模言語モデルを使用したチャットボット(Chat GPT)は、プロンプトと呼ばれる指示文を適切に与えることで、その文脈に沿った文章を生成してくれる(かもしれない)という性質のものである。\n", - "\n", - "自分が望むような文章を生成する、あるいは文章生成を\"回答\"とみなし活用するためには、プロンプトの与え方に工夫が必要になる。 \n", - "「何がわからないのかも分からない」状態では質問のしようがないのと同様、指示が漠然としているとおそらく有効な回答を引き出す蓋然性は低くなってしまう。\n", - "プログラミング学習に活用するための適切なプロンプトを工夫することは、それ自体が**自身のやりたい作業を言語化する**という作業になっていて、一定の学習効果が期待される。\n", - "\n", - "皆さんの主体的な学習にむけて、幾つかChat GPTの使用例を紹介してみよう。 \n", - "適当な指示文を与えてみる。\n", - "\n", - "\n", - "\n", - "\n", - "もちろん、ここでは具体的なファイル構造を示したりファイルを与えているわけではないので、正しく動く保証も全く無いわけだが、概ねもっともらしいコードを生成してくれている。\n", - "仮に提案されたコードがうまく動かない/使えないとき、うまく行かない理由と関連していそうな情報を与えてやったりすることで、解決策を提示してきたり、補足知識を与えてくれたりするという例も見せよう。\n", - "\n", - "\n", - "\n", - "\n", - "細かいことを言うと、2.の1つめの画像の提案(`encoding=\"SHIFT-JIS\"`)は、サポートされていないオプションの指定となりエラーになるが、(言語モデルはPythonの文法、とくにPythonの中での文字コードの指定に相当するコードを\"理解\"しているわけではないため)推論としては真っ当なものになっている。 \n", - "\n", - "実は上の画像で挙げた例は、実際にPythonでcsvやエクセルファイルを読み書きしようとする際に、よく遭遇するエラーの例になっていて、\n", - "私はそのことを知っているため、上のようなある種\"誘導的な\"プロンプトを与えることで、より有用な回答を得られるよう仕向けている。\n", - "2.の2つめの画像で、より適切なオプションを指定するためにもう少しヒントをあげているという訳だ。\n", - "\n", - "\n", - "\"自身の理解やこれまでの思考・試行を開示した上で質問をする\"ことが、他人に質問する際に有効な回答を引き出すための近道であることと同じで、\n", - "言語モデルを対話的に活用する上では、こうしたコツを抑えておくと良いかもしれない。\n", - "\n", - "また、大規模言語モデルの性質・特性やその背景にある基礎について理解を深めることも非常に重要な姿勢だと感じる。 \n", - "理研AIPシンポジウムでの岡崎直観先生の特別講演[Youtubeへのリンク](https://youtu.be/PUuk4Cv-ycg)が非常に参考になる。ぜひ一度視聴してみてほしい。" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "include_colab_link": true, - "name": "Python_misc_python_env_forWin11.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_numpy.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_numpy.ipynb deleted file mode 100644 index c6fce304..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_numpy.ipynb +++ /dev/null @@ -1,889 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5ObsFxycyq-y" - }, - "source": [ - "# Numpyについて" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rFUjRPktyouP" - }, - "source": [ - "この授業で使うノートブックや、巷に転がってるPythonのコードでは、たびたび`Numpy`というものが使われています。\n", - "この補足ノートではその`Numpy`について説明します。\n", - "\n", - "`numpy`は数値演算ライブラリで、機械学習・画像音声処理などなど様々な場面で使用されるライブラリです。 \n", - "その特徴としては色々ありますが、\n", - "* 配列を用いた計算が楽かつ高速にできる \n", - "* その他数学的な処理がパッケージ化されている\n", - "\n", - "といったところでしょうか。\n", - "\n", - "1番目の点ですが、一般にPythonのような動的型付け言語に分類される言語は、Cなどの静的言語と呼ばれる言語に比べて、計算時間が長くかかってしまうことが多いです。\n", - "とくに、コンピュータを用いたシミュレーションの至るところに現れる配列の操作や、行列やベクトルに対する演算でその差が顕著なものとなります。\n", - "\n", - "一方、Pythonで読み出せる`numpy`ライブラリは、中身はC言語(およびFortran)で実装されていて、かつBLAS(行列演算ライブラリ)など最適化された線形計算ライブラリを使用できるためPythonの書きやすさを維持したまま、高速な計算を実現することができます。\n", - "\n", - "参考: NASAのModeling Gruによる数値演算速度の比較 \n", - "https://modelingguru.nasa.gov/docs/DOC-1762 \n", - "https://modelingguru.nasa.gov/docs/DOC-2783\n", - "\n", - "2番目の点 \n", - "numpyでは数学で用いる種々の関数(sin,cos,log,log10, etc.)が定義されていて簡単に読み出すことができます。また、乱数を生成してサイコロを振ったりすることも簡単です。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4yAkLESw18J3" - }, - "source": [ - "## numpy.array" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "n7PehTnq2FO7" - }, - "source": [ - "それでは`numpy`を`import`して、使ってみましょう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "1GqJqy6E2Fx0", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "import numpy as np #numpyとかくと長いのでnpという名前で使う\n", - "\n", - "a = [ i for i in range(1,5001) ]\n", - "b = np.array(a)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vMRwzNrg2x7c" - }, - "source": [ - "まずは、1から5000までの整数が並んだリスト```a```と、 \n", - "それを```np.array()```関数に突っ込んだ```b```を定義してみました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "NfUOTAtO3BUl", - "outputId": "d56e79f4-0cb4-4a30-b0cc-5ccaaffd94bf", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a [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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000]\n", - "b [ 1 2 3 ... 4998 4999 5000]\n" - ] - } - ], - "source": [ - "print(\"a\", a)\n", - "print(\"b\", b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FMzFJCkV3FPc" - }, - "source": [ - "中身は同じものなのですが、```b```は途中を省略して表示してくれています。気が利いていますね。 \n", - "では`type`を調べてみましょう" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "qsO-w49n3My5", - "outputId": "685c671b-f927-42df-dbb8-555dd61ce432", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "aの型 \n", - "bの型 \n" - ] - } - ], - "source": [ - "print(\"aの型\", type(a))\n", - "print(\"bの型\", type(b))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4Vtge_q23TaX" - }, - "source": [ - "```a```は当然リスト型です。 \n", - "一方、```b```は```numpy.ndarray```という型であることがわかりました。\n", - "\n", - "```numpy.ndarray```というのは、numpyのもとで定義されているN-dimensional array、つまりN次元配列の略です。\n", - "\n", - "さて、次にnumpy.array同士の足し算をやってみましょう。 \n", - "リスト(2章のノート)の足し算では、リスト同士の結合を意味していました。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "iyhT8VlK3tBy", - "outputId": "bc1c0074-b22c-451b-ef4e-afe64f4c6b57", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 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, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000]\n", - "aaの長さ 10000\n" - ] - } - ], - "source": [ - "aa = a + a \n", - "print(aa)\n", - "print(\"aaの長さ\", len(aa))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Bm2CnjvP4huy" - }, - "source": [ - "長さが倍になっています。\n", - "\n", - "一方、numpy.arrayである```b```を足してみると..." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "94HlgI5_4obB", - "outputId": "01ee9af3-bed3-46ff-88d9-2f556199a3c9", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 2 4 6 ... 9996 9998 10000] 5000\n" - ] - } - ], - "source": [ - "bb= b + b\n", - "print(bb, len(bb))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TyJcH3664ydK" - }, - "source": [ - "というように、要素同士の和になっていることがわかります (長さは5000のまま)\n", - "\n", - "あるいは、3を```b```にかけてみると" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Odi9GC2k48cq", - "outputId": "747635c9-145a-422f-d23b-11e2cd75bc64", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ 3 6 9 ... 14994 14997 15000] 5000\n" - ] - } - ], - "source": [ - "b3 = 3*b\n", - "print(b3,len(b3))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AsKJ88dJ430w" - }, - "source": [ - "となり、すべての要素が3倍されています。\n", - "\n", - "これはよくよくみると**和**と**スカラー倍**が定義できている.つまり、ベクトルとしての性質を持っている事がわかります。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "QfvRell3qWuC" - }, - "source": [ - "## np.dot\n", - "\n", - "データ分析をする際「要素ごとの積をとって和を取る」という操作が頻繁に表れます。 \n", - "たとえば$a=[1.0,3.0,4.0]$と$b=[-2.0,1.0,5.0]$について$1 \\times (-2) + 3.0 \\times 1.0 + 4.0 \\times 5.0 = 21$といった操作です。\n", - "この操作は数学的には、実数を成分にもつベクトルの内積に対応しますが`numpy`にはこの機能が備わっています。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "PPzYWVp_rIMx", - "outputId": "933d74eb-743b-4700-b879-7e42b2dd1fb6", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "21.0" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a = [1.0,3.0,4.0]\n", - "b = [-2.0,1.0,5.0]\n", - "\n", - "np.dot(a,b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "8SOtK2AmrOxV" - }, - "source": [ - "多項式回帰の際の二乗誤差なども\n", - "\n", - "$\\chi^2 = \\sum^N_{i=1} (y_i - (ax_i+b))^2$は$y_i-(ax_i+b)$を$i$番目の成分に持つベクトルの自身との内積になるので、簡単に実装することができます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "TBehECU08Xft" - }, - "source": [ - "## ブロードキャスト機能\n", - "\n", - "`numpy`にはブロードキャストと呼ばれる機能が備わっていて`ndarray`同士の二項演算では、形状を揃える機能が備わっています。たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "utqDGLBg8pne", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "x = np.array([1.0, 2.0, 3.0, 4.0])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0SN9arId8s02" - }, - "source": [ - "というベクトル(1次元のndarray)があったときに、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_7Phus0L8yMZ", - "outputId": "21b4268b-fe8a-4028-b3ec-7ba207d6b45d", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([3., 5., 7., 9.])" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a = 2.0 \n", - "b = 1.0\n", - "a*x + b " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "KWY0AyVv86Uw" - }, - "source": [ - "とすると、$a$でスカラー倍したのち、全ての成分に$b$が足されています。 \n", - "\n", - "$x$を$N$個成分を持つndarrayとして用意しておいて$y$に各点での関数$f(x_i) (i=1,...,N)$の出力を対応させたいときも下で見るようにブロードキャスト機能を使えば簡単に実装できます。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mUqn-XHHsQrc" - }, - "source": [ - "## arange, linspace" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "zWCGWdSasV_D" - }, - "source": [ - "```np.arrange(始点,終点,公差)```や```np.linspace(始点,終点,数)```を使うと始点-終点の領域における等間隔な点を生成することができます。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "c1LeQetVsS9t", - "outputId": "a1c0f41e-eb48-48d6-e36b-31cf0f7e434e", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "a [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]\n", - "b [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]\n" - ] - } - ], - "source": [ - "a = np.arange(0.1, 1.0, 1.e-1) #終点は含まれない\n", - "b = np.linspace(1.0,10.0,10)\n", - "\n", - "print(\"a\", a)\n", - "print(\"b\", b)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5_OViJTLsse1" - }, - "source": [ - "グラフを連続的に線で繋ぎたいときなどに重宝します" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "jCLpHQOvs7Mw", - "outputId": "cab31fe8-6958-4389-cca0-492feaccc45f", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "y [ 4. 5.91358025 12.7654321 24.55555556 41.28395062\n", - " 62.95061728 89.55555556 121.09876543 157.58024691 199. ]\n" - ] - } - ], - "source": [ - "x = np.linspace(0.0,10.0, 10)\n", - "a = 2.0; b=-0.5; c = 4\n", - "y = a * x**2 + b * x +c #二次関数\n", - "print(\"y\",y) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4Biuqzt-8UR4" - }, - "source": [ - "## 行列・線形代数\n", - "\n", - "ベクトルと同じように、`numpy.array`では二次元配列(つまり行列)を考えることも出来て、たとえば 左上から順に整数1,2,3,...という値をもった3行3列の行列を考えたければ" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "WZgc67d14spY", - "outputId": "a6bba0cf-9af0-4481-b8e3-f929ab2bae90", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[1 2 3]\n", - " [4 5 6]\n", - " [7 8 9]]\n" - ] - } - ], - "source": [ - "A = np.array( [ [1,2,3],[4,5,6],[7,8,9]] )\n", - "print(A)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "p6W4J9Qw5-5e" - }, - "source": [ - "とすれば良い、といった具合です。\n", - "\n", - "他にも、たとえば" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "F5QZXmH-6rk-", - "outputId": "e6f2a29f-651c-4d4d-9636-3b2a9274f4c1", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "行列B [[ 2. 0.1 -0.2]\n", - " [ 0.1 1.3 0.4]\n", - " [-0.2 0.4 3. ]]\n", - "Bの逆行列は [[ 0.50663777 -0.05147656 0.04063939]\n", - " [-0.05147656 0.80736928 -0.11108101]\n", - " [ 0.04063939 -0.11108101 0.35085343]]\n", - "Bの行列式は 7.3820000000000014\n" - ] - } - ], - "source": [ - "B = np.array( [ [2.0,0.1,-0.2], [0.1,1.3,0.4], [-0.2,0.4,3.0]])\n", - "print(\"行列B\", B)\n", - "print(\"Bの逆行列は\", np.linalg.inv(B))\n", - "print(\"Bの行列式は\", np.linalg.det(B))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "nzlbA2Dr7Jeh" - }, - "source": [ - "といったように、線形代数(linalg <- linear algebraの略)で扱うような演算も簡単にできる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Ouh3C4rJrzt9" - }, - "source": [ - "## 転置 .T" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HkBsSJvD7ZpP" - }, - "source": [ - "numpyは実はMatplotlibを使ったお絵かきでもよくお世話になる。それは、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "L1Ce9dXM7fU4", - "vscode": { - "languageId": "python" - } - }, - "outputs": [], - "source": [ - "tmp = [ [1,185,72,141], [2,165,50,543],[3,150,48,334],[4,172,65,123]]" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FtyBOgg17tyc" - }, - "source": [ - "というような入れ子のリストがあったときに、\n", - ">「2番目と3番目の値同士の二次元散布図がかきたい...」\n", - "\n", - "というようなケースがよくある。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "w6z-zdeT75QI" - }, - "source": [ - "このとき、ループをまわしてplotするのはめんどくさい。たとえば「2番目の値だけが入った配列に対して、3番目の値だけが入った配列を用意していっぺんにplotしたい」ときは転置(transpose,T)をつかえば一瞬で実現できる" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "y-KkYrPy79aY", - "outputId": "3329b912-1fc6-440f-da9c-b66f57383349", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 1 2 3 4]\n", - " [185 165 150 172]\n", - " [ 72 50 48 65]\n", - " [141 543 334 123]]\n" - ] - } - ], - "source": [ - "ntmp = np.array(tmp).T #numpy.arrayに変換してから転置(transpose)を取りなさいという命令 .T\n", - "print(ntmp)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "h1VTI-0N86-U" - }, - "source": [ - "2番めと3番目の値だけ取り出したいときは、" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "scuITZMh89wL", - "outputId": "6067a760-873b-4d70-dd6a-2a62c3d75589", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2番目の要素の配列 [185 165 150 172]\n", - "3番目の要素の配列 [72 50 48 65]\n" - ] - } - ], - "source": [ - "print(\"2番目の要素の配列\", ntmp[1])\n", - "print(\"3番目の要素の配列\", ntmp[2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "AucAJOE08_vm" - }, - "source": [ - "とでもすればよいし、図も一度の命令だけで描ける\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OnbKmC4hWH3r" - }, - "source": [ - "あるいは" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "xVheE25FWIr7", - "outputId": "30fa17de-4886-43f5-85aa-b9b4e3972bc3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[:,1] [185 165 150 172]\n", - "[:,2] [72 50 48 65]\n" - ] - } - ], - "source": [ - "print(\"[:,1]→\", np.array(tmp)[:,1])\n", - "print(\"[:,2]→\", np.array(tmp)[:,2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Cjn-eUnkWVh-" - }, - "source": [ - "などとしても良い。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 265 - }, - "id": "KjepB46w9IH-", - "outputId": "decf2096-bd4d-4d2c-acc3-d054a0bbd8a3", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAD4CAYAAADsBlOYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAM1UlEQVR4nO3db2xd9XnA8e+zJCAPdRiGFyVetSBEPU1DJKkXdRJlorSN4MUwaELtiy7q0NJVBamVFols0sQ7qgVUtdKEFP50WdcyKAqBFxuhi7TtVemcJiNZi0XLgogTEtPN28SsNgvPXtzjYjIjXye+f3yf70eyfO/vnhs/h5BvzjnXuY7MRFJdv9DrAST1lhGQijMCUnFGQCrOCEjFre3mF7vmmmty06ZN3fySkoDDhw+/lZkjiz3W1Qhs2rSJycnJbn5JSUBEvP5+j3k6IBVnBKTijIBUnBGQijMCUnFdfXVA0so4cGSaPQenODU7x8bhIXZtH2Niy+hF/VpGQFplDhyZZvf+Y8ydOw/A9Owcu/cfA7ioEHg6IK0yew5O/TwA8+bOnWfPwamL+vWMgLTKnJqdW9b6UoyAtMpsHB5a1vpSjIC0yuzaPsbQujXvWRtat4Zd28cu6tfzwqC0ysxf/PPVAamwiS2jF/2H/kKeDkjFGQGpOCMgFWcEpOKMgFScEZCKMwJScUZAKs4ISMUtGYGIGIuIows+/isivhgRV0fEdyLi1ebzVd0YWNLKWjICmTmVmZszczPwYeB/gGeB+4FDmXk9cKi5L2mVWe7pwK3AjzPzdeAOYF+zvg+YWMnBJHXHciPwKeDJ5vb6zDzd3H4TWL/YEyJiZ0RMRsTkzMzMRY4pqVPajkBEXAb8LvDtCx/LzARysedl5t7MHM/M8ZGRRX8UmqQeWs6RwG3A9zPzTHP/TERsAGg+n13p4SR13nIi8GnePRUAeB7Y0dzeATy3UkNJ6p62IhARVwCfAPYvWP4y8ImIeBX4eHNf0irT1jsLZebbwC9fsPYTWq8WSFrF/I5BqTgjIBVnBKTijIBUnBGQijMCUnFGQCrOCEjFGQGpOCMgFWcEpOKMgFScEZCKMwJScUZAKs4ISMUZAak4IyAVZwSk4oyAVJwRkIozAlJxRkAqzghIxRkBqTgjIBVnBKTijIBUnBGQijMCUnFGQCrOCEjFrW1no4gYBh4DfhNI4A+A7cAfAjPNZn+SmX/biSFVw4Ej0+w5OMWp2Tk2Dg+xa/sYE1tGez3WwGsrAsBXgRcy8/ci4jLgF2lF4CuZ+VDHplMZB45Ms3v/MebOnQdgenaO3fuPARiCDlvydCAirgRuBh4HyMyfZeZspwdTLXsOTv08APPmzp1nz8GpHk1URzvXBK6ldcj/9Yg4EhGPRcQVzWP3RsTLEfFERFy12JMjYmdETEbE5MzMzGKbSJyanVvWulZOOxFYC2wFHsnMLcDbwP3AI8B1wGbgNPDwYk/OzL2ZOZ6Z4yMjIysztQbOxuGhZa1r5bQTgZPAycx8qbn/DLA1M89k5vnMfAd4FNjWqSE1+HZtH2No3Zr3rA2tW8Ou7WM9mqiOJSOQmW8Cb0TE/O/GrcAPImLDgs3uBI53YD4VMbFllAfvuoHR4SECGB0e4sG7bvCiYBe0++rAfcA3m1cGXgM+C3wtIjbTesnwBPC5jkyoMia2jPqHvgfaikBmHgXGL1j+zMqPI6nb/I5BqTgjIBVnBKTijIBUnBGQijMCUnFGQCrOCEjFGQGpOCMgFWcEpOKMgFScEZCKMwJScUZAKs4ISMUZAak4IyAVZwSk4oyAVJwRkIozAlJxRkAqzghIxRkBqTgjIBVnBKTijIBUnBGQijMCUnFGQCrOCEjFtRWBiBiOiGci4pWI+GFE/HZEXB0R34mIV5vPV3V6WEkrr90jga8CL2TmrwM3Aj8E7gcOZeb1wKHmvqRVZskIRMSVwM3A4wCZ+bPMnAXuAPY1m+0DJjo1pKTOaedI4FpgBvh6RByJiMci4gpgfWaebrZ5E1i/2JMjYmdETEbE5MzMzMpMLWnFtBOBtcBW4JHM3AK8zQWH/pmZQC725Mzcm5njmTk+MjJyqfNKWmHtROAkcDIzX2ruP0MrCmciYgNA8/lsZ0aU1ElLRiAz3wTeiIixZulW4AfA88COZm0H8FxHJpTUUWvb3O4+4JsRcRnwGvBZWgF5OiLuAV4H7u7MiJI6qa0IZOZRYHyRh25d2XEkdZvfMSgVZwSk4oyAVJwRkIozAlJxRkAqzghIxRkBqTgjIBVnBKTijIBUnBGQijMCUnFGQCrOCEjFGQGpOCMgFWcEpOKMgFScEZCKMwJScUZAKs4ISMUZAak4IyAVZwSk4oyAVJwRkIozAlJxRkAqzghIxRkBqbi2IhARJyLiWEQcjYjJZu2BiJhu1o5GxO2dHVVSJ6xdxra3ZOZbF6x9JTMfWsmBJHWXpwNSce1GIIEXI+JwROxcsH5vRLwcEU9ExFWLPTEidkbEZERMzszMXPLAklZWuxG4KTO3ArcBX4iIm4FHgOuAzcBp4OHFnpiZezNzPDPHR0ZGVmJmSSuorQhk5nTz+SzwLLAtM89k5vnMfAd4FNjWuTEldcqSEYiIKyLiA/O3gU8CxyNiw4LN7gSOd2ZESZ3UzqsD64FnI2J++29l5gsR8Y2I2EzresEJ4HMdm1JSxywZgcx8DbhxkfXPdGQiSV3lS4RScUZAKs4ISMUZAak4IyAVZwSk4oyAVJwRkIozAlJxRkAqzghIxRkBqTgjIBVnBKTijIBUnBGQijMCUnFGQCrOCEjFGQGpOCMgFWcEpOKMgFScEZCKMwJScUZAKs4ISMUZAak4IyAVZwSk4oyAVJwRkIpb285GEXEC+G/gPPC/mTkeEVcDTwGbgBPA3Zn5H50ZU5fqwJFp9hyc4tTsHBuHh9i1fYyJLaO9Hkt9YDlHArdk5ubMHG/u3w8cyszrgUPNffWhA0em2b3/GNOzcyQwPTvH7v3HOHBkutejqQ9cyunAHcC+5vY+YOLSx1En7Dk4xdy58+9Zmzt3nj0Hp3o0kfpJuxFI4MWIOBwRO5u19Zl5urn9JrB+sSdGxM6ImIyIyZmZmUscVxfj1OzcstZVS7sRuCkztwK3AV+IiJsXPpiZSSsU/09m7s3M8cwcHxkZubRpdVE2Dg8ta121tBWBzJxuPp8FngW2AWciYgNA8/lsp4bUpdm1fYyhdWvesza0bg27to/1aCL1kyUjEBFXRMQH5m8DnwSOA88DO5rNdgDPdWpIXZqJLaM8eNcNjA4PEcDo8BAP3nWDrw4IaO8lwvXAsxExv/23MvOFiPhn4OmIuAd4Hbi7c2PqUk1sGfUPvRa1ZAQy8zXgxkXWfwLc2omhJHWP3zEoFWcEpOKMgFScEZCKMwJScUZAKs4ISMUZAam4tt5UpFt84wup+/omAvNvfDH/797n3/gCMARSB/XN6YBvfCH1Rt9EwDe+kHqjbyLgG19IvdE3EfCNL6Te6JsLg/MX/3x1QOquvokA+MYXUi/0zemApN4wAlJxRkAqzghIxRkBqbho/fCgLn2xiBlab0++lGuAtzo8Tj9wPwdLP+/nr2Xmoj8CrKsRaFdETC746ccDy/0cLKt1Pz0dkIozAlJx/RqBvb0eoEvcz8GyKvezL68JSOqefj0SkNQlRkAqricRiIgnIuJsRBxfsPZARExHxNHm4/YFj+2OiB9FxFREbO/FzBdjsf1s1u+LiFci4l8j4s8XrA/MfkbEUwt+L09ExNEFjw3Sfm6OiO82+zkZEdua9YiIrzX7+XJEbO3d5EvIzK5/ADcDW4HjC9YeAP54kW1/A/gX4HLgWuDHwJpezL1C+3kL8PfA5c39XxnE/bzg8YeBPxvE/QReBG5rbt8O/MOC238HBPAR4KVez/9+Hz05EsjMfwL+vc3N7wD+JjN/mpn/BvwI2Nax4VbQ++zn54EvZ+ZPm23ONuuDtp9A629E4G7gyWZp0PYzgV9qbl8JnGpu3wH8VbZ8FxiOiA3dmXR5+u2awL3NodMTEXFVszYKvLFgm5PN2mr1IeCjEfFSRPxjRPxWsz5o+znvo8CZzHy1uT9o+/lFYE9EvAE8BOxu1lfNfvZTBB4BrgM2A6dpHUIOorXA1bQOEXcBTzd/Ww6qT/PuUcAg+jzwpcz8IPAl4PEez7NsfROBzDyTmecz8x3gUd49RJwGPrhg019t1lark8D+5jDxe8A7tP7hyaDtJxGxFrgLeGrB8qDt5w5gf3P726zC/2/7JgIXnC/dCcxfgX0e+FREXB4R1wLXA9/r9nwr6ACti4NExIeAy2j9y7NB20+AjwOvZObJBWuDtp+ngN9pbn8MmD/teR74/eZVgo8A/5mZp3sx4JJ6dJX1SVqH/Odo/c14D/AN4BjwMq3/gBsWbP+ntK4iT9FciV0NH++zn5cBf00rct8HPjaI+9ms/yXwR4tsPzD7CdwEHKb1isdLwIebbQP4i2Y/jwHjvZ7//T78tmGpuL45HZDUG0ZAKs4ISMUZAak4IyAVZwSk4oyAVNz/AX4WYuayVtEkAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "fig = plt.figure(figsize=(4,4))\n", - "plt.scatter(ntmp[1], ntmp[2]) #要素ごとにループを回したりしなくてよい\n", - "plt.show()\n", - "plt.close()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "eI1W1DL3Z7Xv" - }, - "source": [ - "文字列を含むリストをndarrayに変換したときの挙動には注意しよう. \n", - "文字列と数値は分けて使うのがオススメ." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "aNw6EUqdZ74j", - "outputId": "619defdf-ad1c-468a-d4d4-c20aeb742a3f", - "vscode": { - "languageId": "python" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "t [['Aさん' '170' '55']\n", - " ['Bさん' '160' '50']] data [['Aさん' 'Bさん']\n", - " ['170' '160']\n", - " ['55' '50']]\n", - "type \n" - ] - } - ], - "source": [ - "t = [ [\"Aさん\",170,55], [\"Bさん\",160,50]]\n", - "t = np.array(t)\n", - "data = t.T\n", - "print(\"t\",t, \"data\",data)\n", - "print(\"type\", type(data[1][0])) #文字列になってしまっている" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ENdvCzAI-Vqg" - }, - "source": [ - "(以下、都度追記)" - ] - } - ], - "metadata": { - "colab": { - "authorship_tag": "ABX9TyORPKsRr7E5ZKXQ43j3EWAJ", - "collapsed_sections": [], - "include_colab_link": true, - "name": "Python_misc_numpy.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_python_env_forWin11.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_python_env_forWin11.ipynb deleted file mode 100644 index d656f094..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_python_env_forWin11.ipynb +++ /dev/null @@ -1,305 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "xygiFz3F15TQ" - }, - "source": [ - "# Pythonの環境構築 (Windows11版)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EvTOzAC173gT" - }, - "source": [ - "いくつかの方針が考えられるが、下記の導入を推奨とする。\n", - "\n", - "* Windowsターミナル\n", - "\n", - "* Windows Subsystem for Linux2(WSL2)\n", - "\n", - "\n", - ":::{note}\n", - "授業の受講者で環境構築を希望される方は、事前に相談することを強く推奨します。\n", - "とくにWindowsの場合、作成者(吉田)はWindowsユーザーではないので幾つかの情報が古い恐れがあります。\n", - ":::\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "_LM9LKt-fBZq" - }, - "source": [ - "## Windowsターミナルの導入\n", - "\n", - "ターミナルとは、CUI(Character User Interface)、つまり \n", - "コマンドなどの文字列のみを用いてコンピュータを操作する環境を指す言葉です。\n", - "\n", - "CUIに対して、普段我々が使っているポインタやウィンドウなどは \n", - "GUI(Graphical User Interface)に相当します。\n", - "\n", - "何故現代においてもCUIが必要なのか、 \n", - "つまりマウスでポインタを動かしたりクリックするのではなく \n", - "一見不便そうな文字列だらけのインターフェースが用いられるのか、 \n", - "そこには*単に映画やドラマでハッカーの邪悪さを演出する*以上の理由があります。 \n", - "\n", - "計算機(コンピュータ)の発展の歴史的側面、パフォーマンス的側面から \n", - "その理由をすべて説明することはしませんが例えば授業で用いた \n", - "```ls```コマンドなどはCUIの利便性を表す一例になっていて、 \n", - "こうしたいわゆる\"機械的\"な操作についてはCUIに軍配が挙がります。\n", - "\n", - "Windows Terminalは、2019年にマイクロソフトがリリースしたターミナルで \n", - "コマンドプロンプトやPowerShellといったWindows独自のCUIに加えて \n", - "後述のWSLを統合的に扱うことができる環境となっています。\n", - "\n", - "\n", - "* Windows10の場合\n", - "\n", - " 後々のことも考えてこれを導入しておこう。 \n", - " MS storeでWindows terminalと検索し、 入手を押す\n", - "\n", - "* Windows11の場合\n", - "\n", - " 標準で入っているのでWindowsボタンで開くメニューから \n", - " 「terminal」などと検索すると出てくる" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rAlPquBCSVud" - }, - "source": [ - "## WSL2の導入" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jutP3oJrDq-1" - }, - "source": [ - "オペレーティングシステム(OS)の源流を遡ると、大まかには2つに大別される。 \n", - "1つがUnix系で歴史が古い。そしてもう1つはお使いのWindowsである。\n", - "\n", - "Unixはあるところで枝分かれし、LinuxやMac OSなどもUnix系に含まれる。 \n", - "サーバー用途のマシンや、スパコンなどの計算機環境では基本的にLinuxがOSとして採用されている。 \n", - "コンピュータの\"計算機\"としての側面や歴史的経緯から \n", - "プログラミング言語・開発環境などもUnix/Linuxとともに発展してきた部分が大きい。\n", - "\n", - "\n", - "一方でWindowsは、一般家庭でのコンピュータの需要拡大とともに独自の進化を遂げてきた。 \n", - "\n", - "Windowsユーザーが、プログラミング環境の構築やLinux-likeな作業をしたい場合 \n", - "方法は幾つかあるが最近だとWindows Subsystem for Linux (通称WSL)を使うのが \n", - "最も簡単かつ安全な方法の1つとされている。\n", - "\n", - "\n", - "この授業ではLinuxの中のUbuntuというディストリビューションを用意して使うことにしよう。 \n", - "Ubuntu自体はLinux OSの中ではGUI環境も良く出来ているディストリビューションで人気が高い。 \n", - "~日本語のシステムフォントがひどいWなんとかというOSよりはフォント・レンダリングも美しい~\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gancuw1N3uAJ" - }, - "source": [ - "* **手順1. WSLと仮想マシンプラットフォームの有効化**\n", - "\n", - " スタートメニューから「コントロールパネル」を検索して開く \n", - " \n", - "\n", - " コントロールパネルの[プログラム]>[Windowsの機能の有効化または無効化] を選択し\n", - " * 「Linux用Windowsサブシステム」\n", - " * 「仮想マシン プラットフォーム」 \n", - " \n", - " の2つにチェックを入れて有効化する(再起動が必要)\n", - "\n", - "\n", - "\n", - "* **手順2. Windows TerminalからWSLのインストール** \n", - "\n", - " スタートメニューからterminalなどと打ち込んで \n", - " Windows Terminalで右クリックして[管理者として実行]する \n", - " このアプリがデバイスに変更を加えることを許可しますか→[はい]\n", - "\n", - " ターミナルに\n", - " ```\n", - " wsl --install\n", - " ```\n", - " と打ち込んで実行(Enter)する \n", - " \n", - " \n", - "\n", - " 大量にヘルプが表示される場合は、\n", - "\n", - " ```\n", - " wsl --install -d Ubuntu\n", - " ```\n", - " と明示的にUbuntuを指定してインストールする\n", - "\n", - "\n", - "* **手順3. Ubuntuの起動**\n", - "\n", - " Ubuntuのウィンドウが開く※ので \n", - " 指示(Press any key to continue...)に従って適当なキーを押す。\n", - "\n", - " ※RyzenのCPUが搭載されたマシンを使っていて \n", - " ウィンドウが開いたときにerror: 0x800701bcが発生している場合は\n", - " [このページ](https://docs.microsoft.com/ja-jp/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package)を参考に \n", - " 「Linux カーネル更新プログラム パッケージ」をダウンロードして実行した後、手順1→2を再度行う。\n", - "\n", - "* **手順4. Ubuntuの初期設定**\n", - "\n", - " しばらくすると```Enter new UNIX username: ``` \n", - " とLinuxシステム用のusernameを求められるので \n", - " 適当なものを入力してEnterを押す \n", - " usernameは半角英数字にしよう。あとは...短い方があとあと便利。\n", - "\n", - " その後\n", - " ```NewPassword```\n", - " とパスワードの設定を求められるので打ち込んでEnter \n", - "\n", - " ```Retype new password```(もっかい打て)と言われるのでもう一度\n", - "\n", - " ユーザー名が緑色で表示されていて、エラーメッセージ等がなければOK\n", - "\n", - " \n", - "\n", - "\n", - "上記の手順以降は、スタートメニューからUbuntuと検索してUbuntuを開いても良いし \n", - "Windows terminalのタブの\"+\"のさらに右にある∨マークから \n", - "Ubuntuを選択すると(あるいはショートカットで)、Windows terminalの上でUbuntuが開く。\n", - "\n", - "なお、デフォルトの設定だとUbuntuを開くとUbuntuのホームディレクトリで開くし \n", - "Windows terminalから開くと、Windows側のホームディレクトリにいる状態で開く\n", - "\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iKAHNa6LSatq" - }, - "source": [ - "## WSL下でのPython環境の構築\n", - "\n", - "※以下では、直接/Windows TerminalのどちらでUbuntu環境を開いている場合も \n", - "便宜上\"Ubuntuターミナル\"と呼ぶことにしよう。\n", - "\n", - "WSL下にPython環境構築をする方法は以下の通り\n", - "\n", - "* **手順1. aptのupdate/upgrade**\n", - "\n", - " Ubuntuターミナルで以下を入力し実行する\n", - " ```\n", - " $sudo apt update\n", - " $sudo apt upgrade\n", - " ```\n", - "\n", - " 注:上の```$```は打ち込むのではなく、 Ubuntuターミナルの末尾にある```$```を指し \n", - " Pythonの対話モードなどで打ち込む場合と区別するための表記。\n", - "\n", - " sudoはコマンドの頭につけることで管理者権限で実行する、という命令を意味します。 \n", - " 実行時に、Ubuntu用に設定したパスワードが要求されます \n", - " 入力しても画面には表示されないので注意しながら打ち込んでEnterを押す。 \n", - " (間違っても再度入力を求めてくれますし、やめたければCtrl+C)\n", - "\n", - " aptはLinux(Debian系)のパッケージ管理システムです。 \n", - " ```\n", - " $sudo apt install xxxx\n", - " ```\n", - " などとして、様々なものを簡単にインストールすることが出来ます。\n", - "\n", - " ※PCの時刻設定がきちんと行われていないと、aptのupdateやupgradeに失敗します。\n", - "\n", - "* **手順2. Pythonのインストール**\n", - "\n", - " Ubuntuには初めからPython3系が含まれていますが、\n", - "\n", - " pythonの最新バージョンをpip込みでインストールしましょう。\n", - " ```\n", - " $sudo apt install python3-pip -y\n", - " ```\n", - " これでpython3.xとpython用のパッケージマネージャpipがインストールされます。\n", - "\n", - "* **手順3. Pythonの対話モードに入ってみよう**\n", - "\n", - " インストールが終わったら```python3```と打ち込んでEnterを押すと \n", - " Pythonの対話モードに入ります。対話モードの中で\n", - " ```\n", - " >print(\"Hello\")\n", - " ```\n", - " などと打ち込んで実行してみましょう。\n", - "\n", - " 打ちかけの作業を消したり、処理を中断する際はCtrl+Cを、 \n", - " 対話モードから抜けたければCtrl+Dを入力します \n", - " (書きかけのコードがあったり処理が実行されているときは先にCtrl+Cで中断してからCtrl+d)\n", - "\n", - "* **手順4. ライブラリのインストール**\n", - "\n", - " ライブラリ・モジュールをインストールしたければUbuntuターミナルから\n", - " ```\n", - " $pip3 install matplotlib\n", - " $pip3 install pandas\n", - " $pip3 install Selenium\n", - " ```\n", - " などを実行します。\n", - "\n", - " Google Colab環境では毎度\n", - " ```\n", - " !pip install japanize-matplotlib\n", - " ```\n", - " などとしましたが、一度インストールしておけば \n", - " コードの実行のたびにpipでインストール作業を行う必要はありません。 \n", - " (ライブラリのimportはセッションごとに必要です)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IGGzjhDdQPP9" - }, - "source": [ - "その他、Linuxコマンドの使い方等については[元のノートブック](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/main/notebooks/Python_misc_python_environment.ipynb)を参照" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "include_colab_link": true, - "name": "Python_misc_python_env_forWin11.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_misc_python_environment.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_misc_python_environment.ipynb deleted file mode 100644 index f072e61b..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_misc_python_environment.ipynb +++ /dev/null @@ -1,935 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "xygiFz3F15TQ" - }, - "source": [ - "# Pythonの環境構築\n", - "\n", - "**Windows11をお使いの方は[こちらのノートブック](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/main/notebooks/Python_misc_python_env_forWin11.ipynb)を参照してください**\n", - "\n", - "手元で作業がしたい、という方に向けて \n", - "ローカル環境にPythonを導入する方法をOSごとに紹介する。 \n", - "\n", - "難易度としてはLinux < Mac << (壁)<< Windowsといった感じ(私見).\n", - "\n", - ":::{note}\n", - "授業の受講者で環境構築を希望される方は、事前に相談することを強く推奨します。\n", - "とくにWindowsの場合、作成者(吉田)はWindowsユーザーではないので幾つかの情報が古い恐れがあります。\n", - ":::" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "sq5ewMLVBX_D" - }, - "outputs": [], - "source": [ - "#動画貼り付け用\n", - "from IPython.display import HTML\n", - "from base64 import b64encode" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "6Z6mR5y871Nj" - }, - "source": [ - "## Windowsの場合\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "EvTOzAC173gT" - }, - "source": [ - "いくつかの方針が考えられる。\n", - "\n", - "1. Pythonのインストーラを用いてインストールする \n", - " * メリット: Windows環境を汚さない, インストールが楽 \n", - " * デメリット: 他のプログラミング言語などへの拡張性が低い\n", - " \n", - "2. Linux環境を構築する(**推奨**)\n", - " * 2-1. Windows Subsystem for Linux(WSL)(**推奨**) \n", - " * メリット: Windows環境を汚さない, Linuxシェル環境・パッケージマネージャ(Pythonに限らず各種インストールが楽) \n", - " * デメリット: WSL特有の情報を調べる必要がある\n", - "\n", - " * 2-2. デュアルブート \n", - " * メリット: Windowsとは別に好きなLinuxディストリビューションを共存させられる \n", - " * デメリット: ディスク領域の分割などが必要\n", - " 慣れないとデータを吹っ飛ばす危険あり \n", - " (外部ストレージ等でのバックアップ必須です)\n", - "\n", - " * 2-3. その他 (Docker環境など)\n", - "\n", - " * このノートブックでは説明しない" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dSRDbGRtjOUq" - }, - "source": [ - "### 1.の方法" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 335 - }, - "id": "LlF9t8tRCl3-", - "outputId": "9cc59d5f-7f78-4094-d7aa-6fdf370b53bc" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(r'')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LxXDO1L1HSGZ" - }, - "source": [ - "以下のA)B)いずれかの方法でストアを開き \n", - "Python3.8かPython3.9を選び[入手]する。\n", - "\n", - "A) Microsoft Storeを開き、pythonと検索する。\n", - "\n", - "B)コマンドプロンプト※を開き、pythonと入力してEnter→Storeが開く。 \n", - "(※Win10の左下にある検索バーにcmdと打つと出てくる) \n", - "B)の方法だとstore上で古いpythonが開くかもしれないので \n", - "検索バーから再度pythonと検索しよう。\n", - "\n", - "**インストールしたpythonの使い方**\n", - "\n", - "コマンドプロンプト上で\n", - "```\n", - "python\n", - "```\n", - "と実行すると対話モードでpythonが開く。 \n", - "スタートメニューからpythonを起動しても同じ。\n", - "\n", - "\n", - "\n", - "```\n", - "print(\"Hello World\")\n", - "```\n", - "や、\n", - "```\n", - "for i in range(5):\n", - " print(i)\n", - "```\n", - "などを実行してみよう。\n", - "\n", - "Python(対話モード)を終了する際はCtrl+Z(もしくはCtrl+Cを実行後にCtrl+Z)→Enterを押すか、\n", - "```\n", - "exit()\n", - "```\n", - "と入力しEnterを押せば良い。\n", - "\n", - "**Python用のライブラリをインストールする方法**\n", - "\n", - "コマンドプロンプト上で\n", - "```\n", - "pip install matplotlib\n", - "pip install pandas\n", - "pip install Selenium\n", - "```\n", - "などとする。\n", - "\n", - "**ソースファイルの編集と実行**\n", - "\n", - "対話モードだと、長い処理を実現するのには向いていないので、 \n", - "作業をソースコードとしてファイルに書き出し、それを実行したくなる。 \n", - "実行したい場合は、コマンドプロンプト上で\n", - "```\n", - "python hogehoge.py\n", - "```\n", - "などとすると```hogehoge.py```というファイルに書いた処理が実行される。\n", - "\n", - "例: デスクトップにあるソースコードを実行する場合\n", - "\n", - "```\n", - "chdir Desktop \n", - "```\n", - "などして、適宜カレント(現在いる)ディレクトリの変更をするか\n", - "```\n", - "python Desktop/hogehoge.py\n", - "```\n", - "など実行するソースの(相対 or 絶対)パスの指定が必要になる。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "rAlPquBCSVud" - }, - "source": [ - "### 2-1. の方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "jutP3oJrDq-1" - }, - "source": [ - "Windowsの中にLinux(とくにUbuntu)を入れる方法\n", - "\n", - "[Windows11用の資料](https://colab.research.google.com/github/SotaYoshida/Lecture_DataScience/blob/2021/notebooks/Python_misc_python_env_forWin11.ipynb)も参考になります。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 335 - }, - "id": "9Es-IU7ZFaEq", - "outputId": "b5ef62a9-2efd-4acf-d974-bc71b06cd521" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(r'')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "iKAHNa6LSatq" - }, - "source": [ - "* **手順1.WSLの有効化**\n", - "\n", - " コントロールパネルから[プログラム]->[Windowsの機能の有効化または無効化] を選択し \n", - " 「Windows Subsystem for Linux」にチェックを入れて有効化する(再起動が必要)\n", - "\n", - "* **手順2. Ubuntuのインストール**\n", - "\n", - " Microsoft storeでUbuntuと検索し、1番目(単にUbuntuという名前のもの)か、 \n", - " あるいは20.04LTSをインストールする \n", - " \n", - " ※Windows OSのアップデートをしばらく行っていない場合、入手ボタンが押せない。 \n", - " 一般論として、OSのマイナーアップデートは都度行うようにしましょう。 \n", - " (メジャーアップデートは場合による...)\n", - "\n", - "* **手順3.Ubuntuの起動・初期設定**\n", - " \n", - " スタートメニューからUbuntuを起動する\n", - "\n", - " * Enter new UNIX username: Linuxで使うユーザー名を入力する\n", - " * new password: パスワードを設定する\n", - " * Retype new password: 確認のため再入力する\n", - "\n", - " これで、windows内にlinux環境が構築されます。\n", - "\n", - "* **手順4. aptのupdate/upgrade** \n", - "\n", - " Ubuntuターミナルに以下を入力し実行\n", - " ```\n", - " $sudo apt update\n", - " $sudo apt upgrade\n", - " ```\n", - "\n", - " 注:上の```$```は皆さんが入力すべきものではなく、 \n", - " Ubuntuターミナルにある$を指し \n", - " Pythonの対話モードなどで打ち込む場合と区別するための表記。\n", - "\n", - " sudoはコマンドの頭につけることで管理者権限で実行する、という命令を意味します。 \n", - " 実行時に、Ubuntu用に設定したパスワードが要求されます \n", - " 入力しても画面には表示されないので注意しながら打ち込んでEnterを押す。 \n", - " (間違っても再度入力を求めてくれますし、やめたければCtrl+C)\n", - " \n", - " aptはLinux(Debian系)のパッケージ管理システム \n", - " ※PCの時刻設定がきちんと行われていないと、aptのupdate/upgradeに失敗します。\n", - "\n", - " \n", - "\n", - "* **手順5. Pythonのインストール** \n", - "\n", - " Ubuntuには初めからPython3系が含まれていますが、 \n", - " pythonの最新バージョンをpip込みでインストールしましょう。\n", - "\n", - " ```\n", - " $sudo apt install python3-pip -y\n", - " ```\n", - " これでpython3.xの最新バージョンと、python用のパッケージマネージャpipがインストールされる\n", - "\n", - "* **手順6. ライブラリのインストール** \n", - "\n", - " ライブラリ・モジュールをインストールしたければ\n", - " ```\n", - " $pip3 install matplotlib\n", - " $pip3 install pandas\n", - " $pip3 install Selenium\n", - " ```\n", - " などを実行する。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "qpMLRtznBk-F" - }, - "source": [ - "### Windows環境のどこにLinuxのファイルが保存されるか" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "m14aIZMayDK3" - }, - "source": [ - "\n", - "```C:\\Users\\XXX\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\LocalState\\rootfs```\n", - "\n", - "のXXX部分(や場合によってはドライブ部分C:)を皆さんの環境に置き換えたものが、 \n", - "Windows内に構築されたLinuxのルートディレクトリ(最上位のディレクトリ)となります。 \n", - "Ubuntuを開くと、rootfs以下のhomeディレクトリにログインした状態でターミナルが開きます。\n", - "\n", - "パスが上記と微妙に異なる場合は、 \n", - "WindowsのユーザーフォルダからAppDataを開いて、 \n", - "検索バーでUbuntuと検索すれば、 \n", - "該当するディレクトリが見つけられるはずです。 \n", - "(隠しフォルダを非表示にしていると見えないかも)\n", - "\n", - "\n", - "Windows11の場合は適当なフォルダ(エクスプローラー)を開くと \n", - "左側にLinuxのペンギンマークがあるので、そこから参照できます。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "pf6D3K6nDMGz" - }, - "source": [ - "### Linux側からWindows側のファイルにアクセスする" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "1lD8ywRszRCM" - }, - "source": [ - "WindowsのディスクはLinuxからみた```/mnt/```以下にマウントされている。 \n", - "たとえば、```/mnt/c/Users/[ユーザー名]/Downloads```\n", - "で、Windows側のダウンロードフォルダのパスを指定できる。\n", - "\n", - "OneDriveによるバックアップに含まれているフォルダは、 \n", - "デフォルトパスから、OneDriveの下に変更されていることがあるので注意。\n", - "\n", - "(例: デスクトップはLinuxから見ると```/mnt/c/Users/[ユーザー名]/Desktop```のはずだが、 \n", - "デスクトップフォルダがOneDriveのバックアップ対象になっていると、 \n", - "```/mnt/c/Users/[ユーザー名]/OneDrive/Desktop```などと変更されてしまうので注意。)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2SNhn1kXHiRh" - }, - "source": [ - "### WSLのバージョン確認と更新\n", - "\n", - "Windows10を使っていてMS Storeから導入した方で \n", - "GUIを伴う処理を行いたい場合、WSLのバージョンを2にする必要がある。\n", - "\n", - "以下の手順でバージョンを確認し、必要なら更新しよう\n", - "\n", - "1. スタートメニューからWindows PowerShellを開く\n", - "\n", - "2. PowerShell上で下記のコマンドを入力し、バージョンを確認する\n", - " ```\n", - " > wsl --list --verbose\n", - " ```\n", - " 出力結果をみてUbuntuのVERSIONが1になっている場合 \n", - " 更新を行おう\n", - " \n", - "\n", - "3. 更新のための前準備として、https://aka.ms/wsl2kernel\n", - " にアクセスし \n", - " x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージをダウンロードする。 \n", - " ダウンロードが終わったらパッケージを起動して、案内にしたがって実行する\n", - "\n", - "4. PowerShellに戻り、\n", - " ```\n", - " wsl --set-version Ubuntu 2\n", - " ```\n", - " を実行しwslのバージョンを2に変更する(そこそこ時間がかかる)\n", - "\n", - " \n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LUePSAzjio_g" - }, - "source": [ - "### WSL環境でMatplotlibのshow()などを使う\n", - "\n", - "\n", - "WSL(今はUbuntu)では、そのままでplt.show()などの \n", - "ウィンドウを開くような操作が使えない。\n", - "\n", - "その場合はx11とtkinterを含むpython3をインストールしよう\n", - "```\n", - "$ sudo apt update\n", - "$ sudo apt upgrde\n", - "$ sudo apt install language-pack-ja\n", - "$ sudo apt install x11-apps\n", - "$ sudo apt install python3-tk\n", - "```\n", - "\n", - "\n", - "さらにXサーバ(以下ではVcXsrvを選びます)をインストールする:\n", - "\n", - "1. https://sourceforge.net/projects/vcxsrv/\n", - " からDownload\n", - "\n", - "2. ダウンロードしたものを実行\n", - "\n", - " (デスクトップショートカットは無くても良い)\n", - " \n", - "\n", - "\n", - "3. スタートメニューからXLaunchを実行\n", - "\n", - " \n", - "\n", - " 道なりに進んでAdditional parameters for VcXsrvの欄に-acを入力し進む\n", - "\n", - "4. \"Save Configuration\"を選択してショートカットを作成することで、次回以降同様の作業をしなくても良いようにできる\n", - "\n", - "\n", - "```\n", - "$xlogo\n", - "```\n", - "を実行するか、Pythonの対話環境の中で\n", - "```\n", - "import matplotlib.pyplot as plt\n", - "fig = plt.figure()\n", - "plt.show()\n", - "```\n", - "などとやってウィンドウが表示されればOK.\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "h2K-l3Iu0vHS" - }, - "source": [ - "### 2-2.の方法" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5th6Q2I90yXC" - }, - "source": [ - "バックアップや起動ディスク等の知識なくデュアルブート環境を構築しようとすると \n", - "最悪の場合すべてのデータを失いますので、こちらを選ぶ場合は予め相談してください。\n", - "\n", - "Linux環境を構築をすれば、あとはLinuxを起動し、以下のLinuxの場合の手順に従うだけ。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c17cT0gy2fwF" - }, - "source": [ - "## Macの場合" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 335 - }, - "id": "-0EaMODUBA0a", - "outputId": "d71eaf40-8fb9-447f-bca7-be2f2f9dec99" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": { - "tags": [] - }, - "output_type": "execute_result" - } - ], - "source": [ - "HTML(r'')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "HMrb9so42ihm" - }, - "source": [ - "python2.xやpython3.x (xは購入機種・時期によって違う)が元々入っている。 \n", - "\n", - "Launchpadにある[その他]から**ターミナル**を開き、 \n", - "```python```と入力し、タブキーを2回押すと該当するものが表示される。 \n", - "以下は一例:\n", - "```\n", - "python python2 python2.7-config python3-config python3.7-config python3.7m-config pythonw \n", - "python-config python2.7 python3 python3.7 python3.7m pythontex pythonw2.7 \n", - "```\n", - "\n", - "python3がある場合は、\n", - "```$python3```\n", - "と入力しエンターを押すと、pythonの対話モード(インタラクティブモードとも)が開く※。\n", - "\n", - "\n", - "※初回起動時はXcodeの導入が必要かもしれない \n", - "その場合は、ターミナルに\n", - "```\n", - "xcode-select --install\n", - "```\n", - "を打ち込みインストール作業を行う。 \n", - "Xcodeのサイズがでかいので安定したネットワーク下で実行すること.\n", - "\n", - "Python(対話モード)が起動できたら\n", - "```\n", - "print(\"Hello World\")\n", - "```\n", - "などと打って、エンターを押すと、文字列```\"Hello World\"```が表示されるので試してみよう。\n", - "\n", - "\n", - "\n", - "pythonの最新のバージョンやその他色々なものを導入したければ \n", - "今後のことも考えてMacにHomebrewと呼ばれるパッケージマネージャを導入しよう。\n", - "[参考](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)\n", - "\n", - "Homebrewが導入できたら、\n", - "\n", - "```\n", - "brew update\n", - "brew upgrade\n", - "brew upgrade python3\n", - "```\n", - "と順にターミナルで実行する(暫く掛かるかも). \n", - "\n", - "※python3がもともとない場合は、3つめのものを \n", - "```\n", - "brew install python3\n", - "```\n", - "などと置き換える。\n", - "\n", - "インストールに成功すれば、python用のパッケージマネージャ(pip)も使えるようになるはず。 \n", - "以後は\n", - "```\n", - "pip install matplotlib\n", - "pip install pandas\n", - "```\n", - "などとすると、python用のモジュールがインストールされ、 \n", - "pythonからいつでもインポートして使うことができる。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "JBnG_Zeapnc5" - }, - "source": [ - "MacにDocker環境を入れておけば、```apt```で色々揃うので、レガシーコードの動作確認等にも役に立つ。\n", - "\n", - "M1以降のApple制のCPUを搭載している場合、Pythonのパッケージ管理やDockerの導入などはやや難易度が上がる。\n", - "(※英語で調べれば必要な情報は出てくる)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OtjKhaH451we" - }, - "source": [ - "## Linuxの場合" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0rZweyH-53og" - }, - "source": [ - "Linuxを使っている人が、pythonのインストールができないとは思いにくいが... \n", - "\n", - "ターミナルから\n", - "```\n", - "$sudo apt update -y\n", - "$sudo apt upgrade -y\n", - "$sudo apt dist-upgrade -y\n", - "$sudo apt autoremove -y\n", - "```\n", - "などを実行しパッケージマネージャのアップデート等を行った後 \n", - "python3系がない場合は\n", - "```\n", - "$sudo apt install python3\n", - "```\n", - "ある場合は\n", - "```\n", - "$sudo apt upgrade python3\n", - "```\n", - "などを実行すればよい。\n", - "\n", - "pipがない場合、\n", - "```\n", - "$sudo apt install python3-pip\n", - "```\n", - "を実行する。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "N4vEf_Av9hjN" - }, - "source": [ - "# Linux/Unix ターミナルの操作" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "3uyugO029lsM" - }, - "source": [ - "Linux(WSL)やUnix(Mac)のCUI環境で必要な基本的な操作をまとめる\n", - "\n", - "* Ctrl+C: 入力内容の消去・実行中の作業の中断\n", - "* Ctrl+D: ターミナル(タブ)を閉じる (Pythonの対話モードから出るときにも使う)\n", - "* Tab: 入力を補完してくれる\n", - "* *(半角アスタリスク): ワイルドカード記号\n", - "\n", - "基本的なコマンド\n", - "* ```cd``` \"現在地\"を変更する\n", - "```\n", - "$cd ./Desktop \n", - "$cd ../ \n", - "$cd ~\n", - "$cd -\n", - "```\n", - "1つめはhomeディレクトリからデスクトップ(があれば)移動 \n", - "2つめは1つ上の階層に移動する \n", - "3つめはホームディレクトリに移動 \n", - "4つめは直前にいたディレクトリに移動\n", - "\n", - "* ```ls``` ファイルやディレクトリなどを表示する.\n", - "```\n", - "$ls \n", - "$ls ../*.txt\n", - "$ls Picutures/pic_*.png\n", - "``` \n", - "1つめは現在いるディレクトリ以下のファイル等を表示 \n", - "2つめは現在いるディレクトリの1つ上の階層にある.txt拡張子の全ファイルを表示 \n", - "3つめは現在ホームディレクトリにいると仮定して、その直下にあるPictures以下にあるpngファイルのうち、冒頭が```pic_```のものを全て表示\n", - "\n", - "* mv ファイル・ディレクトリの移動・リネーム\n", - "\n", - " ```\n", - " $mv aa.txt ~/Desktop\n", - " $mv bb.txt ../AdDS/cc.txt\n", - " ```\n", - " 1つめ: カレントディレクトリにあるaa.txtというファイルをデスクトップに移動 \n", - " 2つめ: bb.txtを一つ上の階層にあるAdDSというディレクトリに移動し、cc.txtとリネームする。 \n", - " \n", - " ワイルドカード*で複数ファイルを一気に移動させることもできる。ディレクトリの場合も同様。 \n", - "\n", - "\n", - "* mkdir ディレクトリを作る\n", - "``` \n", - "$mkdir Desktop/AdDS2021\n", - "```\n", - "\n", - "* rm ファイルやディレクトリを削除する\n", - "```\n", - "$rm ./Desktop/report1.txt\n", - "```\n", - "ディレクトリを消すときは-rオプションが必要\n", - "```\n", - "$rm -r ./Desktop/AdDS2021\n", - "```\n", - " **rmコマンドで削除したものはゴミ箱に入れられずに削除されるので注意** \n", - " 特にワイルドカードを使って全て削除してしまうとバックアップを取っていないと復元は困難だし、誰も責任をとってくれない。\n", - " (rmコマンドにエイリアスを貼って、ゴミ箱を経由する命令に置き換えたりrmtrash(や類似のもの)を使用するのがオススメ)\n", - "\n", - "* grep 検索\n", - "``` \n", - "$grep \"Hello World\" Desktop/AdDS2021/*py\n", - "```\n", - "\n", - "\n", - "**タブ補完**\n", - "\n", - "Linux/Unixターミナルでは、タブによる入力補完が使えますので \n", - "ぜひ多用してください。\n", - "\n", - "ちなみに今Desktopにいて、そこに \n", - "```AdDS2019, AdDS2020, AdDS2021```\n", - "というディレクトリがあり、 \n", - "最初のものに移動したいとします。\n", - "こんなとき、いちいち\n", - "```\n", - "$cd AdDS2019\n", - "```\n", - "と打つのは面倒だし、打ち間違えたりします。\n", - "```\n", - "$cd Ad\n", - "```\n", - "と打った時点でタブをポンポンと叩くと、 \n", - "Desktopに上記のフォルダ以外の\"Ad\"を含むディレクトリがなければ \n", - "```AdDS20```まで入力が補完され、 \n", - "該当する候補(上の全てのディレクトリ)がターミナル上で表示されます。 \n", - "その後1を打って再びタブを叩くと、該当するものは一つですので \n", - "(ambiguityがなくなった時点で)最後まで入力が補完されます。\n", - "\n", - "\n", - "ちなみにPython側からLinuxのコマンドを実行したければ \n", - "```\n", - "import os\n", - "os.system(\"ls *.txt\")\n", - "```\n", - "などとすれば良い。" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-59SkHdxcbdW" - }, - "source": [ - "## Linuxのホームディレクトリの変更\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Cr8gjvHLcf_0" - }, - "source": [ - "WSLを使用する際、Windows側から見るとLinux(Ubuntu)は```C:\\Users\\username\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\LocalState\\rootfs``` \n", - "といった階層に入っている。\n", - "\n", - "Ubuntuを起動した際に開くターミナルの\"位置\"(これをホームディレクトリと呼ぶ)は、 \n", - "上記のルートディレクトリ(rootfs)直下にあるhomeである。 \n", - "\n", - "たとえばWindows側のホームディレクトリ ```C:\\Users\\[username]```以下に \n", - "適当なディレクトリを作って、それをUbuntuのログイン(ホーム)ディレクトリとして設定することも出来る。\n", - "\n", - "※ 以下の操作では、emacsやvi(m)などのエディタに慣れていないうちは \n", - "システムファイルに余計な文字を書き込んでしまう危険性があるので \n", - "エディタの使い方を調べてから実行するなど、注意が必要です。 \n", - "(不安な場合はZoomで画面を共有しながら一緒にやりましょう)\n", - "\n", - "ホームディレクトリの変更方法は、 \n", - "1. Ubuntuターミナルから、管理者権限で```/etc/passwd```を開く \n", - "たとえば、emacsが入っていれば\n", - "```\n", - "$sudo emacs /etc/passwd\n", - "```\n", - "なければ\n", - "```\n", - "$sudo vim /etc/passwd\n", - "```\n", - "でファイルを開きます。\n", - "\n", - "\n", - "2. どこかに\n", - "```\n", - "Ubuntuユーザ名:x:1000:1000:\"\",,,:/home/ユーザ名:/bin/bash\n", - "```\n", - "といった欄があるので```/home/ユーザー名```部分を、 \n", - "Windows側に作成しておいた新しくLinuxのホームディレクトリとしたいディレクトリの \n", - "パスに置き換えて、passwdを上書き保存し、閉じる。\n", - "\n", - "* Emacsの場合 編集は簡単. Ctrl+X -> Ctrl +Sを押して上書き保存. Ctrl+X->Ctrl+Cで閉じる.\n", - "* vimの場合 iを押すとインサートモードに入り編集可能に. 編集モードから抜けるのはEsc. ```:wq```で保存して終了\n", - "\n", - "3. Ubuntuを再起動し、エラー等が表示されず、 \n", - "```pwd```コマンドで現在地を確認して設定したディレクトリになっているか確認しましょう。\n", - "\n", - "4. もともとのホームディレクトリにあった```.bashrc```(エイリアスなどの情報を書くファイル)を\n", - "新しいホームディレクトリに移動させれば完了です。\n", - "```\n", - "$cp -r /home/[user name]/.* ~/\n", - "```\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 隠しファイル/隠しフォルダ(dot files)について\n", - "\n", - "Linuxでは、ファイル名の先頭に```.```がついているものは隠しファイルと呼ばれ、通常の`ls`コマンドなどの表示対象外となる。\n", - "隠しファイルを表示するには、`ls`コマンドに`-a`オプションをつければよい。\n", - "\n", - "とくに、ホームディレクトリには、特定のアプリケーションの設定ファイルなどが隠しファイルとして保存されていることが多く、\n", - "数値計算ライブラリの開発や使用、ソースコードの編集・実行などの際には、隠しファイルを扱うこともある。\n", - "\n", - "これら隠しファイルや隠しフォルダは、dot filesと呼ばれることもあり、\n", - "新しい端末を購入したときの設定ファイルの移行などにも使われる。\n", - "\n", - "特に複数台の端末を使用している人などは、GitHubなどのリポジトリに自身のdot filesをアップロードしておき、\n", - "新しい端末を購入した際には、そのリポジトリからdot filesをダウンロードして使用することで、\n", - "移行をスムーズにしているようである(私は割とイチから設定するのが好きだったりします)。\n", - "\n", - "\n", - "以下では、代表的なものを少し紹介しておく:\n", - "\n", - "**.bashrc** : bashの設定ファイル \n", - "\n", - "エイリアスの設定などを書くことができる. エイリアスとは、例えばコマンドでpythonを使う際、いちいち`python`とか`python3.9`などを\n", - "指定しなくてもお目当てのpython環境を使用できるようにするためのもの. 例えば、.bashrcに\n", - "```\n", - "alias py=python3.9\n", - "```\n", - "などと書いておけば、`py`と打つだけでpython3.9が起動/使用できるようになる.\n", - "\n", - "注意としては\n", - "1. 使用しているシェルによって、設定ファイルの名前が異なることがある. 例えば、bashの場合は`.bashrc`だが、zshの場合は`.zshrc`となる.\n", - "2. 設定ファイルを変更した場合は、`source`コマンドを実行することで、変更を反映させる必要がある. 例えば、`.bashrc`を変更した場合は、\n", - "```\n", - "$source ~/.bashrc\n", - "```\n", - "とするか、ターミナルを再起動する必要がある.\n", - "\n", - "**エディタの設定ファイル**\n", - "\n", - "CUI/GUIを問わず、エディタの設定ファイルもホームディレクトリ直下の隠しディレクトリとして保存されることが多い.\n", - "\n", - "例えば私の環境だと、`~/.emacs`,`~/.vim`,`~/.vscode`,`~/.atom`など、今は使っていないものも含めて、\n", - "エディタの設定ファイルが保存されている。\n", - "\n", - "**sshの設定ファイル**\n", - "\n", - "SSHとは、スーパーサイエンスハイスクール...ではなく、Secure Shellの略で、ネットワーク上で安全にリモートコンピュータにログインしたり、\n", - "ファイルを転送したりするためのプロトコルである。\n", - "\n", - "例えば研究室内に置かれたワークステーションやスパコンなど別の環境にログインして重い計算を回す、といったときには基本的にはssh公開鍵認証を用いてローカル環境からリモート環境にログインすることになるが、\n", - "その際に使用する鍵や、リモート環境へのログインに必要な情報などが、ホームディレクトリ直下の隠しディレクトリ`~/.ssh`に保存される。\n", - "\n", - "例えば、(sshを使ったことがある場合は)`~/.ssh/config`に、接続先のホスト名やポート番号などが記載されたり、\n", - "逆にリモート側では、`~/.ssh/authorized_keys`に、接続を許可する公開鍵が記載されていたりする。\n", - "\n", - "なお、公開鍵認証とは、リモート環境にログインする際に、公開鍵と秘密鍵のペアを用いて認証を行う方式で、\n", - "秘密鍵はローカル環境に、公開鍵はリモート環境に置いておくことで、安全にログインを行うことができるものである。\n", - "秘密鍵の取り扱いに注意が必要であることは言うまでもない。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [ - "dSRDbGRtjOUq", - "rAlPquBCSVud", - "h2K-l3Iu0vHS", - "c17cT0gy2fwF", - "OtjKhaH451we", - "N4vEf_Av9hjN" - ], - "include_colab_link": true, - "name": "Python_misc_python_environment.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3.9.13 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - }, - "vscode": { - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - } - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/Python_practice.ipynb b/Lecture_DataScience_dotfiles/notebooks/Python_practice.ipynb deleted file mode 100644 index 354efa12..00000000 --- a/Lecture_DataScience_dotfiles/notebooks/Python_practice.ipynb +++ /dev/null @@ -1,423 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "view-in-github" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 練習帳\n", - "\n", - "このノートブックでは、1-8章で抑えておくべき基本事項を確認するための練習問題を与える。\n", - "\n", - "CLで収集する授業のリアクションシートには、\n", - "* 練習帳のURL\n", - "* 質問: 授業や資料でわからなかったこと (なければ所感のみでOK)\n", - "* 所感: その回で理解した/できるようになったことを完結にまとめる\n", - "* 適当な雑談: 最近ハマっていること\n", - "\n", - "を設定された〆切までに提出すること。これをもって出席とみなす。\n", - "なお、(この授業に限らず)、2/3以上の出席がない場合、履修規程に従い自動的に不可となるため、必ず提出すること。\n", - "\n", - "この練習帳の目的は、皆さんが自分自身の理解・疑問点を確認するためであって\n", - "**練習帳で書いているコードや記述が正しいかどうかは一切授業の評点には関係がない**。\n", - "\n", - "したがって友人に見せてもらったり相談をして体裁を整える必要はまったく無い。\n", - "とにかく、自分の理解を確認するためにコードをどんどん書いてどんどん失敗しよう。\n", - "\n", - "質問やその返答を円滑にするための連絡帳のようなものだと思ってもらえれば良い。\n", - "\n", - "\n", - "また、教員に対する質問の見落としを防ぐため、リアクションシート(CL)の方で\n", - ">練習帳に詳細な質問とコードを書きました\n", - "\n", - "などと教えてもらえるとスムーズな対応が可能になります。\n", - "リアクションシートの提出や質問の際は、必ず練習帳の共有リンクを添えてください。\n", - "\n", - "\n", - "慣れないうちは、エラーの原因がわからない場合は、とにかく教員に聞く。\n", - "慣れてくると、自分でエラーメッセージをWebで検索したり、[よくあるエラー集](https://sotayoshida.github.io/Lecture_DataScience/notebooks/Python_misc_Error.html)などを見て、解決ができるようになる。\n", - "Chat GPTなどに尋ねてみるのも、**疑問や問題を言語化し要約する訓練**になるので良いかもしれない。\n", - "それでもわからない場合は、エラーメッセージを添えて教員に尋ねよう。\n", - "\n", - "\n", - "## 練習帳のノートブックの共有の仕方\n", - "\n", - "以下の手順にならってください。1-3は1度やれば再び行う必要はありません。\n", - "\n", - "1. まずノートブックのコピーを作成し、ファイル名を適当に編集する: 例: 練習帳_氏名_123456X.ipynb (123456Xは学籍番号のつもり)\n", - "2. 右上の共有ボタンを押し、「制限付き」を「リンクを知っている全員」に変更\n", - " (共有ボタンが見えない場合、編集権限がないつまり「ノートブックのコピーをつくる」というお約束を忘れていることを意味する)\n", - "3. 「リンクを知っている全員」の右にある「閲覧者」を「編集者」に変更する\n", - "4. 最後に、ブックマークするか、リンクをコピーしどこかに保存しておこう(2回目以降はCLで一度提出した過去のURLをコピーするのが手っ取り早い)\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "元の問題文さえ残っていれば、レイアウトは好きに改変してOK.\n", - "コードセル・テキストセルともに自由に追加して構わない。\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第1章:Pythonの基礎\n", - "\n", - "練習問題: \n", - "1. 身長と体重に相当する変数を適当に定義し、BMI(体重kg ÷ 身長mの二乗)を計算した上でprintせよ (自身の身長体重を用いる必要はない)\n", - "2. 上で計算したBMIに対応する変数とstr関数を用いて文字列を連結し、\"AさんのBMIは22.0です\"などと表示させよ。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**1章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 変数の定義や四則演算の方法が分かる\n", - "* `print`や`str`などの基本的な関数の使い方がわかる\n", - "* プログラムの実行順序と、セルを跨いで実行する際の注意点がわかる\n", - "* 基本的な変数の型とその調べ方が分かる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第2章:Pythonの基礎2\n", - "\n", - "練習問題: \n", - "1. 要素に身長(単位:cm)と体重(単位:kg)を持つ適当なリストを定義し、5人のデータ(リスト)を要素にもつ**入れ子構造のリスト**を作成せよ。ただし3人目の身長と体重は必ず175,60とすること(それ以外は適当で構わない)。\n", - "2. 上のリストから、5人の平均身長と平均体重をそれぞれ計算するコードを作成せよ。算術平均を取る際は、数字の5などを使うのではなく、リストの長さを使ったり、汎用性の高いコードにすること。\n", - "3. 上のリストについて、`for`文を用いて全員のBMI(体重kg ÷ 身長mの二乗)を計算し、一人ずつBMIを表示させよ。(単位に注意)\n", - "4. `for`文のブロック内で`if`と`break`を用いて、「BMIが20.0以下なら、値を表示したあとにループを終了する」という処理を実現せよ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**2章の振り返り**\n", - "\n", - "**とくに2章は重要な概念が盛りだくさんなので、必ず練習したり、疑問があれば質問すること!**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* リストの定義や要素へのアクセスの方法(インデックスやスライス)が分かる\n", - "* リストに要素を加える方法が分かる\n", - "* `if`文による条件分岐が分かる\n", - "* `for`や`while`によるループ処理がわかる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第3章:関数\n", - "\n", - "練習問題:\n", - "1. 要素に実数値を持つ適当なリストを2つ以上定義し、任意の長さの実数値のリストについて平均と分散を返り値とする自作関数を作成せよ。\n", - "2. 1.で作った自作関数を1つの変数で受け取り(例`ret_value=myfunction(mylist)`)その返り値の型を調べよ。\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**3章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 自作関数の定義の仕方が分かる\n", - "* 引数(インプット)や返り値(アウトプット)の扱い方が分かる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第4章:ライブラリ\n", - "\n", - "練習問題:\n", - "1. 授業で扱った`math`,`numpy`の何れかを使って、任意の半径`r`について円の面積と球の体積を計算する自作関数を作成せよ。\n", - "2. `matplotlib`を用いて、好きな図を作成させノートブック上に表示させよ。その際、`matplotlib`(とくに`matplotlib.pyplot`)の使い方を調べて\n", - " - 色をカラーコードで指定する\n", - " - グラフを構成するオブジェクトの透過度を設定する\n", - "\n", - " など、授業で指定していないオプションを試してみよう。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**4章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* ライブラリのインストールやインポートの仕方が分かる\n", - "* matplotlibの簡単な使い方が分かる\n", - "* Webの情報や公式ドキュメントを読んだりして、使い方を調べることができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第5章:確率と擬似乱数\n", - "\n", - "練習問題:\n", - "1. 0からn-1(nは適当な整数)までのn個の整数から、重複なくランダムにn個選ぶ(つまり0からn-1の無作為な並べかえをする)コードを作成せよ。(`numpy.random.choice`を使うとよい)\n", - "2. 1.を用いて、任意の文字列のリスト(例: 名前のリスト `[\"Aさん\",\"Bさん\",...]`)をランダムに並び替えて出力するコードを作成せよ。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**5章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* `random`や`numpy.random`モジュールを用いて、簡単な確率的事象を表現する方法がわかる\n", - "* 適当な区間内でランダムな整数を生成することができる\n", - "* 適当な実数の乱数(一様乱数・正規乱数)を生成することができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第6章:相関・回帰分析\n", - "\n", - "練習問題:\n", - "1. 以下のデータ`x`(宇都宮市の月別平均気温)と`y`(アイスクリーム・シャーベットの消費量)のうち、8月のデータ(気温か消費量のいずれか)をランダムな値に変更し相関係数がどうなるか5通りほどで示せ。なお、値を変更する際は手でリストを書き換えるのではなく、リストの要素を書き換えるコードにすること。\n", - "2. 疑似相関について調べ例をあげよ。(できれば自身の興味に近いものや日本の事例などを調べてみること)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載(追記)\n", - "x= [3.1, 4.3, 6.6, 13.2, 19.1, 20.9, 26.4, 25.1, 21.9, 15.7, 9.6, 3.8]\n", - "y= [568, 572, 804, 833, 930, 965, 1213, 1120, 835, 540, 451, 502]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**6章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 相関分析の意味を、友人等に説明できる\n", - "* 長さの等しい2つのリストについて、相関係数を計算することができる\n", - "* 簡単な場合について自作関数とライブラリの出力が同じであることを確認することができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第7章:最適化問題\n", - "\n", - "練習問題:\n", - "1. 以下に示したデータ(`x`:年, `y`:男子100m走の世界記録(秒))について、6章で出てきたpolyfitを使って1-5次式までの多項式でフィッティングしてみよう。\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載(追記)\n", - "y = [ 10.06, 10.03,10.02, 9.95,9.93, 9.92,9.9, 9.86,9.85, 9.84, 9.79, 9.78, 9.77, 9.74,9.72,9.69,9.58 ]\n", - "x = [1964, 1968,1968,1968,1983,1988,1991,1991,1994,1996,1999,2002,2005,2007,2008,2008,2009 ]\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**7章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* 多項式回帰の意味を、友人等に説明できる \n", - "* ライブラリを用いて多項式回帰(係数の最適化)を行うことができる\n", - "* 係数の最適化の結果から、グラフの描画点を生成し、可視化することができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 第8章:ファイル操作\n", - "\n", - "練習問題:\n", - "1. Google Colaboratoryから授業で使ったノートを参照し、Google Driveをマウントしtest.txtファイルの中身を表示せよ。その際、Unix/Linuxコマンドである`cat`を用いれば良い。\n", - "2. matplotlibを用いて適当なグラフを描きGoogleドライブに保存せよ。\n", - "\n", - "この問題はDriveのマウント・パスの指定などの一連の作業が理解できているかを確認するものなので、エラーが出た場合はそのログや自身が試した工程について、スクリーンショットなども活用しながらできるだけ詳細に報告すること。特に問題なく作業ができた場合は、2の図を送るなどはしなくて構わない。 \n", - "\n", - "また、プライベートなGoogleアカウントを使用している(※授業では非推奨)場合、相談の際にはプログラムの出力結果やスクリーンショットなどに他人に見られて困るものが映っていないか配慮すること。" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# コードを以下に記載(追記)\n", - "#1.のコードのヒント\n", - "!cat path_to_yourfile/test.text\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**8章の振り返り**\n", - "\n", - "これらの点をチェックし、必要ならコードセルを追加して練習しよう:\n", - "\n", - "* Google ColaboratoryでGoogle Driveをマウントすることができる\n", - "* Google Drive上にあるcsvなどのファイルを読み込むことができる\n", - "* 読み込んだファイルの内容から、必要なデータを取り出してprintしたり、配列を作り、それをグラフとして描いたりすることができる" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 最終課題\n", - "\n", - "授業の後半で取り組む最終課題については、自由な発想で課題を設計し、取り組んでもらって構わない。\n", - "条件としては、以下のようなものが挙げられる:\n", - "\n", - "- 1人(ないし2名ペア)で取り組むこと\n", - "- ペアの場合は、それぞれの寄与を明確にし、一人の寄与が十分に認められること\n", - "- 都度、教員に相談しながら、計画的に進めること\n", - "- 事前に教員に確認すべき課題の例\n", - " - 個人情報(例えば自営業をしている実家のデータを分析するなど)を含む場合は、それをマスクする処理が可能であること\n", - " - 特定のサービス・ソフトウェア・アプリに関する分析(ゲームのデータなどは著作権等の理由から多くの場合不可)\n", - " - アカウントの作成やライセンス等の購入が必要な外部サービスを使用する課題でないこと(≒教員が特段の手続きを経ずとも、課題作成者のサポートや採点・評価が可能なものであること)\n", - "\n", - "その他、教員が不適切と判断した課題については、課題の変更を求めることがある。\n", - "\n", - "何もないところから課題を設計するのは難しい。以下の例を参考に、計画をたてよう:\n", - "\n", - "**公開データを元に、栃木県のデータを可視化・分析したい**とする。\n", - "その際に必要な工程や、分析を行うために学修すべき事項を列挙しながら、課題を設計していく。\n", - "\n", - "- データの収集: 興味のあるデータがオープンデータとして公開されているかを調べる。\n", - " - 例1: [e-Stat](https://www.e-stat.go.jp/)\n", - " - 例2: [オープンデータ・ベリーとちぎ](https://odcs.bodik.jp/090000/)\n", - "- 地図を描き、市町村ごとに特定のデータをカラーマップとして表示する事を考える。\n", - " - そのためには、市町村の境界線のデータが必要になる。例えば、[国土数値情報ダウンロードサービス](https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v2_3.html)からデータを収集するとする。\n", - " - 得られたデータを地図上で可視化するために、使えそうなライブラリを探す。例えば、[geopandas](https://geopandas.org/)や[folium](https://python-visualization.github.io/folium/)が使えそうである。\n", - " - 簡単なデータから初めて、ライブラリの使い方を学びながら、地図を描くことを目指す。\n", - " - その他、地図上に関連する(例えば...特定の商業施設やLRTの停留所など)ピンを打ってみる\n", - "- 実際のデータを元に、分析を行う\n", - "- 問題点が生じた場合、その原因を特定し、解決するために必要な知識を学ぶ。(以下試行錯誤...)\n", - "\n", - "といった具合だ。あくまで、例であるので、自身の興味に合わせて課題を設計していくこと。\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "colab": { - "include_colab_link": true, - "name": "Python_practice.ipynb", - "provenance": [] - }, - "interpreter": { - "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" - }, - "kernelspec": { - "display_name": "Python 3.9.10 64-bit", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.9.13" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/Lecture_DataScience_dotfiles/notebooks/image.png b/Lecture_DataScience_dotfiles/notebooks/image.png deleted file mode 100644 index 441ff6e4..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/image.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/download_repozip.png b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/download_repozip.png deleted file mode 100644 index d19afc93..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/download_repozip.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_0_0.png b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_0_0.png deleted file mode 100644 index f7dbfb53..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_0_0.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_0_1.png b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_0_1.png deleted file mode 100644 index b2121c5c..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_0_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_0_2.png b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_0_2.png deleted file mode 100644 index a8696758..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_0_2.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_1.jpeg b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_1.jpeg deleted file mode 100644 index b7d38985..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_1.jpeg and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_2.jpeg b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_2.jpeg deleted file mode 100644 index 72274b64..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_2.jpeg and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_3.jpeg b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_3.jpeg deleted file mode 100644 index 530edb8d..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_3.jpeg and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_4.jpeg b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_4.jpeg deleted file mode 100644 index 1ccec7f6..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_copilot_4.jpeg and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_1.png b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_1.png deleted file mode 100644 index 128d3ab7..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_1.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_2.png b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_2.png deleted file mode 100644 index aada38ad..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_2.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_3.png b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_3.png deleted file mode 100644 index fc1ec7d1..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_3.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_4.png b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_4.png deleted file mode 100644 index 54ad51f7..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_4.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_5.png b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_5.png deleted file mode 100644 index c9012abc..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/pic_vscode_5.png and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/u_ta.jpeg b/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/u_ta.jpeg deleted file mode 100644 index 6b968be6..00000000 Binary files a/Lecture_DataScience_dotfiles/notebooks/pic_for_notebook/u_ta.jpeg and /dev/null differ diff --git a/Lecture_DataScience_dotfiles/notebooks/sample.csv b/Lecture_DataScience_dotfiles/notebooks/sample.csv deleted file mode 100644 index e69de29b..00000000 diff --git a/Lecture_DataScience_dotfiles/references.bib b/Lecture_DataScience_dotfiles/references.bib deleted file mode 100644 index 783ec6aa..00000000 --- a/Lecture_DataScience_dotfiles/references.bib +++ /dev/null @@ -1,56 +0,0 @@ ---- ---- - -@inproceedings{holdgraf_evidence_2014, - address = {Brisbane, Australia, Australia}, - title = {Evidence for {Predictive} {Coding} in {Human} {Auditory} {Cortex}}, - booktitle = {International {Conference} on {Cognitive} {Neuroscience}}, - publisher = {Frontiers in Neuroscience}, - author = {Holdgraf, Christopher Ramsay and de Heer, Wendy and Pasley, Brian N. and Knight, Robert T.}, - year = {2014} -} - -@article{holdgraf_rapid_2016, - title = {Rapid tuning shifts in human auditory cortex enhance speech intelligibility}, - volume = {7}, - issn = {2041-1723}, - url = {http://www.nature.com/doifinder/10.1038/ncomms13654}, - doi = {10.1038/ncomms13654}, - number = {May}, - journal = {Nature Communications}, - author = {Holdgraf, Christopher Ramsay and de Heer, Wendy and Pasley, Brian N. and Rieger, Jochem W. and Crone, Nathan and Lin, Jack J. and Knight, Robert T. and Theunissen, Frédéric E.}, - year = {2016}, - pages = {13654}, - file = {Holdgraf et al. - 2016 - Rapid tuning shifts in human auditory cortex enhance speech intelligibility.pdf:C\:\\Users\\chold\\Zotero\\storage\\MDQP3JWE\\Holdgraf et al. - 2016 - Rapid tuning shifts in human auditory cortex enhance speech intelligibility.pdf:application/pdf} -} - -@inproceedings{holdgraf_portable_2017, - title = {Portable learning environments for hands-on computational instruction using container-and cloud-based technology to teach data science}, - volume = {Part F1287}, - isbn = {978-1-4503-5272-7}, - doi = {10.1145/3093338.3093370}, - abstract = {© 2017 ACM. There is an increasing interest in learning outside of the traditional classroom setting. This is especially true for topics covering computational tools and data science, as both are challenging to incorporate in the standard curriculum. These atypical learning environments offer new opportunities for teaching, particularly when it comes to combining conceptual knowledge with hands-on experience/expertise with methods and skills. Advances in cloud computing and containerized environments provide an attractive opportunity to improve the effciency and ease with which students can learn. This manuscript details recent advances towards using commonly-Available cloud computing services and advanced cyberinfrastructure support for improving the learning experience in bootcamp-style events. We cover the benets (and challenges) of using a server hosted remotely instead of relying on student laptops, discuss the technology that was used in order to make this possible, and give suggestions for how others could implement and improve upon this model for pedagogy and reproducibility.}, - booktitle = {{ACM} {International} {Conference} {Proceeding} {Series}}, - author = {Holdgraf, Christopher Ramsay and Culich, A. and Rokem, A. and Deniz, F. and Alegro, M. and Ushizima, D.}, - year = {2017}, - keywords = {Teaching, Bootcamps, Cloud computing, Data science, Docker, Pedagogy} -} - -@article{holdgraf_encoding_2017, - title = {Encoding and decoding models in cognitive electrophysiology}, - volume = {11}, - issn = {16625137}, - doi = {10.3389/fnsys.2017.00061}, - abstract = {© 2017 Holdgraf, Rieger, Micheli, Martin, Knight and Theunissen. Cognitive neuroscience has seen rapid growth in the size and complexity of data recorded from the human brain as well as in the computational tools available to analyze this data. This data explosion has resulted in an increased use of multivariate, model-based methods for asking neuroscience questions, allowing scientists to investigate multiple hypotheses with a single dataset, to use complex, time-varying stimuli, and to study the human brain under more naturalistic conditions. These tools come in the form of “Encoding” models, in which stimulus features are used to model brain activity, and “Decoding” models, in which neural features are used to generated a stimulus output. Here we review the current state of encoding and decoding models in cognitive electrophysiology and provide a practical guide toward conducting experiments and analyses in this emerging field. Our examples focus on using linear models in the study of human language and audition. We show how to calculate auditory receptive fields from natural sounds as well as how to decode neural recordings to predict speech. The paper aims to be a useful tutorial to these approaches, and a practical introduction to using machine learning and applied statistics to build models of neural activity. The data analytic approaches we discuss may also be applied to other sensory modalities, motor systems, and cognitive systems, and we cover some examples in these areas. In addition, a collection of Jupyter notebooks is publicly available as a complement to the material covered in this paper, providing code examples and tutorials for predictive modeling in python. The aimis to provide a practical understanding of predictivemodeling of human brain data and to propose best-practices in conducting these analyses.}, - journal = {Frontiers in Systems Neuroscience}, - author = {Holdgraf, Christopher Ramsay and Rieger, J.W. and Micheli, C. and Martin, S. and Knight, R.T. and Theunissen, F.E.}, - year = {2017}, - keywords = {Decoding models, Encoding models, Electrocorticography (ECoG), Electrophysiology/evoked potentials, Machine learning applied to neuroscience, Natural stimuli, Predictive modeling, Tutorials} -} - -@book{ruby, - title = {The Ruby Programming Language}, - author = {Flanagan, David and Matsumoto, Yukihiro}, - year = {2008}, - publisher = {O'Reilly Media} -}