summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname547
-rw-r--r--FILES.byname.gzbin2436461 -> 2436530 bytes
-rw-r--r--FILES.last07days1003
-rw-r--r--macros/latex/contrib/fancyvrb/Changes1
-rw-r--r--macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdfbin141127 -> 141454 bytes
-rw-r--r--macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex10
-rw-r--r--macros/latex/contrib/fancyvrb/latex/fancyvrb.sty4
-rw-r--r--macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdfbin7679593 -> 8451374 bytes
-rw-r--r--macros/latex/contrib/profcollege/latex/ProfCollege.sty2218
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp195
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp55
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp1
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCMonde.mp150
-rw-r--r--macros/latex/contrib/profcollege/metapost/datastest/Casia.dat5
-rw-r--r--macros/latex/contrib/profcollege/metapost/datastest/russie3.dat8819
-rw-r--r--macros/latex/contrib/profcollege/metapost/datastest/russie3bis.dat465
-rw-r--r--macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx44
-rw-r--r--macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdfbin2337625 -> 2339629 bytes
-rw-r--r--support/pkgcheck/CHANGES.md326
-rw-r--r--support/pkgcheck/Cargo.toml53
-rw-r--r--support/pkgcheck/LICENSE-MIT2
-rw-r--r--support/pkgcheck/README.md11
-rwxr-xr-xsupport/pkgcheck/bin/pkgcheckbin6966792 -> 7258856 bytes
-rw-r--r--support/pkgcheck/docs/errorsd.tex16
-rw-r--r--support/pkgcheck/docs/fatald.tex23
-rw-r--r--support/pkgcheck/docs/informationd.tex44
-rw-r--r--support/pkgcheck/docs/pkgcheck.pdfbin77966 -> 89196 bytes
-rw-r--r--support/pkgcheck/docs/pkgcheck.tex181
-rw-r--r--support/pkgcheck/docs/title.tex2
-rw-r--r--support/pkgcheck/docs/warningsd.tex10
-rw-r--r--support/pkgcheck/src/gparser.rs4
-rw-r--r--support/pkgcheck/src/linkcheck.rs31
-rw-r--r--support/pkgcheck/src/main.rs317
-rw-r--r--support/pkgcheck/src/messages/errorsd.rs208
-rw-r--r--support/pkgcheck/src/messages/fatald.rs50
-rw-r--r--support/pkgcheck/src/messages/informationd.rs57
-rw-r--r--support/pkgcheck/src/messages/mod.rs602
-rw-r--r--support/pkgcheck/src/messages/warningsd.rs31
-rw-r--r--support/pkgcheck/src/recode.rs28
-rw-r--r--support/pkgcheck/src/utils.rs85
-rw-r--r--systems/mac/mactex/ExtrasFolder.pdfbin38153 -> 38145 bytes
-rw-r--r--systems/mac/mactex/Licenses.txt4
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl1
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb68
-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.xzbin2382272 -> 2383044 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--timestamp2
51 files changed, 13007 insertions, 2700 deletions
diff --git a/FILES.byname b/FILES.byname
index 15b994eb9c..4dbadfaf2f 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5228,7 +5228,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
-2022/05/25 | 106325 | FILES.last07days
+2022/05/26 | 139687 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -165483,7 +165483,7 @@
1997/10/07 | 2953 | info/biblio/texbook1.ltx
2022/02/09 | 460820 | info/biblio/texbook2.bib
2022/02/09 | 2883 | info/biblio/texbook2.ltx
-2022/05/24 | 1001991 | info/biblio/texbook3.bib
+2022/05/25 | 1001992 | info/biblio/texbook3.bib
2022/02/09 | 3916 | info/biblio/texbook3.ltx
2019/03/04 | 179842 | info/biblio/texgraph.bib
2019/03/04 | 4179 | info/biblio/texgraph.ltx
@@ -215281,15 +215281,15 @@
2010/12/16 | 32810 | macros/latex/contrib/fancytooltips/tip.pdf
2010/12/16 | 586 | macros/latex/contrib/fancytooltips/tip.tex
2012/09/26 | 1590569 | macros/latex/contrib/fancytooltips.zip
-2022/04/12 | 1941 | macros/latex/contrib/fancyvrb/Changes
-2022/04/12 | 141127 | macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
-2022/04/12 | 41311 | macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
+2022/05/26 | 1988 | macros/latex/contrib/fancyvrb/Changes
+2022/05/26 | 141454 | macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
+2022/05/26 | 41636 | macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
2020/06/07 | 4642 | macros/latex/contrib/fancyvrb/latex/fancyvrb-ex.sty
-2022/04/12 | 44020 | macros/latex/contrib/fancyvrb/latex/fancyvrb.sty
+2022/05/26 | 44021 | macros/latex/contrib/fancyvrb/latex/fancyvrb.sty
2020/06/07 | 5109 | macros/latex/contrib/fancyvrb/latex/hbaw.sty
2020/08/03 | 5281 | macros/latex/contrib/fancyvrb/latex/hcolor.sty
-2022/04/12 | 1822 | macros/latex/contrib/fancyvrb/README
-2022/04/12 | 164468 | macros/latex/contrib/fancyvrb.zip
+2022/04/16 | 1822 | macros/latex/contrib/fancyvrb/README
+2022/05/26 | 164924 | macros/latex/contrib/fancyvrb.zip
2018/12/18 | 29200 | macros/latex/contrib/fascicules/fascicules.dtx
2018/12/18 | 1592 | macros/latex/contrib/fascicules/fascicules.ins
2018/12/19 | 181208 | macros/latex/contrib/fascicules/fascicules.pdf
@@ -225774,15 +225774,15 @@
2022/05/05 | 80898 | macros/latex/contrib/prociagssymp/TestprocIAGssymp.pdf
2022/05/05 | 6335 | macros/latex/contrib/prociagssymp/TestprocIAGssymp.tex
2022/05/06 | 86110 | macros/latex/contrib/prociagssymp.zip
-2022/03/12 | 7679593 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
-2022/03/12 | 2127632 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
+2022/05/26 | 8451374 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+2022/05/26 | 2133462 | macros/latex/contrib/profcollege/doc/profcollege-doc.zip
2021/08/22 | 23478 | macros/latex/contrib/profcollege/latex/PfCEquationComposition2.tex
2021/08/22 | 19350 | macros/latex/contrib/profcollege/latex/PfCEquationLaurent1.tex
2021/08/22 | 20438 | macros/latex/contrib/profcollege/latex/PfCEquationPose1.tex
2021/08/22 | 27165 | macros/latex/contrib/profcollege/latex/PfCEquationSoustraction2.tex
2021/08/22 | 15309 | macros/latex/contrib/profcollege/latex/PfCEquationSymbole1.tex
2021/08/22 | 22791 | macros/latex/contrib/profcollege/latex/PfCEquationTerme1.tex
-2022/03/12 | 766894 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
+2022/05/26 | 787701 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
2021/11/06 | 8247 | macros/latex/contrib/profcollege/metapost/datastest/afganistan.dat
2021/11/06 | 10915 | macros/latex/contrib/profcollege/metapost/datastest/afriquesud1.dat
2021/11/06 | 218 | macros/latex/contrib/profcollege/metapost/datastest/afriquesud2.dat
@@ -225826,7 +225826,7 @@
2021/11/06 | 6722 | macros/latex/contrib/profcollege/metapost/datastest/cameroun.dat
2021/11/06 | 110829 | macros/latex/contrib/profcollege/metapost/datastest/canada.dat
2021/11/06 | 5014 | macros/latex/contrib/profcollege/metapost/datastest/capitales.dat
-2021/11/06 | 1580 | macros/latex/contrib/profcollege/metapost/datastest/Casia.dat
+2022/04/09 | 1613 | macros/latex/contrib/profcollege/metapost/datastest/Casia.dat
2021/11/06 | 1577 | macros/latex/contrib/profcollege/metapost/datastest/Casie.dat
2021/11/06 | 70 | macros/latex/contrib/profcollege/metapost/datastest/Ccaraibes.dat
2021/11/06 | 1625 | macros/latex/contrib/profcollege/metapost/datastest/Ceurope.dat
@@ -225940,6 +225940,8 @@
2021/11/06 | 112436 | macros/latex/contrib/profcollege/metapost/datastest/russie1bis.dat
2021/11/06 | 112908 | macros/latex/contrib/profcollege/metapost/datastest/russie1.dat
2021/11/06 | 1010 | macros/latex/contrib/profcollege/metapost/datastest/russie2.dat
+2022/04/09 | 6500 | macros/latex/contrib/profcollege/metapost/datastest/russie3bis.dat
+2022/04/09 | 106391 | macros/latex/contrib/profcollege/metapost/datastest/russie3.dat
2021/11/06 | 1784 | macros/latex/contrib/profcollege/metapost/datastest/rwanda.dat
2021/11/06 | 4939 | macros/latex/contrib/profcollege/metapost/datastest/saharaouest.dat
2021/11/06 | 1491 | macros/latex/contrib/profcollege/metapost/datastest/salvador.dat
@@ -225983,20 +225985,21 @@
2021/11/06 | 16443 | macros/latex/contrib/profcollege/metapost/datastest/zaire.dat
2021/11/06 | 10433 | macros/latex/contrib/profcollege/metapost/datastest/zambie.dat
2021/11/06 | 5644 | macros/latex/contrib/profcollege/metapost/datastest/zimbabwe.dat
-2021/08/22 | 5056 | macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp
-2022/03/12 | 5196 | macros/latex/contrib/profcollege/metapost/PfCArithmetique.mp
-2022/02/16 | 13296 | macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
-2021/08/22 | 431 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
-2021/11/06 | 32442 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
-2021/08/22 | 5386 | macros/latex/contrib/profcollege/metapost/PfCLabyNombre.mp
-2021/08/22 | 611 | macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
-2021/11/06 | 41132 | macros/latex/contrib/profcollege/metapost/PfCMonde.mp
-2021/08/22 | 9412 | macros/latex/contrib/profcollege/metapost/PfCMosaique.mp
-2021/08/22 | 102817 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
-2022/03/12 | 104853 | macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
-2021/08/22 | 6652 | macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp
+2022/05/26 | 5056 | macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp
+2022/05/26 | 5196 | macros/latex/contrib/profcollege/metapost/PfCArithmetique.mp
+2022/05/26 | 13296 | macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
+2022/05/26 | 12999 | macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp
+2022/05/26 | 431 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
+2022/05/26 | 34080 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+2022/05/26 | 5386 | macros/latex/contrib/profcollege/metapost/PfCLabyNombre.mp
+2022/05/26 | 660 | macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
+2022/05/26 | 42562 | macros/latex/contrib/profcollege/metapost/PfCMonde.mp
+2022/05/26 | 9412 | macros/latex/contrib/profcollege/metapost/PfCMosaique.mp
+2022/05/26 | 102817 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
+2022/05/26 | 104853 | macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
+2022/05/26 | 6652 | macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp
2021/01/18 | 435 | macros/latex/contrib/profcollege/README
-2022/03/12 | 11892642 | macros/latex/contrib/profcollege.zip
+2022/05/26 | 12700153 | macros/latex/contrib/profcollege.zip
2022/04/26 | 130555 | macros/latex/contrib/proflabo/doc/ProfLabo-doc.pdf
2022/04/26 | 16528 | macros/latex/contrib/proflabo/doc/ProfLabo-doc.tex
2022/04/26 | 323 | macros/latex/contrib/proflabo/README.md
@@ -245281,11 +245284,11 @@
2021/05/16 | 694569 | macros/unicodetex/latex/nwafuthesis/logo/nwafu-bar.pdf
2021/02/25 | 656165 | macros/unicodetex/latex/nwafuthesis/logo/nwafu-circle.pdf
2022/04/04 | 33865 | macros/unicodetex/latex/nwafuthesis/logo/workflow.pdf
-2022/05/24 | 62589 | macros/unicodetex/latex/nwafuthesis/nwafuthesis-doc.dtx
-2022/05/24 | 269229 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx
-2022/05/24 | 2337625 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf
+2022/05/26 | 62589 | macros/unicodetex/latex/nwafuthesis/nwafuthesis-doc.dtx
+2022/05/26 | 269938 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx
+2022/05/26 | 2339629 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf
2022/04/04 | 1542 | macros/unicodetex/latex/nwafuthesis/README.md
-2022/05/24 | 3431479 | macros/unicodetex/latex/nwafuthesis.zip
+2022/05/26 | 3433900 | macros/unicodetex/latex/nwafuthesis.zip
2022/04/20 | 966307 | macros/unicodetex/latex/polyglossia/polyglossia.dtx
2022/04/20 | 351613 | macros/unicodetex/latex/polyglossia/polyglossia.pdf
2022/04/20 | 1942 | macros/unicodetex/latex/polyglossia/README.md
@@ -274215,34 +274218,34 @@
2012/04/18 | 27484 | support/pkfix/pkfix.pl
2012/04/18 | 9740 | support/pkfix/README
2012/04/18 | 12122 | support/pkfix.zip
-2022/01/15 | 6966792 | support/pkgcheck/bin/pkgcheck
-2021/12/31 | 1672 | support/pkgcheck/Cargo.toml
-2022/01/15 | 8591 | support/pkgcheck/CHANGES.md
-2021/10/03 | 15785 | support/pkgcheck/docs/errorsd.tex
-2020/01/17 | 2157 | support/pkgcheck/docs/fatald.tex
-2021/10/03 | 2574 | support/pkgcheck/docs/informationd.tex
-2022/01/15 | 77966 | support/pkgcheck/docs/pkgcheck.pdf
-2020/07/25 | 10638 | support/pkgcheck/docs/pkgcheck.tex
-2022/01/15 | 33 | support/pkgcheck/docs/title.tex
-2021/10/03 | 3447 | support/pkgcheck/docs/warningsd.tex
+2022/05/26 | 7258856 | support/pkgcheck/bin/pkgcheck
+2022/05/01 | 1920 | support/pkgcheck/Cargo.toml
+2022/05/26 | 10023 | support/pkgcheck/CHANGES.md
+2022/05/03 | 16054 | support/pkgcheck/docs/errorsd.tex
+2022/05/23 | 3278 | support/pkgcheck/docs/fatald.tex
+2022/05/11 | 4311 | support/pkgcheck/docs/informationd.tex
+2022/05/26 | 89196 | support/pkgcheck/docs/pkgcheck.pdf
+2022/05/26 | 13076 | support/pkgcheck/docs/pkgcheck.tex
+2022/05/26 | 33 | support/pkgcheck/docs/title.tex
+2022/05/11 | 3985 | support/pkgcheck/docs/warningsd.tex
2018/12/18 | 11357 | support/pkgcheck/LICENSE-APACHE
-2020/02/02 | 1074 | support/pkgcheck/LICENSE-MIT
+2022/01/15 | 1074 | support/pkgcheck/LICENSE-MIT
2018/12/18 | 509 | support/pkgcheck/quick_intro.txt
-2019/02/26 | 1353 | support/pkgcheck/README.md
+2022/05/10 | 1257 | support/pkgcheck/README.md
2021/10/01 | 14673 | support/pkgcheck/src/filemagic.rs
2019/03/11 | 992 | support/pkgcheck/src/generate.pest
2020/03/07 | 587 | support/pkgcheck/src/generate.pest.md
-2019/12/30 | 1371 | support/pkgcheck/src/gparser.rs
-2021/11/06 | 7330 | support/pkgcheck/src/linkcheck.rs
-2022/01/14 | 47250 | support/pkgcheck/src/main.rs
-2021/10/25 | 11496 | support/pkgcheck/src/messages/errorsd.rs
-2019/12/23 | 1445 | support/pkgcheck/src/messages/fatald.rs
-2020/11/07 | 1957 | support/pkgcheck/src/messages/informationd.rs
-2021/10/25 | 18288 | support/pkgcheck/src/messages/mod.rs
-2020/11/07 | 2384 | support/pkgcheck/src/messages/warningsd.rs
-2020/01/13 | 7048 | support/pkgcheck/src/recode.rs
-2021/11/09 | 15428 | support/pkgcheck/src/utils.rs
-2022/01/15 | 3177230 | support/pkgcheck.zip
+2022/03/12 | 1382 | support/pkgcheck/src/gparser.rs
+2022/03/26 | 7382 | support/pkgcheck/src/linkcheck.rs
+2022/05/22 | 50361 | support/pkgcheck/src/main.rs
+2022/05/22 | 11473 | support/pkgcheck/src/messages/errorsd.rs
+2022/05/22 | 1978 | support/pkgcheck/src/messages/fatald.rs
+2022/05/11 | 2958 | support/pkgcheck/src/messages/informationd.rs
+2022/05/22 | 17790 | support/pkgcheck/src/messages/mod.rs
+2022/05/11 | 2685 | support/pkgcheck/src/messages/warningsd.rs
+2022/02/25 | 6902 | support/pkgcheck/src/recode.rs
+2022/03/26 | 15094 | support/pkgcheck/src/utils.rs
+2022/05/26 | 3310472 | support/pkgcheck.zip
1992/05/06 | 47595 | support/plttopic/acad.plt
1990/11/06 | 6348 | support/plttopic/att.bgi
1992/05/12 | 45982 | support/plttopic/cascade.plt
@@ -280615,9 +280618,9 @@
2019/02/28 | 194976 | systems/texlive/tlnet/archive/basque-date.doc.r26477.tar.xz
2019/02/28 | 1696 | systems/texlive/tlnet/archive/basque-date.r26477.tar.xz
2019/02/28 | 3180 | systems/texlive/tlnet/archive/basque-date.source.r26477.tar.xz
-2022/03/05 | 917980 | systems/texlive/tlnet/archive/bath-bst.doc.r62393.tar.xz
-2022/03/05 | 8268 | systems/texlive/tlnet/archive/bath-bst.r62393.tar.xz
-2022/03/05 | 36272 | systems/texlive/tlnet/archive/bath-bst.source.r62393.tar.xz
+2022/05/26 | 927208 | systems/texlive/tlnet/archive/bath-bst.doc.r63398.tar.xz
+2022/05/26 | 8460 | systems/texlive/tlnet/archive/bath-bst.r63398.tar.xz
+2022/05/26 | 37588 | systems/texlive/tlnet/archive/bath-bst.source.r63398.tar.xz
2019/02/28 | 2200 | systems/texlive/tlnet/archive/bbcard.doc.r19440.tar.xz
2019/02/28 | 6828 | systems/texlive/tlnet/archive/bbcard.r19440.tar.xz
2019/02/28 | 437588 | systems/texlive/tlnet/archive/bbding.doc.r17186.tar.xz
@@ -280715,7 +280718,7 @@
2020/04/22 | 5992 | systems/texlive/tlnet/archive/bearwear.source.r54826.tar.xz
2022/04/26 | 666064 | systems/texlive/tlnet/archive/beaulivre.doc.r63133.tar.xz
2022/04/26 | 4388 | systems/texlive/tlnet/archive/beaulivre.r63133.tar.xz
-2022/05/24 | 890976 | systems/texlive/tlnet/archive/beebe.r63377.tar.xz
+2022/05/26 | 890948 | systems/texlive/tlnet/archive/beebe.r63397.tar.xz
2022/05/08 | 785552 | systems/texlive/tlnet/archive/begingreek.doc.r63255.tar.xz
2022/05/08 | 1808 | systems/texlive/tlnet/archive/begingreek.r63255.tar.xz
2022/05/08 | 7856 | systems/texlive/tlnet/archive/begingreek.source.r63255.tar.xz
@@ -280837,9 +280840,9 @@
2020/01/02 | 193792 | systems/texlive/tlnet/archive/biblatex-archaeology.source.r53281.tar.xz
2019/02/28 | 182764 | systems/texlive/tlnet/archive/biblatex-arthistory-bonn.doc.r46637.tar.xz
2019/02/28 | 7784 | systems/texlive/tlnet/archive/biblatex-arthistory-bonn.r46637.tar.xz
-2022/03/05 | 393648 | systems/texlive/tlnet/archive/biblatex-bath.doc.r62399.tar.xz
-2022/03/05 | 8260 | systems/texlive/tlnet/archive/biblatex-bath.r62399.tar.xz
-2022/03/05 | 31796 | systems/texlive/tlnet/archive/biblatex-bath.source.r62399.tar.xz
+2022/05/26 | 454200 | systems/texlive/tlnet/archive/biblatex-bath.doc.r63401.tar.xz
+2022/05/26 | 10012 | systems/texlive/tlnet/archive/biblatex-bath.r63401.tar.xz
+2022/05/26 | 34796 | systems/texlive/tlnet/archive/biblatex-bath.source.r63401.tar.xz
2019/02/28 | 104796 | systems/texlive/tlnet/archive/biblatex-bookinarticle.doc.r40323.tar.xz
2019/02/28 | 1968 | systems/texlive/tlnet/archive/biblatex-bookinarticle.r40323.tar.xz
2020/03/02 | 282448 | systems/texlive/tlnet/archive/biblatex-bookinother.doc.r54015.tar.xz
@@ -286491,8 +286494,8 @@
2019/02/28 | 7728 | systems/texlive/tlnet/archive/logicproof.source.r33254.tar.xz
2019/02/28 | 810144 | systems/texlive/tlnet/archive/logicpuzzle.doc.r34491.tar.xz
2019/02/28 | 15228 | systems/texlive/tlnet/archive/logicpuzzle.r34491.tar.xz
-2021/07/29 | 1254384 | systems/texlive/tlnet/archive/logix.doc.r60099.tar.xz
-2021/07/29 | 2189256 | systems/texlive/tlnet/archive/logix.r60099.tar.xz
+2022/05/26 | 2412652 | systems/texlive/tlnet/archive/logix.doc.r63399.tar.xz
+2022/05/26 | 2212816 | systems/texlive/tlnet/archive/logix.r63399.tar.xz
2019/02/28 | 67724 | systems/texlive/tlnet/archive/logpap.doc.r15878.tar.xz
2019/02/28 | 5880 | systems/texlive/tlnet/archive/logpap.r15878.tar.xz
2019/02/28 | 22100 | systems/texlive/tlnet/archive/logpap.source.r15878.tar.xz
@@ -287949,9 +287952,9 @@
2019/02/28 | 7064 | systems/texlive/tlnet/archive/niceframe.source.r36086.tar.xz
2019/02/28 | 604 | systems/texlive/tlnet/archive/niceframe-type1.doc.r44671.tar.xz
2019/02/28 | 276328 | systems/texlive/tlnet/archive/niceframe-type1.r44671.tar.xz
-2022/05/09 | 1978384 | systems/texlive/tlnet/archive/nicematrix.doc.r63262.tar.xz
-2022/05/09 | 34644 | systems/texlive/tlnet/archive/nicematrix.r63262.tar.xz
-2022/05/09 | 113940 | systems/texlive/tlnet/archive/nicematrix.source.r63262.tar.xz
+2022/05/26 | 1991948 | systems/texlive/tlnet/archive/nicematrix.doc.r63402.tar.xz
+2022/05/26 | 34952 | systems/texlive/tlnet/archive/nicematrix.r63402.tar.xz
+2022/05/26 | 114424 | systems/texlive/tlnet/archive/nicematrix.source.r63402.tar.xz
2019/02/28 | 2473836 | systems/texlive/tlnet/archive/nicetext.doc.r38914.tar.xz
2019/02/28 | 54740 | systems/texlive/tlnet/archive/nicetext.r38914.tar.xz
2019/02/28 | 28908 | systems/texlive/tlnet/archive/nicetext.source.r38914.tar.xz
@@ -289046,8 +289049,8 @@
2020/07/15 | 446940 | systems/texlive/tlnet/archive/polytable.doc.r55837.tar.xz
2020/07/15 | 6408 | systems/texlive/tlnet/archive/polytable.r55837.tar.xz
2020/07/15 | 21528 | systems/texlive/tlnet/archive/polytable.source.r55837.tar.xz
-2022/01/24 | 2004 | systems/texlive/tlnet/archive/poormanlog.doc.r61719.tar.xz
-2022/01/24 | 3796 | systems/texlive/tlnet/archive/poormanlog.r61719.tar.xz
+2022/05/26 | 2092 | systems/texlive/tlnet/archive/poormanlog.doc.r63400.tar.xz
+2022/05/26 | 3812 | systems/texlive/tlnet/archive/poormanlog.r63400.tar.xz
2020/07/24 | 307920 | systems/texlive/tlnet/archive/postage.doc.r55920.tar.xz
2020/07/24 | 2012 | systems/texlive/tlnet/archive/postage.r55920.tar.xz
2020/07/24 | 4660 | systems/texlive/tlnet/archive/postage.source.r55920.tar.xz
@@ -291209,7 +291212,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
-2022/05/25 | 406720 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63388.tar.xz
+2022/05/26 | 406832 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63397.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
@@ -291233,7 +291236,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
-2022/05/25 | 109756 | systems/texlive/tlnet/archive/texlive-scripts.r63388.tar.xz
+2022/05/26 | 109752 | systems/texlive/tlnet/archive/texlive-scripts.r63397.tar.xz
2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz
2022/04/19 | 36296 | systems/texlive/tlnet/archive/texlive-scripts.win32.r63068.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
@@ -293046,16 +293049,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
2022/04/18 | 108451 | systems/texlive/tlnet/install-tl
-2022/05/25 | 5800211 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/05/25 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/05/25 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/05/26 | 5800267 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/05/26 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/05/26 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/05/25 | 20465753 | systems/texlive/tlnet/install-tl-windows.exe
-2022/05/25 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/05/25 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/05/25 | 25483952 | systems/texlive/tlnet/install-tl.zip
-2022/05/25 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/05/25 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/05/26 | 20465764 | systems/texlive/tlnet/install-tl-windows.exe
+2022/05/26 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/05/26 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/05/26 | 25483952 | systems/texlive/tlnet/install-tl.zip
+2022/05/26 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/05/26 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2022/04/03 | 1229 | systems/texlive/tlnet/README.md
2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022
2022/02/28 | 7791 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -293107,12 +293110,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/05/25 | 17491753 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/05/25 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/05/26 | 17491786 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/05/26 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/04/18 | 86658 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/05/25 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/05/25 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/05/25 | 2382596 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/05/26 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/05/26 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/05/26 | 2382272 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2022/04/18 | 42116 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -298323,7 +298326,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
-2022/05/25 | 653517 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/05/26 | 653517 | 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
@@ -299927,9 +299930,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/03/12 | 39680 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/03/29 | 43240 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/05/25 | 278665 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/05/25 | 1457808 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/05/25 | 1344358 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/05/26 | 278748 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/05/26 | 1457534 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/05/26 | 1344322 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/03/12 | 13516 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2022/03/29 | 14391 | 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
@@ -300155,191 +300158,191 @@
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
-2022/05/25 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/05/25 | 51558 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/05/25 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/05/25 | 1021846 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/05/25 | 1156465 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/05/25 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/05/25 | 31519 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/05/25 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/05/25 | 35243 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/05/25 | 56621 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/05/25 | 65056 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/05/25 | 86759 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/05/25 | 95287 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/05/25 | 68874 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/05/25 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/05/25 | 27249 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/05/25 | 31343 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/05/25 | 332415 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/05/25 | 394369 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/05/25 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/05/25 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/05/25 | 51484 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/05/25 | 57270 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/05/25 | 244960 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/05/25 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/05/25 | 179877 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/05/25 | 196117 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/05/25 | 92918 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/05/25 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/05/25 | 21316 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/05/25 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/05/25 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/05/25 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/05/25 | 52093 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/05/25 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/05/25 | 326660 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/05/25 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/05/25 | 45824 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/05/25 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/05/25 | 135375 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/05/25 | 1302482 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/05/25 | 1454763 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/05/25 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/05/25 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/05/25 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/05/25 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/05/25 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/05/25 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/05/25 | 56994 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/05/25 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/05/25 | 135949 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/05/25 | 155497 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/05/25 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/05/25 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/05/25 | 72015 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/05/25 | 81460 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/05/25 | 259258 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/05/25 | 296039 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/05/25 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/05/25 | 25059 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/05/25 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/05/25 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/05/25 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/05/25 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/05/25 | 96632 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/05/25 | 115656 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/05/25 | 38428 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/05/25 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/05/25 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/05/25 | 565929 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/05/25 | 203836 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/05/25 | 247335 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/05/25 | 152030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/05/25 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/05/25 | 95434 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/05/25 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/05/25 | 16504 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/05/25 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/05/25 | 28423 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/05/25 | 30542 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/05/25 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/05/25 | 681941 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/05/25 | 532453 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/05/25 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/05/25 | 477848 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/05/25 | 528017 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/05/25 | 93956 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/05/25 | 103338 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/05/25 | 1752147 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/05/25 | 1982085 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/05/25 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/05/25 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/05/25 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/05/25 | 32133 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/05/25 | 7754 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/05/25 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/05/25 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/05/25 | 208807 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/05/25 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/05/25 | 286412 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/05/25 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/05/25 | 104556 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/05/25 | 126535 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/05/25 | 139101 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/05/25 | 288199 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/05/25 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/05/25 | 199833 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/05/25 | 181513 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/05/25 | 49771 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/05/25 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/05/25 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/05/25 | 35168 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/05/25 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/05/25 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/05/25 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/05/25 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/05/25 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/05/25 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/05/25 | 197037 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/05/25 | 213277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/05/25 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/05/25 | 41181 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/05/25 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/05/25 | 824370 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/05/25 | 200396 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/05/25 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/05/25 | 210277 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/05/25 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/05/25 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/05/25 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/05/25 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/05/25 | 1322741 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/05/25 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/05/25 | 23945 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/05/25 | 31589 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/05/25 | 37375 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/05/25 | 64710 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/05/25 | 72886 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/05/25 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/05/25 | 58664 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/05/25 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/05/25 | 758951 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/05/25 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/05/25 | 1501239 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/05/25 | 42819 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/05/25 | 52479 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/05/25 | 57619 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/05/25 | 63740 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/05/25 | 25549 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/05/25 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/05/25 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/05/25 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/05/25 | 64489 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/05/25 | 71008 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/05/25 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/05/25 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/05/25 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/05/25 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/05/25 | 100486 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/05/25 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/05/25 | 2694876 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/05/25 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/05/25 | 55285 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/05/25 | 62381 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/05/25 | 37115 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/05/25 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/05/25 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/05/25 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/05/25 | 67705 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/05/25 | 73529 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/05/25 | 316243 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/05/25 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/05/25 | 55757 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/05/25 | 57525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/05/25 | 591572 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/05/25 | 629432 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/05/25 | 39727 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/05/25 | 43226 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/05/25 | 278745 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/05/25 | 1457490 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/05/25 | 1344181 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/05/25 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/05/25 | 14410 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/05/26 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/05/26 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/05/26 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/05/26 | 1021847 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/05/26 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/05/26 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/05/26 | 31521 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/05/26 | 30147 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/05/26 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/05/26 | 56618 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/05/26 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/05/26 | 86759 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/05/26 | 95285 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/05/26 | 68871 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/05/26 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/05/26 | 27247 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/05/26 | 31342 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/05/26 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/05/26 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/05/26 | 32954 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/05/26 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/05/26 | 51485 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/05/26 | 57272 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/05/26 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/05/26 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/05/26 | 179878 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/05/26 | 196117 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/05/26 | 92917 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/05/26 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/05/26 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/05/26 | 24121 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/05/26 | 481498 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/05/26 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/05/26 | 52093 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/05/26 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/05/26 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/05/26 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/05/26 | 45825 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/05/26 | 120617 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/05/26 | 135376 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/05/26 | 1302483 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/05/26 | 1454763 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/05/26 | 99817 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/05/26 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/05/26 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/05/26 | 48826 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/05/26 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/05/26 | 28570 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/05/26 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/05/26 | 63309 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/05/26 | 135947 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/05/26 | 155500 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/05/26 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/05/26 | 78975 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/05/26 | 72015 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/05/26 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/05/26 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/05/26 | 296039 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/05/26 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/05/26 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/05/26 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/05/26 | 112589 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/05/26 | 64543 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/05/26 | 73148 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/05/26 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/05/26 | 115657 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/05/26 | 38427 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/05/26 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/05/26 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/05/26 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/05/26 | 203837 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/05/26 | 247334 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/05/26 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/05/26 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/05/26 | 95433 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/05/26 | 109479 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/05/26 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/05/26 | 18370 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/05/26 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/05/26 | 30542 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/05/26 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/05/26 | 681940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/05/26 | 532455 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/05/26 | 598229 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/05/26 | 477849 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/05/26 | 528018 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/05/26 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/05/26 | 103339 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/05/26 | 1752147 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/05/26 | 1982086 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/05/26 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/05/26 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/05/26 | 27592 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/05/26 | 32134 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/05/26 | 7754 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/05/26 | 8784 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/05/26 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/05/26 | 208809 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/05/26 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/05/26 | 286413 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/05/26 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/05/26 | 104557 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/05/26 | 126534 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/05/26 | 139103 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/05/26 | 288200 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/05/26 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/05/26 | 199833 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/05/26 | 181516 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/05/26 | 49770 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/05/26 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/05/26 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/05/26 | 35168 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/05/26 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/05/26 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/05/26 | 43361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/05/26 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/05/26 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/05/26 | 52327 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/05/26 | 197033 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/05/26 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/05/26 | 36050 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/05/26 | 41183 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/05/26 | 755741 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/05/26 | 824370 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/05/26 | 200398 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/05/26 | 202837 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/05/26 | 210277 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/05/26 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/05/26 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/05/26 | 88152 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/05/26 | 1181127 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/05/26 | 1322741 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/05/26 | 20183 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/05/26 | 23944 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/05/26 | 31588 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/05/26 | 37374 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/05/26 | 64710 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/05/26 | 72886 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/05/26 | 50800 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/05/26 | 58662 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/05/26 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/05/26 | 758955 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/05/26 | 1357073 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/05/26 | 1501239 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/05/26 | 42818 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/05/26 | 52478 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/05/26 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/05/26 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/05/26 | 25549 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/05/26 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/05/26 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/05/26 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/05/26 | 64489 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/05/26 | 71006 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/05/26 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/05/26 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/05/26 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/05/26 | 67252 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/05/26 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/05/26 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/05/26 | 2694879 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/05/26 | 2820688 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/05/26 | 55285 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/05/26 | 62381 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/05/26 | 37116 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/05/26 | 41204 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/05/26 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/05/26 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/05/26 | 67705 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/05/26 | 73529 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/05/26 | 316244 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/05/26 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/05/26 | 55757 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/05/26 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/05/26 | 591570 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/05/26 | 629430 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/05/26 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/05/26 | 43227 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/05/26 | 278716 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/05/26 | 1456774 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/05/26 | 1344661 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/05/26 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/05/26 | 14412 | 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
-2022/05/25 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/05/26 | 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
@@ -300810,7 +300813,7 @@
2022/02/22 | 6917 | 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
-2022/05/25 | 937 | systems/win32/miktex/tm/packages/pr.ini
+2022/05/26 | 937 | 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
@@ -302674,7 +302677,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/05/26 | 186 | timestamp
+2022/05/27 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2022/02/28 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 77206940db..9ecf43f6a2 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index a65de8f594..016a23e69a 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,26 +1,268 @@
-2022/05/25 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/05/26 | 99817 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/05/26 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/05/26 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/05/26 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/05/26 | 95433 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/05/26 | 95285 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/05/26 | 9412 | macros/latex/contrib/profcollege/metapost/PfCMosaique.mp
+2022/05/26 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/05/26 | 937 | systems/win32/miktex/tm/packages/pr.ini
+2022/05/26 | 92917 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/05/26 | 927208 | systems/texlive/tlnet/archive/bath-bst.doc.r63398.tar.xz
+2022/05/26 | 89196 | support/pkgcheck/docs/pkgcheck.pdf
+2022/05/26 | 890948 | systems/texlive/tlnet/archive/beebe.r63397.tar.xz
+2022/05/26 | 88152 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/05/26 | 8784 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/05/26 | 86759 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/05/26 | 8460 | systems/texlive/tlnet/archive/bath-bst.r63398.tar.xz
+2022/05/26 | 8451374 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+2022/05/26 | 824370 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/05/26 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/05/26 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/05/26 | 78975 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/05/26 | 787701 | macros/latex/contrib/profcollege/latex/ProfCollege.sty
+2022/05/26 | 7754 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/05/26 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/05/26 | 758955 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/05/26 | 755741 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/05/26 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/05/26 | 73529 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/05/26 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/05/26 | 73148 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/05/26 | 72886 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/05/26 | 7258856 | support/pkgcheck/bin/pkgcheck
+2022/05/26 | 72015 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/05/26 | 71006 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/05/26 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/05/26 | 68871 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/05/26 | 681940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/05/26 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/05/26 | 67705 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/05/26 | 67252 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/05/26 | 6652 | macros/latex/contrib/profcollege/metapost/PfCSvgnames.mp
+2022/05/26 | 660 | macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
+2022/05/26 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/05/26 | 653517 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/05/26 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/05/26 | 64710 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/05/26 | 64543 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/05/26 | 64489 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/05/26 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/05/26 | 63309 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/05/26 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/05/26 | 629430 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/05/26 | 62589 | macros/unicodetex/latex/nwafuthesis/nwafuthesis-doc.dtx
+2022/05/26 | 62381 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/05/26 | 598229 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/05/26 | 591570 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/05/26 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/05/26 | 58662 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/05/26 | 5800267 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/05/26 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/05/26 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/05/26 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/05/26 | 57272 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/05/26 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/05/26 | 56618 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/05/26 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/05/26 | 55757 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/05/26 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/05/26 | 55285 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/05/26 | 5386 | macros/latex/contrib/profcollege/metapost/PfCLabyNombre.mp
+2022/05/26 | 532455 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/05/26 | 528018 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/05/26 | 52478 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/05/26 | 52327 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/05/26 | 52093 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/05/26 | 5196 | macros/latex/contrib/profcollege/metapost/PfCArithmetique.mp
+2022/05/26 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/05/26 | 51485 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/05/26 | 50800 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/05/26 | 5056 | macros/latex/contrib/profcollege/metapost/PfCAfficheur.mp
+2022/05/26 | 49770 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/05/26 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/05/26 | 48826 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/05/26 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/05/26 | 481498 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/05/26 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/05/26 | 477849 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/05/26 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/05/26 | 45825 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/05/26 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/05/26 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/05/26 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/05/26 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/05/26 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/05/26 | 454200 | systems/texlive/tlnet/archive/biblatex-bath.doc.r63401.tar.xz
+2022/05/26 | 44021 | macros/latex/contrib/fancyvrb/latex/fancyvrb.sty
+2022/05/26 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/05/26 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/05/26 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/05/26 | 43361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/05/26 | 43227 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/05/26 | 431 | macros/latex/contrib/profcollege/metapost/PfCConstantes.mp
+2022/05/26 | 42818 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/05/26 | 42562 | macros/latex/contrib/profcollege/metapost/PfCMonde.mp
+2022/05/26 | 41636 | macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
+2022/05/26 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/05/26 | 41204 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/05/26 | 41183 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/05/26 | 406832 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63397.tar.xz
+2022/05/26 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/05/26 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/05/26 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/05/26 | 38427 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/05/26 | 3812 | systems/texlive/tlnet/archive/poormanlog.r63400.tar.xz
+2022/05/26 | 37588 | systems/texlive/tlnet/archive/bath-bst.source.r63398.tar.xz
+2022/05/26 | 37374 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/05/26 | 37116 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/05/26 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/05/26 | 36050 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/05/26 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/05/26 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/05/26 | 35168 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/05/26 | 34952 | systems/texlive/tlnet/archive/nicematrix.r63402.tar.xz
+2022/05/26 | 34796 | systems/texlive/tlnet/archive/biblatex-bath.source.r63401.tar.xz
+2022/05/26 | 3433900 | macros/unicodetex/latex/nwafuthesis.zip
+2022/05/26 | 34080 | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+2022/05/26 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/05/26 | 33 | support/pkgcheck/docs/title.tex
+2022/05/26 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/05/26 | 3310472 | support/pkgcheck.zip
+2022/05/26 | 32954 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/05/26 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/05/26 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/05/26 | 32134 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/05/26 | 316244 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/05/26 | 31588 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/05/26 | 31521 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/05/26 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/05/26 | 31342 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/05/26 | 30542 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/05/26 | 30147 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/05/26 | 296039 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/05/26 | 288200 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/05/26 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/05/26 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/05/26 | 286413 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/05/26 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/05/26 | 28570 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/05/26 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/05/26 | 2820688 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/05/26 | 278748 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/05/26 | 278716 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/05/26 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/05/26 | 27592 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/05/26 | 27247 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/05/26 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/05/26 | 269938 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx
+2022/05/26 | 2694879 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/05/26 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/05/26 | 25549 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/05/26 | 25483952 | systems/texlive/tlnet/install-tl.zip
+2022/05/26 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/05/26 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/05/26 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/05/26 | 247334 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/05/26 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/05/26 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/05/26 | 2412652 | systems/texlive/tlnet/archive/logix.doc.r63399.tar.xz
+2022/05/26 | 24121 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/05/26 | 23944 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/05/26 | 2382272 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/05/26 | 2339629 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf
+2022/05/26 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/05/26 | 2212816 | systems/texlive/tlnet/archive/logix.r63399.tar.xz
+2022/05/26 | 2133462 | macros/latex/contrib/profcollege/doc/profcollege-doc.zip
+2022/05/26 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/05/26 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/05/26 | 210277 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/05/26 | 2092 | systems/texlive/tlnet/archive/poormanlog.doc.r63400.tar.xz
+2022/05/26 | 208809 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/05/26 | 20465764 | systems/texlive/tlnet/install-tl-windows.exe
+2022/05/26 | 203837 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/05/26 | 202837 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/05/26 | 20183 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/05/26 | 200398 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/05/26 | 199833 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/05/26 | 1991948 | systems/texlive/tlnet/archive/nicematrix.doc.r63402.tar.xz
+2022/05/26 | 1988 | macros/latex/contrib/fancyvrb/Changes
+2022/05/26 | 1982086 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/05/26 | 197033 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/05/26 | 196117 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/05/26 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/05/26 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/05/26 | 18370 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/05/26 | 181516 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/05/26 | 179878 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/05/26 | 1752147 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/05/26 | 17491786 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/05/26 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/05/26 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/05/26 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/05/26 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/05/26 | 164924 | macros/latex/contrib/fancyvrb.zip
+2022/05/26 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/05/26 | 155500 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/05/26 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/05/26 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/05/26 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/05/26 | 1501239 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/05/26 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/05/26 | 1457534 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/05/26 | 1456774 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/05/26 | 1454763 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/05/26 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/05/26 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/05/26 | 141454 | macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
+2022/05/26 | 139103 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/05/26 | 135947 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/05/26 | 1357073 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/05/26 | 135376 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/05/26 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/05/26 | 1344661 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/05/26 | 1344322 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/05/26 | 13296 | macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
+2022/05/26 | 1322741 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/05/26 | 13076 | support/pkgcheck/docs/pkgcheck.tex
+2022/05/26 | 1302483 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/05/26 | 12999 | macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp
+2022/05/26 | 12700153 | macros/latex/contrib/profcollege.zip
+2022/05/26 | 126534 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/05/26 | 120617 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/05/26 | 1181127 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/05/26 | 115657 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/05/26 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/05/26 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/05/26 | 114424 | systems/texlive/tlnet/archive/nicematrix.source.r63402.tar.xz
+2022/05/26 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/05/26 | 112589 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/05/26 | 109752 | systems/texlive/tlnet/archive/texlive-scripts.r63397.tar.xz
+2022/05/26 | 109479 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/05/26 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/05/26 | 104853 | macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
+2022/05/26 | 104557 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/05/26 | 103339 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/05/26 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/05/26 | 102817 | macros/latex/contrib/profcollege/metapost/PfCScratch.mp
+2022/05/26 | 1021847 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/05/26 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/05/26 | 10023 | support/pkgcheck/CHANGES.md
+2022/05/26 | 10012 | systems/texlive/tlnet/archive/biblatex-bath.r63401.tar.xz
2022/05/25 | 992724 | biblio/bibtex/contrib/bath-bst.zip
-2022/05/25 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
2022/05/25 | 988 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_rivest_1978.snap
2022/05/25 | 9865 | macros/generic/poormanlog/poormanlog.tex
2022/05/25 | 97 | support/texlab/tests/it/snapshots/it__hover__empty_labtex_document.snap
2022/05/25 | 97 | support/texlab/tests/it/snapshots/it__hover__empty_bibtex_document.snap
-2022/05/25 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
2022/05/25 | 967 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_simple.snap
2022/05/25 | 967 | support/texlab/src/citation/snapshots/texlab__citation__tests__patent_almendro_1998.snap
-2022/05/25 | 96632 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
2022/05/25 | 9562 | systems/win32/miktex/tm/packages/create-theorem.tar.lzma
-2022/05/25 | 95434 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/05/25 | 95287 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2022/05/25 | 944 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_definition_simple.snap
2022/05/25 | 944745 | systems/win32/miktex/tm/packages/markdown__doc.tar.lzma
2022/05/25 | 9438 | support/texlab/tests/it/snapshots/it__completion__latex__begin_command.snap
2022/05/25 | 941 | support/texlab/tests/it/snapshots/it__completion__latex__multi_line_key.snap
2022/05/25 | 941 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_012.snap
-2022/05/25 | 93956 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
2022/05/25 | 938 | support/texlab/tests/it/snapshots/it__completion__latex__user_environment.snap
-2022/05/25 | 937 | systems/win32/miktex/tm/packages/pr.ini
-2022/05/25 | 92918 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
2022/05/25 | 923 | support/texlab/src/language.rs
2022/05/25 | 9236 | fonts/logix/CHANGELOG
2022/05/25 | 90905 | systems/win32/miktex/tm/packages/hyperref.tar.lzma
@@ -36,15 +278,12 @@
2022/05/25 | 8866 | support/texlab/src/features.rs
2022/05/25 | 8837 | support/texlab/src/label.rs
2022/05/25 | 882 | support/texlab/src/citation.rs
-2022/05/25 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
2022/05/25 | 879 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_007.snap
2022/05/25 | 879 | support/texlab/src/features/rename.rs
-2022/05/25 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2022/05/25 | 8761855 | systems/win32/miktex/tm/packages/gentium-tug.tar.lzma
2022/05/25 | 875 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_options.snap
2022/05/25 | 874 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_003.snap
2022/05/25 | 873 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_006.snap
-2022/05/25 | 86759 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2022/05/25 | 8612 | support/texlab/src/features/completion/citation.rs
2022/05/25 | 855 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error1.snap
2022/05/25 | 853 | support/texlab/src/environment.rs
@@ -60,33 +299,25 @@
2022/05/25 | 82740 | support/texlab/texlab.pdf
2022/05/25 | 8267 | support/texlab/src/features/build.rs
2022/05/25 | 8248 | fonts/logix/README
-2022/05/25 | 824370 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2022/05/25 | 8201 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_002.snap
2022/05/25 | 817 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_014.snap
-2022/05/25 | 81460 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2022/05/25 | 813 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_005.snap
2022/05/25 | 808 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_begin.snap
2022/05/25 | 80366 | systems/win32/miktex/tm/packages/xint.tar.lzma
2022/05/25 | 802136 | systems/win32/miktex/tm/packages/tugboat__doc.tar.lzma
2022/05/25 | 800 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_betram_1996.snap
2022/05/25 | 7904 | systems/win32/miktex/tm/packages/media4svg.tar.lzma
-2022/05/25 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/05/25 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
2022/05/25 | 786 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_options.snap
2022/05/25 | 784 | support/texlab/src/features/formatting.rs
2022/05/25 | 775 | support/texlab/tests/it/snapshots/it__completion__latex__citation_open_brace.snap
-2022/05/25 | 7754 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
2022/05/25 | 772 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_figure.snap
2022/05/25 | 771 | support/texlab/src/syntax/latex.rs
2022/05/25 | 7710925 | support/texlab.zip
-2022/05/25 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2022/05/25 | 77016 | systems/texlive/tlnet/archive/stex.r63390.tar.xz
2022/05/25 | 76 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__empty.snap
2022/05/25 | 759 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_complicated_options.snap
2022/05/25 | 758 | support/texlab/tests/it/snapshots/it__completion__latex__citation_multi_word.snap
-2022/05/25 | 758951 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
2022/05/25 | 7558 | systems/win32/miktex/tm/packages/expex-acro__source.tar.lzma
-2022/05/25 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
2022/05/25 | 75567 | systems/win32/miktex/tm/packages/xepersian__source.tar.lzma
2022/05/25 | 7542 | support/texlab/src/workspace.rs
2022/05/25 | 75228 | systems/texlive/tlnet/archive/xepersian.source.r63393.tar.xz
@@ -94,24 +325,17 @@
2022/05/25 | 747 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_optional.snap
2022/05/25 | 742 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_simple.snap
2022/05/25 | 7423 | support/texlab/src/syntax/bibtex/parser.rs
-2022/05/25 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/05/25 | 73529 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
2022/05/25 | 734 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_full.snap
-2022/05/25 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
2022/05/25 | 731 | support/texlab/tests/it/snapshots/it__workspace_symbol__filter_bibtex.snap
-2022/05/25 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/05/25 | 72886 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
2022/05/25 | 727 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_simple.snap
2022/05/25 | 722287 | systems/win32/miktex/tm/packages/verifiche__doc.tar.lzma
2022/05/25 | 720 | support/texlab/src/citation/snapshots/texlab__citation__tests__collection_matuz_1990.snap
-2022/05/25 | 72015 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
2022/05/25 | 7196 | support/texlab/src/features/reference/entry.rs
2022/05/25 | 714 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_013.snap
2022/05/25 | 713859 | macros/latex/contrib/nicematrix/nicematrix.dtx
2022/05/25 | 711 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__block_comments.snap
2022/05/25 | 710 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_definition_simple.snap
2022/05/25 | 710899 | systems/win32/miktex/tm/packages/latex-base-dev__source.tar.lzma
-2022/05/25 | 71008 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2022/05/25 | 7007 | support/texlab/src/features/completion/label.rs
2022/05/25 | 700275 | systems/win32/miktex/tm/packages/babel__source.tar.lzma
2022/05/25 | 6 | support/texlab/rust-toolchain
@@ -119,49 +343,32 @@
2022/05/25 | 6970534 | support/texlab/data/components.json.gz
2022/05/25 | 696 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_options.snap
2022/05/25 | 69588 | fonts/logix/fonts/logixMono.ttf
-2022/05/25 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/05/25 | 68874 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
2022/05/25 | 687 | support/texlab/src/lib.rs
2022/05/25 | 68464 | fonts/logix/opentype/logixMono.otf
2022/05/25 | 6825 | support/texlab/src/syntax/bibtex/ast.rs
-2022/05/25 | 681941 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/05/25 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
2022/05/25 | 678657 | systems/win32/miktex/tm/packages/lua-widow-control__doc.tar.lzma
2022/05/25 | 677 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_siblings.snap
2022/05/25 | 6773 | support/texlab/src/features/folding.rs
2022/05/25 | 677184 | systems/win32/miktex/tm/packages/functional__doc.tar.lzma
-2022/05/25 | 67705 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
2022/05/25 | 676 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_options.snap
2022/05/25 | 673 | support/texlab/src/features/reference.rs
-2022/05/25 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2022/05/25 | 668 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_options.snap
2022/05/25 | 666 | support/texlab/src/syntax/latex/analysis/command.rs
2022/05/25 | 66678 | systems/win32/miktex/tm/packages/latex-amsmath-dev__source.tar.lzma
2022/05/25 | 6630 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_003.snap
2022/05/25 | 655 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__asymptote.snap
2022/05/25 | 6542 | support/texlab/src/features/completion/entry_type.rs
-2022/05/25 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/05/25 | 653517 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/05/25 | 65056 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
2022/05/25 | 6495 | support/texlab/src/features/reference/string.rs
2022/05/25 | 648 | support/texlab/src/syntax/latex/analysis/label_number.rs
2022/05/25 | 6484 | support/texlab/src/line_index.rs
-2022/05/25 | 64710 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/05/25 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/05/25 | 64489 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
2022/05/25 | 643 | support/texlab/texlab.1
-2022/05/25 | 63740 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2022/05/25 | 6355 | support/texlab/src/features/symbol/project_order.rs
-2022/05/25 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
2022/05/25 | 631 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_simple.snap
-2022/05/25 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
2022/05/25 | 630 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline_double_dollar.snap
2022/05/25 | 6301 | systems/win32/miktex/tm/packages/hvextern.tar.lzma
-2022/05/25 | 629432 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2022/05/25 | 6250 | support/texlab/src/features/reference/label.rs
2022/05/25 | 624 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline.snap
2022/05/25 | 623 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption.snap
-2022/05/25 | 62381 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2022/05/25 | 621 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_error.snap
2022/05/25 | 61868 | systems/texlive/tlnet/archive/nwafuthesis.source.r63391.tar.xz
2022/05/25 | 61736 | systems/texlive/tlnet/archive/stex.source.r63390.tar.xz
@@ -178,29 +385,17 @@
2022/05/25 | 6016 | systems/win32/miktex/tm/packages/symbats3.tar.lzma
2022/05/25 | 60044 | systems/texlive/tlnet/archive/xepersian.r63393.tar.xz
2022/05/25 | 598 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description_and_counter.snap
-2022/05/25 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2022/05/25 | 597 | macros/generic/poormanlog/poormanlog.sty
2022/05/25 | 5930305 | fonts/logix.zip
-2022/05/25 | 591572 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
2022/05/25 | 5881 | macros/generic/poormanlog.zip
2022/05/25 | 586 | support/texlab/src/syntax/latex/analysis/theorem.rs
-2022/05/25 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/05/25 | 58664 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
2022/05/25 | 585 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_aho_2006.snap
2022/05/25 | 583176 | fonts/logix/opentype/logix.otf
-2022/05/25 | 5800211 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/05/25 | 57619 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/05/25 | 57525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/05/25 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/05/25 | 57270 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
2022/05/25 | 570 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_parameter.snap
2022/05/25 | 57018 | support/texlab/data/lang_data.json
-2022/05/25 | 56994 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
2022/05/25 | 5688 | support/texlab/src/features/completion/include.rs
2022/05/25 | 5671 | systems/win32/miktex/tm/packages/sidenotesplus.tar.lzma
-2022/05/25 | 56621 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2022/05/25 | 565 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__multiple_entries.snap
-2022/05/25 | 565929 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
2022/05/25 | 5624 | systems/win32/miktex/tm/packages/erewhon__source.tar.lzma
2022/05/25 | 5612 | systems/win32/miktex/tm/packages/causets.tar.lzma
2022/05/25 | 559 | support/texlab/tests/it/snapshots/it__completion__latex__kernel_command.snap
@@ -208,9 +403,6 @@
2022/05/25 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_number.snap
2022/05/25 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote_postnote.snap
2022/05/25 | 55770 | systems/win32/miktex/tm/packages/njuthesis__source.tar.lzma
-2022/05/25 | 55757 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/05/25 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/05/25 | 55285 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2022/05/25 | 5516 | support/texlab/docs/previewing.md
2022/05/25 | 550 | support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_environment.snap
2022/05/25 | 550 | support/texlab/tests/it/snapshots/it__completion__latex__class_environment.snap
@@ -220,26 +412,18 @@
2022/05/25 | 538548 | fonts/logix/fonts/logix.woff
2022/05/25 | 5346 | support/texlab/src/features/completion/import.rs
2022/05/25 | 5328 | systems/win32/miktex/tm/packages/fancyhdr.tar.lzma
-2022/05/25 | 532453 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
2022/05/25 | 5299855 | systems/win32/miktex/tm/packages/latex-tools-dev__doc.tar.lzma
2022/05/25 | 5284 | support/texlab/src/capabilities.rs
-2022/05/25 | 528017 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
2022/05/25 | 5267 | systems/win32/miktex/tm/packages/unbtex__source.tar.lzma
2022/05/25 | 52617 | systems/win32/miktex/tm/packages/tugboat__source.tar.lzma
-2022/05/25 | 52479 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/05/25 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
2022/05/25 | 521 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_invalid_nesting.snap
-2022/05/25 | 52093 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2022/05/25 | 518114 | systems/win32/miktex/tm/packages/xduts.tar.lzma
-2022/05/25 | 51558 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/05/25 | 51484 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2022/05/25 | 514096 | systems/texlive/tlnet/archive/roboto.doc.r63389.tar.xz
2022/05/25 | 514055 | systems/win32/miktex/tm/packages/roboto__doc.tar.lzma
2022/05/25 | 5126 | support/texlab/src/features/definition/string.rs
2022/05/25 | 511580 | systems/win32/miktex/tm/packages/causets__doc.tar.lzma
2022/05/25 | 50 | support/texlab/src/syntax.rs
2022/05/25 | 5088 | support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name.snap
-2022/05/25 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2022/05/25 | 5074 | support/texlab/src/features/completion/component_environment.rs
2022/05/25 | 5065001 | fonts/logix/source/logix.vfc
2022/05/25 | 504805 | fonts/logix/doc/logix.pdf
@@ -249,7 +433,6 @@
2022/05/25 | 5010 | support/texlab/src/features/completion/component_command.rs
2022/05/25 | 5006 | systems/win32/miktex/tm/packages/verifiche.tar.lzma
2022/05/25 | 497 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error3.snap
-2022/05/25 | 49771 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
2022/05/25 | 4976 | support/texlab/src/features/completion/color_model.rs
2022/05/25 | 495 | support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_entry.snap
2022/05/25 | 4951 | support/texlab/src/features/rename/label.rs
@@ -257,19 +440,13 @@
2022/05/25 | 4926 | support/texlab/src/features/rename/entry.rs
2022/05/25 | 491 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal.snap
2022/05/25 | 490 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_counter.snap
-2022/05/25 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/05/25 | 489 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal_error.snap
2022/05/25 | 488 | support/texlab/src/range.rs
-2022/05/25 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2022/05/25 | 48615 | systems/win32/miktex/tm/packages/functional__source.tar.lzma
2022/05/25 | 485197 | macros/latex/contrib/biblatex-contrib/biblatex-bath.zip
-2022/05/25 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2022/05/25 | 4817 | support/texlab/src/diagnostics/bibtex.rs
-2022/05/25 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
2022/05/25 | 48123 | systems/win32/miktex/tm/packages/thuthesis__source.tar.lzma
2022/05/25 | 4799 | support/texlab/src/features/highlight/label.rs
-2022/05/25 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/05/25 | 477848 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2022/05/25 | 47441 | systems/win32/miktex/tm/packages/fancyhdr__source.tar.lzma
2022/05/25 | 4736 | systems/win32/miktex/tm/packages/expex-acro.tar.lzma
2022/05/25 | 472 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__math_operator_simple.snap
@@ -282,14 +459,7 @@
2022/05/25 | 464 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_argc.snap
2022/05/25 | 462 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description.snap
2022/05/25 | 462745 | macros/latex/contrib/biblatex-contrib/biblatex-bath/biblatex-bath.pdf
-2022/05/25 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
2022/05/25 | 458 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_line_break.snap
-2022/05/25 | 45824 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/05/25 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/05/25 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/05/25 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/05/25 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/05/25 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2022/05/25 | 4529 | support/texlab/src/features/completion/tikz_library.rs
2022/05/25 | 4513 | support/texlab/src/syntax/latex/kind.rs
2022/05/25 | 45104 | systems/win32/miktex/tm/packages/lua-widow-control__source.tar.lzma
@@ -300,19 +470,13 @@
2022/05/25 | 441933 | fonts/logix/fonts/logix.eot
2022/05/25 | 4414 | macros/latex/contrib/biblatex-contrib/biblatex-bath/README.md
2022/05/25 | 4408 | support/texlab/src/component_db.rs
-2022/05/25 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/05/25 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/05/25 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2022/05/25 | 43627 | systems/win32/miktex/tm/packages/thuthesis.tar.lzma
2022/05/25 | 435648 | systems/win32/miktex/tm/packages/xduts__doc.tar.lzma
-2022/05/25 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
2022/05/25 | 43272 | systems/win32/miktex/tm/packages/latex-tools-dev.tar.lzma
-2022/05/25 | 43226 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
2022/05/25 | 43013 | systems/win32/miktex/tm/packages/markdown.tar.lzma
2022/05/25 | 429 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_008.snap
2022/05/25 | 428 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_simple.snap
2022/05/25 | 4289 | macros/generic/poormanlog/README
-2022/05/25 | 42819 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2022/05/25 | 426 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote.snap
2022/05/25 | 426 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__block_comment.snap
2022/05/25 | 425 | support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_figure.snap
@@ -321,12 +485,8 @@
2022/05/25 | 4200 | support/texlab/tests/it/snapshots/it__completion__bibtex__field_incomplete_entry.snap
2022/05/25 | 4200 | support/texlab/tests/it/snapshots/it__completion__bibtex__field_complete_entry.snap
2022/05/25 | 416518 | systems/win32/miktex/tm/packages/hyperref__source.tar.lzma
-2022/05/25 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
2022/05/25 | 412 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_path.snap
-2022/05/25 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
2022/05/25 | 411 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_multiple.snap
-2022/05/25 | 41181 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/05/25 | 406720 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63388.tar.xz
2022/05/25 | 4063 | support/texlab/tests/it/snapshots/it__completion__latex__package_import.snap
2022/05/25 | 40497 | systems/win32/miktex/tm/packages/stex.tar.lzma
2022/05/25 | 40459 | support/texlab/Cargo.lock
@@ -339,13 +499,9 @@
2022/05/25 | 4003 | systems/win32/miktex/tm/packages/srbtiks__source.tar.lzma
2022/05/25 | 3997 | support/texlab/src/features/lsp_kinds.rs
2022/05/25 | 397378 | systems/win32/miktex/tm/packages/sidenotesplus__doc.tar.lzma
-2022/05/25 | 39727 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/05/25 | 394369 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2022/05/25 | 3935 | support/texlab/docs/options.md
2022/05/25 | 3930 | support/texlab/src/features/definition/entry.rs
-2022/05/25 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
2022/05/25 | 3855 | support/texlab/src/features/completion/theorem.rs
-2022/05/25 | 38428 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2022/05/25 | 3824969 | systems/win32/miktex/tm/packages/bidi__doc.tar.lzma
2022/05/25 | 3819944 | systems/texlive/tlnet/archive/bidi.doc.r63392.tar.xz
2022/05/25 | 380190 | support/texlab/docs/demo.gif
@@ -353,18 +509,14 @@
2022/05/25 | 378 | support/texlab/src/features/highlight.rs
2022/05/25 | 373 | support/texlab/src/syntax/latex/analysis/environment.rs
2022/05/25 | 3739 | support/texlab/src/features/symbol.rs
-2022/05/25 | 37375 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
2022/05/25 | 373350 | systems/win32/miktex/tm/packages/erewhon__doc.tar.lzma
2022/05/25 | 3720 | support/texlab/src/syntax/bibtex/lexer.rs
-2022/05/25 | 37115 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
2022/05/25 | 370 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__preamble.snap
-2022/05/25 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2022/05/25 | 3700 | support/texlab/src/features/symbol/types.rs
2022/05/25 | 3671360 | systems/win32/miktex/tm/packages/hyperref__doc.tar.lzma
2022/05/25 | 364 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__math_operator_no_impl.snap
2022/05/25 | 360 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation.snap
2022/05/25 | 3607 | systems/win32/miktex/tm/packages/pgf-umlcd.tar.lzma
-2022/05/25 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
2022/05/25 | 358 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_incomplete.snap
2022/05/25 | 358520 | biblio/bibtex/contrib/bath-bst/bath-bst-v1.pdf
2022/05/25 | 357 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_simple.snap
@@ -377,10 +529,7 @@
2022/05/25 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_impl_error.snap
2022/05/25 | 353 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__verbatim_include_simple.snap
2022/05/25 | 3528 | support/texlab/src/document.rs
-2022/05/25 | 35243 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
2022/05/25 | 3517 | support/texlab/src/features/hover/citation.rs
-2022/05/25 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/05/25 | 35168 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
2022/05/25 | 35149 | support/texlab/LICENSE
2022/05/25 | 3481 | support/texlab/src/features/hover/field.rs
2022/05/25 | 3481 | support/texlab/src/features/hover/entry_type.rs
@@ -391,7 +540,6 @@
2022/05/25 | 343 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__pgf_library_import_simple.snap
2022/05/25 | 34260 | fonts/logix/fonts/logixMono.woff
2022/05/25 | 3410 | support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_glyph.snap
-2022/05/25 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2022/05/25 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_simple.snap
2022/05/25 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__bibtex_include_simple.snap
2022/05/25 | 3399 | support/texlab/src/features/definition/document.rs
@@ -399,31 +547,21 @@
2022/05/25 | 33960 | fonts/logix/fonts/logixMono.woff2
2022/05/25 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_simple.snap
2022/05/25 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_simple.snap
-2022/05/25 | 332415 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2022/05/25 | 331 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_simple.snap
2022/05/25 | 33077 | support/texlab/src/server.rs
2022/05/25 | 329 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_simple.snap
2022/05/25 | 32955 | systems/win32/miktex/tm/packages/optex__source.tar.lzma
-2022/05/25 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
2022/05/25 | 3289 | systems/win32/miktex/tm/packages/adjmulticol.tar.lzma
-2022/05/25 | 326660 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2022/05/25 | 325 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_simple.snap
2022/05/25 | 32570 | fonts/logix/fonts/logixMono.eot
-2022/05/25 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
2022/05/25 | 323384 | systems/win32/miktex/tm/packages/pdfpages__doc.tar.lzma
2022/05/25 | 321 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_include_simple.snap
-2022/05/25 | 32133 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
2022/05/25 | 3173 | support/texlab/tests/it/workspace_symbol.rs
-2022/05/25 | 316243 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/05/25 | 31589 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
2022/05/25 | 3157 | support/texlab/src/citation/entry.rs
-2022/05/25 | 31519 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
2022/05/25 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_incomplete.snap
2022/05/25 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_simple.snap
2022/05/25 | 3141 | support/texlab/src/features/forward_search.rs
-2022/05/25 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
2022/05/25 | 313 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_label_reference_simple.snap
-2022/05/25 | 31343 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2022/05/25 | 312 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_reference_simple.snap
2022/05/25 | 31269 | systems/win32/miktex/tm/packages/latex-amsmath-dev.tar.lzma
2022/05/25 | 312602 | systems/win32/miktex/tm/packages/adjmulticol__doc.tar.lzma
@@ -431,18 +569,15 @@
2022/05/25 | 310 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_simple.snap
2022/05/25 | 3097 | support/texlab/src/features/link.rs
2022/05/25 | 306 | support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file_mumber.snap
-2022/05/25 | 30542 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2022/05/25 | 3047 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_010.snap
2022/05/25 | 3031 | support/texlab/src/options.rs
2022/05/25 | 302 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error4.snap
2022/05/25 | 301 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_simple.snap
-2022/05/25 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
2022/05/25 | 299 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__wrap_long_lines.snap
2022/05/25 | 29972949 | systems/win32/miktex/tm/packages/latex-base-dev__doc.tar.lzma
2022/05/25 | 298 | support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file.snap
2022/05/25 | 2988 | support/texlab/src/diagnostics/chktex.rs
2022/05/25 | 29805 | systems/win32/miktex/tm/packages/latex-lab-dev__source.tar.lzma
-2022/05/25 | 296039 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2022/05/25 | 2957262 | systems/win32/miktex/tm/packages/beamer__doc.tar.lzma
2022/05/25 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_star.snap
2022/05/25 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_simple.snap
@@ -453,35 +588,20 @@
2022/05/25 | 2907 | support/texlab/tests/it/snapshots/it__completion__latex__class_command.snap
2022/05/25 | 2891 | support/texlab/src/features/completion/color.rs
2022/05/25 | 2883 | support/texlab/tests/it/snapshots/it__completion__latex__package_environment.snap
-2022/05/25 | 288199 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
2022/05/25 | 287 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_missing_brace.snap
-2022/05/25 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
2022/05/25 | 2873 | support/texlab/tests/it/snapshots/it__completion__latex__preselect_environment.snap
-2022/05/25 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/05/25 | 286412 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
2022/05/25 | 285 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets_with_group.snap
-2022/05/25 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/05/25 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/05/25 | 28423 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
2022/05/25 | 283 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_simple.snap
2022/05/25 | 2838 | support/texlab/src/features/rename/command.rs
2022/05/25 | 2835 | support/texlab/tests/it/snapshots/it__completion__latex__pgf_library.snap
-2022/05/25 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2022/05/25 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_empty.snap
2022/05/25 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_missing_end.snap
2022/05/25 | 279 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_empty.snap
2022/05/25 | 2797 | support/texlab/src/features/hover/component.rs
-2022/05/25 | 278745 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/05/25 | 278665 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2022/05/25 | 2783 | support/texlab/tests/it/snapshots/it__completion__latex__package_command.snap
2022/05/25 | 277 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_star.snap
2022/05/25 | 276761 | systems/win32/miktex/tm/packages/pgf-umlcd__doc.tar.lzma
-2022/05/25 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/05/25 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/05/25 | 27249 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
2022/05/25 | 2705 | biblio/bibtex/contrib/bath-bst/Makefile
-2022/05/25 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/05/25 | 2694876 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2022/05/25 | 2668 | support/texlab/tests/it/snapshots/it__completion__latex__color_name.snap
2022/05/25 | 2668 | support/texlab/src/features/completion/user_environment.rs
2022/05/25 | 2666 | support/texlab/tests/it/snapshots/it__document_symbol__enumerate_nested.snap
@@ -492,36 +612,24 @@
2022/05/25 | 261 | support/texlab/src/req_queue.rs
2022/05/25 | 26061 | systems/win32/miktex/tm/packages/nwafuthesis.tar.lzma
2022/05/25 | 2600936 | systems/win32/miktex/tm/packages/erewhon.tar.lzma
-2022/05/25 | 259258 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
2022/05/25 | 2586 | support/texlab/texlab.tex
2022/05/25 | 2578268 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
-2022/05/25 | 25549 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/05/25 | 25483952 | systems/texlive/tlnet/install-tl.zip
2022/05/25 | 25354304 | systems/texlive/tlnet/archive/roboto.r63389.tar.xz
2022/05/25 | 2523 | support/texlab/src/features/formatting/latexindent.rs
-2022/05/25 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/05/25 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
2022/05/25 | 250923 | systems/win32/miktex/tm/packages/tex-nutshell.tar.lzma
2022/05/25 | 2507228 | systems/win32/miktex/tm/packages/latex-graphics-dev__doc.tar.lzma
-2022/05/25 | 25059 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2022/05/25 | 25054 | systems/win32/miktex/tm/packages/xduts__source.tar.lzma
2022/05/25 | 249090 | fonts/logix/source/logix.math
2022/05/25 | 2488 | support/texlab/tests/it/snapshots/it__completion__latex__theorem_environment.snap
2022/05/25 | 2484 | macros/latex/contrib/biblatex-contrib/biblatex-bath/Makefile
2022/05/25 | 2477 | support/texlab/src/citation/field/date.rs
-2022/05/25 | 247335 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
2022/05/25 | 2470 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_015.snap
-2022/05/25 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/05/25 | 244960 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
2022/05/25 | 2442 | support/texlab/src/citation/output.rs
2022/05/25 | 243 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_empty.snap
2022/05/25 | 242 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__line_break.snap
2022/05/25 | 2420999 | systems/win32/miktex/tm/packages/latex-amsmath-dev__doc.tar.lzma
2022/05/25 | 2416 | support/texlab/src/dispatch.rs
2022/05/25 | 2415 | support/texlab/src/syntax/latex/analysis/explicit_link.rs
-2022/05/25 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/05/25 | 23945 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/05/25 | 2382596 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/05/25 | 23798 | support/texlab/src/features/completion.rs
2022/05/25 | 2363 | systems/win32/miktex/tm/packages/bxghost__doc.tar.lzma
2022/05/25 | 236174 | systems/win32/miktex/tm/packages/doclicense.tar.lzma
@@ -540,7 +648,6 @@
2022/05/25 | 2231 | support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_incomplete.snap
2022/05/25 | 2218 | support/texlab/tests/it/hover.rs
2022/05/25 | 2217204 | systems/texlive/tlnet/archive/stex.doc.r63390.tar.xz
-2022/05/25 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2022/05/25 | 22028 | systems/win32/miktex/tm/packages/gentium-tug__source.tar.lzma
2022/05/25 | 2192278 | systems/win32/miktex/tm/packages/xint__doc.tar.lzma
2022/05/25 | 2185 | support/texlab/src/syntax/latex/analysis/distro_file.rs
@@ -551,63 +658,42 @@
2022/05/25 | 2162 | support/texlab/Cargo.toml
2022/05/25 | 2155550 | macros/latex/contrib/nicematrix.zip
2022/05/25 | 2135 | support/texlab/src/features/completion/begin_command.rs
-2022/05/25 | 213277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/05/25 | 21316 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
2022/05/25 | 212401 | macros/latex/contrib/mnotes/mnotes.pdf
2022/05/25 | 2108 | support/texlab/src/distro.rs
-2022/05/25 | 210277 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
2022/05/25 | 2097 | support/texlab/src/diagnostics/debouncer.rs
2022/05/25 | 2092 | support/texlab/src/features/hover/label.rs
-2022/05/25 | 208807 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2022/05/25 | 206 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets.snap
2022/05/25 | 206 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_braces.snap
2022/05/25 | 20621 | systems/win32/miktex/tm/packages/pgf-umlcd__source.tar.lzma
2022/05/25 | 206128 | systems/win32/miktex/tm/packages/optex.tar.lzma
2022/05/25 | 205 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__hello_world.snap
2022/05/25 | 2049250 | systems/win32/miktex/tm/packages/latex-via-exemplos.tar.lzma
-2022/05/25 | 20465753 | systems/texlive/tlnet/install-tl-windows.exe
-2022/05/25 | 203836 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/05/25 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
2022/05/25 | 2025452 | systems/win32/miktex/tm/packages/nwafuthesis__doc.tar.lzma
2022/05/25 | 2021 | support/texlab/docs/custom_messages.md
2022/05/25 | 2019 | support/texlab/src/distro/kpsewhich.rs
-2022/05/25 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
2022/05/25 | 2016789 | systems/win32/miktex/tm/packages/optex__doc.tar.lzma
2022/05/25 | 200520 | fonts/logix/tex/logix.sty
-2022/05/25 | 200396 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
2022/05/25 | 1998 | support/texlab/src/lang_data.rs
-2022/05/25 | 199833 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
2022/05/25 | 1995 | support/texlab/src/main.rs
2022/05/25 | 1984 | support/texlab/src/syntax/latex/analysis/label_name.rs
-2022/05/25 | 1982085 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/05/25 | 197037 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
2022/05/25 | 1964 | systems/texlive/tlnet/archive/collection-fontsextra.r63394.tar.xz
2022/05/25 | 19617 | systems/win32/miktex/tm/packages/srbtiks.tar.lzma
-2022/05/25 | 196117 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2022/05/25 | 19348 | systems/texlive/tlnet/archive/nwafuthesis.r63391.tar.xz
2022/05/25 | 1927 | support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color.snap
2022/05/25 | 1919 | support/texlab/src/syntax/latex/analysis/types.rs
2022/05/25 | 19133 | support/texlab/CHANGELOG.md
-2022/05/25 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
2022/05/25 | 190479 | biblio/bibtex/contrib/bath-bst/bath-bst.dtx
2022/05/25 | 1903257 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
2022/05/25 | 1864 | support/texlab/tests/it/snapshots/it__document_symbol__theorem_nested.snap
2022/05/25 | 185375 | systems/win32/miktex/tm/packages/babel.tar.lzma
2022/05/25 | 18522 | support/texlab/src/syntax/latex/lexer.rs
-2022/05/25 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2022/05/25 | 183 | support/texlab/CONTRIBUTING.md
2022/05/25 | 1839 | support/texlab/src/syntax/latex/analysis/implicit_link.rs
-2022/05/25 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
2022/05/25 | 183672 | systems/texlive/tlnet/archive/symbats3.doc.r63394.tar.xz
-2022/05/25 | 181513 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/05/25 | 179877 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2022/05/25 | 1791 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_nested.snap
2022/05/25 | 1774 | support/texlab/src/diagnostics.rs
2022/05/25 | 1767 | support/texlab/src/features/completion/util.rs
-2022/05/25 | 1752147 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/05/25 | 17491753 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2022/05/25 | 17333 | macros/latex/contrib/mnotes/mnotes.dtx
-2022/05/25 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2022/05/25 | 1718 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_001.snap
2022/05/25 | 171831 | macros/latex/contrib/biblatex-contrib/biblatex-bath/biblatex-bath.dtx
2022/05/25 | 170 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_empty.snap
@@ -615,13 +701,10 @@
2022/05/25 | 1696 | support/texlab/tests/it/snapshots/it__document_symbol__enumerate_flat.snap
2022/05/25 | 16958 | support/texlab/src/syntax/latex/cst.rs
2022/05/25 | 16945 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
-2022/05/25 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2022/05/25 | 1682 | support/texlab/src/citation/field/author.rs
2022/05/25 | 16715 | systems/win32/miktex/tm/packages/verifiche__source.tar.lzma
2022/05/25 | 166 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_escape.snap
2022/05/25 | 166867 | systems/win32/miktex/tm/packages/beamer.tar.lzma
-2022/05/25 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/05/25 | 16504 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2022/05/25 | 162 | support/texlab/tests/it/snapshots/it__completion__latex__citation_after.snap
2022/05/25 | 1596 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_011.snap
2022/05/25 | 1593 | support/texlab/src/client.rs
@@ -630,26 +713,14 @@
2022/05/25 | 157 | support/texlab/tests/it/snapshots/it__completion__bibtex__junk.snap
2022/05/25 | 157 | support/texlab/tests/it/snapshots/it__completion__bibtex__empty_document.snap
2022/05/25 | 15755 | systems/win32/miktex/tm/packages/njuthesis.tar.lzma
-2022/05/25 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/05/25 | 155497 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2022/05/25 | 1547 | support/texlab/benches/bench_main.rs
-2022/05/25 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/05/25 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2022/05/25 | 1526205 | macros/latex/contrib/nicematrix/nicematrix.pdf
-2022/05/25 | 152030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2022/05/25 | 1508 | support/texlab/tests/it/snapshots/it__issues__510_completion_with_unmatched_braces.snap
2022/05/25 | 1504 | support/texlab/tests/it/snapshots/it__document_symbol__section_nested.snap
-2022/05/25 | 1501239 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2022/05/25 | 1475 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acronym_declaration.snap
-2022/05/25 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/05/25 | 1457808 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/05/25 | 1457490 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
2022/05/25 | 14551 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_001.snap
-2022/05/25 | 1454763 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/05/25 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2022/05/25 | 1444558 | systems/win32/miktex/tm/packages/unbtex__doc.tar.lzma
2022/05/25 | 14444 | systems/win32/miktex/tm/packages/symbats3__source.tar.lzma
-2022/05/25 | 14410 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2022/05/25 | 1428 | support/texlab/src/citation/snapshots/texlab__citation__tests__mvbook_nietzsche_1988.snap
2022/05/25 | 14261 | systems/win32/miktex/tm/packages/pdfpages.tar.lzma
2022/05/25 | 1425 | support/texlab/src/syntax/latex/analysis.rs
@@ -659,7 +730,6 @@
2022/05/25 | 1411 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_averroes_1998.snap
2022/05/25 | 1408 | support/texlab/tests/it/snapshots/it__document_symbol__theorem_flat.snap
2022/05/25 | 13988 | systems/win32/miktex/tm/packages/lua-widow-control.tar.lzma
-2022/05/25 | 139101 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2022/05/25 | 13898 | support/texlab/src/features/symbol/latex.rs
2022/05/25 | 1385 | support/texlab/src/citation/field/number.rs
2022/05/25 | 137 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter.snap
@@ -669,18 +739,10 @@
2022/05/25 | 1374 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_options.snap
2022/05/25 | 135 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter_error.snap
2022/05/25 | 13596 | systems/win32/miktex/tm/packages/hvextern__source.tar.lzma
-2022/05/25 | 135949 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/05/25 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/05/25 | 135375 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/05/25 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/05/25 | 1344358 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2022/05/25 | 1344181 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
2022/05/25 | 13348 | systems/win32/miktex/tm/packages/doclicense__source.tar.lzma
2022/05/25 | 1330 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_blom_2021.snap
-2022/05/25 | 1322741 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2022/05/25 | 1314 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_kastenholz_2006.snap
2022/05/25 | 13114 | systems/win32/miktex/tm/packages/sidenotesplus__source.tar.lzma
-2022/05/25 | 1302482 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2022/05/25 | 1300 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__entry_colon.snap
2022/05/25 | 1300 | support/texlab/src/syntax/bibtex.rs
2022/05/25 | 1291344 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__doc.tar.lzma
@@ -688,7 +750,6 @@
2022/05/25 | 1282 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_enum_item.snap
2022/05/25 | 1278608 | systems/win32/miktex/tm/packages/njuthesis__doc.tar.lzma
2022/05/25 | 1268 | support/texlab/src/line_index_ext.rs
-2022/05/25 | 126535 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2022/05/25 | 126377 | systems/win32/miktex/tm/packages/media4svg__doc.tar.lzma
2022/05/25 | 125 | support/texlab/tests/it/main.rs
2022/05/25 | 125248 | systems/win32/miktex/tm/packages/create-theorem__doc.tar.lzma
@@ -700,32 +761,23 @@
2022/05/25 | 122188 | systems/win32/miktex/tm/packages/polexpr__doc.tar.lzma
2022/05/25 | 1219 | support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color_set.snap
2022/05/25 | 1216840 | fonts/logix/fonts/logix.ttf
-2022/05/25 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2022/05/25 | 12027 | systems/win32/miktex/tm/packages/functional.tar.lzma
2022/05/25 | 119972 | systems/texlive/tlnet/archive/bidi.r63392.tar.xz
2022/05/25 | 119689 | systems/win32/miktex/tm/packages/bidi.tar.lzma
2022/05/25 | 118 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__invalid_parameter.snap
2022/05/25 | 11851 | support/texlab/src/citation/tests.rs
-2022/05/25 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2022/05/25 | 117 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__command.snap
2022/05/25 | 11772 | support/texlab/src/features/formatting/bibtex_internal.rs
2022/05/25 | 1176 | support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_combi_2004.snap
2022/05/25 | 1164 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_004.snap
-2022/05/25 | 115656 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/05/25 | 1156465 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/05/25 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2022/05/25 | 11519 | support/texlab/tests/it/document_symbol.rs
2022/05/25 | 114 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__trailing_comma.snap
2022/05/25 | 114 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__insert_braces.snap
2022/05/25 | 11495 | support/texlab/tests/it/common.rs
2022/05/25 | 1136 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested.snap
2022/05/25 | 1134 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_definition.snap
-2022/05/25 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/05/25 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2022/05/25 | 111 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__preamble.snap
2022/05/25 | 1115 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_016.snap
-2022/05/25 | 109756 | systems/texlive/tlnet/archive/texlive-scripts.r63388.tar.xz
-2022/05/25 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
2022/05/25 | 1094111 | systems/win32/miktex/tm/packages/gentium-tug__doc.tar.lzma
2022/05/25 | 1090 | support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_complete.snap
2022/05/25 | 1088 | support/texlab/tests/it/snapshots/it__document_symbol__float_flat.snap
@@ -733,7 +785,6 @@
2022/05/25 | 1084 | support/texlab/tests/it/snapshots/it__document_symbol__equation_flat.snap
2022/05/25 | 107 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__string.snap
2022/05/25 | 1078 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_002.snap
-2022/05/25 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2022/05/25 | 1075 | support/texlab/src/distro/texlive.rs
2022/05/25 | 1064 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_aksin_2006.snap
2022/05/25 | 1062 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_jain_1999.snap
@@ -744,16 +795,12 @@
2022/05/25 | 1049 | support/texlab/docs/tectonic.md
2022/05/25 | 1048 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_options.snap
2022/05/25 | 1045 | support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_item.snap
-2022/05/25 | 104556 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/05/25 | 103338 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/05/25 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
2022/05/25 | 102 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__parens.snap
2022/05/25 | 10234 | support/texlab/src/features/cursor.rs
-2022/05/25 | 1021846 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
2022/05/25 | 1010376 | systems/win32/miktex/tm/packages/xepersian__doc.tar.lzma
2022/05/25 | 1010132 | systems/texlive/tlnet/archive/xepersian.doc.r63393.tar.xz
2022/05/25 | 100 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__empty.snap
-2022/05/25 | 100486 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/05/25 | 1001992 | info/biblio/texbook3.bib
2022/05/24 | 99075198 | systems/win32/TLW64/tl-win64.zip
2022/05/24 | 9870 | macros/latex/contrib/stex/doc/packages/stex-mathhub.tex
2022/05/24 | 983933 | macros/latex/contrib/stex/doc/stex-manual.pdf
@@ -762,7 +809,6 @@
2022/05/24 | 928304 | macros/xetex/latex/bidi/bidi.dtx
2022/05/24 | 920644 | systems/texlive/tlnet/archive/letgut.doc.r63386.tar.xz
2022/05/24 | 910272 | systems/texlive/tlnet/archive/hvextern.doc.r63386.tar.xz
-2022/05/24 | 890976 | systems/texlive/tlnet/archive/beebe.r63377.tar.xz
2022/05/24 | 880 | systems/texlive/tlnet/archive/dvisvgm.r63386.tar.xz
2022/05/24 | 82848 | systems/texlive/tlnet/archive/fontspec.source.r63386.tar.xz
2022/05/24 | 813888 | systems/texlive/tlnet/archive/tugboat.doc.r63386.tar.xz
@@ -773,7 +819,6 @@
2022/05/24 | 6656 | systems/texlive/tlnet/archive/ut-thesis.source.r63386.tar.xz
2022/05/24 | 6586 | macros/latex/contrib/stex/source/stex/stex-metatheory.dtx
2022/05/24 | 6568 | systems/texlive/tlnet/archive/uwa-letterhead.source.r63386.tar.xz
-2022/05/24 | 62589 | macros/unicodetex/latex/nwafuthesis/nwafuthesis-doc.dtx
2022/05/24 | 6101 | macros/xetex/latex/bidi/bidi-doc-latex-pkgsupport.ltx
2022/05/24 | 6060 | systems/texlive/tlnet/archive/uwa-pcf.source.r63386.tar.xz
2022/05/24 | 6028 | systems/texlive/tlnet/archive/hvextern.r63386.tar.xz
@@ -805,7 +850,6 @@
2022/05/24 | 3596 | macros/xetex/latex/bidi/bidi-doc-preamble.ltx
2022/05/24 | 35348 | systems/texlive/tlnet/archive/pdfpages.source.r63386.tar.xz
2022/05/24 | 34999 | fonts/symbats3/codepoint.tex
-2022/05/24 | 3431479 | macros/unicodetex/latex/nwafuthesis.zip
2022/05/24 | 342009 | macros/xetex/latex/xepersian/xepersian.dtx
2022/05/24 | 3408 | systems/texlive/tlnet/archive/pgf-umlcd.r63386.tar.xz
2022/05/24 | 3372 | fonts/roboto/doc/roboto-samples.tex
@@ -825,7 +869,6 @@
2022/05/24 | 27849 | fonts/symbats3/unicodename.tex
2022/05/24 | 27849 | fonts/symbats3/latexname.tex
2022/05/24 | 2722538 | macros/latex/contrib/stex.zip
-2022/05/24 | 269229 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx
2022/05/24 | 26664 | systems/texlive/tlnet/archive/fontspec.r63386.tar.xz
2022/05/24 | 2616 | systems/texlive/tlnet/archive/ut-thesis.r63386.tar.xz
2022/05/24 | 25946 | macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx
@@ -836,7 +879,6 @@
2022/05/24 | 243579 | macros/xetex/latex/xepersian/xepersian-doc.pdf
2022/05/24 | 23945 | macros/xetex/latex/bidi/bidi-doc-latex-basics.ltx
2022/05/24 | 23747 | macros/latex/contrib/stex/source/extensions/problem.dtx
-2022/05/24 | 2337625 | macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf
2022/05/24 | 220392 | systems/texlive/tlnet/archive/tugboat-plain.doc.r63386.tar.xz
2022/05/24 | 2108 | macros/xetex/latex/xepersian/xepersian-doc-title.ltx
2022/05/24 | 2108 | macros/xetex/latex/bidi/bidi-doc-title.ltx
@@ -882,7 +924,6 @@
2022/05/24 | 10896 | macros/xetex/latex/xepersian/img/weather/sun.jpg
2022/05/24 | 107332 | systems/texlive/tlnet/archive/dvisvgm.doc.r63386.tar.xz
2022/05/24 | 10612 | systems/texlive/tlnet/archive/etoc.r63386.tar.xz
-2022/05/24 | 1001991 | info/biblio/texbook3.bib
2022/05/23 | 928 | macros/latex/contrib/hvextern/Changes
2022/05/23 | 8759036 | systems/texlive/tlnet/archive/gentium-tug.r63367.tar.xz
2022/05/23 | 849216 | systems/texlive/tlnet/archive/babel.doc.r63369.tar.xz
@@ -893,6 +934,7 @@
2022/05/23 | 521244 | systems/texlive/tlnet/archive/causets.doc.r63366.tar.xz
2022/05/23 | 46271 | macros/latex/contrib/hvextern/doc/hvextern.tex
2022/05/23 | 400 | systems/texlive/tlnet/archive/latex-via-exemplos.r63374.tar.xz
+2022/05/23 | 3278 | support/pkgcheck/docs/fatald.tex
2022/05/23 | 2975 | macros/unicodetex/latex/njuthesis/njuthesis.ins
2022/05/23 | 29260 | systems/texlive/tlnet/archive/latex-lab-dev.source.r63373.tar.xz
2022/05/23 | 290059 | support/TeX4ht/source/tex4ht-sty.tex
@@ -973,6 +1015,7 @@
2022/05/22 | 523 | graphics/pgf/contrib/pgf-umlcd/demo/visibility.tex
2022/05/22 | 519 | graphics/pgf/contrib/pgf-umlcd/demo/unidirectional-association.tex
2022/05/22 | 5112 | fonts/gentium-tug/doc/GentiumPlus-6.101/documentation/developer.html
+2022/05/22 | 50361 | support/pkgcheck/src/main.rs
2022/05/22 | 48377 | indexing/makeindexk/Makefile.in
2022/05/22 | 4836 | fonts/gentium-tug/doc/GentiumPlus-6.101/documentation/source/pdftemp/faq.html
2022/05/22 | 483657 | graphics/pgf/contrib/causets/causets.pdf
@@ -1048,6 +1091,7 @@
2022/05/22 | 20858 | fonts/gentium-tug/doc/GentiumPlus-6.101/documentation/history.html
2022/05/22 | 2012 | systems/texlive/tlnet/archive/bxghost.r63354.tar.xz
2022/05/22 | 1980 | systems/texlive/tlnet/archive/bxghost.doc.r63354.tar.xz
+2022/05/22 | 1978 | support/pkgcheck/src/messages/fatald.rs
2022/05/22 | 19595 | fonts/gentium-tug/doc/GentiumPlus-6.101/FONTLOG.txt
2022/05/22 | 1927 | graphics/pgf/contrib/pgf-umlcd/demo/abstract-factory.tex
2022/05/22 | 19267 | indexing/makeindexk/scanid.c
@@ -1059,6 +1103,7 @@
2022/05/22 | 180 | graphics/pgf/contrib/pgf-umlcd/demo/interface.tex
2022/05/22 | 18092 | graphics/pgf/contrib/pgf-umlcd/LICENSE-GPL2.txt
2022/05/22 | 178021 | macros/latex/contrib/pdfpages/pdfpages.dtx
+2022/05/22 | 17790 | support/pkgcheck/src/messages/mod.rs
2022/05/22 | 172 | graphics/pgf/contrib/pgf-umlcd/demo/object.tex
2022/05/22 | 170 | indexing/makeindexk/tests/romalpD-7.ind
2022/05/22 | 170 | indexing/makeindexk/tests/romalpD-6.ind
@@ -1085,6 +1130,7 @@
2022/05/22 | 12023 | fonts/gentium-tug/doc/GentiumPlus-6.101/documentation/source/productsite/history.md
2022/05/22 | 119454 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf
2022/05/22 | 1154 | fonts/gentium-tug/doc/GentiumPlus-6.101/documentation/source/productsite/support.md
+2022/05/22 | 11473 | support/pkgcheck/src/messages/errorsd.rs
2022/05/22 | 111 | graphics/pgf/contrib/pgf-umlcd/description.html
2022/05/22 | 106025 | graphics/pgf/contrib/pgf-umlcd/demo/abstract-factory.svg
2022/05/21 | 99154 | macros/latex/contrib/unbtex/unbtex-example/figuras/fig1.eps
@@ -1134,7 +1180,6 @@
2022/05/20 | 80628 | systems/texlive/tlnet/archive/xint.r63338.tar.xz
2022/05/20 | 761504 | install/macros/luatex/generic/lua-widow-control.tds.zip
2022/05/20 | 760498 | macros/luatex/generic/lua-widow-control.zip
-2022/05/20 | 73556 | macros/plain/contrib/tugboat/tugboat.sty
2022/05/20 | 713224 | systems/texlive/tlnet/archive/latex-base-dev.source.r63339.tar.xz
2022/05/20 | 6706358 | usergrps/gutenberg/lettre/lettre45.pdf
2022/05/20 | 66332 | systems/texlive/tlnet/archive/latex-amsmath-dev.source.r63339.tar.xz
@@ -1144,7 +1189,6 @@
2022/05/20 | 56932 | systems/texlive/tlnet/archive/latex-graphics-dev.source.r63339.tar.xz
2022/05/20 | 5300884 | systems/texlive/tlnet/archive/latex-tools-dev.doc.r63339.tar.xz
2022/05/20 | 516 | systems/texlive/tlnet/archive/tex-nutshell.r63336.tar.xz
-2022/05/20 | 494598 | macros/latex/contrib/tugboat/tugboat.pdf
2022/05/20 | 47183 | macros/luatex/generic/lua-widow-control/tb133chernoff-widows-plot.dat
2022/05/20 | 4630 | macros/luatex/generic/lua-widow-control/tb133chernoff-widows-figure.ctx
2022/05/20 | 434335 | macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
@@ -1152,11 +1196,7 @@
2022/05/20 | 413192 | macros/latex/contrib/sidenotesplus.zip
2022/05/20 | 401508 | systems/texlive/tlnet/archive/xint.source.r63338.tar.xz
2022/05/20 | 39920 | systems/texlive/tlnet/archive/polexpr.r63337.tar.xz
-2022/05/20 | 39679 | macros/latex/contrib/tugboat/tugboat.bst
-2022/05/20 | 39108 | macros/latex/contrib/tugboat/ltubguid.ltx
2022/05/20 | 38102 | macros/latex/contrib/sidenotesplus/sidenotesplus.dtx
-2022/05/20 | 37115 | macros/plain/contrib/tugboat/tugboat.cmn
-2022/05/20 | 362388 | macros/latex/contrib/tugboat/ltubguid.pdf
2022/05/20 | 333164 | macros/luatex/generic/lua-widow-control/tb133chernoff-widows.pdf
2022/05/20 | 33192 | macros/luatex/generic/lua-widow-control/lwc-manual.tex
2022/05/20 | 32 | macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkiv
@@ -1164,11 +1204,9 @@
2022/05/20 | 31020 | systems/texlive/tlnet/archive/latex-amsmath-dev.r63339.tar.xz
2022/05/20 | 30551824 | systems/texlive/tlnet/archive/latex-base-dev.doc.r63339.tar.xz
2022/05/20 | 3021 | macros/luatex/generic/lua-widow-control/lua-widow-control-2022-02-22.sty
-2022/05/20 | 2925 | macros/latex/contrib/tugboat/tugboat.ins
2022/05/20 | 284232 | systems/texlive/tlnet/archive/tex-nutshell.doc.r63336.tar.xz
2022/05/20 | 2817 | macros/luatex/generic/lua-widow-control/README.md
2022/05/20 | 2766 | macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
-2022/05/20 | 2676 | macros/latex/contrib/tugboat/README
2022/05/20 | 258640 | macros/plain/contrib/tugboat.zip
2022/05/20 | 2537724 | systems/texlive/tlnet/archive/simpleicons.r63335.tar.xz
2022/05/20 | 2505404 | systems/texlive/tlnet/archive/latex-graphics-dev.doc.r63339.tar.xz
@@ -1177,542 +1215,15 @@
2022/05/20 | 228964 | systems/texlive/tlnet/archive/doclicense.doc.r63340.tar.xz
2022/05/20 | 228716 | systems/texlive/tlnet/archive/latex-tools-dev.source.r63339.tar.xz
2022/05/20 | 226552 | systems/texlive/tlnet/archive/latex-base-dev.r63339.tar.xz
-2022/05/20 | 22525 | macros/latex/contrib/tugboat/ltugbib.bst
2022/05/20 | 2208 | macros/luatex/generic/lua-widow-control/lua-widow-control.tex
2022/05/20 | 2191912 | systems/texlive/tlnet/archive/xint.doc.r63338.tar.xz
2022/05/20 | 218699 | macros/latex/contrib/sidenotesplus/tests-sidenoteplus.pdf
2022/05/20 | 212629 | macros/latex/contrib/sidenotesplus/sidenotesplus.pdf
-2022/05/20 | 207821 | macros/plain/contrib/tugboat/tubguide.pdf
2022/05/20 | 1916492 | systems/texlive/tlnet/archive/simpleicons.doc.r63335.tar.xz
-2022/05/20 | 189 | macros/latex/contrib/tugboat/manifest.txt
2022/05/20 | 1784 | macros/luatex/generic/lua-widow-control/lua-widow-control.opm
2022/05/20 | 15944 | systems/texlive/tlnet/archive/latex-graphics-dev.r63339.tar.xz
-2022/05/20 | 1465 | macros/latex/contrib/tugboat/NEWS
-2022/05/20 | 141730 | macros/latex/contrib/tugboat/tugboat.dtx
2022/05/20 | 1404 | macros/luatex/generic/lua-widow-control/lwc-manual.bib
2022/05/20 | 13012 | systems/texlive/tlnet/archive/doclicense.source.r63340.tar.xz
2022/05/20 | 12 | usergrps/gutenberg/VERSION
2022/05/20 | 123176 | systems/texlive/tlnet/archive/polexpr.doc.r63337.tar.xz
2022/05/20 | 10840 | macros/latex/contrib/sidenotesplus/tests-sidenoteplus.tex
-2022/05/19 | 99 | macros/latex-dev/base/ltpara-code.tex
-2022/05/19 | 999 | fonts/simpleicons/map/simpleicons.map
-2022/05/19 | 996 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsnine.tfm
-2022/05/19 | 9926 | macros/latex-dev/base/ltnews21.tex
-2022/05/19 | 9779 | macros/latex-dev/base/format.ins
-2022/05/19 | 96 | macros/latex-dev/base/doc-code.tex
-2022/05/19 | 9557 | macros/latex-dev/base/ltcntrl.dtx
-2022/05/19 | 9493 | macros/latex-dev/required/tools/shellesc.dtx
-2022/05/19 | 947064 | systems/texlive/tlnet/archive/markdown.doc.r63328.tar.xz
-2022/05/19 | 9401 | macros/latex-dev/base/source2edoc.cls
-2022/05/19 | 9395 | macros/latex-dev/base/syntonly.dtx
-2022/05/19 | 9345 | macros/latex-dev/base/preload.dtx
-2022/05/19 | 92039 | macros/latex-dev/base/utf8ienc.dtx
-2022/05/19 | 9068 | macros/latex-dev/base/lppl-1-0.txt
-2022/05/19 | 90370 | macros/latex-dev/base/lttextcomp.dtx
-2022/05/19 | 89812 | systems/texlive/tlnet/archive/markdown.source.r63328.tar.xz
-2022/05/19 | 8976 | macros/latex-dev/required/tools/rawfonts.dtx
-2022/05/19 | 89727 | macros/latex-dev/base/slides.dtx
-2022/05/19 | 8970 | macros/latex-dev/base/ltnews17.tex
-2022/05/19 | 8731 | macros/latex-dev/base/ltthm.dtx
-2022/05/19 | 8663 | macros/latex-dev/required/amsmath/amsbsy.dtx
-2022/05/19 | 8632 | macros/latex-dev/required/tools/showkeys-2014-10-28.sty
-2022/05/19 | 8626 | macros/latex-dev/base/oldlfont.dtx
-2022/05/19 | 85858 | macros/latex-dev/base/ltdefns.dtx
-2022/05/19 | 85099 | macros/latex-dev/required/amsmath/amsmath-2018-12-01.sty
-2022/05/19 | 84215 | macros/latex-dev/base/ltfssini.dtx
-2022/05/19 | 8368 | macros/latex-dev/base/ltnews.tex
-2022/05/19 | 828876 | systems/texlive/tlnet/archive/fancyhdr.doc.r63329.tar.xz
-2022/05/19 | 8244 | fonts/gentium-tug/doc/gentium-tug/ChangeLog
-2022/05/19 | 82371 | macros/latex-dev/required/amsmath/testmath.tex
-2022/05/19 | 820725 | macros/latex-dev/base/ltshipout-code.pdf
-2022/05/19 | 80881 | macros/latex-dev/base/ltfssbas.dtx
-2022/05/19 | 8039 | support/TeX4ht/source/mktex4ht-cnf.tex
-2022/05/19 | 802690 | macros/latex-dev/base/ltfilehook-code.pdf
-2022/05/19 | 80053 | macros/latex-dev/base/ltshipout.dtx
-2022/05/19 | 7972 | macros/latex-dev/required/amsmath/changes.txt
-2022/05/19 | 7716 | systems/texlive/tlnet/archive/media4svg.r63330.tar.xz
-2022/05/19 | 76397 | macros/latex-dev/required/tools/longtable.dtx
-2022/05/19 | 7524 | macros/latex-dev/base/ltxguide.cls
-2022/05/19 | 747853 | macros/latex-dev/base/doc.pdf
-2022/05/19 | 73672 | macros/latex-dev/required/tools/tools-overview.pdf
-2022/05/19 | 7324176 | install/macros/latex-dev/required/latex-tools-dev.tds.zip
-2022/05/19 | 72475 | macros/latex-dev/base/ltfsstrc.dtx
-2022/05/19 | 7234949 | macros/latex-dev/required/tools.zip
-2022/05/19 | 72345 | macros/generic/polexpr/polexprsturm.tex
-2022/05/19 | 7221 | macros/latex-dev/base/ltnews20.tex
-2022/05/19 | 7216 | macros/latex-dev/base/exscale.dtx
-2022/05/19 | 72136 | macros/latex-dev/required/tools/verbatim.dtx
-2022/05/19 | 7200 | macros/latex-dev/base/sample2e.tex
-2022/05/19 | 719854 | macros/latex-dev/base/ltcmdhooks-code.pdf
-2022/05/19 | 719836 | systems/texlive/tlnet/archive/verifiche.doc.r63331.tar.xz
-2022/05/19 | 712120 | macros/latex-dev/base/ltmarks-code.pdf
-2022/05/19 | 7104 | macros/latex-dev/base/alltt.dtx
-2022/05/19 | 70951 | macros/latex-dev/required/graphics/graphics.dtx
-2022/05/19 | 70645 | macros/latex-dev/base/ltfssdcl.dtx
-2022/05/19 | 703881 | macros/latex-dev/base/lthooks-doc.pdf
-2022/05/19 | 7029 | macros/latex-dev/base/ltnews13.tex
-2022/05/19 | 69732 | macros/latex-dev/required/amsmath/amstex.sty
-2022/05/19 | 69050 | macros/latex-dev/base/clsguide.tex
-2022/05/19 | 69002 | macros/latex-dev/base/ltpictur.dtx
-2022/05/19 | 68435 | macros/latex-dev/base/usrguide.tex
-2022/05/19 | 6805 | macros/generic/polexpr/polexprexpr.tex
-2022/05/19 | 6789 | macros/latex-dev/required/tools/delarray.dtx
-2022/05/19 | 6760 | macros/latex-dev/base/slides.ins
-2022/05/19 | 6709 | macros/latex-dev/base/latexsym.dtx
-2022/05/19 | 667013 | macros/latex-dev/base/ltpara-code.pdf
-2022/05/19 | 665 | fonts/simpleicons/README.md
-2022/05/19 | 66541 | macros/latex-dev/base/ltfilehook.dtx
-2022/05/19 | 65 | systems/mac/mactex/mactex-MacTeXtras-20220519.zip.md5
-2022/05/19 | 65782 | macros/latex-dev/base/ltluatex.dtx
-2022/05/19 | 6440 | macros/latex-dev/required/amsmath/subeqn.tex
-2022/05/19 | 6424 | macros/latex-dev/base/ltnews14.tex
-2022/05/19 | 636 | macros/latex-dev/required/latex-lab/changes.txt
-2022/05/19 | 6357 | macros/latex-dev/base/newlfont.dtx
-2022/05/19 | 63280 | macros/latex-dev/base/letter.dtx
-2022/05/19 | 6218 | macros/latex-dev/required/tools/xr.dtx
-2022/05/19 | 6213 | macros/latex-dev/base/ltmeta.dtx
-2022/05/19 | 62085 | macros/latex-dev/required/tools/changes.txt
-2022/05/19 | 61565 | macros/latex-dev/required/tools/bm.dtx
-2022/05/19 | 6155 | macros/latex-dev/base/ltpar.dtx
-2022/05/19 | 614687 | macros/latex-dev/required/latex-lab/latex-lab-footnotes.pdf
-2022/05/19 | 61134 | macros/latex-dev/base/ltmarks.dtx
-2022/05/19 | 6047 | macros/latex-dev/base/latexrelease.ins
-2022/05/19 | 60321 | macros/latex-dev/base/fontdef.dtx
-2022/05/19 | 5986 | macros/latex-dev/base/ltnews15.tex
-2022/05/19 | 59499 | macros/latex-dev/base/ltplain.dtx
-2022/05/19 | 58745 | macros/latex-dev/base/ltmiscen.dtx
-2022/05/19 | 587238 | macros/latex-dev/base/ltmarks-doc.pdf
-2022/05/19 | 586 | fonts/gentium-tug/doc/gentium-tug/Makefile
-2022/05/19 | 5862 | macros/generic/polexpr/polexpr.rst.txt
-2022/05/19 | 5860 | macros/latex-dev/required/amsmath/ams-internal.txt
-2022/05/19 | 5859 | macros/latex-dev/base/ltidxglo.dtx
-2022/05/19 | 58551 | macros/latex-dev/base/ltfssaxes.dtx
-2022/05/19 | 58468 | macros/latex-dev/base/ltfiles.dtx
-2022/05/19 | 5825 | macros/latex-dev/base/ltnews10.tex
-2022/05/19 | 5791 | macros/latex-dev/required/tools/somedefs.dtx
-2022/05/19 | 5775 | macros/latex-dev/base/ltnews16.tex
-2022/05/19 | 5756258 | macros/latex-dev/base/source2e.pdf
-2022/05/19 | 57444 | macros/generic/polexpr/polexpr-examples.pdf
-2022/05/19 | 5732 | macros/latex-dev/base/ltnews08.tex
-2022/05/19 | 5714 | macros/latex-dev/base/inputenc.ins
-2022/05/19 | 5699 | macros/latex-dev/base/ltnews05.tex
-2022/05/19 | 5680 | macros/latex-dev/required/tools/tools.ins
-2022/05/19 | 5678 | macros/latex-dev/base/ltnews04.tex
-2022/05/19 | 5671 | macros/latex-dev/base/ltnews27.tex
-2022/05/19 | 565027 | macros/latex-dev/base/ltshipout-doc.pdf
-2022/05/19 | 563917 | macros/latex-dev/base/ltnews35.pdf
-2022/05/19 | 560485 | macros/latex-dev/base/ltpara-doc.pdf
-2022/05/19 | 560350 | macros/latex-dev/base/classes.pdf
-2022/05/19 | 5588 | macros/latex-dev/base/ltnews25.tex
-2022/05/19 | 5576 | macros/latex-dev/base/ltnews07.tex
-2022/05/19 | 5574 | macros/latex-dev/base/ltnews12.tex
-2022/05/19 | 55687 | macros/latex-dev/base/ltfloat.dtx
-2022/05/19 | 5544 | macros/latex-dev/base/ltnews06.tex
-2022/05/19 | 5529 | macros/latex-dev/base/ltnews11.tex
-2022/05/19 | 5509 | macros/latex-dev/base/graphpap.dtx
-2022/05/19 | 548384 | macros/latex-dev/base/ltfilehook-doc.pdf
-2022/05/19 | 5462 | macros/latex-dev/base/ltnews02.tex
-2022/05/19 | 546160 | macros/latex-dev/base/ltnews32.pdf
-2022/05/19 | 5451 | macros/latex-dev/base/ltnews09.tex
-2022/05/19 | 5369 | macros/latex-dev/base/ltnews03.tex
-2022/05/19 | 5323 | macros/latex-dev/required/amsmath/ams-external.txt
-2022/05/19 | 53167 | macros/latex-dev/required/tools/calc.dtx
-2022/05/19 | 53025 | macros/latex-dev/base/ltcmdhooks.dtx
-2022/05/19 | 52966 | macros/latex-dev/required/latex-lab/latex-lab-footnotes.dtx
-2022/05/19 | 529176 | macros/latex-dev/required/latex-lab/latex-lab-new-or.pdf
-2022/05/19 | 52813 | macros/latex-dev/base/encguide.tex
-2022/05/19 | 5273 | macros/latex-dev/base/cmextra.ins
-2022/05/19 | 52710 | macros/latex-dev/base/lb2.err
-2022/05/19 | 526323 | macros/latex-dev/base/ltnews31.pdf
-2022/05/19 | 525128 | macros/latex-dev/required/latex-lab/latex-lab-prototype.pdf
-2022/05/19 | 5246 | macros/latex-dev/base/ltnews01.tex
-2022/05/19 | 522412 | macros/latex-dev/base/ltnews33.pdf
-2022/05/19 | 521477 | macros/latex-dev/required/tools/multicol.pdf
-2022/05/19 | 5211 | macros/latex-dev/required/tools/tools-overview.tex
-2022/05/19 | 516578 | macros/latex-dev/required/tools/array.pdf
-2022/05/19 | 51606 | macros/latex-dev/base/ltpara.dtx
-2022/05/19 | 514223229 | systems/mac/mactex/mactex-MacTeXtras-20220519.zip
-2022/05/19 | 5140 | systems/texlive/tlnet/archive/fancyhdr.r63329.tar.xz
-2022/05/19 | 512096 | macros/latex-dev/required/latex-lab/documentmetadata-support-code.pdf
-2022/05/19 | 511909 | macros/latex-dev/base/ltnews30.pdf
-2022/05/19 | 508210 | macros/latex-dev/required/amsmath/amsldoc.pdf
-2022/05/19 | 50819 | macros/latex-dev/required/graphics/drivers.dtx
-2022/05/19 | 508044 | macros/latex-dev/base/ltnews34.pdf
-2022/05/19 | 5041 | macros/latex-dev/base/latexsym.ins
-2022/05/19 | 503768 | macros/latex-dev/base/docstrip.pdf
-2022/05/19 | 502880 | macros/latex-dev/base/fntguide.pdf
-2022/05/19 | 49 | systems/mac/mactex/MacTeXtras.zip.md5
-2022/05/19 | 4959 | macros/latex-dev/required/tools/fileerr.dtx
-2022/05/19 | 4945 | macros/latex-dev/base/lthyphen.dtx
-2022/05/19 | 47899 | macros/latex-dev/base/ltfinal.dtx
-2022/05/19 | 47896 | macros/latex-dev/base/lttab.dtx
-2022/05/19 | 478694 | macros/latex-dev/base/ltcmdhooks-doc.pdf
-2022/05/19 | 476037 | macros/latex-dev/required/graphics/mathcolor.pdf
-2022/05/19 | 4757 | macros/latex-dev/base/ltlength.dtx
-2022/05/19 | 4724 | systems/texlive/tlnet/archive/verifiche.r63331.tar.xz
-2022/05/19 | 47076 | systems/texlive/tlnet/archive/fancyhdr.source.r63329.tar.xz
-2022/05/19 | 4683049 | fonts/simpleicons.zip
-2022/05/19 | 45640 | macros/generic/polexpr/polexpr-changes.html
-2022/05/19 | 455107 | macros/latex-dev/base/ltnews29.pdf
-2022/05/19 | 454511 | macros/latex-dev/required/amsmath/testmath.pdf
-2022/05/19 | 45240 | macros/latex-dev/base/ltspace.dtx
-2022/05/19 | 44976 | macros/latex-dev/base/latexrelease.dtx
-2022/05/19 | 44772 | macros/latex-dev/base/ltboxes.dtx
-2022/05/19 | 44166 | macros/latex-dev/base/usrguide3.tex
-2022/05/19 | 4396 | macros/latex-dev/required/latex-lab/usage-of-@footnotemark.txt
-2022/05/19 | 4390 | macros/latex-dev/base/ec.ins
-2022/05/19 | 43636 | macros/latex-dev/base/cmfonts.fdd
-2022/05/19 | 43448 | macros/latex-dev/required/tools/theorem.dtx
-2022/05/19 | 4336 | macros/latex-dev/required/amsmath/amsxtra.dtx
-2022/05/19 | 4324 | macros/latex-dev/base/cmfonts.ins
-2022/05/19 | 430994 | macros/latex-dev/base/usrguide.pdf
-2022/05/19 | 4298 | macros/latex-dev/base/ltalloc.dtx
-2022/05/19 | 42892 | systems/texlive/tlnet/archive/markdown.r63328.tar.xz
-2022/05/19 | 4273 | macros/latex-dev/base/docstrip.ins
-2022/05/19 | 42708 | macros/latex-dev/base/changes.old.txt
-2022/05/19 | 4254 | macros/latex-dev/base/newdc.ins
-2022/05/19 | 4219 | macros/latex-dev/base/latex209.ins
-2022/05/19 | 419913 | macros/latex-dev/required/amsmath/amsmath.pdf
-2022/05/19 | 4170 | macros/latex-dev/base/ltnews19.tex
-2022/05/19 | 4122 | macros/latex-dev/required/graphics/epsfig.dtx
-2022/05/19 | 4087 | macros/latex-dev/base/classes.ins
-2022/05/19 | 4079 | macros/latex-dev/base/lablst.tex
-2022/05/19 | 403394 | macros/latex-dev/base/usrguide3.pdf
-2022/05/19 | 402780 | macros/latex-dev/base/clsguide.pdf
-2022/05/19 | 40234 | macros/latex-dev/base/ltmath.dtx
-2022/05/19 | 39696 | macros/latex-dev/required/tools/ftnright.dtx
-2022/05/19 | 3960 | macros/latex-dev/base/olddc.ins
-2022/05/19 | 395355 | macros/latex-dev/base/changes.txt
-2022/05/19 | 3946 | macros/latex-dev/required/graphics/lscape.dtx
-2022/05/19 | 39429 | macros/generic/polexpr/polexprcore.tex
-2022/05/19 | 391313 | macros/latex-dev/required/tools/longtable.pdf
-2022/05/19 | 38953 | macros/generic/polexpr/polexpr.sty
-2022/05/19 | 38930 | macros/latex-dev/base/ltnews35.tex
-2022/05/19 | 38730 | macros/latex-dev/base/latex209.dtx
-2022/05/19 | 387128 | macros/latex-dev/required/tools/ftnright.pdf
-2022/05/19 | 383856 | macros/latex-dev/required/tools/varioref.pdf
-2022/05/19 | 38265741 | install/macros/latex-dev/latex-base-dev.tds.zip
-2022/05/19 | 38153 | systems/mac/mactex/ExtrasFolder.pdf
-2022/05/19 | 3803 | macros/generic/polexpr/README.md
-2022/05/19 | 38033 | macros/latex-dev/base/ltnews18.pdf
-2022/05/19 | 379462 | macros/latex-dev/base/ltnews26.pdf
-2022/05/19 | 3781 | macros/latex-dev/base/tulm.ins
-2022/05/19 | 37720568 | macros/latex-dev/base.zip
-2022/05/19 | 376643 | macros/latex-dev/base/ltnews28.pdf
-2022/05/19 | 375986 | macros/latex-dev/required/latex-lab/documentmetadata-support-doc.pdf
-2022/05/19 | 37572 | macros/latex-dev/required/graphics/grfguide.tex
-2022/05/19 | 375518 | macros/latex-dev/base/slides.pdf
-2022/05/19 | 3725 | macros/latex-dev/base/ltlogos.dtx
-2022/05/19 | 370657 | macros/latex-dev/required/tools/calc.pdf
-2022/05/19 | 369 | macros/latex-dev/required/amsmath/manifest.txt
-2022/05/19 | 36152 | macros/latex-dev/base/ltlists.dtx
-2022/05/19 | 35984 | macros/latex-dev/base/ltdirchk.dtx
-2022/05/19 | 35875 | macros/latex-dev/required/tools/tabularx.dtx
-2022/05/19 | 353419 | macros/latex-dev/base/utf8ienc.pdf
-2022/05/19 | 351588 | macros/latex-dev/required/tools/theorem.pdf
-2022/05/19 | 35104 | macros/latex-dev/required/graphics/changes.txt
-2022/05/19 | 3477 | macros/latex-dev/base/README.md
-2022/05/19 | 3434 | macros/latex-dev/base/makeindx.ins
-2022/05/19 | 3401 | macros/latex-dev/base/proc.ins
-2022/05/19 | 33946 | macros/latex-dev/base/ltsect.dtx
-2022/05/19 | 33907 | macros/latex-dev/base/ltnews33.tex
-2022/05/19 | 33863 | macros/latex-dev/required/tools/varioref-2016-02-16.sty
-2022/05/19 | 337666 | macros/latex-dev/base/letter.pdf
-2022/05/19 | 3372 | macros/latex-dev/base/letter.ins
-2022/05/19 | 3367 | macros/latex-dev/base/ltoutenc.ins
-2022/05/19 | 3338 | macros/latex-dev/base/exscale.ins
-2022/05/19 | 33239 | macros/latex-dev/base/ltnews32.tex
-2022/05/19 | 330978 | macros/latex-dev/required/graphics/grfguide.pdf
-2022/05/19 | 330963 | macros/latex-dev/required/tools/verbatim.pdf
-2022/05/19 | 3284 | macros/latex-dev/required/tools/manifest.txt
-2022/05/19 | 3282 | macros/latex-dev/base/bugs.txt
-2022/05/19 | 323432 | macros/latex-dev/required/tools/bm.pdf
-2022/05/19 | 32307 | macros/latex-dev/base/ltnews34.tex
-2022/05/19 | 32194 | macros/latex-dev/required/graphics/color.dtx
-2022/05/19 | 32029 | macros/latex-dev/required/tools/layout.dtx
-2022/05/19 | 318548 | macros/latex-dev/base/ltnews20.pdf
-2022/05/19 | 318204 | macros/latex-dev/base/inputenc.pdf
-2022/05/19 | 3181 | macros/latex-dev/base/unpack.ins
-2022/05/19 | 317773 | macros/latex-dev/base/ltnews22.pdf
-2022/05/19 | 317700 | macros/latex-dev/base/ltluatex.pdf
-2022/05/19 | 31646 | macros/latex-dev/required/tools/multicol-2019-10-01.sty
-2022/05/19 | 3111178 | install/macros/latex-dev/required/latex-graphics-dev.tds.zip
-2022/05/19 | 3074179 | macros/latex-dev/required/graphics.zip
-2022/05/19 | 3057 | macros/latex-dev/required/latex-lab/latex-lab.ins
-2022/05/19 | 30499 | macros/latex-dev/base/doc-2021-06-01.sty
-2022/05/19 | 30464 | macros/latex-dev/required/graphics/graphicx.dtx
-2022/05/19 | 30428 | macros/latex-dev/base/ltnews31.tex
-2022/05/19 | 30347 | macros/latex-dev/required/latex-lab/latex-lab-prototype.dtx
-2022/05/19 | 303464 | macros/latex-dev/required/graphics/graphics.pdf
-2022/05/19 | 30107 | macros/latex-dev/required/tools/showkeys.dtx
-2022/05/19 | 29965 | macros/latex-dev/base/doc-2016-02-15.sty
-2022/05/19 | 2994 | macros/latex-dev/required/graphics/graphics-drivers.ins
-2022/05/19 | 29712 | macros/latex-dev/required/tools/multicol-2017-04-11.sty
-2022/05/19 | 29267 | macros/latex-dev/base/ltfntcmd.dtx
-2022/05/19 | 292376 | macros/latex-dev/base/cmfonts.pdf
-2022/05/19 | 291178 | macros/latex-dev/required/latex-lab/latex-lab-testphase.pdf
-2022/05/19 | 290615 | macros/latex-dev/base/tlc2.pdf
-2022/05/19 | 2896 | macros/latex-dev/base/syntonly.ins
-2022/05/19 | 2893 | macros/latex-dev/base/nfssfont.ins
-2022/05/19 | 2892 | macros/latex-dev/base/graphpap.ins
-2022/05/19 | 2892 | macros/latex-dev/base/fix-cm.ins
-2022/05/19 | 2890 | macros/latex-dev/base/alltt.ins
-2022/05/19 | 2888 | macros/latex-dev/base/ifthen.ins
-2022/05/19 | 287733 | macros/latex-dev/base/fix-cm.pdf
-2022/05/19 | 287073 | macros/latex-dev/required/tools/tabularx.pdf
-2022/05/19 | 286591 | macros/latex-dev/base/ltnews23.pdf
-2022/05/19 | 286459 | macros/latex-dev/required/graphics/drivers.pdf
-2022/05/19 | 2829818 | install/macros/latex-dev/required/latex-lab-dev.tds.zip
-2022/05/19 | 281906 | macros/latex-dev/base/latexrelease.pdf
-2022/05/19 | 2816 | fonts/simpleicons/enc/simpleiconsone.enc
-2022/05/19 | 2808057 | macros/latex-dev/required/latex-lab.zip
-2022/05/19 | 2795145 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip
-2022/05/19 | 278618 | macros/latex-dev/required/graphics/rotating.pdf
-2022/05/19 | 2762696 | macros/latex-dev/required/amsmath.zip
-2022/05/19 | 2728 | macros/latex-dev/base/ltpageno.dtx
-2022/05/19 | 2723 | macros/latex-dev/required/amsmath/README.md
-2022/05/19 | 27122 | macros/latex-dev/base/ltxcheck.tex
-2022/05/19 | 27069 | macros/latex-dev/base/lterror.dtx
-2022/05/19 | 2705 | macros/latex-dev/base/idx.tex
-2022/05/19 | 2684 | fonts/simpleicons/enc/simpleiconseight.enc
-2022/05/19 | 2677 | fonts/simpleicons/enc/simpleiconsfour.enc
-2022/05/19 | 2653 | fonts/simpleicons/enc/simpleiconstwo.enc
-2022/05/19 | 265279 | macros/latex-dev/base/ltnews24.pdf
-2022/05/19 | 264 | fonts/simpleicons/tex/usimpleiconsthree.fd
-2022/05/19 | 264 | fonts/simpleicons/tex/usimpleiconsseven.fd
-2022/05/19 | 264 | fonts/simpleicons/tex/usimpleiconseight.fd
-2022/05/19 | 2637 | fonts/simpleicons/enc/simpleiconssix.enc
-2022/05/19 | 259 | fonts/simpleicons/tex/usimpleiconsnine.fd
-2022/05/19 | 259 | fonts/simpleicons/tex/usimpleiconsfour.fd
-2022/05/19 | 259 | fonts/simpleicons/tex/usimpleiconsfive.fd
-2022/05/19 | 259969 | macros/latex-dev/required/tools/layout.pdf
-2022/05/19 | 2590 | fonts/simpleicons/enc/simpleiconsfive.enc
-2022/05/19 | 258703 | macros/generic/polexpr/polexpr-ref.html
-2022/05/19 | 2576 | macros/latex-dev/required/tools/multicol.ins
-2022/05/19 | 2574 | fonts/simpleicons/enc/simpleiconsseven.enc
-2022/05/19 | 257018 | macros/latex-dev/required/tools/xspace.pdf
-2022/05/19 | 254 | fonts/simpleicons/tex/usimpleiconstwo.fd
-2022/05/19 | 254 | fonts/simpleicons/tex/usimpleiconssix.fd
-2022/05/19 | 254 | fonts/simpleicons/tex/usimpleiconsone.fd
-2022/05/19 | 2541 | fonts/simpleicons/enc/simpleiconsthree.enc
-2022/05/19 | 2538 | macros/latex-dev/required/tools/longtable.ins
-2022/05/19 | 2538 | macros/latex-dev/required/tools/afterpage.ins
-2022/05/19 | 2535 | macros/latex-dev/required/tools/tabularx.ins
-2022/05/19 | 2531 | macros/latex-dev/required/tools/varioref.ins
-2022/05/19 | 2524 | macros/latex-dev/required/tools/bm.ins
-2022/05/19 | 252140 | macros/latex-dev/base/lb2.pdf
-2022/05/19 | 251782 | macros/latex-dev/required/tools/showkeys.pdf
-2022/05/19 | 25146 | macros/latex-dev/required/tools/trace.dtx
-2022/05/19 | 250592 | macros/latex-dev/base/ltnews27.pdf
-2022/05/19 | 2451 | macros/latex/contrib/sidenotesplus/sidenotesplus.ins
-2022/05/19 | 244867 | macros/latex-dev/base/ltnews21.pdf
-2022/05/19 | 244226 | macros/latex-dev/base/doc.dtx
-2022/05/19 | 243605 | macros/latex-dev/base/modguide.pdf
-2022/05/19 | 242888 | macros/latex-dev/base/cfgguide.pdf
-2022/05/19 | 24286 | macros/latex-dev/base/ltcounts.dtx
-2022/05/19 | 241 | macros/latex-dev/base/ltfilehook-doc.tex
-2022/05/19 | 240 | macros/latex-dev/base/ltshipout-doc.tex
-2022/05/19 | 240623 | macros/latex-dev/required/graphics/graphicx.pdf
-2022/05/19 | 2400 | fonts/simpleicons/enc/simpleiconsnine.enc
-2022/05/19 | 239823 | macros/latex-dev/required/graphics/keyval.pdf
-2022/05/19 | 239689 | macros/latex-dev/base/cyrguide.pdf
-2022/05/19 | 238 | macros/latex-dev/base/ltmarks-doc.tex
-2022/05/19 | 238 | macros/latex-dev/base/lthooks-doc.tex
-2022/05/19 | 238 | macros/latex-dev/base/ltcmdhooks-doc.tex
-2022/05/19 | 23637 | macros/latex-dev/base/ltnews30.tex
-2022/05/19 | 23516 | macros/latex-dev/base/fix-cm.dtx
-2022/05/19 | 234 | macros/latex-dev/base/ltpara-doc.tex
-2022/05/19 | 234191 | macros/latex-dev/base/slifonts.pdf
-2022/05/19 | 23386 | macros/latex-dev/base/lppl.tex
-2022/05/19 | 233208 | macros/latex-dev/base/ltxdoc.pdf
-2022/05/19 | 230317 | macros/latex-dev/required/amsmath/amsmath.dtx
-2022/05/19 | 230028 | macros/latex-dev/base/ltnews19.pdf
-2022/05/19 | 2293 | macros/latex-dev/required/latex-lab/latex-lab-testphase.dtx
-2022/05/19 | 227059 | macros/latex-dev/base/proc.pdf
-2022/05/19 | 22605 | macros/latex-dev/required/amsmath/diffs-m.txt
-2022/05/19 | 22456 | macros/latex-dev/base/cfgguide.tex
-2022/05/19 | 223819 | macros/latex-dev/base/alltt.pdf
-2022/05/19 | 22370 | macros/latex-dev/required/latex-lab/usage-of-@footnotetext.txt
-2022/05/19 | 2220 | macros/latex-dev/required/tools/indentfirst.dtx
-2022/05/19 | 222076 | macros/latex-dev/required/tools/trace.pdf
-2022/05/19 | 221211 | macros/latex-dev/base/ifthen.pdf
-2022/05/19 | 220834 | macros/latex-dev/required/tools/dcolumn.pdf
-2022/05/19 | 219349 | macros/latex-dev/base/ltx3info.pdf
-2022/05/19 | 217498 | macros/latex-dev/required/amsmath/amstext.pdf
-2022/05/19 | 215684 | macros/latex-dev/base/lgc2.pdf
-2022/05/19 | 215498 | macros/latex-dev/required/tools/enumerate.pdf
-2022/05/19 | 212223 | macros/latex-dev/required/graphics/color.pdf
-2022/05/19 | 211482 | macros/latex-dev/base/lthooks.dtx
-2022/05/19 | 211180 | macros/latex-dev/base/nfssfont.pdf
-2022/05/19 | 21067 | macros/latex-dev/required/graphics/rotating.dtx
-2022/05/19 | 2090 | macros/latex-dev/required/graphics/README.md
-2022/05/19 | 20775 | macros/latex-dev/base/ltxdoc.dtx
-2022/05/19 | 20652 | macros/latex-dev/base/lgc2.err
-2022/05/19 | 204935 | macros/latex-dev/base/ltnews25.pdf
-2022/05/19 | 204711 | macros/latex-dev/base/exscale.pdf
-2022/05/19 | 20469 | macros/latex-dev/base/ltnews.cls
-2022/05/19 | 204662 | macros/generic/polexpr.zip
-2022/05/19 | 200760 | macros/latex-dev/base/latexsym.pdf
-2022/05/19 | 20069 | macros/generic/polexpr/polexpr-changes.rst.txt
-2022/05/19 | 199266 | macros/latex-dev/required/graphics/trig.pdf
-2022/05/19 | 197738 | macros/latex-dev/required/tools/afterpage.pdf
-2022/05/19 | 19438 | macros/generic/polexpr/polexpr.css
-2022/05/19 | 1937 | macros/latex-dev/base/minimal.cls
-2022/05/19 | 193030 | macros/latex/contrib/nicematrix/nicematrix-french.tex
-2022/05/19 | 191 | macros/latex-dev/required/latex-lab/documentmetadata-support-doc.tex
-2022/05/19 | 191064 | macros/latex-dev/required/tools/delarray.pdf
-2022/05/19 | 19040 | macros/latex-dev/base/lppl.txt
-2022/05/19 | 1900173 | fonts/simpleicons/doc/simpleicons.pdf
-2022/05/19 | 189746 | macros/latex-dev/base/syntonly.pdf
-2022/05/19 | 189679 | macros/latex-dev/required/tools/hhline.pdf
-2022/05/19 | 18944 | macros/latex-dev/base/ltnews29.tex
-2022/05/19 | 187612 | macros/latex-dev/required/tools/fileerr.pdf
-2022/05/19 | 18753 | macros/latex-dev/base/ifthen.dtx
-2022/05/19 | 18711 | macros/latex-dev/base/ltexpl.dtx
-2022/05/19 | 184548 | macros/latex-dev/required/tools/multicol.dtx
-2022/05/19 | 1844 | fonts/simpleicons/doc/simpleicons.tex
-2022/05/19 | 18399 | macros/latex-dev/base/nfssfont.dtx
-2022/05/19 | 18363 | macros/latex-dev/base/ltxref.dtx
-2022/05/19 | 18299 | macros/latex-dev/base/ltx3info.tex
-2022/05/19 | 182225 | macros/latex-dev/base/ltnews13.pdf
-2022/05/19 | 179945 | macros/latex-dev/required/amsmath/amscd.pdf
-2022/05/19 | 17856 | macros/latex-dev/required/tools/xspace.dtx
-2022/05/19 | 178421 | macros/latex-dev/base/ltoutput.dtx
-2022/05/19 | 178187 | macros/latex-dev/required/amsmath/amsgen.pdf
-2022/05/19 | 1770688 | fonts/simpleicons/opentype/SimpleIcons.otf
-2022/05/19 | 17643 | macros/latex-dev/base/ltkeys.dtx
-2022/05/19 | 175929 | macros/latex-dev/required/tools/shellesc.pdf
-2022/05/19 | 17495 | macros/latex-dev/base/cyrguide.tex
-2022/05/19 | 174944 | macros/latex-dev/required/amsmath/amsbsy.pdf
-2022/05/19 | 174494 | macros/latex-dev/base/ltnews05.pdf
-2022/05/19 | 174486 | fonts/simpleicons/tex/simpleiconsglyphs-pdftex.tex
-2022/05/19 | 17389 | macros/latex-dev/base/ltbibl.dtx
-2022/05/19 | 172867 | macros/latex-dev/base/tlc2.err
-2022/05/19 | 172373 | macros/latex-dev/base/ltcmd.dtx
-2022/05/19 | 172228 | macros/latex-dev/required/graphics/rotex.pdf
-2022/05/19 | 170986 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex
-2022/05/19 | 170878 | macros/latex-dev/base/lamport-manual.pdf
-2022/05/19 | 170473 | macros/latex-dev/base/ltnews14.pdf
-2022/05/19 | 170209 | macros/latex-dev/base/docstrip.dtx
-2022/05/19 | 169986 | macros/latex-dev/required/tools/xr.pdf
-2022/05/19 | 1694 | macros/latex-dev/base/small2e.tex
-2022/05/19 | 169416 | macros/latex-dev/base/ltnews10.pdf
-2022/05/19 | 167572 | macros/latex-dev/required/tools/somedefs.pdf
-2022/05/19 | 1664 | macros/latex-dev/required/tools/README.md
-2022/05/19 | 166228 | macros/latex-dev/base/ltnews17.pdf
-2022/05/19 | 165821 | macros/latex-dev/base/makeindx.pdf
-2022/05/19 | 1648329 | fonts/simpleicons/type1/SimpleIcons.pfb
-2022/05/19 | 162772 | macros/latex-dev/base/tulm.pdf
-2022/05/19 | 16252 | systems/texlive/tlnet/archive/verifiche.source.r63331.tar.xz
-2022/05/19 | 16233 | macros/latex-dev/base/modguide.tex
-2022/05/19 | 161 | systems/mac/mactex/mactex-MacTeXtras-20220519.zip.sha512
-2022/05/19 | 161713 | macros/latex-dev/base/graphpap.pdf
-2022/05/19 | 161518 | macros/latex-dev/base/ltnews01.pdf
-2022/05/19 | 16134 | macros/latex-dev/required/latex-lab/latex-lab-new-or.dtx
-2022/05/19 | 1612 | systems/mac/mactex/Licenses.txt
-2022/05/19 | 159997 | macros/latex-dev/required/graphics/epsfig.pdf
-2022/05/19 | 159792 | macros/latex-dev/base/ltnews02.pdf
-2022/05/19 | 1594 | macros/latex-dev/required/latex-lab/usage-of-kern-kern.txt
-2022/05/19 | 159332 | macros/latex-dev/base/ltnews03.pdf
-2022/05/19 | 15852 | macros/generic/polexpr/polexpr.html
-2022/05/19 | 157954 | macros/latex-dev/required/tools/indentfirst.pdf
-2022/05/19 | 15737 | macros/latex-dev/required/graphics/cat.eps
-2022/05/19 | 15715 | macros/latex-dev/required/graphics/mathcolor.dtx
-2022/05/19 | 15699 | macros/latex-dev/base/slifonts.fdd
-2022/05/19 | 156551 | macros/latex-dev/base/ltnews12.pdf
-2022/05/19 | 156235 | macros/latex-dev/base/classes.dtx
-2022/05/19 | 155986 | macros/latex-dev/required/graphics/lscape.pdf
-2022/05/19 | 155053 | macros/latex-dev/base/ltnews08.pdf
-2022/05/19 | 15429 | macros/latex-dev/required/graphics/graphics-2017-06-25.sty
-2022/05/19 | 15306 | macros/latex-dev/base/source2e.tex
-2022/05/19 | 152525 | macros/latex-dev/base/ltnews04.pdf
-2022/05/19 | 1505 | macros/latex-dev/required/amsmath/amsbsy.ins
-2022/05/19 | 1504 | macros/latex-dev/required/amsmath/amsmath.ins
-2022/05/19 | 15047 | macros/latex-dev/base/ltnews28.tex
-2022/05/19 | 1492 | macros/latex-dev/required/amsmath/amsxtra.ins
-2022/05/19 | 1492 | macros/latex-dev/required/amsmath/amstext.ins
-2022/05/19 | 1490 | macros/latex-dev/required/amsmath/amsopn.ins
-2022/05/19 | 1487 | macros/latex-dev/required/amsmath/amscd.ins
-2022/05/19 | 1484 | macros/latex-dev/required/amsmath/amsgen.ins
-2022/05/19 | 148103 | macros/latex-dev/base/ltoutenc.dtx
-2022/05/19 | 14786 | macros/latex-dev/base/ltvers.dtx
-2022/05/19 | 147462 | macros/latex-dev/required/amsmath/technote.pdf
-2022/05/19 | 146446 | macros/latex-dev/required/tools/fontsmpl.pdf
-2022/05/19 | 146198 | macros/latex-dev/base/webcomp.pdf
-2022/05/19 | 145 | systems/mac/mactex/MacTeXtras.zip.sha512
-2022/05/19 | 14575 | macros/latex-dev/required/graphics/rotex.tex
-2022/05/19 | 14421 | macros/latex-dev/base/lppl-1-2.txt
-2022/05/19 | 143784 | support/TeX4ht/source/tex4ht-mathml.tex
-2022/05/19 | 14341 | macros/latex-dev/base/lppl-1-1.txt
-2022/05/19 | 142877 | macros/latex-dev/base/ltclass.dtx
-2022/05/19 | 142849 | macros/latex-dev/base/ltnews06.pdf
-2022/05/19 | 14091 | macros/latex-dev/base/ltpage.dtx
-2022/05/19 | 14072 | macros/latex-dev/required/tools/afterpage.dtx
-2022/05/19 | 14019 | macros/latex-dev/required/latex-lab/documentmetadata-support.dtx
-2022/05/19 | 140095 | macros/latex-dev/required/amsmath/amsopn.pdf
-2022/05/19 | 138963 | macros/latex-dev/required/tools/rawfonts.pdf
-2022/05/19 | 13875 | macros/latex-dev/required/graphics/keyval.dtx
-2022/05/19 | 138073 | macros/latex-dev/base/ltnews16.pdf
-2022/05/19 | 137811 | macros/latex-dev/base/ltnews07.pdf
-2022/05/19 | 13759 | macros/latex-dev/base/lamport-manual.err
-2022/05/19 | 13589 | macros/latex-dev/base/proc.dtx
-2022/05/19 | 13442 | macros/latex-dev/required/amsmath/amsgen.dtx
-2022/05/19 | 1341 | macros/latex-dev/base/ltnews18.tex
-2022/05/19 | 1329 | fonts/simpleicons/tex/simpleicons.sty
-2022/05/19 | 132382 | macros/latex-dev/base/lppl.pdf
-2022/05/19 | 1318126 | macros/latex-dev/base/encguide.pdf
-2022/05/19 | 130309 | macros/latex-dev/base/ltnews15.pdf
-2022/05/19 | 129570 | macros/latex-dev/base/ltnews09.pdf
-2022/05/19 | 128179 | macros/latex-dev/required/tools/array.dtx
-2022/05/19 | 1279 | macros/latex-dev/base/legal.txt
-2022/05/19 | 12709 | macros/latex-dev/required/tools/dcolumn.dtx
-2022/05/19 | 126436 | systems/texlive/tlnet/archive/media4svg.doc.r63330.tar.xz
-2022/05/19 | 12559 | macros/latex-dev/required/tools/array-2020-02-10.sty
-2022/05/19 | 12520 | macros/latex-dev/base/testpage.tex
-2022/05/19 | 1236 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsseven.tfm
-2022/05/19 | 12334 | macros/latex-dev/base/ltnews24.tex
-2022/05/19 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconstwo.tfm
-2022/05/19 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsthree.tfm
-2022/05/19 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconssix.tfm
-2022/05/19 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsfour.tfm
-2022/05/19 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsfive.tfm
-2022/05/19 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconseight.tfm
-2022/05/19 | 1228 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsone.tfm
-2022/05/19 | 12242 | macros/latex-dev/base/tulm.fdd
-2022/05/19 | 12133 | macros/latex-dev/required/tools/longtable-2020-01-07.sty
-2022/05/19 | 12005 | macros/latex-dev/required/amsmath/technote.tex
-2022/05/19 | 119747 | fonts/simpleicons/doc/bindings.tex
-2022/05/19 | 1189 | macros/latex-dev/required/graphics/graphics.ins
-2022/05/19 | 1181191 | macros/latex-dev/base/ltnews.pdf
-2022/05/19 | 117 | macros/latex-dev/required/latex-lab/documentmetadata-support-code.tex
-2022/05/19 | 11749 | macros/latex-dev/required/tools/array-2016-10-06.sty
-2022/05/19 | 1156 | macros/latex-dev/required/latex-lab/README.md
-2022/05/19 | 114350 | macros/latex-dev/required/tools/varioref.dtx
-2022/05/19 | 11398 | macros/latex-dev/required/amsmath/amstext.dtx
-2022/05/19 | 113561 | macros/latex-dev/required/amsmath/amsxtra.pdf
-2022/05/19 | 11284 | macros/latex-dev/required/amsmath/amscd.dtx
-2022/05/19 | 112660 | macros/generic/polexpr/polexpr-ref.rst.txt
-2022/05/19 | 111948 | macros/latex-dev/base/ltnews11.pdf
-2022/05/19 | 11148 | macros/latex-dev/required/tools/hhline.dtx
-2022/05/19 | 11103 | macros/latex-dev/base/manifest.txt
-2022/05/19 | 109731 | macros/latex-dev/required/amsmath/subeqn.pdf
-2022/05/19 | 1096982 | macros/latex-dev/base/lthooks-code.pdf
-2022/05/19 | 10798 | macros/latex-dev/base/ltnews26.tex
-2022/05/19 | 10792 | macros/latex-dev/base/ltnews22.tex
-2022/05/19 | 10791 | macros/latex-dev/base/ltnews23.tex
-2022/05/19 | 10771 | macros/latex-dev/required/tools/fontsmpl.dtx
-2022/05/19 | 10753 | macros/latex-dev/required/graphics/trig.dtx
-2022/05/19 | 1074034 | macros/latex-dev/base/doc-code.pdf
-2022/05/19 | 106904 | macros/latex-dev/base/inputenc.dtx
-2022/05/19 | 106880 | macros/latex-dev/base/fntguide.tex
-2022/05/19 | 10644 | macros/latex-dev/required/tools/enumerate.dtx
-2022/05/19 | 10601 | macros/latex-dev/base/makeindx.dtx
-2022/05/19 | 105 | macros/latex-dev/base/ltfilehook-code.tex
-2022/05/19 | 104 | macros/latex-dev/base/ltshipout-code.tex
-2022/05/19 | 104792 | macros/latex-dev/required/amsmath/amsldoc.tex
-2022/05/19 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex
-2022/05/19 | 10370 | macros/latex-dev/base/ltfsscmp.dtx
-2022/05/19 | 102 | macros/latex-dev/base/ltmarks-code.tex
-2022/05/19 | 102 | macros/latex-dev/base/lthooks-code.tex
-2022/05/19 | 10251 | macros/latex-dev/base/webcomp.err
-2022/05/19 | 10199 | macros/latex-dev/required/amsmath/amsopn.dtx
diff --git a/macros/latex/contrib/fancyvrb/Changes b/macros/latex/contrib/fancyvrb/Changes
index 8053f8e8d7..a90f370d89 100644
--- a/macros/latex/contrib/fancyvrb/Changes
+++ b/macros/latex/contrib/fancyvrb/Changes
@@ -1,4 +1,5 @@
--- fancyvrb.sty
+4.2a 2022/05/26 - updated documentation (hv)
4.2 2022/04/12 - change option file_ext to fileext (hv)
4.1b 2021/12/21 - fix for ~ in message (hv)
4.1a 2021/11/24 - updated filedate (hv)
diff --git a/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf b/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
index a797fa6253..2850067b7a 100644
--- a/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
+++ b/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex b/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
index 66b211391f..ec5cc930ce 100644
--- a/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
+++ b/macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
@@ -831,6 +831,15 @@ interpreted (using tabs is in fact a rather old-fashioned style of coding):
\end{Verbatim}
\end{SideBySideExample}
+
+Escaping of ] is needed to prevent ]] at the end which is not allowed. ALternatively
+you can write \verb|commandchars={+[]}| or \verb|commandchars=+{[}{]}|. Escaping is needed
+for all active characters. Pay attention that you do not use characters which are used
+in the code of \texttt{fancyvrb} itself, e.g. \verb|<>|
+
+
+
+
\ifChangeBar\begin{changebar}\fi
Using this way, it is also possible to put labels to be able, later, to
make reference to some lines of the verbatim environments:
@@ -848,6 +857,7 @@ make reference to some lines of the verbatim environments:
\end{SideBySideExample}
\ifChangeBar\end{changebar}\fi
+
\subsubsection{Margins}
\begin{optlist}
diff --git a/macros/latex/contrib/fancyvrb/latex/fancyvrb.sty b/macros/latex/contrib/fancyvrb/latex/fancyvrb.sty
index cd7a2478a1..a8d4922c3d 100644
--- a/macros/latex/contrib/fancyvrb/latex/fancyvrb.sty
+++ b/macros/latex/contrib/fancyvrb/latex/fancyvrb.sty
@@ -13,8 +13,8 @@
%% verbatim environments and commands and extensive documentation.
%%
\NeedsTeXFormat{LaTeX2e}
-\def\fileversion{4.2}
-\def\filedate{2022/04/12}
+\def\fileversion{4.2a}
+\def\filedate{2022/05/26}
\ProvidesPackage{fancyvrb}[\filedate\space \fileversion\space verbatim text (tvz,hv)]
%\message{Style option: `fancyvrb' v\fileversion \space <\filedate> (tvz)}
\csname fancyvrb@loaded\endcsname
diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
index 77976e2bf7..09b8ebd0b5 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 5e1c717793..ac3760389a 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}[2022/03/10 v0.99-m Aide pour l'utilisation de LaTeX au collège]
+\ProvidesPackage{ProfCollege}[2022/06/01 v0.99-o Aide pour l'utilisation de LaTeX au college]
\RequirePackage{verbatim}
@@ -129,6 +129,12 @@
}
\makeatother
+% Pb ProfCollege<->Chinois soulev\'e par Denis
+% Solution by egreg :)
+\newcommand\getstrut[1]{%
+ \the\expandafter#1\expanded{\strutbox}%
+}
+
% Colorer uniquement la barre de soulignement
% https://tex.stackexchange.com/questions/9466/color-underline-a-formula/153884
\def\mathunderline#1#2{\color{#1}\underline{{\color{black}#2}}\color{black}}
@@ -158,7 +164,7 @@
}
\newcommand\LogoTW[2]{%
-\setbox1=\hbox{\includegraphics[scale=#2]{#1}}
+\setbox1=\hbox{\includegraphics[scale=#2]{#1}}%
\begin{tikzpicture}%
\clip (0,0) circle (4mm);
\draw (0,0) circle (4mm);
@@ -168,12 +174,12 @@
\end{tikzpicture}%
}%
-\makeatletter
+\makeatletter%
\def\Dotfill{%
-\leavevmode
-\cleaders \hb@xt@ .44em{\hss\xleaders\hrule width0.33em\hss}\hfill
-\kern\z@}
-\makeatother
+\leavevmode%
+\cleaders \hb@xt@ .44em{\hss\xleaders\hrule width0.33em\hss}\hfill%
+\kern\z@}%
+\makeatother%
\newcommand\pointilles[1][]{%
\ifx\bla#1\bla%
@@ -331,6 +337,68 @@
}
%%%
+% Geometrie
+%%%
+\setKVdefault[Geometrie]{CoinBG={(0,0)},CoinHD={(10u,10u)},TypeTrace="Instruments"}%
+
+\ifluatex
+\NewDocumentEnvironment{Geometrie}{o +b}{%
+ \useKVdefault[Geometrie]%
+ \setKV[Geometrie]{#1}%
+ \mplibforcehmode
+ \begin{mplibcode}
+ % input PfCMPFr;
+ pair Coinbg,Coinhd;
+ Coinbg=\useKV[Geometrie]{CoinBG};
+ Coinhd=\useKV[Geometrie]{CoinHD};
+ if \useKV[Geometrie]{TypeTrace}="Instruments":
+ typetrace:="normal";
+ elseif \useKV[Geometrie]{TypeTrace}="MainLevee":
+ typetrace:="mainlevee";
+ elseif \useKV[Geometrie]{TypeTrace}="Espace":
+ typetrace:="3D";
+ typerepre:="persp";
+ fi;
+ xa=xpart(Coinbg);
+ xb=xpart(Coinhd);
+ ya=ypart(Coinbg);
+ yb=ypart(Coinhd);
+ feuille(xa,ya,xb,yb);
+ _tfig:=if (xb-xa)>(yb-ya): (xb-xa) else: (yb-ya) fi;
+ _tfig:=2*_tfig;
+ #2%
+ \end{mplibcode}
+}{}
+\else
+\NewDocumentEnvironment{Geometrie}{o +b}{%
+ \useKVdefault[Geometrie]%
+ \setKV[Geometrie]{#1}%
+ \begin{mpost}[mpsettings={
+ pair Coinbg,Coinhd;
+ Coinbg=\useKV[Geometrie]{CoinBG};
+ Coinhd=\useKV[Geometrie]{CoinHD};
+ if \useKV[Geometrie]{TypeTrace}="Instruments":
+ typetrace:="normal";
+ elseif \useKV[Geometrie]{TypeTrace}="MainLevee":
+ typetrace:="mainlevee";
+ elseif \useKV[Geometrie]{TypeTrace}="Espace":
+ typetrace:="3D";
+ typerepre:="persp";
+ fi;}
+ ]%
+ xa=xpart(Coinbg);
+ xb=xpart(Coinhd);;
+ ya=ypart(Coinbg);
+ yb=ypart(Coinhd);
+ feuille(xa,ya,xb,yb);
+ _tfig:=if (xb-xa)>(yb-ya): (xb-xa) else: (yb-ya) fi;
+ _tfig:=2*_tfig;
+ #2%
+ \end{mpost}
+}{}
+\fi%
+
+%%%
% Smiley
%%%
%%https://tex.stackexchange.com/questions/3695/smileys-in-latex/227226
@@ -518,11 +586,140 @@
}%\raisebox
}
+%%%%%
+% Enquête
+%%%%%
+\setKVdefault[ClesEnquete]{Perso=Qui ?,Objet=Quoi ?,Lieu=Où ?,Largeur=4.5cm}
+
+\newcommand\Enquete[1][]{%
+ \useKVdefault[ClesEnquete]%
+ \setKV[ClesEnquete]{#1}%
+}
+
+\newcommand\ListePersonnages[1]{%
+ \setsepchar{§}%
+ \readlist*\RetiensListePersonnages{#1}
+}
+
+\newcommand\ListeObjets[1]{%
+ \setsepchar{§}%
+ \readlist*\RetiensListeObjets{#1}
+}
+
+\newcommand\ListeLieux[1]{%
+ \setsepchar{§}%
+ \readlist*\RetiensListeLieux{#1}
+}
+
+\newcommand\MelangeListe[2]{%
+ % #1 Liste à mélanger
+ % #2 Nombre d'éléments à conserver
+ \setsepchar{,}\ignoreemptyitems
+ \readlist*\ListeInter{#1}
+ \xdef\faa{}% Liste construite
+ \xdef\fii{}% Liste détruite
+ % on crée les #2 premieres solutions.
+ \xintFor* ##1 in {\xintSeq{1}{#2}}\do{%
+ \xintifboolexpr{\ListeInterlen>1}{%
+ \xdef\Alea{\fpeval{randint(\ListeInterlen)}}%
+ \xdef\faa{\faa \ListeInter[\Alea],}%
+ \xdef\fii{}%
+ \xintFor* ##2 in {\xintSeq{1}{\ListeInterlen}}\do{%
+ \xintifboolexpr{##2 == \Alea}{%
+ }{%
+ \xdef\fii{\fii \ListeInter[##2],}%
+ }%
+ }%
+ }{%
+ \xdef\faa{\faa \ListeInter[1]}%
+ }%
+ \readlist*\ListeInter{\fii}%
+ }%
+}%
+
+\newcommand\ListeQuestions[1]{%
+ \setsepchar[*]{§*/}%
+ \readlist*\RetiensListeQuestions{#1}
+ % On crée la liste des numéros des questions
+ \xdef\foo{}%
+ \xintFor* ##1 in {\xintSeq{1}{\RetiensListeQuestionslen}}\do{%
+ \xdef\foo{\foo ##1,}%
+ }%
+ % Mélange des questions
+ % on crée les 6 premieres solutions.
+ \MelangeListe{\foo}{\fpeval{\RetiensListePersonnageslen}}%
+ \readlist*\ListeMelangeePersonnages{\faa}%
+ \readlist*\ListeRestante{\fii}%\ListeRestante[]
+ \MelangeListe{\faa}{\fpeval{\RetiensListePersonnageslen-1}}%
+ \readlist*\ListefuuPerso{\faa}%
+ % on crée les 6 solutions suivantes.
+ \xdef\fuuu{}%
+ \foreachitem\compteur\in\ListeRestante{\xdef\fuuu{\fuuu,\ListeRestante[\compteurcnt]}}%
+ \MelangeListe{\fuuu}{\fpeval{\RetiensListeObjetslen}}%
+ \readlist*\ListeMelangeeObjets{\faa}%
+ \readlist*\ListeRestante{\fii}%
+ \MelangeListe{\faa}{\fpeval{\RetiensListeObjetslen-1}}%
+ \readlist*\ListefuuObjets{\faa}%
+ % on crée les dernieres solutions.
+ \xdef\fuuu{}%
+ \foreachitem\compteur\in\ListeRestante{\xdef\fuuu{\fuuu,\ListeRestante[\compteurcnt]}}%
+ \MelangeListe{\fuuu}{\fpeval{\RetiensListeLieuxlen}}
+ \readlist*\ListeMelangeeLieux{\faa}%
+ %% \readlist*\ListeRestante{\fii}%
+ \MelangeListe{\faa}{\fpeval{\RetiensListeLieuxlen-1}}%
+ \readlist*\ListefuuLieux{\faa}%
+ % --------------
+ % Liste des questions sauvegardees
+ \xdef\fuu{}%
+ \foreachitem\compteur\in\ListefuuPerso{\xdef\fuu{\fuu,\ListefuuPerso[\compteurcnt]}}%
+ \foreachitem\compteur\in\ListefuuObjets{\xdef\fuu{\fuu,\ListefuuObjets[\compteurcnt]}}%
+ \foreachitem\compteur\in\ListefuuLieux{\xdef\fuu{\fuu,\ListefuuLieux[\compteurcnt]}}%
+ \ignoreemptyitems\setsepchar{,}%
+ \MelangeListe{\fuu}{\fpeval{\RetiensListePersonnageslen+\RetiensListeObjetslen+\RetiensListeLieuxlen-3}}%
+ \readlist*\ListeMelangeeQuestions{\faa}%
+}
+
+\newcommand\AffichageQuestions{%
+ \begin{enumerate}
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\RetiensListePersonnageslen+\RetiensListeObjetslen+\RetiensListeLieuxlen-3}}}\do{%
+ \item\xdef\Compteur{\ListeMelangeeQuestions[##1]}\RetiensListeQuestions[\Compteur,1]
+ }
+ \end{enumerate}
+}
+
+\newcommand\AffichageTableau{%
+ \begin{tabular}{|>{\PfCTBstrut$\square$~}m{\useKV[ClesEnquete]{Largeur}}|}
+ \hline
+ \rowcolor{gray!15}\multicolumn{1}{|c|}{\PfCTBstrut\useKV[ClesEnquete]{Perso}}\\
+ \hline
+ \xintFor* ##1 in {\xintSeq{1}{\RetiensListePersonnageslen}}\do{%
+ \RetiensListePersonnages[##1]\xdef\PfCCompteurMelange{\ListeMelangeePersonnages[##1]} $\star$ \RetiensListeQuestions[\PfCCompteurMelange,2]\\
+ }
+ %
+ \hline
+ \rowcolor{gray!15}\multicolumn{1}{|c|}{\PfCTBstrut\useKV[ClesEnquete]{Objet}}\\
+ \hline
+ \xintFor* ##1 in {\xintSeq{1}{\RetiensListeObjetslen}}\do{%
+ \RetiensListeObjets[##1]\xdef\PfCCompteurMelange{\ListeMelangeeObjets[##1]} $\star$ \RetiensListeQuestions[\PfCCompteurMelange,2]\\
+ }
+ %
+ \hline
+ \rowcolor{gray!15}\multicolumn{1}{|c|}{\PfCTBstrut\useKV[ClesEnquete]{Lieu}}\\
+ \hline
+ \xintFor* ##1 in {\xintSeq{1}{\RetiensListeLieuxlen}}\do{%
+ \RetiensListeLieux[##1]\xdef\PfCCompteurMelange{\ListeMelangeeLieux[##1]} $\star$ \RetiensListeQuestions[\PfCCompteurMelange,2]
+ \\
+ }
+ \hline
+ \end{tabular}
+}%
+
+
%%%
% Modele en barre
%%%
\setKVdefault[ClesModeleBarre]{Hauteur=0.5cm,Largeur=1cm,Separation=0,Homogene=false}%Separation pour conserver le lien avec les équations.
-\defKV[ClesModeleBarre]{Longueur=\setKV[ClesModeleBarre]{Homogene}}
+\defKV[ClesModeleBarre]{Longueur=\setKV[ClesModeleBarre]{Homogene}}%
\newtoks\toklistemodelbarresup%
\toklistemodelbarresup{}%
@@ -560,7 +757,7 @@
}%
\newcommand\PfCMPDessineModelBarre[2]{%
- \begin{mplibcode}
+ \begin{mplibcode}%
Longueur:=\useKV[ClesModeleBarre]{Longueur};
Hauteur:=\useKV[ClesModeleBarre]{Hauteur};
@@ -674,7 +871,7 @@
endfor;
endfor;
\end{mplibcode}
-}
+}%
\newcommand\PfCMPDessineModelBarreNonHomogene[2]{%
\ifluatex%
@@ -777,10 +974,10 @@
MBnbdepla:=0;
for k=1 upto MBnbcolinf:
for l=1 upto MBnbinfoinf[k]:
- trace Brique(MBColInf[k],MBnbcasesinf[k][l])(MBTextcasesinf[k][l]) shifted(MBnbdepla*VecteurDepla+u*(0,-0.5));
+ trace Brique(MBColInf[k],MBnbcasesinf[k][l])(MBTextcasesinf[k][l]) shifted(MBnbdepla*VecteurDepla+(0,-Hauteur));
if MBnbcasesinf[k][l]<0:
for j=1 upto (abs(MBnbcasesinf[k][l])-1):
- trace ((0,0)--(0,Hauteur)) shifted((MBnbdepla+j)*VecteurDepla+u*(0,-0.5)) withcolor black;
+ trace ((0,0)--(0,Hauteur)) shifted((MBnbdepla+j)*VecteurDepla+(0,-Hauteur)) withcolor black;
endfor;
fi;
MBnbdepla:=MBnbdepla+abs(MBnbcasesinf[k][l]);
@@ -788,10 +985,10 @@
endfor;
if Separation>0:
- draw u*(Separation,-0.75)--u*(Separation,0.75) withpen pencircle scaled 1.5 dashed evenly withcolor red;
+ draw (u*Separation,-1.5Hauteur)--(u*Separation,1.5Hauteur) withpen pencircle scaled 1.5 dashed evenly withcolor red;
fi;
- \end{mplibcode}
+ \end{mplibcode}%
\else
\begin{mpost}[mpsettings={Longueur:=\useKV[ClesModeleBarre]{Largeur};Hauteur:=\useKV[ClesModeleBarre]{Hauteur};Separation:=\useKV[ClesModeleBarre]{Separation};}]
vardef Brique(expr col,nbfois)(text t)=
@@ -903,7 +1100,7 @@
\end{mpost}
\fi
-}
+}%
%%%
% Fiche m\'emorisation active
@@ -996,6 +1193,17 @@ transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick,
}%
}%
+\newcommand\DivisionD[3][]{%
+ \useKVdefault[ClesOperations]%
+ \setKV[ClesOperations]{#1}%
+ \setcounter{divxlop}{0}%
+ \ifboolKV[ClesOperations]{Solution}{\colorlet{PfCSolOp}{\useKV[ClesOperations]{CouleurSolution}}\colorlet{PfCCouleurVirgule}{PfCSolOp}}{\colorlet{PfCSolOp}{\useKV[ClesOperations]{CouleurFond}}\colorlet{PfCCouleurVirgule}{\useKV[ClesOperations]{CouleurVirgule}}}%
+ \opdiv[decimalsepsymbol={,},lineheight=1.5em,columnwidth=1.5em,displayintermediary=all,voperator=bottom,intermediarystyle=\stepcounter{divxlop}\color{PfCSolOp}\PfCchiffre{A\thedivxlop},remainderstyle=\stepcounter{divxlop}\color{PfCSolOp}\PfCchiffre{A\thedivxlop},resultstyle=\stepcounter{divxlop}\color{PfCSolOp}\PfCchiffre{A\thedivxlop},resultstyle.d=\color{PfCCouleurVirgule}]{#2}{#3}%
+ \foreach \i in {1,...,\thedivxlop}{%
+ \PfCentoure{A\i}{A\i}%
+ }%
+}%
+
\newcommand\Multiplication[3][]{%
\useKVdefault[ClesOperations]%
\setKV[ClesOperations]{#1}%
@@ -1032,7 +1240,7 @@ transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick,
%%%
% Cartographie
%%%
-\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2021/texmf-dist/metapost/profcollege/datastest/"}
+\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2022/texmf-dist/metapost/profcollege/datastest/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2}
\defKV[Cartographie]{EchelleCarte=\setKV[Cartographie]{Carte}}
\defKV[Cartographie]{Pays=\setKV[Cartographie]{PaysSeul}}
\defKV[Cartographie]{Villes=\setKV[Cartographie]{VillesSup}}
@@ -1041,43 +1249,164 @@ transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick,
\ifluatex
\useKVdefault[Cartographie]
\setKV[Cartographie]{#1}
- \mplibforcehmode
- \begin{mplibcode}
- input PfCMonde;
- string arborescence;
- arborescence:=\useKV[Cartographie]{Arborescence};
- LargeurCadre=\useKV[Cartographie]{Largeur};
- HauteurCadre=\useKV[Cartographie]{Hauteur};
- distanceecran=100*\useKV[Cartographie]{Echelle};
- fleuves:=\useKV[Cartographie]{Fleuves};
- boolean Carte,Impression,VillesSup;
- Carte=\useKV[Cartographie]{Carte};
- Impression=\useKV[Cartographie]{Impression};
- VillesSup=\useKV[Cartographie]{VillesSup};
- couleurfond:=\useKV[Cartographie]{CouleurFond};
- if Impression:
- noncolore:=true;
- payscolor:=0.85white;
- couleurfond:=white;
- couleurfleuve:=couleurfond;
- fi;
- capitales:=\useKV[Cartographie]{Capitales};
- All:=\useKV[Cartographie]{All};
- Europe:=\useKV[Cartographie]{Europe};
- Asie:=\useKV[Cartographie]{Asie};
- Amsud:=\useKV[Cartographie]{Amsud};
- Amnord:=\useKV[Cartographie]{Amnord};
- Amcentrale:=\useKV[Cartographie]{Amcentre};
- Caraibes:=\useKV[Cartographie]{Caraibes};
- Afrique:=\useKV[Cartographie]{Afrique};
- if Carte:
- Echelle:=\useKV[Cartographie]{AfficheEchelle};
- figure(-0.5u*LargeurCadre,-0.5u*HauteurCadre,0.5u*LargeurCadre,0.5u*HauteurCadre);
- if \useKV[Cartographie]{PaysSeul}:
- projection:="bonne";
- theta:=#2;
- phi:=#3;
- zoom(echelle(#2,#3,\useKV[Cartographie]{EchelleCarte}));
+ \ifboolKV[Cartographie]{Projection}{%
+ \mplibforcehmode
+ \begin{mplibcode}
+ input PfCMonde;
+ string arborescence;
+ arborescence:=\useKV[Cartographie]{Arborescence};
+ boolean Impression,VillesSup;
+ VillesSup=\useKV[Cartographie]{VillesSup};
+ Impression=\useKV[Cartographie]{Impression};
+
+ maillage:=true;
+ fleuves:=false;
+ lacs:=false;
+ capitales:=false;
+
+ if Impression:
+ noncolore:=true;
+ payscolor:=white;
+ else:
+ noncolore:=true;
+ payscolor:=\useKV[Cartographie]{CouleurPays};
+ fi;
+
+ projection:=\useKV[Cartographie]{TypeProjection};
+ feuillet:=u*(-20,-20)--u*(20,-20)--u*(20,20)--u*(-20,20)--cycle;
+ drawoptions(withpen pencircle scaled 0.5 withcolor 0.5white);
+ Projection(3,48,\useKV[Cartographie]{Echelle});
+ drawoptions();
+
+ if projection="mercator":
+ clip currentpicture to (mercatorc(-85,-180)--mercatorc(-85,180)--mercatorc(85,180)--mercatorc(85,-180)--cycle);
+ draw mercatorc(0,-180)--mercatorc(0,180);
+ draw mercatorc(-85,0)--mercatorc(85,0);
+ label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),mercatorc(0,0));
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8:
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),mercatorc(-k*10,0));
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),mercatorc(k*10,0));
+ endfor;
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 18:
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),mercatorc(0,-k*10));
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),mercatorc(0,k*10));
+ endfor;
+ elseif projection="cylindrique":
+ clip currentpicture to (cylindriquec(-85,-180)--cylindriquec(-85,180)--cylindriquec(85,180)--cylindriquec(85,-180)--cycle);
+ draw cylindriquec(0,-180)--cylindriquec(0,180);
+ draw cylindriquec(-85,0)--cylindriquec(85,0);
+ label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),cylindriquec(0,0));
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8:
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(-k*10,0));
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(k*10,0));
+ endfor;
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 18:
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(0,-k*10));
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(0,k*10));
+ endfor;
+ elseif projection="winkel":
+ clip currentpicture to (winkelc(-85,-180)--winkelc(-85,180) for k=-80 step 5 until 85:--winkelc(k,180) endfor --winkelc(85,-180) for k=80 step -5 until -85:--winkelc(k,-180) endfor --cycle);
+ draw winkelc(0,-180)--winkelc(0,180);
+ draw winkelc(-85,0)--winkelc(85,0);
+ label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),winkelc(0,0));
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8:
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),winkelc(-k*10,0));
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),winkelc(k*10,0));
+ endfor;
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 18:
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),winkelc(0,-k*10));
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),winkelc(0,k*10));
+ endfor;
+ elseif projection="cylindrique":
+ clip currentpicture to (cylindriquec(-85,-180)--cylindriquec(-85,180)--cylindriquec(85,180)--cylindriquec(85,-180)--cycle);
+ draw cylindriquec(0,-180)--cylindriquec(0,180);
+ draw cylindriquec(-85,0)--cylindriquec(85,0);
+ label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),cylindriquec(0,0));
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8:
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(-k*10,0));
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(k*10,0));
+ endfor;
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 18:
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(0,-k*10));
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),cylindriquec(0,k*10));
+ endfor;
+ elseif projection="simple":
+ clip currentpicture to (simplec(-85,-180)--simplec(-85,180)--simplec(85,180)--simplec(85,-180)--cycle);
+ draw simplec(0,-180)--simplec(0,180);
+ draw simplec(-85,0)--simplec(85,0);
+ label.llft(TEX("\tiny \ang{"&decimal(0)&"}"),simplec(0,0));
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 8:
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),simplec(-k*10,0));
+ label.lft(TEX("\tiny \ang{"&decimal(k*10)&"}"),simplec(k*10,0));
+ endfor;
+ for k=\useKV[Cartographie]{Pasl} step \useKV[Cartographie]{Pasl} until 18:
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),simplec(0,-k*10));
+ label.bot(TEX("\tiny \ang{"&decimal(k*10)&"}"),simplec(0,k*10));
+ endfor;
+ fi;
+ if VillesSup:
+ nomfichiermul:=\useKV[Cartographie]{Villes};
+ nblec:=scantokens readfrom nomfichiermul;
+ drawoptions(withcolor (0.15,0.15,0.15));
+ for p=1 upto nblec:
+ pair Coord[],latlon;string p_;
+ latlon=scantokens readfrom nomfichiermul;
+ p_=scantokens readfrom nomfichiermul;
+ if projection="mercator":
+ Coord[p]=mercatorc(ypart(latlon),xpart(latlon));
+ elseif projection="winkel":
+ Coord[p]=winkelc(ypart(latlon),xpart(latlon));
+ elseif projection="cylindrique":
+ Coord[p]=cylindriquec(ypart(latlon),xpart(latlon));
+ elseif projection="simple":
+ Coord[p]=simplec(ypart(latlon),xpart(latlon));
+ fi;
+ marque_p:="croix";
+ pointe(Coord[p]);
+ label.scantokens readfrom nomfichiermul(TEX(""&p_&""),Coord[p]);
+ endfor;
+ drawoptions();
+ closefrom nomfichiermul;
+ fi;
+ \end{mplibcode}
+ }{%
+ \mplibforcehmode
+ \begin{mplibcode}
+ input PfCMonde;
+ string arborescence;
+ arborescence:=\useKV[Cartographie]{Arborescence};
+ LargeurCadre=\useKV[Cartographie]{Largeur};
+ HauteurCadre=\useKV[Cartographie]{Hauteur};
+ distanceecran=100*\useKV[Cartographie]{Echelle};
+ fleuves:=\useKV[Cartographie]{Fleuves};
+ boolean Carte,Impression,VillesSup;
+ Carte=\useKV[Cartographie]{Carte};
+ Impression=\useKV[Cartographie]{Impression};
+ VillesSup=\useKV[Cartographie]{VillesSup};
+ couleurfond:=\useKV[Cartographie]{CouleurFond};
+ if Impression:
+ noncolore:=true;
+ payscolor:=0.85white;
+ couleurfond:=white;
+ couleurfleuve:=couleurfond;
+ fi;
+ capitales:=\useKV[Cartographie]{Capitales};
+ All:=\useKV[Cartographie]{All};
+ Europe:=\useKV[Cartographie]{Europe};
+ Asie:=\useKV[Cartographie]{Asie};
+ Amsud:=\useKV[Cartographie]{Amsud};
+ Amnord:=\useKV[Cartographie]{Amnord};
+ Amcentrale:=\useKV[Cartographie]{Amcentre};
+ Caraibes:=\useKV[Cartographie]{Caraibes};
+ Afrique:=\useKV[Cartographie]{Afrique};
+ if Carte:
+ Echelle:=\useKV[Cartographie]{AfficheEchelle};
+ figure(-0.5u*LargeurCadre,-0.5u*HauteurCadre,0.5u*LargeurCadre,0.5u*HauteurCadre);
+ if \useKV[Cartographie]{PaysSeul}:
+ projection:="bonne";
+ theta:=#2;
+ phi:=#3;
+ zoom(echelle(#2,#3,\useKV[Cartographie]{EchelleCarte}));
fill (bonnec(-90,-180) for k=-85 step 5 until 90:..bonnec(k,-180) endfor)..reverse(bonnec(-90,180) for k=-85 step 5 until 90:..bonnec(k,180) endfor)..cycle withcolor couleurfond;
lecturep(arborescence&\useKV[Cartographie]{Pays}&".dat",couleurfond);%
trace feuillet withpen pencircle scaled 2;
@@ -1090,30 +1419,31 @@ transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick,
draw ((Xa,Ya)+u*(1,1.1))--((Xa,Ya)+u*(1,0.9));
draw (((Xa,Ya)+u*(1,1.1))--((Xa,Ya)+u*(1,0.9))) shifted(u*(1,0));
fi;
- else:
+ else:
projection:="bonne";
Projection(#2,#3,echelle(#2,#3,\useKV[Cartographie]{EchelleCarte}));
trace feuillet withpen pencircle scaled 2;
fi;
if VillesSup:
- nomfichiermul:=\useKV[Cartographie]{Villes};
- nblec:=scantokens readfrom nomfichiermul;
- drawoptions(withcolor (0.15,0.15,0.15));
- projection:="bonne";
- for p=1 upto nblec:
- pair Coord[],latlon;string p_;
- latlon=scantokens readfrom nomfichiermul;
- p_=scantokens readfrom nomfichiermul;
- Coord[p]=bonnec(ypart(latlon),xpart(latlon));
- dotlabel.scantokens readfrom nomfichiermul(TEX(""&p_&""),Coord[p]);
- endfor;
- drawoptions();
- closefrom nomfichiermul;
+ nomfichiermul:=\useKV[Cartographie]{Villes};
+ nblec:=scantokens readfrom nomfichiermul;
+ drawoptions(withcolor (0.15,0.15,0.15));
+ projection:="bonne";
+ for p=1 upto nblec:
+ pair Coord[],latlon;string p_;
+ latlon=scantokens readfrom nomfichiermul;
+ p_=scantokens readfrom nomfichiermul;
+ Coord[p]=bonnec(ypart(latlon),xpart(latlon));
+ dotlabel.scantokens readfrom nomfichiermul(TEX(""&p_&""),Coord[p]);
+ endfor;
+ drawoptions();
+ closefrom nomfichiermul;
fi;
- else:
- mappemonde(#2,#3);
- fi;
- \end{mplibcode}
+ else:
+ mappemonde(#2,#3);
+ fi;
+ \end{mplibcode}
+ }
\else
\PackageWarning{ProfCollege}{"La commande Cartographie n'est compatible qu'avec LuaLaTeX."}
\fi
@@ -3580,7 +3910,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\node[anchor=west,xshift=2em,text width=0.8*0.25\paperwidth] (Test\i)
at (S\i) {\ListeAutoQ[\i,2]};%
\node[anchor=north,yshift=-1em,text width=0.85*0.25\paperwidth] (TestEn\i)
- at (T\i) {\textbf{\useKV[Autonomie]{TitreAtoi} :} \ListeAutoEn[\i,1]};%
+ at (T\i) {\textbf{\useKV[Autonomie]{TitreAtoi}} \ListeAutoEn[\i,1]};%
\ifboolKV[Autonomie]{Enigme}{%
\node[anchor=south,yshift=1em,text width=0.85*0.25\paperwidth] (TestREn\i)
at (U\i) {%
@@ -6298,14 +6628,14 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\end{tikzpicture}
}
-\newcommand{\DrawArrowSimple}[1]{%
+\newcommand\DrawArrowSimple[1]{%
\begin{tikzpicture}[overlay,remember picture]
\draw[-stealth,out=50,in=140,DCFlechesh,transform canvas={yshift=2pt}] (Distri-#1.north) to (Distri-2.north);
\draw[-stealth,out=50,in=140,DCFlechesh!50,transform canvas={yshift=2pt}] (Distri-#1.north) to (Distri-3.north);
\end{tikzpicture}
}
-\newcommand{\DrawArrowSimpleRenverse}[1]{%
+\newcommand\DrawArrowSimpleRenverse[1]{%
\begin{tikzpicture}[overlay,remember picture]
\draw[-stealth,out=140,in=50,DCFlechesh,transform canvas={yshift=2pt}] (Distri-#1.north) to (Distri-0.north);
\draw[-stealth,out=140,in=50,DCFlechesh!50,transform canvas={yshift=2pt}] (Distri-#1.north) to (Distri-1.north);
@@ -6319,7 +6649,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
% 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,Tuile=false,Vide=false,Impression=false}%,AideAdd=false:inutile ?
+\setKVdefault[ClesDistributivite]{Cours=false,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,Impression=false}%,AideAdd=false:inutile ?
\newcommand\Tuile[4]{%
\ifluatex
@@ -6696,186 +7026,241 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\colorlet{DCReduction}{\useKV[ClesDistributivite]{CouleurReduction}}%
\colorlet{DCFlechesh}{\useKV[ClesDistributivite]{CouleurFH}}%
\colorlet{DCFlechesb}{\useKV[ClesDistributivite]{CouleurFB}}%
- \ifboolKV[ClesDistributivite]{Tuile}{%
- \Tuile{#2}{#3}{#4}{#5}%
- }{%
+ \ifboolKV[ClesDistributivite]{Cours}{%
\ensuremath{%
- \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}}%
+ \xintifboolexpr{#2==0}{%
+ }{\xintifboolexpr{#3==0}{}{(}}\xintifboolexpr{#2==0}{\Tikzmark{}}{\Tikzmark{a}}
+ \ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{+(}}{}%
+ \xintifboolexpr{#3>0}{\xintifboolexpr{#2==0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{b}%
+ \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{c}%
+ \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{+(}}{}%
+ \xintifboolexpr{#5>0}{\xintifboolexpr{#4==0}{}{+}}{\xintifboolexpr{#5<0}{\xintifboolexpr{#4==0}{{-}}{-}}{}}\Tikzmark{d}%
+ \ifboolKV[ClesDistributivite]{AideAddb}{\mathcolor{DCAide}{)}}{}%
+ \xintifboolexpr{\Multi==0}{%
+ \xintifboolexpr{#4<0}{)}{\xintifboolexpr{#5<0}{)}{}}}{)}%
+ %
+ =
+ %
+ \xdef\Multi{\fpeval{#2*#4}}%
+ \xintifboolexpr{\Multi==0}{}{%
+ \xintifboolexpr{#2<0}{(-}{}a\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#4<0}{(-}{}c\xintifboolexpr{#4<0}{)}{}%
+ }
+ \xdef\Multij{\fpeval{#2*#5}}%
+ \xintifboolexpr{\Multij==0}{}{%
+ \xintifboolexpr{\Multi==0}{}{+}%
+ \xintifboolexpr{#2<0}{(-}{}a\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#5<0}{(-}{}d\xintifboolexpr{#5<0}{)}{}%
+ }%
+ \xdef\Multik{\fpeval{#3*#4}}%
+ \xintifboolexpr{\Multik==0}{}{%
+ \xintifboolexpr{\Multi==0}{}{+}%
+ \xintifboolexpr{#3<0}{(-}{}b\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#4<0}{(-}{}c\xintifboolexpr{#4<0}{)}{}%
+ }%
+ \xdef\Multil{\fpeval{#3*#5}}%
+ \xintifboolexpr{\Multil==0}{}{+%
+ \xintifboolexpr{#3<0}{(-}{}b\xintifboolexpr{#3<0}{)}{}\times\xintifboolexpr{#5<0}{(-}{}d\xintifboolexpr{#5<0}{)}{}%
+ }%
+ % Fleches
+ \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}%
+ }%
+ }{%
+ \ifboolKV[ClesDistributivite]{Tuile}{%
+ \Tuile{#2}{#3}{#4}{#5}%
+ }{%
+ \ensuremath{%
+ \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%
- }{}%
- }{%
- \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)}}%
+ \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}{)}{}}%
}{%
- \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*#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}}%
- \xdef\NomVariable{\useKV[ClesDistributivite]{Lettre}}%
- \xintFor* ##1 in {\xintSeq {1}{\useKV[ClesDistributivite]{Fin}-1}}\do
- {\NomLettre&=\Distri[Etape=##1,Lettre=\NomVariable]{#2}{#3}{#4}{#5}\\}%
- \NomLettre&=\Distri[Etape=\NomFin,Lettre=\NomVariable]{#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}}%
+ \xdef\NomVariable{\useKV[ClesDistributivite]{Lettre}}%
+ \xintFor* ##1 in {\xintSeq {1}{\useKV[ClesDistributivite]{Fin}-1}}\do
+ {\NomLettre&=\Distri[Etape=##1,Lettre=\NomVariable]{#2}{#3}{#4}{#5}\\}%
+ \NomLettre&=\Distri[Etape=\NomFin,Lettre=\NomVariable]{#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}}}{}%
+ }{}%
+ }%
}%
}%
}%
@@ -7223,7 +7608,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
%%%
% Nombre Premier
%%%
-\setKVdefault[ClesNombrePremier]{Tableau=false,TableauVertical=false,TableauVerticalVide=false,Exposant=false,Longue=false,All=false,Arbre=false,ArbreVide=false,ArbreComplet=false,ArbreDessine=false,ArbreDessineVide=false,Entoure=false,Entourefin=false,Diviseurs=false,DiviseursT=false,Dot=\dotfill,Impose=false,ImposeAll=false,Potence=false,Decalage=10,Vide=false,CouleurFeuillage=ForestGreen,CouleurTronc=BurlyWood,CouleurFruits=Red,CouleurTexte=white}%
+\setKVdefault[ClesNombrePremier]{Tableau=false,TableauVide=false,TableauVertical=false,TableauVerticalVide=false,Exposant=false,Longue=false,All=false,Arbre=false,ArbreVide=false,ArbreComplet=false,ArbreDessine=false,ArbreDessineVide=false,Entoure=false,Entourefin=false,Diviseurs=false,DiviseursT=false,Dot=\dotfill,Impose=false,ImposeAll=false,Potence=false,Decalage=10,Vide=false,CouleurFeuillage=ForestGreen,CouleurTronc=BurlyWood,CouleurFruits=Red,CouleurTexte=white}%
\defKV[ClesNombrePremier]{Nombre=\ifboolKV[ClesNombrePremier]{ArbreDessine}{}{\ifboolKV[ClesNombrePremier]{ArbreDessineVide}{}{\setKV[ClesNombrePremier]{Impose}}}}%
\defKV[ClesNombrePremier]{AllNombre=\setKV[ClesNombrePremier]{ImposeAll}}%
\defKV[ClesNombrePremier]{Impression=\setKV[ClesNombrePremier]{CouleurFeuillage=white,CouleurTronc=white,CouleurFruits=gris,CouleurTexte=black}}
@@ -7234,6 +7619,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\ifboolKV[ClesNombrePremier]{Impose}{\NombrePremierImpose{#2}{\useKV[ClesNombrePremier]{Nombre}}{\fpeval{#2/\useKV[ClesNombrePremier]{Nombre}}}}{}%
\ifboolKV[ClesNombrePremier]{ImposeAll}{\NombrePremierImposeAll{#2}{\useKV[ClesNombrePremier]{AllNombre}}{\fpeval{#2/\useKV[ClesNombrePremier]{AllNombre}}}}{}%
\ifboolKV[ClesNombrePremier]{Tableau}{\NombrePremier{#2}}{}%
+ \ifboolKV[ClesNombrePremier]{TableauVide}{\NombrePremierVide{#2}}{}%
\ifboolKV[ClesNombrePremier]{Potence}{\NombrePremierPotence{#2}}{}%
\ifboolKV[ClesNombrePremier]{TableauVertical}{\NombrePremierVertical{#2}}{}%
\ifboolKV[ClesNombrePremier]{TableauVerticalVide}{\NombrePremierVerticalVide{#2}}{}%
@@ -7594,6 +7980,32 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\fi
}
+\newcommand\NombrePremierVide[1]{%\'ecrire la d\'ecomposition compl\`ete
+ % #1 le nombre premier \`a tester
+ \newcount\anp\newcount\bnp\newcount\cnp%\newcount\e\newcount\f%
+ \anp=#1\relax
+ \bnp=2\relax
+ \premier=-1\relax
+ % Pour d\'eterminer le nombre d'\'etapes
+ \whiledo{\anp > 1}{%
+ \modulo{\the\anp}{\the\bnp}
+ \ifnum\remainder=0\relax
+ \global\premier=\numexpr\premier+1\relax
+ \cnp=\numexpr\anp/\bnp\relax
+ \anp=\cnp\relax
+ \else%
+ \bnp=\numexpr\bnp+1\relax%
+ \fi%
+ }
+ \ifnum\premier=0
+ Le nombre \num{#1} est un nombre premier.
+ \else
+ \begin{align*}
+ \xintFor* ##1 in {\xintSeq {1}{\premier}}\do {\num{#1}&=\phantom{\PremierEtape{#1}{##1}}\xintifboolexpr{##1<\premier}{\\}{}}%
+ \end{align*}
+ \fi
+}
+
\newcount\premierun
\newcount\premierdeux
@@ -8275,7 +8687,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
% #5 point sur le segment #1#3
% #6 angle de rotation
\ifluatex
- \mplibcodeinherit{enable}
+% \mplibcodeinherit{enable}
\mplibforcehmode
\begin{mplibcode}
u:=\useKV[ClesThales]{Echelle};
@@ -8324,7 +8736,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
label(btex $//$ etex ,K);
drawoptions();
\end{mplibcode}
- \mplibcodeinherit{disable}
+% \mplibcodeinherit{disable}
\else
\begin{mpost}[mpsettings={u:=\useKV[ClesThales]{Echelle};}]
pair A,B,C,M,N,O;%
@@ -9832,7 +10244,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\fi
}
-\setKVdefault[ClesTrigo]{Angle=0,Propor=false,Figure=false,FigureSeule=false,Precision=2,Unite=cm,Sinus=false,Cosinus=false,Tangente=false,Perso=false,Echelle=1cm}%
+\setKVdefault[ClesTrigo]{Angle=0,Propor=false,Figure=false,FigureSeule=false,ValeurExacte=false,Precision=2,Unite=cm,Sinus=false,Cosinus=false,Tangente=false,Perso=false,Echelle=1cm}%
\newcommand\RedactionTrigo{}%
@@ -9863,15 +10275,17 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\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(#4*cosd(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*cosd(#5),9)}}{=}{\approx}\NomA\NomB%
+ \num{#4}\times\cos(\ang{#5})&=\NomA\NomB%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\
+ \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(#4*cosd(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*cosd(#5),9)}}{=}{\approx}\NomA\NomB
+ \num{#4}\times\cos(\ang{#5})&=\NomA\NomB%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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%
@@ -9881,15 +10295,17 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\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(#3/cosd(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/cosd(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomC&=\frac{\num{#3}}{\cos(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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(#3/cosd(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/cosd(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomC&=\frac{\num{#3}}{\cos(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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
@@ -9919,15 +10335,17 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\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(#4*sind(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*sind(#5),9)}}{=}{\approx}\NomB\NomC%
+ \num{#4}\times\sin(\ang{#5})&=\NomB\NomC%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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(#4*sind(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*sind(#5),9)}}{=}{\approx}\NomB\NomC%
+ \num{#4}\times\sin(\ang{#5})&=\NomB\NomC%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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
@@ -9937,15 +10355,17 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\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(#3/sind(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/sind(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomC&=\frac{\num{#3}}{\sin(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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(#3/sind(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/sind(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomC&=\frac{\num{#3}}{\sin(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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
@@ -9975,15 +10395,17 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\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(#4*tand(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*tand(#5),9)}}{=}{\approx}\NomB\NomC%
+ \num{#4}\times\tan(\ang{#5})&=\NomB\NomC%\\%
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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(#4*tand(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}&\IfInteger{\fpeval{round(#4*tand(#5),9)}}{=}{\approx}\NomB\NomC%
+ \num{#4}\times\tan(\ang{#5})&=\NomB\NomC%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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
@@ -9993,15 +10415,17 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\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(#3/tand(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/tand(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomB&=\frac{\num{#3}}{\tan(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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(#3/tand(#5),9)}}{=}{\approx}\num{\fpeval{round(#3/tand(#5),\useKV[ClesTrigo]{Precision})}}~\text{\useKV[ClesTrigo]{Unite}}%
+ \NomA\NomB&=\frac{\num{#3}}{\tan(\ang{#5})}%\\
+ \ifboolKV[ClesTrigo]{ValeurExacte}{}{\\%
+ \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
@@ -10151,98 +10575,121 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul.
\newcommand\DonneeMin{}%
\newcommand\EffectifMax{}%
-\setKVdefault[ClesStat]{ColVide=0,EffVide=false,%
-FreqVide=false,AngVide=false,ECCVide=false,TotalVide=false,Sondage=false,%
+\setKVdefault[ClesStat]{ColVide=0,CaseVide=false,EffVide=false,%
+FreqVide=false,AngVide=false,ECCVide=false,TotalVide=false,Sondage=false,Liste=false,%
Tableau=false,Stretch=1,Frequence=false,EffectifTotal=false,%
-Etendue=false,Moyenne=false,SET=false,Mediane=false,QuartileUn=false,QuartileTrois=false,Total=false,Concret=false,%
-Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,Origine=0,Angle=false,SemiAngle=false,Qualitatif=false,TableauVide=false,Graphique=false,Batons=true,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,Rayon=3cm,AffichageAngle=false,Liste=false,ECC=false,Coupure=10,CouleurTab=gray!15,ListeCouleurs={white},Hachures=false,Inverse=false,AbscisseRotation=false,Representation=false,EcartHachures=0.25,EpaisseurHachures=1,Longueur=10cm,Hauteur=5mm,Barre=false}
-
+Etendue=false,Moyenne=false,SET=false,ValeurExacte=false,Mediane=false,QuartileUn=false,QuartileTrois=false,Total=false,Concret=false,%
+Unite={},Largeur=1cm,Precision=2,PrecisionF=0,Donnee=Valeurs,Effectif=Effectif,Grille=false,Origine=0,Angle=false,SemiAngle=false,Qualitatif=false,TableauVide=false,ECC=false,Coupure=10,CouleurTab=gray!15,Graphique=false,Batons=true,%
+% Pour les diags batons
+EpaisseurBatons=1,ListeCouleursB={black},Lecture=false,LectureFine=false,AideLecture=false,Reponses=false,DonneesSup=false,AbscisseRotation=false,Tiret=false,AngleRotationAbscisse=0,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,%
+% Pour les diags circulaires
+Rayon=3cm,AffichageAngle=false,AffichageDonnee=false,ListeCouleurs={white},Hachures=false,LectureInverse=false,EcartHachures=0.25,EpaisseurHachures=1,Legende,LegendeVide=false,%
+%Pour les représentations
+Representation=false,%
+%Pour les barres horizontales
+Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false%
+}
+%compl\'ements
+\defKV[ClesStat]{AngleRotationAbscisse=\setKV[ClesStat]{AbscisseRotation}}%
+\defKV[ClesStat]{AffichageDonnees=\setKV[ClesStat]{AffichageAngle=false}\setKV[ClesStat]{AffichageDonnee}}%
+\defKV[ClesStat]{CasesVides=\setKV[ClesStat]{CaseVide}}%
+\defKV[ClesStat]{LegendesVides=\setKV[ClesStat]{LegendeVide}}%
% La construction du tableau
\def\addtotok#1#2{#1\expandafter{\the#1#2}}
\newtoks\tabtoksa\newtoks\tabtoksb\newtoks\tabtoksc
-\def\updatetoks#1/#2\nil{\addtotok\tabtoksa{\ifboolKV[ClesStat]{Qualitatif}{&\cellcolor{\useKV[ClesStat]{CouleurTab}}#1}{&\cellcolor{\useKV[ClesStat]{CouleurTab}}\num{#1}}}\addtotok\tabtoksb{&\num{#2}}}
-\def\buildtab{% %%Tableau sans total
+\def\updatetoks#1/#2\nil{\addtotok\tabtoksa{\ifboolKV[ClesStat]{Qualitatif}{&#1}{&\num{#1}}}\addtotok\tabtoksb{&\num{#2}}}
+%
+\newcounter{PfCCompteLignes}%
+%
+\def\BuildtabStat{% %%Tableau sans total
+ \setcounter{PfCCompteLignes}{0}%
\tabtoksa{\useKV[ClesStat]{Donnee}}\tabtoksb{\useKV[ClesStat]{Effectif}}%
\foreachitem\compteur\in\ListeComplete{\expandafter\updatetoks\compteur\nil}%
- \[%
+ \ifboolKV[ClesStat]{Total}{%
\renewcommand{\arraystretch}{\useKV[ClesStat]{Stretch}}%
- \begin{tabular}{|>{\columncolor{\useKV[ClesStat]{CouleurTab}}}c|*{\fpeval{\ListeCompletelen}}{>{\centering\arraybackslash}p{\useKV[ClesStat]{Largeur}}|}}%
- \hline%
- \the\tabtoksa\\\hline%
- \xintifboolexpr{\useKV[ClesStat]{ColVide}<1 || \useKV[ClesStat]{ColVide}>\ListeCompletelen}{%
- \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\the\tabtoksb}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
- \ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
- \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
- \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
- }{%
- \xintifboolexpr{\useKV[ClesStat]{ColVide}==1}{%
- \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
- \ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
- \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
- \ifboolKV[ClesStat]{ECC}{E.C.C.&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
- }{%
- \xintifboolexpr{\useKV[ClesStat]{ColVide}==\ListeCompletelen}{%
- \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ListeComplete[##1,2]}}&\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\\\hline}{}%
- \ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\\\hline}{}%
- \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\\\hline}{}%
- \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\\\hline}{}%
- }{%
- \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ListeComplete[##1,2]}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}\\\hline}{}%
- \ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculAngle{##1}}}}\\\hline}{}%
- \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculSemiAngle{##1}}}}\\\hline}{}%
- \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\\hline}{}%
- }%
+ \begin{NiceTabular}{c*{\fpeval{\ListeCompletelen+1}}{>{\centering\arraybackslash}p{\useKV[ClesStat]{Largeur}}}}%
+ \CodeBefore%
+ \rowcolor{\useKV[ClesStat]{CouleurTab}}{1}%
+ \columncolor{\useKV[ClesStat]{CouleurTab}}{1}%
+ \Body%
+ \the\tabtoksa&Total\\%
+ \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\the\tabtoksb&\num{\EffectifTotal}}\\%
+ \ifboolKV[ClesStat]{Frequence}{\stepcounter{PfCCompteLignes}Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\num{\CalculFrequence{##1}}}}}&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}\\}{}%
+ \ifboolKV[ClesStat]{Angle}{\stepcounter{PfCCompteLignes}Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}\\}{}%
+ \ifboolKV[ClesStat]{SemiAngle}{\stepcounter{PfCCompteLignes}Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}\\}{}%
+ \ifboolKV[ClesStat]{ECC}{\stepcounter{PfCCompteLignes}E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}\\}{}%
+ \CodeAfter%
+ % On crée la liste des colonnes à vider
+ \xintifboolexpr{\useKV[ClesStat]{ColVide}>0}{%
+ \xdef\FooStat{\useKV[ClesStat]{ColVide}}%
+ \setsepchar{,}%
+ \readlist*\ListeColonnesAVider{\FooStat}%
+ \foreachitem\compteur\in\ListeColonnesAVider{%
+ \tikz\fill[white] (row-2-|col-\fpeval{\compteur+1}) rectangle (last-|col-\fpeval{\compteur+2});%
+ }%
+ }{}%
+ % On crée la liste des cases à vider
+ \ifboolKV[ClesStat]{CaseVide}{%
+ \xdef\FooStatCases{\useKV[ClesStat]{CasesVides}}%
+ \setsepchar[*]{,*/}%
+ \readlist*\ListeCasesAVider{\FooStatCases}%
+ \foreachitem\compteur\in\ListeCasesAVider{%
+ \tikz\fill[white] (row-\fpeval{\ListeCasesAVider[\compteurcnt,1]+1}-|col-\fpeval{\ListeCasesAVider[\compteurcnt,2]+1}) rectangle (row-\fpeval{\ListeCasesAVider[\compteurcnt,1]+2}-|col-\fpeval{\ListeCasesAVider[\compteurcnt,2]+2});%
+ }%
+ }{}%
+ % On retrace le tableau
+ %Les colonnes
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\ListeCompletelen+3}}}\do{%
+ \tikz\draw (row-1-|col-##1) -- (last-|col-##1);%
}%
+ % Les lignes
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\thePfCCompteLignes+3}}}\do{%
+ \tikz\draw (row-##1-|col-1) -- (row-##1-|last);%
}%
- \end{tabular}
- \renewcommand{\arraystretch}{1}%
- \]%
-}%
-
-\def\buildtabt{% %%Tableau avec total
- \tabtoksa{\useKV[ClesStat]{Donnee}}\tabtoksb{\useKV[ClesStat]{Effectif}}%
- \foreachitem\compteur\in\ListeComplete{\expandafter\updatetoks\compteur\nil}%
- \[%
+ \end{NiceTabular}%
+ }{%
\renewcommand{\arraystretch}{\useKV[ClesStat]{Stretch}}%
- \begin{tabular}{|>{\columncolor{\useKV[ClesStat]{CouleurTab}}}c|*{\fpeval{\ListeCompletelen+1}}{>{\centering\arraybackslash}p{\useKV[ClesStat]{Largeur}}|}}%
- \hline%
- \the\tabtoksa&\cellcolor{\useKV[ClesStat]{CouleurTab}}Total\\\hline%
- \xintifboolexpr{\useKV[ClesStat]{ColVide}<1 || \useKV[ClesStat]{ColVide}>\ListeCompletelen}{%
- \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}&}{\the\tabtoksb&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
- \ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
- \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
- \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
- }{%
- \xintifboolexpr{\useKV[ClesStat]{ColVide}==1}{%
- \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
- \ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
- \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
- \ifboolKV[ClesStat]{ECC}{E.C.C.&\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
- }{%
- \xintifboolexpr{\useKV[ClesStat]{ColVide}==\ListeCompletelen}{%
- \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ListeComplete[##1,2]}&&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
- \ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
- \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
- \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen-1}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
- }{%
- \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ListeComplete[##1,2]}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ListeComplete[##1,2]}&\ifboolKV[ClesStat]{TotalVide}{}{\num{\EffectifTotal}}}\\\hline%
- \ifboolKV[ClesStat]{Frequence}{Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculFrequence{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{100}}}\\\hline}{}%
- \ifboolKV[ClesStat]{Angle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{360}}}\\\hline}{}%
- \ifboolKV[ClesStat]{SemiAngle}{Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\CalculSemiAngle{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{180}}}\\\hline}{}%
- \ifboolKV[ClesStat]{ECC}{E.C.C.\xintFor* ##1 in {\xintSeq {1}{\fpeval{\useKV[ClesStat]{ColVide}-1}}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\xintFor* ##1 in {\xintSeq {\fpeval{\useKV[ClesStat]{ColVide}+1}}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}&\ifboolKV[ClesStat]{TotalVide}{}{\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\num{\EffectifTotal}}}}\\\hline}{}%
- }%
+ \begin{NiceTabular}{c*{\fpeval{\ListeCompletelen}}{>{\centering\arraybackslash}p{\useKV[ClesStat]{Largeur}}}}%
+ \CodeBefore%
+ \rowcolor{\useKV[ClesStat]{CouleurTab}}{1}%
+ \columncolor{\useKV[ClesStat]{CouleurTab}}{1}%
+ \Body%
+ \the\tabtoksa\\%
+ \ifboolKV[ClesStat]{EffVide}{\useKV[ClesStat]{Effectif}\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&}}{\the\tabtoksb}\\%
+ \ifboolKV[ClesStat]{Frequence}{\stepcounter{PfCCompteLignes}Fr\'equence (\%)\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{FreqVide}{}{\num{\CalculFrequence{##1}}}}}\\}{}%
+ \ifboolKV[ClesStat]{Angle}{\stepcounter{PfCCompteLignes}Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculAngle{##1}}}}\\}{}%
+ \ifboolKV[ClesStat]{SemiAngle}{\stepcounter{PfCCompteLignes}Angle (\si{\degree})\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{AngVide}{}{\CalculSemiAngle{##1}}}}\\}{}%
+ \ifboolKV[ClesStat]{ECC}{\stepcounter{PfCCompteLignes}E.C.C.\xintFor* ##1 in {\xintSeq {1}{\ListeCompletelen}}\do{&\ifboolKV[ClesStat]{TableauVide}{}{\ifboolKV[ClesStat]{ECCVide}{}{\CalculECC{##1}}}}\\}{}%
+ \CodeAfter%
+ % On crée la liste des colonnes à vider
+ \xintifboolexpr{\useKV[ClesStat]{ColVide}>0}{%
+ \xdef\FooStat{\useKV[ClesStat]{ColVide}}%
+ \setsepchar{,}%
+ \readlist*\ListeColonnesAVider{\FooStat}%
+ \foreachitem\compteur\in\ListeColonnesAVider{%
+ \tikz\fill[white] (row-2-|col-\fpeval{\compteur+1}) rectangle (last-|col-\fpeval{\compteur+2});%
+ }%
+ }{}%
+ % On crée la liste des cases à vider
+ \ifboolKV[ClesStat]{CaseVide}{%
+ \xdef\FooStatCases{\useKV[ClesStat]{CasesVides}}%
+ \setsepchar[*]{,*/}%
+ \readlist*\ListeCasesAVider{\FooStatCases}%
+ \foreachitem\compteur\in\ListeCasesAVider{%
+ \tikz\fill[white] (row-\fpeval{\ListeCasesAVider[\compteurcnt,1]+1}-|col-\fpeval{\ListeCasesAVider[\compteurcnt,2]+1}) rectangle (row-\fpeval{\ListeCasesAVider[\compteurcnt,1]+2}-|col-\fpeval{\ListeCasesAVider[\compteurcnt,2]+2});%
+ }%
+ }{}%
+ % On retrace le tableau
+ %Les colonnes
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\ListeCompletelen+2}}}\do{%
+ \tikz\draw (row-1-|col-##1) -- (last-|col-##1);%
}%
+ % Les lignes
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\thePfCCompteLignes+3}}}\do{%
+ \tikz\draw (row-##1-|col-1) -- (row-##1-|last);%
}%
- \end{tabular}
- \renewcommand{\arraystretch}{1}%
- \]%
+ \end{NiceTabular}%
+ }%
}%
% Pour construire le diagramme en barres horizontales
@@ -10269,7 +10716,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\xdef\ListeAvantCouleurs{\useKV[ClesStat]{ListeCouleurs}}%
\readlist*\ListeCouleur{\ListeAvantCouleurs}%
\foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}%
- \[\MPDiagBarreHor{\the\toklistenomhor}{\the\toklistedonhor}{\the\toklisteaffhor}{\the\toklistecouleur}\]%
+ \[\NewMPDiagBarreHor{\the\toklistenomhor}{\the\toklistedonhor}{\the\toklisteaffhor}{\the\toklistecouleur}\]%
}%
% Pour construire le diagramme en bâtons
@@ -10277,7 +10724,11 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\newcommand\buildgraph[1][]{%
\newtoks\toklistepoint%
\foreachitem\compteur\in\ListeComplete{\expandafter\Updatetoks\compteur\nil}%
- \[\MPStat[#1]{\useKV[ClesStat]{Unitex}}{\useKV[ClesStat]{Unitey}}{\the\toklistepoint}{\useKV[ClesStat]{Donnee}}{\useKV[ClesStat]{Effectif}}{\useKV[ClesStat]{Origine}}{\useKV[ClesStat]{AbscisseRotation}}\]%
+ \newtoks\toklistecouleur%
+ \xdef\ListeAvantCouleurs{\useKV[ClesStat]{ListeCouleursB}}%
+ \readlist*\ListeCouleur{\ListeAvantCouleurs}%
+ \foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}%
+ \[\MPStatNew{\the\toklistepoint}{\the\toklistecouleur}\]%
}%
% Pour construire le diagramme en bâtons qualitatif
@@ -10285,56 +10736,38 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\newcommand\buildgraphq[1][]{%
\newtoks\toklistepointq%
\foreachitem\compteur\in\ListeComplete{\expandafter\Updatetoksq\compteur\nil}%
- \[\MPStatQ[#1]{2*\useKV[ClesStat]{Unitex}}{0.5*\useKV[ClesStat]{Unitey}}{\the\toklistepointq}{\useKV[ClesStat]{Donnee}}{\useKV[ClesStat]{Effectif}}{\useKV[ClesStat]{Origine}}{\useKV[ClesStat]{AbscisseRotation}}\]%
+ \newtoks\toklistecouleur%
+ \xdef\ListeAvantCouleurs{\useKV[ClesStat]{ListeCouleursB}}%
+ \readlist*\ListeCouleur{\ListeAvantCouleurs}%
+ \foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}%
+ \[\MPStatNew{\the\toklistepointq}{\the\toklistecouleur}\]%
}%
\def\UpdateCoul#1\nil{\addtotok\toklistecouleur{#1,}}%
+\def\UpdateLegende#1\nil{\addtotok\toklistelegende{#1,}}%
% Pour construire le diagramme circulaire qualitatif
\def\buildgraphcq#1{%
- \newtoks\toklistepointq%
- \toklistepointq{}%
- \newtoks\toklistecouleur%
- \toklistecouleur{}%
+ \newtoks\toklistepointq\toklistepointq{}%
+ \newtoks\toklistecouleur\toklistecouleur{}%
+ \newtoks\toklistelegende\toklistelegende{}%
+ \ifboolKV[ClesStat]{LegendeVide}{%
+ \xdef\foo{\useKV[ClesStat]{LegendesVides}}%
+ \readlist*\ListeLegendesAEffacer{\foo}%
+ }{\xdef\foo{0}\readlist*\ListeLegendesAEffacer{\foo}%
+ }%
+ \foreachitem\compteur\in\ListeLegendesAEffacer{\expandafter\UpdateLegende\compteur\nil}%
%
\foreachitem\compteur\in\ListeComplete{\expandafter\Updatetoksq\compteur\nil}%
\xdef\ListeAvantCouleurs{\useKV[ClesStat]{ListeCouleurs}}%
\readlist*\ListeCouleur{\ListeAvantCouleurs}%
\foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}%
- \ifboolKV[ClesStat]{AffichageAngle}{%
- \ifboolKV[ClesStat]{Hachures}{%
- \ifboolKV[ClesStat]{Inverse}{%
- \[\MPStatCirculaireQ{\useKV[ClesStat]{Rayon}}{\the\toklistepointq}{#1}{1}{\the\toklistecouleur}{1}{1}\]%
- }{%
- \[\MPStatCirculaireQ{\useKV[ClesStat]{Rayon}}{\the\toklistepointq}{#1}{1}{\the\toklistecouleur}{1}{0}\]%
- }%
- }{%
- \ifboolKV[ClesStat]{Inverse}{%
- \[\MPStatCirculaireQ{\useKV[ClesStat]{Rayon}}{\the\toklistepointq}{#1}{1}{\the\toklistecouleur}{0}{1}\]%
- }{%
- \[\MPStatCirculaireQ{\useKV[ClesStat]{Rayon}}{\the\toklistepointq}{#1}{1}{\the\toklistecouleur}{0}{0}\]%
- }%
- }%
- }{%
- \ifboolKV[ClesStat]{Hachures}{%
- \ifboolKV[ClesStat]{Inverse}{%
- \[\MPStatCirculaireQ{\useKV[ClesStat]{Rayon}}{\the\toklistepointq}{#1}{0}{\the\toklistecouleur}{1}{1}\]%
- }{%
- \[\MPStatCirculaireQ{\useKV[ClesStat]{Rayon}}{\the\toklistepointq}{#1}{0}{\the\toklistecouleur}{1}{0}\]%
- }%
- }{%
- \ifboolKV[ClesStat]{Inverse}{%
- \[\MPStatCirculaireQ{\useKV[ClesStat]{Rayon}}{\the\toklistepointq}{#1}{0}{\the\toklistecouleur}{0}{1}\]%
- }{%
- \[\MPStatCirculaireQ{\useKV[ClesStat]{Rayon}}{\the\toklistepointq}{#1}{0}{\the\toklistecouleur}{0}{0}\]%
- }%
- }%
- }%
+ \NewMPStatCirculaireQ{\the\toklistepointq}{#1}{\the\toklistecouleur}{\the\toklistelegende}%
}%
%% calcul des fr\'equences
\newcommand\CalculFrequence[1]{%
- \fpeval{round(\ListeComplete[#1,2]*100/\EffectifTotal,0)}
+ \fpeval{round(\ListeComplete[#1,2]*100/\EffectifTotal,\useKV[ClesStat]{PrecisionF})}
}
%% calcul des angles
@@ -10361,10 +10794,11 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
}
% Construction d'un diagramme en barres horizontal
-\newcommand\MPDiagBarreHor[4]{%
+\newcommand\NewMPDiagBarreHor[4]{%
% #1 Liste des noms
% #2 Liste des valeurs associées
% #3 Liste des valeurs à afficher (si pb calcul MP)
+ % #4 Liste des couleurs
\ifluatex
\mplibforcehmode%
\begin{mplibcode}%
@@ -10374,6 +10808,8 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
boolean Hachures;
Hachures=\useKV[ClesStat]{Hachures};
+ boolean Bicolore;
+ Bicolore=\useKV[ClesStat]{Bicolore};
vardef CalculNombreDonneesEtDonneeMax(text t)=
nbdon:=0;%nombre de données
DonneeMax:=0;%donnée DonneeMaximale
@@ -10408,7 +10844,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
(k mod 2)=0: +90 fi,ecarthachures,if (k mod 2)=0 : 0 else: 1 fi)
withpen pencircle scaled epaisseurhachures;
else:
- remplis RectangleDonnee withcolor if unknown Col[k+1]: white else:Col[k+1] fi;
+ remplis RectangleDonnee withcolor if unknown Col[k+1]: if Bicolore:Col[(k mod 2)+1] else: white fi; else:if Bicolore:Col[(k mod 2)+1] else: Col[k+1] fi; fi;
fi;
trace RectangleDonnee;
endfor;
@@ -10435,11 +10871,16 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
AffichageDonnees(#3);
\end{mplibcode}
\else
- \mpxcommands{%
- \xdef\Nom{\expand#1}
- }
- \begin{mpost}[mpsettings={Longueur:=\useKV[ClesStat]{Longueur};Hauteur:=\useKV[ClesStat]{Hauteur};ecarthachures=\useKV[ClesStat]{EcartHachures};epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};boolean Hachures;Hachures=\useKV[ClesStat]{Hachures};}]
- % Pb avec les noms accentués : pas de solution (27/02/2022)
+ \begin{mpost}[mpsettings={%
+ Longueur:=\useKV[ClesStat]{Longueur};
+ Hauteur:=\useKV[ClesStat]{Hauteur};
+ ecarthachures=\useKV[ClesStat]{EcartHachures};
+ epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
+ boolean Hachures;
+ Hachures=\useKV[ClesStat]{Hachures};
+ boolean Bicolore;
+ Bicolore=\useKV[ClesStat]{Bicolore};
+ }]
vardef CalculNombreDonneesEtDonneeMax(text t)=
nbdon:=0;%nombre de données
DonneeMax:=0;%donnée DonneeMaximale
@@ -10474,7 +10915,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
(k mod 2)=0: +90 fi,ecarthachures,if (k mod 2)=0 : 0 else: 1 fi)
withpen pencircle scaled epaisseurhachures;
else:
- remplis RectangleDonnee withcolor if unknown Col[k+1]: white else:Col[k+1] fi;
+ remplis RectangleDonnee withcolor if unknown Col[k+1]: if Bicolore:Col[(k mod 2)+1] else: white fi; else:if Bicolore:Col[(k mod 2)+1] else: Col[k+1] fi; fi;
fi;
trace RectangleDonnee;
endfor;
@@ -10500,43 +10941,142 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
AffichageNom(#1);
AffichageDonnees(#3);
\end{mpost}
- \fi
+ \fi
}%
% la construction du graphique en bâtons pour quantitatif
-\newcommand\MPStat[8][]{%
+\newcommand\MPStatNew[2]{%
\ifluatex
- \mplibforcehmode
+ \mplibforcehmode
\begin{mplibcode}
maxx:=0;
maxy:=0;
- unitex:=#2*cm;
- unitey:=#3*cm;
+ unitex:=\useKV[ClesStat]{Unitex}*cm;
+ unitey:=\useKV[ClesStat]{Unitey}*cm;
+ xpartorigine:=\useKV[ClesStat]{Origine};
+ AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
+ boolean Rotation;
+ Rotation=\useKV[ClesStat]{AbscisseRotation};
+ boolean Lecture;
+ Lecture:=\useKV[ClesStat]{Lecture};
+ boolean LectureFine;
+ LectureFine:=\useKV[ClesStat]{LectureFine};
+ boolean AideLecture;
+ AideLecture:=\useKV[ClesStat]{AideLecture};
+ boolean DonneesSup;
+ DonneesSup:=\useKV[ClesStat]{DonneesSup};
+ boolean Reponses;
+ Reponses:=\useKV[ClesStat]{Reponses};
+ epaisseurbatons=\useKV[ClesStat]{EpaisseurBatons};
+ boolean Qualitatif;
+ Qualitatif=\useKV[ClesStat]{Qualitatif};
+ boolean Tiret;
+ Tiret=\useKV[ClesStat]{Tiret};
+ % on r\'ecup\`ere les couleurs
+ color Col[];
+ n:=0;
+ for p_=#2:
+ n:=n+1;
+ if color p_:
+ Col[n]=p_;
+ else:
+ Col[n]=black;
+ fi;
+ endfor;
+ %
pair A[],B[],P[];
+ vardef toto(text t)=%points quantitatif
n:=0;
- vardef toto(text t)=
for p_=t:
if pair p_:
n:=n+1;
- P[n]=((xpart(p_)-(#7))*unitex,ypart(p_)*unitey);
+ P[n]=((xpart(p_)-(xpartorigine))*unitex,ypart(p_)*unitey);
if xpart(p_)>maxx:
- maxx:=xpart(p_)-(#7);
+ maxx:=xpart(p_)-(xpartorigine);
fi;
if ypart(p_)>maxy:
maxy:=ypart(p_);
fi;
- A[n]=unitex*(xpart(p_)-(#7),0);
+ A[n]=unitex*(xpart(p_)-(xpartorigine),0);
B[n]=unitey*(0,ypart(p_));
- if (#8):
- label.bot(TEX("\num{"&decimal(xpart(p_))&"}") rotated 90,A[n]);
+ fi;
+ endfor;
+ enddef;
+ vardef tata(text t)=%affichage quantitatif
+ l=0;
+ for p_=t:
+ if pair p_:
+ l:=l+1;
+ if Rotation:
+ label.bot(TEX("\num{"&decimal(xpart(p_))&"}") rotated AngleRotation,A[l]);
else :
- label.bot(TEX("\num{"&decimal(xpart(p_))&"}"),A[n]);
+ label.bot(TEX("\num{"&decimal(xpart(p_))&"}"),A[l]);
+ fi;
+ if Reponses:
+ if DonneesSup:
+ label.top(TEX("\num{"&decimal(ypart(p_))&"}"),P[l]);
+ else:
+ if Tiret:
+ trace (B[l]+(-1pt,0))--(B[l]+(1pt,0));
+ label.lft(TEX("\num{"&decimal(p_)&"}"),B[l]);
+ else:
+ dotlabel.lft(TEX("\num{"&decimal(ypart(p_))&"}"),B[l]);
+ fi;
fi;
- label.lft(TEX("\num{"&decimal(ypart(p_))&"}"),B[n]);
fi;
endfor;
enddef;
- toto(#4);
+ vardef tutu(text t)=%points qualitatif
+ n:=0;
+ for p_=t:
+ if numeric p_:
+ P[n]=((n)*unitex,unitey*p_);
+ B[n]=(0,unitey*p_);
+ if p_>maxy:
+ maxy:=p_;
+ fi;
+ else:
+ n:=n+1;
+ A[n]=unitex*(n,0);
+ fi;
+ endfor;
+ maxx:=n;
+ enddef;
+ vardef titi(text t)=%affichage qualitatif
+ l:=0;
+ for p_=t:
+ if numeric p_:
+ if Reponses:
+ if DonneesSup:
+ label.top(TEX("\num{"&decimal(p_)&"}"),P[l]);
+ else:
+ if Tiret:
+ trace (B[l]+(-1pt,0))--(B[l]+(1pt,0));
+ label.lft(TEX("\num{"&decimal(p_)&"}"),B[l]);
+ else:
+ dotlabel.lft(TEX("\num{"&decimal(p_)&"}"),B[l]);
+ fi;
+ fi;
+ fi;
+ else:
+ l:=l+1;
+ if Rotation:
+ if AngleRotation<>0:
+ picture TEXTELABEL;
+ TEXTELABEL=image(
+ labeloffset:=labeloffset*2;
+ label.lft(TEX(p_),A[l]);
+ labeloffset:=labeloffset/2;
+ );
+ trace rotation(TEXTELABEL,A[l],AngleRotation);
+ else :
+ label.bot(TEX(p_),A[l]);
+ fi;
+ fi;
+ fi;
+ endfor;
+ enddef;
+ if Qualitatif: tutu(#1); else: toto(#1); fi;
boolean Grille;
Grille:=\useKV[ClesStat]{Grille};
Pasx:=\useKV[ClesStat]{Pasx};
@@ -10544,192 +11084,249 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
if Grille:
drawoptions(withcolor 0.75white);
for k=0 step Pasx until ((maxx+1)):
- trace (k*unitex,0)--(k*unitex,unitey*(maxy+1));
+ trace (k*unitex,0)--(k*unitex,unitey*(maxy+2*Pasy));
endfor;
- for k=0 step Pasy until ((maxy+1)):
+ for k=0 step Pasy until ((maxy+2*Pasy)):
trace (0,k*unitey)--(unitex*(maxx+1),k*unitey);
endfor;
drawoptions();
fi;
for k=1 upto n:
- draw A[k]--P[k] withpen pencircle scaled 2bp;
+ fill polygone(A[k]-(epaisseurbatons*1pt,0),A[k]+(epaisseurbatons*1pt,0),P[k]+(epaisseurbatons*1pt,0),P[k]-(epaisseurbatons*1pt,0)) withcolor if unknown Col[k]: black else:Col[k] fi;
+ if AideLecture:
draw B[k]--P[k] dashed evenly;
+ fi;
+ endfor;
+ if LectureFine:
+ for k=0 step Pasy until ((maxy+1*Pasy)):
+ if Tiret:
+ trace (1pt,k*unitey)--(-1pt,k*unitey);
+ label.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey));
+ else:
+ dotlabel.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey));
+ fi;
endfor;
+ fi;
+ if Lecture:
+ for k=0 step Pasy until Pasy:
+ if Tiret:
+ trace (1pt,k*unitey)--(-1pt,k*unitey);
+ label.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey));
+ else:
+ dotlabel.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey));
+ fi;
+ endfor;
+ fi;
drawarrow (0,0)--unitex*(maxx+1,0);
- drawarrow (0,0)--unitey*(0,maxy+1);
- label.lrt(btex #5 etex,unitex*(maxx+1,0));
- label.urt(btex #6 etex,unitey*(0,maxy+1));
+ drawarrow (0,0)--unitey*(0,maxy+2*Pasy);
+ label.lrt(btex \useKV[ClesStat]{Donnee} etex,unitex*(maxx+1,0));
+ label.urt(btex \useKV[ClesStat]{Effectif} etex,unitey*(0,maxy+2*Pasy));
+ if Qualitatif: titi(#1); else:tata(#1); fi;
\end{mplibcode}
\else
- \mpxcommands{%
- \setKV[ClesStat]{#1}%
- }
- \begin{mpost}[mpsettings={boolean Grille; Grille:=\useKV[ClesStat]{Grille}; Pasx:=\useKV[ClesStat]{Pasx}; Pasy:=\useKV[ClesStat]{Pasy};}]
- maxx:=0;
- maxy:=0;
- unitex:=#2*cm;
- unitey:=#3*cm;
+ \begin{mpost}[mpsettings={%
+ unitex:=\useKV[ClesStat]{Unitex}*cm;
+ unitey:=\useKV[ClesStat]{Unitey}*cm;
+ xpartorigine:=\useKV[ClesStat]{Origine};
+ AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
+ boolean Rotation;
+ Rotation=\useKV[ClesStat]{AbscisseRotation};
+ boolean Lecture;
+ Lecture:=\useKV[ClesStat]{Lecture};
+ boolean LectureFine;
+ LectureFine:=\useKV[ClesStat]{LectureFine};
+ boolean AideLecture;
+ AideLecture:=\useKV[ClesStat]{AideLecture};
+ boolean DonneesSup;
+ DonneesSup:=\useKV[ClesStat]{DonneesSup};
+ boolean Reponses;
+ Reponses:=\useKV[ClesStat]{Reponses};
+ epaisseurbatons=\useKV[ClesStat]{EpaisseurBatons};
+ boolean Qualitatif;
+ Qualitatif=\useKV[ClesStat]{Qualitatif};
+ boolean Tiret;
+ Tiret=\useKV[ClesStat]{Tiret};}
+ ]
+ % on r\'ecup\`ere les couleurs
+ color Col[];
+ n:=0;
+ for p_=#2:
+ n:=n+1;
+ if color p_:
+ Col[n]=p_;
+ else:
+ Col[n]=black;
+ fi;
+ endfor;
+ %
pair A[],B[],P[];
+ vardef toto(text t)=%points quantitatif
n:=0;
- vardef toto(text t)=
for p_=t:
if pair p_:
n:=n+1;
- P[n]=((xpart(p_)-(#7))*unitex,ypart(p_)*unitey);
+ P[n]=((xpart(p_)-(xpartorigine))*unitex,ypart(p_)*unitey);
if xpart(p_)>maxx:
- maxx:=xpart(p_)-(#7);
+ maxx:=xpart(p_)-(xpartorigine);
fi;
if ypart(p_)>maxy:
maxy:=ypart(p_);
fi;
- A[n]=unitex*(xpart(p_)-(#7),0);
+ A[n]=unitex*(xpart(p_)-(xpartorigine),0);
B[n]=unitey*(0,ypart(p_));
- if (#8):
- label.bot(LATEX("\num{"&decimal(xpart(p_))&"}") rotated 90,A[n]);
- else :
- label.bot(LATEX("\num{"&decimal(xpart(p_))&"}"),A[n]);
- fi;
- label.lft(LATEX("\num{"&decimal(ypart(p_))&"}"),B[n]);
fi;
endfor;
enddef;
- toto(#4);
- if Grille:
- drawoptions(withcolor 0.75white);
- for k=0 step Pasx until ((maxx+1)):
- trace (k*unitex,0)--(k*unitex,unitey*(maxy+1));
- endfor;
- for k=0 step Pasy until ((maxy+1)):
- trace (0,k*unitey)--(unitex*(maxx+1),k*unitey);
- endfor;
- drawoptions();
+ vardef tata(text t)=%affichage quantitatif
+ l=0;
+ for p_=t:
+ if pair p_:
+ l:=l+1;
+ if Rotation:
+ label.bot(TEX("\num{"&decimal(xpart(p_))&"}") rotated AngleRotation,A[l]);
+ else :
+ label.bot(TEX("\num{"&decimal(xpart(p_))&"}"),A[l]);
+ fi;
+ if Reponses:
+ if DonneesSup:
+ label.top(TEX("\num{"&decimal(ypart(p_))&"}"),P[l]);
+ else:
+ if Tiret:
+ trace (B[l]+(-1pt,0))--(B[l]+(1pt,0));
+ label.lft(TEX("\num{"&decimal(p_)&"}"),B[l]);
+ else:
+ dotlabel.lft(TEX("\num{"&decimal(ypart(p_))&"}"),B[l]);
+ fi;
+ fi;
fi;
- for k=1 upto n:
- draw A[k]--P[k] withpen pencircle scaled 2bp;
- draw B[k]--P[k] dashed evenly;
endfor;
- drawarrow (0,0)--unitex*(maxx+1,0);
- drawarrow (0,0)--unitey*(0,maxy+1);
- label.lrt(\btex \useKV[ClesStat]{Donnee} etex,unitex*(maxx+1,0));
- label.urt(\btex \useKV[ClesStat]{Effectif} etex,unitey*(0,maxy+1));
- \end{mpost}
- \fi
-}
-
-% la construction du graphique en bâtons pour qualitatif
-\newcommand\MPStatQ[8][]{%
- \ifluatex
- \mplibforcehmode
- \begin{mplibcode}
- maxy:=0;
- unitex:=#2*cm;
- unitey:=#3*cm;
- pair A[],B[],P[];
+ enddef;
+ vardef tutu(text t)=%points qualitatif
n:=0;
- vardef toto(text t)=
for p_=t:
if numeric p_:
- P[n]=((n+1)*unitex,unitey*p_);
+ P[n]=((n)*unitex,unitey*p_);
B[n]=(0,unitey*p_);
- label.lft(TEX("\num{"&decimal(p_)&"}"),B[n]);
if p_>maxy:
maxy:=p_;
fi;
+ else:
n:=n+1;
+ A[n]=unitex*(n,0);
+ fi;
+ endfor;
+ maxx:=n;
+ enddef;
+ vardef titi(text t)=%affichage qualitatif
+ l:=0;
+ for p_=t:
+ if numeric p_:
+ if Reponses:
+ if DonneesSup:
+ label.top(TEX("\num{"&decimal(p_)&"}"),P[l]);
+ else:
+ if Tiret:
+ trace (B[l]+(-1pt,0))--(B[l]+(1pt,0));
+ label.lft(TEX("\num{"&decimal(p_)&"}"),B[l]);
else:
- A[n]=unitex*(n+1,0);
- if (#8):
- label.bot(TEX(p_) rotated 90,A[n]);
+ dotlabel.lft(TEX("\num{"&decimal(p_)&"}"),B[l]);
+ fi;
+ fi;
+ fi;
+ else:
+ l:=l+1;
+ if Rotation:
+ if AngleRotation<>0:
+ picture TEXTELABEL;
+ TEXTELABEL=image(
+ labeloffset:=labeloffset*2;
+ label.lft(TEX(p_),A[l]);
+ labeloffset:=labeloffset/2;
+ );
+ trace rotation(TEXTELABEL,A[l],AngleRotation);
else :
- label.bot(TEX(p_),A[n]);
+ label.bot(TEX(p_),A[l]);
+ fi;
fi;
fi;
endfor;
enddef;
- toto(#4);
+ if Qualitatif: tutu(#1); else: toto(#1); fi;
boolean Grille;
Grille:=\useKV[ClesStat]{Grille};
Pasx:=\useKV[ClesStat]{Pasx};
Pasy:=\useKV[ClesStat]{Pasy};
if Grille:
drawoptions(withcolor 0.75white);
- for k=0 step Pasx until ((n+1)):
- trace (k*unitex,0)--(k*unitex,unitey*(maxy+1));
+ for k=0 step Pasx until ((maxx+1)):
+ trace (k*unitex,0)--(k*unitex,unitey*(maxy+2*Pasy));
endfor;
- for k=0 step Pasy until ((maxy+1)):
- trace (0,k*unitey)--(unitex*(n+1),k*unitey);
+ for k=0 step Pasy until ((maxy+2*Pasy)):
+ trace (0,k*unitey)--(unitex*(maxx+1),k*unitey);
endfor;
drawoptions();
fi;
- for k=0 upto n-1:
- draw A[k]--P[k] withpen pencircle scaled 2bp;
+ for k=1 upto n:
+ fill polygone(A[k]-(epaisseurbatons*1pt,0),A[k]+(epaisseurbatons*1pt,0),P[k]+(epaisseurbatons*1pt,0),P[k]-(epaisseurbatons*1pt,0)) withcolor if unknown Col[k]: black else:Col[k] fi;
+ if AideLecture:
draw B[k]--P[k] dashed evenly;
- endfor;
- drawarrow (0,0)--unitex*(n+1,0);
- drawarrow (0,0)--unitey*(0,maxy+1);
- label.lrt(btex #5 etex,unitex*(n+1,0));
- label.urt(btex #6 etex,unitey*(0,maxy+1));
- \end{mplibcode}
- \else
- \mpxcommands{%
- \setKV[ClesStat]{#1}%
- }
- \begin{mpost}[mpsettings={boolean Grille; Grille:=\useKV[ClesStat]{Grille}; Pasx:=\useKV[ClesStat]{Pasx}; Pasy:=\useKV[ClesStat]{Pasy};}]
- maxy:=0;
- unitex:=#2*cm;
- unitey:=#3*cm;
- pair A[],B[],P[];
- n:=0;
- vardef toto(text t)=
- for p_=t:
- if numeric p_:
- P[n]=((n+1)*unitex,unitey*p_);
- B[n]=(0,unitey*p_);
- label.lft(LATEX("\num{"&decimal(p_)&"}"),B[n]);
- if p_>maxy:
- maxy:=p_;
fi;
- n:=n+1;
+ endfor;
+ if LectureFine:
+ for k=0 step Pasy until ((maxy+1*Pasy)):
+ if Tiret:
+ trace (1pt,k*unitey)--(-1pt,k*unitey);
+ label.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey));
else:
- A[n]=unitex*(n+1,0);
- if (#8):
- label.bot(LATEX(p_) rotated 90,A[n]);
- else :
- label.bot(LATEX(p_),A[n]);
+ dotlabel.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey));
fi;
- fi;
- endfor;
- enddef;
- toto(#4);
- if Grille:
- drawoptions(withcolor 0.75white);
- for k=0 step Pasx until ((n+1)):
- trace (k*unitex,0)--(k*unitex,unitey*(maxy+1));
endfor;
- for k=0 step Pasy until ((maxy+1)):
- trace (0,k*unitey)--(unitex*(n+1),k*unitey);
- endfor;
- drawoptions();
fi;
- for k=0 upto n-1:
- draw A[k]--P[k] withpen pencircle scaled 2bp;
- draw B[k]--P[k] dashed evenly;
+ if Lecture:
+ for k=0 step Pasy until Pasy:
+ if Tiret:
+ trace (1pt,k*unitey)--(-1pt,k*unitey);
+ label.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey));
+ else:
+ dotlabel.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey));
+ fi;
endfor;
- drawarrow (0,0)--unitex*(n+1,0);
- drawarrow (0,0)--unitey*(0,maxy+1);
- label.lrt(\btex \useKV[ClesStat]{Donnee} etex,unitex*(n+1,0));
- label.urt(\btex \useKV[ClesStat]{Effectif} etex,unitey*(0,maxy+1));
+ fi;
+ drawarrow (0,0)--unitex*(maxx+1,0);
+ drawarrow (0,0)--unitey*(0,maxy+2*Pasy);
+ label.lrt(btex \useKV[ClesStat]{Donnee} etex,unitex*(maxx+1,0));
+ label.urt(btex \useKV[ClesStat]{Effectif} etex,unitey*(0,maxy+2*Pasy));
+ if Qualitatif: titi(#1); else:tata(#1); fi;
\end{mpost}
\fi
}
% la construction du graphique qualitatif
-\def\MPStatCirculaireQ#1#2#3#4#5#6#7{%
+\def\NewMPStatCirculaireQ#1#2#3#4{%
+ %#1 : la liste des données
+ %#2 : 360 ou 180
+ %#3 : liste des couleurs
+ %#4 : liste des légendes à effacer.
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ Rayon:=\useKV[ClesStat]{Rayon};
ecarthachures=\useKV[ClesStat]{EcartHachures};
epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
+ boolean AffichageAngle;
+ AffichageAngle=\useKV[ClesStat]{AffichageAngle};
+ boolean AffichageDonnee;
+ AffichageDonnee=\useKV[ClesStat]{AffichageDonnee};
+ boolean Hachures;
+ Hachures=\useKV[ClesStat]{Hachures};
+ boolean Inverse;
+ Inverse=\useKV[ClesStat]{LectureInverse};
+ boolean Legende;
+ Legende=\useKV[ClesStat]{Legende};
+ boolean LegendeVide;
+ LegendeVide=\useKV[ClesStat]{LegendeVide};
+ boolean Retour;
+ Retour=false;
pair A[],O,B[],C[],D[];
O=(0,0);
n:=0;
@@ -10737,15 +11334,15 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
total[0]=0;
ang[0]:=0;
path cc;
- cc=(fullcircle scaled (2*#1));
+ cc=(fullcircle scaled (2*Rayon));
% on r\'ecup\`ere les couleurs
color Col[];
n:=0;
- for p_=#5:
+ for p_=#3:
n:=n+1;
Col[n]=p_;
endfor;
- if #7=0:
+ if Inverse=false:
A[0]=point(0) of cc;
else:
A[0]=point(180) of cc;
@@ -10760,101 +11357,159 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
endfor;
N=n;
for k=1 upto N:
- ang[k]=(#3/total[N])*total[k];
+ ang[k]=(#2/total[N])*total[k];
endfor;
n:=0;
for p_=t:
if numeric p_:
n:=n+1;
- if #7=0:
- A[n]=A[n-1] rotatedabout(O,p_*(#3/total[N]));
+ if Inverse=false:
+ A[n]=A[n-1] rotatedabout(O,p_*(#2/total[N]));
else:
- A[n]=A[n-1] rotatedabout(O,-p_*(#3/total[N]));
+ A[n]=A[n-1] rotatedabout(O,-p_*(#2/total[N]));
fi;
%hachure ou pas ?
- if #6=0:
- fill (O--if #7=0:arccercle(A[n-1],A[n],O) else:
+ if Hachures=false:
+ fill (O--if Inverse=false:arccercle(A[n-1],A[n],O) else:
arccercle(A[n],A[n-1],O) fi--cycle) withcolor if unknown Col[n]: white else:Col[n] fi;
else:
draw
- Hachurage((O--if #7=0:arccercle(A[n-1],A[n],O)
- else:arccercle(A[n],A[n-1],O) fi--cycle),p_*(#3/total[N]) if
+ Hachurage((O--if Inverse=false:arccercle(A[n-1],A[n],O)
+ else:arccercle(A[n],A[n-1],O) fi--cycle),p_*(#2/total[N]) if
(n mod 2)=0: +90 else: -90 fi,ecarthachures,if (n mod 2)=0 : 0 else: 1 fi)
- withpen pencircle scaled epaisseurhachures if #4=1: withcolor 0.5white fi;
+ withpen pencircle scaled epaisseurhachures if AffichageAngle: withcolor 0.5white fi;
fi;
- draw A[n-1]--O--A[n] if #6=1: withpen pencircle scaled2 fi;
+ draw A[n-1]--O--A[n] if Hachures: withpen pencircle scaled2 fi;
% Affichage des angles associ\'es
- if #4=1:
- if round(p_*(#3/total[N]))>15:
+ if AffichageAngle:
+ if round(p_*(#2/total[N]))>15:
if (n mod 2)=0:
- marque_a:=20*0.75*#1/cm;
+ marque_a:=20*0.75*Rayon/cm;
else:
- marque_a:=20*0.5*#1/cm;
+ marque_a:=20*0.5*Rayon/cm;
fi;
- if #6=1:
- if #7=0:
+ if Hachures:
+ if Inverse=false:
undraw
- Codeangle(A[n-1],O,A[n],0,(((TEX("\ang{"&decimal(round(p_*(#3/total[N])))&"}")))));
+ Codeangle(A[n-1],O,A[n],0,(((TEX("\ang{"&decimal(round(p_*(#2/total[N])))&"}")))));
else:
undraw
- Codeangle(A[n],O,A[n-1],0,(((TEX("\ang{"&decimal(round(p_*(#3/total[N])))&"}")))));
+ Codeangle(A[n],O,A[n-1],0,(((TEX("\ang{"&decimal(round(p_*(#2/total[N])))&"}")))));
fi;
fill cercles(w shifted(marque_ang*unitvector(w-O)),3mm) withcolor
blanc;
fi;
- if #7=0:
+ if Inverse=false:
draw
- Codeangle(A[n-1],O,A[n],0,(((TEX("\ang{"&decimal(round(p_*(#3/total[N])))&"}")))));
+ Codeangle(A[n-1],O,A[n],0,(((TEX("\ang{"&decimal(round(p_*(#2/total[N])))&"}")))));
else:
draw
- Codeangle(A[n],O,A[n-1],0,(((TEX("\ang{"&decimal(round(p_*(#3/total[N])))&"}")))));
+ Codeangle(A[n],O,A[n-1],0,(((TEX("\ang{"&decimal(round(p_*(#2/total[N])))&"}")))));
+ fi;
+ fi;
+ elseif AffichageDonnee:
+ if round(p_*(#2/total[N]))>15:
+ if (n mod 2)=0:
+ marque_a:=20*0.75*Rayon/cm;
+ else:
+ marque_a:=20*0.5*Rayon/cm;
+ fi;
+ if Hachures:
+ if Inverse=false:
+ undraw
+ Codeangle(A[n-1],O,A[n],0,TEX(""&decimal(p_)&""));
+ else:
+ undraw
+ Codeangle(A[n],O,A[n-1],0,(((TEX(""&decimal(p_)&"")))));
+ fi;
+ fill cercles(w shifted(marque_ang*unitvector(w-O)),3mm) withcolor
+ blanc;
+ fi;
+ if Inverse=false:
+ draw
+ Codeangle(A[n-1],O,A[n],0,(((TEX(""&decimal(p_)&"")))));
+ else:
+ draw
+ Codeangle(A[n],O,A[n-1],0,(((TEX(""&decimal(p_)&"")))));
fi;
fi;
fi;
%
fi;
endfor;
- if #3=360:
- draw cc if #6=1: withpen pencircle scaled2 fi;
+ if #2=360:
+ draw cc if Hachures: withpen pencircle scaled2 fi;
else:
- draw (subpath(0,length cc/2) of cc)--cycle if #6=1: withpen pencircle scaled2 fi;;
+ draw (subpath(0,length cc/2) of cc)--cycle if Hachures: withpen pencircle scaled2 fi;;
fi;
n:=0;
- path cd[];
+ if Legende:
for p_=t:
if string p_:
n:=n+1;
- C[n]=A[n-1] rotatedabout(O,if #7=1:-1* fi(ang[n]-ang[n-1])/2);
+ C[n]=A[n-1] rotatedabout(O,if Inverse:-1* fi(ang[n]-ang[n-1])/2);
draw 0.95[O,C[n]]--1.05[O,C[n]];
C[n]:=1.05[O,C[n]];
+ Test(n);
if (xpart(C[n])>xpart(O)) and (ypart(C[n])>ypart(O)):
D[n]=C[n]+(0.5cm,0);
draw C[n]--D[n];
- label.urt(TEX(p_),D[n]);
+ if Retour=false:label.urt(TEX(p_),D[n]);fi;
fi;
if (xpart(C[n])<xpart(O)) and (ypart(C[n])>ypart(O)):
D[n]=C[n]-(0.5cm,0);
draw C[n]--D[n];
- label.ulft(TEX(p_),D[n]);
+ if Retour=false:label.ulft(TEX(p_),D[n]);fi;
fi;
if (xpart(C[n])<xpart(O)) and (ypart(C[n])<ypart(O)):
D[n]=C[n]-(0.5cm,0);
draw C[n]--D[n];
- label.llft(TEX(p_),D[n]);
+ if Retour=false:label.llft(TEX(p_),D[n]);fi;
fi;
if (xpart(C[n])>xpart(O)) and (ypart(C[n])<ypart(O)):
D[n]=C[n]+(0.5cm,0);
draw C[n]--D[n];
- label.lrt(TEX(p_),D[n]);
+ if Retour=false:label.lrt(TEX(p_),D[n]);fi;
fi;
fi;
endfor;
+ fi;
enddef;
+ vardef Test(expr nb)=
+ Retour:=false;
+ op:=0;
+ for l_=#4:
+ if l_=nb:
+ op:=op+1;
+ fi;
+ endfor;
+ if op>0:
+ Retour:=true;
+ fi;
+ enddef;
Figure(-10u,-10u,10u,10u);
- toto(#2);
+ toto(#1);
\end{mplibcode}
\else
- \begin{mpost}[mpsettings={ecarthachures=\useKV[ClesStat]{EcartHachures};epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};}]
+ \begin{mpost}[mpsettings={%
+ Rayon:=\useKV[ClesStat]{Rayon};
+ ecarthachures=\useKV[ClesStat]{EcartHachures};
+ epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures};
+ boolean AffichageAngle;
+ AffichageAngle=\useKV[ClesStat]{AffichageAngle};
+ boolean AffichageDonnee;
+ AffichageDonnee=\useKV[ClesStat]{AffichageDonnee};
+ boolean Hachures;
+ Hachures=\useKV[ClesStat]{Hachures};
+ boolean Inverse;
+ Inverse=\useKV[ClesStat]{LectureInverse};
+ boolean Legende;
+ Legende=\useKV[ClesStat]{Legende};
+ boolean LegendeVide;
+ LegendeVide=\useKV[ClesStat]{LegendeVide};
+ }]
+ boolean Retour;
+ Retour=false;
pair A[],O,B[],C[],D[];
O=(0,0);
n:=0;
@@ -10862,15 +11517,15 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
total[0]=0;
ang[0]:=0;
path cc;
- cc=(fullcircle scaled (2*#1));
+ cc=(fullcircle scaled (2*Rayon));
% on r\'ecup\`ere les couleurs
color Col[];
n:=0;
- for p_=#5:
+ for p_=#3:
n:=n+1;
Col[n]=p_;
endfor;
- if #7=0:
+ if Inverse=false:
A[0]=point(0) of cc;
else:
A[0]=point(180) of cc;
@@ -10885,73 +11540,101 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
endfor;
N=n;
for k=1 upto N:
- ang[k]=(#3/total[N])*total[k];
+ ang[k]=(#2/total[N])*total[k];
endfor;
n:=0;
for p_=t:
if numeric p_:
n:=n+1;
- if #7=0:
- A[n]=A[n-1] rotatedabout(O,p_*(#3/total[N]));
+ if Inverse=false:
+ A[n]=A[n-1] rotatedabout(O,p_*(#2/total[N]));
else:
- A[n]=A[n-1] rotatedabout(O,-p_*(#3/total[N]));
+ A[n]=A[n-1] rotatedabout(O,-p_*(#2/total[N]));
fi;
%hachure ou pas ?
- if #6=0:
- fill (O--if #7=0:arccercle(A[n-1],A[n],O) else:
+ if Hachures=false:
+ fill (O--if Inverse=false:arccercle(A[n-1],A[n],O) else:
arccercle(A[n],A[n-1],O) fi--cycle) withcolor if unknown Col[n]: white else:Col[n] fi;
else:
draw
- Hachurage((O--if #7=0:arccercle(A[n-1],A[n],O)
- else:arccercle(A[n],A[n-1],O) fi--cycle),p_*(#3/total[N]) if
+ Hachurage((O--if Inverse=false:arccercle(A[n-1],A[n],O)
+ else:arccercle(A[n],A[n-1],O) fi--cycle),p_*(#2/total[N]) if
(n mod 2)=0: +90 else: -90 fi,ecarthachures,if (n mod 2)=0 : 0 else: 1 fi)
- withpen pencircle epaisseurhachures if #4=1: withcolor 0.5white fi;
+ withpen pencircle scaled epaisseurhachures if AffichageAngle: withcolor 0.5white fi;
fi;
- draw A[n-1]--O--A[n] if #6=1: withpen pencircle scaled2 fi;
+ draw A[n-1]--O--A[n] if Hachures: withpen pencircle scaled2 fi;
% Affichage des angles associ\'es
- if #4=1:
- if round(p_*(#3/total[N]))>15:
+ if AffichageAngle:
+ if round(p_*(#2/total[N]))>15:
if (n mod 2)=0:
- marque_a:=20*0.75*#1/cm;
+ marque_a:=20*0.75*Rayon/cm;
else:
- marque_a:=20*0.5*#1/cm;
+ marque_a:=20*0.5*Rayon/cm;
fi;
- if #6=1:
- if #7=0:
+ if Hachures:
+ if Inverse=false:
undraw
- Codeangle(A[n-1],O,A[n],0,(((LATEX("\ang{"&decimal(round(p_*(#3/total[N])))&"}")))));
+ Codeangle(A[n-1],O,A[n],0,(((LATEX("\ang{"&decimal(round(p_*(#2/total[N])))&"}")))));
else:
undraw
- Codeangle(A[n],O,A[n-1],0,(((LATEX("\ang{"&decimal(round(p_*(#3/total[N])))&"}")))));
+ Codeangle(A[n],O,A[n-1],0,(((LATEX("\ang{"&decimal(round(p_*(#2/total[N])))&"}")))));
fi;
fill cercles(w shifted(marque_ang*unitvector(w-O)),3mm) withcolor
blanc;
fi;
- if #7=0:
+ if Inverse=false:
draw
- Codeangle(A[n-1],O,A[n],0,(((LATEX("\ang{"&decimal(round(p_*(#3/total[N])))&"}")))));
+ Codeangle(A[n-1],O,A[n],0,(((LATEX("\ang{"&decimal(round(p_*(#2/total[N])))&"}")))));
else:
draw
- Codeangle(A[n],O,A[n-1],0,(((LATEX("\ang{"&decimal(round(p_*(#3/total[N])))&"}")))));
+ Codeangle(A[n],O,A[n-1],0,(((LATEX("\ang{"&decimal(round(p_*(#2/total[N])))&"}")))));
+ fi;
+ fi;
+ elseif AffichageDonnee:
+ if round(p_*(#2/total[N]))>15:
+ if (n mod 2)=0:
+ marque_a:=20*0.75*Rayon/cm;
+ else:
+ marque_a:=20*0.5*Rayon/cm;
+ fi;
+ if Hachures:
+ if Inverse=false:
+ undraw
+ Codeangle(A[n-1],O,A[n],0,LATEX(""&decimal(p_)&""));
+ else:
+ undraw
+ Codeangle(A[n],O,A[n-1],0,(((LATEX(""&decimal(p_)&"")))));
+ fi;
+ fill cercles(w shifted(marque_ang*unitvector(w-O)),3mm) withcolor
+ blanc;
+ fi;
+ if Inverse=false:
+ draw
+ Codeangle(A[n-1],O,A[n],0,(((LATEX(""&decimal(p_)&"")))));
+ else:
+ draw
+ Codeangle(A[n],O,A[n-1],0,(((LATEX(""&decimal(p_)&"")))));
fi;
fi;
fi;
%
fi;
endfor;
- if #3=360:
- draw cc if #6=1: withpen pencircle scaled2 fi;
+ if #2=360:
+ draw cc if Hachures: withpen pencircle scaled2 fi;
else:
- draw (subpath(0,length cc/2) of cc)--cycle if #6=1: withpen pencircle scaled2 fi;;
+ draw (subpath(0,length cc/2) of cc)--cycle if Hachures: withpen pencircle scaled2 fi;;
fi;
n:=0;
- path cd[];
+ if Legende:
for p_=t:
if string p_:
n:=n+1;
- C[n]=A[n-1] rotatedabout(O,if #7=1:-1* fi(ang[n]-ang[n-1])/2);
+ C[n]=A[n-1] rotatedabout(O,if Inverse:-1* fi(ang[n]-ang[n-1])/2);
draw 0.95[O,C[n]]--1.05[O,C[n]];
C[n]:=1.05[O,C[n]];
+ Test(n);
+ if Retour=false:
if (xpart(C[n])>xpart(O)) and (ypart(C[n])>ypart(O)):
D[n]=C[n]+(0.5cm,0);
draw C[n]--D[n];
@@ -10973,13 +11656,27 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
label.lrt(LATEX(p_),D[n]);
fi;
fi;
+ fi;
endfor;
+ fi;
enddef;
+ vardef Test(expr nb)=
+ Retour:=false;
+ op:=0;
+ for l_=#4:
+ if l_=nb:
+ op:=op+1;
+ fi;
+ endfor;
+ if op>0:
+ Retour:=true;
+ fi;
+ enddef;
Figure(-10u,-10u,10u,10u);
- toto(#2);
+ toto(#1);
\end{mpost}
\fi
-}
+}%
%Pour la m\'ediane.
\DTLgnewdb{mtdb}%
@@ -11154,10 +11851,12 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\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}}.}{.}%
+ \ifboolKV[ClesStat]{ValeurExacte}{}{%
+ \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
@@ -11275,9 +11974,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
}%
% 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}}}%
- {}%
+ \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.}{\BuildtabStat}}{}%
% 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.}{%
@@ -11336,10 +12033,12 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
}%
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}}.}{.}%
+ \ifboolKV[ClesStat]{ValeurExacte}{}{%
+ \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.
@@ -11440,10 +12139,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
}%
}%
% Construction de tableau
- \ifboolKV[ClesStat]{Tableau}{\ifboolKV[ClesStat]{Total}{\buildtabt}{%
- \buildtab%
- }
- }{}%
+ \ifboolKV[ClesStat]{Tableau}{\BuildtabStat}{}%
% Construction du graphique ??
\ifboolKV[ClesStat]{Graphique}{%
\ifboolKV[ClesStat]{Angle}{\buildgraphcq{360}}{\ifboolKV[ClesStat]{SemiAngle}{\buildgraphcq{180}}{\buildgraph[#1]}}
@@ -11964,82 +12660,105 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
%%%
% Proportionnalit\'e
%%%
-\setKVdefault[ClesPropor]{GrandeurA=Grandeur A,GrandeurB=Grandeur B,Largeur=1cm,Math=false,Stretch=1,ColorFill=white,CouleurTab=gray!15}%
+\setKVdefault[ClesPropor]{GrandeurA=Grandeur A,GrandeurB=Grandeur B,Largeur=1cm,Math=false,Stretch=1,ColorFill=white,CouleurTab=gray!15,Vertical=false}%
\def\Updatetoksmath#1/#2\nil{\addtotok\tabtoksa{&#1}\addtotok\tabtoksb{&#2}}%
-
-\def\buildtabpropor{%
- \tabtoksa{}\tabtoksb{}%
- \tabtoksa{\useKV[ClesPropor]{GrandeurA}}\tabtoksb{\useKV[ClesPropor]{GrandeurB}}%
- \ifboolKV[ClesPropor]{Math}{%
- \foreachitem\compteur\in\ListeValeur{\expandafter\Updatetoksmath\compteur\nil}%
- }{\foreachitem\compteur\in\ListeValeur{\expandafter\updatetoks\compteur\nil}%
- }%
- \xdef\LongListe{\ListeValeurlen}%
+\def\updatetokspropor#1/#2\nil{\addtotok\tabtoksa{&\num{#1}}\addtotok\tabtoksb{&\num{#2}}}
+\def\Buildtabpropor{%
+ \setcounter{NbProporG}{0}%
+ \setcounter{NbProporD}{0}%
\renewcommand{\arraystretch}{\useKV[ClesPropor]{Stretch}}%
- \begin{tabular}{|>{\columncolor{\useKV[ClesPropor]{CouleurTab}}}c|*{\number\numexpr\ListeValeurlen}{>{\centering\arraybackslash}p{\useKV[ClesPropor]{Largeur}}|}}%
- \multicolumn{1}{c}{\TikzPHD\setcounter{NbPropor}{1}}\xintFor* ##1 in {\xintSeq {1}{\ListeValeurlen}}\do{&\multicolumn{1}{c}{\TikzPH}}\\%
- \hhline{*{\number\numexpr\ListeValeurlen+1}{-}}%
- \the\tabtoksa\\%
- \hhline{*{\number\numexpr\ListeValeurlen+1}{-}}%
- \the\tabtoksb\\%
- \hhline{*{\number\numexpr\ListeValeurlen+1}{-}}%
- \multicolumn{1}{c}{\TikzPBD\setcounter{NbPropor}{1}}\xintFor* ##1 in {\xintSeq {1}{\ListeValeurlen}}\do{&\multicolumn{1}{c}{\TikzPB}}\\%
- \end{tabular}%
+ \ifboolKV[ClesPropor]{Vertical}{%
+ \begin{tabular}{c|*{2}{>{\centering\arraybackslash}p{\useKV[ClesPropor]{Largeur}}|}c}%
+ \multicolumn{1}{c}{}&\multicolumn{1}{c}{\setcounter{NbPropor}{1}\TikzPH}&\multicolumn{1}{c}{\TikzPH}&\\
+ \hhline{~--~}%
+ &\cellcolor{\useKV[ClesPropor]{CouleurTab}}\useKV[ClesPropor]{GrandeurA}&\cellcolor{\useKV[ClesPropor]{CouleurTab}}\useKV[ClesPropor]{GrandeurB}&\\
+ \hhline{~--~}%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\ListeValeurlen}}}\do{%
+ \stepcounter{NbProporG}\TikzPG&\ifboolKV[ClesPropor]{Math}{\ListeValeur[##1,1]}{\num{\ListeValeur[##1,1]}}&\ifboolKV[ClesPropor]{Math}{\ListeValeur[##1,2]}{\num{\ListeValeur[##1,2]}}&\stepcounter{NbProporD}\TikzPD\\
+ \hhline{~--~}%
+ }%
+ \multicolumn{1}{c}{}&\multicolumn{1}{c}{\setcounter{NbPropor}{1}\TikzPB}&\multicolumn{1}{c}{\TikzPB}&\\
+ \end{tabular}%
+ }{%
+ \tabtoksa{}\tabtoksb{}%
+ \tabtoksa{\cellcolor{\useKV[ClesPropor]{CouleurTab}}\useKV[ClesPropor]{GrandeurA}}\tabtoksb{\cellcolor{\useKV[ClesPropor]{CouleurTab}}\useKV[ClesPropor]{GrandeurB}}%
+ \ifboolKV[ClesPropor]{Math}{%
+ \foreachitem\compteur\in\ListeValeur{\expandafter\Updatetoksmath\compteur\nil}%
+ }{\foreachitem\compteur\in\ListeValeur{\expandafter\updatetokspropor\compteur\nil}%
+ }%
+ \xdef\LongListe{\ListeValeurlen}%
+ \begin{tabular}{rc|*{\number\numexpr\ListeValeurlen}{>{\centering\arraybackslash}p{\useKV[ClesPropor]{Largeur}}|}l}%
+ \multicolumn{1}{c}{}&\multicolumn{1}{c}{}\setcounter{NbPropor}{1}\xintFor* ##1 in {\xintSeq {1}{\ListeValeurlen}}\do{&\multicolumn{1}{c}{\TikzPH}}&\multicolumn{1}{c}{}\\%
+ \hhline{~*{\number\numexpr\ListeValeurlen+1}{-}~}%
+ \multicolumn{1}{c|}{\stepcounter{NbProporG}\TikzPG}&\the\tabtoksa&\multicolumn{1}{c}{\stepcounter{NbProporD}\TikzPD}\\%
+ \hhline{~*{\number\numexpr\ListeValeurlen+1}{-}~}%
+ \multicolumn{1}{c|}{\stepcounter{NbProporG}\TikzPG}&\the\tabtoksb&\multicolumn{1}{c}{\stepcounter{NbProporD}\TikzPD}\\%
+ \hhline{~*{\number\numexpr\ListeValeurlen+1}{-}~}%
+ \multicolumn{1}{c}{\stepcounter{NbProporG}\TikzPG}&\multicolumn{1}{c}{}\setcounter{NbPropor}{1}\xintFor* ##1 in {\xintSeq {1}{\ListeValeurlen}}\do{&\multicolumn{1}{c}{\TikzPB}}&\multicolumn{1}{c}{}\\%
+ \end{tabular}%
+ }%
\renewcommand{\arraystretch}{1}%
}%
-\newcounter{NbPropor}
+\newcounter{NbPropor}%
-\newcommand{\TikzPH}{%
- \tikz[remember picture,overlay]{%
- \coordinate[name=ProporH-\theNbPropor,yshift=-\the\dp\strutbox*\arraystretch];}%
- \stepcounter{NbPropor}%
- }%
+\newcommand\TikzPH{%
+ \tikz[remember picture,overlay]{%
+ \coordinate[name=ProporH-\theNbPropor,yshift=-\getstrut\dp*\arraystretch];}%
+ \stepcounter{NbPropor}%
+}%
- \newcommand{\TikzPHD}{%
- \setbox1=\hbox{\useKV[ClesPropor]{GrandeurA}}%
- \setbox2=\hbox{\useKV[ClesPropor]{GrandeurB}}%
- \xintifboolexpr{\wd1>\wd2}{%
- \tikz[remember picture,overlay]{%
- \coordinate[name=ProporHD,xshift=-0.5\wd1,yshift=-\the\dp\strutbox*\arraystretch];}%
- }{%
- \tikz[remember picture,overlay]{%
- \coordinate[name=ProporHD,xshift=-0.5\wd2,yshift=-\the\dp\strutbox*\arraystretch];}%
- }
- }%
+\newcommand\TikzPB{%
+ \tikz[remember picture, overlay]{%
+ \coordinate[name=ProporB-\theNbPropor,yshift=\getstrut\ht*\arraystretch];}%
+ \stepcounter{NbPropor}%
+}%
- \newcommand{\TikzPB}{%
- \tikz[remember picture, overlay]{%
- \coordinate[name=ProporB-\theNbPropor,yshift=\the\ht\strutbox*\arraystretch];}%
- \stepcounter{NbPropor}%
- }%
+\newcommand\TikzPG{%
+ \tikz[remember picture,overlay]{%
+ \coordinate[name=ProporG-\theNbProporG,xshift=\tabcolsep+\arrayrulewidth,yshift=\getstrut\dp];}%
+}%
+\newcommand\TikzPD{%
+ \tikz[remember picture,overlay]{%
+ \coordinate[name=ProporD-\theNbProporD,xshift=-\tabcolsep-\arrayrulewidth,yshift=\getstrut\dp];}%
+}%
- \newcommand{\TikzPBD}{%
- \setbox1=\hbox{\useKV[ClesPropor]{GrandeurA}}%
- \setbox2=\hbox{\useKV[ClesPropor]{GrandeurB}}%
- \xintifboolexpr{\wd1>\wd2}{%
- \tikz[remember picture, overlay]{%
- \coordinate[name=ProporBD,xshift=-0.5*\the\wd1,yshift=\the\ht\strutbox*\arraystretch];}%
- }{%
- \tikz[remember picture, overlay]{%
- \coordinate[name=ProporBD,xshift=-0.5*\the\wd2,yshift=\the\ht\strutbox*\arraystretch];}%
- }
- \stepcounter{NbPropor}%
- }%
-
- \newcommand\FlechesPH[3]{%
- \ifnum#1<#2\relax%
+\newcommand\TikzPHD{%
+ \setbox1=\hbox{\useKV[ClesPropor]{GrandeurA}}%
+ \setbox2=\hbox{\useKV[ClesPropor]{GrandeurB}}%
+ \xintifboolexpr{\wd1>\wd2}{%
+ \tikz[remember picture,overlay]{%
+ \coordinate[name=ProporHD,xshift=-0.5\wd1,yshift=-\getstrut\dp*\arraystretch];}%
+ }{%
+ \tikz[remember picture,overlay]{%
+ \coordinate[name=ProporHD,xshift=-0.5\wd2,yshift=-\getstrut\dp*\arraystretch];}%
+ }
+}%
+
+\newcommand\TikzPBD{%
+ \setbox1=\hbox{\useKV[ClesPropor]{GrandeurA}}%
+ \setbox2=\hbox{\useKV[ClesPropor]{GrandeurB}}%
+ \xintifboolexpr{\wd1>\wd2}{%
+ \tikz[remember picture, overlay]{%
+ \coordinate[name=ProporBD,xshift=-0.5*\the\wd1,yshift=\getstrut\ht*\arraystretch];}%
+ }{%
+ \tikz[remember picture, overlay]{%
+ \coordinate[name=ProporBD,xshift=-0.5*\the\wd2,yshift=\getstrut\ht*\arraystretch];}%
+ }
+ \stepcounter{NbPropor}%
+}%
+%
+\newcommand\FlechesPH[3]{%
\begin{tikzpicture}[remember picture,overlay]%
+ \ifnum#1<#2\relax%
\draw[-stealth,out=50,in=130] (ProporH-#1) to node[inner sep=0pt, inner xsep=1pt,fill=\colorfill, pos=0.5, sloped]{#3}(ProporH-#2);%
- \end{tikzpicture}%
\else%
-\begin{tikzpicture}[remember picture,overlay]%
\draw[-stealth,out=130,in=50] (ProporH-#1) to node[inner sep=0pt, inner xsep=1pt,fill=\colorfill, pos=0.5, sloped]{#3}(ProporH-#2);%
+ \fi%
\end{tikzpicture}%
- \fi%
}%
-
+%
\newcommand\FlechesPB[3]{%
\ifnum\number#1<\number#2\relax%
\begin{tikzpicture}[remember picture,overlay]%
@@ -12050,18 +12769,63 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\draw[-stealth,out=-130,in=-50] (ProporB-#1) to node[inner sep=0pt, inner xsep=1pt,fill=\colorfill, pos=0.5, sloped]{#3}(ProporB-#2);%
\end{tikzpicture}%
\fi%
-}
+}%
+%
+\newcommand\FlechesPG[3]{%
+ \begin{tikzpicture}[remember picture,overlay]%
+ \ifnum#1<#2\relax%
+ \draw[-stealth,out=-150,in=150] (ProporG-#1) to node[transform canvas={xshift=-1pt},inner sep=0pt, inner xsep=1pt,fill=\colorfill, pos=0.5,left]{#3}(ProporG-#2);%
+ \else%
+ \draw[-stealth,out=150,in=-150] (ProporG-#1) to node[transform canvas={xshift=-1pt},inner sep=0pt, inner xsep=1pt,fill=\colorfill, pos=0.5, left]{#3}(ProporG-#2);%
+ \fi%
+ \end{tikzpicture}%
+}%
+
+\newcommand\FlechesPD[3]{%
+ \begin{tikzpicture}[remember picture,overlay]%
+ \ifnum#1<#2\relax%
+ \draw[-stealth,out=-30,in=30] (ProporD-#1) to node[transform canvas={xshift=1pt},inner sep=0pt, inner xsep=1pt,fill=\colorfill, pos=0.5,right]{#3}(ProporD-#2);%
+ \else%
+ \draw[-stealth,out=30,in=-30] (ProporD-#1) to node[transform canvas={xshift=1pt},inner sep=0pt, inner xsep=1pt,fill=\colorfill, pos=0.5,right]{#3}(ProporD-#2);%
+ \fi%
+ \end{tikzpicture}%
+}%
+
+\newcommand\FlecheLineaireG[4]{%
+ \begin{tikzpicture}[remember picture,overlay,node distance=1em]%
+ \node[inner sep=0pt] (MilieuH) at ($(ProporG-#1)!0.5!(ProporG-#2)$) {};%
+ \node[circle,draw,inner sep=0pt] [left of=MilieuH] (aux) {#4} ;%
+ \coordinate[left of=aux] (aux1);%
+ \draw[-stealth] (ProporG-#1) -| (aux);%
+ \draw[-stealth] (ProporG-#2) -| (aux);%
+ \draw[-stealth] (aux) -- (aux1) |- (ProporG-#3);%
+ \end{tikzpicture}%
+}%
+
+\newcommand\FlecheLineaireD[4]{%
+ \begin{tikzpicture}[remember picture,overlay,node distance=1em]%
+ \node[inner sep=0pt] (MilieuH) at ($(ProporD-#1)!0.5!(ProporD-#2)$) {};%
+ \node[circle,draw,inner sep=0pt] [right of=MilieuH] (aux) {#4} ;%
+ \coordinate[right of=aux] (aux1);%
+ \draw[-stealth] (ProporD-#1) -| (aux);%
+ \draw[-stealth] (ProporD-#2) -| (aux);%
+ \draw[-stealth] (aux) -- (aux1) |- (ProporD-#3);%
+ \end{tikzpicture}%
+}%
+
+\newcounter{NbProporG}%
+\newcounter{NbProporD}%
\newcommand\Propor[2][]{%
\useKVdefault[ClesPropor]%
\setKV[ClesPropor]{#1}%
\xdef\colorfill{\useKV[ClesPropor]{ColorFill}}%
\xdef\EcartLargeur{\useKV[ClesPropor]{Largeur}}%
-% %on lit la liste \'ecrite sous la forme valeur/effectif
+ % % on lit la liste \'ecrite sous la forme valeur/effectif
\setsepchar[*]{,*/}\ignoreemptyitems%
\readlist*\ListeValeur{#2}%
- \buildtabpropor%
-}
+ \Buildtabpropor%
+}%
\newcommand\FlecheCoef[2][\EcartLargeur]{%
\begin{tikzpicture}[remember picture, overlay]%
@@ -12070,7 +12834,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\coordinate[right of=Point1,node distance=0.5*#1+\tabcolsep] (point1);%
\coordinate[right of=Point2,node distance=0.5*#1+\tabcolsep] (point2);%
\draw[-stealth,out=-20,in=20] (point1) to node[midway,right,inner sep=1pt]{#2}(point2);%
-\end{tikzpicture}%
+ \end{tikzpicture}%
}%
\newcommand\FlecheCoefDebut[2][\tabcolsep+\arrayrulewidth]{%
@@ -12080,7 +12844,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\coordinate[left of=Noeud1,node distance=#1] (noeud1);%
\coordinate[left of=Noeud2,node distance=#1] (noeud2);%
\draw[-stealth,out=160,in=-160] (noeud2) to node[midway,left,inner sep=1pt]{#2}(noeud1);%
-\end{tikzpicture}%
+ \end{tikzpicture}%
}%
\newcommand\FlecheCoefInv[2][1cm]{%
@@ -12090,30 +12854,30 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\coordinate[right of=Point1,node distance=0.5*#1+\tabcolsep] (point1);%
\coordinate[right of=Point2,node distance=0.5*#1+\tabcolsep] (point2);%
\draw[-stealth,out=20,in=-20] (point2) to node[midway,right,inner sep=1pt]{#2}(point1);%
-\end{tikzpicture}%
+ \end{tikzpicture}%
}%
\newcommand\FlecheLineaireH[4]{%
- \begin{tikzpicture}[remember picture,overlay,node distance=\ht\strutbox]
- \node[inner sep=0pt] (MilieuH) at ($(ProporH-#1)!0.5!(ProporH-#2)$) {};
- \node[circle,draw,inner sep=0pt] [above of=MilieuH] (aux) {#4} ;
- \coordinate[above of=aux] (aux1);
- \draw[-stealth] (ProporH-#1) |- (aux);
- \draw[-stealth] (ProporH-#2) |- (aux);
- \draw[-stealth] (aux) -- (aux1) -| (ProporH-#3);
-\end{tikzpicture}
-}
+ \begin{tikzpicture}[remember picture,overlay,node distance=\getstrut\ht]%
+ \node[inner sep=0pt] (MilieuH) at ($(ProporH-#1)!0.5!(ProporH-#2)$) {};%
+ \node[circle,draw,inner sep=0pt] [above of=MilieuH] (aux) {#4} ;%
+ \coordinate[above of=aux] (aux1);%
+ \draw[-stealth] (ProporH-#1) |- (aux);%
+ \draw[-stealth] (ProporH-#2) |- (aux);%
+ \draw[-stealth] (aux) -- (aux1) -| (ProporH-#3);%
+ \end{tikzpicture}%
+}%
\newcommand\FlecheLineaireB[4]{%
- \begin{tikzpicture}[remember picture,overlay,node distance=3mm]
- \node[inner sep=0pt] (MilieuB) at ($(ProporB-#1)!0.5!(ProporB-#2)$) {};
- \node[circle,draw,inner sep=0pt] [below of=MilieuB] (aux) {#4} ;
- \coordinate[below of=aux,node distance=3mm] (aux1);
- \draw[-stealth] (ProporB-#1) |- (aux);
- \draw[-stealth] (ProporB-#2) |- (aux);
- \draw[-stealth] (aux) -- (aux1) -| (ProporB-#3);
-\end{tikzpicture}
-}
+ \begin{tikzpicture}[remember picture,overlay,node distance=3mm]%
+ \node[inner sep=0pt] (MilieuB) at ($(ProporB-#1)!0.5!(ProporB-#2)$) {};%
+ \node[circle,draw,inner sep=0pt] [below of=MilieuB] (aux) {#4};%
+ \coordinate[below of=aux,node distance=3mm] (aux1);%
+ \draw[-stealth] (ProporB-#1) |- (aux);%
+ \draw[-stealth] (ProporB-#2) |- (aux);%
+ \draw[-stealth] (aux) -- (aux1) -| (ProporB-#3);%
+ \end{tikzpicture}%
+}%
%%%
% Application : pourcentage
@@ -12496,13 +13260,13 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\newcommand{\TikzRH}{%
\tikz[remember picture,overlay]{%
- \coordinate[name=ProporH-\theNbPropor,yshift=\the\ht\strutbox*\arraystretch];}%
+ \coordinate[name=ProporH-\theNbPropor,yshift=\getstrut\ht*\arraystretch];}%
\stepcounter{NbPropor}%
}%
\newcommand{\TikzRB}{%
\tikz[remember picture, overlay]{%
- \coordinate[name=ProporB-\theNbPropor,yshift=-\the\dp\strutbox*\arraystretch];}%
+ \coordinate[name=ProporB-\theNbPropor,yshift=-\getstrut\dp*\arraystretch];}%
\stepcounter{NbPropor}%
}%
@@ -17449,7 +18213,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
%%%
% Ecritures d'unit\'es
%%%
-\setKVdefault[Unites]{m=false,km=false,hm=false,ha=false,dam=false,a=false,dm=false,cm=true,mm=false,um=false,nm=false,g=true,t=false,q=false,kg=false,hg=false,dag=false,dg=false,cg=false,mg=false,ug=false,ng=false,kmh=true,kms=false,ms=false,mh=false,kgm=false,gcm=true,L=true,kL=false,hL=false,daL=false,dL=false,cL=false,mL=false,l=true,kl=false,hl=false,dal=false,dl=false,cl=false,ml=false,Go=true,Mo=false,ko=false,To=false,o=false,kWh=true,C=true,K=false,F=false}
+\setKVdefault[Unites]{m=false,km=false,hm=false,ha=false,dam=false,a=false,dm=false,cm=true,mm=false,um=false,nm=false,g=true,t=false,q=false,kg=false,hg=false,dag=false,dg=false,cg=false,mg=false,ug=false,ng=false,mmin=false,kmh=true,kms=false,ms=false,mh=false,kgm=false,gcm=true,L=true,kL=false,hL=false,daL=false,dL=false,cL=false,mL=false,l=true,kl=false,hl=false,dal=false,dl=false,cl=false,ml=false,Go=true,Mo=false,ko=false,To=false,o=false,kWh=true,C=true,K=false,F=false}
%D'apres https://tex.stackexchange.com/questions/38905/time-of-the-day-or-time-period-using-the-package-siunitx
\ExplSyntaxOn
@@ -17698,16 +18462,20 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\newcommand\Vitesse[2][]{%
\useKVdefault[Unites]%
\setKV[Unites]{#1}%
- \ifboolKV[Unites]{mh}{%
- \SI[per-mode=symbol]{#2}{\meter\per\hour}%
+ \ifboolKV[Unites]{mmin}{%
+ \SI[per-mode=symbol]{#2}{\meter\per\minute}%
}{%
- \ifboolKV[Unites]{ms}{%
- \SI[per-mode=symbol]{#2}{\meter\per\second}%
+ \ifboolKV[Unites]{mh}{%
+ \SI[per-mode=symbol]{#2}{\meter\per\hour}%
}{%
- \ifboolKV[Unites]{kms}{%
- \SI[per-mode=symbol]{#2}{\kilo\meter\per\second}%
+ \ifboolKV[Unites]{ms}{%
+ \SI[per-mode=symbol]{#2}{\meter\per\second}%
}{%
- \SI[per-mode=symbol]{#2}{\kilo\meter\per\hour}%
+ \ifboolKV[Unites]{kms}{%
+ \SI[per-mode=symbol]{#2}{\kilo\meter\per\second}%
+ }{%
+ \SI[per-mode=symbol]{#2}{\kilo\meter\per\hour}%
+ }%
}%
}%
}%
@@ -17729,6 +18497,8 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false}
\newcommand\PfCTBstrut{\rule[-1.2ex]{0pt}{3.8ex}} % Top and Bottom strut
+\newcommand\PfCTstrut{\rule{0pt}{3.8ex}} % Top strut
+\newcommand\PfCBstrut{\rule[-1.2ex]{0pt}{0ex}} % Bottom strut
\newcommand\Tableau[2][]{%
\useKVdefault[ClesTableaux]%
@@ -17931,11 +18701,13 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
&\Block[borders={right}]{}{\fontsize{5}{5}\selectfont $\times\num{10}^{-2}$}%
&\Block[borders={right}]{}{\fontsize{5}{5}\selectfont $\times\num{10}^{-3}$}%
\ifboolKV[ClesTableaux]{Micro}{&%
- \Block[borders={right}]{}{}&%
- &\Block[borders={right}]{}{\fontsize{5}{5}\selectfont $\times\num{10}^{-6}$}}{%
+ \Block[borders={right}]{}{}&%
+ \Block[borders={right}]{}{}&
+ \Block[borders={right}]{}{\fontsize{5}{5}\selectfont $\times\num{10}^{-6}$}}{%
\ifboolKV[ClesTableaux]{Nano}{&%
+ \Block[borders={right}]{}{}&%
\Block[borders={right}]{}{}&%
- &\Block[borders={right}]{}{\fontsize{5}{5}\selectfont $\times\num{10}^{-6}$}%
+ \Block[borders={right}]{}{\fontsize{5}{5}\selectfont $\times\num{10}^{-6}$}%
&\Block[borders={right}]{}{}%
&\Block[borders={right}]{}{}%
&\Block[borders={right}]{}{\fontsize{5}{5}\selectfont $\times\num{10}^{-9}$}}{}%
@@ -19460,7 +20232,7 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\StrSubstitute{\tempa}{**}{^}[\tempab]%
\StrSubstitute{\tempab}{*}{\times}[\tempac]%
\StrSubstitute{\tempac}{/}{\div}[\tempad]%
- $\ifboolKV[ClesProg]{Details}{\num{\NbDepart}\tempad=}{}\xdef\NbDepart{\fpeval{(\NbDepart)\ListeProg[2,\etapecnt]}}\num{\NbDepart}$%
+ $\ifboolKV[ClesProg]{Details}{\xintifboolexpr{\NbDepart<0}{(\num{\NbDepart})}{\num{\NbDepart}}\tempad=}{}\xdef\NbDepart{\fpeval{(\NbDepart)\ListeProg[2,\etapecnt]}}\num{\NbDepart}$%
}%
\end{enumerate}
}
@@ -19951,10 +20723,10 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
\def\barre{\vrule height2.1ex depth.9ex width0pt}%
\def\demibarre{\vrule height1.4ex depth.6ex width0pt}%
-\setKVdefault[Scratch]{Impression=false,Numerotation=false,Echelle=1}
+\setKVdefault[Scratch]{Impression=false,Numerotation=false,Echelle=1}%
\ifluatex
-\NewEnviron{Scratch}[1][]{%
+\NewDocumentEnvironment{Scratch}{o +b}{%
\useKVdefault[Scratch]%
\setKV[Scratch]{#1}%
\mplibforcehmode%
@@ -19963,22 +20735,22 @@ Unite={},Largeur=1cm,Precision=2,Donnee=Valeurs,Effectif=Effectif,Grille=false,O
input PfCScratch;%
print:=\useKV[Scratch]{Impression};%
NumeroteLignes:=\useKV[Scratch]{Numerotation};%
- \BODY
+ #2%
picture recap;%
recap:=currentpicture scaled \useKV[Scratch]{Echelle};%
- currentpicture:=nullpicture;
- draw recap;
- \end{mplibcode}
-}%
-\else
-\NewEnviron{Scratch}[1][]{%
+ currentpicture:=nullpicture;%
+ draw recap;%
+ \end{mplibcode}%
+ }{}
+\else%
+\NewDocumentEnvironment{Scratch}{o +b}{%
\setKV[Scratch]{#1}%
\begin{mpost}[mpsettings={input PfCScratchpdf;print:=\useKV[Scratch]{Impression};NumeroteLignes:=\useKV[Scratch]{Numerotation};Echelle:=\useKV[Scratch]{Echelle};}]%
- \BODY
+ #2%
picture recap;%
recap:=currentpicture scaled Echelle;%
- currentpicture:=nullpicture;
- draw recap;
+ currentpicture:=nullpicture;%
+ draw recap;%
\end{mpost}
-}%
-\fi \ No newline at end of file
+}{}%
+\fi% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp b/macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp
new file mode 100644
index 0000000000..0140e24b4d
--- /dev/null
+++ b/macros/latex/contrib/profcollege/metapost/PfC-Calculatriceold.mp
@@ -0,0 +1,195 @@
+prologues:=3;
+
+path carre[];
+
+u:=0.5mm;
+
+vardef BlocAffichage=
+ for k=0 upto 34:
+ carre[k]:=(unitsquare scaled u) shifted(u*(k mod 5,5-(k div 5)));
+ endfor;
+enddef;
+
+vardef Affichage(expr decomp)=
+ save $;
+ picture $;
+ drawoptions(withpen pensquare scaled0.1);
+ $=image(%
+ for k=0 upto 34:
+ if (substring(k,k+1) of decomp)="1":
+ fill carre[k];
+ fi;
+ endfor;
+ );
+ drawoptions();
+ $
+enddef;
+
+nblignes:=0;
+
+boolean print;
+print:=false;
+
+color CouleurEcran;
+CouleurEcran=(107/255,148/255,107/255);
+
+boolean Math;
+Math=true;
+
+decahoriz:=0;
+
+vardef Test(expr cptk,cptnt)=
+ pair decalage;
+ if nblignes mod 2=0:
+ decalage:=u*((20-length(cptnt)+cptk)*6,-8*(nblignes-1));
+ else:
+ decalage:=u*(decahoriz,-8*(nblignes-1));
+ decahoriz:=decahoriz+6;
+ fi;
+ if substring(cptk,cptk+1) of cptnt="A":draw Affichage("01110100011000110001111111000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="B":draw Affichage("11110100011000111110100011000111110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="C":draw Affichage("01110100011000010000100001000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="D":draw Affichage("11100100101000110001100011001011100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="E":draw Affichage("11111100001000011111100001000011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="F":draw Affichage("11111100001000011111100001000010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="G":draw Affichage("01110100011000010111100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="H":draw Affichage("10001100011000111111100011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="I":draw Affichage("01110001000010000100001000010001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="J":draw Affichage("00111000100001000010000101001001100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="K":draw Affichage("10001100101010011000101001001010001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="L":draw Affichage("10000100001000010000100001000011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="M":draw Affichage("10001110111010110101100011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="N":draw Affichage("10001100011100110101100111000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="O":draw Affichage("01110100011000110001100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="P":draw Affichage("11110100011000111110100001000010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="Q":draw Affichage("01110100011000110001101011001001101") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="R":draw Affichage("11110100011000111110101001001010001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="S":draw Affichage("01111100001000001110000010000111110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="T":draw Affichage("11111001000010000100001000010000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="U":draw Affichage("10001100011000110001100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="V":draw Affichage("10001100011000110001100010101000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="W":draw Affichage("10101101011010110101101011010101010") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="X":draw Affichage("10001100010101000100010101000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="Y":draw Affichage("10001100011000101010001000010000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="Z":draw Affichage("11111000010001000100010001000011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="a":draw Affichage("00000000000111100001011111000101111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="b":draw Affichage("10000100001011011001100011000111110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="c":draw Affichage("00000000000111010000100001000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="d":draw Affichage("00001000010110110011100011000101111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="e":if Math:
+ draw Affichage("00000000000000000001101000100010100") shifted(decalage);
+ decalage:=u*(decahoriz-1,-8*(nblignes-1));
+ draw Affichage("00000000001001010101101011010110010") shifted(decalage);
+ decahoriz:=decahoriz+6;
+ else:
+ draw Affichage("00000000000111010001111111000001110") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="@":draw Affichage("00010001000111010001111111000001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="f":draw Affichage("00110010010100011100010000100001000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="g":draw Affichage("00000011111000110001011110000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="h":draw Affichage("10000100001011011001100011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="i":draw Affichage("00100000000110000100001000010001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="j":if Math=true:
+ draw Affichage("00011000011110100001000000000000000") shifted(decalage);
+ else:
+ draw Affichage("00010000000011000010000101001001100") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="k":if Math=true:
+ draw Affichage("11100001000100011100000000000000000") shifted(decalage);
+ else:
+ draw Affichage("10000100001001010100110001010010010") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="l":if Math=true:
+ draw Affichage("11100010000010011100000000000000000") shifted(decalage);
+ else:
+ draw Affichage("01100001000010000100001000010001110") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="m":draw Affichage("00000000001101010101101011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="n":draw Affichage("00000000001011011001100011000110001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="o":draw Affichage("00000000000111010001100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="p":draw Affichage("00000000001111010001111101000010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="q":if Math=true:
+ draw Affichage("00000000001111101010010100101010001") shifted(decalage);
+ else:
+ draw Affichage("00000000000110110011011110000100001") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="r":draw Affichage("00000000001011011001100001000010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="s":draw Affichage("00000000000111010000011100000111110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="t":draw Affichage("01000010001110001000010000100100110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="u":draw Affichage("00000000001000110001100011001101101") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="v":if Math=true:
+ draw Affichage("00111001000010000100101000110000100") shifted(decalage);
+ else:
+ draw Affichage("00000000001000110001100010111000100") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="w":draw Affichage("00000000001010110101101011010101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="x":draw Affichage("00000000001000101010001000101010001") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="y":draw Affichage("00000000001000110001011110000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="z":draw Affichage("00000000001111100010001000100011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="0":draw Affichage("01110100011001110101110011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="1":draw Affichage("00100011000010000100001000010001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="2":draw Affichage("01110100010000100010001000100011111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="3":draw Affichage("11111000100010000010000011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="4":draw Affichage("00010001100101010010111110001000010") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="5":draw Affichage("11111100001111000001000011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="6":draw Affichage("00110010001000011110100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="7":draw Affichage("11111000010001000100010000100001000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="8":draw Affichage("01110100011000101110100011000101110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="9":draw Affichage("01110100011000101111000010001001100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="!":draw Affichage("00100001000010000100000000000000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="'":draw Affichage("01100001000100000000000000000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="(":draw Affichage("00010001000100001000010000010000010") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=")":draw Affichage("01000001000001000010000100010001000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="*":draw Affichage("00000001001010101110101010010000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="+":draw Affichage("00000001000010011111001000010000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=",":draw Affichage("00000000000000000000011000010001000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="-":draw Affichage("00000000000000011111000000000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=".":draw Affichage("00000000000000000000000000110001100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="/":draw Affichage("00000000010001000100010001000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=":":if Math=true:
+ draw Affichage("00000000000000000000000000000000000") shifted(decalage);
+ else:
+ draw Affichage("00000011000110000000011000110000000") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt=";":if Math=true:
+ draw Affichage("00000001000000011111000000010000000") shifted(decalage);
+ else:
+ draw Affichage("00000011000110000000011000010001000") shifted(decalage);
+ fi;
+ elseif substring(cptk,cptk+1) of cptnt="<":draw Affichage("00010001000100010000010000010000010") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="=":draw Affichage("00000000001111100000111110000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=">":draw Affichage("10000010000010000010001000100010000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="?":draw Affichage("01110100010000100010001000000000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="[":draw Affichage("01110010000100001000010000100001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="]":draw Affichage("01110000100001000010000100001001110") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="`":draw Affichage("01000001000001000000000000000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="|":draw Affichage("00100001000010000100001000010000100") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt=" ":draw Affichage("00000100010101000100010101000100000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="&":draw Affichage("00000100001100011100110001000000000") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="$":draw Affichage("00000000000000100001000010000111111") shifted(decalage);
+ elseif substring(cptk,cptk+1) of cptnt="^":draw Affichage("00100010101000100000000000000000000") shifted(decalage);
+ fi;
+enddef;
+
+vardef LCD(text nt)(text rep)=
+ decahoriz:=0;
+ nblignes:=nblignes+1;
+ path Ecran;
+ Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
+ fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ for k=0 upto length(nt)-1:
+ BlocAffichage;
+ Test(k,nt);
+ endfor;
+ nblignes:=nblignes+1;
+ Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
+ fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ for k=0 upto length(rep)-1:
+ BlocAffichage;
+ Test(k,rep);
+ endfor;
+enddef;
+
+endinput;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
index 604373e716..3386a78680 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
@@ -574,7 +574,7 @@ vardef demidroite(expr AA,BB)=
save Dem;
path Dem;
if typetrace="mainlevee":
- Dem=segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)}
+ Dem=segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]
elseif typetrace="3D":
Dem=Projette(AA)--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)]
else:
@@ -667,6 +667,30 @@ vardef chemin(text t)=
$
enddef;
+vardef Triangleqcq(text t)=
+ save PfCTqc;
+ pair pointchoisi[];
+ pointchoisi1:=iso(coinbg,1/4[coinbg,coinbd],iso(coinbg,iso(coinhg,coinhd)),iso(coinhg,coinbg));
+ pointchoisi2:=iso(coinbd,3/4[coinbg,coinbd],iso(coinbd,iso(coinhg,coinhd)),iso(coinhd,coinbd));
+ test:=uniformdeviate(1);
+ choix:=43+uniformdeviate(4);
+ ecart:=abs(45-choix);
+ relation:=60-(ecart/2)+uniformdeviate(ecart);
+ if test<0.5 :
+ pointchoisi3:=droite(pointchoisi1,rotation(pointchoisi2,pointchoisi1,choix)) intersectionpoint droite(pointchoisi2,rotation(pointchoisi1,pointchoisi2,-relation));
+ else :
+ pointchoisi3:=droite(pointchoisi2,rotation(pointchoisi1,pointchoisi2,-choix)) intersectionpoint droite(pointchoisi1,rotation(pointchoisi2,pointchoisi1,relation));
+ fi
+ j:=1;
+ for p_=t:
+ p_=pointchoisi[j];
+ j:=j+1;
+ endfor;
+ path PfCTqc;
+ PfCTqc=polygone(pointchoisi1,pointchoisi2,pointchoisi3);
+ PfCTqc
+enddef;
+
%------------------------------------------------
%Sucres
%------------------------------------------------
@@ -674,7 +698,7 @@ vardef hachurage(expr chemin, angle, ecart, trace)=
save $;
picture $;
path support;
- support=((u*(-37,0))--(u*(37,0))) rotated angle;
+ support=((u*(-50,0))--(u*(50,0))) rotated angle;
if trace=1:
drawoptions(dashed evenly);
elseif trace=2:
@@ -693,6 +717,33 @@ vardef hachurage(expr chemin, angle, ecart, trace)=
drawoptions();
$
enddef;
+
+vardef Hachurage(expr Chemin, Angle, Ecart, Trace)=
+ %Avec écart constant quel que soit l'angle d'inclinaison.
+ save $;
+ picture $;
+ if Trace=0:
+ drawoptions();
+ elseif Trace=1:
+ drawoptions(dashed evenly);
+ elseif Trace=2:
+ drawoptions(dashed dashpattern(on12bp off6bp on3bp off6bp));
+ elseif Trace=3:
+ drawoptions(dashed withdots);
+ fi;
+ path support;
+ support=(u*(-50,0)--u*(50,0)) rotated Angle;
+ $ = image(
+ for j=-200 upto 200:
+ if (support shifted (Ecart*j*u*(cosd(90-Angle),-sind(90-Angle)))) intersectiontimes Chemin<>(-1,-1):
+ draw support shifted (Ecart*j*u*(cosd(90-Angle),-sind(90-Angle)));%));%(cosd(Angle),sind(Angle)));
+ fi
+ endfor;
+ );
+ clip $ to Chemin;
+ drawoptions();
+ $
+enddef;
%fleche pour coter un segment [AB] (Jacques Marot)
vardef cotation(expr aa,bb,ecart,decalage,cote)=
pair m[] ;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp b/macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
index 33d9848b63..abfe21bc10 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCLaTeX.mp
@@ -8,6 +8,7 @@ vardef LATEX primary s =
write "\usepackage{fourier}" to "mptextmp.mp";
write "\usepackage[french]{babel}" to "mptextmp.mp";
write "\begin{document}" to "mptextmp.mp";
+ write "\UseRawInputEncoding" to "mptextmp.mp";
write "etex" to "mptextmp.mp";
write "btex "&s&" etex" to "mptextmp.mp";
write EOF to "mptextmp.mp";
diff --git a/macros/latex/contrib/profcollege/metapost/PfCMonde.mp b/macros/latex/contrib/profcollege/metapost/PfCMonde.mp
index 10906952da..c69de29ac0 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCMonde.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCMonde.mp
@@ -47,6 +47,16 @@ def MarquePoint(expr p)=
fill fullcircle scaled (marque_r/5) shifted (p) withcolor white;
draw fullcircle scaled (marque_r/5) shifted (p);
fi;
+ elseif marque_p = "croix":
+ drawoptions(withpen pencircle scaled 1.25);
+ if color p:
+ draw (Projgeo(p) shifted (-marque_r/20,marque_r/20))--(Projgeo(p) shifted (marque_r/20,-marque_r/20));
+ draw (Projgeo(p) shifted (-marque_r/20,-marque_r/20))--(Projgeo(p) shifted (marque_r/20,marque_r/20));
+ else:
+ draw ((p) shifted (-marque_r/20,marque_r/20))--((p) shifted (marque_r/20,-marque_r/20));
+ draw ((p) shifted (-marque_r/20,-marque_r/20))--((p) shifted (marque_r/20,marque_r/20));
+ fi;
+ drawoptions();
fi;
enddef;
@@ -113,12 +123,18 @@ vardef arcsind(expr x)=%en degré ici :)
angle((sqrt(1-x**2),x))
enddef;
+vardef arccosd(expr x)=%en degré ici :)
+ angle((x,sqrt(1-x**2)))
+enddef;
+
vardef tand(expr x)=sind(x)/cosd(x)%
enddef;
vardef cotand(expr x)=cosd(x)/sind(x)%
enddef;
+vardef sinc(expr x)=if abs(x)<0.001:1 else:sind(x)*c/x fi enddef;
+
vardef ln(expr t)=mlog(t)/256%
enddef;
@@ -188,25 +204,10 @@ vardef MaillageS=
for l=Vdebut step pasV until (Vfin):
Maillage[100*k+l]=Projgeo((FX(k,l),FY(k,l),FZ(k,l)))--Projgeo((FX(k,l+pasV),FY(k,l+pasV),FZ(k,l+pasV)))--Projgeo((FX(k+pasU,l+pasV),FY(k+pasU,l+pasV),FZ(k+pasU,l+pasV)))--Projgeo((FX(k+pasU,l),FY(k+pasU,l),FZ(k+pasU,l)))--cycle;
if ProduitScalaire(1/2[(FX(k,l),FY(k,l),FZ(k,l)),(FX(k+pasU,l+pasV),FY(k+pasU,l+pasV),FZ(k+pasU,l+pasV))]-pte3,Oeil-pte3)>0:
- %total:=total+1;
- %if total=1:
- % Vmin:=l;
- %fi;
draw Maillage[100*k+l];
fi;
endfor;
endfor;
- %drawoptions();
- %for k=(Udebut+pasU) step pasU until (Ufin-pasU):
- % if abs(round(k*c))<100:
- % label.urt(TEX(""&decimal(round(k*c))&""),Projgeo(rayon*(cosd(round(k*c))*cosd(Theta),cosd(round(k*c))*sind(Theta),sind(round(k*c)))))
- % fi;
- %endfor;
- %Vmax:=0;
- %Vmax:=Vmin+2*((Theta/c)-Vmin);
- %label.top(TEX(""&decimal(round(Vmin*c))&"") rotated angle(Projgeo(rayon*(cosd(phim+10)*cosd(round(Vmin*c)),cosd(phim+10)*sind(round(Vmin*c)),sind(phim+10)))-Projgeo(rayon*(cosd(phim)*cosd(round(Vmin*c)),cosd(phim)*sind(round(Vmin*c)),sind(phim)))),Projgeo(rayon*(cosd(phim)*cosd(round(Vmin*c)),cosd(phim)*sind(round(Vmin*c)),sind(phim))));
- %label.top(TEX(""&decimal(round(Theta))&"") rotated angle(Projgeo(rayon*(cosd(phim+10)*cosd(round(Theta)),cosd(phim+10)*sind(round(Theta)),sind(phim+10)))-Projgeo(rayon*(cosd(phim)*cosd(round(Theta)),cosd(phim)*sind(round(Theta)),sind(phim)))),Projgeo(rayon*(cosd(phim)*cosd(round(Theta)),cosd(phim)*sind(round(Theta)),sind(phim))));
- %label.top(TEX(""&decimal(round(Vmax*c))&"") rotated angle(Projgeo(rayon*(cosd(phim+10)*cosd(round(Vmax*c)),cosd(phim+10)*sind(round(Vmax*c)),sind(phim+10)))-Projgeo(rayon*(cosd(phim)*cosd(round(Vmax*c)),cosd(phim)*sind(round(Vmax*c)),sind(phim)))),Projgeo(rayon*(cosd(phim)*cosd(round(Vmax*c)),cosd(phim)*sind(round(Vmax*c)),sind(phim))));
enddef;
vardef InitialiseMaillage(expr ud,uf,up,vd,vf,vp)=
@@ -569,6 +570,9 @@ vardef zoom(expr nbzoom)=
elseif projection="cylindrique":
xunit:=2.5*nbzoom;
yunit:=nbzoom*10*cm;
+ elseif projection="winkel":
+ xunit:=nbzoom*0.5*mm;
+ yunit:=nbzoom;
elseif projection="simple":
xunit:=nbzoom*0.5*mm;
yunit:=nbzoom*0.5*mm;
@@ -600,12 +604,26 @@ vardef bonnec(expr aaa,bbb)=
save tt;
pair tt;
rho:=cotand(phi)+(phi-aaa)/c;
- %E:=(((bbb-theta)/c)*cosd(aaa))/rho;
E:=(((bbb-theta)/c)/rho)*cosd(aaa);
tt=xunit*(rho*sind(E*c),cotand(phi)-rho*cosd(E*c));
tt
enddef;
+vardef winkelc(expr aaa,bbb)=
+ save ttw;
+ pair ttw;
+ alphawinkel:=arccosd(cosd(aaa)*cosd(0.5*bbb));
+ if alphawinkel=0:
+ xwinkel:=0;
+ ywinkel:=0;
+ else:
+ xwinkel:=xunit*0.5*(bbb*cosd(arccosd(2/pi))+(2*cosd(aaa)*sind(0.5*bbb)/sinc(alphawinkel)));
+ ywinkel:=yunit*0.5*(aaa+sind(aaa)/sinc(alphawinkel));
+ fi;
+ ttw=(xwinkel,ywinkel);
+ ttw
+enddef;
+
vardef lecturep(expr nomfichier,fond)=
pair Coord[];
nbpts:=scantokens readfrom nomfichier;
@@ -616,6 +634,8 @@ vardef lecturep(expr nomfichier,fond)=
latlon=scantokens readfrom nomfichier;
if projection="mercator":
Coord[k]=mercatorc(xpart(latlon/60),ypart(latlon/60))
+ elseif projection="winkel":
+ Coord[k]=winkelc(xpart(latlon/60),ypart(latlon/60))
elseif projection="cylindrique":
Coord[k]=cylindriquec(xpart(latlon/60),ypart(latlon/60));
elseif projection="simple":
@@ -636,12 +656,12 @@ vardef lecturep(expr nomfichier,fond)=
endfor;
closefrom nomfichier;
path pays;
- if (projection="mercator") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
+ if (projection="mercator") or (projection="winkel") or(projection="cylindrique") or (projection="simple") or (projection="bonne"):
ll:=nbpts
fi;
if ll>0:
pays=Coord[1]
- for l=2 upto ll:
+ for l=4 step 3 until ll:%upto ll:
--Coord[l]
endfor;
if noncolore=true:
@@ -651,11 +671,10 @@ vardef lecturep(expr nomfichier,fond)=
fi;
draw pays;
fi;
- %label.top(decimal(nbpts),(0,0));
enddef;
vardef Lectureilesp=
- if (projection="mercator") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
+ if (projection="mercator") or (projection="winkel") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
nomfichiermul:=arborescence&"Ile.dat";
else:
nomfichiermul:=arborescence&"iles.dat";
@@ -674,7 +693,9 @@ vardef Lectureilesp=
pair latlon;
latlon=scantokens readfrom nomfichiermul;
if projection="mercator":
- Coord[k]=mercatorc(xpart(latlon/60),ypart(latlon/60))
+ Coord[k]=mercatorc(xpart(latlon/60),ypart(latlon/60));
+ elseif projection="winkel":
+ Coord[k]=winkelc(xpart(latlon/60),ypart(latlon/60));
elseif projection="simple":
Coord[k]=simplec(xpart(latlon/60),ypart(latlon/60));
elseif projection="cylindrique":
@@ -694,7 +715,7 @@ vardef Lectureilesp=
fi;
endfor;
path pays;
- if (projection="mercator") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
+ if (projection="mercator") or (projection="winkel") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
ll:=nbpts
fi;
if ll>0:
@@ -711,7 +732,7 @@ vardef Lectureilesp=
fi;
endfor;
closefrom nomfichiermul;
- if (projection="mercator") or (projection="cylindrique") or (projection="simple"):
+ if (projection="mercator") or (projection="winkel") or (projection="cylindrique") or (projection="simple"):
clip currentpicture to feuillet;
fi;
if projection="bonne":
@@ -735,6 +756,8 @@ vardef Lecturevillesp(expr nompays)=
p_=scantokens readfrom nomfichiermul;
if projection="mercator":
Coord[p]=mercatorc(ypart(latlon),xpart(latlon));
+ elseif projection="winkel":
+ Coord[p]=winkelcc(ypart(latlon),xpart(latlon));
elseif projection="simple":
Coord[p]=simplec(ypart(latlon),xpart(latlon));
elseif projection="cylindrique":
@@ -742,7 +765,7 @@ vardef Lecturevillesp(expr nompays)=
elseif projection="bonne":
Coord[p]=bonnec(ypart(latlon),xpart(latlon));
fi;
- if (projection="mercator") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
+ if (projection="mercator") or (projection="winkel") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
if ecriturevilles=true:
dotlabel.scantokens readfrom nomfichiermul(TEX(""&p_&""),Coord[p]);
else:
@@ -797,6 +820,8 @@ vardef Lecturelacsp=
latlon=scantokens readfrom nomfichiermul;
if projection="mercator":
Coord[k]=mercatorc(xpart(latlon/60),ypart(latlon/60));
+ elseif projection="winkel":
+ Coord[k]=winkelc(xpart(latlon/60),ypart(latlon/60));
elseif projection="simple":
Coord[k]=simplec(xpart(latlon/60),ypart(latlon/60));
elseif projection="cylindrique":
@@ -816,7 +841,7 @@ vardef Lecturelacsp=
fi;
endfor;
path lac;
- if (projection="mercator") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
+ if (projection="mercator") or (projection="winkelc") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
ll:=nbpts
fi;
if ll>0:
@@ -844,6 +869,8 @@ vardef Lecturelacspsup=
latlon=scantokens readfrom nomfichiermul;
if projection="mercator":
Coord[k]=mercatorc(xpart(latlon),ypart(latlon));
+ elseif projection="winkel":
+ Coord[k]=winkelc(xpart(latlon),ypart(latlon));
elseif projection="simple":
Coord[k]=simplec(xpart(latlon),ypart(latlon));
elseif projection="cylindrique":
@@ -863,7 +890,7 @@ vardef Lecturelacspsup=
fi;
endfor;
path lac;
- if (projection="mercator") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
+ if (projection="mercator") or (projection="winkel") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
ll:=nbpts
fi;
if ll>0:
@@ -891,6 +918,8 @@ vardef Lecturerivieresp=
latlon=scantokens readfrom nomfichiermul;
if projection="mercator":
Coord[k]=mercatorc(xpart(latlon/60),ypart(latlon/60));
+ elseif projection="winkel":
+ Coord[k]=winkelc(xpart(latlon/60),ypart(latlon/60));
elseif projection="simple":
Coord[k]=simplec(xpart(latlon/60),ypart(latlon/60));
elseif projection="cylindrique":
@@ -910,7 +939,7 @@ vardef Lecturerivieresp=
fi;
endfor;
path riv;
- if (projection="mercator") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
+ if (projection="mercator") or (projection="winkel") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
ll:=nbpts;
fi;
if ll>0:
@@ -937,6 +966,8 @@ vardef Lecturerivierespsup=
latlon=scantokens readfrom nomfichiermul;
if projection="mercator":
Coord[k]=mercatorc(xpart(latlon),ypart(latlon));
+ elseif projection="winkel":
+ Coord[k]=winkelc(xpart(latlon),ypart(latlon));
elseif projection="simple":
Coord[k]=simplec(xpart(latlon),ypart(latlon));
elseif projection="cylindrique":
@@ -956,7 +987,7 @@ vardef Lecturerivierespsup=
fi;
endfor;
path riv;
- if (projection="mercator") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
+ if (projection="mercator") or (projection="winkel") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
ll:=nbpts;
fi;
if ll>0:
@@ -983,6 +1014,9 @@ vardef Lecturecapitalesp=
if projection="mercator":
Coord[p]=mercatorc(xpart(latlon/60),ypart(latlon/60));
ll:=1;
+ elseif projection="winkel":
+ Coord[p]=winkelc(xpart(latlon/60),ypart(latlon/60));
+ ll:=1;
elseif projection="simple":
Coord[p]=simplec(xpart(latlon/60),ypart(latlon/60));
ll:=1;
@@ -1007,7 +1041,7 @@ vardef Lecturecapitalesp=
drawoptions(withcolor rouge);
pointe(Coord[p]);
drawoptions();
- if (projection="mercator") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
+ if (projection="mercator") or (projection="winkel") or (projection="cylindrique") or (projection="simple") or (projection="bonne"):
label.top(TEX(""&p_&""),Coord[p]);
fi;
fi;
@@ -1017,40 +1051,44 @@ vardef Lecturecapitalesp=
enddef;
vardef MeridienParallele=
- if (projection="mercator") or (projection="cylindrique") or (projection="simple"):
+ if (projection="mercator") or (projection="winkel") or (projection="cylindrique") or (projection="simple"):
pair Coord[];
- for k=-80 step 10 until 80:
- for j=-180 step 10 until 180:
+ for k=-85 step 5 until 85:
+ for j=-180 step 10 until 180:
if projection="mercator":
Coord[100*k+j]=mercatorc(k,j);
+ elseif projection="winkel":
+ Coord[100*k+j] = winkelc(k,j);
elseif projection="simple":
- Coord[k]=simplec(k,j);
+ Coord[100*k+j]=simplec(k,j);
elseif projection="cylindrique":
Coord[100*k+j]=cylindriquec(k,j);
fi;
endfor;
endfor;
- for k=-80 step 10 until 80:
+ for k=-85 step 5 until 85:
draw Coord[100*k-180]
- for j=-170 step 10 until 180:
+ for j=-170 step 10 until 180:
--Coord[100*k+j]
- endfor;
+ endfor;
endfor;
pair Coord[];
for k=-180 step 10 until 180:
- for j=-80 step 10 until 80:
+ for j=-85 step 5 until 85:
if projection="mercator":
Coord[0.001*k+10*j]=mercatorc(j,k);
+ elseif projection="winkel":
+ Coord[0.001*k+10*j]=winkelc(j,k);
elseif projection="simple":
- Coord[k]=simplec(j,k);
+ Coord[0.001*k+10*j]=simplec(j,k);
elseif projection="cylindrique":
Coord[0.001*k+10*j]=cylindriquec(j,k);
fi;
endfor;
endfor;
for k=-180 step 10 until 180:
- draw Coord[0.001*k-10*80]
- for j=-70 step 10 until 80:
+ draw Coord[0.001*k-10*85]
+ for j=-80 step 5 until 85:
--Coord[0.001*k+10*j]
endfor;
endfor;
@@ -1154,6 +1192,8 @@ vardef echelle(expr Th,Ph,long)=%long en km.
$=(cm*pi*cosd(Ph)/36)/(long*abs(bonnec(Ph,Th)-bonnec(Ph,Th+5)))*6340;
elseif projection="mercator":
$=(cm*pi*cosd(Ph)*6340/36)/(long*abs(mercatorc(Ph,Th)-mercatorc(Ph,Th+5)));
+ elseif projection="winkel":
+ $=(cm*pi*cosd(Ph)*6340/36)/(long*abs(winkelc(Ph,Th)-winkelc(Ph,Th+5)));
elseif projection="simple":
$=(cm*pi*cosd(Ph)*6340/36)/(long*abs(simplec(Ph,Th)-simplec(Ph,Th+5)));
elseif projection="cylindrique":
@@ -1229,7 +1269,7 @@ vardef Projection(expr TH,PH,Zoom)=
fi;
if maillage=true:
drawoptions(withcolor gris);
- MeridienParallele
+ MeridienParallele;
drawoptions();
fi;
if Echelle=true:
@@ -1299,6 +1339,34 @@ vardef Mercator(expr TH,PH,Zoom)=
fi;
enddef;
+vardef Winkel(expr TH,PH,Zoom)=
+ projection:="winkel";
+ theta:=TH;
+ phi:=PH;
+ zoom(Zoom);
+ Lecture("Cameriquesud.dat");
+ Lecture("Ccaraibes.dat");
+ Lecture("Cameriquecentrale.dat");
+ Lecture("Cameriquenord.dat");
+ Lecture("Casia.dat");
+ Lecture("Ceurope.dat");
+ Lecture("Cafrique.dat");
+ if lacs=true:
+ Lecturelacsp;
+ Lecturelacspsup;
+ fi;
+ Lectureilesp;
+ if capitales=true:
+ Lecturecapitalesp;
+ fi;
+ if fleuves=true:
+ Lecturerivieresp;
+ fi;
+ if maillage=true:
+ MeridienParallele;
+ fi;
+enddef;
+
vardef Cylindrique(expr TH,PH,Zoom)=
projection:="cylindrique";
theta:=TH;
diff --git a/macros/latex/contrib/profcollege/metapost/datastest/Casia.dat b/macros/latex/contrib/profcollege/metapost/datastest/Casia.dat
index c9da4fc717..a74dc0e4a4 100644
--- a/macros/latex/contrib/profcollege/metapost/datastest/Casia.dat
+++ b/macros/latex/contrib/profcollege/metapost/datastest/Casia.dat
@@ -1,5 +1,6 @@
-47
-arborescence&"russie1bis.dat",rouge
+48
+arborescence&"russie3.dat",rouge
+arborescence&"russie3bis.dat",rouge
arborescence&"coreesud.dat",jaune
arborescence&"coreenord.dat",rose
arborescence&"chine.dat",vert
diff --git a/macros/latex/contrib/profcollege/metapost/datastest/russie3.dat b/macros/latex/contrib/profcollege/metapost/datastest/russie3.dat
new file mode 100644
index 0000000000..ffdeb3882a
--- /dev/null
+++ b/macros/latex/contrib/profcollege/metapost/datastest/russie3.dat
@@ -0,0 +1,8819 @@
+8818%9282
+(2603,2401)
+(2604,2395)
+(2610,2392)
+(2614,2383)
+(2617,2381)
+(2619,2377)
+(2635,2358)
+(2642,2346)
+(2649,2338)
+(2650,2332)
+(2656,2325)
+(2660,2316)
+(2661,2300)
+(2663,2297)
+(2663,2292)
+(2665,2289)
+(2669,2287)
+(2671,2283)
+(2673,2284)
+(2674,2282)
+(2673,2280)
+(2676,2276)
+(2678,2276)
+(2680,2273)
+(2682,2272)
+(2684,2267)
+(2680,2269)
+(2678,2269)
+(2678,2265)
+(2680,2258)
+(2679,2254)
+(2680,2249)
+(2683,2246)
+(2684,2243)
+(2691,2239)
+(2692,2238)
+(2694,2239)
+(2699,2232)
+(2706,2211)
+(2706,2202)
+(2708,2197)
+(2711,2195)
+(2712,2195)
+(2712,2202)
+(2713,2205)
+(2714,2206)
+(2714,2210)
+(2716,2218)
+(2719,2218)
+(2718,2207)
+(2720,2206)
+(2721,2205)
+(2721,2206)
+(2721,2207)
+(2719,2208)
+(2720,2209)
+(2722,2211)
+(2722,2209)
+(2723,2206)
+(2720,2202)
+(2720,2200)
+(2725,2205)
+(2726,2210)
+(2720,2228)
+(2718,2226)
+(2716,2227)
+(2716,2224)
+(2715,2224)
+(2714,2225)
+(2714,2227)
+(2715,2234)
+(2716,2235)
+(2717,2239)
+(2718,2230)
+(2719,2229)
+(2720,2230)
+(2720,2242)
+(2718,2243)
+(2722,2251)
+(2720,2250)
+(2721,2253)
+(2720,2256)
+(2718,2256)
+(2718,2254)
+(2718,2257)
+(2720,2258)
+(2718,2259)
+(2719,2260)
+(2718,2264)
+(2720,2262)
+(2722,2264)
+(2724,2266)
+(2723,2263)
+(2725,2264)
+(2727,2262)
+(2727,2265)
+(2729,2261)
+(2734,2262)
+(2735,2259)
+(2736,2258)
+(2734,2257)
+(2733,2260)
+(2733,2258)
+(2731,2259)
+(2730,2258)
+(2727,2259)
+(2726,2258)
+(2725,2257)
+(2726,2255)
+(2738,2255)
+(2740,2257)
+(2739,2258)
+(2738,2257)
+(2737,2262)
+(2740,2260)
+(2744,2268)
+(2746,2270)
+(2750,2273)
+(2759,2275)
+(2762,2276)
+(2763,2281)
+(2764,2284)
+(2763,2286)
+(2761,2282)
+(2762,2284)
+(2758,2282)
+(2757,2284)
+(2756,2285)
+(2754,2284)
+(2750,2280)
+(2749,2283)
+(2751,2283)
+(2753,2285)
+(2762,2288)
+(2763,2290)
+(2767,2290)
+(2768,2294)
+(2762,2306)
+(2761,2308)
+(2762,2314)
+(2766,2314)
+(2773,2298)
+(2776,2296)
+(2781,2290)
+(2784,2285)
+(2784,2280)
+(2783,2278)
+(2782,2281)
+(2781,2280)
+(2784,2274)
+(2789,2269)
+(2800,2264)
+(2797,2271)
+(2797,2281)
+(2801,2287)
+(2801,2292)
+(2804,2296)
+(2801,2298)
+(2799,2303)
+(2798,2308)
+(2799,2315)
+(2801,2316)
+(2802,2314)
+(2804,2310)
+(2805,2305)
+(2804,2303)
+(2803,2303)
+(2805,2302)
+(2806,2304)
+(2810,2305)
+(2812,2309)
+(2810,2313)
+(2813,2327)
+(2817,2332)
+(2817,2336)
+(2820,2342)
+(2822,2345)
+(2820,2346)
+(2821,2350)
+(2820,2356)
+(2825,2358)
+(2827,2363)
+(2828,2360)
+(2825,2356)
+(2828,2356)
+(2829,2355)
+(2831,2355)
+(2832,2357)
+(2835,2356)
+(2837,2345)
+(2835,2342)
+(2835,2337)
+(2833,2336)
+(2831,2336)
+(2831,2333)
+(2830,2331)
+(2829,2325)
+(2828,2317)
+(2828,2313)
+(2827,2313)
+(2828,2309)
+(2833,2313)
+(2835,2327)
+(2837,2329)
+(2835,2327)
+(2834,2314)
+(2830,2308)
+(2828,2307)
+(2828,2298)
+(2827,2294)
+(2828,2294)
+(2831,2294)
+(2834,2296)
+(2835,2300)
+(2838,2299)
+(2838,2294)
+(2839,2294)
+(2842,2296)
+(2843,2298)
+(2845,2299)
+(2848,2298)
+(2852,2298)
+(2854,2300)
+(2857,2303)
+(2857,2308)
+(2858,2307)
+(2858,2312)
+(2859,2318)
+(2862,2321)
+(2861,2326)
+(2862,2327)
+(2865,2327)
+(2869,2328)
+(2869,2330)
+(2872,2330)
+(2872,2332)
+(2872,2337)
+(2872,2342)
+(2870,2347)
+(2871,2352)
+(2872,2357)
+(2873,2362)
+(2871,2366)
+(2872,2368)
+(2870,2372)
+(2870,2374)
+(2870,2379)
+(2870,2385)
+(2873,2387)
+(2876,2388)
+(2880,2389)
+(2883,2389)
+(2885,2393)
+(2888,2394)
+(2891,2397)
+(2893,2397)
+(2894,2401)
+(2896,2401)
+(2899,2399)
+(2898,2396)
+(2899,2391)
+(2901,2395)
+(2903,2395)
+(2906,2394)
+(2908,2391)
+(2910,2391)
+(2911,2392)
+(2915,2390)
+(2915,2386)
+(2916,2381)
+(2918,2381)
+(2921,2383)
+(2924,2383)
+(2927,2386)
+(2930,2388)
+(2934,2390)
+(2936,2387)
+(2940,2383)
+(2943,2380)
+(2944,2382)
+(2943,2387)
+(2944,2392)
+(2944,2396)
+(2945,2397)
+(2947,2399)
+(2951,2402)
+(2951,2405)
+(2954,2408)
+(2955,2412)
+(2959,2411)
+(2964,2410)
+(2967,2410)
+(2970,2413)
+(2974,2413)
+(2977,2409)
+(2977,2403)
+(2976,2398)
+(2974,2394)
+(2974,2388)
+(2977,2381)
+(2980,2378)
+(2984,2377)
+(2985,2375)
+(2986,2368)
+(2985,2361)
+(2986,2356)
+(2991,2353)
+(2993,2350)
+(2990,2346)
+(2989,2342)
+(2989,2337)
+(2992,2336)
+(2992,2331)
+(2994,2327)
+(2996,2322)
+(2999,2322)
+(2999,2321)
+(2998,2319)
+(2999,2317)
+(2998,2312)
+(3000,2308)
+(3000,2302)
+(3002,2302)
+(3005,2300)
+(3005,2298)
+(3005,2297)
+(3004,2292)
+(3003,2292)
+(2998,2293)
+(2996,2289)
+(2996,2287)
+(2995,2283)
+(2997,2281)
+(2998,2281)
+(3000,2277)
+(3003,2275)
+(3003,2272)
+(3005,2268)
+(3008,2263)
+(3011,2259)
+(3015,2258)
+(3018,2258)
+(3018,2257)
+(3020,2252)
+(3023,2248)
+(3026,2248)
+(3026,2246)
+(3026,2241)
+(3023,2237)
+(3021,2230)
+(3021,2226)
+(3021,2220)
+(3021,2216)
+(3019,2208)
+(3016,2201)
+(3014,2197)
+(3017,2194)
+(3018,2196)
+(3018,2191)
+(3020,2186)
+(3018,2179)
+(3021,2178)
+(3022,2176)
+(3025,2173)
+(3026,2171)
+(3027,2164)
+(3027,2159)
+(3026,2149)
+(3024,2148)
+(3022,2142)
+(3023,2137)
+(3027,2136)
+(3029,2132)
+(3031,2128)
+(3036,2125)
+(3036,2126)
+(3039,2125)
+(3040,2130)
+(3043,2129)
+(3047,2129)
+(3049,2125)
+(3053,2123)
+(3056,2124)
+(3057,2121)
+(3061,2120)
+(3062,2125)
+(3064,2125)
+(3064,2118)
+(3063,2117)
+(3063,2113)
+(3066,2111)
+(3069,2108)
+(3073,2108)
+(3073,2103)
+(3074,2098)
+(3072,2094)
+(3071,2089)
+(3071,2085)
+(3072,2081)
+(3075,2079)
+(3075,2078)
+(3075,2073)
+(3074,2067)
+(3076,2063)
+(3075,2058)
+(3075,2056)
+(3079,2059)
+(3083,2059)
+(3082,2057)
+(3084,2053)
+(3087,2056)
+(3091,2058)
+(3094,2056)
+(3096,2052)
+(3098,2048)
+(3101,2048)
+(3102,2055)
+(3103,2060)
+(3104,2067)
+(3106,2067)
+(3110,2066)
+(3111,2063)
+(3111,2056)
+(3115,2055)
+(3115,2053)
+(3118,2048)
+(3121,2046)
+(3125,2045)
+(3125,2047)
+(3128,2048)
+(3129,2045)
+(3131,2044)
+(3133,2040)
+(3135,2036)
+(3138,2035)
+(3138,2032)
+(3142,2029)
+(3141,2022)
+(3140,2017)
+(3138,2013)
+(3141,2011)
+(3141,2010)
+(3141,2007)
+(3142,2003)
+(3141,1998)
+(3143,1992)
+(3140,1988)
+(3138,1983)
+(3136,1979)
+(3135,1974)
+(3137,1970)
+(3135,1968)
+(3135,1962)
+(3136,1961)
+(3139,1955)
+(3139,1948)
+(3140,1942)
+(3138,1942)
+(3135,1943)
+(3131,1941)
+(3128,1942)
+(3126,1938)
+(3125,1934)
+(3123,1928)
+(3123,1923)
+(3122,1918)
+(3122,1917)
+(3125,1916)
+(3126,1914)
+(3126,1908)
+(3127,1908)
+(3131,1907)
+(3132,1903)
+(3133,1903)
+(3136,1902)
+(3136,1901)
+(3138,1897)
+(3142,1898)
+(3145,1897)
+(3148,1897)
+(3151,1896)
+(3152,1898)
+(3152,1900)
+(3154,1900)
+(3155,1895)
+(3158,1894)
+(3162,1892)
+(3164,1897)
+(3168,1895)
+(3171,1893)
+(3172,1888)
+(3177,1883)
+(3180,1879)
+(3182,1875)
+(3182,1878)
+(3182,1879)
+(3185,1881)
+(3186,1883)
+(3189,1883)
+(3192,1886)
+(3192,1888)
+(3192,1890)
+(3191,1895)
+(3193,1898)
+(3193,1901)
+(3190,1907)
+(3187,1911)
+(3187,1914)
+(3185,1918)
+(3185,1924)
+(3185,1929)
+(3186,1931)
+(3186,1934)
+(3188,1938)
+(3191,1942)
+(3191,1945)
+(3194,1949)
+(3197,1952)
+(3198,1954)
+(3200,1959)
+(3200,1964)
+(3201,1964)
+(3204,1966)
+(3208,1966)
+(3208,1959)
+(3210,1958)
+(3209,1956)
+(3211,1956)
+(3213,1951)
+(3215,1947)
+(3219,1947)
+(3219,1945)
+(3221,1950)
+(3224,1948)
+(3224,1942)
+(3226,1938)
+(3227,1933)
+(3228,1929)
+(3228,1923)
+(3228,1918)
+(3227,1912)
+(3228,1908)
+(3228,1906)
+(3229,1907)
+(3230,1907)
+(3233,1909)
+(3236,1911)
+(3239,1912)
+(3242,1914)
+(3244,1909)
+(3247,1907)
+(3247,1901)
+(3248,1900)
+(3248,1894)
+(3250,1890)
+(3252,1889)
+(3254,1884)
+(3255,1879)
+(3259,1879)
+(3262,1878)
+(3265,1877)
+(3268,1874)
+(3269,1872)
+(3270,1866)
+(3273,1868)
+(3275,1871)
+(3280,1872)
+(3280,1871)
+(3280,1865)
+(3281,1860)
+(3282,1861)
+(3284,1856)
+(3287,1851)
+(3288,1846)
+(3290,1846)
+(3293,1850)
+(3297,1852)
+(3298,1857)
+(3300,1858)
+(3302,1856)
+(3302,1861)
+(3306,1860)
+(3309,1861)
+(3310,1859)
+(3311,1859)
+(3312,1857)
+(3315,1855)
+(3317,1851)
+(3320,1850)
+(3321,1853)
+(3324,1856)
+(3327,1854)
+(3330,1857)
+(3334,1858)
+(3337,1856)
+(3338,1851)
+(3336,1846)
+(3339,1843)
+(3339,1841)
+(3342,1839)
+(3344,1837)
+(3346,1831)
+(3349,1828)
+(3349,1822)
+(3351,1817)
+(3352,1812)
+(3350,1806)
+(3351,1800)
+(3351,1794)
+(3349,1790)
+(3347,1787)
+(3347,1786)
+(3348,1785)
+(3348,1783)
+(3347,1777)
+(3343,1774)
+(3342,1769)
+(3344,1767)
+(3345,1762)
+(3347,1762)
+(3350,1764)
+(3353,1765)
+(3356,1768)
+(3358,1763)
+(3359,1756)
+(3361,1750)
+(3363,1746)
+(3362,1740)
+(3360,1735)
+(3357,1731)
+(3358,1728)
+(3359,1723)
+(3362,1722)
+(3366,1720)
+(3367,1713)
+(3365,1707)
+(3363,1702)
+(3363,1699)
+(3365,1697)
+(3368,1694)
+(3370,1689)
+(3370,1691)
+(3374,1692)
+(3379,1693)
+(3383,1690)
+(3384,1691)
+(3388,1689)
+(3391,1686)
+(3395,1688)
+(3397,1682)
+(3400,1681)
+(3403,1678)
+(3406,1676)
+(3409,1679)
+(3410,1677)
+(3410,1675)
+(3412,1671)
+(3412,1666)
+(3411,1660)
+(3412,1661)
+(3415,1661)
+(3415,1663)
+(3419,1664)
+(3422,1664)
+(3425,1665)
+(3426,1663)
+(3427,1665)
+(3430,1669)
+(3433,1671)
+(3436,1672)
+(3439,1670)
+(3441,1666)
+(3443,1661)
+(3445,1657)
+(3446,1651)
+(3448,1651)
+(3449,1653)
+(3452,1652)
+(3452,1645)
+(3453,1639)
+(3456,1642)
+(3459,1643)
+(3462,1645)
+(3463,1652)
+(3465,1652)
+(3468,1650)
+(3469,1653)
+(3470,1659)
+(3470,1665)
+(3472,1670)
+(3475,1668)
+(3475,1665)
+(3477,1661)
+(3480,1662)
+(3480,1659)
+(3481,1660)
+(3482,1659)
+(3482,1664)
+(3481,1667)
+(3479,1668)
+(3477,1674)
+(3476,1674)
+(3475,1671)
+(3474,1675)
+(3471,1677)
+(3472,1685)
+(3471,1688)
+(3475,1691)
+(3478,1688)
+(3480,1689)
+(3484,1683)
+(3487,1682)
+(3489,1678)
+(3490,1677)
+(3490,1671)
+(3491,1668)
+(3490,1665)
+(3489,1659)
+(3488,1657)
+(3490,1656)
+(3490,1655)
+(3491,1656)
+(3494,1655)
+(3494,1651)
+(3499,1652)
+(3498,1659)
+(3501,1658)
+(3508,1667)
+(3506,1666)
+(3506,1668)
+(3509,1671)
+(3514,1670)
+(3520,1666)
+(3531,1668)
+(3534,1663)
+(3537,1663)
+(3539,1664)
+(3542,1666)
+(3546,1667)
+(3549,1670)
+(3551,1673)
+(3554,1674)
+(3556,1678)
+(3557,1684)
+(3559,1691)
+(3560,1691)
+(3564,1693)
+(3566,1688)
+(3568,1683)
+(3573,1684)
+(3576,1684)
+(3582,1680)
+(3586,1681)
+(3588,1685)
+(3585,1691)
+(3581,1693)
+(3580,1702)
+(3582,1705)
+(3589,1706)
+(3591,1710)
+(3592,1712)
+(3590,1715)
+(3589,1720)
+(3587,1722)
+(3587,1724)
+(3588,1727)
+(3587,1730)
+(3589,1733)
+(3590,1739)
+(3594,1742)
+(3596,1739)
+(3596,1742)
+(3598,1743)
+(3599,1746)
+(3600,1752)
+(3596,1786)
+(3592,1802)
+(3592,1809)
+(3593,1813)
+(3597,1812)
+(3598,1815)
+(3599,1813)
+(3601,1797)
+(3605,1794)
+(3608,1793)
+(3611,1786)
+(3612,1773)
+(3610,1765)
+(3610,1750)
+(3611,1741)
+(3615,1738)
+(3619,1730)
+(3622,1729)
+(3620,1727)
+(3623,1716)
+(3626,1715)
+(3634,1706)
+(3633,1710)
+(3631,1712)
+(3627,1721)
+(3628,1723)
+(3634,1720)
+(3635,1719)
+(3636,1717)
+(3634,1716)
+(3636,1713)
+(3638,1715)
+(3637,1718)
+(3637,1721)
+(3640,1719)
+(3640,1724)
+(3643,1724)
+(3644,1720)
+(3641,1715)
+(3640,1704)
+(3637,1703)
+(3637,1699)
+(3636,1700)
+(3636,1697)
+(3634,1694)
+(3632,1693)
+(3633,1689)
+(3632,1689)
+(3632,1684)
+(3631,1683)
+(3632,1675)
+(3631,1674)
+(3634,1671)
+(3643,1686)
+(3646,1689)
+(3648,1696)
+(3652,1701)
+(3657,1711)
+(3658,1718)
+(3662,1722)
+(3666,1729)
+(3675,1753)
+(3682,1762)
+(3686,1769)
+(3689,1772)
+(3691,1779)
+(3696,1789)
+(3699,1790)
+(3704,1799)
+(3719,1820)
+(3730,1838)
+(3732,1839)
+(3738,1856)
+(3742,1859)
+(3747,1869)
+(3748,1870)
+(3750,1876)
+(3757,1879)
+(3759,1883)
+(3768,1888)
+(3775,1895)
+(3776,1892)
+(3779,1891)
+(3787,1877)
+(3793,1873)
+(3799,1858)
+(3801,1855)
+(3804,1847)
+(3809,1829)
+(3813,1824)
+(3816,1815)
+(3824,1800)
+(3825,1801)
+(3829,1816)
+(3835,1821)
+(3841,1833)
+(3845,1837)
+(3851,1833)
+(3853,1835)
+(3855,1834)
+(3855,1827)
+(3859,1823)
+(3861,1809)
+(3864,1803)
+(3868,1805)
+(3871,1803)
+(3875,1804)
+(3878,1811)
+(3880,1813)
+(3884,1807)
+(3886,1808)
+(3888,1803)
+(3888,1788)
+(3895,1779)
+(3900,1776)
+(3904,1778)
+(3907,1792)
+(3909,1789)
+(3911,1792)
+(3913,1791)
+(3913,1778)
+(3915,1776)
+(3921,1785)
+(3931,1785)
+(3934,1792)
+(3938,1783)
+(3941,1801)
+(3940,1807)
+(3943,1808)
+(3950,1806)
+(3959,1799)
+(3968,1795)
+(3979,1778)
+(3990,1773)
+(3995,1766)
+(4002,1760)
+(4010,1746)
+(4015,1745)
+(4021,1748)
+(4038,1772)
+(4051,1796)
+(4054,1799)
+(4060,1799)
+(4062,1802)
+(4069,1782)
+(4085,1761)
+(4092,1722)
+(4112,1707)
+(4124,1725)
+(4131,1729)
+(4133,1724)
+(4132,1709)
+(4134,1706)
+(4135,1707)
+(4142,1731)
+(4143,1737)
+(4142,1740)
+(4142,1747)
+(4147,1755)
+(4155,1759)
+(4159,1759)
+(4163,1781)
+(4166,1789)
+(4166,1797)
+(4170,1806)
+(4173,1808)
+(4175,1811)
+(4178,1809)
+(4178,1804)
+(4179,1804)
+(4180,1809)
+(4178,1818)
+(4173,1831)
+(4172,1848)
+(4173,1855)
+(4175,1857)
+(4181,1857)
+(4182,1854)
+(4187,1848)
+(4188,1853)
+(4185,1876)
+(4183,1884)
+(4181,1884)
+(4177,1878)
+(4181,1886)
+(4182,1887)
+(4181,1892)
+(4182,1892)
+(4181,1908)
+(4182,1908)
+(4184,1901)
+(4188,1903)
+(4190,1904)
+(4191,1909)
+(4188,1921)
+(4186,1923)
+(4187,1924)
+(4187,1926)
+(4194,1919)
+(4195,1915)
+(4198,1916)
+(4197,1925)
+(4193,1935)
+(4193,1941)
+(4191,1950)
+(4188,1950)
+(4187,1955)
+(4187,1959)
+(4188,1962)
+(4185,1986)
+(4184,1988)
+(4179,1987)
+(4177,1983)
+(4175,1972)
+(4178,1949)
+(4179,1946)
+(4178,1942)
+(4179,1930)
+(4183,1931)
+(4185,1927)
+(4180,1926)
+(4179,1918)
+(4178,1924)
+(4174,1921)
+(4176,1928)
+(4174,1937)
+(4175,1943)
+(4174,1946)
+(4172,1944)
+(4170,1950)
+(4170,1945)
+(4166,1937)
+(4166,1931)
+(4166,1937)
+(4168,1945)
+(4169,1947)
+(4169,1952)
+(4170,1953)
+(4169,1955)
+(4169,1957)
+(4170,1960)
+(4169,1972)
+(4168,1974)
+(4167,1968)
+(4165,1967)
+(4168,1974)
+(4168,1985)
+(4161,1970)
+(4158,1969)
+(4159,1972)
+(4158,1974)
+(4163,1978)
+(4164,1985)
+(4167,1999)
+(4166,2001)
+(4167,2007)
+(4165,2011)
+(4164,2010)
+(4162,2005)
+(4162,2010)
+(4161,2009)
+(4158,2002)
+(4158,1997)
+(4156,1994)
+(4156,1995)
+(4157,2004)
+(4156,2008)
+(4155,2006)
+(4154,1998)
+(4154,2004)
+(4153,2004)
+(4152,2005)
+(4153,2012)
+(4151,2011)
+(4149,2004)
+(4146,1996)
+(4145,1987)
+(4144,1982)
+(4137,1981)
+(4143,1984)
+(4146,2006)
+(4148,2007)
+(4149,2010)
+(4152,2014)
+(4159,2015)
+(4160,2023)
+(4159,2025)
+(4158,2023)
+(4159,2027)
+(4158,2032)
+(4160,2031)
+(4160,2037)
+(4159,2045)
+(4159,2061)
+(4158,2065)
+(4157,2065)
+(4156,2076)
+(4155,2080)
+(4154,2099)
+(4151,2098)
+(4153,2102)
+(4153,2106)
+(4151,2111)
+(4153,2116)
+(4156,2109)
+(4156,2120)
+(4150,2159)
+(4147,2164)
+(4148,2165)
+(4146,2175)
+(4144,2176)
+(4143,2180)
+(4141,2196)
+(4137,2205)
+(4130,2234)
+(4128,2234)
+(4127,2242)
+(4124,2247)
+(4124,2255)
+(4119,2269)
+(4113,2282)
+(4110,2284)
+(4109,2292)
+(4108,2293)
+(4106,2300)
+(4104,2304)
+(4100,2304)
+(4101,2307)
+(4097,2326)
+(4102,2310)
+(4102,2311)
+(4101,2316)
+(4103,2316)
+(4103,2317)
+(4099,2327)
+(4098,2336)
+(4097,2337)
+(4096,2336)
+(4088,2362)
+(4084,2371)
+(4082,2391)
+(4087,2387)
+(4090,2382)
+(4090,2384)
+(4090,2387)
+(4086,2396)
+(4082,2399)
+(4080,2405)
+(4077,2408)
+(4076,2416)
+(4074,2417)
+(4074,2422)
+(4071,2425)
+(4070,2419)
+(4065,2429)
+(4065,2433)
+(4068,2434)
+(4069,2440)
+(4067,2441)
+(4063,2449)
+(4064,2455)
+(4063,2460)
+(4058,2463)
+(4053,2459)
+(4052,2461)
+(4048,2460)
+(4048,2465)
+(4045,2469)
+(4035,2467)
+(4034,2468)
+(4033,2475)
+(4034,2479)
+(4032,2482)
+(4029,2480)
+(4027,2483)
+(4025,2480)
+(4021,2482)
+(4020,2480)
+(4020,2476)
+(4017,2478)
+(4010,2473)
+(4007,2468)
+(3995,2444)
+(3992,2443)
+(3990,2436)
+(3987,2434)
+(3984,2427)
+(3980,2411)
+(3977,2404)
+(3974,2391)
+(3972,2384)
+(3971,2372)
+(3968,2361)
+(3967,2355)
+(3966,2336)
+(3965,2330)
+(3963,2313)
+(3965,2278)
+(3968,2256)
+(3972,2244)
+(3975,2229)
+(3976,2218)
+(3978,2183)
+(3983,2141)
+(3983,2131)
+(3985,2123)
+(3987,2120)
+(3988,2112)
+(3992,2102)
+(3996,2093)
+(3996,2087)
+(3992,2073)
+(3992,2068)
+(3997,2061)
+(3998,2062)
+(3998,2071)
+(3999,2071)
+(3999,2069)
+(4000,2059)
+(4000,2052)
+(4001,2050)
+(4000,2049)
+(4000,2045)
+(4003,2049)
+(4006,2049)
+(4002,2046)
+(4001,2043)
+(4002,2042)
+(4001,2041)
+(4001,2036)
+(4003,2033)
+(4002,2032)
+(4002,2030)
+(4006,2026)
+(4008,2020)
+(4008,2018)
+(4010,2015)
+(4007,2015)
+(4009,2011)
+(4007,2012)
+(4005,2018)
+(4007,2011)
+(4004,2013)
+(4006,2009)
+(4004,2013)
+(4003,2012)
+(4009,1991)
+(4019,1969)
+(4023,1968)
+(4025,1978)
+(4025,1966)
+(4028,1956)
+(4028,1947)
+(4030,1942)
+(4028,1924)
+(4030,1913)
+(4029,1911)
+(4029,1915)
+(4027,1915)
+(4027,1926)
+(4027,1935)
+(4025,1941)
+(4024,1937)
+(4022,1950)
+(4018,1954)
+(4017,1952)
+(4017,1943)
+(4016,1950)
+(4014,1949)
+(4013,1945)
+(4013,1953)
+(4010,1961)
+(4008,1961)
+(4006,1975)
+(4004,1976)
+(4004,1972)
+(4004,1971)
+(4004,1966)
+(4003,1968)
+(4001,1978)
+(4001,1991)
+(3999,1999)
+(3997,1999)
+(3999,1988)
+(3996,1984)
+(3996,1973)
+(3995,1972)
+(3994,1986)
+(3996,1987)
+(3995,1993)
+(3997,1993)
+(3997,1995)
+(3995,2005)
+(3993,2007)
+(3992,2012)
+(3991,2012)
+(3991,2009)
+(3994,1990)
+(3993,1990)
+(3993,1984)
+(3992,1977)
+(3991,1977)
+(3990,1987)
+(3992,1993)
+(3991,1998)
+(3989,1999)
+(3988,2012)
+(3989,2016)
+(3989,2018)
+(3987,2015)
+(3986,2024)
+(3985,2023)
+(3984,2011)
+(3982,2019)
+(3981,2020)
+(3981,2006)
+(3979,1999)
+(3979,2010)
+(3980,2017)
+(3979,2019)
+(3978,2017)
+(3976,2033)
+(3973,2034)
+(3975,2038)
+(3975,2046)
+(3972,2050)
+(3971,2049)
+(3969,2061)
+(3965,2073)
+(3964,2074)
+(3963,2077)
+(3959,2083)
+(3957,2080)
+(3956,2083)
+(3954,2082)
+(3955,2086)
+(3954,2091)
+(3953,2092)
+(3949,2090)
+(3950,2094)
+(3946,2092)
+(3945,2094)
+(3943,2098)
+(3942,2095)
+(3948,2081)
+(3943,2081)
+(3943,2085)
+(3940,2082)
+(3940,2084)
+(3936,2087)
+(3935,2084)
+(3931,2083)
+(3929,2078)
+(3927,2081)
+(3927,2070)
+(3924,2070)
+(3925,2062)
+(3923,2063)
+(3923,2059)
+(3923,2058)
+(3923,2064)
+(3921,2068)
+(3917,2068)
+(3917,2072)
+(3915,2072)
+(3915,2078)
+(3914,2076)
+(3911,2081)
+(3910,2078)
+(3909,2080)
+(3907,2080)
+(3906,2087)
+(3903,2085)
+(3903,2088)
+(3902,2089)
+(3899,2082)
+(3898,2086)
+(3891,2097)
+(3888,2092)
+(3886,2085)
+(3885,2088)
+(3886,2090)
+(3887,2094)
+(3886,2101)
+(3883,2089)
+(3882,2090)
+(3878,2098)
+(3875,2090)
+(3873,2089)
+(3873,2085)
+(3871,2091)
+(3871,2097)
+(3867,2097)
+(3866,2106)
+(3863,2108)
+(3862,2119)
+(3860,2126)
+(3860,2135)
+(3864,2134)
+(3859,2152)
+(3855,2154)
+(3851,2160)
+(3854,2162)
+(3855,2165)
+(3849,2173)
+(3849,2177)
+(3846,2173)
+(3844,2177)
+(3841,2177)
+(3840,2187)
+(3838,2189)
+(3838,2196)
+(3835,2201)
+(3836,2206)
+(3834,2211)
+(3836,2216)
+(3834,2219)
+(3833,2230)
+(3829,2237)
+(3828,2244)
+(3829,2252)
+(3831,2255)
+(3833,2255)
+(3835,2259)
+(3834,2269)
+(3836,2280)
+(3841,2285)
+(3849,2283)
+(3854,2274)
+(3858,2281)
+(3860,2274)
+(3861,2277)
+(3862,2271)
+(3863,2268)
+(3867,2268)
+(3867,2266)
+(3866,2262)
+(3864,2260)
+(3862,2258)
+(3863,2255)
+(3863,2250)
+(3861,2241)
+(3863,2231)
+(3870,2220)
+(3883,2203)
+(3885,2193)
+(3890,2190)
+(3890,2194)
+(3892,2188)
+(3897,2186)
+(3897,2191)
+(3896,2195)
+(3895,2199)
+(3899,2210)
+(3901,2209)
+(3905,2212)
+(3910,2210)
+(3911,2211)
+(3912,2222)
+(3909,2238)
+(3908,2246)
+(3903,2263)
+(3901,2265)
+(3898,2265)
+(3893,2279)
+(3891,2284)
+(3891,2293)
+(3892,2305)
+(3888,2302)
+(3886,2304)
+(3888,2299)
+(3887,2295)
+(3887,2290)
+(3886,2283)
+(3884,2282)
+(3882,2288)
+(3879,2282)
+(3878,2283)
+(3880,2290)
+(3883,2291)
+(3885,2298)
+(3885,2301)
+(3885,2309)
+(3886,2309)
+(3888,2305)
+(3889,2308)
+(3887,2319)
+(3885,2336)
+(3874,2373)
+(3873,2385)
+(3875,2385)
+(3876,2395)
+(3877,2393)
+(3876,2387)
+(3880,2390)
+(3877,2403)
+(3873,2411)
+(3874,2421)
+(3872,2430)
+(3874,2432)
+(3884,2425)
+(3885,2425)
+(3886,2428)
+(3885,2431)
+(3886,2431)
+(3888,2427)
+(3896,2422)
+(3901,2417)
+(3903,2408)
+(3913,2397)
+(3923,2383)
+(3931,2383)
+(3934,2386)
+(3937,2391)
+(3941,2407)
+(3947,2425)
+(3958,2442)
+(3960,2460)
+(3964,2481)
+(3969,2492)
+(3970,2499)
+(3971,2499)
+(3980,2515)
+(3990,2528)
+(3992,2533)
+(3988,2555)
+(3987,2559)
+(3985,2560)
+(3984,2555)
+(3983,2553)
+(3985,2580)
+(3985,2598)
+(3980,2603)
+(3979,2614)
+(3976,2620)
+(3974,2622)
+(3972,2618)
+(3969,2607)
+(3966,2602)
+(3966,2598)
+(3962,2601)
+(3962,2607)
+(3958,2611)
+(3962,2611)
+(3964,2603)
+(3965,2603)
+(3968,2610)
+(3969,2618)
+(3971,2622)
+(3971,2631)
+(3965,2643)
+(3961,2641)
+(3952,2651)
+(3956,2651)
+(3960,2647)
+(3965,2650)
+(3971,2645)
+(3979,2647)
+(3988,2655)
+(3990,2662)
+(3997,2664)
+(4000,2674)
+(4000,2669)
+(4007,2662)
+(4008,2662)
+(4010,2669)
+(4014,2668)
+(4015,2671)
+(4016,2669)
+(4021,2664)
+(4023,2658)
+(4026,2663)
+(4025,2656)
+(4030,2650)
+(4031,2642)
+(4030,2634)
+(4032,2627)
+(4033,2625)
+(4040,2625)
+(4046,2629)
+(4060,2642)
+(4061,2645)
+(4059,2647)
+(4061,2649)
+(4062,2649)
+(4062,2644)
+(4067,2648)
+(4073,2645)
+(4073,2646)
+(4073,2652)
+(4075,2656)
+(4076,2653)
+(4075,2648)
+(4077,2648)
+(4078,2648)
+(4079,2653)
+(4079,2649)
+(4080,2649)
+(4083,2660)
+(4084,2665)
+(4083,2657)
+(4082,2651)
+(4097,2654)
+(4104,2640)
+(4108,2624)
+(4117,2599)
+(4120,2596)
+(4121,2602)
+(4121,2610)
+(4118,2618)
+(4118,2625)
+(4115,2631)
+(4112,2644)
+(4112,2652)
+(4114,2688)
+(4114,2716)
+(4108,2760)
+(4107,2761)
+(4107,2757)
+(4106,2756)
+(4099,2762)
+(4099,2766)
+(4093,2777)
+(4092,2780)
+(4093,2781)
+(4088,2792)
+(4087,2791)
+(4086,2788)
+(4086,2793)
+(4080,2794)
+(4076,2799)
+(4075,2803)
+(4069,2803)
+(4068,2800)
+(4070,2780)
+(4068,2769)
+(4066,2749)
+(4066,2737)
+(4064,2723)
+(4062,2718)
+(4061,2721)
+(4056,2720)
+(4055,2718)
+(4055,2709)
+(4049,2697)
+(4041,2695)
+(4037,2708)
+(4030,2736)
+(4025,2739)
+(4018,2747)
+(4014,2749)
+(4011,2759)
+(4009,2762)
+(4012,2794)
+(4010,2796)
+(4009,2792)
+(4007,2789)
+(4004,2783)
+(4006,2790)
+(4009,2795)
+(4010,2815)
+(4011,2817)
+(4011,2823)
+(4015,2844)
+(4014,2854)
+(4012,2854)
+(4013,2856)
+(4016,2855)
+(4019,2862)
+(4022,2865)
+(4027,2865)
+(4031,2861)
+(4034,2867)
+(4040,2866)
+(4046,2877)
+(4048,2876)
+(4054,2869)
+(4055,2870)
+(4059,2880)
+(4058,2886)
+(4056,2884)
+(4055,2886)
+(4061,2895)
+(4061,2901)
+(4060,2906)
+(4060,2912)
+(4062,2918)
+(4063,2921)
+(4062,2924)
+(4061,2923)
+(4061,2929)
+(4062,2931)
+(4060,2939)
+(4059,2938)
+(4058,2940)
+(4058,2946)
+(4059,2943)
+(4060,2943)
+(4063,2933)
+(4064,2926)
+(4066,2928)
+(4070,2928)
+(4076,2915)
+(4076,2920)
+(4072,2928)
+(4071,2937)
+(4072,2954)
+(4079,2979)
+(4085,3001)
+(4083,2999)
+(4081,2991)
+(4082,2998)
+(4084,3002)
+(4087,3004)
+(4096,3035)
+(4102,3047)
+(4101,3050)
+(4100,3053)
+(4101,3065)
+(4103,3068)
+(4103,3077)
+(4106,3086)
+(4105,3090)
+(4106,3094)
+(4107,3095)
+(4107,3092)
+(4109,3095)
+(4109,3107)
+(4112,3123)
+(4115,3132)
+(4112,3131)
+(4110,3123)
+(4109,3123)
+(4110,3131)
+(4109,3141)
+(4108,3141)
+(4108,3137)
+(4105,3137)
+(4103,3128)
+(4098,3136)
+(4100,3139)
+(4101,3147)
+(4104,3154)
+(4105,3160)
+(4108,3164)
+(4109,3163)
+(4112,3155)
+(4115,3149)
+(4117,3150)
+(4117,3157)
+(4119,3158)
+(4118,3151)
+(4117,3147)
+(4115,3144)
+(4116,3137)
+(4132,3193)
+(4135,3208)
+(4138,3230)
+(4141,3266)
+(4140,3274)
+(4138,3271)
+(4139,3267)
+(4137,3260)
+(4136,3238)
+(4136,3225)
+(4134,3216)
+(4133,3216)
+(4131,3221)
+(4131,3224)
+(4133,3221)
+(4133,3223)
+(4131,3241)
+(4129,3239)
+(4128,3231)
+(4125,3229)
+(4122,3230)
+(4119,3223)
+(4116,3225)
+(4110,3234)
+(4104,3237)
+(4103,3231)
+(4101,3229)
+(4100,3228)
+(4104,3221)
+(4104,3217)
+(4104,3215)
+(4101,3221)
+(4100,3220)
+(4101,3215)
+(4102,3206)
+(4101,3203)
+(4100,3202)
+(4101,3200)
+(4096,3192)
+(4095,3195)
+(4094,3200)
+(4095,3208)
+(4095,3222)
+(4094,3230)
+(4093,3232)
+(4093,3240)
+(4095,3246)
+(4099,3252)
+(4095,3250)
+(4092,3252)
+(4092,3254)
+(4098,3268)
+(4098,3271)
+(4098,3273)
+(4091,3279)
+(4090,3289)
+(4095,3296)
+(4097,3295)
+(4099,3291)
+(4100,3295)
+(4104,3296)
+(4106,3300)
+(4106,3304)
+(4108,3306)
+(4110,3312)
+(4111,3314)
+(4113,3319)
+(4114,3328)
+(4114,3335)
+(4114,3341)
+(4116,3350)
+(4120,3358)
+(4118,3368)
+(4116,3380)
+(4118,3391)
+(4117,3392)
+(4115,3390)
+(4118,3394)
+(4118,3398)
+(4114,3412)
+(4112,3425)
+(4113,3437)
+(4115,3444)
+(4119,3447)
+(4121,3452)
+(4124,3455)
+(4125,3475)
+(4127,3479)
+(4129,3477)
+(4131,3478)
+(4133,3494)
+(4132,3495)
+(4130,3492)
+(4127,3495)
+(4125,3502)
+(4124,3500)
+(4124,3505)
+(4126,3506)
+(4127,3497)
+(4130,3495)
+(4134,3497)
+(4137,3511)
+(4140,3536)
+(4140,3554)
+(4139,3554)
+(4138,3541)
+(4136,3533)
+(4134,3546)
+(4126,3565)
+(4125,3566)
+(4122,3564)
+(4123,3556)
+(4122,3551)
+(4118,3547)
+(4117,3544)
+(4114,3544)
+(4112,3547)
+(4109,3545)
+(4105,3544)
+(4104,3548)
+(4103,3562)
+(4100,3579)
+(4102,3590)
+(4108,3598)
+(4116,3592)
+(4118,3586)
+(4121,3589)
+(4123,3594)
+(4123,3597)
+(4122,3600)
+(4121,3605)
+(4123,3628)
+(4125,3636)
+(4134,3650)
+(4134,3658)
+(4135,3655)
+(4140,3657)
+(4145,3656)
+(4148,3653)
+(4150,3644)
+(4147,3644)
+(4147,3638)
+(4148,3635)
+(4153,3636)
+(4159,3633)
+(4168,3618)
+(4171,3613)
+(4173,3613)
+(4174,3608)
+(4178,3609)
+(4180,3617)
+(4180,3630)
+(4180,3640)
+(4183,3638)
+(4184,3643)
+(4189,3642)
+(4191,3646)
+(4192,3652)
+(4191,3663)
+(4192,3666)
+(4190,3669)
+(4190,3676)
+(4188,3684)
+(4186,3695)
+(4187,3704)
+(4185,3721)
+(4185,3750)
+(4182,3785)
+(4180,3805)
+(4171,3857)
+(4159,3899)
+(4157,3900)
+(4157,3896)
+(4158,3892)
+(4155,3887)
+(4153,3888)
+(4150,3886)
+(4149,3888)
+(4152,3897)
+(4155,3895)
+(4156,3903)
+(4151,3923)
+(4148,3952)
+(4146,3954)
+(4146,3946)
+(4147,3944)
+(4148,3939)
+(4145,3941)
+(4142,3966)
+(4140,3975)
+(4137,3981)
+(4134,3995)
+(4133,4013)
+(4131,4027)
+(4128,4022)
+(4125,4029)
+(4122,4032)
+(4121,4040)
+(4115,4058)
+(4110,4068)
+(4111,4062)
+(4109,4067)
+(4108,4074)
+(4105,4090)
+(4100,4095)
+(4098,4094)
+(4094,4091)
+(4094,4096)
+(4091,4097)
+(4093,4103)
+(4093,4106)
+(4099,4114)
+(4099,4119)
+(4100,4114)
+(4102,4114)
+(4116,4134)
+(4128,4141)
+(4130,4146)
+(4132,4147)
+(4132,4139)
+(4134,4137)
+(4135,4147)
+(4135,4148)
+(4136,4144)
+(4137,4153)
+(4136,4142)
+(4138,4141)
+(4135,4127)
+(4135,4119)
+(4139,4108)
+(4145,4101)
+(4157,4083)
+(4161,4082)
+(4163,4087)
+(4173,4086)
+(4173,4084)
+(4171,4080)
+(4169,4082)
+(4169,4077)
+(4171,4067)
+(4175,4058)
+(4177,4050)
+(4177,4041)
+(4181,4025)
+(4182,4019)
+(4179,4020)
+(4179,4019)
+(4178,4011)
+(4174,4015)
+(4171,4016)
+(4174,4008)
+(4185,4006)
+(4200,4012)
+(4202,4015)
+(4203,4019)
+(4201,4020)
+(4199,4018)
+(4197,4021)
+(4199,4031)
+(4201,4035)
+(4206,4040)
+(4206,4037)
+(4209,4038)
+(4211,4035)
+(4208,4034)
+(4213,4025)
+(4223,4032)
+(4225,4036)
+(4227,4035)
+(4228,4038)
+(4232,4033)
+(4245,4040)
+(4249,4036)
+(4250,4026)
+(4248,4020)
+(4247,4007)
+(4246,4001)
+(4253,3997)
+(4257,4006)
+(4260,4010)
+(4263,4010)
+(4265,4014)
+(4266,4009)
+(4264,4009)
+(4263,4005)
+(4261,4006)
+(4260,4001)
+(4261,3997)
+(4263,3997)
+(4270,4009)
+(4278,4015)
+(4278,4025)
+(4285,4055)
+(4286,4055)
+(4290,4071)
+(4291,4077)
+(4300,4093)
+(4301,4097)
+(4300,4101)
+(4303,4098)
+(4309,4108)
+(4315,4113)
+(4319,4114)
+(4322,4119)
+(4334,4124)
+(4339,4127)
+(4339,4129)
+(4347,4131)
+(4349,4135)
+(4352,4132)
+(4359,4138)
+(4359,4143)
+(4360,4139)
+(4363,4141)
+(4368,4154)
+(4376,4159)
+(4378,4162)
+(4378,4172)
+(4378,4185)
+(4377,4188)
+(4376,4187)
+(4375,4174)
+(4373,4173)
+(4373,4176)
+(4374,4218)
+(4373,4245)
+(4374,4259)
+(4374,4274)
+(4375,4292)
+(4372,4306)
+(4370,4320)
+(4369,4317)
+(4369,4310)
+(4368,4313)
+(4370,4326)
+(4362,4370)
+(4362,4363)
+(4360,4364)
+(4359,4369)
+(4356,4363)
+(4353,4366)
+(4351,4371)
+(4349,4368)
+(4344,4368)
+(4337,4373)
+(4332,4364)
+(4327,4363)
+(4322,4354)
+(4315,4351)
+(4311,4340)
+(4309,4339)
+(4303,4342)
+(4301,4334)
+(4296,4332)
+(4294,4324)
+(4294,4321)
+(4295,4317)
+(4291,4309)
+(4288,4308)
+(4278,4323)
+(4272,4341)
+(4269,4355)
+(4268,4358)
+(4265,4361)
+(4261,4357)
+(4252,4370)
+(4242,4366)
+(4237,4361)
+(4232,4366)
+(4225,4367)
+(4224,4361)
+(4221,4352)
+(4216,4345)
+(4211,4357)
+(4205,4354)
+(4203,4349)
+(4199,4352)
+(4194,4359)
+(4191,4361)
+(4185,4359)
+(4181,4353)
+(4180,4354)
+(4179,4350)
+(4171,4357)
+(4166,4358)
+(4165,4355)
+(4165,4349)
+(4163,4354)
+(4157,4359)
+(4153,4351)
+(4151,4349)
+(4139,4353)
+(4133,4358)
+(4131,4363)
+(4115,4411)
+(4109,4419)
+(4107,4419)
+(4106,4416)
+(4109,4416)
+(4107,4408)
+(4102,4405)
+(4093,4386)
+(4090,4388)
+(4085,4384)
+(4077,4392)
+(4071,4392)
+(4069,4384)
+(4063,4389)
+(4061,4387)
+(4063,4383)
+(4061,4377)
+(4061,4373)
+(4059,4373)
+(4058,4371)
+(4057,4357)
+(4056,4353)
+(4051,4353)
+(4048,4344)
+(4044,4347)
+(4039,4344)
+(4038,4336)
+(4040,4331)
+(4038,4328)
+(4038,4322)
+(4036,4322)
+(4034,4332)
+(4030,4334)
+(4029,4330)
+(4032,4327)
+(4029,4328)
+(4028,4315)
+(4027,4321)
+(4025,4319)
+(4024,4321)
+(4022,4316)
+(4019,4312)
+(4018,4308)
+(4015,4305)
+(4015,4303)
+(4017,4298)
+(4016,4295)
+(4015,4292)
+(4017,4286)
+(4018,4282)
+(4017,4279)
+(4016,4280)
+(4015,4287)
+(4014,4283)
+(4012,4291)
+(4010,4289)
+(4007,4293)
+(4006,4291)
+(4003,4296)
+(3999,4294)
+(3998,4282)
+(4001,4282)
+(3999,4280)
+(3998,4276)
+(3999,4270)
+(3997,4274)
+(3998,4264)
+(3996,4263)
+(3995,4267)
+(3994,4262)
+(3995,4257)
+(3993,4259)
+(3992,4259)
+(3990,4243)
+(3995,4220)
+(3997,4217)
+(3999,4219)
+(3999,4224)
+(4001,4228)
+(4001,4236)
+(4003,4238)
+(4003,4241)
+(4004,4244)
+(4005,4244)
+(4005,4234)
+(4004,4232)
+(4004,4237)
+(4003,4228)
+(4002,4233)
+(4001,4219)
+(4003,4209)
+(4004,4211)
+(4005,4205)
+(4008,4199)
+(4011,4197)
+(4012,4194)
+(4011,4193)
+(4010,4194)
+(4009,4187)
+(4009,4182)
+(4010,4175)
+(4009,4174)
+(4008,4178)
+(4007,4176)
+(4010,4164)
+(4009,4159)
+(4010,4150)
+(4008,4138)
+(4007,4140)
+(4007,4145)
+(4006,4147)
+(3996,4147)
+(3990,4163)
+(3988,4185)
+(3985,4194)
+(3980,4223)
+(3982,4253)
+(3982,4279)
+(3979,4301)
+(3978,4305)
+(3974,4309)
+(3974,4311)
+(3975,4316)
+(3973,4320)
+(3974,4322)
+(3974,4324)
+(3977,4334)
+(3978,4341)
+(3983,4344)
+(3988,4342)
+(3990,4345)
+(3991,4343)
+(3990,4337)
+(3993,4347)
+(3996,4348)
+(3999,4377)
+(4004,4380)
+(4005,4386)
+(4007,4392)
+(4010,4411)
+(4016,4418)
+(4019,4431)
+(4023,4432)
+(4024,4435)
+(4027,4434)
+(4033,4437)
+(4038,4435)
+(4045,4445)
+(4061,4484)
+(4076,4489)
+(4089,4484)
+(4094,4477)
+(4102,4460)
+(4110,4468)
+(4117,4465)
+(4123,4469)
+(4127,4480)
+(4134,4528)
+(4134,4537)
+(4136,4550)
+(4138,4567)
+(4139,4580)
+(4139,4593)
+(4138,4596)
+(4132,4602)
+(4128,4597)
+(4126,4598)
+(4119,4621)
+(4114,4626)
+(4115,4629)
+(4116,4626)
+(4116,4630)
+(4111,4639)
+(4107,4635)
+(4103,4638)
+(4098,4630)
+(4096,4631)
+(4094,4642)
+(4089,4638)
+(4086,4633)
+(4083,4635)
+(4079,4631)
+(4074,4638)
+(4070,4634)
+(4069,4630)
+(4071,4629)
+(4070,4625)
+(4067,4626)
+(4057,4660)
+(4054,4661)
+(4053,4661)
+(4054,4671)
+(4053,4674)
+(4054,4677)
+(4053,4679)
+(4052,4683)
+(4055,4695)
+(4053,4700)
+(4053,4709)
+(4055,4715)
+(4055,4720)
+(4055,4723)
+(4054,4732)
+(4053,4737)
+(4054,4743)
+(4056,4738)
+(4057,4730)
+(4058,4728)
+(4059,4732)
+(4059,4727)
+(4059,4723)
+(4057,4720)
+(4056,4715)
+(4057,4710)
+(4058,4708)
+(4058,4715)
+(4060,4717)
+(4060,4712)
+(4059,4710)
+(4062,4706)
+(4058,4704)
+(4060,4699)
+(4059,4694)
+(4060,4691)
+(4059,4688)
+(4061,4683)
+(4062,4679)
+(4061,4672)
+(4062,4672)
+(4063,4677)
+(4064,4670)
+(4066,4668)
+(4067,4666)
+(4064,4665)
+(4063,4659)
+(4064,4652)
+(4066,4648)
+(4074,4648)
+(4075,4649)
+(4076,4655)
+(4076,4651)
+(4079,4648)
+(4082,4651)
+(4085,4650)
+(4089,4654)
+(4093,4664)
+(4095,4689)
+(4096,4690)
+(4099,4685)
+(4101,4685)
+(4103,4678)
+(4107,4674)
+(4109,4677)
+(4111,4676)
+(4112,4673)
+(4111,4668)
+(4111,4666)
+(4114,4666)
+(4117,4663)
+(4121,4665)
+(4132,4662)
+(4134,4658)
+(4136,4644)
+(4139,4633)
+(4141,4615)
+(4146,4607)
+(4149,4598)
+(4148,4592)
+(4149,4582)
+(4154,4562)
+(4154,4546)
+(4156,4534)
+(4155,4529)
+(4151,4513)
+(4148,4506)
+(4146,4509)
+(4145,4485)
+(4148,4470)
+(4148,4451)
+(4144,4437)
+(4148,4428)
+(4150,4425)
+(4152,4425)
+(4161,4433)
+(4166,4434)
+(4173,4426)
+(4182,4413)
+(4185,4411)
+(4189,4418)
+(4197,4422)
+(4201,4422)
+(4205,4426)
+(4209,4421)
+(4218,4440)
+(4222,4444)
+(4225,4450)
+(4232,4460)
+(4241,4458)
+(4251,4436)
+(4258,4434)
+(4263,4424)
+(4276,4412)
+(4280,4400)
+(4285,4381)
+(4300,4410)
+(4303,4412)
+(4306,4408)
+(4309,4412)
+(4314,4432)
+(4316,4447)
+(4317,4455)
+(4318,4459)
+(4317,4461)
+(4327,4497)
+(4335,4506)
+(4343,4507)
+(4355,4504)
+(4362,4497)
+(4369,4484)
+(4373,4500)
+(4372,4505)
+(4370,4512)
+(4369,4520)
+(4365,4531)
+(4364,4532)
+(4362,4527)
+(4363,4524)
+(4361,4520)
+(4361,4525)
+(4358,4530)
+(4353,4543)
+(4352,4541)
+(4352,4534)
+(4349,4533)
+(4340,4541)
+(4339,4540)
+(4338,4546)
+(4336,4545)
+(4333,4536)
+(4329,4531)
+(4325,4532)
+(4322,4525)
+(4319,4526)
+(4317,4516)
+(4314,4517)
+(4310,4513)
+(4307,4513)
+(4304,4516)
+(4300,4530)
+(4298,4530)
+(4297,4523)
+(4294,4530)
+(4292,4532)
+(4290,4525)
+(4287,4526)
+(4288,4517)
+(4287,4514)
+(4282,4516)
+(4278,4527)
+(4274,4562)
+(4271,4567)
+(4274,4569)
+(4272,4583)
+(4273,4598)
+(4271,4614)
+(4269,4613)
+(4264,4615)
+(4267,4618)
+(4269,4616)
+(4271,4622)
+(4269,4661)
+(4266,4672)
+(4261,4673)
+(4258,4677)
+(4257,4683)
+(4256,4696)
+(4253,4704)
+(4253,4707)
+(4255,4713)
+(4255,4732)
+(4256,4734)
+(4256,4737)
+(4255,4737)
+(4256,4742)
+(4257,4744)
+(4258,4741)
+(4259,4745)
+(4261,4746)
+(4261,4742)
+(4259,4738)
+(4260,4730)
+(4259,4727)
+(4259,4734)
+(4256,4728)
+(4256,4723)
+(4258,4715)
+(4255,4706)
+(4260,4709)
+(4261,4708)
+(4263,4713)
+(4264,4710)
+(4266,4711)
+(4267,4707)
+(4266,4701)
+(4263,4710)
+(4262,4707)
+(4266,4695)
+(4267,4694)
+(4273,4699)
+(4275,4697)
+(4277,4682)
+(4275,4676)
+(4279,4674)
+(4281,4680)
+(4282,4680)
+(4281,4672)
+(4280,4672)
+(4279,4664)
+(4277,4665)
+(4277,4663)
+(4280,4647)
+(4278,4651)
+(4282,4632)
+(4285,4627)
+(4285,4620)
+(4288,4604)
+(4292,4593)
+(4294,4579)
+(4295,4575)
+(4298,4576)
+(4315,4560)
+(4320,4583)
+(4323,4614)
+(4315,4642)
+(4312,4646)
+(4310,4651)
+(4309,4662)
+(4313,4686)
+(4314,4690)
+(4318,4694)
+(4326,4681)
+(4327,4677)
+(4327,4668)
+(4324,4649)
+(4325,4643)
+(4327,4643)
+(4330,4649)
+(4333,4648)
+(4333,4651)
+(4331,4660)
+(4333,4665)
+(4339,4674)
+(4340,4684)
+(4343,4688)
+(4342,4696)
+(4343,4699)
+(4344,4706)
+(4343,4710)
+(4344,4711)
+(4342,4731)
+(4343,4758)
+(4342,4769)
+(4335,4788)
+(4331,4807)
+(4325,4850)
+(4322,4851)
+(4321,4849)
+(4322,4844)
+(4325,4847)
+(4324,4840)
+(4322,4838)
+(4311,4875)
+(4306,4878)
+(4303,4898)
+(4302,4900)
+(4302,4928)
+(4307,4969)
+(4306,4975)
+(4304,4979)
+(4304,4992)
+(4303,4996)
+(4301,4999)
+(4299,4998)
+(4294,4990)
+(4293,4981)
+(4287,4979)
+(4284,4982)
+(4282,4962)
+(4278,4942)
+(4276,4935)
+(4265,4941)
+(4260,4932)
+(4255,4938)
+(4250,4939)
+(4246,4945)
+(4241,4933)
+(4237,4932)
+(4234,4925)
+(4230,4929)
+(4217,4934)
+(4212,4941)
+(4224,4935)
+(4230,4934)
+(4235,4930)
+(4236,4948)
+(4241,4946)
+(4242,4949)
+(4245,4950)
+(4246,4954)
+(4248,4949)
+(4251,4955)
+(4254,4955)
+(4257,4961)
+(4258,4965)
+(4257,4966)
+(4257,4971)
+(4255,4972)
+(4260,4973)
+(4260,4974)
+(4255,4980)
+(4254,4986)
+(4252,4989)
+(4246,4988)
+(4240,4983)
+(4236,4984)
+(4234,4980)
+(4230,4983)
+(4225,4980)
+(4223,4974)
+(4215,4959)
+(4212,4960)
+(4210,4958)
+(4208,4969)
+(4205,4973)
+(4204,4984)
+(4205,4990)
+(4207,4992)
+(4212,4988)
+(4214,4983)
+(4219,4977)
+(4220,4981)
+(4219,4991)
+(4219,5000)
+(4220,5011)
+(4228,5026)
+(4230,5024)
+(4233,5026)
+(4242,5016)
+(4246,5016)
+(4248,5012)
+(4255,5009)
+(4258,5003)
+(4261,5004)
+(4263,5000)
+(4264,4990)
+(4267,4987)
+(4266,4994)
+(4267,4996)
+(4275,4989)
+(4277,4997)
+(4281,5002)
+(4288,5003)
+(4289,5011)
+(4291,5015)
+(4294,5018)
+(4297,5018)
+(4305,5005)
+(4308,5005)
+(4310,5003)
+(4312,4991)
+(4314,4968)
+(4312,4960)
+(4317,4957)
+(4320,4950)
+(4325,4931)
+(4328,4938)
+(4334,4937)
+(4337,4932)
+(4336,4927)
+(4340,4903)
+(4341,4870)
+(4348,4851)
+(4352,4843)
+(4353,4843)
+(4354,4847)
+(4357,4850)
+(4359,4841)
+(4364,4838)
+(4367,4845)
+(4371,4848)
+(4378,4849)
+(4384,4841)
+(4386,4826)
+(4387,4835)
+(4388,4834)
+(4390,4820)
+(4390,4814)
+(4392,4819)
+(4392,4829)
+(4393,4834)
+(4396,4833)
+(4397,4827)
+(4397,4820)
+(4399,4815)
+(4403,4821)
+(4403,4823)
+(4402,4825)
+(4405,4829)
+(4406,4835)
+(4410,4841)
+(4411,4838)
+(4409,4831)
+(4414,4831)
+(4415,4843)
+(4414,4851)
+(4415,4855)
+(4416,4875)
+(4417,4879)
+(4419,4891)
+(4419,4930)
+(4420,4949)
+(4419,5004)
+(4422,5025)
+(4422,5061)
+(4425,5075)
+(4426,5087)
+(4424,5094)
+(4423,5101)
+(4422,5100)
+(4423,5106)
+(4422,5113)
+(4423,5129)
+(4426,5128)
+(4429,5135)
+(4429,5152)
+(4432,5161)
+(4431,5175)
+(4433,5184)
+(4433,5200)
+(4434,5207)
+(4431,5226)
+(4427,5222)
+(4425,5211)
+(4423,5205)
+(4420,5197)
+(4420,5191)
+(4417,5181)
+(4415,5167)
+(4412,5159)
+(4410,5150)
+(4408,5147)
+(4400,5150)
+(4396,5173)
+(4391,5179)
+(4389,5191)
+(4387,5200)
+(4379,5207)
+(4384,5206)
+(4390,5198)
+(4391,5187)
+(4395,5180)
+(4399,5158)
+(4400,5153)
+(4408,5151)
+(4414,5173)
+(4414,5199)
+(4416,5212)
+(4416,5226)
+(4417,5231)
+(4422,5241)
+(4421,5235)
+(4424,5238)
+(4430,5258)
+(4434,5260)
+(4435,5252)
+(4430,5250)
+(4429,5246)
+(4430,5239)
+(4432,5232)
+(4436,5228)
+(4442,5216)
+(4443,5218)
+(4443,5232)
+(4440,5244)
+(4441,5245)
+(4443,5242)
+(4444,5211)
+(4446,5212)
+(4448,5203)
+(4451,5208)
+(4452,5206)
+(4455,5194)
+(4456,5164)
+(4457,5157)
+(4459,5158)
+(4461,5154)
+(4462,5158)
+(4462,5167)
+(4459,5175)
+(4459,5178)
+(4463,5176)
+(4464,5164)
+(4465,5164)
+(4465,5173)
+(4465,5175)
+(4467,5179)
+(4466,5183)
+(4467,5189)
+(4466,5195)
+(4464,5198)
+(4463,5196)
+(4463,5204)
+(4462,5208)
+(4463,5209)
+(4463,5217)
+(4461,5214)
+(4459,5202)
+(4458,5211)
+(4460,5214)
+(4460,5218)
+(4457,5218)
+(4456,5220)
+(4458,5223)
+(4461,5220)
+(4462,5221)
+(4461,5236)
+(4464,5224)
+(4466,5225)
+(4465,5207)
+(4468,5201)
+(4470,5193)
+(4472,5196)
+(4473,5207)
+(4474,5190)
+(4476,5179)
+(4477,5167)
+(4476,5157)
+(4478,5151)
+(4478,5145)
+(4480,5152)
+(4482,5150)
+(4483,5152)
+(4483,5164)
+(4486,5167)
+(4489,5162)
+(4489,5166)
+(4488,5169)
+(4489,5172)
+(4486,5183)
+(4485,5180)
+(4486,5173)
+(4482,5180)
+(4483,5191)
+(4482,5193)
+(4482,5198)
+(4480,5196)
+(4479,5201)
+(4477,5202)
+(4477,5211)
+(4476,5218)
+(4479,5214)
+(4481,5217)
+(4481,5206)
+(4482,5206)
+(4485,5212)
+(4485,5219)
+(4483,5221)
+(4483,5224)
+(4491,5224)
+(4496,5243)
+(4497,5242)
+(4497,5235)
+(4499,5231)
+(4500,5246)
+(4498,5249)
+(4497,5246)
+(4496,5253)
+(4496,5256)
+(4498,5254)
+(4499,5261)
+(4500,5261)
+(4501,5267)
+(4502,5266)
+(4502,5243)
+(4504,5235)
+(4505,5224)
+(4504,5215)
+(4507,5215)
+(4509,5220)
+(4510,5237)
+(4506,5279)
+(4508,5284)
+(4508,5288)
+(4510,5298)
+(4514,5299)
+(4515,5304)
+(4517,5311)
+(4516,5318)
+(4519,5313)
+(4520,5316)
+(4521,5327)
+(4522,5329)
+(4522,5326)
+(4524,5332)
+(4524,5345)
+(4526,5339)
+(4524,5324)
+(4527,5348)
+(4530,5355)
+(4528,5359)
+(4528,5364)
+(4526,5363)
+(4526,5383)
+(4528,5377)
+(4529,5377)
+(4531,5393)
+(4531,5403)
+(4532,5402)
+(4533,5395)
+(4535,5403)
+(4537,5438)
+(4538,5441)
+(4540,5454)
+(4538,5455)
+(4537,5459)
+(4540,5470)
+(4538,5471)
+(4538,5474)
+(4538,5497)
+(4542,5498)
+(4544,5503)
+(4543,5507)
+(4543,5523)
+(4545,5531)
+(4545,5544)
+(4546,5550)
+(4550,5601)
+(4555,5644)
+(4557,5650)
+(4557,5648)
+(4556,5644)
+(4554,5620)
+(4557,5613)
+(4555,5606)
+(4553,5609)
+(4552,5605)
+(4557,5596)
+(4558,5599)
+(4559,5597)
+(4556,5578)
+(4554,5586)
+(4554,5585)
+(4554,5573)
+(4555,5574)
+(4558,5570)
+(4559,5575)
+(4563,5575)
+(4564,5581)
+(4562,5586)
+(4561,5587)
+(4562,5592)
+(4564,5593)
+(4565,5587)
+(4566,5589)
+(4565,5595)
+(4566,5606)
+(4564,5600)
+(4562,5605)
+(4561,5605)
+(4563,5613)
+(4562,5618)
+(4563,5622)
+(4562,5625)
+(4563,5640)
+(4564,5637)
+(4566,5620)
+(4567,5620)
+(4567,5638)
+(4567,5646)
+(4566,5652)
+(4567,5663)
+(4563,5668)
+(4564,5676)
+(4566,5676)
+(4567,5684)
+(4569,5680)
+(4569,5674)
+(4569,5673)
+(4569,5686)
+(4567,5694)
+(4566,5703)
+(4567,5705)
+(4567,5716)
+(4568,5719)
+(4569,5725)
+(4568,5749)
+(4566,5769)
+(4565,5772)
+(4564,5760)
+(4563,5765)
+(4562,5759)
+(4559,5760)
+(4559,5753)
+(4554,5743)
+(4553,5734)
+(4551,5745)
+(4555,5749)
+(4557,5756)
+(4557,5778)
+(4558,5780)
+(4559,5776)
+(4561,5791)
+(4560,5793)
+(4559,5790)
+(4559,5797)
+(4558,5800)
+(4552,5787)
+(4553,5796)
+(4554,5800)
+(4553,5810)
+(4555,5810)
+(4556,5816)
+(4559,5823)
+(4562,5833)
+(4563,5842)
+(4559,5831)
+(4557,5835)
+(4556,5831)
+(4556,5840)
+(4558,5838)
+(4559,5841)
+(4560,5853)
+(4559,5869)
+(4560,5870)
+(4563,5863)
+(4563,5853)
+(4565,5860)
+(4566,5866)
+(4563,5874)
+(4565,5889)
+(4566,5893)
+(4566,5881)
+(4567,5876)
+(4569,5881)
+(4569,5884)
+(4568,5886)
+(4570,5889)
+(4570,5902)
+(4576,5928)
+(4572,5923)
+(4572,5931)
+(4573,5935)
+(4573,5942)
+(4572,5949)
+(4573,5957)
+(4572,5958)
+(4570,5952)
+(4570,5954)
+(4570,5945)
+(4568,5949)
+(4568,5954)
+(4569,5974)
+(4567,5976)
+(4566,5968)
+(4565,5975)
+(4564,5974)
+(4565,5978)
+(4563,5986)
+(4558,5981)
+(4551,5980)
+(4549,5972)
+(4546,5954)
+(4543,5956)
+(4540,5949)
+(4533,5946)
+(4528,5975)
+(4528,5985)
+(4525,5982)
+(4522,5986)
+(4518,6001)
+(4514,6002)
+(4511,6010)
+(4510,6011)
+(4512,6012)
+(4514,6005)
+(4517,6005)
+(4522,5988)
+(4528,5989)
+(4529,5976)
+(4532,5963)
+(4533,5954)
+(4534,5951)
+(4541,5955)
+(4542,5961)
+(4545,5957)
+(4546,5961)
+(4546,5975)
+(4551,5982)
+(4554,5993)
+(4557,5995)
+(4561,5989)
+(4565,5993)
+(4569,5988)
+(4572,5978)
+(4576,5976)
+(4577,5964)
+(4581,5956)
+(4581,5942)
+(4584,5941)
+(4588,5930)
+(4590,5929)
+(4591,5935)
+(4588,5966)
+(4589,6014)
+(4588,6018)
+(4590,6039)
+(4592,6051)
+(4589,6063)
+(4587,6061)
+(4588,6075)
+(4589,6079)
+(4587,6089)
+(4587,6102)
+(4584,6113)
+(4583,6135)
+(4584,6131)
+(4585,6119)
+(4588,6107)
+(4588,6094)
+(4590,6085)
+(4591,6062)
+(4593,6053)
+(4595,6064)
+(4604,6068)
+(4605,6074)
+(4606,6071)
+(4607,6060)
+(4610,6052)
+(4618,6055)
+(4619,6057)
+(4619,6073)
+(4623,6074)
+(4624,6070)
+(4626,6072)
+(4630,6087)
+(4634,6097)
+(4637,6111)
+(4643,6124)
+(4644,6129)
+(4643,6133)
+(4643,6137)
+(4650,6153)
+(4653,6175)
+(4655,6174)
+(4658,6183)
+(4659,6196)
+(4657,6201)
+(4658,6219)
+(4664,6244)
+(4664,6258)
+(4663,6260)
+(4662,6256)
+(4661,6256)
+(4660,6262)
+(4662,6277)
+(4662,6285)
+(4658,6288)
+(4655,6295)
+(4654,6314)
+(4652,6323)
+(4654,6339)
+(4654,6352)
+(4652,6350)
+(4651,6354)
+(4648,6355)
+(4645,6360)
+(4644,6367)
+(4642,6378)
+(4641,6371)
+(4642,6363)
+(4642,6344)
+(4640,6344)
+(4638,6337)
+(4637,6327)
+(4635,6331)
+(4634,6318)
+(4632,6316)
+(4630,6297)
+(4630,6292)
+(4630,6283)
+(4628,6271)
+(4628,6262)
+(4625,6247)
+(4625,6262)
+(4626,6282)
+(4627,6286)
+(4625,6295)
+(4625,6304)
+(4626,6309)
+(4625,6321)
+(4627,6336)
+(4627,6351)
+(4628,6355)
+(4625,6353)
+(4623,6344)
+(4622,6347)
+(4621,6327)
+(4618,6327)
+(4619,6332)
+(4618,6340)
+(4619,6346)
+(4619,6355)
+(4624,6372)
+(4622,6389)
+(4621,6390)
+(4621,6394)
+(4620,6399)
+(4620,6404)
+(4620,6406)
+(4622,6399)
+(4622,6406)
+(4623,6409)
+(4622,6421)
+(4621,6419)
+(4620,6420)
+(4621,6436)
+(4620,6434)
+(4617,6440)
+(4616,6450)
+(4614,6449)
+(4613,6436)
+(4612,6441)
+(4611,6432)
+(4610,6437)
+(4608,6433)
+(4608,6424)
+(4605,6423)
+(4604,6418)
+(4603,6418)
+(4602,6414)
+(4603,6405)
+(4603,6403)
+(4600,6408)
+(4595,6401)
+(4593,6395)
+(4596,6392)
+(4596,6387)
+(4596,6383)
+(4591,6384)
+(4590,6402)
+(4588,6409)
+(4590,6413)
+(4590,6421)
+(4592,6441)
+(4590,6458)
+(4592,6473)
+(4598,6480)
+(4600,6474)
+(4604,6477)
+(4604,6497)
+(4602,6498)
+(4603,6507)
+(4603,6528)
+(4604,6544)
+(4603,6549)
+(4605,6562)
+(4604,6565)
+(4604,6576)
+(4603,6581)
+(4603,6591)
+(4602,6593)
+(4602,6598)
+(4601,6602)
+(4604,6618)
+(4605,6627)
+(4606,6636)
+(4604,6638)
+(4603,6644)
+(4604,6655)
+(4605,6654)
+(4605,6666)
+(4605,6668)
+(4603,6664)
+(4601,6666)
+(4602,6674)
+(4601,6693)
+(4600,6689)
+(4599,6693)
+(4597,6687)
+(4597,6688)
+(4597,6699)
+(4596,6706)
+(4589,6732)
+(4580,6710)
+(4583,6721)
+(4587,6734)
+(4582,6759)
+(4580,6765)
+(4579,6759)
+(4576,6764)
+(4574,6761)
+(4573,6759)
+(4574,6750)
+(4572,6756)
+(4572,6767)
+(4568,6771)
+(4565,6768)
+(4563,6754)
+(4563,6776)
+(4564,6781)
+(4567,6782)
+(4568,6779)
+(4569,6786)
+(4569,6793)
+(4567,6798)
+(4568,6795)
+(4570,6797)
+(4573,6780)
+(4575,6776)
+(4575,6796)
+(4574,6798)
+(4573,6794)
+(4572,6794)
+(4572,6801)
+(4571,6804)
+(4568,6808)
+(4562,6807)
+(4561,6813)
+(4559,6810)
+(4557,6813)
+(4556,6806)
+(4556,6811)
+(4553,6814)
+(4552,6813)
+(4551,6809)
+(4552,6818)
+(4555,6817)
+(4555,6823)
+(4555,6825)
+(4556,6827)
+(4555,6831)
+(4553,6829)
+(4551,6834)
+(4543,6825)
+(4536,6823)
+(4532,6811)
+(4532,6805)
+(4537,6815)
+(4539,6816)
+(4540,6806)
+(4541,6798)
+(4540,6782)
+(4542,6788)
+(4544,6783)
+(4550,6756)
+(4551,6740)
+(4550,6747)
+(4546,6751)
+(4546,6761)
+(4542,6772)
+(4541,6769)
+(4542,6765)
+(4539,6773)
+(4535,6767)
+(4533,6770)
+(4533,6781)
+(4537,6780)
+(4539,6797)
+(4533,6796)
+(4531,6803)
+(4530,6813)
+(4531,6818)
+(4524,6823)
+(4524,6812)
+(4523,6813)
+(4523,6818)
+(4522,6820)
+(4517,6816)
+(4505,6786)
+(4504,6781)
+(4499,6773)
+(4495,6754)
+(4493,6728)
+(4491,6725)
+(4487,6723)
+(4486,6717)
+(4484,6714)
+(4483,6717)
+(4480,6708)
+(4480,6704)
+(4481,6696)
+(4481,6684)
+(4476,6667)
+(4476,6660)
+(4474,6663)
+(4473,6657)
+(4472,6649)
+(4469,6636)
+(4468,6630)
+(4469,6621)
+(4469,6617)
+(4466,6623)
+(4462,6612)
+(4462,6602)
+(4459,6594)
+(4459,6588)
+(4459,6587)
+(4459,6578)
+(4458,6573)
+(4458,6577)
+(4457,6583)
+(4458,6599)
+(4454,6597)
+(4451,6591)
+(4445,6570)
+(4444,6554)
+(4442,6545)
+(4438,6535)
+(4436,6526)
+(4429,6514)
+(4428,6510)
+(4429,6506)
+(4426,6509)
+(4418,6484)
+(4419,6486)
+(4420,6482)
+(4420,6478)
+(4417,6467)
+(4416,6465)
+(4418,6460)
+(4417,6446)
+(4418,6441)
+(4417,6439)
+(4417,6429)
+(4414,6426)
+(4413,6430)
+(4412,6430)
+(4406,6413)
+(4400,6408)
+(4398,6399)
+(4399,6393)
+(4399,6377)
+(4397,6364)
+(4389,6361)
+(4386,6351)
+(4380,6350)
+(4377,6342)
+(4374,6340)
+(4370,6321)
+(4368,6318)
+(4367,6304)
+(4366,6304)
+(4366,6327)
+(4369,6340)
+(4372,6346)
+(4373,6357)
+(4377,6360)
+(4378,6377)
+(4379,6373)
+(4386,6370)
+(4388,6372)
+(4389,6376)
+(4391,6381)
+(4388,6408)
+(4389,6415)
+(4391,6422)
+(4390,6464)
+(4391,6470)
+(4393,6477)
+(4395,6486)
+(4393,6493)
+(4393,6501)
+(4396,6503)
+(4396,6492)
+(4398,6494)
+(4399,6515)
+(4400,6523)
+(4401,6536)
+(4403,6549)
+(4405,6556)
+(4407,6552)
+(4408,6553)
+(4405,6565)
+(4407,6566)
+(4409,6559)
+(4411,6551)
+(4413,6550)
+(4413,6553)
+(4407,6570)
+(4407,6576)
+(4408,6589)
+(4410,6601)
+(4410,6606)
+(4413,6609)
+(4413,6605)
+(4415,6607)
+(4416,6625)
+(4418,6624)
+(4419,6628)
+(4419,6637)
+(4420,6640)
+(4421,6653)
+(4422,6655)
+(4424,6653)
+(4426,6655)
+(4427,6639)
+(4425,6636)
+(4425,6629)
+(4422,6616)
+(4422,6588)
+(4421,6585)
+(4420,6585)
+(4421,6579)
+(4425,6572)
+(4429,6571)
+(4430,6574)
+(4433,6590)
+(4438,6593)
+(4441,6604)
+(4441,6612)
+(4440,6634)
+(4437,6643)
+(4437,6647)
+(4435,6654)
+(4434,6660)
+(4437,6666)
+(4439,6664)
+(4441,6666)
+(4442,6672)
+(4443,6687)
+(4442,6694)
+(4440,6692)
+(4440,6687)
+(4439,6683)
+(4440,6676)
+(4439,6672)
+(4432,6678)
+(4426,6699)
+(4423,6721)
+(4422,6735)
+(4423,6749)
+(4424,6767)
+(4428,6777)
+(4433,6776)
+(4437,6769)
+(4440,6769)
+(4435,6779)
+(4433,6788)
+(4421,6804)
+(4416,6806)
+(4415,6804)
+(4414,6797)
+(4407,6788)
+(4405,6793)
+(4402,6796)
+(4400,6810)
+(4390,6809)
+(4386,6811)
+(4380,6807)
+(4377,6809)
+(4373,6798)
+(4372,6788)
+(4370,6785)
+(4363,6792)
+(4361,6798)
+(4357,6817)
+(4356,6845)
+(4357,6838)
+(4358,6823)
+(4361,6801)
+(4364,6793)
+(4371,6789)
+(4373,6802)
+(4378,6812)
+(4381,6811)
+(4386,6816)
+(4390,6812)
+(4395,6814)
+(4397,6819)
+(4399,6822)
+(4399,6831)
+(4400,6842)
+(4401,6838)
+(4401,6831)
+(4401,6826)
+(4406,6812)
+(4410,6809)
+(4412,6831)
+(4415,6846)
+(4415,6872)
+(4416,6892)
+(4421,6910)
+(4422,6926)
+(4422,6949)
+(4420,6968)
+(4420,6995)
+(4415,7035)
+(4415,7063)
+(4415,7077)
+(4414,7118)
+(4413,7130)
+(4409,7140)
+(4407,7135)
+(4408,7124)
+(4407,7121)
+(4409,7115)
+(4409,7109)
+(4405,7101)
+(4403,7102)
+(4402,7106)
+(4400,7102)
+(4397,7101)
+(4394,7104)
+(4392,7109)
+(4386,7139)
+(4384,7155)
+(4384,7172)
+(4380,7175)
+(4380,7180)
+(4376,7189)
+(4374,7216)
+(4372,7233)
+(4373,7234)
+(4374,7226)
+(4376,7210)
+(4377,7194)
+(4378,7189)
+(4380,7185)
+(4381,7189)
+(4379,7235)
+(4378,7242)
+(4376,7262)
+(4378,7283)
+(4378,7301)
+(4377,7305)
+(4378,7307)
+(4378,7312)
+(4377,7318)
+(4375,7315)
+(4373,7323)
+(4372,7345)
+(4369,7359)
+(4367,7383)
+(4364,7401)
+(4363,7408)
+(4365,7420)
+(4365,7427)
+(4363,7447)
+(4358,7461)
+(4358,7484)
+(4355,7488)
+(4352,7508)
+(4347,7515)
+(4345,7527)
+(4341,7537)
+(4340,7542)
+(4340,7553)
+(4336,7567)
+(4337,7575)
+(4341,7582)
+(4334,7595)
+(4331,7595)
+(4328,7605)
+(4321,7608)
+(4311,7628)
+(4306,7625)
+(4295,7632)
+(4284,7633)
+(4283,7637)
+(4289,7639)
+(4305,7631)
+(4310,7634)
+(4314,7640)
+(4318,7633)
+(4320,7623)
+(4324,7618)
+(4337,7614)
+(4343,7603)
+(4344,7603)
+(4344,7617)
+(4344,7631)
+(4341,7647)
+(4341,7660)
+(4335,7671)
+(4335,7665)
+(4334,7665)
+(4334,7672)
+(4331,7684)
+(4321,7706)
+(4318,7706)
+(4314,7712)
+(4313,7717)
+(4307,7719)
+(4304,7737)
+(4308,7751)
+(4320,7741)
+(4321,7744)
+(4312,7758)
+(4308,7758)
+(4303,7772)
+(4303,7771)
+(4304,7766)
+(4306,7758)
+(4303,7747)
+(4302,7734)
+(4299,7729)
+(4296,7731)
+(4296,7734)
+(4296,7746)
+(4295,7751)
+(4292,7755)
+(4290,7754)
+(4288,7759)
+(4280,7763)
+(4277,7771)
+(4276,7779)
+(4273,7782)
+(4268,7785)
+(4267,7784)
+(4265,7778)
+(4266,7793)
+(4265,7796)
+(4263,7796)
+(4265,7804)
+(4259,7813)
+(4258,7810)
+(4256,7819)
+(4256,7828)
+(4253,7830)
+(4252,7838)
+(4253,7842)
+(4257,7843)
+(4258,7848)
+(4250,7854)
+(4246,7853)
+(4245,7855)
+(4244,7861)
+(4245,7873)
+(4253,7892)
+(4266,7906)
+(4268,7905)
+(4269,7912)
+(4270,7912)
+(4271,7909)
+(4272,7911)
+(4274,7920)
+(4273,7931)
+(4274,7927)
+(4275,7917)
+(4278,7917)
+(4301,7936)
+(4313,7952)
+(4317,7964)
+(4310,7966)
+(4306,7963)
+(4304,7975)
+(4294,7990)
+(4288,8012)
+(4283,8044)
+(4282,8067)
+(4284,8077)
+(4282,8085)
+(4278,8079)
+(4276,8080)
+(4281,8086)
+(4285,8082)
+(4285,8086)
+(4289,8089)
+(4292,8101)
+(4292,8104)
+(4290,8107)
+(4292,8110)
+(4293,8114)
+(4292,8119)
+(4292,8125)
+(4294,8120)
+(4294,8122)
+(4297,8135)
+(4298,8152)
+(4297,8168)
+(4295,8175)
+(4294,8189)
+(4291,8191)
+(4290,8194)
+(4288,8193)
+(4291,8197)
+(4292,8203)
+(4290,8209)
+(4288,8213)
+(4287,8218)
+(4285,8224)
+(4284,8234)
+(4282,8236)
+(4282,8234)
+(4281,8237)
+(4282,8244)
+(4282,8241)
+(4281,8243)
+(4281,8249)
+(4279,8247)
+(4277,8249)
+(4277,8245)
+(4276,8250)
+(4274,8253)
+(4277,8262)
+(4275,8260)
+(4275,8264)
+(4273,8260)
+(4273,8254)
+(4272,8252)
+(4271,8263)
+(4267,8268)
+(4267,8271)
+(4269,8275)
+(4268,8278)
+(4267,8277)
+(4266,8279)
+(4268,8284)
+(4271,8281)
+(4272,8274)
+(4271,8271)
+(4272,8271)
+(4273,8265)
+(4274,8265)
+(4275,8270)
+(4273,8276)
+(4273,8283)
+(4274,8285)
+(4274,8290)
+(4276,8294)
+(4278,8280)
+(4279,8285)
+(4279,8302)
+(4280,8299)
+(4281,8283)
+(4280,8280)
+(4282,8276)
+(4283,8277)
+(4282,8273)
+(4283,8270)
+(4284,8273)
+(4287,8279)
+(4294,8284)
+(4297,8309)
+(4295,8304)
+(4294,8304)
+(4293,8306)
+(4292,8308)
+(4293,8315)
+(4295,8316)
+(4296,8313)
+(4299,8323)
+(4295,8335)
+(4294,8343)
+(4288,8347)
+(4287,8349)
+(4286,8347)
+(4285,8353)
+(4285,8361)
+(4288,8363)
+(4290,8367)
+(4289,8378)
+(4288,8381)
+(4287,8383)
+(4289,8391)
+(4288,8402)
+(4290,8399)
+(4292,8400)
+(4295,8390)
+(4300,8384)
+(4307,8381)
+(4311,8385)
+(4311,8388)
+(4312,8382)
+(4315,8377)
+(4317,8360)
+(4317,8378)
+(4320,8383)
+(4324,8383)
+(4330,8392)
+(4330,8397)
+(4328,8404)
+(4330,8412)
+(4332,8412)
+(4334,8402)
+(4334,8374)
+(4331,8366)
+(4330,8373)
+(4330,8362)
+(4331,8355)
+(4329,8356)
+(4328,8361)
+(4328,8360)
+(4330,8351)
+(4334,8345)
+(4340,8350)
+(4345,8360)
+(4345,8363)
+(4350,8372)
+(4350,8387)
+(4349,8399)
+(4348,8406)
+(4349,8424)
+(4350,8440)
+(4352,8446)
+(4352,8452)
+(4354,8456)
+(4355,8466)
+(4355,8457)
+(4361,8461)
+(4367,8445)
+(4368,8440)
+(4372,8435)
+(4374,8439)
+(4371,8481)
+(4366,8494)
+(4364,8512)
+(4362,8545)
+(4362,8556)
+(4361,8583)
+(4361,8613)
+(4359,8629)
+(4359,8648)
+(4358,8664)
+(4356,8680)
+(4354,8722)
+(4350,8749)
+(4347,8772)
+(4344,8791)
+(4341,8811)
+(4340,8805)
+(4341,8788)
+(4340,8779)
+(4341,8727)
+(4340,8721)
+(4344,8715)
+(4345,8710)
+(4344,8705)
+(4346,8698)
+(4344,8686)
+(4336,8675)
+(4333,8671)
+(4337,8664)
+(4338,8657)
+(4336,8654)
+(4336,8652)
+(4336,8646)
+(4333,8651)
+(4330,8664)
+(4330,8672)
+(4331,8678)
+(4334,8685)
+(4334,8694)
+(4336,8705)
+(4338,8763)
+(4339,8816)
+(4335,8812)
+(4322,8786)
+(4312,8761)
+(4311,8757)
+(4316,8760)
+(4322,8759)
+(4322,8766)
+(4328,8780)
+(4329,8774)
+(4330,8775)
+(4330,8772)
+(4330,8764)
+(4327,8764)
+(4324,8759)
+(4326,8756)
+(4329,8757)
+(4329,8751)
+(4331,8750)
+(4332,8754)
+(4334,8746)
+(4335,8737)
+(4333,8741)
+(4333,8745)
+(4325,8737)
+(4321,8741)
+(4322,8745)
+(4321,8748)
+(4316,8748)
+(4315,8745)
+(4315,8735)
+(4312,8721)
+(4315,8712)
+(4316,8705)
+(4318,8699)
+(4315,8698)
+(4313,8703)
+(4311,8713)
+(4310,8713)
+(4307,8704)
+(4307,8693)
+(4304,8695)
+(4300,8693)
+(4302,8698)
+(4300,8701)
+(4302,8705)
+(4301,8715)
+(4299,8719)
+(4304,8733)
+(4303,8745)
+(4306,8756)
+(4307,8764)
+(4312,8775)
+(4314,8781)
+(4325,8798)
+(4339,8828)
+(4340,8849)
+(4339,8896)
+(4338,8910)
+(4336,8923)
+(4333,8951)
+(4330,8972)
+(4327,8983)
+(4317,9001)
+(4313,9004)
+(4310,8999)
+(4309,8992)
+(4306,8983)
+(4306,8978)
+(4309,8974)
+(4314,8962)
+(4313,8957)
+(4312,8959)
+(4311,8958)
+(4309,8952)
+(4306,8949)
+(4306,8946)
+(4309,8930)
+(4306,8933)
+(4305,8942)
+(4302,8939)
+(4302,8931)
+(4300,8929)
+(4300,8940)
+(4302,8946)
+(4300,8966)
+(4299,8981)
+(4300,8998)
+(4295,9006)
+(4294,9000)
+(4296,9001)
+(4296,8998)
+(4294,8996)
+(4292,8998)
+(4290,8993)
+(4288,8992)
+(4290,9003)
+(4291,9016)
+(4290,9019)
+(4291,9026)
+(4290,9028)
+(4291,9033)
+(4290,9039)
+(4287,9039)
+(4284,9033)
+(4280,9031)
+(4279,9020)
+(4277,9018)
+(4276,9011)
+(4273,9001)
+(4272,9001)
+(4273,9009)
+(4276,9017)
+(4276,9023)
+(4280,9034)
+(4283,9038)
+(4283,9044)
+(4282,9040)
+(4276,9036)
+(4280,9047)
+(4282,9052)
+(4284,9062)
+(4282,9070)
+(4281,9087)
+(4278,9098)
+(4275,9104)
+(4271,9106)
+(4260,9128)
+(4259,9128)
+(4259,9124)
+(4258,9115)
+(4259,9099)
+(4259,9100)
+(4256,9122)
+(4253,9133)
+(4251,9152)
+(4247,9152)
+(4250,9155)
+(4250,9165)
+(4250,9185)
+(4251,9187)
+(4251,9199)
+(4252,9200)
+(4253,9207)
+(4252,9208)
+(4253,9217)
+(4251,9219)
+(4256,9250)
+(4258,9254)
+(4258,9265)
+(4262,9300)
+(4263,9330)
+(4260,9330)
+(4258,9332)
+(4264,9336)
+(4266,9356)
+(4265,9393)
+(4266,9409)
+(4263,9478)
+(4257,9515)
+(4249,9555)
+(4240,9580)
+(4237,9587)
+(4225,9602)
+(4217,9606)
+(4214,9605)
+(4212,9600)
+(4208,9597)
+(4207,9596)
+(4208,9581)
+(4206,9590)
+(4206,9595)
+(4202,9591)
+(4200,9592)
+(4197,9585)
+(4194,9581)
+(4190,9586)
+(4190,9584)
+(4188,9588)
+(4184,9584)
+(4188,9592)
+(4182,9611)
+(4183,9608)
+(4184,9610)
+(4182,9618)
+(4179,9619)
+(4181,9623)
+(4181,9634)
+(4179,9648)
+(4178,9652)
+(4178,9655)
+(4175,9660)
+(4168,9655)
+(4158,9661)
+(4154,9660)
+(4150,9663)
+(4146,9658)
+(4144,9662)
+(4143,9675)
+(4139,9685)
+(4135,9683)
+(4127,9673)
+(4121,9673)
+(4114,9664)
+(4113,9660)
+(4114,9645)
+(4112,9648)
+(4111,9657)
+(4112,9663)
+(4113,9668)
+(4121,9677)
+(4122,9680)
+(4124,9678)
+(4128,9679)
+(4135,9695)
+(4141,9694)
+(4144,9690)
+(4150,9688)
+(4153,9683)
+(4157,9688)
+(4160,9685)
+(4160,9688)
+(4161,9689)
+(4163,9686)
+(4165,9696)
+(4169,9701)
+(4170,9706)
+(4172,9709)
+(4171,9715)
+(4172,9720)
+(4175,9721)
+(4177,9732)
+(4178,9730)
+(4179,9732)
+(4179,9738)
+(4182,9740)
+(4180,9746)
+(4181,9756)
+(4179,9763)
+(4179,9770)
+(4183,9793)
+(4181,9816)
+(4182,9825)
+(4186,9841)
+(4185,9846)
+(4183,9849)
+(4178,9863)
+(4176,9872)
+(4175,9885)
+(4175,9938)
+(4174,9950)
+(4171,9968)
+(4171,9999)
+(4171,10002)
+(4170,10001)
+(4169,10012)
+(4174,10030)
+(4185,10059)
+(4187,10067)
+(4183,10075)
+(4183,10084)
+(4179,10075)
+(4173,10095)
+(4163,10092)
+(4157,10094)
+(4154,10097)
+(4153,10105)
+(4152,10124)
+(4146,10148)
+(4146,10155)
+(4145,10162)
+(4139,10166)
+(4130,10167)
+(4127,10175)
+(4127,10187)
+(4129,10221)
+(4128,10230)
+(4125,10237)
+(4128,10232)
+(4129,10234)
+(4130,10226)
+(4132,10227)
+(4135,10240)
+(4128,10242)
+(4130,10244)
+(4136,10241)
+(4139,10254)
+(4142,10257)
+(4143,10259)
+(4141,10263)
+(4142,10270)
+(4143,10262)
+(4149,10258)
+(4150,10253)
+(4154,10256)
+(4158,10255)
+(4163,10245)
+(4167,10244)
+(4168,10241)
+(4172,10240)
+(4176,10235)
+(4176,10228)
+(4175,10215)
+(4176,10210)
+(4177,10207)
+(4180,10209)
+(4184,10217)
+(4185,10230)
+(4187,10234)
+(4188,10233)
+(4193,10234)
+(4196,10231)
+(4204,10234)
+(4206,10232)
+(4207,10224)
+(4208,10228)
+(4206,10248)
+(4204,10283)
+(4200,10316)
+(4199,10329)
+(4198,10350)
+(4199,10364)
+(4194,10370)
+(4192,10382)
+(4191,10390)
+(4189,10393)
+(4187,10390)
+(4187,10393)
+(4187,10402)
+(4189,10408)
+(4191,10408)
+(4192,10404)
+(4195,10396)
+(4194,10392)
+(4193,10390)
+(4194,10390)
+(4196,10393)
+(4197,10408)
+(4193,10422)
+(4192,10421)
+(4190,10425)
+(4193,10426)
+(4191,10434)
+(4193,10442)
+(4193,10459)
+(4192,10467)
+(4191,10503)
+(4193,10523)
+(4192,10509)
+(4191,10509)
+(4191,10518)
+(4191,10526)
+(4193,10531)
+(4194,10543)
+(4193,10550)
+(4193,10567)
+(4188,10577)
+(4187,10574)
+(4185,10590)
+(4180,10604)
+(4178,10622)
+(4176,10647)
+(4173,10661)
+(4173,10656)
+(4172,10659)
+(4172,10664)
+(4170,10674)
+(4168,10685)
+(4166,10694)
+(4168,10698)
+(4168,10695)
+(4169,10700)
+(4168,10709)
+(4161,10740)
+(4159,10744)
+(4159,10733)
+(4161,10731)
+(4162,10721)
+(4163,10720)
+(4158,10720)
+(4157,10723)
+(4158,10733)
+(4157,10740)
+(4158,10744)
+(4156,10757)
+(4153,10761)
+(4140,10797)
+(4140,10790)
+(4147,10774)
+(4145,10775)
+(4144,10779)
+(4141,10780)
+(4139,10785)
+(4139,10800)
+(3904,10800)
+(3901,10788)
+(3896,10781)
+(3889,10769)
+(3889,10767)
+(3889,10765)
+(3888,10755)
+(3887,10749)
+(3876,10717)
+(3875,10710)
+(3877,10710)
+(3878,10722)
+(3880,10725)
+(3882,10724)
+(3879,10695)
+(3879,10696)
+(3881,10695)
+(3881,10685)
+(3880,10680)
+(3882,10675)
+(3882,10667)
+(3883,10657)
+(3885,10658)
+(3887,10653)
+(3887,10649)
+(3889,10650)
+(3889,10645)
+(3890,10643)
+(3891,10649)
+(3895,10646)
+(3896,10635)
+(3901,10630)
+(3905,10614)
+(3901,10595)
+(3905,10585)
+(3905,10583)
+(3903,10583)
+(3903,10578)
+(3902,10580)
+(3902,10586)
+(3900,10590)
+(3900,10594)
+(3900,10602)
+(3902,10609)
+(3903,10613)
+(3902,10618)
+(3900,10620)
+(3899,10624)
+(3895,10633)
+(3893,10635)
+(3891,10633)
+(3890,10638)
+(3889,10637)
+(3887,10631)
+(3886,10622)
+(3887,10620)
+(3888,10616)
+(3891,10613)
+(3891,10607)
+(3892,10605)
+(3892,10598)
+(3889,10592)
+(3888,10586)
+(3891,10584)
+(3895,10571)
+(3895,10565)
+(3897,10564)
+(3894,10556)
+(3892,10556)
+(3890,10552)
+(3887,10543)
+(3887,10533)
+(3886,10523)
+(3885,10519)
+(3886,10514)
+(3885,10509)
+(3886,10503)
+(3881,10486)
+(3881,10482)
+(3881,10466)
+(3880,10471)
+(3880,10479)
+(3880,10486)
+(3884,10503)
+(3884,10517)
+(3885,10529)
+(3885,10542)
+(3887,10550)
+(3894,10562)
+(3892,10572)
+(3890,10574)
+(3889,10577)
+(3886,10578)
+(3883,10585)
+(3879,10579)
+(3878,10569)
+(3872,10567)
+(3874,10568)
+(3877,10573)
+(3877,10580)
+(3881,10587)
+(3881,10590)
+(3877,10602)
+(3874,10604)
+(3876,10610)
+(3878,10611)
+(3882,10619)
+(3883,10629)
+(3887,10640)
+(3885,10649)
+(3879,10647)
+(3873,10642)
+(3866,10645)
+(3858,10660)
+(3855,10669)
+(3853,10677)
+(3852,10686)
+(3852,10691)
+(3854,10686)
+(3855,10685)
+(3857,10692)
+(3861,10697)
+(3865,10694)
+(3866,10692)
+(3864,10691)
+(3867,10691)
+(3856,10702)
+(3850,10706)
+(3842,10715)
+(3844,10711)
+(3844,10708)
+(3842,10704)
+(3840,10703)
+(3839,10709)
+(3838,10703)
+(3838,10705)
+(3838,10712)
+(3837,10715)
+(3837,10719)
+(3840,10718)
+(3834,10722)
+(3818,10726)
+(3819,10723)
+(3820,10716)
+(3817,10719)
+(3817,10723)
+(3816,10723)
+(3815,10718)
+(3817,10717)
+(3818,10711)
+(3817,10712)
+(3815,10710)
+(3816,10708)
+(3817,10708)
+(3818,10701)
+(3815,10696)
+(3814,10696)
+(3811,10702)
+(3811,10704)
+(3814,10708)
+(3815,10711)
+(3814,10720)
+(3814,10723)
+(3809,10723)
+(3807,10719)
+(3806,10718)
+(3805,10715)
+(3803,10721)
+(3804,10726)
+(3806,10730)
+(3812,10725)
+(3815,10725)
+(3815,10727)
+(3810,10728)
+(3799,10740)
+(3804,10730)
+(3803,10728)
+(3801,10729)
+(3800,10730)
+(3800,10734)
+(3798,10736)
+(3797,10743)
+(3794,10748)
+(3794,10752)
+(3793,10756)
+(3789,10765)
+(3783,10764)
+(3784,10762)
+(3783,10758)
+(3781,10755)
+(3780,10754)
+(3774,10759)
+(3772,10770)
+(3765,10776)
+(3762,10776)
+(3760,10773)
+(3757,10774)
+(3757,10766)
+(3752,10764)
+(3750,10761)
+(3750,10751)
+(3748,10746)
+(3745,10749)
+(3740,10749)
+(3737,10746)
+(3737,10744)
+(3741,10738)
+(3749,10697)
+(3753,10682)
+(3754,10663)
+(3755,10638)
+(3755,10640)
+(3757,10636)
+(3761,10640)
+(3764,10639)
+(3766,10640)
+(3766,10644)
+(3766,10646)
+(3767,10645)
+(3769,10647)
+(3768,10640)
+(3764,10635)
+(3763,10636)
+(3762,10632)
+(3763,10628)
+(3767,10629)
+(3770,10622)
+(3771,10622)
+(3772,10619)
+(3767,10620)
+(3766,10623)
+(3763,10618)
+(3762,10616)
+(3760,10616)
+(3757,10621)
+(3755,10623)
+(3755,10630)
+(3754,10636)
+(3752,10611)
+(3750,10601)
+(3751,10601)
+(3752,10603)
+(3752,10601)
+(3749,10596)
+(3748,10596)
+(3748,10598)
+(3744,10585)
+(3739,10577)
+(3734,10548)
+(3730,10532)
+(3724,10518)
+(3727,10524)
+(3726,10518)
+(3730,10516)
+(3723,10515)
+(3721,10510)
+(3716,10489)
+(3715,10486)
+(3716,10488)
+(3717,10487)
+(3717,10482)
+(3719,10476)
+(3717,10477)
+(3713,10484)
+(3712,10482)
+(3710,10476)
+(3708,10467)
+(3709,10462)
+(3710,10463)
+(3711,10461)
+(3708,10457)
+(3709,10451)
+(3708,10449)
+(3709,10452)
+(3709,10451)
+(3710,10444)
+(3710,10445)
+(3709,10440)
+(3707,10442)
+(3707,10446)
+(3705,10441)
+(3703,10439)
+(3702,10435)
+(3699,10428)
+(3701,10429)
+(3702,10422)
+(3705,10417)
+(3705,10414)
+(3699,10408)
+(3693,10409)
+(3693,10401)
+(3691,10397)
+(3688,10398)
+(3686,10393)
+(3683,10385)
+(3685,10379)
+(3687,10377)
+(3687,10375)
+(3688,10373)
+(3686,10363)
+(3682,10374)
+(3678,10377)
+(3677,10371)
+(3680,10360)
+(3676,10366)
+(3674,10360)
+(3672,10359)
+(3671,10353)
+(3674,10341)
+(3670,10342)
+(3668,10346)
+(3667,10339)
+(3668,10335)
+(3666,10338)
+(3666,10343)
+(3665,10345)
+(3664,10346)
+(3665,10349)
+(3663,10349)
+(3661,10343)
+(3661,10337)
+(3661,10333)
+(3664,10329)
+(3666,10321)
+(3662,10327)
+(3661,10330)
+(3658,10332)
+(3657,10331)
+(3656,10327)
+(3652,10324)
+(3651,10321)
+(3653,10319)
+(3655,10320)
+(3657,10317)
+(3651,10317)
+(3650,10311)
+(3651,10304)
+(3649,10300)
+(3648,10292)
+(3646,10297)
+(3645,10298)
+(3643,10289)
+(3641,10285)
+(3644,10288)
+(3647,10284)
+(3643,10284)
+(3641,10282)
+(3638,10282)
+(3633,10271)
+(3634,10265)
+(3632,10260)
+(3630,10251)
+(3632,10245)
+(3630,10245)
+(3630,10248)
+(3627,10247)
+(3625,10239)
+(3626,10237)
+(3627,10236)
+(3627,10231)
+(3626,10231)
+(3626,10235)
+(3623,10237)
+(3622,10236)
+(3621,10239)
+(3620,10240)
+(3616,10230)
+(3613,10228)
+(3598,10224)
+(3595,10215)
+(3599,10206)
+(3601,10207)
+(3602,10205)
+(3604,10196)
+(3611,10190)
+(3613,10191)
+(3614,10198)
+(3615,10193)
+(3614,10189)
+(3617,10185)
+(3625,10182)
+(3626,10176)
+(3628,10174)
+(3628,10172)
+(3633,10155)
+(3634,10156)
+(3633,10160)
+(3634,10162)
+(3637,10157)
+(3637,10153)
+(3635,10152)
+(3635,10148)
+(3634,10149)
+(3634,10142)
+(3633,10135)
+(3634,10126)
+(3633,10120)
+(3636,10109)
+(3636,10100)
+(3635,10091)
+(3632,10078)
+(3631,10069)
+(3633,10066)
+(3632,10065)
+(3629,10066)
+(3628,10061)
+(3627,10057)
+(3626,10052)
+(3628,10049)
+(3626,10048)
+(3625,10047)
+(3628,10040)
+(3624,10042)
+(3625,10037)
+(3623,10038)
+(3622,10038)
+(3621,10031)
+(3623,10027)
+(3625,10024)
+(3626,10021)
+(3619,10023)
+(3618,10014)
+(3617,10016)
+(3615,10016)
+(3613,10010)
+(3600,9993)
+(3591,9978)
+(3589,9967)
+(3590,9966)
+(3595,9966)
+(3598,9969)
+(3601,9968)
+(3607,9970)
+(3610,9975)
+(3612,9977)
+(3615,9976)
+(3620,9976)
+(3624,9974)
+(3623,9976)
+(3624,9980)
+(3627,9981)
+(3629,9984)
+(3630,9983)
+(3628,9979)
+(3629,9978)
+(3629,9973)
+(3626,9960)
+(3623,9955)
+(3622,9957)
+(3625,9963)
+(3627,9972)
+(3626,9963)
+(3623,9959)
+(3620,9951)
+(3617,9946)
+(3615,9939)
+(3613,9931)
+(3613,9927)
+(3615,9926)
+(3611,9926)
+(3608,9917)
+(3606,9915)
+(3605,9912)
+(3608,9909)
+(3609,9911)
+(3610,9911)
+(3608,9907)
+(3607,9903)
+(3608,9900)
+(3605,9900)
+(3604,9903)
+(3605,9904)
+(3605,9907)
+(3602,9909)
+(3599,9913)
+(3598,9909)
+(3590,9900)
+(3589,9895)
+(3587,9889)
+(3589,9886)
+(3591,9887)
+(3596,9884)
+(3602,9876)
+(3605,9872)
+(3607,9867)
+(3604,9861)
+(3605,9859)
+(3603,9859)
+(3601,9862)
+(3600,9861)
+(3599,9858)
+(3598,9850)
+(3595,9846)
+(3591,9851)
+(3592,9843)
+(3594,9842)
+(3595,9846)
+(3600,9852)
+(3599,9847)
+(3602,9842)
+(3602,9834)
+(3601,9831)
+(3602,9832)
+(3603,9830)
+(3603,9829)
+(3603,9824)
+(3602,9818)
+(3601,9817)
+(3599,9819)
+(3598,9821)
+(3598,9823)
+(3599,9828)
+(3593,9821)
+(3594,9810)
+(3591,9807)
+(3589,9802)
+(3577,9803)
+(3575,9800)
+(3575,9796)
+(3574,9790)
+(3573,9792)
+(3570,9790)
+(3566,9798)
+(3563,9800)
+(3555,9797)
+(3555,9794)
+(3558,9797)
+(3557,9792)
+(3558,9790)
+(3556,9785)
+(3554,9784)
+(3552,9785)
+(3552,9784)
+(3551,9787)
+(3549,9791)
+(3543,9792)
+(3542,9789)
+(3545,9790)
+(3547,9784)
+(3548,9784)
+(3550,9781)
+(3549,9779)
+(3550,9777)
+(3548,9776)
+(3548,9773)
+(3542,9780)
+(3542,9783)
+(3539,9782)
+(3537,9779)
+(3536,9771)
+(3537,9775)
+(3539,9773)
+(3534,9768)
+(3532,9760)
+(3530,9763)
+(3532,9763)
+(3531,9766)
+(3532,9767)
+(3530,9766)
+(3525,9751)
+(3520,9744)
+(3507,9728)
+(3484,9716)
+(3482,9716)
+(3474,9722)
+(3471,9726)
+(3468,9735)
+(3467,9746)
+(3464,9744)
+(3463,9740)
+(3461,9740)
+(3461,9742)
+(3466,9749)
+(3472,9748)
+(3475,9750)
+(3477,9753)
+(3477,9759)
+(3478,9762)
+(3476,9766)
+(3475,9771)
+(3471,9780)
+(3471,9792)
+(3466,9796)
+(3465,9797)
+(3460,9792)
+(3458,9793)
+(3456,9792)
+(3455,9787)
+(3449,9783)
+(3446,9771)
+(3441,9764)
+(3441,9766)
+(3433,9765)
+(3423,9770)
+(3413,9767)
+(3407,9767)
+(3404,9771)
+(3402,9775)
+(3404,9780)
+(3405,9785)
+(3404,9787)
+(3404,9793)
+(3402,9795)
+(3398,9793)
+(3394,9795)
+(3393,9794)
+(3389,9796)
+(3387,9794)
+(3383,9799)
+(3379,9800)
+(3378,9799)
+(3375,9800)
+(3372,9801)
+(3367,9788)
+(3362,9783)
+(3361,9782)
+(3362,9773)
+(3366,9765)
+(3369,9762)
+(3373,9755)
+(3373,9751)
+(3374,9756)
+(3376,9760)
+(3381,9763)
+(3382,9771)
+(3384,9775)
+(3386,9776)
+(3388,9784)
+(3391,9786)
+(3393,9779)
+(3391,9776)
+(3387,9776)
+(3386,9774)
+(3389,9765)
+(3389,9762)
+(3389,9758)
+(3385,9754)
+(3386,9751)
+(3384,9748)
+(3384,9744)
+(3383,9744)
+(3380,9749)
+(3376,9754)
+(3374,9751)
+(3374,9749)
+(3372,9746)
+(3370,9733)
+(3366,9726)
+(3364,9722)
+(3361,9723)
+(3357,9721)
+(3352,9716)
+(3348,9715)
+(3343,9709)
+(3338,9705)
+(3329,9703)
+(3322,9703)
+(3308,9709)
+(3307,9710)
+(3304,9713)
+(3301,9718)
+(3294,9724)
+(3292,9729)
+(3290,9729)
+(3289,9726)
+(3286,9727)
+(3282,9720)
+(3279,9719)
+(3275,9709)
+(3270,9704)
+(3271,9697)
+(3270,9691)
+(3271,9688)
+(3269,9678)
+(3271,9674)
+(3273,9673)
+(3275,9671)
+(3275,9667)
+(3273,9651)
+(3272,9643)
+(3271,9643)
+(3262,9624)
+(3255,9615)
+(3252,9606)
+(3247,9599)
+(3244,9599)
+(3239,9594)
+(3231,9591)
+(3225,9590)
+(3221,9592)
+(3219,9589)
+(3215,9595)
+(3220,9592)
+(3220,9594)
+(3214,9598)
+(3211,9598)
+(3208,9596)
+(3211,9591)
+(3212,9589)
+(3211,9588)
+(3210,9589)
+(3209,9588)
+(3209,9591)
+(3204,9593)
+(3203,9596)
+(3200,9595)
+(3200,9598)
+(3198,9598)
+(3196,9595)
+(3192,9598)
+(3196,9598)
+(3196,9601)
+(3186,9603)
+(3186,9598)
+(3189,9596)
+(3193,9586)
+(3195,9587)
+(3197,9589)
+(3196,9586)
+(3194,9583)
+(3196,9577)
+(3194,9569)
+(3189,9563)
+(3190,9557)
+(3185,9542)
+(3181,9535)
+(3173,9523)
+(3177,9520)
+(3179,9521)
+(3181,9518)
+(3183,9516)
+(3184,9512)
+(3182,9510)
+(3181,9506)
+(3180,9505)
+(3178,9507)
+(3177,9505)
+(3174,9507)
+(3175,9509)
+(3174,9512)
+(3176,9509)
+(3177,9511)
+(3176,9518)
+(3174,9519)
+(3172,9516)
+(3171,9518)
+(3169,9515)
+(3170,9513)
+(3167,9514)
+(3167,9510)
+(3165,9509)
+(3165,9510)
+(3164,9514)
+(3163,9516)
+(3159,9514)
+(3157,9512)
+(3159,9505)
+(3157,9507)
+(3156,9506)
+(3154,9511)
+(3151,9511)
+(3150,9510)
+(3149,9512)
+(3148,9508)
+(3146,9508)
+(3145,9505)
+(3146,9512)
+(3143,9514)
+(3141,9510)
+(3140,9513)
+(3138,9513)
+(3136,9511)
+(3136,9505)
+(3134,9506)
+(3133,9503)
+(3131,9506)
+(3127,9502)
+(3128,9500)
+(3127,9499)
+(3124,9500)
+(3122,9497)
+(3116,9497)
+(3114,9491)
+(3108,9487)
+(3106,9481)
+(3103,9479)
+(3100,9475)
+(3098,9475)
+(3098,9473)
+(3094,9466)
+(3093,9461)
+(3089,9452)
+(3086,9449)
+(3084,9451)
+(3083,9448)
+(3081,9448)
+(3080,9441)
+(3074,9435)
+(3072,9433)
+(3072,9429)
+(3064,9417)
+(3061,9409)
+(3057,9407)
+(3053,9402)
+(3053,9399)
+(3059,9405)
+(3064,9405)
+(3066,9402)
+(3071,9402)
+(3074,9400)
+(3075,9398)
+(3076,9394)
+(3079,9391)
+(3085,9391)
+(3088,9389)
+(3091,9388)
+(3105,9390)
+(3116,9390)
+(3137,9384)
+(3151,9377)
+(3150,9382)
+(3147,9382)
+(3149,9386)
+(3151,9386)
+(3151,9381)
+(3153,9378)
+(3154,9376)
+(3171,9366)
+(3175,9366)
+(3178,9366)
+(3181,9366)
+(3184,9365)
+(3186,9365)
+(3190,9364)
+(3194,9363)
+(3197,9363)
+(3200,9362)
+(3203,9361)
+(3207,9360)
+(3210,9360)
+(3213,9359)
+(3217,9358)
+(3220,9358)
+(3223,9357)
+(3226,9357)
+(3230,9355)
+(3231,9356)
+(3235,9354)
+(3238,9353)
+(3242,9353)
+(3245,9352)
+(3248,9351)
+(3251,9348)
+(3254,9347)
+(3258,9346)
+(3261,9345)
+(3264,9344)
+(3267,9343)
+(3271,9342)
+(3274,9341)
+(3277,9340)
+(3281,9340)
+(3284,9339)
+(3287,9338)
+(3289,9339)
+(3295,9336)
+(3308,9334)
+(3320,9333)
+(3334,9335)
+(3337,9337)
+(3355,9339)
+(3363,9341)
+(3366,9343)
+(3366,9346)
+(3368,9344)
+(3396,9356)
+(3400,9357)
+(3409,9367)
+(3411,9370)
+(3410,9370)
+(3406,9364)
+(3403,9364)
+(3407,9368)
+(3409,9372)
+(3411,9372)
+(3417,9387)
+(3421,9391)
+(3425,9392)
+(3426,9393)
+(3424,9399)
+(3422,9400)
+(3425,9403)
+(3427,9402)
+(3446,9419)
+(3452,9419)
+(3459,9416)
+(3464,9411)
+(3464,9405)
+(3468,9412)
+(3469,9414)
+(3471,9419)
+(3468,9424)
+(3466,9430)
+(3466,9440)
+(3467,9446)
+(3469,9450)
+(3473,9454)
+(3477,9455)
+(3479,9458)
+(3481,9459)
+(3481,9463)
+(3479,9468)
+(3479,9475)
+(3479,9483)
+(3481,9493)
+(3480,9496)
+(3477,9500)
+(3478,9501)
+(3480,9498)
+(3482,9497)
+(3482,9494)
+(3496,9520)
+(3505,9542)
+(3507,9546)
+(3511,9549)
+(3508,9554)
+(3512,9551)
+(3520,9564)
+(3521,9569)
+(3523,9570)
+(3528,9577)
+(3530,9577)
+(3532,9583)
+(3537,9585)
+(3541,9584)
+(3543,9587)
+(3545,9587)
+(3550,9594)
+(3554,9603)
+(3559,9612)
+(3561,9620)
+(3567,9627)
+(3573,9629)
+(3577,9652)
+(3583,9658)
+(3586,9666)
+(3591,9675)
+(3603,9688)
+(3604,9690)
+(3604,9695)
+(3606,9698)
+(3607,9703)
+(3610,9709)
+(3615,9716)
+(3619,9715)
+(3620,9715)
+(3619,9712)
+(3625,9715)
+(3629,9727)
+(3632,9732)
+(3633,9744)
+(3637,9750)
+(3636,9757)
+(3639,9766)
+(3646,9773)
+(3647,9781)
+(3646,9785)
+(3647,9787)
+(3648,9786)
+(3649,9791)
+(3649,9798)
+(3648,9798)
+(3645,9796)
+(3643,9799)
+(3645,9798)
+(3650,9804)
+(3652,9814)
+(3652,9822)
+(3656,9825)
+(3660,9811)
+(3660,9808)
+(3661,9808)
+(3663,9811)
+(3664,9816)
+(3667,9816)
+(3669,9818)
+(3674,9836)
+(3678,9837)
+(3680,9841)
+(3682,9841)
+(3686,9838)
+(3687,9831)
+(3685,9827)
+(3687,9825)
+(3694,9830)
+(3698,9831)
+(3701,9841)
+(3707,9844)
+(3710,9842)
+(3713,9844)
+(3719,9843)
+(3722,9846)
+(3726,9844)
+(3729,9846)
+(3732,9845)
+(3736,9847)
+(3740,9854)
+(3742,9864)
+(3745,9866)
+(3747,9871)
+(3748,9875)
+(3748,9883)
+(3745,9895)
+(3745,9905)
+(3743,9914)
+(3739,9917)
+(3739,9920)
+(3744,9914)
+(3747,9905)
+(3748,9908)
+(3749,9921)
+(3747,9928)
+(3746,9937)
+(3747,9939)
+(3750,9919)
+(3751,9902)
+(3753,9895)
+(3755,9882)
+(3761,9875)
+(3763,9862)
+(3761,9856)
+(3759,9837)
+(3756,9835)
+(3757,9824)
+(3754,9809)
+(3753,9796)
+(3751,9793)
+(3748,9793)
+(3747,9790)
+(3746,9793)
+(3744,9794)
+(3743,9799)
+(3741,9801)
+(3740,9794)
+(3738,9793)
+(3738,9790)
+(3737,9787)
+(3732,9785)
+(3727,9788)
+(3726,9785)
+(3724,9790)
+(3721,9786)
+(3719,9786)
+(3718,9782)
+(3716,9780)
+(3715,9783)
+(3708,9777)
+(3707,9779)
+(3705,9794)
+(3703,9798)
+(3701,9799)
+(3700,9797)
+(3699,9792)
+(3697,9793)
+(3698,9788)
+(3697,9786)
+(3696,9784)
+(3693,9785)
+(3691,9780)
+(3695,9777)
+(3695,9773)
+(3697,9774)
+(3698,9771)
+(3700,9776)
+(3703,9771)
+(3703,9768)
+(3701,9759)
+(3700,9758)
+(3698,9762)
+(3698,9765)
+(3696,9765)
+(3697,9760)
+(3700,9752)
+(3700,9744)
+(3698,9741)
+(3697,9737)
+(3695,9737)
+(3694,9733)
+(3692,9733)
+(3688,9725)
+(3687,9723)
+(3685,9722)
+(3683,9716)
+(3686,9713)
+(3681,9712)
+(3683,9708)
+(3678,9705)
+(3676,9699)
+(3676,9694)
+(3674,9697)
+(3672,9694)
+(3672,9688)
+(3670,9685)
+(3668,9686)
+(3665,9678)
+(3664,9673)
+(3660,9670)
+(3658,9662)
+(3655,9657)
+(3655,9654)
+(3648,9649)
+(3644,9648)
+(3647,9640)
+(3644,9637)
+(3644,9635)
+(3645,9634)
+(3643,9627)
+(3644,9624)
+(3645,9625)
+(3645,9623)
+(3643,9620)
+(3642,9621)
+(3640,9617)
+(3638,9616)
+(3635,9608)
+(3641,9607)
+(3641,9611)
+(3643,9611)
+(3644,9613)
+(3647,9613)
+(3650,9610)
+(3651,9614)
+(3654,9614)
+(3655,9618)
+(3654,9619)
+(3655,9621)
+(3657,9620)
+(3660,9624)
+(3662,9623)
+(3663,9626)
+(3664,9621)
+(3663,9610)
+(3659,9596)
+(3657,9595)
+(3656,9587)
+(3659,9588)
+(3662,9594)
+(3666,9596)
+(3667,9599)
+(3669,9596)
+(3671,9597)
+(3673,9594)
+(3675,9595)
+(3676,9591)
+(3675,9585)
+(3678,9590)
+(3679,9591)
+(3677,9596)
+(3679,9600)
+(3678,9595)
+(3680,9593)
+(3682,9597)
+(3683,9597)
+(3684,9598)
+(3683,9602)
+(3685,9602)
+(3687,9605)
+(3688,9601)
+(3691,9605)
+(3691,9610)
+(3694,9614)
+(3695,9613)
+(3698,9614)
+(3700,9617)
+(3702,9614)
+(3706,9622)
+(3709,9621)
+(3711,9622)
+(3712,9621)
+(3714,9622)
+(3715,9620)
+(3717,9621)
+(3717,9620)
+(3713,9609)
+(3713,9606)
+(3709,9598)
+(3707,9595)
+(3703,9590)
+(3704,9585)
+(3702,9583)
+(3703,9580)
+(3702,9580)
+(3700,9572)
+(3701,9569)
+(3703,9569)
+(3709,9572)
+(3709,9570)
+(3706,9567)
+(3710,9560)
+(3711,9563)
+(3713,9562)
+(3715,9552)
+(3713,9533)
+(3711,9530)
+(3709,9531)
+(3710,9518)
+(3707,9511)
+(3709,9507)
+(3709,9499)
+(3705,9487)
+(3704,9482)
+(3707,9474)
+(3708,9449)
+(3706,9442)
+(3702,9442)
+(3703,9437)
+(3702,9429)
+(3699,9421)
+(3696,9419)
+(3692,9412)
+(3692,9402)
+(3685,9398)
+(3680,9400)
+(3677,9398)
+(3673,9400)
+(3673,9395)
+(3671,9385)
+(3661,9366)
+(3653,9355)
+(3651,9354)
+(3643,9354)
+(3644,9349)
+(3640,9342)
+(3639,9339)
+(3637,9333)
+(3635,9331)
+(3635,9329)
+(3632,9329)
+(3631,9327)
+(3631,9325)
+(3632,9323)
+(3631,9320)
+(3628,9311)
+(3625,9308)
+(3624,9305)
+(3621,9296)
+(3616,9288)
+(3603,9272)
+(3595,9268)
+(3593,9269)
+(3591,9264)
+(3593,9266)
+(3594,9264)
+(3593,9254)
+(3583,9254)
+(3575,9262)
+(3575,9258)
+(3579,9253)
+(3573,9248)
+(3571,9244)
+(3568,9246)
+(3567,9248)
+(3567,9257)
+(3569,9261)
+(3571,9261)
+(3572,9263)
+(3570,9264)
+(3568,9263)
+(3565,9266)
+(3566,9270)
+(3570,9265)
+(3573,9265)
+(3572,9274)
+(3573,9278)
+(3569,9285)
+(3569,9290)
+(3567,9291)
+(3569,9294)
+(3570,9298)
+(3564,9304)
+(3562,9311)
+(3557,9308)
+(3555,9311)
+(3553,9308)
+(3550,9311)
+(3552,9304)
+(3551,9300)
+(3552,9286)
+(3550,9284)
+(3547,9286)
+(3548,9282)
+(3548,9279)
+(3552,9271)
+(3553,9267)
+(3552,9260)
+(3551,9259)
+(3547,9261)
+(3547,9258)
+(3545,9256)
+(3546,9249)
+(3543,9242)
+(3545,9234)
+(3550,9228)
+(3551,9220)
+(3553,9224)
+(3555,9224)
+(3556,9225)
+(3552,9215)
+(3553,9211)
+(3555,9202)
+(3553,9199)
+(3549,9199)
+(3548,9196)
+(3548,9199)
+(3545,9198)
+(3546,9189)
+(3544,9179)
+(3537,9173)
+(3534,9174)
+(3536,9169)
+(3534,9163)
+(3537,9158)
+(3537,9153)
+(3540,9148)
+(3541,9144)
+(3542,9144)
+(3543,9141)
+(3541,9141)
+(3540,9132)
+(3539,9127)
+(3535,9127)
+(3534,9125)
+(3531,9094)
+(3532,9087)
+(3530,9079)
+(3535,9077)
+(3537,9073)
+(3541,9071)
+(3542,9068)
+(3547,9064)
+(3545,9070)
+(3547,9080)
+(3549,9082)
+(3550,9084)
+(3550,9097)
+(3549,9100)
+(3548,9103)
+(3549,9108)
+(3549,9112)
+(3549,9123)
+(3552,9130)
+(3552,9137)
+(3554,9137)
+(3556,9130)
+(3558,9128)
+(3557,9125)
+(3556,9119)
+(3558,9112)
+(3558,9102)
+(3559,9100)
+(3561,9103)
+(3563,9100)
+(3566,9100)
+(3569,9096)
+(3570,9089)
+(3573,9087)
+(3574,9084)
+(3576,9082)
+(3576,9080)
+(3574,9078)
+(3574,9074)
+(3575,9066)
+(3574,9054)
+(3573,9052)
+(3570,9056)
+(3569,9055)
+(3568,9056)
+(3567,9052)
+(3567,9041)
+(3568,9041)
+(3569,9044)
+(3570,9043)
+(3571,9040)
+(3569,9026)
+(3571,9030)
+(3573,9044)
+(3574,9044)
+(3573,9031)
+(3575,9026)
+(3576,9027)
+(3577,9025)
+(3577,9021)
+(3579,9016)
+(3579,9008)
+(3582,9002)
+(3586,8977)
+(3585,8962)
+(3586,8961)
+(3585,8959)
+(3584,8961)
+(3584,8960)
+(3581,8951)
+(3579,8946)
+(3578,8942)
+(3577,8942)
+(3575,8946)
+(3573,8945)
+(3572,8951)
+(3570,8953)
+(3568,8953)
+(3570,8947)
+(3567,8938)
+(3568,8937)
+(3568,8934)
+(3569,8931)
+(3571,8930)
+(3572,8933)
+(3573,8931)
+(3569,8925)
+(3567,8922)
+(3563,8922)
+(3562,8927)
+(3564,8932)
+(3561,8932)
+(3563,8935)
+(3564,8935)
+(3563,8938)
+(3559,8935)
+(3555,8937)
+(3554,8934)
+(3555,8932)
+(3557,8928)
+(3555,8926)
+(3554,8923)
+(3556,8921)
+(3555,8913)
+(3556,8905)
+(3556,8904)
+(3558,8904)
+(3560,8902)
+(3561,8904)
+(3563,8902)
+(3565,8893)
+(3563,8870)
+(3561,8867)
+(3558,8870)
+(3557,8869)
+(3556,8862)
+(3558,8860)
+(3558,8856)
+(3557,8853)
+(3555,8853)
+(3554,8849)
+(3559,8838)
+(3559,8830)
+(3562,8820)
+(3561,8812)
+(3562,8804)
+(3565,8800)
+(3568,8792)
+(3567,8788)
+(3563,8779)
+(3556,8779)
+(3552,8781)
+(3551,8779)
+(3552,8771)
+(3549,8762)
+(3549,8757)
+(3553,8756)
+(3553,8751)
+(3556,8748)
+(3560,8752)
+(3561,8755)
+(3565,8755)
+(3564,8750)
+(3565,8749)
+(3563,8746)
+(3565,8740)
+(3566,8740)
+(3565,8737)
+(3563,8719)
+(3565,8717)
+(3565,8715)
+(3563,8704)
+(3563,8696)
+(3563,8686)
+(3563,8688)
+(3564,8686)
+(3564,8677)
+(3563,8678)
+(3562,8681)
+(3562,8665)
+(3563,8667)
+(3564,8663)
+(3564,8659)
+(3563,8657)
+(3565,8643)
+(3565,8634)
+(3564,8627)
+(3560,8612)
+(3560,8606)
+(3562,8600)
+(3563,8592)
+(3562,8588)
+(3561,8589)
+(3554,8555)
+(3547,8535)
+(3538,8519)
+(3529,8510)
+(3521,8502)
+(3519,8497)
+(3511,8480)
+(3509,8473)
+(3508,8465)
+(3498,8447)
+(3494,8441)
+(3485,8437)
+(3476,8431)
+(3469,8430)
+(3468,8425)
+(3465,8421)
+(3466,8417)
+(3463,8403)
+(3459,8396)
+(3451,8390)
+(3449,8382)
+(3447,8376)
+(3443,8374)
+(3439,8369)
+(3439,8364)
+(3438,8362)
+(3436,8350)
+(3429,8344)
+(3428,8344)
+(3429,8338)
+(3428,8337)
+(3424,8338)
+(3421,8334)
+(3423,8329)
+(3421,8329)
+(3420,8325)
+(3419,8318)
+(3412,8315)
+(3411,8309)
+(3404,8304)
+(3403,8298)
+(3401,8298)
+(3400,8296)
+(3398,8296)
+(3398,8293)
+(3394,8287)
+(3390,8289)
+(3389,8295)
+(3386,8294)
+(3387,8290)
+(3387,8285)
+(3384,8284)
+(3383,8281)
+(3383,8275)
+(3378,8273)
+(3375,8271)
+(3374,8266)
+(3372,8266)
+(3370,8264)
+(3369,8264)
+(3367,8254)
+(3363,8247)
+(3361,8247)
+(3360,8246)
+(3358,8246)
+(3357,8244)
+(3356,8245)
+(3358,8242)
+(3358,8240)
+(3356,8238)
+(3353,8230)
+(3348,8224)
+(3348,8219)
+(3346,8214)
+(3343,8209)
+(3339,8207)
+(3339,8205)
+(3340,8201)
+(3338,8196)
+(3338,8193)
+(3335,8191)
+(3335,8186)
+(3332,8181)
+(3326,8178)
+(3321,8171)
+(3318,8168)
+(3318,8164)
+(3315,8157)
+(3312,8152)
+(3312,8148)
+(3308,8143)
+(3307,8133)
+(3296,8113)
+(3292,8109)
+(3288,8110)
+(3283,8116)
+(3282,8114)
+(3283,8120)
+(3281,8128)
+(3280,8140)
+(3275,8142)
+(3274,8144)
+(3274,8160)
+(3276,8166)
+(3277,8173)
+(3276,8177)
+(3275,8192)
+(3279,8197)
+(3281,8200)
+(3278,8199)
+(3277,8202)
+(3279,8206)
+(3279,8209)
+(3276,8209)
+(3275,8213)
+(3271,8209)
+(3269,8210)
+(3268,8209)
+(3266,8210)
+(3265,8209)
+(3266,8206)
+(3265,8204)
+(3261,8206)
+(3259,8209)
+(3257,8205)
+(3255,8209)
+(3253,8205)
+(3249,8209)
+(3245,8206)
+(3243,8206)
+(3241,8202)
+(3236,8199)
+(3229,8201)
+(3226,8207)
+(3227,8209)
+(3230,8211)
+(3231,8217)
+(3231,8222)
+(3229,8225)
+(3228,8227)
+(3232,8232)
+(3242,8237)
+(3242,8230)
+(3248,8224)
+(3251,8230)
+(3253,8231)
+(3253,8235)
+(3256,8237)
+(3257,8242)
+(3258,8243)
+(3259,8249)
+(3258,8252)
+(3258,8257)
+(3258,8259)
+(3259,8261)
+(3259,8264)
+(3258,8264)
+(3254,8257)
+(3251,8255)
+(3249,8251)
+(3248,8251)
+(3247,8249)
+(3245,8249)
+(3245,8247)
+(3248,8247)
+(3249,8245)
+(3247,8238)
+(3243,8238)
+(3242,8246)
+(3238,8254)
+(3237,8256)
+(3238,8260)
+(3236,8265)
+(3238,8272)
+(3234,8267)
+(3233,8262)
+(3230,8256)
+(3227,8256)
+(3226,8253)
+(3223,8254)
+(3221,8250)
+(3220,8249)
+(3220,8241)
+(3217,8237)
+(3216,8233)
+(3215,8232)
+(3214,8233)
+(3212,8239)
+(3211,8243)
+(3212,8249)
+(3213,8261)
+(3214,8274)
+(3218,8281)
+(3220,8288)
+(3224,8297)
+(3234,8301)
+(3240,8315)
+(3239,8315)
+(3236,8314)
+(3232,8315)
+(3229,8314)
+(3221,8302)
+(3219,8301)
+(3216,8301)
+(3214,8294)
+(3212,8295)
+(3209,8293)
+(3211,8295)
+(3211,8297)
+(3211,8307)
+(3214,8313)
+(3220,8317)
+(3230,8322)
+(3231,8321)
+(3234,8321)
+(3237,8325)
+(3241,8327)
+(3244,8327)
+(3246,8326)
+(3244,8320)
+(3250,8324)
+(3252,8323)
+(3254,8325)
+(3256,8323)
+(3258,8319)
+(3259,8324)
+(3254,8340)
+(3251,8360)
+(3255,8378)
+(3259,8385)
+(3258,8389)
+(3254,8387)
+(3253,8389)
+(3252,8395)
+(3251,8394)
+(3247,8401)
+(3245,8409)
+(3243,8415)
+(3240,8414)
+(3238,8420)
+(3234,8415)
+(3232,8415)
+(3227,8422)
+(3225,8427)
+(3223,8432)
+(3221,8431)
+(3219,8433)
+(3214,8446)
+(3208,8466)
+(3210,8458)
+(3208,8456)
+(3206,8456)
+(3207,8460)
+(3204,8462)
+(3204,8467)
+(3202,8467)
+(3198,8474)
+(3199,8478)
+(3197,8485)
+(3193,8481)
+(3193,8485)
+(3191,8485)
+(3189,8486)
+(3187,8483)
+(3185,8482)
+(3184,8482)
+(3184,8481)
+(3185,8475)
+(3182,8471)
+(3181,8475)
+(3179,8473)
+(3179,8469)
+(3183,8458)
+(3184,8454)
+(3187,8452)
+(3187,8448)
+(3187,8442)
+(3186,8446)
+(3182,8451)
+(3181,8457)
+(3179,8456)
+(3176,8458)
+(3175,8463)
+(3173,8465)
+(3171,8471)
+(3171,8476)
+(3166,8472)
+(3164,8476)
+(3161,8477)
+(3159,8479)
+(3158,8477)
+(3155,8477)
+(3151,8473)
+(3148,8468)
+(3144,8468)
+(3141,8470)
+(3140,8474)
+(3137,8477)
+(3136,8480)
+(3133,8484)
+(3133,8492)
+(3129,8493)
+(3129,8492)
+(3130,8490)
+(3126,8481)
+(3125,8482)
+(3121,8478)
+(3117,8486)
+(3115,8485)
+(3113,8477)
+(3110,8473)
+(3106,8471)
+(3102,8467)
+(3100,8467)
+(3101,8465)
+(3100,8461)
+(3097,8455)
+(3090,8454)
+(3089,8450)
+(3087,8447)
+(3086,8449)
+(3085,8449)
+(3085,8454)
+(3082,8452)
+(3080,8448)
+(3080,8446)
+(3079,8441)
+(3076,8442)
+(3075,8443)
+(3073,8439)
+(3071,8441)
+(3068,8440)
+(3066,8442)
+(3063,8443)
+(3061,8442)
+(3060,8440)
+(3057,8441)
+(3055,8436)
+(3052,8432)
+(3049,8433)
+(3042,8428)
+(3037,8431)
+(3036,8429)
+(3032,8426)
+(3027,8430)
+(3020,8433)
+(3018,8431)
+(3013,8432)
+(3010,8431)
+(3005,8435)
+(3004,8435)
+(3005,8437)
+(3006,8441)
+(3005,8442)
+(3002,8438)
+(2999,8429)
+(2993,8426)
+(2992,8424)
+(2988,8428)
+(2986,8432)
+(2981,8431)
+(2974,8433)
+(2964,8427)
+(2957,8426)
+(2957,8420)
+(2956,8420)
+(2956,8424)
+(2952,8420)
+(2952,8422)
+(2950,8421)
+(2949,8422)
+(2946,8421)
+(2945,8421)
+(2945,8418)
+(2944,8420)
+(2942,8421)
+(2940,8413)
+(2940,8417)
+(2938,8415)
+(2938,8417)
+(2938,8418)
+(2939,8418)
+(2941,8421)
+(2939,8422)
+(2939,8424)
+(2934,8421)
+(2931,8415)
+(2926,8413)
+(2920,8411)
+(2915,8412)
+(2914,8410)
+(2911,8412)
+(2907,8411)
+(2905,8405)
+(2900,8402)
+(2898,8396)
+(2890,8384)
+(2884,8379)
+(2878,8371)
+(2875,8364)
+(2869,8357)
+(2864,8353)
+(2859,8352)
+(2858,8350)
+(2848,8343)
+(2845,8343)
+(2842,8339)
+(2839,8338)
+(2838,8333)
+(2831,8326)
+(2825,8317)
+(2822,8314)
+(2815,8310)
+(2812,8310)
+(2808,8305)
+(2804,8303)
+(2798,8301)
+(2792,8300)
+(2789,8294)
+(2787,8292)
+(2777,8287)
+(2773,8286)
+(2768,8281)
+(2766,8277)
+(2764,8276)
+(2756,8267)
+(2752,8262)
+(2748,8260)
+(2741,8251)
+(2736,8242)
+(2722,8228)
+(2720,8223)
+(2711,8209)
+(2705,8206)
+(2702,8201)
+(2702,8199)
+(2696,8193)
+(2693,8193)
+(2693,8192)
+(2690,8189)
+(2690,8187)
+(2686,8186)
+(2687,8182)
+(2685,8180)
+(2684,8178)
+(2682,8180)
+(2681,8176)
+(2680,8175)
+(2677,8173)
+(2675,8174)
+(2673,8172)
+(2671,8171)
+(2667,8164)
+(2667,8160)
+(2666,8159)
+(2664,8153)
+(2661,8150)
+(2659,8150)
+(2656,8148)
+(2654,8143)
+(2651,8141)
+(2650,8139)
+(2647,8140)
+(2642,8138)
+(2640,8133)
+(2639,8132)
+(2637,8132)
+(2637,8131)
+(2635,8131)
+(2637,8129)
+(2637,8127)
+(2635,8128)
+(2634,8128)
+(2633,8131)
+(2625,8125)
+(2625,8123)
+(2623,8121)
+(2623,8119)
+(2621,8116)
+(2623,8115)
+(2624,8115)
+(2624,8114)
+(2623,8113)
+(2623,8111)
+(2621,8114)
+(2618,8113)
+(2616,8110)
+(2610,8108)
+(2610,8104)
+(2607,8098)
+(2606,8097)
+(2603,8090)
+(2598,8086)
+(2598,8082)
+(2594,8076)
+(2594,8073)
+(2589,8065)
+(2587,8061)
+(2587,8059)
+(2586,8058)
+(2585,8051)
+(2580,8047)
+(2578,8042)
+(2572,8034)
+(2574,8032)
+(2571,8024)
+(2569,8023)
+(2571,8021)
+(2571,8016)
+(2569,8014)
+(2569,8012)
+(2569,8011)
+(2568,8009)
+(2565,8002)
+(2566,7999)
+(2565,7994)
+(2561,7990)
+(2561,7982)
+(2563,7980)
+(2564,7982)
+(2564,7985)
+(2568,7980)
+(2569,7980)
+(2569,7976)
+(2569,7974)
+(2566,7973)
+(2564,7971)
+(2566,7968)
+(2569,7968)
+(2570,7966)
+(2573,7966)
+(2574,7966)
+(2574,7964)
+(2572,7961)
+(2571,7961)
+(2571,7956)
+(2570,7955)
+(2572,7950)
+(2575,7950)
+(2576,7948)
+(2576,7944)
+(2575,7943)
+(2574,7941)
+(2571,7941)
+(2571,7939)
+(2573,7937)
+(2578,7937)
+(2581,7938)
+(2584,7937)
+(2585,7938)
+(2588,7940)
+(2590,7939)
+(2590,7941)
+(2592,7943)
+(2593,7942)
+(2593,7939)
+(2595,7938)
+(2597,7941)
+(2599,7938)
+(2599,7937)
+(2597,7937)
+(2594,7934)
+(2591,7926)
+(2587,7922)
+(2585,7919)
+(2585,7914)
+(2585,7913)
+(2587,7915)
+(2585,7910)
+(2592,7915)
+(2594,7920)
+(2597,7923)
+(2599,7923)
+(2599,7921)
+(2596,7919)
+(2598,7918)
+(2598,7910)
+(2600,7910)
+(2600,7909)
+(2597,7906)
+(2593,7905)
+(2592,7903)
+(2591,7906)
+(2590,7905)
+(2590,7904)
+(2591,7902)
+(2591,7900)
+(2590,7900)
+(2589,7899)
+(2590,7902)
+(2589,7901)
+(2582,7894)
+(2580,7894)
+(2579,7893)
+(2580,7891)
+(2580,7890)
+(2577,7890)
+(2576,7886)
+(2576,7883)
+(2575,7883)
+(2574,7885)
+(2573,7884)
+(2572,7888)
+(2570,7882)
+(2568,7881)
+(2566,7882)
+(2567,7879)
+(2566,7877)
+(2562,7875)
+(2560,7875)
+(2560,7873)
+(2557,7873)
+(2556,7874)
+(2554,7874)
+(2553,7872)
+(2554,7870)
+(2556,7872)
+(2557,7868)
+(2560,7867)
+(2558,7866)
+(2557,7866)
+(2559,7861)
+(2558,7858)
+(2556,7856)
+(2558,7849)
+(2558,7852)
+(2557,7856)
+(2559,7857)
+(2559,7853)
+(2558,7848)
+(2559,7847)
+(2560,7850)
+(2561,7850)
+(2561,7845)
+(2561,7843)
+(2560,7841)
+(2559,7840)
+(2557,7844)
+(2554,7844)
+(2556,7846)
+(2554,7847)
+(2553,7851)
+(2551,7852)
+(2551,7850)
+(2548,7850)
+(2547,7847)
+(2541,7845)
+(2537,7841)
+(2539,7839)
+(2543,7839)
+(2545,7836)
+(2550,7834)
+(2553,7834)
+(2555,7837)
+(2557,7836)
+(2561,7832)
+(2561,7828)
+(2562,7825)
+(2563,7824)
+(2565,7826)
+(2570,7838)
+(2570,7846)
+(2571,7847)
+(2573,7849)
+(2571,7852)
+(2571,7861)
+(2574,7863)
+(2575,7867)
+(2576,7868)
+(2578,7866)
+(2582,7866)
+(2588,7873)
+(2589,7873)
+(2592,7871)
+(2596,7876)
+(2602,7876)
+(2604,7879)
+(2607,7878)
+(2612,7872)
+(2613,7871)
+(2616,7873)
+(2617,7872)
+(2620,7873)
+(2622,7872)
+(2624,7873)
+(2629,7872)
+(2635,7875)
+(2638,7874)
+(2642,7875)
+(2643,7878)
+(2645,7877)
+(2648,7876)
+(2652,7875)
+(2655,7874)
+(2658,7873)
+(2661,7872)
+(2664,7871)
+(2667,7870)
+(2671,7869)
+(2674,7868)
+(2677,7867)
+(2681,7866)
+(2682,7864)
+(2685,7863)
+(2687,7860)
+(2690,7857)
+(2692,7863)
+(2693,7864)
+(2695,7864)
+(2696,7868)
+(2695,7873)
+(2695,7876)
+(2698,7880)
+(2698,7888)
+(2699,7889)
+(2707,7899)
+(2708,7899)
+(2710,7898)
+(2712,7899)
+(2713,7900)
+(2713,7905)
+(2720,7910)
+(2721,7912)
+(2720,7914)
+(2717,7916)
+(2714,7921)
+(2713,7926)
+(2712,7930)
+(2711,7935)
+(2710,7939)
+(2709,7944)
+(2708,7948)
+(2707,7952)
+(2706,7957)
+(2705,7961)
+(2704,7966)
+(2703,7970)
+(2701,7976)
+(2703,7982)
+(2707,7987)
+(2710,7988)
+(2715,7986)
+(2727,7989)
+(2730,7991)
+(2734,8002)
+(2734,8005)
+(2736,8005)
+(2737,8008)
+(2739,8007)
+(2740,8009)
+(2741,8009)
+(2742,8007)
+(2744,8009)
+(2746,8009)
+(2747,8010)
+(2748,8008)
+(2750,8009)
+(2750,8010)
+(2753,8011)
+(2753,8013)
+(2752,8015)
+(2754,8016)
+(2756,8017)
+(2756,8020)
+(2764,8023)
+(2769,8021)
+(2769,8025)
+(2772,8027)
+(2773,8028)
+(2772,8030)
+(2773,8031)
+(2774,8031)
+(2775,8034)
+(2778,8033)
+(2779,8035)
+(2780,8032)
+(2781,8033)
+(2782,8035)
+(2784,8036)
+(2785,8034)
+(2786,8031)
+(2788,8031)
+(2792,8034)
+(2794,8034)
+(2797,8039)
+(2800,8041)
+(2806,8043)
+(2809,8041)
+(2815,8044)
+(2818,8044)
+(2825,8048)
+(2825,8052)
+(2827,8053)
+(2828,8053)
+(2830,8051)
+(2832,8052)
+(2835,8049)
+(2839,8051)
+(2841,8054)
+(2845,8059)
+(2846,8069)
+(2848,8073)
+(2850,8074)
+(2854,8080)
+(2858,8081)
+(2862,8086)
+(2864,8086)
+(2868,8081)
+(2872,8080)
+(2874,8076)
+(2877,8076)
+(2880,8073)
+(2884,8075)
+(2886,8080)
+(2894,8081)
+(2896,8084)
+(2898,8077)
+(2902,8074)
+(2901,8069)
+(2903,8065)
+(2902,8055)
+(2900,8051)
+(2899,8043)
+(2898,8041)
+(2896,8039)
+(2896,8033)
+(2895,8025)
+(2891,8022)
+(2890,8016)
+(2886,8012)
+(2884,8011)
+(2884,8009)
+(2886,8004)
+(2886,7999)
+(2887,7993)
+(2886,7985)
+(2882,7981)
+(2880,7973)
+(2877,7970)
+(2876,7966)
+(2877,7965)
+(2877,7960)
+(2876,7959)
+(2872,7960)
+(2868,7955)
+(2864,7955)
+(2863,7952)
+(2865,7941)
+(2862,7930)
+(2862,7920)
+(2860,7915)
+(2861,7912)
+(2860,7909)
+(2862,7901)
+(2860,7897)
+(2859,7895)
+(2860,7893)
+(2863,7892)
+(2864,7885)
+(2864,7876)
+(2862,7870)
+(2860,7866)
+(2862,7859)
+(2863,7856)
+(2868,7857)
+(2874,7853)
+(2883,7841)
+(2886,7840)
+(2888,7840)
+(2891,7845)
+(2895,7846)
+(2897,7850)
+(2900,7849)
+(2901,7846)
+(2905,7844)
+(2909,7846)
+(2910,7844)
+(2909,7838)
+(2911,7837)
+(2914,7837)
+(2916,7831)
+(2928,7838)
+(2931,7840)
+(2932,7840)
+(2933,7837)
+(2931,7831)
+(2933,7828)
+(2934,7825)
+(2932,7817)
+(2932,7813)
+(2940,7799)
+(2942,7794)
+(2945,7795)
+(2947,7790)
+(2949,7791)
+(2950,7786)
+(2952,7784)
+(2956,7783)
+(2957,7781)
+(2956,7776)
+(2958,7773)
+(2963,7772)
+(2965,7769)
+(2965,7763)
+(2964,7762)
+(2961,7762)
+(2961,7759)
+(2963,7755)
+(2963,7752)
+(2961,7746)
+(2962,7743)
+(2966,7740)
+(2967,7735)
+(2968,7734)
+(2969,7731)
+(2968,7725)
+(2970,7725)
+(2972,7728)
+(2974,7727)
+(2975,7723)
+(2977,7720)
+(2974,7717)
+(2975,7710)
+(2974,7702)
+(2972,7700)
+(2973,7696)
+(2972,7693)
+(2972,7686)
+(2975,7680)
+(2976,7677)
+(2975,7674)
+(2975,7669)
+(2978,7666)
+(2980,7661)
+(2985,7660)
+(2988,7652)
+(2990,7650)
+(2995,7652)
+(2999,7649)
+(3003,7649)
+(3008,7654)
+(3012,7655)
+(3019,7640)
+(3025,7641)
+(3028,7637)
+(3034,7642)
+(3041,7637)
+(3044,7638)
+(3047,7633)
+(3055,7628)
+(3058,7622)
+(3063,7616)
+(3071,7614)
+(3077,7618)
+(3078,7619)
+(3080,7617)
+(3078,7612)
+(3076,7613)
+(3075,7614)
+(3074,7613)
+(3075,7611)
+(3076,7609)
+(3080,7609)
+(3080,7614)
+(3083,7615)
+(3084,7614)
+(3085,7607)
+(3087,7607)
+(3090,7609)
+(3092,7608)
+(3094,7600)
+(3096,7600)
+(3098,7604)
+(3100,7602)
+(3102,7603)
+(3103,7602)
+(3104,7600)
+(3105,7598)
+(3114,7591)
+(3116,7588)
+(3120,7586)
+(3122,7588)
+(3122,7591)
+(3128,7593)
+(3130,7588)
+(3132,7579)
+(3134,7580)
+(3137,7586)
+(3138,7579)
+(3143,7580)
+(3148,7576)
+(3148,7572)
+(3151,7573)
+(3152,7571)
+(3155,7564)
+(3154,7563)
+(3154,7561)
+(3157,7559)
+(3159,7559)
+(3161,7564)
+(3164,7562)
+(3165,7566)
+(3166,7566)
+(3167,7563)
+(3166,7558)
+(3171,7552)
+(3173,7552)
+(3174,7550)
+(3173,7539)
+(3175,7539)
+(3177,7543)
+(3179,7544)
+(3181,7539)
+(3183,7537)
+(3183,7534)
+(3182,7530)
+(3185,7528)
+(3192,7510)
+(3192,7504)
+(3190,7493)
+(3186,7494)
+(3185,7491)
+(3188,7488)
+(3188,7482)
+(3190,7482)
+(3191,7479)
+(3191,7470)
+(3193,7464)
+(3195,7460)
+(3202,7455)
+(3202,7451)
+(3200,7447)
+(3204,7441)
+(3206,7439)
+(3208,7433)
+(3210,7422)
+(3213,7417)
+(3212,7415)
+(3210,7412)
+(3212,7413)
+(3213,7410)
+(3210,7409)
+(3211,7407)
+(3213,7396)
+(3210,7389)
+(3209,7378)
+(3207,7369)
+(3207,7357)
+(3206,7345)
+(3209,7339)
+(3208,7335)
+(3208,7330)
+(3205,7326)
+(3205,7321)
+(3205,7318)
+(3205,7309)
+(3203,7304)
+(3203,7300)
+(3200,7290)
+(3199,7280)
+(3197,7274)
+(3196,7268)
+(3197,7264)
+(3197,7262)
+(3197,7252)
+(3196,7250)
+(3194,7250)
+(3191,7243)
+(3186,7238)
+(3181,7229)
+(3171,7216)
+(3168,7210)
+(3168,7207)
+(3166,7202)
+(3162,7203)
+(3157,7202)
+(3155,7204)
+(3155,7211)
+(3157,7217)
+(3157,7223)
+(3158,7226)
+(3152,7243)
+(3146,7241)
+(3140,7237)
+(3138,7239)
+(3134,7246)
+(3127,7247)
+(3124,7245)
+(3123,7242)
+(3119,7243)
+(3115,7239)
+(3114,7234)
+(3113,7233)
+(3113,7229)
+(3110,7228)
+(3110,7224)
+(3106,7219)
+(3100,7211)
+(3100,7206)
+(3097,7203)
+(3093,7203)
+(3090,7199)
+(3086,7199)
+(3083,7197)
+(3082,7193)
+(3080,7195)
+(3077,7192)
+(3076,7189)
+(3073,7189)
+(3072,7185)
+(3070,7187)
+(3069,7186)
+(3064,7185)
+(3060,7180)
+(3058,7175)
+(3056,7174)
+(3054,7171)
+(3053,7172)
+(3050,7170)
+(3048,7171)
+(3045,7170)
+(3041,7167)
+(3040,7163)
+(3038,7162)
+(3036,7157)
+(3027,7155)
+(3025,7152)
+(3025,7150)
+(3024,7148)
+(3022,7148)
+(3022,7151)
+(3021,7151)
+(3021,7161)
+(3019,7162)
+(3016,7160)
+(3010,7161)
+(3006,7160)
+(3001,7154)
+(2999,7144)
+(2999,7135)
+(2997,7123)
+(2997,7118)
+(2994,7112)
+(2989,7108)
+(2989,7103)
+(2987,7102)
+(2984,7094)
+(2980,7090)
+(2979,7087)
+(2976,7082)
+(2973,7074)
+(2970,7072)
+(2971,7067)
+(2977,7050)
+(2978,7037)
+(2979,7030)
+(2983,7018)
+(2990,7003)
+(2996,6997)
+(2998,6986)
+(3002,6973)
+(3000,6964)
+(2994,6948)
+(2993,6944)
+(2994,6938)
+(2994,6924)
+(3000,6912)
+(3009,6901)
+(3014,6891)
+(3015,6887)
+(3016,6880)
+(3015,6873)
+(3015,6867)
+(3017,6859)
+(3015,6851)
+(3011,6844)
+(3010,6840)
+(3005,6832)
+(3005,6827)
+(3001,6814)
+(2998,6809)
+(2996,6807)
+(2988,6792)
+(2980,6786)
+(2976,6785)
+(2975,6779)
+(2972,6774)
+(2970,6766)
+(2970,6762)
+(2972,6758)
+(2972,6749)
+(2966,6728)
+(2964,6718)
+(2964,6710)
+(2964,6701)
+(2961,6692)
+(2961,6689)
+(2962,6682)
+(2960,6678)
+(2958,6671)
+(2951,6657)
+(2949,6647)
+(2949,6642)
+(2952,6628)
+(2955,6624)
+(2951,6618)
+(2950,6612)
+(2951,6605)
+(2952,6594)
+(2951,6591)
+(2954,6585)
+(2954,6573)
+(2955,6570)
+(2957,6569)
+(2958,6566)
+(2960,6561)
+(2962,6552)
+(2960,6544)
+(2961,6537)
+(2961,6533)
+(2960,6513)
+(2966,6502)
+(2972,6496)
+(2973,6489)
+(2975,6484)
+(2977,6482)
+(2980,6482)
+(2980,6478)
+(2981,6477)
+(2985,6479)
+(2991,6477)
+(2997,6479)
+(2997,6474)
+(2998,6471)
+(2997,6469)
+(2999,6465)
+(2999,6445)
+(3001,6439)
+(3000,6436)
+(3002,6431)
+(3003,6429)
+(3005,6425)
+(3009,6422)
+(3012,6420)
+(3020,6404)
+(3021,6393)
+(3018,6375)
+(3020,6370)
+(3021,6364)
+(3023,6364)
+(3025,6359)
+(3026,6351)
+(3026,6348)
+(3026,6338)
+(3029,6321)
+(3028,6317)
+(3025,6311)
+(3024,6307)
+(3024,6301)
+(3022,6294)
+(3021,6290)
+(3021,6283)
+(3018,6278)
+(3018,6265)
+(3015,6261)
+(3014,6258)
+(3012,6256)
+(3010,6255)
+(3008,6244)
+(3012,6229)
+(3009,6224)
+(3008,6220)
+(3012,6208)
+(3012,6199)
+(3013,6197)
+(3018,6195)
+(3019,6191)
+(3018,6180)
+(3019,6175)
+(3023,6167)
+(3025,6157)
+(3031,6152)
+(3032,6149)
+(3033,6142)
+(3034,6140)
+(3039,6138)
+(3043,6141)
+(3045,6140)
+(3047,6136)
+(3050,6134)
+(3051,6134)
+(3054,6136)
+(3057,6134)
+(3059,6135)
+(3067,6130)
+(3072,6131)
+(3075,6129)
+(3078,6134)
+(3080,6133)
+(3083,6125)
+(3084,6120)
+(3085,6116)
+(3086,6109)
+(3087,6106)
+(3087,6100)
+(3089,6095)
+(3087,6083)
+(3091,6076)
+(3092,6069)
+(3094,6066)
+(3102,6042)
+(3103,6036)
+(3104,6033)
+(3104,6015)
+(3105,5997)
+(3107,5993)
+(3113,5984)
+(3114,5974)
+(3117,5959)
+(3120,5955)
+(3124,5942)
+(3127,5940)
+(3129,5936)
+(3127,5933)
+(3122,5932)
+(3110,5922)
+(3107,5917)
+(3103,5900)
+(3095,5895)
+(3091,5896)
+(3087,5894)
+(3087,5892)
+(3088,5887)
+(3087,5883)
+(3079,5876)
+(3073,5878)
+(3070,5875)
+(3064,5873)
+(3060,5870)
+(3056,5873)
+(3054,5877)
+(3052,5878)
+(3051,5881)
+(3047,5878)
+(3038,5884)
+(3034,5890)
+(3034,5896)
+(3031,5899)
+(3028,5900)
+(3024,5897)
+(3018,5897)
+(3003,5886)
+(2999,5877)
+(2996,5872)
+(2998,5867)
+(2996,5856)
+(2995,5855)
+(2993,5856)
+(2991,5855)
+(2987,5849)
+(2984,5840)
+(2984,5837)
+(2986,5830)
+(2988,5829)
+(2989,5825)
+(2994,5820)
+(2995,5803)
+(2992,5797)
+(2992,5796)
+(2996,5793)
+(2996,5790)
+(2994,5783)
+(2997,5778)
+(3000,5764)
+(2997,5758)
+(3001,5754)
+(3001,5750)
+(2997,5745)
+(2996,5736)
+(2994,5732)
+(2997,5725)
+(2997,5705)
+(3001,5701)
+(3003,5699)
+(3004,5690)
+(3001,5678)
+(3004,5676)
+(3007,5672)
+(3010,5671)
+(3011,5665)
+(3013,5663)
+(3018,5662)
+(3025,5661)
+(3030,5658)
+(3033,5658)
+(3034,5657)
+(3035,5613)
+(3037,5606)
+(3036,5601)
+(3037,5593)
+(3036,5586)
+(3037,5581)
+(3038,5581)
+(3039,5578)
+(3045,5580)
+(3047,5579)
+(3048,5568)
+(3043,5566)
+(3041,5562)
+(3041,5560)
+(3045,5554)
+(3047,5548)
+(3052,5545)
+(3052,5543)
+(3051,5540)
+(3045,5538)
+(3042,5533)
+(3041,5527)
+(3043,5515)
+(3042,5507)
+(3039,5500)
+(3034,5496)
+(3032,5488)
+(3029,5487)
+(3028,5486)
+(3029,5478)
+(3026,5470)
+(3026,5462)
+(3020,5452)
+(3018,5445)
+(3015,5444)
+(3013,5442)
+(3013,5439)
+(3013,5431)
+(3011,5427)
+(3011,5421)
+(3007,5415)
+(3005,5403)
+(3003,5401)
+(3000,5401)
+(2998,5399)
+(2997,5394)
+(2997,5387)
+(2995,5380)
+(2994,5378)
+(2991,5378)
+(2989,5380)
+(2988,5379)
+(2985,5384)
+(2983,5384)
+(2981,5378)
+(2979,5368)
+(2975,5363)
+(2978,5356)
+(2978,5354)
+(2977,5352)
+(2974,5354)
+(2972,5354)
+(2970,5351)
+(2968,5341)
+(2968,5339)
+(2972,5337)
+(2973,5335)
+(2972,5333)
+(2968,5333)
+(2968,5334)
+(2967,5334)
+(2966,5331)
+(2967,5324)
+(2970,5319)
+(2969,5314)
+(2969,5301)
+(2968,5293)
+(2962,5288)
+(2958,5290)
+(2956,5290)
+(2954,5283)
+(2951,5279)
+(2950,5270)
+(2950,5263)
+(2948,5256)
+(2948,5252)
+(2946,5250)
+(2945,5246)
+(2946,5239)
+(2950,5238)
+(2953,5236)
+(2955,5231)
+(2955,5226)
+(2955,5223)
+(2958,5220)
+(2958,5218)
+(2961,5214)
+(2964,5215)
+(2967,5209)
+(2970,5209)
+(2972,5207)
+(2974,5203)
+(2974,5200)
+(2977,5197)
+(2980,5199)
+(2982,5205)
+(2983,5207)
+(2988,5208)
+(2988,5203)
+(2988,5199)
+(2988,5197)
+(2985,5196)
+(2983,5192)
+(2981,5188)
+(2977,5183)
+(2976,5178)
+(2975,5175)
+(2972,5174)
+(2971,5172)
+(2968,5170)
+(2971,5167)
+(2971,5162)
+(2969,5159)
+(2970,5157)
+(2973,5156)
+(2973,5151)
+(2974,5146)
+(2973,5142)
+(2975,5137)
+(2976,5133)
+(2975,5127)
+(2974,5126)
+(2974,5122)
+(2976,5120)
+(2975,5117)
+(2978,5113)
+(2982,5112)
+(2985,5111)
+(2990,5107)
+(2993,5106)
+(2994,5101)
+(2996,5099)
+(3000,5099)
+(3000,5101)
+(3003,5101)
+(3005,5096)
+(3006,5091)
+(3008,5088)
+(3010,5082)
+(3011,5077)
+(3013,5071)
+(3015,5070)
+(3015,5068)
+(3013,5062)
+(3013,5060)
+(3016,5056)
+(3018,5054)
+(3021,5055)
+(3026,5053)
+(3030,5054)
+(3033,5052)
+(3036,5047)
+(3040,5043)
+(3042,5040)
+(3045,5038)
+(3049,5035)
+(3052,5030)
+(3054,5023)
+(3055,5019)
+(3057,5015)
+(3057,5009)
+(3059,5005)
+(3061,5006)
+(3060,5001)
+(3061,4995)
+(3060,4992)
+(3061,4987)
+(3057,4985)
+(3055,4981)
+(3054,4976)
+(3056,4969)
+(3056,4964)
+(3052,4963)
+(3049,4962)
+(3046,4954)
+(3046,4949)
+(3047,4943)
+(3047,4937)
+(3045,4933)
+(3045,4927)
+(3048,4922)
+(3048,4917)
+(3048,4910)
+(3049,4908)
+(3046,4906)
+(3046,4901)
+(3045,4896)
+(3045,4889)
+(3046,4887)
+(3049,4888)
+(3052,4888)
+(3052,4886)
+(3056,4886)
+(3059,4884)
+(3058,4878)
+(3057,4873)
+(3057,4867)
+(3057,4864)
+(3060,4865)
+(3063,4866)
+(3069,4869)
+(3072,4868)
+(3070,4864)
+(3073,4856)
+(3075,4856)
+(3076,4851)
+(3078,4845)
+(3078,4839)
+(3075,4838)
+(3073,4838)
+(3072,4837)
+(3073,4829)
+(3073,4827)
+(3068,4826)
+(3065,4829)
+(3061,4828)
+(3058,4828)
+(3058,4826)
+(3056,4823)
+(3056,4816)
+(3054,4812)
+(3050,4812)
+(3050,4806)
+(3051,4804)
+(3047,4804)
+(3046,4805)
+(3049,4802)
+(3053,4799)
+(3056,4796)
+(3060,4794)
+(3065,4789)
+(3069,4787)
+(3075,4782)
+(3078,4780)
+(3082,4777)
+(3085,4774)
+(3088,4772)
+(3091,4770)
+(3095,4767)
+(3098,4764)
+(3102,4762)
+(3105,4759)
+(3109,4756)
+(3112,4753)
+(3116,4750)
+(3120,4747)
+(3124,4743)
+(3128,4740)
+(3130,4737)
+(3134,4734)
+(3139,4731)
+(3142,4728)
+(3146,4724)
+(3149,4721)
+(3153,4717)
+(3156,4715)
+(3158,4712)
+(3162,4709)
+(3165,4707)
+(3171,4701)
+(3175,4697)
+(3177,4695)
+(3180,4692)
+(3184,4687)
+(3187,4684)
+(3190,4681)
+(3193,4679)
+(3196,4676)
+(3199,4672)
+(3202,4666)
+(3205,4662)
+(3207,4657)
+(3211,4651)
+(3214,4644)
+(3216,4640)
+(3218,4635)
+(3220,4631)
+(3223,4624)
+(3225,4620)
+(3228,4614)
+(3230,4610)
+(3232,4606)
+(3235,4600)
+(3238,4595)
+(3241,4592)
+(3245,4590)
+(3248,4586)
+(3249,4585)
+(3250,4586)
+(3250,4591)
+(3250,4597)
+(3248,4598)
+(3249,4603)
+(3252,4606)
+(3254,4611)
+(3258,4612)
+(3261,4612)
+(3263,4607)
+(3265,4613)
+(3266,4616)
+(3267,4616)
+(3265,4607)
+(3265,4605)
+(3262,4601)
+(3261,4595)
+(3260,4590)
+(3260,4584)
+(3260,4578)
+(3261,4575)
+(3258,4572)
+(3255,4569)
+(3254,4564)
+(3252,4558)
+(3251,4553)
+(3249,4548)
+(3248,4542)
+(3246,4537)
+(3247,4532)
+(3245,4525)
+(3242,4527)
+(3239,4528)
+(3237,4523)
+(3235,4519)
+(3233,4514)
+(3231,4510)
+(3228,4504)
+(3227,4502)
+(3229,4496)
+(3229,4491)
+(3229,4489)
+(3226,4487)
+(3225,4481)
+(3222,4480)
+(3220,4479)
+(3221,4473)
+(3221,4468)
+(3216,4466)
+(3215,4469)
+(3208,4465)
+(3208,4464)
+(3209,4457)
+(3213,4456)
+(3216,4455)
+(3216,4451)
+(3213,4449)
+(3213,4444)
+(3218,4444)
+(3219,4437)
+(3219,4434)
+(3216,4431)
+(3217,4425)
+(3217,4420)
+(3214,4419)
+(3214,4416)
+(3210,4413)
+(3207,4407)
+(3209,4403)
+(3212,4404)
+(3213,4400)
+(3214,4395)
+(3219,4397)
+(3221,4396)
+(3221,4399)
+(3225,4401)
+(3228,4401)
+(3229,4407)
+(3231,4406)
+(3233,4407)
+(3232,4415)
+(3232,4421)
+(3235,4423)
+(3240,4424)
+(3243,4425)
+(3244,4418)
+(3242,4416)
+(3240,4411)
+(3237,4412)
+(3239,4407)
+(3239,4405)
+(3238,4405)
+(3237,4399)
+(3238,4393)
+(3239,4385)
+(3243,4383)
+(3243,4379)
+(3246,4379)
+(3246,4370)
+(3248,4365)
+(3248,4356)
+(3245,4352)
+(3243,4351)
+(3243,4357)
+(3243,4359)
+(3240,4363)
+(3239,4363)
+(3237,4363)
+(3239,4353)
+(3235,4350)
+(3236,4344)
+(3237,4343)
+(3242,4345)
+(3245,4342)
+(3246,4342)
+(3247,4347)
+(3247,4349)
+(3248,4350)
+(3249,4344)
+(3251,4338)
+(3254,4339)
+(3255,4337)
+(3259,4336)
+(3262,4331)
+(3262,4324)
+(3260,4324)
+(3257,4328)
+(3255,4325)
+(3252,4330)
+(3251,4332)
+(3248,4330)
+(3249,4326)
+(3252,4324)
+(3254,4314)
+(3255,4306)
+(3252,4304)
+(3249,4305)
+(3247,4301)
+(3247,4295)
+(3247,4291)
+(3250,4289)
+(3251,4284)
+(3251,4279)
+(3247,4273)
+(3247,4270)
+(3251,4268)
+(3253,4264)
+(3256,4266)
+(3258,4261)
+(3261,4261)
+(3259,4269)
+(3259,4271)
+(3263,4274)
+(3267,4272)
+(3270,4272)
+(3275,4272)
+(3277,4278)
+(3280,4278)
+(3282,4272)
+(3284,4266)
+(3287,4263)
+(3291,4262)
+(3294,4260)
+(3299,4261)
+(3303,4261)
+(3307,4259)
+(3310,4256)
+(3314,4251)
+(3317,4250)
+(3318,4244)
+(3316,4239)
+(3316,4232)
+(3317,4229)
+(3316,4227)
+(3313,4225)
+(3311,4219)
+(3308,4214)
+(3308,4208)
+(3311,4203)
+(3312,4200)
+(3313,4195)
+(3317,4193)
+(3319,4188)
+(3320,4181)
+(3321,4176)
+(3320,4169)
+(3322,4164)
+(3321,4156)
+(3320,4152)
+(3323,4148)
+(3325,4143)
+(3326,4137)
+(3322,4135)
+(3320,4140)
+(3317,4140)
+(3319,4134)
+(3321,4129)
+(3320,4123)
+(3317,4122)
+(3314,4118)
+(3311,4117)
+(3312,4111)
+(3312,4104)
+(3311,4101)
+(3311,4095)
+(3311,4093)
+(3311,4091)
+(3308,4092)
+(3305,4096)
+(3301,4093)
+(3298,4093)
+(3297,4086)
+(3297,4081)
+(3298,4076)
+(3298,4071)
+(3295,4067)
+(3292,4063)
+(3291,4058)
+(3290,4053)
+(3291,4046)
+(3292,4041)
+(3292,4039)
+(3289,4036)
+(3288,4030)
+(3287,4024)
+(3287,4017)
+(3286,4011)
+(3285,4005)
+(3284,4004)
+(3283,3996)
+(3283,3991)
+(3282,3984)
+(3281,3978)
+(3279,3971)
+(3278,3963)
+(3277,3958)
+(3282,3958)
+(3282,3952)
+(3279,3949)
+(3276,3946)
+(3278,3940)
+(3278,3935)
+(3279,3930)
+(3279,3928)
+(3275,3929)
+(3274,3929)
+(3275,3923)
+(3274,3917)
+(3272,3913)
+(3267,3911)
+(3264,3914)
+(3260,3913)
+(3260,3907)
+(3264,3902)
+(3265,3897)
+(3263,3891)
+(3261,3885)
+(3264,3885)
+(3264,3879)
+(3262,3874)
+(3262,3869)
+(3260,3867)
+(3260,3861)
+(3259,3856)
+(3259,3850)
+(3259,3845)
+(3257,3841)
+(3258,3841)
+(3259,3840)
+(3257,3839)
+(3257,3833)
+(3256,3828)
+(3255,3823)
+(3254,3818)
+(3253,3813)
+(3252,3807)
+(3252,3800)
+(3252,3795)
+(3251,3790)
+(3248,3790)
+(3246,3785)
+(3246,3779)
+(3247,3773)
+(3247,3770)
+(3244,3766)
+(3242,3762)
+(3240,3758)
+(3238,3755)
+(3235,3754)
+(3234,3752)
+(3236,3747)
+(3239,3745)
+(3241,3749)
+(3243,3745)
+(3242,3740)
+(3242,3735)
+(3242,3728)
+(3243,3726)
+(3242,3721)
+(3239,3722)
+(3238,3723)
+(3237,3717)
+(3238,3712)
+(3241,3714)
+(3242,3711)
+(3239,3708)
+(3242,3704)
+(3240,3698)
+(3238,3698)
+(3237,3697)
+(3240,3694)
+(3242,3690)
+(3245,3688)
+(3245,3682)
+(3245,3680)
+(3242,3675)
+(3239,3677)
+(3236,3675)
+(3235,3675)
+(3235,3672)
+(3237,3670)
+(3237,3664)
+(3237,3662)
+(3234,3659)
+(3233,3664)
+(3233,3667)
+(3231,3671)
+(3229,3673)
+(3226,3671)
+(3223,3667)
+(3222,3663)
+(3219,3663)
+(3220,3656)
+(3217,3655)
+(3217,3661)
+(3216,3666)
+(3214,3670)
+(3214,3676)
+(3214,3681)
+(3216,3686)
+(3215,3691)
+(3212,3695)
+(3210,3695)
+(3208,3691)
+(3208,3685)
+(3209,3683)
+(3210,3678)
+(3210,3676)
+(3206,3674)
+(3204,3670)
+(3199,3670)
+(3196,3675)
+(3196,3680)
+(3195,3686)
+(3193,3691)
+(3193,3697)
+(3195,3700)
+(3193,3704)
+(3190,3708)
+(3188,3714)
+(3188,3719)
+(3187,3725)
+(3187,3727)
+(3184,3728)
+(3180,3728)
+(3178,3724)
+(3177,3719)
+(3181,3714)
+(3180,3708)
+(3180,3703)
+(3178,3699)
+(3180,3695)
+(3182,3690)
+(3182,3688)
+(3180,3684)
+(3180,3679)
+(3182,3674)
+(3180,3669)
+(3178,3667)
+(3179,3662)
+(3176,3664)
+(3173,3661)
+(3170,3657)
+(3168,3653)
+(3166,3650)
+(3165,3644)
+(3162,3643)
+(3159,3645)
+(3158,3650)
+(3155,3651)
+(3151,3651)
+(3150,3656)
+(3150,3658)
+(3146,3660)
+(3142,3663)
+(3138,3660)
+(3136,3656)
+(3134,3651)
+(3134,3648)
+(3131,3645)
+(3130,3640)
+(3130,3633)
+(3128,3628)
+(3126,3624)
+(3122,3620)
+(3120,3614)
+(3120,3609)
+(3119,3604)
+(3116,3603)
+(3113,3606)
+(3112,3611)
+(3113,3611)
+(3114,3610)
+(3113,3615)
+(3111,3620)
+(3109,3624)
+(3108,3631)
+(3104,3627)
+(3102,3624)
+(3099,3629)
+(3097,3636)
+(3097,3642)
+(3097,3647)
+(3097,3654)
+(3093,3656)
+(3090,3658)
+(3088,3662)
+(3087,3667)
+(3087,3668)
+(3087,3671)
+(3085,3677)
+(3084,3683)
+(3086,3687)
+(3084,3691)
+(3080,3693)
+(3078,3698)
+(3076,3701)
+(3075,3695)
+(3071,3694)
+(3068,3693)
+(3062,3691)
+(3059,3690)
+(3054,3689)
+(3050,3688)
+(3047,3683)
+(3045,3675)
+(3044,3671)
+(3042,3662)
+(3041,3656)
+(3040,3650)
+(3040,3641)
+(3040,3635)
+(3040,3629)
+(3041,3623)
+(3042,3619)
+(3045,3614)
+(3048,3611)
+(3050,3611)
+(3052,3605)
+(3050,3600)
+(3049,3600)
+(3046,3598)
+(3042,3596)
+(3039,3594)
+(3036,3590)
+(3034,3583)
+(3032,3577)
+(3031,3572)
+(3035,3571)
+(3039,3569)
+(3039,3563)
+(3040,3558)
+(3039,3557)
+(3041,3551)
+(3042,3542)
+(3042,3537)
+(3043,3532)
+(3045,3531)
+(3047,3527)
+(3050,3527)
+(3050,3522)
+(3049,3517)
+(3053,3514)
+(3056,3514)
+(3060,3516)
+(3064,3514)
+(3065,3509)
+(3065,3504)
+(3065,3502)
+(3069,3500)
+(3070,3498)
+(3068,3493)
+(3066,3493)
+(3064,3491)
+(3065,3486)
+(3066,3486)
+(3067,3486)
+(3068,3485)
+(3066,3481)
+(3066,3476)
+(3067,3471)
+(3068,3470)
+(3068,3468)
+(3068,3467)
+(3065,3465)
+(3060,3465)
+(3056,3464)
+(3055,3463)
+(3055,3461)
+(3057,3459)
+(3056,3454)
+(3055,3452)
+(3053,3452)
+(3053,3446)
+(3056,3441)
+(3059,3439)
+(3061,3436)
+(3064,3432)
+(3066,3431)
+(3064,3425)
+(3063,3420)
+(3064,3419)
+(3063,3414)
+(3065,3409)
+(3065,3404)
+(3061,3404)
+(3058,3404)
+(3059,3399)
+(3062,3395)
+(3064,3392)
+(3065,3391)
+(3065,3390)
+(3063,3388)
+(3059,3389)
+(3059,3388)
+(3058,3384)
+(3055,3383)
+(3055,3378)
+(3056,3373)
+(3055,3370)
+(3051,3369)
+(3048,3368)
+(3045,3367)
+(3043,3362)
+(3041,3357)
+(3039,3352)
+(3037,3346)
+(3035,3343)
+(3034,3342)
+(3036,3337)
+(3038,3332)
+(3040,3329)
+(3040,3324)
+(3039,3323)
+(3042,3318)
+(3045,3313)
+(3047,3309)
+(3049,3304)
+(3052,3306)
+(3054,3306)
+(3056,3303)
+(3055,3301)
+(3053,3300)
+(3052,3295)
+(3051,3294)
+(3051,3291)
+(3053,3290)
+(3053,3284)
+(3053,3283)
+(3049,3280)
+(3045,3280)
+(3041,3283)
+(3038,3284)
+(3035,3279)
+(3033,3278)
+(3032,3272)
+(3032,3270)
+(3035,3268)
+(3038,3265)
+(3041,3267)
+(3044,3267)
+(3047,3268)
+(3050,3271)
+(3052,3267)
+(3053,3259)
+(3056,3255)
+(3059,3252)
+(3061,3250)
+(3062,3252)
+(3063,3249)
+(3067,3248)
+(3068,3244)
+(3070,3242)
+(3071,3237)
+(3072,3232)
+(3072,3227)
+(3072,3225)
+(3074,3221)
+(3076,3219)
+(3079,3217)
+(3082,3218)
+(3085,3215)
+(3086,3210)
+(3089,3207)
+(3091,3203)
+(3090,3198)
+(3090,3193)
+(3091,3191)
+(3092,3192)
+(3092,3189)
+(3090,3190)
+(3089,3187)
+(3089,3186)
+(3089,3183)
+(3089,3178)
+(3088,3178)
+(3089,3177)
+(3090,3176)
+(3089,3175)
+(3089,3173)
+(3090,3173)
+(3090,3168)
+(3092,3167)
+(3090,3165)
+(3089,3161)
+(3088,3162)
+(3089,3160)
+(3087,3158)
+(3088,3156)
+(3088,3154)
+(3090,3151)
+(3093,3150)
+(3097,3147)
+(3099,3143)
+(3105,3142)
+(3106,3141)
+(3106,3140)
+(3103,3137)
+(3103,3131)
+(3100,3128)
+(3100,3123)
+(3100,3118)
+(3101,3111)
+(3098,3108)
+(3095,3105)
+(3092,3108)
+(3089,3103)
+(3088,3098)
+(3092,3098)
+(3092,3095)
+(3093,3094)
+(3094,3093)
+(3091,3091)
+(3089,3086)
+(3089,3079)
+(3090,3077)
+(3093,3075)
+(3094,3081)
+(3099,3082)
+(3100,3078)
+(3101,3077)
+(3101,3071)
+(3100,3064)
+(3101,3058)
+(3101,3053)
+(3104,3052)
+(3106,3046)
+(3106,3045)
+(3102,3044)
+(3100,3048)
+(3096,3047)
+(3094,3041)
+(3094,3040)
+(3098,3043)
+(3099,3037)
+(3099,3036)
+(3096,3033)
+(3096,3031)
+(3093,3030)
+(3089,3031)
+(3088,3028)
+(3087,3028)
+(3086,3022)
+(3083,3020)
+(3079,3018)
+(3078,3013)
+(3077,3007)
+(3075,3000)
+(3072,2992)
+(3069,2988)
+(3067,2984)
+(3067,2978)
+(3067,2973)
+(3067,2968)
+(3068,2965)
+(3066,2962)
+(3062,2961)
+(3060,2959)
+(3056,2964)
+(3053,2965)
+(3050,2960)
+(3050,2955)
+(3048,2949)
+(3046,2944)
+(3043,2941)
+(3040,2937)
+(3038,2932)
+(3036,2929)
+(3037,2923)
+(3040,2918)
+(3040,2916)
+(3039,2913)
+(3037,2914)
+(3035,2918)
+(3028,2920)
+(3025,2920)
+(3020,2921)
+(3015,2923)
+(3012,2926)
+(3008,2926)
+(3006,2926)
+(3005,2931)
+(3001,2933)
+(2998,2928)
+(2996,2924)
+(2994,2919)
+(2993,2914)
+(2990,2906)
+(2989,2906)
+(2990,2903)
+(2990,2901)
+(2992,2898)
+(2992,2897)
+(2992,2895)
+(2992,2893)
+(2996,2891)
+(3000,2888)
+(3003,2887)
+(3006,2885)
+(3008,2881)
+(3011,2878)
+(3014,2875)
+(3017,2871)
+(3020,2868)
+(3022,2864)
+(3024,2860)
+(3027,2855)
+(3027,2851)
+(3025,2847)
+(3022,2844)
+(3020,2844)
+(3020,2839)
+(3016,2838)
+(3012,2836)
+(3008,2840)
+(3003,2838)
+(3000,2836)
+(2996,2830)
+(2993,2820)
+(2992,2815)
+(2988,2813)
+(2985,2812)
+(2981,2812)
+(2978,2812)
+(2974,2810)
+(2971,2809)
+(2967,2808)
+(2963,2807)
+(2960,2807)
+(2958,2812)
+(2955,2818)
+(2953,2821)
+(2948,2823)
+(2944,2820)
+(2940,2816)
+(2938,2811)
+(2936,2807)
+(2931,2803)
+(2928,2802)
+(2925,2800)
+(2921,2798)
+(2917,2795)
+(2913,2793)
+(2910,2791)
+(2907,2790)
+(2905,2795)
+(2903,2801)
+(2902,2805)
+(2900,2813)
+(2900,2815)
+(2896,2820)
+(2893,2824)
+(2893,2826)
+(2890,2827)
+(2886,2826)
+(2885,2831)
+(2882,2828)
+(2880,2821)
+(2877,2824)
+(2874,2827)
+(2871,2829)
+(2869,2827)
+(2866,2830)
+(2863,2836)
+(2861,2841)
+(2861,2842)
+(2864,2844)
+(2867,2845)
+(2868,2844)
+(2867,2850)
+(2866,2855)
+(2865,2860)
+(2865,2867)
+(2865,2875)
+(2866,2880)
+(2865,2885)
+(2862,2890)
+(2858,2893)
+(2855,2896)
+(2850,2899)
+(2848,2902)
+(2845,2906)
+(2845,2912)
+(2845,2915)
+(2842,2917)
+(2839,2918)
+(2835,2919)
+(2830,2921)
+(2825,2924)
+(2822,2926)
+(2818,2930)
+(2814,2934)
+(2810,2938)
+(2807,2940)
+(2804,2938)
+(2802,2935)
+(2801,2930)
+(2801,2925)
+(2804,2922)
+(2806,2919)
+(2806,2915)
+(2804,2911)
+(2801,2909)
+(2799,2909)
+(2798,2913)
+(2796,2914)
+(2796,2918)
+(2794,2920)
+(2793,2925)
+(2790,2928)
+(2789,2929)
+(2787,2934)
+(2786,2938)
+(2784,2942)
+(2783,2946)
+(2782,2950)
+(2783,2953)
+(2781,2953)
+(2778,2954)
+(2775,2958)
+(2775,2957)
+(2776,2955)
+(2777,2949)
+(2779,2949)
+(2780,2950)
+(2780,2948)
+(2775,2943)
+(2774,2947)
+(2769,2947)
+(2769,2946)
+(2771,2944)
+(2772,2942)
+(2770,2941)
+(2770,2939)
+(2768,2936)
+(2766,2937)
+(2765,2937)
+(2769,2933)
+(2766,2933)
+(2768,2932)
+(2768,2930)
+(2765,2933)
+(2764,2931)
+(2767,2930)
+(2768,2927)
+(2766,2929)
+(2763,2929)
+(2765,2927)
+(2768,2922)
+(2767,2922)
+(2767,2920)
+(2765,2920)
+(2765,2918)
+(2764,2922)
+(2761,2924)
+(2759,2923)
+(2758,2919)
+(2758,2924)
+(2756,2926)
+(2755,2924)
+(2753,2925)
+(2752,2927)
+(2751,2927)
+(2750,2927)
+(2751,2926)
+(2750,2923)
+(2749,2923)
+(2752,2921)
+(2753,2922)
+(2753,2920)
+(2757,2916)
+(2758,2914)
+(2756,2910)
+(2756,2907)
+(2752,2904)
+(2753,2902)
+(2751,2902)
+(2751,2904)
+(2750,2904)
+(2750,2897)
+(2746,2895)
+(2746,2893)
+(2743,2895)
+(2743,2894)
+(2744,2892)
+(2744,2889)
+(2743,2888)
+(2745,2884)
+(2743,2882)
+(2742,2880)
+(2743,2879)
+(2743,2876)
+(2741,2874)
+(2743,2873)
+(2743,2871)
+(2739,2870)
+(2738,2871)
+(2736,2869)
+(2741,2866)
+(2742,2860)
+(2744,2859)
+(2745,2857)
+(2746,2853)
+(2744,2853)
+(2745,2855)
+(2743,2855)
+(2743,2858)
+(2740,2858)
+(2740,2856)
+(2738,2856)
+(2737,2859)
+(2735,2858)
+(2734,2859)
+(2733,2858)
+(2734,2857)
+(2739,2853)
+(2741,2846)
+(2743,2847)
+(2743,2850)
+(2743,2849)
+(2745,2843)
+(2740,2845)
+(2738,2853)
+(2734,2854)
+(2732,2853)
+(2735,2850)
+(2734,2849)
+(2730,2853)
+(2729,2850)
+(2725,2849)
+(2725,2843)
+(2724,2844)
+(2724,2847)
+(2723,2848)
+(2722,2845)
+(2718,2843)
+(2711,2843)
+(2711,2838)
+(2698,2832)
+(2698,2830)
+(2696,2829)
+(2697,2826)
+(2692,2827)
+(2687,2825)
+(2691,2821)
+(2694,2821)
+(2695,2820)
+(2689,2821)
+(2686,2818)
+(2686,2816)
+(2684,2812)
+(2682,2810)
+(2682,2807)
+(2679,2805)
+(2679,2803)
+(2674,2802)
+(2673,2803)
+(2671,2801)
+(2667,2802)
+(2664,2806)
+(2663,2808)
+(2664,2810)
+(2662,2821)
+(2660,2823)
+(2654,2826)
+(2652,2831)
+(2653,2832)
+(2653,2834)
+(2645,2837)
+(2642,2841)
+(2635,2845)
+(2633,2846)
+(2632,2848)
+(2629,2846)
+(2629,2849)
+(2626,2850)
+(2624,2846)
+(2621,2847)
+(2617,2844)
+(2616,2843)
+(2617,2842)
+(2613,2843)
+(2612,2844)
+(2610,2844)
+(2610,2846)
+(2612,2848)
+(2618,2848)
+(2621,2850)
+(2623,2850)
+(2628,2852)
+(2632,2852)
+(2634,2858)
+(2632,2862)
+(2630,2859)
+(2623,2855)
+(2614,2852)
+(2611,2852)
+(2607,2849)
+(2598,2849)
+(2597,2850)
+(2600,2854)
+(2598,2855)
+(2592,2849)
+(2587,2849)
+(2585,2847)
+(2581,2848)
+(2577,2853)
+(2577,2855)
+(2574,2857)
+(2572,2862)
+(2566,2863)
+(2563,2862)
+(2558,2864)
+(2556,2872)
+(2548,2877)
+(2543,2881)
+(2540,2887)
+(2530,2894)
+(2526,2898)
+(2516,2903)
+(2514,2906)
+(2513,2912)
+(2511,2910)
+(2507,2908)
+(2504,2907)
+(2500,2906)
+(2497,2904)
+(2494,2899)
+(2492,2896)
+(2490,2892)
+(2490,2887)
+(2489,2883)
+(2486,2882)
+(2483,2879)
+(2481,2876)
+(2478,2875)
+(2474,2874)
+(2473,2873)
+(2473,2868)
+(2471,2865)
+(2473,2862)
+(2474,2858)
+(2473,2854)
+(2474,2850)
+(2475,2850)
+(2476,2846)
+(2477,2842)
+(2478,2838)
+(2479,2836)
+(2483,2835)
+(2485,2833)
+(2489,2831)
+(2491,2830)
+(2494,2827)
+(2495,2827)
+(2493,2824)
+(2493,2821)
+(2496,2819)
+(2498,2820)
+(2498,2818)
+(2501,2815)
+(2503,2815)
+(2504,2811)
+(2507,2807)
+(2510,2806)
+(2511,2806)
+(2512,2805)
+(2510,2802)
+(2509,2797)
+(2508,2795)
+(2509,2793)
+(2512,2792)
+(2513,2788)
+(2514,2785)
+(2517,2783)
+(2516,2779)
+(2519,2776)
+(2520,2775)
+(2519,2771)
+(2521,2767)
+(2520,2767)
+(2519,2766)
+(2522,2764)
+(2522,2763)
+(2522,2758)
+(2522,2757)
+(2524,2754)
+(2527,2752)
+(2527,2748)
+(2529,2744)
+(2531,2740)
+(2533,2737)
+(2537,2738)
+(2537,2743)
+(2538,2744)
+(2541,2744)
+(2546,2746)
+(2549,2746)
+(2550,2740)
+(2552,2735)
+(2552,2731)
+(2553,2727)
+(2552,2722)
+(2552,2721)
+(2554,2718)
+(2557,2716)
+(2560,2712)
+(2562,2709)
+(2562,2705)
+(2564,2700)
+(2565,2696)
+(2564,2692)
+(2560,2689)
+(2557,2687)
+(2561,2684)
+(2564,2683)
+(2565,2679)
+(2565,2671)
+(2564,2667)
+(2563,2664)
+(2563,2659)
+(2561,2655)
+(2558,2653)
+(2557,2650)
+(2557,2645)
+(2556,2641)
+(2554,2638)
+(2554,2634)
+(2555,2629)
+(2555,2627)
+(2558,2624)
+(2560,2626)
+(2563,2628)
+(2565,2628)
+(2566,2623)
+(2568,2619)
+(2570,2616)
+(2572,2613)
+(2573,2609)
+(2574,2604)
+(2574,2600)
+(2575,2596)
+(2576,2592)
+(2580,2587)
+(2582,2583)
+(2584,2582)
+(2586,2582)
+(2587,2578)
+(2587,2576)
+(2590,2574)
+(2590,2570)
+(2591,2565)
+(2590,2561)
+(2589,2561)
+(2590,2557)
+(2591,2553)
+(2592,2549)
+(2593,2548)
+(2594,2548)
+(2595,2547)
+(2595,2543)
+(2593,2539)
+(2593,2537)
+(2594,2533)
+(2593,2529)
+(2592,2525)
+(2592,2523)
+(2593,2519)
+(2594,2513)
+(2595,2513)
+(2592,2510)
+(2593,2506)
+(2594,2504)
+(2593,2503)
+(2593,2498)
+(2595,2494)
+(2596,2491)
+(2598,2486)
+(2601,2485)
+(2602,2482)
+(2600,2479)
+(2602,2474)
+(2603,2470)
+(2604,2468)
+(2603,2466)
+(2603,2464)
+(2606,2460)
+(2606,2456)
+(2608,2454)
+(2609,2450)
+(2611,2446)
+(2612,2442)
+(2613,2441)
+(2614,2439)
+(2611,2435)
+(2612,2431)
+(2613,2427)
+(2613,2422)
+(2614,2418)
+(2615,2414)
+(2615,2410)
+(2613,2406)
+(2611,2404)
+(2607,2402)
+(2604,2401)
+(2603,2401) \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/metapost/datastest/russie3bis.dat b/macros/latex/contrib/profcollege/metapost/datastest/russie3bis.dat
new file mode 100644
index 0000000000..0d7eb74191
--- /dev/null
+++ b/macros/latex/contrib/profcollege/metapost/datastest/russie3bis.dat
@@ -0,0 +1,465 @@
+464%
+(4135,-10786)
+(4134,-10775)
+(4135,-10771)
+(4137,-10773)
+(4137,-10771)
+(4134,-10766)
+(4132,-10760)
+(4131,-10761)
+(4131,-10765)
+(4129,-10764)
+(4129,-10753)
+(4127,-10750)
+(4126,-10735)
+(4115,-10709)
+(4116,-10714)
+(4120,-10725)
+(4112,-10724)
+(4110,-10706)
+(4109,-10703)
+(4109,-10695)
+(4106,-10682)
+(4100,-10677)
+(4096,-10685)
+(4095,-10684)
+(4095,-10678)
+(4097,-10677)
+(4100,-10662)
+(4112,-10701)
+(4113,-10703)
+(4104,-10670)
+(4098,-10653)
+(4097,-10648)
+(4098,-10656)
+(4097,-10658)
+(4095,-10666)
+(4093,-10661)
+(4093,-10657)
+(4091,-10658)
+(4093,-10653)
+(4095,-10642)
+(4092,-10630)
+(4092,-10636)
+(4090,-10634)
+(4089,-10635)
+(4088,-10630)
+(4090,-10624)
+(4074,-10569)
+(4070,-10554)
+(4061,-10524)
+(4060,-10518)
+(4059,-10518)
+(4059,-10522)
+(4053,-10516)
+(4052,-10510)
+(4050,-10508)
+(4051,-10516)
+(4050,-10513)
+(4047,-10513)
+(4041,-10523)
+(4041,-10512)
+(4042,-10506)
+(4047,-10503)
+(4049,-10505)
+(4045,-10496)
+(4045,-10497)
+(4044,-10496)
+(4043,-10492)
+(4043,-10490)
+(4038,-10487)
+(4037,-10488)
+(4039,-10490)
+(4037,-10494)
+(4026,-10497)
+(4019,-10495)
+(4016,-10488)
+(4016,-10484)
+(4014,-10488)
+(4012,-10486)
+(4004,-10485)
+(4005,-10486)
+(4005,-10492)
+(4003,-10493)
+(4002,-10497)
+(4001,-10497)
+(4000,-10500)
+(3997,-10494)
+(3995,-10479)
+(3992,-10469)
+(3987,-10465)
+(3988,-10469)
+(3987,-10471)
+(3983,-10470)
+(3981,-10465)
+(3980,-10470)
+(3978,-10468)
+(3978,-10466)
+(3979,-10461)
+(3981,-10464)
+(3984,-10459)
+(3985,-10453)
+(3988,-10456)
+(3988,-10452)
+(3989,-10449)
+(3989,-10441)
+(3987,-10439)
+(3984,-10443)
+(3981,-10439)
+(3979,-10444)
+(3975,-10445)
+(3973,-10441)
+(3976,-10439)
+(3979,-10431)
+(3980,-10436)
+(3981,-10430)
+(3982,-10427)
+(3987,-10425)
+(3989,-10433)
+(3991,-10435)
+(3993,-10453)
+(3995,-10458)
+(4001,-10441)
+(4000,-10439)
+(4001,-10437)
+(4002,-10440)
+(4011,-10441)
+(4014,-10445)
+(4016,-10445)
+(4019,-10447)
+(4019,-10458)
+(4020,-10459)
+(4021,-10455)
+(4023,-10457)
+(4022,-10472)
+(4023,-10474)
+(4024,-10466)
+(4025,-10465)
+(4023,-10477)
+(4024,-10479)
+(4025,-10477)
+(4026,-10463)
+(4025,-10430)
+(4026,-10425)
+(4028,-10421)
+(4026,-10411)
+(4025,-10410)
+(4023,-10412)
+(4022,-10411)
+(4022,-10408)
+(4025,-10406)
+(4023,-10388)
+(4023,-10394)
+(4024,-10398)
+(4022,-10398)
+(4021,-10391)
+(4020,-10393)
+(4020,-10398)
+(4018,-10401)
+(4017,-10401)
+(4015,-10400)
+(4015,-10402)
+(4013,-10400)
+(4012,-10402)
+(4010,-10402)
+(4010,-10393)
+(4012,-10389)
+(4013,-10393)
+(4015,-10392)
+(4015,-10397)
+(4017,-10393)
+(4019,-10393)
+(4020,-10387)
+(4017,-10385)
+(4016,-10382)
+(4014,-10367)
+(4016,-10359)
+(4015,-10355)
+(4016,-10346)
+(4018,-10353)
+(4022,-10383)
+(4023,-10384)
+(4023,-10383)
+(4021,-10357)
+(4020,-10350)
+(4021,-10367)
+(4018,-10340)
+(4017,-10323)
+(4019,-10317)
+(4017,-10315)
+(4017,-10304)
+(4016,-10301)
+(4011,-10302)
+(4008,-10296)
+(4006,-10285)
+(4005,-10284)
+(4003,-10286)
+(3999,-10280)
+(3994,-10266)
+(3991,-10253)
+(3987,-10244)
+(3981,-10235)
+(3979,-10225)
+(3978,-10234)
+(3977,-10233)
+(3974,-10239)
+(3974,-10233)
+(3978,-10227)
+(3978,-10219)
+(3972,-10208)
+(3971,-10211)
+(3972,-10218)
+(3971,-10220)
+(3969,-10214)
+(3969,-10211)
+(3970,-10209)
+(3968,-10196)
+(3970,-10195)
+(3971,-10202)
+(3968,-10183)
+(3964,-10181)
+(3960,-10187)
+(3959,-10189)
+(3961,-10196)
+(3962,-10200)
+(3961,-10207)
+(3951,-10237)
+(3951,-10233)
+(3950,-10231)
+(3946,-10234)
+(3944,-10232)
+(3940,-10232)
+(3937,-10235)
+(3936,-10241)
+(3937,-10253)
+(3939,-10254)
+(3941,-10265)
+(3942,-10272)
+(3946,-10276)
+(3949,-10285)
+(3950,-10292)
+(3949,-10289)
+(3945,-10286)
+(3944,-10279)
+(3943,-10282)
+(3940,-10277)
+(3938,-10268)
+(3936,-10264)
+(3936,-10261)
+(3929,-10263)
+(3929,-10270)
+(3932,-10284)
+(3929,-10324)
+(3930,-10316)
+(3931,-10309)
+(3932,-10310)
+(3932,-10322)
+(3933,-10324)
+(3934,-10327)
+(3932,-10334)
+(3933,-10340)
+(3935,-10337)
+(3938,-10342)
+(3940,-10341)
+(3940,-10345)
+(3941,-10354)
+(3941,-10357)
+(3942,-10359)
+(3941,-10368)
+(3942,-10371)
+(3940,-10368)
+(3940,-10360)
+(3938,-10361)
+(3937,-10360)
+(3936,-10344)
+(3932,-10346)
+(3929,-10340)
+(3928,-10348)
+(3925,-10344)
+(3926,-10337)
+(3930,-10329)
+(3921,-10335)
+(3915,-10335)
+(3914,-10335)
+(3916,-10337)
+(3916,-10343)
+(3915,-10352)
+(3914,-10355)
+(3916,-10357)
+(3916,-10360)
+(3915,-10362)
+(3914,-10361)
+(3913,-10357)
+(3913,-10338)
+(3912,-10335)
+(3908,-10331)
+(3908,-10335)
+(3905,-10332)
+(3906,-10328)
+(3905,-10328)
+(3895,-10348)
+(3895,-10350)
+(3895,-10352)
+(3894,-10356)
+(3893,-10362)
+(3892,-10365)
+(3891,-10368)
+(3893,-10377)
+(3892,-10383)
+(3891,-10385)
+(3889,-10386)
+(3887,-10392)
+(3887,-10390)
+(3891,-10378)
+(3887,-10367)
+(3886,-10367)
+(3884,-10372)
+(3883,-10372)
+(3883,-10378)
+(3880,-10385)
+(3880,-10383)
+(3881,-10374)
+(3880,-10372)
+(3877,-10377)
+(3875,-10381)
+(3875,-10377)
+(3877,-10373)
+(3878,-10367)
+(3876,-10364)
+(3875,-10360)
+(3874,-10353)
+(3873,-10348)
+(3870,-10346)
+(3866,-10337)
+(3865,-10347)
+(3864,-10350)
+(3863,-10358)
+(3865,-10364)
+(3865,-10368)
+(3868,-10366)
+(3870,-10369)
+(3871,-10370)
+(3871,-10376)
+(3870,-10377)
+(3870,-10381)
+(3868,-10384)
+(3868,-10375)
+(3867,-10373)
+(3865,-10374)
+(3860,-10374)
+(3859,-10378)
+(3857,-10380)
+(3855,-10391)
+(3859,-10406)
+(3862,-10405)
+(3867,-10396)
+(3867,-10399)
+(3871,-10397)
+(3873,-10401)
+(3875,-10400)
+(3875,-10403)
+(3877,-10405)
+(3870,-10401)
+(3868,-10402)
+(3864,-10408)
+(3861,-10415)
+(3861,-10421)
+(3865,-10443)
+(3873,-10447)
+(3878,-10461)
+(3879,-10457)
+(3880,-10457)
+(3880,-10467)
+(3887,-10491)
+(3889,-10500)
+(3891,-10499)
+(3892,-10501)
+(3887,-10501)
+(3887,-10508)
+(3887,-10524)
+(3887,-10529)
+(3889,-10531)
+(3890,-10525)
+(3891,-10525)
+(3891,-10532)
+(3893,-10534)
+(3895,-10538)
+(3897,-10549)
+(3901,-10555)
+(3904,-10549)
+(3910,-10547)
+(3917,-10555)
+(3918,-10553)
+(3921,-10556)
+(3924,-10556)
+(3929,-10566)
+(3929,-10571)
+(3929,-10580)
+(3933,-10594)
+(3937,-10624)
+(3935,-10633)
+(3930,-10644)
+(3929,-10650)
+(3929,-10662)
+(3929,-10692)
+(3929,-10702)
+(3931,-10713)
+(3933,-10714)
+(3934,-10711)
+(3937,-10712)
+(3938,-10709)
+(3944,-10708)
+(3945,-10711)
+(3945,-10717)
+(3946,-10719)
+(3947,-10718)
+(3947,-10721)
+(3951,-10727)
+(3953,-10732)
+(3955,-10734)
+(3956,-10732)
+(3963,-10739)
+(3959,-10727)
+(3961,-10722)
+(3967,-10720)
+(3967,-10716)
+(3970,-10713)
+(3971,-10714)
+(3974,-10711)
+(3976,-10712)
+(3978,-10710)
+(3984,-10710)
+(3984,-10712)
+(3982,-10714)
+(3982,-10715)
+(3982,-10718)
+(3979,-10719)
+(3972,-10727)
+(3970,-10738)
+(3972,-10744)
+(3975,-10747)
+(3978,-10745)
+(3983,-10747)
+(3985,-10751)
+(3981,-10751)
+(3977,-10751)
+(3978,-10758)
+(3979,-10760)
+(3981,-10765)
+(3971,-10755)
+(3968,-10763)
+(3967,-10778)
+(3968,-10781)
+(3968,-10775)
+(3969,-10775)
+(3971,-10782)
+(3967,-10786)
+(3957,-10789)
+(3948,-10785)
+(3938,-10760)
+(3936,-10762)
+(3932,-10759)
+(3926,-10772)
+(3916,-10774)
+(3910,-10782)
+(3909,-10789) \ No newline at end of file
diff --git a/macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx b/macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx
index 79611c3fd7..56cff0bc08 100644
--- a/macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx
+++ b/macros/unicodetex/latex/nwafuthesis/nwafuthesis.dtx
@@ -110,7 +110,7 @@
%<class|doc>\NeedsTeXFormat{LaTeX2e}
%<class|doc>\RequirePackage{expl3}
%<*!(driver|install)>
-%<!readme>\GetIdInfo $Id: nwafuthesis.dtx 1.12 2022-05-24 Nan Geng <nangeng@nwafu.edu.cn> $
+%<!readme>\GetIdInfo $Id: nwafuthesis.dtx 1.13 2022-05-26 Nan Geng <nangeng@nwafu.edu.cn> $
%<class> {Thesis template for Northwest A\&F University}
%<class>\ProvidesExplClass{\ExplFileName}
%<definition> {Definition file for nwafuthesis}
@@ -143,7 +143,7 @@
\textbf{\nwafuthesis: 西北农林科技大学学ä½è®ºæ–‡
\xpinyin[font=\sffamily,format=\color{MaterialIndigo800}]{模}{mu2}æ¿}}}
\author{耿楠}
-\date{\today\quad v1.12%
+\date{\today\quad v1.13%
\thanks{\url{https://gitee.com/nwafu_nan/nwafuthesis-l3}.}}
\begin{document}
@@ -836,7 +836,7 @@
% \begin{nwafusyntax}[emph={[1]btype}]
% btype = (*<(paper)|design>*)
% \end{nwafusyntax}
-% 本科毕业类型,仅适用于本科。\opt{paper} 和 \opt{design}
+% 本科生毕业类型,仅适用于本科。\opt{paper} 和 \opt{design}
% 分别表示论文和设计。
% \end{function}
%
@@ -1548,7 +1548,7 @@
%
% \bibitem{西北农林科技大学本科生论文撰写规范}
% 西北农林科技大学教务处.
-% \newblock \textit{西北农林科技大学本科毕业论文(设计)写作规范(试用)} [EB/OL].
+% \newblock \textit{西北农林科技大学本科生毕业论文(设计)写作规范(试用)} [EB/OL].
% \newblock 2021 年 5 月修订版.
% \newblock (2021-05-07)
% \urlprefix\url{https://jiaowu.nwafu.edu.cn/docs//2021-05/8aa0ef88fcf94e5ebf0bdcc2a6f42785.pdf}
@@ -1794,7 +1794,7 @@
% \begin{variable}{\l_@@_withchap_bool}
% 是å¦æŒ‰ç« ç¼–写论文(默认按章编写)。
% 该选项是针对部分学院需è¦æŒ‰æŠ¥å‘Šå½¢å¼(类似``1\ 绪论'')çš„å½¢å¼
-% 撰写本科毕业论文(设计)而设置的。
+% 撰写本科生毕业论文(设计)而设置的。
% \begin{macrocode}
\bool_new:N \l_@@_withchap_bool
% \end{macrocode}
@@ -1805,7 +1805,7 @@
% \begin{variable}{\g_@@_chapnum_int}
% ç« ç¼–å·ç¼–å·ç±»åž‹(默认为阿拉伯数字)。
% 该选项是针对部分学院需è¦ä¸­æ–‡æ•°å­—进行章编å·(类似``第一章 绪论'')的需求
-% 仅为撰写本科毕业论文(设计)而设置的。
+% 仅为撰写本科生毕业论文(设计)而设置的。
% \begin{macrocode}
\int_new:N \g_@@_chapnum_int
% \end{macrocode}
@@ -2000,7 +2000,7 @@
%
% \begin{macro}{type}
% 设置论文类型。设为模æ¿é€‰é¡¹ä¸»è¦æ˜¯ä¸ºäº†ä»¥åŽçš„兼容性。论文类型å¯èƒ½ä¼š
-% å½±å“很多设置,默认为本科毕业论文。
+% å½±å“很多设置,默认为本科生毕业论文。
% \begin{macrocode}
type .choice:,
type .value_required:n = true,
@@ -2385,13 +2385,15 @@
%
% \subsubsection{æ‚项常é‡å®šä¹‰}
%
+% \changes{v1.13}{2022/05/26}{修订本科毕业为本科生毕业。}
+%
% \begin{variable}{\c_@@_thesis_type_clist,
% \c_@@_degree_type_clist,
% \c_@@_bachelor_type_clist}
% 论文类型与学ä½ç±»åž‹ã€‚
% \begin{macrocode}
\clist_const:Nn \c_@@_thesis_type_clist
- { åšå£«å­¦ä½è®ºæ–‡, 硕士学ä½è®ºæ–‡, 本科毕业 }
+ { åšå£«å­¦ä½è®ºæ–‡, 硕士学ä½è®ºæ–‡, 本科生毕业 }
\clist_const:Nn \c_@@_degree_type_clist
{ 学术学ä½, ä¸“ä¸šå­¦ä½ }
\clist_const:Nn \c_@@_bachelor_type_clist
@@ -3516,6 +3518,7 @@
% \end{macrocode}
%
% \changes{v1.11}{2022/04/02}{删除本科生目录页眉,并修正å•é¢æ¨¡å¼ç›®å½•é¡µçœ‰ã€‚}
+% \changes{v1.13}{2022/05/26}{删除本科页眉题目中的æ¢è¡Œç¬¦ã€‚}
%
% \begin{macro}{\frontmatter,\mainmatter}
% é‡å®šä¹‰ \tn{frontmatter}å’Œ\tn{mainmatter},
@@ -3617,7 +3620,9 @@
% 本科生å¶æ•°é¡µé¡µçœ‰
% \begin{macrocode}
\RenewDocumentCommand \headrulewidth { } { 0.4 pt }
- \nwafuhead[EC]{\small \nouppercase{ \l__@@_info_title_tl } }
+ \tl_set_eq:NN \l_tmpa_tl \l__@@_info_title_tl
+ \tl_replace_all:Nnn \l_tmpa_tl { \\ } { ~ }
+ \nwafuhead[EC]{\small \nouppercase{ \l_tmpa_tl } }
}
}{
% \end{macrocode}
@@ -3646,7 +3651,9 @@
% \end{macrocode}
% 本科生å¶æ•°é¡µé¡µçœ‰
% \begin{macrocode}
- \small \nouppercase{ \l__@@_info_title_tl }
+ \tl_set_eq:NN \l_tmpa_tl \l__@@_info_title_tl
+ \tl_replace_all:Nnn \l_tmpa_tl { \\ } { ~ }
+ \small \nouppercase{ \l_tmpa_tl }
}
}
}
@@ -4671,7 +4678,7 @@
% \end{variable}
%
% \begin{variable}{\l_@@_info_bachelor_type_int}
-% 本科毕业类型。1 为论文,2 为设计。仅对本科生有效。
+% 本科生毕业类型。1 为论文,2 为设计。仅对本科生有效。
% \begin{macrocode}
\int_new:N \l_@@_info_bachelor_type_int
% \end{macrocode}
@@ -4693,7 +4700,7 @@
% \end{macro}
%
% \begin{macro}{info/btype}
-% 本科毕业类型。仅对本科生有效。
+% 本科生毕业类型。仅对本科生有效。
% \begin{macrocode}
btype .choice:,
btype .value_required:n = true,
@@ -5225,7 +5232,7 @@
\@@_spread_box:nn { 0.75 \textwidth } { \l_@@_tmpa_tl }
}{
% \end{macrocode}
-% 本科毕业年份(届)。
+% 本科生毕业年份(届)。
% \begin{macrocode}
\@@_get_text_width:NV \l__@@_tmpa_dim \l__@@_info_grade_tl
\@@_center_box:Vn \l__@@_tmpa_dim { \l__@@_info_grade_tl }
@@ -6081,13 +6088,15 @@
%
% \subsubsection{定义å°é¢é¡µé¢å…ƒç´ }
%
+% \changes{v1.13}{2022/05/26}{修订ID为四å·å­—。}
+%
% \begin{macro}{cover/i/id}
% å°ä¸€å­¦æ ¡ä»£ç å’Œå­¦å·ã€‚仅本科生需è¦
% \begin{macrocode}
\@@_declare_element:nn { cover / i / id }
{
content = \@@_cover_id:,
- format = \bfseries\zihao { -5 },
+ format = \bfseries\zihao { 4 },
bottom-skip = 0 pt plus 0.3 fill,
align = right,
}
@@ -7332,12 +7341,15 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_abstract_begin:
{
+ % \tl_set_eq:NN \l_tmpa_tl \l_@@_info_title_tl
+ % \tl_replace_all:Nnn \l_tmpa_tl { \\ } { ~ }
\int_compare:nNnTF { \g_@@_thesis_type_int } < { 3 }
{
\@@_chapter:V \c_@@_name_abstract_tl
}{
\par \mode_leave_vertical: \par
\begin{center}\nwafu@hei\zihao{3}\l_@@_info_title_tl\end{center}
+ % \begin{center}\nwafu@hei\zihao{3}\l_tmpa_tl\end{center}
}
}
\cs_set_eq:NN \my_uppercase:n \uppercase
@@ -7802,6 +7814,8 @@
% \end{macrocode}
% æ­¤åŽ \tn{hypersetup} 命令由 \pkg{hyperref} å®åŒ…接管。
% \begin{macrocode}
+ \tl_set_eq:NN \l_tmpa_tl \l_@@_info_title_tl
+ \tl_replace_all:Nnn \l_tmpa_tl { \\ } { ~ }
\hypersetup
{
bookmarksnumbered = true,
@@ -7811,7 +7825,7 @@
% 填写 PDF 元信æ¯ã€‚
% \begin{macrocode}
%<*class>
- pdftitle = \l_@@_info_title_tl,
+ pdftitle = \l_tmpa_tl,
pdfauthor = \l_@@_info_author_tl,
pdfkeywords = \l_@@_abstract_keywords_clist,
%</class>
diff --git a/macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf b/macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf
index 21c3a57b03..4603ecc9f1 100644
--- a/macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf
+++ b/macros/unicodetex/latex/nwafuthesis/nwafuthesis.pdf
Binary files differ
diff --git a/support/pkgcheck/CHANGES.md b/support/pkgcheck/CHANGES.md
index fc9e145fd2..ade233c38d 100644
--- a/support/pkgcheck/CHANGES.md
+++ b/support/pkgcheck/CHANGES.md
@@ -1,100 +1,97 @@
-# General remarks
+# Changelog
-- the x.y.z is the version of the Rust source code which follows semantic versioning
+- the x.y.z is the version of the source code which follows semantic versioning
- the combination of version and version date designates the version of the package as it is uploaded to CTAN
# Changes
-2018-12-09 (1.0.0)
- - 1.0.0 First stable version
-
-2018-12-16 (1.0.0)
- - quick_intro.txt: improve wording
- - build_ctan_zip.p6: add source files to be included into CTAN zip archive
- - devnotes.md: add documentation how to build your own binary
-
-2018-12-26 (1.1.0)
- - enhance check for generated files which now could reside in any
- subdirectory in the package tree. This changes the format of the
- e0019 message slightly where now the path of a generated file will be
- displayed in the e0019 message
- - change ordering of the sections in the pkgcheck.pdf document. First come the
- informational messages, then warnings and error messages and finally fatal messages.
- - add a short info to the PDF documention about how to install pkgcheck
-
-2019-01-02 (1.2.0)
- - some code simplification
- - **New feature**: checks that path names in the TDS zip archive contain the package name
- (only exception is a man page path)
- - add test cases for messages e0026, e0028
-
-2019-03-09 (1.3.0)
- - recompile with newest http library
- - checking URLs
- - when checking URLs we try to get the headers first. If this fails we try to get the web page.
- - when checking URLs and a redirect has an invalid location containing 127.0.0.1
- then we regard the url as ok
- - ignoring .tfm files when checking for duplicates
- - now checking for UTF BOMs. If a README file contains a BOM we issue an error message,
- if other files contain BOMs we issue a warning message
-
-2019-03-11 (1.4.0)
- - recognizing generated files in a .dtx file when they are included using a
- filecontents resp. filecontents* environment.
-
-2019-03-14 (1.5.0)
- - a README can be a symlink which will now be detected properly
- - if a symlink points to a file object outside of the package directory tree error message
- e0030 will be issued
-
-2019-03-29 (1.6.0)
- - new error message e0031 when a filename contains invalid UTF-8 characters
-
-2019-06-30 (1.7.0)
- - when symlinks occur in e0025 they are reported as files
- - improved error message e0025 now displaying the paths of the affected
- files/directories/symlinks
- - if a found http(s) link ends with "`" then the trailing "`" will be discarded
- - compiled with rust edition 2018
-
-2019-07-20 (1.8.0)
- - add a check to detect temporary files in the TDS zip archive
-
-2019-07-21 (1.8.1)
- - correct typo in e0008 message text
-
-2019-08-07 (1.8.2)
- - updating crates, requiring slight code changes in integration.rs
- - ignore windows files .nsh and .reg when checking for LF line endings
- - new error message e0034 for unwanted files in top level directory of a TDS zip archive
- - e0020 now reporting only unwanted directory in top level directory of a TDS zip archive
+## 2022-05-26 (3.0.0)
+### Added
+ - fatal messages Fnnnn go to stderr instead of stdout
+ - add generation of shell completion support for various shells,
+ which are bash, elvish, fish, powershell, zsh
+ - now a config file can be specified
+ - currently only exceptions can be specified when checking
+ the paths of files in the TDS archive
+ - new messages F0008, F0009 and F0010 regarding reading config file
+ - new message I0008 to tell which config file is used
+ - new messages I0009, W0009 giving more information about config file
+ usage (only if --verbose is given)
+ - enhance documentation
+### Changed
+ - (devel) reformatting source code
+ - (devel) using clap with derive feature instead of structopt-derive
+ - reorganized this changelog
+ - in w0002 output remove empty line at end
+ - don't complain if filename contains `@` , `=`, or `:` characters. These
+ characters are not recommended to be used but there could be a necessity.
+
+## 2022-01-15 (2.4.0)
+### Changed
+ - for latex-lab and latex-lab-dev use the real directory name 'latex' resp.
+ 'latex-dev' when checking path names in the TDS zip archive
-2019-10-01 (1.8.3)
- - (Experimental) issue warning if a file in the package tree (W0005) or in the TDS zip archive (W0006) is
- larger than 40MiB
- - (Experimental) for babel-base.tds.zip use the real package name 'babel' (instead of 'babel-base') in order
- to check if the path name contains the package name
+## 2022-01-02
+### Added
+ - add .xray to temporary file endings
+ - (experimental) when URL checking decode some html entities if they appear in URLs
+### Changed
+ - switch to Rust edition 2021
+ - switch from blake2 to blake3 library for checksumming
+ - unzipping now done internally. /usr/bin/unzip no longer required
- Both features are regarded as experimental because both contain a hard coded check. If required
- things will be changed in the future.
+## 2021-10-03 (2.3.0)
+### Added
+ - add temporary file endings .hd and tpt (pointed to by Karl Berry)
+ - add option `--ignore-same-named` to ignore same named files
+ - add `.lua` to file endings recognized as scripts
+ - add latex-firstaid-dev to exceptions when checking paths in the TDS archive
+### Changed
+ - if a URL ends with '。', which is an ideographic full stop (U+3002), remove that character
+ - ignore if generated files with ending .html or .css exist (merge request from Vít Novotný).
+ Reason is that documentation could also exist as html.
+ - some code simplifications most of them by clippy recommendations
-2019-11-04 (1.9.0)
- - (Experimental) for latex-base, latex-tools, latex-graphics and latex-amsmath use the real
- directory name 'latex' when checking path names in the TDS zip archive
- - New error message e0035 if a TDS zip archive is found in the unpacked directory tree
- - add testcases for w0005, w0006 and e0035
+## 2020-11-20 (2.2.0)
+### Added
+ - (Experimental) instead of latex-firstaid use latex/firstaid when checking path names
+ in TDS zip archive
+ - new error message e0039: no doc/ top level directory in tds zip archive
+ - new error message e0040: too few top level directories in tds zip archive
+ - new error message e0041: map file found in path not starting with `fonts/map/dvips`
+ - add more test cases
+### Changed
+ - small code changes due to new release of blake2 library
+ - replace deprecated tempdir crate by tempfile crate
+ - revive e0020 which checks for unwanted directories in the top level directory of a TDS zip
+ archive.
+### Fixed
+ - unpack TDS zip without -a flag which was introduced in 2.0.1. According to Petra this creates
+ more problems than it solves
-2019-11-27 (1.9.1)
- - recognize .bat files as script type
- - add test case for .bat file recognition
+## 2020-04-12 (2.1.0)
+### Added
+ - add new test case e0033
+### Changed
+ - improvements regarding detection of generated files (error message e0019)
+ - generated REAME files caused e0019 error message when they were specified with
+ a relative path name in the `\generate` statement in the .dtx resp. .ins file
+ - don't issue error message when a pdf file, generated by .dtx/.ins, exists
+ - don't issue error message when an existing .ins file is generated by a .dtx file
+ - improved text in error message e0019
+### Fixed
+ - don't issue error messages when a .bat file has 0755 permission
+ - call pdfinfo and unzip without specifying an absolute path so that it gets found
+ when it is outside of /usr/bin (reported by Arthur Reutenauer)
-2019-11-28 (1.10.0)
- - remove message E0020 to report unwanted top level directory in a TDS zip archive
- - more checks for a TDS zip archive
- - check for temporary files or directories
+## 2020-02-07 (2.0.1)
+### Changed
+ - use the `-a` (convert text files) flag when temporarily unzipping the TDS archive
+ - crates update
-2020-01-17 (2.0.0)
+## 2020-01-17 (2.0.0)
+### Added
- more error checking in TDS zip archives
- detecting if a .dtx or .ins file is not in a subdirectory of source/ or doc/ toplevel directories (E0036)
- detecting empty directories (W0007)
@@ -102,6 +99,7 @@
- detecting temporary files (E0008)
- as a special case tex/latex/tools/.tex is allowed for package latex-tools. The
same applies for latex-tools-dev package
+### Changed
- revamped handling of line ending checks
- reporting if a file has CR line endings only (E0037)
- reporting if a file has inconsistent line endings (E0038)
@@ -123,50 +121,118 @@
- if a file in a generated file statement contains a directory part it was correctly
recognized but not compared correctly to the contents of the TDS zip archive
-2020-02-07 (2.0.1)
- - use the `-a` (convert text files) flag when temporarily unzipping the TDS archive
- - crates update
+## 2019-11-28 (1.10.0)
+### Added
+ - more checks for a TDS zip archive
+ - check for temporary files or directories
+### Changed
+ - remove message E0020 to report unwanted top level directory in a TDS zip archive
-2020-04-12 (2.1.0)
- - add new test case e0033
- - don't issue error messages when a .bat file has 0755 permission
- - improvements regarding detection of generated files (error message e0019)
- - generated REAME files caused e0019 error message when they were specified with
- a relative path name in the `\generate` statement in the .dtx resp. .ins file
- - don't issue error message when a pdf file, generated by .dtx/.ins, exists
- - don't issue error message when an existing .ins file is generated by a .dtx file
- - improved text in error message e0019
- - call pdfinfo and unzip without specifying an absolute path so that it gets found
- when it is outside of /usr/bin (reported by Arthur Reutenauer)
-2020-11-20 (2.2.0)
- - small code changes due to new release of blake2 library
- - replace deprecated tempdir crate by tempfile crate
- - (Experimental) instead of latex-firstaid use latex/firstaid when checking path names
- in TDS zip archive
- - unpack TDS zip without -a flag which was introduced in 2.0.1. According to Petra this creates
- more problems than it solves
- - revive e0020 which checks for unwanted directories in the top level directory of a TDS zip
- archive.
- - new error message e0039: no doc/ top level directory in tds zip archive
- - new error message e0040: too few top level directories in tds zip archive
- - new error message e0041: map file found in path not starting with `fonts/map/dvips`
- - add more test cases
-2021-10-03 (2.3.0)
- - if a URL ends with '。', which is an ideographic full stop (U+3002), remove that character
- - add temporary file endings .hd and tpt (pointed to by Karl Berry)
- - add option `--ignore-same-named` to ignore same named files
- - add `.lua` to file endings recognized as scripts
- - add latex-firstaid-dev to exceptions when checking paths in the TDS archive
- - ignore if generated files with ending .html or .css exist (merge request from Vít Novotný).
- Reason is that documentation could also exist as html.
- - some code simplifications most of them by clippy recommendations
-2022-01-02
- - switch to Rust edition 2021
- - switch from blake2 to blake3 library for checksumming
- - add .xray to temporary file endings
- - (experimental) when URL checking decode some html entities if they appear in URLs
- - unzipping now done internally. /usr/bin/unzip no longer required
-2022-01-15 (2.4.0)
- - for latex-lab and latex-lab-dev use the real directory name 'latex' resp.
- 'latex-dev' when checking path names in the TDS zip archive
+## 2019-11-27 (1.9.1)
+### Added
+ - recognize .bat files as script type
+ - add test case for .bat file recognition
+
+### 2019-11-04 (1.9.0)
+### Added
+ - (Experimental) for latex-base, latex-tools, latex-graphics and latex-amsmath use the real
+ directory name 'latex' when checking path names in the TDS zip archive
+ - New error message e0035 if a TDS zip archive is found in the unpacked directory tree
+ - add testcases for w0005, w0006 and e0035
+
+## 2019-10-01 (1.8.3)
+### Added
+ - (Experimental) issue warning if a file in the package tree (W0005) or in the TDS zip archive (W0006) is
+ larger than 40MiB
+ - (Experimental) for babel-base.tds.zip use the real package name 'babel' (instead of 'babel-base') in order
+ to check if the path name contains the package name
+
+ Both features are regarded as experimental because both contain a hard coded check. If required
+ things will be changed in the future.
+
+## 2019-08-07 (1.8.2)
+### Changed
+ - updating crates, requiring slight code changes in integration.rs
+ - ignore windows files .nsh and .reg when checking for LF line endings
+
+### Added
+ - new error message e0034 for unwanted files in top level directory of a TDS zip archive
+ - e0020 now reporting only unwanted directory in top level directory of a TDS zip archive
+
+## 2019-07-21 (1.8.1)
+### Fixed
+ - correct typo in e0008 message text
+
+## 2019-07-20 (1.8.0)
+### Added
+ - add a check to detect temporary files in the TDS zip archive
+
+## 2019-06-30 (1.7.0)
+### Changed
+ - compiled with rust edition 2018
+ - if a found http(s) link ends with "`" then the trailing "`" will be discarded
+
+### Fixed
+ - improved error message e0025 now displaying the paths of the affected
+ files/directories/symlinks
+ - when symlinks occur in e0025 they are reported as files
+
+## 2019-03-29 (1.6.0)
+### Changed
+ - new error message e0031 when a filename contains invalid UTF-8 characters
+
+## 2019-03-14 (1.5.0)
+### Changed
+ - if a symlink points to a file object outside of the package directory tree error message
+ e0030 will be issued
+
+### Fixed
+ - a README can be a symlink which will now be detected properly
+
+## 2019-03-11 (1.4.0)
+### Added
+ - recognizing generated files in a .dtx file when they are included using a
+ filecontents resp. filecontents* environment.
+
+## 2019-03-09 (1.3.0)
+### Changed
+ - checking URLs
+ - when checking URLs we try to get the headers first. If this fails we try to get the web page.
+ - when checking URLs and a redirect has an invalid location containing 127.0.0.1
+ then we regard the url as ok
+ - ignoring .tfm files when checking for duplicates
+ - now checking for UTF BOMs. If a README file contains a BOM we issue an error message,
+ if other files contain BOMs we issue a warning message
+ - recompile with newest http library
+
+## 2019-01-02 (1.2.0)
+### Added
+ - add test cases for messages e0026, e0028
+ - **New feature**: checks that path names in the TDS zip archive contain the package name
+ (only exception is a man page path)
+
+### Changed
+ - some code simplification
+
+## 2018-12-26 (1.1.0)
+### Added
+ - enhance check for generated files which now could reside in any
+ subdirectory in the package tree. This changes the format of the
+ e0019 message slightly where now the path of a generated file will be
+ displayed in the e0019 message
+ - add a short info to the PDF documention about how to install pkgcheck
+
+### Changed
+ - change ordering of the sections in the pkgcheck.pdf document. First come the
+ informational messages, then warnings and error messages and finally fatal messages.
+
+## 2018-12-16 (1.0.0)
+### Added
+ - quick_intro.txt: improve wording
+ - build_ctan_zip.p6: add source files to be included into CTAN zip archive
+ - devnotes.md: add documentation how to build your own binary
+
+## 2018-12-09 (1.0.0)
+
+ - 1.0.0 First stable release
diff --git a/support/pkgcheck/Cargo.toml b/support/pkgcheck/Cargo.toml
index 29048feda9..f7120709d4 100644
--- a/support/pkgcheck/Cargo.toml
+++ b/support/pkgcheck/Cargo.toml
@@ -1,12 +1,15 @@
[package]
name = "pkgcheck"
-version = "2.4.0"
+version = "3.0.0"
authors = ["Manfred Lotz <manfred@ctan.org>"]
description = "Command-line tool to check packages uploaded to CTAN."
license = "MIT/Apache-2.0"
readme = "README.md"
edition = "2021"
+[[bin]]
+name = "pkgcheck"
+
# with this option binaries are smaller
# https://doc.rust-lang.org/edition-guide/rust-2018/error-handling-and-panics/aborting-on-panic.html
[profile.release]
@@ -14,37 +17,41 @@ panic = "abort"
lto = true
[dependencies]
-structopt = "0.3"
-walkdir = "2.3"
-scoped_threadpool = "0.1"
-num_cpus = "1"
-blake3 = "1.2.0"
-rustc-hash = "1.1"
-unbytify = "0.2"
-regex = "1"
-glob = "0.3"
+blake3 = "1.3"
+clap = { version = "3.1.6", features = ["derive"] }
+clap_complete = "3.1.1"
colored = "2"
+config = "0.13"
+escargot = "0.5"
+fern = "0.6"
+glob = "0.3"
+home = "0.5.3"
+once_cell = "1.10.0"
+#lazy_static = "1"
linkify = "0.8"
-
-reqwest = { version = "0.11", features = ["blocking", "gzip"] }
-tokio = { version = "1", features = ["full"] }
-
-lazy_static = "1"
-tempfile = "3.1"
-assert_cmd = "2"
-predicates = "2"
+log = "0.4"
+num_cpus = "1"
openssl-probe = "0.1.4"
pest = "2.1"
pest_derive = "2.1"
-escargot = "0.5"
-
+regex = "1"
+reqwest = { version = "0.11", features = ["blocking", "gzip"] }
+rustc-hash = "1.1"
+scoped_threadpool = "0.1"
+serde = { version = "1.0", features = ["derive"] }
+serde_yaml = "0.8"
+tempfile = "3.1"
threadpool = "1.8"
+tokio = { version = "1", features = ["full"] }
+unbytify = "0.2"
unicode-bom = "1"
-
url = "2.1"
+walkdir = "2.3"
+zip = { version = "^0.6", default-features = false, features = ["deflate"] }
-zip = { version = "0.5", default-features = false }
-zip-extensions = "0.6"
+[dev-dependencies]
+assert_cmd = "2"
+predicates = "2"
[package.metadata.deb]
section = "utility"
diff --git a/support/pkgcheck/LICENSE-MIT b/support/pkgcheck/LICENSE-MIT
index b1694f86ae..c16200e5c0 100644
--- a/support/pkgcheck/LICENSE-MIT
+++ b/support/pkgcheck/LICENSE-MIT
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2018-2020 Manfred Lotz
+Copyright (c) 2018-2022 Manfred Lotz
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/support/pkgcheck/README.md b/support/pkgcheck/README.md
index 96d6b16716..d014061799 100644
--- a/support/pkgcheck/README.md
+++ b/support/pkgcheck/README.md
@@ -21,10 +21,8 @@ There is no Windows version planned.
The `pkgcheck` binary is a 64-bit statically linked binary, and thus it should run also on
older Linux versions.
-It uses the following external programs:
+It uses `pdfinfo` for checking pdf documents.
-- `pdfinfo` for checking pdf documents
-- `unzip` for temporarily unpacking a TDS zip archive
# Installing the binary
@@ -32,6 +30,7 @@ Copy the binary from `bin/pkgcheck` to a suitable location on your hard disk, an
(recommended) make sure the directory is in the `PATH` or call `pkgcheck` using an
absolute path name.
+
# Documentation
The documentation is `docs/pkgcheck.pdf`. It contains
@@ -48,18 +47,16 @@ cd docs
lualatex -shell-escape pkgcheck.tex
```
-
-
# License
Licensed under either of
- Apache License, Version 2.0
-
+
- See file LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0
- MIT license
-
+
- See file LICENSE-MIT or http://opensource.org/licenses/MIT
at your option.
diff --git a/support/pkgcheck/bin/pkgcheck b/support/pkgcheck/bin/pkgcheck
index 5f7df9aaa2..04da19b362 100755
--- a/support/pkgcheck/bin/pkgcheck
+++ b/support/pkgcheck/bin/pkgcheck
Binary files differ
diff --git a/support/pkgcheck/docs/errorsd.tex b/support/pkgcheck/docs/errorsd.tex
index e9b689610f..7fb3509791 100644
--- a/support/pkgcheck/docs/errorsd.tex
+++ b/support/pkgcheck/docs/errorsd.tex
@@ -218,7 +218,7 @@ An error was encountered when reading the file specified in the message.
\subsection{E0022 -\/- Check of an URL in a README file
failed}\label{e0022----check-of-an-url-in-a-readme-file-failed}}
-URL checking is in effect. An error occcured when trying to retrieve an
+URL checking is in effect. An error occcurred when trying to retrieve an
URL which was found in the specified \texttt{README} file.
\hypertarget{e0023----follow-up-error-when-trying-to-read-a-directory-with-insufficient-permissions}{%
@@ -259,11 +259,11 @@ tree}\label{e0026----files-not-in-tds-or-different-in-tds-and-non-install-tree}}
The file mentioned in the error message is either not existing in the
TDS zip archive, or it is different to the one in the non-install tree
-\hypertarget{e0027----an-io-error-occured}{%
+\hypertarget{e0027----an-io-error-occurred}{%
\subsection{E0027 -\/- An I/O error
-occured}\label{e0027----an-io-error-occured}}
+occurred}\label{e0027----an-io-error-occurred}}
-Some kind of I/O error occured. If you believe there is an error in
+Some kind of I/O error occurred. If you believe there is an error in
\texttt{pkgcheck} please contact the author.
\hypertarget{e0028----a-path-name-in-a-tds-zip-archive-must-contain-the-package-name}{%
@@ -305,7 +305,7 @@ directory tree.
\subsection{E0031 -\/- File name contains invalid UTF-8
character(s)}\label{e0031----file-name-contains-invalid-utf-8-characters}}
-A file name contains invald UTF-8 character(s).
+A file name contains invalid UTF-8 character(s).
\hypertarget{e0033----error-when-unpacking-tds-archive}{%
\subsection{E0033 -\/- Error when unpacking tds
@@ -390,3 +390,9 @@ fonts/map/dvips}\label{e0041----one-or-more-map-file-found-for-the-package-but-n
At least one map file was found which was not in a path starting with
\texttt{fonts/map/dvips}.
+
+\hypertarget{e0042----config-file--doesnt-exist}{%
+\subsection{\texorpdfstring{E0042 -\/- Config file doesn't
+exist}{E0042 -\/- Config file doesn't exist}}\label{e0042----config-file--doesnt-exist}}
+
+The config file specified at the command line doesn't exist.
diff --git a/support/pkgcheck/docs/fatald.tex b/support/pkgcheck/docs/fatald.tex
index ef26ff30cf..aa80e74e28 100644
--- a/support/pkgcheck/docs/fatald.tex
+++ b/support/pkgcheck/docs/fatald.tex
@@ -9,7 +9,7 @@ to check a directory
\subsection{F0002 -\/- Specified directory does not exist.
Exiting...}\label{f0002----specified-directory-does-not-exist-exiting}}
-The directory specified at the command line does not exit.
+The directory specified at the command line does not exist.
\hypertarget{f0003----specified-tds-archive-does-not-exist-or-is-no-file}{%
\subsection{F0003 -\/- Specified TDS archive does not exist or is no
@@ -45,3 +45,24 @@ archive}\label{f0007----could-not-create-temporary-directory-for-unzipping-the-t
Make sure the temp directory is writable and/or the temp directory has
enough space.
+
+\hypertarget{f0008----config-file--doesnt-exist-exiting}{%
+\subsection{\texorpdfstring{F0008 -\/- Config file doesn't exist.
+Exiting...}{F0008 -\/- Config file doesn't exist. Exiting...}}\label{f0008----config-file--doesnt-exist-exiting}}
+
+The config file specified at the command line doesn't exist.
+
+\hypertarget{f0009----error-reading-config-file-config_file--exiting}{%
+\subsection{\texorpdfstring{F0009 -\/- Error reading config file
+\textless config\_file\textgreater:
+Exiting...}{F0009 -\/- Error reading config file \textless config\_file\textgreater: Exiting...}}\label{f0009----error-reading-config-file-config_file--exiting}}
+
+The config file \textless config\_file\textgreater{} could not be read.
+
+\hypertarget{f0010----config-files-content-could-no-be-read-properly--exiting}{%
+\subsection{\texorpdfstring{F0010 -\/- Config file's content could no be
+read properly:
+Exiting...}{F0010 -\/- Config file's content could no be read properly: Exiting...}}\label{f0010----config-files-content-could-no-be-read-properly--exiting}}
+
+The content of the config has errors as given in . Please correct and
+rerun.
diff --git a/support/pkgcheck/docs/informationd.tex b/support/pkgcheck/docs/informationd.tex
index cc53641fc7..80e68f0255 100644
--- a/support/pkgcheck/docs/informationd.tex
+++ b/support/pkgcheck/docs/informationd.tex
@@ -29,9 +29,9 @@ like) line endings.
For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#crlf}
-\hypertarget{i0005----corrections-permissions-for-file-or-directory}{%
-\subsection{I0005 -\/- Corrections permissions for file or
-directory}\label{i0005----corrections-permissions-for-file-or-directory}}
+\hypertarget{i0005----correcting-permissions-for-file-or-directory}{%
+\subsection{I0005 -\/- Correcting permissions for file or
+directory}\label{i0005----correcting-permissions-for-file-or-directory}}
\texttt{pkgcheck} corrects wrong permsissions for package files and
directories. It runs the \texttt{chmod} command in verbose mode.
@@ -59,3 +59,41 @@ CRLF}\label{i0007----successfully-corrected-wrong-line-endings-to-lf-resp-crlf}}
endings or to CRLF line endings if it the file was a Windows text file.
Wrong line endings could be CR, CRLF or a mixture of line endings.
+
+\hypertarget{i0008----using-config-file-}{%
+\subsection{\texorpdfstring{I0008 -\/- Using config file
+}{I0008 -\/- Using config file }}\label{i0008----using-config-file-}}
+
+Tells the user which config file is used.
+
+\hypertarget{i0009----updating-entry-pkgname---tpkg-with-pkgname---new-tpkg-from-config-file}{%
+\subsection{\texorpdfstring{I0009 -\/- Updating entry
+\texttt{\textless{}pkgname\textgreater{}} -\textgreater{}
+\texttt{\textless{}tpkg\textgreater{}} with
+\texttt{\textless{}pkgname\textgreater{}} -\textgreater{}
+\texttt{\textless{}new\ tpkg\textgreater{}} from config
+file",}{I0009 -\/- Updating entry \textless pkgname\textgreater{} -\textgreater{} \textless tpkg\textgreater{} with \textless pkgname\textgreater{} -\textgreater{} \textless new tpkg\textgreater{} from config file",}}\label{i0009----updating-entry-pkgname---tpkg-with-pkgname---new-tpkg-from-config-file}}
+
+This message can only show up if \texttt{pkgcheck} got called with
+\texttt{-\/-config}. It is required that the path names in the TDS zip
+archive contain the package name. There are exceptions however, and if
+such an exception is defined in the config file \texttt{pkgcheck}
+reports the usage of an exception.
+
+Example: \texttt{tex/latex/microtype/microtype-luatex.de} in the TDS zip
+archive \texttt{microtype.tds.zip} contains the package name
+\texttt{microtype}
+
+There are exceptions, however.
+
+Example: The file names in \texttt{latex-amsmath.tds.zip} do not contain
+\texttt{latex-amsmath} but just \texttt{latex}
+
+These exceptions are hard-coded in pkgcheck but can be overridden in the
+\texttt{pkgcheck.yml} config file like in the following example
+
+\begin{verbatim}
+tds_path_exceptions:
+ - pkg: latex-amsmath
+ tpkg: latexnew
+\end{verbatim}
diff --git a/support/pkgcheck/docs/pkgcheck.pdf b/support/pkgcheck/docs/pkgcheck.pdf
index a1f12200dc..29df6c8e4a 100644
--- a/support/pkgcheck/docs/pkgcheck.pdf
+++ b/support/pkgcheck/docs/pkgcheck.pdf
Binary files differ
diff --git a/support/pkgcheck/docs/pkgcheck.tex b/support/pkgcheck/docs/pkgcheck.tex
index ab96cc390a..a41a7db1ad 100644
--- a/support/pkgcheck/docs/pkgcheck.tex
+++ b/support/pkgcheck/docs/pkgcheck.tex
@@ -42,7 +42,7 @@
% \pdfinfo{
% /Author (Manfred Lotz)
% /Title pkgcheck Utility
-% }
+% }
%\title{pkgcheck utility}
\include{title}
@@ -59,6 +59,8 @@
\end{abstract}
+\newpage
+
\section{Introduction}
Uploaded packages to CTAN must satisfy various requirements in order to get
@@ -67,7 +69,7 @@ installed on CTAN.
A first introduction is given here \url{https://ctan.org/help/upload-pkg}.
Even more details are to be found in the excellent CTAN-upload addendum
-\url{https://ctan.org/file/help/ctan/CTAN-upload-addendum} written by Petra Rübe-Pugliese.
+\url{https://ctan.org/file/help/ctan/CTAN-upload-addendum} written by Petra Rübe-Pugliese.
The \pkgcheck utility which runs on Linux systems only checks those requirements
which can be checked by a program.
@@ -89,22 +91,14 @@ information for a certain error.
The \pkgcheck is a 64-bit statically linked binary, and should work an any 64-bit Linux.
It is available in the repository in directory \verb|bin/|.
-Currently, the only external programs required are:
-\begin{itemize}
-\item \verb|/usr/bin/unzip|
-
-Used only, when a TDS zip archive will be extracted.
+Currently, the only external program required is \verb|/usr/bin/pdfinfo|. It is
+used when a PDF document will be checked.
-\item \verb|/usr/bin/pdfinfo|
-
-Used only, when a PDF document will be checked.
-
-\end{itemize}
\section{Installation}
-Copy the binary from \verb|bin/pkgcheck| to a suitable location on your hard disk, and
-(recommended) make sure the directory is in the \verb|PATH| or call \verb|pkgcheck| using an
+Copy the binary from \verb|bin/pkgcheck| to a suitable location on your hard disk, and
+(recommended) make sure the directory is in the \verb|PATH| or call \verb|pkgcheck| using an
absolute path name.
\section{Utility usage}
@@ -116,32 +110,109 @@ Running \verb|pkgcheck --help| shows the available command line options.
Here a sample output:
+{\small
+
\begin{verbatim}
-pkgcheck 1.0.0
+pkgcheck 3.0.0
Manfred Lotz <manfred@ctan.org>
-A checker for uploaded packages to CTAN.
+Command-line tool to check packages uploaded to CTAN.
USAGE:
- pkgcheck [FLAGS] [OPTIONS]
-
-FLAGS:
- -L, --correct-crlf Correct CRLF line endings
- -C, --correct-perms Correct permissions
- --explain-all Explains all error or warning messages
- -h, --help Prints help information
- -I, --ignore-dupes Ignore dupes
- --no-colors Don't display messages in color
- --show-temp-endings Show file endings for temporary files
- --urlcheck Check URLs found in README files
- -V, --version Prints version information
- -v, --verbose Verbose operation?
+ pkgcheck [OPTIONS]
OPTIONS:
- -e, --explain <explain> Explain error or warning message
- -d, --package-dir <pkg_dir> Package directory
- -T, --tds-zip <tds_zip> tds zip archive
-
+ -C, --correct-perms Correct permissions
+ --config-file <CONFIG_FILE> Specify config file to use
+ -d, --package-dir <PKG_DIR> Package directory
+ -e, --explain <EXPLAIN> Explain error or warning message
+ --explain-all Explains all error or warning messages
+ --generate-completion <GENERATOR> [possible values: bash, elvish, fish,
+ powershell, zsh]
+ -h, --help Print help information
+ -I, --ignore-dupes Ignore dupes
+ --ignore-same-named Ignore same-named files
+ -L, --correct-le Correct line endings
+ --no-colors Don't display messages in color
+ --show-temp-endings Show file endings for temporary files
+ -T, --tds-zip <TDS_ZIP> tds zip archive
+ --urlcheck Check URLs found in README files
+ -v, --verbose Verbose operation?
+ -V, --version Print version information
\end{verbatim}
+}
+
+\subsection{Config file}
+
+It is now possible to have a config file for \pkgcheck which then is a YAML
+file. A config file can be
+specified by using the command line option \verb|--config-file|. If no config
+file is specified during invocation of \pkgcheck then \pkgcheck checks two
+locations for existence of a config file.
+
+\begin{itemize}
+ \item \verb|~/.ctan/pkgcheck.yml|
+ \item \verb|.config/ctan/pkgcheck.yml|
+\end{itemize}
+
+Currently, the config file may contain only TDS path exceptions. For more
+details see message
+\hyperlink{i0009----updating-entry-pkgname---tpkg-with-pkgname---new-tpkg-from-config-file}{I0009x}.
+
+
+\subsection{Generate shell completions}
+
+\pkgcheck offers an option to generate shell completions for various shells,
+most notably \texttt{bash}, \texttt{zsh }and \texttt{fish}.
+
+
+
+\subsubsection{bash completion}
+
+In \texttt{bash} one recommendation is to put completions directly into
+the \verb|~/.bash_completion| file.
+
+Example:
+
+\begin{minted}[linenos=true,frame=single,fontsize=\footnotesize]{sh}
+pkgcheck -generate-completion bash >> ~/.bash-completion
+\end{minted}
+
+\subsubsection{zsh completion}
+
+\texttt{zsh} doesn't recommend a specific location for completions. One
+possibility is the following:
+
+
+
+\begin{minted}[linenos=true,frame=single,fontsize=\footnotesize]{sh}
+# Prepare
+mkdir -p ~/.zfunc/completions
+pkgcheck -generate-completion zsh >> ~/.zfunc/completions/_pkgcheck
+\end{minted}
+
+Put the following into \verb|~/.zshrc|
+
+\begin{minted}[linenos=true,frame=single,fontsize=\footnotesize]{sh}
+fpath+=~/.zfunc/completions
+autoload -Uz compinit
+zstyle ':completion:*' menu select
+compinit
+\end{minted}
+
+\subsubsection{fish completion}
+
+\texttt{fish} is pretty straight forward as it offers the \texttt{~/.config/fish/completions/}
+directory for completions.
+
+
+Run
+
+\begin{minted}[linenos=true,frame=single,fontsize=\footnotesize]{sh}
+pkgcheck -generate-completion fish > ~/.config/fish/completions/pkgcheck.fish
+\end{minted}
+
+
+
\subsection{Check a package}
@@ -151,7 +222,7 @@ tar archive. The package must have a top level directory.
After unpacking the archive of a package \texttt{mypkg} into directory
\texttt{mypkg/} it can be checked by running \pkgcheck with
-option verb|--package-dir| or shorter \verb|-d|.
+option \verb|--package-dir| or shorter \verb|-d|.
\begin{minted}[linenos=true,frame=single,fontsize=\footnotesize]{sh}
@@ -161,19 +232,19 @@ option verb|--package-dir| or shorter \verb|-d|.
\pkgcheck returns 1 if there are any errors, otherwise 0.
-
+
\subsection{Check a package which has a TDS archive}
If a package contains a TDS ZIP archive it is supposed to be in the
top level directory of a package.
-In order to check the TDS ZIP archive the option
+In order to check the TDS ZIP archive the option
\verb|-T <tds_zip>| or \verb|--tds-zip <tds_zip>| can be used.
Please note that a TDS ZIP archive will always be checked together with
the non-install tree of the package which means that
-\verb|--tds-zip| requires option \verb|--package-dir| as well.
-
+\verb|--tds-zip| requires option \verb|--package-dir| as well.
+
Checking package \texttt{mypkg} \pkgcheck will be invoked like follows:
\begin{minted}[linenos=true,frame=single,fontsize=\footnotesize]{sh}
@@ -230,7 +301,7 @@ file from CRLF to LF line endings.
\item \verb|-V|
Outputs \pkgcheck's version number.
-
+
\item \verb|--help|
\verb|--help| shows the available command line options.
@@ -262,7 +333,7 @@ OPTIONS:
\end{verbatim}
-\item \verb|--explain <explain|
+\item \verb|--explain <explain|
This option explains an error message in more detail.
@@ -273,7 +344,7 @@ OPTIONS:
\end{minted}
-\item \verb|--explain-all|
+\item \verb|--explain-all|
Outputs a list of explanations of all messages.
@@ -293,7 +364,7 @@ text file has CRLF line endings.
It is very important to note that determining file types is not bullet proof.
So, it might happen in some cases that \pkgcheck makes mistakes when determining
-a file type. This could lead to a subseqent mistake when complaining about an
+a file type. This could lead to a subsequent mistake when complaining about an
x-bit, or complaining about CRF line ending.
@@ -306,7 +377,7 @@ x-bit, or complaining about CRF line ending.
From an installation point of view the files and directories of a package
\begin{itemize}
\item must be at least world readable
-\item must be writable by owner or group
+\item must be writable by owner or group
\item must not have the x-bit on for the owner if the file isn't an executable,
i.e. a script or binary
\end{itemize}
@@ -314,7 +385,7 @@ From an installation point of view the files and directories of a package
The reason for this minimal requirement is that the installation utility used by
the CTAN team (which by the way was written by Rainer Schöpf a long time ago)
sets permissions correctly if the owner permission is set correctly.
-
+
Examples:
\begin{itemize}
@@ -335,29 +406,31 @@ are accepted.
\begin{description}
\item[Innnn] Informational messages
- These are message which announce \pkgcheck actions.
-
+ These are message which usually announce \pkgcheck actions.
+
\item[Fnnnn] Fatal messages
- Fatal messages report unrecoverable errors. In this case \pkgcheck's only
- option is to terminate. If for example, the package directory specified at
- the command line doesn't exist then the only option is to terminate.
-
+ Fatal messages are related to environmental issues and not related to
+ packages. They are usually unrecoverable errors, and \pkgcheck's only
+ option is to terminate. Fatal messages are written to standard error.
+
+ If for example, the package directory specified at
+ the command line doesn't exist then the only option is to issue
+ a message and to terminate.
+
\item[Ennnn] Error messages
Error messages report errors which must be fixed before installing a package.
-
+
\item[Wnnnn] Warning messages
Warning messages denote possible errors depending upon the situation.
For example, for a font package having many duplicate files might be ok. For
another package it could be regarded as an error.
+\end{description}
-
-
-\end{description}
\section{Informational messages}
\input{informationd}
diff --git a/support/pkgcheck/docs/title.tex b/support/pkgcheck/docs/title.tex
index 5a37d84767..020feb2956 100644
--- a/support/pkgcheck/docs/title.tex
+++ b/support/pkgcheck/docs/title.tex
@@ -1 +1 @@
-\title{pkgcheck Utility, v2.4.0}
+\title{pkgcheck Utility, v3.0.0}
diff --git a/support/pkgcheck/docs/warningsd.tex b/support/pkgcheck/docs/warningsd.tex
index cf21cb63d4..b681972557 100644
--- a/support/pkgcheck/docs/warningsd.tex
+++ b/support/pkgcheck/docs/warningsd.tex
@@ -80,3 +80,13 @@ We regard a file as a Windows file if its name ends with:
\item
\texttt{.reg}
\end{itemize}
+
+\hypertarget{w0009----replacing-----with-the-same-from-config-file}{%
+\subsection{\texorpdfstring{W0009 -\/- Replacing -\textgreater{} ` with
+the same from config
+file",}{W0009 -\/- Replacing -\textgreater{} ` with the same from config file",}}\label{w0009----replacing-----with-the-same-from-config-file}}
+
+This message can only show up if \texttt{pkgcheck} got called with
+\texttt{-\/-config}. Indicates that an entry in the \texttt{pkgcheck}
+config file does the same as the hard-coded entry. This helps to keep a
+clean config file.
diff --git a/support/pkgcheck/src/gparser.rs b/support/pkgcheck/src/gparser.rs
index ac3e1e7289..136f6f41b1 100644
--- a/support/pkgcheck/src/gparser.rs
+++ b/support/pkgcheck/src/gparser.rs
@@ -1,3 +1,5 @@
+use log::*;
+
use pest::Parser;
#[cfg(debug_assertions)]
@@ -32,7 +34,7 @@ pub fn parse_generate(s: &str) -> Option<Vec<String>> {
}
Rule::EOI => (),
e => {
- println!("unreachable: {:?}", e);
+ error!("unreachable: {:?}", e);
unreachable!()
}
};
diff --git a/support/pkgcheck/src/linkcheck.rs b/support/pkgcheck/src/linkcheck.rs
index b0b33fb3b2..ba0cd73cea 100644
--- a/support/pkgcheck/src/linkcheck.rs
+++ b/support/pkgcheck/src/linkcheck.rs
@@ -1,3 +1,5 @@
+use log::*;
+
use threadpool::ThreadPool;
use colored::*;
@@ -6,10 +8,10 @@ use linkify::{LinkFinder, LinkKind};
use std::fs::File;
use std::io::prelude::*;
-
use reqwest::header;
use std::time::Duration;
+use std::borrow::Cow;
use std::sync::Arc;
use std::sync::Mutex;
@@ -104,7 +106,7 @@ fn check_link(url: &str, fname: &str, urlhash: &Arc<Mutex<UrlHash>>, print_all:
}
UrlStatus::UrlOk => {
if print_all {
- print_ok(no_colors!(), &url, &f);
+ print_ok(super::ARGS.no_colors, &url, &f);
};
}
UrlStatus::UrlError(e) => {
@@ -122,7 +124,7 @@ fn check_link(url: &str, fname: &str, urlhash: &Arc<Mutex<UrlHash>>, print_all:
if let Some(mut hs) = urlhash.get_mut(&url) {
if print_all {
for p in hs.paths.iter() {
- print_ok(no_colors!(), &url, p);
+ print_ok(super::ARGS.no_colors, &url, p);
}
}
hs.status = UrlStatus::UrlOk;
@@ -152,29 +154,26 @@ fn get_links(fname: &str) -> Option<Vec<String>> {
Ok(_bytes_read) => {
return get_links_inner(&String::from_utf8_lossy(&buf));
}
- Err(e) => println!("Error reading file {}: {:?}", fname, e),
+ Err(e) => error!("Error reading file {}: {:?}", fname, e),
}
}
- Err(e) => println!("Error opening file {}: {}", fname, e),
+ Err(e) => error!("Error opening file {}: {}", fname, e),
}
None
}
-fn resolve_entities(url: &str) -> String {
+fn resolve_entities(url: &str) -> Cow<'static, str> {
if !url.contains('&') {
- return String::from(url);
+ return String::from(url).into();
}
- let v = vec![
- ("&ouml;", "ö"),
- ("&uuml;", "ü"),
- ];
+ let v = vec![("&ouml;", "ö"), ("&uuml;", "ü")];
let mut url_new = String::from(url);
- for (e,r) in v {
+ for (e, r) in v {
url_new = url_new.replace(e, r);
}
- url_new
+ url_new.into()
}
// retrieves links in a string and then checks those links
@@ -195,7 +194,7 @@ fn get_links_inner(s: &str) -> Option<Vec<String>> {
// This is a workaround to prevent URLs ending with certain characters
let url = resolve_entities(r.trim_end_matches(|c| c == '。' || c == '`'));
- links.push(url);
+ links.push(url.into());
}
if !links.is_empty() {
Some(links)
@@ -264,9 +263,9 @@ fn check_link_inner(l: &str, head: bool) -> UrlStatus {
fn print_ok(no_colors: bool, url: &str, f: &str) {
if no_colors {
- println!("✔ {} in {}", &url, f);
+ info!("✔ {} in {}", &url, f);
} else {
// println!("✔ {} in {}", &url, f);
- println!("{} {} in {}", "✔".bright_green().bold(), url, f);
+ info!("{} {} in {}", "✔".bright_green().bold(), url, f);
}
}
diff --git a/support/pkgcheck/src/main.rs b/support/pkgcheck/src/main.rs
index b18fd8793b..f0766cdeba 100644
--- a/support/pkgcheck/src/main.rs
+++ b/support/pkgcheck/src/main.rs
@@ -1,6 +1,8 @@
#[macro_use]
extern crate pest_derive;
+use log::*;
+
mod gparser;
#[macro_use]
@@ -14,6 +16,7 @@ mod recode;
use recode::{wrong_line_endings2crlf, wrong_line_endings2lf};
mod filemagic;
+
use filemagic::LineEnding;
use linkcheck::LinkCheck;
@@ -23,14 +26,15 @@ use std::fmt::Display;
use std::str;
use utils::*;
+use serde::{Deserialize, Serialize};
use std::os::unix::fs::MetadataExt;
-
+use std::borrow::Cow;
use scoped_threadpool::Pool;
use tempfile::Builder;
-#[macro_use]
-extern crate lazy_static;
+use once_cell::sync::Lazy; // 1.3.1
+
use colored::*;
use regex::Regex;
@@ -51,13 +55,140 @@ use std::sync::atomic::{AtomicBool, Ordering};
use rustc_hash::{FxHashMap, FxHashSet};
+use std::fmt::Arguments;
use std::sync::mpsc::{channel, Sender};
-use structopt::clap::Shell;
-use structopt::StructOpt;
+use clap::{Command, CommandFactory, Parser, ValueHint};
+use clap_complete::{generate, Generator, Shell};
+
#[cfg(unix)]
use walkdir::{DirEntry, WalkDir};
+fn format_message(message: &Arguments, no_color: bool) -> Cow<'static, str> {
+ let msg_str = format!("{}", message);
+ if msg_str.starts_with(' ') {
+ return msg_str.into();
+ }
+ let (left, right) = msg_str.split_once(' ').unwrap();
+ if no_color {
+ msg_str.into()
+ } else {
+ let colored_msg = match &left.chars().next().unwrap() {
+ 'E' | 'F' => format!("{} {}", left.bright_red().bold(), right),
+ 'W' => format!("{} {}", left.bright_red(), right),
+ 'I' => format!("{} {}", left.bright_yellow().bold(), right),
+ _ => msg_str,
+ };
+ colored_msg.into()
+ }
+}
+
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
+#[serde(deny_unknown_fields)]
+pub struct TdsException {
+ pub pkg: String,
+ pub tpkg: String,
+}
+
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
+#[serde(deny_unknown_fields)]
+pub struct PathExceptions {
+ pub tds_path_exceptions: Vec<TdsException>,
+}
+
+fn get_config_file_name() -> Option<String> {
+ if let Some(config_file) = &ARGS.config_file {
+ if Path::new(&config_file).exists() {
+ return Some(config_file.to_string())
+ } else {
+ f0008!(config_file);
+ std::process::exit(1);
+ }
+ }
+ let home_dir = match home::home_dir() {
+ Some(path) => path.display().to_string(),
+ None => panic!("Impossible to get your home dir!"),
+ };
+ let config_files = [".ctan/pkgcheck.yml", ".config/ctan/pkgcheck.yml"];
+ for f in config_files {
+ let config_file_abs_path = format!("{}/{}", home_dir, f);
+ if Path::new(&config_file_abs_path).exists() {
+ return Some(config_file_abs_path);
+ }
+ }
+ None
+}
+
+fn read_yaml_config() -> FxHashMap<String, String> {
+ let mut pkg_replacements: FxHashMap<String, String> = FxHashMap::default();
+ for (p, q) in [
+ ("babel-base", "babel"),
+ ("latex-base", "latex"),
+ ("latex-lab", "latex"),
+ ("latex-tools", "latex"),
+ ("latex-graphics", "latex"),
+ ("latex-amsmath", "latex"),
+ ("latex-firstaid", "latex/firstaid"),
+ ("latex-base-dev", "latex-dev"),
+ ("latex-lab-dev", "latex-dev"),
+ ("latex-tools-dev", "latex-dev"),
+ ("latex-graphics-dev", "latex-dev"),
+ ("latex-amsmath-dev", "latex-dev"),
+ ("latex-firstaid-dev", "latex-dev/firstaid"),
+ ("vntex-nonfree", "vntex"),
+ ] {
+ pkg_replacements.insert(p.to_string(), q.to_string());
+ }
+
+ match get_config_file_name() {
+ Some(config_filename) => {
+ i0008!(config_filename);
+
+ let data = match fs::read_to_string(&config_filename) {
+ Ok(str) => str,
+ Err(e) => { f0009!(&config_filename, e); std::process::exit(1); }
+ };
+
+ let path_exceptions = serde_yaml::from_str::<PathExceptions>(&data);
+
+ match path_exceptions {
+ Ok(pb) => {
+ for play in &pb.tds_path_exceptions {
+ // check if package name is already in pkg_replacements hash
+ let old_val = pkg_replacements.get(&play.pkg);
+ if let Some(ov) = old_val {
+ if ARGS.verbose {
+ if ov == &play.tpkg {
+ w0009!(play.pkg, play.tpkg);
+ } else {
+ i0009!(play.pkg, ov, play.tpkg);
+ }
+ }
+ }
+ pkg_replacements.insert(play.pkg.clone(), play.tpkg.clone());
+ }
+ pb
+ }
+ Err(e) => { f0010!(e); std::process::exit(1);},
+ };
+ pkg_replacements
+ }
+ None => pkg_replacements,
+ }
+}
+
+fn setup_logger(no_color: bool) -> Result<(), fern::InitError> {
+ fern::Dispatch::new()
+ .format(move |out, message, _record| {
+ let msg_txt = format_message(message, no_color);
+ out.finish(format_args!("{}", msg_txt))
+ })
+ .level(log::LevelFilter::Info)
+ .chain(std::io::stdout())
+ .apply()?;
+ Ok(())
+}
+
fn err(path: &Path, err: &io::Error) {
e0027!(path.display(), err);
}
@@ -83,7 +214,9 @@ fn hash_file_inner(path: &Path) -> io::Result<Vec<u8>> {
loop {
match fp.read(&mut buf)? {
0 => break,
- n => { digest.update(&buf[..n]); },
+ n => {
+ digest.update(&buf[..n]);
+ }
}
}
Ok(digest.finalize().as_bytes().to_vec())
@@ -96,7 +229,7 @@ fn hash_file(fsize: u64, path: PathBuf, tx: &HashSender) {
}
}
-// returns false if an error occured
+// returns false if an error occurred
fn fix_inconsistent_le(fname: &str) -> bool {
i0004!(fname);
match wrong_line_endings2lf(fname) {
@@ -111,7 +244,7 @@ fn fix_inconsistent_le(fname: &str) -> bool {
}
}
-// returns false if an error occured
+// returns false if an error occurred
fn make_crlf(fname: &str) -> bool {
i0004!(fname);
match wrong_line_endings2crlf(fname) {
@@ -192,48 +325,50 @@ fn _get_devno(entry: &DirEntry) -> u64 {
}
}
-#[derive(StructOpt, Debug)]
-#[structopt(about = "A checker for uploaded packages to CTAN.")]
+#[derive(Parser, Debug, PartialEq)]
+#[clap(author, version, about, long_about = None)]
struct Args {
- #[structopt(short = "I", long = "ignore-dupes", help = "Ignore dupes")]
+ #[clap(short = 'I', long = "ignore-dupes", help = "Ignore dupes")]
ignore_dupes: bool,
- #[structopt(long = "ignore-same-named", help = "Ignore same-named files")]
+ #[clap(long = "ignore-same-named", help = "Ignore same-named files")]
ignore_same_named: bool,
- #[structopt(short = "v", long = "verbose", help = "Verbose operation?")]
+ #[clap(short = 'v', long = "verbose", help = "Verbose operation?")]
verbose: bool,
- #[structopt(short = "L", long = "correct-le", help = "Correct line endings")]
+ #[clap(short = 'L', long = "correct-le", help = "Correct line endings")]
correct_le: bool,
- #[structopt(short = "C", long = "correct-perms", help = "Correct permissions")]
+ #[clap(short = 'C', long = "correct-perms", help = "Correct permissions")]
correct_perms: bool,
- #[structopt(long = "no-colors", help = "Don't display messages in color")]
+ #[clap(long = "no-colors", help = "Don't display messages in color")]
no_colors: bool,
- // #[structopt(long = "install-completion", help = "Install completion for the current shell")]
- // install_completion: Option<String>,
- #[structopt(long = "urlcheck", help = "Check URLs found in README files")]
+ #[clap(long = "urlcheck", help = "Check URLs found in README files")]
urlcheck: bool,
- #[structopt(short = "T", long = "tds-zip", help = "tds zip archive", group = "tds")]
+ #[clap(short = 'T', long = "tds-zip", help = "tds zip archive", group = "tds", value_hint = ValueHint::FilePath)]
tds_zip: Option<String>,
- #[structopt(
- short = "e",
+ #[clap(
+ short = 'e',
long = "explain",
help = "Explain error or warning message",
group = "only_one"
)]
explain: Option<String>,
- #[structopt(
+ #[clap(
long = "explain-all",
help = "Explains all error or warning messages",
group = "only_one"
)]
explain_all: bool,
- #[structopt(
+ #[clap(long = "generate-completion", group = "only_one", arg_enum)]
+ generator: Option<Shell>,
+ #[clap(
long = "show-temp-endings",
help = "Show file endings for temporary files",
group = "only_one"
)]
show_tmp_endings: bool,
- #[structopt(short = "d", long = "package-dir", help = "Package directory")]
+ #[clap(short = 'd', long = "package-dir", help = "Package directory", value_hint = ValueHint::DirPath)]
pkg_dir: Option<String>,
+ #[clap(long = "config-file", help = "Specify config file to use", value_hint = ValueHint::FilePath)]
+ config_file: Option<String>,
}
// We take care to avoid visiting a single inode twice,
@@ -248,10 +383,8 @@ fn check_inode(_: &mut FxHashSet<u64>, _: &Metadata) -> bool {
true
}
-lazy_static! {
- static ref ARGS: Args = Args::from_args();
- static ref ERROR_OCCURED: AtomicBool = AtomicBool::new(false);
-}
+static ARGS: Lazy<Args> = Lazy::new(Args::parse);
+static ERROR_OCCURRED: AtomicBool = AtomicBool::new(false);
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum DPath {
@@ -296,21 +429,18 @@ impl DupPath {
}
}
-// fn install_completion_bash() {
-// Args::clap().gen_completions(env!("CARGO_PKG_NAME"), Shell::Bash, "bla");
-// }
+type DupHashes = FxHashMap<(u64, Vec<u8>), DupPath>;
-// fn install_completion_zsh() {
-// Args::clap().gen_completions(env!("CARGO_PKG_NAME"), Shell::Zsh, "/home/manfred/.zfunc");
-// }
+fn print_completions<G: Generator>(gen: G, cmd: &mut Command) {
+ generate(gen, cmd, cmd.get_name().to_string(), &mut io::stdout());
+}
-// fn install_completion_fish() {
-// Args::clap().gen_completions(env!("CARGO_PKG_NAME"), Shell::Fish, "target");
-// }
+fn main() {
+ let _ = setup_logger(ARGS.no_colors);
-type DupHashes = FxHashMap<(u64, Vec<u8>), DupPath>;
+ // read yaml config file if one is given explicitly or implicitly
+ let pkg_replace : FxHashMap<String, String> = read_yaml_config();
-fn main() {
match &ARGS.explain {
None => (),
Some(e) => {
@@ -319,23 +449,12 @@ fn main() {
}
}
- //
- // !!!!!! this should be activated when structop uses
- // !!!!!! the new clap 3.0
- //
- // match &ARGS.install_completion {
- // None => { }
- // Some(d) => {
- // println!("{}", &d);
- // match d.as_str() {
- // "bash" => install_completion_bash(),
- // "zsh" => install_completion_zsh(),
- // "fish" => install_completion_fish(),
- // _ => println!("Invalid shell name {} given", d)
- // }
- // process::exit(0);
- // }
- // }
+ if let Some(generator) = ARGS.generator {
+ let mut cmd = Args::command();
+ eprintln!("Generating completion file for {:?}...", generator);
+ print_completions(generator, &mut cmd);
+ process::exit(0)
+ }
if ARGS.explain_all {
explains_all();
@@ -393,13 +512,13 @@ fn main() {
if tds_zip.is_some() {
if let Some(pn) = pkg_name {
if let Some(s) = ARGS.tds_zip.as_ref() {
- check_tds_archive(&pn, s, &hashes);
+ check_tds_archive(&pn, s, &hashes, &pkg_replace);
}
}
}
}
- if ERROR_OCCURED.load(Ordering::Relaxed) {
+ if ERROR_OCCURRED.load(Ordering::Relaxed) {
process::exit(1);
} else {
process::exit(0);
@@ -428,20 +547,20 @@ fn print_duplicates(hashes: &DupHashes) {
total_size += sz * (paths.plen - 1) as u64;
total_dupes += (paths.plen - 1) as u64;
- println!("Size: {}", sz);
+ info!("Size: {}", sz);
for p in &paths.dupes {
if let DPath::Both(p) = p {
let ps = p.as_path().to_str().unwrap();
- println!(" >>> {}", ps);
+ info!(" >>> {}", ps);
}
}
- println!();
+ //eprintln!();
}
if ARGS.verbose && total_dupes > 0 {
- println!("Duplicate statistics");
- println!(" Found {} duplicate files", total_files);
- println!(" Size of duplicate files: {}", total_size);
+ info!("Duplicate statistics");
+ info!(" Found {} duplicate files", total_files);
+ info!(" Size of duplicate files: {}", total_size);
}
}
@@ -532,7 +651,10 @@ fn check_generated_files(entry: &str, generated: &mut GeneratedHashMap) {
}
// Ignore generated pdf, html, and css files
- if fname.ends_with(".pdf") || fname.ends_with(".html") || fname.ends_with(".css") {
+ if fname.ends_with(".pdf")
+ || fname.ends_with(".html")
+ || fname.ends_with(".css")
+ {
continue;
}
@@ -542,10 +664,10 @@ fn check_generated_files(entry: &str, generated: &mut GeneratedHashMap) {
}
};
}
- Err(e) => println!("Error reading file {}: {:?}", entry, e),
+ Err(e) => error!("Error reading file {}: {:?}", entry, e),
}
}
- Err(e) => println!("Error opening file {}: {:?}", entry, e),
+ Err(e) => error!("Error opening file {}: {:?}", entry, e),
}
}
@@ -592,7 +714,7 @@ fn check_tds_archive_name(tds_zip: &Option<String>) -> Option<String> {
// }
// }
-fn check_tds_archive(pkg_name: &str, tds_zip: &str, hashes: &DupHashes) {
+fn check_tds_archive(pkg_name: &str, tds_zip: &str, hashes: &DupHashes, pkg_replace: &FxHashMap<String, String>) {
i0003!(tds_zip);
let dir_entry = Path::new(tds_zip);
@@ -607,29 +729,7 @@ fn check_tds_archive(pkg_name: &str, tds_zip: &str, hashes: &DupHashes) {
let ut = Utils::new(utils::CheckType::Tds);
- // We have a discrepancy between
- // TDS zip archive name: babel-base.tds.zip
- // and package name: babel
- // which yields a false test when checking for the package name
- // the path names of the TDS zip archive files.
- // Therefore, we correct here.
- // latex-tools, latex-graphics, latex-amsmath, latex-base => latex
- // latex-tools-dev, latex-graphics-dev, latex-amsmath-dev, latex-base-dev => latex-dev
- let mut pkg_replacements: FxHashMap<&str, &str> = FxHashMap::default();
- pkg_replacements.insert("babel-base", "babel");
- pkg_replacements.insert("latex-base", "latex");
- pkg_replacements.insert("latex-lab", "latex");
- pkg_replacements.insert("latex-tools", "latex");
- pkg_replacements.insert("latex-graphics", "latex");
- pkg_replacements.insert("latex-amsmath", "latex");
- pkg_replacements.insert("latex-firstaid", "latex/firstaid");
- pkg_replacements.insert("latex-base-dev", "latex-dev");
- pkg_replacements.insert("latex-lab-dev", "latex-dev");
- pkg_replacements.insert("latex-tools-dev", "latex-dev");
- pkg_replacements.insert("latex-graphics-dev", "latex-dev");
- pkg_replacements.insert("latex-amsmath-dev", "latex-dev");
- pkg_replacements.insert("latex-firstaid-dev", "latex-dev/firstaid");
- let real_pkg_name = if let Some(real_name) = pkg_replacements.get(pkg_name) {
+ let real_pkg_name = if let Some(real_name) = pkg_replace.get(pkg_name) {
real_name
} else {
pkg_name
@@ -647,10 +747,13 @@ fn check_tds_archive(pkg_name: &str, tds_zip: &str, hashes: &DupHashes) {
let tmp_dir_str = tmp_dir.path().to_str().unwrap();
// unzip the TDS zip archive into a temporary directory
match ut.unzip(tds_zip, tmp_dir_str) {
- Ok(_) => {},
+ Ok(_) => {}
Err(e) => {
- println!("Could not unpack `{}` into directory `{}`", tds_zip, tmp_dir_str);
- println!("Error from unzip: {}", e);
+ error!(
+ "Could not unpack `{}` into directory `{}`",
+ tds_zip, tmp_dir_str
+ );
+ error!("Error from unzip: {}", e);
e0033!(&tds_zip, e);
process::exit(1)
}
@@ -824,7 +927,7 @@ fn check_tds_archive(pkg_name: &str, tds_zip: &str, hashes: &DupHashes) {
}
}
Err(e) => {
- eprintln!("{}", e);
+ error!("{}", e);
}
}
}
@@ -911,7 +1014,7 @@ fn fix_perms(entry: &str) {
if rc.status {
if let Some(op) = rc.output {
- print!("{}", op);
+ info!("{}", op);
}
}
}
@@ -934,7 +1037,9 @@ fn set_perms(entry: &str, p: u32) -> bool {
if rc.status {
if let Some(op) = rc.output {
- print!("{}", op);
+ // we need to remove the `\n` in the `chmod` output
+ // as `info!` also adds a `\n`
+ info!("{}", op.trim_end());
}
true
} else {
@@ -1164,7 +1269,7 @@ fn check_package(root: &str, tds_zip: &Option<String>) -> Option<DupHashes> {
}
Err(e) => {
- eprintln!("{}", e);
+ error!("{}", e);
}
}
}
@@ -1255,7 +1360,7 @@ fn check_package(root: &str, tds_zip: &Option<String>) -> Option<DupHashes> {
filemagic::Mimetype::Text(LineEnding::Lf) => {
w0008!(&dir_entry_str);
}
- fmm => println!("Should not occur: {} has {:?}", dir_entry_str, fmm),
+ fmm => error!("Should not occur: {} has {:?}", dir_entry_str, fmm),
},
Some(_) | None => {
match ft {
@@ -1280,7 +1385,7 @@ fn check_package(root: &str, tds_zip: &Option<String>) -> Option<DupHashes> {
}
}
filemagic::Mimetype::Text(LineEnding::Lf) => (),
- fmm => println!("Should not occur: {} has {:?}", dir_entry_str, fmm),
+ fmm => error!("Should not occur: {} has {:?}", dir_entry_str, fmm),
}
}
}
@@ -1303,7 +1408,7 @@ fn check_package(root: &str, tds_zip: &Option<String>) -> Option<DupHashes> {
if !ret.status {
e0017!(&dir_entry_str);
if let Some(output) = ret.output {
- println!("{}", &output);
+ info!("{}", &output);
};
}
}
@@ -1336,7 +1441,7 @@ fn check_package(root: &str, tds_zip: &Option<String>) -> Option<DupHashes> {
print_casefolding(&lcnames);
print_generated(&doublenames, &generated);
- if ! ARGS.ignore_same_named {
+ if !ARGS.ignore_same_named {
print_doublenames(&doublenames);
}
@@ -1392,7 +1497,7 @@ fn print_casefolding(hashes: &FxHashMap<PathBuf, Vec<(PathBuf, FileKind)>>) {
e0025!(k.display());
for (p, ty) in eles {
- println!(" >>> {} ({})", p.display(), ty);
+ info!(" >>> {} ({})", p.display(), ty);
}
}
}
@@ -1435,7 +1540,7 @@ fn print_doublenames(hashes: &FxHashMap<PathBuf, Vec<PathBuf>>) {
// println!(":: {}", k.display());
for p in paths {
- println!(" >>> {}", p.display());
+ info!(" >>> {}", p.display());
}
}
}
@@ -1443,6 +1548,6 @@ fn print_doublenames(hashes: &FxHashMap<PathBuf, Vec<PathBuf>>) {
fn show_tmp_endings() {
i0006!();
for (t, c) in temp_file_endings() {
- println!("{:23} {}", t, c);
+ info!("{:23} {}", t, c);
}
}
diff --git a/support/pkgcheck/src/messages/errorsd.rs b/support/pkgcheck/src/messages/errorsd.rs
index 0ea42eb23f..39a8ccb357 100644
--- a/support/pkgcheck/src/messages/errorsd.rs
+++ b/support/pkgcheck/src/messages/errorsd.rs
@@ -1,9 +1,12 @@
// This file is generated by a Perl script. The source is
// in the docs/ directory of the repository.
+use log::*;
+
pub fn e0001d() {
- println!(
- r#"E0001 -- Bad characters in file name
+ error!(
+ r#"
+E0001 -- Bad characters in file name
File name should not contain non-ascii characters. Additionally, file
names should not contain control characters or other characters which
@@ -16,8 +19,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#nounixspecialcharacte
}
pub fn e0002d() {
- println!(
- r#"E0002 -- File Permissions
+ error!(
+ r#"
+E0002 -- File Permissions
Files submitted to CTAN should be world readable.
@@ -31,8 +35,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#filepermissions
}
pub fn e0003d() {
- println!(
- r#"E0003 -- README is not a text file
+ error!(
+ r#"
+E0003 -- README is not a text file
The README file specified in the error message must be a text file but
it isn't.
@@ -41,8 +46,9 @@ it isn't.
}
pub fn e0004d() {
- println!(
- r#"E0004 -- Empty directory not allowed
+ error!(
+ r#"
+E0004 -- Empty directory not allowed
Empty directories are considered as rubbish, and are usually not
accepted as part of a package, neither in the package tree nor in the
@@ -55,8 +61,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#noemptyfiles
}
pub fn e0005d() {
- println!(
- r#"E0005 -- Empty files not allowed
+ error!(
+ r#"
+E0005 -- Empty files not allowed
Empty files are considered as rubbish, and are usually not accepted as
part of a package.
@@ -68,8 +75,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#noemptyfiles
}
pub fn e0006d() {
- println!(
- r#"E0006 -- Hidden directories not allowed
+ error!(
+ r#"
+E0006 -- Hidden directories not allowed
A package should not contain hidden directories, neither in the package
tree nor in the TDS zip archive.
@@ -81,8 +89,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#noauxfiles
}
pub fn e0007d() {
- println!(
- r#"E0007 -- Hidden files not allowed
+ error!(
+ r#"
+E0007 -- Hidden files not allowed
A package should not contain hidden files, neither in the package tree
nor in the TDS zip archive.
@@ -94,8 +103,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#noauxfiles
}
pub fn e0008d() {
- println!(
- r#"E0008 -- Temporary file detected
+ error!(
+ r#"
+E0008 -- Temporary file detected
A temporary file was detected. These are typically files created by TeX
& friends and should not be part of a package.
@@ -109,8 +119,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#noauxfiles
}
pub fn e0009d() {
- println!(
- r#"E0009 -- Package doesn't contain a README file
+ error!(
+ r#"
+E0009 -- Package doesn't contain a README file
A package must contain at least one of README, README.md or README.txt
file.
@@ -122,8 +133,9 @@ http://mirrors.ibiblio.org/CTAN/help/ctan/CTAN-upload-addendum.html#readme
}
pub fn e0010d() {
- println!(
- r#"E0010 -- Broken symlink detected
+ error!(
+ r#"
+E0010 -- Broken symlink detected
A broken symlink was detected.
"#
@@ -131,8 +143,9 @@ A broken symlink was detected.
}
pub fn e0011d() {
- println!(
- r#"E0011 -- Wrong permission for directory
+ error!(
+ r#"
+E0011 -- Wrong permission for directory
Directories should have rwx for the owner and at least r-x for others
(i.e. world readable).
@@ -144,8 +157,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#filepermissions
}
pub fn e0012d() {
- println!(
- r#"E0012 -- CRLF line endings detected
+ error!(
+ r#"
+E0012 -- CRLF line endings detected
The file specified in the error message contains CRLF line endings. Text
files should have UNIX style line endings.
@@ -157,8 +171,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#crlf
}
pub fn e0013d() {
- println!(
- r#"E0013 -- Socket special fie detected
+ error!(
+ r#"
+E0013 -- Socket special fie detected
The file specified in the error message is a socket special file which
is not allowed.
@@ -167,8 +182,9 @@ is not allowed.
}
pub fn e0014d() {
- println!(
- r#"E0014 -- Fifo special file detected
+ error!(
+ r#"
+E0014 -- Fifo special file detected
The file specified in the error message is a fifo special file which is
not allowed.
@@ -177,8 +193,9 @@ not allowed.
}
pub fn e0015d() {
- println!(
- r#"E0015 -- Bloch device file detected
+ error!(
+ r#"
+E0015 -- Bloch device file detected
The file specified in the error message is a block device file which is
not allowed.
@@ -187,8 +204,9 @@ not allowed.
}
pub fn e0016d() {
- println!(
- r#"E0016 -- Character device file detected
+ error!(
+ r#"
+E0016 -- Character device file detected
The file specified in the error message is a character device file which
is not allowed.
@@ -197,8 +215,9 @@ is not allowed.
}
pub fn e0017d() {
- println!(
- r#"E0017 -- PDF document is in error
+ error!(
+ r#"
+E0017 -- PDF document is in error
The PDF document mentioned in the message is in error.
@@ -219,8 +238,9 @@ Example:
}
pub fn e0018d() {
- println!(
- r#"E0018 -- Unwanted directory detected
+ error!(
+ r#"
+E0018 -- Unwanted directory detected
A directory was detected which should not be part of a package. Example:
__MACOSX
@@ -229,8 +249,9 @@ __MACOSX
}
pub fn e0019d() {
- println!(
- r#"E0019 -- Generated file detected
+ error!(
+ r#"
+E0019 -- Generated file detected
In order to avoid redundancy we don't want to have included files in a
package which easily can be generated from other files in the
@@ -248,8 +269,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#nogeneratedfiles
}
pub fn e0020d() {
- println!(
- r#"E0020 -- Unwanted directory detected in the top level directory in TDS zip archive
+ error!(
+ r#"
+E0020 -- Unwanted directory detected in the top level directory in TDS zip archive
The name of a top level directory of a TDS archive must be one of those
listed here: asymptote, bibtex, chktex, context, doc, dvipdfmx, dvips,
@@ -263,8 +285,9 @@ Any other other directory at the top level is an error.
}
pub fn e0021d() {
- println!(
- r#"E0021 -- Error when reading a file
+ error!(
+ r#"
+E0021 -- Error when reading a file
An error was encountered when reading the file specified in the message.
"#
@@ -272,18 +295,20 @@ An error was encountered when reading the file specified in the message.
}
pub fn e0022d() {
- println!(
- r#"E0022 -- Check of an URL in a README file failed
+ error!(
+ r#"
+E0022 -- Check of an URL in a README file failed
-URL checking is in effect. An error occcured when trying to retrieve an
+URL checking is in effect. An error occcurred when trying to retrieve an
URL which was found in the specified README file.
"#
)
}
pub fn e0023d() {
- println!(
- r#"E0023 -- Follow up error when trying to read a directory with insufficient permissions
+ error!(
+ r#"
+E0023 -- Follow up error when trying to read a directory with insufficient permissions
Error which is a follow-up error. For instance, when a directory could
not be read.
@@ -292,8 +317,9 @@ not be read.
}
pub fn e0024d() {
- println!(
- r#"E0024 -- TDS zip archive has wrong permissions
+ error!(
+ r#"
+E0024 -- TDS zip archive has wrong permissions
The TDS zip archive should have at least r-- for the owner and at least
r-- for others (i.e. world readable).
@@ -305,8 +331,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#filepermissions
}
pub fn e0025d() {
- println!(
- r#"E0025 -- Duplicate names when ignoring letter case for files or directories
+ error!(
+ r#"
+E0025 -- Duplicate names when ignoring letter case for files or directories
As there are operating systems which do not distinguish between myfile
and MYFILE we don't want to have file names in a directory which are the
@@ -319,8 +346,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#filenames
}
pub fn e0026d() {
- println!(
- r#"E0026 -- Files not in TDS or different in TDS and non-install tree
+ error!(
+ r#"
+E0026 -- Files not in TDS or different in TDS and non-install tree
The file mentioned in the error message is either not existing in the
TDS zip archive, or it is different to the one in the non-install tree
@@ -329,18 +357,20 @@ TDS zip archive, or it is different to the one in the non-install tree
}
pub fn e0027d() {
- println!(
- r#"E0027 -- An I/O error occured
+ error!(
+ r#"
+E0027 -- An I/O error occurred
-Some kind of I/O error occured. If you believe there is an error in
+Some kind of I/O error occurred. If you believe there is an error in
pkgcheck please contact the author.
"#
)
}
pub fn e0028d() {
- println!(
- r#"E0028 -- A path name in a TDS zip archive must contain the package name
+ error!(
+ r#"
+E0028 -- A path name in a TDS zip archive must contain the package name
The path names in a TDS zip archive must contain the package name.
@@ -356,8 +386,9 @@ follows:
}
pub fn e0029d() {
- println!(
- r#"E0029 -- README file: encoding with BOM detected
+ error!(
+ r#"
+E0029 -- README file: encoding with BOM detected
A README file should be either ASCII or UTF-8 without BOM(byte order
mark)
@@ -369,8 +400,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#readme
}
pub fn e0030d() {
- println!(
- r#"E0030 -- A symlink was found which points outside of the package directory tree
+ error!(
+ r#"
+E0030 -- A symlink was found which points outside of the package directory tree
A symlink must not point to a file or directory outside of the package
directory tree.
@@ -379,17 +411,19 @@ directory tree.
}
pub fn e0031d() {
- println!(
- r#"E0031 -- File name contains invalid UTF-8 character(s)
+ error!(
+ r#"
+E0031 -- File name contains invalid UTF-8 character(s)
-A file name contains invald UTF-8 character(s).
+A file name contains invalid UTF-8 character(s).
"#
)
}
pub fn e0033d() {
- println!(
- r#"E0033 -- Error when unpacking tds archive
+ error!(
+ r#"
+E0033 -- Error when unpacking tds archive
In order to investigate the contents of the TDS zip archive pkgcheck
unpacks the TDS zip archive to a temporary location which failed for the
@@ -399,8 +433,9 @@ reason given in the error message.
}
pub fn e0034d() {
- println!(
- r#"E0034 -- Unwanted file detected in the top level directory in TDS zip archive
+ error!(
+ r#"
+E0034 -- Unwanted file detected in the top level directory in TDS zip archive
A top level directory of a TDS archive should only contain certain
directories but no files.
@@ -409,8 +444,9 @@ directories but no files.
}
pub fn e0035d() {
- println!(
- r#"E0035 -- Unwanted TDS archive detected in package directory tree
+ error!(
+ r#"
+E0035 -- Unwanted TDS archive detected in package directory tree
A package directory should not contain a TDS zip archive.
"#
@@ -418,8 +454,9 @@ A package directory should not contain a TDS zip archive.
}
pub fn e0036d() {
- println!(
- r#"E0036 -- .dtx/.ins files found in wrong directory in TDS zip archive
+ error!(
+ r#"
+E0036 -- .dtx/.ins files found in wrong directory in TDS zip archive
In a TDS zip archive a .dtx resp. .ins file must be in a subdirectory of
either of source/ or doc/ top level directories.
@@ -428,8 +465,9 @@ either of source/ or doc/ top level directories.
}
pub fn e0037d() {
- println!(
- r#"E0037 -- CR line endings detected
+ error!(
+ r#"
+E0037 -- CR line endings detected
The file specified in the error message contains CR line endings. Text
files should have UNIX style line endings.
@@ -441,8 +479,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#crlf
}
pub fn e0038d() {
- println!(
- r#"E0038 -- File has inconsistent line endings: CR: x, LF: y, CRLF: z
+ error!(
+ r#"
+E0038 -- File has inconsistent line endings: CR: x, LF: y, CRLF: z
The file specified in the error message contains CR line endings. Text
files should have UNIX style line endings.
@@ -454,8 +493,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#crlf
}
pub fn e0039d() {
- println!(
- r#"E0039 -- No doc/ directory found in the top level directory of the TDS zip archive
+ error!(
+ r#"
+E0039 -- No doc/ directory found in the top level directory of the TDS zip archive
A TDS zip archive is required to contain a top level directory doc/.
"#
@@ -463,8 +503,9 @@ A TDS zip archive is required to contain a top level directory doc/.
}
pub fn e0040d() {
- println!(
- r#"E0040 -- Too few top level directories in the TDS zip archive
+ error!(
+ r#"
+E0040 -- Too few top level directories in the TDS zip archive
The top level directory of a TDS zip archive must contain at least a doc
directory and one or more of the following directories: asymptote,
@@ -478,8 +519,9 @@ Any other other directory at the top level is an error.
}
pub fn e0041d() {
- println!(
- r#"E0041 -- One or more map file found for the package but none of them is in a path starting with fonts/map/dvips
+ error!(
+ r#"
+E0041 -- One or more map file found for the package but none of them is in a path starting with fonts/map/dvips
At least one map file was found which was not in a path starting with
fonts/map/dvips.
diff --git a/support/pkgcheck/src/messages/fatald.rs b/support/pkgcheck/src/messages/fatald.rs
index ee02e47bde..ca81ea7d2f 100644
--- a/support/pkgcheck/src/messages/fatald.rs
+++ b/support/pkgcheck/src/messages/fatald.rs
@@ -1,8 +1,10 @@
// This file is generated by a Perl script. The source is
// in the docs/ directory of the repository.
+use log::*;
+
pub fn f0001d() {
- println!(
+ error!(
r#"
F0001 -- Specify a directory to check (use option -d)
@@ -13,17 +15,17 @@ directory
}
pub fn f0002d() {
- println!(
+ error!(
r#"
F0002 -- Specified directory does not exist. Exiting...
-The directory specified at the command line does not exit.
+The directory specified at the command line does not exist.
"#
)
}
pub fn f0003d() {
- println!(
+ error!(
r#"
F0003 -- Specified TDS archive does not exist or is no file
@@ -33,7 +35,7 @@ Specify a valid TDS zip archive when calling pkgcheck
}
pub fn f0004d() {
- println!(
+ error!(
r#"
F0004 -- The file specified as TDS archive is no zip archive
@@ -43,7 +45,7 @@ Specify a valid TDS zip archive when calling pkgcheck
}
pub fn f0005d() {
- println!(
+ error!(
r#"
F0005 -- Bad file name for the zip archive
@@ -54,7 +56,7 @@ with .tds.zip
}
pub fn f0006d() {
- println!(
+ error!(
r#"
F0006 -- Unknown error code specified with option -e resp. ---explain. Exiting...
@@ -65,7 +67,7 @@ code was specified.
}
pub fn f0007d() {
- println!(
+ error!(
r#"
F0007 -- Could not create temporary directory for unzipping the TDS zip archive
@@ -74,3 +76,35 @@ enough space.
"#
)
}
+
+pub fn f0008d() {
+ error!(
+ r#"
+F0008 -- Config file doesn't exist. Exiting...
+
+The config file specified at the command line doesn't exist.
+"#
+ )
+}
+
+pub fn f0009d() {
+ error!(
+ r#"
+F0009 -- Error reading config file <config_file>: Exiting...
+
+The config file <config_file> could not be read.
+"#
+ )
+}
+
+pub fn f0010d() {
+ error!(
+ r#"
+F0010 -- Config file's content could no be read properly: Exiting...
+
+The content of the config has errors as given in . Please correct and
+rerun.
+"#
+ )
+}
+
diff --git a/support/pkgcheck/src/messages/informationd.rs b/support/pkgcheck/src/messages/informationd.rs
index 1f1b64dcad..0eca9849a0 100644
--- a/support/pkgcheck/src/messages/informationd.rs
+++ b/support/pkgcheck/src/messages/informationd.rs
@@ -1,8 +1,10 @@
// This file is generated by a Perl script. The source is
// in the docs/ directory of the repository.
+use log::*;
+
pub fn i0001d() {
- println!(
+ info!(
r#"
I0001 -- Successfully converted from CRLF to LF
@@ -13,7 +15,7 @@ CRLF to LF line endings
}
pub fn i0002d() {
- println!(
+ info!(
r#"
I0002 -- Checking package files in directory
@@ -24,7 +26,7 @@ the unzipped directory trees
}
pub fn i0003d() {
- println!(
+ info!(
r#"
I0003 -- Checking TDS zip archive
@@ -34,7 +36,7 @@ Just an information that pkgcheck starts checking the TDS zip archive
}
pub fn i0004d() {
- println!(
+ info!(
r#"
I0004 -- Correcting line endings for file
@@ -48,9 +50,9 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#crlf
}
pub fn i0005d() {
- println!(
+ info!(
r#"
-I0005 -- Corrections permissions for file or directory
+I0005 -- Correcting permissions for file or directory
pkgcheck corrects wrong permsissions for package files and directories.
It runs the chmod command in verbose mode.
@@ -62,7 +64,7 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#filepermissions
}
pub fn i0006d() {
- println!(
+ info!(
r#"
I0006 -- Files having one of the following file name endings are regarded as temporary
@@ -76,7 +78,7 @@ http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html#noauxfiles
}
pub fn i0007d() {
- println!(
+ info!(
r#"
I0007 -- Successfully corrected wrong line endings to LF resp. CRLF
@@ -87,3 +89,42 @@ Wrong line endings could be CR, CRLF or a mixture of line endings.
"#
)
}
+
+pub fn i0008d() {
+ info!(
+ r#"
+I0008 -- Using config file
+
+Tells the user which config file is used.
+"#
+ )
+}
+
+pub fn i0009d() {
+ info!(
+ r#"
+I0009 -- Updating entry <pkgname> -> <tpkg> with <pkgname> -> <new tpkg> from config file",
+
+This message can only show up if pkgcheck got called with --config. It
+is required that the path names in the TDS zip archive contain the
+package name. There are exceptions however, and if such an exception is
+defined in the config file pkgcheck reports the usage of an exception.
+
+Example: tex/latex/microtype/microtype-luatex.de in the TDS zip archive
+microtype.tds.zip contains the package name microtype
+
+There are exceptions, however.
+
+Example: The file names in latex-amsmath.tds.zip do not contain
+latex-amsmath but just latex
+
+These exceptions are hard-coded in pkgcheck but can be overridden in the
+pkgcheck.yml config file like in the following example
+
+ tds_path_exceptions:
+ - pkg: latex-amsmath
+ tpkg: latexnew
+"#
+ )
+}
+
diff --git a/support/pkgcheck/src/messages/mod.rs b/support/pkgcheck/src/messages/mod.rs
index f6819f1120..3de39bdb81 100644
--- a/support/pkgcheck/src/messages/mod.rs
+++ b/support/pkgcheck/src/messages/mod.rs
@@ -2,116 +2,87 @@ mod errorsd;
mod fatald;
mod informationd;
mod warningsd;
-
+use colored::Colorize;
use self::errorsd::*;
use self::fatald::*;
use self::informationd::*;
use self::warningsd::*;
-macro_rules! no_colors {
+macro_rules! error_occurred {
() => {
- $crate::ARGS.no_colors
+ $crate::ERROR_OCCURRED.store(true, Ordering::Relaxed);
};
}
-macro_rules! error_occured {
+
+macro_rules! no_colors {
() => {
- $crate::ERROR_OCCURED.store(true, Ordering::Relaxed);
+ $crate::ARGS.no_colors
};
}
-// macro_rules! yellow {
-// ($fmt:expr) => {
-// if no_colors!() {
-// $fmt.clear()
-// } else {
-// $fmt.bright_yellow()
-// }
-// };
-// }
-
-// macro_rules! red {
-// ($fmt:expr) => {
-// if no_colors!() {
-// $fmt.clear()
-// } else {
-// $fmt.bright_red()
-// }
-// };
-// }
-macro_rules! msgid {
+macro_rules! fatal {
($fmt:expr) => {
match (no_colors!(), &$fmt[..1]) {
(true, _) => $fmt.clear(),
- (false, "E") => $fmt.bright_red().bold(),
- (false, "I") => $fmt.bright_yellow().bold(),
- (false, "W") => $fmt.bright_red(),
- (false, "F") => $fmt.bright_red().bold(),
- (_, _) => $fmt.clear(),
+ (_, _) => $fmt.bright_red().bold(),
}
};
}
macro_rules! f0001 {
() => {{
- error_occured!();
- print!(
- "{} Specify a directory to check (use option -d)\n",
- msgid!("F0001")
- );
+ error_occurred!();
+ eprintln!("{} Specify a directory to check (use option -d)", fatal!("F0001"),);
}};
}
macro_rules! f0002 {
($fmt1:expr) => {{
- error_occured!();
- print!(
- "{} Specified directory {} does not exist. Exiting...\n",
- msgid!("F0002"),
- $fmt1
+ error_occurred!();
+ eprintln!(
+ "{} Specified directory {} does not exist. Exiting...",
+ fatal!("F0002"), $fmt1
);
}};
}
macro_rules! f0003 {
($fmt1:expr) => {{
- error_occured!();
- print!(
- "{} Specified TDS archive {} does not exist or is no file. Exiting...\n",
- msgid!("F0003"),
- $fmt1
+ error_occurred!();
+ eprintln!(
+ "{} Specified TDS archive {} does not exist or is no file. Exiting...",
+ fatal!("F0003"), $fmt1
);
}};
}
macro_rules! f0004 {
($fmt1:expr) => {{
- error_occured!();
- print!(
- "{} File {} specified as TDS archive is no zip archive. Exiting...\n",
- msgid!("F0004"),
- $fmt1
+ error_occurred!();
+ eprintln!(
+ "{} File {} specified as TDS archive is no zip archive. Exiting...",
+ fatal!("F0004"), $fmt1
);
}};
}
macro_rules! f0005 {
($fmt1:expr) => {{
- error_occured!();
- print!(
- "{} Bad filename {} for the tds.zip archive. Exiting...\n",
- msgid!("F0005"),
- $fmt1
+ error_occurred!();
+ eprintln!(
+ "{} Bad filename {} for the tds.zip archive. Exiting...",
+ fatal!("F0005"), $fmt1
);
}};
}
// macro_rules! f0006 {
// ($fmt1:expr) => {
-// error_occured!();
-// print!(
-// "{} Unknown error code `{}` specified with option -e resp. ---explain. Exiting...\n",
-// msgid!("F0006"),
+// error_occurred!();
+// error!(
+// "{} Unknown error code `{}` specified with option -e resp. ---explain. Exiting...",
+// "F0006",
// $fmt1
// );
// };
@@ -119,584 +90,558 @@ macro_rules! f0005 {
macro_rules! f0007 {
($fmt1:expr) => {{
- error_occured!();
- print!(
- "{} Unable to create temporary directory for unzipping the TDS zip archive: {}. Exiting...\n",
- msgid!("F0007"),
+ error_occurred!();
+ eprintln!(
+ "{} Unable to create temporary directory for unzipping the TDS zip archive: {}. Exiting...",
+ fatal!("F0007"),
$fmt1
);
}};
}
+macro_rules! f0008 {
+ ($fmt:expr) => {{
+ error_occurred!();
+ eprintln!(
+ "{} Config file {} doesn't exist. Exiting...",
+ fatal!("F0007"), $fmt
+ );
+ }};
+}
+
+macro_rules! f0009 {
+ ($fmt1:expr, $fmt2:expr) => {{
+ error_occurred!();
+ eprintln!(
+ "{} Error reading config file {}: {} Exiting...",
+ fatal!("F0009"), $fmt1, $fmt2
+ );
+ }};
+}
+
+macro_rules! f0010 {
+ ($fmt:expr) => {{
+ error_occurred!();
+ eprintln!(
+ "{} Config file's content could no be read properly: {} Exiting...",
+ fatal!("F0010"), $fmt
+ );
+ }};
+}
+
macro_rules! e0001 {
($fmt1:expr, $fmt2:expr, $fmt3:expr) => {{
- error_occured!();
- print!(
- "{} Bad character {} ({:#02x}) found in file name {} at offset {}\n",
- msgid!("E0001"),
- $fmt1,
- $fmt1 as usize,
- $fmt2,
- $fmt3
+ error_occurred!();
+ error!(
+ "{} Bad character {} ({:#02x}) found in file name {} at offset {}",
+ "E0001", $fmt1, $fmt1 as usize, $fmt2, $fmt3
);
}};
}
macro_rules! e0002 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} File {} has bad permissions: {}\n",
- msgid!("E0002"),
- $fmt1,
- $fmt2
+ error_occurred!();
+ error!(
+ "{} File {} has bad permissions: {}",
+ "E0002", $fmt1, $fmt2
);
}};
}
macro_rules! e0003 {
($fmt:expr) => {{
- error_occured!();
- print!("{} {} is no text file\n", msgid!("E0003"), $fmt);
+ error_occurred!();
+ error!("{} {} is no text file", "E0003", $fmt);
}};
}
macro_rules! e0004 {
($fmt:expr) => {{
- error_occured!();
- print!("{} Empty directory {} detected\n", msgid!("E0004"), $fmt);
+ error_occurred!();
+ error!("{} Empty directory {} detected", "E0004", $fmt);
}};
}
macro_rules! e0005 {
($fmt:expr) => {{
- error_occured!();
- print!("{} Empty file {} detected\n", msgid!("E0005"), $fmt);
+ error_occurred!();
+ error!("{} Empty file {} detected", "E0005", $fmt);
}};
}
macro_rules! e0006 {
($fmt:expr) => {{
- error_occured!();
- print!("{} Hidden directory {} detected\n", msgid!("E0006"), $fmt);
+ error_occurred!();
+ error!("{} Hidden directory {} detected", "E0006", $fmt);
}};
}
macro_rules! e0006t {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Hidden directory {} detected in TDS zip archive\n",
- msgid!("E0006"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} Hidden directory {} detected in TDS zip archive",
+ "E0006", $fmt
);
}};
}
macro_rules! e0007 {
($fmt:expr) => {{
- error_occured!();
- print!("{} Hidden file {} detected\n", msgid!("E0007"), $fmt);
+ error_occurred!();
+ error!("{} Hidden file {} detected", "E0007", $fmt);
}};
}
macro_rules! e0007t {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Hidden file {} detected in TDS zip archive\n",
- msgid!("E0007"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} Hidden file {} detected in TDS zip archive",
+ "E0007", $fmt
);
}};
}
macro_rules! e0008 {
($fmt:expr) => {{
- error_occured!();
- print!("{} Temporary file {} detected\n", msgid!("E0008"), $fmt);
+ error_occurred!();
+ error!("{} Temporary file {} detected", "E0008", $fmt);
}};
}
macro_rules! e0008t {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Temporary file {} detected in TDS zip archive\n",
- msgid!("E0008"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} Temporary file {} detected in TDS zip archive",
+ "E0008", $fmt
);
}};
}
macro_rules! e0009 {
() => {{
- error_occured!();
- print!(
- "{} One of README/README.md/README.txt must exist\n",
- msgid!("E0009")
+ error_occurred!();
+ error!(
+ "{} One of README/README.md/README.txt must exist",
+ "E0009",
);
}};
}
macro_rules! e0010 {
($fmt:expr) => {{
- error_occured!();
- print!("{} {} is a broken symlink\n", msgid!("E0010"), $fmt);
+ error_occurred!();
+ error!("{} {} is a broken symlink", "E0010", $fmt);
}};
}
macro_rules! e0011 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} Directory {} has bad permissions: {}\n",
- msgid!("E0011"),
- $fmt1,
- $fmt2
+ error_occurred!();
+ error!(
+ "{} Directory {} has bad permissions: {}",
+ "E0011", $fmt1, $fmt2
);
}};
}
macro_rules! e0012 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} File {} has CRLF line endings\n",
- msgid!("E0012"),
- $fmt
- );
+ error_occurred!();
+ error!("{} File {} has CRLF line endings", "E0012", $fmt);
}};
}
macro_rules! e0013 {
($fmt:expr) => {{
- error_occured!();
- print!("{} {} is a socket special file\n", msgid!("E0013"), $fmt);
+ error_occurred!();
+ error!("{} {} is a socket special file", "E0013", $fmt);
}};
}
macro_rules! e0014 {
($fmt:expr) => {{
- error_occured!();
- print!("{} {} is a fifo file\n", msgid!("E0014"), $fmt);
+ error_occurred!();
+ error!("{} {} is a fifo file", "E0014", $fmt);
}};
}
macro_rules! e0015 {
($fmt:expr) => {{
- error_occured!();
- print!("{} {} is a block device file\n", msgid!("E0015"), $fmt);
+ error_occurred!();
+ error!("{} {} is a block device file", "E0015", $fmt);
}};
}
macro_rules! e0016 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} {} is a character device file\n",
- msgid!("E0016"),
- $fmt
- );
+ error_occurred!();
+ error!("{} {} is a character device file", "E0016", $fmt);
}};
}
macro_rules! e0017 {
($fmt:expr) => {{
- error_occured!();
- print!("{} PDF error detected in {}\n", msgid!("E0017"), $fmt);
+ error_occurred!();
+ error!("{} PDF error detected in {}", "E0017", $fmt);
}};
}
macro_rules! e0018 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Unwanted directory {} detected\n",
- msgid!("E0018"),
- $fmt
- );
+ error_occurred!();
+ error!("{} Unwanted directory {} detected", "E0018", $fmt);
}};
}
macro_rules! e0019 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} {} generated by {} exists\n",
- msgid!("E0019"),
- $fmt1,
- $fmt2
- );
+ error_occurred!();
+ error!("{} {} generated by {} exists", "E0019", $fmt1, $fmt2);
}};
}
macro_rules! e0020 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Unwanted directory `{}` detected in the top level directory of a TDS archive\n",
- msgid!("E0020"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} Unwanted directory `{}` detected in the top level directory of a TDS archive",
+ "E0020", $fmt
);
}};
}
macro_rules! e0021 {
($fmt1:expr, $fmt2:expr, $fmt3:expr) => {{
- error_occured!();
- print!(
- "{} File {} : Error reading in line {}: {}\n",
- msgid!("E0021"),
- $fmt1,
- $fmt2,
- $fmt3
+ error_occurred!();
+ error!(
+ "{} File {} : Error reading in line {}: {}",
+ "E0021", $fmt1, $fmt2, $fmt3
);
}};
}
macro_rules! e0022 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!("{} {}: `{}`\n", msgid!("E0022"), $fmt1, $fmt2);
+ error_occurred!();
+ error!("{} {}: `{}`", "E0022", $fmt1, $fmt2);
}};
}
macro_rules! e0023 {
($fmt:expr) => {{
- error_occured!();
- print!("{} {}\n", msgid!("E0023"), $fmt);
+ error_occurred!();
+ error!("{} {}", "E0023", $fmt);
}};
}
macro_rules! e0024 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} The TDS zip archive {} has bad permissions: {}\n",
- msgid!("E0024"),
- $fmt1,
- $fmt2
+ error_occurred!();
+ error!(
+ "{} The TDS zip archive {} has bad permissions: {}",
+ "E0024", $fmt1, $fmt2
);
}};
}
macro_rules! e0025 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Duplicate names when ignoring letter case for: {}\n",
- msgid!("E0025"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} Duplicate names when ignoring letter case for: {}",
+ "E0025", $fmt
);
}};
}
macro_rules! e0026 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} {} : file not in TDS or different in TDS and non-install tree\n",
- msgid!("E0026"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} {} : file not in TDS or different in TDS and non-install tree",
+ "E0026", $fmt
);
}};
}
macro_rules! e0027 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} {}: An I/O error occured -> {}\n",
- msgid!("E0027"),
- $fmt1,
- $fmt2
- );
+ error_occurred!();
+ error!("{} {}: An I/O error occurred -> {}", "E0027", $fmt1, $fmt2);
}};
}
macro_rules! e0028 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} No directory {} (= package name) found in path {}\n",
- msgid!("E0028"),
- $fmt1,
- $fmt2
+ error_occurred!();
+ error!(
+ "{} No directory {} (= package name) found in path {}",
+ "E0028", $fmt1, $fmt2
);
}};
}
macro_rules! e0029 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} {}: {} encoding with BOM detected\n",
- msgid!("E0029"),
- $fmt1,
- $fmt2
+ error_occurred!();
+ error!(
+ "{} {}: {} encoding with BOM detected",
+ "E0029", $fmt1, $fmt2
);
}};
}
macro_rules! e0030 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} Symlink {} points to {} which is outside of the package directory tree\n",
- msgid!("E0030"),
- $fmt1,
- $fmt2
+ error_occurred!();
+ error!(
+ "{} Symlink {} points to {} which is outside of the package directory tree",
+ "E0030", $fmt1, $fmt2
);
}};
}
macro_rules! e0031 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} File name {} contains invalid UTF-8 character(s)\n",
- msgid!("E0031"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} File name {} contains invalid UTF-8 character(s)",
+ "E0031", $fmt
);
}};
}
macro_rules! e0033 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} Error `{}` when unpacking tds archive {}. Exiting...\n",
- msgid!("E0033"),
- $fmt2,
- $fmt1
+ error_occurred!();
+ error!(
+ "{} Error `{}` when unpacking tds archive {}. Exiting...",
+ "E0033", $fmt2, $fmt1
);
}};
}
macro_rules! e0034 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Unwanted file `{}` detected in the top level directory of a TDS archive\n",
- msgid!("E0034"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} Unwanted file `{}` detected in the top level directory of a TDS archive",
+ "E0034", $fmt
);
}};
}
macro_rules! e0035 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Unwanted TDS archive `{}` detected in package directory tree\n",
- msgid!("E0035"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} Unwanted TDS archive `{}` detected in package directory tree",
+ "E0035", $fmt
);
}};
}
macro_rules! e0036 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} File `{}` not below `source/` or `doc/` top level directory in TDS zip archive\n",
- msgid!("E0036"),
- $fmt
+ error_occurred!();
+ error!(
+ "{} File `{}` not below `source/` or `doc/` top level directory in TDS zip archive",
+ "E0036", $fmt
);
}};
}
macro_rules! e0037 {
($fmt:expr) => {{
- error_occured!();
- print!("{} File {} has CR line endings\n", msgid!("E0037"), $fmt);
+ error_occurred!();
+ error!("{} File {} has CR line endings", "E0037", $fmt);
}};
}
macro_rules! e0038 {
($fmt1:expr, $fmt2:expr, $fmt3:expr, $fmt4:expr) => {{
- error_occured!();
- print!(
- "{} File {} has inconsistent line endings: CR={}, LF={}, CRLF={}\n",
- msgid!("E0038"),
- $fmt1,
- $fmt2,
- $fmt3,
- $fmt4
+ error_occurred!();
+ error!(
+ "{} File {} has inconsistent line endings: CR={}, LF={}, CRLF={}",
+ "E0038", $fmt1, $fmt2, $fmt3, $fmt4
);
}};
}
macro_rules! e0039 {
() => {{
- error_occured!();
- print!("{} No doc/ directory found\n", msgid!("E0039"));
+ error_occurred!();
+ error!("{} No doc/ directory found", "E0039");
}};
}
macro_rules! e0040 {
() => {{
- error_occured!();
- print!(
- "{} Too few top level directories in the TDS zip archive\n",
- msgid!("E0040")
+ error_occurred!();
+ error!(
+ "{} Too few top level directories in the TDS zip archive",
+ "E0040",
);
}};
}
macro_rules! e0041 {
() => {{
- error_occured!();
- print!("{} One or more map file found for the package but none of them is in a path starting with fonts/map/dvips\n", msgid!("E0041"));
+ error_occurred!();
+ error!("{} One or more map file found for the package but none of them is in a path starting with fonts/map/dvips", "E0041");
}};
}
+
macro_rules! w0001 {
($fmt:expr) => {{
- print!(
- "{} Archive as package file detected: {}\n",
- msgid!("W0001"),
- $fmt
- );
+ warn!("{} Archive as package file detected: {}", "W0001", $fmt);
}};
}
macro_rules! w0002 {
() => {{
- print!("{} Duplicate files detected\n", msgid!("W0002"),);
+ warn!("{} Duplicate files detected", "W0002",);
}};
}
macro_rules! w0003 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Same named files detected in the package directory tree: {}\n",
- msgid!("W0003"),
- $fmt
+ error_occurred!();
+ warn!(
+ "{} Same named files detected in the package directory tree: {}",
+ "W0003", $fmt
);
}};
}
macro_rules! w0004 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} {}: {} encoding with BOM detected\n",
- msgid!("W0004"),
- $fmt1,
- $fmt2
+ error_occurred!();
+ warn!(
+ "{} {}: {} encoding with BOM detected",
+ "W0004", $fmt1, $fmt2
);
}};
}
macro_rules! w0005 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} Very large file {} with size {}MiB detected\n",
- msgid!("W0005"),
- $fmt1,
- $fmt2
+ error_occurred!();
+ warn!(
+ "{} Very large file {} with size {}MiB detected",
+ "W0005", $fmt1, $fmt2
)
}};
}
macro_rules! w0006 {
($fmt1:expr, $fmt2:expr) => {{
- error_occured!();
- print!(
- "{} Very large file {} with size {}MiB detected in TDS zip archive\n",
- msgid!("W0006"),
- $fmt1,
- $fmt2
+ error_occurred!();
+ warn!(
+ "{} Very large file {} with size {}MiB detected in TDS zip archive",
+ "W0006", $fmt1, $fmt2
)
}};
}
macro_rules! w0007 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Empty directory {} detected in TDS zip archive\n",
- msgid!("W0007"),
- $fmt
+ error_occurred!();
+ warn!(
+ "{} Empty directory {} detected in TDS zip archive",
+ "W0007", $fmt
);
}};
}
macro_rules! w0008 {
($fmt:expr) => {{
- error_occured!();
- print!(
- "{} Windows file {} has Unix line endings\n",
- msgid!("W0008"),
- $fmt
- );
+ error_occurred!();
+ warn!("{} Windows file {} has Unix line endings", "W0008", $fmt);
}};
}
+macro_rules! w0009 {
+ ($fmt1:expr, $fmt2:expr) => {{
+ error_occurred!();
+ warn!(
+ "{} Replacing `{} -> {}` with the same from config file",
+ "W0009",
+ $fmt1,
+ $fmt2
+ )
+ }};
+}
+
+
macro_rules! i0002 {
($fmt:expr) => {{
- print!(
- "{} {} {}\n",
- msgid!("I0002"),
- "Checking package files in directory",
- $fmt
+ info!(
+ "{} {} {}",
+ "I0002", "Checking package files in directory", $fmt
);
}};
}
macro_rules! i0003 {
($fmt:expr) => {{
- print!(
- "{} {} {}\n",
- msgid!("I0003"),
- "Checking TDS zip archive",
- $fmt
- );
+ info!("{} {} {}", "I0003", "Checking TDS zip archive", $fmt);
}};
}
macro_rules! i0004 {
($fmt:expr) => {{
- print!(
- "{} Correcting line endings for file {}\n",
- msgid!("I0004"),
- $fmt
- );
+ info!("{} Correcting line endings for file {}", "I0004", $fmt);
}};
}
macro_rules! i0005 {
($fmt:expr) => {{
- print!(
- "{} Correcting permissions for {}\n",
- msgid!("I0005"),
- $fmt
- );
+ info!("{} Correcting permissions for {}", "I0005", $fmt);
}};
}
macro_rules! i0006 {
() => {{
- print!(
- "{} Files having one of the following file name endings are regarded as temporary\n",
- msgid!("I0006")
+ info!(
+ "{} Files having one of the following file name endings are regarded as temporary",
+ "I0006",
);
}};
}
macro_rules! i0007 {
($fmt1:expr, $fmt2:expr) => {{
- print!(
- "{} {}: Successfully corrected wrong line endings to {}\n",
- msgid!("I0007"),
- $fmt1,
- $fmt2
+ info!(
+ "{} {}: Successfully corrected wrong line endings to {}",
+ "I0007", $fmt1, $fmt2
);
}};
}
+macro_rules! i0008 {
+ ($fmt1:expr) => {{
+ info!("{} Using config file {}", "I0008", $fmt1);
+ }};
+}
+
+macro_rules! i0009 {
+ ($fmt1:expr, $fmt2:expr, $fmt3:expr) => {{
+ error_occurred!();
+ warn!(
+ "{} Updating entry `{} -> {}` with `{} -> {}` from config file",
+ "I0009",
+ $fmt1,
+ $fmt2,
+ $fmt1,
+ $fmt3
+ )
+ }};
+}
+
pub fn explains(err: &str) {
let err_upp = err.to_ascii_uppercase();
match err_upp.as_str() {
@@ -707,6 +652,9 @@ pub fn explains(err: &str) {
"F0005" => f0005d(),
"F0006" => f0006d(),
"F0007" => f0007d(),
+ "F0008" => f0008d(),
+ "F0009" => f0009d(),
+ "F0010" => f0010d(),
"E0001" => e0001d(),
"E0002" => e0002d(),
@@ -757,6 +705,8 @@ pub fn explains(err: &str) {
"I0005" => i0005d(),
"I0006" => i0006d(),
"I0007" => i0007d(),
+ "I0008" => i0008d(),
+ "I0009" => i0009d(),
"W0001" => w0001d(),
"W0002" => w0002d(),
@@ -766,9 +716,11 @@ pub fn explains(err: &str) {
"W0006" => w0006d(),
"W0007" => w0007d(),
"W0008" => w0008d(),
+ "W0009" => w0009d(),
- e => println!(
- "F0006 Unknown error code `{}` specified with option -e resp. --explain. Exiting...",
+ e => eprintln!(
+ "{} Unknown error code `{}` specified with option -e resp. --explain. Exiting...",
+ fatal!("F0006"),
e
),
}
@@ -781,6 +733,11 @@ pub fn explains_all() {
explains("F0004");
explains("F0005");
explains("F0006");
+ explains("F0006");
+ explains("F0007");
+ explains("F0008");
+ explains("F0009");
+ explains("F0010");
explains("E0001");
explains("E0002");
@@ -830,6 +787,8 @@ pub fn explains_all() {
explains("I0005");
explains("I0006");
explains("I0007");
+ explains("I0008");
+ explains("I0009");
explains("W0001");
explains("W0002");
@@ -839,4 +798,5 @@ pub fn explains_all() {
explains("W0006");
explains("W0007");
explains("W0008");
+ explains("W0009");
}
diff --git a/support/pkgcheck/src/messages/warningsd.rs b/support/pkgcheck/src/messages/warningsd.rs
index 7358cc562e..44a6ad6d4e 100644
--- a/support/pkgcheck/src/messages/warningsd.rs
+++ b/support/pkgcheck/src/messages/warningsd.rs
@@ -1,8 +1,10 @@
// This file is generated by a Perl script. The source is
// in the docs/ directory of the repository.
+use log::*;
+
pub fn w0001d() {
- println!(
+ warn!(
r#"
W0001 -- Archive as package file detected
@@ -14,7 +16,7 @@ separate zip archive.
}
pub fn w0002d() {
- println!(
+ warn!(
r#"
W0002 -- Duplicate files detected
@@ -27,7 +29,7 @@ seen as an error in general.
}
pub fn w0003d() {
- println!(
+ warn!(
r#"
W0003 -- Same named files detected in the package tree
@@ -43,7 +45,7 @@ http://mirror.utexas.edu/ctan/help/ctan/CTAN-upload-addendum.html#uniquefilename
}
pub fn w0004d() {
- println!(
+ warn!(
r#"
W0004 -- encoding with BOM detected
@@ -57,7 +59,7 @@ that in some future time this could be reagarded as an error.
}
pub fn w0005d() {
- println!(
+ warn!(
r#"
W0005 -- Very large file with size <size> detected in package
@@ -68,7 +70,7 @@ W0005 -- Very large file with size <size> detected in package
}
pub fn w0006d() {
- println!(
+ warn!(
r#"
W0006 -- Very large file with size <size> detected in TDS zip archive
@@ -79,7 +81,7 @@ in the TDS zip archive.
}
pub fn w0007d() {
- println!(
+ warn!(
r#"
W0007 -- Empty directory detected in the TDS zip archive
@@ -90,7 +92,7 @@ don't create errors in the distribution we issue a warning only.
}
pub fn w0008d() {
- println!(
+ warn!(
r#"
W0008 -- Windows file has Unix line endings
@@ -105,3 +107,16 @@ We regard a file as a Windows file if its name ends with:
"#
)
}
+
+pub fn w0009d() {
+ warn!(
+ r#"
+W0009 -- Replacing -> ` with the same from config file",
+
+This message can only show up if pkgcheck got called with --config.
+Indicates that an entry in the pkgcheck config file does the same as the
+hard-coded entry. This helps to keep a clean config file.
+"#
+ )
+}
+
diff --git a/support/pkgcheck/src/recode.rs b/support/pkgcheck/src/recode.rs
index 9a6b3d426d..efb8b932b6 100644
--- a/support/pkgcheck/src/recode.rs
+++ b/support/pkgcheck/src/recode.rs
@@ -57,11 +57,8 @@ impl Iterator for Bytes {
pub fn wrong_line_endings2crlf(fname: &str) -> Result<(), io::Error> {
let path = Path::new(fname);
- let mut hdl_in;
- match File::open(path) {
- Ok(f) => {
- hdl_in = f;
- }
+ let mut hdl_in = match File::open(path) {
+ Ok(f) => f,
Err(e) => return Err(e),
};
let mut buffer: Vec<u8> = Vec::new();
@@ -73,11 +70,8 @@ pub fn wrong_line_endings2crlf(fname: &str) -> Result<(), io::Error> {
let another_vec: Vec<u8> = fix_line_endings2crlf(&buffer);
- let mut hdl_out;
- match File::create(path) {
- Ok(f) => {
- hdl_out = f;
- }
+ let mut hdl_out = match File::create(path) {
+ Ok(f) => f,
Err(e) => return Err(e),
};
@@ -93,11 +87,8 @@ pub fn wrong_line_endings2crlf(fname: &str) -> Result<(), io::Error> {
pub fn wrong_line_endings2lf(fname: &str) -> Result<(), io::Error> {
let path = Path::new(fname);
- let mut hdl_in;
- match File::open(path) {
- Ok(f) => {
- hdl_in = f;
- }
+ let mut hdl_in = match File::open(path) {
+ Ok(f) => f,
Err(e) => return Err(e),
};
let mut buffer: Vec<u8> = Vec::new();
@@ -109,11 +100,8 @@ pub fn wrong_line_endings2lf(fname: &str) -> Result<(), io::Error> {
let another_vec: Vec<u8> = fix_line_endings2lf(&buffer);
- let mut hdl_out;
- match File::create(path) {
- Ok(f) => {
- hdl_out = f;
- }
+ let mut hdl_out = match File::create(path) {
+ Ok(f) => f,
Err(e) => return Err(e),
};
diff --git a/support/pkgcheck/src/utils.rs b/support/pkgcheck/src/utils.rs
index 860b8c223b..b311453b66 100644
--- a/support/pkgcheck/src/utils.rs
+++ b/support/pkgcheck/src/utils.rs
@@ -1,3 +1,5 @@
+use log::*;
+
use std::fs::read_dir;
use std::fs::read_link;
use std::os::unix::fs::PermissionsExt;
@@ -5,18 +7,17 @@ use std::path::Path;
use std::path::PathBuf;
use walkdir::DirEntry;
+use once_cell::sync::Lazy; // 1.3.1
use regex::Regex;
use std::borrow::Cow;
use std::io;
+use std::fs::File;
use std::process::Command;
-
-use colored::*;
+use zip::result::ZipResult;
use std::sync::atomic::Ordering;
use std::fs;
-use zip_extensions::*;
-
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum CheckType {
Tds,
@@ -51,44 +52,28 @@ impl Utils {
true
}
+ // we check for the "good" characters, all other characters yield an
+ // error message
pub fn filename_has_bad_chars(&self, entry: &DirEntry, dir_entry_str: &str) {
let s = entry.file_name().to_str().unwrap();
-
for (i, c) in s.char_indices() {
match c {
- '\x00'..='\x1f' => {
- e0001!(c, dir_entry_str, i);
- }
- ' ' | '!' | '"' | '#' | '$' | '%' | '&' | '\'' => {
- e0001!(c, dir_entry_str, i);
- }
- '(' | ')' | '*' => {
- e0001!(c, dir_entry_str, i);
- }
- '+' | ',' | '-' | '.' => (),
- '0'..='9' => (),
- ':' | ';' | '<' | '=' | '>' | '?' | '@' => {
- e0001!(c, dir_entry_str, i);
- }
- 'A'..='Z' => (),
- '[' | '\\' | ']' | '^' => {
- e0001!(c, dir_entry_str, i);
- }
- '_' => (),
- '`' => {
- e0001!(c, dir_entry_str, i);
- }
- 'a'..='z' => (),
- '{' | '|' | '}' | '~' => {
- e0001!(c, dir_entry_str, i);
- }
- '/' => return,
+ 'A'..='Z'
+ | '0'..='9'
+ | 'a'..='z'
+ | '+'
+ | ','
+ | '-'
+ | '.'
+ | '/'
+ | ':'
+ | '='
+ | '@'
+ | '_' => (),
_ => {
- return {
- e0001!(c, dir_entry_str, i);
- }
+ e0001!(c, dir_entry_str, i);
}
- };
+ }
}
}
@@ -136,9 +121,8 @@ impl Utils {
}
pub fn check_for_temporary_file(&self, dir_entry_str: &str) {
- lazy_static! {
- static ref RE: Regex = regex_temporary_file_endings();
- }
+
+ static RE: Lazy<Regex> = Lazy::new(regex_temporary_file_endings);
if RE.is_match(dir_entry_str) {
match self.kind {
@@ -177,11 +161,18 @@ impl Utils {
}
}
- pub fn unzip(&self, zip_archive: &str, out_dir: &str) -> zip::result::ZipResult<()> {
+ // just copied from zip-extensions-rs
+ pub fn zip_extract(archive_file: &Path, target_dir: &Path) -> ZipResult<()> {
+ let file = File::open(archive_file)?;
+ let mut archive = zip::ZipArchive::new(file)?;
+ archive.extract(target_dir)
+ }
+
+ pub fn unzip(&self, zip_archive: &str, out_dir: &str) -> ZipResult<()> {
let archive_file = PathBuf::from(zip_archive);
- let target_dir = PathBuf::from(out_dir);
+ let target_dir = PathBuf::from(out_dir);
- zip_extract(&archive_file, &target_dir)
+ Utils::zip_extract(&archive_file, &target_dir)
}
}
@@ -281,7 +272,9 @@ pub fn temp_file_endings() -> Vec<(String, String)> {
// ( ".lyx~", "LyX related backup file" ),
];
- v.into_iter().map(|(i, j)| (i.to_string(), j.to_string())).collect()
+ v.into_iter()
+ .map(|(i, j)| (i.to_string(), j.to_string()))
+ .collect()
}
pub fn regex_temporary_file_endings() -> Regex {
@@ -408,8 +401,8 @@ fn owner_match(p: u32, m: u32) -> bool {
}
// Formats a permission value to octal for output
-pub fn perms_to_string(p: u32) -> String {
- format!("{:04o}", p & 0o7777)
+pub fn perms_to_string(p: u32) -> Cow<'static, str> {
+ format!("{:04o}", p & 0o7777).into()
}
pub struct CmdReturn {
@@ -470,7 +463,7 @@ pub fn dirname(entry: &str) -> Option<&str> {
if entry.len() == 1 {
return Some(entry);
}
- return Some(stripped)
+ return Some(stripped);
}
let pos = entry.rfind('/');
diff --git a/systems/mac/mactex/ExtrasFolder.pdf b/systems/mac/mactex/ExtrasFolder.pdf
index b5419d8fab..b62bfdc6bf 100644
--- a/systems/mac/mactex/ExtrasFolder.pdf
+++ b/systems/mac/mactex/ExtrasFolder.pdf
Binary files differ
diff --git a/systems/mac/mactex/Licenses.txt b/systems/mac/mactex/Licenses.txt
index bea6ec7501..f834f40406 100644
--- a/systems/mac/mactex/Licenses.txt
+++ b/systems/mac/mactex/Licenses.txt
@@ -1,6 +1,6 @@
$Id: Licenses.txt,v 1.14 2007/02/28 14:23:19 herbs Exp $
-Brief summary of the licensing of the various applications included as of 2022/05/19
+Brief summary of the licensing of the various applications included as of 2022/05/26
Aquamacs Emacs (Intel) - 3.6 - gpl - http://aquamacs.org/
Aquatkbibtex - 1.3 - gpl - http://aquatkbibtex.sourceforge.net/
@@ -17,4 +17,4 @@ Skim (10.10+) - 1.6.10 - bsd - http://skim-app.sourceforge
Symbols Widget - 1.4.3 - gpl - http://vocaro.com/trevor/software/widgets/
TeX Live Utility (10.9+) - 1.53 - bsd - https://github.com/amaxwell/tlutility/releases
TexMaker (10.13+) - 5.1.3 - gpl - http://www.xm1math.net/texmaker/
-TeXShop (10.12+) - 4.72 - gpl - http://www.uoregon.edu/~koch/texshop/texshop.html
+TeXShop (10.12+) - 4.73 - gpl - http://www.uoregon.edu/~koch/texshop/texshop.html
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 2fb633af5c..d9b165ab9a 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -106,7 +106,6 @@ $mirrors = {
'https://ctan.mc1.root.project-creative.net/' => 1,
'https://ctan.mirror.norbert-ruehl.de/' => 1,
'https://ctan.net/' => 1,
- 'https://ctan.space-pro.be/tex-archive/' => 1,
'https://ftp.agdsn.de/pub/mirrors/latex/dante/' => 1,
'https://ftp.fau.de/ctan/' => 1,
'https://ftp.gwdg.de/pub/ctan/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index b7d0e910a3..6f65899ab8 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,7 +26,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2022
-depend revision/63402
+depend revision/63408
name 00texlive.image
category TLCore
@@ -4571,7 +4571,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 63388
+revision 63404
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
@@ -34512,15 +34512,15 @@ catalogue-topics class book-pub chinese multilingual expl3
name beebe
category Package
-revision 63397
+revision 63404
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 890948
-containerchecksum 538cfd8bac3043029ca732d015bae681d22160b1ae539cfcdfa5912dd2c12ed54c7820442966df5663af2b53824c8a0c02cec51a59aab9a2ccf4a96242ce8eb3
+containersize 890924
+containerchecksum 053b12d5d9e15747a0084447f9db708167b85a6f0d8c26db731b7eef6d00959c86d388565143a6cf0af9cf71d8c63af54b206d1a61e9191fb39cbb3e724a687a
runfiles size=2217
RELOC/bibtex/bib/beebe/epodd.bib
RELOC/bibtex/bib/beebe/font.bib
@@ -115213,7 +115213,7 @@ catalogue-version 1.8
name fancyvrb
category Package
-revision 63012
+revision 63405
shortdesc Sophisticated verbatim text
relocated 1
longdesc Flexible handling of verbatim text including: verbatim commands
@@ -115222,10 +115222,10 @@ longdesc parameters; ability to define new customized verbatim
longdesc environments; save and restore verbatim text and environments;
longdesc write and read files in verbatim mode; build "example"
longdesc environments (showing both result and verbatim source).
-containersize 11876
-containerchecksum fe76e6823f977e967421231b04bfefd25a3bafaae12db50dda9cfa04baa19653f78f04d77021296741ad29b9ad8dc098c45d6e8fc1cda206221d7dfc31953945
-doccontainersize 149556
-doccontainerchecksum e03a89f707b6a7f87c6a4e1abb7096c1cf30f8f2161088861dbc9e8303401d678421afe466c3ea8f8de7d6f3c4b6a50811f13168656aacbf6ca31d60f2c1ce88
+containersize 11888
+containerchecksum c1bc828b653a178fe65602487b28dab1edb0918caddbfaac54a8016bb3c9087646ec6a485e75a128ba13db35880031bb4afb9d0453cdd065eb1131d326db8270
+doccontainersize 150004
+doccontainerchecksum bafe2bcafc9a38a559fde6cfedeb0e3afdd91eae60d8df25dc6dc0199446a8ce560d61b21d8e4aa286a4b6e993207837dc778b5a93abaee369bb3d0572598e99
docfiles size=48
RELOC/doc/latex/fancyvrb/Changes
RELOC/doc/latex/fancyvrb/README details="Readme"
@@ -115239,7 +115239,7 @@ runfiles size=17
catalogue-ctan /macros/latex/contrib/fancyvrb
catalogue-license lppl1.3
catalogue-topics verbatim macro-demo
-catalogue-version 4.2
+catalogue-version 4.2a
name fandol
category Package
@@ -206073,22 +206073,22 @@ catalogue-version 1.03
name mnotes
category Package
-revision 35521
+revision 63406
shortdesc Margin annotation for collaborative writing
relocated 1
longdesc The package provides a flexible mechanism for annotating, and
longdesc commenting upon, collaboratively-written documents.
-containersize 2008
-containerchecksum f95e4cbe33ec00e62aab2b3b9cdddaeceb762ccc34b736b8e2c0d658b3e871134d0a0b8805470f8c4e148057c513dad9cbbf6c1d5076843b2b2fdce03c84dd09
-doccontainersize 211560
-doccontainerchecksum 58c3d8def0ee368f1cb87567aab160b4af10de7137de1901f4c6428531f1d080146ee5cb7f0be73a09216d0aa5580bf4baa8cbcca4c7801a322731f88cadf2ec
-docfiles size=54
- RELOC/doc/latex/mnotes/Makefile
+containersize 2160
+containerchecksum 834350f6b4bcaa9b84c18d526072ebcbb260c501b08fb81fd40d3d4ebe015392ec94f6dfcb0fd751716f213afbb4615bfa3e1c729eca416c9d499d0eb784686c
+doccontainersize 212872
+doccontainerchecksum 198f7b4e402a71e6617a1c7a92a54fd2a742c8c1748bfa17f71102a833b1fbb656dd5b85f7f7a58bfe05588525e07cf978278d6758448c4dd69d48275eb0be01
+docfiles size=53
RELOC/doc/latex/mnotes/README details="Readme"
RELOC/doc/latex/mnotes/mnotes.pdf details="Readme"
-srccontainersize 5448
-srccontainerchecksum 4c0a9077711c44601ab9933cfd46b1ed8c5bb1866fb40ac0707100ed9173bdc67d59f7aab91972e6150ed65e385583dfd9851479c8f0cd651f61a6ab6fe39946
-srcfiles size=5
+srccontainersize 6476
+srccontainerchecksum db27a6007ca0bc687bef6298246d5a3a72c232c8728f3dfc8d0f8c8fd62990d98d9e13b57916ac1a4562cc521610f2625f90172b76afcd4b5600e7c571b9a1ef
+srcfiles size=7
+ RELOC/source/latex/mnotes/Makefile
RELOC/source/latex/mnotes/mnotes.dtx
RELOC/source/latex/mnotes/mnotes.ins
runfiles size=2
@@ -206096,7 +206096,7 @@ runfiles size=2
catalogue-ctan /macros/latex/contrib/mnotes
catalogue-license lppl1.3
catalogue-topics marginal
-catalogue-version 0.8
+catalogue-version 0.9
name mnras
category Package
@@ -228794,7 +228794,7 @@ catalogue-version 0.0.1
name nwafuthesis
category Package
-revision 63391
+revision 63407
shortdesc A thesis template package for Northwest A&F University, China
relocated 1
longdesc This template supports doctoral and master dissertations and
@@ -228804,11 +228804,11 @@ longdesc normative format, as well as a hackable class for the users. At
longdesc present, nwafuthesis only supports XeTeX and LuaTeX engines.
longdesc nwafuthesis only allows UTF-8 encoding. nwafuthesis is based on
longdesc the fduthesis template.
-containersize 19348
-containerchecksum 7500ff77e35e17153bc21b6684dff5bee3add4ed9b0eb8e5d9e1861bedd11f62375e933a35d8ef4ed1f887656468b281ac49de047d9ddc10d0b593224576bc89
-doccontainersize 2254592
-doccontainerchecksum addf1809913992feb2e31703e821b96f094ad625634de1d4e8841a6a7ca7c33a2d680ab1ce23fd387796a3aaf15187eea34d58d79b667ccdec6e7806c4527f2e
-docfiles size=980
+containersize 19432
+containerchecksum b4283f42badafe62e3788cb7a64a208fb749cb2b2d9296024039bdd5578dded47481cd37553f3bc362fb270f1383f3c24339af9b2a994847a08447df8d14507c
+doccontainersize 2256920
+doccontainerchecksum a349ca90823d406e06031c4e902aee25c1ceeaa21260ad88e22c60f0eb0e7b9501ec94aaf3c453f2ce71cdd0c0b5aee539ba1a48b5da2bae3e0a6f65532d3592
+docfiles size=981
RELOC/doc/latex/nwafuthesis/README.md details="Readme"
RELOC/doc/latex/nwafuthesis/logo/building.jpg
RELOC/doc/latex/nwafuthesis/logo/motto.png
@@ -228817,8 +228817,8 @@ docfiles size=980
RELOC/doc/latex/nwafuthesis/logo/workflow.pdf
RELOC/doc/latex/nwafuthesis/nwafudoc.cls
RELOC/doc/latex/nwafuthesis/nwafuthesis.pdf details="Package documentation" language="zh"
-srccontainersize 61868
-srccontainerchecksum 28ecd4ecc289dadb58b87d366869d751fe6945fd22d4a2e8c295e554a00f9e0bf162503035c21fbff3a74e5fce5951314e070c32f6b7c6db5ad8fbbdd0af69ee
+srccontainersize 62024
+srccontainerchecksum bf209125d1b4cd1237f1f23e2155e277814570086db107a60eccc9a6cd6db4a988df9b404f0d648b283cf4f5eed100277267abbb8cb1341dca20688aab4c7ba1
srcfiles size=84
RELOC/source/latex/nwafuthesis/build-win.bat
RELOC/source/latex/nwafuthesis/build.sh
@@ -228831,7 +228831,7 @@ catalogue-contact-repository https://gitee.com/nwafu_nan/nwafuthesis-l3
catalogue-ctan /macros/unicodetex/latex/nwafuthesis
catalogue-license lppl1.3c
catalogue-topics class doc-templ dissertation chinese expl3
-catalogue-version 1.12
+catalogue-version 1.13
name nwejm
category Package
@@ -304623,7 +304623,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 63397
+revision 63404
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.
@@ -304632,9 +304632,9 @@ depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
containersize 109752
-containerchecksum c51f55159e12886666f8ee5382a873fa6c67fdaaff128a241c67447fc85ca9608227978b631615324fb90098d53023e0ba53c19e8f00b006d8ed6db4e43af887
+containerchecksum 6ce76c74c6b18b2c5ff1eaaadfa466a5c13cd99f420afb51d95daeb4b840bac1d4b88601e0ab257c32aac0a09f195c24939c5cbc85c2870e044246afc4f7e988
doccontainersize 406832
-doccontainerchecksum dd5e17e0204a978a67a3870538fb7b1ec3063edf8e08d60de3848dbb7c4d6ad70f0b7d8e7ae3a80dbb0c5ebec94c3bc0f7b8abfbbf736bb21a52eedad597fcd5
+doccontainerchecksum 03e484fa5b535ac1f1492d5dce3cc1633b8d9a239520cb153730355d43f5708c22f8180f18da16bcad75d429bac0fb130b0665bf360321bd9dc981293d3aa377
docfiles size=506
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 950b703216..54353aa5be 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-eb9b5fd189594d027ac67c5d126d589c texlive.tlpdb
+8f035836aee93022a56e536e813a0072 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 733ece520b..ae2535f8c6 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-90e77b0c6797af50649a84e09878c2983a2c4dea1bdf3fc2047b9eee277a75129e079e26a3650ad9ecdb75b113a8722d4b7dad8441cf60243d9bc17a6d64cb4c texlive.tlpdb
+65dd550aa98f15b9e668be1e5fc66e30b8195597445d44ee08b4403d73bfd962ee7a15b3d96879c9356fd32f275ad3727b63162a246e0717e40c28ffb0a047fd texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 3a89f68535..5abbe7c850 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-----
-iQEcBAEBCgAGBQJijsF8AAoJEEzhh34ZQ4xwS9UH/iwTbg/AHYaCu3tCcHIUK7Hr
-H4DuUkLwoDYAD/0E8IKRJMTt5/bkMicMU/VByOoKG1+LmcfOdPsU/pg9Lud2HfYL
-f1ohJgZXsMlRK+sT4ttv7eMwpNRSzNLcQdXxxTFUjXFVBiXC8DQE77End1dsOmrE
-nD3+pR6KoEUixxkHICCjXZ3z4aeXE51FpF35aAEGLiQ2q5+UxsAY2MxQB6qkm8Ro
-4+sgDeGvSGamAII3ABxi6ZztYKjulAfSliakAPdk2O4g8EzDOzm/0CgI+fwzlirx
-dFcKzAe7wlS/ZFdmaR5sAvrhd9dzYNoWpIlIYEjsM8VLnqIZHzTHe8mEjNUiEdA=
-=ipHO
+iQEcBAEBCgAGBQJikBLlAAoJEEzhh34ZQ4xw+eoH/j/FxHg48QzRpdkj0P17N74V
+VJdn+ySHGcRfrsEehbEWXTW/gRBIQtqWSkzauZAUwuqKHm0wW1hwWn9SErnWkDFf
+Fa2T9LWRgrJKCoDt9+HX+1hSbe7mt+SekE29gflZgfOc2kuhPnk/wY4/oSkjCkyg
+zNRLniPQNKk0Ev78UXKenDGmod5EPSR0z1G9JW3Z8lZpK3CRVPyhwknNaC1etuhh
+rNoZR79BHGFgRMYTDrYkcLN/Ybm3bOXk/PKafR0YDnn4F7t5B31Lbm8dVRYKtIe9
+GJEZkt9fliWvfHeqXDjEq0jJMeta0ZYIGGPsu55Y6/WVR2bHdCmULeng33XsWPc=
+=O34G
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index f2bf5562d0..24a451dcbe 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index d8385e6b2c..d12949b874 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1653510171
+date=1653596325
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=1c73c95cb38b7ff1e0a0a9bb0f6529e2
+lstdigest=de3063b92483381ec74ce9d9b0ee94d2
numpkg=5626
relstate=next
-version=8180
+version=8181
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: VT4bO2YaD2ZlAS+AMzXpOmK4Yanp7qiqlszgX1ea3iv6uqnnUOzra2ZHRMkwfQOQA/6XpRw5ctZxq+eW0e0kMK76nEhTzVn5l/cLpQAXavfP+CwfwV6UNeupLxiDIpwIiJTjPB/ZuSG1zsZ4CMSBvX7bZ/IFfnOqpmIuGNnAPh2COveYcXsnFLAwhxQi2CZdxK1GSTwyfFAEZKP5hyzZ49sUd+rYO83VZmJHF9PY23DQaBWRz91PH1Y2uQXNzQwIVc6OPP5HHDiMozc62uRYlGF+2YKbGbN5BSgf6tAeqpzHoImlE1WMvhTgTcCgl4/tJJufPN/R2bBqMliXESNoGw==
+;;;; signature/miktex: DFnhF8tMalyEoc0wqi676hrxcKqI8C929NKwqbe4nMVFCdfPDebLFM09BIqRYWPbscZa/0hya2X28U1L7+n0DROzmV6Ih0kUKEmz8x60OMoy267TuOdduaKZ6JmbRTVL20NHjKqbarDYU04Epix9N6x4DTf9UPCbRU3p7Bw6D0dXnzQlypn5iH4tNr7XVVgDJ5ge42zGWPYcesXsz0sxhOcND1iN3BI1dqa9Yfnf7M4J87rtM3rYDUykeUqAN0TcHIU4AmFGywYliYq3mTnarifxreyDer5iEl/D+fPO5lzKTl+V31LlhgUFDymRcjTC+jb6aBFjMNB/QDsqhwX25w==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index f6c2ec106b..72442090f2 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1653509515
+date=1653595906
lastupd=adjmulticol adjmulticol__doc adjmulticol__source babel babel__doc babel__source beamer beamer__doc biblatex-gb7714-2015 biblatex-gb7714-2015__doc biblatex-gb7714-2015__source bidi bidi__doc bidi__source bxghost bxghost__doc causets causets__doc causets__source create-theorem
-lstdigest=909fea35430ec11881721fbb27b980b5
+lstdigest=a84eedd73c007ac4778425fb9ee78b88
numpkg=5626
relstate=stable
-version=8180
+version=8181
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: bzpUBqpBabi/GfgD6/t250N2tkCZbetOChzJilTr10qs96ydJzVel8+ZDkZd4vqSlnxBC7x7+7k/oRIe7hKRnBsi1+fGZm9WVsHxBK7Cycoqu/ApCJcoNNiQZXqn/kmOt+6nzDd7z2Q5A9UBOoyxULGswUznhsDg81/Wc8x//BnqAQGqXvkLgBTjcjLGk4P45YWMmANmrdeaPlhCnd6pbpFJJ2PyK5pS0zZKeLiUFK73NhhvHzvzkWTpuw28HtOQSZVeRy69vYsDkqjDsayLKoa+kDCD21Z8ocNzn8O9Nj7I7uaE1Z0tVPBEiCamWRW8yoZx0NLEv5D9NbUo2cJ7Fg==
+;;;; signature/miktex: UUv1r8gfpn16VQB6fMQYMiiE0IQLToSR1nhEE7PVU6kUQjEkxmIxTYXN7+rgGmQ7Jwlz4LnjokwdHo2Ara/CeRUWfaEijEXW3Fg5wJkJ9oyymcAhf2MlLmXvbZXlbSFwbRQGpYgRcvVcdq9PdNC3j9YN81/pPJH5QRrmlM7xPi0WDq3WqUXXxin35Et+OUKgKsnCkn6VeHpXUr4V0AjZm32VTal90R4ipcuXpTDMNp0jgXMo9Y9r1OWq/6CsnjkSMax0K7InzT3Xil6i0WunOywE/PxfmW3l/buYeiXX8jA2mRIFO8/lewXeauq4CMyAbIwpeLfkAyohUy7FSPJwew==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index 42c9aa243a..ff8e1f2b28 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2022-05-26-02-02
+2022-05-27-02-02