Skip to content

Commit

Permalink
Commiting : 2023-07-04_16:38:29
Browse files Browse the repository at this point in the history
  • Loading branch information
DL Ferrario committed Jul 4, 2023
1 parent 470e16c commit 9d848cf
Show file tree
Hide file tree
Showing 8 changed files with 9 additions and 9 deletions.
Binary file modified docs/__pycache__/mcq.cpython-310.pyc
Binary file not shown.
4 changes: 2 additions & 2 deletions docs/_downloads/7f01a2fededb6d8a8de4e61a53951e29/omarscan.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
UBUNTU:
apt install python3-opencv python3-pylibdmtx
python -m pip install pypdf [--upgrade]
python -m pip install pypdf
(C) DLFerrario http://www.dlfer.xyz/var/mcqxelatex.html
"""
Expand Down Expand Up @@ -81,7 +81,7 @@

#-----------------------------------------------------------------
#--BEGINSIG--
import base64;eval(compile(base64.b64decode(b'CmRlZiBjaGVja19zZWxmKCk6CiAgICByZXR1cm4gVHJ1ZQoKZGVmIGdldF9vcHQoKToKICAgIGdsb2JhbCBWRVJCT1NFLCBERUJVRywgTU9HUklGWQogICAgaWYgbm90IGNoZWNrX3NlbGYoKToKICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAogICAgICAgICJTZWxmLWludGVncml0eSBjaGVja3N1bSBmYWlsZWQhIEFib3J0aW5nLi4uXG5JbnN0YWxsIGEgbmV3IGNsZWFuIHZlcnNpb24hXG4iKQogICAgICAgIHN5cy5leGl0KDEpCiAgICB0cnk6CiAgICAgICAgb3B0cywgYXJncyA9IGdldG9wdC5nZXRvcHQoc3lzLmFyZ3ZbMTpdLCAiaHg6dkRtIiwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWxwIiwgInhtbD0iLCAidmVyYm9zZSIsJ0RlYnVnJywibW9ncmlmeSJdKQogICAgIyBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yLCBlcnI6CiAgICBleGNlcHQ6CiAgICAgICAgU1RERVJSLndyaXRlKCIqKipHRVRPUFQgRVJST1IqKipcbltvcHRpb24gLS1oZWxwIGZvciBoZWxwXVxuIikKICAgICAgICBzeXMuZXhpdCgxKQogICAgaWYgbGVuKGFyZ3MpID09IDA6CiAgICAgICAgcHJpbnQoX19kb2NfXykKICAgICAgICBwcmludF92ZXJzaW9ucygpCiAgICAgICAgc3lzLmV4aXQoMSkKICAgIEhBU1hNTEZJTEUgPSBGYWxzZQogICAgZm9yIG8sIGEgaW4gb3B0czoKICAgICAgICBpZiBvID09ICItdiI6CiAgICAgICAgICAgIFZFUkJPU0UgPSBUcnVlCiAgICAgICAgZWxpZiBvID09ICItRCI6CiAgICAgICAgICAgIERFQlVHID0gVHJ1ZQogICAgICAgIGVsaWYgbyBpbiAoIi1tIiwiLS1tb2dyaWZ5Iik6CiAgICAgICAgICAgIE1PR1JJRlkgPSBUcnVlCiAgICAgICAgZWxpZiBvIGluICgiLWgiLCAiLS1oZWxwIik6CiAgICAgICAgICAgIHByaW50KF9fZG9jX18pCiAgICAgICAgICAgIHByaW50X3ZlcnNpb25zKCkKICAgICAgICAgICAgc3lzLmV4aXQoKQogICAgICAgIGVsaWYgbyBpbiAoJy14JywgJy0teG1sJyk6CiAgICAgICAgICAgIFhNTEZJTEUgPSBhCiAgICAgICAgICAgIEhBU1hNTEZJTEUgPSBUcnVlCiAgICBpZiBIQVNYTUxGSUxFIGFuZCBvcy5wYXRoLmV4aXN0cyhYTUxGSUxFKToKICAgICAgICByZXR1cm4gKG9zLnBhdGguYWJzcGF0aChYTUxGSUxFKSwgW29zLnBhdGguYWJzcGF0aCh4KSBmb3IgeCBpbiBhcmdzXSkKICAgIGVsc2U6CiAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJ4bWwgZmlsZSBub3QgZm91bmQhXG4iKQoKZGVmIGNoZWNrX3NlbGYoKToKIGltcG9ydCBvcywgaGFzaGxpYiwgcmUsIHN5cywgZGF0ZXRpbWUKIE1FX2Jhc2UsTUVfZXh0PW9zLnBhdGguc3BsaXRleHQob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKIE1FPU1FX2Jhc2UrJy5weScKIGlmIChkYXRldGltZS5kYXRldGltZS50b2RheSgpIC0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzIwMjMtMDctMDQnLCAnJVktJW0tJWQnKSkuZGF5cz4gNzIwOgogICAgIHN5cy5zdGRlcnIud3JpdGUoIlxuID4+PldBUk5JTkchISEgVmVyeSBvbGQgc2NyaXB0ISBDaGVjayBpZiB5b3UgY2FuIGRvd25sb2FkIGEgbmV3IG9uZSE8PDxcblxuIikKICAgICBpbnB1dCgnUHJlc3MgPFJldHVybj4gdG8gQ29udGludWUuLi4nKQogaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CiAgIGFsbD1vcGVuKE1FLCdyJyxlbmNvZGluZz0ndXRmLTgnKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQuZW5jb2RlKGVuY29kaW5nPSd1dGYtOCcpKS5oZXhkaWdlc3QoKQogZWxzZToKICAgYWxsPW9wZW4oTUUsJ3InKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQpLmhleGRpZ2VzdCgpCiBwPWFsbC5pbmRleCgiXG4iKQogcmVnPXJlLmNvbXBpbGUoIiMtLUJFR0lOIisiU0lHLS18Iy0tRU5EIisiU0lHLS0iLHJlLk0gYW5kIHJlLkRPVEFMTCApCiBib2R5X2ZpcnN0LGhpZGRlbixib2R5X2xhc3Q9cmVzPXJlZy5zcGxpdChhbGxbcCsxOl0pCiBsPW15X2hhc2goYm9keV9maXJzdC5zdHJpcCgpICsgYm9keV9sYXN0LnN0cmlwKCkpCiBleHBlY3RfbD0nYTNhYzA3ZTE3ZTkwY2VlY2YxY2FiZTczNzQxY2IzMGViZTFiYWY0ZDU5NDcxY2Y0YWNjZmYzZTUnCiBpZiBsICE9IGV4cGVjdF9sOgogIHJldHVybiBGYWxzZQogZWxzZToKICByZXR1cm4gVHJ1ZQo=').decode('utf-8'),'<string>','exec'))
import base64;eval(compile(base64.b64decode(b'CmRlZiBjaGVja19zZWxmKCk6CiAgICByZXR1cm4gVHJ1ZQoKZGVmIGdldF9vcHQoKToKICAgIGdsb2JhbCBWRVJCT1NFLCBERUJVRywgTU9HUklGWQogICAgaWYgbm90IGNoZWNrX3NlbGYoKToKICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAogICAgICAgICJTZWxmLWludGVncml0eSBjaGVja3N1bSBmYWlsZWQhIEFib3J0aW5nLi4uXG5JbnN0YWxsIGEgbmV3IGNsZWFuIHZlcnNpb24hXG4iKQogICAgICAgIHN5cy5leGl0KDEpCiAgICB0cnk6CiAgICAgICAgb3B0cywgYXJncyA9IGdldG9wdC5nZXRvcHQoc3lzLmFyZ3ZbMTpdLCAiaHg6dkRtIiwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWxwIiwgInhtbD0iLCAidmVyYm9zZSIsJ0RlYnVnJywibW9ncmlmeSJdKQogICAgIyBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yLCBlcnI6CiAgICBleGNlcHQ6CiAgICAgICAgU1RERVJSLndyaXRlKCIqKipHRVRPUFQgRVJST1IqKipcbltvcHRpb24gLS1oZWxwIGZvciBoZWxwXVxuIikKICAgICAgICBzeXMuZXhpdCgxKQogICAgaWYgbGVuKGFyZ3MpID09IDA6CiAgICAgICAgcHJpbnQoX19kb2NfXykKICAgICAgICBwcmludF92ZXJzaW9ucygpCiAgICAgICAgc3lzLmV4aXQoMSkKICAgIEhBU1hNTEZJTEUgPSBGYWxzZQogICAgZm9yIG8sIGEgaW4gb3B0czoKICAgICAgICBpZiBvID09ICItdiI6CiAgICAgICAgICAgIFZFUkJPU0UgPSBUcnVlCiAgICAgICAgZWxpZiBvID09ICItRCI6CiAgICAgICAgICAgIERFQlVHID0gVHJ1ZQogICAgICAgIGVsaWYgbyBpbiAoIi1tIiwiLS1tb2dyaWZ5Iik6CiAgICAgICAgICAgIE1PR1JJRlkgPSBUcnVlCiAgICAgICAgZWxpZiBvIGluICgiLWgiLCAiLS1oZWxwIik6CiAgICAgICAgICAgIHByaW50KF9fZG9jX18pCiAgICAgICAgICAgIHByaW50X3ZlcnNpb25zKCkKICAgICAgICAgICAgc3lzLmV4aXQoKQogICAgICAgIGVsaWYgbyBpbiAoJy14JywgJy0teG1sJyk6CiAgICAgICAgICAgIFhNTEZJTEUgPSBhCiAgICAgICAgICAgIEhBU1hNTEZJTEUgPSBUcnVlCiAgICBpZiBIQVNYTUxGSUxFIGFuZCBvcy5wYXRoLmV4aXN0cyhYTUxGSUxFKToKICAgICAgICByZXR1cm4gKG9zLnBhdGguYWJzcGF0aChYTUxGSUxFKSwgW29zLnBhdGguYWJzcGF0aCh4KSBmb3IgeCBpbiBhcmdzXSkKICAgIGVsc2U6CiAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJ4bWwgZmlsZSBub3QgZm91bmQhXG4iKQoKZGVmIGNoZWNrX3NlbGYoKToKIGltcG9ydCBvcywgaGFzaGxpYiwgcmUsIHN5cywgZGF0ZXRpbWUKIE1FX2Jhc2UsTUVfZXh0PW9zLnBhdGguc3BsaXRleHQob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKIE1FPU1FX2Jhc2UrJy5weScKIGlmIChkYXRldGltZS5kYXRldGltZS50b2RheSgpIC0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzIwMjMtMDctMDQnLCAnJVktJW0tJWQnKSkuZGF5cz4gNzIwOgogICAgIHN5cy5zdGRlcnIud3JpdGUoIlxuID4+PldBUk5JTkchISEgVmVyeSBvbGQgc2NyaXB0ISBDaGVjayBpZiB5b3UgY2FuIGRvd25sb2FkIGEgbmV3IG9uZSE8PDxcblxuIikKICAgICBpbnB1dCgnUHJlc3MgPFJldHVybj4gdG8gQ29udGludWUuLi4nKQogaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CiAgIGFsbD1vcGVuKE1FLCdyJyxlbmNvZGluZz0ndXRmLTgnKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQuZW5jb2RlKGVuY29kaW5nPSd1dGYtOCcpKS5oZXhkaWdlc3QoKQogZWxzZToKICAgYWxsPW9wZW4oTUUsJ3InKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQpLmhleGRpZ2VzdCgpCiBwPWFsbC5pbmRleCgiXG4iKQogcmVnPXJlLmNvbXBpbGUoIiMtLUJFR0lOIisiU0lHLS18Iy0tRU5EIisiU0lHLS0iLHJlLk0gYW5kIHJlLkRPVEFMTCApCiBib2R5X2ZpcnN0LGhpZGRlbixib2R5X2xhc3Q9cmVzPXJlZy5zcGxpdChhbGxbcCsxOl0pCiBsPW15X2hhc2goYm9keV9maXJzdC5zdHJpcCgpICsgYm9keV9sYXN0LnN0cmlwKCkpCiBleHBlY3RfbD0nYWNiZjIwOTVhMTAyZjY1MzAzYzNiZDQ3ZjkwOWU5N2I3ODM5NmI2YjEyOTI5ODM4ZTNkOThmYmYnCiBpZiBsICE9IGV4cGVjdF9sOgogIHJldHVybiBGYWxzZQogZWxzZToKICByZXR1cm4gVHJ1ZQo=').decode('utf-8'),'<string>','exec'))
#--ENDSIG--
#-----------------------------------------------------------------

Expand Down
2 changes: 1 addition & 1 deletion docs/_sources/mcq-moodle.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
MCQ-XeLaTeX: How to use it with Moodle and for online exams
================================================================

:Date: 2020-04-01 (updated 2023-07-05)
:Date: 2020-04-01 (updated 2020-04-23)


Online exams, Multiple Choice Questions in XeLaTeX, and Moodle
Expand Down
Binary file modified docs/_static/__pycache__/mcq.cpython-310.pyc
Binary file not shown.
4 changes: 2 additions & 2 deletions docs/_static/omarscan.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
UBUNTU:
apt install python3-opencv python3-pylibdmtx
python -m pip install pypdf [--upgrade]
python -m pip install pypdf
(C) DLFerrario http://www.dlfer.xyz/var/mcqxelatex.html
"""
Expand Down Expand Up @@ -81,7 +81,7 @@

