diff --git a/lecture-material/15-Regex/15-regex.ipynb b/lecture-material/15-Regex/15-regex.ipynb index 5a7a17caa91fd7cf97ac2ae0707c2f0f6ae6eccf..d9cf53c6be5c1b477366fd6fe60ac6867de79127 100644 --- a/lecture-material/15-Regex/15-regex.ipynb +++ b/lecture-material/15-Regex/15-regex.ipynb @@ -69,7 +69,7 @@ } ], "source": [ - "msg = \"In CS 320,\\tthere are 26 lectures, 13 labs, 3 exams, 7 projects, and 1000 things to learn. CS 320 is awesome!\"\n", + "msg = \"In CS 320,\\tthere are 26 lectures, 13 labs, 3 exams, 8 projects, and 1000 things to learn. CS 320 is awesome!\"\n", "\n", "# does the string contain \"320\"?\n", "has_320 = msg.find(\"320\") >= 0\n", @@ -159,8 +159,8 @@ "123-4567\n", "1-123-4567 (not a phone number)\n", "\n", - "In CS 320, there are 13 labs, 7 projects, 26 lectures, and 1000 things to learn. CS 320 is awesome!\n", - "In CS 320, there are 13 labs, 7 projects,\n", + "In CS 320, there are 13 labs, 8 projects, 26 lectures, and 1000 things to learn. CS 320 is awesome!\n", + "In CS 320, there are 13 labs, 8 projects,\n", "26 lectures, and 1000 things to learn. CS 320 is awesome!\n" ] } @@ -187,10 +187,10 @@ "\"\"\"\n", "print(s2)\n", "\n", - "s3 = \"In CS 320, there are 13 labs, 7 projects, 26 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", + "s3 = \"In CS 320, there are 13 labs, 8 projects, 26 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", "print(s3)\n", "\n", - "s4 = \"\"\"In CS 320, there are 13 labs, 7 projects,\n", + "s4 = \"\"\"In CS 320, there are 13 labs, 8 projects,\n", "26 lectures, and 1000 things to learn. CS 320 is awesome!\"\"\"\n", "print(s4)" ] @@ -1211,7 +1211,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "In CS 320,\tthere are 26 lectures, 13 labs, 3 exams, 7 projects, and 1000 things to learn. CS 320 is awesome!\n" + "In CS 320,\tthere are 26 lectures, 13 labs, 3 exams, 8 projects, and 1000 things to learn. CS 320 is awesome!\n" ] } ], @@ -1236,7 +1236,7 @@ { "data": { "text/plain": [ - "['320', '26', '13', '3', '7', '1000', '320']" + "['320', '26', '13', '3', '8', '1000', '320']" ] }, "execution_count": 46, @@ -1272,7 +1272,7 @@ "[('26', 'lectures'),\n", " ('13', 'labs'),\n", " ('3', 'exams'),\n", - " ('7', 'projects'),\n", + " ('8', 'projects'),\n", " ('1000', 'things'),\n", " ('320', 'is')]" ] @@ -1308,7 +1308,7 @@ "[('26 lectures', '26', 'lectures'),\n", " ('13 labs', '13', 'labs'),\n", " ('3 exams', '3', 'exams'),\n", - " ('7 projects', '7', 'projects'),\n", + " ('8 projects', '8', 'projects'),\n", " ('1000 things', '1000', 'things'),\n", " ('320 is', '320', 'is')]" ] @@ -1369,7 +1369,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "In CS 320,\tthere are 26 lectures, 13 labs, 3 exams, 7 projects, and 1000 things to learn. CS 320 is awesome!\n" + "In CS 320,\tthere are 26 lectures, 13 labs, 3 exams, 8 projects, and 1000 things to learn. CS 320 is awesome!\n" ] } ], @@ -1386,7 +1386,7 @@ { "data": { "text/plain": [ - "'In CS 320, there are 26 lectures, 13 labs, 3 exams, 7 projects, and 1000 things to learn. CS 320 is awesome!'" + "'In CS 320, there are 26 lectures, 13 labs, 3 exams, 8 projects, and 1000 things to learn. CS 320 is awesome!'" ] }, "execution_count": 51, @@ -1419,7 +1419,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "In CS <b>320</b>,\tthere are <b>26</b> lectures, <b>13</b> labs, <b>3</b> exams, <b>7</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!\n" + "In CS <b>320</b>,\tthere are <b>26</b> lectures, <b>13</b> labs, <b>3</b> exams, <b>8</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!\n" ] } ], @@ -1432,7 +1432,7 @@ "id": "35a15a41", "metadata": {}, "source": [ - "In CS <b>320</b>, there are <b>26</b> lectures, <b>13</b> labs, <b>3</b> exams, <b>7</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" + "In CS <b>320</b>, there are <b>26</b> lectures, <b>13</b> labs, <b>3</b> exams, <b>8</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" ] }, { @@ -1538,107 +1538,149 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33mcommit f2d263ddc2b5f218a82e6613b90385aff7884ce7\u001b[m\u001b[33m (\u001b[m\u001b[1;36mHEAD -> \u001b[m\u001b[1;32mmain\u001b[m\u001b[33m, \u001b[m\u001b[1;31morigin/main\u001b[m\u001b[33m, \u001b[m\u001b[1;31morigin/HEAD\u001b[m\u001b[33m)\u001b[m\n", + "\u001b[33mcommit 79be06c593f1efd5cd84f427f41c7014b501e637\u001b[m\u001b[33m (\u001b[m\u001b[1;36mHEAD -> \u001b[m\u001b[1;32mmain\u001b[m\u001b[33m, \u001b[m\u001b[1;31morigin/main\u001b[m\u001b[33m, \u001b[m\u001b[1;31morigin/HEAD\u001b[m\u001b[33m)\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Thu Jun 27 05:01:12 2024 -0500\n", + "Date: Sun Oct 27 12:32:39 2024 -0500\n", "\n", - " lec7: minor clarifications added\n", + " lec12 updated\n", "\n", - "\u001b[33mcommit 5b80a774d17cb159b867ad0cf8bcc35312145283\u001b[m\n", + "\u001b[33mcommit 2c3c2911b15ac38359f364df8154052601322e20\u001b[m\n", + "Author: ABIGAIL L HUGHES <alhughes3@wisc.edu>\n", + "Date: Thu Oct 24 12:30:43 2024 -0500\n", + "\n", + " Add new directory\n", + "\n", + "\u001b[33mcommit 728591c5517026d4de4f39b265838de8e3f8b418\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Sun Oct 20 06:06:39 2024 -0500\n", + "\n", + " lec11 modified\n", + "\n", + "\u001b[33mcommit 80ad436703595f07c696c4182cdd7d2639371fb3\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Sun Oct 20 03:16:03 2024 -0500\n", + "\n", + " lec11 modified\n", + "\n", + "\u001b[33mcommit 2c567bd915f2f3c4b64b4a83c48ccd0f50236048\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Mon Oct 14 20:09:09 2024 -0500\n", + "\n", + " lc6 updated\n", + "\n", + "\u001b[33mcommit 65c54b52118eef17ac833a7f7c5b84c2cf709084\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Mon Jun 24 07:08:09 2024 -0500\n", + "Date: Thu Oct 10 00:45:08 2024 -0500\n", "\n", - " lec5 updated\n", + " lec6 updated\n", "\n", - "\u001b[33mcommit 92383fa3f426decf0fce34e1716cf723b408beaf\u001b[m\n", + "\u001b[33mcommit 81ef435107623f9a175dd8e04dbd906879f01940\u001b[m\n", + "Author: Kiet Pham <paulpham.kiet@gmail.com>\n", + "Date: Tue Oct 8 14:31:30 2024 -0500\n", + "\n", + " Add 2024 old exams\n", + "\n", + "\u001b[33mcommit 6c1a6790222109bc197cbee37a61495a472f8c75\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Mon Jun 24 05:58:56 2024 -0500\n", + "Date: Tue Oct 8 04:10:10 2024 -0500\n", "\n", - " lec5 updated\n", + " lec4 updated\n", "\n", - "\u001b[33mcommit eecc4a47948610108ba841dd63465b14fcb89baa\u001b[m\n", - "Author: Gurmail Singh <gurmail@Gurmails-MacBook-Pro.local>\n", - "Date: Sun Jun 23 06:49:19 2024 -0500\n", + "\u001b[33mcommit 14cab9988ec6f9b67226880db53164b3fc534d5b\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Mon Oct 7 01:52:41 2024 -0500\n", "\n", - " key files of lec 2 and 25 are modified\n", + " lec4 updated\n", "\n", - "\u001b[33mcommit 4032d8e85aad156aa6361354b787e6eb0d8a4818\u001b[m\n", + "\u001b[33mcommit e8fa42ed3e6b7d8fe48b7821615c3e49bb6877e5\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Sun Jun 23 06:14:10 2024 -0500\n", + "Date: Sun Oct 6 07:44:32 2024 -0500\n", "\n", - " lec2 updated\n", + " lec7 updated\n", "\n", - "\u001b[33mcommit 52f464d048bf744d3151bd8f4616f3e28ac7b8b5\u001b[m\n", + "\u001b[33mcommit e0d5c49b77d3e3ef8b309dec71f8fe958f8fd1a9\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Sun Jun 23 05:38:38 2024 -0500\n", + "Date: Wed Oct 2 22:33:09 2024 -0500\n", "\n", - " lec1 ppt file updated, but there is no change in pdf file\n", + " lec7 updated\n", "\n", - "\u001b[33mcommit 84ee14df4320ada0badf14934ded0117fb8bd15e\u001b[m\n", + "\u001b[33mcommit 9b0412071e94189ebfc653ba4f93a92c96ae34cd\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Mon Jun 17 14:21:14 2024 -0500\n", + "Date: Tue Oct 1 09:42:40 2024 -0500\n", "\n", - " labs added to publich facing repository\n", + " lec8 updated\n", "\n", - "\u001b[33mcommit 6c60490bb44c74a1cfab04bc08e83a2c78754938\u001b[m\n", + "\u001b[33mcommit a8849e346474e348924f52f979631198a6d1c1f3\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Mon May 20 02:01:19 2024 -0500\n", + "Date: Tue Oct 1 09:36:30 2024 -0500\n", "\n", - " directory cleaned\n", + " lec8 updated\n", "\n", - "\u001b[33mcommit 0b9fb36343fd10632e47fa103367ad4c5ecb7226\u001b[m\n", + "\u001b[33mcommit 8ac076612403d0ce2e7e6d91b33992180576784b\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Sat May 18 09:08:26 2024 -0500\n", + "Date: Tue Oct 1 07:46:53 2024 -0500\n", "\n", - " a redundant file is removed\n", + " lec7 updated\n", "\n", - "\u001b[33mcommit 3174ab5cbf552f9b4aec5b08524076dfaab4a376\u001b[m\n", - "Author: Gurmail Singh <gurmail@Gurmails-MacBook-Pro.local>\n", - "Date: Sat May 18 08:52:56 2024 -0500\n", + "\u001b[33mcommit 447814984cd29987df8f6f45567d07dbe76f4f83\u001b[m\n", + "Author: Arundhati Singh <asingh278@wisc.edu>\n", + "Date: Sat Sep 28 22:46:33 2024 +0000\n", "\n", - " lec 1 updated\n", + " labs updated\n", "\n", - "\u001b[33mcommit 349b443ae5aa9106634583a8ed78d60f6861cb98\u001b[m\n", + "\u001b[33mcommit 3ebb932e98b8a8052a651ab4a5848e9dd02c6b71\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Sat May 18 08:08:28 2024 -0500\n", + "Date: Thu Sep 26 09:28:07 2024 -0500\n", "\n", - " lec23 and 25 ppt files replaced\n", + " lec7 updated\n", "\n", - "\u001b[33mcommit eb4f7460535a4fc7c7266b73b754a3c49cb691ab\u001b[m\n", + "\u001b[33mcommit 7261c3e8af4b4f69073fb98ab1bafadbf03c2dd4\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Sat May 18 07:26:45 2024 -0500\n", + "Date: Sun Sep 22 05:22:01 2024 -0500\n", "\n", - " a file is removed from multiple folders\n", + " lec3 updated\n", "\n", - "\u001b[33mcommit 27ca24174750208a9f73a4fa71c6a27372929103\u001b[m\n", - "Author: Gurmail Singh <gurmail@Gurmails-MacBook-Pro.local>\n", - "Date: Sat May 18 07:04:51 2024 -0500\n", + "\u001b[33mcommit aa74d3507cc44d826e025ef14f1124bee7e7da74\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Thu Sep 19 07:46:55 2024 -0500\n", "\n", - " key files added\n", + " lec4 updated\n", "\n", - "\u001b[33mcommit 697adc4681980a4d58c76ffc73ca8e5c19a4b448\u001b[m\n", + "\u001b[33mcommit 9d4e490d3323017d2bafc268c08910703a3e76bf\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Sat May 18 02:25:15 2024 -0500\n", + "Date: Tue Sep 17 09:13:21 2024 -0500\n", "\n", - " lec11, 21 and 22 updated\n", + " lec4 pdf and pptx files added\n", "\n", - "\u001b[33mcommit 243696f952ee6d7f5efbe2bab4cb53e98308495b\u001b[m\n", + "\u001b[33mcommit e6b422832c40590371255da2bcc753a518d83d5e\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Tue May 14 04:06:19 2024 -0500\n", + "Date: Tue Sep 17 08:44:28 2024 -0500\n", "\n", - " lec20 updated\n", + " lec3 and lec4 updated\n", "\n", - "\u001b[33mcommit 4b9da9c949cf9ce9e0e02632ad6eea9724dd1257\u001b[m\n", + "\u001b[33mcommit dd689a008483e16aef99e1acabe62bd09db09bf5\u001b[m\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Wed May 8 09:47:52 2024 -0500\n", + "Date: Thu Sep 5 05:53:06 2024 -0500\n", + "\n", + " lec1 updated\n", "\n", - " initial commit\n", + "\u001b[33mcommit 6c91df506dcb33ea8dd1cb50de5daced91faa9d1\u001b[m\n", + "Author: ABIGAIL L HUGHES <alhughes3@wisc.edu>\n", + "Date: Wed Sep 4 15:59:22 2024 -0500\n", "\n", - "\u001b[33mcommit a3385a10027177b53cd8eb2acad372facdf64e43\u001b[m\n", - "Author: GURMAIL SINGH <gurmail.singh@wisc.edu>\n", - "Date: Wed May 8 08:35:24 2024 -0500\n", + " Add requirements.txt\n", "\n", - " Initial commit\n" + "\u001b[33mcommit c12f61544d5b9829cc550553aed2d72f053305d6\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Wed Sep 4 02:13:28 2024 -0500\n", + "\n", + " labs and projects added\n", + "\n", + "\u001b[33mcommit 5a48178928ce5889c651ecf29269c221295a76e4\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Sat Aug 24 02:55:10 2024 -0500\n", + "\n", + " initial commit\n" ] } ], @@ -1656,25 +1698,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "commit f2d263ddc2b5f218a82e6613b90385aff7884ce7\n", + "commit 79be06c593f1efd5cd84f427f41c7014b501e637\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Thu Jun 27 05:01:12 2024 -0500\n", + "Date: Sun Oct 27 12:32:39 2024 -0500\n", "\n", - " lec7: minor clarifications added\n", + " lec12 updated\n", "\n", - "commit 5b80a774d17cb159b867ad0cf8bcc35312145283\n", - "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Mon Jun 24 07:08:09 2024 -0500\n", + "commit 2c3c2911b15ac38359f364df8154052601322e20\n", + "Author: ABIGAIL L HUGHES <alhughes3@wisc.edu>\n", + "Date: Thu Oct 24 12:30:43 2024 -0500\n", "\n", - " lec5 updated\n", + " Add new directory\n", "\n", - "commit 92383fa3f426decf0fce34e1716cf723b408beaf\n", + "commit 728591c5517026d4de4f39b265838de8e3f8b418\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Mon Jun 24 05:58:56 2024 -0500\n", + "Date: Sun Oct 20 06:06:39 2024 -0500\n", "\n", - " lec5 updated\n", + " lec11 modified\n", "\n", - "commit eecc4a47948610108ba841dd63465\n" + "commit 80ad436703595f07c696c4182cdd7d2639371\n" ] } ], @@ -1700,16 +1742,16 @@ { "data": { "text/plain": [ - "['f2d263ddc2b5f218a82e6613b90385aff7884ce7',\n", - " '5b80a774d17cb159b867ad0cf8bcc35312145283',\n", - " '92383fa3f426decf0fce34e1716cf723b408beaf',\n", - " 'eecc4a47948610108ba841dd63465b14fcb89baa',\n", - " '4032d8e85aad156aa6361354b787e6eb0d8a4818',\n", - " '52f464d048bf744d3151bd8f4616f3e28ac7b8b5',\n", - " '84ee14df4320ada0badf14934ded0117fb8bd15e',\n", - " '6c60490bb44c74a1cfab04bc08e83a2c78754938',\n", - " '0b9fb36343fd10632e47fa103367ad4c5ecb7226',\n", - " '3174ab5cbf552f9b4aec5b08524076dfaab4a376']" + "['79be06c593f1efd5cd84f427f41c7014b501e637',\n", + " '2c3c2911b15ac38359f364df8154052601322e20',\n", + " '728591c5517026d4de4f39b265838de8e3f8b418',\n", + " '80ad436703595f07c696c4182cdd7d2639371fb3',\n", + " '2c567bd915f2f3c4b64b4a83c48ccd0f50236048',\n", + " '65c54b52118eef17ac833a7f7c5b84c2cf709084',\n", + " '81ef435107623f9a175dd8e04dbd906879f01940',\n", + " '6c1a6790222109bc197cbee37a61495a472f8c75',\n", + " '14cab9988ec6f9b67226880db53164b3fc534d5b',\n", + " 'e8fa42ed3e6b7d8fe48b7821615c3e49bb6877e5']" ] }, "execution_count": 58, @@ -1741,25 +1783,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "commit f2d263ddc2b5f218a82e6613b90385aff7884ce7\n", + "commit 79be06c593f1efd5cd84f427f41c7014b501e637\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Thu Jun 27 05:01:12 2024 -0500\n", + "Date: Sun Oct 27 12:32:39 2024 -0500\n", "\n", - " lec7: minor clarifications added\n", + " lec12 updated\n", "\n", - "commit 5b80a774d17cb159b867ad0cf8bcc35312145283\n", - "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Mon Jun 24 07:08:09 2024 -0500\n", + "commit 2c3c2911b15ac38359f364df8154052601322e20\n", + "Author: ABIGAIL L HUGHES <alhughes3@wisc.edu>\n", + "Date: Thu Oct 24 12:30:43 2024 -0500\n", "\n", - " lec5 updated\n", + " Add new directory\n", "\n", - "commit 92383fa3f426decf0fce34e1716cf723b408beaf\n", + "commit 728591c5517026d4de4f39b265838de8e3f8b418\n", "Author: gsingh58 <gurmail-singh@wisc.edu>\n", - "Date: Mon Jun 24 05:58:56 2024 -0500\n", + "Date: Sun Oct 20 06:06:39 2024 -0500\n", "\n", - " lec5 updated\n", + " lec11 modified\n", "\n", - "commit eecc4a47948610108ba841dd63465\n" + "commit 80ad436703595f07c696c4182cdd7d2639371\n" ] } ], @@ -1776,23 +1818,30 @@ { "data": { "text/plain": [ - "['Thu',\n", - " 'Mon',\n", - " 'Mon',\n", - " 'Sun',\n", + "['Sun',\n", + " 'Thu',\n", " 'Sun',\n", " 'Sun',\n", " 'Mon',\n", + " 'Thu',\n", + " 'Tue',\n", + " 'Tue',\n", " 'Mon',\n", + " 'Sun',\n", + " 'Wed',\n", + " 'Tue',\n", + " 'Tue',\n", + " 'Tue',\n", " 'Sat',\n", - " 'Sat',\n", - " 'Sat',\n", - " 'Sat',\n", - " 'Sat',\n", - " 'Sat',\n", + " 'Thu',\n", + " 'Sun',\n", + " 'Thu',\n", + " 'Tue',\n", " 'Tue',\n", + " 'Thu',\n", + " 'Wed',\n", " 'Wed',\n", - " 'Wed']" + " 'Sat']" ] }, "execution_count": 60, @@ -1822,12 +1871,12 @@ { "data": { "text/plain": [ - "Sat 6\n", - "Mon 4\n", - "Sun 3\n", - "Wed 2\n", - "Thu 1\n", - "Tue 1\n", + "Tue 7\n", + "Sun 5\n", + "Thu 5\n", + "Wed 3\n", + "Mon 2\n", + "Sat 2\n", "Name: count, dtype: int64" ] }, @@ -1858,12 +1907,12 @@ { "data": { "text/plain": [ - "Mon 4\n", - "Tue 1\n", - "Wed 2\n", - "Thu 1\n", - "Sat 6\n", - "Sun 3\n", + "Mon 2\n", + "Tue 7\n", + "Wed 3\n", + "Thu 5\n", + "Sat 2\n", + "Sun 5\n", "Name: count, dtype: int64" ] }, @@ -1903,7 +1952,7 @@ }, { "data": { - "image/png": "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l7V//35VqVJFUVFReQbTbt261WfhAABA0eZ1Ubn77rsLIAYAAEBeXheV+Pj4gsgBAACQxzU9lFCStmzZol27dkmSGjZsqObNm/ssFAAAgHQNReX48eO6//77lZycrHLlykmSTp8+rdjYWC1cuFCVKlXydUYAAFBEeX3Vz2OPPaYzZ87o22+/1cmTJ3Xy5Ent2LFDGRkZevzxxwsiIwAAKKK8PqKybNkyLV++XA0aNHDPi46O1owZM9SlSxefhgMAAEWb10dUcnNz81ySLEnFixdXbm6uT0IBAABI11BUOnTooGHDhunw4cPueT/88INGjBihjh07+jQcAAAo2rwuKv/4xz+UkZGhqKgo1alTR3Xq1FGtWrWUkZGhV155pSAyAgCAIsrrMSoRERHaunWrli9frt27d0uSGjRooE6dOvk8HAAAKNqu6T4qLpdLnTt3VufOnX2dBwAAwC3fp36++OILRUdHKyMjI8+y9PR0NWzYUKtXr/ZpOAAAULTlu6hMnz5dgwYNUmhoaJ5lZcuW1V//+ldNnTrVp+EAAEDRlu+ism3bNt1xxx1XXN6lSxdt2bLFJ6EAAAAkL4rKsWPHLnv/lEsCAwN14sQJn4QCAACQvCgq1atX144dO664/JtvvlF4eLhPQgEAAEheFJVu3brpmWee0fnz5/Ms+/nnnxUfH68ePXr4NBwAACja8n158tNPP613331XN954ox599FHVq1dPkrR7927NmDFDOTk5euqppwosKAAAKHryXVSqVKmidevWaciQIYqLi5MxRtIv91S5/fbbNWPGDFWpUqXAggIAgKLHqxu+RUZG6pNPPtGpU6e0b98+GWN0ww03KCwsrKDyAQCAIuya7kwbFhamli1b+joLAACAB68fSggAAHC9UFQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGs5WlQSExPVsmVLlSlTRpUrV9bdd9+tPXv2OBkJAABYxNGikpKSoqFDh2rDhg36/PPPdeHCBXXp0kXnzp1zMhYAALDENT3rx1eWLVvmMf3666+rcuXK2rJli9q1a+dQKgAAYAtHi8p/S09PlySVL1/+ssuzsrKUlZXlns7IyLguuQAAgDOsKSq5ubkaPny42rRpo0aNGl12ncTERCUkJFznZIDzosZ+7HSE33RwcnenIwAo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oqOjFRIS4nREv3DpKF+pUqWcjlIonDp1SlWqVHFPp6SkqGvXru7pli1bKi0tzYlofis1NdVj+tIR6MLwsEwG0xawzMxM7d+/X9IvvzT4H91vCwgIUNmyZX+zrFy65wKuLDk52f368ssvlZ2drdq1a6tDhw7q0KGDYmJiPH5h4PICAgJ09OhRHuHgI5GRkZo/f77atWun7OxslStXTh999JF77M/27dvVvn17/hvPh6Iw3ocjKj42YMCAfK2XlJRUwEn8238/+h3XJiYmxn1/hfPnz2vdunXu4jJv3jxduHBB9evX17fffutsUD/AUT7f6datm8aOHaspU6bo/fffV6lSpXTbbbe5l3/zzTeqU6eOgwn9x9XG+zRo0EAvvPCC34/34YiKjwUEBCgyMlLNmzfX1Xbte++9dx1T+Rf+ei1Y2dnZWrt2rZYuXarZs2fr7NmzXK3yGzjK51s//vijevXqpTVr1igkJETz5s3TPffc417esWNH3XLLLZo4caKDKf1DeHi4PvroI/fVpE899ZRSUlK0Zs0aSdLixYsVHx+vnTt3Ohnzd+GIio8NGTJECxYsUGpqqvr3768HHnhA5cuXdzqWX+EvV9/Kzs7Whg0btHLlSvcpoIiICLVr107/+Mc/eNxDPnGUz3cqVqyoVatWKT09XSEhISpWrJjH8sWLFzN+Kp+KwngfjqgUgKysLL377rtKSkrSunXr1L17dw0cOFBdunThl3A+cETFdzp06KAvv/xStWrVUvv27XXbbbepffv2Cg8PdzqaX+E7CVsVhfE+3EK/AAQFBal37976/PPPtXPnTjVs2FCPPPKIoqKidPbsWafjWS83N5dfCD6yevVqVahQQR06dFDHjh3VuXNnSso14A8M2OrSeJ/Vq1crLi6uUI73oagUsICAALlcLhljGAeA6+706dOaM2eOSpUqpSlTpqhatWpq3LixHn30Ub3zzjs6ceKE0xH9AgeeYavnnntOgYGBat++vebOnau5c+eqRIkS7uVJSUnq0qWLgwl/P079FIBfn/pZs2aNevToof79++uOO+5QQADdEM45c+aM1qxZ4x6vsm3bNt1www3asWOH09EA/A5XGu9z8uRJhYSEeJQXf8NgWh975JFHtHDhQkVERGjAgAFasGCBKlas6HQsQJJUunRplS9fXuXLl1dYWJgCAwO1a9cup2MB+J2uNNC7MFzMwREVHwsICFDNmjXVvHnzq57Xfvfdd69jKhRVubm52rx5s5KTk7Vy5UqtXbtW586dU/Xq1d13q42NjVVkZKTTUQHgsjii4mMPPfQQA+9gjXLlyuncuXOqWrWqYmNjNW3aNMXExPj94DoARQdHVIBCbPbs2YqNjdWNN97odBQAuCYUFQAAYC0uQQEAANaiqAAAAGtRVAAAgLUoKgCuq927d+uWW25RyZIl1axZs3y/Lzk5WS6XS6dPny6wbNdDYfk5gOuFogL4mX79+snlcsnlcql48eKqUqWKOnfurKSkJOXm5jod7zfFx8erdOnS2rNnj1asWHHZdWJiYjR8+PDrGwyAlSgqgB+64447dOTIER08eFBLly5VbGyshg0bph49eujixYtOx7uq/fv3q23btoqMjFSFChWcjgPAchQVwA8FBQWpatWqql69um666Sb97W9/0wcffKClS5fq9ddfd683depUNW7cWKVLl1ZERIQeeeQR9xO8z507p9DQUL3zzjse237//fdVunRpnTlzRtnZ2Xr00UcVHh6ukiVLKjIyUomJiVfMlZubq/Hjx6tGjRoKCgpSs2bNtGzZMvdyl8ulLVu2aPz48XK5XBo3blyebfTr108pKSl66aWX3EeODh486F6+ZcsWtWjRQqVKldKtt96qPXv2eLz/gw8+0E033aSSJUuqdu3aSkhIuGJ527FjhwICAtwPZzx58qQCAgJ0//33u9eZMGGC2rZt6/Gerl27KiQkRFWqVNGDDz6oH3/80WMfJCYmqlatWgoODlbTpk3z7ONfy8zMVNeuXdWmTRtOBwGXYwD4lb59+5qePXtedlnTpk1N165d3dPTpk0zX3zxhUlNTTUrVqww9erVM0OGDHEvHzRokOnWrZvHNu666y7z0EMPGWOMeeGFF0xERIRZtWqVOXjwoFm9erV56623rpht6tSpJjQ01CxYsMDs3r3bjBkzxhQvXtx89913xhhjjhw5Yho2bGieeOIJc+TIEXPmzJk82zh9+rRp3bq1GTRokDly5Ig5cuSIuXjxolm5cqWRZG6++WaTnJxsvv32W3PbbbeZW2+91f3eVatWmdDQUPP666+b/fv3m88++8xERUWZcePGXTZvbm6uqVixolm8eLExxpj333/fVKxY0VStWtW9TqdOncxTTz1ljDHm1KlTplKlSiYuLs7s2rXLbN261XTu3NnExsa6158wYYKpX7++WbZsmdm/f7957bXXTFBQkElOTjbGGPfPcerUKXPq1Clz6623mi5duphz585dcb8CRRlFBfAzVysq9913n2nQoMEV37t48WJToUIF9/SXX35pihUrZg4fPmyMMebYsWMmMDDQ/Uv1scceMx06dDC5ubn5ylatWjUzceJEj3ktW7Y0jzzyiHu6adOmJj4+/qrbad++vRk2bJjHvEu/4JcvX+6e9/HHHxtJ5ueffzbGGNOxY0czadIkj/fNnz/fhIeHX/GzevXqZYYOHWqMMWb48OFm9OjRJiwszOzatctkZ2ebUqVKmc8++8wYY8xzzz1nunTp4vH+tLQ0I8ns2bPHnD9/3pQqVcqsW7fOY52BAwea3r17e/wcu3btMk2aNDF//OMfTVZW1lX3B1CU8awfoBAxxng8a2r58uVKTEzU7t27lZGRoYsXL+r8+fPKzMxUqVKl1KpVKzVs2FDz5s3T2LFj9b//+7+KjIxUu3btJP1yGqZz586qV6+e7rjjDvXo0UNdunS57GdnZGTo8OHDatOmjcf8Nm3aaNu2bT77GZs0aeL+d3h4uCTp+PHjqlmzprZt26a1a9dq4sSJ7nVycnI8fub/1r59e82ZM0eSlJKSokmTJum7775TcnKyTp48qQsXLrh/pm3btmnlypUKCQnJs539+/frwoULyszMVOfOnT2WZWdnq3nz5h7zOnfurFatWuntt99WsWLFrnFvAIUfRQUoRHbt2qVatWpJkg4ePKgePXpoyJAhmjhxosqXL681a9Zo4MCBys7Odv/SfvjhhzVjxgyNHTtWr732mvr37+8uOzfddJNSU1O1dOlSLV++XH/+85/VqVOnq465KGjFixd3//tSzktXO509e1YJCQnq1atXnveVLFnystu7dIXR3r17tXPnTrVt21a7d+9WcnKyTp065R4Pc2n7d955p6ZMmZJnO+Hh4dqxY4ck6eOPP1b16tU9lgcFBXlMd+/eXUuWLNHOnTvVuHHj/P74QJFDUQEKiS+++ELbt2/XiBEjJP0y6DQ3N1d///vfFRDwy7j5RYsW5XnfAw88oDFjxujll1/Wzp071bdvX4/loaGhuu+++3TffffpT3/6k+644w6dPHlS5cuXz7NetWrVtHbtWrVv3949f+3atWrVqpVXP0uJEiWUk5Pj1XukX4rVnj17VLdu3Xy/p3HjxgoLC9OECRPUrFkzhYSEKCYmRlOmTNGpU6cUExPjsf0lS5YoKipKgYF5//cZHR2toKAgHTp0yGMfXM7kyZMVEhKijh07Kjk5WdHR0fnODBQlFBXAD2VlZeno0aPKycnRsWPHtGzZMiUmJqpHjx566KGHJEl169bVhQsX9Morr+jOO+/U2rVrNWvWrDzbCgsLU69evTR69Gh16dJFNWrUcC+bOnWqwsPD1bx5cwUEBGjx4sWqWrWqypUrd9lco0ePVnx8vOrUqaNmzZrptdde09dff60333zTq58vKipKX375pQ4ePKiQkJA8pehKnn32WfXo0UM1a9bUn/70JwUEBGjbtm3asWOHJkyYcNn3uFwutWvXTm+++aZGjRol6ZfTS1lZWVqxYoVGjhzpXnfo0KGaO3euevfurTFjxqh8+fLat2+fFi5cqFdffVVlypTRqFGjNGLECOXm5qpt27ZKT0/X2rVrFRoamqcEvvjii8rJyVGHDh2UnJys+vXre7WfgCLB6UEyALzTt29fI8lIMoGBgaZSpUqmU6dOJikpyeTk5HisO3XqVBMeHm6Cg4PN7bffbt544w33FSe/tmLFCiPJLFq0yGP+nDlzTLNmzUzp0qVNaGio6dixo9m6desVs+Xk5Jhx48aZ6tWrm+LFi5umTZuapUuXeqyTn8G0e/bsMbfccosJDg42kkxqaqrH1TKXfPXVV+7llyxbtszceuutJjg42ISGhppWrVqZOXPmXPXzpk2bZiR5ZO3Zs6cJDAzMc2XSd999Z+655x5Trlw5ExwcbOrXr2+GDx/uHnCcm5trpk+fburVq2eKFy9uKlWqZG6//XaTkpJijDGX/Tkee+wxEx4ebvbs2XPVnEBR5DLGGMdaEgArzJ8/XyNGjNDhw4dVokQJp+MAgBunfoAiLDMzU0eOHNHkyZP117/+lZICwDrcmRYowp5//nnVr19fVatWVVxcnNNxACAPTv0AAABrcUQFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFjr/wAmgyTPAszc0wAAAABJRU5ErkJggg==", + "image/png": "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Q4cOVf369f0SCgAAQPLTGJWgoCDFxcXp2Wef9cfmAAAAJPlxMO3u3bt17tw5f20OAADA91M/cXFxXtPGGB08eFAffvih+vfv77dgAAAAPheVr776yms6KChI4eHh+uc///mHVwQBAAD4wueisnz58oLIAQAAkIfPReW8o0ePaseOHZKkhg0bKjw83G+hAAAApMsYTHv69GkNGjRIERER6tChgzp06KAaNWpo8ODByszMvOwgkydPlsvl0ogRIy57GwAAoGjxuajExcUpJSVFH3zwgU6cOKETJ07ovffeU0pKiv7+979fVogvv/xSM2fOVLNmzS7r/QAAoGjyuagsXrxYL7/8srp3767Q0FCFhoaqR48emj17tt566y2fA5w6dUr9+vXT7NmzFRYW5vP7AQBA0eVzUcnMzFS1atXyzK9ateplnfoZNmyYevbsqS5duvzhullZWcrIyPB6AQCAosvnotK2bVslJCTozJkznnm//PKLEhMT1bZtW5+2tWDBAm3cuFFJSUn5Wj8pKUkVKlTwvCIjI336PAAAEFh8vurnueee00033aRatWqpefPmkqRNmzapdOnS+uSTT/K9nbS0NA0fPlyfffaZSpcuna/3xMfHe91wLiMjg7ICAEAR5nNRueaaa7Rz5069/vrr2r59uySpb9++6tevn8qUKZPv7aSmpurIkSO69tprPfNycnK0YsUKvfDCC8rKylKJEiW83uN2u+V2u32NDAAAAtRl3UelbNmyGjJkyBV9cOfOnbV582aveQMHDlSjRo30yCOP5CkpAACg+PG5qCQlJalatWp5bpc/Z84cHT16VI888ki+tlO+fHldc801XvPKlSunypUr55kPAACKJ58H086cOVONGjXKM79JkyaaMWOGX0IBAABIl3FE5dChQ4qIiMgzPzw8XAcPHryiMMnJyVf0fgAAULT4fEQlMjJSq1evzjN/9erVqlGjhl9CAQAASJdxRGXIkCEaMWKEzp49q06dOkmSli1bpjFjxlz2LfQBAAAuxOeiMnr0aP3888964IEHlJ2dLUkqXbq0HnnkEcXHx/s9IAAAKL58Lioul0tTpkzR448/rm3btqlMmTK66qqruL8JAADwu8u6j4okhYSEqHXr1v7MAgAA4MXnwbQAAACFhaICAACsRVEBAADW8rmorFixQufOncsz/9y5c1qxYoVfQgEAAEiXUVRiY2N17NixPPPT09MVGxvrl1AAAADSZRQVY4xcLlee+T///LPKlSvnl1AAAACSD5cn9+nTR9Kv91EZMGCA131TcnJy9M033+iGG27wf0IAAFBs5buoVKhQQdKvR1TKly+vMmXKeJaVKlVK119/vYYMGeL/hAAAoNjKd1GZO3euJCkqKkqjRo3iNA8AAChwPt+ZNiEhoSByAAAA5JGvonLttddq2bJlCgsLU8uWLS84mPa8jRs3+i0cAAAo3vJVVHr37u0ZPHvbbbcVZB4AAACPfBWV357u4dQPAAAoLJf99GRJOnXqlHJzc73mhYaGXlEgAACA83y+4dvevXvVs2dPlStXThUqVFBYWJjCwsJUsWJFhYWFFURGAABQTPl8ROXuu++WMUZz5sxRtWrVLjmwFgAA4Er4XFQ2bdqk1NRUNWzYsCDyAAAAePh86qd169ZKS0sriCwAAABefD6i8tJLL+n+++/Xjz/+qGuuuUYlS5b0Wt6sWTO/hQMAAMWbz0Xl6NGj2r17twYOHOiZ53K5PE9VzsnJ8WtAAABQfPlcVAYNGqSWLVtq/vz5DKYFAAAFyuei8v333+v9999XgwYNCiIPAACAh8+DaTt16qRNmzYVRBYAAAAvPh9RueWWWzRy5Eht3rxZTZs2zTOY9tZbb/VbOAAAULz5XFTuv/9+SdL48ePzLGMwLQAA8Cefi8rvn+0DAABQUHweowIAAFBYLuvpyV9++aWWL1+uI0eO5DnCMnXqVL8EAwAA8LmoTJo0SY899pgaNmyY5z4q3FMFAAD4k89F5bnnntOcOXM0YMCAAogDAADw/3weoxIUFKR27doVRBYAAAAvPheVkSNHavr06QWRBQAAwIvPp35GjRqlnj17qn79+oqOjs5zw7e3337bb+EAAEDx5nNRefjhh7V8+XLFxsaqcuXKDKAFAAAFxuei8sorr2jx4sXq2bPnFX/4iy++qBdffFH79u2TJDVp0kRPPPGEunfvfsXbBgAAgc/nMSqVKlVS/fr1/fLhtWrV0uTJk5WamqoNGzaoU6dO6t27t7799lu/bB8AAAQ2n4vKuHHjlJCQoMzMzCv+8FtuuUU9evTQVVddpauvvloTJ05USEiI1q1bd8XbBgAAgc/nUz//+te/tHv3blWrVk1RUVF5BtNu3LjxsoLk5ORo0aJFOn36tNq2bXvBdbKyspSVleWZzsjIuKzPAgAAgcHnonLbbbf5NcDmzZvVtm1bnTlzRiEhIXrnnXcUHR19wXWTkpKUmJjo188HAkHU2A+djvCH9k2+8nFrAPB7PheVhIQEvwZo2LChvv76a6Wnp+utt95S//79lZKScsGyEh8fr7i4OM90RkaGIiMj/ZoHAADY47IeSihJqamp2rZtm6Rfr9Zp2bLlZW2nVKlSatCggSTpT3/6k7788ks999xzmjlzZp513W633G735UYGAAABxueicuTIEd11111KTk5WxYoVJUknTpxQbGysFixYoPDw8CsKlJub6zUOBQAAFF8+X/Xz0EMP6eTJk/r222917NgxHTt2TFu2bFFGRoYefvhhn7YVHx+vFStWaN++fdq8ebPi4+OVnJysfv36+RoLAAAUQT4fUVmyZImWLl2qxo0be+ZFR0dr+vTp6tatm0/bOnLkiO69914dPHhQFSpUULNmzfTJJ5+oa9euvsYCAABFkM9FJTc3N88lyZJUsmRJ5ebm+rStl19+2dePBwAAxYjPp346deqk4cOH68CBA555P/74o0aOHKnOnTv7NRwAACjefC4qL7zwgjIyMhQVFaX69eurfv36qlu3rjIyMvT8888XREYAAFBM+XzqJzIyUhs3btTSpUu1fft2SVLjxo3VpUsXv4cDAADF22XdR8Xlcqlr164MegUAAAUq36d+Pv/8c0VHR1/w+Trp6elq0qSJVq5c6ddwAACgeMt3UZk2bZqGDBmi0NDQPMsqVKigv/3tb5o6dapfwwEAgOIt30Vl06ZNuvnmmy+6vFu3bkpNTfVLKAAAAMmHonL48OEL3j/lvODgYB09etQvoQAAACQfikrNmjW1ZcuWiy7/5ptvFBER4ZdQAAAAkg9FpUePHnr88cd15syZPMt++eUXJSQkqFevXn4NBwAAird8X5782GOP6e2339bVV1+tBx98UA0bNpQkbd++XdOnT1dOTo4effTRAgsKAACKn3wXlWrVqmnNmjUaOnSo4uPjZYyR9Os9VW666SZNnz5d1apVK7CgAACg+PHphm916tTRRx99pOPHj2vXrl0yxuiqq65SWFhYQeUDAADF2GXdmTYsLEytW7f2dxYAAAAvPj+UEAAAoLBQVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUcLSpJSUlq3bq1ypcvr6pVq+q2227Tjh07nIwEAAAs4mhRSUlJ0bBhw7Ru3Tp99tlnOnv2rLp166bTp087GQsAAFgi2MkPX7Jkidf0vHnzVLVqVaWmpqpDhw4OpQIAALZwtKj8Xnp6uiSpUqVKF1yelZWlrKwsz3RGRkah5AIAAM6wpqjk5uZqxIgRateuna655poLrpOUlKTExMQCzxI19sMC/4wrtW9yT6cjACjGAuHfSYl/K4sCa676GTZsmLZs2aIFCxZcdJ34+Hilp6d7XmlpaYWYEAAAFDYrjqg8+OCD+u9//6sVK1aoVq1aF13P7XbL7XYXYjIAAOAkR4uKMUYPPfSQ3nnnHSUnJ6tu3bpOxgEAAJZxtKgMGzZMb7zxht577z2VL19ehw4dkiRVqFBBZcqUcTIaAACwgKNjVF588UWlp6crJiZGERERntebb77pZCwAAGAJx0/9AAAAXIw1V/0AAAD8HkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFqOFpUVK1bolltuUY0aNeRyufTuu+86GQcAAFjG0aJy+vRpNW/eXNOnT3cyBgAAsFSwkx/evXt3de/e3ckIAADAYo4WFV9lZWUpKyvLM52RkeFgGgAAUNACajBtUlKSKlSo4HlFRkY6HQkAABSggCoq8fHxSk9P97zS0tKcjgQAAApQQJ36cbvdcrvdTscAAACFJKCOqAAAgOLF0SMqp06d0q5duzzTe/fu1ddff61KlSqpdu3aDiYDAAA2cLSobNiwQbGxsZ7puLg4SVL//v01b948h1IBAABbOFpUYmJiZIxxMgIAALAYY1QAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1rKiqEyfPl1RUVEqXbq0rrvuOq1fv97pSAAAwAKOF5U333xTcXFxSkhI0MaNG9W8eXPddNNNOnLkiNPRAACAwxwvKlOnTtWQIUM0cOBARUdHa8aMGSpbtqzmzJnjdDQAAOCwYCc/PDs7W6mpqYqPj/fMCwoKUpcuXbR27do862dlZSkrK8sznZ6eLknKyMjwa67crEy/bq8g+Ps7F4RA2I8S+9JfAmE/SuxLfwmE/SixL/3F3/vx/PaMMX+8snHQjz/+aCSZNWvWeM0fPXq0adOmTZ71ExISjCRevHjx4sWLVxF4paWl/WFXcPSIiq/i4+MVFxfnmc7NzdWxY8dUuXJluVwuB5NdXEZGhiIjI5WWlqbQ0FCn4wQ09qX/sC/9g/3oP+xL/wmEfWmM0cmTJ1WjRo0/XNfRolKlShWVKFFChw8f9pp/+PBhVa9ePc/6brdbbrfba17FihULMqLfhIaGWvsDE2jYl/7DvvQP9qP/sC/9x/Z9WaFChXyt5+hg2lKlSulPf/qTli1b5pmXm5urZcuWqW3btg4mAwAANnD81E9cXJz69++vVq1aqU2bNpo2bZpOnz6tgQMHOh0NAAA4zPGicuedd+ro0aN64okndOjQIbVo0UJLlixRtWrVnI7mF263WwkJCXlOWcF37Ev/YV/6B/vRf9iX/lPU9qXLmPxcGwQAAFD4HL/hGwAAwMVQVAAAgLUoKgAAwFoUFQAAYC2KCgAAsJbjlycDl/Laa69pxowZ2rt3r9auXas6depo2rRpqlu3rnr37u10PBQzsbGxl3xcx+eff16IaQLf+PHjNWrUKJUtW9Zr/i+//KKnn35aTzzxhEPJYBOOqMBaL774ouLi4tSjRw+dOHFCOTk5kn59bMK0adOcDRcAMjIy8v1C/rRo0ULNmzf3vKKjo5Wdna2NGzeqadOmTscLOImJiTp16lSe+ZmZmUpMTHQgUeDLzs7WDz/8oP3793u9AhlHVApYdna2jhw5otzcXK/5tWvXdihR4Hj++ec1e/Zs3XbbbZo8ebJnfqtWrTRq1CgHkwWGihUr5vthnedLIC7t2WefveD8cePGXfAXLi7NGHPBn9FNmzapUqVKDiQKXDt37tSgQYO0Zs0ar/nn93Eg/x2nqBSQovxDU1j27t2rli1b5pnvdrt1+vRpBxIFluXLl3v+vG/fPo0dO1YDBgzwPEdr7dq1euWVV5SUlORUxCLj7rvvVps2bfTMM884HSUghIWFyeVyyeVy6eqrr/YqKzk5OTp16pTuv/9+BxMGngEDBig4OFj//e9/FRERke//pAQCikoBKco/NIWlbt26+vrrr1WnTh2v+UuWLFHjxo0dShU4Onbs6Pnz+PHjNXXqVPXt29cz79Zbb1XTpk01a9Ys9e/f34mIRcbatWtVunRpp2MEjGnTpskYo0GDBikxMdHrKbqlSpVSVFQUD6b10ddff63U1FQ1atTI6Sh+R1EpIEX5h6awxMXFadiwYTpz5oyMMVq/fr3mz5+vpKQkvfTSS07HCyhr167VjBkz8sxv1aqV7rvvPgcSBaY+ffp4TRtjdPDgQW3YsEGPP/64Q6kCz/liXLduXd1www0qWbKkw4kCX3R0tH766SenYxQIikoBKco/NIXlvvvuU5kyZfTYY48pMzNTf/3rX1WjRg0999xzuuuuu5yOF1AiIyM1e/ZsPfXUU17zX3rpJUVGRjqUKvD89n/+khQUFKSGDRtq/Pjx6tatm0OpAtdvj/qdOXNG2dnZXstDQ0MLO1LAmjJlisaMGaNJkyapadOmecpfIO9LHkpYQD7//HM99thjRfKHxgmZmZk6deqUqlat6nSUgPTRRx/pz3/+sxo0aKDrrrtOkrR+/Xrt3LlTixcvVo8ePRxOiOIoMzNTY8aM0cKFC/Xzzz/nWc5YvvwLCvr1It7fDzMoCuMiKSoFpCj/0CAwpaWl6cUXX9T27dslSY0bN9b999/PEZXLwNV8/jFs2DAtX75cTz75pO655x5Nnz5dP/74o2bOnKnJkyerX79+TkcMGCkpKZdc/tujV4GGolJAivIPTWGpW7fuJQch79mzpxDTANJ3332nwYMHczWfn9SuXVuvvvqqYmJiFBoaqo0bN6pBgwZ67bXXNH/+fH300UdOR4QFGKNSQCgiV27EiBFe02fPntVXX32lJUuWaPTo0c6ECmArV67UzJkztWfPHi1atEg1a9bUa6+9prp166p9+/ZOxwsIAwcO5Go+Pzp27Jjq1asn6dfT4ceOHZMktW/fXkOHDnUyWsBZsWLFJZd36NChkJL4H0WlAJ04cUIvv/yytm3bJklq0qSJBg0alGdAHi5s+PDhF5w/ffp0bdiwoZDTBLbFixfrnnvuUb9+/bRx40ZlZWVJktLT0zVp0iT+55pPXM3nX/Xq1dPevXtVu3ZtNWrUSAsXLlSbNm30wQcfqGLFik7HCygxMTF55v3+/jSBilvoF5ANGzaofv36evbZZ3Xs2DEdO3ZMU6dOVf369bVx40an4wW07t27a/HixU7HCCgTJkzQjBkzNHv2bK+B3e3atePn0QdczedfAwcO1KZNmyRJY8eO1fTp01W6dGmNHDmSo6Y+On78uNfryJEjWrJkiVq3bq1PP/3U6XhXhDEqBeTGG29UgwYNNHv2bAUH/3rg6ty5c7rvvvu0Z8+ePzxMh4t76qmn9O9//1v79u1zOkrAKFu2rLZu3aqoqCiVL19emzZtUr169bRnzx5FR0frzJkzTke01m+fhbRhwwau5itA33//vVJTU9WgQQM1a9bM6ThFQkpKiuLi4pSamup0lMvGqZ8CsmHDBq+SIknBwcEaM2aMWrVq5WAy+40fP15///vf1b59e69Dl8YYHTp0SEePHtW///1vBxMGnurVq2vXrl2Kiorymr9q1SrPGAFc2O+fmWSMUefOnb3WYTCtb9auXauff/5ZvXr18sx79dVXlZCQoNOnT+u2227T888/L7fb7WDKoqFatWrasWOH0zGuCEWlgISGhmr//v15zmWnpaWpfPnyDqUKDImJibr//vvVu3dvr18QQUFBCg8PV0xMDGMEfDRkyBANHz5cc+bMkcvl0oEDB7R27VqNGjWKO6r+gd8+Mwn+MX78eMXExHiKyubNmzV48GANGDBA0dHReuqpp1SjRg2NGzfO2aAB5JtvvvGaPn/X5MmTJ6tFixbOhPIXgwLx0EMPmVq1apkFCxaY/fv3m/3795v58+ebWrVqmeHDhzsdz2oul8scPnzY6RhFwp49e4wxxuTm5poJEyaYcuXKGZfLZVwulyldurR57LHHHE4YGBITE83p06edjlFkVK9e3Xz55Zee6X/84x+mXbt2numFCxeaxo0bOxEtYLlcLhMUFOT5+33+1bZtW7Nt2zan410RjqgUkGeeeUYul0v33nuvzp07J2OMSpUqpaFDh2ry5MlOx7Mel336R/369VWnTh3FxsYqNjZW27Zt08mTJ3Xq1ClFR0crJCTE6YgB4fxRvrJlyzodpUg4fvy4qlWr5plOSUlR9+7dPdOtW7dWWlqaE9EC1t69e72mzx+BLgoPy2QwbQHLzMzU7t27Jf36S4N/6P5YUFCQKlSo8Idl5fw9F3BxycnJntcXX3yh7Oxs1atXT506dVKnTp0UExPj9QsDFxYUFKRDhw7xCAc/qVOnjl577TV16NBB2dnZqlixoj744APP2J/NmzerY8eO/B3Ph+Iw3ocjKn42aNCgfK03Z86cAk4S2H7/6HdcnpiYGM/9Fc6cOaM1a9Z4issrr7yis2fPqlGjRvr222+dDRoAOMrnPz169NDYsWM1ZcoUvfvuuypbtqxuvPFGz/JvvvlG9evXdzBh4LjUeJ/GjRvr6aefDvjxPhxR8bOgoCDVqVNHLVu21KV27TvvvFOIqQIL/3stWNnZ2Vq9erU+/vhjzZw5U6dOneJqlT/AUT7/+umnn9SnTx+tWrVKISEheuWVV3T77bd7lnfu3FnXX3+9Jk6c6GDKwBAREaEPPvjAczXpo48+qpSUFK1atUqStGjRIiUkJGjr1q1OxrwiHFHxs6FDh2r+/Pnau3evBg4cqLvvvluVKlVyOlZA4X+u/pWdna1169Zp+fLlnlNAkZGR6tChg1544QUe95BPHOXznypVqmjFihVKT09XSEiISpQo4bV80aJFjJ/Kp+Iw3ocjKgUgKytLb7/9tubMmaM1a9aoZ8+eGjx4sLp168Yv4XzgiIr/dOrUSV988YXq1q2rjh076sYbb1THjh0VERHhdLSAws8kbFUcxvtwC/0C4Ha71bdvX3322WfaunWrmjRpogceeEBRUVE6deqU0/Gsl5ubyy8EP1m5cqUqV66sTp06qXPnzuratSsl5TLwHwzY6vx4n5UrVyo+Pr5IjvehqBSwoKAguVwuGWMYB4BCd+LECc2aNUtly5bVlClTVKNGDTVt2lQPPvig3nrrLR09etTpiAGBA8+w1ZNPPqng4GB17NhRs2fP1uzZs1WqVCnP8jlz5qhbt24OJrxynPopAL899bNq1Sr16tVLAwcO1M0336ygILohnHPy5EmtWrXKM15l06ZNuuqqq7RlyxanowG4Ahcb73Ps2DGFhIR4lZdAw2BaP3vggQe0YMECRUZGatCgQZo/f76qVKnidCxAklSuXDlVqlRJlSpVUlhYmIKDg7Vt2zanYwG4Qhcb6F0ULubgiIqfBQUFqXbt2mrZsuUlz2u//fbbhZgKxVVubq42bNig5ORkLV++XKtXr9bp06dVs2ZNz91qY2NjVadOHaejAsAFcUTFz+69914G3sEaFStW1OnTp1W9enXFxsbq2WefVUxMTMAPrgNQfHBEBSjCZs6cqdjYWF199dVORwGAy0JRAQAA1uISFAAAYC2KCgAAsBZFBQAAWIuiAqBQbd++Xddff71Kly6tFi1a5Pt9ycnJcrlcOnHiRIFlKwxF5XsAhYWiAgSYAQMGyOVyyeVyqWTJkqpWrZq6du2qOXPmKDc31+l4fyghIUHlypXTjh07tGzZsguuExMToxEjRhRuMABWoqgAAejmm2/WwYMHtW/fPn388ceKjY3V8OHD1atXL507d87peJe0e/dutW/fXnXq1FHlypWdjgPAchQVIAC53W5Vr15dNWvW1LXXXqt//OMfeu+99/Txxx9r3rx5nvWmTp2qpk2bqly5coqMjNQDDzzgeYL36dOnFRoaqrfeestr2++++67KlSunkydPKjs7Ww8++KAiIiJUunRp1alTR0lJSRfNlZubq/Hjx6tWrVpyu91q0aKFlixZ4lnucrmUmpqq8ePHy+Vyady4cXm2MWDAAKWkpOi5557zHDnat2+fZ3lqaqpatWqlsmXL6oYbbtCOHTu83v/ee+/p2muvVenSpVWvXj0lJiZetLxt2bJFQUFBnoczHjt2TEFBQbrrrrs860yYMEHt27f3ek/37t0VEhKiatWq6Z577tFPP/3ktQ+SkpJUt25dlSlTRs2bN8+zj38rMzNT3bt3V7t27TgdBFyIARBQ+vfvb3r37n3BZc2bNzfdu3f3TD/77LPm888/N3v37jXLli0zDRs2NEOHDvUsHzJkiOnRo4fXNm699VZz7733GmOMefrpp01kZKRZsWKF2bdvn1m5cqV54403Lppt6tSpJjQ01MyfP99s377djBkzxpQsWdJ89913xhhjDh48aJo0aWL+/ve/m4MHD5qTJ0/m2caJEydM27ZtzZAhQ8zBgwfNwYMHzblz58zy5cuNJHPdddeZ5ORk8+2335obb7zR3HDDDZ73rlixwoSGhpp58+aZ3bt3m08//dRERUWZcePGXTBvbm6uqVKlilm0aJExxph3333XVKlSxVSvXt2zTpcuXcyjjz5qjDHm+PHjJjw83MTHx5tt27aZjRs3mq5du5rY2FjP+hMmTDCNGjUyS5YsMbt37zZz5841brfbJCcnG2OM53scP37cHD9+3Nxwww2mW7du5vTp0xfdr0BxRlEBAsylisqdd95pGjdufNH3Llq0yFSuXNkz/cUXX5gSJUqYAwcOGGOMOXz4sAkODvb8Un3ooYdMp06dTG5ubr6y1ahRw0ycONFrXuvWrc0DDzzgmW7evLlJSEi45HY6duxohg8f7jXv/C/4pUuXeuZ9+OGHRpL55ZdfjDHGdO7c2UyaNMnrfa+99pqJiIi46Gf16dPHDBs2zBhjzIgRI8zo0aNNWFiY2bZtm8nOzjZly5Y1n376qTHGmCeffNJ069bN6/1paWlGktmxY4c5c+aMKVu2rFmzZo3XOoMHDzZ9+/b1+h7btm0zzZo1M3/+859NVlbWJfcHUJzxrB+gCDHGeD1raunSpUpKStL27duVkZGhc+fO6cyZM8rMzFTZsmXVpk0bNWnSRK+88orGjh2r//znP6pTp446dOgg6dfTMF27dlXDhg118803q1evXurWrdsFPzsjI0MHDhxQu3btvOa3a9dOmzZt8tt3bNasmefPERERkqQjR46odu3a2rRpk1avXq2JEyd61snJyfH6zr/XsWNHzZo1S5KUkpKiSZMm6bvvvlNycrKOHTums2fPer7Tpk2btHz5coWEhOTZzu7du3X27FllZmaqa9euXsuys7PVsmVLr3ldu3ZVmzZt9Oabb6pEiRKXuTeAoo+iAhQh27ZtU926dSVJ+/btU69evTR06FBNnDhRlSpV0qpVqzR48GBlZ2d7fmnfd999mj59usaOHau5c+dq4MCBnrJz7bXXau/evfr444+1dOlS/c///I+6dOlyyTEXBa1kyZKeP5/Pef5qp1OnTikxMVF9+vTJ877SpUtfcHvnrzDauXOntm7dqvbt22v79u1KTk7W8ePHPeNhzm//lltu0ZQpU/JsJyIiQlu2bJEkffjhh6pZs6bXcrfb7TXds2dPLV68WFu3blXTpk3z+/WBYoeiAhQRn3/+uTZv3qyRI0dK+nXQaW5urv75z38qKOjXcfMLFy7M8767775bY8aM0b/+9S9t3bpV/fv391oeGhqqO++8U3feeaf+8pe/6Oabb9axY8dUqVKlPOvVqFFDq1evVseOHT3zV69erTZt2vj0XUqVKqWcnByf3iP9Wqx27NihBg0a5Ps9TZs2VVhYmCZMmKAWLVooJCREMTExmjJlio4fP66YmBiv7S9evFhRUVEKDs77z2d0dLTcbrf279/vtQ8uZPLkyQoJCVHnzp2VnJys6OjofGcGihOKChCAsrKydOjQIeXk5Ojw4cNasmSJkpKS1KtXL917772SpAYNGujs2bN6/vnndcstt2j16tWaMWNGnm2FhYWpT58+Gj16tLp166ZatWp5lk2dOlURERFq2bKlgoKCtGjRIlWvXl0VK1a8YK7Ro0crISFB9evXV4sWLTR37lx9/fXXev311336flFRUfriiy+0b98+hYSE5ClFF/PEE0+oV69eql27tv7yl78oKChImzZt0pYtWzRhwoQLvsflcqlDhw56/fXXNWrUKEm/nl7KysrSsmXLFBcX51l32LBhmj17tvr27asxY8aoUqVK2rVrlxYsWKCXXnpJ5cuX16hRozRy5Ejl5uaqffv2Sk9P1+rVqxUaGpqnBD7zzDPKyclRp06dlJycrEaNGvm0n4BiwelBMgB8079/fyPJSDLBwcEmPDzcdOnSxcyZM8fk5OR4rTt16lQTERFhypQpY2666Sbz6quveq44+a1ly5YZSWbhwoVe82fNmmVatGhhypUrZ0JDQ03nzp3Nxo0bL5otJyfHjBs3ztSsWdOULFnSNG/e3Hz88cde6+RnMO2OHTvM9ddfb8qUKWMkmb1793pdLXPeV1995Vl+3pIlS8wNN9xgypQpY0JDQ02bNm3MrFmzLvl5zz77rJHklbV3794mODg4z5VJ3333nbn99ttNxYoVTZkyZUyjRo3MiBEjPAOOc3NzzbRp00zDhg1NyZIlTXh4uLnppptMSkqKMcZc8Hs89NBDJiIiwuzYseOSOYHiyGWMMY61JABWeO211zRy5EgdOHBApUqVcjoOAHhw6gcoxjIzM3Xw4EFNnjxZf/vb3ygpAKzDnWmBYuypp55So0aNVL16dcXHxzsdBwDy4NQPAACwFkdUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1/g9etFpr7XBIsQAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] @@ -1966,49 +2015,44 @@ "name": "stdout", "output_type": "stream", "text": [ - "commit a8cb9e5422a6f8d9bde1bc34a80c0fd3df83b180\n", - "Author: epickens <eeepickens@gmail.com>\n", - "Date: Mon May 13 09:35:52 2024 -0500\n", - "\n", - " install help files\n", - "\n", - "commit 1aab05feb3c9204f65b5a13a7828aa8b1bf7f3b3\n", - "Author: ELLIOT E PICKENS <eepickens@wisc.edu>\n", - "Date: Wed Apr 17 11:32:37 2024 -0500\n", + "commit 318d847c6d755fe1e35e2b135710e657e7d01b18\n", + "Author: Jaime Zepeda Pina <zepedapina@wisc.edu>\n", + "Date: Sat Oct 12 18:52:41 2024 +0000\n", "\n", - " Update .gitlab-ci.yml\n", + " MP3: updated lcu bank lei value\n", "\n", - "commit 083017fd36f00e46605b22d71d189940c4789959\n", - "Author: JINLANG WANG <jwang2775@wisc.edu>\n", - "Date: Tue Apr 16 09:26:03 2024 -0500\n", + "commit 3df5a4fb8b95885a2250919abdbe032246c5d37c\n", + "Author: gsingh58 <gurmail-singh@cs.wisc.edu>\n", + "Date: Tue Oct 1 16:56:33 2024 -0500\n", "\n", - " update lab11\n", + " pushed the files saved before reverting a merge request\n", "\n", - "commit 8e8266174ae62576a883f621b99541999551f4b0\n", - "Author: epickens <eeepickens@gmail.com>\n", - "Date: Mon Apr 15 18:13:27 2024 -0500\n", + "commit b3c1e58609d71d081834cba5f6e17033c560373a\n", + "Author: MUHAMMAD MUSA <mmusa2@wisc.edu>\n", + "Date: Tue Oct 1 16:24:38 2024 -0500\n", "\n", - " fixing typo\n", + " Revert \"Merge branch 'jaime' into 'main'\"\n", + " \n", + " This reverts merge request !7\n", "\n", - "commit 6bb82bddcb31198956959271b584181b0c05d6a3\n", - "Author: epickens <eeepickens@gmail.com>\n", - "Date: Sat Apr 13 00:28:44 2024 -0500\n", + "commit 2bb1b38044c0be659c5dec6cf815f572eb78c035\n", + "Author: muhammad-musa-ml <81491067+muhammad-musa-ml@users.noreply.github.com>\n", + "Date: Mon Sep 30 16:40:23 2024 -0500\n", "\n", - " tester.py triple check\n", + " updated labe3 readme for loans.py\n", "\n", - "commit 09c598886ae7881621935a2567fb05afffdc2540\n", - "Author: ELLIOT E PICKENS <eepickens@wisc.edu>\n", - "Date: Fri Apr 12 13:37:04 2024 -0500\n", + "commit 9dc5f744338af0016f043df7db831e9c4a9c2817\n", + "Author: muhammad-musa-ml <81491067+muhammad-musa-ml@users.noreply.github.com>\n", + "Date: Tue Sep 24 00:38:21 2024 -0500\n", "\n", - " Update .comp_file\n", + " grading guidelines updated for MP1 and MP2\n", "\n", - "commit 26829ccdac7c9db80792ef0aa938cafcdfdb39c8\n", - "Author: gsingh58 <gurmail-singh@w\n" + "co\n" ] } ], "source": [ - "git_log_output = str(check_output([\"git\", \"log\"], cwd=\"../../projects-and-labs\"), encoding=\"utf-8\")\n", + "git_log_output = str(check_output([\"git\", \"log\"], cwd=\"../../labs-and-projects\"), encoding=\"utf-8\")\n", "print(git_log_output[:1000])" ] }, @@ -2021,25 +2065,16 @@ { "data": { "text/plain": [ - "[' MP6 Upload',\n", - " ' mp5 release',\n", - " ' P4 pipeline update',\n", - " ' P4 released',\n", - " ' fixing pipeline and adding backup mp3 tester file to ease confusion',\n", - " ' mp3 install help',\n", - " ' pipeline update for MP3',\n", - " ' p3 pipeline changes',\n", - " ' P4 pipeline setup',\n", - " ' updating MP3 tester.py and MP3 pipeline',\n", - " ' P3 released',\n", - " ' P3 released',\n", - " ' P2 key updated',\n", - " ' MP2 Update/Fix to the tester',\n", - " ' MP2 key fix + readme update',\n", - " ' mp1 readme updated',\n", - " ' P2 Release',\n", - " ' gitlab tutorial + mp1 release',\n", - " ' initial commit (P1)']" + "[' MP3: updated lcu bank lei value',\n", + " ' grading guidelines updated for MP1 and MP2',\n", + " ' Updated MP2 README',\n", + " ' fixed Q3 and Q4 in MP2',\n", + " ' Fixed Q3 and Q4 in MP2',\n", + " ' changed answer for Q11 in MP1 to 543 and updated tolerance to +-2',\n", + " ' changed answer for Q11 in MP1 to 543 and updated tolerance to +-2',\n", + " ' Update .gitlab-ci.yml file. Fixed type mp3 -> mp4',\n", + " ' updated mp1',\n", + " ' P1-3 .compfile added']" ] }, "execution_count": 66, @@ -2048,7 +2083,7 @@ } ], "source": [ - "re.findall(r\".*[pP][1-7].*\", git_log_output)" + "re.findall(r\".*[pP][1-8].*\", git_log_output)" ] }, { diff --git a/lecture-material/15-Regex/15-regex_001.ipynb b/lecture-material/15-Regex/15-regex_001.ipynb index fe3e7f92d886d96b4accdf378b2b831541108a66..5621c943684a7a7c7a7cca96308abd47b07e2192 100644 --- a/lecture-material/15-Regex/15-regex_001.ipynb +++ b/lecture-material/15-Regex/15-regex_001.ipynb @@ -61,7 +61,7 @@ "metadata": {}, "outputs": [], "source": [ - "msg = \"In CS 320,\\tthere are 26 lectures, 13 labs, 3 exams, 7 projects, and 1000 things to learn. CS 320 is awesome!\"\n", + "msg = \"In CS 320,\\tthere are 26 lectures, 13 labs, 3 exams, 8 projects, and 1000 things to learn. CS 320 is awesome!\"\n", "\n", "# does the string contain \"320\"?\n", "has_320 = msg.find(\"320\") >= 0\n", @@ -144,10 +144,10 @@ "\"\"\"\n", "print(s2)\n", "\n", - "s3 = \"In CS 320, there are 13 labs, 7 projects, 26 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", + "s3 = \"In CS 320, there are 13 labs, 8 projects, 26 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", "print(s3)\n", "\n", - "s4 = \"\"\"In CS 320, there are 13 labs, 7 projects,\n", + "s4 = \"\"\"In CS 320, there are 13 labs, 8 projects,\n", "26 lectures, and 1000 things to learn. CS 320 is awesome!\"\"\"\n", "print(s4)" ] @@ -978,7 +978,7 @@ "id": "c0a4d8c9-722b-490a-b913-f1d9dedb83c3", "metadata": {}, "source": [ - "In CS <b>320</b>, there are <b>26</b> lectures, <b>13</b> labs, <b>3</b> exams, <b>7</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" + "In CS <b>320</b>, there are <b>26</b> lectures, <b>13</b> labs, <b>3</b> exams, <b>8</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" ] }, { diff --git a/lecture-material/15-Regex/15-regex_002.ipynb b/lecture-material/15-Regex/15-regex_002.ipynb index fe3e7f92d886d96b4accdf378b2b831541108a66..5621c943684a7a7c7a7cca96308abd47b07e2192 100644 --- a/lecture-material/15-Regex/15-regex_002.ipynb +++ b/lecture-material/15-Regex/15-regex_002.ipynb @@ -61,7 +61,7 @@ "metadata": {}, "outputs": [], "source": [ - "msg = \"In CS 320,\\tthere are 26 lectures, 13 labs, 3 exams, 7 projects, and 1000 things to learn. CS 320 is awesome!\"\n", + "msg = \"In CS 320,\\tthere are 26 lectures, 13 labs, 3 exams, 8 projects, and 1000 things to learn. CS 320 is awesome!\"\n", "\n", "# does the string contain \"320\"?\n", "has_320 = msg.find(\"320\") >= 0\n", @@ -144,10 +144,10 @@ "\"\"\"\n", "print(s2)\n", "\n", - "s3 = \"In CS 320, there are 13 labs, 7 projects, 26 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", + "s3 = \"In CS 320, there are 13 labs, 8 projects, 26 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", "print(s3)\n", "\n", - "s4 = \"\"\"In CS 320, there are 13 labs, 7 projects,\n", + "s4 = \"\"\"In CS 320, there are 13 labs, 8 projects,\n", "26 lectures, and 1000 things to learn. CS 320 is awesome!\"\"\"\n", "print(s4)" ] @@ -978,7 +978,7 @@ "id": "c0a4d8c9-722b-490a-b913-f1d9dedb83c3", "metadata": {}, "source": [ - "In CS <b>320</b>, there are <b>26</b> lectures, <b>13</b> labs, <b>3</b> exams, <b>7</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" + "In CS <b>320</b>, there are <b>26</b> lectures, <b>13</b> labs, <b>3</b> exams, <b>8</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" ] }, {