summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-05-15 03:01:02 +0000
committerNorbert Preining <norbert@preining.info>2021-05-15 03:01:02 +0000
commitff5439d00ba53d3e4b82d79f78ce65524f3684fd (patch)
tree109b3899cf0fd6e1bc480dbbe1793b7b29de416a
parent11a1186b093ff2ae9478c20979b6eec30f63f32c (diff)
CTAN sync 202105150301
-rw-r--r--CTAN.sites4
-rw-r--r--FILES.byname603
-rw-r--r--FILES.byname.gzbin2311344 -> 2311460 bytes
-rw-r--r--FILES.last07days672
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx191
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin308571 -> 308731 bytes
-rw-r--r--macros/latex/contrib/noindentafter/README50
-rw-r--r--macros/latex/contrib/noindentafter/README.md41
-rw-r--r--macros/latex/contrib/noindentafter/doc/LICENSE.md21
-rw-r--r--macros/latex/contrib/noindentafter/doc/noindentafter.pdfbin0 -> 406986 bytes
-rw-r--r--macros/latex/contrib/noindentafter/noindentafter-dry.sty54
-rw-r--r--macros/latex/contrib/noindentafter/noindentafter-packagedoc.cls313
-rw-r--r--macros/latex/contrib/noindentafter/noindentafter.pdfbin223162 -> 0 bytes
-rw-r--r--macros/latex/contrib/noindentafter/noindentafter.sty189
-rw-r--r--macros/latex/contrib/noindentafter/noindentafter.tex205
-rw-r--r--macros/latex/contrib/noindentafter/source/noindentafter.dtx407
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md18
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/README.md2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx157
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdfbin892975 -> 947436 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty14
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx58
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdfbin567916 -> 588344 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx56
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdfbin566379 -> 573518 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdfbin523372 -> 526914 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx433
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdfbin0 -> 438103 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdfbin0 -> 296047 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx508
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdfbin0 -> 419934 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx1921
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdfbin555926 -> 619765 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx18
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdfbin547260 -> 551626 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx82
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdfbin649325 -> 658596 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdfbin656637 -> 661637 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx10
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdfbin515149 -> 517767 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdfbin434789 -> 435558 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx4
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdfbin550068 -> 552201 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx26
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdfbin419958 -> 421911 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx6
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdfbin444675 -> 446163 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty54
-rw-r--r--macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdfbin2772127 -> 2781147 bytes
-rw-r--r--macros/latex/contrib/profcollege/latex/ProfCollege.sty2002
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp18
-rw-r--r--systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm6
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb334
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2304488 -> 2303504 bytes
l---------systems/texlive/tlnet/update-tlmgr-latest.sh2
l---------systems/texlive/tlnet/update-tlmgr-latest.sh.sha5122
l---------systems/texlive/tlnet/update-tlmgr-latest.sh.sha512.asc2
-rw-r--r--systems/texlive/tlnet/update-tlmgr-r59154.sh.sha5121
-rw-r--r--systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512.asc10
-rwxr-xr-xsystems/texlive/tlnet/update-tlmgr-r59199.sh (renamed from systems/texlive/tlnet/update-tlmgr-r59154.sh)67065
-rw-r--r--systems/texlive/tlnet/update-tlmgr-r59199.sh.sha5121
-rw-r--r--systems/texlive/tlnet/update-tlmgr-r59199.sh.sha512.asc10
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--systems/win32/w32tex/ChangeLog12
-rw-r--r--timestamp2
-rw-r--r--usergrps/usergrps/bg.html13
-rw-r--r--usergrps/usergrps/br.html13
-rw-r--r--usergrps/usergrps/ca.html13
-rw-r--r--usergrps/usergrps/cn.html13
-rw-r--r--usergrps/usergrps/cz.html13
-rw-r--r--usergrps/usergrps/de.html13
-rw-r--r--usergrps/usergrps/dk.html13
-rw-r--r--usergrps/usergrps/ee.html13
-rw-r--r--usergrps/usergrps/es.html13
-rw-r--r--usergrps/usergrps/esc.html13
-rw-r--r--usergrps/usergrps/fr.html13
-rw-r--r--usergrps/usergrps/gb.html13
-rw-r--r--usergrps/usergrps/gr.html13
-rw-r--r--usergrps/usergrps/hu.html13
-rw-r--r--usergrps/usergrps/ie.html13
-rw-r--r--usergrps/usergrps/index.html10
-rw-r--r--usergrps/usergrps/is.html13
-rw-r--r--usergrps/usergrps/it.html13
-rw-r--r--usergrps/usergrps/kh.html13
-rw-r--r--usergrps/usergrps/kr.html13
-rw-r--r--usergrps/usergrps/lt.html13
-rw-r--r--usergrps/usergrps/lugs.html5
-rw-r--r--usergrps/usergrps/mx.html13
-rw-r--r--usergrps/usergrps/nl.html13
-rw-r--r--usergrps/usergrps/no.html13
-rw-r--r--usergrps/usergrps/pl.html13
-rw-r--r--usergrps/usergrps/pt.html13
-rw-r--r--usergrps/usergrps/us.html13
-rw-r--r--usergrps/usergrps/uy.html13
-rw-r--r--usergrps/usergrps/vn.html13
-rw-r--r--usergrps/usergrps/za.html13
108 files changed, 39244 insertions, 36790 deletions
diff --git a/CTAN.sites b/CTAN.sites
index 2272e0ed1d..327ea4f29a 100644
--- a/CTAN.sites
+++ b/CTAN.sites
@@ -314,6 +314,10 @@ by country):
URL: rsync://packages.oth-regensburg.de/ctan/
URL: https://packages.oth-regensburg.de/ctan/
+ sendinnsky.selfhost.co (Germany)
+ URL: ftp://sendinnsky.selfhost.co/
+ URL: http://sendinnsky.selfhost.co/tex-archive/
+
sunsite.informatik.rwth-aachen.de (Germany)
URL: ftp://sunsite.informatik.rwth-aachen.de/pub/mirror/ctan/
URL: http://vesta.informatik.rwth-aachen.de/ftp/pub/mirror/ctan/
diff --git a/FILES.byname b/FILES.byname
index c5ba61a4ec..9e1cca916e 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5087,7 +5087,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2021/05/13 | 111104 | FILES.last07days
+2021/05/14 | 108551 | FILES.last07days
2020/08/14 | 104065 | fonts/academicons/academicons.pdf
2020/08/14 | 17247 | fonts/academicons/academicons.sty
2020/08/14 | 6546 | fonts/academicons/academicons.tex
@@ -197278,11 +197278,11 @@
2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt
2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README
2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip
-2021/05/12 | 120846 | macros/latex/contrib/easybook/easybook.dtx
+2021/05/14 | 121366 | macros/latex/contrib/easybook/easybook.dtx
2021/05/12 | 673 | macros/latex/contrib/easybook/easybook.ins
-2021/05/12 | 308571 | macros/latex/contrib/easybook/easybook.pdf
+2021/05/14 | 308731 | macros/latex/contrib/easybook/easybook.pdf
2021/05/03 | 3043 | macros/latex/contrib/easybook/README.md
-2021/05/12 | 338972 | macros/latex/contrib/easybook.zip
+2021/05/14 | 339353 | macros/latex/contrib/easybook.zip
2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf
2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf
2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf
@@ -206740,13 +206740,11 @@
2013/04/26 | 4083 | macros/latex/contrib/noconflict/noconflict.sty
2013/04/26 | 2003 | macros/latex/contrib/noconflict/README
2013/04/27 | 2334 | macros/latex/contrib/noconflict.zip
-2014/11/30 | 2291 | macros/latex/contrib/noindentafter/noindentafter-dry.sty
-2014/11/30 | 10515 | macros/latex/contrib/noindentafter/noindentafter-packagedoc.cls
-2014/11/30 | 223162 | macros/latex/contrib/noindentafter/noindentafter.pdf
-2014/11/30 | 7109 | macros/latex/contrib/noindentafter/noindentafter.sty
-2014/11/30 | 8105 | macros/latex/contrib/noindentafter/noindentafter.tex
-2014/11/30 | 1355 | macros/latex/contrib/noindentafter/README
-2014/11/30 | 230494 | macros/latex/contrib/noindentafter.zip
+2021/05/14 | 890 | macros/latex/contrib/noindentafter/doc/LICENSE.md
+2021/05/14 | 406986 | macros/latex/contrib/noindentafter/doc/noindentafter.pdf
+2021/05/14 | 1257 | macros/latex/contrib/noindentafter/README.md
+2021/05/14 | 12085 | macros/latex/contrib/noindentafter/source/noindentafter.dtx
+2021/05/14 | 403906 | macros/latex/contrib/noindentafter.zip
2006/04/11 | 6668 | macros/latex/contrib/noitcrul/noitcrul.dtx
2006/04/11 | 1867 | macros/latex/contrib/noitcrul/noitcrul.ins
2006/04/11 | 98468 | macros/latex/contrib/noitcrul/noitcrul.pdf
@@ -208212,42 +208210,47 @@
2019/12/05 | 299397 | macros/latex/contrib/pdflscape/pdflscape.pdf
2019/12/05 | 170 | macros/latex/contrib/pdflscape/README.md
2019/12/06 | 301872 | macros/latex/contrib/pdflscape.zip
-2021/03/18 | 1420 | macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
-2021/03/18 | 7728 | macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
-2021/03/18 | 171365 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
-2021/03/18 | 892975 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
-2021/03/18 | 3897 | macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
-2021/03/18 | 53138 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
-2021/03/18 | 567916 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
-2021/03/18 | 25069 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
-2021/03/18 | 566379 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
-2021/03/18 | 17429 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
-2021/03/18 | 523372 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
-2021/03/18 | 33578 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
-2021/03/18 | 555926 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
-2021/03/18 | 26632 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
-2021/03/18 | 547260 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
-2021/03/18 | 55488 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
-2021/03/18 | 649325 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
-2021/03/18 | 29399 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
-2021/03/18 | 656637 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
-2021/03/18 | 15699 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
-2021/03/18 | 515149 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
-2021/03/18 | 6306 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
-2021/03/18 | 434789 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
+2021/05/14 | 2127 | macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
+2021/05/14 | 7728 | macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
+2021/05/14 | 172511 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
+2021/05/14 | 947436 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
+2021/05/14 | 4212 | macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
+2021/05/14 | 53204 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
+2021/05/14 | 588344 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
+2021/05/14 | 26394 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
+2021/05/14 | 573518 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
+2021/05/14 | 17429 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
+2021/05/14 | 526914 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
+2021/05/14 | 14748 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
+2021/05/14 | 438103 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
+2021/05/14 | 51720 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
+2021/05/14 | 619765 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
+2021/05/12 | 296047 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
+2021/05/14 | 18487 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
+2021/05/14 | 419934 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
+2021/05/14 | 26831 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
+2021/05/14 | 551626 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
+2021/05/14 | 55245 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
+2021/05/14 | 658596 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
+2021/05/14 | 29399 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
+2021/05/14 | 661637 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
+2021/05/14 | 15720 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+2021/05/14 | 517767 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
+2021/05/14 | 6306 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
+2021/05/14 | 435558 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
2021/02/26 | 4145 | macros/latex/contrib/pdfmanagement-testphase/l3ref-tmp.sty
-2021/03/18 | 12275 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
-2021/03/18 | 550068 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
-2021/03/18 | 1743 | macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
-2021/03/18 | 11300 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
-2021/03/18 | 419958 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
-2021/03/18 | 17807 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
-2021/03/08 | 4470 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
-2021/03/18 | 444675 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
-2021/03/17 | 1195 | macros/latex/contrib/pdfmanagement-testphase/README.md
-2021/03/18 | 580 | macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
-2021/03/18 | 3251 | macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
-2021/03/18 | 7226692 | macros/latex/contrib/pdfmanagement-testphase.zip
+2021/05/14 | 12275 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
+2021/05/14 | 552201 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
+2021/05/14 | 1743 | macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
+2021/05/14 | 11265 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
+2021/05/14 | 421911 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
+2021/05/14 | 17807 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
+2021/05/14 | 4567 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
+2021/05/14 | 446163 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
+2021/05/14 | 1195 | macros/latex/contrib/pdfmanagement-testphase/README.md
+2021/05/14 | 580 | macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
+2021/05/14 | 3797 | macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
+2021/05/14 | 8522926 | macros/latex/contrib/pdfmanagement-testphase.zip
2011/05/05 | 156 | macros/latex/contrib/pdfmarginpar/doc/pdfmarginparexample.aux
2011/05/05 | 3368 | macros/latex/contrib/pdfmarginpar/doc/pdfmarginparexample.log
2011/05/05 | 64982 | macros/latex/contrib/pdfmarginpar/doc/pdfmarginparexample.pdf
@@ -208996,25 +208999,25 @@
2002/02/04 | 5634 | macros/latex/contrib/procIAGssymp/procIAGssymp.sty
2002/02/04 | 7126 | macros/latex/contrib/procIAGssymp/TestPaper.tex
2019/07/29 | 5300 | macros/latex/contrib/procIAGssymp.zip
-2021/04/23 | 2772127 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
-2021/04/23 | 1681849 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
+2021/05/14 | 2781147 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+2021/05/14 | 1682253 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
2021/04/23 | 22499 | macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex
2021/04/23 | 18307 | macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex
2021/04/23 | 19500 | macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex
2021/04/23 | 27315 | macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex
2021/04/23 | 13850 | macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex
2021/04/23 | 22016 | macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex
-2021/04/23 | 523821 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
-2021/04/23 | 5056 | macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp
-2021/04/23 | 13296 | macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
-2021/04/23 | 431 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
-2021/04/23 | 31952 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
-2021/04/23 | 611 | macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
-2021/04/23 | 102313 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
-2021/04/23 | 104283 | macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
-2021/04/23 | 6652 | macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp
+2021/05/14 | 555364 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
+2021/05/14 | 5056 | macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp
+2021/05/14 | 13296 | macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
+2021/05/14 | 431 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
+2021/05/14 | 32140 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+2021/05/14 | 611 | macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
+2021/05/14 | 102313 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
+2021/05/14 | 104283 | macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
+2021/05/14 | 6652 | macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp
2021/01/18 | 435 | macros/latex/contrib/profcollege/README
-2021/04/23 | 4229963 | macros/latex/contrib/profcollege.zip
+2021/05/14 | 4241560 | macros/latex/contrib/profcollege.zip
1996/02/05 | 1760 | macros/latex/contrib/progkeys/demo/demo.tex
1996/02/05 | 459 | macros/latex/contrib/progkeys/demo/prog1.tex
1996/02/05 | 347 | macros/latex/contrib/progkeys/demo/prog2.tex
@@ -265932,7 +265935,7 @@
2020/04/22 | 5992 | systems/texlive/tlnet/archive/bearwear.source.r54826.tar.xz
2021/03/19 | 275784 | systems/texlive/tlnet/archive/beaulivre.doc.r58503.tar.xz
2021/03/19 | 3024 | systems/texlive/tlnet/archive/beaulivre.r58503.tar.xz
-2021/04/26 | 876100 | systems/texlive/tlnet/archive/beebe.r58983.tar.xz
+2021/05/14 | 878160 | systems/texlive/tlnet/archive/beebe.r59178.tar.xz
2019/02/28 | 709916 | systems/texlive/tlnet/archive/begingreek.doc.r36294.tar.xz
2019/02/28 | 1664 | systems/texlive/tlnet/archive/begingreek.r36294.tar.xz
2019/02/28 | 7448 | systems/texlive/tlnet/archive/begingreek.source.r36294.tar.xz
@@ -266323,9 +266326,9 @@
2021/02/27 | 378432 | systems/texlive/tlnet/archive/blox.doc.r57949.tar.xz
2021/02/27 | 2328 | systems/texlive/tlnet/archive/blox.r57949.tar.xz
2021/02/27 | 13840 | systems/texlive/tlnet/archive/blox.source.r57949.tar.xz
-2019/02/28 | 90596 | systems/texlive/tlnet/archive/bnumexpr.doc.r49643.tar.xz
-2019/02/28 | 3720 | systems/texlive/tlnet/archive/bnumexpr.r49643.tar.xz
-2019/02/28 | 16944 | systems/texlive/tlnet/archive/bnumexpr.source.r49643.tar.xz
+2021/05/14 | 90388 | systems/texlive/tlnet/archive/bnumexpr.doc.r59182.tar.xz
+2021/05/14 | 3676 | systems/texlive/tlnet/archive/bnumexpr.r59182.tar.xz
+2021/05/14 | 14532 | systems/texlive/tlnet/archive/bnumexpr.source.r59182.tar.xz
2019/02/28 | 343180 | systems/texlive/tlnet/archive/bodegraph.doc.r20047.tar.xz
2019/02/28 | 16020 | systems/texlive/tlnet/archive/bodegraph.r20047.tar.xz
2020/03/24 | 424416 | systems/texlive/tlnet/archive/bohr.doc.r54512.tar.xz
@@ -267116,10 +267119,10 @@
2020/03/04 | 408 | systems/texlive/tlnet/archive/collection-langpolish.r54074.tar.xz
2020/03/04 | 392 | systems/texlive/tlnet/archive/collection-langportuguese.r54074.tar.xz
2020/03/07 | 380 | systems/texlive/tlnet/archive/collection-langspanish.r54141.tar.xz
-2021/05/13 | 6344 | systems/texlive/tlnet/archive/collection-latexextra.r59173.tar.xz
+2021/05/14 | 6348 | systems/texlive/tlnet/archive/collection-latexextra.r59183.tar.xz
2020/12/03 | 696 | systems/texlive/tlnet/archive/collection-latex.r57048.tar.xz
2021/02/24 | 772 | systems/texlive/tlnet/archive/collection-latexrecommended.r57862.tar.xz
-2021/03/05 | 716 | systems/texlive/tlnet/archive/collection-luatex.r58124.tar.xz
+2021/05/14 | 724 | systems/texlive/tlnet/archive/collection-luatex.r59184.tar.xz
2021/02/16 | 1480 | systems/texlive/tlnet/archive/collection-mathscience.r57759.tar.xz
2019/03/09 | 540 | systems/texlive/tlnet/archive/collection-metapost.r50293.tar.xz
2021/02/24 | 476 | systems/texlive/tlnet/archive/collection-music.r57878.tar.xz
@@ -270173,8 +270176,8 @@
2019/02/28 | 98316 | systems/texlive/tlnet/archive/hrlatex.doc.r18020.tar.xz
2019/02/28 | 3528 | systems/texlive/tlnet/archive/hrlatex.r18020.tar.xz
2019/02/28 | 3768 | systems/texlive/tlnet/archive/hrlatex.source.r18020.tar.xz
-2021/04/19 | 366952 | systems/texlive/tlnet/archive/huawei.doc.r58907.tar.xz
-2021/04/19 | 5668 | systems/texlive/tlnet/archive/huawei.r58907.tar.xz
+2021/05/14 | 367124 | systems/texlive/tlnet/archive/huawei.doc.r59180.tar.xz
+2021/05/14 | 5860 | systems/texlive/tlnet/archive/huawei.r59180.tar.xz
2021/02/01 | 213632 | systems/texlive/tlnet/archive/hu-berlin-bundle.doc.r57580.tar.xz
2021/02/01 | 8244 | systems/texlive/tlnet/archive/hu-berlin-bundle.r57580.tar.xz
2021/02/01 | 17768 | systems/texlive/tlnet/archive/hu-berlin-bundle.source.r57580.tar.xz
@@ -270186,8 +270189,8 @@
2019/02/28 | 24892 | systems/texlive/tlnet/archive/hustthesis.source.r42547.tar.xz
2020/06/24 | 150684 | systems/texlive/tlnet/archive/hvarabic.doc.r55643.tar.xz
2020/06/24 | 1468 | systems/texlive/tlnet/archive/hvarabic.r55643.tar.xz
-2021/05/07 | 19151668 | systems/texlive/tlnet/archive/hvfloat.doc.r59104.tar.xz
-2021/05/07 | 8548 | systems/texlive/tlnet/archive/hvfloat.r59104.tar.xz
+2021/05/14 | 8827024 | systems/texlive/tlnet/archive/hvfloat.doc.r59181.tar.xz
+2021/05/14 | 9192 | systems/texlive/tlnet/archive/hvfloat.r59181.tar.xz
2019/02/28 | 76336 | systems/texlive/tlnet/archive/hvindex.doc.r46051.tar.xz
2019/02/28 | 1672 | systems/texlive/tlnet/archive/hvindex.r46051.tar.xz
2019/12/02 | 96644 | systems/texlive/tlnet/archive/hvqrurl.doc.r52993.tar.xz
@@ -271815,9 +271818,9 @@
2021/04/06 | 18612 | systems/texlive/tlnet/archive/lua-typo.source.r58744.tar.xz
2020/09/24 | 58416 | systems/texlive/tlnet/archive/lua-uca.doc.r56414.tar.xz
2020/09/24 | 70984 | systems/texlive/tlnet/archive/lua-uca.r56414.tar.xz
-2021/04/26 | 98028 | systems/texlive/tlnet/archive/lua-ul.doc.r58988.tar.xz
-2021/04/26 | 6192 | systems/texlive/tlnet/archive/lua-ul.r58988.tar.xz
-2021/04/26 | 9836 | systems/texlive/tlnet/archive/lua-ul.source.r58988.tar.xz
+2021/05/14 | 100604 | systems/texlive/tlnet/archive/lua-ul.doc.r59186.tar.xz
+2021/05/14 | 6676 | systems/texlive/tlnet/archive/lua-ul.r59186.tar.xz
+2021/05/14 | 10640 | systems/texlive/tlnet/archive/lua-ul.source.r59186.tar.xz
2020/05/18 | 62084 | systems/texlive/tlnet/archive/lua-uni-algos.doc.r55206.tar.xz
2020/05/18 | 5384 | systems/texlive/tlnet/archive/lua-uni-algos.r55206.tar.xz
2021/01/08 | 289376 | systems/texlive/tlnet/archive/lua-visual-debug.doc.r57349.tar.xz
@@ -273119,13 +273122,13 @@
2020/02/16 | 320 | systems/texlive/tlnet/archive/optex.amd64-freebsd.r53804.tar.xz
2020/02/16 | 316 | systems/texlive/tlnet/archive/optex.amd64-netbsd.r53804.tar.xz
2020/02/16 | 316 | systems/texlive/tlnet/archive/optex.armhf-linux.r53804.tar.xz
-2021/05/03 | 1438720 | systems/texlive/tlnet/archive/optex.doc.r59055.tar.xz
+2021/05/14 | 1438716 | systems/texlive/tlnet/archive/optex.doc.r59184.tar.xz
2020/02/16 | 320 | systems/texlive/tlnet/archive/optex.i386-cygwin.r53804.tar.xz
2020/02/16 | 316 | systems/texlive/tlnet/archive/optex.i386-freebsd.r53804.tar.xz
2020/02/16 | 316 | systems/texlive/tlnet/archive/optex.i386-linux.r53804.tar.xz
2020/02/16 | 316 | systems/texlive/tlnet/archive/optex.i386-netbsd.r53804.tar.xz
2020/02/16 | 316 | systems/texlive/tlnet/archive/optex.i386-solaris.r53804.tar.xz
-2021/05/03 | 787868 | systems/texlive/tlnet/archive/optex.r59055.tar.xz
+2021/05/14 | 807724 | systems/texlive/tlnet/archive/optex.r59184.tar.xz
2021/02/25 | 320 | systems/texlive/tlnet/archive/optex.universal-darwin.r57908.tar.xz
2021/02/25 | 864 | systems/texlive/tlnet/archive/optex.win32.r57883.tar.xz
2020/02/16 | 324 | systems/texlive/tlnet/archive/optex.x86_64-cygwin.r53804.tar.xz
@@ -273374,6 +273377,8 @@
2019/12/11 | 342644 | systems/texlive/tlnet/archive/pdfescape.doc.r53082.tar.xz
2019/12/11 | 4264 | systems/texlive/tlnet/archive/pdfescape.r53082.tar.xz
2019/12/11 | 8308 | systems/texlive/tlnet/archive/pdfescape.source.r53082.tar.xz
+2021/05/14 | 625108 | systems/texlive/tlnet/archive/pdfextra.doc.r59184.tar.xz
+2021/05/14 | 22320 | systems/texlive/tlnet/archive/pdfextra.r59184.tar.xz
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.aarch64-linux.r52858.tar.xz
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.amd64-freebsd.r52858.tar.xz
2019/11/19 | 340 | systems/texlive/tlnet/archive/pdfjam.amd64-netbsd.r52858.tar.xz
@@ -275680,6 +275685,8 @@
2019/02/28 | 142128 | systems/texlive/tlnet/archive/tabularew.doc.r15878.tar.xz
2019/02/28 | 2128 | systems/texlive/tlnet/archive/tabularew.r15878.tar.xz
2019/02/28 | 7140 | systems/texlive/tlnet/archive/tabularew.source.r15878.tar.xz
+2021/05/14 | 326028 | systems/texlive/tlnet/archive/tabularray.doc.r59183.tar.xz
+2021/05/14 | 17664 | systems/texlive/tlnet/archive/tabularray.r59183.tar.xz
2019/02/28 | 255704 | systems/texlive/tlnet/archive/tabulary.doc.r34368.tar.xz
2019/02/28 | 4032 | systems/texlive/tlnet/archive/tabulary.r34368.tar.xz
2019/02/28 | 8372 | systems/texlive/tlnet/archive/tabulary.source.r34368.tar.xz
@@ -276031,7 +276038,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2021/05/13 | 396960 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59168.tar.xz
+2021/05/14 | 397096 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59178.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -276055,7 +276062,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2021/05/13 | 107980 | systems/texlive/tlnet/archive/texlive-scripts.r59168.tar.xz
+2021/05/14 | 107992 | systems/texlive/tlnet/archive/texlive-scripts.r59178.tar.xz
2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz
2021/04/12 | 36308 | systems/texlive/tlnet/archive/texlive-scripts.win32.r58829.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
@@ -277062,8 +277069,8 @@
2019/02/28 | 8092 | systems/texlive/tlnet/archive/uwthesis.r15878.tar.xz
2019/02/28 | 91260 | systems/texlive/tlnet/archive/vak.doc.r23431.tar.xz
2019/02/28 | 5964 | systems/texlive/tlnet/archive/vak.r23431.tar.xz
-2020/06/06 | 136436 | systems/texlive/tlnet/archive/vancouver.doc.r55423.tar.xz
-2020/06/06 | 8328 | systems/texlive/tlnet/archive/vancouver.r55423.tar.xz
+2021/05/14 | 136664 | systems/texlive/tlnet/archive/vancouver.doc.r59179.tar.xz
+2021/05/14 | 8704 | systems/texlive/tlnet/archive/vancouver.r59179.tar.xz
2019/02/28 | 133116 | systems/texlive/tlnet/archive/variablelm.doc.r46611.tar.xz
2019/02/28 | 3624 | systems/texlive/tlnet/archive/variablelm.r46611.tar.xz
2019/02/28 | 75756 | systems/texlive/tlnet/archive/variations.doc.r15878.tar.xz
@@ -277755,16 +277762,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2021/05/02 | 105152 | systems/texlive/tlnet/install-tl
-2021/05/13 | 6810826 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2021/05/13 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2021/05/13 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2021/05/14 | 6810828 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2021/05/14 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2021/05/14 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2021/05/13 | 20808508 | systems/texlive/tlnet/install-tl-windows.exe
-2021/05/13 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2021/05/13 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2021/05/13 | 25582711 | systems/texlive/tlnet/install-tl.zip
-2021/05/13 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2021/05/13 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2021/05/14 | 20808091 | systems/texlive/tlnet/install-tl-windows.exe
+2021/05/14 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2021/05/14 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2021/05/14 | 25582709 | systems/texlive/tlnet/install-tl.zip
+2021/05/14 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2021/05/14 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2021/04/01 | 1229 | systems/texlive/tlnet/README.md
2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021
2021/03/15 | 6571 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -277774,7 +277781,7 @@
2021/03/15 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2021/05/07 | 49598 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2021/05/12 | 6807 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2021/05/13 | 6818 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -277816,12 +277823,12 @@
2021/05/02 | 20361 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/02/20 | 5400 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2020/09/22 | 27563 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2021/05/13 | 17225173 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2021/05/13 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2021/05/14 | 17228815 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2021/05/14 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/05/06 | 86490 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2021/05/13 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2021/05/13 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2021/05/13 | 2301360 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2021/05/14 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2021/05/14 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2021/05/14 | 2304488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/05/06 | 58771 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/03/17 | 42077 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2020/05/11 | 15010 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -282509,7 +282516,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2021/05/13 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/05/14 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -283710,9 +283717,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2021/03/15 | 39247 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2021/03/15 | 43386 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/05/13 | 209371 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2021/05/13 | 1269260 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2021/05/13 | 1186595 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/05/14 | 209347 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/05/14 | 1270280 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/05/14 | 1185940 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2021/03/15 | 13447 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2021/03/15 | 14320 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -283873,190 +283880,190 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2021/05/13 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2021/05/13 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2021/05/13 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2021/05/13 | 968693 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2021/05/13 | 1078876 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2021/05/13 | 29055 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2021/05/13 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/05/13 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2021/05/13 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/05/13 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2021/05/13 | 57600 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/05/13 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2021/05/13 | 94740 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/05/13 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2021/05/13 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2021/05/13 | 27183 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2021/05/13 | 30885 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2021/05/13 | 330235 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2021/05/13 | 392596 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2021/05/13 | 32746 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2021/05/13 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2021/05/13 | 51433 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2021/05/13 | 56717 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/05/13 | 4709 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2021/05/13 | 239479 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2021/05/13 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2021/05/13 | 179380 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2021/05/13 | 195666 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2021/05/13 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2021/05/13 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2021/05/13 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/05/13 | 23292 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/05/13 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/05/13 | 45650 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2021/05/13 | 51160 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2021/05/13 | 282107 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/05/13 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2021/05/13 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2021/05/13 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2021/05/13 | 116931 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2021/05/13 | 131489 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/05/13 | 1281106 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2021/05/13 | 1425981 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/05/13 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2021/05/13 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/05/13 | 43059 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2021/05/13 | 47878 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/05/13 | 25155 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2021/05/13 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2021/05/13 | 55823 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2021/05/13 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/05/13 | 135004 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2021/05/13 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2021/05/13 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2021/05/13 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/05/13 | 71570 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2021/05/13 | 80660 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2021/05/13 | 258666 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2021/05/13 | 295555 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2021/05/13 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2021/05/13 | 25002 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/05/13 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/05/13 | 112252 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2021/05/13 | 63836 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2021/05/13 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2021/05/13 | 96145 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2021/05/13 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/05/13 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/05/13 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/05/13 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2021/05/13 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/05/13 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2021/05/13 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2021/05/13 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/05/13 | 109276 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/05/13 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2021/05/13 | 17958 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/05/13 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2021/05/13 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2021/05/13 | 625282 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/05/13 | 680052 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2021/05/13 | 532041 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2021/05/13 | 594868 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2021/05/13 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2021/05/13 | 511635 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/05/13 | 94269 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2021/05/13 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2021/05/13 | 1725547 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2021/05/13 | 2009490 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/05/13 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2021/05/13 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2021/05/13 | 27363 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2021/05/13 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/05/13 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2021/05/13 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2021/05/13 | 195565 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2021/05/13 | 214105 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2021/05/13 | 250210 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/05/13 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/05/13 | 97135 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2021/05/13 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2021/05/13 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2021/05/13 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/05/13 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2021/05/13 | 136426 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2021/05/13 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2021/05/13 | 163655 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2021/05/13 | 199701 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2021/05/13 | 180049 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/05/13 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2021/05/13 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/05/13 | 31192 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/05/13 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/05/13 | 38066 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2021/05/13 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/05/13 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2021/05/13 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/05/13 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2021/05/13 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2021/05/13 | 193717 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2021/05/13 | 211055 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/05/13 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2021/05/13 | 39692 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2021/05/13 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2021/05/13 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2021/05/13 | 198131 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2021/05/13 | 202557 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/05/13 | 208182 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2021/05/13 | 243480 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2021/05/13 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2021/05/13 | 87703 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/05/13 | 1171730 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2021/05/13 | 1307724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2021/05/13 | 20121 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2021/05/13 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2021/05/13 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2021/05/13 | 37244 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2021/05/13 | 64018 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2021/05/13 | 72152 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/05/13 | 43679 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2021/05/13 | 51980 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/05/13 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2021/05/13 | 1424811 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2021/05/13 | 42389 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2021/05/13 | 51798 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/05/13 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2021/05/13 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2021/05/13 | 25342 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2021/05/13 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/05/13 | 16114 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/05/13 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/05/13 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2021/05/13 | 70110 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2021/05/13 | 153891 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2021/05/13 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2021/05/13 | 56908 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2021/05/13 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2021/05/13 | 98520 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2021/05/13 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2021/05/13 | 2499402 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2021/05/13 | 2616932 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2021/05/13 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2021/05/13 | 62225 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/05/13 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2021/05/13 | 37294 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2021/05/13 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/05/13 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/05/13 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2021/05/13 | 70325 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2021/05/13 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2021/05/13 | 345368 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2021/05/13 | 55563 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2021/05/13 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2021/05/13 | 583628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2021/05/13 | 618767 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2021/05/13 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2021/05/13 | 43391 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/05/13 | 209301 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2021/05/13 | 1270198 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/05/13 | 1185935 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2021/05/13 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2021/05/13 | 14354 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/05/14 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/05/14 | 50848 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/05/14 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/05/14 | 968698 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/05/14 | 1078877 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/05/14 | 29055 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/05/14 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/05/14 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/05/14 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/05/14 | 49972 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/05/14 | 57600 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/05/14 | 84772 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/05/14 | 94737 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/05/14 | 67680 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/05/14 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/05/14 | 27182 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/05/14 | 30887 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/05/14 | 330233 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/05/14 | 392597 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/05/14 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/05/14 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/05/14 | 51432 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/05/14 | 56716 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/05/14 | 4704 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2021/05/14 | 239478 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/05/14 | 261963 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/05/14 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/05/14 | 195665 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/05/14 | 52477 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/05/14 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/05/14 | 21131 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/05/14 | 23292 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/05/14 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/05/14 | 45651 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/05/14 | 51161 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/05/14 | 282107 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/05/14 | 321895 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/05/14 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/05/14 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/05/14 | 116928 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/05/14 | 131491 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/05/14 | 1281104 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/05/14 | 1425981 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/05/14 | 87638 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2021/05/14 | 99607 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/05/14 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/05/14 | 47878 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/05/14 | 25154 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/05/14 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/05/14 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/05/14 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/05/14 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/05/14 | 152761 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/05/14 | 73182 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/05/14 | 77860 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/05/14 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/05/14 | 80662 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/05/14 | 258665 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/05/14 | 295554 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/05/14 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/05/14 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/05/14 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/05/14 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/05/14 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/05/14 | 72861 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/05/14 | 96147 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/05/14 | 115470 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/05/14 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/05/14 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/05/14 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/05/14 | 567627 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/05/14 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/05/14 | 159969 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/05/14 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/05/14 | 109275 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/05/14 | 16328 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/05/14 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/05/14 | 28120 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/05/14 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/05/14 | 625284 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/05/14 | 680053 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/05/14 | 532038 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/05/14 | 594871 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/05/14 | 475937 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/05/14 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/05/14 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/05/14 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/05/14 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/05/14 | 2009488 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/05/14 | 67651 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/05/14 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/05/14 | 27362 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/05/14 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/05/14 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/05/14 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/05/14 | 195568 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/05/14 | 214104 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/05/14 | 250209 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/05/14 | 283979 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/05/14 | 97134 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/05/14 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/05/14 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/05/14 | 67931 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/05/14 | 124973 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/05/14 | 136425 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/05/14 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/05/14 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/05/14 | 199700 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/05/14 | 180047 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/05/14 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/05/14 | 77488 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/05/14 | 31192 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/05/14 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/05/14 | 38065 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/05/14 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/05/14 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/05/14 | 47009 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/05/14 | 45938 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/05/14 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/05/14 | 193717 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/05/14 | 211055 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/05/14 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/05/14 | 39691 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/05/14 | 748362 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/05/14 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/05/14 | 198129 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/05/14 | 202558 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/05/14 | 208181 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/05/14 | 243481 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/05/14 | 78745 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/05/14 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/05/14 | 1171731 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/05/14 | 1307725 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/05/14 | 20117 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/05/14 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/05/14 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/05/14 | 37240 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/05/14 | 64017 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/05/14 | 72152 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/05/14 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/05/14 | 51980 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/05/14 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/05/14 | 1424811 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/05/14 | 42388 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/05/14 | 51798 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/05/14 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/05/14 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/05/14 | 25341 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/05/14 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/05/14 | 16113 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/05/14 | 18096 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/05/14 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/05/14 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/05/14 | 153890 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/05/14 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/05/14 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/05/14 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/05/14 | 98518 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/05/14 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/05/14 | 2499400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/05/14 | 2616928 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/05/14 | 55218 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/05/14 | 62224 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/05/14 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/05/14 | 37291 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/05/14 | 27196 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/05/14 | 33151 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/05/14 | 65731 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/05/14 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/05/14 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/05/14 | 345366 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/05/14 | 55562 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/05/14 | 57065 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/05/14 | 583629 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/05/14 | 618762 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/05/14 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/05/14 | 43390 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/05/14 | 209212 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/05/14 | 1269706 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/05/14 | 1185179 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/05/14 | 13469 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/05/14 | 14352 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2021/05/13 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/05/14 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -284390,7 +284397,7 @@
2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2021/05/13 | 850 | systems/win32/miktex/tm/packages/pr.ini
+2021/05/14 | 850 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -285577,7 +285584,7 @@
2021/05/08 | 5531876 | systems/win32/w32tex/aleph-w32.tar.xz
2021/05/09 | 63720288 | systems/win32/w32tex/biblatex-biber.tar.xz
2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz
-2021/05/12 | 831401 | systems/win32/w32tex/ChangeLog
+2021/05/13 | 831637 | systems/win32/w32tex/ChangeLog
2009/08/03 | 141221 | systems/win32/w32tex/ChangeLog.0
2009/08/03 | 221890 | systems/win32/w32tex/ChangeLog.1
2009/08/03 | 116462 | systems/win32/w32tex/ChangeLog.2
@@ -285601,16 +285608,16 @@
2021/03/21 | 34776716 | systems/win32/w32tex/latex.tar.xz
2021/04/07 | 1007424 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz
2021/03/30 | 421014648 | systems/win32/w32tex/ltxpkgdocs.tar.xz
-2021/05/12 | 35252076 | systems/win32/w32tex/ltxpkgs.tar.xz
-2021/05/11 | 3844932 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
-2021/05/11 | 3823404 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
-2021/05/11 | 3830288 | systems/win32/w32tex/luajittex-w32.tar.xz
+2021/05/13 | 35249476 | systems/win32/w32tex/ltxpkgs.tar.xz
+2021/05/12 | 3891892 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
+2021/05/12 | 3899756 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
+2021/05/12 | 3907764 | systems/win32/w32tex/luajittex-w32.tar.xz
2021/03/26 | 838276 | systems/win32/w32tex/luasec-w32.tar.xz
-2021/05/12 | 18927808 | systems/win32/w32tex/luatex-dev-w32.tar.xz
-2021/05/12 | 18905048 | systems/win32/w32tex/luatex-exp-w32.tar.xz
+2021/05/12 | 18906048 | systems/win32/w32tex/luatex-dev-w32.tar.xz
+2021/05/12 | 18928128 | systems/win32/w32tex/luatex-exp-w32.tar.xz
2021/04/12 | 68821016 | systems/win32/w32tex/luatexja.tar.xz
-2021/05/12 | 18898988 | systems/win32/w32tex/luatex-w32.tar.xz
-2021/05/10 | 1613572 | systems/win32/w32tex/makeindex-w32.tar.xz
+2021/05/12 | 18910496 | systems/win32/w32tex/luatex-w32.tar.xz
+2021/05/12 | 1612948 | systems/win32/w32tex/makeindex-w32.tar.xz
2021/03/28 | 5371984 | systems/win32/w32tex/manual.tar.xz
2021/04/07 | 439524 | systems/win32/w32tex/mftools.tar.xz
2021/04/07 | 525008 | systems/win32/w32tex/mftrace-w32.tar.xz
@@ -285620,7 +285627,7 @@
2021/04/07 | 1246480 | systems/win32/w32tex/omegaj-w32.tar.xz
2020/11/16 | 324540 | systems/win32/w32tex/otfbeta.tar.xz
2021/05/12 | 22214320 | systems/win32/w32tex/pdftex-w32.tar.xz
-2021/05/10 | 98152500 | systems/win32/w32tex/pgfcontrib.tar.xz
+2021/05/13 | 98820584 | systems/win32/w32tex/pgfcontrib.tar.xz
2015/01/26 | 189072 | systems/win32/w32tex/plain2-2.54-w32.tar.xz
2021/02/14 | 2826912 | systems/win32/w32tex/platex.tar.xz
2021/04/07 | 1726052 | systems/win32/w32tex/pmx.tar.xz
@@ -285672,14 +285679,14 @@
2021/04/07 | 588136 | systems/win32/w32tex/win64/jtex-w64.tar.xz
2019/11/11 | 2568 | systems/win32/w32tex/win64/latex-dev-w64.tar.xz
2021/04/07 | 800472 | systems/win32/w32tex/win64/lcdf-typetools-w64.tar.xz
-2021/05/11 | 3458788 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
-2021/05/11 | 3457056 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
-2021/05/11 | 3473604 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
+2021/05/12 | 3467100 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
+2021/05/12 | 3452680 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
+2021/05/12 | 3467260 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
2021/03/26 | 936184 | systems/win32/w32tex/win64/luasec-w64.tar.xz
-2021/05/11 | 3132192 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
-2021/05/11 | 3128608 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
-2021/05/11 | 3116804 | systems/win32/w32tex/win64/luatex-w64.tar.xz
-2021/05/10 | 1082700 | systems/win32/w32tex/win64/makeindex-w64.tar.xz
+2021/05/12 | 3133228 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
+2021/05/12 | 3127940 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
+2021/05/12 | 3128308 | systems/win32/w32tex/win64/luatex-w64.tar.xz
+2021/05/12 | 1083588 | systems/win32/w32tex/win64/makeindex-w64.tar.xz
2021/04/07 | 431500 | systems/win32/w32tex/win64/mftools-w64.tar.xz
2021/04/07 | 377008 | systems/win32/w32tex/win64/mftrace-w64.tar.xz
2020/01/18 | 362540 | systems/win32/w32tex/win64/m-tx-w64.tar.xz
@@ -285798,7 +285805,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2021/05/14 | 186 | timestamp
+2021/05/15 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index f32b2e0990..85b8ba67bf 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 368d3749b6..a8fc5f09a6 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,24 +1,300 @@
+2021/05/14 | 99607 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/05/14 | 98518 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/05/14 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/05/14 | 97134 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/05/14 | 968698 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/05/14 | 96147 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/05/14 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/05/14 | 947436 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
+2021/05/14 | 94737 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/05/14 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/05/14 | 9192 | systems/texlive/tlnet/archive/hvfloat.r59181.tar.xz
+2021/05/14 | 90388 | systems/texlive/tlnet/archive/bnumexpr.doc.r59182.tar.xz
+2021/05/14 | 890 | macros/latex/contrib/noindentafter/doc/LICENSE.md
+2021/05/14 | 8827024 | systems/texlive/tlnet/archive/hvfloat.doc.r59181.tar.xz
+2021/05/14 | 878160 | systems/texlive/tlnet/archive/beebe.r59178.tar.xz
+2021/05/14 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/05/14 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/05/14 | 87638 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2021/05/14 | 8704 | systems/texlive/tlnet/archive/vancouver.r59179.tar.xz
+2021/05/14 | 8522926 | macros/latex/contrib/pdfmanagement-testphase.zip
+2021/05/14 | 850 | systems/win32/miktex/tm/packages/pr.ini
+2021/05/14 | 84772 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/05/14 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/05/14 | 807724 | systems/texlive/tlnet/archive/optex.r59184.tar.xz
+2021/05/14 | 80662 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/05/14 | 78745 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/05/14 | 77860 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/05/14 | 77488 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/05/14 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/05/14 | 7728 | macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
+2021/05/14 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/05/14 | 748362 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/05/14 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/05/14 | 73182 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/05/14 | 72861 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/05/14 | 724 | systems/texlive/tlnet/archive/collection-luatex.r59184.tar.xz
+2021/05/14 | 72152 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/05/14 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/05/14 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/05/14 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/05/14 | 6810828 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2021/05/14 | 680053 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/05/14 | 67931 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/05/14 | 67680 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/05/14 | 67651 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/05/14 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/05/14 | 6676 | systems/texlive/tlnet/archive/lua-ul.r59186.tar.xz
+2021/05/14 | 6652 | macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp
+2021/05/14 | 661637 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
+2021/05/14 | 658596 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
+2021/05/14 | 65731 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/05/14 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/05/14 | 64017 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/05/14 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/05/14 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/05/14 | 6348 | systems/texlive/tlnet/archive/collection-latexextra.r59183.tar.xz
+2021/05/14 | 6306 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
+2021/05/14 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/05/14 | 625284 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/05/14 | 625108 | systems/texlive/tlnet/archive/pdfextra.doc.r59184.tar.xz
+2021/05/14 | 62224 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/05/14 | 619765 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
+2021/05/14 | 618762 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/05/14 | 611 | macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
+2021/05/14 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/05/14 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/05/14 | 594871 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/05/14 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/05/14 | 588344 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
+2021/05/14 | 5860 | systems/texlive/tlnet/archive/huawei.r59180.tar.xz
+2021/05/14 | 583629 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/05/14 | 580 | macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
+2021/05/14 | 57600 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/05/14 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/05/14 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/05/14 | 573518 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
+2021/05/14 | 57065 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/05/14 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/05/14 | 567627 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/05/14 | 56716 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/05/14 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/05/14 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/05/14 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/05/14 | 55562 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/05/14 | 555364 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
+2021/05/14 | 55245 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
+2021/05/14 | 552201 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
+2021/05/14 | 55218 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/05/14 | 551626 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
+2021/05/14 | 53204 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
+2021/05/14 | 532038 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/05/14 | 526914 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
+2021/05/14 | 52477 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/05/14 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/05/14 | 51980 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/05/14 | 51798 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/05/14 | 517767 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
+2021/05/14 | 51720 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
+2021/05/14 | 51432 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/05/14 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/05/14 | 51161 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/05/14 | 50848 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/05/14 | 5056 | macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp
+2021/05/14 | 49972 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/05/14 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2021/05/14 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/05/14 | 47878 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/05/14 | 475937 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/05/14 | 4704 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2021/05/14 | 47009 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/05/14 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/05/14 | 45938 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/05/14 | 4567 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
+2021/05/14 | 45651 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/05/14 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2021/05/14 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2021/05/14 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2021/05/14 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2021/05/14 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/05/14 | 446163 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
+2021/05/14 | 438103 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
+2021/05/14 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/05/14 | 435558 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
+2021/05/14 | 43390 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/05/14 | 431 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
+2021/05/14 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/05/14 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/05/14 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/05/14 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/05/14 | 4241560 | macros/latex/contrib/profcollege.zip
+2021/05/14 | 42388 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/05/14 | 421911 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
+2021/05/14 | 4212 | macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
+2021/05/14 | 419934 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
+2021/05/14 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/05/14 | 406986 | macros/latex/contrib/noindentafter/doc/noindentafter.pdf
+2021/05/14 | 403906 | macros/latex/contrib/noindentafter.zip
+2021/05/14 | 397096 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59178.tar.xz
+2021/05/14 | 39691 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/05/14 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/05/14 | 392597 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/05/14 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/05/14 | 38065 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/05/14 | 3797 | macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
+2021/05/14 | 37291 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/05/14 | 37240 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/05/14 | 3676 | systems/texlive/tlnet/archive/bnumexpr.r59182.tar.xz
+2021/05/14 | 367124 | systems/texlive/tlnet/archive/huawei.doc.r59180.tar.xz
+2021/05/14 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/05/14 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/05/14 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/05/14 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/05/14 | 345366 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/05/14 | 339353 | macros/latex/contrib/easybook.zip
+2021/05/14 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/05/14 | 33151 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/05/14 | 330233 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/05/14 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/05/14 | 326028 | systems/texlive/tlnet/archive/tabularray.doc.r59183.tar.xz
+2021/05/14 | 321895 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/05/14 | 32140 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+2021/05/14 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/05/14 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/05/14 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/05/14 | 31192 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/05/14 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/05/14 | 30887 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/05/14 | 308731 | macros/latex/contrib/easybook/easybook.pdf
+2021/05/14 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/05/14 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/05/14 | 295554 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/05/14 | 29399 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
+2021/05/14 | 29055 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/05/14 | 283979 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/05/14 | 282107 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/05/14 | 28120 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/05/14 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/05/14 | 2781147 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+2021/05/14 | 27362 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/05/14 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/05/14 | 27196 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/05/14 | 27182 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/05/14 | 26831 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
+2021/05/14 | 26394 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
+2021/05/14 | 261963 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/05/14 | 2616928 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/05/14 | 258665 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/05/14 | 25582709 | systems/texlive/tlnet/install-tl.zip
+2021/05/14 | 25341 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/05/14 | 25154 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/05/14 | 250209 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/05/14 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/05/14 | 2499400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/05/14 | 243481 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/05/14 | 239478 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/05/14 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/05/14 | 23292 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/05/14 | 2304488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2021/05/14 | 22320 | systems/texlive/tlnet/archive/pdfextra.r59184.tar.xz
+2021/05/14 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/05/14 | 214104 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/05/14 | 2127 | macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
+2021/05/14 | 21131 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/05/14 | 211055 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/05/14 | 209347 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/05/14 | 209212 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/05/14 | 208181 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/05/14 | 20808091 | systems/texlive/tlnet/install-tl-windows.exe
+2021/05/14 | 202558 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/05/14 | 20117 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/05/14 | 2009488 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/05/14 | 199700 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/05/14 | 198129 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/05/14 | 195665 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/05/14 | 195568 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/05/14 | 193717 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/05/14 | 18487 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
+2021/05/14 | 18096 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/05/14 | 180047 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/05/14 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/05/14 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/05/14 | 17807 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
+2021/05/14 | 17664 | systems/texlive/tlnet/archive/tabularray.r59183.tar.xz
+2021/05/14 | 1743 | macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
+2021/05/14 | 17429 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
+2021/05/14 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/05/14 | 172511 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
+2021/05/14 | 17228815 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2021/05/14 | 1682253 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
+2021/05/14 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/05/14 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/05/14 | 16328 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/05/14 | 16113 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/05/14 | 159969 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/05/14 | 15720 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+2021/05/14 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2021/05/14 | 153890 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/05/14 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2021/05/14 | 152761 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/05/14 | 14748 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
+2021/05/14 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/05/14 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/05/14 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2021/05/14 | 14532 | systems/texlive/tlnet/archive/bnumexpr.source.r59182.tar.xz
+2021/05/14 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2021/05/14 | 1438716 | systems/texlive/tlnet/archive/optex.doc.r59184.tar.xz
+2021/05/14 | 14352 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/05/14 | 1425981 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/05/14 | 1424811 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/05/14 | 136664 | systems/texlive/tlnet/archive/vancouver.doc.r59179.tar.xz
+2021/05/14 | 136425 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/05/14 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/05/14 | 13469 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/05/14 | 13296 | macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
+2021/05/14 | 131491 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/05/14 | 1307725 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/05/14 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/05/14 | 1281104 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/05/14 | 1270280 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/05/14 | 1269706 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/05/14 | 1257 | macros/latex/contrib/noindentafter/README.md
+2021/05/14 | 124973 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/05/14 | 12275 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
+2021/05/14 | 121366 | macros/latex/contrib/easybook/easybook.dtx
+2021/05/14 | 12085 | macros/latex/contrib/noindentafter/source/noindentafter.dtx
+2021/05/14 | 1195 | macros/latex/contrib/pdfmanagement-testphase/README.md
+2021/05/14 | 1185940 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/05/14 | 1185179 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/05/14 | 1171731 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/05/14 | 116928 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/05/14 | 115470 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/05/14 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/05/14 | 11265 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
+2021/05/14 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/05/14 | 109275 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/05/14 | 107992 | systems/texlive/tlnet/archive/texlive-scripts.r59178.tar.xz
+2021/05/14 | 1078877 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/05/14 | 10640 | systems/texlive/tlnet/archive/lua-ul.source.r59186.tar.xz
+2021/05/14 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/05/14 | 104283 | macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
+2021/05/14 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/05/14 | 102313 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
+2021/05/14 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/05/14 | 100604 | systems/texlive/tlnet/archive/lua-ul.doc.r59186.tar.xz
2021/05/13 | 9969 | usergrps/usergrps/lt.html
2021/05/13 | 99663 | macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf
-2021/05/13 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
2021/05/13 | 9939 | usergrps/usergrps/ee.html
2021/05/13 | 98926 | macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf
-2021/05/13 | 98520 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/05/13 | 98820584 | systems/win32/w32tex/pgfcontrib.tar.xz
2021/05/13 | 97975 | macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf
2021/05/13 | 97786 | macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf
-2021/05/13 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/05/13 | 97135 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
2021/05/13 | 96 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_ex.tex
-2021/05/13 | 968693 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
2021/05/13 | 96634 | macros/latex/contrib/bnumexpr/bnumexpr.pdf
2021/05/13 | 96371 | macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf
-2021/05/13 | 96145 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
2021/05/13 | 94860 | macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf
2021/05/13 | 94839 | macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf
-2021/05/13 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/05/13 | 94740 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2021/05/13 | 9443 | macros/luatex/optex/pdfextra/examples/pdfextra-example.tex
-2021/05/13 | 94269 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
2021/05/13 | 94091 | macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf
2021/05/13 | 94058 | macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf
2021/05/13 | 93929 | macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf
@@ -29,9 +305,6 @@
2021/05/13 | 88820 | macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf
2021/05/13 | 88402 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf
2021/05/13 | 88388 | macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf
-2021/05/13 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2021/05/13 | 87703 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/05/13 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
2021/05/13 | 868 | macros/luatex/optex/pdfextra/README.md
2021/05/13 | 86749 | macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf
2021/05/13 | 86058 | macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf
@@ -39,12 +312,10 @@
2021/05/13 | 85414 | macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf
2021/05/13 | 85371 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf
2021/05/13 | 85110 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf
-2021/05/13 | 850 | systems/win32/miktex/tm/packages/pr.ini
2021/05/13 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf
2021/05/13 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf
2021/05/13 | 84982 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf
2021/05/13 | 84812 | macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf
-2021/05/13 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2021/05/13 | 84759 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf
2021/05/13 | 84735 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf
2021/05/13 | 84681 | macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf
@@ -58,6 +329,7 @@
2021/05/13 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf
2021/05/13 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf
2021/05/13 | 83517 | macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf
+2021/05/13 | 831637 | systems/win32/w32tex/ChangeLog
2021/05/13 | 82 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_ex.tex
2021/05/13 | 82970 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf
2021/05/13 | 82935 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf
@@ -92,358 +364,169 @@
2021/05/13 | 82291 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf
2021/05/13 | 81965 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf
2021/05/13 | 81687 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf
-2021/05/13 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2021/05/13 | 81521 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf
2021/05/13 | 81125 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf
-2021/05/13 | 80660 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2021/05/13 | 79 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_ex.tex
2021/05/13 | 7905248 | macros/latex/contrib/changes.zip
2021/05/13 | 78953 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf
-2021/05/13 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2021/05/13 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/05/13 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/05/13 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2021/05/13 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2021/05/13 | 75270 | macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf
-2021/05/13 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
2021/05/13 | 74370 | macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf
-2021/05/13 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
2021/05/13 | 73913 | macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf
-2021/05/13 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2021/05/13 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2021/05/13 | 72152 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/05/13 | 71570 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2021/05/13 | 70325 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2021/05/13 | 70110 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2021/05/13 | 692076 | macros/luatex/optex/pdfextra.zip
2021/05/13 | 68210 | macros/luatex/optex/pdfextra/pdfextra.opm
+2021/05/13 | 6818 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2021/05/13 | 68141 | macros/latex/contrib/changes/examples/changes.example.final.pdf
-2021/05/13 | 6810826 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2021/05/13 | 680052 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2021/05/13 | 67938 | macros/musixtex/doc/musixdoc/extensions.tex
-2021/05/13 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/05/13 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2021/05/13 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
2021/05/13 | 6749 | macros/latex/contrib/huawei/huawei.tex
-2021/05/13 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
2021/05/13 | 66 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_in.tex
2021/05/13 | 662 | macros/luatex/optex/pdfextra/LICENSE
-2021/05/13 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2021/05/13 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2021/05/13 | 6506 | usergrps/usergrps/index.html
-2021/05/13 | 64018 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
2021/05/13 | 63 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_ex.tex
-2021/05/13 | 63836 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2021/05/13 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2021/05/13 | 6344 | systems/texlive/tlnet/archive/collection-latexextra.r59173.tar.xz
2021/05/13 | 62 | macros/latex/contrib/changes/userdoc/replaced_in.tex
-2021/05/13 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/05/13 | 625282 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/05/13 | 62225 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/05/13 | 618767 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2021/05/13 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2021/05/13 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2021/05/13 | 5963 | macros/musixtex/tex/musixvbm.tex
-2021/05/13 | 594868 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2021/05/13 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
2021/05/13 | 58 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_in.tex
2021/05/13 | 58 | macros/latex/contrib/changes/userdoc/listofchanges_in.tex
2021/05/13 | 58808 | macros/latex/contrib/changes/changes.dtx
2021/05/13 | 58592 | macros/luatex/optex/pdfextra/examples/pdfextra-example-part.prc
-2021/05/13 | 583628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2021/05/13 | 57600 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/05/13 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2021/05/13 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma
-2021/05/13 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
2021/05/13 | 56 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_in.tex
2021/05/13 | 56 | macros/latex/contrib/changes/userdoc/setlocextension_ex.tex
2021/05/13 | 56 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_ex.tex
-2021/05/13 | 56908 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2021/05/13 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/05/13 | 56717 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/05/13 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2021/05/13 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
2021/05/13 | 55 | macros/latex/contrib/changes/userdoc/settruncatewidth_ex.tex
2021/05/13 | 55 | macros/latex/contrib/changes/userdoc/definechangesauthor_in.tex
-2021/05/13 | 55823 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2021/05/13 | 55563 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2021/05/13 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2021/05/13 | 5450 | macros/musixtex/doc/musixdoc/frontmatter.tex
2021/05/13 | 53 | macros/latex/contrib/changes/userdoc/setsummarywidth_ex.tex
2021/05/13 | 53380 | systems/texlive/tlnet/archive/unravel.source.r59175.tar.xz
-2021/05/13 | 532041 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_in.tex
2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_in.tex
2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_ex.tex
2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/setaddedmarkup_ex.tex
2021/05/13 | 5268 | systems/texlive/tlnet/archive/marathi.r59172.tar.xz
2021/05/13 | 5264 | macros/latex/contrib/changes/regression.dtx
-2021/05/13 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2021/05/13 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
2021/05/13 | 52252 | macros/latex/contrib/bnumexpr/bnumexpr.dtx
2021/05/13 | 51 | macros/latex/contrib/changes/userdoc/usepackage_draft_changes_in.tex
2021/05/13 | 51 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_in.tex
-2021/05/13 | 51980 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/05/13 | 51798 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/05/13 | 51433 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2021/05/13 | 5128 | systems/texlive/tlnet/archive/codehigh.r59173.tar.xz
-2021/05/13 | 511635 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/05/13 | 51160 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2021/05/13 | 50 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_in.tex
-2021/05/13 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
2021/05/13 | 5030 | macros/latex/contrib/changes/example-screenshot.dtx
2021/05/13 | 49 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_in.tex
2021/05/13 | 49 | macros/latex/contrib/changes/userdoc/deleted_in.tex
-2021/05/13 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2021/05/13 | 4932 | macros/latex/contrib/changes/changes.drv
-2021/05/13 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/05/13 | 48 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_ex.tex
2021/05/13 | 48 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_in.tex
2021/05/13 | 48 | macros/latex/contrib/changes/userdoc/setsocextension_ex.tex
-2021/05/13 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2021/05/13 | 4828 | macros/musixtex/doc/musixdoc/musixdoc.sty
2021/05/13 | 47 | macros/latex/contrib/changes/userdoc/highlight_in.tex
2021/05/13 | 47 | macros/latex/contrib/changes/userdoc/added_in.tex
-2021/05/13 | 47878 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/05/13 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2021/05/13 | 4709 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2021/05/13 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/05/13 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/05/13 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2021/05/13 | 45650 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2021/05/13 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2021/05/13 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2021/05/13 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2021/05/13 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/05/13 | 452979 | macros/latex/contrib/changes/changes.english.withcode.pdf
-2021/05/13 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
2021/05/13 | 43 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_in.tex
-2021/05/13 | 43679 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2021/05/13 | 43391 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/05/13 | 43059 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2021/05/13 | 42 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_in.tex
-2021/05/13 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2021/05/13 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/05/13 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/05/13 | 42389 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2021/05/13 | 42081 | macros/latex/contrib/changes/userdoc/changes.de.tex
2021/05/13 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_in.tex
2021/05/13 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_ex.tex
2021/05/13 | 41 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_in.tex
-2021/05/13 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
2021/05/13 | 40624 | biblio/bibtex/contrib/vancouver/vancouver.bst
2021/05/13 | 39 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_in.tex
-2021/05/13 | 396960 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59168.tar.xz
-2021/05/13 | 39692 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2021/05/13 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2021/05/13 | 392596 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2021/05/13 | 38 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_in.tex
2021/05/13 | 38 | macros/latex/contrib/changes/userdoc/path_doc_examples_in.tex
2021/05/13 | 385845 | macros/luatex/optex/pdfextra/examples/pdfextra-example.pdf
2021/05/13 | 38432 | macros/latex/contrib/changes/userdoc/changes.en.tex
-2021/05/13 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/05/13 | 38066 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
2021/05/13 | 37 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_in.tex
2021/05/13 | 379316 | macros/latex/contrib/tabularray/tabularray.pdf
2021/05/13 | 37637 | usergrps/usergrps/lugs.html
2021/05/13 | 376315 | macros/latex/contrib/changes/changes.ngerman.pdf
-2021/05/13 | 37294 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2021/05/13 | 37244 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
2021/05/13 | 372353 | macros/latex/contrib/huawei.zip
2021/05/13 | 368904 | macros/latex/contrib/changes/changes.english.pdf
2021/05/13 | 367564 | systems/texlive/tlnet/archive/els-cas-templates.doc.r59170.tar.xz
-2021/05/13 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2021/05/13 | 362961 | macros/latex/contrib/huawei/huawei.pdf
-2021/05/13 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/05/13 | 35249476 | systems/win32/w32tex/ltxpkgs.tar.xz
2021/05/13 | 351179 | macros/latex/contrib/tabularray.zip
-2021/05/13 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
2021/05/13 | 34 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_in.tex
-2021/05/13 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/05/13 | 345368 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2021/05/13 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2021/05/13 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/05/13 | 330235 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2021/05/13 | 32 | macros/latex/contrib/changes/userdoc/usepackage_options_changes_in.tex
2021/05/13 | 32 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_in.tex
2021/05/13 | 32 | macros/latex/contrib/changes/userdoc/setcommentmarkup_in.tex
-2021/05/13 | 32746 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2021/05/13 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2021/05/13 | 31 | macros/latex/contrib/changes/userdoc/setauthormarkup_in.tex
-2021/05/13 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/05/13 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2021/05/13 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/05/13 | 31192 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/05/13 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
2021/05/13 | 30 | macros/latex/contrib/changes/userdoc/setsocextension_in.tex
2021/05/13 | 30 | macros/latex/contrib/changes/userdoc/setlocextension_in.tex
2021/05/13 | 30 | macros/latex/contrib/changes/userdoc/setaddedmarkup_in.tex
-2021/05/13 | 30885 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2021/05/13 | 307908 | systems/texlive/tlnet/archive/easybook.doc.r59174.tar.xz
2021/05/13 | 3067 | macros/musixtex/README
2021/05/13 | 30555 | macros/luatex/optex/pdfextra/pdfextra-doc.tex
2021/05/13 | 3037 | macros/latex/contrib/bnumexpr/README.md
-2021/05/13 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2021/05/13 | 29 | macros/latex/contrib/changes/userdoc/comment_in.tex
2021/05/13 | 29924 | systems/texlive/tlnet/archive/unravel.r59175.tar.xz
-2021/05/13 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2021/05/13 | 295555 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2021/05/13 | 29248 | systems/texlive/tlnet/archive/easybook.source.r59174.tar.xz
-2021/05/13 | 29055 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
2021/05/13 | 28 | macros/latex/contrib/changes/userdoc/usepackage_final_changes_in.tex
-2021/05/13 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/05/13 | 282107 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/05/13 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2021/05/13 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
2021/05/13 | 27 | macros/latex/contrib/changes/userdoc/settruncatewidth_in.tex
2021/05/13 | 27 | macros/latex/contrib/changes/userdoc/setsummarytowidth_in.tex
2021/05/13 | 27 | macros/latex/contrib/changes/userdoc/path_script_in.tex
-2021/05/13 | 27363 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2021/05/13 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/05/13 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/05/13 | 27183 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
2021/05/13 | 26 | macros/latex/contrib/changes/userdoc/setsummarywidth_in.tex
-2021/05/13 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2021/05/13 | 2616932 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2021/05/13 | 25 | macros/latex/contrib/changes/userdoc/script_pymergechanges_empty.tex
-2021/05/13 | 258666 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2021/05/13 | 25582711 | systems/texlive/tlnet/install-tl.zip
2021/05/13 | 254 | macros/latex/contrib/changes/userdoc/listofchanges_ex.tex
2021/05/13 | 2539560 | systems/texlive/tlnet/archive/worldflags.doc.r59171.tar.xz
-2021/05/13 | 25342 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2021/05/13 | 25155 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2021/05/13 | 250210 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/05/13 | 25002 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/05/13 | 2499402 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2021/05/13 | 2440587 | install/macros/musixtex.tds.zip
-2021/05/13 | 243480 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2021/05/13 | 2424633 | macros/musixtex.zip
-2021/05/13 | 239479 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2021/05/13 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2021/05/13 | 23292 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/05/13 | 2301360 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/05/13 | 230095 | macros/luatex/optex/pdfextra/pdfextra-doc.pdf
2021/05/13 | 229 | macros/latex/contrib/changes/userdoc/script_pymergechanges.tex
2021/05/13 | 22962 | macros/musixtex/doc/musixdoc/beams.tex
2021/05/13 | 224 | macros/latex/contrib/changes/userdoc/replaced_ex.tex
2021/05/13 | 223 | macros/latex/contrib/changes/userdoc/highlight_ex.tex
-2021/05/13 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2021/05/13 | 21 | macros/latex/contrib/changes/userdoc/usepackage_changes_in.tex
2021/05/13 | 21526 | macros/latex/contrib/tabularray/tabularray.tex
-2021/05/13 | 214105 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2021/05/13 | 21152 | systems/texlive/tlnet/archive/els-cas-templates.r59170.tar.xz
-2021/05/13 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/05/13 | 211055 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/05/13 | 209371 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2021/05/13 | 209301 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2021/05/13 | 208182 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2021/05/13 | 20808508 | systems/texlive/tlnet/install-tl-windows.exe
-2021/05/13 | 202557 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/05/13 | 20121 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2021/05/13 | 2009490 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/05/13 | 199701 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2021/05/13 | 198131 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
2021/05/13 | 1978 | macros/musixtex/doc/musixdoc/musixdoc.ltx
2021/05/13 | 196 | macros/latex/contrib/changes/userdoc/setcommentmarkup_ex.tex
2021/05/13 | 1959 | biblio/bibtex/contrib/vancouver/README
-2021/05/13 | 195666 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2021/05/13 | 195565 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2021/05/13 | 193717 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
2021/05/13 | 19106 | biblio/bibtex/contrib/vancouver/LICENSE
2021/05/13 | 190 | macros/musixtex/doc/ChangeLog-132.txt
2021/05/13 | 189067 | macros/musixtex/tex/musixtex.tex
2021/05/13 | 182 | macros/latex/contrib/changes/userdoc/added_ex.tex
-2021/05/13 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/05/13 | 180049 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/05/13 | 17958 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/05/13 | 179380 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2021/05/13 | 177 | macros/latex/contrib/changes/userdoc/deleted_ex.tex
2021/05/13 | 17760 | systems/texlive/tlnet/archive/marathi.source.r59172.tar.xz
2021/05/13 | 174 | macros/latex/contrib/changes/userdoc/definechangesauthor_ex.tex
-2021/05/13 | 1725547 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2021/05/13 | 17225173 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2021/05/13 | 171 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_ex.tex
-2021/05/13 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2021/05/13 | 16628 | macros/latex/contrib/changes/examples.dtx
2021/05/13 | 164 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_ex.tex
2021/05/13 | 16393 | macros/latex/contrib/huawei/huawei.cls
-2021/05/13 | 163655 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2021/05/13 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2021/05/13 | 16114 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/05/13 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2021/05/13 | 15649 | biblio/bibtex/contrib/vancouver/vancouver.bib
2021/05/13 | 154 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_ex.tex
-2021/05/13 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2021/05/13 | 153891 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2021/05/13 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2021/05/13 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2021/05/13 | 151 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_ex.tex
2021/05/13 | 1517 | biblio/bibtex/contrib/vancouver/FAQ
2021/05/13 | 150336 | systems/texlive/tlnet/archive/marathi.doc.r59172.tar.xz
2021/05/13 | 149732 | biblio/bibtex/contrib/vancouver.zip
2021/05/13 | 1497060 | systems/texlive/tlnet/archive/worldflags.r59171.tar.xz
2021/05/13 | 147 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_ex.tex
-2021/05/13 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2021/05/13 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2021/05/13 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2021/05/13 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2021/05/13 | 14354 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2021/05/13 | 143191 | macros/latex/contrib/changes/examples/changes.example.screenshot.pdf
2021/05/13 | 142 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_ex.tex
-2021/05/13 | 1425981 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/05/13 | 1424811 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2021/05/13 | 14056 | biblio/bibtex/contrib/vancouver/vancouver.tex
2021/05/13 | 1396006 | macros/musixtex/doc/musixdoc.pdf
-2021/05/13 | 136426 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2021/05/13 | 135004 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
2021/05/13 | 134990 | macros/latex/contrib/tabularray/tabularray.sty
-2021/05/13 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
2021/05/13 | 13360 | systems/texlive/tlnet/archive/easybook.r59174.tar.xz
2021/05/13 | 1326 | macros/latex/contrib/changes/README
-2021/05/13 | 131489 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/05/13 | 1307724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2021/05/13 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2021/05/13 | 1281106 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2021/05/13 | 1270198 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/05/13 | 1269260 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2021/05/13 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2021/05/13 | 121265 | biblio/bibtex/contrib/vancouver/vancouver.pdf
2021/05/13 | 120 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_ex.tex
2021/05/13 | 1208 | macros/latex/contrib/huawei/README.md
-2021/05/13 | 1186595 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2021/05/13 | 1185935 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
2021/05/13 | 117 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_ex.tex
-2021/05/13 | 1171730 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2021/05/13 | 116931 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2021/05/13 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/05/13 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
-2021/05/13 | 112252 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2021/05/13 | 111908 | macros/latex/contrib/bnumexpr.zip
2021/05/13 | 110514 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf
2021/05/13 | 11043 | macros/latex/contrib/changes/pyMergeChanges.py
2021/05/13 | 109 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_ex.tex
-2021/05/13 | 109276 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/05/13 | 107980 | systems/texlive/tlnet/archive/texlive-scripts.r59168.tar.xz
-2021/05/13 | 1078876 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2021/05/13 | 106 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_ex.tex
2021/05/13 | 10639 | usergrps/usergrps/de.html
2021/05/13 | 10594 | usergrps/usergrps/pl.html
2021/05/13 | 10589 | usergrps/usergrps/hu.html
2021/05/13 | 10522 | usergrps/usergrps/cz.html
2021/05/13 | 104 | macros/latex/contrib/changes/userdoc/setsummarytowidth_ex.tex
-2021/05/13 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2021/05/13 | 10449 | usergrps/usergrps/fr.html
2021/05/13 | 10429 | usergrps/usergrps/kr.html
2021/05/13 | 104166 | macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf
2021/05/13 | 10406 | usergrps/usergrps/bg.html
2021/05/13 | 10405 | usergrps/usergrps/nl.html
2021/05/13 | 10368 | usergrps/usergrps/cn.html
-2021/05/13 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2021/05/13 | 10312 | usergrps/usergrps/it.html
2021/05/13 | 10309 | usergrps/usergrps/es.html
2021/05/13 | 10292 | usergrps/usergrps/gb.html
2021/05/13 | 10200 | usergrps/usergrps/us.html
2021/05/13 | 10185 | usergrps/usergrps/gr.html
-2021/05/13 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2021/05/13 | 10164 | usergrps/usergrps/esc.html
2021/05/13 | 10160 | usergrps/usergrps/dk.html
2021/05/13 | 10158 | usergrps/usergrps/pt.html
@@ -466,10 +549,8 @@
2021/05/12 | 880287 | macros/latex/contrib/unravel/unravel.pdf
2021/05/12 | 8622456 | systems/win32/w32tex/uptex-w32.tar.xz
2021/05/12 | 844178 | macros/latex/contrib/els-cas-templates.zip
-2021/05/12 | 831401 | systems/win32/w32tex/ChangeLog
2021/05/12 | 7067733 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf
2021/05/12 | 69171 | language/marathi/marathi.dtx
-2021/05/12 | 6807 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2021/05/12 | 6776656 | systems/win32/w32tex/ptex-ng-w32.tar.xz
2021/05/12 | 673 | macros/latex/contrib/easybook/easybook.ins
2021/05/12 | 634 | graphics/pgf/contrib/worldflags/README
@@ -489,18 +570,25 @@
2021/05/12 | 40902 | macros/latex/contrib/projlib/ProjLib.dtx
2021/05/12 | 401 | macros/latex/contrib/unravel/unravel.ins
2021/05/12 | 3928740 | macros/latex/contrib/acrotex.zip
+2021/05/12 | 3907764 | systems/win32/w32tex/luajittex-w32.tar.xz
+2021/05/12 | 3899756 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
+2021/05/12 | 3891892 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
2021/05/12 | 387972 | macros/latex/contrib/projlib.zip
2021/05/12 | 38593 | macros/luatex/latex/lua-ul/lua-ul.dtx
2021/05/12 | 3711647 | info/biblio/tugboat.bib
2021/05/12 | 362 | macros/latex/contrib/acrotex/web.cfg
2021/05/12 | 3573 | info/biblio/tugboat.ltx
-2021/05/12 | 35252076 | systems/win32/w32tex/ltxpkgs.tar.xz
2021/05/12 | 35095 | macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.tex
-2021/05/12 | 338972 | macros/latex/contrib/easybook.zip
+2021/05/12 | 3467260 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
+2021/05/12 | 3467100 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
+2021/05/12 | 3452680 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
2021/05/12 | 322061 | macros/latex/contrib/unravel/unravel.dtx
2021/05/12 | 3158 | macros/latex/contrib/projlib/README.md
+2021/05/12 | 3133228 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
+2021/05/12 | 3128308 | systems/win32/w32tex/win64/luatex-w64.tar.xz
+2021/05/12 | 3127940 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
2021/05/12 | 308 | macros/luatex/latex/lua-ul/README
-2021/05/12 | 308571 | macros/latex/contrib/easybook/easybook.pdf
+2021/05/12 | 296047 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
2021/05/12 | 2560111 | graphics/pgf/contrib/worldflags/doc/worldflags.pdf
2021/05/12 | 2356868 | macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.pdf
2021/05/12 | 23500748 | systems/win32/w32tex/cjkzr.tar.xz
@@ -514,9 +602,9 @@
2021/05/12 | 2012 | macros/latex/contrib/acrotex/dljslib.ins
2021/05/12 | 197272 | macros/latex/contrib/acrotex/doc/eformman.tex
2021/05/12 | 18990 | macros/latex/contrib/projlib/ProjLib-doc-cn.tex
-2021/05/12 | 18927808 | systems/win32/w32tex/luatex-dev-w32.tar.xz
-2021/05/12 | 18905048 | systems/win32/w32tex/luatex-exp-w32.tar.xz
-2021/05/12 | 18898988 | systems/win32/w32tex/luatex-w32.tar.xz
+2021/05/12 | 18928128 | systems/win32/w32tex/luatex-exp-w32.tar.xz
+2021/05/12 | 18910496 | systems/win32/w32tex/luatex-w32.tar.xz
+2021/05/12 | 18906048 | systems/win32/w32tex/luatex-dev-w32.tar.xz
2021/05/12 | 18508 | macros/latex/contrib/els-cas-templates/doc/elsdoc-cas.tex
2021/05/12 | 1842 | macros/latex/contrib/acrotex/taborder.ins
2021/05/12 | 1808 | macros/latex/contrib/els-cas-templates/README
@@ -527,6 +615,7 @@
2021/05/12 | 1684 | macros/latex/contrib/els-cas-templates/manifest.txt
2021/05/12 | 16284 | systems/texlive/tlnet/archive/pxjahyper.r59165.tar.xz
2021/05/12 | 1619 | macros/latex/contrib/unravel/README.md
+2021/05/12 | 1612948 | systems/win32/w32tex/makeindex-w32.tar.xz
2021/05/12 | 1448 | macros/latex/contrib/acrotex/examples/test_install.tex
2021/05/12 | 144643 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
2021/05/12 | 14013 | macros/latex/contrib/els-cas-templates/doc/rvdtx.sty
@@ -536,11 +625,11 @@
2021/05/12 | 132308 | systems/texlive/tlnet/archive/pxjahyper.doc.r59165.tar.xz
2021/05/12 | 13105 | macros/latex/contrib/acrotex/doc/install_jsfiles.tex
2021/05/12 | 13070 | macros/latex/contrib/acrotex/contsolns.dtx
-2021/05/12 | 120846 | macros/latex/contrib/easybook/easybook.dtx
2021/05/12 | 1189 | macros/latex/contrib/acrotex/examples/README.md
2021/05/12 | 115576 | macros/latex/contrib/hvfloat/doc/hvfloat.tex
2021/05/12 | 1151 | graphics/pgf/contrib/worldflags/tex/worldflag_CA.tex
2021/05/12 | 111596 | macros/luatex/latex/lua-ul.zip
+2021/05/12 | 1083588 | systems/win32/w32tex/win64/makeindex-w64.tar.xz
2021/05/12 | 10700708 | systems/win32/w32tex/ptex-w32.tar.xz
2021/05/12 | 104400 | macros/latex/contrib/codehigh/codehigh.pdf
2021/05/12 | 103958 | macros/luatex/latex/lua-ul/lua-ul.pdf
@@ -608,25 +697,16 @@
2021/05/11 | 39757 | macros/latex/contrib/l3kernel/l3prefixes.csv
2021/05/11 | 395934 | macros/latex/contrib/l3kernel/l3news.pdf
2021/05/11 | 38472 | systems/texlive/tlnet/archive/europecv.r59162.tar.xz
-2021/05/11 | 3844932 | systems/win32/w32tex/luajittex-dev-w32.tar.xz
-2021/05/11 | 3830288 | systems/win32/w32tex/luajittex-w32.tar.xz
-2021/05/11 | 3823404 | systems/win32/w32tex/luajittex-exp-w32.tar.xz
2021/05/11 | 3755940 | systems/win32/w32tex/win64/web2c-w64.tar.xz
2021/05/11 | 374544 | systems/texlive/tlnet/archive/xint.source.r59161.tar.xz
2021/05/11 | 36621 | macros/latex/contrib/l3kernel/l3text.dtx
2021/05/11 | 35775 | macros/latex/contrib/l3kernel/l3quark.dtx
2021/05/11 | 3552 | language/marathi/README.txt
2021/05/11 | 35149 | language/marathi/COPYING
-2021/05/11 | 3473604 | systems/win32/w32tex/win64/luajittex-w64.tar.xz
-2021/05/11 | 3458788 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz
-2021/05/11 | 3457056 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz
2021/05/11 | 3307 | language/japanese/pxjahyper/pxjahyper-enc.sty
2021/05/11 | 32402 | macros/latex/contrib/l3kernel/l3cctab.dtx
2021/05/11 | 31800 | macros/latex/contrib/els-cas-templates/cas-model2-names.bst
2021/05/11 | 31475 | macros/latex/contrib/l3kernel/l3sys.dtx
-2021/05/11 | 3132192 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz
-2021/05/11 | 3128608 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz
-2021/05/11 | 3116804 | systems/win32/w32tex/win64/luatex-w64.tar.xz
2021/05/11 | 30555 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx
2021/05/11 | 30385 | macros/latex/contrib/l3kernel/l3deprecation.dtx
2021/05/11 | 2994 | macros/latex/contrib/l3kernel/README.md
@@ -700,7 +780,6 @@
2021/05/11 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex
2021/05/11 | 105522 | macros/latex/contrib/l3kernel/l3fp-parse.dtx
2021/05/11 | 10023678 | systems/texlive/tlnet/update-tlmgr-r59154.sh
-2021/05/10 | 98152500 | systems/win32/w32tex/pgfcontrib.tar.xz
2021/05/10 | 953 | macros/latex/contrib/europecv/templates/europecv_biber.tex
2021/05/10 | 934 | macros/latex/contrib/europecv/examples/greek-utf8.tex
2021/05/10 | 916 | macros/latex/contrib/europecv/examples/maltese-maltese.tex
@@ -787,7 +866,6 @@
2021/05/10 | 1713 | macros/latex/contrib/europecv/ecvnl.def
2021/05/10 | 165955 | macros/latex/contrib/els-cas-templates/doc/sc-sample.pdf
2021/05/10 | 163 | macros/latex/contrib/europecv/examples/minimal.tex
-2021/05/10 | 1613572 | systems/win32/w32tex/makeindex-w32.tar.xz
2021/05/10 | 1599 | macros/latex/contrib/qrbill/README.md
2021/05/10 | 159627 | macros/latex/contrib/els-cas-templates/doc/dc-sample.pdf
2021/05/10 | 1546 | macros/latex/contrib/qrbill/qrbill.ins
@@ -804,7 +882,6 @@
2021/05/10 | 1153 | macros/latex/contrib/qrbill/qrbill_swiss-cross.pdf
2021/05/10 | 1128625 | macros/generic/xint/sourcexint.pdf
2021/05/10 | 1107 | macros/latex/contrib/qrbill/qrbill-vocab.csv
-2021/05/10 | 1082700 | systems/win32/w32tex/win64/makeindex-w64.tar.xz
2021/05/10 | 10499 | macros/latex/contrib/europecv/templates/cv_template_en_bieber.tex
2021/05/10 | 1032000 | macros/generic/xint/xint.pdf
2021/05/10 | 1002 | macros/latex/contrib/europecv/examples/bulgarian-utf8.tex
@@ -1177,146 +1254,3 @@
2021/05/08 | 1045028 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
2021/05/08 | 1040165 | graphics/pgf/contrib/pgfplots/source/pgfplotstests.tar.bz2
2021/05/08 | 1021496 | systems/texlive/tlnet/archive/asymptote.aarch64-linux.r59123.tar.xz
-2021/05/07 | 99100 | systems/texlive/tlnet/archive/nicematrix.source.r59105.tar.xz
-2021/05/07 | 9602 | support/latexindent/LatexIndent/HiddenChildren.pm
-2021/05/07 | 9559 | support/latexindent/LatexIndent/IfElseFi.pm
-2021/05/07 | 9353 | support/latexindent/documentation/subsec-conflicting-poly-switches.tex
-2021/05/07 | 9258 | support/latexindent/documentation/sec-fine-tuning.tex
-2021/05/07 | 921106 | install/macros/latex/contrib/l3backend.tds.zip
-2021/05/07 | 898994 | support/latexindent/documentation/latexindent.pdf
-2021/05/07 | 885873 | macros/latex/contrib/l3backend.zip
-2021/05/07 | 884350 | macros/latex/contrib/l3backend/l3backend-code.pdf
-2021/05/07 | 8548 | systems/texlive/tlnet/archive/hvfloat.r59104.tar.xz
-2021/05/07 | 8498 | macros/latex/contrib/l3backend/l3backend-opacity.dtx
-2021/05/07 | 84537 | macros/latex/contrib/l3packages/xparse-2018-04-12.sty
-2021/05/07 | 834 | support/latexindent/LatexIndent/Version.pm
-2021/05/07 | 80141 | macros/latex/contrib/l3packages/xparse-generic.tex
-2021/05/07 | 7970 | support/latexindent/documentation/sec-introduction.tex
-2021/05/07 | 7945 | support/latexindent/LatexIndent/LogFile.pm
-2021/05/07 | 789674 | macros/latex/contrib/l3build.zip
-2021/05/07 | 7223 | support/latexindent/documentation/subsubsec-no-add-remaining-code-blocks.tex
-2021/05/07 | 7161 | support/latexindent/documentation/figure-schematic.png
-2021/05/07 | 6956 | macros/latex/contrib/l3packages/xfp.dtx
-2021/05/07 | 6793 | support/latexindent/LatexIndent/MandatoryArgument.pm
-2021/05/07 | 6589 | support/latexindent/LatexIndent/FileExtension.pm
-2021/05/07 | 65564 | systems/texlive/tlnet/archive/froufrou.doc.r59103.tar.xz
-2021/05/07 | 6528 | systems/texlive/tlnet/archive/froufrou.source.r59103.tar.xz
-2021/05/07 | 6408 | support/latexindent/LatexIndent/Item.pm
-2021/05/07 | 6371487 | support/latexindent/latexindent.exe
-2021/05/07 | 6353 | support/latexindent/LatexIndent/Environment.pm
-2021/05/07 | 6195 | macros/latex/contrib/l3packages/xparse-2020-10-01.sty
-2021/05/07 | 61440 | support/latexindent/documentation/sec-default-user-local.tex
-2021/05/07 | 6062 | support/latexindent/LatexIndent/OptionalArgument.pm
-2021/05/07 | 6042 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
-2021/05/07 | 6036 | support/latexindent/LatexIndent/TrailingComments.pm
-2021/05/07 | 5974 | support/latexindent/documentation/subsubsec-commands-with-arguments.tex
-2021/05/07 | 5937 | support/latexindent/LatexIndent/Else.pm
-2021/05/07 | 5926 | graphics/pgf/contrib/coffeestains/coffeestains.tex
-2021/05/07 | 5900 | systems/texlive/tlnet/archive/pbalance.r59106.tar.xz
-2021/05/07 | 5777 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
-2021/05/07 | 5606 | macros/latex/contrib/l3backend/CHANGELOG.md
-2021/05/07 | 549 | macros/latex/contrib/l3backend/README.md
-2021/05/07 | 5435 | support/latexindent/LatexIndent/BlankLines.pm
-2021/05/07 | 53790 | macros/latex/contrib/l3packages/xparse.dtx
-2021/05/07 | 534372 | macros/latex/contrib/l3packages/xparse.pdf
-2021/05/07 | 5330 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
-2021/05/07 | 5284 | support/latexindent/documentation/subsubsec-headings.tex
-2021/05/07 | 52219 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
-2021/05/07 | 500 | systems/texlive/tlnet/archive/comprehensive.r59099.tar.xz
-2021/05/07 | 49598 | systems/texlive/tlnet/tlpkg/installer/config.guess
-2021/05/07 | 492 | systems/texlive/tlnet/archive/tlmgr-intro-zh-cn.r59100.tar.xz
-2021/05/07 | 492 | support/latexindent/documentation/cmhlistings.tex
-2021/05/07 | 4921 | macros/latex/contrib/ninecolors/ninecolors.tex
-2021/05/07 | 4869 | support/latexindent/documentation/subsubsec-ifelsefi.tex
-2021/05/07 | 48642 | macros/latex/contrib/l3backend/l3backend-pdf.dtx
-2021/05/07 | 484972 | macros/latex/contrib/l3packages/xfrac.pdf
-2021/05/07 | 479793 | graphics/pgf/contrib/coffeestains/coffeestains.sty
-2021/05/07 | 472 | graphics/pgf/contrib/coffeestains/README.md
-2021/05/07 | 46755 | support/latexindent/LatexIndent/GetYamlSettings.pm
-2021/05/07 | 4602409 | support/latexindent.zip
-2021/05/07 | 444724 | systems/texlive/tlnet/archive/tlmgr-intro-zh-cn.doc.r59100.tar.xz
-2021/05/07 | 4435 | macros/latex/contrib/l3packages/CHANGELOG.md
-2021/05/07 | 44096 | support/latexindent/documentation/logo.png
-2021/05/07 | 440188 | macros/latex/contrib/l3packages/xtemplate.pdf
-2021/05/07 | 4355 | support/latexindent/LatexIndent/RoundBrackets.pm
-2021/05/07 | 4284 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
-2021/05/07 | 4265 | macros/latex/contrib/l3backend/l3backend.ins
-2021/05/07 | 4068 | systems/texlive/tlnet/archive/froufrou.r59103.tar.xz
-2021/05/07 | 40548 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.r59101.tar.xz
-2021/05/07 | 39205 | macros/latex/contrib/l3packages/xfrac.dtx
-2021/05/07 | 39195 | macros/latex/contrib/l3backend/l3backend-color.dtx
-2021/05/07 | 3847 | support/latexindent/documentation/subsubsec-special.tex
-2021/05/07 | 369414 | macros/latex/contrib/l3packages/l3keys2e.pdf
-2021/05/07 | 3673 | macros/latex/contrib/l3packages/README.md
-2021/05/07 | 3636 | support/latexindent/LatexIndent/Replacement.pm
-2021/05/07 | 35599 | macros/latex/contrib/ninecolors.zip
-2021/05/07 | 3463 | support/latexindent/LatexIndent/Preamble.pm
-2021/05/07 | 3451 | support/latexindent/documentation/subsubsec-environments-with-items.tex
-2021/05/07 | 3394 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
-2021/05/07 | 33848 | macros/latex/contrib/l3backend/l3backend-draw.dtx
-2021/05/07 | 331827 | macros/latex/contrib/l3packages/xfp.pdf
-2021/05/07 | 3273 | support/latexindent/LatexIndent/Tokens.pm
-2021/05/07 | 32345 | macros/latex/contrib/ninecolors/ninecolors.pdf
-2021/05/07 | 310913 | graphics/pgf/contrib/coffeestains.zip
-2021/05/07 | 29910680 | systems/texlive/tlnet/archive/comprehensive.doc.r59099.tar.xz
-2021/05/07 | 29296 | systems/texlive/tlnet/archive/nicematrix.r59105.tar.xz
-2021/05/07 | 2902 | support/latexindent/documentation/subsec-partnering-poly-switches.tex
-2021/05/07 | 2646 | support/latexindent/latexindent.pl
-2021/05/07 | 2539 | support/latexindent/documentation/sec-conclusions-know-limitations.tex
-2021/05/07 | 246 | support/latexindent/documentation/references.tex
-2021/05/07 | 244384 | systems/texlive/tlnet/archive/pbalance.doc.r59106.tar.xz
-2021/05/07 | 23600 | support/latexindent/LatexIndent/Arguments.pm
-2021/05/07 | 23253 | support/latexindent/documentation/latexindent.tex
-2021/05/07 | 2212 | support/latexindent/LatexIndent/Logger.pm
-2021/05/07 | 2204045 | install/macros/latex/contrib/l3packages.tds.zip
-2021/05/07 | 2184804 | macros/latex/contrib/l3packages.zip
-2021/05/07 | 21671 | support/latexindent/documentation/sec-replacements.tex
-2021/05/07 | 2118 | support/latexindent/documentation/sec-demonstration.tex
-2021/05/07 | 21098 | support/latexindent/LatexIndent/Verbatim.pm
-2021/05/07 | 20960 | macros/latex/contrib/l3backend/l3backend-graphics.dtx
-2021/05/07 | 20764 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
-2021/05/07 | 20505 | support/latexindent/LatexIndent/Indent.pm
-2021/05/07 | 1990 | support/latexindent/LatexIndent/Switches.pm
-2021/05/07 | 19864 | support/latexindent/LatexIndent/Sentence.pm
-2021/05/07 | 19151668 | systems/texlive/tlnet/archive/hvfloat.doc.r59104.tar.xz
-2021/05/07 | 1896 | support/latexindent/documentation/figure-schematic.tex
-2021/05/07 | 18928 | support/latexindent/documentation/sec-how-to-use.tex
-2021/05/07 | 1891 | support/latexindent/documentation/subsec-noAdditionalIndent-indentRules.tex
-2021/05/07 | 1875 | support/latexindent/README
-2021/05/07 | 18727 | support/latexindent/LatexIndent/Document.pm
-2021/05/07 | 182030 | graphics/pgf/contrib/coffeestains/coffeestains.pdf
-2021/05/07 | 18153 | support/latexindent/defaultSettings.yaml
-2021/05/07 | 179867 | macros/latex/contrib/mindflow/mindflow.pdf
-2021/05/07 | 1680940 | systems/texlive/tlnet/archive/nicematrix.doc.r59105.tar.xz
-2021/05/07 | 16693 | support/latexindent/documentation/subsubsec-environments-and-their-arguments.tex
-2021/05/07 | 16611 | macros/latex/contrib/l3backend/l3backend-basics.dtx
-2021/05/07 | 16523 | macros/latex/contrib/ninecolors/ninecolors.sty
-2021/05/07 | 1616860 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.doc.r59101.tar.xz
-2021/05/07 | 1595 | support/latexindent/documentation/logo.tex
-2021/05/07 | 1561 | macros/latex/contrib/l3packages/xtemplate.ins
-2021/05/07 | 1558 | support/latexindent/latexindent-module-installer.pl
-2021/05/07 | 1483 | support/latexindent/LatexIndent/DoubleBackSlash.pm
-2021/05/07 | 1478 | support/latexindent/documentation/title.tex
-2021/05/07 | 14669 | macros/latex/contrib/l3backend/l3backend-header.dtx
-2021/05/07 | 146440 | systems/texlive/tlnet/archive/texlive-msg-translations.r59096.tar.xz
-2021/05/07 | 1444 | macros/latex/contrib/l3packages/l3keys2e-demo.tex
-2021/05/07 | 14406 | macros/latex/contrib/l3backend/l3backend-box.dtx
-2021/05/07 | 14049 | support/latexindent/documentation/subsec-commands-and-their-options.tex
-2021/05/07 | 1331 | macros/latex/contrib/l3backend/l3backend-code.tex
-2021/05/07 | 13154 | support/latexindent/LatexIndent/Special.pm
-2021/05/07 | 1306 | macros/latex/contrib/l3packages/xfrac.ins
-2021/05/07 | 1272 | macros/latex/contrib/l3packages/xparse.ins
-2021/05/07 | 12661 | support/latexindent/LatexIndent/Braces.pm
-2021/05/07 | 1228 | macros/latex/contrib/l3packages/l3keys2e.ins
-2021/05/07 | 1191 | macros/latex/contrib/l3packages/xfp.ins
-2021/05/07 | 11864 | systems/texlive/tlnet/archive/pbalance.source.r59106.tar.xz
-2021/05/07 | 11862 | support/latexindent/LatexIndent/FileContents.pm
-2021/05/07 | 11785 | support/latexindent/documentation/appendices.tex
-2021/05/07 | 11613 | macros/latex/contrib/l3packages/l3keys2e.dtx
-2021/05/07 | 11577 | systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm
-2021/05/07 | 11474 | macros/latex/contrib/mindflow/mindflow.dtx
-2021/05/07 | 110282 | support/latexindent/documentation/sec-the-m-switch.tex
-2021/05/07 | 10824 | support/latexindent/LatexIndent/Heading.pm
-2021/05/07 | 10361 | support/latexindent/LatexIndent/Command.pm
-2021/05/07 | 10135 | support/latexindent/documentation/sec-indent-config-and-settings.tex
-2021/05/07 | 100247 | macros/latex/contrib/l3packages/xtemplate.dtx
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index b25fb33c37..cf81762704 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -24,11 +24,11 @@
% \changes{v1.20}{2021/01/09}{修改和完善用户文档。}
% \changes{v1.20}{2021/01/09}{模板更改为使用 CC-BY 许可协议。}
% \changes{v1.23}{2021/03/19}{修复在 \pkg{ctex} v2.5.6 更新后 \cls{easybook} 与 \pkg{hyperref} 冲突问题。}
-% \changes{v1.25h}{2021/05/03}{取消附带的示例文件,可查看历史版本及其它来源的使用样例。}
+% \changes{v1.25i}{2021/05/03}{取消附带的示例文件,可查看历史版本及其它来源的使用样例。}
%
% \title{\sffamily easybook 文档类手册}
% \author{瞿毅}
-% \date{2021/05/12\hskip\ccwd\relax v1.25h\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/05/14\hskip\ccwd\relax v1.25i\thanks{\url{https://gitee.com/texl3/easybook}}}
%
% \maketitle
% \begin{abstract}
@@ -118,7 +118,7 @@
% \end{syntax}
% 传递给 \cls{ctexbook} 设置字体,最好不要使用原有的 \opt{fontset} 选项,默认情况下使用自定义字体而不开启这个选项,可根据安装的字体及电脑系统选取。\opt{noto} 与 \opt{none} 选项的相关描述见小节 \ref{subsec:font settings},\opt{overleaf} 是一个各系统通用选项,会检测系统环境选取对应字体。
% \changes{v1.21}{2021/01/12}{默认字体与 \CTeX 一致,不再是自定义字体。}
-% \changes{v1.25h}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
+% \changes{v1.25i}{2021/05/04}{修复使用 \pkg{xeCJK} 与 \pkg{fontspec} 宏包的字体设置命令在 \hologo{LuaLaTeX} 下失效的问题。}
% \end{function}
%
% \begin{function}[rEXP,added = 2021-01-05,updated = 2021-01-13]{paper}
@@ -169,7 +169,7 @@
% \tn{listoflistings*+}\oarg{键值列表}
% \end{syntax}
% \tn{listoffigures} 命令输出图片目录,\tn{listoftables} 输出表格目录,\tn{listoflistings} 输出代码目录。带有星号的目录命令不将标题添加进主文档目录,带有+号的目录命令可以使当前标题编号。\tn{tableofcontents+} 与其它命令不同是用于输出双语目录,需要与双语目录标题命令 \tn{bichapter} 等或设置图片、表格和代码等英文目录的标题配合使用,附加代码是中文与英文目录之间的代码,可以插入文本和换页命令等。目录的键值列表选项如下
-% \changes{v1.25h}{2021/05/05}{命令 \tn{tableofcontents} 可以输出双语目录。}
+% \changes{v1.25i}{2021/05/05}{命令 \tn{tableofcontents} 可以输出双语目录。}
% \end{function}
%
% \begin{function}{multoc,title,format,aftertitle,pagestyle,book,article}
@@ -200,7 +200,7 @@
% 双语目录的标题命令目前设置了常用的三个级别,它们将中文标题正常输出,并使中英文标题加入双语目录,这个功能是为国内一些大学的学位论文模板的要求设计,在一般情况和英文模式下不需要使用。
%
% 它们的星号变体命令使文中标题不编号,但是仍然加入双语目录,若英文标题参数空置那么仅加入中文目录而不加入英文目录,这一特点与 \tn{chapter*} 等命令的行为不太一样,在一些情况下会用到。可选参数是目录中的中文标题,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。双语目录的格式是一致的,共享使用 \tn{tocset} 的设置,英文目录的章级别标题名及编号的修改方式如下
-% \changes{v1.25h}{2021/05/05}{增加与双语目录配合的标题命令。}
+% \changes{v1.25i}{2021/05/05}{增加与双语目录配合的标题命令。}
% \end{function}
%
% \begin{function}{biname,binmuber}
@@ -288,9 +288,9 @@
%
% \subsection{超链接}
% \label{subsec:hyperlinks}
-% \begin{function}[EXP,added = 2021-01-05,updated = 2021-05-06]{hyperlink,linkcolor,linkcol-all,linktoc}
+% \begin{function}[EXP,added = 2021-01-05,updated = 2021-05-06]{linktype,linkcolor,linkcol-all,linktoc}
% \begin{syntax}
-% hyperlink = <(edge)|various|none>
+% linktype = <(edge)|various|none>
% linkcolor = <fresh|cutepink|(navyblue)|crimson>
% linkcol-all = <HTML颜色代码>
% linktoc = <none|section|page|(all)>
@@ -299,11 +299,11 @@
% \opt{refset} 将超链接选项(包括以上选项)交给 \pkg{hyperref} 处理,除了一些关于 pdf 书签的选项可能会失效,其它由键值选项命令 \tn{hypersetup} 支持的多数选项可用。
% \changes{v1.10}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
% \changes{v1.24}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
-% \changes{v1.25h}{2021/05/06}{模块名 \opt{link} 改为 \opt{refset},\opt{link} 作为兼容性保留。}
+% \changes{v1.25i}{2021/05/06}{模块名 \opt{link} 改为 \opt{refset},\opt{link} 作为兼容性保留。}
% \end{function}
%
% \begin{optdesc}
-% \item[hyperlink] \opt{edge} 使超链接为边框形式,\opt{various} 使超链接为彩色字体,有四种颜色风格。\opt{none} 关闭超链接边框与颜色,此时 \opt{linkcolor} 选项无效。
+% \item[linktype] \opt{edge} 使超链接为边框形式,\opt{various} 使超链接为彩色字体,有四种颜色风格。\opt{none} 关闭超链接边框与颜色,此时 \opt{linkcolor} 选项无效。
% \item[linkcolor] 超链接颜色样式。
% \begin{function}{ctex@link,ctex@url,ctex@cite}
% \begin{syntax}
@@ -378,7 +378,7 @@
% \changes{v1.21}{2021/01/11}{增加 \opt{bibset} 选项,可以使用 \hologo{BibTeX} 或 \hologo{biber} 编译参考文献。}
% \changes{v1.23}{2021/02/23}{使用 \opt{bibset} 选项时可设置标注风格。}
% \changes{v1.24}{2021/04/09}{可以不载入参考文献包手动配置参考文献格式。}
-% \changes{v1.25h}{2021/05/12}{取消 \opt{bib-loadpkg} 选项,由是否设置参考文献数据库来决定载入宏包。}
+% \changes{v1.25i}{2021/05/12}{取消 \opt{bib-loadpkg} 选项,由是否设置参考文献数据库来决定载入宏包。}
% \end{function}
%
% \begin{optdesc}
@@ -572,12 +572,12 @@
% 上面几个选项用于设置脚注格式,\opt{fnparskip} 和 \opt{fnparindent} 选项仅在 \opt{fnhang = true} 时有效。\opt{fnhang} 用于将脚注设置为悬挂缩进的格式,\opt{fnmark-pos} 选项设置脚注编号的位置,正常文本或是上标形式。\opt{fnmark-num} 选项设置脚注编号的格式,默认为原生样式 \opt{plain},还可以改为 \opt{pifont} 的各个版本,从左往右依次为普通版、阴文衬线版、阳文无衬线版和阴文无衬线版,缺点是它们的编号仅包括1-10。
%
% \opt{fnmark-form} 是脚注标记的格式,默认为空,在此设置字体命令会覆盖 \opt{elsefont/footnote} 的设置,最后一个格式命令可以带有一个参数,这个参数接受脚注编号,一般配合 \opt{fnmark-num = plain} 使用。\opt{afterfnmark} 是脚注标记后的代码,一般用于设置标记与文本间的距离。
-% \changes{v1.25h}{2021/05/12}{增加脚注样式设置选项。}
+% \changes{v1.25i}{2021/05/12}{增加脚注样式设置选项。}
% \end{function}
%
% \subsection{目录样式}
% \label{subsec:catalog style}
-% \begin{function}[EXP,added = 2021-01-13,updated = 2021-05-01]{format,format+,indent,rule,numsep}
+% \begin{function}[EXP,added = 2021-01-13,updated = 2021-05-14]{format,format+,indent,rule,numsep}
% \begin{syntax}
% format = <目录标题格式>
% format += <目录标题格式>
@@ -586,11 +586,12 @@
% numsep = <编号后间距|(\tn{ccwd})>
% \end{syntax}
% \ding{229} 以上选项路径为 \opt{tocset/(level)/...} \\
-% \opt{tocset} 将目录样式交给 \pkg{titletoc} 处理,\opt{level} 代表 \opt{part}、\opt{chapter}、\opt{section}、\opt{subsection} 和 \opt{list} 五种级别的目录样式设置,其中 \opt{list} 为图片、表格和代码目录样式的级别。
+% \opt{tocset} 将目录样式交给 \pkg{titletoc} 处理,\opt{level} 代表 part、chapter、section、subsection、figure、table 和 lstlisting 级别的目录,而使用 \opt{list} 级别可以统一设置图片、表格和代码目录的样式。
%
% \opt{format} 是目录中标题的格式,可以设置字体和加入垂直间距等,垂直间距最好使用无间距重合的 \tn{addvspace} 命令,带有加号的 \opt{format+} 选项用于在已有的格式命令后附加内容。\opt{indent} 是目录中标题在页面左侧的缩进距离,应该有长度单位。\opt{rule} 选项中一般应当使用 \tn{tocrule} 命令,将会在接下来介绍。\opt{numsep} 是有编号的标题在目录中编号与标题的间距。
% \changes{v1.21}{2021/01/13}{增加配置目录样式的选项。}
% \changes{v1.24}{2021/04/20}{增加目录中编号与标题的间距选项 \opt{numsep}。}
+% \changes{v1.25i}{2021/05/14}{可以分别设置图片、表格和代码目录的格式。}
% \end{function}
%
% \begin{function}[added = 2021-01-13,updated = 2021-04-20]{\tocrule,\EbNumberline}
@@ -615,10 +616,10 @@
% }
% \end{ctexexam}
%
-% \begin{function}[EXP,added = 2021-01-13,updated = 2021-05-01]{list/lolskip,list/belowoffset,tocset/tocline-fig,tocset/tocline-tab,tocset/tocline-lst,tocset/belowoffset,tocset/line-align,tocset/hang,tocset/numsep-all,tocset/indent-all,tocset/rule-all}
+% \begin{function}[EXP,added = 2021-01-13,updated = 2021-05-14]{level/belowoffset,lolskip,tocline-fig,tocline-tab,tocline-lst,belowoffset,line-align,hang,numsep-all,indent-all,rule-all}
% \begin{syntax}
-% lolskip = <(0.8pc)>
% belowoffset = <(0pc)>
+% lolskip = <(0.8pc)>
% tocline-fig = <图片目录标签>
% tocline-tab = <表格目录标签>
% tocline-lst = <代码目录标签>
@@ -629,7 +630,7 @@
% indent-all = <目录标题左边缩进>
% rule-all = <目录引导线样式>
% \end{syntax}
-% \ding{229} 以上选项路径为 \opt{tocset/list/...} 或 \opt{tocset/...}
+% \ding{229} 以上选项路径为 \opt{tocset/level/...} 或 \opt{tocset/...}
% \changes{v1.24}{2021/04/05}{可以设置图、表和代码目录的标签。}
% \changes{v1.24}{2021/04/06}{增加目录引导线右边对齐方式。}
% \changes{v1.24}{2021/04/19}{给目录增加 \opt{hang} 样式选项。}
@@ -638,7 +639,7 @@
%
% \begin{optdesc}
% \item[lolskip] \opt{lolskip} 是代码目录中章之间的代码标题的距离,与 \CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8 pc,在 \opt{article} 模式中此选项失效。
-% \item[belowoffset] \opt{belowoffset} 选项为主目录标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的垂直间距。\opt{list} 中的 \opt{belowoffset} 与之意义类似,但是一般为正值,可以在 \opt{article} 模式中使用。建议 \opt{list/lolskip(0.8pc) + list/format/addvspace(0.2pc) + list/belowoffset(0pc) = belowoffset(-1pc)}。
+% \item[belowoffset] \opt{belowoffset} 选项为主目录标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的垂直间距。\opt{level} 中的 \opt{belowoffset} 与之意义类似,代表 figure、table 和 lstlisting 三个级别,也可以使用 \opt{list} 统一设置,一般为正值。建议 \opt{lolskip(0.8pc) + list/format/addvspace(0.2pc) + list/belowoffset(0pc) = belowoffset(-1pc)}。
% \item[tocline] 目录标签整体使用 \opt{tocline} 设置,在图表标签的参数中\#1代表编号,代码标签中则是 \tn{thelstlisting} 代表编号,标签中还可包含标签名称,默认标签名称与图、表和代码环境的标题名称一致。下面举个设置标签的例子
% \begin{ctexexam}
% \tocset
@@ -966,7 +967,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplClass{easybook}{2021/05/12}{1.25h}{beta}
+\ProvidesExplClass{easybook}{2021/05/14}{1.25i}{beta}
\cs_generate_variant:Nn \eb_ctex_define:nn { nx }
\cs_generate_variant:Nn \int_to_arabic:n { v }
@@ -1091,9 +1092,10 @@
\seq_map_inline:Nn \c__eb_options_path_seq
{
\ctex_define:n { #1 .meta:nn = { ctex/#1 } {##1} }
- \cs_new:cpn {#1} ##1 { \keys_set:nn {ctex/#1} {##1} }
+ \cs_new:cpn {#1} ##1 { \keys_set:nn { ctex/#1 } {##1} }
}
\keys_define:nn { } { ctex/link .inherit:n = ctex/refset }
+\cs_set_eq:NN \link \refset
\ctex_define:n
{
link .meta:nn = { ctex/link } {#1},
@@ -1425,7 +1427,7 @@
\cs_new:Npn \eb_upper_number_mark_bool:nn #1#2
{
\bool_if:NT \l__eb_uppercase_bool
- { \text_uppercase:n } { \use:c { eb_fancyhf_#1_mark:n } {#2} }
+ { \text_uppercase:n } {\use:c { eb_fancyhf_#1_mark:n } {#2}}
}
\cs_new:Npn \eb@number@markdouble #1#2
{
@@ -1521,7 +1523,7 @@
{
\hbox:n
{
- \tl_if_eq:NnT \l__eb_fnmark_position_tl {super}
+ \tl_if_eq:NnT \l__eb_fnmark_position_tl { super }
{ \textsuperscript }{\@thefnmark}
\tl_use:N \l__eb_fnmark_after_tl
}
@@ -1567,9 +1569,10 @@
{ \int_use:N #1 }
}
-\seq_const_from_clist:Nn \c__eb_toc_headings_level_seq
- { part,chapter,section,subsection,list }
-\seq_map_inline:Nn \c__eb_toc_headings_level_seq
+\contentsuse{lstlisting}{lol}
+\seq_const_from_clist:Nn \c__eb_toc_heading_level_seq
+ { part,chapter,section,subsection,figure,table,lstlisting }
+\cs_new_protected:Npn \eb_toc_assign_keys:n #1
{
\ctex_define:n { tocset/#1 .meta:nn = { ctex/tocset/#1 } {##1} }
\eb_ctex_define:nn { tocset }
@@ -1583,6 +1586,46 @@
#1/rule .tl_set:c = l__eb_toc_#1_rule_tl,
#1/numsep .tl_set:c = eb@toc@#1@numsep
}
+ \seq_if_in:NnF \c__eb_toc_heading_level_seq { subsection }
+ {
+ \eb_ctex_define:nn { tocset }
+ { #1/belowoffset .dim_set:c = l__eb_toc_#1_offset_dim }
+ }
+ \seq_pop:NN \c__eb_toc_heading_level_seq \l_tmpa_tl
+ \titlecontents{#1}
+ [\use:c { l__eb_toc_#1_indent_tl }]
+ {\use:c { l__eb_toc_#1_format_tl }}
+ {
+ \ifbool{eb@titletoc@hang@fix}
+ {
+ \contentspush
+ {
+ \bool_if:NT \l__eb_toc_number_color_bool
+ { \color{ctex@toc@number} }
+ \thecontentslabel
+ \hspace{\use:c { eb@toc@#1@numsep }}
+ }
+ }{}
+ }{}
+ {\use:c { l__eb_toc_#1_rule_tl }}
+ }
+\seq_map_function:NN
+\c__eb_toc_heading_level_seq \eb_toc_assign_keys:n
+
+\seq_const_from_clist:Nn \c__eb_toc_list_meta_keys_seq
+ { format,format+,format~+,indent,rule,numsep,belowoffset }
+\ctex_define:n { tocset/list .meta:nn = { ctex/tocset/list } {#1} }
+\seq_map_inline:Nn \c__eb_toc_list_meta_keys_seq
+ {
+ \eb_ctex_define:nn { tocset }
+ {
+ list/#1 .meta:n =
+ {
+ figure/#1 = ##1,
+ table/#1 = ##1,
+ lstlisting/#1 = ##1
+ }
+ }
}
\cs_new:Npn \EbNumberline #1
@@ -1596,11 +1639,8 @@
\newbool{eb@titletoc@hang@fix}
\eb_ctex_define:nn { tocset }
{
- list/lolskip .skip_set:N = \l__eb_toc_lolskip_skip,
- list/lolskip .initial:n = 0.8pc,
- list/belowoffset .dim_set:N = \l__eb_toc_listoffset_dim,
- list/belowoffset .initial:n =
- { \bool_if:NTF \l__eb_class_book_bool { 0pc } { 0.15pc } },
+ lolskip .skip_set:N = \l__eb_toc_lolskip_skip,
+ lolskip .initial:n = 0.8pc,
belowoffset .dim_set:N = \l__eb_toc_offset_dim,
belowoffset .initial:n =
@@ -1610,21 +1650,21 @@
{
\figurename\space #1
\notbool{eb@titletoc@hang@fix}
- {\hspace{\eb@toc@list@numsep}}{}
+ {\hspace{\eb@toc@figure@numsep}}{}
},
tocline-tab .cs_set:Np = \eb@labelname@lot #1,
tocline-tab .initial:n =
{
\tablename\space #1
\notbool{eb@titletoc@hang@fix}
- {\hspace{\eb@toc@list@numsep}}{}
+ {\hspace{\eb@toc@table@numsep}}{}
},
tocline-lst .tl_set:N = \eb@labelname@lol,
tocline-lst .initial:n =
{
\lstlistingname\space\thelstlisting
\notbool{eb@titletoc@hang@fix}
- {\hspace{\eb@toc@list@numsep}}{}
+ {\hspace{\eb@toc@lstlisting@numsep}}{}
},
line-align .bool_set:N = \l__eb_toc_line_align_bool,
line-align .default:n = true,
@@ -1679,6 +1719,18 @@
list/rule = #1
}
}
+
+\NewDocumentCommand{\tocrule}{sO{0.7pc}D(){1.2}mO{}}
+ {
+ \normalsize\normalfont
+ \titlerule*[#2]{\scalebox{#3}{#4}}#5
+ \IfBooleanTF{#1}
+ {\thecontentspage}
+ {
+ \bool_if:NTF \l__eb_toc_line_align_bool
+ { \contentspage } { \thecontentspage }
+ }
+ }
\ctex_set:nn { tocset }
{
part/format = \addvspace{1pc}\sffamily\large,
@@ -1699,53 +1751,12 @@
{ \bool_if:NTF \l__eb_class_book_bool { 3.8\ccwd } { 1.4\ccwd } },
subsection/rule = \tocrule{$\cdot$},
- list/format = \addvspace{0.2pc},
- list/indent = 0\ccwd,
- list/rule = \tocrule{$\cdot$}
- }
-
-\NewDocumentCommand{\tocrule}{sO{0.7pc}D(){1.2}mO{}}
- {
- \normalsize\normalfont
- \titlerule*[#2]{\scalebox{#3}{#4}}#5
- \IfBooleanTF{#1}
- {\thecontentspage}
- {
- \bool_if:NTF \l__eb_toc_line_align_bool
- { \contentspage } { \thecontentspage }
- }
- }
-\cs_new_protected:Npn \eb_titlecontents_set:nn #1#2
- {
- \titlecontents{#1}
- [\use:c { l__eb_toc_#2_indent_tl }]
- {\use:c { l__eb_toc_#2_format_tl }}
- {
- \ifbool{eb@titletoc@hang@fix}
- {
- \contentspush
- {
- \bool_if:NT \l__eb_toc_number_color_bool
- { \color{ctex@toc@number} }
- \thecontentslabel
- \hspace{\use:c { eb@toc@#2@numsep }}
- }
- }{}
- }{}
- {\use:c { l__eb_toc_#2_rule_tl }}
- }
-\contentsuse{lstlisting}{lol}
-\clist_map_inline:nn
- {
- { part } { part },
- { chapter } { chapter },
- { section } { section },
- { subsection } { subsection },
- { figure } { list },
- { table } { list },
- { lstlisting } { list }
+ list/format = \addvspace{0.2pc},
+ list/indent = 0\ccwd,
+ list/rule = \tocrule{$\cdot$},
+ list/belowoffset =
+ { \bool_if:NTF \l__eb_class_book_bool { 0pc } { 0.15pc } }
}
- { \eb_titlecontents_set:nn #1 }
\prop_new:N \l__eb_label_name_prop
\prop_set_from_keyval:Nn \l__eb_label_name_prop
@@ -1962,7 +1973,7 @@
\IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
\eb_multoc_pre_bool:
\eb_title_number_intoc_bool:nn {#2} {#1}
- \dim_add:NV \l__eb_toc_offset_dim \l__eb_toc_listoffset_dim
+ \dim_add:NV \l__eb_toc_offset_dim \l__eb_toc_figure_offset_dim
\vspace*{\dim_use:N \l__eb_toc_offset_dim}
\@starttoc{lof}
\eb_multoc_post_bool:
@@ -1975,7 +1986,7 @@
\IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
\eb_multoc_pre_bool:
\eb_title_number_intoc_bool:nn {#2} {#1}
- \dim_add:NV \l__eb_toc_offset_dim \l__eb_toc_listoffset_dim
+ \dim_add:NV \l__eb_toc_offset_dim \l__eb_toc_table_offset_dim
\vspace*{\dim_use:N \l__eb_toc_offset_dim}
\@starttoc{lot}
\eb_multoc_post_bool:
@@ -1988,7 +1999,7 @@
\IfValueT{#3}{\keys_set:nn { eb/listoc } {#3}}
\eb_multoc_pre_bool:
\eb_title_number_intoc_bool:nn {#2} {#1}
- \dim_add:NV \l__eb_toc_offset_dim \l__eb_toc_listoffset_dim
+ \dim_add:NV \l__eb_toc_offset_dim \l__eb_toc_lstlisting_offset_dim
\vspace*{\dim_use:N \l__eb_toc_offset_dim}
\@starttoc{lol}
\eb_multoc_post_bool:
@@ -2754,16 +2765,16 @@
\bool_set_false:N \l__eb_toc_number_color_bool
\eb_ctex_define:nn { refset }
{
- hyperlink .choice:,
- hyperlink/edge .code:n = { },
- hyperlink/none .code:n = \eb_put_hyperref:n { hidelinks },
- hyperlink/various .code:n =
+ linktype .choice:,
+ linktype/edge .code:n = { },
+ linktype/none .code:n = \eb_put_hyperref:n { hidelinks },
+ linktype/various .code:n =
{
\bool_set_true:N \l__eb_toc_number_color_bool
\eb_put_hyperref:n { colorlinks }
},
- hyperlink .default:n = edge,
- hyperlink .initial:n = edge,
+ linktype .value_required:n = true,
+ linktype .initial:n = edge,
linktoc .choice:,
linktoc/unknown .code:n =
@@ -2778,9 +2789,9 @@
}
}
},
- linktoc .default:n = all,
- linktoc .initial:n = all,
- unknown .code:n =
+ linktoc .default:n = all,
+ linktoc .initial:n = all,
+ unknown .code:n =
{
\eb_put_hyperref:x
{
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 380806bafd..b2fcc357ab 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/noindentafter/README b/macros/latex/contrib/noindentafter/README
deleted file mode 100644
index 1eb4449dbf..0000000000
--- a/macros/latex/contrib/noindentafter/README
+++ /dev/null
@@ -1,50 +0,0 @@
-latex-noindentafter
-===============
-
-LaTeX Package : noindentafter 0.2.2
-
-Last Modified : 2014/11/30
-
-Author : Michiel Helvensteijn (www.mhelvens.net)
-
-
-Summary
--------
-
-This pack­age, as the name sug­gests, sup­plies tools to au­to­mat­i­cally
-sup­press in­den­ta­tion in para­graphs, specif­i­cally those fol­low­ing
-par­tic­u­lar macros or en­vi­ron­ments.
-
-
-Prerequisites
--------------
-
-To use this package, you need only `etoolbox`, though to generate
-the documentation some other packages are needed.
-
-
-Installation
--------------
-
-`noindentafter.sty` is provided directly in the package archive.
-Put it in a place where your LaTeX distribution can find it.
-(`noindentafter.sty` is not generated, but manually maintained;
- you may use docstrip to remove the documentation, but you don't
- have to; it will just work the way it is)
-
-
-Documentation
--------------
-`noindentafter.pdf` is provided directly in the package archive.
-To generate the documentation yourself, run LaTeX on `noindentafter.tex`.
-(`noindentafter.tex` does not contain the package code itself; it inputs
- `noindentafter.sty` directly to document the implementation)
-
-
-License
--------
-
-This material is subject to the LaTeX Project Public License. See
-http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
-for the details of that license.
-
diff --git a/macros/latex/contrib/noindentafter/README.md b/macros/latex/contrib/noindentafter/README.md
new file mode 100644
index 0000000000..bee02a49cc
--- /dev/null
+++ b/macros/latex/contrib/noindentafter/README.md
@@ -0,0 +1,41 @@
+
+ noindentafter &ndash; purposefully prevention of paragraph indentation
+-------------------------------------------------------------------------------
+
+ Copyright (C) Michiel Helvensteijn, 2014-2021<br>
+ Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2021-2021
+
+ **noindentafter 2021-05-14 v1.00**
+
+ The current release is shiped via CTAN: https://www.ctan.org/pkg/noindentafter
+
+-------------------------------------------------------------------------------
+
+ This material is subject to the LaTeX Project Public License version 1.3c
+ or later. See http://www.latex-project.org/lppl.txt for details.
+
+-------------------------------------------------------------------------------
+
+
+Summary
+-------
+
+The **noindentafter** package, as the name suggests, supplies functionallity to
+purposefully prevent indentation of paragraphs, specifically those following
+particular macros or environments in an automated manner. To use this package,
+only packages `etoolbox` and `xpatch` are required.
+
+
+Versions
+--------
+**v1.00** (2021-05-14)
++ new maintainer: Falk Hanisch
++ fix for `LaTeXe 2019-10-01` and later
+
+**v0.2.0** (2014-11-30)
++ new implementation, fixing a spacing issue
+
+**v0.0.1** (2013-08-02)
++ initial version by Michiel Helvensteijn
+
+
diff --git a/macros/latex/contrib/noindentafter/doc/LICENSE.md b/macros/latex/contrib/noindentafter/doc/LICENSE.md
new file mode 100644
index 0000000000..de6e53039e
--- /dev/null
+++ b/macros/latex/contrib/noindentafter/doc/LICENSE.md
@@ -0,0 +1,21 @@
+
+ noindentafter &ndash; purposefully prevention of paragraph indentation
+----------------------------------------------------------------------------
+
+ Copyright (C) Michiel Helvensteijn, 2014-2021<br>
+ Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2021-2021
+
+----------------------------------------------------------------------------
+
+ This work may be distributed and/or modified under the conditions of the
+ LaTeX Project Public License, version 1.3c of the license. The latest
+ version of this license is in<br>
+ &nbsp;&nbsp; http://www.latex-project.org/lppl.txt<br>
+ and version 1.3c or later is part of all distributions of
+ LaTeX version 2008-05-04 or later.
+
+ This work has the LPPL maintenance status "author-maintained".
+
+ The current maintainer and author of this work is Falk Hanisch.
+
+----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/noindentafter/doc/noindentafter.pdf b/macros/latex/contrib/noindentafter/doc/noindentafter.pdf
new file mode 100644
index 0000000000..3f332ad399
--- /dev/null
+++ b/macros/latex/contrib/noindentafter/doc/noindentafter.pdf
Binary files differ
diff --git a/macros/latex/contrib/noindentafter/noindentafter-dry.sty b/macros/latex/contrib/noindentafter/noindentafter-dry.sty
deleted file mode 100644
index 27ba1a3077..0000000000
--- a/macros/latex/contrib/noindentafter/noindentafter-dry.sty
+++ /dev/null
@@ -1,54 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse %%%%
-% %
-% Copyright (c) 2014 - Michiel Helvensteijn - www.mhelvens.net %
-% %
-% https://github.com/mhelvens/latex-delta-modules %
-% %
-% This work may be distributed and/or modified under the conditions %
-% of the LaTeX Project Public License, either version 1.3 of this %
-% license or (at your option) any later version. The latest version %
-% of this license is in http://www.latex-project.org/lppl.txt %
-% and version 1.3 or later is part of all distributions of LaTeX %
-% version 2005/12/01 or later. %
-% %
-% This work has the LPPL maintenance status 'maintained'. %
-% %
-% The Current Maintainer of this work is Michiel Helvensteijn. %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi %%%%
-
-% I will 'officially' release this file at some point in the future. For
-% now I'm just using it to document a couple of packages. Still, it's
-% released under LPPL, so use it as you will.
-%
-% -- Michiel Helvensteijn
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{noindentafter-dry}
- [2013/10/11 convenience macros for reusing LaTeX code]
-
-\RequirePackage{filecontents}
-\RequirePackage{xparse}
-\RequirePackage{etoolbox}
-\RequirePackage{withargs}
-
-\newcommand\minput[1]{%
- \input{#1}\unskip%
-}
-
-\NewDocumentCommand{\NewDRYer}{m +m}{%
- \withargs [\uniquecsname] [#2] {%
- \newenvironment{#1}{%
- \begingroup%
- \@tempswafalse\filec@ntents{##1.tmp}%
- }{%
- \endfilecontents%
- \endgroup%
- }%
- \AfterEndEnvironment{#1}{%
- \withargs (xn) [##1.tmp] [\minput{##1.tmp}] {%
- ##2%
- }%
- }%
- }%
-}
diff --git a/macros/latex/contrib/noindentafter/noindentafter-packagedoc.cls b/macros/latex/contrib/noindentafter/noindentafter-packagedoc.cls
deleted file mode 100644
index 1eb80d548c..0000000000
--- a/macros/latex/contrib/noindentafter/noindentafter-packagedoc.cls
+++ /dev/null
@@ -1,313 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% Copyright (C) 2012-2013 by Michiel Helvensteijn - www.mhelvens.net %
-% %
-% This work may be distributed and/or modified under the %
-% conditions of the LaTeX Project Public License, either %
-% version 1.3 of this license or (at your option) any later %
-% version. The latest version of this license is in %
-% http://www.latex-project.org/lppl.txt %
-% and version 1.3 or later is part of all distributions of %
-% LaTeX version 2005/12/01 or later. %
-% %
-% This work has the LPPL maintenance status `author-maintained'. %
-% %
-% The Current Maintainer of this work is Michiel Helvensteijn. %
-% %
-% This work consists of the file packagedoc.cls. %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\let\packagename\jobname
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Document Class %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\LoadClassWithOptions{ltxdoc}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Importing The Relevant Package %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\RequirePackage{\packagename}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Importing Other Packages %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\RequirePackage[hyphens]{url}
-
-\RequirePackage{etoolbox}
-\RequirePackage[xcolor]{mdframed}
-\RequirePackage{marginnote}
-\RequirePackage{listings}
-\RequirePackage{textcomp}
-\RequirePackage[colorlinks=true]{hyperref}
-\RequirePackage{noindentafter-dry}
-\RequirePackage{needspace}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Documentation Options %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% File Info %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\GetFileInfo{\packagename.sty}
-
-\title{The \textsf{\packagename} package\thanks{%
- This document corresponds to \textsf{\packagename}~\fileversion,
- dated \filedate.%
-}}
-
-\author{
- Michiel Helvensteijn\\
- \href{mailto:mhelvens+latex@gmail.com}{mhelvens+latex@gmail.com}
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Development Info %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newmdenv[
- leftline = false,
- rightline = false
-]{bannerframe}
-
-\apptocmd{\maketitle}{
- \begin{bannerframe}
- \small
- \begin{center}
- Development of this package is organized at
- \href{http://latex-\packagename.googlecode.com}
- {latex-\packagename.googlecode.com}.\\
- I am happy to receive feedback there!
- \end{center}
- \end{bannerframe}
-}{}{}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example Environment Setup %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%% Extra keywords for LaTeX
-%
-\newcommand{\moretexcs}[1]{
- \lstdefinelanguage{latex}{
- language=[LaTeX]tex,
- alsoletter={\[,\],\$},
- moretexcs={ExplSyntaxOn,ExplSyntaxOff,lstinputlisting,detokenize,[,],#1},
- keywords={\$}
- }
-}
-
-%%% Code formatting
-%
-\lstdefinestyle{examplecode}{%
- language=latex,%
- basicstyle=\ttfamily\small,%
- texcsstyle=*\bfseries,%
- keywordstyle=*\bfseries,%
- upquote=true%
-}
-
-%%% Setting up example code block
-%
-\definecolor{examplecodelinecolor}{rgb}{0,0,0}
-\definecolor{examplecodebackgroundcolor}{rgb}{.9,.9,.9}
-\newmdenv[
- linecolor = examplecodelinecolor,
- backgroundcolor = examplecodebackgroundcolor,
- skipabove = 0pt,
- skipbelow = 0pt,
- innertopmargin = -1pt,
- innerrightmargin = 1pt,
- innerbottommargin = -1pt,
- innerleftmargin = 1pt
-]{examplecodeframe}
-
-%%% Defining example output block
-%
-\definecolor{exampleoutputbackgroundcolor}{rgb}{1,1,1}
-\newmdenv[
- linecolor = examplecodelinecolor,
- backgroundcolor = exampleoutputbackgroundcolor,
- skipabove = 0pt,
- skipbelow = 0pt,
- innertopmargin = 6pt,
- innerrightmargin = 6pt,
- innerbottommargin = 6pt,
- innerleftmargin = 6pt,
- nobreak = true
-]{exampleoutputframe}
-
-%%% Macros for counting lines in file, adapted from
-%%% http://andreas.scherbaum.la/blog/archives/
-%%% 670-Read-number-lines-in-a-file-in-LaTeX.html
-%
-\RequirePackage{ifthen}
-\newboolean{packagedoc@restfile}
-\newcommand*{\packagedoc@fileline}{}
-\newread\packagedoc@file
-\newcommand*{\packagedoc@readnextline}[1]{%
- \ifthenelse{\boolean{packagedoc@restfile}}{%
- \read#1 to \packagedoc@fileline%
- \ifeof#1\setboolean{packagedoc@restfile}{false}%
- \else\fi%
- }{}%
-}
-\newcommand*{\countlinesinfile}[2]{%
- \setboolean{packagedoc@restfile}{true}%
- \setcounter{packagedoc@linecount}{0}%
- \openin\packagedoc@file=#1%
- \whiledo{\boolean{packagedoc@restfile}}{%
- \packagedoc@readnextline{\packagedoc@file}%
- \ifthenelse{\boolean{packagedoc@restfile}}{%
- \stepcounter{packagedoc@linecount}%
- }{}%
- }%
- \closein\packagedoc@file%
- \edef#2{\thepackagedoc@linecount}%
-}
-
-\newcounter{packagedoc@linecount}
-\newlength{\packagedoc@spacetoreserve}
-
-%%% DRYer without output
-%
-\NewDRYer{latex-example}{%
- \vskip\abovedisplayskip%
- {%
- \ttfamily\small%
- \countlinesinfile{#1}{\countedlines}%
- \setlength{\packagedoc@spacetoreserve}{\countedlines\baselineskip}%
- \addtolength{\packagedoc@spacetoreserve}{-1pt}%
- \needspace{\packagedoc@spacetoreserve}%
- }%
- \begin{examplecodeframe}%
- \renewcommand{\ttdefault}{pcr}%
- \lstinputlisting[style=examplecode]{#1}%
- \end{examplecodeframe}%
- #2%
- \vskip\belowdisplayskip%
-}
-
-%%% DRYer WITH output but WITHOUT side-effects
-%
-\NewDRYer{latex-example-show}{%
- \vskip\abovedisplayskip%
- {%
- \ttfamily\small%
- \countlinesinfile{#1}{\countedlines}%
- \setlength{\packagedoc@spacetoreserve}{\countedlines\baselineskip}%
- \addtolength{\packagedoc@spacetoreserve}{\baselineskip}%
- \needspace{\packagedoc@spacetoreserve}%
- }%
- \begin{examplecodeframe}%
- \renewcommand{\ttdefault}{pcr}%
- \lstinputlisting[style=examplecode]{#1}%
- \end{examplecodeframe}\vspace{-1pt}%
- \begin{exampleoutputframe}%
- #2%
- \end{exampleoutputframe}%
- \vskip\belowdisplayskip%
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Implementation Code Box Setup %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%% Saving old implementation code block font
-%
-\AtBeginDocument{\let\old@macro@font\macro@font}
-
-%%% Setup for 'interesting' implementation code blocks
-%
-\definecolor{interestingcodebackgroundcolor}{rgb}{.9,.9,.9}
-\definecolor{interestingcodelinecolor}{rgb}{0,0,0}
-\mdfdefinestyle{interestingcode}{
- linecolor = interestingcodelinecolor,
- backgroundcolor = interestingcodebackgroundcolor
-}
-\newcommand*{\interesting}{%
- \def\codestyle{interestingcode}%
- \def\codeskipabove{2pt}%
- \let\macro@font\old@macro@font%
-}
-
-%%% Setup for 'UNinteresting' implementation code blocks
-%
-\definecolor{uninterestingcodebackgroundcolor}{rgb}{.97,.97,.97}
-\definecolor{uninterestingcodelinecolor}{rgb}{.5,.5,.5}
-\definecolor{uninterestingcodecolor}{rgb}{.4,.4,.4}
-\mdfdefinestyle{uninterestingcode}{
- linecolor = uninterestingcodelinecolor,
- backgroundcolor = uninterestingcodebackgroundcolor,
-}
-\newcommand*{\uninteresting}{%
- \def\codestyle{uninterestingcode}%
- \def\codeskipabove{-2pt}%
- \def\macro@font{\color{uninterestingcodecolor}\old@macro@font}%
-}
-
-%%% Actually surround 'macrocode' with the frame
-%
-\surroundwithmdframed[
- style = \codestyle,
- skipabove = \abovedisplayskip,
- skipbelow = \belowdisplayskip,
- splittopskip = 4pt,
- splitbottomskip = 1pt,
- innertopmargin = -2pt,
- innerrightmargin = 1pt,
- innerbottommargin = 5pt,
- innerleftmargin = 4pt
-]{macrocode}
-
-%%% Start out with 'interesting' code status and
-%%% always go back to it after one code block
-%
-\interesting
-\AfterEndEnvironment{macrocode}{\interesting}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Argument Specifiers and such %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcommand*{\movarg}[1]{[ \texttt{#1} ]}
-\newcommand*{\momarg}[1]{[ \meta{#1} ]}
-
-\newcommand{\describemacro}[2]{%
- \needspace{3\baselineskip}%
- \noindent\\\DescribeMacro{#1} #2\\%
-}
-
-\newcommand{\describemetamacro}[2]{%
- \needspace{3\baselineskip}%
- \noindent\\\marginnote{\meta{#1}} #2\\%
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Automatic Implementation Docs %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\AtEndDocument{
- \section{Implementation}
-
- \StopEventually {\PrintChanges}
-
- We now show and explain the entire implementation from \texttt{\packagename.sty}.
-
- \DocInput{\packagename.sty}
-
- \Finale
-
- \PrintIndex
-}
diff --git a/macros/latex/contrib/noindentafter/noindentafter.pdf b/macros/latex/contrib/noindentafter/noindentafter.pdf
deleted file mode 100644
index b8d1d8aad1..0000000000
--- a/macros/latex/contrib/noindentafter/noindentafter.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/noindentafter/noindentafter.sty b/macros/latex/contrib/noindentafter/noindentafter.sty
deleted file mode 100644
index 2ea6e22b37..0000000000
--- a/macros/latex/contrib/noindentafter/noindentafter.sty
+++ /dev/null
@@ -1,189 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse %%%%
-% %
-% Copyright (c) 2014 - Michiel Helvensteijn - www.mhelvens.net %
-% %
-% http://latex-noindentafter.googlecode.com %
-% %
-% This work may be distributed and/or modified under the conditions %
-% of the LaTeX Project Public License, either version 1.3 of this %
-% license or (at your option) any later version. The latest version %
-% of this license is in http://www.latex-project.org/lppl.txt %
-% and version 1.3 or later is part of all distributions of LaTeX %
-% version 2005/12/01 or later. %
-% %
-% This work has the LPPL maintenance status `maintained'. %
-% %
-% The Current Maintainer of this work is Michiel Helvensteijn. %
-% %
-% This work consists of the files noindentafter.tex and noindentafter.sty. %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi %%%%
-
-% \CheckSum{50}
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Package Info} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{noindentafter}[2014/11/30 0.2.2
- prevent paragraph indentation after specific environments or macros]
-% \end{macrocode}
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Packages} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% \begin{macrocode}
-\RequirePackage{etoolbox}
-% \end{macrocode}
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Patches} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% \needspace{5\baselineskip}\begin{macro}{\end}
-%
-% The package |etoolbox| provides the command
-% |\AfterEndEnvironment| which creates a hook executed at a
-% very late point inside the |\end| command. However, this
-% hook is still located before |\ignorespaces|, which is
-% too early to properly suppress the indention after an
-% environment. Therefore another hook is now added to |\end|
-% using |\patchcmd|. This new hook puts new code at the very
-% end.
-%
-% \begin{macrocode}
-\patchcmd\end{%
- \if@ignore\@ignorefalse\ignorespaces\fi%
-}{%
- \if@ignore\@ignorefalse\ignorespaces\fi%
- \csuse{@noindent@#1@hook}%
-}{}{%
- \PackageWarningNoLine{noindentafter}{%
- Patching `\string\end' failed!\MessageBreak%
- `\string\NoIndentAfter...' commands won't work%
- }%
-}
-% \end{macrocode}
-%
-%\end{macro}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \subsection{Macros} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% \needspace{5\baselineskip}\begin{macro}{\@NoIndentAfter}
-%
-% \noindent This command implements the main principle
-% behind this package. It checks whether it is followed by
-% a paragraph. If so, the command |\par| is temporarily
-% changed using |\everypar|, so that the following paragraph
-% is not indented. Immediately afterwards, default paragraph
-% behavior is restored with |\@restorepar| (from the \LaTeX{}
-% base).
-%
-% \begin{macrocode}
-\newcommand*\@NoIndentAfter{%
- \@ifnextchar\par{%
- \def\par{%
- \everypar{\setbox\z@\lastbox\everypar{}}%
- \@restorepar%
- }%
- }{}%
-}
-% \end{macrocode}
-%
-%\end{macro}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% \needspace{5\baselineskip}\begin{macro}{\NoIndentAfterThis}
-%
-% \noindent Enforce a paragraph break and suppress
-% indentation for whatever follows.
-%
-% \begin{macrocode}
-\newrobustcmd*{\NoIndentAfterThis}{\@NoIndentAfter\par\par}
-% \end{macrocode}
-%
-%\end{macro}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % \needspace{5\baselineskip}\begin{macro}{\NoIndentAfterEnv}
-%%% \marg{environment}\\
-%
-% \noindent Append |\@NoIndentAfter| to the output of
-% \meta{environment} by using the new environment hook.
-%
-% \begin{macrocode}
-\newrobustcmd{\NoIndentAfterEnv}[1]{%
- \csdef{@noindent@#1@hook}{\@NoIndentAfter}%
-}
-% \end{macrocode}
-%
-%\end{macro}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % \needspace{5\baselineskip}\begin{macro}{\NoIndentAfterCmd}
-%%% \marg{command}\\
-%
-% \noindent Append |\NoIndentAfterThis| to the output of
-% \meta{command}.
-%
-% \begin{macrocode}
-\newrobustcmd*{\NoIndentAfterCmd}[1]{%
- \apptocmd{#1}{\NoIndentAfterThis}{}{%
- \PackageWarning{noindentafter}{%
- Patching `\string#1' failed!\MessageBreak%
- `\string\NoIndentAfterCmd' won't work%
- }%
- }%
-}
-% \end{macrocode}
-%
-%\end{macro}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
diff --git a/macros/latex/contrib/noindentafter/noindentafter.tex b/macros/latex/contrib/noindentafter/noindentafter.tex
deleted file mode 100644
index 6aac2ebe06..0000000000
--- a/macros/latex/contrib/noindentafter/noindentafter.tex
+++ /dev/null
@@ -1,205 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% Copyright (c) 2014 - Michiel Helvensteijn - www.mhelvens.net %
-% %
-% http://latex-noindentafter.googlecode.com %
-% %
-% This work may be distributed and/or modified under the %
-% conditions of the LaTeX Project Public License, either %
-% version 1.3 of this license or (at your option) any later %
-% version. The latest version of this license is in %
-% http://www.latex-project.org/lppl.txt %
-% and version 1.3 or later is part of all distributions of %
-% LaTeX version 2005/12/01 or later. %
-% %
-% This work has the LPPL maintenance status `maintained'. %
-% %
-% The Current Maintainer of this work is Michiel Helvensteijn. %
-% %
-% This work consists of the files noindentafter.tex and noindentafter.sty. %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\documentclass[a4paper]{noindentafter-packagedoc}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Setup %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\NoIndentAfterEnv{latex-example-show}
-\NoIndentAfterCmd{\describemacro}
-
-\moretexcs{%
- NoIndentAfterThis,NoIndentAfterEnv,NoIndentAfterCmd
-}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Global Changes %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\changes{0.0.1}{2013/08/02}
- {initial version}
-\changes{0.2.0}{2014/11/30}
- {new implementation, fixing a spacing issue}
-\changes{0.2.2}{2014/11/30}
- {fixed version number in the README}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{document} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\maketitle
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Introduction} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-Some people prefer certain LaTeX environments ---such as |itemize| or
-|theorem|--- never to be followed by an indented paragraph. It is of course
-possible to manually add the |\noindent| command to each occurrence, but
-it's easy to forget to do this. Also, all those |\noindent| commands leave
-your \TeX{} code just a little bit more chaotic and more burdensome to read.
-
-There are a number of solutions floating around, but many of them are not
-particularly robust, or only work in specific cases.
-
-The |noindentafter| package provides a few simple commands which can be used
-to patch existing macros and environments. They work as expected in all cases
-I've encountered.
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Usage} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\noindent\DescribeMacro{\NoIndentAfterThis}
-%
-This is the most primitive macro offered by the package. It forces a
-paragraph break and suppresses indentation for whatever follows:
-
-\begin{latex-example-show}
- Lorem ipsum dolor sit amet, consectetur adipiscing
- elit. \NoIndentAfterThis Pellentesque hendrerit volutpat
- feugiat. Ut purus leo, pulvinar sit amet vehicula non,
- pulvinar eu lacus. Curabitur id mollis ligula.
-\end{latex-example-show}
-
-
-
-\pagebreak % Hack to make the footnote appear on page 1.
-
-
-
-\describemacro{\NoIndentAfterEnv}{\marg{environment}}
-
-This is probably the command most people will want to use.
-The \meta{environment} argument should contain an environment
-name. After using this command, any paragraph following such
-an environment will remain unindented.
-
-\begin{latex-example-show}
- Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-
- \begin{itemize}
- \item First Item
- \item Second Item
- \end{itemize}
-
- Pellentesque hendrerit volutpat feugiat. Ut purus
- leo, pulvinar sit amet vehicula non, pulvinar eu
- lacus. Curabitur id mollis ligula.
-
- \NoIndentAfterEnv{itemize}
-
- Vestibulum id erat venenatis, facilisis enim non,
- consectetur felis. Quisque iaculis eu arcu non pretium.
-
- \begin{itemize}
- \item Third Item
- \item Fourth Item
- \end{itemize}
-
- Curabitur est elit, posuere pulvinar laoreet sed, varius
- id mi. Nam lobortis elit nec mauris condimentum gravida.
-\end{latex-example-show}
-
-You'll probably want to use these commands in the document
-preamble but, as you can see, you don't really have to.
-
-\needspace{10\baselineskip}
-Note that using the |\NoIndentAfterEnv| command on your own
-environment is not the same as adding |\NoIndentAfterThis|
-to the end of it:
-
-\begin{latex-example-show}
- \newenvironment{test}{\itshape}{\NoIndentAfterThis}
-
- \begin{test}
- Lorem ipsum dolor sit amet, consectetur
- adipiscing elit.
- \end{test}
-
- Pellentesque hendrerit volutpat feugiat. Ut purus
- leo, pulvinar sit amet vehicula non, pulvinar eu
- lacus. Curabitur id mollis ligula.
-\end{latex-example-show}
-
-|\NoIndentAfterEnv| works because it bypasses the group
-that surrounds every \LaTeX{} environment (and localizes
-declarations).
-
-
-
-\describemacro{\NoIndentAfterCmd}{\marg{command}}
-
-Finally, you may also patch command sequences using the
-|\NoIndentAfterCmd| command. There may not be many situations
-where this is useful, but for me, there is at least one:
-
-\begin{latex-example-show}
- Lorem ipsum dolor sit amet, consectetur adipiscing elit:
-
- \[ 1 + 1 = 2 \]
-
- Pellentesque hendrerit volutpat feugiat. Ut purus leo:
-
- \NoIndentAfterCmd \]
-
- \[ 2 + 2 = 4 \]
-
- Vestibulum id erat venenatis, facilisis enim non,
- consectetur felis.
-\end{latex-example-show}
-
-Note that braces around the \meta{command} argument are
-optional, as always when an argument in \TeX{} consists
-of only a single token.
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Acknowledgements} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-I had been looking for a solution like this for quite a while. I came up
-with a number of hacks that workedin some situations but not in others.
-Eventually I asked a question on \url{http://tex.stackexchange.com}:
-\begin{itemize}
- \item \url{http://tex.stackexchange.com/questions/112404}
-\end{itemize}
-
-I received two excellent answers -- one from cgnieder and one from lockstep.
-This package was originally based on the technique proposed by cgnieder, as
-it is simpler and more generally applicable. Still, the answer by lockstep
-is definitely worth a read.
-
-Most recently, a better approach was implemented by tudscr to fix the spacing
-above headers:
-\begin{itemize}
- \item \url{https://github.com/mhelvens/latex-noindentafter/pull/1}
-\end{itemize}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\end{document} %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/noindentafter/source/noindentafter.dtx b/macros/latex/contrib/noindentafter/source/noindentafter.dtx
new file mode 100644
index 0000000000..4b86ee68c7
--- /dev/null
+++ b/macros/latex/contrib/noindentafter/source/noindentafter.dtx
@@ -0,0 +1,407 @@
+% \iffalse meta-comment
+% noindentafter.dtx
+%<*identify>
+%
+% noindentafter -- purposefully prevention of paragraph indentation
+%
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) Michiel Helvensteijn, 2014-2021
+%% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2021-2021
+%%
+%% ----------------------------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, version 1.3c of the license. The latest
+%% version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of
+%% LaTeX version 2008-05-04 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% The current maintainer and author of this work is Falk Hanisch.
+%%
+%% This work consists of the main source file README.md, LICENSE.md,
+%% noindentafter.dtx and the derived documentation noindentafter.pdf
+%%
+%% ----------------------------------------------------------------------------
+%%
+%</identify>
+% \fi
+%
+% \iffalse
+%<*dtx>
+\ifx\documentclass\undefined
+\input docstrip.tex
+\keepsilent
+
+\preamble
+
+noindentafter -- purposefully prevention of paragraph indentation
+
+\endpreamble
+\askforoverwritefalse
+\usedir{tex/latex/noindentafter}
+\generate{%
+ \usepreamble\defaultpreamble
+ \file{noindentafter.sty}{
+ \from{noindentafter.dtx}{package,identify}
+ \from{noindentafter.dtx}{package,body}
+ }
+}
+\else
+\let\endbatchfile\relax
+\fi
+\endbatchfile
+%</dtx>
+% \fi
+%
+% \iffalse
+%<*dtx|package&identify>
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{noindentafter.dtx}
+%</dtx>
+%<package&identify>\ProvidesPackage{noindentafter}
+ [2021-05-14 v1.00 purposefully prevention of paragraph indentation]
+%</dtx|package&identify>
+% \fi
+%
+% \iffalse
+%<*dtx>
+\documentclass[english,xindy]{tudscrdoc}
+\KOMAoptions{parskip=false}
+\usepackage{iftex}
+\iftutex
+ \usepackage{fontspec}
+\else
+ \usepackage[T1]{fontenc}
+\fi
+\usepackage{babel}
+% normalized vskip for listings
+\newlength\niavskip
+\AtBeginDocument{%
+ \ifdim\parskip>\bigskipamount%
+ \setlength\niavskip{\parskip}%
+ \else%
+ \setlength\niavskip{\bigskipamount}%
+ \fi%
+}
+\newcommand*\nianormalizedvskip{\vskip\glueexpr\niavskip-\parskip\relax}
+% listings style
+\usepackage{xcolor}
+\usepackage{quoting}
+\usepackage{listings}
+\lstset{%
+ inputencoding=utf8,extendedchars=true,%
+ literate=%
+ {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+ {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+ {ß}{{\ss}}1 {~}{{\textasciitilde}}1
+ {»}{{\guillemetright}}1 {«}{{\guillemetleft}}1
+}
+\lstdefinestyle{noindentafter}{%
+ language=[LaTeX]tex,%
+ columns=flexible,%
+ frame=single,%
+ xleftmargin=\fboxsep,%
+ xrightmargin=\fboxsep,%
+ escapechar=§,%
+ aboveskip=\niavskip,%
+ belowskip=0pt,%
+ backgroundcolor=\color{yellow!10},%
+ basicstyle=\color{darkgray}\small\ttfamily,%
+ moretexcs=[2]{NoIndentAfterThis,NoIndentAfterCmd,NoIndentAfterEnv},%
+ texcsstyle=*\color{black},%
+ texcsstyle=*[2]\color{red}\bfseries,%
+}
+\lstnewenvironment{niaexample}[1][]{%
+ \lstset{style=noindentafter,#1}%
+}{%
+ \nianormalizedvskip%
+}
+\makeatletter
+% suppress overwriting warning
+\providecommand*\filec@ntents@silent{%
+ \let\@latex@warning@no@line\@gobble%
+}
+% environment for listing and inclusion, unused guard <manual> necessary
+\newenvironment{niashow}{%
+ \csuse{filecontents*}[force,nosearch,silent]{\jobname-lst.aux}%
+}{%
+ \csuse{endfilecontents*}%
+}%
+\AfterEndEnvironment{niashow}{%
+ \begin{quoting}[rightmargin=0pt,vskip=0pt]
+ \lstinputlisting[style=noindentafter]{\jobname-lst.aux}%
+ \nianormalizedvskip%
+ \input{\jobname-lst.aux}%
+ \nianormalizedvskip%
+ \end{quoting}%
+}
+\newcommand*\niaagain[1][\relax]{%
+ #1%
+ \begin{quoting}[rightmargin=0pt,vskip=0pt]
+ \nianormalizedvskip%
+ \input{\jobname-lst.aux}%
+ \nianormalizedvskip%
+ \end{quoting}%
+}
+% TODO l3doc + l3build
+\NewDocumentCommand\DescribeMacroExtended{m !o}{%
+ \ifhmode%
+ \vskip\niavskip%
+ \else%
+ \addpenalty{\@beginparpenalty}%
+ \addvspace{\niavskip}%
+ \fi%
+ \noindent%
+ \DescribeMacro{#1}%
+ \IfValueT{#2}{%
+ \expandafter\cs\expandafter{\expandafter\@gobble\string#1}#2%
+ \vskip\smallskipamount%
+ }%
+ \noindent\ignorespaces%
+}
+\makeatother
+
+\usepackage{bookmark}
+\usepackage[babel]{microtype}
+
+\usepackage{noindentafter}
+\NoIndentAfterEnv{niaexample}
+\NoIndentAfterEnv{niashow}
+\NoIndentAfterCmd{\niaagain}
+
+
+%\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{noindentafter.dtx}
+
+
+
+\begin{document}
+ \title{The package \pkg{noindentafter}}
+ \author{%
+ Michiel Helvensteijn (2014-2021)\\%
+ Falk Hanisch (2021--)\\%
+ \url{https://github.com/mrpiggi/noindentafter}\\%
+ \mailto{hanisch.latex@outlook.com}%
+ }
+ \date{\fileversion\nobreakspace(\filedate)}
+ \maketitle%
+ \begin{abstract}
+ \noindent
+ For certain environments---such as \env{itemize} or \env{theorem}---as
+ well as specific commands, indentation of the following paragraph is not
+ desired. It is of course possible to manually add \cs{noindent} to each
+ occurrence, but it is very easy to forget this at one point or another.
+ This package provides a few simple commands which can be used to patch
+ existing macros and environments in order to get rid of manually using
+ \cs{noindent} after these. Therefore, both packages \pkg{etoolbox} and
+ \pkg{xpatch} are required.
+ \end{abstract}
+ %\tableofcontents
+ \setcounter{secnumdepth}{0}
+ \DocInput{\filename}
+\end{document}
+% \fi
+%
+\changes{v0.0.1}{2013-08-02}{initial version by Michiel Helvensteijn}
+\changes{v0.2.0}{2014-11-30}{new implementation, fixing a spacing issue}
+\changes{v0.2.2}{2014-11-30}{fixed version number in the README}
+\changes{v1.00}{2021-05-11}{new maintainer: Falk Hanisch}^^A
+\changes{v1.00}{2021-05-14}{fix for \LaTeXe\ 2019-10-01 and later}
+
+
+
+\section{Usage}
+
+The package does not provide additional options and is used in the simplest way
+possible:
+
+\begin{niaexample}
+\usepackage{noindentafter}
+\end{niaexample}
+
+In order to ensure a consistent layout throughout the document, it is
+recommended---but not mandatory---to use the commands described below within
+the preamble after loading package \pkg{noindentafter}.
+
+
+
+\DescribeMacroExtended{\NoIndentAfterEnv}[\marg{environment}]
+This is probably the most frequently needed functionality. After using this
+command, any paragraph following such an \marg{environment} will remain
+unindented. The example below shows the default output without the involvement
+of \pkg{noindentafter}.
+
+\begin{niashow}
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
+vestibulum ut, placerat ac, adipiscing vitae, felis.
+
+\begin{itemize}
+ \item First Item
+ \item Second Item
+\end{itemize}
+
+Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer
+id, vulputate a, magna. Donec vehicula augue eu neque.
+
+Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
+turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem.
+\end{niashow}
+
+Once \lstinline[style=noindentafter]|\NoIndentAfterEnv{itemize}| has been
+executed, the output differs by the \emph{unintended} paragraph directly after
+the \env{itemize} environment: \niaagain[\NoIndentAfterEnv{itemize}]
+
+Note that using the \cs{NoIndentAfterEnv} command on an environment is not the
+same as adding \cs{NoIndentAfterThis} to the end of it:^^A
+\footnote{\cs{NoIndentAfterEnv} bypasses the group that surrounds environments}
+
+\begin{niashow}
+\newenvironment{mytestenv}{\itshape}{\NoIndentAfterThis}
+\begin{mytestenv}
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
+vestibulum ut, placerat ac, adipiscing vitae, felis.
+\end{mytestenv}
+
+Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer
+id, vulputate a, magna. Donec vehicula augue eu neque.
+\end{niashow}
+
+
+
+
+\DescribeMacroExtended{\NoIndentAfterCmd}[\marg{command}]
+By using \cs{NoIndentAfterCmd}, macros can be modified. There probably may not
+be many situations where this is useful, but perhaps this one:
+
+\begin{niashow}
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit:
+
+\[ 1 + 1 = 2 \]
+
+Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur
+dictum gravida mauris:
+
+\NoIndentAfterCmd{\]}
+
+\[ 2 + 2 = 4 \]
+
+Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec
+vehicula augue eu neque.
+\end{niashow}
+
+
+
+\DescribeMacroExtended{\NoIndentAfterThis}
+Finally, this is the most primitive macro offered by the package. It forces a
+paragraph break and suppresses indentation for whatever follows:
+
+\begin{niashow}
+Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
+vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
+mauris. \NoIndentAfterThis Nam arcu libero, nonummy eget, consectetuer id,
+vulputate a, magna. Donec vehicula augue eu neque.
+\end{niashow}
+
+
+
+\section{Acknowledgements}
+This package resulted from \url{http://tex.stackexchange.com/q/112404} and the
+excellent responses to it by \textsc{cgnieder} and \textsc{lockstep}. Although
+it initially based on the proposed solution by \textsc{cgnieder}---as it was
+simpler and more generally applicable---the answer by \textsc{lockstep} is
+definitely worth reading.
+
+
+
+\StopEventually{^^A
+ \cleardoublepage\PrintIndex^^A
+ \PrintChanges^^A
+ \PrintToDos^^A
+}
+%
+% \iffalse
+%</dtx>
+%<*package&body>
+% \fi
+%
+%^^A \cleardoublepage
+%^^A \appendix
+% \section{Implementation}
+% The only required packages are \pkg{etoolbox} as well as \pkg{xpatch}.
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+\RequirePackage{xpatch}
+% \end{macrocode}
+%
+% \begin{macro}{\nia@scan}
+% This command implements the main principle behind this package. It checks
+% whether it is followed by a paragraph. If so, the command \cs{par} is
+% temporarily changed using \cs{everypar}, so that the following paragraph is
+% not indented. Immediately afterwards, default paragraph behavior is restored
+% with \cs{@restorepar} (from the \LaTeXe\ kernel).
+% \begin{macrocode}
+\newcommand*\nia@scan{%
+ \kernel@ifnextchar\par{%
+ \par%
+ \def\par{%
+ \everypar{\setbox\z@\lastbox\everypar{}}%
+ \@restorepar%
+ }%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \nia@scan
+%
+% \begin{macro}{\nia@afterendenv}
+% This command is used for hooking into the ending routine of an environment at
+% the latest possible point after \cs{ignorespaces}. It is heavily inspired by
+% David Carlisle\footnote{\url{https://tex.stackexchange.com/a/179034/38481}}
+% and uses a delimited argument in order to apply \cs{nia@scan} last.
+%
+% It is invoked via hook \cs{AfterEndEnvironment} provided by \pkg{etoolbox}
+% and leaves everything between its invocation and \cs{ignorespaces}|\fi| at
+% the very end of \cs{end} unchanged---even additonal material given through
+% the same hook---and finally executes \cs{nia@scan}.
+% \begin{macrocode}
+\newcommand*\nia@afterendenv{}
+\def\nia@afterendenv#1\ignorespaces\fi{#1\ignorespaces\fi\nia@scan}
+% \end{macrocode}
+% \end{macro}^^A \nia@afterendenv
+%
+% \begin{macro}{\NoIndentAfterThis}
+% \begin{macro}{\NoIndentAfterCmd}
+% \begin{macro}{\NoIndentAfterEnv}
+% These are finally the user-level commands to activate the funtionality of
+% \pkg{noindetafter} for the given \marg{environment}/\marg{macro} as well as
+% immediate execution.
+% \begin{macrocode}
+\newrobustcmd*\NoIndentAfterThis{\nia@scan\par}
+\newcommand*\NoIndentAfterCmd[1]{%
+ \xapptocmd#1{\NoIndentAfterThis}{}{%
+ \PackageWarning{noindentafter}{%
+ Patching `\string#1' failed!\MessageBreak%
+ `\string\NoIndentAfterCmd{\string#1}' won't work%
+ }%
+ }%
+}
+\newcommand*\NoIndentAfterEnv[1]{\AfterEndEnvironment{#1}{\nia@afterendenv}}
+% \end{macrocode}
+% \end{macro}^^A \NoIndentAfterEnv
+% \end{macro}^^A \NoIndentAfterCmd
+% \end{macro}^^A \NoIndentAfterThis
+%
+% \iffalse
+%</package&body>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
index 2f09d1fbf8..d114f50eed 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
@@ -5,6 +5,24 @@ first release 0.95a, 2021-02-23 will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
this project uses date-based 'snapshot' version identifiers.
+## [2021-05-14
+### Fixed
+ - xcolor patch for [ps] type used in pstricks
+ - value of citecolor wasn't expanded (errored with tcolorbox)
+ - \url, \href, \hrefurl, \hrefrun and \hrefpdf leaves now vmode
+ - handling of pdfauthor, pdftitle and pdfsubject in hyperxmp patch
+
+### Changes
+ - the module for formfield and checkboxes has been in part rewritten to
+ better fit to the new module for textfield.
+ Keys and documentation has been extended.
+
+### Added
+ - generic command hooks have been added to \url, \href, \hrefurl,
+ \hrefrun and \hrefpdf. Their use require a latex 2021-06-01.
+ - dictionaries widget/AA, widget/AP, widget/MK and widget/BS in l3pdfannot.
+ - a module for textfields
+
## [2021-03-17]
### Fixed
diff --git a/macros/latex/contrib/pdfmanagement-testphase/README.md b/macros/latex/contrib/pdfmanagement-testphase/README.md
index 40ae909e00..49840245c6 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/README.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/README.md
@@ -1,6 +1,6 @@
# LaTeX PDF management testphase bundle
-Version: 0.95c, 2021-03-17
+Version: 0.95d, 2021-05-14
This package is used during a test phase to load the new PDF management code
of LaTeX.
diff --git a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
index 15754414a1..d8a6c9c408 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
@@ -22,7 +22,7 @@
%% This file has the LPPL maintenance status "maintained".
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{color-ltx}[2021-03-17 v0.95c
+\ProvidesPackage{color-ltx}[2021-05-14 v0.95d
Standard LaTeX Color (patched for l3color, part of pdfmanagement-testphase, original version 2021/03/07 v1.2e) (DPC)]
\edef\Gin@codes{%
\catcode`\noexpand\^^A\the\catcode`\^^A\relax
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
index 8c60439dd3..30266d866c 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
@@ -86,7 +86,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -325,7 +325,8 @@
% \subsection{Options}
% All \cs{href} commands and \cs{url} have an option argument for keyval syntax.
% It accepts the following keys. Not all keys make sense for all keys, but they don't
-% error, they are silently ignored.
+% error, they are silently ignored. The optional argument can currently not be used together
+% with the \cs{urldef} command.
%
% \begin{tabular}{llp{6cm}}
% key & applicable commands & note\\\hline
@@ -634,7 +635,7 @@
% The key is ignored with this driver. Instead the wanted standard should be declared
% in \cs{DeclareDocumentMetadata}:
% \begin{verbatim}
-% \DeclareDocumentMetadata{standard=A-2b}
+% \DeclareDocumentMetadata{pdfstandard=A-2b}
% \end{verbatim}
% Currently |A-1b|, |A-2b|, |A-3b| can be set.
% The support for various requirements is still incomplete, but the parts that
@@ -921,7 +922,7 @@
%<@@=hyp>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesFile{hgeneric-testphase.def}[2021-03-17 v0.95c %
+\ProvidesFile{hgeneric-testphase.def}[2021-05-14 v0.95d %
generic Hyperref driver for the LaTeX PDF management testphase bundle]
\RequirePackage{etoolbox} %why?
@@ -1241,10 +1242,12 @@
,href / format .code:n = { \cs_set_eq:NN \@@_href_url_format #1 }
}
-
+\hook_new_pair:nn{cmd/href/before}{cmd/href/after}
\DeclareRobustCommand*{\href}[1][]{%
- \begingroup
+ \mode_leave_vertical:
+ \hook_use:n{cmd/href/before}
+ \group_begin:
\keys_set:nn { hyp / href } {#1}
\let\protect\@unexpandable@protect
\bool_if:NTF \l_@@_href_url_encode_bool
@@ -1257,12 +1260,27 @@
\@ifnextchar\bgroup\Hy@href{\hyper@normalise\href@}%
}
+\begingroup
+ \catcode`\$=6 %
+ \catcode`\#=12 %
+ \gdef\href@$1{\expandafter\href@split$1##\\}%
+ \gdef\href@split$1#$2#$3\\$4{%
+ \hyper@@@@link{$1}{$2}{$4}%<---@@-docstrip doubling!
+ \endgroup
+ \hook_use:n{cmd/href/after}
+ }%
+\endgroup
-\DeclareRobustCommand*{\hrefurl}[1][]{
- \group_begin:
- \keys_set:nn { hyp / href } {#1}
- \let\protect\@unexpandable@protect
- \bool_if:NTF \l_@@_href_url_encode_bool
+\hook_new_pair:nn{cmd/hrefurl/before}{cmd/hrefurl/after}
+
+\DeclareRobustCommand*{\hrefurl}[1][]
+ {
+ \mode_leave_vertical:
+ \hook_use:n{cmd/href/before}
+ \group_begin:
+ \keys_set:nn { hyp / href } {#1}
+ \let\protect\@unexpandable@protect
+ \bool_if:NTF \l_@@_href_url_encode_bool
{
\tl_set:Nn \l__hyp_text_enc_uri_print_tl {utf8/URI}
}
@@ -1275,12 +1293,15 @@
{
\exp_args:Nno\hyper@linkurl{#2}{\l_@@_href_url_protocol_tl#1}
\group_end:
+ \hook_use:n{cmd/href/after}
}
-
+\hook_new_pair:nn{cmd/hrefpdf/before}{cmd/hrefpdf/after}
\DeclareRobustCommand*{\hrefpdf}[1][]
{
- \begingroup
+ \mode_leave_vertical:
+ \hook_use:n{cmd/hrefpdf/before}
+ \group_begin:
\keys_set:nn { hyp / href } {#1}
\let\protect\@unexpandable@protect
\hyper@normalise\@@_href_pdf_aux:nn
@@ -1288,11 +1309,16 @@
\cs_new_protected:Npn \@@_href_pdf_aux:nn #1 #2
{
- \exp_args:Nnno\hyper@linkfile{#2}{#1}{\l_@@_href_pdf_destination_tl}\endgroup
+ \exp_args:Nnno\hyper@linkfile{#2}{#1}{\l_@@_href_pdf_destination_tl}
+ \group_end:
+ \hook_use:n{cmd/hrefpdf/after}
}
+\hook_new_pair:nn{cmd/hrefrun/before}{cmd/hrefrun/after}
\DeclareRobustCommand*{\hrefrun}[1][]
{
+ \mode_leave_vertical:
+ \hook_use:n{cmd/hrefrun/before}
\group_begin:
\keys_set:nn { hyp / href } {#1}
\let\protect\@unexpandable@protect
@@ -1303,10 +1329,16 @@
{
\exp_args:Nnno\hyper@linklaunch{#2}{#1}{\l_@@_href_run_parameter_tl}
\group_end:
+ \hook_use:n{cmd/hrefrun/after}
}
+
+\hook_new_pair:nn{cmd/url/before}{cmd/url/after}
+
\DeclareRobustCommand*{\url}[1][]
{
+ \mode_leave_vertical:
+ \hook_use:n{cmd/url/before}
\group_begin:
\keys_set:nn {hyp / href } {#1}
\let\protect \@unexpandable@protect
@@ -1326,9 +1358,23 @@
\hyper@linkurl{\@@_href_url_format {#1}}
{\l_@@_href_url_protocol_tl#1}
\group_end:
+ \hook_use:n{cmd/url/after}
}
+% \end{macrocode}
+% the \cs{urldef} command doesn't like the optional argument, so we overwrite
+% locally the \cs{url} command here:
+% \begin{macrocode}
+
+\def\urldef#1#2{\begingroup\def\url{\hyper@normalise\url@}\setbox\z@\hbox\bgroup
+ \def\Url@HyperHook##1\endgroup{\Url@def{#1}{#2}}%
+ % Because hyperref breaks \urldef and does not define its own (Grrrr!)...
+ \def\url@##1{\egroup\endgroup\DeclareRobustCommand#1{#2{##1}}}%
+ #2}
+% \end{macrocode}
+% make the new commands compatible with \cs{pdfstringdef}:
+% \begin{macrocode}
\NewExpandableDocumentCommand\@@_secondoftwowithopt:wnn {omm}{#3}
\pdfstringdefDisableCommands{\let\hrefurl\@@_secondoftwowithopt:wnn}
\pdfstringdefDisableCommands{\let\hrefpdf\@@_secondoftwowithopt:wnn}
@@ -1356,9 +1402,9 @@
\color_set:nn {hyp/color/citeborder}{hyp/color/cite!60!white}
\keys_define:nn { hyp / setup }
{
- ,citecolor .code:n = {\@@_color_set:nn {hyp/color/cite}{#1}}
+ ,citecolor .code:n = {\@@_color_set:ne {hyp/color/cite}{#1}}
,citebordercolor
- .code:n = {\@@_color_set:nn {hyp/color/citeborder}{#1}}
+ .code:n = {\@@_color_set:ne {hyp/color/citeborder}{#1}}
}
\hook_gput_code:nnn { hyp/link/cite }{hyp/cite}
{
@@ -2277,17 +2323,16 @@
% \section{Link decorations}
% \subsection{Functions to export and select colors}
% We support two input syntax: color expressions and model with values.
-% \begin{function}{\@@_color_export:nnN,\@@_colormodel_export:nnnN}
+% \begin{function}{\@@_color_export:nnN}
% \begin{syntax}
-% \cs{@@_color_export:nnN} \Arg{color} \Arg{export format} \meta{tlvar}\\
-% \cs{@@_colormodel_export:nnnN} \Arg{color model}\Arg{value} \Arg{export format} \meta{tlvar}
+% \cs{@@_color_export:nnN} \Arg{color} \Arg{export format} \meta{tlvar}
% \end{syntax}
% This exports a color as space separated numbers as needed in in |/C|.
% \Arg{color} should have either the format |[model]{value}| or be a color expression.
% For examples: |[rgb]{1,0,.5}| or |red!50!blue|. The export format is either
% |space-sep-cmyk| or |space-sep-rgb|.
% \end{function}
-% \begin{macro}{\@@_color_export:nnN,\@@_colormodel_export:nnnN}
+% \begin{macro}{\@@_color_export:nnN,\@@_color_export_aux:wnnN}
% Color keys need to parse color expressions. Two input types are supported:
% |color=[rgb]{1,0,.5}| and |color=red!50!blue|. The colors are exported
% to PDF syntax (space separated numbers).
@@ -2296,14 +2341,14 @@
{
\tl_if_head_eq_charcode:nNTF {#1}[ %]
{
- \@@_colormodel_export:wnnN #1 {#2} #3
+ \@@_color_export_aux:wnnN #1 {#2} #3
}
{
\color_export:nnN {#1} {#2} #3
}
}
-\cs_new_protected:Npn \@@_colormodel_export:wnnN [#1] #2 #3 #4
+\cs_new_protected:Npn \@@_color_export_aux:wnnN [#1] #2 #3 #4
{
\color_export:nnnN {#1}{#2}{#3}#4
}
@@ -2320,7 +2365,7 @@
% \Arg{color} should have either the format |[model]{value}| or be a color expression.
% For examples: |[rgb]{1,0,.5}| or |red!50!blue|
% \end{function}
-% \begin{macro}{\@@_color_select:n,\@@_colormodel_select_aux:wn}
+% \begin{macro}{\@@_color_select:n,\@@_color_select_aux:wn}
% Color keys need to parse color expressions. Two input types are supported:
% |color=[rgb]{1,0,.5}| and |color=red!50!blue|.
% \begin{macrocode}
@@ -2328,14 +2373,14 @@
{
\tl_if_head_eq_charcode:nNTF {#1}[ %]
{
- \@@_colormodel_select_aux:wn #1
+ \@@_color_select_aux:wn #1
}
{
\color_select:n {#1}
}
}
-\cs_new_protected:Npn \@@_colormodel_select_aux:wn [#1] #2
+\cs_new_protected:Npn \@@_color_select_aux:wn [#1] #2
{
\color_select:nn {#1}{#2}
}
@@ -2352,7 +2397,7 @@
% \Arg{color} should have either the format |[model]{value}| or be a color expression.
% For examples: |[rgb]{1,0,.5}| or |red!50!blue|
% \end{function}
-% \begin{macro}{\@@_color_set:nn,\@@_colormodel_set_aux:nwn}
+% \begin{macro}{\@@_color_set:nn,\@@_color_set_aux:nwn}
% Color keys need to parse color expressions. Two input types are supported:
% |color=[rgb]{1,0,.5}| and |color=red!50!blue|.
% \begin{macrocode}
@@ -2360,14 +2405,14 @@
{
\tl_if_head_eq_charcode:nNTF {#2}[ %]
{
- \@@_colormodel_set_aux:nwn { #1 } #2
+ \@@_color_set_aux:nwn { #1 } #2
}
{
\color_set:nn {#1} {#2}
}
}
-\cs_new_protected:Npn \@@_colormodel_set_aux:nwn #1 [#2] #3
+\cs_new_protected:Npn \@@_color_set_aux:nwn #1 [#2] #3
{
\color_set:nnn {#1}{#2}{#3}
}
@@ -2621,17 +2666,17 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_ocg_init:
{
- \pdf_object_new:nn { l_@@_ocg_view_dict_obj } { dict }
- \pdf_object_new:nn { l_@@_ocg_print_dict_obj } { dict }
- \pdf_object_new:nn { l_@@_ocg_config_dict_obj } { dict }
- \pdf_object_new:nn { l_@@_ocg_ref_array_obj } { array }
- \pdf_object_write:nx { l_@@_ocg_ref_array_obj }
+ \pdf_object_new:nn { @@/OCG/View } { dict }
+ \pdf_object_new:nn { @@/OCG/Print } { dict }
+ \pdf_object_new:nn { @@/OCG/config } { dict }
+ \pdf_object_new:nn { @@/OCG/refarray } { array }
+ \pdf_object_write:nx { @@/OCG/refarray }
{
- \pdf_object_ref:n { l_@@_ocg_view_dict_obj }
+ \pdf_object_ref:n { @@/OCG/View }
\c_space_tl
- \pdf_object_ref:n { l_@@_ocg_print_dict_obj }
+ \pdf_object_ref:n { @@/OCG/Print }
}
- \pdf_object_write:nn { l_@@_ocg_view_dict_obj }
+ \pdf_object_write:nn { @@/OCG/View }
{
/Type/OCG
/Name(View)
@@ -2641,7 +2686,7 @@
/View <</ViewState/ON >>~
>>
}
- \pdf_object_write:nn { l_@@_ocg_print_dict_obj }
+ \pdf_object_write:nn { @@/OCG/Print }
{
/Type/OCG
/Name(Print)
@@ -2651,30 +2696,30 @@
/View <</ViewState/OFF>>~
>>
}
- \pdfmanagement_add:nnx { Catalog / OCProperties }{OCGs }{ \pdf_object_ref:n {l_@@_ocg_view_dict_obj} }
- \pdfmanagement_add:nnx { Catalog / OCProperties }{OCGs }{ \pdf_object_ref:n {l_@@_ocg_print_dict_obj} }
- \pdf_object_write:nx { l_@@_ocg_config_dict_obj }
+ \pdfmanagement_add:nnx { Catalog / OCProperties }{OCGs }{ \pdf_object_ref:n {@@/OCG/View} }
+ \pdfmanagement_add:nnx { Catalog / OCProperties }{OCGs }{ \pdf_object_ref:n {@@/OCG/Print} }
+ \pdf_object_write:nx { @@/OCG/config }
{
- /OFF[\pdf_object_ref:n { l_@@_ocg_print_dict_obj }]
+ /OFF[\pdf_object_ref:n { @@/OCG/Print }]
/AS[
<<
/Event/View
- /OCGs\c_space_tl \pdf_object_ref:n { l_@@_ocg_ref_array_obj }
+ /OCGs\c_space_tl \pdf_object_ref:n { @@/OCG/refarray }
/Category[/View]
>>
<<
/Event/Print
- /OCGs\c_space_tl \pdf_object_ref:n { l_@@_ocg_ref_array_obj }
+ /OCGs\c_space_tl \pdf_object_ref:n { @@/OCG/refarray }
/Category[/Print]
>>
<<
/Event/Export
- /OCGs\c_space_tl \pdf_object_ref:n { l_@@_ocg_ref_array_obj }
+ /OCGs\c_space_tl \pdf_object_ref:n { @@/OCG/refarray }
/Category[/Print]
>>
]
}
- \pdfmanagement_add:nnx { Catalog / OCProperties }{ D }{ \pdf_object_ref:n { l_@@_ocg_config_dict_obj} }
+ \pdfmanagement_add:nnx { Catalog / OCProperties }{ D }{ \pdf_object_ref:n { @@/OCG/config} }
\cs_gset:Npn \@@_ocg_init: {}
}
% \end{macrocode}
@@ -2704,10 +2749,10 @@
\hbox_set_end:
\mbox
{
- \pdf_bdcobject:nn {OC}{l_@@_ocg_print_dict_obj}
+ \pdf_bdcobject:nn {OC}{@@/OCG/Print}
\hbox_overlap_right:n { \box_use:N \l_@@_tmpa_box }
\pdf_emc:
- \pdf_bdcobject:nn {OC}{l_@@_ocg_view_dict_obj}
+ \pdf_bdcobject:nn {OC}{@@/OCG/View}
\group_begin:
\color_select:n { hyp/color/#1 }
\box_use_drop:N \l_@@_tmpa_box
@@ -4187,9 +4232,9 @@
}
}
\pdfmanagement_add:nnx {Catalog / AcroForm/DR/Font }
- {ZaDb} {\pdf_object_ref:n {l_@@_font_zapfdingbats_obj} }
+ {ZaDb} {\pdf_object_ref:n {@@/Font/ZaDb} }
\pdfmanagement_add:nnx {Catalog / AcroForm/DR/Font }
- {Helv} {\pdf_object_ref:n {l_@@_font_helvetica_obj} }
+ {Helv} {\pdf_object_ref:n {@@/Font/Helv} }
\pdfmanagement_add:nnx {Catalog /AcroForm}
{DA}{(/Helv~10~Tf~0~g)}
\pdfmeta_standard_verify:nTF {form_no_NeedAppearance}
@@ -4601,10 +4646,10 @@
\ExplSyntaxOn
\def\Hy@FormObjects
{
- \pdf_object_new:nn {l_@@_encoding_pdfdoc_obj } { dict }
- \pdf_object_new:nn {l_@@_font_zapfdingbats_obj } { dict }
- \pdf_object_new:nn {l_@@_font_helvetica_obj } { dict }
- \pdf_object_write:nx {l_@@_encoding_pdfdoc_obj }
+ \pdf_object_new:nn {@@/Encoding/pdfdoc } { dict }
+ \pdf_object_new:nn {@@/Font/ZaDb } { dict }
+ \pdf_object_new:nn {@@/Font/Helv } { dict }
+ \pdf_object_write:nx {@@/Encoding/pdfdoc }
{
/Type/Encoding
/Differences[
@@ -4646,20 +4691,20 @@
/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis
]
}
- \pdf_object_write:nn {l_@@_font_zapfdingbats_obj }
+ \pdf_object_write:nn {@@/Font/ZaDb }
{
/Type/Font
/Subtype/Type1
/Name/ZaDb
/BaseFont/ZapfDingbats
}
- \pdf_object_write:nx {l_@@_font_helvetica_obj }
+ \pdf_object_write:nx {@@/Font/Helv }
{
/Type/Font
/Subtype/Type1
/Name/Helv
/BaseFont/Helvetica
- /Encoding~\pdf_object_ref:n { l_@@_encoding_pdfdoc_obj }
+ /Encoding~\pdf_object_ref:n { @@/Encoding/pdfdoc }
}
\global\let\Hy@FormObjects\relax
}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
index ddb0c9b2b9..fb13e4b8e6 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
index b38a47f09c..ab8723947e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
@@ -19,7 +19,7 @@
%
% for those people who are interested.
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesExplPackage{hyperxmp-patches-tmp-ltx}{2021-03-17}{0.95c}
+\ProvidesExplPackage{hyperxmp-patches-tmp-ltx}{2021-05-14}{0.95d}
{Store hyperref metadata in XMP format / temporay patches to test pdfresource management ... UF}
\cs_if_exist:NT \pdfmanagement_add:nnn
@@ -103,8 +103,8 @@
,pdfcontacturl
,pdfdate
%hyperref, needs probably special handling
- ,pdftitle
- ,pdfsubject
+ % ,pdftitle %see below
+ % ,pdfsubject %see below
,pdfkeywords
,pdfproducer
}
@@ -115,9 +115,15 @@
% pdfauthor, this is only a work around for simple author
% TODO needs improvement
+ \exp_args:NNe
\pdfstringdef\@pdfauthor{\GetDocumentProperties{hyperref/pdfauthor}}
\cs_set_eq:NN\hyxmp@pdfauthor\@pdfauthor
-
+ \exp_args:NNe
+ \pdfstringdef\@pdfsubject{\GetDocumentProperties{hyperref/pdfsubject}}
+ \cs_set_eq:NN\hyxmp@pdfsubject\@pdfsubject
+ \exp_args:NNe
+ \pdfstringdef\@pdftitle{\GetDocumentProperties{hyperref/pdftitle}}
+ \cs_set_eq:NN\hyxmp@pdftitle\@pdftitle
% pdflang,
\tl_if_exist:cF{@pdflang}{\tl_new:c{@pdflang}}
\tl_set:cx {@pdflang}{\GetDocumentProperties{document/lang}}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
index 1b1e1b1b91..497491f3b7 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
@@ -45,7 +45,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
%
@@ -56,27 +56,27 @@
% \begin{macrocode}
%<drivers>\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-testphase-dvipdfmx.def}{2021-03-17}{}
+ {l3backend-testphase-dvipdfmx.def}{2021-05-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-testphase-dvips.def}{2021-03-17}{}
+ {l3backend-testphase-dvips.def}{2021-05-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-testphase-dvisvgm.def}{2021-03-17}{}
+ {l3backend-testphase-dvisvgm.def}{2021-05-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-testphase-luatex.def}{2021-03-17}{}
+ {l3backend-testphase-luatex.def}{2021-05-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-testphase-pdftex.def}{2021-03-17}{}
+ {l3backend-testphase-pdftex.def}{2021-05-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)}
%</pdftex>
%<*xdvipdfmx>
- {l3backend-testphase-xetex.def}{2021-03-17}{}
+ {l3backend-testphase-xetex.def}{2021-05-14}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX}
%</xdvipdfmx>
% \end{macrocode}
@@ -590,14 +590,14 @@
%create the backend objects:
\clist_map_inline:Nn \c_@@_backend_PageResources_clist
{
- \@@_backend_object_new:nn {Page/Resources/#1} {dict}
+ \@@_backend_object_new:nn {@@/Page/Resources/#1} {dict}
\cs_if_exist:NT \tex_directlua:D
{
\tex_directlua:D
{
- ltx.@@.object["Page/Resources/#1"]
+ ltx.@@.object["@@/Page/Resources/#1"]
=
- "\@@_backend_object_ref:n{Page/Resources/#1}"
+ "\@@_backend_object_ref:n{@@/Page/Resources/#1}"
}
}
}
@@ -631,7 +631,7 @@
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/##1} }
{
\@@_backend_object_write:nx
- { Page/Resources/##1 }
+ { @@/Page/Resources/##1 }
{ \pdfdict_use:n { g_@@_Core/Page/Resources/##1} }
}
}
@@ -651,8 +651,8 @@
%
\clist_map_inline:Nn \c_@@_backend_PageResources_clist
{
- \@@_backend_object_new:nn { Page/Resources/#1 } { dict }
- \hook_gput_code:nnn{shipout/firstpage}{pdf}{\@@_backend_object_write:nn { Page/Resources/#1 } {}}
+ \@@_backend_object_new:nn { @@/Page/Resources/#1 } { dict }
+ \hook_gput_code:nnn{shipout/firstpage}{pdf}{\@@_backend_object_write:nn { @@/Page/Resources/#1 } {}}
}
\cs_new_protected:Npn \@@_backend_PageResources:n #1
{
@@ -667,7 +667,7 @@
%objects are not filled with \pdf_object_write as this is not additive!
\@@_backend:x
{
- put~\@@_backend_object_ref:n {Page/Resources/#1}<</#2~#3>>
+ put~\@@_backend_object_ref:n {@@/Page/Resources/#1}<</#2~#3>>
}
}
@@ -847,7 +847,7 @@
\__kernel_backend_literal:x
{
pdf:put~@resources~
- <</##1~\@@_backend_object_ref:n {Page/Resources/##1}>>
+ <</##1~\@@_backend_object_ref:n {@@/Page/Resources/##1}>>
}
}
}
@@ -1042,7 +1042,7 @@
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/#1} }
{
- \pdfdict_item:ne { #1 }{ \pdf_object_ref:n {Page/Resources/#1}}
+ \pdfdict_item:ne { #1 }{ \pdf_object_ref:n {@@/Page/Resources/#1}}
}
}
@@ -1243,22 +1243,22 @@
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/ExtGState } }
{
- /ExtGState~ \pdf_object_ref:n { Page/Resources/ExtGState }
+ /ExtGState~ \pdf_object_ref:n { @@/Page/Resources/ExtGState }
}
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/Pattern } }
{
- /Pattern~ \pdf_object_ref:n { Page/Resources/Pattern }
+ /Pattern~ \pdf_object_ref:n { @@/Page/Resources/Pattern }
}
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/Shading } }
{
- /Shading~ \pdf_object_ref:n { Page/Resources/Shading }
+ /Shading~ \pdf_object_ref:n { @@/Page/Resources/Shading }
}
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/ColorSpace } }
{
- /ColorSpace~ \pdf_object_ref:n { Page/Resources/ColorSpace }
+ /ColorSpace~ \pdf_object_ref:n { @@/Page/Resources/ColorSpace }
}
}
\l_@@_backend_tmpa_box
@@ -1323,22 +1323,22 @@
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/ExtGState } }
{
- /ExtGState~ \pdf_object_ref:n { Page/Resources/ExtGState }
+ /ExtGState~ \pdf_object_ref:n { @@/Page/Resources/ExtGState }
}
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/Pattern } }
{
- /Pattern~ \pdf_object_ref:n { Page/Resources/Pattern }
+ /Pattern~ \pdf_object_ref:n { @@/Page/Resources/Pattern }
}
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/Shading } }
{
- /Shading~ \pdf_object_ref:n { Page/Resources/Shading }
+ /Shading~ \pdf_object_ref:n { @@/Page/Resources/Shading }
}
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/ColorSpace } }
{
- /ColorSpace~ \pdf_object_ref:n { Page/Resources/ColorSpace }
+ /ColorSpace~ \pdf_object_ref:n { @@/Page/Resources/ColorSpace }
}
}
\l_@@_backend_tmpa_box
@@ -1414,21 +1414,21 @@
{
put~ @resources ~
<<
- /ExtGState~ \pdf_object_ref:n { Page/Resources/ExtGState }
+ /ExtGState~ \pdf_object_ref:n { @@/Page/Resources/ExtGState }
>>
}
\@@_backend:x
{
put~ @resources ~
<<
- /Pattern~ \pdf_object_ref:n { Page/Resources/Pattern }
+ /Pattern~ \pdf_object_ref:n { @@/Page/Resources/Pattern }
>>
}
\@@_backend:x
{
put~ @resources ~
<<
- /Shading~ \pdf_object_ref:n { Page/Resources/Shading }
+ /Shading~ \pdf_object_ref:n { @@/Page/Resources/Shading }
>>
}
\@@_backend:x
@@ -1436,7 +1436,7 @@
put~ @resources ~
<<
/ColorSpace~
- \pdf_object_ref:n { Page/Resources/ColorSpace }
+ \pdf_object_ref:n { @@/Page/Resources/ColorSpace }
>>
}
\exp_args:Nx
@@ -1582,7 +1582,7 @@ local function @@_backend_PageResources_gpush (page)
end
for i,name in ipairs(ResourceList) do
if ltx.@@.Page.Resources[name] then
- token = token .. "/"..name.." "..ltx.pdf.object_ref("Page/Resources/"..name)
+ token = token .. "/"..name.." "..ltx.pdf.object_ref("@@/Page/Resources/"..name)
end
end
return token
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
index 6e5e8afd77..6e8a0d0155 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
index 256e3e6dc9..c8eddc0806 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
@@ -52,7 +52,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -354,9 +354,9 @@
% /F flag in an annotation.
% It can be used for example like this:
% \begin{verbatim}
-% \pdfannot_dict_put:nnn {link/URI} {F}
-% { \bitset_to_arabic:N \l_pdfannot_F_bitset }
% \bitset_set_true:Nn \l_pdfannot_F_bitset {Print}
+% \pdfannot_dict_put:nnx {link/URI} {F}
+% { \bitset_to_arabic:N \l_pdfannot_F_bitset }
% \end{verbatim}
% The known keys for the bitset are |Invisible|, |Hidden|,
% |Print|, |NoZoom|, |NoRotate|, |NoView|, |ReadOnly|, |Locked|, |ToggleNoView|,
@@ -382,6 +382,11 @@
% is prefilled with \texttt{/Subtype/Widget}).
% The hooks \texttt{pdfannot/widget/before} and \texttt{pdfannot/widget/after}
% are executed before and after the widget.
+% The widget has four subdirectories, |widget/AA|, |widget/AP|, |widget/MK| and
+% |widget/BS|
+% which can be filled with \cs{pdfannot_dict_put:nnn} and will be used if not
+% empty.
+%
% \end{function}
% \end{documentation}
%
@@ -392,7 +397,7 @@
% \begin{macrocode}
%<@@=pdfannot>
%<*header>
-\ProvidesExplPackage{l3pdfannot}{2021-03-17}{0.95c}
+\ProvidesExplPackage{l3pdfannot}{2021-05-14}{0.95d}
{PDF-annotations}
\RequirePackage{l3pdfdict}
%</header>
@@ -463,21 +468,56 @@
% the subtype setting (the /Type is added by the backend).
% \begin{macrocode}
\pdfdict_new:n { l_@@/widget }
+ \pdfdict_new:n { l_@@/widget/AA }
+ \pdfdict_new:n { l_@@/widget/AP }
+ \pdfdict_new:n { l_@@/widget/MK }
+ \pdfdict_new:n { l_@@/widget/BS }
\pdfdict_put:nnn { l_@@/widget }{ Subtype }{ /Widget }
\hook_new_pair:nn
{pdfannot/widget/before}
{pdfannot/widget/after}
- \hook_new_pair:nn
- {pdfannot/widget/begin}
- {pdfannot/widget/end}
\cs_new_protected:Npn \pdfannot_widget_box:nnn #1 #2 #3
{
\hook_use:n { pdfannot/widget/before }
+ \group_begin:
+ \pdfmeta_standard_verify:nT
+ {annot_widget_no_AA}
+ {
+ \pdfdict_if_empty:nF { l_@@/widget/AA }
+ {
+ \pdf_object_unnamed_write:nx {dict}{\pdfdict_use:n{l_@@/widget/AA}}
+ \pdfdict_put:nnx { l_@@/widget }
+ {AA}
+ {\pdf_object_ref_last:}
+ }
+ }
+ \pdfdict_if_empty:nF { l_@@/widget/AP }
+ {
+ \pdf_object_unnamed_write:nx {dict}{\pdfdict_use:n{l_@@/widget/AP}}
+ \pdfdict_put:nnx { l_@@/widget }
+ {AP}
+ {\pdf_object_ref_last:}
+ }
+ \pdfdict_if_empty:nF { l_@@/widget/MK }
+ {
+ \pdf_object_unnamed_write:nx {dict}{\pdfdict_use:n{l_@@/widget/MK}}
+ \pdfdict_put:nnx { l_@@/widget }
+ {MK}
+ {\pdf_object_ref_last:}
+ }
+ \pdfdict_if_empty:nF { l_@@/widget/BS }
+ {
+ \pdf_object_unnamed_write:nx {dict}{\pdfdict_use:n{l_@@/widget/BS}}
+ \pdfdict_put:nnx { l_@@/widget }
+ {BS}
+ {\pdf_object_ref_last:}
+ }
\pdfannot_box:nnnx {#1}{#2}{#3}
{
\pdfdict_use:n { l_@@/widget}
}
- \hook_use:n { pdfannot/widget/after }
+ \hook_use:n { pdfannot/widget/end }
+ \group_end:
\bool_gset_false:N\g_@@_use_lastlink_bool
}
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
index 3e647106b5..8025552014 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
index 25a3599445..b23ff4508f 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
@@ -53,7 +53,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -212,7 +212,7 @@
% \begin{macrocode}
%<@@=pdfdict>
%<*header>
-\ProvidesExplPackage{l3pdfdict}{2021-03-17}{0.95c}
+\ProvidesExplPackage{l3pdfdict}{2021-05-14}{0.95d}
{Tools for PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
index 970086e088..bb3eb95d68 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
new file mode 100644
index 0000000000..681a8d7059
--- /dev/null
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
@@ -0,0 +1,433 @@
+% \iffalse meta-comment
+%
+%% File: l3pdfpdffield-checkbox.dtx
+%
+% Copyright (C) 2021 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "LaTeX PDF management testphase bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+% https://github.com/latex3/pdfresources
+%
+% for those people who are interested.
+%
+%<*driver>
+\RequirePackage{pdfmanagement-testphase}
+\DeclareDocumentMetadata{}
+\makeatletter
+\declare@file@substitution{doc.sty}{doc-v3beta.sty}
+\makeatother
+\documentclass[full]{l3doc}
+\usepackage{array,booktabs}
+\usepackage{l3pdffield-testphase,bearwear}
+\hypersetup{pdfauthor=The LaTeX Project,
+ pdftitle=l3pdffield (LaTeX PDF management testphase bundle)}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+% \NewDocElement[
+% idxgroup=checkbox keys,
+% idxtype = {checkbox key},
+% printtype= \textit{checkbox key}
+% ]{Checkboxkey}{checkboxkey}
+% \providecommand\hook[1]{\texttt{#1}}
+% \ExplSyntaxOn
+% \pdffield_appearance:nn {pdffield/bear/Yes}
+% {
+% \tikz\bear\bearwear[shirt=red,body~deco={\node[font=\tiny\bfseries,white]~at~(beartummy){Yes};}];
+% }
+% \pdffield_appearance:nn {pdffield/bear/Off}
+% {
+% \tikz\bear\bearwear[body~deco={\node[font=\tiny\bfseries,white]~at~(beartummy){Off};}];
+% }
+% \ExplSyntaxOff
+% \title{^^A
+% The \pkg{l3pdffield-checkbox} module\\ Commands to create checkbox form fields ^^A
+% \\ \LaTeX{} PDF management testphase bundle
+% }
+%
+% \author{^^A
+% The \LaTeX{} Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+% \date{Version 0.95d, released 2021-05-14}
+%
+% \maketitle
+% \begin{documentation}
+% \section{\pkg{l3pdffield-checkbox} Introduction}
+% This is the documentation for checkbox fields, for general information about form fields
+% check the documentation l3pdffield.
+%
+%
+%
+% Please keep in mind
+% \begin{itemize}
+% \item Not every PDF viewer supports checkboxes.
+% \item The handling can depend on settings in the PDF viewer. In adobe reader for
+% example I had to disable an option to avoid that it tries to create an appearance
+% itself
+% \item Standards like pdf/A disable features of form fields too
+% (as you typically can't change the PDF).
+% \end{itemize}
+% \section{Checkboxes}
+% Click me:
+% \ExplSyntaxOn
+% \pdffield_checkbox:n{name=bear,appearance=pdffield/bear,width=23pt,height=30pt,depth=10pt}
+% \ExplSyntaxOff
+%
+% \bigskip
+% \subsection{Commands}
+% \begin{function}{\pdffield_checkbox:n}
+% \begin{syntax}
+% \cs{pdffield_checkbox:n}\Arg{key val list}
+% \end{syntax}
+% This creates a checkbox to check and uncheck. The list of allowed keys is described below.
+% The \meta{key val list} should at least set the name, without it the default name
+% |checkbox| is used. Checkboxes with the same
+% name belong to the same field and are checked and unchecked together. The default appearance
+% is a quadratic frame with a \cs{texttimes} in it for the checked case.
+% The default appearance is setup at the first use and will use the font family
+% active at that time.
+% \end{function}
+%
+%
+% \subsection{Keys}
+%
+% The new checkbox command accept all field and annot keys from l3pdffield.
+% A few keys are disabled or are forced to specific values.
+% The |appearance| keys have a more checkbox specific
+% behaviour, other keys have other defaults than with the basic commands.
+% Additionally there
+% are a small number of keys specific to a checkbox.
+%
+%
+% Disabled keys are
+% \begin{itemize}
+% \item |V|, |DV|, |AS|: use |checked| instead.
+% \item |FT| is overwritten.
+% \item For checkboxes only the field flags |ReadOnly|, |Required| and |NoExport| make sense.
+% |Radio|, |Pushbotton| are set automatically automatically by the code
+% as this is required for a checkbox.
+% \end{itemize}
+%
+% \begin{function}{preset-checkbox}
+% \begin{syntax}
+% |preset-checkbox| = \Arg{key-val-list}
+% \end{syntax}
+% This allows to set default keys for a checkbox.
+% \end{function}
+%
+% \begin{function}{name,T}
+% \begin{syntax}
+% |name| = \meta{partial name}\\
+% |T| = \meta{partial name}
+% \end{syntax}
+% This sets like the |T| key for fields the partial name of the field. The value
+% shouldn't contain a period, be not empty and sensibly consist of simple chars.
+% Additionally the value is used to create the field ID.
+% This means that checkboxes with the same partial name are annotations
+% with the same field as parent and are checked and unchecked together---this
+% what is typically expected.
+% The field ID is then internal and can not be used to
+% attach another annotation.
+% For explicit control of the field ID use the |fieldID| key.
+% \end{function}
+%
+% \begin{function}{fieldID}
+% \begin{syntax}
+% |fieldID| = \meta{field ID}\\
+% \end{syntax}
+% \emph{For experts only!}
+% This allows to give the checkbox field a specific ID. This is only useful
+% in the context of a larger fieldset or if you want to attach another annotation
+% to the field with \cs{pdffield_annot:n}. If used wrongly you can
+% easily create invalid fieldset. It allows you to create to fields with the
+% same partial name, but if you want to see both
+% you need to ensure that their full names are
+% different---for example by adding some parent fields.
+% \end{function}
+%
+% \begin{function}{parent}
+% \begin{syntax}
+% |parent| = \meta{field ID}\\
+% \end{syntax}
+% This is only needed if the field should be part
+% of a larger fieldset. The value should be a field ID of a field created previously
+% with \cs{pdffield_field:nn}.
+% \end{function}
+%
+% \begin{function}{altname,TU}
+% \begin{syntax}
+% |altname| = \meta{string}\\
+% |TU| = \meta{string}\\
+% \end{syntax}
+% This is sets an alternative name for user interaction.
+% This name can only be set at the first checkbox instance, when the field is initialized.
+% \end{function}
+%
+% \begin{function}{mappingname,TM}
+% \begin{syntax}
+% |mappingname| = \meta{string}\\
+% |TM| = \meta{string}\\
+% \end{syntax}
+% This is sets an alternative name for export.
+% This name can only be set at the first checkbox instance, when the field is initialized.
+% \end{function}
+%
+% \begin{function}{width,height,depth}
+% \begin{syntax}
+% |width| = \meta{dim expression}\\
+% |height| = \meta{dim expression}\\
+% |depth| = \meta{dim expression}
+% \end{syntax}
+% These keys allow to set the dimensions of checkbox instance.
+% The value should be a dimension expression. By default
+% |width| and |height| use \cs{normalbaselineskip}, the |depth| is zero.
+% \end{function}
+%
+% \begin{function}{AP/N,appearance,AP/R,rollover-appearance,AP/D,down-appearance}
+% \begin{syntax}
+% |AP/N| = \meta{partial appearance name}\\
+% |appearance| = \meta{partial appearance name}\\
+% |AP/R| = \meta{partial appearance name}\\
+% |rollover-appearance| = \meta{partial appearance name}\\
+% |AP/D| = \meta{partial appearance name}\\
+% |down-appearance| = \meta{partial appearance name}
+% \end{syntax}
+% This keys sets the normal appearance, the rollover appearance (when the
+% mouse hovers over the checkbox) and the down appearance (when the
+% mouse clicks). They take as value a
+% \meta{partial appearance name} and expects that \emph{two} form Xobjects
+% \meta{partial appearance name}|/Yes| and \meta{partial appearance name}|/Off|
+% has been created. The initial value is |pdffield/checkbox/default|
+% for the normal appearance and shows a \cs{texttimes}.
+% The other appearance are not set by default.
+% \end{function}
+% \begin{function}{checked}
+% \begin{syntax}
+% |checked| = |true|\verb"|"|false|
+% \end{syntax}
+% This is a boolean key which allows to set if the
+% checkbox should be initially checked or not. It sets the |/V| and |/DV| key of the field
+% and the |/AS| key of the annotation instance. It is possible to use different
+% values for different instances, if one wants to confuse the user.
+% \end{function}
+%
+%
+% \subsection{Using with hyperref}
+% The \cs{CheckBox} command from hyperref also prints a label, something that the
+% command here doesn't do. A redefinition like the following should allow \cs{CheckBox}
+% to use the commands of this module. Be aware that the behaviour will not be identical!
+% Not every setting and key from \pkg{hyperref} has been copied.
+%
+% \begin{verbatim}
+% \ExplSyntaxOn\makeatletter
+% \def\@CheckBox[#1]#2{\LayoutCheckField{#2}{\pdffield_checkbox:n {name=#2,#1}}}
+% \ExplSyntaxOff\makeatother
+% \end{verbatim}
+%
+% \subsection{Some background}
+% For some general background about fieldsets, fields and field annotations, please
+% check \pkg{l3pdffield}. Here are only some remarks about the special case of
+% checkboxes.
+%
+% A checkbox consist of a field along with one or more field annotations.
+% The annotations can appear on more than one page or locations and if one instance
+% is checked all other instances follows and are checked too.
+%
+% A checkbox has two different looks: checked and unchecked. The hyperref
+% implementation uses symbolic names for the two states and adds some
+% values with the /MK key and lets the PDF viewer
+% create a look from them. But this doesn't work reliably and is one of the reasons
+% why a reimplementation is needed. Also newer PDF versions
+% deprecate the /NeedAppearances setting and require that such a look,
+% an \enquote{appearance}, is given as form XObjects.
+% So the code forces the use of two appearances.
+%
+% \end{documentation}
+%
+% \begin{implementation}
+% \section{\pkg{l3pdffield-checkbox} Implementation}
+% \begin{macrocode}
+%<*package>
+%<@@=pdffield>
+% \end{macrocode}
+% \subsection{Variables}
+% \begin{macrocode}
+% \end{macrocode}
+% \subsection{Messages}
+% \begin{macrocode}
+% \end{macrocode}
+% \subsection{Appearances}
+% The default appearances are a cross (\cs{texttimes}),
+% Every appearance should have two versions and follow the naming
+% module/\meta{name}/Yes and module/\meta{name}/Off.
+% \begin{macro}{@@/checkbox/default_appearances:}
+% This defines the standard appearance. It is setup at the first
+% use of a checkbox, and will adapt to the font family in use then.
+% \begin{macrocode}
+\cs_new_protected:cn {@@/checkbox/default_appearances:}
+ {
+ \pdffield_appearance:nn {pdffield/checkbox/default/Yes}
+ {
+ \normalsize
+ \fboxsep 0pt
+ \framebox
+ [ \dim_eval:n { \box_ht:N\strutbox+\box_dp:N\strutbox } ]
+ { \texttimes \strut }
+ }
+ \pdffield_appearance:nn {pdffield/checkbox/default/Off}
+ {
+ \normalsize
+ \fboxsep 0pt
+ \framebox
+ [ \dim_eval:n { \box_ht:N\strutbox+\box_dp:N\strutbox } ]
+ { \phantom{\texttimes} \strut }
+ }
+ \cs_gset_eq:cN {@@/checkbox/default_appearances:} \prg_do_nothing:
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%\subsection{Creating the field}
+% A field should be created if the name doesn't exist
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_checkbox_field:n #1 %name
+ {
+ \pdf_object_if_exist:nF {@@/field/@@/checkbox/#1}
+ {
+ \@@_field:n { @@/checkbox/#1 }
+ }
+ \keys_set:nn {pdffield}{parent=@@/checkbox/#1}
+ }
+\cs_generate_variant:Nn \@@_checkbox_field:n {V}
+% \end{macrocode}
+% \subsection{Assembling the checkbox}
+
+% \begin{macro}{\@@_checkbox:n}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_checkbox:n #1
+ {
+ \group_begin:
+ \use:c {@@/checkbox/default_appearances:}
+ \cs_set_eq:NN\@@_appearance_handler:nnn \@@_checkbox_appearance_handler:nnn
+% \end{macrocode}
+% Setting up the defaults.
+% \begin{macrocode}
+ \keys_set:nn {pdffield}
+ {
+ fieldID=,
+ name=checkbox,
+ appearance = pdffield/checkbox/default,
+ checked=false,
+ width = \normalbaselineskip,
+ height = \normalbaselineskip,
+ }
+% \end{macrocode}
+% Value keys should be undefined.
+% \begin{macrocode}
+ \@@_key_disable:nnn{checkbox}{V}{checked}
+ \@@_key_disable:nnn{checkbox}{DV}{checked}
+ \@@_key_disable:nnn{checkbox}{AS}{checked}
+ \keys_set:nn { pdffield }{@@/preset/checkbox,#1}
+ \keys_set:nn { pdffield }
+ {
+ ,unsetFf={Radio,Pushbutton}
+ ,FT= Btn
+ }
+ \tl_if_empty:NT\l_@@_fieldID_tl
+ {
+ \pdfdict_get:nnN {l_@@/field}{T}\l_@@_fieldID_tl
+ \tl_put_left:Nn \l_@@_fieldID_tl {@@/checkbox/}
+ }
+ \@@_checkbox_field:V\l_@@_fieldID_tl
+ \@@_annot:
+ \group_end:
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Keys}
+% Most keys are inherited simply the ones from the generic field and annot keys.
+% A key to decide if the box is initially checked or not.
+% We stay in the same family so that we can build a style.
+% \begin{macrocode}
+\keys_define:nn { pdffield }
+ {
+ ,checked .choice:
+ ,checked / false .code:n =
+ {
+ \pdfdict_put:nnx { l_@@/field }{V} { /Off }
+ \pdfdict_put:nnx { l_@@/field }{DV}{ /Off }
+ \pdfannot_dict_put:nnn {widget}{AS}{ /Off }
+ }
+ ,checked / true .code:n =
+ {
+ \pdfdict_put:nnx { l_@@/field }{V} { /Yes }
+ \pdfdict_put:nnx { l_@@/field }{DV}{ /Yes }
+ \pdfannot_dict_put:nnn {widget}{AS}{ /Yes }
+ }
+ ,checked .default:n = {true}
+ ,checked .groups:n = {checkbox}
+ }
+% \end{macrocode}
+% And a key to set a dedicated field ID
+% \begin{macrocode}
+\keys_define:nn { pdffield }
+ {
+ fieldID .tl_set:N = \l_@@_fieldID_tl
+ }
+% \end{macrocode}
+% \begin{macro}{\@@_checkbox_appearance_handler:nnn}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_checkbox_appearance_handler:nnn #1 #2 #3 %name, type, text
+ {
+ \pdfxform_if_exist:nTF { #1/Yes }
+ {
+ \pdf_object_if_exist:nF {@@/checkbox/AP/#1}
+ {
+ \pdf_object_new:nn {@@/checkbox/AP/#1}{dict}
+ \pdf_object_write:nx
+ {@@/checkbox/AP/#1}
+ {
+ /Yes ~ \pdfxform_ref:n { #1/Yes}
+ /Off ~ \pdfxform_ref:n { #1/Off}
+ }
+ }
+ \pdfannot_dict_put:nnx {widget/AP}{#2}{\pdf_object_ref:n{@@/checkbox/AP/#1}}
+ }
+ {
+ \msg_error:nnnn{pdffield}{appearance-missing}{#1}{#3}
+ }
+ }
+
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \subsection{user commands}
+% \begin{macro}{\pdffield_checkbox:n}
+% \begin{macrocode}
+\cs_set_eq:NN \pdffield_checkbox:n \@@_checkbox:n
+%</package>
+% \end{macrocode}
+% \end{macro}
+%\end{implementation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
new file mode 100644
index 0000000000..e4b957a528
--- /dev/null
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
new file mode 100644
index 0000000000..5328b6e77e
--- /dev/null
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
new file mode 100644
index 0000000000..a8ea21042f
--- /dev/null
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
@@ -0,0 +1,508 @@
+% \iffalse meta-comment
+%
+%% File: l3pdfpdffield-textfield.dtx
+%
+% Copyright (C) 2021 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "LaTeX PDF management testphase bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+% https://github.com/latex3/pdfresources
+%
+% for those people who are interested.
+%
+%<*driver>
+\RequirePackage{pdfmanagement-testphase}
+\DeclareDocumentMetadata{}
+\makeatletter
+\declare@file@substitution{doc.sty}{doc-v3beta.sty}
+\makeatother
+\documentclass[full]{l3doc}
+\usepackage{array,booktabs}
+\usepackage{l3pdffield-testphase}
+\hypersetup{pdfauthor=The LaTeX Project,
+ pdftitle=l3pdffield (LaTeX PDF management testphase bundle)}
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+% \providecommand\hook[1]{\texttt{#1}}
+% \title{^^A
+% The \pkg{l3pdffield-textfield} module\\ Commands to create textfield form fields ^^A
+% \\ \LaTeX{} PDF management testphase bundle
+% }
+%
+% \author{^^A
+% The \LaTeX{} Project\thanks
+% {^^A
+% E-mail:
+% \href{mailto:latex-team@latex-project.org}
+% {latex-team@latex-project.org}^^A
+% }^^A
+% }
+%
+% \date{Version 0.95c, released 2021-03-17}
+%
+% \maketitle
+% \begin{documentation}
+% \section{\pkg{l3pdffield-textfield} Introduction}
+% \ExplSyntaxOn
+% Enter~your~name:\quad \pdffield_textfield:n{name=name,fontcolor=[RGB]{00,33,99},width=5cm}
+% \ExplSyntaxOff
+%
+% This is the documentation for textfield fields, for general information about form fields
+% check the documentation l3pdffield.
+%
+% Textfields allows the user to input text which is then rendered by the PDF viewer and
+% often can also be saved together with the PDF.
+%
+% Currently the package doesn't initialize the font |/Helv|
+% used by default in the fields (It works also without it, but this isn't fully compliant.)
+% I don't want to setup the same font twice and haven't yet decided how
+% to organize the collaboration with hyperref. So for now you should load hyperref
+% and issue the \cs{Form} command.
+%
+% Please keep in mind
+% \begin{itemize}
+% \item Not every PDF viewer supports textfields.
+% \item The font and the exact position of the chars depends on the PDF viewer.
+% \item The handling can depend on settings in the PDF viewer. In adobe reader for
+% example I had to disable an option to avoid that it tries to create an appearance
+% itself
+% \item Standards like pdf/A disable features of form fields too
+% (as you typically can't change the PDF).
+% \end{itemize}
+%
+% \subsection{About fonts}
+%
+% The font color and font size can be changed with the keys |fontcolor| and
+% |fontsize| described below. This works quite reliably (but e.g.
+% the PDF viewer of my browser insists to show the font in blue while editing).
+%
+% Much more difficult is the font family:
+% a typical wish for textfields is that a font matching the document font is used
+% in the fields. But how can that be done?
+% Obviously it is not possible like with a checkbox to prepare and include appearances
+% with the right look, the PDF reader has to render the text dynamically.
+
+% The PDF reference mentions only one way to pass a font setting to the text field:
+% The |DA| key can contain a font operator and the fontname used should be added
+% along with a object reference of the font to the form resources
+% in the |AcroForm/DR/Font| dictionary. The question is: what does a PDF renderer
+% make with this data? Clearly the main resources to render
+% the text can not be to rely on an embedded font and a PDF font operator as both
+% is not enough
+% to guarantee a sensible text support: a font operator is normally used in
+% the page stream along with glyph indices and positioning instructions, not
+% with unicode input, and typically a font is only partially embedded.
+% This means the PDF viewers and editors actually have to use external
+% resources--system fonts, or fonts that come along with the viewer and libraries
+% to handle font shaping.
+%
+% Hyperref may add a reference the type1 font helvetica to the DA key, but
+% PDF viewers use actually Arial. And if one doesn't add a font with
+% |DA| and |DR/Font| the text field works nevertheless.
+%
+% This doesn't mean that the DA/DR info is ignored altogether.
+% Adobe Reader and Pro seems to use it to choose a fitting fallback font:
+% \begin{itemize}
+% \item One can change the font by simply using the font name (the examples use
+% the |font| key of this module). One get courier with |font=courier|,
+% times with |font=times|,
+% comic sans with |font=ComicSansMS|, DejaVu with |font=DejaVuSans|. The fonts
+% don't need to be used in the document or added as resources in the DR/Font dictionary.
+% Some fonts work better than other: comic sans is quite unproblematic,
+% but DejaVu seems to trigger a font search first and so is slower (perhaps the.
+% \item If one fill and then save such a PDF at least adobe adds
+% the missing font resources to the PDF.
+% \end{itemize}
+%
+% This lazy font setting doesn't work with other PDF viewers.
+% In other test I had better results by actually embedding a few glyphs
+% of the font and then adding the font
+% as resource to the DR/Font dictionary. Sadly this requires lualatex, only there is
+% possible to retrieve the internal font name and font object number for a larger set
+% of fonts---with pdflatex it works only for fonts not using a virtual font, and xelatex
+% has no access at all. The code for lualatex looked like this (the font one wants
+% to use should be active)
+% \begin{verbatim}
+% \pdffield_textfield:n {name=text,font=F\pdffeedback~fontname\font}
+% \pdfmanagement_add:nxx{Catalog/AcroForm/DR/Font}
+% {F\pdffeedback~fontname\font}
+% {\pdffeedback~fontobjnum\font \c_space_tl 0 \c_space_tl R}
+% \end{verbatim}
+%
+% \subsection{Vertical alignment}
+% There is no way to set a reference point for the baseline.
+% Alignment must achieved by
+% fiddling with the height and depth of the field. The defaults (which uses as
+% height the fontsize, and a bit depth) works okay in adobe reader with arial.
+% If the font is set to courier, the text jumps up and one has to decrease the height
+% by around 30\%. For a multiline field which should be top aligned you should
+% increase the depth by the wanted amount \emph{and} the height by around 2pt.
+%
+% The geometry of the fields is seen by TeX, and so can influence the line spacing.
+% If needed you should hide the height with \cs{raisebox} or \cs{smash}.
+%
+% \section{Textfields}
+% Input a value:
+% \ExplSyntaxOn
+% \pdffield_textfield:n{name=test,width=4cm,height=0.7\baselineskip,depth=0.3\baselineskip}
+% \ExplSyntaxOff
+%
+% \bigskip
+% \subsection{Commands}
+% \begin{function}{\pdffield_textfield:n}
+% \begin{syntax}
+% \cs{pdffield_textfield:n}\Arg{key val list}
+% \end{syntax}
+% This creates a textfield. The list of allowed keys is described below.
+% The \meta{key val list} should at least set the name, without it the default name
+% |textfield| is used. Textfields with the same
+% name belong to the same field and are filled together. The default appearance
+% is a light gray background.
+% The default appearance is setup at the first use.
+% \end{function}
+%
+%
+% \subsection{Keys}
+%
+% The new textfield command accept all field and annot keys from l3pdffield,
+% please check the documentation there. The list here mentions only a few
+% central keys, and the keys which are either specific for textfields, or have
+% changed functionality.
+%
+% Disabled keys are
+% \begin{itemize}
+% \item |FT| is overwritten.
+% \item |DA| is overwritten.
+% Locally use |fontcolor|, |fontsize| and |font| instead.
+% Globally you can set the |DA| key in the catalog with for example
+% \begin{verbatim}
+% \pdfmanagement_add:nnn{Catalog/AcroForm}{DA}{(/Helv~10~Tf~1~1~0~rg)}
+% \end{verbatim}
+% \item For textfields only the field flags |ReadOnly|, |Required| |NoExport|
+% |Multiline|, |Password|, |FileSelect|, |DoNotSpellCheck|, |DoNotScroll| and |Comb|
+% make sense.
+% If |Comb| is set, |Multiline|, |Password| and |FileSelect| are unset, |MaxLen| is
+% set to 10 if it hasn't been set previously.
+% \end{itemize}
+%
+% \begin{function}{preset-textfield}
+% \begin{syntax}
+% |preset-textfield| = \Arg{key-val-list}
+% \end{syntax}
+% This allows to set default keys for a textfield.
+% \end{function}
+%
+% \begin{function}{name,T}
+% \begin{syntax}
+% |name| = \meta{partial name}\\
+% |T| = \meta{partial name}
+% \end{syntax}
+% This sets like the |T| key for fields the partial name of the field. The value
+% shouldn't contain a period, be not empty and sensibly consist of simple chars.
+% Additionally the value is used to create the field ID.
+% This means that textfield with the same partial name are annotations
+% with the same field as parent and are filled together---this
+% what is typically expected.
+% The field ID is then internal and can not be used to
+% attach another annotation.
+% For explicit control of the field ID use the |fieldID| key.
+% \end{function}
+%
+% \begin{function}{fieldID}
+% \begin{syntax}
+% |fieldID| = \meta{field ID}\\
+% \end{syntax}
+% \emph{For experts only!}
+% This allows to give the textfield a specific ID. This is only useful
+% in the context of a larger fieldset or if you want to attach another annotation
+% to the field with \cs{pdffield_annot:n}. If used wrongly you can
+% easily create an invalid fieldset. It allows you to create to fields with the
+% same partial name, but if you want to see both
+% you need to ensure that their full names are
+% different---for example by adding some parent fields.
+% \end{function}
+%
+% \begin{function}{parent}
+% \begin{syntax}
+% |parent| = \meta{field ID}\\
+% \end{syntax}
+% This is only needed if the field should be part
+% of a larger fieldset. The value should be a field ID of a field created previously
+% with \cs{pdffield_field:nn}.
+% \end{function}
+%
+% \begin{function}{altname,TU}
+% \begin{syntax}
+% |altname| = \meta{string}\\
+% |TU| = \meta{string}\\
+% \end{syntax}
+% This is sets an alternative name for user interaction.
+% This name can only be set at the first textfield instance, when the field is initialized.
+% \end{function}
+%
+% \begin{function}{mappingname,TM}
+% \begin{syntax}
+% |mappingname| = \meta{string}\\
+% |TM| = \meta{string}\\
+% \end{syntax}
+% This is sets an alternative name for export.
+% This name can only be set at the first textfield instance, when the field is initialized.
+% \end{function}
+%
+% \begin{function}{width,height,depth}
+% \begin{syntax}
+% |width| = \meta{dim expression}\\
+% |height| = \meta{dim expression}\\
+% |depth| = \meta{dim expression}
+% \end{syntax}
+% These keys allow to set the dimensions of textfield instance.
+% The value should be a dimension expression. By default
+% |width| is 3cm, the |height| uses the fontsize (\cs{f@size} in pt),
+% the |depth| is 0.3\cs{f@size}.
+% \end{function}
+%
+% \begin{function}{appearance,rollover-appearance,down-appearance}
+% \begin{syntax}
+% |appearance| = \meta{name}\\
+% |rollover-appearance| = \meta{name}\\
+% |down-appearance| = \meta{name}
+% \end{syntax}
+% This keys sets the normal appearance, the rollover appearance (when the
+% mouse hovers over the textfield) and the down appearance (when the
+% mouse clicks). They expect the name of an existing form Xobject as value.
+% The initial value is |pdffield/textfield/default|
+% for the normal appearance and shows a light gray background.
+% The other appearance are not set by default (and it is quite unclear if they
+% make sense for a textfield).
+% \end{function}
+%
+% \begin{function}{fontcolor}
+% \begin{syntax}
+% |fontcolor| = \meta{color expression} \verb"|" [\meta{model}]\Arg{values}\\
+% \end{syntax}
+% This is sets the color of font in the textfield. Internally currently RGB is used.
+% The colors used in
+% \meta{color expression} must be known to the \pkg{l3color} commands.
+% The initial color is black. It is a \emph{field} setting, that means instances
+% share the color.
+% \end{function}
+%
+% \begin{function}{fontsize}
+% \begin{syntax}
+% |fontsize| = \meta{dim expression}
+% \end{syntax}
+% This is sets the size of the font in the textfield.
+% The default value is the current font size (\cs{f@size} in pt).
+% It is a \emph{field} setting, that means instances
+% share the size.
+% \end{function}
+%
+% \begin{function}{font}
+% \begin{syntax}
+% |font| = \meta{symbolic font name}
+% \end{syntax}
+% This is sets the font in the textfield. See the discussion at the begin of
+% the documentation about some background. The default value is |Helv| and this
+% name is setup if you load hyperref and issue the \cs{Form} command.
+% The default value is the current font size (\cs{f@size} in pt).
+% It is a \emph{field} setting, that means instances
+% share the font.
+% \end{function}
+%
+% \subsection{Using with hyperref}
+% The \cs{TextField} command from hyperref also prints a label, something that the
+% command here doesn't do. A redefinition like the following should allow \cs{TextField}
+% to use the commands of this module. Be aware that the behaviour will not be identical!
+% Not every setting and key from \pkg{hyperref} has been copied.
+%
+% \begin{verbatim}
+% \ExplSyntaxOn\makeatletter
+% \def\@TextField[#1]#2{\LayoutTextField{#2}{\pdffield_textfield:n {name=#2,#1}}}
+% \ExplSyntaxOff\makeatother
+% \end{verbatim}
+%
+%
+% \end{documentation}
+%
+% \begin{implementation}
+% \section{\pkg{l3pdffield-textfield} Implementation}
+% \begin{macrocode}
+%<*package>
+%<@@=pdffield>
+% \end{macrocode}
+% \subsection{Variables}
+% \begin{macrocode}
+\tl_new:N \l_@@_DA_fontcolor_tl
+\dim_new:N \l_@@_DA_fontsize_dim
+\tl_new:N \l_@@_DA_fontname_tl
+% \end{macrocode}
+% \subsection{Messages}
+% \begin{macrocode}
+% \end{macrocode}
+% \subsection{Appearances}
+% The default appearances are a cross (\cs{texttimes}),
+% Every appearance should have two versions and follow the naming
+% module/\meta{name}/Yes and module/\meta{name}/Off.
+% \begin{macro}{@@/textfield/default_appearances:}
+% This defines the standard appearance. It is setup at the first
+% use of a textfield.
+% \begin{macrocode}
+\cs_new_protected:cn {@@/textfield/default_appearance:}
+ {
+ \pdffield_appearance:nn {pdffield/textfield/default}
+ {
+ { \color_select:n{black!5!white}\rule{\paperwidth}{\paperheight} }
+ }
+ \cs_gset_eq:cN {@@/textfield/default_appearance:} \prg_do_nothing:
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%\subsection{Creating the field}
+% A field should be created if the name doesn't exist
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_textfield_field:n #1 %name
+ {
+ \pdf_object_if_exist:nF {@@/field/@@/textfield/#1}
+ {
+ \@@_field:n { @@/textfield/#1 }
+ }
+ \keys_set:nn {pdffield}{parent=@@/textfield/#1}
+ }
+\cs_generate_variant:Nn \@@_textfield_field:n {V}
+% \end{macrocode}
+% \subsection{Assembling the textfield}
+
+% \begin{macro}{\@@_textfield:n}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_textfield:n #1
+ {
+ \group_begin:
+ \cs_set_eq:NN\@@_value_handler:nN \@@_textfield_value_handler:nN
+ \use:c {@@/textfield/default_appearance:}
+% \end{macrocode}
+% Setting up the defaults.
+% \begin{macrocode}
+ \keys_set:nn {pdffield}
+ {
+ ,fieldID=
+ ,name=textfield
+ ,appearance = pdffield/textfield/default
+ ,width = 3cm
+ ,fontsize= \f@size pt
+ ,height = \f@size pt,
+ depth = \fp_eval:n {0.3*\f@size} pt,
+ % font defaults!!
+ }
+% \end{macrocode}
+% \begin{macrocode}
+ \keys_set:nn { pdffield }{@@/preset/textfield,#1}
+ \int_compare:nNnT {\bitset_item:Nn \l_@@_Ff_bitset {Comb}}={1}
+ {
+ % warning if set?
+ \keys_set:nn { pdffield }
+ {
+ ,unsetFf={FileSelect,Multiline,Password}
+ }
+ \pdfdict_get:nnN {l_@@/field}{MaxLen}\l_@@_tmpa_tl
+ \quark_if_no_value:NT \l_@@_tmpa_tl
+ {
+ \keys_set:nn { pdffield}
+ {
+ MaxLen = 10 %variable
+ }
+ % warning
+ }
+ }
+ \keys_set:nn { pdffield }
+ {
+ ,FT= Tx
+ ,AS=
+ ,DA=
+ {
+ \pdf_name_from_unicode_e:n{\l_@@_DA_fontname_tl}
+ \c_space_tl
+ \dim_to_decimal_in_bp:n{\l_@@_DA_fontsize_dim}
+ \c_space_tl
+ Tf
+ \c_space_tl
+ \l_@@_DA_fontcolor_tl
+ \c_space_tl
+ %\l_@@_text_DAextra_tl
+ }
+ }
+ \tl_if_empty:NT\l_@@_fieldID_tl
+ {
+ \pdfdict_get:nnN {l_@@/field}{T}\l_@@_fieldID_tl
+ \tl_put_left:Nn \l_@@_fieldID_tl {@@/textfield/}
+ }
+
+ \@@_textfield_field:V\l_@@_fieldID_tl
+ \@@_annot:
+ \group_end:
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Keys}
+% Most keys are inherited simply the ones from the generic field and annot keys.
+% A key to decide if the box is initially checked or not.
+% We stay in the same family so that we can build a style.
+% \begin{macrocode}
+\keys_define:nn {pdffield}
+ {
+ ,fontcolor .code:n =
+ {
+ \@@_color_set:nn {@@/tmp}{#1}
+ \color_export:nnN{@@/tmp}{space-sep-rgb}\l_@@_DA_fontcolor_tl
+ \tl_put_right:Nn \l_@@_DA_fontcolor_tl{~rg}
+ }
+ ,fontcolor .initial:n = black,
+ ,fontcolor .groups:n = {textfield}
+ ,font .tl_set:N = \l_@@_DA_fontname_tl
+ ,font .initial:n = {Helv}
+ ,font .groups:n = {textfield}
+ ,fontsize .dim_set:N = \l_@@_DA_fontsize_dim
+ ,fontsize .initial:n = {10bp}
+ ,fontsize .groups:n = {textfield}
+ }
+% \end{macrocode}
+% And a key to set a dedicated field ID
+% \begin{macrocode}
+\keys_define:nn { pdffield }
+ {
+ fieldID .tl_set:N = \l_@@_fieldID_tl
+ }
+% \end{macrocode}
+%
+% \subsection{Handler}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_textfield_value_handler:nN #1#2
+ {
+ \pdf_string_from_unicode:nnN {utf8/string}{#1}#2
+ }
+% \end{macrocode}
+%
+% \subsection{user commands}
+% \begin{macro}{\pdffield_textfield:n}
+% \begin{macrocode}
+\cs_set_eq:NN \pdffield_textfield:n \@@_textfield:n
+%</package>
+% \end{macrocode}
+% \end{macro}
+%\end{implementation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
new file mode 100644
index 0000000000..69a2e13b7d
--- /dev/null
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
index dc3fcc3df6..e1e5f8bae1 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3pdfpdffield-checkbox.dtx
+%% File: l3pdffield.dtx
%
% Copyright (C) 2021 The LaTeX Project
%
@@ -28,9 +28,9 @@
\makeatletter
\declare@file@substitution{doc.sty}{doc-v3beta.sty}
\makeatother
-\documentclass[full]{l3doc}
-\usepackage{array,booktabs}
-\usepackage{l3pdffield-testphase,bearwear}
+\documentclass{l3doc}
+\usepackage{array,booktabs,caption}
+\usepackage{l3pdffield-testphase,tikz}
\hypersetup{pdfauthor=The LaTeX Project,
pdftitle=l3pdffield (LaTeX PDF management testphase bundle)}
\begin{document}
@@ -43,17 +43,22 @@
% idxtype = {checkbox key},
% printtype= \textit{checkbox key}
% ]{Checkboxkey}{checkboxkey}
+% \NewDocElement[
+% idxgroup=field keys,
+% idxtype = {field key},
+% printtype= \textit{field key}
+% ]{Fieldkey}{fieldkey}
+% \NewDocElement[
+% idxgroup=setup keys,
+% idxtype = {setup key},
+% printtype= \textit{setup key}
+% ]{Fieldsetupkey}{fieldsetupkey}
+% \NewDocElement[
+% idxgroup=annot keys,
+% idxtype = {annot key},
+% printtype= \textit{annot key}
+% ]{Annotkey}{annotkey}%
% \providecommand\hook[1]{\texttt{#1}}
-% \ExplSyntaxOn
-% \pdffield_store_appearance:nn {bear/Yes}
-% {
-% \tikz\bear\bearwear[shirt=red,body~deco={\node[font=\tiny\bfseries,white]~at~(beartummy){Yes};}];
-% }
-% \pdffield_store_appearance:nn {bear/Off}
-% {
-% \tikz\bear\bearwear[body~deco={\node[font=\tiny\bfseries,white]~at~(beartummy){Off};}];
-% }
-% \ExplSyntaxOff
% \title{^^A
% The \pkg{l3pdffield} module\\ Commands to create form fields ^^A
% \\ \LaTeX{} PDF management testphase bundle
@@ -68,36 +73,50 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
% \section{\pkg{l3pdffield} Introduction}
-% The implementation of form fields in hyperref has some bugs, see for example
-% \url{https://github.com/latex3/hyperref/issues/94}. This package is a first step
+% The implementation of form fields in hyperref has some bugs\footnote{see for example
+% \url{https://github.com/latex3/hyperref/issues/94}}. This package is a first step
% towards the goal to review and improve the code of form fields.
%
% Like the \pkg{pdfmanagement-testphase} package itself it is a temporary package:
-% the definite home of the code is not yet decided.
+% the definite home of the code is not yet decided, and during the development
+% changes in the interfaces are possible.
%
-% It handles for now \emph{only} checkboxes, other form fields like pushbutton,
-% radio buttons or text fields will follow later. As currently no fonts are used,
-% it doesn't relies on the hyperref code
-% to initialize the form, but it can be used with hyperref.
+% The package itself is currently loaded with
+% \begin{verbatim}
+% \usepackage{l3pdffield-testphase}
+% \end{verbatim}
%
-% The code requires the new PDF management. The code makes use of
-% \pkg{l3pdfxform} to create the Xobjects. This code doesn't support yet the
-% the dvips backend.
+% The code is splitted into various submodules. \texttt{l3pdffield}
+% contains the basic commands to create a form field. The code related to field types
+% like checkboxes are in \texttt{l3pdffield-\emph{type}}, for example
+% \texttt{l3pdffield-checkbox}. Currently only checkboxes have been implemented,
+% other form fields like pushbutton,
+% radio buttons or text fields will follow later.
+% The code doesn't rely on to initialize the form,
+% but it can be used with hyperref.
%
+% The code requires the new PDF management. The code makes use of
+% \pkg{l3pdfxform} to create the form Xobjects of the appearances.
+% This code doesn't support yet the the dvips backend.
%
+% The code targets PDF~2.0. This doesn't mean that it won't work in older
+% PDF versions, but it tries to implement requirements needed or recommended
+% for 2.0; most importantly appearances are used by default everywhere and it
+% deprecates |/NeedAppearances|.
%
% Please keep in mind
% \begin{itemize}
-% \item Not every PDF viewer supports checkboxes.
+% \item Not every PDF viewer supports form fields or all types and features.
% \item The handling can depend on settings in the PDF viewer. In adobe reader for
% example I had to disable an option to avoid that it tries to create an appearance
-% itself
-% \item Standards like pdf/A disable form fields too (as you typically can't change the PDF).
+% itself.
+% \item Standards like pdf/A disable some features of form fields like javascript actions
+% (as you typically can't change the PDF).
% \end{itemize}
%
% If \pkg{hyperref} is loaded before
@@ -115,258 +134,636 @@
% \begin{document}
% \Form
% \end{verbatim}
-% \section{Step 1: Checkboxes}
-% Click me:
-% \ExplSyntaxOn\pdffield_checkbox:n{name=bear,appearance=bear,width=23pt,height=30pt,depth=10pt}\ExplSyntaxOff
%
-% \bigskip
-% \subsection{Commands}
-% \begin{function}{\pdffield_checkbox:n}
+% \section{Some background}
+%
+% A document can contain a arbitrary number of fields which can be organized in trees.
+% The leaf fields in such a tree, the \emph{terminal fields}, typically have
+% widget annotations as kids which are then the actual, visual instances of the field,
+% and allow to interact with the field. I will call such a
+% tree a \emph{fieldset}, nodes \emph{fields} and the widget annotation
+% \emph{field annotations}.
+%
+% If a field has only one child annotation the content of the field dictionary and the
+% widget annotation dictionary can be merged---some examples in the PDF reference
+% show such merged dictionaries---but the code here keeps them separate, at the end
+% this is clearer.
+%
+% A simple example would look like this
+%
+% \begin{tikzpicture}[level 2/.style={level distance=7mm},
+% level 1/.style={sibling distance=25mm},
+% level 2/.style={sibling distance=15mm}]
+% \node[draw] {week}
+% child {node[draw] {mon}
+% child {node[draw,dashed] {annot}}
+% }
+% child {node[draw] {tue}
+% child {node[draw,dashed] {annot}}
+% }
+% child {node[draw] {wen}
+% child {node[draw,dashed] {annot}}
+% child {node[draw,dashed] {annot}}
+% }
+% ;
+% \end{tikzpicture}
+%
+% In many cases a fieldset consists of only one field along with its field annotation(s),
+% but larger sets can be needed to build more complex interactions with javascript code.
+% For example a datepicker can be built as a fieldset with various fields to represent
+% the month and year choice and to select days.
+%
+% Fields in a fieldset should have a name, for example |wen| or |week| in the example
+% above. This name is the \emph{partial name} of the field, the \emph{full name}
+% is than built from it by adding the names of the parents separated by periods.
+% In the example above the partial name is \texttt{mon} and the full name
+% \texttt{week.mon}.
+% Partial names shouldn't contain periods. If two fields have the same name they will
+% work in unison: if you enter text in one field, the text appears also in the other, such
+% fields must have the same type and the same value and default value entry.
+% If a field has no name it is considered to be a simple widget annotation and so
+% only another representation of its parent.
+%
+%
+% All terminal fields should also have a type, e.g. \texttt{Btn} for a button field,
+% or \texttt{Tx} for a textfield. The type can be set for the parent and then inherited.
+% The fields in a fieldset can have different types.
+%
+% \subsection{The look of a field: Appearances and other settings}
+%
+% The look of widget annotation of a field can be set with various keys. The keys developed over
+% time and some of them superseed older ones. There is for example the simple
+% |/Border|, the more sophisticated |/BS| (\enquote{border style dictionary}),
+% the \enquote{dynamic appearance dictionary} |MK|, with lots of keys,
+% and the appearance dictionary |/AP| which
+% may define as many as three separate appearances:
+% the normal appearance (required), the rollover appearance and the down appearance.
+% Such an appearance can be a simple form XObjects%
+% \footnote{Such form XObjects are small pictures stored in the PDF which
+% can be referenced in various part of the PDF. They can be
+% created with the commands of the \pkg{l3pdfxform} package.}%
+% , but in some cases the annotation can have different \emph{appearance states}:
+% a checkbox
+% for example can be checked or unchecked, in this case the appearances
+% are dictionaries which
+% maps state names like |/Yes| and |/Off| to form XObjects.
+%
+% The annotations cover a rectangular area on
+% the page and form XObjects appearances are squeezed into this rectangle.
+% So for the best result
+% both should have the same ratio of width and height. Simple plain backgrounds can
+% also be created in large size and reused for various annotations.
+% Form XObjects used as appearances can not be rotated, if needed one has to
+% create a new appearance.
+%
+%
+% In PDF 2.0 widget annotations must have at least a normal |/AP| appearance
+% (unless the size of the annotation is zero) and the keys \enquote{\itshape C, IC, Border,
+% BS, BE, BM, CA, ca, H, DA, Q,
+% DS, LE, LL, LLE, and Sy shall be ignored}. But it is quite unclear if
+% PDF Viewer honor this, and if this make sense e.g. for text fields which require
+% a DA entry. It is also not clear how appearances and the entries of the MK dictionary
+% are related in a form field. Tests with some PDF viewers
+% are needed here.
+%
+%
+% \section{Commands}
+% \begin{function}{\pdffield_field:nn,\pdffield_field:Vn}
% \begin{syntax}
-% \cs{pdffield_checkbox:n}\Arg{key val list}
+% \cs{pdffield_field:nn}\Arg{key val list}\Arg{field ID}
% \end{syntax}
-% This creates a checkbox to check and uncheck. The list of allowed keys is described below.
-% Typically the \meta{key val list} should at least set the name. Checkboxes with the same
-% name belong to the same field and are checked and unchecked together. The default appearance
-% is a quadratic frame with a \cs{texttimes} in it for the checked case.
+% This creates a new field. \meta{field ID} will be used to create and
+% reference the needed objects but it is not the direct object name, so
+% |pdf_object_ref:n| can not be used to access (and there will not
+% clash with object names). It is recommended to start
+% the name with a module prefix to avoid name clashes, so e.g. |mymodule/field/1| or
+% |mymodule/field/week|.
+%
+% The list of handled keys is described below.
+% Typically the \meta{key val list} should at least set the name |T|, fields that
+% are kids in a fieldset must set the |parent| key, this should point to a field
+% declared before.
+%
+% The command is meant as a basic command to build more complex variants like
+% checkbox or textfields. For this reason it doesn't check if
+% the combination of values and flags are sensible, and it uses as key names the
+% names from the PDF reference.
+% If you create a button field (Btn) and set MaxLen (which is only known for text
+% fields), it will not complain.
+%
+% Root fields (fields without parent) are added automatically to the
+% Catalog/AcroForm dictionary with
+%
+%
+% \begin{verbatim}
+% \pdfmanagement_add:nnx{Catalog/AcroForm}{Fields}{<obj ref>}
+% \end{verbatim}
+%
% \end{function}
%
-%\begin{function}{\pdffield_setup:nn}
+% \begin{function}{\pdffield_annot:n,\pdffield_annot:V}
% \begin{syntax}
-% \cs{pdffield_setup:nn}\Arg{field type}\Arg{key val list}
+% \cs{pdffield_field:nn}\Arg{key val list}
% \end{syntax}
-% This allows to setup up values for following fields. \Arg{field type}
-% should be a field, currently the only allowed value is |checkbox|.
+% This creates a new field annotation.
+% It is a widget annotation box created with \cs{pdfannot_widget_box:nnn}, and
+% it is possible to add values to its dictionary
+% by using |\pdfannot_dict_put:nnn {widget}...|.
+% But to correctly setup the parent/kid relationship some additional wrapper code is needed.
+% The command also setup dictionaries to fill the |AP|, |MK| and |AA| dictionaries.
% \end{function}
%
-%\begin{function}{\pdffield_store_appearance:nn}
+% \begin{function}{\pdffield_appearance:nn}
% \begin{syntax}
-% \cs{pdffield_store_appearance:nn}\Arg{name/state}\Arg{content}
+% \cs{pdffield_appearance:nn}\Arg{name}\Arg{content}
% \end{syntax}
-% This is a small wrapper around \cs{pdfxform_new:nn} and store appearances for the fields.
-% \meta{state} should be for checkboxes either |Yes| or |Off| (and typically
-% you should define both). \meta{name} is the name
-% that is used in the |appearance| key, |checkbox/default| is predefined and so can't be used.
-% \meta{content} is arbitrary content. The dimensions should fit to the planed size of the
-% checkbox.%
+% This is a small wrapper around \cs{pdfxform_new:nnn} (which could be used too)
+% to create an appearance. To avoid name clashes \meta{name} should start with
+% a module part, e.g. |mymodule/appearance/cross|.
% \end{function}
-% \subsection{Keys}
%
-% The new checkbox commands accepts following keys:
+% \begin{function}{\pdffield_setup:n}
+% \begin{syntax}
+% \cs{pdffield_setup:n}\Arg{key-val}
+% \end{syntax}
+% This command allows to preset some field settings.
+% \end{function}
+% It knows currently two keys:
%
-% \DescribeCheckboxkey{name} This sets the (internal) name of the field. It shouldn't contain
-% a period, be not empty and sensibly consist of simple chars. Checkboxes instances
-% with the same name belong to the same field and are checked and unchecked together.
+% \begin{function}{create-style}
+% \begin{syntax}
+% |create-style| = \Arg{name}\Arg{key-val}
+% \end{syntax}
+% This defines a style which can then be used with the |style| key.
+% \Arg{key-val} can be an arbitrary collection of the keys of the module.
+% \end{function}
%
-% \DescribeCheckboxkey{altname} This sets an alternative name for user interaction.
-% This name can only be set at the first checkbox instance, when the field is initialized.
-% \DescribeCheckboxkey{mappingname} This sets an alternative name for export.
-% This name can only be set at the first checkbox instance, when the field is initialized.
+% \begin{function}{preset-checkbox}
+% \begin{syntax}
+% |preset-checkbox|=\Arg{key-val}
+% \end{syntax}
+% This allows to set default keys for a checkbox.
+% \end{function}
+
+% \section{Field Keys}
+%
+% Table~\ref{tab:fieldkeys} summarize the keys which can be used.
+% A number of keys have two names, the second is normally the name used by hyperref.
+% Where is makes sense an empty value \enquote{unsets} a key.
+%
+% \begin{table}
+% \caption{Keys for fields}\label{tab:fieldkeys}
+% \centering
+% \begin{tabular}{>{\ttfamily}lllll}
+% \toprule
+% key & value & required & inheritable &remark\\\midrule
+% parent & field ID & for non-root fields & \\
+% style & style name & & defined with |create-style| \\
+% T, name & string & mostly & \\
+% TU, altname & string & & \\
+% TM, mappingname & string & & \\
+% FT & name & terminal fields & yes \\
+% setFf, & list of flags & & yes\\
+% setfieldflags\\
+% unsetFf, & list of flags & & yes \\
+% unsetfieldflags \\
+% V & various & & yes \\
+% DV & various & & yes \\
+% MaxLen & integer & with Comb & yes & only textfields\\
+% Lock & object name & & & signature field\\
+% SV & object name & & & signature field\\
+% Opt & object name & & & buttons and choice fields\\
+% TI & integer & & & list fields\\
+% I & object name& & & list fields\\
+% AA/K, keystroke & javascript \\
+% AA/F, format & javascript\\
+% AA/V, validate & javascript\\
+% AA/C, calculate & javascript\\
+% DA & string & yes & yes & variable text \\
+% Q & 0, 1 or 2 & & yes &variable text \\
+% DS & & & & (ignored) \\
+% RV & & & & (ignored) \\\bottomrule
+% \end{tabular}
+% \end{table}
+%
+% \begin{function}{parent}
+% \begin{syntax}
+% |parent| = \meta{field ID}\\
+% \end{syntax}
+% This declares the parent of the field. It is required if
+% the field is not the root of the fieldset. The value is the field ID
+% of the parent, the parent should have been already declared.
+% It will add the reference to the parent field to the |/Parent| key, and also
+% add reference of the kid as |/Kid| in the parent field.
+% \end{function}
%
-% \DescribeCheckboxkey{width}
-% \DescribeCheckboxkey{height}
-% \DescribeCheckboxkey{depth} These keys allow to set the dimensions of checkbox instance.
-% The value should be a command that expands to a dimension expression. By default
-% |width| and |height| use \cs{normalbaselineskip}, the |depth| is zero.
-%
-% \DescribeCheckboxkey{appearance} This key sets the normal appearance. It takes as value a
-% \meta{name} and expects that the two appearances \meta{name}|/Yes| and \meta{name}|/Off|
-% has been created with the command described below. The initial value is |checkbox/default|
-% and shows a \cs{texttimes}.
-%
-% \DescribeCheckboxkey{rollover-appearance} This key sets the rollover appearance (when the
-% mouse hovers over the checkbox). It takes as value a
-% \meta{name} and expects that the two appearances \meta{name}|/Yes| and \meta{name}|/Off|
-% has been created with the command described below. Initially this is not set.
-% An empty value removes the entry.
-%
-% \DescribeCheckboxkey{down-appearance} This key sets the down appearance (when the
-% mouse clicks). It takes as value a
-% \meta{name} and expects that the two appearances \meta{name}|/Yes| and \meta{name}|/Off|
-% has been created with the command described below. Initially this is not set.
-% An empty value removes the entry.
-%
-% \DescribeCheckboxkey{checked} This is a boolean key which allows to set if the
-% checkbox should be initially checked or not. It sets the |/V| and |/DV| key of the field
-% and the |/AS| key of the annotation instance. It is possible to use different
-% values for different instances, if one wants to confuse the user.
-%
-% \DescribeCheckboxkey{setfieldflags}
-% \DescribeCheckboxkey{unsetfieldflags}
-% These keys allow to set or unset the field flags. They expect a comma lists of
-% flag names. Allowed names |ReadOnly|, |Required|,
+% \begin{function}{name,T}
+% \begin{syntax}
+% |name| = \meta{partial name}\\
+% |T| = \meta{partial name}
+% \end{syntax}
+% This sets the partial name of the field. It shouldn't contain
+% a period, be not empty and sensibly consist of simple ascii chars.
+% It is normally required, see above. The value is passed through \cs{pdf_string_from_unicode:nnN}.
+% \end{function}
+%
+% \begin{function}{altname,TU}
+% \begin{syntax}
+% |altname| = \meta{string}\\
+% |TU| = \meta{string}\\
+% \end{syntax}
+% This sets an alternative name for user interaction.
+% Unlike the name field it can use unicode or periods.
+% The value is passed through \cs{pdf_string_from_unicode:nnN}
+% \end{function}
+%
+% \begin{function}{mappingname,TM}
+% \begin{syntax}
+% |mappingname| = \meta{string}\\
+% |TM| = \meta{string}\\
+% \end{syntax}
+% This sets an alternative name for the export.
+% The value is passed through \cs{pdf_string_from_unicode:nnN}
+% \end{function}
+%
+% \begin{function}{mappingname,TM}
+% \begin{syntax}
+% |FT| = |Btn|\verb"|"|Tx|\verb"|"|Ch|\verb"|"|Sig|
+% \end{syntax}
+% This sets the type of the field, the value should be one of
+% \texttt{Btn} (button), \texttt{Tx} (text), \texttt{Ch} (choice), \texttt{Sig} (signature).
+% The value is of relevance only for terminal fields, but it can be set in a parent
+% and then inherited.
+% \end{function}
+%
+% \begin{function}{setfieldflags,setFf,unsetfieldflags,unsetFf}
+% \begin{syntax}
+% |setfieldflags| = \meta{comma list of flags}\\
+% |setFf| = \meta{comma list of flags}\\
+% |unsetfieldflags| = |all| \verb"|" \meta{comma list of flags}\\
+% |unsetFf| = |all| \verb"|" \meta{comma list of flags}
+% \end{syntax}
+% These keys accept a list of flag names and then sets or unsets them, the resulting value
+% is then used with the \texttt{/Ff} key. Depending
+% on the field type some flags must be set or unset, other are optional or are ignored.
+% The flag name can be given in PDF spelling (\texttt{RadiosInUnison}),
+% in lowercase (\texttt{radiosinunison}), and as number. |unsetFf| and its
+% alias |unsetfieldflags| know the special value |all| which clears all the fields.
+%
+% The list of flags are:
+% |ReadOnly|, |Required|,
% |NoExport|, |Multiline|, |Password|, |NoToggleToOff|, |Radio|, |Pushbotton|,
% |Combo|, |Edit|, |Sort|, |FileSelect|, |MultiSelect|, |DoNotSpellCheck|,
% |DoNotScroll|, |Comb|, |RadiosInUnison|, |RichText|, |CommitOnSelChange|.
%
-% From these |Radio|, |Pushbotton| are set automatically automatically by the code
-% as this is required for a checkbox. Not every one from the rest makes sense for
-% checkboxes but the same key will be used for other fields too.
-% Check the PDF reference to decide which one to set or unset.
-%
-% \begin{checkboxkey}{keystroke,format,validate,calculate}
-% These keys add the |/K, |/F, |/V|, |/C| key to the |/AA| dictionary of the field object.
-% Their value should be javascript code. The |/AA| dictionary is suppressed
-% if a pdf/A standard is set. These keys are probably not of much used with a checkbox.
-% \end{checkboxkey}
-%
-% \vspace{2\baselineskip}
-% \begin{checkboxkey}{onfocus,onblur,onmousedown,onmouseup,onenter,onexit}
-% These keys adds the |/F, |/Bl, |/D|, |/U|, |E| and |X| key to the |/AA| dictionary
-% of the widget annotation (the checkbox instance) object.
-% Their value should be javascript code. The |/AA| dictionary
-% is suppressed if a pdf/A standard is set.
+% \end{function}
%
-% For example
-% \begin{verbatim}
-% onenter={app.alert('Hello');}
-% \end{verbatim}
-% \end{checkboxkey}
+% \begin{function}{V}
+% \begin{syntax}
+% |V| = \meta{various}
+% \end{syntax}
+% This sets the value of the field. Its
+% format varies depending on the field type, so typically
+% commands for the various type will have to preprocess and sanitize it.
+% The value given here is x-expanded and then added to the dictionary!
+% See the descriptions of individual field types for further information.
+% (Pushbuttons for example don't have a value).
+% \end{function}
%
-% \subsection{Using with hyperref}
-% The \cs{CheckBox} command from hyperref also prints a label, something that the
-% command here don't do. A redefinition like the following should allow to \cs{CheckBox}
-% to use the commands of this module. Be aware that the behaviour will not be identical!
-% Not every setting and key from \pkg{hyperref} has been copied.
+% \begin{function}{DV}
+% \begin{syntax}
+% |DV| = \meta{various}
+% \end{syntax}
+% The default value, to which the field reverts
+% when a reset-form action is executed. The format of this value is the
+% same as that of \texttt{DV}.
+% \end{function}
%
-% \begin{verbatim}
-% \ExplSyntaxOn\makeatletter
-% \def\@CheckBox[#1]#2{\LayoutCheckField{#2}{\pdffield_checkbox:n {name=#2,#1}}}
-% \ExplSyntaxOff\makeatother
-% \end{verbatim}
+% \begin{function}{MaxLen}
+% \begin{syntax}
+% |MaxLen| = \meta{integer}
+% \end{syntax}
+% Only relevant for textfields.
+% The value is an integer and describes the maximum length of the field’s text in characters.
+% Required if the |Comb| flag is used.
+% \end{function}
%
-% \subsection{Some background}
-% Form fields consist of a field object and number of instances of the field:
-% A checkbox can appear on more than one page or location and if one instance
-% is checked all other instances follows and are checked too.
-%
-% All instances are in this case widget annotations and are referenced in the Kid array of the field
-% object\footnote{Fields can actually build a tree: between the root field and
-% widget annotations there can be more fields. The last one before the widget is
-% the \emph{terminal} field, but unless a sensible
-% use case comes up, I will assume that the widget annotations are direct children of
-% the root and that the root field is the terminal field.}.
-% This means that the code has to collect all the children and write
-% out the field object at the end of the document.
-%
-% If a field has only one children the content of the field dictionary and the
-% widget annotation dictionary can be merged---some examples in the PDF reference
-% show such merged dictionaries---but the code here keeps them separate, at the end
-% this is clearer.
+% \begin{function}{Lock}
+% \begin{syntax}
+% |MaxLen| = \meta{object name}
+% \end{syntax}
+% Only relevant for signature fields. The value is an object name
+% which should point to a dictionary that specifies a set of form fields
+% that shall be locked when this signature field is signed. The exact format of
+% the dictionary is described in the PDF reference.
+% \end{function}
%
-% All the root field objects must be referenced in the AcroForm dictionary in the
-% Fields entry. This can be done with
+% \begin{function}{SV}
+% \begin{syntax}
+% |SV| = \meta{object name}
+% \end{syntax}
+% Only relevant for signature fields. The value is an object name
+% which should point to a seed value dictionary. The exact format of
+% the dictionary is described in the PDF reference.
+% \end{function}
%
-% \begin{verbatim}
-% \pdfmanagement_add:nnx{Catalog/AcroForm}{Fields}{<obj ref>}
-% \end{verbatim}
+% \begin{function}{Opt}
+% \begin{syntax}
+% |Opt| = \meta{object name}
+% \end{syntax}
+% Only relevant for checkboxes, radiobuttons and choice fields.
+% The value is an object name
+% which should point to a array. The exact format of
+% the array is described in the PDF reference.
+% \end{function}
%
-% A checkbox has two different looks: checked and unchecked. The current hyperref
-% implementation uses symbolic names for the two states and and adds some
-% values with the /MK key and lets the PDF viewer
-% create a look from them. But this doesn't work reliably. Also newer PDF versions
-% deprecate the /NeedAppearances setting and require that such a look,
-% an \enquote{appearance}, is given as form XObjects:
-% such form XObjects are like small pictures stored in the PDF and can be referenced
-% in various part of the PDF. They can be created with the commands of
-% the \pkg{l3pdfxform} package.
-%
-% The checkbox instances---the widget annotations---cover a rectangular area on
-% the page, the XObjects are squeezed into this rectangle. So for the best result
-% both should have the same ratio of width and height.
-% XObjects used as appearances can not be rotated, if needed one has to
-% create a new appearance.
+% \begin{function}{TI}
+% \begin{syntax}
+% |TI| = \meta{integer}
+% \end{syntax}
+% Only relevant for scrollable list boxes.
+% The value is an integer, the top index (the index in the Opt array
+% of the first option visible in the list). Default value: 0
+% \end{function}
%
-% \subsubsection{The field dictionary}
+% \begin{function}{I}
+% \begin{syntax}
+% |I| = \meta{object name}
+% \end{syntax}
+% For choice fields that allow
+% multiple selection (MultiSelect flag set). The value is an object name
+% which should point to a array. The exact format of
+% the array is described in the PDF reference
+% (I have no idea what exactly should be added there, perhaps some future test will make
+% it more understandable.)
+% \end{function}
%
-% The field dictionary shall or can have the following entries
+% The following four keys are used to add javascript (\enquote{ECMAScript}) code.
+% The values are currently only passed through \cs{pdf_string_from_unicode:nnN},
+% but this perhaps will have to change. The keys will be ignored if a pdfstandard
+% is used that prohibits such actions.
+%
+% \begin{function}{AA/K,keystroke}
+% \begin{syntax}
+% |AA/K| = \meta{string (ECMAScript)}\\
+% |keystroke| = \meta{string (ECMAScript)}
+% \end{syntax}
+% This adds a keystroke action to the
+% additional action dictionary. The value is passed through
+% \cs{pdf_string_from_unicode:nnN}. The action is meant for text and choice fields.
+% It is quite unclear if such an action
+% make sense for non-terminal fields.
+% \end{function}
+%
+% \begin{function}{AA/F,format}
+% \begin{syntax}
+% |AA/F| = \meta{string (ECMAScript)}\\
+% |format| = \meta{string (ECMAScript)}
+% \end{syntax}
+% This adds a format action to the
+% additional action dictionary. The value is passed through
+% \cs{pdf_string_from_unicode:nnN}. The action is meant for text and choice fields.
+% It is quite unclear if such an action
+% make sense for non-terminal fields.
+% \end{function}
%
-% \begin{description}
-% \item[FT] required for terminal fields (here for the root field),
-% the value is always \texttt{Btn}, so this entry is set by the code.
-% \item[Parents] currently irrelevant as we don't have a field hierarchy.
-% \item[Kids] an array. Contains references to the children, in our case to
-% the widget annotations. The array is build by the code.
+% \begin{function}{AA/V,validate}
+% \begin{syntax}
+% |AA/V| = \meta{string (ECMAScript)}\\
+% |validate| = \meta{string (ECMAScript)}
+% \end{syntax}
+% This adds a validate action to the
+% additional action dictionary. The value is passed through
+% \cs{pdf_string_from_unicode:nnN}. It is quite unclear if such an action
+% make sense for non-terminal fields.
+% \end{function}
+%
+% \begin{function}{AA/C,calculate}
+% \begin{syntax}
+% |AA/C| = \meta{string (ECMAScript)}\\
+% |calculate| = \meta{string (ECMAScript)}
+% \end{syntax}
+% This adds a calculate action to the
+% additional action dictionary. The value is passed through
+% \cs{pdf_string_from_unicode:nnN}. It is quite unclear if such an action
+% make sense for non-terminal fields.
+% \end{function}
%
-% \item[T] required, the name, a (unique) text string without a period.
-% This field is a mandatory argument which must be given by the user.
-% The value should be passed through a suitable string conversion and checked
-% if it contains a period (which is not allowed).
+% \begin{function}{DA}
+% \begin{syntax}
+% |DA| = \meta{string}
+% \end{syntax}
+% This contains instructions for the text in text fields.
+% It is stored expanded and parentheses are added around the value.
+% \end{function}
%
-% \item[TU,TM] optional, alternative names for user messages (TU) and export (TM).
-% As these fields are optional they should be set by some key-val option.
+% \begin{function}{Q,align}
+% \begin{syntax}
+% |Q| = |left|\verb"|"|center|\verb"|"|right|\\
+% |align| = |left|\verb"|"|center|\verb"|"|right|
+% \end{syntax}
+% The justification of the text.
+% \end{function}
%
-% \item[Ff] A bitset, two flags must be unset for a checkbox (Radio and Pushbotton),
-% for the rest we need a keyval interface.
+% \begin{function}{DS,RV}
+% These two keys are currently not implemented
+% as it is unclear if there are of any use.
+% \end{function}
%
-% \item[V] describes the initial value, for checkboxes is should be either |/Yes|
-% or |/Off|. The initial value will be |/Yes|, keys are need to set both the local
-% and the default value.
+% \section{Annot keys}
+%
+% Table~\ref{tab:annotkeys} summarize the keys which can be used.
+% A number of keys have alias names which are mentioned in the descriptions.
+%
+% \begin{table}
+% \caption{Keys for field annotations}\label{tab:annotkeys}
+% \centering
+% \begin{tabular}{>{\ttfamily}lllll}
+% \toprule
+% key & value & required &remark\\\midrule
+% parent & field ID & yes \\
+% width & dim expression & (yes) & default is 0pt \\
+% height & dim expression & (yes) & default is 0pt \\
+% depth & dim expression & (yes) & default is 0pt \\
+% AP/N & appearance name & yes (in PDF 2.0) \\
+% AP/R & appearance name & yes (in PDF 2.0) \\
+% AP/D & appearance name & yes (in PDF 2.0) \\
+% AS & name & yes (in PDF 2.0) \\
+% setF & list of flags \\
+% unsetF & list of flags \\
+% AA/* & javascript & *= F, Bl, D, U, E, \\
+% & & X, PO, PC,PV, PI\\
+% MK/* & various & *= R, BC, BG, CA, RC, \\
+% & & AC, I, RI, IX, IF, TP\\ \bottomrule
+%
+% \end{tabular}
+% \end{table}
+%
+% \begin{function}{width,height,depth}
+% \begin{syntax}
+% |width| = \meta{dim expression}\\
+% |height| = \meta{dim expression}\\
+% |depth| = \meta{dim expression}
+% \end{syntax}
+% These keys allow to set the dimensions of the annotation.
+% The value should be a command that expands to a dimension expression. By default
+% all values are zero.
+% \end{function}
+%
+% \begin{function}{parent}
+% \begin{syntax}
+% |parent| = \meta{field ID}\\
+% \end{syntax}
+% This sets the parent. The value should be field ID of
+% an already declared field.
+% \end{function}
+%
+% \begin{function}{AP/N,AP/R,AP/D}
+% \begin{syntax}
+% |AP/N| = \meta{appearance name}\\
+% |AP/R| = \meta{appearance name}\\
+% |AP/D| = \meta{appearance name}
+% \end{syntax}
+% This keys set the normal, rollover and down appearance. Alias names are
+% |appearance|, |rollover-appearance| and |down-appearance|.
+% The value is by default a simple name of an appearance/form Xobject but
+% modules like \pkg{l3pdffield-checkbox} change this to allow to add appearances for
+% various states.
+% \end{function}
%
-% \item[DV] optional, the default value after a reset. Should like |V| be either
-% |/Yes| or |/Off|.
+% \begin{function}{AS}
+% \begin{syntax}
+% |AS| = \meta{appearance state name}
+% \end{syntax}
+% This key sets the default appearance state.
+% The value is a name without the starting slash
+% (it is passed through |\pdf_name_from_unicode_e:n|),
+% for checkbox for example |Yes|. If used it should typically have the same value
+% as the V and DV key of the field.
+% \end{function}
%
-% \item[AA] An action dictionary. For this we need a special command to setup such
-% dictionaries, so that they then can be used in various places.
+%\begin{function}{setannotflags,setF,unsetannotflags,unsetF}
+% \begin{syntax}
+% |setannotflags| = \meta{comma list of flags}\\
+% |setF| = \meta{comma list of flags}\\
+% |unsetannotflags| = |all| \verb"|" \meta{comma list of flags}\\
+% |unsetF| = |all| \verb"|" \meta{comma list of flags}
+% \end{syntax}
+% These keys allow to set or unset the annot flags. They expect a comma lists of
+% flag names. Allowed names |Invisible|, |Hidden|,
+% |Print|, |NoZoom|,|NoRotate|, |NoView|, |ReadOnly|, |Locked|, |ToggleNoView|,
+% |LockedContents|, or the lowercase variants or numbers.
+% \end{function}
%
-% \end{description}
+% \begin{function}{AA/*}
+% \begin{syntax}
+% |AA/*| = \meta{string (ECMAScript)}
+% \end{syntax}
+% * should be one of |F|, |Bl|, |D|, |U|, |E|, |X|, |PO|, |PC|, |PV|, |PI|.
+% Alias names for the first six keys are
+% |onfocus|, |onblur|, |onmousedown|, |onmouseup|, |onenter|, |onexit|.
+% These keys adds then the respective key to the |/AA| dictionary
+% of the field annotation object.
+% Their value should be javascript code. The |/AA| dictionary
+% is suppressed if a pdf/A standard is set.
+%
+% For example
+% \begin{verbatim}
+% onenter={app.alert('Hello');}
+% \end{verbatim}
+% \end{function}
%
-% \subsubsection{The widget annotation dictionary}
+% The following keys add values to the \emph{dynamic appearance dictionary}
+% |MK| directory. This is only relevant for
+% annotations with dynamic content, like e.g. textfields.
+% The settings can also affect checkboxes and radio buttons if the (deprecated)
+% |NeedAppearances| is set to true.
+%
+% The |MK| dictionary can also be added by using |\pdfannot_dict_put:nnn{Widget}{MK}{...}|
+% but the two methods should not be mixed.
+%
+% \begin{function}{MK/R,rotate}
+% \begin{syntax}
+% |MK/R| = |0| \verb"|" |90| \verb"|" |180| \verb"|" |270|\\
+% |rotate| = |0| \verb"|" |90| \verb"|" |180| \verb"|" |270|
+% \end{syntax}
+% These rotates the content of the annotation.
+% \end{function}
%
-% \begin{description}
-% \item[Type] Value: |/Annot|, set automatically
-% \item[Subtype] Value: |/Widget| this is added automatically.
-% We use an internal dictionary which is locally copied over the one from l3pdfannot.
-% It can be filled with keyval options.
-% \item[Parent] The reference to the field, automatically added.
-% \item[Rect] the size, calculated from the box size
-% \item[Contents] a text string, not really needed but an optional key should allow to
-% set it,
-% \item[AP] the appearance dictionary. It should look like this
-% |/AP <</N <</Yes 17 0 R/Off 15 0 R>>>>|. I need to test if it makes sense here to
-% have a |/R| and |/D| entry too. The objects refer to suitable xforms.
-% \item[AS] should be either |/Yes| or |/Off|, and sensibly by default be
-% the same as the V entry in the field dictionary. If they differ the AS entry wins.
+% \begin{function}{MK/BC,bordercolor}
+% \begin{syntax}
+% |MK/BC| = \meta{color expression} \verb"|" [\meta{model}]\Arg{values}\\
+% |bordercolor| = \meta{color expression} \verb"|" [\meta{model}]\Arg{values}
+% \end{syntax}
+% These colors the border. Internally currently RGB is used.
+% The colors used in
+% \meta{color expression} must be known to the \pkg{l3color} commands.
+% \end{function}
%
-% \item[A] Action, this must be checked.
-% \item[AA] additional actions. This must be checked too.
+% \begin{function}{MK/BG,backgroundcolor}
+% \begin{syntax}
+% |MK/BG| = \meta{color expression} \verb"|" [\meta{model}]\Arg{values}\\
+% |backgroundcolor| = \meta{color expression} \verb"|" [\meta{model}]\Arg{values}
+% \end{syntax}
+% These colors the background. Internally currently RGB is used.
+% The colors used in
+% \meta{color expression} must be known to the \pkg{l3color} commands.
+% \end{function}
%
-% \item[Border, C, OC, AF, BM, Lang, P, NM, M, F, BS, H]: These are not specifically
-% needed for checkbox. An interface to add something to the used annot dictionary
-% is needed (or already there), but probably no special key-val support for now.
+% \begin{function}{MK/CA,caption}
+% \begin{syntax}
+% |MK/CA| = \meta{string}\\
+% |caption| = \meta{string}
+% \end{syntax}
+% This sets a text for the caption. \meta{string} is passed through \cs{pdf_string_from_unicode:nnN}
+% and parentheses are added automatically. The font used seems to depend on
+% the whims of the PDF reader: At least for checkboxes adobe reader quite insists to
+% always use a symbol font and not a text font. It also shows always
+% only one symbol, regardless how much one put in the string.
+% hyperref uses the key names |checkboxsymbol| and
+% |radiosymbol| for this setting.
+% \end{function}
%
-% \item[MK] this is what hyperref uses to set the appearance, but I
-% explicitly leave it out and use |AP|.
+% The remaining key are useful for buttons only, currently no special syntax support
+% is implemented. They will be handled when the code for push buttons is developed and
+% tested.
+% \begin{function}{MK/*}
+% \begin{syntax}
+% |MK/*| = \meta{various}
+% \end{syntax}
+% These keys adds the various entries in the \emph{dynamic appearance dictionary}.
+% * should be one of |RC|, |AC|, |I|, |RI|, |IX|, |IF|, |TP|.
+% The |MK| dictionary can also be added by using |\pdfannot_dict_put:nnn{Widget}{MK}{...}|
+% but the two methods should not be mixed.
+% \end{function}
%
-% \item[Q] (alignment), used by hyperref but not relevant as we don't have variable
-% text here.
-% \end{description}
% \end{documentation}
%
% \begin{implementation}
-% \section{\pkg{l3pdffield-checkbox} Implementation}
+% \section{\pkg{l3pdffield} Implementation}
% \begin{macrocode}
%<*package>
%<@@=pdffield>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesExplPackage{l3pdffield-testphase}{2021-03-17}{0.95c}%
- {form field checkboxes}
+\ProvidesExplPackage{l3pdffield-testphase}{2021-05-14}{0.95d}%
+ {form fields}
% \end{macrocode}
% \subsection{hyperref specific command}
% hyperref sets NeedAppearances by default. As this is deprecated we disable this.
% \begin{macrocode}
\csname HyField@NeedAppearancesfalse\endcsname % suppress NeedAppearances
-% values from hyperref:
-%\def\DefaultOptionsofCheckBox{print}
-%\def\DefaultHeightofCheckBox{\normalbaselineskip}
-%\def\DefaultWidthofCheckBox{\normalbaselineskip}
% \end{macrocode}
+%
% \subsection{local variables}
+%
% \begin{macrocode}
-\str_new:N \l_@@_field_name_str
\str_new:N \l_@@_tmpa_str
-\str_new:N \l_@@_name_tmpa_str
-\tl_new:N \l_@@_keys_tmpa_tl
+\tl_new:N \l_@@_tmpa_tl
+\tl_new:N \l_@@_tmpa_keys_tl
+\cs_new_protected:Npn \@@_tmpa:n #1 {}
+\cs_new_protected:Npn \@@_tmpa:nn #1 #2 {}
+\tl_new:N \l_@@_currentparent_tl
+\tl_new:N \l_@@_fieldID_tl
% \end{macrocode}
%
% \subsection{messages}
@@ -383,15 +780,40 @@
}
\msg_new:nnn {pdffield}{appearance-missing}
{
- The~appearance~`#1`~is~missing~for~the~#2~appearance.
+ The~appearance~definition~`#1`~is~missing~for~the~#2~appearance.
+ }
+\msg_new:nnn {pdffield}{not-implemented}
+ {
+ Support~for~'/#1'~is~not~implemented\\
+ The~key~is~ignored.
+ }
+\msg_new:nnn {pdffield}{key-disabled}
+ {
+ key~`#2`~is~disabled~and~ignored~in~the~`#1`~command.\\
+ Use~key~`#3`~instead.
}
-\msg_new:nnn {pdffield}{field-keys-ignored}
+\msg_new:nnn {pdffield}{parent-field-missing}
{
- The~field~`#1`~is~already~initialized\\
- The~field~keys~`#2`~are~ignored.
+ The~parent~field~'#1'~doesn't~exist\\
+ Create~it~with~\tl_to_str:n{\pdffield_field:nn}
}
% \end{macrocode}
+% An auxiliary command to disable some keys
+% \begin{macro}{\@@_key_disable:nnn}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_key_disable:nnn #1#2#3
+ {
+ \keys_define:nn {pdffield}
+ {
+ #2 .code:n =
+ {
+ \msg_warning:nnnnn {pdffield}{key-disabled}{#1}{#2}{#3}
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
% \subsection{bitsets}
% A bitset for the field flag Ff
% and an internal copy of the annot bitset.
@@ -417,7 +839,27 @@
Comb = 25,%Tx, requires MaxLen in dict
RadiosInUnison = 26,%Btn Radio
RichText = 26,%Tx
- CommitOnSelChange = 27
+ CommitOnSelChange = 27,
+ readonly = 1,
+ required = 2,
+ noexport = 3,
+ multiline = 13,%Tx
+ password = 14,
+ notoggletooff = 15,%Btn, radio button
+ radio = 16,%Btn: Radio: 15=1, 16=0
+ pushbutton = 17,%Btn: Checkbox: 15=0, 16=0
+ %Btn: Pushbutton: 16=1
+ combo = 18,%Ch: Combo=1 List=0
+ edit = 19,%Ch, Combo=1 -> + edit field
+ sort = 20,%Ch, not relevant for view...
+ fileselect = 21,%Tx
+ multiselect = 22,%Ch
+ donotspellcheck = 23,%Tx, Ch (if Combo + Edit set)
+ donotscroll = 24,%Tx
+ comb = 25,%Tx, requires MaxLen in dict
+ radiosinunison = 26,%Btn Radio
+ richtext = 26,%Tx
+ commitonselchange = 27
}
\bitset_new:Nn \l_@@_F_bitset
@@ -431,102 +873,107 @@
ReadOnly = 7,
Locked = 8,
ToggleNoView = 9,
- LockedContents = 10
+ LockedContents = 10,
+ invisible = 1,
+ hidden = 2,
+ print = 3,
+ nozoom = 4,
+ norotate = 5,
+ noview = 6,
+ readonly = 7,
+ locked = 8,
+ togglenoview = 9,
+ lockedcontents = 10
}
% \end{macrocode}
% \subsection{The field dictionary}
-% The field dictionary is the main object. It references the
-% actual widget annotations as kids. It is created at the first
-% checkbox with a specific name.
+% The field dictionary is the main object.
% To be able to set values from the outside it will use a
% dictionary which can be filled by key-val.
% \begin{macrocode}
-\pdfdict_new:n {l_@@/checkbox/field}
-\pdfdict_put:nnn {l_@@/checkbox/field}{FT}{/Btn}
+\pdfdict_new:n {l_@@/field}
+\pdfdict_new:n {l_@@/field/AA}
+\bool_new:N \l_@@_root_field_bool
% \end{macrocode}
-% We need to check if the name contains a dot. But we will do this in an external command
-% to avoid to have it twice. Here we assume that the name is already converted and safe.
-%
-% We also assume that values that can be changed by the user are set outside
-% in the dictionary.
-% If the field object already exists nothing is done.
-% \begin{macro}{\@@_checkbox_field_add:n}
+% \begin{macro}{\@@_field:n}
% \begin{syntax}
-% \cs{@@_checkbox_field_add:n}\Arg{name}
+% \cs{@@_field:n}\Arg{field ID}
% \end{syntax}
-% \meta{name} should be a PDF text string without period. It identifies the
-% field.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_checkbox_field_new:n #1
+\cs_new_protected:Npn \@@_field:n #1
{
- \group_begin:
- \pdf_object_new:nn {@@_checkbox/field/#1} {dict}
- \pdf_object_new:nn {@@_checkbox/field/#1/Kids} {array}
- \seq_new:c {g_@@_checkbox/field/#1/Kids_seq}
- \hook_gput_code:nnn {shipout/lastpage}{pdffield} %xetex needs this ...
- {
- \pdf_object_write:nx {@@_checkbox/field/#1/Kids}
- {
- \seq_use:cn{g_@@_checkbox/field/#1/Kids_seq}{~}
- }
- }
- \pdfdict_put:nnn {l_@@/checkbox/field}{T}{(#1)}
- % V,DV are names describing the appearance. With checkboxes
- % the values /Yes and /Off are used.
- % this values are taken from the outside
- \pdfdict_put:nnx {l_@@/checkbox/field}
- {Kids}
- {
- \pdf_object_ref:n {@@_checkbox/field/#1/Kids}
- }
- \bitset_set_false:Nn \l_@@_Ff_bitset {Radio}
- \bitset_set_false:Nn \l_@@_Ff_bitset {Pushbutton}
- \pdfdict_put:nnx {l_@@/checkbox/field}
- {Ff}
- {\bitset_to_arabic:N \l_@@_Ff_bitset }
- \pdfdict_if_empty:nF{l_@@/checkbox/field/AA}
- {
- \pdfmeta_standard_verify:nT
- {annot_widget_no_AA}
- {
- \pdfdict_put:nnx
- {l_@@/checkbox/field}
- {AA}
- {<<\pdfdict_use:n {l_@@/checkbox/field/AA}>>}
- }
- }
- \pdf_object_write:nx {@@_checkbox/field/#1} { \pdfdict_use:n {l_@@/checkbox/field} }
- \pdfmanagement_add:nnx
- { Catalog / AcroForm }
- { Fields }
- {\pdf_object_ref:n {@@_checkbox/field/#1} }
- \group_end:
+ \pdf_object_new:nn {@@/field/#1} {dict}
+ \pdf_object_new:nn {@@/field/Kids/#1} {array}
+ \tl_if_empty:NTF \l_@@_currentparent_tl
+ {
+ \pdfmanagement_add:nnx
+ { Catalog / AcroForm }
+ { Fields }
+ {\pdf_object_ref:n {@@/field/#1} }
+ }
+ {
+ \exp_args:Ne
+ \pdf_object_if_exist:nTF {@@/field/\l_@@_currentparent_tl}
+ {
+ \pdfdict_put:nnx { l_@@/field }{Parent}
+ {\exp_args:Ne \pdf_object_ref:n{@@/field/\l_@@_currentparent_tl}}
+ \seq_gput_right:cx {g_@@_field/Kids/\l_@@_currentparent_tl _seq}
+ { \exp_args:Ne \pdf_object_ref:n{@@/field/#1}}
+ }
+ {
+ \msg_error:nnx {pdffield}{parent-field-missing}{\l_@@_currentparent_tl}
+ }
+ }
+ \seq_new:c {g_@@_field/Kids/#1_seq}
+ \pdfdict_put:nnx {l_@@/field}
+ {Kids}
+ {
+ \pdf_object_ref:n {@@/field/Kids/#1}
+ }
+ \pdfdict_put:nnx {l_@@/field}
+ {Ff}
+ {\bitset_to_arabic:N \l_@@_Ff_bitset }
+ \pdfdict_if_empty:nF{l_@@/field/AA}
+ {
+ \pdfmeta_standard_verify:nT
+ {annot_widget_no_AA}
+ {
+ \pdf_object_unnamed_write:nx {dict}{\pdfdict_use:n {l_@@/field/AA}}
+ \pdfdict_put:nnx
+ {l_@@/field}
+ {AA}
+ {\pdf_object_ref_last:}
+ }
+ }
+ \hook_gput_code:nnn {shipout/lastpage}{pdffield} %xetex needs this ...
+ {
+ \pdf_object_write:nx {@@/field/Kids/#1}
+ {
+ \seq_use:cn{g_@@_field/Kids/#1_seq}{~}
+ }
+ }
+ \pdf_object_write:nx {@@/field/#1} { \pdfdict_use:n {l_@@/field} }
+ }
+\cs_new_protected:Npn \pdffield_field:nn #1 #2
+ {
+ \group_begin:
+ \keys_set:nn { pdffield } {#1}
+ \@@_field:n {#2}
+ \group_end:
}
-
% \end{macrocode}
% \end{macro}
+%
% \subsection{The annot dictionary}
% We assume that the annotation should really occupy space on the page and
% leave vertical mode.
-% We also assume that keys like AP, AS are added before through keys to
-% the dictionary.
-% We use a local dictionary which is copied into |l__pdfannot/widget| in the code.
-% \begin{macrocode}
-\pdfdict_new:n {l_@@/checkbox/annot}
-\pdfdict_put:nnn {l_@@/checkbox/annot}{Subtype}{/Widget}
-% \end{macrocode}
%
-% \begin{macro}{\@@_checkbox_annot_add:nnnn}
+% \begin{macro}{\@@_annot:}
+% The command doesn't add grouping, so should only be used inside a group.
+%
% \begin{macrocode}
-\cs_new_protected:Npn \@@_checkbox_annot_add:nnnn #1 #2 #3 #4 %name, wd, ht, dp,
+\cs_new_protected:Npn \@@_annot:
{
- \group_begin:
-% \end{macrocode}
-% Copy the internal dictionary to the pdfannot dictionary. This
-% perhaps need a function in l3pdfannot,
-% as it actually uses an internal name of another module.
-% \begin{macrocode}
- \pdfdict_put:nnx {l_@@/checkbox/annot}{AP}{<<\pdfdict_use:n{l_@@/checkbox/annot/AP}>>}
\pdfmeta_standard_verify:nF
{annot_flags}
{
@@ -535,428 +982,656 @@
\bitset_set_false:Nn \l_@@_F_bitset {Invisible}
\bitset_set_false:Nn \l_@@_F_bitset {NoView}
}
- \pdfdict_if_empty:nF{l_@@/checkbox/annot/AA}
+ \pdfannot_dict_put:nnx {widget}{F}{ \bitset_to_arabic:N \l_@@_F_bitset }
+ \tl_if_empty:NF \l_@@_currentparent_tl
{
- \pdfmeta_standard_verify:nT
- {annot_widget_no_AA}
- {
- \pdfdict_put:nnx
- {l_@@/checkbox/annot}
- {AA}
- {<<\pdfdict_use:n {l_@@/checkbox/annot/AA}>>}
- }
- }
- \pdfdict_put:nnx {l_@@/checkbox/annot}{F}{ \bitset_to_arabic:N \l_@@_F_bitset }
- \pdfdict_set_eq:nn {l__pdfannot/widget}{l_@@/checkbox/annot}
- \pdfannot_dict_put:nnx {widget}{Parent}{\pdf_object_ref:n{@@_checkbox/field/#1}}
+ \exp_args:Ne
+ \pdf_object_if_exist:nTF { @@/field/\l_@@_currentparent_tl }
+ {
+ \pdfannot_dict_put:nnx {widget}{Parent}
+ {
+ \exp_args:Ne
+ \pdf_object_ref:n{@@/field/\l_@@_currentparent_tl}
+ }
+ }
+ {
+ \msg_error:nnx { pdffield }{parent-field-missing}{\l_@@_currentparent_tl}
+ }
+ }
\mode_leave_vertical:
\hbox_to_wd:nn
- { #2 }
+ { \l_@@_annot_wd_dim }
{
- \rule [-#4]{0pt}{\dim_eval:n{#3+#4} }
+ \rule [-\l_@@_annot_dp_dim]{0pt}{\dim_eval:n{\l_@@_annot_ht_dim+\l_@@_annot_dp_dim} }
\pdfannot_widget_box:nnn
- { #2 }
- { #3 }
- { #4 }
+ { \l_@@_annot_wd_dim }
+ { \l_@@_annot_ht_dim }
+ { \l_@@_annot_dp_dim }
\hfill
}
- \seq_gput_right:cx {g_@@_checkbox/field/#1/Kids_seq}{ \pdfannot_box_ref_last:}
- \group_end:
- }
-
-% \end{macrocode}
-% \end{macro}
-% \subsection{Appearances}
-% We don't try to force a size or content here.
-% The default appearances are a cross (\cs{texttimes}),
-% Every appearance should have two versions and follow the naming
-% checkbox/\meta{name}/Yes and checkbox/\meta{name}/Off.
-% TODO check if one delay the creation to a sensible place
-% (and don't forget that the appearance key sets an initial
-% value)
-% \begin{macro}{\pdffield_store_appearance:nn,\@@_store_default_appearances:}
-% \begin{macrocode}
-\cs_new_protected:Npn \pdffield_store_appearance:nn #1 #2
- {
- \pdfxform_new:nnn {@@_#1}{}{#2}
+ \tl_if_empty:NF \l_@@_currentparent_tl
+ {
+ \seq_if_exist:cTF {g_@@_field/Kids/\l_@@_currentparent_tl _seq}
+ {
+ \seq_gput_right:cx
+ {g_@@_field/Kids/\l_@@_currentparent_tl _seq}
+ { \pdfannot_box_ref_last:}
+ }
+ {
+ \msg_error:nnx { pdffield}{parent-field-missing}{\l_@@_currentparent_tl}
+ }
+ }
}
-
-\cs_new_protected:Nn \@@_store_default_appearances:
- {
- \pdffield_store_appearance:nn {checkbox/default/Yes}
- {
- \normalsize
- \fboxsep 0pt
- \framebox
- [ \dim_eval:n { \box_ht:N\strutbox+\box_dp:N\strutbox } ]
- { \texttimes \strut }
- }
- \pdffield_store_appearance:nn {checkbox/default/Off}
- {
- \normalsize
- \fboxsep 0pt
- \framebox
- [ \dim_eval:n { \box_ht:N\strutbox+\box_dp:N\strutbox } ]
- { \phantom{\texttimes} \strut }
- }
- }
-
-\@@_store_default_appearances:
-% \end{macrocode}
-% \end{macro}
-% We define a dictionary for the AP content, so that we can add R and D too
-% \begin{macrocode}
-\pdfdict_new:n {l_@@/checkbox/annot/AP}
-% \end{macrocode}
-%
-% \subsection{Assembling the checkbox}
-% \begin{macro}{\@@_checkbox_add:n}
-% \begin{macrocode}
-
-\cs_new_protected:Npn \@@_checkbox_add:n #1
+\cs_new_protected:Npn \pdffield_annot:n #1
{
\group_begin:
- \keys_set_filter:nnnN {pdffield / checkbox }{field}{#1}\l_@@_keys_tmpa_tl
- \str_if_empty:NT \l_@@_field_name_str
- {
- \msg_error:nn {pdffield}{empty-name}
- }
- \exp_args:Nx
- \pdf_object_if_exist:nTF {@@_checkbox/field/\l_@@_field_name_str}
- {
- \tl_if_empty:NF \l_@@_keys_tmpa_tl
- {
- \msg_warning:nnxx
- {pdffield}
- {field-keys-ignored}
- {\l_@@_field_name_str}
- {\l_@@_keys_tmpa_tl}
- }
- }
- {
- \keys_set:nV { pdffield/checkbox } \l_@@_keys_tmpa_tl
- \exp_args:No
- \@@_checkbox_field_new:n {\l_@@_field_name_str}
- }
- \exp_args:No
- \@@_checkbox_annot_add:nnnn
- {\l_@@_field_name_str}
- {\l_@@_annot_wd_tl }
- {\l_@@_annot_ht_tl }
- {\l_@@_annot_dp_tl }
+ \keys_set:nn { pdffield } {#1}
+ \@@_annot:
\group_end:
}
% \end{macrocode}
% \end{macro}
-% \subsection{Keys}
-% The size of the checkbox
%
+% \subsection{auxiliary command for color keys}
% \begin{macrocode}
-\tl_new:N \l_@@_annot_ht_tl
-\tl_new:N \l_@@_annot_wd_tl
-\tl_new:N \l_@@_annot_dp_tl
+\cs_new_protected:Npn \@@_color_set:nn #1 #2
+ {
+ \tl_if_head_eq_charcode:nNTF {#2}[ %]
+ {
+ \@@_color_set_aux:nwn { #1 } #2
+ }
+ {
+ \color_set:nn {#1} {#2}
+ }
+ }
-\keys_define:nn { pdffield / checkbox }
+\cs_new_protected:Npn \@@_color_set_aux:nwn #1 [#2] #3
{
- ,width .tl_set:N = \l_@@_annot_wd_tl
- ,height .tl_set:N = \l_@@_annot_ht_tl
- ,depth .tl_set:N = \l_@@_annot_dp_tl
- ,width .initial:n = \normalbaselineskip
- ,height .initial:n = \normalbaselineskip
- ,depth .initial:n = 0pt
+ \color_set:nnn {#1}{#2}{#3}
}
+
% \end{macrocode}
+% \subsection{Field keys}
% The names. The main name should not be empty, it is added to the dictionary
% when the field is created. A new name means a new field.
% The other names can only be set when the field is created,
% so we put them in the field group.
% \begin{macrocode}
-\keys_define:nn { pdffield / checkbox }
+\cs_new_protected:Npn \@@_value_handler:nN #1#2
+ {
+ \tl_set:Nn #2 {#1}
+ }
+\keys_define:nn { pdffield }
{
- ,name .code:n =
+ ,parent .tl_set:N = \l_@@_currentparent_tl
+ ,parent .groups:n = {field,annot}
+ ,T .code:n =
{
- \pdf_string_from_unicode:nnN {utf8/string-raw}{#1}\l_@@_field_name_str
- \str_if_in:NnT \l_@@_field_name_str {.}
+ \pdf_string_from_unicode:nnN {utf8/string-raw}{#1}\l_@@_tmpa_str
+ \str_if_in:NnT \l_@@_tmpa_str {.}
{
- \msg_error:nnx {pdffield}{no-period}{\l_@@_field_name_str}
+ \msg_error:nnx {pdffield}{no-period}{\l_@@_tmpa_str}
}
- \str_if_empty:NT\l_@@_field_name_str
+ \str_if_empty:NTF\l_@@_tmpa_str
{
- \msg_error:nn {pdffield}{empty-name}
+ \msg_warning:nn {pdffield}{empty-name}
+ \pdfdict_remove:nn { l_@@/field }{T}
+ }
+ {
+ \pdfdict_put:nnx { l_@@/field }{T}{(\l_@@_tmpa_str)}
}
}
+ ,T .value_required:n = true
+ ,T .groups:n = {field}
+ ,name .meta:n = {T={#1}}
,name .value_required:n = true
- ,name .initial:n = checkbox
- ,altname .code:n =
+ ,name .groups:n = {field}
+ ,TU .groups:n = {field}
+ ,TU .code:n =
{
- \pdf_string_from_unicode:nnN {utf8/string}{#1}\l_@@_name_tmpa_str
- \pdfdict_put:nnx { l_@@/checkbox/field }{TU}{\l_@@_name_tmpa_str}
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{TU}
+ }
+ {
+ \pdf_string_from_unicode:nnN {utf8/string}{#1}\l_@@_tmpa_str
+ \pdfdict_put:nnx { l_@@/field }{TU}{\l_@@_tmpa_str}
+ }
}
+ ,TU .groups:n = {field}
+ ,altname .meta:n = {TU={#1}}
,altname .groups:n = {field}
- ,mappingname .code:n =
+ ,TM .code:n =
{
- \pdf_string_from_unicode:nnN {utf8/string}{#1}\l_@@_name_tmpa_str
- \pdfdict_put:nnx { l_@@/checkbox/field }{TM}{\l_@@_name_tmpa_str}
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{TM}
+ }
+ {
+ \pdf_string_from_unicode:nnN {utf8/string}{#1}\l_@@_tmpa_str
+ \pdfdict_put:nnx { l_@@/field }{TM}{\l_@@_tmpa_str}
+ }
}
+ ,TM .groups:n = {field}
+ ,mappingname .meta:n = {TM={#1}}
,mappingname .groups:n = {field}
- }
-% \end{macrocode}
-
-% A key to decide if the Box is initially checked or not
-% \begin{macrocode}
-\keys_define:nn { pdffield / checkbox }
- {
- ,checked .choice:
- ,checked / false .code:n =
+ ,FT .choices:nn =
+ { Btn, Tx, Ch, Sig }
+ {
+ \pdfdict_put:nnn { l_@@/field }{FT}{ /#1 }
+ }
+ ,FT .groups:n = {field}
+ ,V .code:n =
{
- \pdfdict_put:nnn {l_@@/checkbox/field}{V}{/Off}
- \pdfdict_put:nnn {l_@@/checkbox/annot}{AS}{/Off}
- \pdfdict_put:nnn {l_@@/checkbox/field}{DV}{/Off}
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{V}
+ }
+ {
+ \@@_value_handler:nN{#1}\l_@@_tmpa_str
+ \pdfdict_put:nnx { l_@@/field }{V}{ \l_@@_tmpa_str }
+ }
}
- ,checked / true .code:n =
+ ,V .groups:n = {field}
+ ,DV .code:n =
{
- \pdfdict_put:nnn {l_@@/checkbox/field}{V}{/Yes}
- \pdfdict_put:nnn {l_@@/checkbox/annot}{AS}{/Yes}
- \pdfdict_put:nnn {l_@@/checkbox/field}{DV}{/Yes}
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{DV}
+ }
+ {
+ \@@_value_handler:nN{#1}\l_@@_tmpa_str
+ \pdfdict_put:nnx { l_@@/field }{DV}{ \l_@@_tmpa_str }
+ }
}
- ,checked .default:n = {true}
- ,checked .initial:n = {false}
- }
+ ,DV .groups:n = {field}
+ ,MaxLen .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{MaxLen}
+ }
+ {
+ \pdfdict_put:nnx { l_@@/field }{MaxLen}{ #1 }
+ }
+ }
+ ,MaxLen .groups:n = {field}
+ ,Lock .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{Lock}
+ }
+ {
+ \pdfdict_put:nnx { l_@@/field }{Lock}{ \pdf_object_ref:n{#1} }
+ }
+ }
+ ,Lock .groups:n = {field}
+ ,SV .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{SV}
+ }
+ {
+ \pdfdict_put:nnx { l_@@/field }{SV}{ \pdf_object_ref:n{#1} }
+ }
+ }
+ ,SV .groups:n = {field}
+ ,Opt .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{Opt}
+ }
+ {
+ \pdfdict_put:nnx { l_@@/field }{Opt}{ \pdf_object_ref:n{#1} }
+ }
+ }
+ ,Opt .groups:n = {field}
+ ,TI .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{TI}
+ }
+ {
+ \pdfdict_put:nnx { l_@@/field }{TI}{ #1 }
+ }
+ }
+ ,TI .groups:n = {field}
+ ,I .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{I}
+ }
+ {
+ \pdfdict_put:nnx { l_@@/field }{I}{ \pdf_object_ref:n{#1} }
+ }
+ }
+ ,I .groups:n = {field}
+ }
% \end{macrocode}
-% Flags. We don't add lots of individual keys but mapped the key names directly
+
+% Flags. We don't add lots of individual keys but map the key names directly
% \begin{macrocode}
-\keys_define:nn { pdffield / checkbox }
+\keys_define:nn { pdffield }
{
- ,setfieldflags .code:n =
+ ,setFf .code:n =
{
\clist_map_inline:nn {#1}
{
\bitset_set_true:Nn \l_@@_Ff_bitset {##1}
}
}
+ ,setFf .groups:n = {field}
+ ,setfieldflags .meta:n =
+ {setFf={#1}}
,setfieldflags .groups:n = {field}
- ,unsetfieldflags .code:n =
+ ,unsetFf .multichoice:
+ ,unsetFf / all .code:n = { \bitset_clear:N \l_@@_Ff_bitset}
+ ,unsetFf / unknown .code:n =
{
- \clist_map_inline:nn {#1}
- {
- \bitset_set_false:Nn \l_@@_Ff_bitset {##1}
- }
+ \bitset_set_false:Nn \l_@@_Ff_bitset {#1}
}
+ ,unsetFf .groups:n = {field}
+ ,unsetfieldflags .meta:n = {unsetFf={#1}}
,unsetfieldflags .groups:n = {field}
- ,setannotflags .code:n =
+ }
+
+% \end{macrocode}
+%
+% Keys for the AA dictionary. They all trigger a javascript option.
+% K=keystroke, F=format, V=validate, C=calculate
+% \begin{macrocode}
+\cs_set_protected:Npn \@@_tmpa:n #1 %
+ {
+ \keys_define:nn { pdffield }
{
- \clist_map_inline:nn {#1}
+ AA/#1 .code:n =
{
- \bitset_set_true:Nn \l_@@_F_bitset {##1}
- }
+ \pdf_string_from_unicode:nnN {utf8/string-raw}{##1}\l_@@_tmpa_str
+ \str_if_empty:NTF \l_@@_tmpa_str
+ {
+ \pdfdict_remove:nn {l_@@/field/AA}{#1}
+ }
+ {
+ \pdfdict_put:nnx {l_@@/field/AA}
+ {#1}
+ {<</S/JavaScript/JS(\l_@@_tmpa_str)>>}
+ }
+ },
+ AA/#1 .groups:n = {field}
}
- ,unsetannotflags .code:n =
+ }
+
+\clist_map_inline:nn {K,F,V,C}{\@@_tmpa:n{#1}}
+
+\cs_set_protected:Npn \@@_tmpa:nn #1 #2
+ {
+ \keys_define:nn { pdffield }
{
- \clist_map_inline:nn {#1}
- {
- \bitset_set_false:Nn \l_@@_F_bitset {##1}
- }
+ #1 .meta:nn =
+ { pdffield }{AA/#2={##1}},
+ #1 .groups:n = {field}
}
}
+\@@_tmpa:nn {keystroke}{K}
+\@@_tmpa:nn {format} {F}
+\@@_tmpa:nn {validate} {V}
+\@@_tmpa:nn {calculate}{C}
+
+
+% \end{macrocode}
+%
+% \begin{macrocode}
+\keys_define:nn { pdffield }
+ {
+ DA .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfdict_remove:nn { l_@@/field }{DA}
+ }
+ {
+ \pdfdict_put:nnx { l_@@/field }{DA}{ (#1) }
+ }
+ }
+ ,DA .groups:n = {field}
+ ,Q .choices:nn = {left,center,right}
+ {
+ \pdfdict_put:nnx { l_@@/field }{Q}{ \int_eval:n{\l_keys_choice_int-1} }
+ }
+ ,Q / .code:n = { \pdfdict_remove:nn { l_@@/field }{Q} }
+ ,Q .groups:n = {field}
+ ,align .meta:n={Q=#1}
+ ,DS .code:n =
+ {
+ \msg_warning:nnn {pdffield}{not-implemented}{DS}
+ }
+ ,DS .groups:n = {field}
+ ,RV .code:n =
+ {
+ \msg_warning:nnn {pdffield}{not-implemented}{RV}
+ }
+ ,RV .groups:n = {field}
+ }
+% \end{macrocode}
+%
+% \subsection{Annotation keys}
+% The size of the field annotation
+%
+% \begin{macrocode}
+\dim_new:N \l_@@_annot_ht_dim
+\dim_new:N \l_@@_annot_wd_dim
+\dim_new:N \l_@@_annot_dp_dim
-\keys_define:nn { pdffield / checkbox }
+\keys_define:nn { pdffield }
{
- appearance .code:n = %value is a name of an appearance
+ ,width .dim_set:N = \l_@@_annot_wd_dim
+ ,height .dim_set:N = \l_@@_annot_ht_dim
+ ,depth .dim_set:N = \l_@@_annot_dp_dim
+ ,width .initial:n = 0pt
+ ,height .initial:n = 0pt
+ ,depth .initial:n = 0pt
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\keys_define:nn { pdffield }
+ {
+ %parent is defined in field
+ ,AS .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfannot_dict_remove:nn { widget }{AS}
+ }
+ {
+ \pdfannot_dict_put:nnx {widget}{AS}{\pdf_name_from_unicode_e:n{#1}}
+ }
+ }
+ ,AS .groups:n = annot
+ }
+\cs_new_protected:Npn \@@_appearance_handler:nnn #1#2#3
+ {
+ \pdfxform_if_exist:nTF { #1 }
+ {
+ \pdfannot_dict_put:nnx {widget/AP}{#2}
+ {
+ \pdfxform_ref:n {#1}
+ }
+ }
+ {
+ \msg_error:nnnn{pdffield}{appearance-missing}{#1}{#3}
+ }
+ }
+\keys_define:nn { pdffield }
+ {
+ AP/N .code:n =
{
- \pdfxform_if_exist:nTF { @@_#1/Yes }
+ \tl_if_empty:nTF {#1}
{
- \pdfdict_put:nnn {l_@@/checkbox/annot/AP}
- {N}
- {
- <<
- /Yes ~ \pdfxform_ref:n { @@_#1/Yes}
- /Off ~ \pdfxform_ref:n { @@_#1/Off}
- >>
- }
+ \pdfannot_dict_remove:nn { widget/AP }{N}
}
{
- \msg_error:nnnn{pdffield}{appearance-missing}{#1}{normal}
+ \@@_appearance_handler:nnn {#1}{N}{normal}
}
- },
- appearance .initial:n = checkbox/default,
+ }
+ ,AP/N .groups:n = annot
+ ,appearance .meta:n = {AP/N={#1}}
}
-
-\keys_define:nn { pdffield / checkbox }
+\keys_define:nn { pdffield }
{
- rollover-appearance .code:n = %value is a name of an appearance
+ AP/R .code:n =
{
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfannot_dict_remove:nn { widget/AP }{R}
+ }
+ {
+ \@@_appearance_handler:nnn {#1}{R}{rollover}
+ }
+ }
+ ,AP/R .groups:n = annot
+ ,rollover-appearance .meta:n = {AP/R={#1}}
+ }
+\keys_define:nn { pdffield }
+ {
+ AP/D .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfannot_dict_remove:nn { widget/AP }{D}
+ }
+ {
+ \@@_appearance_handler:nnn {#1}{D}{rollover}
+ }
+ }
+ ,AP/D .groups:n = annot
+ ,down-appearance .meta:n = {AP/D={#1}}
+ }
+
+\keys_define:nn { pdffield }
+ {
+ MK/R .choices:nn = {0,90,180,270}
+ {
+ \pdfannot_dict_put:nnx {widget/MK}{R}{#1}
+ }
+ ,MK/R / .code:n =
+ {
+ \pdfannot_dict_remove:nn { widget/MK }{R}
+ }
+ ,MK/R .groups:n = annot
+ ,rotate .meta:n = {MK/R=#1}
+ }
+
+\keys_define:nn { pdffield }
+ {
+ MK/BC .code:n =
+ {
\tl_if_empty:nTF {#1}
- {
- \pdfdict_remove:nn {l_@@/checkbox/annot/AP} {R}
- }
- {
- \pdfxform_if_exist:nTF { @@_#1/Yes }
- {
- \pdfdict_put:nnn {l_@@/checkbox/annot/AP}
- {R}
- {
- <<
- /Yes ~ \pdfxform_ref:n { @@_#1/Yes}
- /Off ~ \pdfxform_ref:n { @@_#1/Off}
- >>
- }
- }
- {
- \msg_warning:nnnn{pdffield}{appearance-missing}{#1}{rollover}
- }
+ {
+ \pdfannot_dict_remove:nn { widget/MK }{BC}
+ }
+ {
+ \@@_color_set:nn {@@/tmp}{#1}
+ \color_export:nnN{@@/tmp}{space-sep-rgb}\l_@@_tmpa_tl
+ \pdfannot_dict_put:nnx {widget/MK}{BC}{[\l_@@_tmpa_tl]}
+ }
+ }
+ ,MK/BC .groups:n = annot
+ ,bordercolor .meta:n = {MK/BC=#1}
+ }
- }
- },
+\keys_define:nn { pdffield }
+ {
+ MK/BG .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \pdfannot_dict_remove:nn { widget/MK }{BG}
+ }
+ {
+ \@@_color_set:nn {@@/tmp}{#1}
+ \color_export:nnN{@@/tmp}{space-sep-rgb}\l_@@_tmpa_tl
+ \pdfannot_dict_put:nnx {widget/MK}{BG}{[\l_@@_tmpa_tl]}
+ }
+ }
+ ,MK/BG .groups:n = annot
+ ,bordercolor .meta:n = {MK/BG=#1}
}
-\keys_define:nn { pdffield / checkbox }
+
+\keys_define:nn { pdffield }
{
- down-appearance .code:n = %value is a name of an appearance
- {
+ MK/CA .code:n =
+ {
\tl_if_empty:nTF {#1}
- {
- \pdfdict_remove:nn {l_@@/checkbox/annot/AP} {D}
- }
- {
- \pdfxform_if_exist:nTF { @@_#1/Yes }
+ {
+ \pdfannot_dict_remove:nn { widget/MK }{CA}
+ }
+ {
+ \pdf_string_from_unicode:nnN {utf8/string}{#1}\l_@@_tmpa_str
+ \pdfannot_dict_put:nnx {widget/MK}{CA}{\l_@@_tmpa_str}
+ }
+ }
+ ,MK/CA .groups:n = annot
+ ,caption .meta:n = {MK/CA=#1}
+ }
+
+\cs_set_protected:Npn \@@_tmpa:n #1
+ {
+ \keys_define:nn { pdffield }
+ {
+ MK/#1 .code:n =
+ {
+ \tl_if_empty:nTF {##1}
{
- \pdfdict_put:nnn {l_@@/checkbox/annot/AP}
- {D}
- {
- <<
- /Yes ~ \pdfxform_ref:n { @@_#1/Yes}
- /Off ~ \pdfxform_ref:n { @@_#1/Off}
- >>
- }
+ \pdfannot_dict_remove:nn { widget/AP }{#1}
}
{
- \msg_warning:nnnn{pdffield}{appearance-missing}{#1}{down}
+ \pdfannot_dict_put:nnx {widget/MK}{#1}{##1}
}
- }
- },
+ }
+ ,MK/#1 .groups:n = annot
+ }
+ }
+
+\clist_map_inline:nn {RC,AC,I,RI,IX,IF,TP}
+ { \@@_tmpa:n {#1} }
+% \end{macrocode}
+% Flags.
+% \begin{macrocode}
+\keys_define:nn { pdffield }
+ {
+ ,setF .code:n =
+ {
+ \clist_map_inline:nn {#1}
+ {
+ \bitset_set_true:Nn \l_@@_F_bitset {##1}
+ }
+ }
+ ,setF .groups:n = annot
+ ,setannotflags .meta:nn =
+ { pdffield }{setF={#1}}
+ ,setannotflags .groups:n = annot
+ ,unsetF .multichoice:
+ ,unsetF / all .code:n = { \bitset_clear:N \l_@@_F_bitset}
+ ,unsetF / unknown .code:n =
+ {
+ \bitset_set_false:Nn \l_@@_F_bitset {#1}
+ }
+ ,unsetF .groups:n = annot
+ ,unsetannotflags .meta:nn =
+ { pdffield }{unsetF= {#1} }
+ ,unsetannotflags .groups:n = annot
}
+
% \end{macrocode}
%
-% Keys for the AA dictionary. They all trigger javascript option.
-% \begin{macro}{\@@_define_AAaction_key:nnn}
+% Keys for the AA dictionary. They all trigger a javascript option.
+% Fo = onfocus, Bl = onblur, D = onmousedown, U = onmouseup,
+% E = onenter, X = onexit, PO = pageopen, PC = pageclose,
+% PV = pagevisible, PI = pageinvisible
% \begin{macrocode}
-\pdfdict_new:n {l_@@/checkbox/annot/AA}
-\pdfdict_new:n {l_@@/checkbox/field/AA}
-
-\cs_new_protected:Npn \@@_define_AAaction_key:nnn #1 #2 #3 %#1 key, #2 pdf, #3 dict
+\cs_set_protected:Npn \@@_tmpa:n #1 %
{
- \keys_define:nn { pdffield / checkbox }
+ \keys_define:nn { pdffield }
{
- #1 .code:n =
+ AA/#1 .code:n =
{
- \pdf_string_from_unicode:nnN {utf8/string}{##1}\l_@@_tmpa_str
+ \pdf_string_from_unicode:nnN {utf8/string-raw}{##1}\l_@@_tmpa_str
\str_if_empty:NTF \l_@@_tmpa_str
{
- \pdfdict_remove:nn {l_@@/checkbox/#3/AA}{#2}
+ \pdfannot_dict_remove:nn {widget/AA}{#1}
}
{
- \pdfdict_put:nnx {l_@@/checkbox/#3/AA}
- {#2}
- {<</S/JavaScript/JS\l_@@_tmpa_str>>}
+ \pdfannot_dict_put:nnx {widget/AA}
+ {#1}
+ {<</S/JavaScript/JS(\l_@@_tmpa_str)>>}
}
},
- #1 .groups:n = {#3}
+ ,AA/#1 .groups:n = annot
+ }
+ }
+
+\clist_map_inline:nn {Fo,Bl,D,U,E,X,PO,PC,PV,PI}{\@@_tmpa:n{#1}}
+
+\cs_set_protected:Npn \@@_tmpa:nn #1 #2
+ {
+ \keys_define:nn { pdffield }
+ {
+ #1 .meta:nn =
+ { pdffield }{AA/#2={##1}},
+ #1 .groups:n = {annot}
}
}
-\@@_define_AAaction_key:nnn {keystroke}{K}{field}
-\@@_define_AAaction_key:nnn {format} {F}{field}
-\@@_define_AAaction_key:nnn {validate} {V}{field}
-\@@_define_AAaction_key:nnn {calculate}{C}{field}
-\@@_define_AAaction_key:nnn {onfocus} {Fo}{annot}
-\@@_define_AAaction_key:nnn {onblur} {Bl}{annot}
-\@@_define_AAaction_key:nnn {onmousedown}{D}{annot}
-\@@_define_AAaction_key:nnn {onmouseup}{U}{annot}
-\@@_define_AAaction_key:nnn {onenter} {E}{annot}
-\@@_define_AAaction_key:nnn {onexit} {X}{annot}
+\@@_tmpa:nn {onfocus} {Fo}
+\@@_tmpa:nn {onblur} {Bl}
+\@@_tmpa:nn {onmousedown}{D}
+\@@_tmpa:nn {onmouseup}{U}
+\@@_tmpa:nn {onenter} {E}
+\@@_tmpa:nn {onexit} {X}
+% \end{macrocode}
+% \subsection{Appearances}
+% \begin{macro}{\pdffield_appearance:nn}
+% \begin{macrocode}
+\cs_new_protected:Npn \pdffield_appearance:nn #1 #2
+ {
+ \pdfxform_new:nnn {#1}{}{#2}
+ }
+
+\cs_set_eq:NN \pdffield_store_appearance:nn\pdffield_appearance:nn
% \end{macrocode}
% \end{macro}
-% \subsection{user commands}
-% \begin{macro}{\pdffield_checkbox:n,\pdffield_setup:nn}
+% \subsection{Setup command}
+%
% \begin{macrocode}
-\cs_set_eq:NN \pdffield_checkbox:n \@@_checkbox_add:n
+\keys_define:nn { pdffield / setup }
+ {
+ ,create-style .code:n = { \@@_style_create:nn #1 }
+ ,preset-checkbox .code:n =
+ {
+ \keys_define:nn { pdffield }
+ {
+ @@/preset/checkbox .meta:n = {#1},
+ }
+ }
+ ,preset-textfield .code:n =
+ {
+ \keys_define:nn { pdffield }
+ {
+ @@/preset/textfield .meta:n = {#1},
+ }
+ }
+ }
+\keys_set:nn{ pdffield / setup }{preset-checkbox={}}
+\keys_set:nn{ pdffield / setup }{preset-textfield={}}
-\cs_new_protected:Npn \pdffield_setup:nn #1 #2
- {
- \keys_set:nn {pdffield / #1 } {#2}
- }
+\cs_new_protected:Npn \@@_style_create:nn #1#2
+ {
+ \keys_define:nn { pdffield }
+ {
+ @@/style/#1 .meta:n = {#2},
+ }
+ }
+
+
+\cs_new_protected:Npn \pdffield_setup:n #1
+ {
+ \keys_set:nn{ pdffield / setup }{#1}
+ }
+
+\keys_define:nn { pdffield }
+ {
+ style .code:n = {\keys_set:nn {pdffield}{@@/style/#1={#1}}}
+ }
+% \end{macrocode}
+% \begin{macrocode}
%</package>
% \end{macrocode}
-% \end{macro}
%\end{implementation}
-
-\endinput%
-%%%%
-%
-%Field dict
-%Ft : /Btn /Tx /Ch /Sig
-%Parent : OR
-%Kids: array, other fields or annot/widget
-%T: partial fieldname (test string)
-%TU: alternate description (test string)
-%TM: mapping name
-%Q integer (variable text field)
-%Ff: flags ->pdffield/checkbox/field
-%V: value % not pushbutton
-%DV: default value % not pushbutton
-%AA: Action dict ... -> see below
-%Opt: array of strings, connected to kids
-% or for choices, choices
-%TI integer (lists)
-%I array Ch (complicated ...)
-%
-%/DA ( 0 0 1 rg /Ti 12 Tf ) %text field
-%/MaxLen %text field
-%
-%Lock dict (Sig)
-%SV dict (Sig)
-%
-%
-%
-%
-%Connected widget:
-%/AS default appearance from AP ( here/Yes or /Off)
-%% Appearance
-%%checkbox
-%/AP <</N <</Yes 2 0 R /Off 3 0 R>>>>
-%/C / Border /BS
-%
-%/OC ?
-%/Structparens?
-%/F flags
-%
-%
-%AA: Submit:
-% /S /SubmitForm
-% /F file /URI (/F ( ftp : / / www . beatles . com / Movies / AbbeyRoad . mov )
-% /Fields array
-%
-% /S /ImportData
-% /F file
-%
-% /S /ResetData
-% /Fields array
-%
-% /S /JavaScript
-% /JS text string or stream
-% %\pdf_flag_new:nn {annot/field/submit} %name is wrong ...
-% {
-% Include/Exclude = 0,
-% IncludeNoValueFields = 1,
-% ExportFormat = 2,
-% GetMethod = 3, % if ExportFormat=0 -> =0 to
-% SubmitCoordinates = 4, % if ExportFormat=0 -> =0 to
-% XFDF = 5,
-% IncludeAppendSaves = 6,
-% IncludeAnnotations = 7,
-% SubmitPDF = 8,
-% CanonicalFormat = 9,
-% ExclNonUserAnnots = 10,
-% ExclFKey = 11,
-% EmbedForm = 12
-% }
-% source: %adapted from https://chat.stackexchange.com/transcript/message/54421537#54421537
+%
+% \PrintIndex
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
index 0c96ffee00..903cd42c0a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
index e8810f81ff..cf2176e439 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
@@ -53,7 +53,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -262,7 +262,8 @@
% \end{syntax}
% This commands embeds the file \meta{source filename} in the PDF,
% and creates a |/Filespec| dictionary object named \meta{object name}.
-% The object name must be unique.
+% The object name must be unique, it should start with the module name, so
+% e.g. \texttt{module/name}.
% The command uses the content of the local
% dictionaries |l_pdffile|, |l_pdffile/Params| and |l_pdffile/Filespec|
% to setup the dictionary entries of the stream object and the
@@ -360,12 +361,12 @@
% \l_tmpa_str
% \pdfdict_put:nnx {l_pdffile/Filespec} {Desc}{\l_tmpa_str}
% %embeds testinput.txt and calls it grüße.txt
-% \pdffile_embed_file:nnn {testinput.txt}{grüße.txt}{file:example1}
+% \pdffile_embed_file:nnn {testinput.txt}{grüße.txt}{mymodule/example1}
% %reference it in the panel
% \pdfmanagement_add:nnx
% {Catalog/Names}
% {EmbeddedFiles}
-% {\pdf_object_ref:n{file:example1}}
+% {\pdf_object_ref:n{mymodule/example1}}
% \group_end:
% \end{verbatim}
% \end{documentation}
@@ -376,7 +377,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdffile}{2021-03-17}{0.95c}
+\ProvidesExplPackage{l3pdffile}{2021-05-14}{0.95d}
{embedding and referencing files in PDF---LaTeX PDF management testphase bundle}
\RequirePackage{l3pdftools} %temporarly!!
%</header>
@@ -456,6 +457,7 @@
,.tex = text/plain %or application/x-tex, not in iana.org list
,.txt = text/plain
,.sty = text/plain
+ ,.xml = text/xml
}
% \end{macrocode}
% \begin{variable}
@@ -618,7 +620,6 @@
\msg_error:nn {pdffile}{target-name-missing}
}
{
- \pdf_object_new:nn { #1 } {dict}
\group_begin:
\@@_filename_convert_to_print:nN { #2 } \l_@@_tmpa_str
\pdfdict_put:nnx {l_pdffile/Filespec}{F} { \l_@@_tmpa_str }
@@ -638,7 +639,7 @@
%#1 {source filename}
%#2 {target filename}
-%#3 { filespec object name } (will internally get a prefix!)
+%#3 { filespec object name } (will internally get a prefix! ??)
\cs_new_protected:Npn \pdffile_embed_file:nnn #1 #2 #3
{ % if #1 empty => only filespec
% if #2 empty => = #1
@@ -681,6 +682,7 @@
}
\tl_if_blank:nTF { #2 }
{
+ \pdf_object_new:nn { #3 } {dict}
\exp_args:Nnnx
\@@_filespec_write:nnn
%#1 dict, #2 target file name, #3 object ref
@@ -689,6 +691,7 @@
{\l_@@_embed_ref_tl}
}
{
+ \pdf_object_new:nn { #3 } {dict}
\exp_args:Nnnx
\@@_filespec_write:nnn
%#1 dict, #2 target file name, #3 object ref
@@ -722,6 +725,7 @@
{ #1 }
\l_@@_automimetype_tl
\tl_set:Nx \l_@@_embed_ref_tl { \pdf_object_ref_last: }
+ \pdf_object_new:nn { #3 } {dict}
\exp_args:Nnxx
\@@_filespec_write:nnn
%#1 dict, #2 target file name, #3 object ref
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
index f93e47b28d..b9b9a92b26 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
index e22600ea5b..9383c03290 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
@@ -61,7 +61,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -517,9 +517,9 @@
% The value is an object reference. It is sensible to declare the object
% first. E.g.
% \begin{verbatim}
-% \pdf_object_new:nn {pkg@intent}{dict}
-% \pdf_object_write:nn {pkg@intent}{...}
-% \pdfmanagement_add:nnx {Catalog} {OutputIntents}{\pdf_object_ref:n {pkg@intent}}
+% \pdf_object_new:nn {module/intent}{dict}
+% \pdf_object_write:nn {module/intent}{...}
+% \pdfmanagement_add:nnx {Catalog} {OutputIntents}{\pdf_object_ref:n {module/intent}}
% \end{verbatim}
%
% or
@@ -557,7 +557,7 @@
%<@@=pdfmanagement>
%<*header>
%
-\ProvidesExplPackage{l3pdfmanagement}{2021-03-17}{0.95c}
+\ProvidesExplPackage{l3pdfmanagement}{2021-05-14}{0.95d}
{Management of core PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
@@ -1115,15 +1115,15 @@
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/AA } }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/AA_obj } { dict }
+ \__pdf_backend_object_new:nn { @@/Catalog/AA } { dict }
\__pdf_backend_object_write:nx
- { g_@@_/Catalog/AA_obj }
+ { @@/Catalog/AA }
{ \pdfdict_use:n { g__pdf_Core/Catalog/AA } }
\exp_args:Nnx
\__pdf_backend_catalog_gput:nn
{AA}
{
- \__pdf_backend_object_ref:n { g_@@_/Catalog/AA_obj }
+ \__pdf_backend_object_ref:n { @@/Catalog/AA }
}
}
}
@@ -1145,67 +1145,67 @@
{
\seq_if_empty:cF { g_@@_/Catalog/AcroForm/Fields_seq }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/AcroForm/Fields_obj } { array }
+ \__pdf_backend_object_new:nn { @@/Catalog/AcroForm/Fields } { array }
\__pdf_backend_object_write:nx
- { g_@@_/Catalog/AcroForm/Fields_obj }
+ { @@/Catalog/AcroForm/Fields }
{ \seq_use:cn { g_@@_/Catalog/AcroForm/Fields_seq } {~} }
\exp_args:Nnnx
\prop_gput:cnn %we have to use \prop here to avoid the handler ...
{ \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/AcroForm } }
{ Fields }
- { \__pdf_backend_object_ref:n { g_@@_/Catalog/AcroForm/Fields_obj } }
+ { \__pdf_backend_object_ref:n { @@/Catalog/AcroForm/Fields } }
}
\seq_if_empty:cF { g_@@_/Catalog/AcroForm/CO_seq }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/AcroForm/CO_obj } { array }
+ \__pdf_backend_object_new:nn { @@/Catalog/AcroForm/CO } { array }
\exp_args:Nnx
\__pdf_backend_object_write:nn
- { g_@@_/Catalog/AcroForm/CO_obj }
+ { @@/Catalog/AcroForm/CO }
{ \seq_use:cn { g_@@_/Catalog/AcroForm/CO_seq } {~} }
\exp_args:Nnnx
\prop_gput:cnn %we have to use \prop here to avoid the handler ...
{ \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/AcroForm } }
{ CO }
- { \__pdf_backend_object_ref:n { g_@@_/Catalog/AcroForm/CO_obj } }
+ { \__pdf_backend_object_ref:n { @@/Catalog/AcroForm/CO } }
}
\prop_if_empty:cF { \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/AcroForm/DR/Font}}
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/AcroForm/DR/Font_obj } {dict}
+ \__pdf_backend_object_new:nn { @@/Catalog/AcroForm/DR/Font } {dict}
\exp_args:Nnx
\__pdf_backend_object_write:nn
- { g_@@_/Catalog/AcroForm/DR/Font_obj }
+ { @@/Catalog/AcroForm/DR/Font }
{ \pdfdict_use:n { g__pdf_Core/Catalog/AcroForm/DR/Font } }
\exp_args:Nnnx
\prop_gput:cnn %we have to use \prop here to avoid the handler ...
{ \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/AcroForm/DR } }
{ Font }
- { \__pdf_backend_object_ref:n { g_@@_/Catalog/AcroForm/DR/Font_obj } }
+ { \__pdf_backend_object_ref:n { @@/Catalog/AcroForm/DR/Font } }
}
\prop_if_empty:cF { \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/AcroForm/DR}}
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/AcroForm/DR_obj } {dict}
+ \__pdf_backend_object_new:nn { @@/Catalog/AcroForm/DR } {dict}
\exp_args:Nnx
\__pdf_backend_object_write:nn
- { g_@@_/Catalog/AcroForm/DR_obj }
+ { @@/Catalog/AcroForm/DR }
{ \pdfdict_use:n { g__pdf_Core/Catalog/AcroForm/DR } }
\exp_args:Nnnx
\prop_gput:cnn %we have to use \prop here to avoid the handler ...
{ \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/AcroForm } }
{ DR }
- { \__pdf_backend_object_ref:n { g_@@_/Catalog/AcroForm/DR_obj } }
+ { \__pdf_backend_object_ref:n { @@/Catalog/AcroForm/DR } }
}
\prop_if_empty:cF { \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/AcroForm} }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/AcroForm_obj } {dict}
+ \__pdf_backend_object_new:nn { @@/Catalog/AcroForm } {dict}
\exp_args:Nnx
\__pdf_backend_object_write:nn
- { g_@@_/Catalog/AcroForm_obj }
+ { @@/Catalog/AcroForm }
{ \pdfdict_use:n { g__pdf_Core/Catalog/AcroForm } }
\exp_args:Nnnx
\@@_handler_gput:nnn
{ Catalog }
{ AcroForm }
- { \__pdf_backend_object_ref:n { g_@@_/Catalog/AcroForm_obj } }
+ { \__pdf_backend_object_ref:n { @@/Catalog/AcroForm } }
}
}
@@ -1221,16 +1221,16 @@
\seq_if_empty:cF
{ g_@@_/Catalog/AF_seq }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/AF_obj } { array }
+ \__pdf_backend_object_new:nn { @@/Catalog/AF } { array }
\exp_args:Nnx
\__pdf_backend_object_write:nn
- { g_@@_/Catalog/AF_obj }
+ { @@/Catalog/AF }
{ \seq_use:cn { g_@@_/Catalog/AF_seq } {~} }
\exp_args:Nnx
\__pdf_backend_catalog_gput:nn
{AF}
{
- \__pdf_backend_object_ref:n {g_@@_/Catalog/AF_obj}
+ \__pdf_backend_object_ref:n {@@/Catalog/AF}
}
}
}
@@ -1245,16 +1245,16 @@
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/MarkInfo } }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/MarkInfo_obj } { dict }
+ \__pdf_backend_object_new:nn { @@/Catalog/MarkInfo } { dict }
\exp_args:Nnx
\__pdf_backend_object_write:nn
- { g_@@_/Catalog/MarkInfo_obj }
+ { @@/Catalog/MarkInfo }
{ \pdfdict_use:n { g__pdf_Core/Catalog/MarkInfo } }
\exp_args:Nnx
\__pdf_backend_catalog_gput:nn
{MarkInfo}
{
- \__pdf_backend_object_ref:n {g_@@_/Catalog/MarkInfo_obj}
+ \__pdf_backend_object_ref:n {@@/Catalog/MarkInfo}
}
}
}
@@ -1286,10 +1286,10 @@
>
{ 0 }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/OCProperties_obj } { dict }
+ \__pdf_backend_object_new:nn { @@/Catalog/OCProperties } { dict }
\seq_gpop_left:cN { g_@@_/Catalog/OCProperties/Configs_seq} \l_tmpa_tl
\exp_args:Nnx
- \__pdf_backend_object_write:nn {g_@@_/Catalog/OCProperties_obj}
+ \__pdf_backend_object_write:nn {@@/Catalog/OCProperties}
{
/OCGs~[ \seq_use:cn { g_@@_/Catalog/OCProperties/OCGs_seq } {~} ]
/D~\l_tmpa_tl~
@@ -1302,7 +1302,7 @@
\exp_args:Nnx
\__pdf_backend_catalog_gput:nn
{ OCProperties }
- { \__pdf_backend_object_ref:n {g_@@_/Catalog/OCProperties_obj} }
+ { \__pdf_backend_object_ref:n {@@/Catalog/OCProperties} }
}
}
% \end{macrocode}
@@ -1317,16 +1317,16 @@
\seq_if_empty:cF
{ g_@@_/Catalog/OutputIntents_seq }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/OutputIntents_obj } { array }
+ \__pdf_backend_object_new:nn { @@/Catalog/OutputIntents } { array }
\exp_args:Nnx
\__pdf_backend_object_write:nn
- { g_@@_/Catalog/OutputIntents_obj }
+ { @@/Catalog/OutputIntents }
{ \seq_use:cn { g_@@_/Catalog/OutputIntents_seq } {~} }
\exp_args:Nnx
\__pdf_backend_catalog_gput:nn
{OutputIntents}
{
- \__pdf_backend_object_ref:n {g_@@_/Catalog/OutputIntents_obj}
+ \__pdf_backend_object_ref:n {@@/Catalog/OutputIntents}
}
}
}
@@ -1342,16 +1342,16 @@
\seq_if_empty:cF
{ g_@@_/Catalog/Requirements_seq }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/Requirements_obj } { array }
+ \__pdf_backend_object_new:nn { @@/Catalog/Requirements } { array }
\exp_args:Nnx
\__pdf_backend_object_write:nn
- { g_@@_/Catalog/Requirements_obj }
+ { @@/Catalog/Requirements }
{ \seq_use:cn { g_@@_/Catalog/Requirements_seq } {~} }
\exp_args:Nnx
\__pdf_backend_catalog_gput:nn
{Requirements}
{
- \__pdf_backend_object_ref:n { g_@@_/Catalog/Requirements_obj }
+ \__pdf_backend_object_ref:n { @@/Catalog/Requirements }
}
}
}
@@ -1367,16 +1367,16 @@
\prop_if_empty:cF
{ \__kernel_pdfdict_name:n { g__pdf_Core/Catalog/ViewerPreferences } }
{
- \__pdf_backend_object_new:nn { g_@@_/Catalog/ViewerPreferences_obj } { dict }
+ \__pdf_backend_object_new:nn { @@/Catalog/ViewerPreferences } { dict }
\exp_args:Nnx
\__pdf_backend_object_write:nn
- { g_@@_/Catalog/ViewerPreferences_obj }
+ { @@/Catalog/ViewerPreferences }
{ \pdfdict_use:n { g__pdf_Core/Catalog/ViewerPreferences } }
\exp_args:Nnx
\__pdf_backend_catalog_gput:nn
{ViewerPreferences}
{
- \__pdf_backend_object_ref:n {g_@@_/Catalog/ViewerPreferences_obj}
+ \__pdf_backend_object_ref:n {@@/Catalog/ViewerPreferences}
}
}
}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
index 92e9fe605e..b35c3a3a4d 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
index 2b48f0646c..44ea8a9191 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
@@ -53,7 +53,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -340,7 +340,7 @@
% \begin{macrocode}
%<@@=pdfmeta>
%<*header>
-\ProvidesExplPackage{l3pdfmeta}{2021-03-17}{0.95c}
+\ProvidesExplPackage{l3pdfmeta}{2021-05-14}{0.95d}
{PDF-Standards---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
index f41e8f553f..7b8fdcea93 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
index 60d60d184e..76368fc475 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
@@ -53,7 +53,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -198,9 +198,9 @@
% It should be on the same page as the bdc-command.
%
% \begin{verbatim}
-% \pdf_object_new:nn {objA}{dict}
-% \pdf_object_write:nn {objA}{/Type/Artifact}
-% \pdf_bdc:nn {Span}{objA}
+% \pdf_object_new:nn {module/objA}{dict}
+% \pdf_object_write:nn {module/objA}{/Type/Artifact}
+% \pdf_bdc:nn {Span}{module/objA}
% text
% \pdf_emc:
% \end{verbatim}
@@ -215,7 +215,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdftools}{2021-03-17}{0.95c}
+\ProvidesExplPackage{l3pdftools}{2021-05-14}{0.95d}
{candidate commands for l3pdf---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
index ed1f4381e4..4df0731176 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
index f0fcda4aab..25465bdcb0 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
@@ -52,7 +52,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -133,7 +133,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*header>
-\ProvidesExplPackage{l3pdfxform}{2021-03-17}{0.95c}
+\ProvidesExplPackage{l3pdfxform}{2021-05-14}{0.95d}
{command to create xforms (beta)---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
index 8b0acbedcf..8ff3c6f2d5 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
index fec2da64ba..4d6974eefe 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -164,7 +164,7 @@
% \begin{macrocode}
%<@@=pdfmanagement>
%<*header>
-\ProvidesExplPackage{ltdocinit}{2021-03-17}{0.95c}
+\ProvidesExplPackage{ltdocinit}{2021-05-14}{0.95d}
{Initialize document metadata}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
index 81e648525e..a7138a39fc 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
index d43c363fe5..43ac3a7ce9 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
@@ -22,7 +22,7 @@
%% This work consists of the main source file pdflscape-ltx.sty
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesExplPackage{pdflscape-ltx}{2021-03-17}{0.95c}
+\ProvidesExplPackage{pdflscape-ltx}{2021-05-14}{0.95d}
{Display of landscape pages in PDF - adaption of pdflscape to the PDFmanagement bundle (testphase)}
\RequirePackage{lscape}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
index 54fb0ffa10..647fd55f93 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -67,7 +67,7 @@
% |firstaidoff={name1,name2,...}|.
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{pdfmanagement-firstaid}{2021-03-17}{0.95c}
+\ProvidesExplPackage{pdfmanagement-firstaid}{2021-05-14}{0.95d}
{LaTeX PDF management testphase bundle / firstaid-patches}
%<@@=pdfmanagement>
@@ -192,9 +192,9 @@
%objects are already created ...
\def\pgf@sys@pdf@possible@resources
{
- /ColorSpace~\pdf_object_ref:n {Page/Resources/ColorSpace}
- /Pattern ~\pdf_object_ref:n {Page/Resources/Pattern}
- /ExtGState ~\pdf_object_ref:n {Page/Resources/ExtGState}
+ /ColorSpace~\pdf_object_ref:n {__pdf/Page/Resources/ColorSpace}
+ /Pattern ~\pdf_object_ref:n {__pdf/Page/Resources/Pattern}
+ /ExtGState ~\pdf_object_ref:n {__pdf/Page/Resources/ExtGState}
}
\let\pgf@sys@pdf@check@resources=\relax%
%not sure if needed, but perhaps the lists are used somewhere else ...
@@ -227,24 +227,22 @@
}
\cs_generate_variant:Nn \tl_trim_spaces:n{V}
-\cs_generate_variant:Nn \__pdf_backend_PageResources_gput:nnn {nex}
+\cs_generate_variant:Nn \pdfmanagement_add:nnn {nex}
\cs_new:Npn \@@_patch_pgfextgs:w #1/#2<<#3>>#4\q_stop
{
\tl_set:Nx\l_tmpa_tl{#2}
- \__pdf_backend_PageResources_gput:nex
- {ExtGState}{\tl_trim_spaces:V\l_tmpa_tl}{<<#3 #4>>}
+ \pdfmanagement_add:nex
+ {Page/Resources/ExtGState}{\tl_trim_spaces:V\l_tmpa_tl}{<<#3 #4>>}
}
\cs_new:Npn \@@_patch_pgfpatterns:w #1/#2\space#3\q_stop
{
- \exp_args:Nnxx
- \__pdf_backend_PageResources_gput:nnn
- {Pattern}{\tl_trim_spaces:n{#2}}{#3}
+ \pdfmanagement_add:nex
+ {Page/Resources/Pattern}{\tl_trim_spaces:n{#2}}{#3}
}
\cs_new:Npn \@@_patch_pgfcolorspaces:w #1/#2[#3]#4\q_stop
{
- \exp_args:Nne
- \__pdf_backend_PageResources_gput:nnn
- {ColorSpace}{\tl_trim_spaces:n{#2}}{[#3]}
+ \pdfmanagement_add:nex
+ {Page/Resources/ColorSpace}{\tl_trim_spaces:n{#2}}{[#3]}
}
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
index d702eae143..41b232b735 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
index 8cee17982e..82dc047ada 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Version 0.95c, released 2021-03-17}
+% \date{Version 0.95d, released 2021-05-14}
%
% \maketitle
% \begin{documentation}
@@ -384,7 +384,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*package>
-\ProvidesExplPackage{pdfmanagement-testphase}{2021-03-17}{0.95c}
+\ProvidesExplPackage{pdfmanagement-testphase}{2021-05-14}{0.95d}
{LaTeX PDF management testphase bundle}
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
\IfFormatAtLeastTF{2020-10-01}{}{
@@ -411,7 +411,7 @@
% to allow to set it in the document.
% \begin{macrocode}
%<*header>
-\ProvidesExplFile{pdfmanagement-testphase.ltx}{2021-03-17}{0.95c}
+\ProvidesExplFile{pdfmanagement-testphase.ltx}{2021-05-14}{0.95d}
{PDF~management~code~(testphase)}
%</header>
%<*package>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
index 87ac62f1b0..97db2f066e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
@@ -128,6 +128,8 @@ and all files in that bundle must be distributed together.
\file{l3pdffield-testphase.sty}
{%
\from{l3pdffield.dtx}{package}
+ \from{l3pdffield-checkbox.dtx}{package}
+ \from{l3pdffield-textfield.dtx}{package}
}%
}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
index cc1239e23a..2d1700dd49 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
index 8d5abb7e2a..4b4030c4b2 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
@@ -3,7 +3,7 @@
%% a replacement for transparent sty from Heiko Oberdiek
%%
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesExplPackage{transparent-ltx}{2021-03-17}{0.95c}
+\ProvidesExplPackage{transparent-ltx}{2021-05-14}{0.95d}
{Transparency with color stacks (replacement for transparent.sty from Heiko Oberdiek)}%
\RequirePackage{l3opacity}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
index aec0fbb632..76aee08fef 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
@@ -1,26 +1,44 @@
%% LaTeX2e file `xcolor-patches.sty'
%%
-\ProvidesPackage{xcolor-patches-tmp-ltx}[2021-03-17 v0.95c patch xcolor for l3color]
+\ProvidesPackage{xcolor-patches-tmp-ltx}[2021-05-14 v0.95d patch xcolor for l3color]
\@ifundefined{color_set:nn}{\RequirePackage{l3color}}{}
\ExplSyntaxOn
-\cs_gset_protected:Npn \@expl@xcolor@set@@nnn #1 #2 #3
+% #1 is the color name
+% #2: model or models
+% #3: value: either numbers or a color name
+% #4 is the type: named or ps
+\cs_gset_protected:Npn \@expl@xcolor@set@@nnnn #1 #2 #3 #4
{
- \cs_if_exist:cTF { __color_parse_model_ #2 :w }
- {
- \color_set:nnn {#1}{#2}{#3}
- }
- {
- \tl_if_eq:nnTF{#2}{named}
- {
- \color_set:nn{#1}{#3}
- }
- {
- %this is for multi models, it will break if there is model
- %l3 doesn't know, but the case is rare, so accept it for now.
- \color_set:nnn{#1}{#2}{#3}
- }
- }
+ \str_case:nnF {#4}
+ {
+ % we ignore the ps type for now.
+ {ps}{}
+ {named}
+ {
+ \cs_if_exist:cT { __color_parse_model_ #2 :w }
+ {
+ \color_set:nnn {#1}{#2}{#3}
+ }
+ }
+ }
+ {
+ \cs_if_exist:cTF { __color_parse_model_ #2 :w }
+ {
+ \color_set:nnn {#1}{#2}{#3}
+ }
+ {
+ \tl_if_eq:nnTF{#2}{named}%this the model not the type!
+ {
+ \color_set:nn{#1}{#3}
+ }
+ {
+ %this is for multi models, it will break if there is model
+ %l3 doesn't know, but the case is rare, so accept it for now.
+ \color_set:nnn{#1}{#2}{#3}
+ }
+ }
+ }
}
\cs_generate_variant:Nn \color_set:nn {ne}
\cs_new_protected:Npn \@expl@xcolor@set@@ne #1 #2
@@ -58,7 +76,7 @@
%\pretocmd{\XC@definec@lor}{\@expl@color@set@@nnn{#2}{#4}{#5}}{}{\fail}
\def\XC@definec@lor[#1]#2[#3]#4#5%
- {\@expl@xcolor@set@@nnn{#2}{#4}{#5}%
+ {\@expl@xcolor@set@@nnnn{#2}{#4}{#5}{#1}%
\begingroup
\XC@sdef\@@cls{#1}\XC@edef\@@nam{#2}\edef\colornameprefix{#3}%
\XC@logdef\@@nam
diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
index 842e63c3ca..ee0a252f02 100644
--- a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+++ b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
index eb53ab6098..563ce3af32 100644
--- a/macros/latex/contrib/profcollege/latex/ProfCollege.sty
+++ b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
@@ -3,7 +3,7 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfCollege}[2021/04/09 v0.99-a Aide pour l'utilisation de LaTeX au collège]
+\ProvidesPackage{ProfCollege}[2021/05/15 v0.99-b Aide pour l'utilisation de LaTeX au collège]
\RequirePackage{verbatim}
@@ -740,7 +740,7 @@
\end{mplibcode}
\else
\begin{mpost}[mpsettings={input PfCCalculatrice;}]
- LCD(#1)(#2);
+ LCD(#1)(#2)(#3);
\end{mpost}
\fi
}
@@ -1399,7 +1399,7 @@
%%%
\setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1}
-\def\MPFractionTriangle#1#2#3#4#5{
+\def\MPFractionTriangle#1#2#3#4#5{%
% #1 longueur du c\^ot\'e
% #2 partage sur le c\^ot\'e
% #3 num
@@ -1437,20 +1437,32 @@
for k=nbparts downto 1:
Ligne(k);
endfor;
+
+ m:=#3 div #4;
- for k=1 upto #3:
- fill M[k] withcolor #5;
+ drawoptions(shifted(m*(#1+1cm,0)));
+ for l=1 upto (#3 mod #4):
+ fill M[l] withcolor #5;
+ for k=1 upto nbparts:
+ trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
+ trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
+ trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
+ endfor;
endfor;
+ for l=0 upto (m-1):
+ drawoptions(shifted(l*(#1+1cm,0)));
+ remplis polygone(A,B,C) withcolor #5;
for k=1 upto nbparts:
trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
endfor;
+ endfor;
\end{mplibcode}
\else
\begin{mpost}
- nbtriangle=0;
+ nbtriangle=0;
vardef Ligne(expr longueur)=
for k=0 upto 2*(longueur-1):
@@ -1479,16 +1491,28 @@
for k=nbparts downto 1:
Ligne(k);
endfor;
+
+ m:=#3 div #4;
- for k=1 upto #3:
- fill M[k] withcolor #5;
+ drawoptions(shifted(m*(#1+1cm,0)));
+ for l=1 upto (#3 mod #4):
+ fill M[l] withcolor #5;
+ for k=1 upto nbparts:
+ trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
+ trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
+ trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
+ endfor;
endfor;
+ for l=0 upto (m-1):
+ drawoptions(shifted(l*(#1+1cm,0)));
+ remplis polygone(A,B,C) withcolor #5;
for k=1 upto nbparts:
trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
endfor;
+ endfor;
\end{mpost}
\fi
}
@@ -1503,7 +1527,7 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
- nbtriangle=0;
+ nbtriangle=0;
vardef Ligne(expr longueur)=
for k=0 upto 2*(longueur-1):
@@ -1532,19 +1556,30 @@
for k=nbparts downto 1:
Ligne(k);
endfor;
-
- diversite=floor(uniformdeviate(#2**2-#3-1));
- for k=(1+diversite) upto (#3+diversite):
+ m:=#3 div #4;
+
+ for l=1 upto (#3 mod #4):
drawoptions(withpen pencircle scaled #6);
- trace hachurage(M[k],90,0.2,0) withcolor #5;
- endfor;
+ trace hachurage(M[l] shifted(m*(#1+1cm,0)),90,0.2,0) withcolor #5;%M[l] withcolor #5;
+ for k=1 upto nbparts:
drawoptions(withpen pencircle scaled #6);
+ trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]) shifted(m*(#1+1cm,0));
+ trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]) shifted(m*(#1+1cm,0));
+ trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]) shifted(m*(#1+1cm,0));
+ endfor;
+ endfor;
+
+ for l=0 upto (m-1):
+ drawoptions(shifted(l*(#1+1cm,0)) withpen pencircle scaled #6);
+ trace hachurage(polygone(A,B,C),90,0.2,0) withcolor #5;%polygone(A,B,C) withcolor #5;
+ drawoptions(shifted(l*(#1+1cm,0)) withpen pencircle scaled #6);
for k=1 upto nbparts:
trace segment((k/nbparts)[A,B],(k/nbparts)[A,C]);
trace segment((k/nbparts)[B,A],(k/nbparts)[B,C]);
trace segment((k/nbparts)[C,A],(k/nbparts)[C,B]);
endfor;
+ endfor;
\end{mplibcode}
\else
\begin{mpost}
@@ -1594,7 +1629,6 @@
\end{mpost}
\fi
}
-
\def\MPFractionRegulier#1#2#3#4#5{%
% #1 rayon, #2 nb c\^ot\'es, #3 num, #4 deno, #5 couleur
@@ -1612,19 +1646,40 @@
for k=0 upto #4-1:
B[k]=point(k*(#2/#4)) of cd;
endfor;
- remplis O--arccercle(B[0],B[#3],O)--cycle withcolor #5;
- %fi;
+ picture fondcolore;
+ fondcolore=image(
+ remplis O--arccercle(B[0],B[#3 mod #4],O)--cycle withcolor #5;
clip currentpicture to cd;
- draw polygone(A0 for k=1 upto #2:,A[k] endfor);
- if #4>1:
for k=0 upto #4-1:
draw segment(O,B[k]) cutafter cd;
endfor;
+ trace cd;
+ );
+ currentpicture:=nullpicture;
+ m=#3 div #4;
+ if (#3 mod #4)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto (m-1):
+ fill cd shifted(l*(#1*2+0.5cm,0)) withcolor #5;
+ trace cd shifted(l*(#1*2+0.5cm,0));
+ if #4>1:
+ for k=0 upto #4-1:
+ draw (segment(O,B[k]) cutafter cd) shifted(l*(#1*2+0.5cm,0));
+ endfor;
+ fi;
+ endfor;
+ fi;
+ draw fondcolore shifted(m*(#1*2+0.5cm,0));
+ draw cd shifted(m*(#1*2+0.5cm,0));
+ if #4>1:
+ for k=0 upto #4-1:
+ draw (segment(O,B[k]) cutafter cd) shifted(m*(#1*2+0.5cm,0));
+ endfor;
fi;
\end{mplibcode}
\else
-\begin{mpost}
- pair O,A[],B[];
+ \begin{mpost}
+ pair O,A[],B[];
O=u*(0,0);
path cc,cd;
cc=cercles(O,#1);
@@ -1635,21 +1690,42 @@
for k=0 upto #4-1:
B[k]=point(k*(#2/#4)) of cd;
endfor;
- remplis O--arccercle(B[0],B[#3],O)--cycle withcolor #5;
- %fi;
+ picture fondcolore;
+ fondcolore=image(
+ remplis O--arccercle(B[0],B[#3 mod #4],O)--cycle withcolor #5;
clip currentpicture to cd;
- draw polygone(A0 for k=1 upto #2:,A[k] endfor);
- if #4>1:
for k=0 upto #4-1:
draw segment(O,B[k]) cutafter cd;
endfor;
+ trace cd;
+ );
+ currentpicture:=nullpicture;
+ m=#3 div #4;
+ if (#3 mod #4)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto (m-1):
+ fill cd shifted(l*(#1*2+0.5cm,0)) withcolor #5;
+ trace cd shifted(l*(#1*2+0.5cm,0));
+ if #4>1:
+ for k=0 upto #4-1:
+ draw (segment(O,B[k]) cutafter cd) shifted(l*(#1*2+0.5cm,0));
+ endfor;
+ fi;
+ endfor;
+ fi;
+ draw fondcolore shifted(m*(#1*2+0.5cm,0));
+ draw cd shifted(m*(#1*2+0.5cm,0));
+ if #4>1:
+ for k=0 upto #4-1:
+ draw (segment(O,B[k]) cutafter cd) shifted(m*(#1*2+0.5cm,0));
+ endfor;
fi;
\end{mpost}
\fi
}
\def\MPFractionRegulierH#1#2#3#4#5#6{%
- % #1 rayon, #2 nb c\^ot\'es, #3 num, #4 deno, #5 couleur
+ % #1 rayon, #2 nb c\^ot\'es, #3 num, #4 deno, #5 couleur, #6 épaisseur
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -1664,16 +1740,42 @@
for k=0 upto #4-1:
B[k]=point(k*(#2/#4)) of cd;
endfor;
- drawoptions(withpen pencircle scaled#6);
- draw hachurage(O--arccercle(B[0],B[#3],O)--cycle,1.5*360/#2,0.25,0) withcolor #5;
+ picture fondcolore;
+ fondcolore=image(%
+ drawoptions(withpen pencircle scaled #6);
+ trace hachurage(O--arccercle(B[0],B[#3 mod #4],O)--cycle,1.5*360/#2,0.25,0) withcolor #5;
clip currentpicture to cd;
- drawoptions(withpen pencircle scaled#6);
- draw polygone(A0 for k=1 upto #2:,A[k] endfor);
- if #4>1:
+ drawoptions(withpen pencircle scaled #6);
for k=0 upto #4-1:
draw segment(O,B[k]) cutafter cd;
endfor;
- drawoptions();
+ trace cd;
+ );
+ currentpicture:=nullpicture;
+ m=#3 div #4;
+ if (#3 mod #4)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto (m-1):
+ drawoptions(withpen pencircle scaled #6);
+ trace hachurage(cd shifted(l*(#1*2+0.5cm,0)),1.5*360/#2,0.25,0) withcolor #5;
+ drawoptions(withpen pencircle scaled #6);
+ trace cd shifted(l*(#1*2+0.5cm,0));
+ if #4>1:
+ for k=0 upto #4-1:
+ drawoptions(withpen pencircle scaled #6);
+ draw (segment(O,B[k]) cutafter cd) shifted(l*(#1*2+0.5cm,0));
+ endfor;
+ fi;
+ endfor;
+ fi;
+ draw fondcolore shifted(m*(#1*2+0.5cm,0));
+ drawoptions(withpen pencircle scaled #6);
+ draw cd shifted(m*(#1*2+0.5cm,0));
+ if #4>1:
+ drawoptions(withpen pencircle scaled #6);
+ for k=0 upto #4-1:
+ draw (segment(O,B[k]) cutafter cd) shifted(m*(#1*2+0.5cm,0));
+ endfor;
fi;
\end{mplibcode}
\else
@@ -1689,16 +1791,42 @@
for k=0 upto #4-1:
B[k]=point(k*(#2/#4)) of cd;
endfor;
- drawoptions(withpen pencircle scaled#6);
- draw hachurage(O--arccercle(B[0],B[#3],O)--cycle,1.5*360/#2,0.25,0) withcolor #5;
+ picture fondcolore;
+ fondcolore=image(%
+ drawoptions(withpen pencircle scaled #6);
+ trace hachurage(O--arccercle(B[0],B[#3 mod #4],O)--cycle,1.5*360/#2,0.25,0) withcolor #5;
clip currentpicture to cd;
- drawoptions(withpen pencircle scaled#6);
- draw polygone(A0 for k=1 upto #2:,A[k] endfor);
- if #4>1:
+ drawoptions(withpen pencircle scaled #6);
for k=0 upto #4-1:
draw segment(O,B[k]) cutafter cd;
endfor;
- drawoptions();
+ trace cd;
+ );
+ currentpicture:=nullpicture;
+ m=#3 div #4;
+ if (#3 mod #4)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto (m-1):
+ drawoptions(withpen pencircle scaled #6);
+ trace hachurage(cd shifted(l*(#1*2+0.5cm,0)),1.5*360/#2,0.25,0) withcolor #5;
+ drawoptions(withpen pencircle scaled #6);
+ trace cd shifted(l*(#1*2+0.5cm,0));
+ if #4>1:
+ for k=0 upto #4-1:
+ drawoptions(withpen pencircle scaled #6);
+ draw (segment(O,B[k]) cutafter cd) shifted(l*(#1*2+0.5cm,0));
+ endfor;
+ fi;
+ endfor;
+ fi;
+ draw fondcolore shifted(m*(#1*2+0.5cm,0));
+ drawoptions(withpen pencircle scaled #6);
+ draw cd shifted(m*(#1*2+0.5cm,0));
+ if #4>1:
+ drawoptions(withpen pencircle scaled #6);
+ for k=0 upto #4-1:
+ draw (segment(O,B[k]) cutafter cd) shifted(m*(#1*2+0.5cm,0));
+ endfor;
fi;
\end{mpost}
\fi
@@ -1726,15 +1854,8 @@
S[k]=(k/#6)[B,C];
endfor;
fi;
- if #6=1:
- remplis polygone(A,M[#3],N[#3],D) withcolor #5;
- else:
- DDiv=#3 div parts;
- MMod=#3 mod parts;
- remplis polygone(A,B,S[DDiv],R[DDiv]) withcolor #5;
- remplis
- polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]) withcolor #5;
- fi;
+ picture FondRectangle;
+ FondRectangle=image(%
draw polygone(A,B,C,D);
for k=1 upto (parts-1):
draw segment(M[k],N[k]);
@@ -1744,10 +1865,36 @@
draw segment(R[k],S[k]);
endfor;
fi;
+ );
+ picture FondRectangleColorie;
+ FondRectangleColorie=image(%
+ if #6=1:
+ remplis polygone(A,M[#3 mod #4],N[#3 mod #4],D) withcolor #5;
+ else:
+ DDiv=(#3 mod #4) div parts;
+ MMod=(#3 mod #4) mod parts;
+ remplis polygone(A,B,S[DDiv],R[DDiv]) withcolor #5;
+ remplis polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]) withcolor #5;
+ fi;
+ );
+ m=#3 div #4;
+ if (#3 mod #4)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto m-1:
+ remplis (polygone(A,B,C,D) shifted(l*(#1+1cm,0))) withcolor #5;
+ trace FondRectangle shifted(l*(#1+1cm,0));
+ endfor;
+ fi;
+ if (#3 mod #4)<>0:
+ trace FondRectangleColorie shifted(m*(#1+1cm,0));
+ else:
+ remplis (polygone(A,B,C,D) shifted(m*(#1+1cm,0))) withcolor #5;
+ fi;
+ trace FondRectangle shifted(m*(#1+1cm,0));
\end{mplibcode}
\else
\begin{mpost}
- pair A,B,C,D,M[],N[],R[],S[];
+ pair A,B,C,D,M[],N[],R[],S[];
A=(1,1);
B-A=(#1,0);
C-B=(0,#2);
@@ -1764,15 +1911,8 @@
S[k]=(k/#6)[B,C];
endfor;
fi;
- if #6=1:
- remplis polygone(A,M[#3],N[#3],D) withcolor #5;
- else:
- DDiv=#3 div parts;
- MMod=#3 mod parts;
- remplis polygone(A,B,S[DDiv],R[DDiv]) withcolor #5;
- remplis
- polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]) withcolor #5;
- fi;
+ picture FondRectangle;
+ FondRectangle=image(%
draw polygone(A,B,C,D);
for k=1 upto (parts-1):
draw segment(M[k],N[k]);
@@ -1782,6 +1922,32 @@
draw segment(R[k],S[k]);
endfor;
fi;
+ );
+ picture FondRectangleColorie;
+ FondRectangleColorie=image(%
+ if #6=1:
+ remplis polygone(A,M[#3 mod #4],N[#3 mod #4],D) withcolor #5;
+ else:
+ DDiv=(#3 mod #4) div parts;
+ MMod=(#3 mod #4) mod parts;
+ remplis polygone(A,B,S[DDiv],R[DDiv]) withcolor #5;
+ remplis polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]) withcolor #5;
+ fi;
+ );
+ m=#3 div #4;
+ if (#3 mod #4)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto m-1:
+ remplis (polygone(A,B,C,D) shifted(l*(#1+1cm,0))) withcolor #5;
+ trace FondRectangle shifted(l*(#1+1cm,0));
+ endfor;
+ fi;
+ if (#3 mod #4)<>0:
+ trace FondRectangleColorie shifted(m*(#1+1cm,0));
+ else:
+ remplis (polygone(A,B,C,D) shifted(m*(#1+1cm,0))) withcolor #5;
+ fi;
+ trace FondRectangle shifted(m*(#1+1cm,0));
\end{mpost}
\fi
}
@@ -1808,18 +1974,8 @@
S[k]=(k/#6)[B,C];
endfor;
fi;
- if #6=1:
- drawoptions(withpen pencircle scaled#7);
- draw hachurage(polygone(A,M[#3],N[#3],D),45,0.25,0) withcolor #5;
- else:
- DDiv=#3 div parts;
- MMod=#3 mod parts;
- drawoptions(withpen pencircle scaled#7);
- draw hachurage(polygone(A,B,S[DDiv],R[DDiv]),45,0.25,0) withcolor #5;
- drawoptions(withpen pencircle scaled#7);
- draw hachurage(polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]),45,0.25,0) withcolor #5;
- fi;
- drawoptions(withpen pencircle scaled#7);
+ picture FondRectangle;
+ FondRectangle=image(%
draw polygone(A,B,C,D);
for k=1 upto (parts-1):
draw segment(M[k],N[k]);
@@ -1828,8 +1984,41 @@
for k=1 upto (#6-1):
draw segment(R[k],S[k]);
endfor;
- drawoptions();
fi;
+ );
+ picture FondRectangleColorie;
+ FondRectangleColorie=image(%
+ if #6=1:
+ drawoptions(withpen pencircle scaled#7);
+ trace hachurage(polygone(A,M[#3 mod #4],N[#3 mod #4],D),45,0.25,0) withcolor #5;
+ else:
+ DDiv=(#3 mod #4) div parts;
+ MMod=(#3 mod #4) mod parts;
+ drawoptions(withpen pencircle scaled#7);
+ trace hachurage(polygone(A,B,S[DDiv],R[DDiv]),45,0.25,0) withcolor #5;
+ drawoptions(withpen pencircle scaled#7);
+ trace hachurage(polygone(R[DDiv],(xpart(M[MMod]),ypart(R[DDiv])),(xpart(M[MMod]),ypart(R[DDiv+1])),R[DDiv+1]),45,0.25,0) withcolor #5;
+ fi;
+ );
+ m=#3 div #4;
+ if (#3 mod #4)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto m-1:
+ drawoptions(withpen pencircle scaled#7);
+ trace hachurage(polygone(A,B,C,D) shifted(l*(#1+1cm,0)),45,0.25,0) withcolor #5;
+ drawoptions(withpen pencircle scaled#7);
+ trace FondRectangle shifted(l*(#1+1cm,0));
+ endfor;
+ fi;
+ if (#3 mod #4)<>0:
+ drawoptions(withpen pencircle scaled#7);
+ trace FondRectangleColorie shifted(m*(#1+1cm,0));
+ else:
+ drawoptions(withpen pencircle scaled#7);
+ trace hachurage(polygone(A,B,C,D) shifted(m*(#1+1cm,0)),45,0.25,0) withcolor #5;
+ fi;
+ drawoptions(withpen pencircle scaled#7);
+ trace FondRectangle shifted(m*(#1+1cm,0));
\end{mplibcode}
\else
\begin{mpost}
@@ -1884,13 +2073,22 @@
A=(0,0);
path cc;
cc=cercles(A,#1);
- for k=0 upto (#3-1):
+ for k=0 upto #3:
B[k]=pointarc(cc,(360/#3)*k);
endfor;
- fill (A--B0--arccercle(B[0],B[#2],A)--cycle) withcolor #4;
- draw cc;
+ m=(#2 div #3);
+ if (#2 mod #3)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto (m-1):
+ fill cc shifted(l*(2*#1+1cm,0)) withcolor #4;
+ endfor;
+ fi;
+ fill ((A--B0--arccercle(B[0],B[#2 mod #3],A)--cycle) shifted (m*(2*#1+1cm,0))) withcolor #4;
+ for l=0 upto m:
+ draw cc shifted(l*(2*#1+1cm,0));
for k=0 upto (#3-1):
- draw segment(A,B[k]);
+ draw segment(A,B[k]) shifted(l*(2*#1+1cm,0));
+ endfor;
endfor;
\end{mplibcode}
\else
@@ -1899,13 +2097,22 @@
A=(0,0);
path cc;
cc=cercles(A,#1);
- for k=0 upto (#3-1):
+ for k=0 upto #3:
B[k]=pointarc(cc,(360/#3)*k);
endfor;
- fill (A--B0--arccercle(B[0],B[#2],A)--cycle) withcolor #4;
- draw cc;
+ m=#2 div #3;
+ if (#2 mod #3)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto (m-1):
+ fill cc shifted(l*(2*#1+1cm,0)) withcolor #4;
+ endfor;
+ fi;
+ fill ((A--B0--arccercle(B[0],B[#2 mod #3],A)--cycle) shifted (m*(2*#1+1cm,0))) withcolor #4;
+ for l=0 upto m:
+ draw cc shifted(l*(2*#1+1cm,0));
for k=0 upto (#3-1):
- draw segment(A,B[k]);
+ draw segment(A,B[k]) shifted(l*(2*#1+1cm,0));
+ endfor;
endfor;
\end{mpost}
\fi
@@ -1919,17 +2126,26 @@
A=(0,0);
path cc;
cc=cercles(A,#1);
- for k=0 upto (#3-1):
+ for k=0 upto #3:
B[k]=pointarc(cc,(360/#3)*k);
endfor;
+ m=#2 div #3;
+ if (#2 mod #3)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto (m-1):
drawoptions(withpen pencircle scaled#5);
- draw hachurage(A--B0--arccercle(B[0],B[#2],A)--cycle,1.5*360/#3,0.25,0) withcolor #4;
+ draw hachurage(cc shifted(l*(2*#1+1cm,0)),1.5*360/#3,0.25,0) withcolor #4;
+ endfor;
+ fi;
drawoptions(withpen pencircle scaled#5);
- draw cc;
+ draw hachurage((A--B0--arccercle(B[0],B[#2 mod #3],A)--cycle) shifted(m*(2*#1+1cm,0)),1.5*360/#3,0.25,0) withcolor #4;
+ drawoptions(withpen pencircle scaled#5);
+ for l=0 upto m:
+ draw cc shifted(l*(2*#1+1cm,0));
for k=0 upto (#3-1):
- draw segment(A,B[k]);
+ draw segment(A,B[k]) shifted(l*(2*#1+1cm,0));
+ endfor;
endfor;
- drawoptions();
\end{mplibcode}
\else
\begin{mpost}
@@ -1937,17 +2153,26 @@
A=(0,0);
path cc;
cc=cercles(A,#1);
- for k=0 upto (#3-1):
+ for k=0 upto #3:
B[k]=pointarc(cc,(360/#3)*k);
endfor;
+ m=#2 div #3;
+ if (#2 mod #3)=0:m:=m-1; fi;
+ if m>0:
+ for l=0 upto (m-1):
+ drawoptions(withpen pencircle scaled#5);
+ draw hachurage(cc shifted(l*(2*#1+1cm,0)),1.5*360/#3,0.25,0) withcolor #4;
+ endfor;
+ fi;
drawoptions(withpen pencircle scaled#5);
- draw hachurage(A--B0--arccercle(B[0],B[#2],A)--cycle,1.5*360/#3,0.25,0) withcolor #4;
+ draw hachurage((A--B0--arccercle(B[0],B[#2 mod #3],A)--cycle) shifted(m*(2*#1+1cm,0)),1.5*360/#3,0.25,0) withcolor #4;
drawoptions(withpen pencircle scaled#5);
- draw cc;
+ for l=0 upto m:
+ draw cc shifted(l*(2*#1+1cm,0));
for k=0 upto (#3-1):
- draw segment(A,B[k]);
+ draw segment(A,B[k]) shifted(l*(2*#1+1cm,0));
+ endfor;
endfor;
- drawoptions();
\end{mpost}
\fi
}
@@ -1962,32 +2187,62 @@
for k=0 upto #3:
B[k]=(k/#3)[A,C];
endfor;
- draw segment(B[0],B[#2]) withpen pencircle scaled 2 withcolor #4;
- draw segment(A,C);
+ m=#2 div #3;
+ if m>0:
+ for l=0 upto (m-1):
+ draw (segment(B[0],B[#3]) shifted(l*(#1+1cm,0))) withpen pencircle scaled 2 withcolor #4;
+ endfor;
+ fi;
+ if (#2 mod #3)<>0:
+ draw (segment(B[0],B[#2 mod #3]) shifted(m*(#1+1cm,0))) withpen pencircle scaled 2 withcolor #4;
+ draw segment(A,C) shifted(m*(#1+1cm,0));
+ fi;
marque_p:="tiretv";
+ for l=0 upto m-1:
for k=0 upto #3:
- pointe(B[k]);
+ pointe(B[k] shifted(l*(#1+1cm,0)));
+ endfor;
endfor;
+ if (#2 mod #3)<>0:
+ for k=0 upto #3:
+ pointe(B[k] shifted(m*(#1+1cm,0)));
+ endfor;
+ fi;
\end{mplibcode}
\else
\begin{mpost}
- pair A,C,B[];
+ pair A,C,B[];
A=(0,0);
C-A=(#1,0);
for k=0 upto #3:
B[k]=(k/#3)[A,C];
endfor;
- draw segment(B[0],B[#2]) withpen pencircle scaled 2 withcolor #4;
- draw segment(A,C);
+ m=#2 div #3;
+ if m>0:
+ for l=0 upto (m-1):
+ draw (segment(B[0],B[#3]) shifted(l*(#1+1cm,0))) withpen pencircle scaled 2 withcolor #4;
+ endfor;
+ fi;
+ if (#2 mod #3)<>0:
+ draw (segment(B[0],B[#2 mod #3]) shifted(m*(#1+1cm,0))) withpen pencircle scaled 2 withcolor #4;
+ draw segment(A,C) shifted(m*(#1+1cm,0));
+ fi;
marque_p:="tiretv";
+ for l=0 upto m-1:
for k=0 upto #3:
- pointe(B[k]);
+ pointe(B[k] shifted(l*(#1+1cm,0)));
endfor;
+ endfor;
+ if (#2 mod #3)<>0:
+ for k=0 upto #3:
+ pointe(B[k] shifted(m*(#1+1cm,0)));
+ endfor;
+ fi;
\end{mpost}
\fi
}
-\def\MPFractionSegmentH#1#2#3#4#5{
+\def\MPFractionSegmentH#1#2#3#4#5{%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
@@ -1997,33 +2252,67 @@
for k=0 upto #3:
B[k]=(k/#3)[A,C];
endfor;
+ m=#2 div #3;
+ if m>0:
+ for l=0 upto (m-1):
drawoptions(withpen pencircle scaled#5);
- draw hachurage(polygone(B[0]+u*(0,-0.15),B[#2]+u*(0,-0.15),B[#2]+u*(0,0.15),B[0]+u*(0,0.15)),120,0.2,0)
- withcolor #4;
+ draw hachurage(polygone(B[0]+u*(0,-0.15),B[#3]+u*(0,-0.15),B[#3]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(l*(#1+1cm,0)),120,0.2,0) withcolor #4;
drawoptions(withpen pencircle scaled#5);
- draw segment(A,C);
+ draw segment(A,C) shifted(l*(#1+1cm,0));
+ endfor;
+ fi;
+ if (#2 mod #3)<>0:
+ drawoptions(withpen pencircle scaled#5);
+ draw hachurage(polygone(B[0]+u*(0,-0.15),B[#2 mod #3]+u*(0,-0.15),B[#2 mod #3]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(m*(#1+1cm,0)),120,0.2,0) withcolor #4;
+ drawoptions(withpen pencircle scaled#5);
+ draw segment(A,C) shifted(m*(#1+1cm,0));
+ fi;
marque_p:="tiretv";
+ for l=0 upto m-1:
+ for k=0 upto #3:
+ pointe(B[k] shifted(l*(#1+1cm,0)));
+ endfor;
+ endfor;
+ if (#2 mod #3)<>0:
for k=0 upto #3:
- pointe(B[k]);
+ pointe(B[k] shifted(m*(#1+1cm,0)));
endfor;
+ fi;
\end{mplibcode}
\else
\begin{mpost}
- pair A,C,B[];
+ pair A,C,B[];
A=(0,0);
C-A=(#1,0);
for k=0 upto #3:
B[k]=(k/#3)[A,C];
endfor;
+ m=#2 div #3;
+ if m>0:
+ for l=0 upto (m-1):
drawoptions(withpen pencircle scaled#5);
- draw hachurage(polygone(B[0]+u*(0,-0.15),B[#2]+u*(0,-0.15),B[#2]+u*(0,0.15),B[0]+u*(0,0.15)),120,0.2,0)
- withcolor #4;
+ draw hachurage(polygone(B[0]+u*(0,-0.15),B[#3]+u*(0,-0.15),B[#3]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(l*(#1+1cm,0)),120,0.2,0) withcolor #4;
drawoptions(withpen pencircle scaled#5);
- draw segment(A,C);
+ draw segment(A,C) shifted(l*(#1+1cm,0));
+ endfor;
+ fi;
+ if (#2 mod #3)<>0:
+ drawoptions(withpen pencircle scaled#5);
+ draw hachurage(polygone(B[0]+u*(0,-0.15),B[#2 mod #3]+u*(0,-0.15),B[#2 mod #3]+u*(0,0.15),B[0]+u*(0,0.15)) shifted(m*(#1+1cm,0)),120,0.2,0) withcolor #4;
+ drawoptions(withpen pencircle scaled#5);
+ draw segment(A,C) shifted(m*(#1+1cm,0));
+ fi;
marque_p:="tiretv";
+ for l=0 upto m-1:
+ for k=0 upto #3:
+ pointe(B[k] shifted(l*(#1+1cm,0)));
+ endfor;
+ endfor;
+ if (#2 mod #3)<>0:
for k=0 upto #3:
- pointe(B[k]);
+ pointe(B[k] shifted(m*(#1+1cm,0)));
endfor;
+ fi;
\end{mpost}
\fi
}
@@ -2209,10 +2498,75 @@
}%
}
+\newcommand\QCMVar[2][]{%
+ \useKVdefault[ClesQCM]%
+ \setKV[ClesQCM]{#1}%
+ \setcounter{QuestionQCM}{\fpeval{\useKV[ClesQCM]{Depart}-1}}%
+ \setcounter{TitreQCM}{0}
+ \setsepchar[*]{§*&}\ignoreemptyitems%
+ \readlist*\ListeQCM{#2}%
+ \ifboolKV[ClesQCM]{Multiple}{%
+ \renewcommand{\arraystretch}{\useKV[ClesQCM]{Stretch}}%
+ \setlength{\LargeurQCM}{\fpeval{(\linewidth-\useKV[ClesQCM]{Reponses}*(3*\tabcolsep+\useKV[ClesQCM]{Largeur}))}pt}%
+ \xdef\NBcases{\fpeval{\useKV[ClesQCM]{Reponses}+1}}%
+ \xdef\ListeNom{\useKV[ClesQCM]{Noms}}%
+ \setsepchar[*]{/}%
+ \readlist*\ListeNomsMul{\ListeNom}%
+ \begin{tabular}{|p{\LargeurQCM}|*{\useKV[ClesQCM]{Reponses}}{>{\centering\arraybackslash}p{\useKV[ClesQCM]{Largeur}}|}}%
+ \cline{2-\NBcases}%
+ \multicolumn{1}{c|}{}\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{%
+ &\ListeNomsMul[##2]}%
+ \\
+ \hline%
+ \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{%
+ \stepcounter{QuestionQCM}\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Alph}{\textbf{\Alph{QuestionQCM}}/}{\textbf{\theQuestionQCM/}}~\ListeQCM[##1,1]\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{%
+ &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{\ListeQCM[##1,\fpeval{##2+1}]=1}{$\boxtimes$}{$\square$}}{$\square$}%
+ }\\
+ }%
+ \hline%
+ \end{tabular}%
+ }{%
+ \ifboolKV[ClesQCM]{VF}{%
+ \setKV[ClesQCM]{Reponses=2}
+ \renewcommand{\arraystretch}{\useKV[ClesQCM]{Stretch}}%
+ \setlength{\LargeurQCM}{\fpeval{(\linewidth-\useKV[ClesQCM]{Reponses}*(3*\tabcolsep+\useKV[ClesQCM]{Largeur}))}pt}%
+ \xdef\NBcases{\fpeval{\useKV[ClesQCM]{Reponses}+1}}%
+ \begin{tabular}{|p{\LargeurQCM}|*{\useKV[ClesQCM]{Reponses}}{>{\centering\arraybackslash}p{\useKV[ClesQCM]{Largeur}}|}}%
+ \cline{2-\NBcases}%
+ \multicolumn{1}{c|}{}&\useKV[ClesQCM]{NomV}&\useKV[ClesQCM]{NomF}\\
+ \hline%
+ \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{%
+ \stepcounter{QuestionQCM}\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Alph}{\textbf{\Alph{QuestionQCM}}/}{\textbf{\theQuestionQCM/}}~\ListeQCM[##1,1]\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{%
+ &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xintifboolexpr{##2=\ListeQCM[##1,2]}{$\boxtimes$}{$\square$}}{$\square$}%
+ }\\
+ }%
+ \hline%
+ \end{tabular}
+ }{%
+ \renewcommand{\arraystretch}{\useKV[ClesQCM]{Stretch}}%
+ \setlength{\LargeurQCM}{\fpeval{(\linewidth-\useKV[ClesQCM]{Reponses}*(3*\tabcolsep+\useKV[ClesQCM]{Largeur}))}pt}%
+ \xdef\NBcases{\fpeval{\useKV[ClesQCM]{Reponses}+1}}%
+ \begin{tabular}{|p{\LargeurQCM}|*{\useKV[ClesQCM]{Reponses}}{>{\centering\arraybackslash}p{\useKV[ClesQCM]{Largeur}}|}}%
+ \ifboolKV[ClesQCM]{Titre}{\cline{2-\NBcases}%
+ \multicolumn{1}{c|}{}\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{%
+ &\stepcounter{TitreQCM}\useKV[ClesQCM]{Nom} \ifboolKV[ClesQCM]{AlphT}{\Alph{TitreQCM}}{##2}}%
+ \\
+ }{}
+ \hline%
+ \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{%
+ \stepcounter{QuestionQCM}\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Alph}{\textbf{\Alph{QuestionQCM}}/}{\textbf{\theQuestionQCM/}}~\ListeQCM[##1,1]\xintFor* ##2 in {\xintSeq {1}{\useKV[ClesQCM]{Reponses}}}\do{%
+ &\ifboolKV[ClesQCM]{Alterne}{\modulo{\theQuestionQCM}{2}\ifnum\remainder=0\cellcolor{gray!15}\fi}{}\ifboolKV[ClesQCM]{Solution}{\xdef\NumeroReponse{\fpeval{\useKV[ClesQCM]{Reponses}+2}}\xintifboolexpr{##2=\ListeQCM[##1,\NumeroReponse]}{\cellcolor{\useKV[ClesQCM]{Couleur}}}{}}{}\ListeQCM[##1,##2+1]%
+ }\\
+ }%
+ \hline%
+ \end{tabular}%
+ }%
+ }%
+}
+
%%%
% Somme des angles
%%%
-
\setKVdefault[ClesSommeAngle]{Detail=true,Isocele=false,Figure=false,FigureSeule=false,Angle=0,Perso=false}%
\def\MPFigureSommeAngle#1#2#3#4#5#6#7{
@@ -2868,7 +3222,326 @@
% y a dans un "seul calcul".
\setcounter{NbCalculDistri}{0}
-\setKVdefault[ClesDistributivite]{Etape=1,Lettre=x,Fleches=false,AideMul=false,Reduction=false,AideAdda=false,AideAddb=false,CouleurAide=red,CouleurReduction=black,CouleurFH=blue,CouleurFB=red,Somme=false,Difference=false,RAZ=false,Oppose=false,All=false,NomExpression=A,Fin=4,Numerique=false,Remarquable=false,Echange=0}%,AideAdd=false:inutile ?
+\setKVdefault[ClesDistributivite]{Etape=1,Lettre=x,Fleches=false,AideMul=false,Reduction=false,AideAdda=false,AideAddb=false,CouleurAide=red,CouleurReduction=black,CouleurFH=blue,CouleurFB=red,Somme=false,Difference=false,RAZ=false,Oppose=false,All=false,NomExpression=A,Fin=4,Numerique=false,Remarquable=false,Echange=0,Tuile=false,Vide=false}%,AideAdd=false:inutile ?
+
+\newcommand\Tuile[4]{%
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ boolean Vide;
+ Vide=\useKV[ClesDistributivite]{Vide};
+ pair _CoinTuilev;
+ _CoinTuilev=(0,0);
+ numeric largeur,longueur,ecart;
+ largeur=0.75;
+ longueur=sqrt(3);
+ ecart=0.6;
+ pair _CoinTuileh;
+ _CoinTuileh=u*(largeur+ecart,ecart);
+ vardef tuilev(expr LL,ll,nb,col)(text t)=
+ save $; picture $;
+ save TT; picture TT;
+ TT=image(
+ path cc;
+ cc=polygone((0,0),u*(LL,0),u*(LL,-ll),u*(0,-ll));
+ fill cc withcolor col;
+ trace cc;
+ label(TEX(t),iso((0,0),u*(LL,0),u*(LL,-ll),u*(0,-ll)));
+ );
+ $=image(
+ for k=0 upto nb-1:
+ trace TT shifted(_CoinTuilev+k*u*(0,-ll));
+ endfor;
+ _CoinTuilev:=_CoinTuilev shifted(nb*u*(0,-ll));
+ );
+ $
+ enddef;
+ vardef tuileh(expr LL,ll,nb,col)(text t)=
+ save $; picture $;
+ picture TT;
+ TT=image(
+ path cc;
+ cc=polygone((0,0),u*(LL,0),u*(LL,ll),u*(0,ll));
+ fill cc withcolor col;
+ trace cc;
+ label(TEX(t),iso((0,0),u*(LL,0),u*(LL,ll),u*(0,ll)));
+ );
+ $=image(
+ for k=0 upto nb-1:
+ trace TT shifted(_CoinTuileh+k*u*(LL,0));
+ endfor;
+ _CoinTuileh:=_CoinTuileh shifted(nb*u*(LL,0));
+ );
+ $
+ enddef;
+ color ColorLetter,ColorLetterPos,ColorLetterNeg,ColorNum,ColorNumPos,ColorNumNeg,ColorCarrePos,ColorCarreNeg;
+ ColorLetter=LightGreen;
+ ColorLetterPos=ColorLetter;
+ ColorLetterNeg=Tomato;
+ ColorNum=Orange;
+ ColorNumPos=ColorNum;
+ ColorNumNeg=Tomato;
+ ColorCarrePos:=LightBlue;
+ ColorCarreNeg:=Tomato;
+ if #1<0:
+ ColorLetter:=Tomato;
+ trace tuilev(largeur,longueur,abs(#1),ColorLetter)("$-x$");
+ else:
+ ColorLetter:=LightGreen;
+ trace tuilev(largeur,longueur,abs(#1),ColorLetter)("$x$");
+ fi;
+ if #2<0:
+ ColorNum:=Tomato;
+ trace tuilev(largeur,largeur,abs(#2),ColorNum)("$-1$");
+ else:
+ ColorNum:=Orange;
+ trace tuilev(largeur,largeur,abs(#2),ColorNum)("$1$");
+ fi;
+ if #3<0:
+ ColorLetter:=Tomato;
+ trace tuileh(longueur,largeur,abs(#3),ColorLetter)("$-x$");
+ else:
+ ColorLetter:=LightGreen;
+ trace tuileh(longueur,largeur,abs(#3),ColorLetter)("$x$");
+ fi;
+ if #4<0:
+ ColorNum:=Tomato;
+ trace tuileh(largeur,largeur,abs(#4),ColorNum)("$-1$");
+ else:
+ ColorNum:=Orange;
+ trace tuileh(largeur,largeur,abs(#4),ColorNum)("$1$");
+ fi;
+ trace u*(largeur+ecart/2,largeur+ecart)--((largeur+ecart/2)*u,ypart(_CoinTuilev)) withpen pencircle scaled2;
+ trace u*(0,ecart/2)--(xpart(_CoinTuileh),u*(ecart/2)) withpen pencircle scaled2;
+ drawarrow u*(largeur/2,ecart/2){dir90}..{dir0}u*(largeur+ecart/2,largeur/2+ecart) withpen pencircle scaled2;
+ labeloffset:=labeloffset*2;
+ label.ulft(TEX("$\times$"),iso(u*(largeur/2,ecart/2),u*(largeur+ecart/2,largeur/2+ecart)));
+ labeloffset:=labeloffset/2;
+ if Vide=false:
+ %% tuile a*c
+ if #1*#3<>0:
+ for k=0 upto (abs(#3)-1):
+ for l=0 upto (abs(#1)-1):
+ path titi;
+ titi=polygone((0,0),u*(longueur,0),u*(longueur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart,0)+(u*(k*longueur,-l*longueur)));
+ fill titi withcolor if #1*#3>0:ColorCarrePos else: ColorCarreNeg fi;
+ trace titi;
+ if #1*#3>0:
+ label(TEX("$x^2$"),iso((0,0),u*(longueur,0),u*(longueur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart,0)+(u*(k*longueur,-l*longueur))));
+ else:
+ label(TEX("$-x^2$"),iso((0,0),u*(longueur,0),u*(longueur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart,0)+(u*(k*longueur,-l*longueur))));
+ fi;
+ endfor;
+ endfor;
+ fi;
+ %tuile a*d
+ if #1*#4<>0:
+ for k=0 upto (abs(#4)-1):
+ for l=0 upto (abs(#1)-1):
+ path titi;
+ titi=polygone((0,0),u*(largeur,0),u*(largeur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart+abs(#3)*longueur,0)+(u*(k*largeur,-l*longueur)));
+ fill titi withcolor if #1*#4>0:ColorLetterPos else: ColorLetterNeg fi;
+ trace titi;
+ if #1*#4>0:
+ label(TEX("$x$"),iso((0,0),u*(largeur,0),u*(largeur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart+abs(#3)*longueur,0)+(u*(k*largeur,-l*longueur))));
+ else:
+ label(TEX("$-x$"),iso((0,0),u*(largeur,0),u*(largeur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart+abs(#3)*longueur,0)+(u*(k*largeur,-l*longueur))));
+ fi;
+ endfor;
+ endfor;
+ fi;
+ %tuile b*c
+ if #2*#3<>0:
+ for k=0 upto (abs(#3)-1):
+ for l=0 upto (abs(#2)-1):
+ path titi;
+ titi=polygone((0,0),u*(longueur,0),u*(longueur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart,-abs(#1)*longueur)+(u*(k*longueur,-l*largeur)));
+ fill titi withcolor if #2*#3>0:ColorLetterPos else: ColorLetterNeg fi;
+ trace titi;
+ if #2*#3>0:
+ label(TEX("$x$"),iso((0,0),u*(longueur,0),u*(longueur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart,-abs(#1)*longueur)+(u*(k*longueur,-l*largeur))));
+ else:
+ label(TEX("$-x$"),iso((0,0),u*(longueur,0),u*(longueur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart,-abs(#1)*longueur)+(u*(k*longueur,-l*largeur))));
+ fi;
+ endfor;
+ endfor;
+ fi;
+ %tuile b*d
+ if #2*#4<>0:
+ for k=0 upto (abs(#4)-1):
+ for l=0 upto (abs(#2)-1):
+ path titi;
+ titi=polygone((0,0),u*(largeur,0),u*(largeur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart+abs(#3)*longueur,-abs(#1)*longueur)+(u*(k*largeur,-l*largeur)));
+ fill titi withcolor if #2*#4>0:ColorNumPos else: ColorNumNeg fi;
+ trace titi;
+ if #2*#4>0:
+ label(TEX("$1$"),iso((0,0),u*(largeur,0),u*(largeur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart+abs(#3)*longueur,-abs(#1)*longueur)+(u*(k*largeur,-l*largeur))));
+ else:
+ label(TEX("$-1$"),iso((0,0),u*(largeur,0),u*(largeur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart+abs(#3)*longueur,-abs(#1)*longueur)+(u*(k*largeur,-l*largeur))));
+ fi;
+ endfor;
+ endfor;
+ fi;
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}[mpsettings={boolean Vide; Vide=\useKV[ClesDistributivite]{Vide};}]
+ pair _CoinTuilev;
+ _CoinTuilev=(0,0);
+ numeric largeur,longueur,ecart;
+ largeur=0.75;
+ longueur=sqrt(3);
+ ecart=0.6;
+ pair _CoinTuileh;
+ _CoinTuileh=u*(largeur+ecart,ecart);
+ vardef tuilev(expr LL,ll,nb,col)(text t)=
+ save $; picture $;
+ save TT; picture TT;
+ TT=image(
+ path cc;
+ cc=polygone((0,0),u*(LL,0),u*(LL,-ll),u*(0,-ll));
+ fill cc withcolor col;
+ trace cc;
+ label(LATEX(t),iso((0,0),u*(LL,0),u*(LL,-ll),u*(0,-ll)));
+ );
+ $=image(
+ for k=0 upto nb-1:
+ trace TT shifted(_CoinTuilev+k*u*(0,-ll));
+ endfor;
+ _CoinTuilev:=_CoinTuilev shifted(nb*u*(0,-ll));
+ );
+ $
+ enddef;
+ vardef tuileh(expr LL,ll,nb,col)(text t)=
+ save $; picture $;
+ picture TT;
+ TT=image(
+ path cc;
+ cc=polygone((0,0),u*(LL,0),u*(LL,ll),u*(0,ll));
+ fill cc withcolor col;
+ trace cc;
+ label(LATEX(t),iso((0,0),u*(LL,0),u*(LL,ll),u*(0,ll)));
+ );
+ $=image(
+ for k=0 upto nb-1:
+ trace TT shifted(_CoinTuileh+k*u*(LL,0));
+ endfor;
+ _CoinTuileh:=_CoinTuileh shifted(nb*u*(LL,0));
+ );
+ $
+ enddef;
+ color ColorLetter,ColorLetterPos,ColorLetterNeg,ColorNum,ColorNumPos,ColorNumNeg,ColorCarrePos,ColorCarreNeg;
+ ColorLetter=LightGreen;
+ ColorLetterPos=ColorLetter;
+ ColorLetterNeg=Tomato;
+ ColorNum=Orange;
+ ColorNumPos=ColorNum;
+ ColorNumNeg=Tomato;
+ ColorCarrePos:=LightBlue;
+ ColorCarreNeg:=Tomato;
+ if #1<0:
+ ColorLetter:=Tomato;
+ trace tuilev(largeur,longueur,abs(#1),ColorLetter)("$-x$");
+ else:
+ ColorLetter:=LightGreen;
+ trace tuilev(largeur,longueur,abs(#1),ColorLetter)("$x$");
+ fi;
+ if #2<0:
+ ColorNum:=Tomato;
+ trace tuilev(largeur,largeur,abs(#2),ColorNum)("$-1$");
+ else:
+ ColorNum:=Orange;
+ trace tuilev(largeur,largeur,abs(#2),ColorNum)("$1$");
+ fi;
+ if #3<0:
+ ColorLetter:=Tomato;
+ trace tuileh(longueur,largeur,abs(#3),ColorLetter)("$-x$");
+ else:
+ ColorLetter:=LightGreen;
+ trace tuileh(longueur,largeur,abs(#3),ColorLetter)("$x$");
+ fi;
+ if #4<0:
+ ColorNum:=Tomato;
+ trace tuileh(largeur,largeur,abs(#4),ColorNum)("$-1$");
+ else:
+ ColorNum:=Orange;
+ trace tuileh(largeur,largeur,abs(#4),ColorNum)("$1$");
+ fi;
+ trace u*(largeur+ecart/2,largeur+ecart)--((largeur+ecart/2)*u,ypart(_CoinTuilev)) withpen pencircle scaled2;
+ trace u*(0,ecart/2)--(xpart(_CoinTuileh),u*(ecart/2)) withpen pencircle scaled2;
+ drawarrow u*(largeur/2,ecart/2){dir90}..{dir0}u*(largeur+ecart/2,largeur/2+ecart) withpen pencircle scaled2;
+ labeloffset:=labeloffset*2;
+ label.ulft(LATEX("$\times$"),iso(u*(largeur/2,ecart/2),u*(largeur+ecart/2,largeur/2+ecart)));
+ labeloffset:=labeloffset/2;
+ if Vide=false:
+ %% tuile a*c
+ if #1*#3<>0:
+ for k=0 upto (abs(#3)-1):
+ for l=0 upto (abs(#1)-1):
+ path titi;
+ titi=polygone((0,0),u*(longueur,0),u*(longueur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart,0)+(u*(k*longueur,-l*longueur)));
+ fill titi withcolor if #1*#3>0:ColorCarrePos else: ColorCarreNeg fi;
+ trace titi;
+ if #1*#3>0:
+ label(LATEX("$x^2$"),iso((0,0),u*(longueur,0),u*(longueur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart,0)+(u*(k*longueur,-l*longueur))));
+ else:
+ label(LATEX("$-x^2$"),iso((0,0),u*(longueur,0),u*(longueur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart,0)+(u*(k*longueur,-l*longueur))));
+ fi;
+ endfor;
+ endfor;
+ fi;
+ %tuile a*d
+ if #1*#4<>0:
+ for k=0 upto (abs(#4)-1):
+ for l=0 upto (abs(#1)-1):
+ path titi;
+ titi=polygone((0,0),u*(largeur,0),u*(largeur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart+abs(#3)*longueur,0)+(u*(k*largeur,-l*longueur)));
+ fill titi withcolor if #1*#4>0:ColorLetterPos else: ColorLetterNeg fi;
+ trace titi;
+ if #1*#4>0:
+ label(LATEX("$x$"),iso((0,0),u*(largeur,0),u*(largeur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart+abs(#3)*longueur,0)+(u*(k*largeur,-l*longueur))));
+ else:
+ label(LATEX("$-x$"),iso((0,0),u*(largeur,0),u*(largeur,-longueur),u*(0,-longueur)) shifted (u*(largeur+ecart+abs(#3)*longueur,0)+(u*(k*largeur,-l*longueur))));
+ fi;
+ endfor;
+ endfor;
+ fi;
+ %tuile b*c
+ if #2*#3<>0:
+ for k=0 upto (abs(#3)-1):
+ for l=0 upto (abs(#2)-1):
+ path titi;
+ titi=polygone((0,0),u*(longueur,0),u*(longueur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart,-abs(#1)*longueur)+(u*(k*longueur,-l*largeur)));
+ fill titi withcolor if #2*#3>0:ColorLetterPos else: ColorLetterNeg fi;
+ trace titi;
+ if #2*#3>0:
+ label(LATEX("$x$"),iso((0,0),u*(longueur,0),u*(longueur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart,-abs(#1)*longueur)+(u*(k*longueur,-l*largeur))));
+ else:
+ label(LATEX("$-x$"),iso((0,0),u*(longueur,0),u*(longueur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart,-abs(#1)*longueur)+(u*(k*longueur,-l*largeur))));
+ fi;
+ endfor;
+ endfor;
+ fi;
+ %tuile b*d
+ if #2*#4<>0:
+ for k=0 upto (abs(#4)-1):
+ for l=0 upto (abs(#2)-1):
+ path titi;
+ titi=polygone((0,0),u*(largeur,0),u*(largeur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart+abs(#3)*longueur,-abs(#1)*longueur)+(u*(k*largeur,-l*largeur)));
+ fill titi withcolor if #2*#4>0:ColorNumPos else: ColorNumNeg fi;
+ trace titi;
+ if #2*#4>0:
+ label(LATEX("$1$"),iso((0,0),u*(largeur,0),u*(largeur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart+abs(#3)*longueur,-abs(#1)*longueur)+(u*(k*largeur,-l*largeur))));
+ else:
+ label(LATEX("$-1$"),iso((0,0),u*(largeur,0),u*(largeur,-largeur),u*(0,-largeur)) shifted (u*(largeur+ecart+abs(#3)*longueur,-abs(#1)*longueur)+(u*(k*largeur,-l*largeur))));
+ fi;
+ endfor;
+ endfor;
+ fi;
+ fi;
+ \end{mpost}
+ \fi
+}
\newcommand\Affichage[4][]{%
\setKV[ClesDistributivite]{#1}%On lit les arguments optionnels
@@ -2892,191 +3565,195 @@
\xdef\SommeC{0}%
\newcommand{\Distri}[5][]{%
- \ensuremath{%
- \useKVdefault[ClesDistributivite]%obligatoire car la macro n'est pas dans un groupe.
- \setKV[ClesDistributivite]{#1}%On lit les arguments optionnels
- \ifboolKV[ClesDistributivite]{RAZ}{\xdef\SommeA{0}\xdef\SommeB{0}\xdef\SommeC{0}%
- \setcounter{NbCalculDistri}{0}%
- }{}%
- \colorlet{DCAide}{\useKV[ClesDistributivite]{CouleurAide}}%
- \colorlet{DCReduction}{\useKV[ClesDistributivite]{CouleurReduction}}%
- \colorlet{DCFlechesh}{\useKV[ClesDistributivite]{CouleurFH}}%
- \colorlet{DCFlechesb}{\useKV[ClesDistributivite]{CouleurFB}}%
- \xintifboolexpr{\useKV[ClesDistributivite]{Echange}>0}{%
- \DistriEchange[#1]{#2}{#3}{#4}{#5}%
- }{%
- \ifboolKV[ClesDistributivite]{Remarquable}{%
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{%
- \ifx\bla#4\bla(\Affichage{0}{#2}{#3})^2\else(\Affichage{0}{#2}{#3})(\Affichage{0}{#4}{#5})\fi%
- }{}
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{\ifx\bla#4\bla\xintifboolexpr{#3>0}{\xintifboolexpr{#2=1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2=1}{}{)}^2+2\times\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesDistributivite]{Lettre}\times\num{#3}+\num{#3}^2}{\xintifboolexpr{#2=1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2=1}{}{)}^2-2\times\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesDistributivite]{Lettre}\times\num{\fpeval{0-#3}}+\num{\fpeval{0-#3}}^2}\else\xintifboolexpr{#2=1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2=1}{}{)}^2-\num{#3}^2\fi}{}
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{%
- \xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}%
- \stepcounter{NbCalculDistri}%
- \ifx\bla#4\bla%
- \xdef\Multi{\fpeval{#2*#2}}%
- \xdef\Multij{\fpeval{#2*#3}}%
- \xdef\Multik{\fpeval{#3*#2}}%
- \xdef\Multil{\fpeval{#3*#3}}%
- %% ils sont red\'efinis pour pouvoir envisager la somme de deux
- %% expressions \`a d\'evelopper
- \xdef\Multim{\fpeval{#2*#3+#3*#2}}%
- \ifboolKV[ClesDistributivite]{Oppose}{%
- \xdef\Multi{\fpeval{-\Multi}}%
- \xdef\Multim{\fpeval{-\Multim}}%
- \xdef\Multil{\fpeval{-\Multil}}%
- \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}%
- \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}%
- \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}%
- }{%
- \Affichage{\Multi}{\Multim}{\Multil}%
- }
- \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#2*#2}}\xdef\SommeB{\fpeval{\SommeB+#2*#3+#3*#2}}\xdef\SommeC{\fpeval{\SommeC+#3*#3}}}{}%
- \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#2*#2}}\xdef\SommeB{\fpeval{\SommeB-#2*#3-#3*#2}}\xdef\SommeC{\fpeval{\SommeC-#3*#3}}}{}%
- \else%
- \xdef\Multi{\fpeval{#2*#4}}%
- \xdef\Multij{\fpeval{#2*#5}}%
- \xdef\Multik{\fpeval{#3*#4}}%
- \xdef\Multil{\fpeval{#3*#5}}%
- %% ils sont red\'efinis pour pouvoir envisager la somme de deux
- %% expressions \`a d\'evelopper
- \xdef\Multim{\fpeval{#2*#5+#3*#4}}%
- \ifboolKV[ClesDistributivite]{Oppose}{%
- \xdef\Multi{\fpeval{-\Multi}}%
- \xdef\Multim{\fpeval{-\Multim}}%
- \xdef\Multil{\fpeval{-\Multil}}%
- \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}%
- \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}%
- \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}%
- }{%
- \Affichage{\Multi}{\Multim}{\Multil}%
- }
- \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#2*#4}}\xdef\SommeB{\fpeval{\SommeB+#2*#5+#3*#4}}\xdef\SommeC{\fpeval{\SommeC+#3*#5}}}{}%
- \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#2*#4}}\xdef\SommeB{\fpeval{\SommeB-#2*#5-#3*#4}}\xdef\SommeC{\fpeval{\SommeC-#3*#5}}}{}%
- \fi%
- }{}%
+ \useKVdefault[ClesDistributivite]%obligatoire car la macro n'est pas dans un groupe.
+ \setKV[ClesDistributivite]{#1}%On lit les arguments optionnels
+ \ifboolKV[ClesDistributivite]{RAZ}{\xdef\SommeA{0}\xdef\SommeB{0}\xdef\SommeC{0}%
+ \setcounter{NbCalculDistri}{0}%
+ }{}%
+ \colorlet{DCAide}{\useKV[ClesDistributivite]{CouleurAide}}%
+ \colorlet{DCReduction}{\useKV[ClesDistributivite]{CouleurReduction}}%
+ \colorlet{DCFlechesh}{\useKV[ClesDistributivite]{CouleurFH}}%
+ \colorlet{DCFlechesb}{\useKV[ClesDistributivite]{CouleurFB}}%
+ \ifboolKV[ClesDistributivite]{Tuile}{%
+ \Tuile{#2}{#3}{#4}{#5}%
+ }{%
+ \ensuremath{%
+ \xintifboolexpr{\useKV[ClesDistributivite]{Echange}>0}{%
+ \DistriEchange[#1]{#2}{#3}{#4}{#5}%
}{%
- \ifboolKV[ClesDistributivite]{Numerique}{%
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=0}{%
- \num{\fpeval{#2+#3}}\times\num{\fpeval{#4+#5}}\multido{\i=2+1}{4}{=\Distri[Numerique,Etape=\i]{#2}{#3}{#4}{#5}}%
- }{%
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=-1}{%
- \Distri[Numerique,Etape=3]{#2}{#3}{#4}{#5}\multido{\i=2+-1}{2}{=\Distri[Numerique,Etape=\i]{#2}{#3}{#4}{#5}}=\num{\fpeval{(#2+#3)*(#4+#5)}}%
+ \ifboolKV[ClesDistributivite]{Remarquable}{%
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{%
+ \ifx\bla#4\bla(\Affichage{0}{#2}{#3})^2\else(\Affichage{0}{#2}{#3})(\Affichage{0}{#4}{#5})\fi%
+ }{}
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{\ifx\bla#4\bla\xintifboolexpr{#3>0}{\xintifboolexpr{#2=1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2=1}{}{)}^2+2\times\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesDistributivite]{Lettre}\times\num{#3}+\num{#3}^2}{\xintifboolexpr{#2=1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2=1}{}{)}^2-2\times\xintifboolexpr{#2=1}{}{\num{#2}}\useKV[ClesDistributivite]{Lettre}\times\num{\fpeval{0-#3}}+\num{\fpeval{0-#3}}^2}\else\xintifboolexpr{#2=1}{}{(\num{#2}}\useKV[ClesDistributivite]{Lettre}\xintifboolexpr{#2=1}{}{)}^2-\num{#3}^2\fi}{}
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{%
+ \xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}%
+ \stepcounter{NbCalculDistri}%
+ \ifx\bla#4\bla%
+ \xdef\Multi{\fpeval{#2*#2}}%
+ \xdef\Multij{\fpeval{#2*#3}}%
+ \xdef\Multik{\fpeval{#3*#2}}%
+ \xdef\Multil{\fpeval{#3*#3}}%
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
+ \xdef\Multim{\fpeval{#2*#3+#3*#2}}%
+ \ifboolKV[ClesDistributivite]{Oppose}{%
+ \xdef\Multi{\fpeval{-\Multi}}%
+ \xdef\Multim{\fpeval{-\Multim}}%
+ \xdef\Multil{\fpeval{-\Multil}}%
+ \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}%
+ \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}%
+ \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}%
}{%
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{\num{\fpeval{#2+#3}}\times\num{\fpeval{#4+#5}}}{}%
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{\num{\fpeval{#2+#3}}\times(\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#5)}})}{}%
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{\num{#3}\times\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{#3}\times\num{\fpeval{abs(#5)}}}{}%
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=4}{\num{\fpeval{#3*#4}}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#3*#5)}}}{}%
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=5}{\num{\fpeval{#3*#4+#3*#5}}}{}%
- }%
- }%
+ \Affichage{\Multi}{\Multim}{\Multil}%
+ }
+ \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#2*#2}}\xdef\SommeB{\fpeval{\SommeB+#2*#3+#3*#2}}\xdef\SommeC{\fpeval{\SommeC+#3*#3}}}{}%
+ \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#2*#2}}\xdef\SommeB{\fpeval{\SommeB-#2*#3-#3*#2}}\xdef\SommeC{\fpeval{\SommeC-#3*#3}}}{}%
+ \else%
+ \xdef\Multi{\fpeval{#2*#4}}%
+ \xdef\Multij{\fpeval{#2*#5}}%
+ \xdef\Multik{\fpeval{#3*#4}}%
+ \xdef\Multil{\fpeval{#3*#5}}%
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
+ \xdef\Multim{\fpeval{#2*#5+#3*#4}}%
+ \ifboolKV[ClesDistributivite]{Oppose}{%
+ \xdef\Multi{\fpeval{-\Multi}}%
+ \xdef\Multim{\fpeval{-\Multim}}%
+ \xdef\Multil{\fpeval{-\Multil}}%
+ \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}%
+ \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}%
+ \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}%
+ }{%
+ \Affichage{\Multi}{\Multim}{\Multil}%
+ }
+ \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#2*#4}}\xdef\SommeB{\fpeval{\SommeB+#2*#5+#3*#4}}\xdef\SommeC{\fpeval{\SommeC+#3*#5}}}{}%
+ \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#2*#4}}\xdef\SommeB{\fpeval{\SommeB-#2*#5-#3*#4}}\xdef\SommeC{\fpeval{\SommeC-#3*#5}}}{}%
+ \fi%
+ }{}%
}{%
- \ifboolKV[ClesDistributivite]{All}{%
- \xdef\NomLettre{\useKV[ClesDistributivite]{NomExpression}}%
- \xdef\NomFin{\useKV[ClesDistributivite]{Fin}}%
- \xintFor* ##1 in {\xintSeq {1}{\useKV[ClesDistributivite]{Fin}-1}}\do
- {\NomLettre&=\Distri[Etape=##1]{#2}{#3}{#4}{#5}\\}%
- \NomLettre&=\Distri[Etape=\NomFin]{#2}{#3}{#4}{#5}%
+ \ifboolKV[ClesDistributivite]{Numerique}{%
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=0}{%
+ \num{\fpeval{#2+#3}}\times\num{\fpeval{#4+#5}}\multido{\i=2+1}{4}{=\Distri[Numerique,Etape=\i]{#2}{#3}{#4}{#5}}%
+ }{%
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=-1}{%
+ \Distri[Numerique,Etape=3]{#2}{#3}{#4}{#5}\multido{\i=2+-1}{2}{=\Distri[Numerique,Etape=\i]{#2}{#3}{#4}{#5}}=\num{\fpeval{(#2+#3)*(#4+#5)}}%
+ }{%
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{\num{\fpeval{#2+#3}}\times\num{\fpeval{#4+#5}}}{}%
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{\num{\fpeval{#2+#3}}\times(\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#5)}})}{}%
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{\num{#3}\times\num{#4}\xintifboolexpr{#5>0}{+}{-}\num{#3}\times\num{\fpeval{abs(#5)}}}{}%
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=4}{\num{\fpeval{#3*#4}}\xintifboolexpr{#5>0}{+}{-}\num{\fpeval{abs(#3*#5)}}}{}%
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=5}{\num{\fpeval{#3*#4+#3*#5}}}{}%
+ }%
+ }%
}{%
- % Etape 1
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{%
- \xintifboolexpr{#2=0}{%
- }{\xintifboolexpr{#3=0}{}{(}}\Tikzmark{\Affichage[#1]{0}{#2}{0}}%
- \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{+(}}{}%
- \xintifboolexpr{#3>0}{\xintifboolexpr{#2=0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#3)}}}%
- \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{)}}{}%
- \xintifboolexpr{#2=0}{}{\xintifboolexpr{#3=0}{}{)}}%
- %
- \ifboolKV[ClesDistributivite]{AideMul}{\times}{}%on aide dans le cas double
- \xdef\Multi{\fpeval{#4*#5}}%affichage auto si (a+b)xk
- %
- \xintifboolexpr{\Multi=0}{\times%
- \xintifboolexpr{#4<0}{(}{\xintifboolexpr{#5<0}{(}{}}}{(}%
- \Tikzmark{\Affichage[#1]{0}{#4}{0}}%
- \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{+(}}{}%
- \xintifboolexpr{#5>0}{\xintifboolexpr{#4=0}{}{+}}{\xintifboolexpr{#5<0}{\xintifboolexpr{#4=0}{{-}}{-}}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#5)}}}%
- \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{)}}{}%
- \xintifboolexpr{\Multi=0}{%
- \xintifboolexpr{#4<0}{)}{\xintifboolexpr{#5<0}{)}{}}}{)}%
- \ifboolKV[ClesDistributivite]{Fleches}{%
- \xdef\Multi{\fpeval{#2*#3*#4*#5}}%
+ \ifboolKV[ClesDistributivite]{All}{%
+ \xdef\NomLettre{\useKV[ClesDistributivite]{NomExpression}}%
+ \xdef\NomFin{\useKV[ClesDistributivite]{Fin}}%
+ \xintFor* ##1 in {\xintSeq {1}{\useKV[ClesDistributivite]{Fin}-1}}\do
+ {\NomLettre&=\Distri[Etape=##1]{#2}{#3}{#4}{#5}\\}%
+ \NomLettre&=\Distri[Etape=\NomFin]{#2}{#3}{#4}{#5}%
+ }{%
+ % Etape 1
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=1}{%
+ \xintifboolexpr{#2=0}{%
+ }{\xintifboolexpr{#3=0}{}{(}}\Tikzmark{\Affichage[#1]{0}{#2}{0}}%
+ \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{+(}}{}%
+ \xintifboolexpr{#3>0}{\xintifboolexpr{#2=0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#3)}}}%
+ \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{)}}{}%
+ \xintifboolexpr{#2=0}{}{\xintifboolexpr{#3=0}{}{)}}%
+ %
+ \ifboolKV[ClesDistributivite]{AideMul}{\times}{}%on aide dans le cas double
+ \xdef\Multi{\fpeval{#4*#5}}%affichage auto si (a+b)xk
+ %
+ \xintifboolexpr{\Multi=0}{\times%
+ \xintifboolexpr{#4<0}{(}{\xintifboolexpr{#5<0}{(}{}}}{(}%
+ \Tikzmark{\Affichage[#1]{0}{#4}{0}}%
+ \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{+(}}{}%
+ \xintifboolexpr{#5>0}{\xintifboolexpr{#4=0}{}{+}}{\xintifboolexpr{#5<0}{\xintifboolexpr{#4=0}{{-}}{-}}{}}\Tikzmark{\Affichage[#1]{0}{0}{\fpeval{abs(#5)}}}%
+ \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{)}}{}%
\xintifboolexpr{\Multi=0}{%
- \xdef\Multij{\fpeval{#2*#3}}%\relax
- \xintifboolexpr{\Multij=0}{\xintifboolexpr{#2=0}{\DrawArrowSimple{1}}{\DrawArrowSimple{0}}}{\xintifboolexpr{#4=0}{\DrawArrowSimpleRenverse{3}}{\DrawArrowSimpleRenverse{2}}}%
- }{%
- \DrawArrow%
+ \xintifboolexpr{#4<0}{)}{\xintifboolexpr{#5<0}{)}{}}}{)}%
+ \ifboolKV[ClesDistributivite]{Fleches}{%
+ \xdef\Multi{\fpeval{#2*#3*#4*#5}}%
+ \xintifboolexpr{\Multi=0}{%
+ \xdef\Multij{\fpeval{#2*#3}}%\relax
+ \xintifboolexpr{\Multij=0}{\xintifboolexpr{#2=0}{\DrawArrowSimple{1}}{\DrawArrowSimple{0}}}{\xintifboolexpr{#4=0}{\DrawArrowSimpleRenverse{3}}{\DrawArrowSimpleRenverse{2}}}%
+ }{%
+ \DrawArrow%
+ }%
+ }{}\setcounter{NbDistri}{0}%
+ }{}
+ % Etape 2
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{%
+ \xdef\Multi{\fpeval{#2*#4}}%
+ \xintifboolexpr{\Multi=0}{}{%
+ \xintifboolexpr{#2<0}{(}{}\Affichage[#1]{0}{#2}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\Affichage[#1]{0}{#4}{0}\xintifboolexpr{#4<0}{)}{}%
+ }
+ \xdef\Multij{\fpeval{#2*#5}}%
+ \xintifboolexpr{\Multij=0}{}{%
+ \xintifboolexpr{\Multi=0}{}{+}%
+ \xintifboolexpr{#2<0}{(}{}\Affichage[#1]{0}{#2}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\Affichage[#1]{0}{0}{#5}\xintifboolexpr{#5<0}{)}{}%
}%
- }{}\setcounter{NbDistri}{0}%
- }{}
- % Etape 2
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=2}{%
- \xdef\Multi{\fpeval{#2*#4}}%
- \xintifboolexpr{\Multi=0}{}{%
- \xintifboolexpr{#2<0}{(}{}\Affichage[#1]{0}{#2}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\Affichage[#1]{0}{#4}{0}\xintifboolexpr{#4<0}{)}{}%
- }
- \xdef\Multij{\fpeval{#2*#5}}%
- \xintifboolexpr{\Multij=0}{}{%
- \xintifboolexpr{\Multi=0}{}{+}%
- \xintifboolexpr{#2<0}{(}{}\Affichage[#1]{0}{#2}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\Affichage[#1]{0}{0}{#5}\xintifboolexpr{#5<0}{)}{}%
- }%
- \xdef\Multik{\fpeval{#3*#4}}%
- \xintifboolexpr{\Multik=0}{}{%
- \xintifboolexpr{\Multi=0}{}{+}%
- \xintifboolexpr{#3<0}{(}{}\Affichage[#1]{0}{0}{#3}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\Affichage[#1]{0}{#4}{0}\xintifboolexpr{#4<0}{)}{}%
- }%
- \xdef\Multil{\fpeval{#3*#5}}%
- \xintifboolexpr{\Multil=0}{}{+%
- \xintifboolexpr{#3<0}{(}{}\Affichage[#1]{0}{0}{#3}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\Affichage[#1]{0}{0}{#5}\xintifboolexpr{#5<0}{)}{}%
- }%
- }{}%
- % Etape 3
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{%
- \stepcounter{NbCalculDistri}%
- \xdef\Multi{\fpeval{#2*#4}}%
- \xdef\Multij{\fpeval{#2*#5}}%
- \xdef\Multik{\fpeval{#3*#4}}%
- \xdef\Multil{\fpeval{#3*#5}}%
- %% ils sont red\'efinis pour pouvoir envisager la somme de deux
- %% expressions \`a d\'evelopper
- \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\Affichage{\Multi}{0}{0})}{\Affichage{\Multi}{0}{0}}}{\Affichage{\Multi}{0}{0}}%
- \ifboolKV[ClesDistributivite]{Reduction}{\mathunderline{DCReduction}{%
- \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{{}+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}%
- \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multil=0}{\xintifboolexpr{#2=0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\Affichage{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}%
+ \xdef\Multik{\fpeval{#3*#4}}%
+ \xintifboolexpr{\Multik=0}{}{%
+ \xintifboolexpr{\Multi=0}{}{+}%
+ \xintifboolexpr{#3<0}{(}{}\Affichage[#1]{0}{0}{#3}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\Affichage[#1]{0}{#4}{0}\xintifboolexpr{#4<0}{)}{}%
}%
- }{%
- \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}%
- \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multil=0}{\xintifboolexpr{#2=0}{}{+}}{\xintifboolexpr{#2=0}{}{+}}\xintifboolexpr{\Multik<0}{(}{}\Affichage{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}%
- }%
- \xintifboolexpr{\Multil=0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}%
- }{}%
- % Etape 4
- \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=4}{%
- \xdef\Multi{\fpeval{#2*#4}}%
- \xdef\Multij{\fpeval{#2*#5}}%
- \xdef\Multik{\fpeval{#3*#4}}%
- \xdef\Multil{\fpeval{#3*#5}}%
- %% ils sont red\'efinis pour pouvoir envisager la somme de deux
- %% expressions \`a d\'evelopper
- \xdef\Multim{\fpeval{#2*#5+#3*#4}}%
- \xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}%
- \stepcounter{NbCalculDistri}%
- \ifboolKV[ClesDistributivite]{Oppose}{%
- \xdef\Multi{\fpeval{-\Multi}}%
- \xdef\Multim{\fpeval{-\Multim}}%
- \xdef\Multil{\fpeval{-\Multil}}%
- \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}%
- \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}%
- \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}%
- }{%
+ \xdef\Multil{\fpeval{#3*#5}}%
+ \xintifboolexpr{\Multil=0}{}{+%
+ \xintifboolexpr{#3<0}{(}{}\Affichage[#1]{0}{0}{#3}\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#5<0}{(}{}\Affichage[#1]{0}{0}{#5}\xintifboolexpr{#5<0}{)}{}%
+ }%
+ }{}%
+ % Etape 3
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=3}{%
+ \stepcounter{NbCalculDistri}%
+ \xdef\Multi{\fpeval{#2*#4}}%
+ \xdef\Multij{\fpeval{#2*#5}}%
+ \xdef\Multik{\fpeval{#3*#4}}%
+ \xdef\Multil{\fpeval{#3*#5}}%
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
\xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\Affichage{\Multi}{0}{0})}{\Affichage{\Multi}{0}{0}}}{\Affichage{\Multi}{0}{0}}%
- \xintifboolexpr{\Multim=0}{}{%
- \xintifboolexpr{\Multim>0}{+\Affichage{0}{\Multim}{0}}{-\Affichage{0}{\fpeval{-\Multim}}{0}}%
+ \ifboolKV[ClesDistributivite]{Reduction}{\mathunderline{DCReduction}{%
+ \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{{}+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}%
+ \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multil=0}{\xintifboolexpr{#2=0}{}{+}}{+}\xintifboolexpr{\Multik<0}{(}{}\Affichage{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}%
+ }%
+ }{%
+ \xintifboolexpr{\Multij=0}{}{\xintifboolexpr{\Multi=0}{}{+}\xintifboolexpr{\Multij<0}{(}{}\Affichage{0}{\Multij}{0}\xintifboolexpr{\Multij<0}{)}{}}%
+ \xintifboolexpr{\Multik=0}{}{\xintifboolexpr{\Multil=0}{\xintifboolexpr{#2=0}{}{+}}{\xintifboolexpr{#2=0}{}{+}}\xintifboolexpr{\Multik<0}{(}{}\Affichage{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}%
}%
- \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil<0}{-\Affichage{0}{0}{\fpeval{-\Multil}}}{+\Affichage{0}{0}{\Multil}}}%
- }
- \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#2*#4}}\xdef\SommeB{\fpeval{\SommeB+#2*#5+#3*#4}}\xdef\SommeC{\fpeval{\SommeC+#3*#5}}}{}%
- \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#2*#4}}\xdef\SommeB{\fpeval{\SommeB-#2*#5-#3*#4}}\xdef\SommeC{\fpeval{\SommeC-#3*#5}}}{}%
- }{}%
+ \xintifboolexpr{\Multil=0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}%
+ }{}%
+ % Etape 4
+ \xintifboolexpr{\useKV[ClesDistributivite]{Etape}=4}{%
+ \xdef\Multi{\fpeval{#2*#4}}%
+ \xdef\Multij{\fpeval{#2*#5}}%
+ \xdef\Multik{\fpeval{#3*#4}}%
+ \xdef\Multil{\fpeval{#3*#5}}%
+ %% ils sont red\'efinis pour pouvoir envisager la somme de deux
+ %% expressions \`a d\'evelopper
+ \xdef\Multim{\fpeval{#2*#5+#3*#4}}%
+ \xintifboolexpr{\theNbCalculDistri>1}{\setcounter{NbCalculDistri}{0}}{}%
+ \stepcounter{NbCalculDistri}%
+ \ifboolKV[ClesDistributivite]{Oppose}{%
+ \xdef\Multi{\fpeval{-\Multi}}%
+ \xdef\Multim{\fpeval{-\Multim}}%
+ \xdef\Multil{\fpeval{-\Multil}}%
+ \xintifboolexpr{\Multi=0}{}{\xintifboolexpr{\Multi<0}{(}{}\Affichage{\Multi}{0}{0}\xintifboolexpr{\Multi<0}{)}{}}%
+ \xintifboolexpr{\Multim=0}{}{\xintifboolexpr{\Multim>0}{+}{+(}\Affichage{0}{\Multim}{0}\xintifboolexpr{\Multim<0}{)}{}}%
+ \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil>0}{+}{+(}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}}%
+ }{%
+ \xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\Affichage{\Multi}{0}{0})}{\Affichage{\Multi}{0}{0}}}{\Affichage{\Multi}{0}{0}}%
+ \xintifboolexpr{\Multim=0}{}{%
+ \xintifboolexpr{\Multim>0}{+\Affichage{0}{\Multim}{0}}{-\Affichage{0}{\fpeval{-\Multim}}{0}}%
+ }%
+ \xintifboolexpr{\Multil=0}{}{\xintifboolexpr{\Multil<0}{-\Affichage{0}{0}{\fpeval{-\Multil}}}{+\Affichage{0}{0}{\Multil}}}%
+ }
+ \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#2*#4}}\xdef\SommeB{\fpeval{\SommeB+#2*#5+#3*#4}}\xdef\SommeC{\fpeval{\SommeC+#3*#5}}}{}%
+ \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#2*#4}}\xdef\SommeB{\fpeval{\SommeB-#2*#5-#3*#4}}\xdef\SommeC{\fpeval{\SommeC-#3*#5}}}{}%
+ }{}%
+ }%
}%
}%
}%
@@ -5948,53 +6625,55 @@ vardef Positions(expr Step)=
}%
\ifboolKV[ClesTrigo]{Cosinus}{%
\ifx\bla#3\bla%on calcule le c\^ot\'e adjacent
- \xdef\ResultatTrigo{\fpeval{round(\fpeval{#4*cosd(#5)},\useKV[ClesTrigo]{Precision})}}%
+ \xdef\ResultatTrigo{\fpeval{round(#4*cosd(#5),\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
\NomA\NomC\times\cos(\widehat{\NomB\NomA\NomC})&=\NomA\NomB\\
\num{#4}\times\cos(\ang{#5})&=\NomA\NomB\\
- \num{\fpeval{round(\fpeval{#4*cosd(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(\fpeval{#4*cosd(#5)},2)}}{=}{\approx}\NomA\NomB%
+ \num{\fpeval{round(#4*cosd(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*cosd(#5),9)}}{=}{\approx}\NomA\NomB%
\end{align*}%
}{%
\begin{align*}
\cos(\widehat{\NomB\NomA\NomC})&=\frac{\NomA\NomB}{\NomA\NomC}\\
\cos(\ang{#5})&=\frac{\NomA\NomB}{\num{#4}}\\
\num{#4}\times\cos(\ang{#5})&=\NomA\NomB\\
- \num{\fpeval{round(\fpeval{#4*cosd(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(\fpeval{#4*cosd(#5)},2)}}{=}{\approx}\NomA\NomB
+ \num{\fpeval{round(#4*cosd(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*cosd(#5),9)}}{=}{\approx}\NomA\NomB
\end{align*}
}%
\else%
\ifx\bla#4\bla%on calcule l'hypoth\'enuse
- \xdef\ResultatTrigo{\fpeval{round(\fpeval{#3/cosd(#5)},\useKV[ClesTrigo]{Precision})}}%
+ \xdef\ResultatTrigo{\fpeval{round(#3/cosd(#5),\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
\NomA\NomC\times\cos(\widehat{\NomB\NomA\NomC})&=\NomA\NomB\\
\NomA\NomC\times\cos(\ang{#5})&=\num{#3}\\
\NomA\NomC&=\frac{\num{#3}}{\cos(\ang{#5})}\\
- \NomA\NomC&\IfInteger{\fpeval{round(\fpeval{#3/cosd(#5)},2)}}{=}{\approx}\num{\fpeval{round(\fpeval{#3/cosd(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomC&\IfInteger{\fpeval{round(#3/cosd(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/cosd(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
\end{align*}
}{%
\begin{align*}
\cos(\widehat{\NomB\NomA\NomC})&=\frac{\NomA\NomB}{\NomA\NomC}\\
\cos(\ang{#5})&=\frac{\num{#3}}{\NomA\NomC}\\
\NomA\NomC&=\frac{\num{#3}}{\cos(\ang{#5})}\\
- \NomA\NomC&\IfInteger{\fpeval{round(\fpeval{#3/cosd(#5)},2)}}{=}{\approx}\num{\fpeval{round(\fpeval{#3/cosd(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomC&\IfInteger{\fpeval{round(#3/cosd(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/cosd(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
\end{align*}%
}%
\else%on calcule l'angle
- \xdef\ResultatTrigo{\fpeval{round(\fpeval{acosd(#3/#4)})}}%
+ \xdef\ResultatTrigo{\fpeval{round(acosd(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \setKV[ClesTrigo]{Precision=0}%
+ \setKV[ClesTrigo]{#1}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
\NomA\NomC\times\cos(\widehat{\NomB\NomA\NomC})&=\NomA\NomB\\
\num{#4}\times\cos(\widehat{\NomB\NomA\NomC})&=\num{#3}\\
\cos(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
- \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(\fpeval{acosd(#3/#4)},2)}}{=}{\approx}\ang{\fpeval{round(\fpeval{acosd(#3/#4)})}}%
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(acosd(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(acosd(#3/#4),\useKV[ClesTrigo]{Precision})}}%
\end{align*}%
}{%
\begin{align*}
\cos(\widehat{\NomB\NomA\NomC})&=\frac{\NomA\NomB}{\NomA\NomC}\\
\cos(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
- \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(\fpeval{acosd(#3/#4)},2)}}{=}{\approx}\ang{\fpeval{round(\fpeval{acosd(#3/#4)})}}%
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(acosd(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(acosd(#3/#4),\useKV[ClesTrigo]{Precision})}}%
\end{align*}%
}%
\fi%
@@ -6002,53 +6681,55 @@ vardef Positions(expr Step)=
}{}%
\ifboolKV[ClesTrigo]{Sinus}{%
\ifx\bla#3\bla%on calcule le c\^ot\'e oppos\'e
- \xdef\ResultatTrigo{\fpeval{round(\fpeval{#4*sind(#5)},\useKV[ClesTrigo]{Precision})}}%
+ \xdef\ResultatTrigo{\fpeval{round(#4*sind(#5),\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
\NomA\NomC\times\sin(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
\num{#4}\times\sin(\ang{#5})&=\NomB\NomC\\
- \num{\fpeval{round(\fpeval{#4*sind(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(\fpeval{#4*sind(#5)},2)}}{=}{\approx}\NomB\NomC%
+ \num{\fpeval{round(#4*sind(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*sind(#5),9)}}{=}{\approx}\NomB\NomC%
\end{align*}%
}{%
\begin{align*}
\sin(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomC}\\
\sin(\ang{#5})&=\frac{\NomB\NomC}{\num{#4}}\\
\num{#4}\times\sin(\ang{#5})&=\NomB\NomC\\
- \num{\fpeval{round(\fpeval{#4*sind(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(\fpeval{#4*sind(#5)},2)}}{=}{\approx}\NomB\NomC%
+ \num{\fpeval{round(#4*sind(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*sind(#5),9)}}{=}{\approx}\NomB\NomC%
\end{align*}%
}%
\else
\ifx\bla#4\bla%on calcule l'hypoth\'enuse
- \xdef\ResultatTrigo{\fpeval{round(\fpeval{#3/sind(#5)},\useKV[ClesTrigo]{Precision})}}%
+ \xdef\ResultatTrigo{\fpeval{round(#3/sind(#5),\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
\NomA\NomC\times\sin(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
\NomA\NomC\times\sin(\ang{#5})&=\num{#3}\\
\NomA\NomC&=\frac{\num{#3}}{\sin(\ang{#5})}\\
- \NomA\NomC&\IfInteger{\fpeval{round(\fpeval{#3/sind(#5)},2)}}{=}{\approx}\num{\fpeval{round(\fpeval{#3/sind(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomC&\IfInteger{\fpeval{round(#3/sind(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/sind(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
\end{align*}%
}{%
\begin{align*}
\sin(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomC}\\
\sin(\ang{#5})&=\frac{\num{#3}}{\NomA\NomC}\\
\NomA\NomC&=\frac{\num{#3}}{\sin(\ang{#5})}\\
- \NomA\NomC&\IfInteger{\fpeval{round(\fpeval{#3/sind(#5)},2)}}{=}{\approx}\num{\fpeval{round(\fpeval{#3/sind(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomC&\IfInteger{\fpeval{round(#3/sind(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/sind(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
\end{align*}%
}%
\else%on calcule l'angle
- \xdef\ResultatTrigo{\fpeval{round(\fpeval{asind(#3/#4)})}}%
+ \xdef\ResultatTrigo{\fpeval{round(asind(#3/#4),\useKV[ClesTrigo]{Precision})}}%
+ \setKV[ClesTrigo]{Precision=0}%
+ \setKV[ClesTrigo]{#1}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
\NomA\NomC\times\sin(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
\num{#4}\times\sin(\widehat{\NomB\NomA\NomC})&=\num{#3}\\
\sin(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
- \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(\fpeval{asind(#3/#4)},2)}}{=}{\approx}\ang{\fpeval{round(\fpeval{asind(#3/#4)})}}%
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(asind(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(asind(#3/#4),\useKV[ClesTrigo]{Precision})}}%
\end{align*}%
}{%
\begin{align*}
\sin(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomC}\\
\sin(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
- \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(\fpeval{asind(#3/#4)},2)}}{=}{\approx}\ang{\fpeval{round(\fpeval{asind(#3/#4)})}}%
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(asind(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(asind(#3/#4),\useKV[ClesTrigo]{Precision})}}%
\end{align*}%
}%
\fi%
@@ -6056,53 +6737,55 @@ vardef Positions(expr Step)=
}{}%
\ifboolKV[ClesTrigo]{Tangente}{%
\ifx\bla#3\bla%on calcule le c\^ot\'e oppos\'e
- \xdef\ResultatTrigo{\fpeval{round(\fpeval{#4*tand(#5)},\useKV[ClesTrigo]{Precision})}}%
+ \xdef\ResultatTrigo{\fpeval{round(#4*tand(#5),\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
\NomA\NomB\times\tan(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\%
\num{#4}\times\tan(\ang{#5})&=\NomB\NomC\\%
- \num{\fpeval{round(\fpeval{#4*tand(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(\fpeval{#4*tand(#5)},2)}}{=}{\approx}\NomB\NomC%
+ \num{\fpeval{round(#4*tand(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*tand(#5),9)}}{=}{\approx}\NomB\NomC%
\end{align*}%
}{%
\begin{align*}
\tan(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomB}\\
\tan(\ang{#5})&=\frac{\NomB\NomC}{\num{#4}}\\
\num{#4}\times\tan(\ang{#5})&=\NomB\NomC\\
- \num{\fpeval{round(\fpeval{#4*tand(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(\fpeval{#4*tand(#5)},2)}}{=}{\approx}\NomB\NomC%
+ \num{\fpeval{round(#4*tand(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*tand(#5),9)}}{=}{\approx}\NomB\NomC%
\end{align*}%
}%
\else
\ifx\bla#4\bla%on calcule l'adjacent
- \xdef\ResultatTrigo{\fpeval{round(\fpeval{#3/tand(#5)},\useKV[ClesTrigo]{Precision})}}%
+ \xdef\ResultatTrigo{\fpeval{round(#3/tand(#5),\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
\NomA\NomB\times\tan(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
\NomA\NomB\times\tan(\ang{#5})&=\num{#3}\\
\NomA\NomB&=\frac{\num{#3}}{\tan(\ang{#5})}\\
- \NomA\NomB&\IfInteger{\fpeval{round(\fpeval{#3/tand(#5)},2)}}{=}{\approx}\num{\fpeval{round(\fpeval{#3/tand(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomB&\IfInteger{\fpeval{round(#3/tand(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/tand(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
\end{align*}%
}{%
\begin{align*}
\tan(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomB}\\
\tan(\ang{#5})&=\frac{\num{#3}}{\NomA\NomB}\\
\NomA\NomB&=\frac{\num{#3}}{\tan(\ang{#5})}\\
- \NomA\NomB&\IfInteger{\fpeval{round(\fpeval{#3/tand(#5)},2)}}{=}{\approx}\num{\fpeval{round(\fpeval{#3/tand(#5)},\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomB&\IfInteger{\fpeval{round(#3/tand(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/tand(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
\end{align*}%
}%
\else%on calcule l'angle
- \xdef\ResultatTrigo{\fpeval{round(\fpeval{atand(#3/#4)})}}%
+ \setKV[ClesTrigo]{Precision=0}%
+ \setKV[ClesTrigo]{#1}%
+ \xdef\ResultatTrigo{\fpeval{round(atand(#3/#4),\useKV[ClesTrigo]{Precision})}}%
\ifboolKV[ClesTrigo]{Propor}{%
\begin{align*}
\NomA\NomB\times\tan(\widehat{\NomB\NomA\NomC})&=\NomB\NomC\\
\num{#4}\times\tan(\widehat{\NomB\NomA\NomC})&=\num{#3}\\
\tan(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
- \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(\fpeval{atand(#3/#4)},2)}}{=}{\approx}\ang{\fpeval{round(\fpeval{atand(#3/#4)})}}%
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(atand(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(atand(#3/#4),\useKV[ClesTrigo]{Precision})}}%
\end{align*}%
}{%
\begin{align*}
\tan(\widehat{\NomB\NomA\NomC})&=\frac{\NomB\NomC}{\NomA\NomB}\\
\tan(\widehat{\NomB\NomA\NomC})&=\frac{\num{#3}}{\num{#4}}\\
- \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(\fpeval{atand(#3/#4)},2)}}{=}{\approx}\ang{\fpeval{round(\fpeval{atand(#3/#4)})}}%
+ \widehat{\NomB\NomA\NomC}&\IfInteger{\fpeval{round(atand(#3/#4),9)}}{=}{\approx}\ang{\fpeval{round(atand(#3/#4),\useKV[ClesTrigo]{Precision})}}%
\end{align*}%
}%
\fi%
@@ -6883,7 +7566,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\DTLgnewdb{mtdbEE}%
\DTLgnewdb{mtdbEEqual}%
-%
+%
\newcommand\Stat[2][]{%
\useKVdefault[ClesStat]%
\setKV[ClesStat]{#1}%
@@ -6897,89 +7580,89 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
}%
\readlist*\ListeComplete{\foo}%
\setKV[ClesStat]{Qualitatif}%
- }{
- \ifboolKV[ClesStat]{Sondage}{%
- \setsepchar{,}\ignoreemptyitems%
- \readlist*\Liste{#2}%
- % "liste vide"
- \newtoks\tabtoksEEa%
- \tabtoksEEa{}%
- %
- % "liste vide"
- \newtoks\tabtoksEEb%
- \tabtoksEEb{}%
- %
- \readlist*\ListeSansDoublonsEE{999}% %% Pour ne pas avoir une liste vide
- %
- \newcount\cmptEE%
- \newcount\PasNumEE% %% Permettra de savoir si ce sondage est qualitatif ou quantitatif
- \PasNumEE=0\relax%
- \DTLcleardb{mtdbEE}%
- % on range les resultats du sondage par ordre croissant.
- \foreachitem\x\in\Liste{%
- \DTLnewrow{mtdbEE}%
- \DTLnewdbentry{mtdbEE}{Numeric}{\x}%
- }%
- \dtlsort{Numeric}{mtdbEE}{\dtlicompare}%
- \DTLforeach{mtdbEE}{\nba=Numeric}{%
- \IfDecimal{\nba}{}{\PasNumEE=\numexpr\PasNumEE+1\relax}%
- \cmptEE=0\relax%
- \foreachitem\nbb\in\ListeSansDoublonsEE{%
- \ifthenelse{\equal{\nba}{\nbb}}{\cmptEE=\numexpr\cmptEE+1\relax}{}%
- }%
- \ifthenelse{\equal{\the\cmptEE}{0}}{%
- \expandafter\AjoutListEEb\nba\nil%
- \xdef\listEEa{\the\tabtoksEEb}%
- \ignoreemptyitems%
- \setsepchar{,}%
- \readlist*\ListeSansDoublonsEE\listEEa% %%% Enl\`eve tous les \'elements
- %%% identiques de Liste
- }{}%
- }%
- \foreachitem\nba\in\ListeSansDoublonsEE{%
- \cmptEE=0\relax%
- \DTLforeach{mtdbEE}{\nbb=Numeric}{%
- \ifthenelse{\equal{\nba}{\nbb}}{\cmptEE=\numexpr\cmptEE+1\relax}{}%
- }%
- \expandafter\AjoutListEEab\nba\nil%
- \expandafter\AjoutListEEaa\the\cmptEE\nil% %%% Compte tous les \'elements
- %%% identiques de Liste
- }%
- \xdef\listEEb{\the\tabtoksEEa}
- \ignoreemptyitems%
- \setsepchar[*]{,*/}
- \readlist*\ListeComplete\listEEb%
- %
- \ifthenelse{\equal{\the\PasNumEE}{0}}{\setKV[ClesStat]{Quantitatif}}{\setKV[ClesStat]{Qualitatif}}%
}{%
- \ifboolKV[ClesStat]{Qualitatif}{%
- % % on lit la liste \'ecrite sous la forme valeur/effectif
- \setsepchar[*]{,*/}\ignoreemptyitems%
- \readlist*\ListeComplete{#2}%
- }{% Dans le qualitatif, on trie d'abord les valeurs.
- \setsepchar[*]{,*/}\ignoreemptyitems%
- \readlist*\ListeInitiale{#2}%
-% "liste vide"
+ \ifboolKV[ClesStat]{Sondage}{%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\Liste{#2}%
+ % "liste vide"
+ \newtoks\tabtoksEEa%
+ \tabtoksEEa{}%
+ %
+ % "liste vide"
+ \newtoks\tabtoksEEb%
+ \tabtoksEEb{}%
+ %
+ \readlist*\ListeSansDoublonsEE{999}% %% Pour ne pas avoir une liste vide
+ %
+ \newcount\cmptEE%
+ \newcount\PasNumEE% %% Permettra de savoir si ce sondage est qualitatif ou quantitatif
+ \PasNumEE=0\relax%
+ \DTLcleardb{mtdbEE}%
+ % on range les resultats du sondage par ordre croissant.
+ \foreachitem\x\in\Liste{%
+ \DTLnewrow{mtdbEE}%
+ \DTLnewdbentry{mtdbEE}{Numeric}{\x}%
+ }%
+ \dtlsort{Numeric}{mtdbEE}{\dtlicompare}%
+ \DTLforeach{mtdbEE}{\nba=Numeric}{%
+ \IfDecimal{\nba}{}{\PasNumEE=\numexpr\PasNumEE+1\relax}%
+ \cmptEE=0\relax%
+ \foreachitem\nbb\in\ListeSansDoublonsEE{%
+ \ifthenelse{\equal{\nba}{\nbb}}{\cmptEE=\numexpr\cmptEE+1\relax}{}%
+ }%
+ \ifthenelse{\equal{\the\cmptEE}{0}}{%
+ \expandafter\AjoutListEEb\nba\nil%
+ \xdef\listEEa{\the\tabtoksEEb}%
+ \ignoreemptyitems%
+ \setsepchar{,}%
+ \readlist*\ListeSansDoublonsEE\listEEa% %%% Enl\`eve tous les \'elements
+ %%% identiques de Liste
+ }{}%
+ }%
+ \foreachitem\nba\in\ListeSansDoublonsEE{%
+ \cmptEE=0\relax%
+ \DTLforeach{mtdbEE}{\nbb=Numeric}{%
+ \ifthenelse{\equal{\nba}{\nbb}}{\cmptEE=\numexpr\cmptEE+1\relax}{}%
+ }%
+ \expandafter\AjoutListEEab\nba\nil%
+ \expandafter\AjoutListEEaa\the\cmptEE\nil% %%% Compte tous les \'elements
+ %%% identiques de Liste
+ }%
+ \xdef\listEEb{\the\tabtoksEEa}
+ \ignoreemptyitems%
+ \setsepchar[*]{,*/}%
+ \readlist*\ListeComplete\listEEb%
+ %
+ \ifthenelse{\equal{\the\PasNumEE}{0}}{\setKV[ClesStat]{Quantitatif}}{\setKV[ClesStat]{Qualitatif}}%
+ }{%
+ \ifboolKV[ClesStat]{Qualitatif}{%
+ % % on lit la liste \'ecrite sous la forme valeur/effectif
+ \setsepchar[*]{,*/}\ignoreemptyitems%
+ \readlist*\ListeComplete{#2}%
+ }{% Dans le qualitatif, on trie d'abord les valeurs.
+ \setsepchar[*]{,*/}\ignoreemptyitems%
+ \readlist*\ListeInitiale{#2}%
+ % "liste vide"
\newtoks\tabtoksEE%
\tabtoksEE{}%
\DTLcleardb{mtdbEEqual}%
\foreachitem\x\in\ListeInitiale{%
- \DTLnewrow{mtdbEEqual}%
- \itemtomacro\ListeInitiale[\xcnt,1]\x%
- \DTLnewdbentry{mtdbEEqual}{Val}{\x}%
- \itemtomacro\ListeInitiale[\xcnt,2]\y%
- \DTLnewdbentry{mtdbEEqual}{Eff}{\y}%
+ \DTLnewrow{mtdbEEqual}%
+ \itemtomacro\ListeInitiale[\xcnt,1]\x%
+ \DTLnewdbentry{mtdbEEqual}{Val}{\x}%
+ \itemtomacro\ListeInitiale[\xcnt,2]\y%
+ \DTLnewdbentry{mtdbEEqual}{Eff}{\y}%
}%
\dtlsort{Val}{mtdbEEqual}{\dtlicompare}%
\DTLforeach{mtdbEEqual}{\Val=Val,\Eff=Eff}{%
- \expandafter\AjoutListEEy\Val\nil%
- \expandafter\AjoutListEEx\Eff\nil%
- }
+ \expandafter\AjoutListEEy\Val\nil%
+ \expandafter\AjoutListEEx\Eff\nil%
+ }%
\xdef\listEE{\the\tabtoksEE}
\ignoreemptyitems%
- \setsepchar[*]{,*/}
+ \setsepchar[*]{,*/}%
\readlist*\ListeComplete\listEE%
- }}}
+ }}}%
% on cr\'ee la base de donn\'ees des valeurs dans le cas qualitatif
\DTLcleardb{mtdb}%
% on les trie pour la m\'ediane dans le cas qualitatif % Touhami / Texnique.fr
@@ -6991,7 +7674,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\dtlsort{Numeric}{mtdb}{\dtlicompare}%
% % on r\'einitialise les valeurs des crit\`eres de position et de
% dispersion
- \renewcommand\NbDonnees{}
+ \renewcommand\NbDonnees{}%
\renewcommand\SommeDonnees{}%
\renewcommand\EffectifTotal{}%
\renewcommand\Moyenne{}%
@@ -7007,7 +7690,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
% %% celui de l'effectif total
\ifboolKV[ClesStat]{EffectifTotal}{%
\ifboolKV[ClesStat]{Liste}{L'effectif total de la s\'erie est
- \num{\ListeCompletelen}.\par}{
+ \num{\ListeCompletelen}.\par}{%
\foreachitem\don\in\ListeComplete{\xdef\EffectifTotal{\fpeval{\EffectifTotal+\ListeComplete[\doncnt,2]}}}%
L'effectif total de la s\'erie est : \[\ListeComplete[1,2]\xintFor* ##1 in
{\xintSeq {2}{\ListeCompletelen}}\do{%
@@ -7017,30 +7700,30 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
% %% celui de la moyenne
\xdef\Moyenne{\fpeval{\SommeDonnees/\ListeCompletelen}}%
\ifboolKV[ClesStat]{Moyenne}{%
- \ifboolKV[ClesStat]{Liste}{%
- La somme des donn\'ees de la s\'erie est :%
- \xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
- \[
- \num{\ListeComplete[1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
- +\num{\ListeComplete[##1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}%
- \]}{%
- \[
- \num{\ListeComplete[1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{3}}\do{%
- +\num{\ListeComplete[##1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}+\dots\xintFor* ##1 in {\xintSeq {\ListeCompletelen-1}{\ListeCompletelen}}\do{%
- +\num{\ListeComplete[##1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}%
- \]%
- }%
- \ifboolKV[ClesStat]{SET}{}{Le nombre de donn\'ees de la s\'erie est \num{\ListeCompletelen}.\\}%
- Donc la moyenne de la s\'erie est \'egale \`a :%
- \[\frac{\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}{\num{\ListeCompletelen}}%\IfInteger{\fpeval{round(\fpeval{\SommeDonnees/\ListeCompletelen},\useKV[ClesStat]{Precision})}}{=}{\approx}
- \opdiv*{\SommeDonnees}{\ListeCompletelen}{resultatmoy}{restemoy}%
- \opround{resultatmoy}{\useKV[ClesStat]{Precision}}{resultatmoy1}%
- \opcmp{resultatmoy}{resultatmoy1}\ifopeq=\else\approx\fi%
- \num{\fpeval{round(\fpeval{\SommeDonnees/\ListeCompletelen},\useKV[ClesStat]{Precision})}}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}.}{.}%
- \]%
- }{Pas de moyenne possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}%
+ \ifboolKV[ClesStat]{Liste}{%
+ La somme des donn\'ees de la s\'erie est :%
+ \xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
+ \[
+ \num{\ListeComplete[1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
+ +\num{\ListeComplete[##1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
+ }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}%
+ \]}{%
+ \[
+ \num{\ListeComplete[1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{3}}\do{%
+ +\num{\ListeComplete[##1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}+\dots\xintFor* ##1 in {\xintSeq {\ListeCompletelen-1}{\ListeCompletelen}}\do{%
+ +\num{\ListeComplete[##1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
+ }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}%
+ \]%
+ }%
+ \ifboolKV[ClesStat]{SET}{}{Le nombre de donn\'ees de la s\'erie est \num{\ListeCompletelen}.\\}%
+ Donc la moyenne de la s\'erie est \'egale \`a :%
+ \[\frac{\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}{\num{\ListeCompletelen}}%\IfInteger{\fpeval{round(\fpeval{\SommeDonnees/\ListeCompletelen},\useKV[ClesStat]{Precision})}}{=}{\approx}
+ \opdiv*{\SommeDonnees}{\ListeCompletelen}{resultatmoy}{restemoy}%
+ \opround{resultatmoy}{\useKV[ClesStat]{Precision}}{resultatmoy1}%
+ \opcmp{resultatmoy}{resultatmoy1}\ifopeq=\else\approx\fi%
+ \num{\fpeval{round(\SommeDonnees/\ListeCompletelen,\useKV[ClesStat]{Precision})}}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}.}{.}%
+ \]%
+ }{Pas de moyenne possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}%
% % %% celui de l'\'etendue
\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{%
\xintifboolexpr{\ListeComplete[##1,2]>\DonneeMax}{%
@@ -7053,160 +7736,159 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\xdef\EffectifMax{\DonneeMax}%
\xdef\Etendue{\fpeval{\DonneeMax-\DonneeMin}}%
\ifboolKV[ClesStat]{Etendue}{%
- \ifboolKV[ClesStat]{Liste}{%
- L'\'etendue de la s\'erie est \'egale \`a $\num{\DonneeMax}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\DonneeMin}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
- }{Pas d'\'etendue possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}%
+ \ifboolKV[ClesStat]{Liste}{%
+ L'\'etendue de la s\'erie est \'egale \`a $\num{\DonneeMax}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\DonneeMin}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+ }{Pas d'\'etendue possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}%
\ifboolKV[ClesStat]{Mediane}{%
- \ifboolKV[ClesStat]{Liste}{%
- On range les donn\'ees par ordre croissant :%
- \nbdonnees=0%
- \xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
- \[\DTLforeach{mtdb}{\numeroDonnee=Numeric}{\num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\DTLiflastrow{.}{;}}\]%
- }{%
- \medskip%
- \begin{center}
- \begin{minipage}{0.9\linewidth}
- \DTLforeach*{mtdb}{\numeroDonnee=Numeric}{\num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\DTLiflastrow{.}{;
- }\nbdonnees=\fpeval{\nbdonnees+1}\modulo{\nbdonnees}{\useKV[ClesStat]{Coupure}}\xintifboolexpr{\remainder=0}{\\}{}}
- \end{minipage}
- \end{center}%
- \medskip%
- }%
- \newcount\med%
- \newcount\meda%
- \ifodd\number\ListeCompletelen%odd impair
- \med=\fpeval{(\ListeCompletelen+1)/2}\relax%
- L'effectif total de la s\'erie est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$.\\
- \else% pair
- \med=\fpeval{\ListeCompletelen/2}\relax
- \meda=\numexpr\med+1\relax
- L'effectif total de la s\'erie est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\the\med}+\num{\the\med}$.\\
- \fi%
- \newcount\k%
- \k=0%
- \DTLforeach{mtdb}{\numeroDonnee=Numeric}{\k=\numexpr\k+1\relax%
- \ifnum\k=\med %La m\'ediane vaut \numeroDonnee\fi
- \ifodd\number\ListeCompletelen%
- La m\'ediane de la s\'erie est la \the\med\ieme{} donn\'ee.\\Donc la m\'ediane de la s\'erie est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
- \else%
- La \the\med\ieme{} donn\'ee est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\xdef\Mediane{\numeroDonnee} %
- \fi
- \fi
- \ifnum\k=\meda
- La \the\meda\ieme{} donn\'ee est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.} Donc la m\'ediane de la s\'erie est \xdef\Mediane{\fpeval{(\Mediane+\numeroDonnee)/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}
- \fi
- }
- %%%%%%%%%%%%%%%%%%%%%%%%
- }{Pas de m\'ediane possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}
- % Construction du tableau
- \ifboolKV[ClesStat]{Tableau}{%
- \ifboolKV[ClesStat]{Liste}{Pas de tableau possible avec la cl\'e Liste.\\Utilisez plut\^ot la cl\'e Sondage si vous voulez un tableau avec cette liste.}{%
- \ifboolKV[ClesStat]{Total}{\buildtabt}{\buildtab}}}%
- {}%
- % Construction du graphique
- \ifboolKV[ClesStat]{Graphique}{%
- \ifboolKV[ClesStat]{Liste}{Pas de graphique possible avec la cl\'e Liste.\\Utilisez plut\^ot la cl\'e Sondage si vous voulez un graphique avec cette liste.}{%
- \ifboolKV[ClesStat]{Angle}{\buildgraphcq{360}}{\ifboolKV[ClesStat]{SemiAngle}{\buildgraphcq{180}}{\buildgraphq[#1]}}%
- }}{}
- }{%%%%%%%%%%%%%%%%%%%%%D\'ebut quantitatif
- % % on effectue les calculs
- % %% celui de la somme des donn\'ees
- \foreachitem\don\in\ListeComplete{\xdef\SommeDonnees{\fpeval{\SommeDonnees+\ListeComplete[\doncnt,1]*\ListeComplete[\doncnt,2]}}}%
- % %% celui de l'effectif total
- \foreachitem\don\in\ListeComplete{\xdef\EffectifTotal{\fpeval{\EffectifTotal+\ListeComplete[\doncnt,2]}}}%
- % %% celui de l'\'etendue
- \xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{%
- \xintifboolexpr{\ListeComplete[##1,1]>\DonneeMax}{%
- \xdef\DonneeMax{\ListeComplete[##1,1]}%
- }{}%
- \xintifboolexpr{\ListeComplete[##1,1]<\DonneeMin}{%
- \xdef\DonneeMin{\ListeComplete[##1,1]}%
- }{}%
- }%
-% \xdef\EffectifMax{\DonneeMax}%
- \xdef\Etendue{\fpeval{\DonneeMax-\DonneeMin}}%%
- % %% celui de la moyenne
- \xdef\Moyenne{\fpeval{\SommeDonnees/\EffectifTotal}}%
- \ifboolKV[ClesStat]{EffectifTotal}{%
- L'effectif total de la s\'erie est : \[\ListeComplete[1,2]\xintFor* ##1 in
- {\xintSeq {2}{\ListeCompletelen}}\do{%
- +\ListeComplete[##1,2]}=\num{\EffectifTotal}\]
- }{}%
- \ifboolKV[ClesStat]{Moyenne}{%
- La somme des donn\'ees de la s\'erie est :%
- \xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
- \[
- \ifnum\ListeComplete[1,2]=1\else\num{\ListeComplete[1,2]}\times\fi\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
- +\ifnum\ListeComplete[##1,2]=1\else\num{\ListeComplete[##1,2]}\times\fi\num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- \]
- }{%
- \[
- \ifnum\ListeComplete[1,2]=1\else\num{\ListeComplete[1,2]}\times\fi\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{2}}\do{%
- +\ifnum\ListeComplete[##1,2]=1\else\num{\ListeComplete[##1,2]}\times\fi\num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- }+\dots\xintFor* ##1 in {\xintSeq {\ListeCompletelen-1}{\ListeCompletelen}}\do{%
- +\ifnum\ListeComplete[##1,2]=1\else\num{\ListeComplete[##1,2]}\times\fi\num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- \]
- }
- \ifboolKV[ClesStat]{SET}{}{L'effectif total de la s\'erie est :%
- \ifboolKV[ClesStat]{Liste}{ \num{\EffectifTotal}\\}{%
- \[\num{\ListeComplete[1,2]}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
- +\num{\ListeComplete[##1,2]}
- }=\num{\EffectifTotal}
- \]%
+ \ifboolKV[ClesStat]{Liste}{%
+ On range les donn\'ees par ordre croissant :%
+ \nbdonnees=0%
+ \xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
+ \[\DTLforeach{mtdb}{\numeroDonnee=Numeric}{\num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\DTLiflastrow{.}{;}}\]%
+ }{%
+ \medskip%
+ \begin{center}
+ \begin{minipage}{0.9\linewidth}
+ \DTLforeach*{mtdb}{\numeroDonnee=Numeric}{\num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\DTLiflastrow{.}{;
+ }\nbdonnees=\fpeval{\nbdonnees+1}\modulo{\nbdonnees}{\useKV[ClesStat]{Coupure}}\xintifboolexpr{\remainder=0}{\\}{}}
+ \end{minipage}
+ \end{center}%
+ \medskip%
}%
- }
- Donc la moyenne de la s\'erie est \'egale \`a :%
- \[\frac{\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}{\num{\EffectifTotal}}%
- \opdiv*{\SommeDonnees}{\EffectifTotal}{resultatmoy}{restemoy}%
- \opround{resultatmoy}{\useKV[ClesStat]{Precision}}{resultatmoy1}%
- % Moy=\opprint{resultatmoy}--Moy1=\opprint{resultatmoy1}
- \opcmp{resultatmoy}{resultatmoy1}\ifopeq=\else\approx\fi%
- \num{\fpeval{round(\SommeDonnees/\EffectifTotal,\useKV[ClesStat]{Precision})}}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}.}{.}
- \]%
- }{}%
- % % Affichage des r\'eponses.
- % %% pour l'\'etendue
- \ifboolKV[ClesStat]{Etendue}{L'\'etendue de la s\'erie est \'egale \`a $\num{\ListeComplete[\ListeCompletelen,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}}{}%
- % %% pour la m\'ediane
- \ifboolKV[ClesStat]{Mediane}{%
-
- \newcount\med%
- \newcount\meda%
- \ifodd\number\EffectifTotal%odd impair
- \med=\fpeval{(\EffectifTotal+1)/2}\relax%
- L'effectif total de la s\'erie est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$. %
- \else% pair
- \med=\fpeval{\EffectifTotal/2}\relax%
- \meda=\numexpr\med+1\relax%
- L'effectif total de la s\'erie est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med}}+\num{\fpeval{\med}}$. %
- \fi%
- \newcount\k%
- \k=0%
- \xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{%
- \xintFor* ##2 in {\xintSeq {1}{\ListeComplete[##1,2]}}\do{%
- \k=\numexpr\k+1\relax%
- \ifnum\k=\med%
- \ifodd\number\EffectifTotal%
- La m\'ediane de la s\'erie est la \the\med\ieme{} donn\'ee. Donc la m\'ediane de la s\'erie est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+ \newcount\med%
+ \newcount\meda%
+ \ifodd\number\ListeCompletelen%odd impair
+ \med=\fpeval{(\ListeCompletelen+1)/2}\relax%
+ L'effectif total de la s\'erie est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$.\\
+ \else% pair
+ \med=\fpeval{\ListeCompletelen/2}\relax%
+ \meda=\numexpr\med+1\relax%
+ L'effectif total de la s\'erie est \num{\ListeCompletelen}. Or, $\num{\ListeCompletelen}=\num{\the\med}+\num{\the\med}$.\\
+ \fi%
+ \newcount\k%
+ \k=0%
+ \DTLforeach{mtdb}{\numeroDonnee=Numeric}{\k=\numexpr\k+1\relax%
+ \ifnum\k=\med %La m\'ediane vaut \numeroDonnee\fi
+ \ifodd\number\ListeCompletelen%
+ La m\'ediane de la s\'erie est la \the\med\ieme{} donn\'ee.\\Donc la m\'ediane de la s\'erie est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
\else%
- La \the\med\ieme{} donn\'ee est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}. }{. }\xdef\Mediane{\ListeComplete[##1,1]}%
- \fi%
+ La \the\med\ieme{} donn\'ee est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\xdef\Mediane{\numeroDonnee}%
\fi%
- \ifnum\k=\meda%
- La \the\meda\ieme{} valeur est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\\Donc la m\'ediane de la s\'erie est \xdef\Mediane{\fpeval{(\Mediane+\ListeComplete[##1,1])/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
\fi%
- }%
+ \ifnum\k=\meda
+ La \the\meda\ieme{} donn\'ee est \num{\numeroDonnee}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.} Donc la m\'ediane de la s\'erie est \xdef\Mediane{\fpeval{(\Mediane+\numeroDonnee)/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+ \fi%
}%
+ %%%%%%%%%%%%%%%%%%%%%%%%
+ }{Pas de m\'ediane possible pour une s\'erie de donn\'ees \`a caract\`ere qualitatif.}}{}%
+ % Construction du tableau
+ \ifboolKV[ClesStat]{Tableau}{%
+ \ifboolKV[ClesStat]{Liste}{Pas de tableau possible avec la cl\'e Liste.\\Utilisez plut\^ot la cl\'e Sondage si vous voulez un tableau avec cette liste.}{%
+ \ifboolKV[ClesStat]{Total}{\buildtabt}{\buildtab}}}%
+ {}%
+ % Construction du graphique
+ \ifboolKV[ClesStat]{Graphique}{%
+ \ifboolKV[ClesStat]{Liste}{Pas de graphique possible avec la cl\'e Liste.\\Utilisez plut\^ot la cl\'e Sondage si vous voulez un graphique avec cette liste.}{%
+ \ifboolKV[ClesStat]{Angle}{\buildgraphcq{360}}{\ifboolKV[ClesStat]{SemiAngle}{\buildgraphcq{180}}{\buildgraphq[#1]}}%
+ }}{}%
+}{%%%%%%%%%%%%%%%%%%%%%D\'ebut quantitatif
+ % % on effectue les calculs
+ % %% celui de la somme des donn\'ees
+ \foreachitem\don\in\ListeComplete{\xdef\SommeDonnees{\fpeval{\SommeDonnees+\ListeComplete[\doncnt,1]*\ListeComplete[\doncnt,2]}}}%
+ % %% celui de l'effectif total
+ \foreachitem\don\in\ListeComplete{\xdef\EffectifTotal{\fpeval{\EffectifTotal+\ListeComplete[\doncnt,2]}}}%
+ % %% celui de l'\'etendue
+ \xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{%
+ \xintifboolexpr{\ListeComplete[##1,1]>\DonneeMax}{%
+ \xdef\DonneeMax{\ListeComplete[##1,1]}%
}{}%
- % Construction de tableau
- \ifboolKV[ClesStat]{Tableau}{\ifboolKV[ClesStat]{Total}{\buildtabt}{\buildtab}}{}%
- % Construction du graphique ??
- \ifboolKV[ClesStat]{Graphique}{%
- \ifboolKV[ClesStat]{Angle}{\buildgraphcq{360}}{\ifboolKV[ClesStat]{SemiAngle}{\buildgraphcq{180}}{\buildgraph[#1]}}
+ \xintifboolexpr{\ListeComplete[##1,1]<\DonneeMin}{%
+ \xdef\DonneeMin{\ListeComplete[##1,1]}%
}{}%
}%
+ % \xdef\EffectifMax{\DonneeMax}%
+ \xdef\Etendue{\fpeval{\DonneeMax-\DonneeMin}}%%
+ % %% celui de la moyenne
+ \xdef\Moyenne{\fpeval{\SommeDonnees/\EffectifTotal}}%
+ \ifboolKV[ClesStat]{EffectifTotal}{%
+ L'effectif total de la s\'erie est : \[\ListeComplete[1,2]\xintFor* ##1 in
+ {\xintSeq {2}{\ListeCompletelen}}\do{%
+ +\ListeComplete[##1,2]}=\num{\EffectifTotal}\]
+ }{}%
+ \ifboolKV[ClesStat]{Moyenne}{%
+ La somme des donn\'ees de la s\'erie est :%
+ \xintifboolexpr{\ListeCompletelen<\useKV[ClesStat]{Coupure}}{%
+ \[
+ \ifnum\ListeComplete[1,2]=1\else\num{\ListeComplete[1,2]}\times\fi\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
+ +\ifnum\ListeComplete[##1,2]=1\else\num{\ListeComplete[##1,2]}\times\fi\num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
+ }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
+ \]
+ }{%
+ \[
+ \ifnum\ListeComplete[1,2]=1\else\num{\ListeComplete[1,2]}\times\fi\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{2}}\do{%
+ +\ifnum\ListeComplete[##1,2]=1\else\num{\ListeComplete[##1,2]}\times\fi\num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
+ }+\dots\xintFor* ##1 in {\xintSeq {\ListeCompletelen-1}{\ListeCompletelen}}\do{%
+ +\ifnum\ListeComplete[##1,2]=1\else\num{\ListeComplete[##1,2]}\times\fi\num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
+ }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
+ \]
+ }
+ \ifboolKV[ClesStat]{SET}{}{L'effectif total de la s\'erie est :%
+ \ifboolKV[ClesStat]{Liste}{ \num{\EffectifTotal}\\}{%
+ \[\num{\ListeComplete[1,2]}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
+ +\num{\ListeComplete[##1,2]}
+ }=\num{\EffectifTotal}
+ \]%
+ }%
+ }%
+ Donc la moyenne de la s\'erie est \'egale \`a :%
+ \[\frac{\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}{\num{\EffectifTotal}}%
+ \opdiv*{\SommeDonnees}{\EffectifTotal}{resultatmoy}{restemoy}%
+ \opround{resultatmoy}{\useKV[ClesStat]{Precision}}{resultatmoy1}%
+ \opcmp{resultatmoy}{resultatmoy1}\ifopeq=\else\approx\fi%
+ \num{\fpeval{round(\SommeDonnees/\EffectifTotal,\useKV[ClesStat]{Precision})}}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}.}{.}%
+ \]%
+ }{}%
+ % % Affichage des r\'eponses.
+ % %% pour l'\'etendue
+ \ifboolKV[ClesStat]{Etendue}{L'\'etendue de la s\'erie est \'egale \`a $\num{\ListeComplete[\ListeCompletelen,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}-\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}=\num{\Etendue}$\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}}{}%
+ % %% pour la m\'ediane
+ \ifboolKV[ClesStat]{Mediane}{%
+
+ \newcount\med%
+ \newcount\meda%
+ \ifodd\number\EffectifTotal%odd impair
+ \med=\fpeval{(\EffectifTotal+1)/2}\relax%
+ L'effectif total de la s\'erie est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med-1}}+1+\num{\fpeval{\med-1}}$. %
+ \else% pair
+ \med=\fpeval{\EffectifTotal/2}\relax%
+ \meda=\numexpr\med+1\relax%
+ L'effectif total de la s\'erie est \num{\EffectifTotal}. Or, $\num{\EffectifTotal}=\num{\fpeval{\med}}+\num{\fpeval{\med}}$. %
+ \fi%
+ \newcount\k%
+ \k=0%
+ \xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{%
+ \xintFor* ##2 in {\xintSeq {1}{\ListeComplete[##1,2]}}\do{%
+ \k=\numexpr\k+1\relax%
+ \ifnum\k=\med%
+ \ifodd\number\EffectifTotal%
+ La m\'ediane de la s\'erie est la \the\med\ieme{} donn\'ee. Donc la m\'ediane de la s\'erie est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+ \else%
+ La \the\med\ieme{} donn\'ee est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}. }{. }\xdef\Mediane{\ListeComplete[##1,1]}%
+ \fi%
+ \fi%
+ \ifnum\k=\meda%
+ La \the\meda\ieme{} valeur est \num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}\\Donc la m\'ediane de la s\'erie est \xdef\Mediane{\fpeval{(\Mediane+\ListeComplete[##1,1])/2}}\num{\Mediane}\ifboolKV[ClesStat]{Concret}{~\useKV[ClesStat]{Unite}.}{.}%
+ \fi%
+ }%
+ }%
+ }{}%
+ % Construction de tableau
+ \ifboolKV[ClesStat]{Tableau}{\ifboolKV[ClesStat]{Total}{\buildtabt}{\buildtab}}{}%
+ % Construction du graphique ??
+ \ifboolKV[ClesStat]{Graphique}{%
+ \ifboolKV[ClesStat]{Angle}{\buildgraphcq{360}}{\ifboolKV[ClesStat]{SemiAngle}{\buildgraphcq{180}}{\buildgraph[#1]}}
+ }{}%
+}%
}%
%%%
@@ -7850,7 +8532,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
%%%
% Application : pourcentage
%%%
-\setKVdefault[ClesPourcentage]{Appliquer,Calculer=false,Augmenter=false,Reduire=false,Fractionnaire=false,Decimal,Formule=false,Unite=g,Concret=false,GrandeurA=Grandeur A,GrandeurB=Total,MotReduction=diminution,AideTableau=false,ColorFill=white,CouleurTab=gray!15}
+\setKVdefault[ClesPourcentage]{Appliquer,Calculer=false,Augmenter=false,Reduire=false,Fractionnaire=false,Decimal,Formule=false,Unite=g,Concret=false,GrandeurA=Grandeur A,GrandeurB=Total,Largeur=1cm,MotReduction=diminution,AideTableau=false,ColorFill=white,CouleurTab=gray!15}
\newcommand\Pourcentage[3][]{%
\useKVdefault[ClesPourcentage]%
@@ -7865,8 +8547,9 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\xdef\NomA{\useKV[ClesPourcentage]{GrandeurA}}%
\xdef\NomB{\useKV[ClesPourcentage]{GrandeurB}}%
\xdef\NomCouleurTab{\useKV[ClesPourcentage]{CouleurTab}}%
+ \xdef\NomLargeurTab{\useKV[ClesPourcentage]{Largeur}}%
\begin{center}
- \Propor[GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab]{/#3,#2/100}
+ \Propor[GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab,Largeur=\NomLargeurTab]{/#3,#2/100}
\end{center}
\FlecheCoefInv{\tiny$\times\num{\fpeval{#2/100}}$}%
On obtient une \useKV[ClesPourcentage]{MotReduction} de $\num{\fpeval{#2/100}}\times\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}=\num{\fpeval{#3*#2/100}}$\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{}. Donc un total de $\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}-\num{\fpeval{#3*#2/100}}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}=\num{\fpeval{#3*(1-#2/100)}}$\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{}.%
@@ -7885,8 +8568,9 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\xdef\NomA{\useKV[ClesPourcentage]{GrandeurA}}%
\xdef\NomB{\useKV[ClesPourcentage]{GrandeurB}}%
\xdef\NomCouleurTab{\useKV[ClesPourcentage]{CouleurTab}}%
+ \xdef\NomLargeurTab{\useKV[ClesPourcentage]{Largeur}}%
\begin{center}%
- \Propor[GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab]{/#3,#2/100}%
+ \Propor[GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab,Largeur=\NomLargeurTab]{/#3,#2/100}%
\end{center}%
\FlecheCoefInv{\tiny$\times\num{\fpeval{#2/100}}$}%
On obtient une augmentation de $\num{\fpeval{#2/100}}\times\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}=\num{\fpeval{#3*#2/100}}$\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{}.\\Donc un total de $\num{#3}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}+\num{\fpeval{#3*#2/100}}\ifboolKV[ClesPourcentage]{Concret}{~\text{\useKV[ClesPourcentage]{Unite}}}{}=\num{\fpeval{#3*(1+#2/100)}}$\ifboolKV[ClesPourcentage]{Concret}{~\useKV[ClesPourcentage]{Unite}}{}.%
@@ -7899,7 +8583,8 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\xdef\NomA{\useKV[ClesPourcentage]{GrandeurA}}%
\xdef\NomB{\useKV[ClesPourcentage]{GrandeurB}}%
\xdef\NomCouleurTab{\useKV[ClesPourcentage]{CouleurTab}}%
- \Propor[GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab]{#2/#3,/100}%
+ \xdef\NomLargeurTab{\useKV[ClesPourcentage]{Largeur}}%
+ \Propor[GrandeurA=\NomA,GrandeurB=\NomB,CouleurTab=\NomCouleurTab,Largeur=\NomLargeurTab]{#2/#3,/100}%
\xdef\colorfill{\useKV[ClesPourcentage]{ColorFill}}%
\FlechesPB{2}{1}{\scriptsize$\times\num{\fpeval{#3/100}}$}%
\FlechesPH{1}{2}{\scriptsize$\div\num{\fpeval{#3/100}}$}%
@@ -7915,14 +8600,14 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
%%%
% Lien : ratio
%%%
-\setKVdefault[ClesRatio]{Figure=false,Longueur=5cm,TexteTotal=quantit\'e,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15}
+\setKVdefault[ClesRatio]{FigureCours=false,Figure=false,Longueur=5cm,TexteTotal=quantit\'e,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15}
\newcommand\MPTest[9][]{%
% #2 : Longueur de la barre unit\'e
% #3 : premier nombre
% #4 : deuxi\`eme nombre
% #5 : troisi\`eme nombre
- % #6 : Valeurs du ratio
+ % #6 : ne sert à rien. Laissé en attente.
% #7 \`a #9: Couleurs de remplissage
\ifluatex
\mplibforcehmode
@@ -7942,7 +8627,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
% on fait la somme totale "du ratio"
somme=0;
somme:=somme for k=1 upto n:+N[k] endfor;
- Figure(0,0,long+2u,3u);
+ %Figure(0,0,long+2u,3u);
remplis polygone(A,(N[1]/somme)[A,B],(N[1]/somme)[D,C],D)
withcolor #7;
remplis polygone(B,(N[1]/somme)[A,B],(N[1]/somme)[D,C],C)
@@ -7975,7 +8660,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
to"&decimal(abs(((N[1]+N[2])/somme)[A,B]-B))&"pt{}}$"),iso(B,((N[1]+N[2])/somme)[A,B]));
fi;
enddef;
- RatioTrois(#2)(#6);
+ RatioTrois(#2)(#3,#4,#5);
%etiquettage
labeloffset:=labeloffset*3;
label.top(btex \useKV[ClesRatio]{TexteTotal} etex,iso(D,C));
@@ -8051,7 +8736,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
to"&decimal(abs(((N[1]+N[2])/somme)[A,B]-B))&"pt{}}$"),iso(B,((N[1]+N[2])/somme)[A,B]));
fi;
enddef;
- RatioTrois(#2)(#6);
+ RatioTrois(#2)(#3,#4,#5);
%etiquettage
labeloffset:=labeloffset*3;
label.top(\btex \useKV[ClesRatio]{TexteTotal} etex,iso(D,C));
@@ -8078,6 +8763,127 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\fi
}
+\newcommand\MPTestCours[9][]{%
+ % #2 : Longueur de la barre unit\'e
+ % #3 : premier nombre
+ % #4 : deuxi\`eme nombre
+ % #5 : troisi\`eme nombre
+ % #6 : Valeurs du ratio
+ % #7 \`a #9: Couleurs de remplissage
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantit\'e \`a partager / textepart :) / t le ratio
+ pair A,B,C,D;
+ A=u*(1,1);
+ B-A=(long,0);
+ C-B=u*(0,0.5);
+ D-C=A-B;
+ n:=0;%n pour savoir si le ratio est a:b ou a:b:c
+ numeric N[];%Pour sauvegarder les \'el\'ements du ratio
+ for p_=t:
+ n:=n+1;
+ N[n]=p_;
+ endfor;
+ % on fait la somme totale "du ratio"
+ somme=0;
+ somme:=somme for k=1 upto n:+N[k] endfor;
+ %%Figure(0,0,long+2u,3u);
+ remplis polygone(A,(N[1]/somme)[A,B],(N[1]/somme)[D,C],D)
+ withcolor #7;
+ remplis polygone(B,(N[1]/somme)[A,B],(N[1]/somme)[D,C],C)
+ withcolor #8;
+ if n>2:
+ remplis
+ polygone((N[1]/somme)[A,B],((N[1]+N[2])/somme)[A,B],((N[1]+N[2])/somme)[D,C],(N[1]/somme)[D,C])
+ withcolor #8;
+ remplis
+ polygone(B,((N[1]+N[2])/somme)[A,B],((N[1]+N[2])/somme)[D,C],C)
+ withcolor #9;
+ fi;
+ drawoptions(withpen pencircle scaled1.5bp);
+ draw polygone(A,B,C,D);
+ for k=1 upto somme-1:
+ draw segment((k/somme)[A,B],(k/somme)[D,C]);
+ endfor;
+ drawoptions();
+ % accolades
+ label.bot(TEX("\footnotesize$\underbrace{\hbox
+ to"&decimal(abs((N[1]/somme)[A,B]-A))&"pt{}}$"),iso(A,(N[1]/somme)[A,B]));
+ label.bot(TEX("\footnotesize$\underbrace{\hbox
+ to"&decimal(abs((N[1]/somme)[A,B]-((N[1]+N[2])/somme)[A,B]))&"pt{}}$"),iso(((N[1]+N[2])/somme)[A,B],(N[1]/somme)[A,B]));
+ if n>2:
+ label.bot(TEX("\footnotesize$\underbrace{\hbox
+ to"&decimal(abs(((N[1]+N[2])/somme)[A,B]-B))&"pt{}}$"),iso(B,((N[1]+N[2])/somme)[A,B]));
+ fi;
+ enddef;
+ RatioTrois(#2)(#3,#4,#5);
+ %etiquettage
+ labeloffset:=labeloffset*3;
+ label.bot(btex $a$ etex,iso(A,(N[1]/somme)[A,B]));
+ label.bot(btex $b$ etex,iso(((N[1]+N[2])/somme)[A,B],(N[1]/somme)[A,B]));
+ if n>2:
+ label.bot(btex $c$ etex,iso(B,((N[1]+N[2])/somme)[A,B]));
+ fi;
+ \end{mplibcode}
+ \else
+ \begin{mpost}
+ vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantit\'e \`a partager / textepart :) / t le ratio
+ pair A,B,C,D;
+ A=u*(1,1);
+ B-A=(long,0);
+ C-B=u*(0,0.5);
+ D-C=A-B;
+ n:=0;%n pour savoir si le ratio est a:b ou a:b:c
+ numeric N[];%Pour sauvegarder les \'el\'ements du ratio
+ for p_=t:
+ n:=n+1;
+ N[n]=p_;
+ endfor;
+ % on fait la somme totale "du ratio"
+ somme=0;
+ somme:=somme for k=1 upto n:+N[k] endfor;
+ %Figure(0,0,long+2u,3u);
+ remplis polygone(A,(N[1]/somme)[A,B],(N[1]/somme)[D,C],D)
+ withcolor #7;
+ remplis polygone(B,(N[1]/somme)[A,B],(N[1]/somme)[D,C],C)
+ withcolor #8;
+ if n>2:
+ remplis
+ polygone((N[1]/somme)[A,B],((N[1]+N[2])/somme)[A,B],((N[1]+N[2])/somme)[D,C],(N[1]/somme)[D,C])
+ withcolor #8;
+ remplis
+ polygone(B,((N[1]+N[2])/somme)[A,B],((N[1]+N[2])/somme)[D,C],C)
+ withcolor #9;
+ fi;
+ drawoptions(withpen pencircle scaled1.5bp);
+ draw polygone(A,B,C,D);
+ for k=1 upto somme-1:
+ draw segment((k/somme)[A,B],(k/somme)[D,C]);
+ endfor;
+ drawoptions();
+ % accolades
+ label.bot(LATEX("\noexpand\footnotesize$\noexpand\underbrace{\noexpand\hbox
+ to"&decimal(abs((N[1]/somme)[A,B]-A))&"pt{}}$"),iso(A,(N[1]/somme)[A,B]));
+ label.bot(LATEX("\noexpand\footnotesize$\noexpand\underbrace{\noexpand\hbox
+ to"&decimal(abs((N[1]/somme)[A,B]-((N[1]+N[2])/somme)[A,B]))&"pt{}}$"),iso(((N[1]+N[2])/somme)[A,B],(N[1]/somme)[A,B]));
+ if n>2:
+ label.bot(LATEX("\noexpand\footnotesize$\noexpand\underbrace{\noexpand\hbox
+ to"&decimal(abs(((N[1]+N[2])/somme)[A,B]-B))&"pt{}}$"),iso(B,((N[1]+N[2])/somme)[A,B]));
+ fi;
+ enddef;
+ RatioTrois(#2)(#3,#4,#5);
+ %etiquettage
+ labeloffset:=labeloffset*3;
+ label.bot(btex $a$ etex,iso(A,(N[1]/somme)[A,B]));
+ label.bot(btex $b$ etex,iso(((N[1]+N[2])/somme)[A,B],(N[1]/somme)[A,B]));
+ if n>2:
+ label.bot(btex $c$ etex,iso(B,((N[1]+N[2])/somme)[A,B]));
+ fi;
+ \end{mpost}
+ \fi
+}
+
\newtoks\toklisteratio
\def\UpdateRatio#1\nil{\addtotok\toklisteratio{#1,}}
@@ -8139,25 +8945,35 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\useKVdefault[ClesRatio]%
\setKV[ClesRatio]{#1}%
\xdef\EcartLargeur{\useKV[ClesRatio]{Largeur}}%
- \ifboolKV[ClesRatio]{Figure}{%
+ \ifboolKV[ClesRatio]{FigureCours}{%
\ignoreemptyitems%
\readlist*\ListeRatio{#2}%
\toklisteratio{}%
\foreachitem\compteur\in\ListeRatio{\expandafter\UpdateRatio\compteur\nil}%
- \itemtomacro\ListeRatio[1]\NbUn
- \itemtomacro\ListeRatio[2]\NbDeux
- \xintifboolexpr{\ListeRatiolen>2}{\itemtomacro\ListeRatio[3]\NbTrois}{\xdef\NbTrois{}}
- \MPTest[#1]{\useKV[ClesRatio]{Longueur}}{\NbUn}{\NbDeux}{\NbTrois}{\the\toklisteratio}{\useKV[ClesRatio]{CouleurUn}}{\useKV[ClesRatio]{CouleurDeux}}{\useKV[ClesRatio]{CouleurTrois}}%
+ \itemtomacro\ListeRatio[1]\NbUn%
+ \itemtomacro\ListeRatio[2]\NbDeux%
+ \xintifboolexpr{\ListeRatiolen>2}{\itemtomacro\ListeRatio[3]\NbTrois}{\xdef\NbTrois{}}%
+ \MPTestCours[#1]{\useKV[ClesRatio]{Longueur}}{\NbUn}{\NbDeux}{\NbTrois}{\the\toklisteratio}{\useKV[ClesRatio]{CouleurUn}}{\useKV[ClesRatio]{CouleurDeux}}{\useKV[ClesRatio]{CouleurTrois}}%
}{%
- \ifboolKV[ClesRatio]{Tableau}{%
- \setsepchar[*]{,*/}\ignoreemptyitems%
+ \ifboolKV[ClesRatio]{Figure}{%
+ \ignoreemptyitems%
\readlist*\ListeRatio{#2}%
- \buildtabratio%
- }{}%
+ \toklisteratio{}%
+ \foreachitem\compteur\in\ListeRatio{\expandafter\UpdateRatio\compteur\nil}%
+ \itemtomacro\ListeRatio[1]\NbUn%
+ \itemtomacro\ListeRatio[2]\NbDeux%
+ \xintifboolexpr{\ListeRatiolen>2}{\itemtomacro\ListeRatio[3]\NbTrois}{\xdef\NbTrois{}}%
+ \MPTest[#1]{\useKV[ClesRatio]{Longueur}}{\NbUn}{\NbDeux}{\NbTrois}{\the\toklisteratio}{\useKV[ClesRatio]{CouleurUn}}{\useKV[ClesRatio]{CouleurDeux}}{\useKV[ClesRatio]{CouleurTrois}}%
+ }{%
+ \ifboolKV[ClesRatio]{Tableau}{%
+ \setsepchar[*]{,*/}\ignoreemptyitems%
+ \readlist*\ListeRatio{#2}%
+ \buildtabratio%
+ }{}%
+ }%
}%
}%
-
-%%%
+%%%
% Cartes Mentales
%%%
\setKVdefault[ClesMentales]{Nom={Bulle}, Largeur=5cm, Ancre={0,0},Pointilles=false,CTrace=black,CFond=white,Epaisseur=1pt,Rayon=1}%
@@ -11802,7 +12618,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
% #4 : on affiche le nom des points ou pas
% #5 : quelle est la valeur de la longueur unit\'e ?
% #6 : la valeur de l'unit\'e
- % #7 : on affiche les abscisses ou pas : 0 non, 1 oui, 2 fraction
+ % #7 : on affiche les abscisses ou pas : 0 non, 1 oui, 2 fraction, 3 Fleche dots
% #8 : on affiche tous les multiples de la graduation "principale"
\ifluatex
\mplibforcehmode
@@ -11833,7 +12649,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
fi;
enddef;
toto(#3);
- Figure((minx-1)*unitp,-u,(maxx+1)*unitp,u);
+ Figure((minx-1)*unitp,-2u,(maxx+1)*unitp,u);
pair A,B,C;
A=(0,0);
B=unitp*(maxx,0);
@@ -11888,7 +12704,20 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
fi;
endfor;
fi;
- if #7=2:
+ if #7=3:
+ for p_=t:
+ if numeric p_:
+ k:=p_;
+ fi;
+ if string p_:
+ if p_<>"":
+ drawarrow (unitp*(k,-1))--(unitp*(k,-0.3));
+ label.bot(btex \hbox to2em{\dotfill} etex,(unitp*(k,-1)));
+ pointe(unitp*(k-#6,0));
+ fi;
+ fi;
+ endfor;
+ elseif #7=2:
for p_=t:
if numeric p_:
k:=p_;
@@ -11948,7 +12777,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
fi;
enddef;
toto(#3);
- Figure((minx-1)*unitp,-u,(maxx+1)*unitp,u);
+ Figure((minx-1)*unitp,-2u,(maxx+1)*unitp,u);
pair A,B,C;
A=(0,0);
B=unitp*(maxx,0);
@@ -12003,7 +12832,20 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
fi;
endfor;
fi;
- if #7=2:
+ if #7=3:
+ for p_=t:
+ if numeric p_:
+ k:=p_;
+ fi;
+ if string p_:
+ if p_<>"":
+ drawarrow (unitp*(k,-1))--(unitp*(k,-0.3));
+ label.bot(\btex \hbox to2em{\dotfill} etex,(unitp*(k,-1)));
+ pointe(unitp*(k-#6,0));
+ fi;
+ fi;
+ endfor;
+ elseif #7=2:
for p_=t:
if numeric p_:
k:=p_;
@@ -13320,7 +14162,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Origine=0,Angl
\ifnum\cntcol<\useKV[Tableur]{Colonnes}
\advance\cntcol\@ne
\addtot@b{&}%
- \edftot@b{{\noexpand\@Alph\the\cntcol}}%
+ \edftot@b{{\noexpand\@Alph{\the\cntcol}}}%
\repeat
\addtot@b{\\&}%
\collectcp@body}{\the\t@b}
diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
index 222df57419..2e3cc54dd2 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
@@ -607,11 +607,19 @@ vardef polygone(text t)=
aaa[j+1]:=aaa[1];
save $;
path $;
- $=aaa1--
- for k=2 upto j:
- aaa[k]--
- endfor
- cycle;
+ if typetrace="mainlevee":
+ $=segment(aaa[1],aaa[2])--
+ for k=2 upto (j-1):
+ segment(aaa[k],aaa[k+1])--
+ endfor
+ segment(aaa[j],aaa[1])--cycle;
+ else:
+ $=aaa1--
+ for k=2 upto j:
+ aaa[k]--
+ endfor
+ cycle;
+ fi;
$
enddef;
diff --git a/systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm b/systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm
index a07c77df1e..dc05afa17f 100644
--- a/systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm
+++ b/systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm
@@ -1,4 +1,4 @@
-# $Id: TLConfig.pm 59122 2021-05-07 20:33:35Z karl $
+# $Id: TLConfig.pm 59199 2021-05-14 20:38:22Z karl $
# TeXLive::TLConfig.pm - module exporting configuration values
# Copyright 2007-2021 Norbert Preining
# This file is licensed under the GNU General Public License version 2
@@ -6,7 +6,7 @@
package TeXLive::TLConfig;
-my $svnrev = '$Revision: 59122 $';
+my $svnrev = '$Revision: 59199 $';
my $_modulerevision = ($svnrev =~ m/: ([0-9]+) /) ? $1 : "unknown";
sub module_revision { return $_modulerevision; }
@@ -128,10 +128,8 @@ our %FallbackDownloaderArgs = (
'curl' => ['--user-agent', 'texlive/curl',
'--retry', '4', '--retry-delay', '4',
'--connect-timeout', "$NetworkTimeout",
- '--insecure',
'--fail', '--location', '--silent', '--output'],
'wget' => ['--user-agent=texlive/wget', '--tries=4',
- '--no-check-certificate',
"--timeout=$NetworkTimeout", '-q', '-O'],
);
# the way we package things on the web
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index eb78699624..09d5269fd4 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -52,9 +52,6 @@ $mirrors = {
'https://mirror.navercorp.com/CTAN/' => 1,
'https://mirror.yongbok.net/ctan/' => 1,
},
- 'Philippines' => {
- 'https://mirror.pregi.net/tex-archive/' => 1,
- },
'Singapore' => {
'https://download.nus.edu.sg/mirror/ctan/' => 1,
},
@@ -83,7 +80,6 @@ $mirrors = {
'https://ctan.mines-albi.fr/' => 1,
'https://ctan.tetaneutral.net/' => 1,
'https://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/ctan/' => 1,
- 'https://mirror.ibcp.fr/pub/CTAN/' => 1,
'https://mirrors.chevalier.io/CTAN/' => 1,
'https://mirrors.ircam.fr/pub/CTAN/' => 1,
'https://texlive.mycozy.space/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 0b84dab8d7..02667e0fea 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2021
-depend revision/59188
+depend revision/59203
name 00texlive.image
category TLCore
-revision 59188
+revision 59204
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4387,7 +4387,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 59178
+revision 59190
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -34004,16 +34004,16 @@ catalogue-topics class book-pub chinese
name beebe
category Package
-revision 59178
+revision 59190
catalogue biblio
shortdesc A collection of bibliographies
relocated 1
longdesc A collection of BibTeX bibliographies on TeX-related topics
longdesc (including, for example, spell-checking and SGML). Each
longdesc includes a LaTeX wrapper file to typeset the bibliography.
-containersize 878160
-containerchecksum 47ecb36c7451e99f30e3e44209de076f44f30d4a62d23b708fa92229b101a4a2e43547adcb6a5c2089ab39ec18210e55dc70477bec85cddd13716c9193ea02ae
-runfiles size=2180
+containersize 878372
+containerchecksum d4a8b266ca8358081c01d9b01170b5aa7040d036790680094e0ac14cc8559113a8109be61d3a6db18a4d5a10caf75c549d2cc18764f61590c293c26558f3f0a6
+runfiles size=2181
RELOC/bibtex/bib/beebe/epodd.bib
RELOC/bibtex/bib/beebe/font.bib
RELOC/bibtex/bib/beebe/printing-history.bib
@@ -40965,25 +40965,25 @@ catalogue-version 2.51
name bnumexpr
category Package
-revision 59182
+revision 59193
shortdesc Extends eTeX's \numexpr...\relax construct to big integers
relocated 1
longdesc The package extends e-TeX \numexpr...\relax operation to allow
longdesc big integers, powers, factorials, truncated division and its
longdesc associated modulo. By default, bnumexpr loads package xintcore
longdesc (part of the xint bundle) and uses its arithmetic macros.
-containersize 3676
-containerchecksum 789c111ca703bff3cae7a2d952eb857a622cf5749e39aeb3676945ea5b580aa827bc6211cd621d0222c2fa180ba19f3f819a19f63f93aad270469e548b45b3f7
-doccontainersize 90388
-doccontainerchecksum 39f10000c31dd4f31a09359a35187a238a5df01fe9243b66397c5be8e68a2f1778bc5a83480fccc45cb452e033b95a20651d2f7352cde01ce89bb722edf8b8d2
-docfiles size=26
+containersize 3660
+containerchecksum 19ae53c3690a96e2f0dad5e12feadd005fc1f6983c67e719c89e9a1e1ad4a842cdc449796e2d29c506e748ad7ea4dbf0c51e216459d5331a3b25df61b56b2e2f
+doccontainersize 98380
+doccontainerchecksum 959e71abb2cfbf1f10d777cac2b9a1f2d01b3bd98f74e56c8ccdc3c2df29a3f6a55055ab4efd032fe6efa3883bc7c356f2d4089b28995607f3792c8378bf2c47
+docfiles size=28
RELOC/doc/latex/bnumexpr/README.md details="Readme"
RELOC/doc/latex/bnumexpr/bnumexpr.pdf details="Package documentation"
RELOC/doc/latex/bnumexpr/bnumexpr.tex
RELOC/doc/latex/bnumexpr/bnumexprchanges.tex
-srccontainersize 14532
-srccontainerchecksum 4dfa6ac675018d8cc54cb9ffd6c4df5889b525af9f03b3a976922779a825ef7aeef7d8729355b02932358b47acbcc7716d52400ec6d0c59324286a16e94c10e3
-srcfiles size=12
+srccontainersize 15908
+srccontainerchecksum ad899d39d5973e378b629b6a0e9c23771c224185d44198e5486adb7d3de75433c9aedad1eb780c2a191b62f474314b4d19d010e67df07bfb6589e7b9bbcad1dc
+srcfiles size=13
RELOC/source/latex/bnumexpr/bnumexpr.dtx
runfiles size=4
RELOC/tex/latex/bnumexpr/bnumexpr.sty
@@ -52083,7 +52083,7 @@ catalogue-version 1.0c
name changes
category Package
-revision 58773
+revision 59198
shortdesc Manual change markup
relocated 1
longdesc The package allows the user to manually markup changes of text,
@@ -52094,11 +52094,11 @@ longdesc package allows free definition of additional authors and their
longdesc associated color. It also allows you to change the markup of
longdesc changes, authors, highlights or comments. A Python script is
longdesc provided for removing the changes.
-containersize 7892
-containerchecksum 946a37d1b66fd2fa900a6683d08ccdabc88304c9dcb9d48a3f6b2d83208f73cb3b9f7d2c8e86565db16356e3a1b128e53f5d8ddfc6979129ed30e56f120b9442
-doccontainersize 2433612
-doccontainerchecksum a653f0e5f3b03252d30d24dec3a6623621858b433734c437a3ae6bd56e293ab00503fb7e2a92e51a0f88ed906fc0c05484577fb09c5348a44248eb7b12f41cf0
-docfiles size=2257
+containersize 7924
+containerchecksum 050cda190058117c5b1d5dc98a93c9345d34ba736eda04b8f11afebff2488b8cc5197b6b4e58d693855f0bbff2e171b4248fc801990d50f1ac78fc3da9fdada5
+doccontainersize 2436144
+doccontainerchecksum bb00b94366b0ef35265cfafaaf075030313c9d220b7e75329d3bd0bbc24f1ae84f88c3bbb9aeda7d2ebbb778b5768f40ec634ed4d538f6ca6a3cb5879256a15c
+docfiles size=2260
RELOC/doc/latex/changes/README details="Readme" language="en"
RELOC/doc/latex/changes/changes.english.pdf details="Package documentation (English)" language="en"
RELOC/doc/latex/changes/changes.english.withcode.pdf details="Package documentation, with code listing (English)" language="en"
@@ -52261,6 +52261,8 @@ docfiles size=2257
RELOC/doc/latex/changes/examples/changes.example.settruncatewidth.tex
RELOC/doc/latex/changes/examples/changes.example.simple.pdf
RELOC/doc/latex/changes/examples/changes.example.simple.tex
+ RELOC/doc/latex/changes/regression/changes.regression.draft.tex
+ RELOC/doc/latex/changes/regression/changes.regression.final.tex
RELOC/doc/latex/changes/userdoc/added_ex.tex
RELOC/doc/latex/changes/userdoc/added_in.tex
RELOC/doc/latex/changes/userdoc/changes.de.tex
@@ -52337,14 +52339,15 @@ docfiles size=2257
RELOC/doc/latex/changes/userdoc/usepackage_ulem_changes_in.tex
RELOC/doc/latex/changes/userdoc/usepackage_xcolor_changes_ex.tex
RELOC/doc/latex/changes/userdoc/usepackage_xcolor_changes_in.tex
-srccontainersize 16908
-srccontainerchecksum a74ee0bd131301f12a674155d87ffec87b88916e242e80a4daa18fca251d8479e05dc8ddd343943c96055cb3c54fdaa37f91198c8daab1a0c85eb8029d8f9f9b
-srcfiles size=27
+srccontainersize 17652
+srccontainerchecksum 700b11b4813a2f20e2bb88e0966e30a87dde7c8d923050bee2e0edd0bebc12e7d8947f6a4496b28b04207fe08c9d969c2bb6c4bc0d74c8eda0d84d3ce0f3ee72
+srcfiles size=29
RELOC/source/latex/changes/changes.drv
RELOC/source/latex/changes/changes.dtx
RELOC/source/latex/changes/changes.ins
RELOC/source/latex/changes/example-screenshot.dtx
RELOC/source/latex/changes/examples.dtx
+ RELOC/source/latex/changes/regression.dtx
runfiles size=10
RELOC/scripts/changes/pyMergeChanges.py
RELOC/tex/latex/changes/changes.sty
@@ -52355,7 +52358,7 @@ catalogue-contact-support https://gitlab.com/ekleinod/changes/issues
catalogue-ctan /macros/latex/contrib/changes
catalogue-license lppl1.3
catalogue-topics editorial doc-tool
-catalogue-version 4.0.2
+catalogue-version 4.0.4
name chappg
category Package
@@ -98644,31 +98647,31 @@ catalogue-topics notes editorial
name easybook
category Package
-revision 59174
+revision 59197
shortdesc Typeset Chinese books or notes
relocated 1
longdesc Easybook is a minimalist style template based on the ctexbook
longdesc book document class.
-containersize 13360
-containerchecksum 70fb1748ccec05b0ebf14447e26c16f3dd5891f0548215006e9fbfde8f945936d3d578c5bda4161e7e22408357cde0c495bde135b1350a523beadff282e4b469
-doccontainersize 307908
-doccontainerchecksum e4d481514f982aa9640af1442ea74bb5b1b22acd2da87420f6bc4639545624d5f3b9cbd80306dd185f1696de9f0b854f8cb2d3198ad1e545fbd9ecb27c57c3d1
+containersize 13476
+containerchecksum 9e925ca4e2b1c517041825f4149f2209e5302d1c1fc865885391b48adb50a945e88c91cbefc924d9bc6133cb819a36cc9fa9b3e1c55c5a4828a4e8afaa1e1c86
+doccontainersize 308144
+doccontainerchecksum 04404e688289f2cc5b5656d145a57a1c63d8aa8b0e67f951473e454e0aa7c629494ee39dfd51e131a234bfe584abaf89145ec272458b5d393948478dc9ef2d7a
docfiles size=77
RELOC/doc/latex/easybook/README.md details="Readme"
RELOC/doc/latex/easybook/easybook.pdf details="Package documentation" language="zh"
-srccontainersize 29248
-srccontainerchecksum 1e4e1fbc05440e54342629e9c4d1a42a562c4276fd252539aa03033640fb4837f7db2b457cf0197e49cbe352b39501183ac8dd633e775e18cb5d736e3415fe14
+srccontainersize 29372
+srccontainerchecksum aa0d68e7107731b7ef5269f0cc6a508db0fd74d01fd2a8915b88f8b114c0d24f9d2c0fd01fcd5c5b5fbf08b46a8998b1808d83c2023058527ff41166581a1e46
srcfiles size=31
RELOC/source/latex/easybook/easybook.dtx
RELOC/source/latex/easybook/easybook.ins
-runfiles size=15
+runfiles size=16
RELOC/tex/latex/easybook/easybook.cls
catalogue-also ctex
catalogue-contact-repository https://gitee.com/texl3/easybook
catalogue-ctan /macros/latex/contrib/easybook
catalogue-license cc-by-4
catalogue-topics book-pub class chinese expl3
-catalogue-version 1.25h
+catalogue-version 1.25i
name easyfig
category Package
@@ -158154,7 +158157,7 @@ binfiles arch=x86_64-solaris size=3
name kpathsea
category TLCore
-revision 58622
+revision 59203
shortdesc Path searching library for TeX-related files
longdesc Kpathsea is a library and utility programs which provide path
longdesc searching facilities for TeX file types, including the
@@ -158163,10 +158166,10 @@ longdesc layered on top of a general search mechanism. It is not
longdesc distributed separately, but rather is released and maintained
longdesc as part of the TeX live sources.
depend kpathsea.ARCH
-containersize 32484
-containerchecksum 33e8096a1798a6204c0a6519cd13302e1c80797937aae4ce9e7c4928e4bd75472cd0864cd00ff88d3d6f01fcf1a2e027efbd5d1768024fa5ee23e56094f1b308
-doccontainersize 1072996
-doccontainerchecksum 9d34679ffecc16117ed7d1d6207602ab9466266b48b15d303764fc27301eb9dd4621dbf9ad2dcff85bfcf0c1f762316a412b3925e91f6b31e4da03e46ee51893
+containersize 32488
+containerchecksum dcfe9d0b853bac7917e87b5783748568cb84a9b6e060dacb720826840aa93dab192e9aaf7799aec9e3c99f2aa54e02470918a72047e67568339aed2e2e3a61ae
+doccontainersize 1073000
+doccontainerchecksum 155db7d61fa4011640a3c7e90efeeb8336b970bbb64f8fac5bf69a7f51bbd9132024256d6f57cf649cb83ea590cf9aa106230628196045d3f98bfcafa803ed54
docfiles size=556
texmf-dist/doc/info/dir
texmf-dist/doc/info/kpathsea.info
@@ -207673,7 +207676,7 @@ catalogue-version 1.2.2
name musixtex
category Package
-revision 57353
+revision 59196
shortdesc Sophisticated music typesetting
longdesc MusiXTeX provides a set of macros, based on the earlier
longdesc MusicTeX, for typesetting music with TeX. To produce optimal
@@ -207689,11 +207692,11 @@ longdesc are universally acknowledged to be challenging to use directly:
longdesc the pmx preprocessor compiles a simpler input language to
longdesc MusiXTeX macros..
depend musixtex.ARCH
-containersize 101288
-containerchecksum 890faab60e994520b74081e0709217549d4d91bf0d9cd28bf8b08d33b474edd584b1af8810bd9e8f1899e9de9ab88f4091594ce3ad25671312856b1870711a51
-doccontainersize 2057608
-doccontainerchecksum 65380d56ef9403c633f3459192f21191912065d2a6b34efcba1c002dcf836353be7a6c532f66a11478002f34e2f53c35ae9e7d705ff716fb9c4f929dbbd82490
-docfiles size=1078
+containersize 102696
+containerchecksum 1e84f9f40b0a01edec042a604d80ff00cd598d6474f60a670fcf6db61cf851881ab9310d59bda96ccbcc8f82a47965b0f7dbcefd7eb666ad55c92ba00f6656da
+doccontainersize 2063448
+doccontainerchecksum 275084eda8e8ab839eaf1411f3d528e230f352db2e975a90d42e7ea5fa4c8ef46245bcbc966f8d4fb781e59928bb4c4e300b0aadbc910f1e88d4bc0f8a1a1eed
+docfiles size=1086
texmf-dist/doc/generic/musixtex/ChangeLog-114.txt
texmf-dist/doc/generic/musixtex/ChangeLog-115.txt
texmf-dist/doc/generic/musixtex/ChangeLog-116.txt
@@ -207712,6 +207715,7 @@ docfiles size=1078
texmf-dist/doc/generic/musixtex/ChangeLog-129.txt
texmf-dist/doc/generic/musixtex/ChangeLog-130.txt
texmf-dist/doc/generic/musixtex/ChangeLog-131.txt
+ texmf-dist/doc/generic/musixtex/ChangeLog-132.txt
texmf-dist/doc/generic/musixtex/ChangeLog-musixdoc.txt
texmf-dist/doc/generic/musixtex/README details="Readme"
texmf-dist/doc/generic/musixtex/examples/adagio.tex
@@ -207850,14 +207854,14 @@ docfiles size=1078
texmf-dist/doc/man/man1/musixtex.1
texmf-dist/doc/man/man1/musixtex.man1.pdf
srccontainersize 9012
-srccontainerchecksum bc2d254ec56217edc6f5fb75229f0484ed8ae494da9dace2e86f494670e49bbc60b962d59397c0dc1ef40e7633cc97c9f75b4ab26ee7ff528fb8169b4e625660
+srccontainerchecksum f9c50a685282abc1eb8239603747a64bc70ffb839dcdc5f13f5ee7dcb131725681247243183a82517a826352d6f02b348364ca5e61e2f96eedc35a2e4de7cf54
srcfiles size=12
texmf-dist/source/generic/musixtex/musixcrd/doc.tex
texmf-dist/source/generic/musixtex/musixcrd/makefile
texmf-dist/source/generic/musixtex/musixcrd/musixcrd.dtx
texmf-dist/source/generic/musixtex/musixcrd/readme
texmf-dist/source/generic/musixtex/musixcrd/strip.tex
-runfiles size=149
+runfiles size=151
texmf-dist/dvips/musixtex/psslurs.pro
texmf-dist/scripts/musixtex/musixflx.lua
texmf-dist/scripts/musixtex/musixtex.lua
@@ -207903,6 +207907,7 @@ runfiles size=149
texmf-dist/tex/generic/musixtex/musixtex.tex
texmf-dist/tex/generic/musixtex/musixtmr.tex
texmf-dist/tex/generic/musixtex/musixtri.tex
+ texmf-dist/tex/generic/musixtex/musixvbm.tex
texmf-dist/tex/generic/musixtex/tuplet.tex
texmf-dist/tex/latex/musixtex/musixcpt.sty
texmf-dist/tex/latex/musixtex/musixcrd.sty
@@ -207911,10 +207916,11 @@ runfiles size=149
texmf-dist/tex/latex/musixtex/musixtex.sty
catalogue-also pmx
catalogue-contact-home http://icking-music-archive.org/software/htdocs
+catalogue-contact-support https://www.tug.org/mailman/listinfo/tex-music
catalogue-ctan /macros/musixtex
catalogue-license gpl2+
catalogue-topics music
-catalogue-version 1.31
+catalogue-version 1.32
name musixtex-fonts
category Package
@@ -214565,28 +214571,32 @@ catalogue-version 2.2
name noindentafter
category Package
-revision 35709
-shortdesc Tool to prevent paragraph indentation after environments/macros
+revision 59195
+shortdesc Prevent paragraph indentation after environments or macros
relocated 1
longdesc The package, as the name suggests, supplies tools to
longdesc automatically suppress indentations in following paragraphs,
longdesc specifically those following a particular macro or environment.
-containersize 2284
-containerchecksum 6037e5b7b36742c2956f39020f7e9bd2072b17ab313f5d7d86e8b0c348b89ef1392571b8cba22190221a14c6f1e44a0156ddafce8f5e2bbf5362e443f590b2d8
-doccontainersize 228912
-doccontainerchecksum 1cc385e0bed9559d66c13967a5ffe83f1d01ad2005e4c7ca92243ca246da4f5f5e9abfde9b244ac54d73de4f874b800dc6620f7c93f6fb03a6d0ac8b2593fc96
-docfiles size=62
- RELOC/doc/latex/noindentafter/README details="Readme"
- RELOC/doc/latex/noindentafter/noindentafter-dry.sty
- RELOC/doc/latex/noindentafter/noindentafter-packagedoc.cls
+containersize 1384
+containerchecksum 8445839068a264cc57df9b0e9cce4562b3e70ef208baf32fb2aaabf7ce95804a31f0f8b65c8ce2f2f0fc809a07cb864ff977af31d8162cf10560c39f9d2b78a8
+doccontainersize 399864
+doccontainerchecksum 95f0e11cc91dce0e970caa703149b602150426df174044b0a2fc7d902f040fa4fe6fc3014bcf49d240bc9612c5c61a5a40124d5b49ffab1bdbabab0cfe55889d
+docfiles size=102
+ RELOC/doc/latex/noindentafter/LICENSE.md
+ RELOC/doc/latex/noindentafter/README.md details="Readme"
RELOC/doc/latex/noindentafter/noindentafter.pdf details="Package documentation"
- RELOC/doc/latex/noindentafter/noindentafter.tex
-runfiles size=2
+srccontainersize 4696
+srccontainerchecksum e3a12b14ad4571a3fbaf4d4297da28a69cdba7bcf57a365dddb163d88a0b1f7acd20d600ab6353b4ea110d4a0a72c9bef365a3b1fd866448f65318bb5940dd7a
+srcfiles size=3
+ RELOC/source/latex/noindentafter/noindentafter.dtx
+runfiles size=1
RELOC/tex/latex/noindentafter/noindentafter.sty
+catalogue-contact-bugs https://github.com/mrpiggi/noindentafter/issues
+catalogue-contact-repository https://github.com/mrpiggi/noindentafter
catalogue-ctan /macros/latex/contrib/noindentafter
-catalogue-license lppl1.3
+catalogue-license lppl1.3c
catalogue-topics macro-supp
-catalogue-version 0.2.2
+catalogue-version 1.00
name noitcrul
category Package
@@ -232641,7 +232651,7 @@ catalogue-version 1.0
name optex
category Package
-revision 59184
+revision 59202
shortdesc LuaTeX format based on Plain TeX and OPmac
longdesc OpTeX is a LuaTeX format based on Plain TeX macros with power
longdesc from OPmac (fonts selection system, colors, external graphics,
@@ -232656,21 +232666,101 @@ depend optex.ARCH
depend rsfs
depend unicode-data
execute AddFormat name=optex engine=luatex patterns=hyphen-lan.opm options="optex.ini" fmttriggers=amsfonts,cm,ec,hyphen-base,lm,rsfs,unicode-data
-containersize 807724
-containerchecksum d28f76669ae4da48edbdc9ed52bb7624461494da829f1a7f7b97f217167d6a8ee6fe3fbd23ba15729275f6f8b347387d5331168615b4d399923d2bfb0d7bda9f
-doccontainersize 1438716
-doccontainerchecksum 7755ca9a97399dd6ef073dab4002e068725906869bde803d6689753cb1c628d993bdbcde5fc789eda80e3531d0c6829d22cef9586849b9723ed24e1226e3adfc
-docfiles size=402
+containersize 787872
+containerchecksum 8a06ae265ba768796f849e8d5304050bc1900c0cbfe5b6dfd601f67e015eb07fdd934e565052ab1c61dc05df1ce3f54c603bd71770a2af6c1ebcadc1b7949685
+doccontainersize 206116
+doccontainerchecksum b5f6fbaa0a00ab2b1c357be857274c464a28d800bdfdc3af0c57782e06e8c7482b5a5a2f911e8a89fd7264f69391132a38e07e04434390a6106700e90b427edf
+docfiles size=308
texmf-dist/doc/man/man1/optex.1
texmf-dist/doc/man/man1/optex.man1.pdf
- texmf-dist/doc/optex/README details="Readme"
- texmf-dist/doc/optex/omls.tex
- texmf-dist/doc/optex/optex-doc.pdf details="Package documentation"
- texmf-dist/doc/optex/optex-doc.tex
- texmf-dist/doc/optex/optex-math.tex
- texmf-dist/doc/optex/optex-techdoc.tex
- texmf-dist/doc/optex/optex-userdoc.tex
-runfiles size=499
+ texmf-dist/tex/optex/base/alloc.opm
+ texmf-dist/tex/optex/base/basic-macros.opm
+ texmf-dist/tex/optex/base/bib-iso690.opm
+ texmf-dist/tex/optex/base/bib-simple.opm
+ texmf-dist/tex/optex/base/cite-bib.opm
+ texmf-dist/tex/optex/base/colors.opm
+ texmf-dist/tex/optex/base/doc.opm
+ texmf-dist/tex/optex/base/f-adventor.opm
+ texmf-dist/tex/optex/base/f-antt.opm
+ texmf-dist/tex/optex/base/f-baskerville.opm
+ texmf-dist/tex/optex/base/f-bonum.opm
+ texmf-dist/tex/optex/base/f-comicneue.opm
+ texmf-dist/tex/optex/base/f-cursor.opm
+ texmf-dist/tex/optex/base/f-dejavu.opm
+ texmf-dist/tex/optex/base/f-ebgaramond.opm
+ texmf-dist/tex/optex/base/f-garamondl.opm
+ texmf-dist/tex/optex/base/f-gfsbodoni.opm
+ texmf-dist/tex/optex/base/f-heros.opm
+ texmf-dist/tex/optex/base/f-kerkis.opm
+ texmf-dist/tex/optex/base/f-kpfonts.opm
+ texmf-dist/tex/optex/base/f-libertine-s.opm
+ texmf-dist/tex/optex/base/f-libertine.opm
+ texmf-dist/tex/optex/base/f-libertinus.opm
+ texmf-dist/tex/optex/base/f-librecaslon.opm
+ texmf-dist/tex/optex/base/f-lido.opm
+ texmf-dist/tex/optex/base/f-lmfonts.opm
+ texmf-dist/tex/optex/base/f-merriweather.opm
+ texmf-dist/tex/optex/base/f-newcm.opm
+ texmf-dist/tex/optex/base/f-pagella.opm
+ texmf-dist/tex/optex/base/f-poltawski.opm
+ texmf-dist/tex/optex/base/f-roboto.opm
+ texmf-dist/tex/optex/base/f-schola.opm
+ texmf-dist/tex/optex/base/f-sourcepro.opm
+ texmf-dist/tex/optex/base/f-technika.opm
+ texmf-dist/tex/optex/base/f-termes.opm
+ texmf-dist/tex/optex/base/f-xcharter.opm
+ texmf-dist/tex/optex/base/fams-ini.opm
+ texmf-dist/tex/optex/base/fnotes.opm
+ texmf-dist/tex/optex/base/fonts-catalog.opm
+ texmf-dist/tex/optex/base/fonts-opmac.opm
+ texmf-dist/tex/optex/base/fonts-preload.opm
+ texmf-dist/tex/optex/base/fonts-resize.opm
+ texmf-dist/tex/optex/base/fonts-select.opm
+ texmf-dist/tex/optex/base/graphics.opm
+ texmf-dist/tex/optex/base/hi-syntax.opm
+ texmf-dist/tex/optex/base/hisyntax-c.opm
+ texmf-dist/tex/optex/base/hisyntax-html.opm
+ texmf-dist/tex/optex/base/hisyntax-python.opm
+ texmf-dist/tex/optex/base/hisyntax-tex.opm
+ texmf-dist/tex/optex/base/hyperlinks.opm
+ texmf-dist/tex/optex/base/hyphen-lan.opm
+ texmf-dist/tex/optex/base/if-macros.opm
+ texmf-dist/tex/optex/base/keyval.opm
+ texmf-dist/tex/optex/base/languages.opm
+ texmf-dist/tex/optex/base/lists.opm
+ texmf-dist/tex/optex/base/logos.opm
+ texmf-dist/tex/optex/base/luatex-ini.opm
+ texmf-dist/tex/optex/base/makeindex.opm
+ texmf-dist/tex/optex/base/maketoc.opm
+ texmf-dist/tex/optex/base/margins.opm
+ texmf-dist/tex/optex/base/math-macros.opm
+ texmf-dist/tex/optex/base/math-preload.opm
+ texmf-dist/tex/optex/base/math-unicode.opm
+ texmf-dist/tex/optex/base/mathclass.opm
+ texmf-dist/tex/optex/base/more-macros.opm
+ texmf-dist/tex/optex/base/multicolumns.opm
+ texmf-dist/tex/optex/base/optex.ini
+ texmf-dist/tex/optex/base/optex.lua
+ texmf-dist/tex/optex/base/others.opm
+ texmf-dist/tex/optex/base/outlines.opm
+ texmf-dist/tex/optex/base/output.opm
+ texmf-dist/tex/optex/base/parameters.opm
+ texmf-dist/tex/optex/base/pdfuni-string.opm
+ texmf-dist/tex/optex/base/plain-macros.opm
+ texmf-dist/tex/optex/base/prefixed.opm
+ texmf-dist/tex/optex/base/print-unimath.opm
+ texmf-dist/tex/optex/base/ref-file.opm
+ texmf-dist/tex/optex/base/references.opm
+ texmf-dist/tex/optex/base/sections.opm
+ texmf-dist/tex/optex/base/slides.opm
+ texmf-dist/tex/optex/base/styles.opm
+ texmf-dist/tex/optex/base/table.opm
+ texmf-dist/tex/optex/base/uni-lcuc.opm
+ texmf-dist/tex/optex/base/unimath-codes.opm
+ texmf-dist/tex/optex/base/unimath-table.opm
+ texmf-dist/tex/optex/base/usebib.opm
+ texmf-dist/tex/optex/base/verbatim.opm
+runfiles size=482
texmf-dist/tex/optex/base/alloc.opm
texmf-dist/tex/optex/base/basic-macros.opm
texmf-dist/tex/optex/base/bib-iso690.opm
@@ -232766,7 +232856,6 @@ runfiles size=499
texmf-dist/tex/optex/demo/op-ring.png
texmf-dist/tex/optex/demo/op-slides-bg.png
texmf-dist/tex/optex/demo/op-slides.tex
- texmf-dist/tex/optex/pdfextra/pdfextra.opm
texmf-dist/tex/optex/pkg/emoji.opm
texmf-dist/tex/optex/pkg/plain-at.opm
texmf-dist/tex/optex/pkg/qrcode.opm
@@ -237191,7 +237280,7 @@ catalogue-version 1.15
name pdfextra
category Package
-revision 59184
+revision 59204
shortdesc Extra PDF features for OpTeX
relocated 1
longdesc As a minimalistic format, OpTeX does not support "advanced"
@@ -237200,17 +237289,17 @@ longdesc package aims to provide them. Summary of supported features:
longdesc insertion of multimedia (audio, video, 3D), hyperlinks and
longdesc other actions, triggering events, transitions, attachments.
containersize 22320
-containerchecksum cee29ef2993e3ac07b6fedf90834998cfea2e3beb86e42ca4e56c83cf649e844fdfba67bbfac8f1883cc2f72e0360cce7dd91ebc458bbacd72962ecd11a2d121
-doccontainersize 625108
-doccontainerchecksum 4b649f0cf967795cdd106818b454f6b01971ce68d196d71745cabb89d62866addf3b9f2bd8e05f6c7f1f01eae2ecfd34675545de910d90e1c770ac2bafbacc41
+containerchecksum f8b7fb336d9c52e9d8d45a300f8bb07bc5fd3cb8a00cac48997b75d0a0737d02bc17740816160accb912707eac475830b0cecb3d6bfcf55e0236535f923ca953
+doccontainersize 625096
+doccontainerchecksum 6cd41f3496a8e00442b510da07988c668ff8abda7c791cd5396da17241fddd2a3aeabf75d229a8bbadf9801ecae02858a91ff8bb31728d01d8b537299d7cd116
docfiles size=180
- RELOC/doc/latex/pdfextra/LICENSE
- RELOC/doc/latex/pdfextra/README.md details="Readme"
- RELOC/doc/latex/pdfextra/examples/pdfextra-example-part.prc
- RELOC/doc/latex/pdfextra/examples/pdfextra-example.pdf details="Example of use"
- RELOC/doc/latex/pdfextra/examples/pdfextra-example.tex
- RELOC/doc/latex/pdfextra/pdfextra-doc.pdf details="Package documentation"
- RELOC/doc/latex/pdfextra/pdfextra-doc.tex
+ RELOC/doc/optex/pdfextra/LICENSE
+ RELOC/doc/optex/pdfextra/README.md details="Readme"
+ RELOC/doc/optex/pdfextra/examples/pdfextra-example-part.prc
+ RELOC/doc/optex/pdfextra/examples/pdfextra-example.pdf details="Example of use"
+ RELOC/doc/optex/pdfextra/examples/pdfextra-example.tex
+ RELOC/doc/optex/pdfextra/pdfextra-doc.pdf details="Package documentation"
+ RELOC/doc/optex/pdfextra/pdfextra-doc.tex
runfiles size=17
RELOC/tex/optex/pdfextra/pdfextra.opm
catalogue-contact-bugs https://github.com/vlasakm/pdfextra/issues
@@ -237587,7 +237676,7 @@ catalogue-version 0.12
name pdfmanagement-testphase
category Package
-revision 58511
+revision 59194
shortdesc LaTeX PDF management testphase bundle
relocated 1
longdesc This is a temporary package, which is used during a test phase
@@ -237595,22 +237684,25 @@ longdesc to load the new PDF management code of LaTeX. The new PDF
longdesc management code offers backend independant interfaces to
longdesc central PDF dictionaries, tools to create annotations, form
longdesc Xobjects, to embed files, and to handle PDF standards. The code
-longdesc is provided during a testphase as independant package to allow
-longdesc users and package authors to safely test the code. At a later
-longdesc stage it will be integrated into the LaTeX kernel (or in parts
-longdesc into permanent support packages), and the current testphase
-longdesc bundle will be removed.
-containersize 40512
-containerchecksum fa4a79e078e2aa29862db99a336a614387df52a019d0a42b6bbf4ff8d222bf44a16577d3d491ca0f3c8527a0dfd1bab1839db891092dd0a8f3480744fba2fcba
-doccontainersize 5755264
-doccontainerchecksum 03503b2f0e4390bcde34266610fa822c192fac1cf5c800edc2ad77c1b925a964e9564d12fe9104f675b243bb757a96a355aac26b0cd95ff701210b3afca2d15f
-docfiles size=1797
+longdesc is provided, during a testphase, as an independant package to
+longdesc allow users and package authors to safely test the code. At a
+longdesc later stage it will be integrated into the LaTeX kernel (or in
+longdesc parts into permanent support packages), and the current
+longdesc testphase bundle will be removed.
+containersize 42816
+containerchecksum 42f5e51453ada0a19242bd12496da930aeaaf41817dab7b902b9e2c27060723ea997f708ef4f5dd616c27b1d2565e3cbce116def7be69e9496f5a42003cc71bc
+doccontainersize 6734916
+doccontainerchecksum 9c853edacd11f451f3fe7b1833739585b41d834d17e48142b186029c0c40c673e41c5110c1769ec4a465a37a065ecf2e05c67a2d029fd3dcb2e9bf30cc3d9eed
+docfiles size=2123
RELOC/doc/latex/pdfmanagement-testphase/CHANGELOG.md
RELOC/doc/latex/pdfmanagement-testphase/README.md details="Readme"
RELOC/doc/latex/pdfmanagement-testphase/hyperref-generic.pdf
RELOC/doc/latex/pdfmanagement-testphase/l3backend-testphase.pdf
RELOC/doc/latex/pdfmanagement-testphase/l3pdfannot.pdf
RELOC/doc/latex/pdfmanagement-testphase/l3pdfdict.pdf
+ RELOC/doc/latex/pdfmanagement-testphase/l3pdffield-checkbox.pdf
+ RELOC/doc/latex/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
+ RELOC/doc/latex/pdfmanagement-testphase/l3pdffield-textfield.pdf
RELOC/doc/latex/pdfmanagement-testphase/l3pdffield.pdf
RELOC/doc/latex/pdfmanagement-testphase/l3pdffile.pdf
RELOC/doc/latex/pdfmanagement-testphase/l3pdfmanagement.pdf
@@ -237620,13 +237712,15 @@ docfiles size=1797
RELOC/doc/latex/pdfmanagement-testphase/ltdocinit.pdf
RELOC/doc/latex/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
RELOC/doc/latex/pdfmanagement-testphase/pdfmanagement-testphase.pdf details="Package documentation"
-srccontainersize 92976
-srccontainerchecksum 8bf95f64fdee7517af5f3c312c32f1c705d9b2348cae1ec44c76855b7729641509e6f89192a5d415357fbcae794178767fcfa5eca72e0d688246a6a5c5ca03e8
-srcfiles size=124
+srccontainersize 101088
+srccontainerchecksum ebd10a4ff7af579c4ea05be3bbb208e218a5ecaf858d0629df5adf75624336d5e221b58e23922f5067369bdcd7b548f761d27bf966f4ec5783bb5c917cdc6f08
+srcfiles size=138
RELOC/source/latex/pdfmanagement-testphase/hyperref-generic.dtx
RELOC/source/latex/pdfmanagement-testphase/l3backend-testphase.dtx
RELOC/source/latex/pdfmanagement-testphase/l3pdfannot.dtx
RELOC/source/latex/pdfmanagement-testphase/l3pdfdict.dtx
+ RELOC/source/latex/pdfmanagement-testphase/l3pdffield-checkbox.dtx
+ RELOC/source/latex/pdfmanagement-testphase/l3pdffield-textfield.dtx
RELOC/source/latex/pdfmanagement-testphase/l3pdffield.dtx
RELOC/source/latex/pdfmanagement-testphase/l3pdffile.dtx
RELOC/source/latex/pdfmanagement-testphase/l3pdfmanagement.dtx
@@ -237637,7 +237731,7 @@ srcfiles size=124
RELOC/source/latex/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
RELOC/source/latex/pdfmanagement-testphase/pdfmanagement-testphase.dtx
RELOC/source/latex/pdfmanagement-testphase/pdfmanagement-testphase.ins
-runfiles size=78
+runfiles size=83
RELOC/tex/latex/pdfmanagement-testphase/color-ltx.sty
RELOC/tex/latex/pdfmanagement-testphase/hgeneric-testphase.def
RELOC/tex/latex/pdfmanagement-testphase/hyperref-colorschemes.def
@@ -237662,7 +237756,7 @@ catalogue-contact-repository https://github.com/latex3/pdfresources
catalogue-ctan /macros/latex/contrib/pdfmanagement-testphase
catalogue-license lppl1.3c
catalogue-topics latex-devel pdf-feat
-catalogue-version 0.95c
+catalogue-version 0.95d
name pdfmarginpar
category Package
@@ -299223,7 +299317,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 59178
+revision 59190
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -299231,10 +299325,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 107992
-containerchecksum 41edadee235e69af8b38ba30579c488af9b32803b0ba5a2db9ae39ae7b4aa9a763ac9fb5c85bf1b4ddf2c830b642866fcb04c3e396a21ae0be2a447f5f0fa269
-doccontainersize 397096
-doccontainerchecksum 81c786d8e8d6fb8339a4aa48bfe916142340ec47642ec29ea94f542fbd43bc0b4fdef05420b9f92c00da7c0ec07a3035aceb0cc79a4751760a1c1dd5604a59e2
+containersize 107972
+containerchecksum 44903b8affb0f239d13286f29713964f972db60dce2f78b47d071d63ada6b3811e95f45ab69fc2d2fe7d339d7d89f2fd52fb9bc5ccac914f22778fa601ea2b9a
+doccontainersize 397032
+doccontainerchecksum 2062c080c9e543aeb06f57fc34dee60857a5b2494f04cc49e190bb651bbfc2e361e78eac08972ace6fb876bdb2bfbc247e6d087a5ae4e14ebdcdea01c7691469
docfiles size=490
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -300163,7 +300257,7 @@ docfiles size=302
name texlive.infra
category TLCore
-revision 59154
+revision 59199
shortdesc basic TeX Live infrastructure
longdesc This package contains the files needed to get tlmgr running:
longdesc perl modules, xz binaries, plus (sometimes) tar, wget, lz4, and
@@ -300171,10 +300265,10 @@ longdesc various other support files. This package also represents the
longdesc tlcritical recovery scripts. The standalone installer is close,
longdesc but not the same; it's defined in 00texlive.installer.
depend texlive.infra.ARCH
-containersize 229520
-containerchecksum cd3e047b234bb27f2db0bc6edcdea32f7fa0039ad17287fbf5b1238595535d23eb8f1196e7a2efe1a1c41a0e8b771b81a2eda5e9994081914a6079053fd16f63
-doccontainersize 207844
-doccontainerchecksum e8d4b78bf922729866fab3324c0381a6264dafc2b95545ded0fa9c30bfdcc4990a0a6ffebf046c6b94a005b91961cae71393c524f7a2b5317e622298399c30a0
+containersize 229456
+containerchecksum 4524bfed4c2bd3ad0994c8041461ff5be2cb45dbfc19664c97e889509185d89765ae1940ae1645cda13aa1a0b67e541711f92fe48a5b3b6895fb04d843187c31
+doccontainersize 207840
+doccontainerchecksum 1da676f320ec267674d8c634b0fa3bac96e2eb8fba0fb4458c91cecde0ce742b6cf510bc0c7ccd2679ff9c90c59dc82612e10cf07ab71625858cdf5cdab122c7
docfiles size=138
README
README.usergroups
@@ -325938,7 +326032,7 @@ catalogue-topics dissertation
name vancouver
category Package
-revision 59179
+revision 59192
shortdesc Bibliographic style file for Biomedical Journals
relocated 1
longdesc This BibTeX style file is generated with the docstrip utility
@@ -325947,10 +326041,10 @@ longdesc Manuscripts Submitted to Biomedical Journals as published in N
longdesc Engl J Med 1997;336:309-315 (also known as the Vancouver
longdesc style). The complete set of requirements may be viewed on the
longdesc ICMJE web site.
-containersize 8704
-containerchecksum a5b3cb732761fe5987982328bc38fc4b7c6ac4fccc64b64df945a92687cbcc6f1223a87ff0cfeb129bcacebb573d03dce7e7517a3ae79f3e1f87f88ac52328a2
-doccontainersize 136664
-doccontainerchecksum 57fb5079ef37821faf8a9146a2cc3c7ab5d5fd128be771a36257b1ef3209d86ea44eb6e6df28345769d6ec534a721fa237d849217b435924020d61d363b8613c
+containersize 8708
+containerchecksum 9fd38e4545902a8f715e2912ce2046a679476f0a91ee76af74213b65689c4e2c01aa68ea8fdb09d93442097695443a2be0d6169dd50fc8ec63a7f9fe424ea739
+doccontainersize 137272
+doccontainerchecksum 4bb074a9ae48d6e565b1b60dfcdec4b6fe35e367639c3737e68e4cdeb9ed9017b17d57ebe895865b6b0f63bb7d66df5af08360d149aa5f2f7c604bf90faa9859
docfiles size=45
RELOC/doc/bibtex/vancouver/FAQ
RELOC/doc/bibtex/vancouver/LICENSE
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 776b16e69f..73cf74ad17 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-cdcf78c879ea8ac46a598325a9c3fd82 texlive.tlpdb
+966fb4b295b4243438f247bc1ba79fbf texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index cec16b217c..f3818f8321 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-5ab9e471d5cf58720f0bdc848cd707e5ede3daaed4e60c39e626133fc456861c06d40f7d060fa8c96e3a6190202fae24f1c1654281e6b647dda85de748ca9d85 texlive.tlpdb
+4bf6633c066817721687a65fe0f027275606fd5d9ab3e63d5d6a683fc7a38dc6304a3c75419bc81c1e7684970c7cc4ae927df2a4674a744a29a7ab0b1287941f texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index a559927114..d6b71f71e5 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJgnbvCAAoJEEzhh34ZQ4xw7UYIAJs/6o+0sWPkTpzq44tZ2xOB
-7uDPbxJA9CZxOB7HYF5r1XLzd+pGQVfDMJCwoxtiS4FGGvWXScJUsKficlpF8Nt9
-74ZDc0o8Ot6erLKkvKKzUMbDERfIIhFBDDHeFAra/2zb6n4saAmqgrRIXgbNLWoa
-ZcfadiV5D/vPSSFB5gKh5GCKPMyu7wc1eE9U6nOlc7/KvEKRfxA/nqS4ZRhTx02C
-P1Eq14qrPrMmVYdtnwbSM/uJc13wiBQ6jJqUAN0A3d/8+9zmzRW7qtklimuwtTgE
-QGhqlscEPRRpRBTKPWU/maNKdNTGiEj26GL6nO65N0EBEM/R0LvSjlSsznNEpXg=
-=XHk7
+iQEcBAEBCgAGBQJgnw2BAAoJEEzhh34ZQ4xwJMQH/i9Si7Nuk6TILkuJvlXhPTGe
+yx4ksFBnOjY3rTMU4GkOAaqP0JU6oK1taD6XLdnjBwWvLKYIwnJop87jXOSvbkrj
+f4xzK3savEBAFZ7joVHFaPcGlBqNqYzX6kIvNx/758/1igsxm9KPTR+brUq+upVi
+5BBsIbnR13UrJoTdLW0vmlKbvi9uq/SRHxvRZKKtd5buS/HRwkEumSCdXczsbCsT
+rDGKnsiIheQ8fmaQby/mkSyY9lvahEJyfsTz78vqPJRU99d8/G5fZcIvQjmoZVoZ
+d50CzTtEP5poMHxeQAo5S7StfMN1GzCJH/uWgB5xRGR1cBKahopjUMgZ3jVqERo=
+=0Wdw
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index f0069d861d..bc50ed5724 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/texlive/tlnet/update-tlmgr-latest.sh b/systems/texlive/tlnet/update-tlmgr-latest.sh
index 652964735b..67905aa621 120000
--- a/systems/texlive/tlnet/update-tlmgr-latest.sh
+++ b/systems/texlive/tlnet/update-tlmgr-latest.sh
@@ -1 +1 @@
-update-tlmgr-r59154.sh \ No newline at end of file
+update-tlmgr-r59199.sh \ No newline at end of file
diff --git a/systems/texlive/tlnet/update-tlmgr-latest.sh.sha512 b/systems/texlive/tlnet/update-tlmgr-latest.sh.sha512
index 88150b5249..6c53d5461a 120000
--- a/systems/texlive/tlnet/update-tlmgr-latest.sh.sha512
+++ b/systems/texlive/tlnet/update-tlmgr-latest.sh.sha512
@@ -1 +1 @@
-update-tlmgr-r59154.sh.sha512 \ No newline at end of file
+update-tlmgr-r59199.sh.sha512 \ No newline at end of file
diff --git a/systems/texlive/tlnet/update-tlmgr-latest.sh.sha512.asc b/systems/texlive/tlnet/update-tlmgr-latest.sh.sha512.asc
index 3b7b908739..4c96732ba0 120000
--- a/systems/texlive/tlnet/update-tlmgr-latest.sh.sha512.asc
+++ b/systems/texlive/tlnet/update-tlmgr-latest.sh.sha512.asc
@@ -1 +1 @@
-update-tlmgr-r59154.sh.sha512.asc \ No newline at end of file
+update-tlmgr-r59199.sh.sha512.asc \ No newline at end of file
diff --git a/systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512 b/systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512
deleted file mode 100644
index 338b2675e1..0000000000
--- a/systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512
+++ /dev/null
@@ -1 +0,0 @@
-38b63dcd3ebaee35ad2d88e4377e1eb2cd76ff58193681345f18d23ce18e5f78947ed9de207c43e91558cea3696e0120b53256cbc8cd8c511b5b03d635f13d38 update-tlmgr-r59154.sh
diff --git a/systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512.asc b/systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512.asc
deleted file mode 100644
index 2797c67650..0000000000
--- a/systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512.asc
+++ /dev/null
@@ -1,10 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEcBAEBCgAGBQJgmdLfAAoJEEzhh34ZQ4xwmdYH/1qohz6VUf2PZCOJycHwL6kI
-cxJqgPjDMMtBB0ULTDbF28yOvWqXuHdkK7DiE+QzqhvIcjica9OdEQKScVFwbktE
-ZxkKu7Ski1FErIPtIUUJyS7pKSiH1n09pvqBT3/fp2lgH8hHRO8tkVZSaWIKcYv7
-spIWdNZg1F8JBCyOykJwrIjjOufR2OBlMUeS6FerjSoZgoinipI8K9nP2dhCT+DY
-pFqFZS1oda3gg5fsCVmDod7VQQA1weRJ6iE1Ore8gref7reAWON4BQbQhG6tB5JB
-jlHU5ttCBYh7fS+hLWq8TGUj1d1UyFjGckxxIkKw+PUxbfAAEQSKhqHKC8HO7QM=
-=5a+U
------END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/update-tlmgr-r59154.sh b/systems/texlive/tlnet/update-tlmgr-r59199.sh
index bbc16d59ca..e23628ba1a 100755
--- a/systems/texlive/tlnet/update-tlmgr-r59154.sh
+++ b/systems/texlive/tlnet/update-tlmgr-r59199.sh
@@ -2,16 +2,16 @@
# '$Id: makeself-header.sh 46578 2018-02-09 22:16:10Z karl $'
# This script was generated using Makeself 2.2.0 (-umask for TeX Live)
-CRCsum="2111590592"
-MD5="f63f7d64f7dcc4bfdb3b76058fac22f1"
+CRCsum="3722816629"
+MD5="695cfa10eb697c2fa4b18ff26f62519f"
TMPROOT=${TMPDIR:=/tmp}
label="TeX Live Manager Updater"
script="./runme.sh"
scriptargs=""
licensetxt=""
-targetdir="tmp.CyyNBsmCpKtlmksel"
-filesizes="10011570"
+targetdir="tmp.dux9vxS0QVtlmksel"
+filesizes="10011535"
keep="n"
quiet="n"
@@ -235,14 +235,14 @@ do
echo Target directory: "$targetdir"
echo Uncompressed size: 22372 KB
echo Compression: gzip
- echo Date of packaging: Tue May 11 02:42:02 CEST 2021
+ echo Date of packaging: Sat May 15 02:40:40 CEST 2021
echo Built with Makeself version 2.2.0 on linux-gnu
echo Build command was: "/usr/bin/makeself \\
\"-q\" \\
\"--header\" \\
\"/home/texlive/trunk/Master/tlpkg/bin/../libexec/makeself-header.sh\" \\
- \"/tmp/tmp.CyyNBsmCpKtlmksel\" \\
- \"update-tlmgr-r59154.sh\" \\
+ \"/tmp/tmp.dux9vxS0QVtlmksel\" \\
+ \"update-tlmgr-r59199.sh\" \\
\"TeX Live Manager Updater\" \\
\"./runme.sh\""
if test x$script != x; then
@@ -263,7 +263,7 @@ do
echo LABEL=\"$label\"
echo SCRIPT=\"$script\"
echo SCRIPTARGS=\"$scriptargs\"
- echo archdirname=\"tmp.CyyNBsmCpKtlmksel\"
+ echo archdirname=\"tmp.dux9vxS0QVtlmksel\"
echo KEEP=n
echo COMPRESS=gzip
echo filesizes=\"$filesizes\"
@@ -498,33 +498,38 @@ if test "$keep" = n; then
/bin/rm -rf $tmpdir
fi
eval $finish; exit $res
-
-e44 dE=ܧc.I:+uk~9jq:N=;v5:\ :jqX:\QEdtNJ!ѡ_c75-bWC}CK]&s._5w:Y7ZQ~_jPUbzlw0gsAŀpU?,PǺE^5*,,R`:!! 9
-E@
-*s
-j<ti+l y-zTJDP@;.[- !pꠃu`8 A`) mh| sԅahn
-}5n",E
-pTf!5MlH bXD^jU؀1Rmx=gd` B*jehr9(bそy$-4}|cNЦK =k`"{s5E.tfCYC+l$0v֕Vf!D|=kZa1b\Ϲ+_̻"`air .>P L!IL .i[ęl:F4YW
-h@T_*JzmU9\ CׅA!gSTJ|jqe. 7Y%o/ȋ'~bpeKj6s8{)9|j\6G0uc 'AE/h+oF$2BTeHvI?*pdA|.n
-5F O8o#l
-H+@jм06?0/rI
-Gl"ă Gsƨ3Ў*<Jť
- T Qgu ^L
-h'Ft,0MIj1 s$P.탃և'S_
-JbäJ~4K+1ټd~Z G`y?p[?ZQυZ~Z?͍v/5ku70KhSre744578[ͮzw8?h}C~>/MJ,:"%_P͊|쬯̏M-Wc/%/|`~,F'CSCk)`j^t}s)(Q_s)] zS3Kﵿ>8[Oe2:1m}{ʻ^\{~/>򋻻7N9' !<ƟAz=BaX̪t[7~,}+δ}I
-^rR43iḄkSnXbofb.G;]ןP<tW;(\OYcP,k=
-Y\f]u1[L9d,Ռw}28WQp|޹]{R
-HLt)I$׉
-)^]}C#y%si
->0pd؜,x0тcei@LZRhCMM_"maJ>d"wV`Čn3x߆n0S@hqW&0WX3nnY&8^*q
-JZ. VV#ckT'''khL.k57Vd*mX !SLr>_Ord*5xxwn
-(ag*k^
-ã&ݴRW(k2`>Fgr#m|Ż)IwC(+hX[WղRz|VKmMW=m^ۺwˀ(QSuF?,(Qj= 120qNuu[]7A2;{UƵ0H;fʓs7sŦ7pzID8_e w)X sKC7'ʿ ;n3raƸb5n7O&iRn8by>oz/X$tXԲ:*+j'sJi?b*`k[6>3,pv.xlݫC+ ˶׽azoSk.Dz3ϘFO&ܝoK3PM'@-Fy>D`Sm|Rv2[GȭkBb}6WT
-l2
-
-E~ յoCeG'?` %ľ rԣ_=/U8oJ {NƟ| =?'s(h0$\4 hh1*[3#cWf{
-0j0j4d Zq`7J
-cd ;ݽ5{;f͛5oZԴՃCgu/$Hv+ Z.n
+
+e44 dE=ܧc.I:?+uk~9jq:N=;v5:[].oinnֱ&u*Ȍ9x%89Vu.GBCojZb\ - :\5j HuJY n25h "vՠ$NlaVWckc˃,") 1+ (3XT> uoa/ *GjTYXb;uF{/CB@r
+
+$
+_Da+hO| bPPRI75*{FuڀCtؘV 2(
+_Eq (%&AbD|h.0n*Zaݛ
+{>Yud`ք9 ̺t9 
+* ,켍þaaSO(7fg9ZĜnWژȁk8\0VS8089eÊY҆WDTΝ)d[VeX{
+zbo<1Ў[. Hh PJ66_#AERhWH
+FwTK՜Fg Sb0CD# ~r#\a4VQˆ4',H`"f\gWBe5ɵs"r  ~-yVH
+ZDVNە @AQD v][xÑBBA\p8e-iS *pLA Q1
+r6EŨG[^`{q#;_2
+,Q>_qx)W6f3Ckʹb7-^es
+S7. r",_Q܍RfTJ"#DX;Zj9T# sotqS~E4jxyfHP@r\*WÆ=>y9o%HRx(8bü!O86FvT pT..ŕsr۴z?mv={L0cwD{/\(KEZ_-6k4fB({X QW U%~fu0
+
+:.?;m
+s$(|*R?]/vV?wV%G%:Xof,Nmł>jZ:/MhpsuؓY?Cb VD8
+f 
+WF;1cއn*LzPH=[w@'Q"uA%n$><UO=0x` UPs&U>kYZ,Y故% Z.?Y~puѺtݍgZ/؟ذdn5on{Yot,۟*f0Tlipͮzw8!u&% sCfENovCw|}Sc} `qy !/bA?0R! KF&WR/+w[MKHJ<lMopcjjouiLF;ͻb![y׋+u/[~qw7)d!3H/GۻX(+VY5nfݏoeՙݢ/UZ\ft&;ptwa KA̅BtK3gNwJq /k U
+eT!+ˬ.s)n^v*
+ϣ;kOH7=>t7q#"kSDel閮z]J>sծ6gJrS|͔>FN>R'0oh+}jN| &}M<#uqs']*'`SCTl:FCiyxrp؋(zU.ݢW%h((ğ^Wj黩? O֥q FT` 4p7|fsCLլ뤧̟
+|Uĵ x<f%7mt
+Xz HWعvאL';wΞѽ׌F(3TGT#Dc`lj݆D^\ź)he )7 y <ϛfU }w \gb
+L>W1m fJ-nd }
+kͭ=+k^Rq#s
+)0fY'Q/w㙓44$܆xARuV\ >ͨwCg*~HsGہ1LU{\gJSɍDBϟ;o,q?SZ嶹h`yR{z kթحڶ%Z'*F7:%Z {JT:9܄ד.n ]8<kD.╅^;^8@~Δ20r.; PɳAS4h~1q<sX҈D-=?engZWEBI7L
+Z"V bl^(AR[c`C%'d]2`JԔaݻ m
+rmrm<HQ7c|:wjYk9%|崟]ja-p[QD͙hzw8O
+yh;BJra<Qաeۍ0=h)}ua}=mKgLqwNVy%wgئ}<~"ũ6>);Vȭ#5!tdg>Uciw+\on V!H̀2VcN^H^޹Qv^߃rFX6>RbTl=܉'pKb3Y-Z{&[LNwiëg e=TjVfu9uv.sbSǞ#* ^KeKg&,կ?9Nb@ }MOR+xKqLF
+Ma{q1.r43t~m
+ Tfic8[D%JNQEyŘJ(
+%$%+ezoonͽ~HF-JM0jT0(j$h\)\èeӐm$hǁ( #h(6>fv>l@SN̛7o̾їZԴՃCgu/$Hv+ Z.n
s#6p9?15ϸyirʡ/,m4ҝmHk5]f-d5)d@_Cw
զ-[$+;\i\z2ӧ?Ͷb3Bi5V~iSRiM5S&̹Y T?ɢ,*3ݻNކ#}<X![n\V &_e=u]qo|f[+g~\emnל:x'X1ۇZ`8ڶ-8+۪7N7F_H&{+t:6>sv3\i=~\y[wO]Xsj91g
?j
@@ -555,831 +560,771 @@ EP =G}EX1obv@Vz$(
!$T$\B; ~0O'$.u>ynqµ NNU\:;섰$j9nVtBټei?\נͨb_3=}{IoRkrfvs,Tּ`Ճ[#O߆j74Ztd18%|2ݽŋ5"7g֥W9<( ƍvuqyz 3
>|,veETD^ h>)B&#VAMߓ"i55FEH Y \C_ OB? ,:OE
с~kH
-+޷
-v_]8MOGRfulMsJRJ+M  ] Z!"xZF}߻\[8G-C5l@~tZW5$ u!UȒ2C(:T7xz="rSLSC f42ٝ
-; ƛy_MV/]*h P7.,jm*d#iβjЁ)Rٜ+:\T<E9aƋr:tD0e6ڿywfh6@3~4 ̞bngrr܊܇k0H!5C[d`5}kd|<11*cJ87 P<y
- \
-P}.&2#ӎ_3iS&Prd:';s
-;ޓ';CVyta+!3*'6$8MV@G~_p1_<>4<#Fݤ <,z"^\n HNwd &a-xd+QM*ʳ{f[0=LMͤ@OǕZ9ȄqL v+'?W UZC(^5(Gq<cqHuqpu)[ᠰ*Ar.c!ឳ#&9PT 3K%q%/rӪBŠh,Ἃ%`-\v8A8GC^'RI 7N%2'6K0՞}eXi+ 4w3L
-xG(, %|b
-sBq:MϥЩ.=F@kv16oj
-3N{kLG˳BF7%CVe>\nyhXc=@dZ  W7iiQ{>Oㆀ}&KdO̲ ª:d |! v !3CڇڗE PUs:W-mxȮQ;|F]>3Hap!BRMX݈߰Fzuo3W=|Nc=떄 Aن֭۠͡S Jڨ/Ogn# t\@֍fl̋\ :t{WZdl#~$4CW#hU,>dWD=u((x)7CWB'rjs-b&IV^0E
-K 
-_&fC}.Ԣu&JGz
-J6 3d>@^nU>e}뢍5T_8dÛh~2=\L[YYH%n2DyyP K_ SmlHle@ɤg`}8az∱ koQj~ܰ' bi_mqa7֓:iô^aŽGic㬻'=ĕ2ǁ斷ی°*ڿ*hnym)5\ NpӺQLT՛l\xD-dCsD*L!$
-Vg!Ϫ!l[w-X;K:"VMUX3kAo{6ɞǪg{QRo „:w47DNhiQpJ֛B͢a<98JEp!5a+ÌC1$nSNH燞Wd!m(KQ)@؍ 0{ Jzγ5 S9Cx uP _[BuN%(BH2ёGFGckiȄ!s(l83&8ͤVYͣ^ER2Pmz]Q+RVʵ6m 8Sɼa.$̞Lb)fY/HҋDjpb._O>X9<!E)y_
-.dK~!l>#AUwX Y tWU-FJW 1p@IS$C@gZUPng3"`ty1fi Nɩx@7a4fDMn:k7^K?084/`>- C2
-qI x}j`at [o 5S,PLr2?CtTpKUW V [|!iԺW&~k2,aeC m Shu]u}uY 2+9}If׻m|G,E%?֥Zv'w,Ѐ еLxmGtviоg8Innnx[|*@?\?lVe3k'k@߁`@k#CC1E=;H,kW}bᵫ>M͝r*%ϥ9Pv2g94ǘ{?DԱih綮6]t]ÁKCP 6}Hwx OL=t,$) 擧IT"̀Q2ȂҚNdyvΊr/g
-L &L[ B!N6,VG*M>I>eؗlZD|l$:dW=cu :&LK>O$8O k6Nmj<Y1D5d•S;sM 挸ə$kC=,C &FPn@jw6oQӌ$?JU'0)Za#&m$L$eip[5 "lk82PXdM/68JW`AoF$B]X@:XzgFNhGzցL qhRy4AQ3AXDR$0<!GCJiHk&U;a 4CzMݛ {/^ _S#NGrFW~k:lA!hWV<TaA=g06m=T&SYɓN F!zKyb<d53}=eX>a[$'{Yb8cikV&Y-2u8:4L0ryjF7<5xЈ(2彸 z =hpVGhi!f>`h0)a;@`$R :7 e ɉrj"'@Zý d3
-7㎓-4Bn0-h,tNDpa$Q%3a3F2- /L Qhɢ oa xhz(JMS G8Ss)ЇHnYe$ˌ*
-JGj#5=_RLөPJ4H`^vuZ))S^d2W][sxI*c.ち!_jyzh#ltC8QXO715B!(y> ayNJPƒ2WBzTTR0 }l,}[``)?иÈY8,d tsٮKgkZTy@;0+B`J"QȞcȦK_3>YSANN5OȰ
-vT}7ƲINp$t9κEuH@֛kF^XjLÃ6=x%%Ĭ͐`!T3Ν6W]g0aǽX|)]8رeSPNFh
-d,I^EV=
-(axV>nSY`ά&II.qXH
-nUb
-KHn1(8}7Q4Qea/x<'LVYflh\Zԯܸz+/^3_m׾VT4
-Lv&;ŌgNH!+XI2/x}MLƩ+=o5@8O MW΢'FphRy
-I^MB
-I$-@k,8[UyGhhz=r&\;(:+~cٚg\g}(zDSdi)єaqsݐjJc$U5$@m8Cqph`!s pf8r' ڳsx- Ə?G4ߎxAtm# F*MÇnCؙd\9"WTV)9x(h\![Hm
-;ckϘM Dw<8֔ůɱ|v UqSCDq8G
-6of=-p<䤋{Ԭr`-FaA%rrlBkv zY5T\,CA(8C$ބGG MIc;VGڡY|L'3]6k/=s |9kl`NVuʣhL@&v;W12B Yȫ1t,Zkp[Kmd\sw#bPyדq菬SɎ u
-)Cq4jDZYVyɵ:NL\
-ZQr6ZBqo@>ޔW i8fg&8Jpr\9
-AZ( ٬@Ĺ,JZ,rkEԘſ<ELN"byhd\;^_"W|j
-*N., H} ],<,#ڎz;l >v"Tf8X}uRj#/>F=Z<YK'
-c ;c% QG-$=T]
-ΝA$ˬLduǕ9lo^J+,1$H0'XwjxN!Lq8|C ^@3IUD*vGzw-x~HPcޞqmF4SoE{gr:,pEQh'2-K˹r^
-46e޾ւ<
-dG} Ml@udFp"krIGU0pey;3Ӏ֜B9ɔKNg9se,' dPoLwiTdEоn"˓{mN$Բ=L~O5
-:Ju81n2T9oG'訲)aUa3{0mׯ2ػW~#ѫ0ՈjⰠZVzˍi=pk
-W#O)VG@])$Ul"WhHcv$<'K7}ZEh(InÚpZWڣE+G+7En<U,^m$\D
-8sx>7Q㚶V7"2Vl+oBrgʄcH3fiY1lpbMx'2⾺TJ:svpV\daV
- بG`1/(
-"n9s'3Y3Ee'΍7<KL@^itu֗I
-pj,rLGjQh _~6RLsS{ftOKc^LolminX (b
-Jfʗf O6w%|VVKye綻|[~k祊o
-H¹oÑl@b m[ɕYcInw |8mUW/
-| oZsƒg9&\vfj(K1L %
-@[%m2Pe#
-CO7p]rt|'Ȗߪ T 2>Ɯo17`J.sel_7T O@*z QP՗ש ρ.=wyn_H\)]Y7a*>=_(ŖCT!*ݼm[I]׮ZV-_+mXk_34{8
-->yqi˥qS+Sob5[7W/صg1 T%~~F8oq@d۾z vC.܉ Bw0/- T* DhǜIK噩8fp [V L .cS^^8])Ű#re
-^N61uY~׃pdV]K_مBGx~>v1 O\ٻ..杧U1xGCO@# 6\h4_6T6V5F{O4/4'n4tм|M-ܲDGZߵ|ím}?j׭˭_kf[׭?i߭?o}Su'oj'Kk_gr"SS[5y:3bf"%] (0
-b՝EI}`tа^C-ah}Nm rk*Bd[*^1A
-
-5^$ʔ@Ll ʬ}"$1+;tslKi@"wJEMV##il04|MF{ޡZ 4͟kZ|
-5 -/=6
-w]ٌ9WZ(Rc #Ԩ82q m>Hu-}cm||_i+XRNEIB
- Kh_qu#7wFg{vqf{RwMU{槶l7o}<R_50C/Ov
-!h9lSy([K`9b%u
-5h
-Nv5{cԉE}]yh}8tZ*VI}
-_M4ҾzYBs7^  ?zoγ?k/T
-ic7BA)H.ܑ¯`|p=TzY@Bqܖ?w?݉/RҭKG_py eY䨎!T%~NΖN!ݹۑf?>@c%C8EaH' \(@@NdH1rH"79E"3u~==ǺQnK? P[ i96s{N ۵sU7n@}®cpzNL@a-s!;m8zEz1eNϼٱg7h% X(iEH]{ӷEn?(#43}",v,jbx,ܙ߆@#pݿ
-W@#ƎP;/X2m߁pF,CC[ýِn!v\Mq[eBawCq⎫^Qύnw|:ܲ}: 9s;;uH*(ix S~̓Ʋ s3/Q>Ԛ2K7̞[|vp90<Lki;'m/v+-7P;;}'jTcٸG
-̂301Dﻑ&7kGܔ ֵw[;pטDNg.v[,8^%Z)8 svbg9q>.0PEIP*snH^hfH֙c`N)ټ>Gk(̵r.]lWLwgM=6ٛZi'u˲gsvUw%-M}[}ם&]s[̱e33N/LߒW i<~Iű61=Wz̚v
-̒H.uDz`jvi0x>q)"rc?f=KWP-ElW"clVtA~I{q9%74~ 7#o X
-ـkVcm
-J $\ &ljf߷晞.~IFwgܲ˞qxF:>'œq&#o6?H]δWBg_̱9}O?U~u\_"4C0>B;)|ϖǙ
- 5;
-4"cxWq3Nz*}deH5q3i uQ#z '857[|x_J,8}#dݫ0
-zIQ- ^ƍiO""uzc`5L?߅oc*qH*!J|l7%} Jua\|Cy uzވ͢1ʤBT—b-Lth#y|r0118VF&7PyxJ:0x5OY`P><x sOx_~:,yE
-BrQ<ql1;$/>{^EO錊~IuN.=`g߫; iiטA͌sM@3uFh-^}ګmq' 5nC)e`؏/NSSnä,dmr;7CMZ|X-Hޫ+q>0 `Zk-ܣ}w+vj,{y2Mivwmlc uZopŮF/ԡ<]rY~lF&jSNw@{MXݲ6שUSp4sW3٤ցyʝS-zr% ]OhN|!y`zFkU
-Yn/<!\xS/0#07XX lO^
-|%^,բ&f%4KRRZ-m!}S][tH/ zG;W^/krFAMS!B~M~K> <MrrҦ(}ze@(C寕Gg=ʹPW諡uxH9BhFkc뭭T+^\9s|1 wW7.go~/p]E)YYYYGH6-rwȃ#;#/E~y#pљѳE/~)zYTmѕ5 Q=jG/`oD>}>_Eߊ}hClVbľkbe dLE?~u7Cm-h[ԶMmmGO^lh۲p-DžX…:](E㋘OQX(,l_%lƄo
- ? LNf#>9<-7ɂsU+fC:#-ի\Ϡ"I)~4 z>$ˢ ~ |/;f>=R|_(*+(
-
- z?I_ (!WuI<B_[HWA!5Z[}+ x5WN=_[/yL
-pm_?z+[{Wk8 ߚ9ڠm?1  "pB?/>_{EWuC)h?1bP5'# g?_or`z
-YPB$C?S(D0^ib+P"R qy>_u=+{:WKW޾e+#>_;oeռm)<ZZZ0y~m-n&xޣ9s߈,9#g-^|If.zFxX:np0*B.ӣT >t6QGK81?ij ־h&>gN*RD
-m$ SKjՔ/\[ÀiROalpRBM@7uՈR(
-_)^BGV-\D)ࣱ?."|ᚉG7iGZZX?gԬ2r.DTuLx嶧UۅNx=ͿY$0ri#6rDVY(
-ly@4/Lm^0\Rw
-\PchX* 9%U;@[4
-(IC`
- ւ&_ bKsN6E<Ve:Օ2;f&_ABk *k&k
-醡%
-Z/t6qdUl0jR#4@I$vm 8 Ce1銩,dc3_YuRm&V[ WuPr`Rٰ~P?Un?E4uYdDt:FoCS蠡EATUB#᜞ZМf M2Isu'a:CwNzIh>lh9^?-fk2t)pK];DId5E;Jkصn%F5-/m#_qc([֫Zv #ibrHyOqAQt/i(6 mn
-cJF8z 9>ϹFJIvk3s=9>&o3i
-gB]6nu~v`RA1D &ނwfO:*"_ `D*"0eY?:-
-++zm60[;5_/%Q N!4CˡSi1ZۗiH"PdE ^3f)<sm4G(5tYN4גtyP2?N )FFlI8 q=`hd#SN0#>#BhV/!m,N}aL{g
-J$%&QRL.2@)B@L9LD@':Kd]8@˨5ӆ_ƩyU PJ0]+zo, oa:(*<Ri%MOz2n2$VYP\dhIZ\cRPşJq( tFz
-!a
-,=\B>"\(NrRS8|,~ R,aM,s@,R᪥MRW):k/G+/F0^aP4icI欁[X=6`4U%y<+ŚM2 ~NO8={:Έ%a5DP?x+)⬎CeK.%
-J#\
-J0 8.qEnj"&WcS]jsTԇYsu,6t*B)ՋbYQ:be`\S#ܴwd)lȅנڗd?X囋r{~]gQh~ ݚ:ĶSF}l9Rh
-U
-
-|q2W'(-T]ާvkCDAInʋ;7ijnIE3ɢ\UgKax:63,X&R&xȠm(L) ,rnwԜv[44LpcbEk*9<|f&dQ$?`Z@c
-!_2ijMؓT}ZIdT0Tu oлvլQKx^`J<CYTc"Ÿ́Z֛#OX@
-LP'?m9VP)AK]U=cRו8; |Bao#|$T
-#{ ;Tl`<mNfP$'l%`nMnR^&@J8<P=T%\e~NF;aWЖaWAb2r:X1Y80K#]JFxA-.I
-Ѫ&x@ :&]3*CGN=0F
-)
-.Vj岥jpz +q#
-4T ă^0ǥ:WN\9XG?TOy
-)k~BV=kF߶lyWsOإ=E7O1Gpr { OduГwM>Y:oWgxCGq-wb"=1??[vp{UCun—~5⌸iokn [m׷TgoU;[nm-eQ#wO5܎{d3BFlpVXkj<G_ۻ#қnuyKƽNҼ:NԺo7=dMv)gyn}V깭Muz.l[[;ޞv[枺^xoCN?V +i9T)^ yP}'ۻ1DGi7ШvRwU_ovx.lv7܇8\
-$`؜U;}-65ැmv[f CƊo0Dp<zU B~+Gz~w\!nu5,n}1^L_<up{C{tq=fЀɱ ԳFReCg ^a Eڲ'$ O+yhm5{pf/:S2w|mrĿP د{DٶxzGoVۤmM4% 7:BZU=жh> BxنDVvA-O&{Gpi;RWwx;ƨv7vitn6\
-L̡y7I ro j;, . %:_)(wW0k1ơjLjCO#@%G~ʫEy
-Od$k&q>^6c7hnfYY6'W*X@ iZ/c
-K8M`F̶ bug$LV&}unow/@q(,8G˘!N;F1E]zPZG důx#FW#E_=anbr0+8a3,
- =5L8f bUm7Q>&" R" L z>-nc5CtgHl%#@ O &zZQ a%ZY͂i& -*(&ńu&`8Izkut-#0Ǖ@
-gkpۗ^a$uQƗ,Il
-cJ)IWB4r,[WC6Nxx<@$6
-*n@/s&S(ᔏr4"kHm 0Grxbcۤmj`3YjT-)Y}^rB4/`ɭ&=zҁi8+A:>y^įG 8x+eYa6=[SʻRD!kȐR P[d]Vda
-Rͪ هGÈ pJl=.W&D,٤RdBHuIvvOV{u59ZsHL j!SimShL[OTbPY(o(R]KL%X۵ {aZ__Hrut/aD2GT~4 Ɨ9Z7*gaAC͑P/a+rwX=|[wƼy+_IU|kիWR*|->2DdJO 91prbpN =1xjbމv$iLDO:UĽ8[cVzb<s1L>34퓛MːbJ<8gvO81mb`
-1wci7ޗ&41p ޙ;1h?4h:>O<`m8ȠQKe-Q<Kk?p7P'__kDzqb
-Yɜ1|zyyDϧN|_zyuۧ> kDfCHz̖ūO̜b(<!)P:XPz~N5PGڨ5C\2>1yXjwSlr]{|;Nߝ|kc3_}f^zchЩ&{1`2U cijhROghw@';8V~6B{پ֨M
-E m._Ӥ{g'GzQa9J 'L|6ڇ^cf#3~ 
-`)|\
-ۤ,z:UOnJ`\`sPMߪZAǴuQ6aF+3-+j"z5Wڌh&]G#7향w߂[ Wpœb?|8ϧuչeJP^WL4WVbOJ.EݥI'D#v*Ɲi¯hHX`@<_t;?(VFtW¼ːwFȂ
-Bi?w{~Aa9 nQhO Rƛ4!pF&i8bϘhR"I陛v R`" F̠J\nz9<r)[5h`FBBS5rxq(<dGh-6hP|
-O+,̈́ X[u8WxvxDzm 5`C4If}O5`\aCwGϘR<J (!}ia{U02rG^SCN4V&v ^ikN+trzuڠ/A#J#1Wʇn #dz26+T<q;²no#ZMK!DyAtJpeQGN?Qy1ۯIqbE#zEw $uQ
-Ȯ@J(VUÌ$ޗ䞬S#FD!Nho^UeXtno0ms&#ahO_4^=g˩i7Èt{훑T<) 1k~?_yƗy[n~5E|?;;9_|^?O?U >?~)__v>|s>g?g>pO~;k|84Gso2F?O.|Dxr죏?B~|tι\s\p_ߌ^9.'ſw.s>9w~y_.]4*~_O?pGv[Hq
-XYcw^gT](Ot%Ŵ>K %UUQ9zO|~1 Łg?y|<+gdIL?H; dC秿$W<^?`dmR>hC !<uցJYpIZȆӠ$D G\`[Z
-DuWEt&%})/Nc]ϔ\qW8X2_2xH Fs{-ƚ!&9К-ǟ]$d -(D
-P1p0Ng]%чq\UIE;֝ }'j^$C鉪Ǘ _i.5{D H&qr ~/Kj^xVCV ˞ok}Y>,
-T rQzyg<FȥᬩIʕPTm& <Kߦkр`OխSn ymzuy31@BjsZ/oG=J`DJōvZJõI R
-!!PDE/)/N @`X
-NUb˻R)KJİiӗq=֝NUޮOǸ2/rf'&z$55=[/qQT8$ry@2Rz'ShεȤ)/}RGHnp
-h#1UL:L֏J(3&\*S[=ʖq]Sj
-_:yƯhpnpDEx0}<)} DH+aQN2XAZ2v7-c r@i ^3%m.z}E7H(;(Hio)LZXմυTHOcҷlNd.L,c~3'S4ƘwUCB94 DH!4 '5RO>Yι}t<ʬ\Ծ־tjbq}HԙTtءꚪu&(\=r@7hV;j}V[e@hAUhHP%cz8b ˪#2H>ΟhIm:TkcR.v%s1˃|nVSoPM!꺎U=uɷi3  =pYXC."K +3+6`Aj1+aW?EG
-/lg9Z/Kc.o2#?_%UZzXw$->PuݕQ`77Qrݤ;8ŀ`Lծ\=M7' 1ELݰd5qa-`m-
-IHJ_1nZڍ伤j`b ؅S6聝Ǎבu1ޘ69GuF&sg]8,FX:lgu!+iw5h4H_S> 82P4z9UA3g:mջ 9nwFi,Eax`ZH˄Yq%
-Nr B lJZlBMC g=z|g!
-^lGKFS 7+ʗ2S
-\/eڃ:CQ] ċZpE͋5q-Ρ!jչVpQ_-JሢSNb ˫*\+fT~.0VOہqrۮөc~RK!
-mbU\_]e@\HZ#?Aů8ceUK
-z*#wv1UB2\z Su_PFȅA+CrU}b>]+H땣t Jsu?vRebu㯨A /s=x)g!+|4] lu),GUS%CJLB{?9y\qd+[*Y_ʕ/܈8FRGg'PJU?ªHk
-<'W;^|[Pɘ="3MN6L$r$9ىBUĎiԠ8Iyl;j
-nϞR3yX^&q 4ZK*)Qsgr2!UZ-|l[`~느{Zovs5t .>*&Ud&7͠@ETErRڤ 5KM^@qoXf$nZLD=Wy'ձp}%@V+[)9r]!]]KI\OE)C%tx4e$=h$ L/h5``yfHGlҝ}^\@4]ޠbqA, "lm</>&XwHLP&l"nuyI\UF*Ҁ* Q2)6<XOL"NmsbAljĥO|ÑPb&O#%Px3,ڴeschVQP#`d{ÂY@GY©ݍq P闯i'YcI>/
-NM/+Fsq TR*(9]8
-5RػaZ|2-
-ʏ%Kz+}Ji֋׫}CAl #Rz^Ih0YB+Cb'$:& o4"mk6QACIN|"YgzXИć%=ϫghIkTmWyLHf+ju$$mY?Xr(i ^ai=5#{ӹƫLMOhK?i>_pfv{I/Gm[C=WXR CÁ3)O2i^uGf27Uk3j0H5oosScdz|&ZS#7|Ѫ/u%=g (n)}k%]Y+7Zw3˹ϊ˗ݲr*ߨyp`@Mwwe!Wzr=īs]4m`AKbH_q_qh䌿bD9^
-;#EmiSJU^ה%;JW4~;[L3N`[wG!'b[J~t@h1@<aNosA:"!$
-1etĝ02(mXx^ ?^ '
-Y6.)&N<YDM$'q۠Ai$@ A)zFxќ u|BÊPL17Dɬ\L(:
-f ;S%=ߍbbþ :F#{ei XGyQv֑!|'b͈{\Q ݶؕ
-Kj:?3CHߐi9/[@mLy ݊X.RMDfèdҟx}<BEJX5ecAB
-mAQ˩Gbpbk԰^*/fWM_/ͳvF3hPL_4pR_4gP}<jZo4^ppF׊UoE꿯e=?
-}nq(;i%ߐ RzA )gk]2 ~E<aCH)dD&n YsnK=-H AqTRٳIf&0thRd™i?c(G/Ь<YtS^Uɪ7LTzFTKcUIJGN$wSo2
-
-lBAE,\ $o}V+[20\2&,֔2tnL{kR=B%l |$6r;T}TzA
-_:<'n2\74#I
-6B9x]F9q%W7D4i57BVC`AL.\L$ 8ZPé".lfqWTr }ɤQAT+lD*[
-tRkN61D1YG%{f <@Fh{"ett5aܜLK65Q02tx!+9iɦ^(Rd5Jn+|[]ޗ׭\ܶ0;\qAzRN"LAq'n
-$Lc1e',V-fHA~_BVkLa#019ᖪ(m{]- #8QUL:6vLuzō4
-&Et"RQR@J%`)2 =.l o"-)mP
-e SyT#i}qMn↕@m˃|SRx C܇-Y^4uq(wօ1gֳYɦJ!ѝӴlJQŔMzRd+O5A0s@ѹp,NUȂbpFs2^<'|]r^pzk[~&/.$&VYDI*\OƁ&P-TPMbm 6Ơigrf#nZEmZ @SMB=I .4T\ ˞Fn!YU/ǷzjK`|~ִ eÝBs+g@3ZBAN4 _QP-|jK?Jy# %ǫʪ?1е
-w^VRBf$l>^WU{RnNS
-aQ7#=ώ[
-{r(|Ҵӣw~nVTuUޢ_ykhE#Z4֢(E}"teՊU7_;:^Gh@]8矾2r6p!o_} od7;>㟑0;{NTpK[N~a;F箌M&l݀`A'?v1G*Q Z!;^y
-$\%/9.nJs g
-kUOi[̀"fDI`0/
- :wZ}[c( Y3$V{ϥ̕hǯŞ 1"$௵!Gg@b%<ķOs)'#1B&/h lHgmhpchNgJhj]R\cG{5V4L"dv"iQ3!n Q"vDg?}~fNF=W@ތ 4[A<FXQsC૳̤/Ab9:X Y!u g!y;\屐V$aeߴcG]؞:͒#f;>퉑}g_A{q:*` 4B #ŐК
-[>4 8#ifb4x$f
-Kߎi$W!OMl{LPƸƊ! VDj[D
-06 pRk#9voH+9bYILaQxeӎ%-`d1mۜ2l:h#fjBlWJ|2-3es Ba3.W.6\7xUՄi,cҋd:#fY
- y"ɻDʈ ܋1]E,,diR"b}2T,&ѮNښaM:(. [E1յQpY{`~
-dOE4 THB&' )}mr۷<
-zE8v+qNL|%"^. nu~{}Wu*X3 Л@6>pUdy<A";Xv=E 1aQadZS_o+ei ;܊>஧Uvb`;9ro[5%h乆mQWdc*4#kg+ r_ow~sgh!-:%p<T(1DŇ"QkiQk*
-
-5R58\A98,|n"]7*b X%2BW$L+b]Ԏ]աD2~$>1>wbp~s+/!A IxcSND@vPJnX,M$AhXV
-
-ЪbɪY 6iF"7R,Ǫ@iњοg\ brr$ "Y.kBqQ/^qOom$ IpA)jmɕ7Esʷ]xY=t s(p =lh.q@Z&mT)+KjuG]bU֪c#fYe
-SĮs<#[f (FKRSaoޭpؠ˗\r   1ʲe3
-\
-M2،PmCrm 3I,Zp+D4}#((lS; G6--
-F )=*Tе(>g\p/Cцztʨ-uM*A.SjY<*\- fm4,+
- Bڇ
-% @پ<Xj: YΒE<}_5Wج (<TErʉOvVP'0Q0}rxAHAbxxД _-1R%X˚=4)څRtICuBT}'TM}η[;٦^Wma#jAU$R9GWzB|ᕏ .B(Gywݼ4Y
-.Bh*mO' _%h'P"|3 p7mimyMVd=xX~Wf"5e0uVpF_my-7IeKQF{`Qu6xo!2ҿ+$F&`OW\m {=t0=UKwnHy [|聰eUVaw C<&v^d=mưxw)G*uMY6u&mIY^OUB+zd̽*d؜'ĭXZ2ԡc٭h#)&6bE%-փah2Cy6y0ol֛؉u3'>-@mMZ;@v0Xwٝx)e7WdH>Z"gw
-i-T7.Xa@6?]w
-'u{h
-1d]IW[i{Y3u *эh4DZs/19m$4;q̈cƫ B_@?!<2
-Aβv*d p\*Yae&`|qY
-TelWtQMAA-E{Ü( <4uR( bs'nžkȘvb(mDV f_I)C.5SmPdv9ECsvifa 1x a&)|^!4JY)`/5ZkᕪQω%3PkSQ-_)㒳cTEUqs->RgV~4Y"/kf Z`:F=>b-d:>H%>n-ɹkq8NdqCe*u֋QEEx\vm=d* Hj'ZyO%0V/q4H%Ebb$%Q&,I( Ndť+*/M9Zch\5ko\^l%9rِ'xsX(k59m"9SwL
-q. M# :5(K璅B>+"J:xbAbKj7q#`! 3:C nl*B'}:Wj7za+^D-Ko:XA$1!;lt/[EJa06҅>yB|]pcD0
-:[: Jw+4 }Pu|^+PV=r?gg*֩-fLx8tW#=9:g4'vA6Kho{џ1N{ise‹nnti ˡ4 \7`z&sO{x#D&2w[2v |"4QtUFGu{'>,⳴?.κAtZg{4ѥ7uTkw7,3<$֥!6ZC5}rq TsNt#۝˾c^[
-;<ilPAqY 作4'OJН/k{x#Y9~lq~x#G^H}n^2gÁ`~̖Z_ 4xjNphOIJ4"qw-ľάBv#}+-
-fH>&⎨iM?ّB뀀t=%݉VQx: Ej8QQX UUAW^n[%;s^z_03ՉaZ"OYPMO}CDZJ;<װmzvj
-N>v0HmΟћCD}'m]|]m; ^n QPM{k A.{h}|3|oZfnvQRZj79U{77^[VJߊUП[{o̜}rꕷ' 2
-'7!dnl^yci4| >e'hמgǘG54Ց'>;}SOnze=Si'&wlL>4y9ƒo3GC5)5Q칙'JLojWGߛ<52=ertdС_|yљOl|°'w0qSON>cɽ&mys3 \gUNm{f&)ON}IW8=ԫ豫ۦGwc L2IK<H 1DN1<;}vt!N36SO6>jtghIr^?5yj'~Zb(Q.UH,l #{ 3{RS[7N<L\E 7#bמ=3DnuxzES~`&ڵ/[M~zzeCO̜&';i~~koOo>BлZyw }WG<yLd^x
-^9szrMO=&_NT?Zn~Œ<3x꩗&IZE I1[gwF9&koUwާyӯO?9DLIN,YF[ڷVi,cƗn mFwzKnv89@7JyFb~1а6صG^sRlBVʞ%Su y5C"N(<HV`TSz޼co_=ߟ;{MhMS .Ǘ`X4TEi:4髣oawL=7V҉klL[U~gz1M)~aB1F]xoҔpn
-#\0MS9eHLݝ(HdU/jZ/___Wİ:H@c|V//TPUIWzB6a&/KbDr[c1=:28/+_b|GWS
-1_RJ㾰9n7_â"^!E*WDF|1t
-r[}Cj%/7E9xr5WB\2b։G=#iǕN.9BU}><U x]H[9m$e[ۛko[%>{ oWhيH1c'dO sDlEv㯨с/Mr'敂_1\hhߌc^ RsE  2XwSqO5!#ݜIK+!,ކωIڐHYD7 pz_/*Y\o
- 9P[r~sd$?,&*Xui&"-+e7*4;Qȵ
-!"BAm/S5˽TGpN İz /Vn.x ,i0lg\,/=ACsXG6oL3E)߾x-T
-fA9lR1&l)J?f@Fcm̓*"xj+F{z(4c]}'2Ubcoϸg J(F*4D#pɻ
-&mmn,NxEG% f$ T|ޖm- o[Ҷ%{k0kv6{C3
-pn=[{RhӋu,.jM32a W|ޓr\Lxɢ&iOhHZ$L]v{ȲH@֢P.@)TIJ-k'y~5[ /yswbm˱[R e*2Vzf'4 o-?u3;bM|#1aq_'v$B$5xlq[[v$/L4yn5VKN֮{q/Ƭ+ 2
-dWs51+?P=oS]M
-Z a;ٟy7꼵"?{WUEe/{+(=8jjϥW\
-z+Yb_l$G-S:jUONW+! Q:yZcڝduD.˛0"*Ӕ/.|eS37 -0^q-b!G^1y`ކ<y*@4FDf:)uF\GV86D—]bHơ5xPwT
-P+ZKߵK voϪ@_p;Rb|~9Bݟ*F%P9sA ńeV˰ B _GdV&);1X"kfXvGCo&Ѷ%#2Aʎ4._-{UHbȁc lZBTii)
- Û_|<Qw:.:v{P'w!iQKrnDv
-<-CUpXݲھB9: 6-?D+3.{[vtMiJ%vF5-n .4nFqltwe[#@lGnS/z-a<QVzAbFt` B]A$6Fc@ 0 }=!Ҥn'St:0҉璢^_0!824ѩ6U"nϏ+uf?q,twHVPM| >E5g^k0VRV>`_J={Usk.3#w@{IeRIq
-a°PB܈Ki昫V]$-i[O-V.ٛHBL! bC,q0Iؤ(EZ(^Jt-FiGlȆ6MǨ88y@N6;pHJ~SA8ܾcI`)K&וrwȥ},QM殴B)]B
-&y=/HS4(_s;²*4O7ɇčmk (͹m\QgiNS͗HU
-,4$ri~qԦhGJ# zi04{eX%gpH8F\+_@ݵEрD+=0ZXlqb ,mXi:"7D֨zǼu S
-3ړE Xm <ti]Pyk[1]*bXbOF] s:>rVVtާ@i.m4٩2;a NlYݵoNoaܐATVGB'Z6
-ҵʤT2d&0wجE˧R4Fȹyk-U^O#c <"“h[8wEyRi2lK
-BZt5YN8qˊ ۭzjoI.n lZZ3 :Es(;.xWv<R:įGV pVmanpَ ިi^S8"h} W*hyKzG(m\MӘyƴ~,FUw @t0KJɲ},ڵ:1Hِ D\#q'F>vv1WXuƓvXԭ!Thβϥ]RBCbwC^9u#~#_7~ݲ|A
-QE >(`զVۭĤlBZ0Ut 6}!ޜ7ŪC<~<<-n^3/^Pm "J`דCz-w3u"\ |=A
-ML}qX/dzY"vtL*j;$2v
-V[9,no{A2qw0}ߣ^H +FEB0E0_<_QI4@uŊM}%9r  ߷h߸_Zu*w
-ާNq2#dz
-W 7))Sh~<<; R6/F"ŋ~M͒6JN2Y]e@?ٺU%Q^4.ʷ} ȪrL`N^m?nۚuz4Ǿ|9 Wenq6IeQCes.[s\w4
-يyH- KxTjbyNvz3ydS .JY62_nAE]+3a
-f -Q6ÏJRZ C6$HƔurU؂?(ri\
-!
-gNo+{?*Jz.rUUZ> >n#Ԩq;v⤿~QPy\泥<w2RԿߕ5|hd
-Ӑp&WCv! Eas $j髻;~Xz4rkdb*_Fug E,C5xQLyZLʸ:hi\yqPƶ~L{3 'FSC3Ҁ=$(f@"lu<Q HսJd*:I$&08z7ց#Aa
-^*se`B B#wS9€C6 BBuq&T:ۑYTzy.G8; "u3[U0vVݢ (FJ[;DXd ˊF~U<B⁺{]RWBNDŢJMWbQ fqm%Vwj[e>&&3Eϙzq^61.P ؞r+7eBIe t>d7"{T
-X=IA4 9iB/կ!hIJQ?õ52ΰ6Kԫ TH`I Nj͞! qDR Y`B_((KCr[A@F_fvYGȫ%E,nVqKJ{@
-
-8\_<w&Q%񔚇S{ę0Y#DJ~TРV<F4z!Az!qi/_1/0v0FC)C9b%DZ~pE[$6lOrHdBax"iq rVJK_CB 9tæsl$bv-NajweEd,YR12g7eCr吜Bu [Ch<PR>W-GaTSIKQ]FD:cEc񎂺JhUʐ!bu]>=_dɔ=$̎'VC4uP c| ]@("RnLz :L% g-å栮Q':{e=V3=;; FA-n9v]{"G]WDdOV$ \HT|u"ֵs9Qc_o?}߫q˗/]Z򿗮W~' {Dy57Km`)VUp|n#E>$<ry9@!LjNi,r(zڰE]+|J!'kGd
-4@YM
-5J2@TXj =/-QsYdBl nWÉq[
-d8|
-Ns཯^hDٳԄI?nTf6 n LR$FѩC-U|O#+K))ƹz(ȐRl}$jK?h%3-P̂=8EZj ^IԮl qiNgDQLa.~P"rG6h^ejO5eq5`CTwWgH (f%3L8ɯ~udqmjq ,rRYHC)msզ8W|Te5'#ٌ^I ;{d$[&o谴g$ n;N2ahr`2J>(.,2Ղ0p|)!l# >$LתI_i@ uUk_pq R*|vj?!%sХ!̗YlHz䐓uVLpyw=IYBG[,|` Ut:A\e]flu{8TE\u iGw!Rh=^pץh D?_[bwbW9p>LxHOd=C 7;M++ r^jVo Eyp,MC4 v:,JJeGڬt/+gU ?(WNꥆ_N-`FUbjN 'yᥰPc Irf߶փ]3,ZQ%Z͚)x-+5\Kwp;CΕ- #<hQMN+WJz˗e7p/% kۈjş+I:͚^F.>o孷I.NNٯ1 )nE½Vet<,%I7CEB19u27ß\nWbmr\YgKX9B(plD1, qep5irڪu29LwP}=\QJvUhP<;Fc!o# O9>:h:
-ȐRYÓb*=Z->7kڝв|^v~coc:#'
-ocFwo4yB<
->ˋfho"9Z^gyĈHvHaĜ~vHW fቸH2AJ9O>^5$w|'Ci(&]LNC$ԉٻ0ࠖΫ^H2_~LQ>p#!0˰V(
-Ф~64+]c1R˰UgI KBvTLZ_
-,(N@EޏPT$:#&tw}ɳ֋ ~kg: keY]oҫyD+RCR[7c!VCbIR#1"ѵ^FkC e˯1
-.BH)|Y_Sy|=5vt
-89^FU3"jE2(eV]bVni]H+Z(:`ꚑFϙT9|G\G`ZcifdșTC`[h}aiP<W,4iUJߣO@y V?ԉ[:ȍSO ؖyGB?{sjLtEdAX:k<" 9xE
-W\TN ERWrد#FP!s5NmTnsn+">N6Iօ
-9v,Ea9oVD);gcٖ`sj1xM3R,7O-r$˸Qλ9l "ϣs!T\Bw#ELg;p*:,PuO@vaz8AuxLL?Ɍn^[B*Ҭ( YCB81
-*B?*:VZeEMf2[_g%/=b-+W^%e7}Een o''L?6D+q' |W<0''L ;1&NL <:_NmG|t&eU,m_GJn'_?18ȣ>71C>133?@N>yD,p<&N|/N l{9$3&zi'=0o̻<O?3}bߵݏу7MoB?0|bC[N_8810ċy}ޥo1Y=l>ޣoM >!bfz8F0a`S3w&7g^*kB"<p3[1ߙ̻*z0>/SSo/L>ib4C 31wb pӠ<0ub G-|`` nFP n|}YtPʼnЉXU adoD,Gм LXupC&,]JSϟ\M7
-|pQN-?fGd~ 0]@zyDϧN|_]3Y>L>akŝBc_~b@AOnӒɃ$M?Zf5(?C&>1yXjwSl]{|;ߝ|kc3un}f^zcJiЩ&{1t#4aE>4}xBL_ mA .&hkSײ jƽ)(M
-`:~DR$5r.{y;sxq)[!VMoi|zYݞ$b`zhR#7g_H('UR)շ}abq"%:QLo{oqvwIǘ2y?!_<e(Ey w>ymHx';B)1̇XK>u7cKzϱuV#]?
-$B'ٶ_|Xu1VzrCƒo[lg"X uW-p` ̼sKmmeg 63X7o5
-Js3!l
- @gdb+/PfWM@6Xibk
-R/{bYԅ8EZ\-s XÀLnye͓O=$?7B/;Ù5N]M2bɊT AӢrx vGneuP}~kOrf]wtG1va7NW1g}'>
-ʽmAEG2_?ȱ]<kq*d7;9vQ_2vHBATaԄ)(R9M=jEU
-ZƢcUt Ԧ`cD{Nbc Ržz$:qHrSStnNz nZ}ꃁQёtA&(N3NB35+.;Hkg[ԣ[D57'd#6SvmS`c}jFul8yHpMڴ
-J3D{NܒjTh,櫲0*րrbQa uruaDUh/+Z#<4iFXWW~
-3;gz=z~j}Kꙥ`P\Y}\c6n(n/@zKܾx}~=VYB
-3Kiđ˛ cw2\ΥХS6ǀ‹4SG0\~"F. g8S7pEK*34xGf 
-/wh`zCĉh˛i!^!h@헷2F4
-c$_/O#Z!F`RDZ 3qveE;sjyZ% *N԰zXkGiB{oȨ,5A]60L BowBnt !|.րk֨*}y
-!BX hd?f@8D{gUv,ssFI)!mx!F<p1*Sfe&yk}旹sOa³x({Y &l
-'7adnl^yci4
-H>!ӻM~ y=Ɯo1B0{u |noa-O_}oёC~}}3Gg>> cB?>ㅉ&zr6N6yh̛iPa<su hj{E47s^&8??ɩ6^Gzu=vut;m\30$#22$=(EJap:+~"_P-djl2VJVp@G<z%OT8cLĖ"H#rf<5M)|Hk f~uғS[7N<L"3 4o={fɷDXvd|72=gԑh'+-m|eӣ/~R2g'2 HN$BNPX9z!$eT;P@)%SR(
-<;w޺k3iDƗoεp'|lrۖGzb͊G}fKÝTьjI\sM}A@4aC _EuXH3gŠ փS/Ϝ9 l=9֦=z9h@1 za2;TTɰ {yNxhSaPII'tǷ;CCd4y6ՋA W߂mgMCC9@x(rHֶ]5s-Qwhg&O1vXomNxjBck/o$fzgL͵G}6n$,q\ ցQyJ#a:2s04D艍ȩ-8L՘x[Y3v&
-d'޾z響KVIhO4:1<%\yj;{࿉« nśɧO_} s`!H'&ϼp}$\݌`
-  x1ic^־d͓`n`F^Şg~`m*;{5Z.'#-l[4=8HbY8so :paew7Scn6*Mްxx:4ۯLʦg˩~3xLs":<J׆ߠK_ToA?Zvի9WMQu2灲K⇁[(S?Y~r
-?&S>s5o[] {s"眜aâ99">\zrr˭n#x{G<sFSU:- 08;8[ RɍmLX@7 2 x1 X<+.*o8so)&5,`<F1#:HDUrL1Fm$_khV7C,gT |ZXRFch7K3
-wlW#g_B^o9I$B˛q(VF7e8^vWwwC'OpCZ F5y])A-VdD2$J2hFe Yk[I@4iGXMET2b[5wYdU|<^r85
-$1_ADyP/a7A^6 ߑsdZ2όz)v>}\a9@?QVi7* |o务O2@ !:bN/2̴:X# Go2Xc5V$izf!"۹j4-V.(ьAZ{\'I LXZapn'3/_ ah4̿anљEC`Hu$J\&95~'67T
-Cm#AukUs}
-QCZd2(G6m WH+L&(Ό?ޕYbt/Z ,_ `"<*͑c%ZIe
-Rk"3Gҳ<'}P`r0lse4c.c5b:`vM'5J"b6ÀcLe\<7+9*7Zw0F/3,V\/>G (o9kQRWAs 5mm]qpe"`,1O@+ IUh>އdlx5sMa4{ƐȘ@1K;أsRMJ 6V1Hn I`radKWS3 jG$'bDs
-;l`Ez*"(~ȅi?U{f]}<1+{?+6vq 5%%6m 6AGj)2GYXq<vв)+$HN[||'m6o6B{74lbEc[
-mD!{\ݯ4]mT>E`1V" 4yԬVG$+@52OfFNC@ֲH64"4{fP"@yƒYx!8앸 kO,i(of7~=Q]3@dSnU k,~+ن\q{_իoYr9,]q._W8˾fJ9>y+#9yӛ%
-+=ns4+mUuy+GmiekDgq-^q= ˰3[A[Ϩչxwȋtڈ X
-a*u. F,i
->4'@5K'}E#URK
-lTŋ*b̌I'n;
-$DzZuNB , p꼣ͣyj縰n -[is*_DObLC ijA= %($c&_$dW.Zub ğVH /"U4d8ɚIy*\-1ozGt,Y FRB԰?Y!MbXVR`(tn/ma6F(yIu3EW.TL2C% Fh=,x+YX4Z4&}7WlrZ3"9RBY/aIf[5 k3weHdŐ~0n0֋iٌ֘Vk =)mOR
-ZR$
-@wA8,,ix'/3K bbr/"O
-MZ^ ZИ :ߖr[,uQ-v5C4%3hʊHY_"(Ά 1=/.jHK_R?o!]Qs1i-\%<m^H˭@c1gRI,AxXu6'eZKދcxBzє,flIx@HYػ'qҪ4AX[~%$׫eI G
-âXB$^'qOv Έ5ä9Hhנ dT_^/Hfi^iBeqڪ~!ߊEmoiV><C"~WX#!U!WR=Ëi-y/#WJ]K9XWj(eW,[oU7JZ{?Aݠܻnh-tleDlWZ~-˗a?_>Cog7Hײ[,_fM5kW[xJ APbsz[;:+4[ZptWuj or\CvWbwnx!SB :
-du,$[304_
-L#OÙai#WZ U$rg4i^<]
-*[:<xW<r+*YyI$~0K64aQN1aA
-D[jEǕbVkr1Xr+8jnu+T '[eX b\"ogx%OG7E^>)G6RD&y7&1RMZ.d3gYS3,Wp|A.Az.ZV9~\ 4YZGu>׏ZG
-q=Htqa10]Xofoi$eHNysy=?qJ=nfYtpvbXEA(Xi LM?@@=`3hDӿ9@/$^oz{,lZ@QܬAkso\!< lŗzmcF+`arcKVg>msΟ+n6Y_j~4fiuKob*n|Nu:"l:,#.^A]3OpQA¥?%(ZZգ*Jb j"Us2%O[֬P qS8AU$/KCSכh
-y4R-5AK>NY.&`hwZ)x^1۸+:iD%'!)xW ͂džCR&ќWU[Y{Qsz5{s
-sjimmuE1M?w3 VBJ S,*7@[3Ӟ LggUmR}>hoomu|4q؜Jv$;r*Հlq>@EJq_'OqfH UlvQg٬!~IG͍!ZbZ *A,%ay
-*% V v̞ϻ6PЎ oq-?yOo2_‚k`7STMd_Qk7J5DbA ETݟ6?6-]gjlLI_)D)ӱu:Xi;l1qՇJmZTMW$:\P@*# 5.#x1 $2eoJex΁B"a>ڄoe@]KM^ISv}/m~rw_CFytœqAT#Dx(:"˒*ZueX !p;"PkkbL􈸜A cGȫ^gP i'Fi٬V̗gx &2%
-D2Jը3IiYejS2=c}7Olh2xm<xbՆ}A,Ȑw
-y:DN 0\@-\慷;_YFF(;%1\(1&dr(aZ/LhI pHkr @NU=.m՚I8fr1g;ۈޟe
-V9 F'a}b;Z<NVD+qC<y(hn}bZL"a<Wx H9,C$o:﹈8hXSg:}l,#0>-g {
-Y>⼦ "hяjN p!}??C2GX iIXٛܣI g\d)A5;eN4fScY(-J.p<hZqNljkWj+(?kN1:N- 0mY<lЏ"x^ J2G>Wb+OP*q>NpTTsT,zQD[%ñkqSz?֨ߛ޿wqeph}_D!p]t0i{Lq4TjK*E%yϾ[puLU[>g?h3'cx/<*خ"ǍG_vqS_,kjˍMG?Zđ!ZV(zM<xN
-FCMԜxFlYDmleS6AC,y1ÝiCe,MUnlW +
-e M&.k1;Qc;WiX1.b '8V
-*|X{~$
-
-8xI˪7Ӌ$Gy2jB22&dΦ{c$d#4UYe
-0|Gyht
-;M Cp{ٰGܩ-<RY.1n{ЄmVZ2J62UVnn\$j<~)9N%Pe]Tudf8ۈcN
-ƺ{ψ7'}jD/b'Ac10
-8HX AKU*s6%jB:<pd w ewP,
-^%!Ws:{-ɏĉ ᎄTİ
-ĚzTb
-InELҕ`L&f"}7Ejb\H:[NgҢ3D/~pVR*|U4Jy$߫/[>~cؤ.g-?d'ɹ͑OSxXm\%75$+ Fv c@17JQ+k%+1HB
-&htFYgtϳZ7;t0aq5gpu ľs̹.* @9HGԓUG8|V_a:T${#zP$eL_&}6%`D/ '1e.K+z]f63BfF5?7$-:u{E5mruq3^7eRNeav9c+M$`959s
-b^mD%Dk<;8Ci|ϝ^Q^#?*o[[A6P|&ڙXIG&-a?%Qts[IW*: |QP%?agscNހb) =Vpr"MloT֕4 ]7w?z./dRÓq[ ^q246
-r(iW*)3p"`FsoE)E(
-
-',`G3pRO3ΑtLi.SYts$dve9 72LCxh9=CL5yRV8
-LLW
-q߃ph_;ʴI (J[b~6AU42r?QMܒ;.8T(n1Z$K`+A^7*~k_cUYq9t@N*xkO҂y⌬Bj/n/9 lK~T؋k{;0
-+B 9ZU'gt\Ln]z]/ e(y@'W 7/e?{|/۰v/_<!kGE>5v+,&fXeet]78ҏF#բ<π̜k;+%t
-ɖgm|u[RiRP5ty^Sc
-Q/5MJNC}I5㭂|NUC-y' <j< FGImgb=rSFZZ~> @Wu_@;wD5J)^ǔ^,:?;;<9>T^X̢֬Ǫ GsN DU,LXqNۣ|{Woo"@8(\.ڍ>~>_A
-/iT􌨩F2LG詒XwlESdH)~,%ªWь(4Nɔҕ/ZǩsDI
--ufC65Zȿq@pSze&پὓ`ʸT:_>/Φ:0g*uL|EpHۀ+PmGm:˷bn?oW-vII` AjgW$+0QbHgS|~ጼ!Qf$eb=bfWeZf 2!p"i8Qt߰Q+ӄlø48%OG`ѠifI +E"?!)ѦT|R'B.=@;LjҺlpv Fb2Uq/\nN4/~ErTԀ~,umϹ3w3ȆT5F[na
-y8/^EEǸ k[^LX99ql1tI_<`qVC,&k9'ۏpq?8 _\Y\";DKBbDw+dZ=
-eR nCOpT[FW,\<#c:D
-뾅O0Ny$_ DWink?^Uh}5MTL]6P&I߽x2$)c} V:NqtVHD Y48+ߥ{-1IF_jG:.tXn"]_;O1h$ F)YN#(trP.~6ӧPԍ*S/U{/T.HdG^ѸȻ 6GL7(z9T~Pm@Dаvio&oSP%M@$$ӹ*Qxp D9ě
-oO| iP PJE% ^V0ǜ\!5VPI5V@ MfdL)ݺ@3 0~8 }^8Ncy
-(X/Oͬ\4v7e
-9") ЭdWIBkrwOr ,om,;Umn-U/Ͼq(w2:FīC"
-{.'heO^*xn()&9V1Gqns28JCpb4|>kEKhqP(]$L$%ۋ,TA?'=:zD*k%Uu]u.̩ZIWwH\H/)!<RR l0D-yNdr v1Ńpo4?Ҳu{Q \Ut< bz;ۊ^yZ=qa-gvN|ZMLx)QE<m6J9o4:㟹<QH
-t>C蚄]
-;S^w"Ϟcu2l`?Q2=T-[0jN9 蠟(s`s8OxIgO\n3U"1.ӗXes$n
-+[wA֍4*g;Pa6)VT[b)IJg߿<9`vrg"{ͅ4
-' g g=&䯪CډыY|ѼN+} yDN4Np &m: %fd%D?ZQU^82~}[_~I_~Wr/}_}m?bExOʡGGNw՟=zmWr}2ɢ fx^b*(vMn(SSh$ 8\~و&|y_M-΄
-
-iyw7
-qIyQB|q
-[Zޟ4a|uTv:R>tբ4ѭϛ{7a6٩{_0/"c?~89:Glwq|~x tiT$Æ3jm71_R*6p|8k8S! oF??tɋ K:t }zi0o+~oV*
-ŝk~i N \e|
-*aզdR:9T,2q43B|ߺNV,)응lD<iyz<SX˾L8>cc0G4urkȦ Yjoxو6HS|O?
-佡Q$q1A}p/lx+_jy1R\PVZ0)vE'egVjV,#WTi<ިQeՀ|Eﯥ_щ译.m+eIp/78Ͻl4%->ǭ7EdXXΥ[bIoNaZ>oIeFoxG+'EwZG{V Vl8)0-3!G~*@
-2$</ג>V\b$} ǖZH4 049mew
-l)^;kG%''߾6hrss_Ԇqvy]&숞)kX{I2fE4I=̲!Hm'4D4[ žqawo`Ur[>NcvVE8F+\- Wr\߳;Cq
-ԱHk(,%tb+7%"mcfsM jGCoV9xU铟h4}'77hJlQnHGT}OIFG*o7:HaQVR4̉v:;98퐅z9atm9e+ {^4:r(s5 WCV&RnXL:Se8] ͽޓѫx  Κv;"ה['юD15uEZNqK(EWw {{2]֪?_NήM8̇M$ YO W foL䗦-<uj|7KlOS {5X%`N8IGu/=b/bkZlpBrk{je`H4Q,eXO0"ZF'Є3Vb*h7E+h^\i`[
-dDu{frB`6DXŢc[({)]t3[hgb&rbFNGF~oLlOuDJm㙟yLq !\pi'ӌ,dF6YI?'.GȽEF , yiV.
-o'#@av9 z U0r?bI30(2P) obh@+,V:UYQ|=f-Pu4.pe'o\Nt<Xa#lPZ%WbO|k.Oj8F{ū[ߪm]1* ﻷ}EyݾG?hi;78/r?cSrXʆ<><Z` U/3^mS*x%+;DuAqQ3*-<M($p:um8'hwv)E`mOC"ɸRk&0CI]3PJ@{숎
-E5ҋGAH>ջQH6(l'j<dE7 005}][8Q uJ9rdj]\2L~.P]Ȃ5d$?cb4d^%$,3„w!(QJdsUEubFo;ؓ~)oxPT}V9E4:i+2LN) â=cFkJ2ެ/4Sc :9(S'\D붟0ߩ/ShjФg2 S^䚛g
-*)#4nok.Rw&HaWv~{Ÿv6.E#9?QOCGow4el>8z IKDܹ;}6(]vYT}=v4fn~%ٲ -4W}P;w삒!4`6
-%<8)׋p\Z}'j2O`28iplV1QNk1$W&T FRp /Yv$t4+Myid7oqbԅ(nf<wxIW' +NC6]ȀeS>u_}o9MAGDB3Ǵ #n{6Mv&@)6w>NR()kPwŌeُQ~;B( rD>msn)*%*rb4 ACˆ󆣈nd ?-Ԛ$6hUaiDf Zqbvmzc-|Ύ31Xk㑧 ucj~ 1XHfMu!o[^dQ}dMc܌zgSzy8GUx! HƎaV8Pl
-[\C "*.r]Hƒ$K}C L,cls1rv3.P*E^pq/WsD ږm*n'>ag䨈7:Uv)!QbfNHŮ8EFǍw{) p {)~')#qw2]0~,~A{㽻S#LU?%ǯә$#rˊn+;KS9l7
-D)q|!Ɣҏ]F-g>f'٦MoDƗÜጕ} mrz& veuj#\;mJߦ^XW3ŒO~>R5SЉ苇]d.\Nr#ֈ'0#[YH,Փ KS%d)¦7wy?M1b8A7\QFUgec@ hؑ>17|nDodn"mT%Q
-hyڢR@tԽ& apoNN`.dGs 3YYr&_Fkk;V zcͣޑ--߽7_{Pu[./83Za=Iɩ|F!T W[GJ9Xõ@Ǣ$,.$޹2`ʑu?jN
-篨AIKCm oYHcBgC8Rv7 lt6cWj;*!`:vH~!+`t6
-ߊ&gTs\(iI!(V~j<#ynEt0:8
-z_[mnW=Ve!<f'B🻖 42@?vU|[Õiӂ!m" o7oŇ>'O^yTgS$ΰIFgߐ$Or:* WФOdL9#Ts?Z-X< =ph8 %'R'Rܿ
-m:C 3T7imY. nq./X?a|}t;
-Z9)^ ``ն鷊V $oذ t j)N*HMw[;aӅ%ؘs^j<VgFʧȔI'+B{k݊NcZd!Kgp[]@">T7SDsI‹%Qv0_m FIKS2b:isoQk/5p . qyٰoU|I/:L,Jo1xKZ.Qehv
-o0t<PsSTF-qk{
-.e8,xO?<ɼ W:$c3 3Vegx`ly$
-. !y7(iK*zDH!_ګI34f^ ѻB+v,dc<4&:d-o ӦIq(0wl6;2&*}GLk<iomQYkD,cɥ@-]vF1^ͳM6DB5T\ϼVq_$d&щMRb*r [JPzaž߹D  @]N'x\A+ ÃQIs/=BIc90`:C\0;`p0w ^Z pggy> ࿝b^tOp:y6>fD?G_|S|lCٴ2TvG;
-\3L=62_x
-jvS2J𸖓XdӇӤ,d"Ni]# jaz(qC,ϬZtjkȠjToEȐ{ \ΣpDRY@*&O(ƺ+q±>'EEHBQ*k\!~|åj0-F'<}Z;26bNAD4dY9gJ4bV1G|9Mj&am~'{M'cw(Vwŀx|dx1/d`٥z^f6L _f㢖_1Jr"gϨRA{7:y\hd$W[ڪ0f$7XoLq~ 辆ίF}~)IY扎ml3vjlÓW'/'.M]V^tvi*.(yb<[K֢wݦih3f5㣜[o) N(Di KS8/_xy}vx4wߢJ%^XPjG|7w'/Nade,9Bs?1oPtJx]#J!1 x ^P5lotH_΍M 2adO$9-[f&ۡv%m10 vgưhK7|)Mbڑr0ugSHC,R|eb SM J,Ɗfc. Ʉazpa:M5'b'C{vyq8;OzgbS!koY+[Oz+|\SlWt|~~ $OhQ}<mxFG-r>fdDᗦ3(*MD5
-Ryirw.Lb+@`hn6j$׈{o[h_-XoJ& d튑7 \F>><~SΟ&0}KN( K DE$!Np;:<yov
-Nj‹Gǧ&^? a~%"h_Ѹ[ h qIgÇ%7lB)Z[4A xX')륛QE@$@mӿuσ}g
-N 4ц\*TtڗV5hA f[h_Tt\LZ딈!f=~t`FNሸVQ}QRܘϠ~3ڞ)GKP ~]es+屶]d| uL7kpJ|\EVP.m˧
-#;ګeH[fpS=uO5%L;ڟL?EF P|Yr/\|./)LM
-
-t3R |T'h%C%$y-ϚL4Q٘tyє<9ɡ HNa{Nz?_kfݏ֣os&&Mވ)p ʬ:( &=c,vrMRgBU_&uAXQw;'&'WlI;85qj.BF! )ƟQ8F.ξaL&QaXy%xBk&[YQ+í=?Ջn drZ;he̔BR]Ņ
-gy3_9%tW!rQq7:~i0&]WwE<w}(3ffD=OOeKJkYN\jCH4Q95I߉ыY|ѼNx)&aCzs8#t%lH27N^ÿWxî\6|?AA5>/?~<j?l_ß_ak/C9nFr( ?GNw%G̟ͭ/G/:_lsz L}_gz3 gI(Mq5 ]]E"΢W<1bXzs\wǯ0<izs.~9aĹ#e 8ۧ3y=Kgߏ y8IPߎx6"]BNzBVHl5z$@a%TaKJT%#UJtM8*qBi>G 4`x)kP-Ϗt|ǽ?.??c ^;?̈́R|`ghsD}y:dciL`H;G{j`RWh3_ۡ
-0xJEj*.O  e
- y% oIL0
-L@Koe{Y"w'Y>CW~N lӨjmpS7qHGn#5K* Z{] υZ]?MDi^ xy`$鎿Ԣ܌]uyr3p9zƙ
-2Cazw%PlOTpEmmV
-eb%v0 =
-}69&_/` bxNj&H^&
-Mi O
-Dhߤ%Sл 1|*dYf1dfH/dz FVOE6g6JJl6Tw'9Yg)a :
-Kt*J ӫҴ,^ q:E{IMJQ=<b[[w~z=uWz9FguW[4`\i@jww]n?b^ )‹!.Y
-f
-FەEiTyĊ&LF9ݻV9>NrmJR6 Y%s7XiAJ}#ŁL=<[͘4*}#+,{l󇔣==|E2*oU: 6Al!g
--pTϔRJBM4`e2S>H byf¥1\גWGnѣHt$fa
-Y_n 8Ɩ˛r悦8.I[7a.j^
-"ZKWHϿ*@Uwr_J3nHΨ yRK!FL]V+.ⷫ@wP-
-V)::<~FR؄lY0J ^:k4Vuk /j/:mw;hiiڝ gDpeqmAvmdu瓭,168<>[d >nX1m5-x1VX&VphqWM Sp"Ph}7g/\P{FRnZ6B@kw5O{-`H}
-"tpuRLlG/+O"hԠo2E)"MS;~" 1
-LZ^'Zr2,5TdקnZ[ηrOt*Ο5q;bKc҃5L<Vkm\]o]XDc
-5M
-ï=QۮkTԉD7nA2emd$yqi0
- 4MaYnDV@f\%(bb֘ϥLL9%
-ggdB
-~|Y1SADy-6ީux+b\_Lq=H7X<e1UX=޽aE܈]aVB*trp<Wy'4βV3|䕤8mS1Ki4Ju a88;`6/r`8ņ;0GYLN%"-Pra/:@+~?_z~x=E:xl=Hn$4itW޶yţfy-
-cTɹp8s>K3"bʾ Б4_AAT5iYFܖnirL0XLm/ONgW;93;)41h2\VjEVKi@EkK ';
-a_V3_D!`($ݵ׭?6
-We<# p] <d1hDRօP'r8*pg"
-y(åo(^Tmf{)oٶXJ6\G5[ Aiu="&,uX)ء}O3 վ=z~=:q{GF-)׫>NxtiU$+5~ fmkĉO %{$YV__&MֻV?p*ËK\fc_2|u p$R7UoUolFSlrˆ2JqRi[U2JGIOw0݌f ?_ADIJɲy\|++`W&\r8??dTΧ
-?bڹH4PDM,פ8ۍHgfv3W{܍`.bH 3q|0' m%Dx2T1tʹ pJ}r-Ɣ@3Bئ$``̿i a>j=6`pbXP\d|>FW
-@~[Jh6O}'垕V]L{{2VGᐳ7$ ^c׹q[R6
-x!;qX"{' EI=纝 upxOe9hఏi5|`".qȎ5?'L:MM% k _m
-euBW tت#OL;!E!-ͧq e8^uh-L, qT?p48^]"9sǰBNߤmo2涾
-HVA{H>|-)_|^#m7V$z
-&pD^iWZLr:I@6j-l?ȨD=`)q8#5SA'pM ÍFLJg?4QD=ͯ^FbF8F_pخ3@K8 "AtZ~\a YʎHz %&}n'nBr|hc_FVM7R lvt-E^Ҩm!uv#T-ʛJ TAF3IaHH{I: bd(v7aiBHu#*f.Vc&N
-2_|g9Hгaw6hi&jPyqaߴUS9?Gބa,q~+iX,w65Q ~lω7Ieqą{=ʎζQADu3S#~;͋cZMS`3}uQjrMaNݹNP1 21p [.n=imOޢjZ ɎJPԮaL\d:p
-H@Xӹ:F9̞sWu dKaLJX4w5;XL̐oPfjpBƨs 1-yJSp7 .lR#Y[vo*xQ[F)Qb :vi(<z}o
-LA13[ҋB N<ū91%ΣU-[G~;4Jj6M/E ʙnfߊ<1*$` +^$5NHvG#xgޑGxCЉs#%8Peit.FQ5$JESvı U`0Y::7.:Xҏfdv[hFpGװz :R/_ 06V)Qq9GeodUD)<wdzhɟlXWL]$%JMD>Dd2鳂)p"ۅXT}mQ-`sHs [8
-Yؐɖ'0U]hT0U[Wo۞mnsR뎺nE˼Sv,􈙞ӳg/_J\-&zx3E6OЮ6W"Ţ^I}6D]u1&1ܳ6,?=E!f}w 'wc+GֺԽeCt<*-ePiZj[8O[Eٷ@*-.@AEI$]<7꠰lbZ)"K #&;vaL9.z=OȚ_ٴ#3th*E=g|ew;)*(Xgn&e e/\B9bQݶj٤;n;vC
-F(^׉f)3~0
-u5Tݬ؃`8 +2J[cFuN_x%f Z^n;)kwHgqƶ{HH%A0]J )Z= a;e
-t ;d]4kKTmI%7ޖ ܒ~jDwz]٬Mt\jFUaU.v
- Fo6MJo2uhJP,2C[*JE·EHz$P LhA81HX R5NDT7k yoy*1yKDI;+-}҂K2yY<p^!4GT-50R2^!4ZtD4a ۇ&)#8 'E \6dYbUx̖ TreB/=eJFR6A&µ
-M3Fș/Ibhw'La,vK󷞑@B:ӕ%)7W#]U=baYq–qȷwJ`5an81B(ydxira-IFBU<w;iQK+Ƃ߇MسNuJ޿tм# pΧm{)"-.qUkz_w^5%ұ<g=yxp`pmcTQT N5+gwP5LZ
-cuyiɍQRK{$.-$aaXGpHtͭ{ h+TPj\9u)0Iyȷs7iL4ŏi:(&8aDE  6E7Rn4K<W٘Rt@ߐC/Q308  >-øG0d׿ʮqlXc))T4Ne2c}`ڴL\ =o ;/X"
-T3r~".7_CayҙrM
-`pu⮘,+nw30;Ž
-PR| j<Z[z#Uu|g]7j"67 .Dݬƀ(6lmNs4m|WƁ~C9vVY/hѤR-sl<`i׾7u0
-/&pn1^BrZ|'ژd`ppLȒj;UD\_I&{~lfڱ4 ʑ CqxZV$qgľgqr4Ƌ«'<W >qtW5WwСc<1vpf5hC?"8|Yʟ5S*;Hx3ESJ
- 9u_#d7C_cC) =U܉DZIh\ G2K0/u[h&8K#,0M
-
-7ʍc?V|gc=bxvntnlu
-ȣh <ΜV?sDt)Ζ64Sy#_3a&b?LRRWMv]ȸpn;x!q@Dx9d
-~L`7/8TdQ{2'+Ѱb
-QFn!|:Jnv>ѽ -nDczUOm8ѸΐVvBz70[3,/IUjek홅rܓ&D
-\<,m9j&>&̢S)q6[\K}Ot'Oair1'jQQ%%kYAP<S |mpƅhޡ)A/0m
-a1;ThlM,6;ƒգXr+D [w63ByKS4_)d ү7ĺ!;1e6i`g=G9Ee܏9/QTG(6<t=3c xPJ
-ZtI(E\WujfY'JeH4_^nxgg&2t;_D[+ D!~/Y8m$dVJ) ž(@En"N)ާql:46
-3IfulE^ ,[F&vOg{"G(re\d`{ d9x,>-'#Ȉq+8@ddr4*\vODʭJ<6%-oP81 Tg$݃ӳÓ=Z?7\qtsrӻ .]^M^1/hHtf{IICNn:P.a6:\]98yJQ7#i!EÕQ൹Z:|2/6IJOzs1eh0Aq&: e;*̇/ Սjo
-,[!%71٢ ×K`\Vf/
-_+zrJ|nB(>$= *߄P M(!W8ͧ'W#\mE"(o:XD<AbU_Xv)*k^\qe^~5yK$%9tD2}߫쯲O_UVy0~N
-O.-[Gik!O˯\Yx{w_}pV.ZL("'5^
-|jgۅ\n& 4)`v&ͺkg
-<d7 TtmqJ^u3Fxhߨnw!1>m(@1hs77Dh*,X4jVFs<HVjIcsc7SB 9c2Ii/A-
-E+Vn+Owߖza = / HMwq]܍( qs!ЇEg`_晈Mhys\I;q|a%zzv!MjZҹS o(Aj 8=|}|ūgAjZ:61'QkՒĎQ[Rem+0,
-<xG&hQ:>D^sf5(Yu? VM{z#(#gPeiA>){ .s4a^x 8xStCTjtA؝g
-T _EG⟓"+(3Vx\?tNh`2D^Qݱ] @FD$L s,>l†3!)jQ>3cߍl!{Q?}fafz ,[jک~WJŃ1WT̟8œC(W.aLWX `s&]z"o08('b|CMRjp˥ ԡ ,RS܊Y<Xuj5-Ib` ::C T46%9k󶅓Lep}?Jb\Z09.;`$^Q0A%پbRԗM3@8j?;@5w
- 8tfUa؄ވo|lGso\V }C(z}=1\aّO}뚌rpB2>iv1FcʍwD@&ŅgkZi<pnhY7RH!ʰ59#^H'b]txVQ JikOg)^
-QsdH|sBùk|`CPD*C18WO,g
-myZ_e-Ňwi դ5EP*d
-SpT\FF|9:n;][3AQ22Je7fdѦT5ZsjYlA<HRd>6 ԾGE }9`0B{j~
-g*e0\XX6H ;Ax;Z C]
-y̖,qG=?(dǗ4ELDoټ-D/Œ_ѤNꌶ|4֑oZZԛ^1zTv `hvQ/,7`_,/%%1CG/)1GK{\*`x&7/cir̆{Օ6:z7dꭠ|[Xտ٫(̾S9vWfl
-초nѫF< (r1ȉtX:Q3Xyi`nr\Sk} רz{m.U}қk=NuגYry.R.vv#XV9?d+_ͱ%?-ENcP-.\bi{
-7\B]f=H֛6ijr)mo)H߼;)L(aFU;>o03XbqGO]
-e|[:û'N_*)t|oK2zv5[~R=
-%ɆGz嗐|KSŨ1  q#$3di/1K缤X~>Ag; IMf9B(lFB&a:yǴ HQ SXjo2O5lcSS,}`Pm0JMXz&ل>bv݋4@M2i",`AN$%?[ |9=zMHn1zNj YJM3c`5Zoc ؘXbjreͤtfwcW[:tew>w#{`K^PJ+!7Wy6}[LC_}^zlne6l}^W
-S흒c yBF͖Z_)#x7W$nݙ$7v/*=usW&4s \/ WJ^8څW% ESAOf.8 rѠO C9(Ógi/-81
- ]LU͢:@!X{09Y'[2! z"cƤi6^R`l3XFSD+b#섿)2}iйc"ȉ7@bR<EǙ b|2nZ)B`꧈s
-~R Zfu
-v&åPlʯ-x^*d^\)~%U,%nXn#IP>HlJ{H Hp1L, 7L
-;jLĞvEߏeڔo:1`jHα:o)r%ポk
-!Plv70Ԯ2kq§$)&vLvS/ 1sanG/cȾ.9a(5ol:k.%-EZ*>񂍜u7wYrw`^:+\C7,B]7cN~CnM.pXNMCk!S81-
-7*#/v*U0 D"p5q- I{P((=,\*PJRձ1Hᩌw+1'j
-`b91f>{ߥ:u?gt;]>n fg@h}ȒhקqcL
-oy.*DE35~K4v~t]ɡFB^oE^~E/i0bcLz*uF qq)p0R,>o=~.2p%cm7+v-4z| ;e3LsGpHHK`oX+'AIj1qвVnb=.IXsbnpwv +fLN3f |/5;cp´$AjPE_R{iq-1Eo@bn CJȣt cgag[ uqՈV_GHV
-ztig~Bef=du#8#P=3yR߰4B`-}O
- GjeR:y]lC?w(:&
-+e=GlMHܓj"겪 b5­{7%Պ=9[H$@c}^+E\FL!T0ow
->Lq)t>#f?bPʧ$eyX]A Mi3TrF]#&MbǗIyvU
-/h~*g4a7tqtyln(^(gɦ._\QOqGIi=W,H.߀;|"Rqf>kM^q6$ )/T
-R?1 V#O0b'Q<27S4hisdV\DE\S>% g3S* Yן'PaeH({Szc>\%.IS hj+LVO1'G
-†xHot0$"Y!
-JU2?LT_%<De/jAeg_̷EXsG'gG?=<ȩl`^/"$s="9>'bM!B^@EH'Т)D+hR9
-fr@L)<,2Kߏo \-,C/Mh`GI(IO j昳ï6
-"4 AcS~5˜- BkA/gc(g" V~+n3=kD'ޕ6%NÛdOITBKhQ`\Gq( .X)] B;_4mf0S]D t.+N&8P7mhɻ| 
-8V[V+2/E@E)us ʣOmE!Y-Ur#ہLs*,𫧿[Ć!Mk,cY|O) yvHǘSݘ1
-Г`fՅlO $tHh&l{f7Qt m!yR 4svDžsuƅN=wNUJSo0qXoLK"O kwwW8B5)S5J/9aGaR@gS(AJfp3ԏVBJN ȰِxN I3HgxX_p\J1UjWf.| آ'y"Y"`N q5ύwU$Q*ކ5. Ztqv.Ÿ=M@sum=EOTNE;]H̻-`m '}O,P8 4l!* i-
-a[T|9 ҞL)caؓ6AkW4ia,~|?_,גۍ..1jnEdJ:g3O#Dt4j^뫄X9,@;UWXa9kmyyA//__o{a>ıЇ"XVVXOޟ՟,BwTw{#~yM[.) <Fj,HOo T J WeO;Dw_7/4zm,F뽣㹏ED;}w-x9/HB=5,jRt{,B{c8YZ(0RehSqOр"hSp
-&@?
-ҏW_/)0d)\!xOoc8b
-1\*r,k8CRB-7VU #GmljEQu땓Bk~
-2$~#fkXt$W('O"gTa /u, `c=󎤕-QG} V٧޽}0/
-8#a ]-^!Hr?9쵢o8˧h)*Yh HypDG9/dI
-h4gG7I<u{
-5|411ӝѹyUJ_ȻQfN;}RWU{౴?N/كlQ=D5g/^=#W(z-k<t`FDA3g߿<9E/_dM=]S"A Pӎr
-&a
-%L
-hf\=8 9\ ̽TOCl躍۶},xq`8jnLc
-NT{Qr6ԣ*XIpΓ55m|4ju̅Dg
-t]x^1ڐ$?AߣIT,s~B#=I?8{fϦydb}~  ?Φ vz3ePxH
-;S^C+fZ#0K{pzDf:F`h?ns׌RKY}[%tEl:C篠w\0ƗR+ϝrs-8M(lIyn
-lu\>x>[V&[kK}ti;].vϖw.cK -Rk◿K}ti;]yi[9u
- P6O69iz肏(cG xcY[<aSiI2,lIއO]
-V^_6>8oiE3_°w#(<Z^HNi/'[hD
-@!Z>PȯҊ 7jpxWnMRJQ$K,yڍb@ӄ@iQV$FLWRxը>z[c|5,pXHv yf$\569ÇAv;ٷAJBa'* ZTw^ݵk%")
- WqߨU-B
- r4dvOxFWV$@a?㤇鍧t9zG `
-U}P.T:!BG,}ܢH7ì{wӁp
-og0?/|ɯѽ _;+w-"c&x=ƍ’M|yX(Fg]v)K2&ܬ>pXʍݏ` )luƤXRNYcGHK5o'R;҈t*O:r |lbْz\iǑe.rZF;+ds-\4a'~9kVM 8NuE7ģ` p{ł]$LŻlΫq
-n1=m(2<5uk2y'R 9Nգn"OBMgknROi`
-Nb4#PQa'9`_;ΦIB)u;B%`
->G
-Ekߧ[V2z7nZe]lW9N7eԚW=+u\c݌U=PmV7wjQV}gʟ(CUZ! ԿC+ĝzP>-e%;YEپZ4lT\nxCu>¾*Xn~H][Qj1.郫؆C|!,b>s3i]̭%w3oC$}W"(c5w -̊3-᭵K
-Ő)xl҇XL oP\`"V JxCmyZ$Ox.y=Oh /0cAd8Gߍ]V- X%úC:e&'#sm;ȌpFÜWO @:4f+6S!5N2 IUo{FO:'ooz#tIYw1jW ȳ|& WqDmӵ~\IJّϚ9[Tth:H+pFTK夅c`0,@Sii͜'pk
-
-;^CN:d?1I %AX
- #y1$}Jzj\,c-Ea{ŚAgDϜ.HzK91fOcnY? Ynk҄Qǭp=d୍i,Zwus*g:."ي PDX&uΚu8ZQDk@zmԛ=?Kl}'9!gM(R,><k˯;aA}vn)\LIQl**lKpyN E
-6ɹɮ0=[RC-sd6?KF*HeGO 8{18N鸟]3]ݪyrue,ٰokO*G )B7hQx/ "t@C;01|@\܊ k-ٝu>sknbEǨ%@$du}]2l #e[uOF[C-M3h 힀D۟}U 2>qaƬ=8FEoO8< /Ji2$T`*{M"q8ɇ/:t²mm`/OZl18(9pcJ%T&3%KߡEfdJi2ga<ɓ.Plw q5{M0zKdva
-Dn#(ϚYgY)l<h=~9U ͳ% s0I5$Cn Y3`F P>q%@0G8b
-8;k.Z`ɍMOT<Ik$sR;}Lt؇o;B3i;y<HNnTsV03-39]yle gdjՐ/T1+L`σs/;uFtWc(Mp4=7F`A{AUDE>`A߈rg͑!ȹSzAr W jT]STp|y=sUYЫڥt9"L[ IOiNmX{SEibLTSZXE]_?*~o`o̗æ Ty<] w!2U-M8laEeU<DrZ~%e;D
-K qI ߌ~brFLK*\J%vE
-΂ g3 xѲoy_>X_n)l0Qqk,aH
-e!0 <r5;jHX+і!"\o)*B]C$+Nf70y@^#OFP`3r
-zAaΑT'Vu:H+{U†bF:SJWJURȼ_E83(.څe?V rsx;]ho.lĪnÍY5B) l@MAANi=}'Iro<Y?&u\sJŽ{2"@z&htBcQa?ߥ%yzy0^޾<O))G 6 3,˲(ؓO2A) ?<{ MVeVt4E?]JBLuǍ&n)G鰄MDG衟@^h90>^p~x M$`lD2~պ[nIaL~) z+[p2-aQpFA񒁤gyKyzWYwV#峗ˉ\I >Q$45
-+-nz[lC=%V7eb<1Jaݙrxkh͌U,UV
-p<"{ӔI)Q[CxVE N!(+$N~1Wmu
-󚙐Pe/7\} K&6+Mom<.IsT]-S(`gTsX݈I
-DnF0fp<QYMf_uE M 3m#8S Itzkl %_8Nm1Qa|k$&h/k}DŽkgi/YDJ&>=lgSog*UE:s45D~o @2CI.ԌKsrn6d!X̍xB+-:!i.0ǭWP5]EFGT5dB yy Bb#?9
-0%pIFa
-3JhRJVB̄3; ]wârƦMF 9)H& 49 :"}i2֠Z9^/0ljڏ\yA]G9X0<i=h;6ӽR;wJ8ry r$cc 2`1S 9gJ)L%kz̘\'#/K3dBˆ/I2"`nr(ƺ$FUXP>c 矣y<>(6nl[?!j2fӪQMz gb8&pQ-7)˨cfy m*98>8Gx aRf\ѡ WY2hԮKZT_rsX5xbǻY)
-')H4; '`Q]G^)HOqX#jJwvMCS˶ND5S@L,"h2&\
-} Y
-eg@E.V Gw}gC_,oL{ؐ=I̠V=e;FWb
-N/uKܪ5]3! E_F,fcndck>DW7dܕP;B,x&:=Y
-g_D+u~aP_PʹqdN7,:n9$<lnHf/Wl)cLf Oǃ ^<o]O_/z,u?R-0 ѿ0`wJ޵h17#h-ɓ'%{Q@{zU=V4Rq0vG3Us8ӌބ;IUHǁ7#ݧ % ¬~,c_:Q sZ[ K ݤ
-3~gVYX xNjx[ osi9Dp'orQ@5H̥p/=OG
-A!|ܣ1ޮm vQ/ba!ۻ|^!,PSH6C4(Ti4$^p ie/^v-o١7؄h|9 &7WS|o2Eoq8/bF 3?Zȋ::wtdig6zM7wmrj/<ru"ЙMG3[vYԛ6%]aZE)[AiB-gpFCcwEۼJm+ Ե<d~Bw rZlLǚϭy$tG\Ю?\V :.H+]^ЯJ' !s-S.wצl$޾~תWGZGF1F5GKy\㑛'nnQJ_9( ϐ5[&}(vRa6^{q߯ sf0}ƿQ<9iE+'CsϜYVA6Mfmȵag lAc6][fgǝ̗0_1
-PW1Psm$<;eAU<oRTpѥfQvw޽vK^*mEa-xvT~1`aB9NI6LKn^}pmK㴙ReNP>Iҁhw??W*E^~<"}[FgRN~,Qp5z4x}99:*m40%/s#+WhC?x?b #tra,2MQN;'I4A$?$ҖDXΔV؁b
-@1JkS\1̆ҡJqw})w5,
-Dfdv6hمʾvi8"<1-W-w5qoTgkJ8axAXZUL }O Kb,$Zq ^VRJ5w2is/J,[Lb5C{G<Lz |.ݦz7#$H%U!<ȶqbH g}qd`v;8A ZUDYœeANPC,l4+DO+ϼeJaX@IyT1+9Lzy;OW
-NRDG2#SΗ&P ;^*9i5fv&)K&*ta !m_ax xmrDҶYZڸ@Q:OҨˍ&Y^ġ,#w]v>+a٨qib0`YR@Fn3b:tdN 4 hcE@,h:Z<뱆N8>mOK?y9
-rc"3|dDjiHkۖd iyjCspns,G׊ϑu`:jMmT=_g #lÖ@3-LK)YBY\ݭԄe%
-^\+sdRɤ,A9, J<ɷ4Dv~X`Z:g>WU@23 |EAЀk#6-@ޱX94P> Z> 6
-H)C,dD'=M?ki uǔ_3r9<
-2DfDf,ե7FE)|9^*u~qLMr
-\ϟETힲuH Ӵ;F˨) ʎ;bͬjq'W<
-%(礹eDvszp-4 h/&E&I!ԩ daIgo?oڱ K%&M+iO ԍ\_A
-*+B`_=G剏&1SL&F*w2 –ؔ[Nd;gW0JA>:&LLO
-C'Q#!XతZDUzztKB: ;T<d!TзQ>{N8'?gGV^G3R* |cJ5C  (C{Kܚ.t ̕"Il5RaY]@ḩ̘K] 2
-qφe uuub[
-^ QFp;øe%HX4}Cp'ܫA|pw$ә5l
-$aT)C0^k%߼v wݦ@
- i4il9EacQ >@N43~ ƞ+ꪵKʕd<
-
-&Լ84Rwv} :e#BZ7`${&ӪY]lo
-Dh,x-i`ѪAW||Sag/׶>TN?EvK!F[KB!q6ۭtvL&-WשQL H쓖-?~x1Aώt@Ju
-Vm? ]~U 0v2(W_c.Gi~~Ӗ E~ Amx
-m⺉z R uupM&횐|Yz ;Ew<IjGS=LΪIq D2TYēdġE>6DKSʹGi,
-sx\#L v)P#$R# [V[wʪ\5Dm
-*mh4t ajm},T^Ş-hݛtѯg5$QN^h8kQj&MQvȐL%}[
-n
- I=W:2+:1&Ip.
-XxƂ?f0N}&
-ჴxBD Xcrv'sQF7p=$! aN
-XQ:_w+ygw2LO/i:))d6}XaNn;ǰ e(  &vNt(N@iBPmU svW]ΐYtwCٳ= $Xr
-NBt;[n1ktA{ƪAtÉEks Zt5T$C/d<HDȂ}ҵqh䲮Vw4L?a&A/
-qR`bNfsW p[Qu^|t=K;7i|ao}?,|@013Oɤ(pi U( J%=9\/ INsz>xFVϲ(N}J#x)y,&=" GD?x5J,5ԓKcE_+@"p]0Kpv~}Gם+
-;2/w;?pI&-)ߨ?z*
-O
-HC@sZT}4Q-F`e2Z~dX/MȮ/\8"C—R4':} TDM +W\!:)
-l_̓%##yˬ7Tdz]ȽARL
-qwwK{`_taRV0JP3g,=[y}h
-eZkOYI|Ri Cs<f riV ig`Ȗx@m_jc)A5pw<1.&pt
-5LŢl.q>Wiz%kV痟-hv-q-Գ#Jl?|[ۃ07YQx탌/
-QB} By-1#\v9;yV,YK錫ˑƌM(@ <@;%'Dl /lyDZHgiی`D)ԋhL0 }ʕR*)8q?qѤ׉GM!Y@w\hH^&.W IĂj++
-XJZ3rg5[q5q/ƸQ/݂KHfe S"a?nM{1MٳUY7a2`ʯ5gaz"k&wݗ(C@VliV@pE+\
-UПɵ~S0"D*6['jv] @.{[o?,hE9ROh#]׺D۲7f(tt# 2H1lr5H9nY}SLLCW:Ϙ
-Gӟ[sA@~+Cr$YJ8AP
-Ie~ #L 'LdziI9Ŗ=<,OZnFt;9iۡabN,w,[zi艌p(>:(bOY0ZK`
-.h (J oΜ^ر]*dA]"
-^YՉ22Jc%Qs<Ve_f=ΠSM{·d
-TC$)89N&z1s*Wtdj
-~CM/"qgj+䡈 -JZK$E)8BE[+fAUY e[}'SOWfjȿ u1!/^u5_I) Y$@$>B\FFmdi;?vOtC1!|)M*:XʄA߆N"CofHI4"0Vt$ޝK" KWq<Vh]s4lV+59"в0jzN'rEk؝L̈́enw4 :qOVߠE;
-W%sl
-˖"J%m0W͗j?`B4+w(X#z"cUOGW$:쿜wR4'oglf82, ΒQ2I ՓuzR0Q~yށ獞C;
- 7 8ᯁ aEneBIDWN1f!A)Ҧ Zgt,o:#RQia ǫTy"Zqj\c>.(fx篑] lؔY 33
-8j imt>Y6j]]]iwgp\[jw;T>KFOai٠8 ^3nȱFA#ڠ͇mB ՂF|uȭE;Fz^]¾1+0L̃<yj(_l.V䨢_Y@+
-fDO0%E=`3uM9v9r艣8U4Ypey!@HS2C_pG5W
-+FS1x
-E%¹A%kZ/Z\3#׬tqdmz#DVO(3~[ڸ_Ozʠͦ{&^[P]{',ތ(f%lZB9T(]-])ouRs)G{2`;r#PFHs\I5pei#Mr<Pz4w
-ƶxhT? jx9Nlj
-?;dr ZnR;^2'O.(Ս ,"O34xpuY||Yq߳'G0TS
-So
-Y%S!-}K~P_ uf4fsx$9skqg)rYtY۵lqh=@zյfsmJ~}\09HF I1 4T\ 5w6`$##c׾U=ܷf@EDR}ϑ"@0
-J_@3Ź1
-G&.CS5txU^rgs/RU%Y<6(=sA
-@'$GVќ\4I ّ/e/q6֐r{p2Rw@6E,
-ÝzPTNNNhJE\ev$s%OF**D iŧ4p
-nO|{S~>L
-N;e+dr+aRHml]Ct31
-Vac-һL"5(,hL
-WkctM۹N^ 2kr-\TtqbIxMY][2^R j
-#8htٍ=s@t4ؓh<I.>~`&kG8ZpChϠ(2d6Uў`aИe0 Æ/{mDw01e#u8fuJ λ>"*XbGƏs&t[93C4 P0p
-E8A'%W)y: ˷g`QIaE'4W)@'1E@%shOÑvV #-0%}ĺSypPIm
-ӤM]uEX#7 +t $W1)ۿ)k' 9 hNhLh-Ea.#ͳu@R7D0QXXR$: )S+#Ѽ 7j` cN|%f- Z,q/DB4)y*
-9 Mމ-Wj6r '-SDߗ+kBn)܂rugQgs1@3F
-qfpj|6M`9bPQ Iab3m kx@bX~uw0p|j
-ۤFlkqPB +4X5# Cغ*=xbAR#  ˔H$H=N4XlxoGíw[ +Q:^Xn)tlmZi7oiV?W67H5.
-zJ/r9 Z"c]VF?7Ϙ Ìd##T:Z~7?n?]J,151Eǘah<
-%Ѫ+܆Ɋ ЗIYJ0 ~aN4p9D{Siq\Q
-G-a_gJ$&q*q @m.{Ž@M9k|hZRZǨh#z[^d/I
-L/OK*0z$F:rZReuwCv1v[5l
-*]$K g`Ek<1 +9Ō5:OQ+H)9ףW H1oO=YnSj;09R8)Sa6AMÍ+]tؖjY{ߺ?}jZ$sJ\2v~?{Rk)Kt`6ȶ.v8ЏWϼA;SIh9sЬІ/T{N+e21!0+QOf-<cXU>4!|IjIgwvJ]Z>82w|F4rd`JӚ3
-V"xl'竞D2H1/<u]S=)'MH
-ulMc[NS>\zKt,rgF_5*<ݑ@j]דT( ]}sm & B
-n9my .w?]i% 6'@]թ+~`_H'+|㳑+Yo;]F,'~
-~L! 1imƕ-lhC1&YجR'dFi$(9@/6jupr
-,+v휆#R(bFl˱QV f}PMSu iI>]jqɲ rkF0`Y{$!(19e8Wֹ þe@
- -h4u(wfْ&h)GP\2j:Q~ȍ@FM=;lrI?-4"c][lZ
-'.;Xߑdw>)#oЭ_P 4;+9&
- ԤgѢ1ʘ&8p'hI[ߵ_ B8q~BSxjc1!Y: c;nfL!
-g$36.'+in)\ވzaF~#O0Gaޝqs8$Dd;fiF:*Lh^t4pD yn !‚#a}<swCցѭEM3l(/L"PA eL*wt҆k\Yݝr,' <E0bj
-]bC>-bd/_%{
-#y(ZJUege9zVm6T9.aM8@|tLb˜z͂FQ"ޑ9FQp!ŧ5 ܨ@'Ő¢.jfkԦXEm+cg2#km@MJ_w]qZfR#U/^_9
-`]ӟz0u!0A0-T-Z)bbc^!~
-i#
->H<X$puي |3H̗Fa:pP"$97# PJ)P-n}WVDA
-Xa<h3(vX['#NPDKZ$2SaF}aj^MYɚ=.
-w/V+7m$^4nQv l ?-~y?T7SAT|
-ZkOjx*MDS2{/ jg_,I-%rV1'=`HD,*uFS$3Ъv[7Gs^iGLĽFsN->xse~ xj_bԟkeO6l)G4UGKPBŭ^]djy J? pIl.@ma&{_*92.7!(f%qa=~Hl1kF "!&UwdAYm:?Ķ(#驓%܅ GA&RarLZkbDIw jR.zEv*LSadG4Cڛ);x#WQ<&ԦT:Th4Obʁ@eTw.Wd$-8w8V_Jn'|&*J%co'ЭɼnEs 녛wWJwd-jٰޘpd13fS*gv6qN,
-+E&⡭|t <jQ/(ѭG鷰b)(ìJ˻1|twVjA-ӌ:C*|bo1Hm77;GC? "\ErHS<PV9 k\j(}|.+l~[hdY м%"q1k
-"$%"WP)M'iEn>\&>&X o->P o `na{LD(tϑO9/ͣd ?$Nr>q<Ll<3q)3^SYo/ Rг _3z iWaF!=}3HtqSŌbBc(m:Jd$K#g9JInOStMͬL)EF_SY#$$#C3"BA7gޛCd' ll $nꙞWV0zl .ݘ-B~=6.I,7vl}<aᯜ>Rъ=N1{-FG;bPjEp׻ZK5)D"]HAg`]fm4ӕe;R>\u3`F@ĬJ6l1$qc"D6k+h
-OE/ :cv6>SGW[>RDAʿ{:/JYK<ūkK2 ֟>`Q ))e*r-6󘞦'zW 9g7c1px8]+h!醋`&J'
-DGbx"Y|q6z}z#ϭ;KW|ux2Zf_8ۉ8 zaO[*%;1pMȠR|df%!۲r{"@J>DPș*3|\#/)7 7y!)?J\Rl/!Fx)_
-yN 0|nb3-:aUAmS-W|{ o
-LFQ6Lƾⰸ($aB/OAߡP۔[8-U8?pm~HaP5H1-Zsܦ6p_f\48(H(5py_ K͋2(ţ\'+Zk0RQe 9#dV:M,o$:#?F(á7>o:,ȳ9u,OY-(Q`;(%=^V d4GCQYwF\1nm F։E9߻<cBM@P®THl;3}|[DW
-'
-{ <rP>6Yv]!Od[qQ
-0i
- *ޛgKwoj/=edpϼ#6<FUYTsȳ04wnUnX
-"c.I-/,yA(f1AħglHl I#ͰTV?hfAxߏhtY\c#}]v[f|OFsbAE^cV[E͗
-T:0Hul/\MOgc lvs] OO-[Xf"+nv
-;ej.u '2gXP('vp@6ᒕI<ܛpѶ͢"r@>c@NHm K(<+uj&fK:]&eòxZuCtZlsEZg{4^xR?b
-9(6ū:p=TO3yo``
-li)u+H[GWZkw0cq/qȞܱȅG N]
-[a
-@'dRd(i҃pBv$_)P3x5=Jj}]$3|NFRT$,0x:Yoǐ ۙSSxp׃t8<_`1?
-y[X0k'4ieGa4=K~NS;GJPح=,C4ZDcdۮ479l7G\k5SkR Ggzg# Oml^šatdccLX_m>D-\XgX޷pw J72QPAzac)^ݵRY5ǿLt_'.9Ǡ;et"쌁^i65M2M9o]Tٶݡt r*%V8'g+bKA(Zr@cޗ؋ۉstv)~:gof=1\#'amM@&h saYG"R"pt 7\9+܃6 ,t)0:WYD@6gϲ y Z e?yƝy8éOɓxxvHcM4fnۄT3nD";:M`IJdt{~<j%z&ĖΝj8X?#T{Ճ'WDdq<t-겄qz%SfHtWAq]i ۈy؍B/g9 $]b|)B%݊j?fl4>::YYŒ+CYkCޒ[XE#
- ˢ8>'`L4Bw6iVf<B<s-e0'{tAĪ7*7xsңl ^
-Z0,0:Ke/ۘ~/AXLګ/jΪm3)Vh#d.yRi~drx=l}8٣5a mSzj!:VEm9&ڹ!79{C=cսϟPCA3 {ycqm Mk)a1Lr{[+lDy'bŻgA0V63 NU|o[u*s?lC7bAQݛ˞6 b&C'lJO)KˈՖFŽ%6Gz|?򹬔ݖ |(ڵ~-Ź=kVNR =aՒgpJ!<hĀD#u@fj<k1
-Lb[jpX3A4ͻF KmʍM'8IVN<&;AO
-T.] (ӒK4G3Rn1ItIr놀:V$c$*eiYmdצ9ӉϠ@y͵(p\F G-f*
-d"o;k1z7͟>MJ~1#֡t7Pj6u'X
-,;(uB s>= 9>reY.i4VOl6U|2Xr@[
-~3 fLy5;^ !}:N%q$
- Ǡ'L\䃘Ǡ]"*w%Z&@7xUD3&<u54a8D͹{8" ̽5M:$3w8Em
-/Q l
-#9lz%6k6s:{hzDiI@հ m=hظ2jX\cK@0$[<[/λެ@mtlW8ϯO{&.c%hv`ƍ,qh8ch[c&D~bOkyb}~{
-,cȐl21x\-˖4+4aG(G* GٱC~a-z椗"Z4T2h<->O3Nl%m\ٮ(@Y;(KCh8 oUl6hv ;̵&9J7ZpiN_r<꿑^,&7ycH/șh̋ԉ]0ƺ@nِqc>rnFX2
-r Y1ƏJpMn"tJn(RWZ6mPzdq{-p@Sxh8$rj0oieHwDX2e4;k A
-\ Z>5k'>+'i:?NR fn/~ ȼaz6G9|.ie~nwG}ī`^mL3L(D-L,Ès:NS9gn<^9"&Nf4D "ZO$ @>ׯ}h$ύwFV9z$ڧZ&3lX9#12 |7-ɷ5Ai3`׎Ew:%˪?*]Y7?Z:'|~Kj+򢅵d!eP/߰.
-|,bT>׼rś@/&f}
-8O_
-+leQ2L/HXeZ;~J 5ռ؏kFuJ|H:Eif]`~d.Pu߂?-e݂e9L>k)3+d]ֳm(B gSN9)
-
-Y@ @D''g)ƞVH1h\e,P0?jz^B^#Cz2}r1B-c,dBi{
-԰`ɐ&2RJgKtwn~A*?56!1<.
-,igFrޠ/aڳND#b7T‰o;dؐ..rrɒ;9
-j}K6ӄmU&g"UHl0ɧatt
-V6P +Iqv|sgZdQͼ ,gנMM9 ЛAeA%U|J( [` {LT-7(<;؂AwM,W*Zb/:\6X6x<#ȽU*h.(rÐb@iz)Wiƍ(>y+.q%OQ-%h5~+׽J[Kocgvu@0񛝎Zwe߆|pf!swB<jk1Fyx^vx.~/-ew
-' ݸ
-ZV .7xX\bgp"ܙ cj
--\ȕTx(צg7h
-ҭ](PQi0PLt:7;2󯉵F!WS۝VNw\Ky7A׭sQ?j׍ dk1]=/2oy̱As|<3 ]!*(F"(p252),Q<H`P3(U˲|A rT| DL+`ڄ"&QH!Cmm92iճduAA<!ݙ&^p5?@QH \OX`DJpO%Fg]Vk%'XO.yH:mXߖ
-Ut4N} *yѡ#NWt+bv0}O2"9#kA4HZMQQ6Ȏ㎾`x ]0Jluo5Yve m L%s*h
-X=.-Ә0獜rkh 1AqϒsQ%vlX&}%Vۚ!K1ӳ"
-㈐Za\G)\ 03S1jd(-eQ]+g$_up8-L2gO
-YdРbtFgQ??BVK*EεbQuT.8C5+ #,,u3~PCi].% E3(YRLd' 5AR୛\[ssPQ»ziS7d1TEV
--YQXq|eJQ "U,7_.=Vʳ3j4Pd]n|(<ǭQֿ®9UV (ő \0Z^@Y[ޕmwG[
-VpJ+}>JyhrqF΢7!>xbL^/I7=P 4+D$<TgHH @"&<o_>tUBKT*nNqHq.YU+_`RE< ZqW!wihGuߧ'y.޼W0ypl"5s}iE_D=^zI6I]d8kI!-@'
-08>F0nZ... lZXWSݧ$ɽ˷v'K i8N .6btn{2@hAqXV' {gA8:QNfja*f⊜u(68n?@4{nNNQi1o}_ xY1rG\R tk{\]iMN#qs
-(lYbdj^K3M#67nKG o>|HbS6sRN봗UqXlpgԥA]۪N s`T=:\'`*q[DŴfR|D`#QXA++,H.,51)/CW%TjeJGEKZi'4e%<H ,sêe$YIPdM}Z%UNFx'39!0PҪkשl_iC6m꙰J
-u^T*UTј4=jge-HF-{ge"#mJm8x=
-{{P$,@}skl$s}D't5N|p
-
-:`I
-䠫bzszhi}U;? nɵ~U`&{quRsͳU^23drcOqoFu
-<h~+>CPk똜8] | A]K\i"7 eLQgt ЊySHa]E8{^6\*&b"iPCS]Q lj4F+77{y/&( NGptwMAq4f!#ĤtlD304/-)icmlAk-Ho!mr Iz^\Nbu9G ,Hn9NyDI1څ: Т㝊" 䛬R[tم$&G֕)M2zD'SR@L R#cߔeo[lz0R_>㠊;e2Օ:/}m (y(VD!IBEP?-a=߀EwH4Yf840i\9g6] W-4Z
- 1|Htq_ I6H)?ϱs)T9& {PJ$L[F$jIS"BW߰eܩwZ;G$)ƩI"^#HDAV8gL೪Cc p Fu@-^Y+/UV% [j30yAսa
-P8X&B/|m9 '4_9P495-I Ū6 2XGDS''zAj q'1%hԪX_#tϸ9 4G&hPU:rY׻(x?ad<?5hc{ O4nT'K^*-iʆf#jN*#P50
-VW5! kYVMiQSs=3P,a'tþyQF t*Dt4+iI0h@1 Z''Ѯ.^푞O5zG <F
-,#Q`J*7-7mLE'w<R$^01~(
-o k TaBgp@EQNXJ(zx"ņB @&aN> z!GbBg0Hi8I?xDO)b<!UHEw"]}SK v4W3DA 9^Ie&SGҋd0ƣdd20t$N$̋܏tm|Mex9kvxx@tZL-q?\(e)I+KP*<yy7HOըyڤvK5h8Eu.P&FvI=4}tv@h$iqx™2[cmuլrm 7w,z~e:dQGL
-]Twa <FMď[?:!7^I. ~rKx "AjR QeV.IMCUm6ңBz r,VA>3厕#)e6E-s'Q}-RJO~`8- 5>܂H=Tz78ja}]KPN#b9Hj_`a Mb"ע%{6a5F#ߋ&P]11M)ί:3,_˷^2'cT|Ab%>ȍ"UdZUG]<0 <.\"fP|Rt*L=ʤ*;ǔ=\AD\^Ec׹An#rf (i8ԏbnD#6Ah'?htʍ]ܶ%5BhD9k0A O#g >5'r88918`Q:f84wMG'hWh/V54p_
-`ل2BcM Tak&1ґڃؠOeSÉH
-'
-7XuRJ G[AUɓsh-L'H\_奒D +v Ϊs'}4Koę5%)v@J<x~ %5\J)zE1m%"/XaX¢W&5!=עᨤ`r C+‹$0 'hfC sD!a.:9_F2phdtk<,D1pr논}DWr0E4\҂01xOb].-&F<}N <q5bEɕ /,% RgdH]3D%ux8ؤ(¿s8I<Yr)
-'o!TTvV
++o[MI[#ş"AD,?1@R
+`%5;L Lwq֏Z.ʇ,kf4馵hQC%5+;kH\C,/E!c%"dPthew7,o.@ zE?X h 1@7hd;vH73OR^To:]XP4)TNFveGՠ}S,9;O; Vt xs<ÌZu:%`k];;l`lm Ufi=*la
+EWB6k=/`j=VQ[ -(}&xb</7 bT
+(/Zqn7 ye*ޡ\.Me:_?Gfb-hMR#CuHOwwwOw2K'EOw0b0V"CgUNlH>qX Z$vbx*i}hxCGIyXC8yErX $\RkA"L`ZVLU鉕g̶a
+"{,I68C#68;N+rّ
+dqdq)XN@8Xo#+Wa+jJdN#la(=ʰVhf #PXJ8҅Ũey2.EVCH,-]S}f5@̚ Y IPwyObMfT*mt4KϡS]z"tC b& =lMfg מ"gnK|)!zȴ:-Lox/?Lʣ|*;'N34 L2;hs!e=@6U ueB<607?:2@ QCgT-/HA4buZڦ]o٣v6}f*M CTa fzJAV zn-  ۷A[cCY$Q_ FYGF88 ?-fQ?$tC+!Ȅ GHh7@F&XX |kCl#.zB1QPRnR]f;N6[7[Py-(DMr#۽`峋l@?D`?9#&M9=n%s!\
+E4 MnǕXlD۟hge3|$
+2*1:ʦIp$äc'jfUGaON $BɅ =`¦o'uT#28iÊ{m<>YwOz>++dM-oE-aUPUT}Sjb(%u):7)g Mj][gɆL^U,bs]CH
+6 &5{,0\J:/ dXe/"|R쇭,un3k#99>k['S}+Ac8T$i,$',\Pd|U`k쏖giu ƣ#$gJMC]8%
+T ,Мel0N6 (ೢXS <{>$=J+O"K,zׂX(Yb{)@J)"g0LJ~ x:1cR
+pleVa\0Lc0Lqs94V8:3TՒ͜N
+|V"eCL
+'NpV)X2 IT6 8܆́wTz 4L5КhrOG%\Js%xr0ΐ '@aL6 QX+&'QPm"3$e 8JEPhôgT6%ouLN&OD+h βCXUsCض[vtD=5gʃm=US5 @5 uin҉XєJ䕬7Exrq:2CVykV_qY1K!܍c^?tI&R?F-=eBڌQR`Hk6<gj#D7ΓsM "8@ 㗡Kk#uQe#Gv(Ґ CR PpfM2+pIG:Ud\$Vkm Ap;yC+z]6"I=s3<R̲^x4 \4+d}|syC4'ZS6n\yk#
+-xlaÜj1ԭ׭fji\G\Ȗ"VU?!C&V/|FƃV鮪Z..bI
+4Z] n9δZ9΀gEv+b* c+ZP5<VJG'&S##nḧݖu'n@x`ph
+ﳡ}5&q$:)"DlT:~ 9*
+f8$1N⟁xGbbq{³wVYط6Y?<ňkW}|o ,Û;<U;3TJKs'ds;i1~cm]13l% 2m
+TNlؑq><dzn'Y"HR@'O% .De+dD#5&N0!27+7^L"S1^uLVc=rGCl.XT|}6˰/ٴs%^Httɢz8tL)|9Rg9H$pǍl1dz\Y$mx4cHk ԅ+vq=3I0>zY~AjML!
+.{X;4M$'D#JB`xj^g|{*N'<!"}V :2?qIO
+;"!v(q:0$aLl[d66ptFi2a~V!Nnxj}=aagQd{qz? &&ao>6B`<|` SZ)IwH$uRo$A(@@)F'3EkENhCLA/{/egfF
+k^
+\^ m/sa:_^%?C##clH!(#% xF.t*>#5:R>dnfa/#')[diUyW9`["$XLIh -TKf.g5ۗdZ<A
+^@ ђE
+M/o0ĉk ك]C}]!&0(iKw\
+&>eBP+<h@',ʱ.c.f":XoQ&غ~$Ńf^"}XG36j52;E&\G ud;%ֈ`x[ez&}0 9p$,sU
+Ϥǵ7Tg[k{ aTg_P;8'_ÇC߭;>tx n`c==T&w<?rp03TKP 'Cر
+=6GU'R-DE/N-zNG\Dïtq4SFWxf!2 $ݲ/#.dTlj%i 70lC  (c5B ED]ga.r5P:ЮsLJ$1ne"Tu0I s*hu $ qN 7ť%uKrɱ՘m؏9{ȡ5JJY%<T!4CL
+f;Ym O`]/Ž{RٻLq(c1":|XLzTPK>|DɧYM]>'$,<"s bQqf#.oD!1+h(>< ^"yN&N'#g~_ѝ5q2W_tBg~)ү}{߭t3i
+SWz3jqn\5i3{58*EOjU
+52(5İ='13LDT,!+~ Z*jP P yy_.c:W:'q* + HZXpZznM~vPtV.2 5θ Q
+y j/I20Y Z$ÂJxC30DIܩjZɩ>+Y
+P.qʇH3:J Lm758v:C&*5TNf:1l ^z@\=;22J s(ϝGјzcSM$tSvbdOTőWccX&ȗ$ ȸ6qG<<l/';YO姒
+Ap\&B6Swc6 *"<,aPս;T;6z0-}VkΪ~;}6te/–%KRxiՈ=zkuZae:^tmx66})Av'pL;p+V1H &r)?s㿵PYsYZY|K 1y
+2E*%aɸv Db ʫHbd*|3/zT|w5bKW@T%\,XdE0)߹YxXlGvd|U7Dp( T
+mՔkG~Q_|z`y!N*wJ&( ZI,{V]|˝;IY=+sdD2Wp1n+Y3IY6b IpayO&: &0B(h?"q 7:&f8&HU
+f[rRzU=㌡یi!2Z!ߊϰ|uFY+"N ev[^simoL
+}+ y,Ɏ|Fйـ_/#DЏ;`\}:&wf9Ӆ6?r).$r$slYN4#3Mgr3OޘӨ'VWo7}DhQ'ڜ7He{r':-jnupbdTs@~\O;ףQeS:ê$0g&"raڮ_9dwFWazce9\"aA)$6+AL{P ֡FS> %
+StI2DDFHByNn=dcXQT݆59> }G}WȏzuWo>ݐyd;X5xHFږ : %x8򐌐K+8&;1`hr8S|5zBg%'fPmvM+<u%
+JAm
+tS&$p
+|nN'5m!nE*Ze*p0K_!V6
+>bNe}uR ɕuP2"5Q;+1 *0|c^PD4.dstNf8/UgN ox /HպY䘎|բ_hl"z;QG7S鞖Ɩ~P-8ͬ/;;lJ$&ʞmw}oK=I푄sS-2Vw #ٺ5X#0c@OW6b+
+ǒ @4p:H8_+{w} v"
+]B$O;k;~ؖRls3t1/LXVRK8"п<ư.UT/ʋ7)w؛]v{ JV´sW,Ůbf
+W*dUCjP5o/
+^kb-:wKoӃrmqzp}ع뇶]^4=`^Z1.,^TRЎ9]!v[ )V3Sq>E05oǟ} \,Ʀ
+a1ϑXqRaKG
+?C
+l&J-2j91ƾv|s,ZښLθSVIMo%-t6ҍY**a;љ a7z-bXNիUՖIߐ2*yr (c﹙j'Ju`:vd:f" l߸rIK8[NqN8^QNs
+gQOtuMЮ%~)%;eBf [[Gw?O^~-}<?<[??}'RV3U^=6TpovN{ipۙB8(6:\Τx^lXZ<sR銲r3X\P:>7QnQ5a 4_Y:_S Oågk@)Ԗ:*;'kVJ˅n>{hq㋛/Pʎ ṵ":é(޿
+?fe{JjZr_`{.mN }RSs$PJ\IǤFR#Qq.5d>&R=@|<4[RTVT>ȝ<weFkۅH @ƋGOo<|Pҵ|Omـo:xtpkaC_.^*SK_*T_ѽmI[y~|L\>I'159Nv=1u}@SS^ٲOoz [k/ TƵwVanH)}tWXWpٿ+Oݵ1kBt$ۿB[_ſ4P6Ts_Tl,&,uLBRכqN}^<1f3N+*x m(hzޯ@=X1/؆:.CڀuGiS&(!Zo
+>#;߀ċR *LkK;
+w[Q(йW/"Wy QK|+װ!JPei˥*߆bцwka`YOW<YGƋIdzWU_
+kH>S+Wv\y ǰdj;.[+߻SS:Av+5'BGD
+}ܯre%AZ 8<.w+l$5;J׊wl*t`eGZ>s~GhN7#s8o›۱ͮU1L]&4T
+D ^HН<j
+@:vx
+Pqg\j4
+Q
+WFe.%:;J{ThBGsN),]|:jw|!č>-x3ZG%387lq9’щ
+QEcu@YoQ?=;U&XP,JǡebnX)"R>Vs]?622b^v꼼oQN?K.7vh
+Y&%|OxB_aV`~%," x90 0GX WkDM1%W KRJZ#mn)}KKi#i3um ^l ෂw+rA56Nys5- %eJң)% )[VUQ(熚C]և!=͡BZm֧Z_iZo§O ÍX;&)l'w?~+{߇"gEG.HȲȊH<Em#E<y)wΎ=/zqKˢB4mnQ;zG}}$xџF_2VGbsb;'XS,-m%czb9دbjmQےmj}m;~bdۖw?./^ҹ%%O.Xœ|]GX(ba`jaL#+< <$@x 0>!09_{8?`>@`p$ [;WϑV% =댴TOxGp?!%$O ?hv
+}<%IEA/I|KeѢt(.ʢ|WץV- +U+/ˢkEP<_[ז?WS_k-
+SPB染<_[HWA!53TSjl=_[_!O8m_[U3+I$ٳZNBV= іj${7_E _}=
+,$U#?'cG7pU4GQoM_EO-Wtwtu;{\"}8"rAP((ɸB/gYНE1 Jn[x5C/:VX߽_j5Ow-_y+4nOQyZւkv3ΙF,d)=;hZ0s3EO#rq3턃QrY>j-~:'4_¡ aNS[XE79sJqWM"|YnOF^dd.b/jr:X+ !Sj[O:Pa# }aZb_\Ԅ|7a 4qӞrt+X9Lj|#+ ,Cn fQ ]u͂->azڭ,̤>0f+a9&ތq8%MMsfilFJcAUh#yM݆fZR|yڢxnNEz
+g€nFBQJ:m8d-$Jq7
+S.K#S#%}>Ε]I T`H ( !ɓO:F2I9,XBV!6
+Tn. htZΫ<)5M͕*0^uۂ*l`&ZsªnZ
+?F=U'fbrQ>J![5U-& K(
+SuX,]dlASUAFLc4>4u=AK^DUI-d:";)i@$C:n:tbSQ1t'knMSˆӲmݱ&MGe?cO)VSTȼS!;1!TZ]a,]bTqe_q#,`+%)Q$GQ ȶ(k;$o6kňICʱ?śE(
+t6З_Zݾ,Zv: , EZ#R%k<ΝRlM[X@b3s=9>mRՓZÖt{QŒ9Mo7_dԁ P,N4:^fzav̂i17=8{y1wu~UG$xu̥Yo9?8?{*`~C x4(CHkҊHJ.#sysjjɤOqQ&a^
+^^KhҩDKDlT:
+@HXƠsBkd=4\:.ш잴7<(ΌmQW&
+g:n42ꚪW`ε|MNȜ׽ݫu^E߳>]|CEzoZcTvRh"BL20KՇȱL&蓓~^.QfCEBBB8PPr[qkZV&nP~ XPP;5܄f W\Nz슭E4Yg=`*Fu2 `ǢO;\H/JE`b-r +{?9Crsk-KFeEzBJ2ڄ{urd.`iJ4WP6uؘ9j 1T""t͠'X4C8]Y~<* բRg2 ~Wf^צ/,LѬX#
+;kd4Ș1#jHnR_rU\9_]8/>Bo!S9ո*4rQkbOXtmKj2U\h4zd(}/qC 5w}Or︵ >
+Ϗ&[#}l;pC03޽߬xh1>r\?/,\8{"&Exl5[d 5#mZfnƬlHXKMX^gҳ4I
+q |O5yVbKssF
+GǞ)5Qg"Sbwocc_##ñHB$&&ccjG@b4C+'jI8x3(T\C"ʿ^*VbH
+Iϐ׿8y]
+ϾNJ!^Ӥӱ >w&%P%[jz[RxԾ[X2hߪO+w~pG#8:ˬskȃz_b'⬸|eʼnstZ^W:3Uʊ XQtiva曗_".`۟KY<{e)"Z/ FAIxq,Ͷѧ74O?r[uOnu[-形њy*o8RƜٷasزoۙ阚y햁<9}_EO\J)+J^~/J$-_Y^y2=ܷB\׮̖oe~Mnx?X=ϗn腬aKH1MݨHI^=x>AR>E8`1w)+Cy*'r 2ߡE0_)A#Eԍ`eS3_1/SãϞRڙ]$c)~9gl`-{Io0}#8}B@FC3\ Q=鲆g^(}$2٦Yͨ%l֢5Zq7,24]됕3BAc4=;DIjӚbPkQM`!`p?}e-MKg-ÈP)2fi '80t<vnђyyTRWc/xvH#ǚY="fA* &ϘXwAJi
+}2".ɶ~PaN 4QvN/aUM„u4&Tν1gfB@GbA%hBA z!RV{ªfOP̲<ce
+r stR˸8DK620i<T@ (=jKHO 8yQ&e #jΆ*)3^9%iOk܍r g%Ssi.͇r!ܸX(e'pӐgpIJV^Q$Sѐ ) N7@J,+o.kֱZ92ؖ^62ͬaZEӓK
+8I&#O3@Y֝<ɤ"`
+j9(=,4U(+v֍I+F')$5#EķtSI]"o pFȠeHMe: jTY<7^(<ecPc uOoV}АqtX- JQ(6\蒵SRɋF3?|RͮNQmP~J<2IgW =闯o2Ul_$M޴3pS&a[r=:Tތ
+4L1^tXդ3lX {9!#\K$?f^ӽ+#KrX޲,_M
+| Ai8p.a^q$uW-j8$Nr;(+qwH ,6 k ,S) 5!oPWx2i${Mqv&TxͲNbDL`"[4IՇL?
+%SOU<ߏV]qB[3TnAY&b3COZc䨷b2A``GR1_%>5C)6GuI@iA)t\Op W5$AQgaPȻZ>=_#)mW\łZuʤ
+wqB
+^Jf^>\!XC[Ev+0C(~ٶHUЫ<He_ڔHVTH?EZDKTNL(Cڒ[ƾIZm
+W\TgMrNÈv)[/pPT;L aJ
+P{@˦Yuhܟ ȟ<4^;ζ$.{@n.J xD;2|˻dsG?|@l |'F;IN֘ic9w.9&+QVD
+ ̱w>+ϸ'w(rI`F#Ջ+ђ&| OW6aS>yFYH4ڔLZ=]/t1,_M|<u.0iwD\7'*:rs/&DN*xÅ<\"*S 
+z-`O̤n;RWTR#r)a\EUNH2|(;l5;{{ᚉ|4bM#0Au'ʲ ?qRRilN<2T~(9Җ4Um~[XPz}Tv/|t #9w6f};
+y"톆IU'-x=NY<߮{z0}5|rm& ?qGY|JY|#1N83DsSSRF}A}?<}αS/DXbbx|O/x7SQx+5]ƷJ?,[KQgAٸ-j{$tOo~?K?!޿Gu]yJ=N-K vvDZ==#頪s*u$KƗ_ 0EAHC<(I7>y;Yks9UB{uk 2pixKN[NbL
+Q"*6ך(_'D\~YBLM)bAyu^=FmOw,-n!:2{ `$G@Ή!@Чe=(԰h-fgfgsbXE0̤`::`ȒAA%'3\WI]Ԥ% O*kry7~ iqz2<3$<+XfЊG8~["á 9o'X.j N3mobfxbĀwd>KX PϠ琨
+^6a%1JT8+k`fG\ f ԔFY;uZgD%\M`r+N Bg50[wX%}h~u
+0E y?xQ `l"Q%[‹d!.b'/(;89j:`<vmQQ.;L5)<&m{7)כT~Y }+;샘Gq0ī@DŽwf6͸
+aJ)IWB4r,򛔿WC6Nxx<@6
+*nG 9)j BG PG9ˎ RD=.6hE,Lkh6#zKpZ+Fנ XrscIa>t 8*?'A
+qxC`F[Q/
+#h4V)ުRu" t@J 2h%v% ð8̈4DR "O/k'ӄNp 笑cbsOyGТD<~{$Acn|0\QE!V=6B$4Y@[@PcOExNEOcՑ:;ev5j>`Ps =0s?^}pt9 %sݺj @5l -1"!u8B^||4:'TaD~6{BR"bC2GĈ(FȁWa5tkF!4ZzWYژcY0{xxU _B^>XGE!r&+;`[雚
+]"^KC96t8+AgeJQdhH.;ڤJ;}^?U(9ꆿ՞82F͈ҵd4 Yި
+3{]'/訜u[hCB!v$47ޓE[t<ȬwDSiڍItu&37zk2%7(r oKUe8QlkZGm5}{4qzgtV7R1,ǡ14Xg!Mث;FZ'UEm=ܡJczR0L,RdBHqIvCfOV{u59Zs@LI j!SclgUiTۄODWZ7(oZv[T*E?Hꄂ_7`ί': :sW0IUu#(? W9Zw*ga^C͒P+a|+fwX9|U;|{N߹q
+tʕ+W_Ko|JNMm}bWSQ''ޚ;5ѿe'ߙ?=wrD#?ISG&6uq+֘:iD?D Ds#g=HVol?C)g=D߶>ڻ~駱4
+=5p8]),X/dgM!:L8>ub!֙Eb}z[kP';0t{5n5\5bC8Qyfp$$ƪORXo#V`Ω#SDdM⊰15zO.ֲjrf{ ^{@Q˹ͼKhsuh!7ѪY9Mo=n]<h}6`$ zbQ:2V\'`?X5j TO?xQt%tvHqzT 4 0I^O1V:55GJ =j5~ҜWh ??Ċ?B{FFȞc?<12UKYbO( kDfKHz”ūCOM`(ye( ,(=D?*~Z# m@ztbWG:=4מ1.*oo}b?:q}L
+$LklQIa'*
+1w,r
+߆pט.[C@&QmP$53ls+o& JmY{s;` 'ܳ~p73to!ކNv7m|K_fI.`T!6k)2:mk|wO=ϫuk<Ve˫7Wy s|k/n@4nMǏuQ
+aFQ`0@ɍ56j(2uh+!J^.JQ^`|Ỷ`8uEС(.ӯ,CަV6oI,Ψ$/v`gVQ<16p*OnѓSC>E|9e02tI78A?W\?WZdeX~SNe[)ܩ l᠞UG>T~`m(s珬E]tAv0k%rhs'wJ1 39Y(&`BZnAuPuݢYHpf]MGxH9@@֑&X-nKKNFv͵Dž]6PFr+1oW==)/3>E}5:|jN/Z>SvjEEZـ,lYQ}ѩEfFG5:\)(;eϽKI539.76SrZRfj7+8XUrw&Iw.L:!^H?]=sUYn&† /-(hyrje^[| qg ,xPͽ%捺 bHs_$`O
+#t޴-D%!Za]8Gw`A&$X%P)Jt@0sGzܢRўč7i3CB x9cFBbCĥgvZ6hH4Mp32qEp\\k?kנ1E
+M4PUFM vؠeC+<\/4c
+i0b9na#;mi}!F1DĞVoD Ƶ@:t(8+N)o+M@G#^iy=d^[hws2eO)%n1Pн4;muZꚕwrܼ/2D$6h BP|?@)(@~1gDĈ:ޱLeh)F
+ϧ6h[:VSg}ⒼO*ueb2lQQS,AOT^D+7'}zE"upȦ^ѝ1h]Yy)rϑ|8˳_`M&Sv$_!%bD/zRI etbX\Er1P'uCC;cz0LwrGiȒ"74XFZ)-^Y=" a1Nf>2JY{$)" hLk*"D`0jY{?;&oDƒBYu Ӱ+Bg*&9'
+D
+-[jveRD RkfP'T MoqSI;ύ釻XӼF]NKZF+RhCN --z#dzZ-8fG\|_\^aHk?G%eVa?g_^5{U=[y8+=Hϖ
+~qS؏c>~c}g|n?b^E):- ~t)qz?BC\=>_ #s;?!òzB⃋Gs2_~ |ƎB\#bbs>'4 cKCjG驪@yCC"A]"P/}sdh ~BP_]U> ?ź?|FbZ}\G!UUQ9zO |~1 āv@d$Z(~ٯH;!f\I{=C{.|*^g-]h@rS-t
+4Yl8 JBt
+\HɈzRt+\t南wn\[x l=mưjEdbEO_ަ*
+<R5PEJi, w×aMRDžj3aI]6Y {nw+K'/oCի˛i]Rzy;Q#R.jVTGM*P\u %*zI9~86*
+ǘUmn㡟s#!3HH=҇۸L*+eyp`IILDk7O.T]wwءˎ({n
+,݉ON֮\-MO@a kSeڽZfbT˚伤jz!7`cO`k?vKt6&ZG^fFjț.zc":y$:gXc&f)1%bLұx>k YF. LXK
+NY*ESX*4c|V
+ĵnFU'{csm7!J>>'eІ*&p_eUɹ^15 6v;PˏYA( ڤ
+m" '/9L~AT<r-fx9﹨9dHR[co'+ >7c^6c
+NeG>ZHhU
+W`SNX5i ~#|ɕݦK[{1*w313Cdi[buA˜ \$P4Z\38Mƒ')7!~G &BND61LIH6FRtJlQf seC ;fߢ"$"?Dp0luM~]a*2FXfP""Z )m
+BiH|I{4qbAr VWj'C |0&")KwByqi0fy
+OxP 2E
+ ~Fx*;v Nӟ dl9ufyb]h'tRj$>@%*kAq[у0}.mE>ԬkyxHdzs€)W !6Rn*-(.(ok3H5UnE?I$,s NkCˆHl-G<;c2Lx7\S=u|kCT)N k Z yYyo!"5vdg(IE d=a:Q $L8v9C;F0(+-
+^h8ahC3MAn+ 3o F<EBX$LM]#京v{@9rcij9ɴ((?.8LS0K_W\+R_brbcŌ*MBaL-Ի?$rBzƵᭀFSm͵zƊ1]()v։oS9G֙^04&ad@j*j%Za,eӕ+D`^~F,)YƊZ4I[Zd1p9L)𻺺Hy-FSf@ZGt/*g#:ڴt%MOH- A= vC5S*XR C݁S)0Oi^uGf27ec3j05uScƳg}*Z=#7|٪/5%=g (el.uh&]Y-7Zw3KϲKZ|oZ<0vl 3[ R [K]vƫ3Y4eP!CbH_88?_S"Ww'On
+dp͍;cn/z aܠGEoG3jVR{
+A-(@P~v o)՞;=
+~6 X!\אxpqW*Gil<-st*vkёݨR𢄬Cd<@Jxϗg+ܫPޑb[~<[@Q`ߢj藴.W-lgWH7Pψ$X*CH+sZYZF3I;T$%$0`g0פ]x<N+ƒBKzlȎ9g\b R=yȁвy;6B~6;v(WBR0Skk`]QN8ҊCj:1*?=c0FIwv<0)GϵN:<Ok2}:2hsV͓F9n 4r =aCL!%dI'h;$~ 4(-3D8h2(8EC/h ĶV9~dՙ#OhXrc)YH!u2veiPA d:wxg;Q3XLwS^-PNQ'hC"
+Us0G%
+\\hUAGw
+ ߮Mz$l9⫱p}.1&_='cѴ䪺(h9ܴ mF%`g&5,l,mUA61$ɼQUܶV= "c{su
+3T.gZX9.\ͻH̚NⰆF+EqHxn.oyܺԬ])^){jdVI;X5gXxÎ 16]q$nĐ~ qD`x'_ly0cr砣\pxr씓#i}OVXH&G"K6~bd0 hfV͹z!Juڄĥ"v6! 砢|-8ƴ'NϕY,%o20m BՄc0#V@82uxO Qm~j*,&l-BX:Zխ` f`U| ls^s/% =`9T_0ǰ9&5w~UU+1UiōטrzH+Ef [@=!,U:BqzLv_}.i
+/gѤ[CVAiŌ]G$~RG5~a R,qP}ĤPtfYIz h*mep&qp<>JQ(4$OumܖSWcDM&4n#?XX;Yc}ěo4["_g;t JW<ɛCߟleJ1BrNh֔2tnR=\o\$&r]*Zm*J/prғhYW;gT#I
+ 4%&3
+nZiO%knҭ2_*XwkB Ts\L;9K&roZd#ݒSm,d_3ktGEy45,,8sIHV?Mss2.;bo,'s[ l 5Nteً7t<DI"Phڻ0RٝluzW: rNjr[$3su<rpKH :90y>!+ 0j6\Driji
+X"! K2Zc
+1hɹTeTNTlf<c]n2%U5Δ#Sa)io\_H`2a鞟GG_#"-%
+O``[Xrr"! ֐y8&R`3  &JsJKvc [ii1ц&e
+J!7\N"7 }pN;xs҈bh D7Y''t6L=lia$b9fSU[Yi?(5PqO@o婆5fn(:΃` 4O>ϱ.*Fnv,9٤l^s̶ 1eQ-E
+q hTG?T<GmXo%Mg1(1~cYe)2[3{FDPhj"H W+mQ[_p}fdՋ-*p{"X. ۄNY|̱Q'mCjt -nF{ ǚ/Xk>%|%H⑙UN eiiZ
+nQ;#=]b(|Ҵӣw~.WVTuUޢչ_{k`E/Z4֢*E}#x._bي߯co r4rkZ ^>YWFvwL}MWFu>gmpʌh'KV?ge襭^;?vʌ3WF!6u0H;Eߕ#[U-Ɛv<rhaniN6[w*Ӳ:*RGޒPEpeHr$m=!+Xzν2dYz%[N-VM0@L *ٷ
+V*9`ub@^%
+$m%/nSJs% gkUOi[c̀"fDI`0+
+ :wZ}K}(Y3$V:9Ǧ̕iǯƞ "$௵!Gg+G1b%ޕykg3
+ZBx '#1L&ϣhZ64xhhNgJhj]R\c<s&5V D D<ie.,#a}882%Dl5,EϜ͜P&bCrhP{: \x~憦WgI_6'3`1d놈Wʊ7BZ} B c{k 6M
+2T OEtµlD(LVӆ *8-ż}=z#%Ug$BV
+,O@-f
+Ʉ m_jۺGg^%A|?nK}D/|#Ǐ~ZW\b7~BEcvc&5Ju|oS6/D9y5V6gj^ǎwq%;ΉހoV#t^r.֏qϸuVka,?tg6:lD=N[f2d~rH 0ta
+fZ6䨺iw-؇1Ns#-Rl 4y~K0ƘJ#?J@ߜ5 'C;Vp\
+dab Q!aTF-ڱԚʨ
+qnCO{,.PȹX8t%AN<Hޗ
+i A:vYnTr V v|뻬9B}$=9w|7W\P9$K4?H<m
+'ú:9VU$ ?Œ(=qw#eiVu(&`}Kڤ6K~PPC^qty.aT.VK<lcI]"Y D.$u6=\=zh٠0< 28(24stXSgn뱾](G.[&0UλOmj:9JJ6#.w \p<h#aЈ`d1X`:umΖ8$s
+q+VIɈJvɪX]#]B-8݈qi*'#ZJUZ7K1\v!݂pzBf|71>
-o=h"s.0/o՗4F,u R:
-Ix-(9ь1*eJ NM%dT}b^<js1{I&
-kd:u"uȄ3 N#Ж'hłaʪ?G%L}@}U>މCyz=<SFN<Cb̾l1C k AAa PkyT>ɤUdSAp "<,LH3p֪,><(6>HX/ })-JD%<S>>0 #k|+Li346foy5wӄl$'hD-` 6nn*Zh1ҒF+.: L
-18TUC,dWx⽖c/%lE#qwVϭO6BVKNKڹ2"Ϥ[rs76%qNjƚ}V-o@: 8o+K=oُ+&͕_ZV*ęa
-^ [OE378' Ns>r|2LJwEYe=>|r_1, I։XefwWA6 9y.nYe1~(dai)jw5u8<00a.NLgrM̾xfcgnqT"@3⼮q4pdUl).
-^gC\9Et11*!bɲw6KOL^]a+\jn?Ĕ8)ںZ8!/LdʕQxjje\VRl|oX-AqJRͨY\]$KTO{ܗs"-ތla$qtsvy,Lx 0R%A4C!!;2qdp譱y2-]U5SLI_5>~!2Lv̯
-AM +.G~@fzfIzM3Zd ODp~+<rPo[_8NNe⨘aA1m`SmV_ӭ"
-M`kbgl2; g'ֺ)mYpv[u|ݏ <5{>-jZn_
-3ѥ%k-=ny_"S_ Gm'ZN5;(ޞFE"'vn"t>a<f[*
-C^]#g| nqRBtFpvw|n
--s+~r,I4'suӗRodαycd'gvtE;[vfJOCBiX&&D-6|f&,$լ~Bi,a#`awmT&Q4~kTY.j(6/76SGi< E1Fdf1Vݛq{`;wY+/<;oi|HJrh<u •2`sIA$EʘC1uj."b㕽ފvhJdS[v( ~,Ǵڳ*wE@k&Sk|r `;g=QL†XsYNNϑK@T
-܅R}LF
-T_R W>%hTŜKoݨNԦP|K5^
-Bw mQׅR"KI
-c #%Sv0.Νղx ,f1=IN(>ʦk'Yo^F2լ˷
-w;GMG),QW/ORB>o;ci2MJ-EG&0ľi"ׂ&-dޅ^2A&daհH` 0{<i7
-]C.0Ѽe޵R@G `<孯&KSq.(vuyyi
-×Υm|rRd(PSyzcS˲|?-JF:QE%\<W(sYanlCK<RFK ZY6PdR\+L,RS]x$r -x'Dftw^-Ȩ~tbRn#[3@fC$zg,`⑁HX
-Ԉ=ҜIr\A O=
-h4,BaH}qdxKΛ~Kdݍx)D d5Mv"/ԓ
-K nd8p)+ ҀEg
-.!@l3$D@M-p
-%T-0ʿIT-VF}i!NEm_`L٠Գg/{ka;Q&Du֫v%JeuBSO}@yI?F"}ھ'Fv;WS;qu* Rn#V4,FPu5@ٷl9! }j<26mSAe%EඎC+ʎܽg6;].GI% LQcm=ń5}éK9[]XٵYu^n̗ 5v[q31ʂ
-RY~"jE6GJÙ;)qUn&J$:KlY*]OP|CӴ.=dl$)M*Ȥ*-xG
- JÏb2)D9jOFx(Cԭkez L.waXtQ8gG~*fݘUH9%0,1F3Yĸz-3P-?xRb]́0lT
-h̺u)651rm628/T8:2Kiteբ5Uc3)sIHbMfT):gFؘ:ih!ZCʼnʨ ~L4n6x d[O!{GiNn)Tw73*]-Ox
-!kRy@Sh6
-W`j P](o7=ޱѪ(W5㰳]kA.9|h8\-_ՃL+qsw{NU5˲竫j
-L]e~lgZkd0^$0Aʝ$M34#]"MM ̻Fѱ1+P3GFO$z$b AǺ(ab88mNe:NIM7dcP}{jo5*rQJ8hE15B21yu`Y8g4[+uˡm+22uX{I XͰs>Xi{!^|*a&bI ѷRw(]y;Ӷv"f^,ex[8,Ɏr>xv~E;;;JS#+)IǮaNpֈ{e) '[-Zt v.>CfƿJT;~E6wP4mB kh~'n7>jc : 7 73ܓ&*3bJlTc %fPt(78ueQY#F|ڽᘊɅaxԝhkE0SwiD2j;"SQ%UC05e!8,j}01 d:z)bdJ}@%sh&PU3bfWˊ`
-7(M$a?Ls竁9\tU%Ȩ}Y@\%\,p3ZU@PAkNm}#cl_`za{qpLCMsrH}E9yQUnAU6@=N75 ma,Afq<*έ6 ޘ%xlM-P[04b0n3Ӑ:O8<82b19ă#H#a\/m>l~郼~8Kop+uUl}yg>FɨaEhqAA$F(=В>Ep&&
-9JBBa dV_QhS C)XPQ7UJphWxT5 ~^:b%Y^!9/G0!cNJBS9ׯ:&03 b{;S.hFlX`Dcî !3]AaN"[&kzTza`8& kެ)!
-d^q-unzy84ė ea_ c}cx?N7&H>eӜeW&8"ys kmSY XKAx)"r
--(ȸ"NG(qM)ZȋIF8Õfk%h3Vœz[Y
-, \x<Z25a0)s- G$:IB/xoˤoY~Nq2Y":6ݔ8c=bԮSP 89OS'
-ͷGV8~۳زѷl[6g8sQ
-Uef_R<*%K1
-z,7
-U<jpŇ9) C1.Am9X\# ~X)l)l2`O7΍4o[sji%D1
-gCb);1`ֆ*g@e2U&oZʹxbܪ0huu]85Ms}Axˤ49L$IX:&:,;V#un򵲙&}}rY
-hdOX7c) /EKgpo8$5%,sV۝ ƞhx/V~D8$ > dÈd,qZW[AKw}ȼ>q0p!D|^]mi;rEH*k\mɃ
-;/9W3:! KȋpP{ȍ#T/$q̴i3#Xÿpn8gmRh<CcĤ,)Y
-S7U(Nnh/mVN|(
-͋_@,C ,[@
-v#ly#p7"ݤj# o2?:d_lDP|j9习StHn&gYw,MU>-ū$͙OiƏ#I8SaP'NG+r%u񨋧KvPEʠ
-B $9c.
-P8
-GHlKmcd;:qTwFv ߾K03>~2Gq 0.ïU0[^C<6+\fެGφb/;@wZX?dj+29VCa]iXXڵb{-*T+&L0Џr;-2+."Š!N~哌1,M_2S?a:w951NQ -ӆykbA< NvnNvI`«٘"TNmdG.[_b9ܬ`
-`_f@Fǐu֐0oLtH0mƄ9n $WWZT~Y+n;! i8[ Cɼ:7RFLyN}C=(aꂶӜߞGf٦S'8c P3 䊗l59S,)<IZy݁+4-O6J Lj 53&ZLwKRjj@zD_-n35* IJ'C * ī6 pP@VkgZ4z•yLJ`KL=ScjR\ Q#p@
-s{(ǐ]<|sdFىnfhSXsuf wPz87fr,6Ȝ-WL+KsxxfyGGnS U#<VEK^2
-
-+Ȇs}2nL)IlɕdJiO|@Ob~Oj:[VC1GjD29ǏhU}@9SJ{:rh!N G%.Z4Vc@l-]bTL;EYV:; z zy~Q(|QR&wwE}2t {b}ksRjA窊ޥB!^sIAE:cݍb~&^^nb-Yg{_x޲uzL\r.(8J ._AuGb>I ]25n>PkOY@MfADC&$
-n%X4Z4>ĨI: U.Q+NT?¬ҖQ=~ pej]Ll]=$ַMM2-Yß( x&phikN(l]2Qzy[!$%i/0d<aP{ 5:aӼ[lIzilA9/'AM<7)g pڕn[&Y7tH8Il H&Rq`f{)mA_mnX&ԇQű0`-yH[VT\d9x2CU$kʃyBJ
-!/<Q[e2 h6jhoݡ#}F@G@,1f<b[Z[49}=xDϽ bh9 Ӣ z xp~8wߙ0Dz=$ֽ@D@cQlVTPiEj ƚ5UtB)g_oQz!(eZu`ok%8_saWȬŠ(A؞ %aSl:.1C0 dhG/`yl[[?O_ww~gOiן=%Oן?۬w㿨_khY{ 2f߶^0@,R؉Yx R ֐f.yZ ͩ Ls̩7J9lA56qP+(`a;knTpa[+r,+X4 $[˝8d2J#q3v3uMq!aZi%m"mw% &;(QUJR`<`mh/&@
-
-=+:Y3tdfj;o>j`MN.Pεl}w6PVZI1;N'X_Ĝ Vf^^$,'l0kŸ
- 7B=\<zS[ãWY?yx+<<Z<ތţ?|.=[ţ'O:xxꉁG
-KytlڧQ69y&-بwMBgTP<F&OK&2<a,W~QtI)X<!l?Ap\!o;R7n)59T86
-HtlhmS6J=/Yov |K˳W!e%*Ey
-1I/1DeW\#m`jS2
-3:)U^RjIr&g5/;"|߭ 17^s B^!\5BW4r-R
-^4L jњ!-%p( F'Ib7֬1
-(7lاRC N,WQY68sMf4)jWv&.^'+2ثӑc853._oژI"B%ž q5f5Py3(Z4R4
--ƈ
-h|=UTTX|<?:f\;eG~cP:6eBA8ntKqK=l Ư!͔"Jn*Qx`-Ip62\eNpPHs[_\L#|H\yl Ը֎Vy!\~./:W$58J!t/NXkUoNAB,ToeyE|Y<7H/V)?/2vͼ'g?g