MENG21 commited on
Commit
3572b20
·
1 Parent(s): 9c47b70
Files changed (2) hide show
  1. app.py +43 -38
  2. encrypted_grades.csv +1 -1
app.py CHANGED
@@ -124,50 +124,55 @@ def main():
124
  df = load_data()
125
 
126
  # Look up the student's information using their email
127
- student = df[df['EMAIL'].str.lower() == user_info['email'].lower()]
128
 
129
- if not student.empty:
130
  st.markdown("---")
131
  st.subheader('Your Grade Information:')
132
 
133
- col1, col2 = st.columns(2)
134
-
135
- with col1:
136
- st.markdown("<p class='big-font'>Name</p>", unsafe_allow_html=True)
137
- st.write(f"{student['NAME'].values[0]}")
138
 
139
- st.markdown("<p class='big-font'>ID</p>", unsafe_allow_html=True)
140
- st.write(f"{student['ID'].values[0]}")
141
-
142
- with col2:
143
- st.markdown("<p class='big-font'>Grade</p>", unsafe_allow_html=True)
144
- grade = student['GRADE'].values[0]
145
- if pd.isna(grade):
146
- grade_display = "N/A"
147
- else:
148
- grade_display = f"{grade:.2f}"
149
- st.write(grade_display)
150
 