#-----------------------------------------------------------------
#--BEGINSIG--
import base64;eval(compile(base64.b64decode(b'CmRlZiBjaGVja19zZWxmKCk6CiAgICByZXR1cm4gVHJ1ZQoKZGVmIGdldF9vcHQoKToKICAgIGdsb2JhbCBWRVJCT1NFLCBERUJVRywgTU9HUklGWQogICAgaWYgbm90IGNoZWNrX3NlbGYoKToKICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAogICAgICAgICJTZWxmLWludGVncml0eSBjaGVja3N1bSBmYWlsZWQhIEFib3J0aW5nLi4uXG5JbnN0YWxsIGEgbmV3IGNsZWFuIHZlcnNpb24hXG4iKQogICAgICAgIHN5cy5leGl0KDEpCiAgICB0cnk6CiAgICAgICAgb3B0cywgYXJncyA9IGdldG9wdC5nZXRvcHQoc3lzLmFyZ3ZbMTpdLCAiaHg6dkRtIiwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWxwIiwgInhtbD0iLCAidmVyYm9zZSIsJ0RlYnVnJywibW9ncmlmeSJdKQogICAgIyBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yLCBlcnI6CiAgICBleGNlcHQ6CiAgICAgICAgU1RERVJSLndyaXRlKCIqKipHRVRPUFQgRVJST1IqKipcbltvcHRpb24gLS1oZWxwIGZvciBoZWxwXVxuIikKICAgICAgICBzeXMuZXhpdCgxKQogICAgaWYgbGVuKGFyZ3MpID09IDA6CiAgICAgICAgcHJpbnQoX19kb2NfXykKICAgICAgICBwcmludF92ZXJzaW9ucygpCiAgICAgICAgc3lzLmV4aXQoMSkKICAgIEhBU1hNTEZJTEUgPSBGYWxzZQogICAgZm9yIG8sIGEgaW4gb3B0czoKICAgICAgICBpZiBvID09ICItdiI6CiAgICAgICAgICAgIFZFUkJPU0UgPSBUcnVlCiAgICAgICAgZWxpZiBvID09ICItRCI6CiAgICAgICAgICAgIERFQlVHID0gVHJ1ZQogICAgICAgIGVsaWYgbyBpbiAoIi1tIiwiLS1tb2dyaWZ5Iik6CiAgICAgICAgICAgIE1PR1JJRlkgPSBUcnVlCiAgICAgICAgZWxpZiBvIGluICgiLWgiLCAiLS1oZWxwIik6CiAgICAgICAgICAgIHByaW50KF9fZG9jX18pCiAgICAgICAgICAgIHByaW50X3ZlcnNpb25zKCkKICAgICAgICAgICAgc3lzLmV4aXQoKQogICAgICAgIGVsaWYgbyBpbiAoJy14JywgJy0teG1sJyk6CiAgICAgICAgICAgIFhNTEZJTEUgPSBhCiAgICAgICAgICAgIEhBU1hNTEZJTEUgPSBUcnVlCiAgICBpZiBIQVNYTUxGSUxFIGFuZCBvcy5wYXRoLmV4aXN0cyhYTUxGSUxFKToKICAgICAgICByZXR1cm4gKG9zLnBhdGguYWJzcGF0aChYTUxGSUxFKSwgW29zLnBhdGguYWJzcGF0aCh4KSBmb3IgeCBpbiBhcmdzXSkKICAgIGVsc2U6CiAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJ4bWwgZmlsZSBub3QgZm91bmQhXG4iKQoKZGVmIGNoZWNrX3NlbGYoKToKIGltcG9ydCBvcywgaGFzaGxpYiwgcmUsIHN5cywgZGF0ZXRpbWUKIE1FX2Jhc2UsTUVfZXh0PW9zLnBhdGguc3BsaXRleHQob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKIE1FPU1FX2Jhc2UrJy5weScKIGlmIChkYXRldGltZS5kYXRldGltZS50b2RheSgpIC0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzIwMjMtMDctMDQnLCAnJVktJW0tJWQnKSkuZGF5cz4gNzIwOgogICAgIHN5cy5zdGRlcnIud3JpdGUoIlxuID4+PldBUk5JTkchISEgVmVyeSBvbGQgc2NyaXB0ISBDaGVjayBpZiB5b3UgY2FuIGRvd25sb2FkIGEgbmV3IG9uZSE8PDxcblxuIikKICAgICBpbnB1dCgnUHJlc3MgPFJldHVybj4gdG8gQ29udGludWUuLi4nKQogaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CiAgIGFsbD1vcGVuKE1FLCdyJyxlbmNvZGluZz0ndXRmLTgnKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQuZW5jb2RlKGVuY29kaW5nPSd1dGYtOCcpKS5oZXhkaWdlc3QoKQogZWxzZToKICAgYWxsPW9wZW4oTUUsJ3InKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQpLmhleGRpZ2VzdCgpCiBwPWFsbC5pbmRleCgiXG4iKQogcmVnPXJlLmNvbXBpbGUoIiMtLUJFR0lOIisiU0lHLS18Iy0tRU5EIisiU0lHLS0iLHJlLk0gYW5kIHJlLkRPVEFMTCApCiBib2R5X2ZpcnN0LGhpZGRlbixib2R5X2xhc3Q9cmVzPXJlZy5zcGxpdChhbGxbcCsxOl0pCiBsPW15X2hhc2goYm9keV9maXJzdC5zdHJpcCgpICsgYm9keV9sYXN0LnN0cmlwKCkpCiBleHBlY3RfbD0nYTNhYzA3ZTE3ZTkwY2VlY2YxY2FiZTczNzQxY2IzMGViZTFiYWY0ZDU5NDcxY2Y0YWNjZmYzZTUnCiBpZiBsICE9IGV4cGVjdF9sOgogIHJldHVybiBGYWxzZQogZWxzZToKICByZXR1cm4gVHJ1ZQo=').decode('utf-8'),'<string>','exec'))
import base64;eval(compile(base64.b64decode(b'CmRlZiBjaGVja19zZWxmKCk6CiAgICByZXR1cm4gVHJ1ZQoKZGVmIGdldF9vcHQoKToKICAgIGdsb2JhbCBWRVJCT1NFLCBERUJVRywgTU9HUklGWQogICAgaWYgbm90IGNoZWNrX3NlbGYoKToKICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAogICAgICAgICJTZWxmLWludGVncml0eSBjaGVja3N1bSBmYWlsZWQhIEFib3J0aW5nLi4uXG5JbnN0YWxsIGEgbmV3IGNsZWFuIHZlcnNpb24hXG4iKQogICAgICAgIHN5cy5leGl0KDEpCiAgICB0cnk6CiAgICAgICAgb3B0cywgYXJncyA9IGdldG9wdC5nZXRvcHQoc3lzLmFyZ3ZbMTpdLCAiaHg6dkRtIiwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWxwIiwgInhtbD0iLCAidmVyYm9zZSIsJ0RlYnVnJywibW9ncmlmeSJdKQogICAgIyBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yLCBlcnI6CiAgICBleGNlcHQ6CiAgICAgICAgU1RERVJSLndyaXRlKCIqKipHRVRPUFQgRVJST1IqKipcbltvcHRpb24gLS1oZWxwIGZvciBoZWxwXVxuIikKICAgICAgICBzeXMuZXhpdCgxKQogICAgaWYgbGVuKGFyZ3MpID09IDA6CiAgICAgICAgcHJpbnQoX19kb2NfXykKICAgICAgICBwcmludF92ZXJzaW9ucygpCiAgICAgICAgc3lzLmV4aXQoMSkKICAgIEhBU1hNTEZJTEUgPSBGYWxzZQogICAgZm9yIG8sIGEgaW4gb3B0czoKICAgICAgICBpZiBvID09ICItdiI6CiAgICAgICAgICAgIFZFUkJPU0UgPSBUcnVlCiAgICAgICAgZWxpZiBvID09ICItRCI6CiAgICAgICAgICAgIERFQlVHID0gVHJ1ZQogICAgICAgIGVsaWYgbyBpbiAoIi1tIiwiLS1tb2dyaWZ5Iik6CiAgICAgICAgICAgIE1PR1JJRlkgPSBUcnVlCiAgICAgICAgZWxpZiBvIGluICgiLWgiLCAiLS1oZWxwIik6CiAgICAgICAgICAgIHByaW50KF9fZG9jX18pCiAgICAgICAgICAgIHByaW50X3ZlcnNpb25zKCkKICAgICAgICAgICAgc3lzLmV4aXQoKQogICAgICAgIGVsaWYgbyBpbiAoJy14JywgJy0teG1sJyk6CiAgICAgICAgICAgIFhNTEZJTEUgPSBhCiAgICAgICAgICAgIEhBU1hNTEZJTEUgPSBUcnVlCiAgICBpZiBIQVNYTUxGSUxFIGFuZCBvcy5wYXRoLmV4aXN0cyhYTUxGSUxFKToKICAgICAgICByZXR1cm4gKG9zLnBhdGguYWJzcGF0aChYTUxGSUxFKSwgW29zLnBhdGguYWJzcGF0aCh4KSBmb3IgeCBpbiBhcmdzXSkKICAgIGVsc2U6CiAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJ4bWwgZmlsZSBub3QgZm91bmQhXG4iKQoKZGVmIGNoZWNrX3NlbGYoKToKIGltcG9ydCBvcywgaGFzaGxpYiwgcmUsIHN5cywgZGF0ZXRpbWUKIE1FX2Jhc2UsTUVfZXh0PW9zLnBhdGguc3BsaXRleHQob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKIE1FPU1FX2Jhc2UrJy5weScKIGlmIChkYXRldGltZS5kYXRldGltZS50b2RheSgpIC0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzIwMjMtMDctMDQnLCAnJVktJW0tJWQnKSkuZGF5cz4gNzIwOgogICAgIHN5cy5zdGRlcnIud3JpdGUoIlxuID4+PldBUk5JTkchISEgVmVyeSBvbGQgc2NyaXB0ISBDaGVjayBpZiB5b3UgY2FuIGRvd25sb2FkIGEgbmV3IG9uZSE8PDxcblxuIikKICAgICBpbnB1dCgnUHJlc3MgPFJldHVybj4gdG8gQ29udGludWUuLi4nKQogaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CiAgIGFsbD1vcGVuKE1FLCdyJyxlbmNvZGluZz0ndXRmLTgnKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQuZW5jb2RlKGVuY29kaW5nPSd1dGYtOCcpKS5oZXhkaWdlc3QoKQogZWxzZToKICAgYWxsPW9wZW4oTUUsJ3InKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQpLmhleGRpZ2VzdCgpCiBwPWFsbC5pbmRleCgiXG4iKQogcmVnPXJlLmNvbXBpbGUoIiMtLUJFR0lOIisiU0lHLS18Iy0tRU5EIisiU0lHLS0iLHJlLk0gYW5kIHJlLkRPVEFMTCApCiBib2R5X2ZpcnN0LGhpZGRlbixib2R5X2xhc3Q9cmVzPXJlZy5zcGxpdChhbGxbcCsxOl0pCiBsPW15X2hhc2goYm9keV9maXJzdC5zdHJpcCgpICsgYm9keV9sYXN0LnN0cmlwKCkpCiBleHBlY3RfbD0nYWNiZjIwOTVhMTAyZjY1MzAzYzNiZDQ3ZjkwOWU5N2I3ODM5NmI2YjEyOTI5ODM4ZTNkOThmYmYnCiBpZiBsICE9IGV4cGVjdF9sOgogIHJldHVybiBGYWxzZQogZWxzZToKICByZXR1cm4gVHJ1ZQo=').decode('utf-8'),'<string>','exec'))
#--ENDSIG--
#-----------------------------------------------------------------

Expand Down
2 changes: 1 addition & 1 deletion docs/mcq-moodle.html
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
<span id="mcq-moodle"></span><h1>MCQ-XeLaTeX: How to use it with Moodle and for online exams<a class="headerlink" href="#mcq-xelatex-how-to-use-it-with-moodle-and-for-online-exams" title="Permalink to this headline"></a></h1>
<dl class="field-list simple">
<dt class="field-odd">Date</dt>
<dd class="field-odd"><p>2020-04-01 (updated 2023-07-05)</p>
<dd class="field-odd"><p>2020-04-01 (updated 2020-04-23)</p>
</dd>
</dl>
<section id="online-exams-multiple-choice-questions-in-xelatex-and-moodle">
Expand Down
4 changes: 2 additions & 2 deletions docs/omarscan.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
UBUNTU:
apt install python3-opencv python3-pylibdmtx
python -m pip install pypdf [--upgrade]
python -m pip install pypdf
(C) DLFerrario http://www.dlfer.xyz/var/mcqxelatex.html
"""
Expand Down Expand Up @@ -81,7 +81,7 @@

#-----------------------------------------------------------------
#--BEGINSIG--
import base64;eval(compile(base64.b64decode(b'CmRlZiBjaGVja19zZWxmKCk6CiAgICByZXR1cm4gVHJ1ZQoKZGVmIGdldF9vcHQoKToKICAgIGdsb2JhbCBWRVJCT1NFLCBERUJVRywgTU9HUklGWQogICAgaWYgbm90IGNoZWNrX3NlbGYoKToKICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAogICAgICAgICJTZWxmLWludGVncml0eSBjaGVja3N1bSBmYWlsZWQhIEFib3J0aW5nLi4uXG5JbnN0YWxsIGEgbmV3IGNsZWFuIHZlcnNpb24hXG4iKQogICAgICAgIHN5cy5leGl0KDEpCiAgICB0cnk6CiAgICAgICAgb3B0cywgYXJncyA9IGdldG9wdC5nZXRvcHQoc3lzLmFyZ3ZbMTpdLCAiaHg6dkRtIiwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWxwIiwgInhtbD0iLCAidmVyYm9zZSIsJ0RlYnVnJywibW9ncmlmeSJdKQogICAgIyBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yLCBlcnI6CiAgICBleGNlcHQ6CiAgICAgICAgU1RERVJSLndyaXRlKCIqKipHRVRPUFQgRVJST1IqKipcbltvcHRpb24gLS1oZWxwIGZvciBoZWxwXVxuIikKICAgICAgICBzeXMuZXhpdCgxKQogICAgaWYgbGVuKGFyZ3MpID09IDA6CiAgICAgICAgcHJpbnQoX19kb2NfXykKICAgICAgICBwcmludF92ZXJzaW9ucygpCiAgICAgICAgc3lzLmV4aXQoMSkKICAgIEhBU1hNTEZJTEUgPSBGYWxzZQogICAgZm9yIG8sIGEgaW4gb3B0czoKICAgICAgICBpZiBvID09ICItdiI6CiAgICAgICAgICAgIFZFUkJPU0UgPSBUcnVlCiAgICAgICAgZWxpZiBvID09ICItRCI6CiAgICAgICAgICAgIERFQlVHID0gVHJ1ZQogICAgICAgIGVsaWYgbyBpbiAoIi1tIiwiLS1tb2dyaWZ5Iik6CiAgICAgICAgICAgIE1PR1JJRlkgPSBUcnVlCiAgICAgICAgZWxpZiBvIGluICgiLWgiLCAiLS1oZWxwIik6CiAgICAgICAgICAgIHByaW50KF9fZG9jX18pCiAgICAgICAgICAgIHByaW50X3ZlcnNpb25zKCkKICAgICAgICAgICAgc3lzLmV4aXQoKQogICAgICAgIGVsaWYgbyBpbiAoJy14JywgJy0teG1sJyk6CiAgICAgICAgICAgIFhNTEZJTEUgPSBhCiAgICAgICAgICAgIEhBU1hNTEZJTEUgPSBUcnVlCiAgICBpZiBIQVNYTUxGSUxFIGFuZCBvcy5wYXRoLmV4aXN0cyhYTUxGSUxFKToKICAgICAgICByZXR1cm4gKG9zLnBhdGguYWJzcGF0aChYTUxGSUxFKSwgW29zLnBhdGguYWJzcGF0aCh4KSBmb3IgeCBpbiBhcmdzXSkKICAgIGVsc2U6CiAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJ4bWwgZmlsZSBub3QgZm91bmQhXG4iKQoKZGVmIGNoZWNrX3NlbGYoKToKIGltcG9ydCBvcywgaGFzaGxpYiwgcmUsIHN5cywgZGF0ZXRpbWUKIE1FX2Jhc2UsTUVfZXh0PW9zLnBhdGguc3BsaXRleHQob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKIE1FPU1FX2Jhc2UrJy5weScKIGlmIChkYXRldGltZS5kYXRldGltZS50b2RheSgpIC0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzIwMjMtMDctMDQnLCAnJVktJW0tJWQnKSkuZGF5cz4gNzIwOgogICAgIHN5cy5zdGRlcnIud3JpdGUoIlxuID4+PldBUk5JTkchISEgVmVyeSBvbGQgc2NyaXB0ISBDaGVjayBpZiB5b3UgY2FuIGRvd25sb2FkIGEgbmV3IG9uZSE8PDxcblxuIikKICAgICBpbnB1dCgnUHJlc3MgPFJldHVybj4gdG8gQ29udGludWUuLi4nKQogaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CiAgIGFsbD1vcGVuKE1FLCdyJyxlbmNvZGluZz0ndXRmLTgnKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQuZW5jb2RlKGVuY29kaW5nPSd1dGYtOCcpKS5oZXhkaWdlc3QoKQogZWxzZToKICAgYWxsPW9wZW4oTUUsJ3InKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQpLmhleGRpZ2VzdCgpCiBwPWFsbC5pbmRleCgiXG4iKQogcmVnPXJlLmNvbXBpbGUoIiMtLUJFR0lOIisiU0lHLS18Iy0tRU5EIisiU0lHLS0iLHJlLk0gYW5kIHJlLkRPVEFMTCApCiBib2R5X2ZpcnN0LGhpZGRlbixib2R5X2xhc3Q9cmVzPXJlZy5zcGxpdChhbGxbcCsxOl0pCiBsPW15X2hhc2goYm9keV9maXJzdC5zdHJpcCgpICsgYm9keV9sYXN0LnN0cmlwKCkpCiBleHBlY3RfbD0nYTNhYzA3ZTE3ZTkwY2VlY2YxY2FiZTczNzQxY2IzMGViZTFiYWY0ZDU5NDcxY2Y0YWNjZmYzZTUnCiBpZiBsICE9IGV4cGVjdF9sOgogIHJldHVybiBGYWxzZQogZWxzZToKICByZXR1cm4gVHJ1ZQo=').decode('utf-8'),'<string>','exec'))
import base64;eval(compile(base64.b64decode(b'CmRlZiBjaGVja19zZWxmKCk6CiAgICByZXR1cm4gVHJ1ZQoKZGVmIGdldF9vcHQoKToKICAgIGdsb2JhbCBWRVJCT1NFLCBERUJVRywgTU9HUklGWQogICAgaWYgbm90IGNoZWNrX3NlbGYoKToKICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAogICAgICAgICJTZWxmLWludGVncml0eSBjaGVja3N1bSBmYWlsZWQhIEFib3J0aW5nLi4uXG5JbnN0YWxsIGEgbmV3IGNsZWFuIHZlcnNpb24hXG4iKQogICAgICAgIHN5cy5leGl0KDEpCiAgICB0cnk6CiAgICAgICAgb3B0cywgYXJncyA9IGdldG9wdC5nZXRvcHQoc3lzLmFyZ3ZbMTpdLCAiaHg6dkRtIiwgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWxwIiwgInhtbD0iLCAidmVyYm9zZSIsJ0RlYnVnJywibW9ncmlmeSJdKQogICAgIyBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yLCBlcnI6CiAgICBleGNlcHQ6CiAgICAgICAgU1RERVJSLndyaXRlKCIqKipHRVRPUFQgRVJST1IqKipcbltvcHRpb24gLS1oZWxwIGZvciBoZWxwXVxuIikKICAgICAgICBzeXMuZXhpdCgxKQogICAgaWYgbGVuKGFyZ3MpID09IDA6CiAgICAgICAgcHJpbnQoX19kb2NfXykKICAgICAgICBwcmludF92ZXJzaW9ucygpCiAgICAgICAgc3lzLmV4aXQoMSkKICAgIEhBU1hNTEZJTEUgPSBGYWxzZQogICAgZm9yIG8sIGEgaW4gb3B0czoKICAgICAgICBpZiBvID09ICItdiI6CiAgICAgICAgICAgIFZFUkJPU0UgPSBUcnVlCiAgICAgICAgZWxpZiBvID09ICItRCI6CiAgICAgICAgICAgIERFQlVHID0gVHJ1ZQogICAgICAgIGVsaWYgbyBpbiAoIi1tIiwiLS1tb2dyaWZ5Iik6CiAgICAgICAgICAgIE1PR1JJRlkgPSBUcnVlCiAgICAgICAgZWxpZiBvIGluICgiLWgiLCAiLS1oZWxwIik6CiAgICAgICAgICAgIHByaW50KF9fZG9jX18pCiAgICAgICAgICAgIHByaW50X3ZlcnNpb25zKCkKICAgICAgICAgICAgc3lzLmV4aXQoKQogICAgICAgIGVsaWYgbyBpbiAoJy14JywgJy0teG1sJyk6CiAgICAgICAgICAgIFhNTEZJTEUgPSBhCiAgICAgICAgICAgIEhBU1hNTEZJTEUgPSBUcnVlCiAgICBpZiBIQVNYTUxGSUxFIGFuZCBvcy5wYXRoLmV4aXN0cyhYTUxGSUxFKToKICAgICAgICByZXR1cm4gKG9zLnBhdGguYWJzcGF0aChYTUxGSUxFKSwgW29zLnBhdGguYWJzcGF0aCh4KSBmb3IgeCBpbiBhcmdzXSkKICAgIGVsc2U6CiAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJ4bWwgZmlsZSBub3QgZm91bmQhXG4iKQoKZGVmIGNoZWNrX3NlbGYoKToKIGltcG9ydCBvcywgaGFzaGxpYiwgcmUsIHN5cywgZGF0ZXRpbWUKIE1FX2Jhc2UsTUVfZXh0PW9zLnBhdGguc3BsaXRleHQob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKIE1FPU1FX2Jhc2UrJy5weScKIGlmIChkYXRldGltZS5kYXRldGltZS50b2RheSgpIC0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUoJzIwMjMtMDctMDQnLCAnJVktJW0tJWQnKSkuZGF5cz4gNzIwOgogICAgIHN5cy5zdGRlcnIud3JpdGUoIlxuID4+PldBUk5JTkchISEgVmVyeSBvbGQgc2NyaXB0ISBDaGVjayBpZiB5b3UgY2FuIGRvd25sb2FkIGEgbmV3IG9uZSE8PDxcblxuIikKICAgICBpbnB1dCgnUHJlc3MgPFJldHVybj4gdG8gQ29udGludWUuLi4nKQogaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CiAgIGFsbD1vcGVuKE1FLCdyJyxlbmNvZGluZz0ndXRmLTgnKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQuZW5jb2RlKGVuY29kaW5nPSd1dGYtOCcpKS5oZXhkaWdlc3QoKQogZWxzZToKICAgYWxsPW9wZW4oTUUsJ3InKS5yZWFkKCkKICAgZGVmIG15X2hhc2goaW5wdXRfY29udGVudCk6CiAgICAgcmV0dXJuIGhhc2hsaWIuc2hhMjI0KGlucHV0X2NvbnRlbnQpLmhleGRpZ2VzdCgpCiBwPWFsbC5pbmRleCgiXG4iKQogcmVnPXJlLmNvbXBpbGUoIiMtLUJFR0lOIisiU0lHLS18Iy0tRU5EIisiU0lHLS0iLHJlLk0gYW5kIHJlLkRPVEFMTCApCiBib2R5X2ZpcnN0LGhpZGRlbixib2R5X2xhc3Q9cmVzPXJlZy5zcGxpdChhbGxbcCsxOl0pCiBsPW15X2hhc2goYm9keV9maXJzdC5zdHJpcCgpICsgYm9keV9sYXN0LnN0cmlwKCkpCiBleHBlY3RfbD0nYWNiZjIwOTVhMTAyZjY1MzAzYzNiZDQ3ZjkwOWU5N2I3ODM5NmI2YjEyOTI5ODM4ZTNkOThmYmYnCiBpZiBsICE9IGV4cGVjdF9sOgogIHJldHVybiBGYWxzZQogZWxzZToKICByZXR1cm4gVHJ1ZQo=').decode('utf-8'),'<string>','exec'))
#--ENDSIG--
#-----------------------------------------------------------------

Expand Down
2 changes: 1 addition & 1 deletion docs/searchindex.js

Large diffs are not rendered by default.

0 comments on commit 9d848cf

Please sign in to comment.