151
- st.markdown("<p class='big-font'>Remarks</p>", unsafe_allow_html=True)
152
- remarks = student['REMARKS'].values[0]
153
- if remarks == "Passed":
154
- st.success(remarks)
155
- elif remarks == "Conditional":
156
- st.warning(remarks)
157
- else:
158
- st.write(remarks)
159
-
160
- if not pd.isna(grade):
161
- if grade > 1.9:
162
- message = f"Keep up the good work! Your grade of {grade:.2f} shows dedication. Consider seeking additional support to further improve your performance."
163
- st.markdown(f"<p class='message'>{message}</p>", unsafe_allow_html=True)
164
- else:
165
- message = f"Congratulations! Your outstanding grade of {grade:.2f} demonstrates exceptional performance. Keep up the excellent work!"
166
- st.markdown(f"<p class='message'>{message}</p>", unsafe_allow_html=True)
167
-
168
- if remarks == "Conditional":
169
- warning_message = "Warning: Your current status is Conditional. You need to pass or achieve a higher grade in the final term to improve your standing."
170
- st.markdown(f"<p class='warning-message'>{warning_message}</p>", unsafe_allow_html=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  else:
172
  st.error('Your email is not found in our records. Please contact the administrator.')
173
 
 
124
  df = load_data()
125
 
126
  # Look up the student's information using their email
127
+ student_records = df[df['EMAIL'].str.lower() == user_info['email'].lower()]
128
 
129
+ if not student_records.empty:
130
  st.markdown("---")
131
  st.subheader('Your Grade Information:')
132
 
133
+ for index, record in student_records.iterrows():
134
+ st.markdown(f"### Course: {record['COURSE']}")
 
 
 
135
 
136
+ col1, col2 = st.columns(2)
 
 
 
 
 
 
 
 
 
 
137
 
138
+ with col1:
139
+ st.markdown("<p class='big-font'>Name</p>", unsafe_allow_html=True)
140
+ st.write(f"{record['NAME']}")
141
+
142
+ st.markdown("<p class='big-font'>ID</p>", unsafe_allow_html=True)
143
+ st.write(f"{record['ID']}")
144
+
145
+ with col2:
146
+ st.markdown("<p class='big-font'>Grade</p>", unsafe_allow_html=True)
147
+ grade = record['GRADE']
148
+ if pd.isna(grade):
149
+ grade_display = "N/A"
150
+ else:
151
+ grade_display = f"{grade:.2f}"
152
+ st.write(grade_display)
153
+
154
+ st.markdown("<p class='big-font'>Remarks</p>", unsafe_allow_html=True)
155
+ remarks = record['REMARKS']
156
+ if remarks == "Passed":
157
+ st.success(remarks)
158
+ elif remarks == "Conditional":
159
+ st.warning(remarks)
160
+ else:
161
+ st.write(remarks)
162
+
163
+ if not pd.isna(grade):
164
+ if grade > 1.9:
165
+ message = f"Keep up the good work! Your grade of {grade:.2f} shows dedication. Consider seeking additional support to further improve your performance."
166
+ st.markdown(f"<p class='message'>{message}</p>", unsafe_allow_html=True)
167
+ else:
168
+ message = f"Congratulations! Your outstanding grade of {grade:.2f} demonstrates exceptional performance. Keep up the excellent work!"
169
+ st.markdown(f"<p class='message'>{message}</p>", unsafe_allow_html=True)
170
+
171
+ if remarks == "Conditional":
172
+ warning_message = "Warning: Your current status is Conditional. You need to pass or achieve a higher grade in the final term to improve your standing."
173
+ st.markdown(f"<p class='warning-message'>{warning_message}</p>", unsafe_allow_html=True)
174
+
175
+ st.markdown("---")
176
  else:
177
  st.error('Your email is not found in our records. Please contact the administrator.')
178
 
encrypted_grades.csv CHANGED
@@ -1 +1 @@
1
- gAAAAABnC1i2yFabbB-OM79Oj1t0FtsrKYI3bVog_tXt4BlspouWua6MmzCNM5mcyJ-Ww0nUy0Q4LLdzgA0RZ8P90l1ff3JaNG7jI_BcmSApOdWIRl-f0UU99qzZsa2nW6l6T6rYR_uhVQ6eYG6wg1nF0QP6ogzbD7tELtOHfYwUh7wZKzpz8FrBMll7MNjZOXaM9rUsMDJc-jc3QlEgPbQwEW58AupiYltQw5t6rczU1xHUeVMIfnEjD_nwKFsQGDEoBVclsbdKicSVKTC0xODrZascD4JiKG2moXB_4iDEvb9RI9brfcts616mjLE-6Bp4qV6732aHzKobzGvjFMkCBXdm3ly9mbEyoDoRQZ9woNJB-vJ_dF2wczf291ujZvm-ug-Z0YqU9QcC8rETUfvqz-HV4mUfSeCIbsrOgxL9iJd9AtcCS6cMvucPF1IT3_DbMEa9-IIrszxm2XQiJoUYHBINFEjoVy_odhTU1l-qn-qOOLX6hU_uEqHcPBn2CmLOVH2To2zTGHzU5Uni8SeCIdHkLcBMIypbfOOTkvcHly6ZkQllHwPAEUpydXKD2efQpCZJVG2n9f8kNdeoqPmu5RBdC3B8z9ZASGaPH7hyIwzwM93F5HofDrhaSJY8gM8Hj7GXSN9iTA1RekRV0lrQ2EuPYZVWvCbkd9LhjOfyqKt_ntPXih1U8qMQ4kxjYVKHJyflPpCzaIbw8JTzo_U_W93kJozSEAxSOpM8-avjdlF-JrZXOcP-FgxwavyYFxFTu1tJH3vG8torI2hMDksY5Gz4YxzAPOJKx86k97NpQU4pqYJtZiXRtuPrUqzR_WlJtopAlZlVQjLu5uM6VsxKSg9j6wGkyy4XKBxUJPeo4tdrpxEO3ZHIoIQ4UfvZ6qCMRYvJj4njlcfT9rlFvT49_hO7FKYnP3NAJLRdrP81S3UCVMJnOKURw24JJpiG5R-rfkrssIhCH248N4deZhpG8HciIedyAa2GyV68QUqF8HY2UUdDK5HIXRwf60Zoys-4z7zFTsJUweihJieG0q-RuRW0A_1CE2n_EmJAgo7YCFRLykukqaerSN5-LAd6o1kkuKitAJcFVnWA_JNlwhWD-990-3xzaj-zkEYtztI-0x3vtXIxesd0jxRynR3uyx3q9nIbkz7lT1ltorKbGgVrvcFyI6GS0a3-PXMsHrDUfQhP2yN449uuXLmiNzqUcRv83MFfH_6XkJV9RIsWAjS-Ao1NtT-QzPOxXx77Olq7sVz0JLe52YMD-yJXIBeHgMErAgg-88yq8Sii_6qGbgBtA3qD2IEV-BVi_9-tOM379RBu2zfT-T3jzOIknEUhHaPPUz3DACCbmGZcZZn87TfKZ-j3IOaJWCHxS0O2qyiWD8xNSqT9-acVvTGMSBw7gkVyzirr4_n38xHSl9yw3PyKwE5b4cTh5AUA_FgChywmdpyPmVjcho-LVT7HaAv6YgDZX3mnNCZ1AkljqBqSCgLbwtAqw_jHvzvQVyysOtauEwrgGTqVShs7IagB_F-vhYbo--FgukPNEMXDT8tikG-GYvZaHppiSfcdcWnZ6yi8YlKD4zdYz7ykCHpHgma0575DhzeQokakz4MGYMhhJ7xa1Tb3M9lPU6yCkRMLTQuv6UG7FSUAPzJO90SkUgWVCkZrtBSCzqGrEpxmyPolGof4I1MDuyFuYP5njNQbymX8jPzz3Q8zWrIBDLa0HZnQAOlfYrfi673Ovd0YJPBYuwCkU8ZgOGrqqROE1iQsttz30SOzJWBasuuu4v5vOezSk3N4Z6i_5XHuxaSoaaZ7mDa9wqDFAPkSZjteouiC6qI_PfilDuiBcE2YyypTnEEiClKh_bAOjL_hhSE_pcNAUG3f2CJn3XWPbvXqk58XJIJXNpimKZfoHmW9Li_JLJO-hHYNngBwaL7qITcWd8TLHw_LACORL0OPH4TO--0gBWPaH4L-dlphyHZ3MYC5xn4roxotDeXOpIWKKTsOVaFSWDR-v1N2kB5IDYQy5G_pnw3II3AZT-XsVAvsCuoD9gfstJTjxXMVQCnh7Z4cK6maGbxawDdv2hBeEyVBPg4rc8Bg2vMO3Qat46b7IYo7BHh99L94Y1AvNzRCVIA1PBIAXrpLO7AikbhJoi4ZVdaH96G0adxwAsdUVIeu_kd0p-cIn8jao8Tue-RpURZLJdzkMUFGzRnuoeW9iVx8iS5VBOdBDIK31-63hPrqbMcrwojZ3KdP2ni74tgBfhKwP9KChd9stXA5Ka1quq8WcoA7GFJt7o9ilCe6odqFIbtkhTANYBSegddq6_DJ5IBwqu81h3H-XzmkL4remUbmZgwGjwDkfKO88LEBhSgf3e2Szo_nIM063Gttk1xjk9va_HtKahL-FdNQdnhAtaYJina5OtXspjk0gX4oavVF9lI9SkN-tP_dOALUMqoK4wakL0pxBsfyEc9jOFWoNnD214T7dPg1-CsrbclmXz3UVuVdB4xW_hGKsbuXsj-JjxjRkWaiz9sm5LHFCrDwzg1C-ieMUM0l3baK_NkDZz3Bn3nR1ESaacUW-TS3jRshCFJVVhSVkpOlRabE52gkUTZ4uyufZVMzv11wPaO4pRd8U3uiV4aXT4wlX2AWYmy5cpiTLidhyTrU0EjWKnsjKQNZAD6fACpudBpm_HaTWrI-4WPx1xCOegi4IX_5sVCaziUl0BU77fCp7owvcX-Ojx6R5BYzxWbDBbKrqHYbfjXxv8f8_zga0elotZmQRMxUbUy1QmXYaTL0zDBMD6qJYGiad-sJqWoDkyyOOTGXlRVd1xqjXA7NVE95UNelnNjz9anSW-0HUbgt6w6NHkB0RY83cND9R_np7Hmf8YyGgrHXQYUqhvOTEkuDJqQJ11t9cUqK22HyrLSeqpAItWLwTdCYZAieI8lOD0BXiiI9WlifafTW1xvo7KFb0NR7orr8NSVaDx5IVm2DwtJ0aSOBp2mv3MbyjxvAhggKw6TB9x6oZUxzwaYzdQkIEYbmjvcWUOkSFeClQVMd2lnPL5Jzx7J37hHR0GBJ0xOQh3YHmN-4p6c-diOJsXrnFLRcleZ_u2XUpJeRNkpugLAnW58BmwYslKh3h6oaBYH9eXgYniKtYcjtGy4FVvGJO-u-Q715vDrEvoWimdBYthlRMs5h73cK81zWPFF7BizmFbzJvRnZd3k0TCH18_Fg1bX238jYcO9d8uZGiDKsIR1_5Hy3ZfpCXLzA1ID5qGRs3YRHzEW5w_YTQNGviEyYPyPI45XdYZWKY0sGq9EKWZGdiZKfikIh-JpL6uZgDRkeZaXmL8l7zIlPcQVw-1ehPYX7U7jeA5XRr2s0biEFxv_Lu7__fkx3PjXDJ9egtsiKRqX-yAXWcsD2C1TIPaDQJ8F31jOBizXDoRc-nmaz_VFVyc84el24RZqpfI94Yv1CgSQ4Np2jdO0BWbbt2WCcyp3ZfZShK5cf3w1_7nUo3zuT1Mx5dZp-wLttvBRXlIZyG3cox2MMaEePgZ-i0o3ElX0H1VuS-vhb1DneF0a51PoR8MwnNJdi9aZx9GToUdcXiS3Mkuz1Ll1HDP3L8-jV93otcntBzPJtwAZjZ3mCfVyKDL5yTmN6ureT5JilWEX_oMZ37as1OecicJIOlglnqAMNqhYsg2yMddofYvTx1p4CypbaxDV1M3gC0eo0zn9-njggdz6hTIdsDHAA2F7K3Ccf0eBtxNRyHGIxfKl-wEcYzNW9iBB1SjbOZ97rofCU7FNjynswJ-MqXaBomIpFkFy2NMOO_9zjh7vb3Ru4_xE7O5JWsPt0qw3Qbig67jFLWTnUYM0-wMWxqzKoAucEjO3qIO4l7SY8TTQ4ch2r8m3M4FlfuyXfV9dYfKvCdkgKXOeZXOM_A3ba_Mhuk9NyDhLTvESNU769O9WmJJLtMdILnU8vKzXt4e0u5yKyoFXMTiqPzo6ELZLxsjWtkYpbkIC1glNSUQUKuIYnadWImy7Vsa9OTvhqp3p6_uz_VThZvxubd6Gq5U9Hr3MSxa76MdrZh1r3y02oY-WNyCl04tWT9nvmxMCAmfq3m3YgzGSw6rzq_bllSYeFVPiB2L0TuJGONzDuCKIGJNs6M05pFyHPgSt_1UfnG5DFZ6cheqL2HKNjXw_pjflBQvI8abwIsdBx_hPCR13ugaHltW9IDOjRCLN75mnwvVaOl2I0iNno8-Zkk44q1SvGuNrsAnqxs2TbQORICwsj0Ns6gtScqvwNYQGrnCbT_p5fSC_ex0gMEaN_HOgHeXWogorxVCLGMzJn3B20JbCYyDYGMydY59jbNW100kBuTAxF28NM72C3T_dqEUhBGSY-DyWgDWigM4FpLXcx6gB_kaN13OscXiiBUfytq3FFB3tYB7GBLzDSgyJZDu7wtsf7fR8j1FUgbBKZF8X6orsFYu3e2Tx9Ldi8wZL06D7fBE9CxhvXLZRir1__aH33OA4U1i_7Vqlvq6lgbdxsRAxPwDIOUhUuS225_ODL0VKT2x_VEEIjo2DWtFXQzqvZoFnRNJMI5DVnV7pz3xzMGQluidUz2PebjpQiL9xfPzGbLF20JM1Ik6qh1eEOB9pROgg5eMuYGABc-fNqQ2G4mYoSkhofoV2RIzrPHgrHG3wIC3He8toecMsk48sqWRj4Wgyo4lUEjcSDRVrARsyncKOzxMgIIav3Um_bASN1pSzu2pmy9-wk-b5brDatPla1RfWdF-irYDYdBrNqBM6zqtKstMZjTCiws_k0x35t899_mC8bTsx8mwAUUdJJ11N0Z1eWKHH6omvhsYeIzeJlHI75LgHlgCPP93zMfBXfp6B0PIBZz0tSCL5awLul7OC0RsDN9dzTPCIxxvQ6aaKlQ__ZRkJaRBbyg2s80Ues9Fb8GCkWfPlyaFtjjKO0fz0C5xjac7kEViqzzNZANC0krLsCwffXINeu5vgKY_fcT2Nq9yDyez6WrxX1GcW1Ih0fzirPEEah7niQRCTqb0bcfcXER60w4fFiYcC3pWD_Bj7WICtFe0OrTszplx87_cFIlVjrCAn3JL4koofBfP1AVn-1QxeKc8uDQmZILrdHuYRQnCEH-xEzgbqleDM3MKwoxZcHcBGwUFRW8J5jIRm006x9Or68wKu4tUhUvRr8HbfaCjjsjLqS2czgbPy2DWFoZcQJgk_iTc6VSFz6QJRwbXJJJkgU98PX9vFoC3-4b4tXhWx2kvrymi_LOuMA7DTK21Sy0tjDNxc53-7JK3GbweN9dylwT6a2pao1iZhLUF5BEud1wIORtCJM_y7vAFVhyThwzgJ5lrGjMnWqw7EqSZcthdC7i3EJjRXsuGCelD9lMeUwpdFSte1Ww6RdVLYo5s214aLiFPey5eeLZGVmppgxKJvlxBdVKak_H6SZAO0KaogPKeKB5GVypTOBGg6RZCAU5frZFm0dM7-YPz3q3cWz8rTwTL8MVdmYTJkdMtkEM_TaOHndnmSO0_Hu8ZBipUn-1D4hTuNrLJy9MayKcs-rwbWypcxYHX76WMZ_4WkTLk4V5CanM7_-6q1f2Radx32WLEz-YWsDaVqPmrv_UDfDXveUY4FTEpxa1LRzAXT50Iq9amM6fqA2JndwHuzaSPHtvfEz-PukuTVF0UoOvurXxHrROmMmkWM3TQ5u5g==
 
1
+ gAAAAABnC132BQLHDLhVnhoGvbPrvwKZMoTo8fDI3Ioqbn_B6CkaqJ2emJAxCLi_RK2x4TX3YT7N9PMFynn8IInKOM3g2x3nqDmO7PdUcf7oEfgXJotD8eQHo6YpmqUtpiUH0CSBBSCusjPi_e7qkWrhd5fWI9F1DwFoe1puO51278iwnfwJ_caSFNl3OBTheDoPpN2iBqgCyVktEW5eDiOUnWDQaSBLcCgbv-c1U5uLFoErW5M4outhYqZlxAzlK6noWBzpJeOhMyVIMdZcNLwJi6qjaeW48bXr_4V0_cZl6UxoPTOCetcbj1a0RIxRsIpz26xA-t9len7wYa8gf0YQC5iwQdF0Rz0PO8Crk7Btgvxo447xMZzQg-KduWmYDd9cqSWnwWcnSj832SCHXjTNUuFn4pbBAGsMiK-5sjSR1zGkK76BTdzgm4jmuzW0_eqkxegPu6frk8DltmQDh6u8bAGcMFWw9BlAtGb0pBcPVnYukgvtdonUFaZ64f13KhHRz6yopRbC9B484BLms8clR8Tt924TTeXctjtU2aBwimRXx7Ct7sxxmTKuN3AMANPYJSOeexLGbhDJXT95JPo5CRxaX1m5eHBCOr7X3gO3DvcIU96h3cAGmZ75FpJNY3c4QqSfX7-Gpig6z8koOQVkDUfNzDqgCRcV859hzSBhUiJKoaDqmNRXFML7ocION9J0rLMJzWDFlOlqiBBio98BaZMWQLBZx9IKun5bWQglT42CHZmsTWSRKLAFkPTYFFCSAmp_vOBmJ1XTVFmrkXlsVFqlLHqTU1uuuI8J1utF2uOxnK9wW9xGwzO0nlFp317_yPReAMctiVfn-8BS3wcS3oghRY-3s8n24bimyYjMyLY-54Yz0EtEpBtGMXDqc3OVOmuuXEo58aw_ZJlp-5ei-hjQj3WLNGLWwcuLv0useNQ4ITEcHtPgw1D1gI-82oi6EmjiTWXVMfePe62JMLFlyyNHRaKy4pEgOxD6yQSItLMDkBS-e5LaE6GNNnZRuMB9PAkzaRmcvGyQEVcCHqVg1qSbbQYAThq1L6Dfq8IVfj3_IBiNHqqHxiFCMOzR64ghIpz_ss-2PuF9jEj364_2x38UVks-ZjUPj_iWrwEVa04vlvFACQgcTo7yu82xRL7Ct2_AyMcLrRD0FNDXgOmXm1SbBO_FwJVEMxacSP-P-6zz_Qb-E-rN4qhJ3Pvk8MN3YOLYrURBlfeCNKQTfjFYqNkxk7pbqI3HBmEIC5Wdr_J7KxJ5mCvYd5s10olQQ2-huv8M8bzaeiEgm4VylW3R_Kj2LLagQXENZufRo_TtIC_qlL5ToLnX9YfED-10_Gzdk7cw7zOvirY8_jgoQJFAmdhubT3SZPXJA0IxxK9mw3bkHR474g-NAiWOpUPhE6cJ7ETylw5t6i-36WKST7Ff-N9c2OsbqYxL2QthyvopCX-7c11t1pnmTVq_xz_O8xXHC_g07FTQTsRZzN6wtN9NtiQBYoTLqdpGn87Esb26uQKQePoUSQLdubLHEge86UHZh98qP0qEFv3r5CRVfkZs9c5S5r_wOC4KUXzqe5xfsb2LjuuIcgq4YM_Xoz-I9hQ3jy0XCBjPaF90NNyGVzW66_4beibge-osMySeenLcOiPvXNl0UUchpJdq1Z3X-3TRvbx47RYt5c5ey1DwTRJZnI4bz44ikYCxRld-iH2UQWhpqz3i0vggGujwhzsxJa2Csd2DkKcbDBSvfk_2NXq3SHJpR9uWL-E7e2uGpeMXt2O2W-Ns3rLCCn_0A7oFXh3-PovsW9r7SHv3OvTx5p-BhUsYyV6UTtAz7QP3sjXZnQB1Gg3-2bEWo0R6smTVBMDlWJ3nBx4rjuPquTfbqYqQP5v4VK_GXSqt2w0Pba3ToHR6sJkkRMLT9XQHI4X9nBJtfwy65NEjIK9JGbBmTpG7vk4apHqE94ET2ifmIbDWna01fR2jPdj3tukkNOHWezvfENVK87ZXUQLwQmRjrzSIJy9bJw7VoCMTSUuYrW2Osz0vhw4B1m3ogHdzRcC3_vSErUtyvI4kB3uAQNgt2bTSLk7kws3ZHkXLwo-bjv4FnkHBOewWZ0MvnuGxaiovHdvUmZw3SFJvCok2oZ6__4XuSkw-1FNol1fzjYoq0_HGr25DA93pmp8jom-o4RLJmvmjEypUnO1JfIP10gOWZt_eK8KueP7VvSDs_xAdVA7pkZf0J2vtwZuy_AL5n0_u1oiNc6Hbg-l8GcwpWhkb80NeBxhcHtXAWPLeKmLytBaTjFlNcyfM92IJeTelRjApxl6NTXY52RcF7AThmuZDry7tF4D332X10sQ3UglESK2JzZ9lbxQuADp6eRONK7KXLw8xUr1BzAAZ3hfI-n-fITiAcvUdnKI5k-xN6AXRWgkpzm23yEt9fXdABIasHmhwMq4F7UMtHHWizUIyelyJckf0M0euCweDiDOxtJf_r8uam3xIJTimoRlCYQ92xul7a4OikLvV9IL2nSwIfB08zZdPjmpvEpTp5IwSCOd0FhHSEzQo9bF6omeh5FC7oKA8zNqbXJ7H5ZmSP8iKDIt9HxkEn92f9J-Rkwv9bzc7EetgRaqVVgrcrTZ8oMqnGDEoaFVlFQhVIDH0cAzKvhaHd40IBvn_FOtk7Q_zbiD4nXgC6pQcSCf5olaonDW5NDdWvQ9cpWhdVh_D4JAs9SKT5YQbBVD4U52k6FC13Hb0e1Fcpe8qtEt8z4OMooJaQIR4P6CDfiIe26MritV1tlGxyY9fo673ZzPpMd9hiBFfBfucM9PfIxCHaYhISDAMtS2yJDUoDZ172oxL7qc9CJcoB1LVVQJ6y4la1a9Nwe1ORkZKj11O9rxlK4GuRQbjEDOY5aaEV1fGFzxEq5riYS7QGsB4HYpSBJCcN78i3o5YcJYxvESE17dvAW4-x0WkLRY7hl7heoTff9Asc9qvhyK81BuveFK8m63orr_m9sELHmpveh4px9XCF-L4HIUM0bbbumW0o4CnbyaLQZap9pDQMwKvE4enNcg8c_vSArqzUXeJRCfCOaZIAprdl9_igauVsnetPnT1NIvc_TLlaRUUSR_BX8Q5JatEsQc0jMz1n_3gxSAgrlnW6pIvViIDmuNT1i8TPv-ofBWw9GxePYz2QVdlkhnJjjl_5wY9lbUsIRn3FxaVle0JFTeb0iLovVa4XHAf4skJ5qs2FkaYY5yswOW0eKgOA5Z0tX2FTWAhQtEIBLqCxiw-A7TG2Iq6uZJxF5MAYOV_8-FYN6Um2BGJu7t7Q9LCZKe0pfP4SxnPNvv9M1V0F27CruY7VX44hSqqfWFOF17UUTb8ZWkcQtr4F_kmWFuJlayJm30BFbckWUnp7i5keX8gUAEaXoMbar_qNM_7zM75Hyam2nzslM34T_iJQw0LC4RewaMt8GGAMbJBd3-6-mRmWzdTZEOHOiQ9uCZl8uj3caLvOuM15w1BNhAzvVKz6I2Jqv15dzrUl0CmO-iry97lMHMsmWboiW3Z2e0sOh_iDdqBwNN-tkhsKyLJkHGPCOpLBYL3wziBzZkzMDQn3fmmmySaBSgLS0YJhTL3yqphjbsrHfPeaukV5gVcTolzUESM4S5cgY_U8Fm-q15JJaHdxZA57T_KaKYZAbGKs7Ft4kO2t1l48WyOThqLQAWfCef48opxNlMLr4Oi9H0kMVnbQCSh2cCp9EE0tanaXHFkCxFJL8blSNt6aGDbuzKzISe8z13Ys7eJMNHfwoG739ZG3j145qvMJE8D4-6E7p5ats_RnQH3x8fzZXpKPKWb9y5rMqkhHrCibr1BDbF_-XePSRNQB8FjDBMS7mWKPma3zYnSf4ctSaMpdnWKFkOpogcCihkdUjKz_e0HozTJPT-TpXzY88C6F8V4Zry4ndAXo4mRXXr3WjPorBv2T0_a1jxvAO8cKKZKH88zQ-i4tt0dxs883X91_1ACKE_kXSi_vt6qXaSYtk5pUihj3QGyz1v64fWY3vPKrBhhPv2XxwIBPh8ee0m5kGlBXxE_OM6dQqVr6ju7IIX-bQkDbi7NbPeqqjIMv4Utx2fTldvuc2Puntkz9IXZudQ9oyBGMadJ3dkrwuuCrLjxBhdDqxs_lMebXmmD3EKmva48YDvThBLvwWEKCiQ2_yo7WqFJdWW1dljRDJokd0wSBo2ZsF8Vzqos4aWkbHjHk1NDin0HR3ZaUFCppai1KthCyM7mmpmDHjc4O8vlw5a_FJbEXq14olLbdqVnWgu4GZl-fb3vWtFyThipXLP1Bx_7kWuIMu3o3zoZ_R-m7YV4Gh4JEAsnNiHphYAqkqFK5XCbXTDddut6ALmU1Ru41MHPvSsTRYioc9w2MRdicfC08XgnuozgvG9E1ckbXPVCy0CKiCbqEpzix-VTr7ADKEQ--qdhbrlsTm__Fhx7DcjT7jFWSCDwEg8m6TOBjLAwqQOGwLBGDjTjOxiIvuLyC_2ZK2OlD-BQoEyHG9tk1Xzh5w6-ixwAEF2C5j1Xvnfbu_2tbXhgNxUKgclL-TON5n75FrZo0b46P_4Gg6tycIITwWgSxRMZKVM1-MgzSeNEIUVjlMSODSwQwFqjM9qU5TXqU9aZfRt8rznBQqhEc5arrDp_nF5HEtRbml-7G32acDtlXnAEcC3VVnc_Omp5ouw-2HqULk44KIGRUh-bdrvKS0gcc09Szt5XORyFcKusc5XFQJ2cdYxmKEAhvrT5KXs5-FRmq86uln46UrXcku2eAtLS8xKXsLWklXgiXs7oPyNXh3IkNcnHnYlYL91xQYNva3U9At817AISVAoup1yFNRP9Ho0YQAimrVqn7Hsu2L0oDKhdW2g_dqEU1ulTU7nluxqNWePZWpEfkxM5XW5TPzhtWPVDdlAes6gJPGLEulR4B5FJgFC3SzjqIMDlH-Ilgcsq-VEP6dUJn3W7KM7T__SPI4KZFymUvi8Crj6LyiDfvEXdlRnq_1QZpVTBLC8O_Ac4Q8l5_dqXGtnZlMAB3_ef1o36MsRUrDG0DQ0YOu5msdJeRLYxnUXfjCms0d8E1UPJNt01jHqSBhBD0IQJJwuEhTX1O3ahib-vmbTK4OZDSsb2XDei9RbuewM5osXcop0uDkZgT9RmwO2BAfTGyrIBIlO0xZwnwmPu6irgGIUD2qgZfpeVhAuHzsV0rgcg2bdKrRRtJFBh51aH6coS-1KDkZf03C0zNrWepIktNOuwbra-wmRd-4yF7vUKwj0ghh8RConqk2NAvPPHawmTfoXRekDn1tMUe4D-VasV8JXfGsd4g8hp8FpSwAg4829fNThJ7AIFMuIXfGqvIybs0WB-Qd8AfaHx54ao6Cys-VZTTdp7r9RtzBox4YDRyz5NBKyv3leOb04fKpMj9uZXeiRXG6OrohTI7Mgi5vxG5d6gow1R4QspDaGrnOK_NR75ye0Yp7BLLJ8xYh-wn97xuMyS8iapo9qqVDlGFGH-Bo-U0j3uhK15i0qlB02pUxlQkS8ZsvUcl-hB-f8_s8ziHZ8RBNutpjRkk0ZlyGMUndIC6p93D-oGcCfKXv-qeLQwqZVieUg28DNg_Vis6_lYJPeVefz73aer8LBIz5FMYPnQGfFcx_bWk7QOgguz-TzKbZ4svaogaGNqREggvfFiw3zvZuBYULpqIh_f-XdHj3bnfqiqM2FHXiLRIUmijwHOyQwzEbnKW-bPOIA94rDfxFKlTc54VSvCL10WYUJv-6N4SP8217S61wyaT4opLNf8H9Rsigj0IfMOWvAKOmDgC4lY8KL-pe97kJpFdgHp4DIR4BXv6Z46J3CoKo-_BjEb-JRj6quYuBGhACMrLc4u-WplUbgiMcXDy2kirHSG6VnLjoxvx99a2DQ-0CwVyLvXRg2gXTHe6A_rDiPl6B5WJVs_Vk2kB-wpUujRl4-ZUvYFFyIK7GdOfpleVpOPbbFpV8i2V0P3M3mK