From 0f05bb0a31628bd88a896093a4d8e7e1da02f5f4 Mon Sep 17 00:00:00 2001 From: Alexandre Bobkov Date: Sun, 22 Jun 2025 19:31:37 -0400 Subject: [PATCH] rates 2025 --- docs/build/doctrees/environment.pickle | Bin 31364 -> 31617 bytes docs/build/html/.buildinfo | 2 +- ...0e49c3f9c40699b77e19e0a2b684d246ea21bb.png | Bin 0 -> 907 bytes ...a11f8e69bcb5e9be2df6754a5e4f614450b91c.png | Bin 0 -> 1062 bytes ...7c7611976b4041740caa3335735c193069bb84.png | Bin 0 -> 1179 bytes ...afef116a3f4349b6cf21c73cca42773ed21927.png | Bin 0 -> 871 bytes ...b2faa121474b0dd0e28fef8ac413a56b6313b2.png | Bin 0 -> 964 bytes docs/build/html/payroll_accounting.html | 13 +- docs/build/html/review_questions.html | 10 +- docs/build/latex/LICRcyr2utf8.xdy | 101 -- docs/build/latex/LICRlatin2utf8.xdy | 239 ---- docs/build/latex/LatinRules.xdy | 611 -------- docs/build/latex/Makefile | 65 - .../latex/Payroll-Administration_2025.aux | 93 -- .../Payroll-Administration_2025.fdb_latexmk | 181 --- .../latex/Payroll-Administration_2025.fls | 350 ----- .../latex/Payroll-Administration_2025.idx | 0 .../latex/Payroll-Administration_2025.ilg | 5 - .../latex/Payroll-Administration_2025.ind | 0 .../latex/Payroll-Administration_2025.log | 929 ------------ .../latex/Payroll-Administration_2025.out | 28 - .../latex/Payroll-Administration_2025.pdf | Bin 191487 -> 0 bytes .../latex/Payroll-Administration_2025.tex | 807 ----------- .../latex/Payroll-Administration_2025.toc | 29 - docs/build/latex/latexmkjarc | 22 - docs/build/latex/latexmkrc | 9 - docs/build/latex/make.bat | 31 - docs/build/latex/python.ist | 16 - docs/build/latex/sphinx.sty | 1196 ---------------- docs/build/latex/sphinx.xdy | 230 --- docs/build/latex/sphinxhighlight.sty | 130 -- docs/build/latex/sphinxhowto.cls | 102 -- docs/build/latex/sphinxlatexadmonitions.sty | 403 ------ docs/build/latex/sphinxlatexcontainers.sty | 22 - docs/build/latex/sphinxlatexgraphics.sty | 123 -- docs/build/latex/sphinxlatexindbibtoc.sty | 69 - docs/build/latex/sphinxlatexlists.sty | 131 -- docs/build/latex/sphinxlatexliterals.sty | 1000 ------------- docs/build/latex/sphinxlatexnumfig.sty | 135 -- docs/build/latex/sphinxlatexobjects.sty | 384 ----- docs/build/latex/sphinxlatexshadowbox.sty | 178 --- docs/build/latex/sphinxlatexstyleheadings.sty | 91 -- docs/build/latex/sphinxlatexstylepage.sty | 73 - docs/build/latex/sphinxlatexstyletext.sty | 145 -- docs/build/latex/sphinxlatextables.sty | 1241 ----------------- docs/build/latex/sphinxmanual.cls | 128 -- docs/build/latex/sphinxmessages.sty | 21 - docs/build/latex/sphinxoptionsgeometry.sty | 54 - docs/build/latex/sphinxoptionshyperref.sty | 35 - docs/build/latex/sphinxpackageboxes.sty | 827 ----------- docs/build/latex/sphinxpackagecyrillic.sty | 55 - docs/build/latex/sphinxpackagefootnote.sty | 434 ------ .../latex/sphinxpackagesubstitutefont.sty | 21 - docs/build/simplepdf/.buildinfo | 2 +- .../Canadian Payroll Administration.pdf | Bin 124409 -> 133128 bytes ...0e49c3f9c40699b77e19e0a2b684d246ea21bb.png | Bin 0 -> 907 bytes ...a11f8e69bcb5e9be2df6754a5e4f614450b91c.png | Bin 0 -> 1062 bytes ...7c7611976b4041740caa3335735c193069bb84.png | Bin 0 -> 1179 bytes ...afef116a3f4349b6cf21c73cca42773ed21927.png | Bin 0 -> 871 bytes ...b2faa121474b0dd0e28fef8ac413a56b6313b2.png | Bin 0 -> 964 bytes docs/build/simplepdf/index.html | 36 +- docs/source/conf.py | 5 + 62 files changed, 32 insertions(+), 10780 deletions(-) create mode 100644 docs/build/html/_images/math/020e49c3f9c40699b77e19e0a2b684d246ea21bb.png create mode 100644 docs/build/html/_images/math/3fa11f8e69bcb5e9be2df6754a5e4f614450b91c.png create mode 100644 docs/build/html/_images/math/547c7611976b4041740caa3335735c193069bb84.png create mode 100644 docs/build/html/_images/math/96afef116a3f4349b6cf21c73cca42773ed21927.png create mode 100644 docs/build/html/_images/math/f8b2faa121474b0dd0e28fef8ac413a56b6313b2.png delete mode 100644 docs/build/latex/LICRcyr2utf8.xdy delete mode 100644 docs/build/latex/LICRlatin2utf8.xdy delete mode 100644 docs/build/latex/LatinRules.xdy delete mode 100644 docs/build/latex/Makefile delete mode 100644 docs/build/latex/Payroll-Administration_2025.aux delete mode 100644 docs/build/latex/Payroll-Administration_2025.fdb_latexmk delete mode 100644 docs/build/latex/Payroll-Administration_2025.fls delete mode 100644 docs/build/latex/Payroll-Administration_2025.idx delete mode 100644 docs/build/latex/Payroll-Administration_2025.ilg delete mode 100644 docs/build/latex/Payroll-Administration_2025.ind delete mode 100644 docs/build/latex/Payroll-Administration_2025.log delete mode 100644 docs/build/latex/Payroll-Administration_2025.out delete mode 100644 docs/build/latex/Payroll-Administration_2025.pdf delete mode 100644 docs/build/latex/Payroll-Administration_2025.tex delete mode 100644 docs/build/latex/Payroll-Administration_2025.toc delete mode 100644 docs/build/latex/latexmkjarc delete mode 100644 docs/build/latex/latexmkrc delete mode 100644 docs/build/latex/make.bat delete mode 100644 docs/build/latex/python.ist delete mode 100644 docs/build/latex/sphinx.sty delete mode 100644 docs/build/latex/sphinx.xdy delete mode 100644 docs/build/latex/sphinxhighlight.sty delete mode 100644 docs/build/latex/sphinxhowto.cls delete mode 100644 docs/build/latex/sphinxlatexadmonitions.sty delete mode 100644 docs/build/latex/sphinxlatexcontainers.sty delete mode 100644 docs/build/latex/sphinxlatexgraphics.sty delete mode 100644 docs/build/latex/sphinxlatexindbibtoc.sty delete mode 100644 docs/build/latex/sphinxlatexlists.sty delete mode 100644 docs/build/latex/sphinxlatexliterals.sty delete mode 100644 docs/build/latex/sphinxlatexnumfig.sty delete mode 100644 docs/build/latex/sphinxlatexobjects.sty delete mode 100644 docs/build/latex/sphinxlatexshadowbox.sty delete mode 100644 docs/build/latex/sphinxlatexstyleheadings.sty delete mode 100644 docs/build/latex/sphinxlatexstylepage.sty delete mode 100644 docs/build/latex/sphinxlatexstyletext.sty delete mode 100644 docs/build/latex/sphinxlatextables.sty delete mode 100644 docs/build/latex/sphinxmanual.cls delete mode 100644 docs/build/latex/sphinxmessages.sty delete mode 100644 docs/build/latex/sphinxoptionsgeometry.sty delete mode 100644 docs/build/latex/sphinxoptionshyperref.sty delete mode 100644 docs/build/latex/sphinxpackageboxes.sty delete mode 100644 docs/build/latex/sphinxpackagecyrillic.sty delete mode 100644 docs/build/latex/sphinxpackagefootnote.sty delete mode 100644 docs/build/latex/sphinxpackagesubstitutefont.sty create mode 100644 docs/build/simplepdf/_images/math/020e49c3f9c40699b77e19e0a2b684d246ea21bb.png create mode 100644 docs/build/simplepdf/_images/math/3fa11f8e69bcb5e9be2df6754a5e4f614450b91c.png create mode 100644 docs/build/simplepdf/_images/math/547c7611976b4041740caa3335735c193069bb84.png create mode 100644 docs/build/simplepdf/_images/math/96afef116a3f4349b6cf21c73cca42773ed21927.png create mode 100644 docs/build/simplepdf/_images/math/f8b2faa121474b0dd0e28fef8ac413a56b6313b2.png diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index 6ea95aed7989b09d7702d8ce2b9a8c6d9818def6..9fc233e9b8055da42c4ec6be292e42d25c784b49 100644 GIT binary patch literal 31617 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 YFBsbU#(le?Q?9DPhW%&+_i7FQe`PfU`2YX_ diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index d0a574f..539730c 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 66658998729e692494c3a76de7314435 +config: 709d7b3d5a22a3fd769256924cb676fa tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_images/math/020e49c3f9c40699b77e19e0a2b684d246ea21bb.png b/docs/build/html/_images/math/020e49c3f9c40699b77e19e0a2b684d246ea21bb.png new file mode 100644 index 0000000000000000000000000000000000000000..313d1065a9b279a5eef52c92e56dab283edfdd05 GIT binary patch literal 907 zcmeAS@N?(olHy`uVBq!ia0vp^FM(K)g&9bmx-o4DkTMAH332`Z|38pPJkYnn89fM=lyqod%TqBo_oF|p>K|)5>Se>z$3Dlfr0M`2s2LA=96Y%V7lPx;uvCa z`sft@3}Hu+WBdPTp3d8JQs6>!!sa8ZI7GAc=WS8dSQM~Xou5mMeQ%`n7TtSN=jC>3 zbjXz~4)YFnD$<(d{dJLerc#`W$*%TmO(M5+LpzsUoq03EJl9!FWbOeS{rA$*byR$-Xy>e6h5TZIgK)3VQJJvp*;+9v0Q3AYU7nU{3tbXgqSHNEk*---aUGp-8z z=jL#6tnyo##~vam%=>?Z?}~YP?IFIGqJnEP1WumzT~T#U(Ny2+#8l%JJ4 zF)dVWik82GY0#2&BJ-To*J(AmEZNz{xqj<+)95{~E>BI*RA|b+^E|9Y@1u2_;w+Br zGq)D3E4jpcOJx7EUu^!J?Jp`76*Vf(wS+%>zVp(p*KBSY0{d6wcCE?X`7rO;2bJ4X z7%p=5CCKh#6L##4-X^_ly=L6ZhKSZF4-_4p*PJq+kaDQpEZOM1b%jk!aO~z#y*sg2bY4|g9q!4xy4CCRo!M^5 zv6`mo0rqdpUvX!b+-aV$pHSVIy8ND6+#SOsrq_IRT9zew?Y(inCAmOd zP^!Z%PVaGGC1>O1$MeOL)*D#+-Oda)ZteT-Xcs<->&o-x@yAa36m8fhF#BLk+7qVD zb@lDv*ScA;*VvwX*!}(5>GX`RT#ub{(l&fs8K7tQFvTp}+Wd~g#1GHA?-iU*UB1iX zcm0B0Q@`wA$kwHvyHo5$`~tmelYDLL8GF2V!?&eM6#x@FSBYyxiA!ohNd_nzu_*Yd Pih>xPu6{1-oD!M+ z{3Stt!3@9GpZ`3!WWSNb-R=aBmy7Q|1DV5F;1OBOz`%C|gc+x5^GP!>FlT$ZIEGl9 zE}a^i!xJcS{QtJHvSr4X%|1R-PTa)nTNB19w50ZvQiO`?tHeji%9)Ep6$KYf=HRz^ z^T5$1>3X*En*O_sR?V(Bz^vv}(-PuxX!g}*o0^YW8gJfR-aY%yOzY=!s^7hzSNu-a zN2=FtdLMH@+PAnY%Uf+;m)A#qu`yn~{pBY8ib==+-&&KgrO>&DZMpr~xtG2KhV0d> z(9ivuvwXSI+E1#64#K6Dt;_lDZT8_S`O4GidcgJY?`f5bZiQXrUOSt?Y0ojw4A(1_ zM%ovC3jEHs$yni|5O1!nw$`NM!@lB*tcPaZhe8FUHNCR;jf6&kEf0IMpriTcE|OMPv4ZNwHFbEM@6M zQSn!fJWvx{WY>0(Ff#lY*%b{stezBFupFr(y^qMMPDfE+Gi%0OCC`X%XeIm zs_ED}%}!DNEE9|5smivDBOVNfm-Xi=O<_{ouUBMc!|~F1N7S}y=T#g7cD*k4{AZ!+ zq;lq6MGfz7y&nRm@!=uHEo(0|Ds!Cs>c76}$wP)DL;Ip9j=#k2Uwt}F@q$(BGS86W zg`EP^?tJoU*^$Qo+3u8pnBSILp#rg2dN~D*`gA=ymMgoh4w75&)LX#l$y~h;O#f^j zI;-UL-0-xv)zp1Hm+MGWn8qG{ec7^KVoJ**gsaxX{9#eteIfQ}s39}w-Xi}OmQ4z> z=fs&f!b5dsTAYlhK0SD`Siq>DVav-U$~#|v>W#eJ+|g*e^pMJ52B$uWj^Zole+dK$ zb|?usJ1!M^u`gh!p?{&yMedWgdN!PH)LW6oFScOY{{82+WIIC9V-AE~y128K9iW TpsxIo2Sj_i`njxgN@xNAOqs&< literal 0 HcmV?d00001 diff --git a/docs/build/html/_images/math/547c7611976b4041740caa3335735c193069bb84.png b/docs/build/html/_images/math/547c7611976b4041740caa3335735c193069bb84.png new file mode 100644 index 0000000000000000000000000000000000000000..6b863fe98651e367762aa85d31a25eacfa81586a GIT binary patch literal 1179 zcmeAS@N?(olHy`uVBq!ia0y~yU`zzEg;|(^dtefEBq#4BOIZvl!X>zP@ zO`-cLkNKOLniMYe@^`Hc((XtQe124H|143F=qWSm%Q!p3_eg?y?D=x*eP1!fSq`Niuc z+bg~cb+q1E)2{cSWRLRu;zD>{MCzZs&hhKaI04{ZIaJ2P-c#ZhmzlZNXqF^dDy}LL(>U z3*XY-B0X=GarGk(`=vT_96#howENBt+8WK`n6`J_2E#s1jmt02{OquNlYZ)f@-?;8 z@GZ{;%{Pi$e_VY=PBX}cl^f{B0NyPBr*G6_9M4u}rF}jkd*wx=QzH9?+Cw?BV*CQm$ zI&yhFT<=@Yt6ALn*r_UY?z;N)z5fk6lbiVpU43WT8h-y+%+$Y1EicElVoF!n4v$Hh zSH65a9`ZuvSjj2zH6^VchpuU?X*arZvob(@MfyU8FOm^zF^>!n#%=dY4Q+B&`B$>* zP_XfA^|VKh*H(oW?&Mc|t=5!w#Aj3F-eXpxLC+?>{rJ{K=(10uyJqwJAN;Q-3T>I* zSRl9fljif3RGn!@yk6SvG=9P72dxb zbr~C9Ru^7oT)4ZW{?x16-_GhTwJ&DVZPtyW_l}nCIQFBwas8Uz>0$aQd7)SOEsG=PWF4Kj)~DvlTw{&Py!o}a zxE@`7x_xg%U6SstLzfM=tUm28BequM*yVEG8k1Dh9hdJ1J=n$m_PflNNx%5x_DpbB ms_F;kbq1~y*N76A)Pj->P_e=q?kU;~VtBgxxvX^IL)@*GMnM~BE?*mC0Jvb*p_?&u2!MB zGBP&of{QL_u_|)xJXrr?Lb1RUvD?1t)wY^$ny=p9-G9flSLw$651(q^*Y5v*vif@* z69fB)?NK|fto~)S^JSe~{vX4DT7$q0bM2bmZ%=J)y!S|!mEOF}dv8O+4%G!YCcD>N z*8iAuMJC(5=5^Ltpg0f9;kcD&8}7-J&SgyOb2Xa#wu3|PU}uP~_4Mz|OnxqEPUn8+ z*&3OC=XW`o<=x}R+uuHyxzjTtWtYMjlD{(cC4Pz#1!p| zOLW#*A2I3{c<#0Iv!BXDzk1K*rRoZfQR?Y4X6#X{n!Yg4Y2GHo`7gK6nS9V=mG1TK zj-vOg@4C#qWqgjYMEU2la1q-@3DtggqMj6IJA`|sR1|S_O3v1svMkM0tbG4*iNIZ( zH>C=E^xCj`n@4VB>jT$AM^; b#3i+$Bmi4NKwWwkROa2x1u@K^Y@ z;itye*iZ2%S_iiMt8&TsaW>U`@t^wNZ#A`Av)m5Xvgq7d zsGoG&F^81=F5uq_xg@{43ZuV~cHV&DYv%0(q zxKwhI*=#>I=dBO^Pd<2N+;H%|;nB9Ba$e7*<_V%c(TsOIqFHmfB3*T(TPj|PbId;o z)SS|+bH(wmn9_^*;+P^9Rc7gEGrRoA)rH(^eq|i`wzTV3&?2j>4<|2nR+s%qI`V@3Mbglc#y&E-#h literal 0 HcmV?d00001 diff --git a/docs/build/html/payroll_accounting.html b/docs/build/html/payroll_accounting.html index 58f1ece..63ed037 100644 --- a/docs/build/html/payroll_accounting.html +++ b/docs/build/html/payroll_accounting.html @@ -12,7 +12,6 @@ - @@ -48,14 +47,14 @@

2.1.1. Accounting Recap

-\(\Sigma \text{ Total Debits} = \Sigma \text{ Total Credits}\)

-\(\text{Assets} = \text{Liabilities} + \text{Equity}\)

-(1)\[Assets = Liabilities + Equity\]
-

Furthermore, we know that:

+\Sigma \text{ Total Debits} = \Sigma \text{ Total Credits}

+\text{Assets} = \text{Liabilities} + \text{Equity}

+

(1)Assets = Liabilities + Equity

+

Furthermore, we know that:

-\(\text{Equity = Revenue - Expenses}\) +\text{Equity = Revenue - Expenses} , which leads us to:

-\(\text{Assets = Liabilities + (Revenues - Expenses)}\)

Accounting equation (1)

+\text{Assets = Liabilities + (Revenues - Expenses)}

Accounting equation (1)

Payroll accounting is a critical component of the Canadian Payroll Administration system. It involves the systematic recording, analysis, and reporting of payroll transactions to ensure that all financial aspects of employee compensation are accurately reflected in the organization’s financial statements. Payroll accounting includes the management of employee wages, tax withholdings, benefit deductions, and other payroll-related expenses. The system is designed to automate these processes, ensuring accuracy and compliance with Canadian payroll regulations.

diff --git a/docs/build/html/review_questions.html b/docs/build/html/review_questions.html index 6170679..c7d560c 100644 --- a/docs/build/html/review_questions.html +++ b/docs/build/html/review_questions.html @@ -15,7 +15,7 @@ - +

This Page

@@ -107,7 +107,7 @@ c. Choice C

index
  • - next |
  • $(ARCHIVEPREFIX)docs-$(FMT).tar.gz - -bz2: tar - bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar - -xz: tar - xz -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar - -clean: - rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI) $(ALLXDV) *.fls *.fdb_latexmk - -.PHONY: all all-pdf all-dvi all-ps clean zip tar gz bz2 xz -.PHONY: FORCE_MAKE \ No newline at end of file diff --git a/docs/build/latex/Payroll-Administration_2025.aux b/docs/build/latex/Payroll-Administration_2025.aux deleted file mode 100644 index 48dbf6b..0000000 --- a/docs/build/latex/Payroll-Administration_2025.aux +++ /dev/null @@ -1,93 +0,0 @@ -\relax -\providecommand\babel@aux[2]{} -\@nameuse{bbl@beforestart} -\providecommand\hyper@newdestlabel[2]{} -\providecommand\HyField@AuxAddToFields[1]{} -\providecommand\HyField@AuxAddToCoFields[2]{} -\babel@aux{english}{} -\newlabel{index::doc}{{}{1}{}{section*.2}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {1}INTRODUCTION}{3}{chapter.1}\protected@file@percent } -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\newlabel{introduction:introduction}{{1}{3}{INTRODUCTION}{chapter.1}{}} -\newlabel{introduction::doc}{{1}{3}{INTRODUCTION}{chapter.1}{}} -\@writefile{toc}{\contentsline {section}{\numberline {1.1}Payroll Legal Framework}{3}{section.1.1}\protected@file@percent } -\newlabel{introduction:payroll-legal-framework}{{1.1}{3}{Payroll Legal Framework}{section.1.1}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {2}Payroll Accounting}{5}{chapter.2}\protected@file@percent } -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\newlabel{payroll_accounting:payroll-accounting}{{2}{5}{Payroll Accounting}{chapter.2}{}} -\newlabel{payroll_accounting::doc}{{2}{5}{Payroll Accounting}{chapter.2}{}} -\@writefile{toc}{\contentsline {section}{\numberline {2.1}Journal Entries}{5}{section.2.1}\protected@file@percent } -\newlabel{payroll_accounting:journal-entries}{{2.1}{5}{Journal Entries}{section.2.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Accounting Recap}{5}{subsection.2.1.1}\protected@file@percent } -\newlabel{payroll_accounting:accounting-recap}{{2.1.1}{5}{Accounting Recap}{subsection.2.1.1}{}} -\newlabel{equation:payroll_accounting:AccountingEquation}{{2.1}{5}{Accounting Recap}{equation.2.1.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Journal Entries}{5}{subsection.2.1.2}\protected@file@percent } -\newlabel{payroll_accounting:id1}{{2.1.2}{5}{Journal Entries}{subsection.2.1.2}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {3}REVIEW QUESTIONS}{7}{chapter.3}\protected@file@percent } -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\newlabel{review_questions:review-questions}{{3}{7}{REVIEW QUESTIONS}{chapter.3}{}} -\newlabel{review_questions::doc}{{3}{7}{REVIEW QUESTIONS}{chapter.3}{}} -\@writefile{toc}{\contentsline {section}{\numberline {3.1}New Employee Information}{7}{section.3.1}\protected@file@percent } -\newlabel{review_questions:new-employee-information}{{3.1}{7}{New Employee Information}{section.3.1}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {4}OBNOARDING EMPLOYEE}{9}{chapter.4}\protected@file@percent } -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\newlabel{onboarding_employee:obnoarding-employee}{{4}{9}{OBNOARDING EMPLOYEE}{chapter.4}{}} -\newlabel{onboarding_employee::doc}{{4}{9}{OBNOARDING EMPLOYEE}{chapter.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.1}Employment Standards Requirements}{9}{section.4.1}\protected@file@percent } -\newlabel{onboarding_employee:employment-standards-requirements}{{4.1}{9}{Employment Standards Requirements}{section.4.1}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.2}Internal Forms}{9}{section.4.2}\protected@file@percent } -\newlabel{onboarding_employee:internal-forms}{{4.2}{9}{Internal Forms}{section.4.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Authorization for Hiring}{9}{subsection.4.2.1}\protected@file@percent } -\newlabel{onboarding_employee:authorization-for-hiring}{{4.2.1}{9}{Authorization for Hiring}{subsection.4.2.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Union Membership}{9}{subsection.4.2.2}\protected@file@percent } -\newlabel{onboarding_employee:union-membership}{{4.2.2}{9}{Union Membership}{subsection.4.2.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}Benefit Enrollment Forms}{10}{subsection.4.2.3}\protected@file@percent } -\newlabel{onboarding_employee:benefit-enrollment-forms}{{4.2.3}{10}{Benefit Enrollment Forms}{subsection.4.2.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.4}Confidentiality Agreement}{10}{subsection.4.2.4}\protected@file@percent } -\newlabel{onboarding_employee:confidentiality-agreement}{{4.2.4}{10}{Confidentiality Agreement}{subsection.4.2.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.3}Required Federal and Provincial/Territorial Forms}{10}{section.4.3}\protected@file@percent } -\newlabel{onboarding_employee:required-federal-and-provincial-territorial-forms}{{4.3}{10}{Required Federal and Provincial/Territorial Forms}{section.4.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.1}Tax Credits (TD1)}{10}{subsection.4.3.1}\protected@file@percent } -\newlabel{onboarding_employee:tax-credits-td1}{{4.3.1}{10}{Tax Credits (TD1)}{subsection.4.3.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.3.2}Tax Credits (TP\sphinxhyphen {}1015.3\sphinxhyphen {}V \textendash {} Québec)}{11}{subsection.4.3.2}\protected@file@percent } -\newlabel{onboarding_employee:tax-credits-tp-1015-3-v-quebec}{{4.3.2}{11}{Tax Credits (TP\sphinxhyphen {}1015.3\sphinxhyphen {}V \textendash {} Québec)}{subsection.4.3.2}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.4}Content Review Highlights}{11}{section.4.4}\protected@file@percent } -\newlabel{onboarding_employee:content-review-highlights}{{4.4}{11}{Content Review Highlights}{section.4.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.5}Review Questions (Sample)}{11}{section.4.5}\protected@file@percent } -\newlabel{onboarding_employee:review-questions-sample}{{4.5}{11}{Review Questions (Sample)}{section.4.5}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.6}Example Evaluations}{12}{section.4.6}\protected@file@percent } -\newlabel{onboarding_employee:example-evaluations}{{4.6}{12}{Example Evaluations}{section.4.6}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {5}RATES FOR 2025}{13}{chapter.5}\protected@file@percent } -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\newlabel{rates_2025:rates-for-2025}{{5}{13}{RATES FOR 2025}{chapter.5}{}} -\newlabel{rates_2025::doc}{{5}{13}{RATES FOR 2025}{chapter.5}{}} -\@writefile{toc}{\contentsline {section}{\numberline {5.1}CANADA / QUEBEC PENSION PLAN (CPP / QPP)}{13}{section.5.1}\protected@file@percent } -\newlabel{rates_2025:canada-quebec-pension-plan-cpp-qpp}{{5.1}{13}{CANADA / QUEBEC PENSION PLAN (CPP / QPP)}{section.5.1}{}} -\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces CANADA / QUEBEC PENSION PLAN (CPP / QPP)}}{13}{table.5.1}\protected@file@percent } -\newlabel{rates_2025:id1}{{1}{13}{CANADA / QUEBEC PENSION PLAN (CPP / QPP)}{table.5.1}{}} -\@writefile{toc}{\contentsline {section}{\numberline {5.2}CPP2 CONTRIBUTION RATES MAXIMUMS}{13}{section.5.2}\protected@file@percent } -\newlabel{rates_2025:cpp2-contribution-rates-maximums}{{5.2}{13}{CPP2 CONTRIBUTION RATES MAXIMUMS}{section.5.2}{}} -\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces CPP2 Contribution Rates Maximums}}{13}{table.5.2}\protected@file@percent } -\newlabel{rates_2025:id2}{{2}{13}{CPP2 CONTRIBUTION RATES MAXIMUMS}{table.5.2}{}} -\@writefile{toc}{\contentsline {section}{\numberline {5.3}References}{14}{section.5.3}\protected@file@percent } -\newlabel{rates_2025:references}{{5.3}{14}{References}{section.5.3}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {6}REFERENCES}{15}{chapter.6}\protected@file@percent } -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\newlabel{references:references}{{6}{15}{REFERENCES}{chapter.6}{}} -\newlabel{references::doc}{{6}{15}{REFERENCES}{chapter.6}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {7}Errors and Errata}{17}{chapter.7}\protected@file@percent } -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\newlabel{errata:errors-and-errata}{{7}{17}{Errors and Errata}{chapter.7}{}} -\newlabel{errata::doc}{{7}{17}{Errors and Errata}{chapter.7}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {8}Glossary}{19}{chapter.8}\protected@file@percent } -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\newlabel{index:glossary}{{8}{19}{Glossary}{chapter.8}{}} -\gdef \@abspage@last{23} diff --git a/docs/build/latex/Payroll-Administration_2025.fdb_latexmk b/docs/build/latex/Payroll-Administration_2025.fdb_latexmk deleted file mode 100644 index cf2ab4b..0000000 --- a/docs/build/latex/Payroll-Administration_2025.fdb_latexmk +++ /dev/null @@ -1,181 +0,0 @@ -# Fdb version 4 -["makeindex Payroll-Administration_2025.idx"] 1750628613.38878 "Payroll-Administration_2025.idx" "Payroll-Administration_2025.ind" "Payroll-Administration_2025" 1750634516.86327 0 - "Payroll-Administration_2025.idx" 1750634516.63261 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex" - (generated) - "Payroll-Administration_2025.ilg" - "Payroll-Administration_2025.ind" - (rewritten before read) -["pdflatex"] 1750634516.2756 "Payroll-Administration_2025.tex" "Payroll-Administration_2025.pdf" "Payroll-Administration_2025" 1750634516.86344 0 - "/etc/texmf/web2c/texmf.cnf" 1729307187.57985 475 c0e671620eb5563b2130f56340a5fde8 "" - "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm" 1246382020 924 9904cf1d39e9767e7a3622f2a125a565 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1246382020 928 2dc8d444221b7a635bb58038579b861a "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1246382020 908 2921f8a10601f252058503cc6570e581 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1246382020 940 75ac932a52f80982a9f8ea75d03a34cf "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1246382020 940 228d6584342e91276bf566bcf9716b83 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm" 1136768653 992 662f679a0b3d2d53c1b94050fdaa3f50 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1136768653 1524 4414a8315f39513458b80dfc63bff03a "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1136768653 1288 655e228510b4c2a1abe905c368440826 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr17.tfm" 1136768653 1292 296a67155bdbfc32aa9c636f21e91433 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm" 1136768653 1124 6c73e740cf17375f03eec0ee63599741 "" - "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xtt.tfm" 1136768653 1384 8943063000d26272532f74ca134dfecd "" - "/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb" 1248133631 36299 5f9df58c2139e7edcf37c8fca4bd384d "" - "/usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 "" - "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/t1xtt.pfb" 1136849748 26301 f08b3c26ea42c3177a262c2ac37d6a91 "" - "/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b "" - "/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" - "/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf" 1496785618 7008 9ff5fdcc865b01beca2b0fe4a46231d4 "" - "/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty" 1704662920 150008 7a05b0fdc0167c04e192003e780ab195 "" - "/usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-en.ini" 1661803479 3966 caeee5a9e5771d4446aa1ca9015ba1b2 "" - "/usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-english.tex" 1498512262 336 ed676b5e7dfd862bc78d634f6a973f37 "" - "/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def" 1704662920 6948 df63e25be1d2bc35bbad5a0141f41348 "" - "/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" - "/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" - "/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e "" - "/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1644112042 7237 bdd120a32c8fdb4b433cf9ca2e7cd98a "" - "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb "" - "/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed "" - "/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 "" - "/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 "" - "/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1701727651 17865 1a9bd36b4f98178fa551aca822290953 "" - "/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 "" - "/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b "" - "/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" - "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" - "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 "" - "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd" 1359763108 961 6518c6525a34feb5e8250ffa91731cff "" - "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd" 1359763108 961 d02606146ba5601b5645f987c92e6193 "" - "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1686341992 2222 499d61426192c39efd8f410ee1a52b9c "" - "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty" 1686341992 4173 82ac04dfb1256038fad068287fbb4fe6 "" - "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty" 1686341992 88371 d84032c0f422c3d1e282266c01bef237 "" - "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty" 1686341992 4474 b811654f4bf125f11506d13d13647efb "" - "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty" 1686341992 2444 0d0c1ee65478277e8015d65b86983da2 "" - "/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d "" - "/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" - "/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty" 1705352648 3137 080666101e6db698c7daf04c95abb706 "" - "/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1705352648 3045 273c666a54e60b9f730964f431a56c1b "" - "/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1705352648 2462 6bc53756156dbd71c1ad550d30a3b93f "" - "/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1705352648 5119 a04a8b68ab4f6ce800a41f7f8012a10e "" - "/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1705352648 5048 425739d70251273bf93e3d51f3c40048 "" - "/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty" 1705352648 1939 3225e20a81cec31e51c1e216d6385103 "" - "/usr/share/texlive/texmf-dist/tex/latex/base/report.cls" 1705352648 23203 f5d913095ece2233436f0e628619cd37 "" - "/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1705352648 8448 dbc0dbf4156c0bb9ba01a1c685d3bad0 "" - "/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1705352648 2894 fc64867f9d198785eabe71a88276a9cb "" - "/usr/share/texlive/texmf-dist/tex/latex/booktabs/booktabs.sty" 1579038678 6078 f1cb470c9199e7110a27851508ed7a5c "" - "/usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty" 1264379041 1311 063f8536a047a2d9cb1803321f793f37 "" - "/usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty" 1612650595 3574 ddc11a0ae1c579d351ed20d2319ad422 "" - "/usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap" 1177721415 1207 4e0d96772f0d338847cbfb4eca683c81 "" - "/usr/share/texlive/texmf-dist/tex/latex/cmap/t1.cmap" 1215522782 1938 beaa4a8467aa0074076e0e19f2992e29 "" - "/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty" 1659300143 12441 3b2a708337608012a865c7d9b7f05d28 "" - "/usr/share/texlive/texmf-dist/tex/latex/ellipse/ellipse.sty" 1449445679 9937 7eb94c47265a0108f7a319db3c3b58b0 "" - "/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce "" - "/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1601931149 46845 3b58f70c6e861a13d927bff09d35ecbc "" - "/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1668028059 18450 88279bf67c81e69f8e3f1c1bad1a26c5 "" - "/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty" 1705955721 43712 c3d93734f3bc56e03c21b3dc69268d3c "" - "/usr/share/texlive/texmf-dist/tex/latex/float/float.sty" 1137110151 6749 16d2656a1984957e674b149555f1ea1d "" - "/usr/share/texlive/texmf-dist/tex/latex/fncychap/fncychap.sty" 1292029257 19488 fdd52eb173b3197d748e1ec25acb042f "" - "/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty" 1338588508 22449 7ec15c16d0d66790f28e90343c5434a3 "" - "/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a "" - "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" - "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e "" - "/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1663965824 19448 1e988b341dda20961a6b931bcde55519 "" - "/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty" 1654720880 7233 e46ce9241d2b2ca2a78155475fdd557a "" - "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1654720880 18387 8f900a490197ebaf93c02ae9476d4b09 "" - "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1654720880 8010 a8d949cbdbc5c983593827c9eec252e1 "" - "/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty" 1654720880 2671 7e67d78d9b88c845599a85b2d41f2e39 "" - "/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx" 1667332637 2885 9c645d672ae17285bba324998918efd8 "" - "/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1654720880 4023 293ea1c16429fc0c4cf605f4da1791a9 "" - "/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 "" - "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1705871765 48154 e46bf8adeb936500541441171d61726d "" - "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1705871765 220920 fd3cbb5f1a2bc9b8f451b8b7d8171264 "" - "/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1705871765 11026 182c63f139a71afd30a28e5f1ed2cd1c "" - "/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1705871765 14249 e67cb186717b7ab18d14a4875e7e98b5 "" - "/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def" 1705871765 117112 05831178ece2cad4d9629dcf65099b11 "" - "/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e "" - "/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 "" - "/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1704491087 30006 57b07afb710ee2f649c65cfbafda39c1 "" - "/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af "" - "/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 "" - "/usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap" 1215649417 1866 c1c12138091b4a8edd4a24a940e6f792 "" - "/usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap" 1215649417 2370 3b1f71b14b974f07cef532db09ae9ee0 "" - "/usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap" 1215649417 3001 252c8ca42b06a22cb1a11c0e47790c6e "" - "/usr/share/texlive/texmf-dist/tex/latex/needspace/needspace.sty" 1364856750 852 0e34dbb72efc69fa07602405ad95585e "" - "/usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty" 1575152444 3822 b53c749cd81352b4679a35b0dafefb95 "" - "/usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty" 1615762720 4288 94714aa7f535440f33181fec52a31963 "" - "/usr/share/texlive/texmf-dist/tex/latex/pict2e/p2e-pdftex.def" 1454715303 1168 efb94e82cc1584d4f62679f3487b5339 "" - "/usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.cfg" 1454715303 1920 2185073db458618f4a8a794158cf3681 "" - "/usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.sty" 1601586370 30933 ccdcd551eb516817cc8f41862254e6e7 "" - "/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" - "/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1657483315 9714 ba3194bd52c8499b3f1e3eb91d409670 "" - "/usr/share/texlive/texmf-dist/tex/latex/tabulary/tabulary.sty" 1403566480 13791 8c83287d79183c3bf58fd70871e8a70b "" - "/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty" 1698436711 48766 0b93839be28e9744a24c45075c75b2e2 "" - "/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty" 1698869629 12667 e4b5eb11e4b7239e6c8a52bbe074a6c6 "" - "/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty" 1698955022 12935 94a3291359b5f73ff1b19345a6983105 "" - "/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty" 1686341992 32515 51caec75eda9c8890135f12f1a4eddc3 "" - "/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd" 1137111002 1324 7b6c95370a64cd8c7620cbefefb53dba "" - "/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty" 1334873510 1048 517e01cde97c1c0baf72e69d43aa5a2e "" - "/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 "" - "/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty" 1238697683 10894 d359a13923460b2a73d4312d613554c8 "" - "/usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty" 1137111090 26220 3701aebf80ccdef248c0c20dd062fea9 "" - "/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1700082560 55487 80a65caedd3722f4c20a14a69e785d8f "" - "/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1707919699 40399 f2c302f7d2af602abb742093540a5834 "" - "/usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ec.enc" 1529098226 2457 aaabbccba4df2a7f7371410ee4e075a3 "" - "/usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ts1.enc" 1529098226 3124 3813fd4c981d99822890a2861b0d274c "" - "/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm" 1480098718 11796 b7bc3db132e822d2872ea50ba8fa7cc0 "" - "/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvbi.tfm" 1480098718 12396 e65c2800bb94ee6ae6e4fdf18f68fa2e "" - "/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvr.tfm" 1480098718 12084 374c5b7e91efcc10472ab8e61f66d36b "" - "/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmb.tfm" 1480098718 11484 431d8013ae6931f9326b9a0f492d2a5e "" - "/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm" 1480098718 11504 0b76b46eb90907e684139293e03c466a "" - "/usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmri.tfm" 1480098718 11356 da1519f442d8a49b81c86cbaf25ef79f "" - "/usr/share/texmf/fonts/tfm/public/tex-gyre/ts1-qtmr.tfm" 1480098718 1600 20cdf11dab97d5d39e847571f9314407 "" - "/usr/share/texmf/fonts/type1/public/tex-gyre/qhvb.pfb" 1480098745 112164 176018dd42fcc60204173fa10e357da5 "" - "/usr/share/texmf/fonts/type1/public/tex-gyre/qhvbi.pfb" 1480098745 104926 77ce2f0433ac7fd33dbe9968d127e4fb "" - "/usr/share/texmf/fonts/type1/public/tex-gyre/qhvr.pfb" 1480098745 110045 c159829aa6d7d99f1777bb40c90b8157 "" - "/usr/share/texmf/fonts/type1/public/tex-gyre/qtmb.pfb" 1480098745 131776 4be3e220f990dc716f91bb7965c09237 "" - "/usr/share/texmf/fonts/type1/public/tex-gyre/qtmr.pfb" 1480098745 133302 8dca243a80ecf4cfe00077d4bd995bd7 "" - "/usr/share/texmf/fonts/type1/public/tex-gyre/qtmri.pfb" 1480098745 129669 aaf12ebd0b807d452087fc34bde5bd7d "" - "/usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd" 1480098840 2378 01e898189bf06467f2f6fe33decbff09 "" - "/usr/share/texmf/tex/latex/tex-gyre/t1qtm.fd" 1480098840 1638 7cc855d1dc7c12c1858f209a4ef88c4a "" - "/usr/share/texmf/tex/latex/tex-gyre/tgheros.sty" 1480098840 2130 2b41e80713f78d339e74c19d96fe70a1 "" - "/usr/share/texmf/tex/latex/tex-gyre/tgtermes.sty" 1480098840 2211 af9b7d12507105a58a3e8e926996b827 "" - "/usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd" 1480098840 1160 de7b1cf70edab73c9f1704df2a9fdbbd "" - "/usr/share/texmf/web2c/texmf.cnf" 1707919699 40399 f2c302f7d2af602abb742093540a5834 "" - "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1729307339.56668 164740 5f02460f8e29b549a9ea60117f5f46e4 "" - "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1729307374 6831204 5735eed681e2db0697903be4f74d0da4 "" - "Payroll-Administration_2025.aux" 1750634516.77961 8278 be359c680aa6564e80b15ef901de74f9 "pdflatex" - "Payroll-Administration_2025.ind" 1750628613.40422 0 d41d8cd98f00b204e9800998ecf8427e "makeindex Payroll-Administration_2025.idx" - "Payroll-Administration_2025.out" 1750634516.78061 4643 20caf9fb284688e15036cd0d90091bb8 "pdflatex" - "Payroll-Administration_2025.tex" 1750634515.3846 18902 081d24fb1f83b0d1c2a03ad9d4a9e4f5 "" - "Payroll-Administration_2025.toc" 1750634516.78061 2411 a5f24d648cff4db02ef505254ee42346 "pdflatex" - "sphinx.sty" 1750459726.26999 54203 ee7fe875437470f5328ee20661bb9f1d "" - "sphinxhighlight.sty" 1750634515.3426 7553 83fb52292c17957d9f4aadcb28c57a87 "" - "sphinxlatexadmonitions.sty" 1750459726.26999 19111 5e67a0f91439018bceb7cadf319345e6 "" - "sphinxlatexcontainers.sty" 1750459726.26999 900 d61f923db071a7b54d3cee8a1e6935d3 "" - "sphinxlatexgraphics.sty" 1750459726.26999 4918 c9266041d02bc615d54b890e96e3acd3 "" - "sphinxlatexindbibtoc.sty" 1750459726.27099 2065 1f1f215c304208004fc0522855b3b127 "" - "sphinxlatexlists.sty" 1750459726.27099 5138 98bcb41aa6ecb6cc5c1a6a7c936cb8a8 "" - "sphinxlatexliterals.sty" 1750459726.27099 45860 fa61a279a7f157481590da017e0c6962 "" - "sphinxlatexnumfig.sty" 1750459726.27099 5419 aeaffe9a9d596e3663201bb873b06758 "" - "sphinxlatexobjects.sty" 1750459726.27099 15707 bc327ee938baefa281deb478d03161c7 "" - "sphinxlatexshadowbox.sty" 1750459726.27099 8437 cec78b6bb66e95d214da9fd42b1af598 "" - "sphinxlatexstyleheadings.sty" 1750459726.27199 3742 2a2cc6aa695b2f8c98eb9ee104e5fc6f "" - "sphinxlatexstylepage.sty" 1750459726.27199 2671 e63daf3b9f0f8a387a8b4ba09c515982 "" - "sphinxlatexstyletext.sty" 1750459726.27199 6759 9e932c65374cfb62686485d331bc975c "" - "sphinxlatextables.sty" 1750459726.27199 57643 7f1013c2fa11942370d867527bdda568 "" - "sphinxmanual.cls" 1750459726.27199 4241 7b0d7a37df7b5715fb0dbd585c52ecdb "" - "sphinxmessages.sty" 1750634515.3876 745 3f5fcd6cdd7964ed608767954a8ced6f "" - "sphinxoptionsgeometry.sty" 1750459726.27199 2060 6c27b3eba37bde592ae8908ab2c1ac0f "" - "sphinxoptionshyperref.sty" 1750459726.27199 1093 e468489bae7631a7f387b4b0f7bc15d4 "" - "sphinxpackageboxes.sty" 1750459726.27299 36106 1be2053eb1cb9b083b3a75e3657bcb24 "" - "sphinxpackagefootnote.sty" 1750459726.27299 15330 2fb656b6ce8cd1f6aba2d1c508fb51e5 "" - (generated) - "Payroll-Administration_2025.aux" - "Payroll-Administration_2025.idx" - "Payroll-Administration_2025.log" - "Payroll-Administration_2025.out" - "Payroll-Administration_2025.pdf" - "Payroll-Administration_2025.toc" - (rewritten before read) diff --git a/docs/build/latex/Payroll-Administration_2025.fls b/docs/build/latex/Payroll-Administration_2025.fls deleted file mode 100644 index 2b42459..0000000 --- a/docs/build/latex/Payroll-Administration_2025.fls +++ /dev/null @@ -1,350 +0,0 @@ -PWD /home/alex/MyProjects/CanadianPayroll/docs/build/latex -INPUT /etc/texmf/web2c/texmf.cnf -INPUT /usr/share/texmf/web2c/texmf.cnf -INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf -INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt -INPUT Payroll-Administration_2025.tex -OUTPUT Payroll-Administration_2025.log -INPUT ./sphinxmanual.cls -INPUT sphinxmanual.cls -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/report.cls -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/report.cls -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty -INPUT ./sphinx.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty -INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm -INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/t1.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/t1.cmap -OUTPUT Payroll-Administration_2025.pdf -INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/t1.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-english.tex -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-english.tex -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-english.tex -INPUT /usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-en.ini -INPUT /usr/share/texmf/tex/latex/tex-gyre/tgtermes.sty -INPUT /usr/share/texmf/tex/latex/tex-gyre/tgtermes.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty -INPUT /usr/share/texmf/tex/latex/tex-gyre/tgheros.sty -INPUT /usr/share/texmf/tex/latex/tex-gyre/tgheros.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/fncychap/fncychap.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/fncychap/fncychap.sty -INPUT sphinx.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx -INPUT ./sphinxoptionshyperref.sty -INPUT sphinxoptionshyperref.sty -INPUT ./sphinxoptionsgeometry.sty -INPUT sphinxoptionsgeometry.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/float/float.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/float/float.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg -INPUT ./sphinxlatexgraphics.sty -INPUT sphinxlatexgraphics.sty -INPUT ./sphinxpackageboxes.sty -INPUT sphinxpackageboxes.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/pict2e/p2e-pdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/pict2e/p2e-pdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/pict2e/p2e-pdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/ellipse/ellipse.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/ellipse/ellipse.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/ellipse/ellipse.sty -INPUT ./sphinxlatexadmonitions.sty -INPUT sphinxlatexadmonitions.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty -INPUT ./sphinxpackagefootnote.sty -INPUT sphinxpackagefootnote.sty -INPUT ./sphinxlatexliterals.sty -INPUT sphinxlatexliterals.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/needspace/needspace.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/needspace/needspace.sty -INPUT ./sphinxlatexshadowbox.sty -INPUT sphinxlatexshadowbox.sty -INPUT ./sphinxlatexcontainers.sty -INPUT sphinxlatexcontainers.sty -INPUT ./sphinxhighlight.sty -INPUT sphinxhighlight.sty -INPUT ./sphinxlatextables.sty -INPUT sphinxlatextables.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/tabulary/tabulary.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/tabulary/tabulary.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/booktabs/booktabs.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/booktabs/booktabs.sty -INPUT ./sphinxlatexnumfig.sty -INPUT sphinxlatexnumfig.sty -INPUT ./sphinxlatexlists.sty -INPUT sphinxlatexlists.sty -INPUT ./sphinxlatexindbibtoc.sty -INPUT sphinxlatexindbibtoc.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty -INPUT ./sphinxlatexstylepage.sty -INPUT sphinxlatexstylepage.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty -INPUT ./sphinxlatexstyleheadings.sty -INPUT sphinxlatexstyleheadings.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty -INPUT ./sphinxlatexstyletext.sty -INPUT sphinxlatexstyletext.sty -INPUT ./sphinxlatexobjects.sty -INPUT sphinxlatexobjects.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def -INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty -INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty -INPUT ./sphinxmessages.sty -INPUT sphinxmessages.sty -OUTPUT Payroll-Administration_2025.idx -INPUT /usr/share/texmf/tex/latex/tex-gyre/t1qtm.fd -INPUT /usr/share/texmf/tex/latex/tex-gyre/t1qtm.fd -INPUT /usr/share/texmf/tex/latex/tex-gyre/t1qtm.fd -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm -INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT ./Payroll-Administration_2025.aux -INPUT ./Payroll-Administration_2025.aux -INPUT Payroll-Administration_2025.aux -OUTPUT Payroll-Administration_2025.aux -INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii -INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii -INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii -INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty -INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg -INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg -INPUT ./Payroll-Administration_2025.out -INPUT ./Payroll-Administration_2025.out -INPUT Payroll-Administration_2025.out -INPUT Payroll-Administration_2025.out -INPUT ./Payroll-Administration_2025.out -INPUT ./Payroll-Administration_2025.out -OUTPUT Payroll-Administration_2025.out -INPUT /usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd -INPUT /usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd -INPUT /usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvr.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvbi.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvbi.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr17.tfm -INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/cmap/ot1.cmap -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm -INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oml.cmap -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm -INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/oms.cmap -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmsy10.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm -INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap -INPUT /usr/share/texlive/texmf-dist/tex/latex/mmap/omx.cmap -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd -INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm -INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map -INPUT /usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ec.enc -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvr.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvb.tfm -INPUT ./Payroll-Administration_2025.toc -INPUT ./Payroll-Administration_2025.toc -INPUT Payroll-Administration_2025.toc -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmb.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm -OUTPUT Payroll-Administration_2025.toc -INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd -INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd -INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xtt.tfm -INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xtt.tfm -INPUT /usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd -INPUT /usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd -INPUT /usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ts1-qtmr.tfm -INPUT /usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ts1.enc -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qhvr.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmr.tfm -INPUT /usr/share/texmf/fonts/tfm/public/tex-gyre/ec-qtmri.tfm -INPUT ./Payroll-Administration_2025.ind -INPUT ./Payroll-Administration_2025.ind -INPUT Payroll-Administration_2025.ind -INPUT Payroll-Administration_2025.aux -INPUT ./Payroll-Administration_2025.out -INPUT ./Payroll-Administration_2025.out -INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb -INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb -INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qhvb.pfb -INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qhvbi.pfb -INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qhvr.pfb -INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qtmb.pfb -INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qtmr.pfb -INPUT /usr/share/texmf/fonts/type1/public/tex-gyre/qtmri.pfb -INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/t1xtt.pfb diff --git a/docs/build/latex/Payroll-Administration_2025.idx b/docs/build/latex/Payroll-Administration_2025.idx deleted file mode 100644 index e69de29..0000000 diff --git a/docs/build/latex/Payroll-Administration_2025.ilg b/docs/build/latex/Payroll-Administration_2025.ilg deleted file mode 100644 index 43df9eb..0000000 --- a/docs/build/latex/Payroll-Administration_2025.ilg +++ /dev/null @@ -1,5 +0,0 @@ -This is makeindex, version 2.17 [TeX Live 2023] (kpathsea + Thai support). -Scanning style file ./python.ist.......done (7 attributes redefined, 0 ignored). -Scanning input file Payroll-Administration_2025.idx...done (0 entries accepted, 0 rejected). -Nothing written in Payroll-Administration_2025.ind. -Transcript written in Payroll-Administration_2025.ilg. diff --git a/docs/build/latex/Payroll-Administration_2025.ind b/docs/build/latex/Payroll-Administration_2025.ind deleted file mode 100644 index e69de29..0000000 diff --git a/docs/build/latex/Payroll-Administration_2025.log b/docs/build/latex/Payroll-Administration_2025.log deleted file mode 100644 index 4dce198..0000000 --- a/docs/build/latex/Payroll-Administration_2025.log +++ /dev/null @@ -1,929 +0,0 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Debian) (preloaded format=pdflatex 2024.10.18) 22 JUN 2025 19:21 -entering extended mode - restricted \write18 enabled. - %&-line parsing enabled. -**Payroll-Administration_2025.tex -(./Payroll-Administration_2025.tex -LaTeX2e <2023-11-01> patch level 1 -L3 programming layer <2024-01-22> -(./sphinxmanual.cls -Document Class: sphinxmanual 2019/12/01 v2.3.0 Document class (Sphinx manual) -(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls -Document Class: report 2023/05/17 v1.4n Standard LaTeX document class -(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo -File: size10.clo 2023/05/17 v1.4n Standard LaTeX file (size option) -) -\c@part=\count187 -\c@chapter=\count188 -\c@section=\count189 -\c@subsection=\count190 -\c@subsubsection=\count191 -\c@paragraph=\count192 -\c@subparagraph=\count193 -\c@figure=\count194 -\c@table=\count195 -\abovecaptionskip=\skip48 -\belowcaptionskip=\skip49 -\bibindent=\dimen140 -) -LaTeX Info: Redefining \and on input line 35. -) -(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty -Package: inputenc 2021/02/14 v1.3d Input encoding file -\inpenc@prehook=\toks17 -\inpenc@posthook=\toks18 -) - defining Unicode char U+00A0 (decimal 160) - defining Unicode char U+2500 (decimal 9472) - defining Unicode char U+2502 (decimal 9474) - defining Unicode char U+2514 (decimal 9492) - defining Unicode char U+251C (decimal 9500) - defining Unicode char U+2572 (decimal 9586) - -(/usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty -Package: cmap 2021/02/06 v1.0j CMap support: searchable PDF -) -(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty -Package: fontenc 2021/04/29 v2.0v Standard LaTeX package -<>) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty -Package: amsmath 2023/05/13 v2.17o AMS math features -\@mathmargin=\skip50 - -For additional information on amsmath, use the `?' option. -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty -Package: amstext 2021/08/26 v2.01 AMS text - -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty -File: amsgen.sty 1999/11/30 v2.0 generic functions -\@emptytoks=\toks19 -\ex@=\dimen141 -)) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty -Package: amsbsy 1999/11/29 v1.2d Bold Symbols -\pmbraise@=\dimen142 -) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty -Package: amsopn 2022/04/08 v2.04 operator names -) -\inf@bad=\count196 -LaTeX Info: Redefining \frac on input line 234. -\uproot@=\count197 -\leftroot@=\count198 -LaTeX Info: Redefining \overline on input line 399. -LaTeX Info: Redefining \colon on input line 410. -\classnum@=\count199 -\DOTSCASE@=\count266 -LaTeX Info: Redefining \ldots on input line 496. -LaTeX Info: Redefining \dots on input line 499. -LaTeX Info: Redefining \cdots on input line 620. -\Mathstrutbox@=\box51 -\strutbox@=\box52 -LaTeX Info: Redefining \big on input line 722. -LaTeX Info: Redefining \Big on input line 723. -LaTeX Info: Redefining \bigg on input line 724. -LaTeX Info: Redefining \Bigg on input line 725. -\big@size=\dimen143 -LaTeX Font Info: Redeclaring font encoding OML on input line 743. -LaTeX Font Info: Redeclaring font encoding OMS on input line 744. -\macc@depth=\count267 -LaTeX Info: Redefining \bmod on input line 905. -LaTeX Info: Redefining \pmod on input line 910. -LaTeX Info: Redefining \smash on input line 940. -LaTeX Info: Redefining \relbar on input line 970. -LaTeX Info: Redefining \Relbar on input line 971. -\c@MaxMatrixCols=\count268 -\dotsspace@=\muskip16 -\c@parentequation=\count269 -\dspbrk@lvl=\count270 -\tag@help=\toks20 -\row@=\count271 -\column@=\count272 -\maxfields@=\count273 -\andhelp@=\toks21 -\eqnshift@=\dimen144 -\alignsep@=\dimen145 -\tagshift@=\dimen146 -\tagwidth@=\dimen147 -\totwidth@=\dimen148 -\lineht@=\dimen149 -\@envbody=\toks22 -\multlinegap=\skip51 -\multlinetaggap=\skip52 -\mathdisplay@stack=\toks23 -LaTeX Info: Redefining \[ on input line 2953. -LaTeX Info: Redefining \] on input line 2954. -) -(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty -Package: amssymb 2013/01/14 v3.01 AMS font symbols - -(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty -Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support -\symAMSa=\mathgroup4 -\symAMSb=\mathgroup5 -LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. -LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' -(Font) U/euf/m/n --> U/euf/b/n on input line 106. -)) -(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty -Package: babel 2024/01/07 v24.1 The Babel package -\babel@savecnt=\count274 -\U@D=\dimen150 -\l@unhyphenated=\language9 - -(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def) -\bbl@readstream=\read2 -\bbl@dirlevel=\count275 - -(/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf -Language: english 2017/06/06 v3.3r English support from the babel system -Package babel Info: Hyphen rules for 'british' set to \l@english -(babel) (\language0). Reported on input line 82. -Package babel Info: Hyphen rules for 'UKenglish' set to \l@english -(babel) (\language0). Reported on input line 83. -Package babel Info: Hyphen rules for 'canadian' set to \l@english -(babel) (\language0). Reported on input line 102. -Package babel Info: Hyphen rules for 'australian' set to \l@english -(babel) (\language0). Reported on input line 105. -Package babel Info: Hyphen rules for 'newzealand' set to \l@english -(babel) (\language0). Reported on input line 108. -)) -(/usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-english.tex -Package babel Info: Importing font and identification data for english -(babel) from babel-en.ini. Reported on input line 11. -) -(/usr/share/texmf/tex/latex/tex-gyre/tgtermes.sty -Package: tgtermes 2009/09/27 v1.2 TeX Gyre Termes as default roman family - -(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty -Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty -Package: keyval 2022/05/29 v1.15 key=value parser (DPC) -\KV@toks@=\toks24 -) -(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty -Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO) -) -(/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty -Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) -))) -(/usr/share/texmf/tex/latex/tex-gyre/tgheros.sty -Package: tgheros 2009/09/27 v1.2 TeX Gyre Heros as default sans serif family -) -(/usr/share/texlive/texmf-dist/tex/latex/fncychap/fncychap.sty -Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters) -\RW=\skip53 -\mylen=\skip54 -\myhi=\skip55 -\px=\skip56 -\py=\skip57 -\pyy=\skip58 -\pxx=\skip59 -\c@AlphaCnt=\count276 -\c@AlphaDecCnt=\count277 -) (./sphinx.sty -Package: sphinx 2024/11/23 v8.2.0 Sphinx LaTeX package (sphinx-doc) - -(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty -Package: xcolor 2023/11/15 v3.01 LaTeX color extensions (UK) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg -File: color.cfg 2016/01/02 v1.6 sample color configuration -) -Package xcolor Info: Driver file: pdftex.def on input line 274. - -(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def -File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex -) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx) -Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1350. -Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1354. -Package xcolor Info: Model `RGB' extended on input line 1366. -Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1368. -Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1369. -Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1370. -Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1371. -Package xcolor Info: Model `Gray' substituted by `gray' on input line 1372. -Package xcolor Info: Model `wave' substituted by `hsb' on input line 1373. -) -(./sphinxoptionshyperref.sty -Package: sphinxoptionshyperref 2021/01/27 hyperref -) (./sphinxoptionsgeometry.sty -Package: sphinxoptionsgeometry 2021/01/27 geometry -) -(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty -Package: textcomp 2020/02/02 v2.0n Standard LaTeX package -) -(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty -Package: float 2001/11/08 v1.3d Float enhancements (AL) -\c@float@type=\count278 -\float@exts=\toks25 -\float@box=\box53 -\@float@everytoks=\toks26 -\@floatcapt=\box54 -) -(/usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty -\wrapoverhang=\dimen151 -\WF@size=\dimen152 -\c@WF@wrappedlines=\count279 -\WF@box=\box55 -\WF@everypar=\toks27 -Package: wrapfig 2003/01/31 v 3.6 -) -(/usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty -Package: capt-of 2009/12/29 v0.2 standard captions outside of floats -) -(/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty -Package: multicol 2023/03/30 v1.9f multicolumn formatting (FMi) -\c@tracingmulticols=\count280 -\mult@box=\box56 -\multicol@leftmargin=\dimen153 -\c@unbalance=\count281 -\c@collectmore=\count282 -\doublecol@number=\count283 -\multicoltolerance=\count284 -\multicolpretolerance=\count285 -\full@width=\dimen154 -\page@free=\dimen155 -\premulticols=\dimen156 -\postmulticols=\dimen157 -\multicolsep=\skip60 -\multicolbaselineskip=\skip61 -\partial@page=\box57 -\last@line=\box58 -\mc@boxedresult=\box59 -\maxbalancingoverflow=\dimen158 -\mult@rightbox=\box60 -\mult@grightbox=\box61 -\mult@firstbox=\box62 -\mult@gfirstbox=\box63 -\@tempa=\box64 -\@tempa=\box65 -\@tempa=\box66 -\@tempa=\box67 -\@tempa=\box68 -\@tempa=\box69 -\@tempa=\box70 -\@tempa=\box71 -\@tempa=\box72 -\@tempa=\box73 -\@tempa=\box74 -\@tempa=\box75 -\@tempa=\box76 -\@tempa=\box77 -\@tempa=\box78 -\@tempa=\box79 -\@tempa=\box80 -\@tempa=\box81 -\@tempa=\box82 -\@tempa=\box83 -\@tempa=\box84 -\@tempa=\box85 -\@tempa=\box86 -\@tempa=\box87 -\@tempa=\box88 -\@tempa=\box89 -\@tempa=\box90 -\@tempa=\box91 -\@tempa=\box92 -\@tempa=\box93 -\@tempa=\box94 -\@tempa=\box95 -\@tempa=\box96 -\@tempa=\box97 -\@tempa=\box98 -\@tempa=\box99 -\c@minrows=\count286 -\c@columnbadness=\count287 -\c@finalcolumnbadness=\count288 -\last@try=\dimen159 -\multicolovershoot=\dimen160 -\multicolundershoot=\dimen161 -\mult@nat@firstbox=\box100 -\colbreak@box=\box101 -\mc@col@check@num=\count289 -) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty -Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty -Package: trig 2021/08/11 v1.11 sin cos tan (DPC) -) -(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg -File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration -) -Package graphics Info: Driver file: pdftex.def on input line 107. -) -\Gin@req@height=\dimen162 -\Gin@req@width=\dimen163 -) -(./sphinxlatexgraphics.sty -Package: sphinxlatexgraphics 2024/08/13 v8.1.0 graphics -\spx@image@maxheight=\dimen164 -\spx@image@box=\box102 -) (./sphinxpackageboxes.sty -Package: sphinxpackageboxes 2024/07/01 v7.4.0 advanced colored boxes - -(/usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.sty -Package: pict2e 2020/09/30 v0.4b Improved picture commands (HjG,RN,JT) - -(/usr/share/texlive/texmf-dist/tex/latex/pict2e/pict2e.cfg -File: pict2e.cfg 2016/02/05 v0.1u pict2e configuration for teTeX/TeXLive -) -Package pict2e Info: Driver file: pdftex.def on input line 112. -Package pict2e Info: Driver file for pict2e: p2e-pdftex.def on input line 114. - -(/usr/share/texlive/texmf-dist/tex/latex/pict2e/p2e-pdftex.def -File: p2e-pdftex.def 2016/02/05 v0.1u Driver-dependant file (RN,HjG,JT) -) -\pIIe@GRAPH=\toks28 -\@arclen=\dimen165 -\@arcrad=\dimen166 -\pIIe@tempdima=\dimen167 -\pIIe@tempdimb=\dimen168 -\pIIe@tempdimc=\dimen169 -\pIIe@tempdimd=\dimen170 -\pIIe@tempdime=\dimen171 -\pIIe@tempdimf=\dimen172 -) -(/usr/share/texlive/texmf-dist/tex/latex/ellipse/ellipse.sty -Package: ellipse 2004/11/05 v1.0 .dtx ellipse file -) -\@tempdimd=\dimen173 -\spx@tempboxa=\box103 -\spx@tempboxb=\box104 -\spx@boxes@border@top=\dimen174 -\spx@boxes@border@right=\dimen175 -\spx@boxes@border@bottom=\dimen176 -\spx@boxes@border@left=\dimen177 -\spx@boxes@padding@top=\dimen178 -\spx@boxes@padding@right=\dimen179 -\spx@boxes@padding@bottom=\dimen180 -\spx@boxes@padding@left=\dimen181 -\spx@boxes@shadow@xoffset=\dimen182 -\spx@boxes@shadow@yoffset=\dimen183 -\spx@boxes@radius@topleft@x=\dimen184 -\spx@boxes@radius@topright@x=\dimen185 -\spx@boxes@radius@bottomright@x=\dimen186 -\spx@boxes@radius@bottomleft@x=\dimen187 -\spx@boxes@radius@topleft@y=\dimen188 -\spx@boxes@radius@topright@y=\dimen189 -\spx@boxes@radius@bottomright@y=\dimen190 -\spx@boxes@radius@bottomleft@y=\dimen191 -) -(./sphinxlatexadmonitions.sty -Package: sphinxlatexadmonitions 2024/10/11 v8.1.1 admonitions - -(/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty -Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks -\OuterFrameSep=\skip62 -\fb@frw=\dimen192 -\fb@frh=\dimen193 -\FrameRule=\dimen194 -\FrameSep=\dimen195 -) -(./sphinxpackagefootnote.sty -Package: sphinxpackagefootnote 2024/05/17 v7.3.x Sphinx custom footnotehyper pa -ckage (Sphinx team) -\FNH@notes=\box105 -\FNH@toks=\toks29 -\FNH@width=\dimen196 -\c@sphinxfootnotemark=\count290 -) -\spx@notice@border=\dimen197 -\c@sphinxtodo=\count291 -) (./sphinxlatexliterals.sty -Package: sphinxlatexliterals 2024/07/01 v7.4.0 code-blocks and parsed literals - -(/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty -Package: fancyvrb 2024/01/20 4.5c verbatim text (tvz,hv) -\FV@CodeLineNo=\count292 -\FV@InFile=\read3 -\FV@TabBox=\box106 -\c@FancyVerbLine=\count293 -\FV@StepNumber=\count294 -\FV@OutFile=\write3 -) -(/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty -Package: alltt 2021/01/29 v2.0g defines alltt environment -) -(/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty -Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba -tim -) -(/usr/share/texlive/texmf-dist/tex/latex/needspace/needspace.sty -Package: needspace 2010/09/12 v1.3d reserve vertical space -) -\sphinxcontinuationbox=\box107 -\sphinxvisiblespacebox=\box108 -\sphinxVerbatim@TitleBox=\box109 -\sphinxVerbatim@ContentsBox=\box110 -) -(./sphinxlatexshadowbox.sty -Package: sphinxlatexshadowbox 2024/07/28 v8.1.0 sphinxShadowBox -) (./sphinxlatexcontainers.sty -Package: sphinxlatexcontainers 2021/05/03 containers -) -(./sphinxhighlight.sty -Package: sphinxhighlight 2022/06/30 stylesheet for highlighting with pygments -) (./sphinxlatextables.sty -Package: sphinxlatextables 2024/07/01 v7.4.0 tables - -(/usr/share/texlive/texmf-dist/tex/latex/tabulary/tabulary.sty -Package: tabulary 2014/06/11 v0.10 tabulary package (DPC) - -(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty -Package: array 2023/10/16 v2.5g Tabular extension package (FMi) -\col@sep=\dimen198 -\ar@mcellbox=\box111 -\extrarowheight=\dimen199 -\NC@list=\toks30 -\extratabsurround=\skip63 -\backup@length=\skip64 -\ar@cellbox=\box112 -) -\TY@count=\count295 -\TY@linewidth=\dimen256 -\tymin=\dimen257 -\tymax=\dimen258 -\TY@tablewidth=\dimen259 -) -(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty -Package: longtable 2023-11-01 v4.19 Multi-page Table package (DPC) -\LTleft=\skip65 -\LTright=\skip66 -\LTpre=\skip67 -\LTpost=\skip68 -\LTchunksize=\count296 -\LTcapwidth=\dimen260 -\LT@head=\box113 -\LT@firsthead=\box114 -\LT@foot=\box115 -\LT@lastfoot=\box116 -\LT@gbox=\box117 -\LT@cols=\count297 -\LT@rows=\count298 -\c@LT@tables=\count299 -\c@LT@chunks=\count300 -\LT@p@ftn=\toks31 -) -(/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty -Package: varwidth 2009/03/30 ver 0.92; Variable-width minipages -\@vwid@box=\box118 -\sift@deathcycles=\count301 -\@vwid@loff=\dimen261 -\@vwid@roff=\dimen262 -) -\sphinx@TY@tablewidth=\dimen263 - -(/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty -Package: colortbl 2022/06/20 v1.0f Color table columns (DPC) -\everycr=\toks32 -\minrowclearance=\skip69 -\rownum=\count302 -) -(/usr/share/texlive/texmf-dist/tex/latex/booktabs/booktabs.sty -Package: booktabs 2020/01/12 v1.61803398 Publication quality tables -\heavyrulewidth=\dimen264 -\lightrulewidth=\dimen265 -\cmidrulewidth=\dimen266 -\belowrulesep=\dimen267 -\belowbottomsep=\dimen268 -\aboverulesep=\dimen269 -\abovetopsep=\dimen270 -\cmidrulesep=\dimen271 -\cmidrulekern=\dimen272 -\defaultaddspace=\dimen273 -\@cmidla=\count303 -\@cmidlb=\count304 -\@aboverulesep=\dimen274 -\@belowrulesep=\dimen275 -\@thisruleclass=\count305 -\@lastruleclass=\count306 -\@thisrulewidth=\dimen276 -)) -(./sphinxlatexnumfig.sty -Package: sphinxlatexnumfig 2024/07/31 v8.1.0 numbering -) (./sphinxlatexlists.sty -Package: sphinxlatexlists 2021/12/20 lists -\spx@lineitemlabel=\toks33 -) -\c@sphinxscope=\count307 - (./sphinxlatexindbibtoc.sty -Package: sphinxlatexindbibtoc 2021/01/27 index, bib., toc - -(/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty -Package: makeidx 2021/10/04 v1.0m Standard LaTeX package -)) -(./sphinxlatexstylepage.sty -Package: sphinxlatexstylepage 2021/01/27 page styling - -(/usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty -Package: parskip 2021-03-14 v2.0h non-zero parskip adjustments - -(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty -Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) -\etb@tempcnta=\count308 -)) -(/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty -Package: fancyhdr 2022/11/09 v4.1 Extensive control of page headers and footers - -\f@nch@headwidth=\skip70 -\f@nch@O@elh=\skip71 -\f@nch@O@erh=\skip72 -\f@nch@O@olh=\skip73 -\f@nch@O@orh=\skip74 -\f@nch@O@elf=\skip75 -\f@nch@O@erf=\skip76 -\f@nch@O@olf=\skip77 -\f@nch@O@orf=\skip78 -)) -(./sphinxlatexstyleheadings.sty -Package: sphinxlatexstyleheadings 2023/02/11 headings - -(/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty -Package: titlesec 2023/10/27 v2.16 Sectioning titles -\ttl@box=\box119 -\beforetitleunit=\skip79 -\aftertitleunit=\skip80 -\ttl@plus=\dimen277 -\ttl@minus=\dimen278 -\ttl@toksa=\toks34 -\titlewidth=\dimen279 -\titlewidthlast=\dimen280 -\titlewidthfirst=\dimen281 -)) -(./sphinxlatexstyletext.sty -Package: sphinxlatexstyletext 2024/07/28 v8.1.0 text styling -) (./sphinxlatexobjects.sty -Package: sphinxlatexobjects 2025/02/11 documentation environments -\sphinxsignaturesep=\skip81 -\sphinxsignaturelistskip=\skip82 -\py@argswidth=\skip83 -\lineblockindentation=\skip84 -\DUlineblockindent=\skip85 -)) -(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty -Package: geometry 2020/01/02 v5.9 Page Geometry - -(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty -Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. - -(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty -Package: iftex 2022/02/03 v1.0f TeX engine tests -)) -\Gm@cnth=\count309 -\Gm@cntv=\count310 -\c@Gm@tempcnt=\count311 -\Gm@bindingoffset=\dimen282 -\Gm@wd@mp=\dimen283 -\Gm@odd@mp=\dimen284 -\Gm@even@mp=\dimen285 -\Gm@layoutwidth=\dimen286 -\Gm@layoutheight=\dimen287 -\Gm@layouthoffset=\dimen288 -\Gm@layoutvoffset=\dimen289 -\Gm@dimlist=\toks35 -) -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2024-01-20 v7.01h Hypertext links for LaTeX - -(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty -Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty -Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) - -(/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty -Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO -) - -(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty -Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) -) -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -)) -(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty -Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) -) -(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty -Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) -) -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty -Package: nameref 2023-11-26 v2.56 Cross-referencing by name of section - -(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty -Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty -Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) -) -\c@section@level=\count312 -) -\@linkdim=\dimen290 -\Hy@linkcounter=\count313 -\Hy@pagecounter=\count314 - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2024-01-20 v7.01h Hyperref: PDFDocEncoding definition (HO) -Now handling font encoding PD1 ... -... no UTF-8 mapping file for font encoding PD1 -) -(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty -Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) -) -\Hy@SavedSpaceFactor=\count315 - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def -File: puenc.def 2024-01-20 v7.01h Hyperref: PDF Unicode definition (HO) -Now handling font encoding PU ... -... no UTF-8 mapping file for font encoding PU -) -Package hyperref Info: Option `unicode' set `true' on input line 4062. -Package hyperref Info: Option `colorlinks' set `true' on input line 4062. -Package hyperref Info: Option `breaklinks' set `true' on input line 4062. -Package hyperref Info: Hyper figures OFF on input line 4179. -Package hyperref Info: Link nesting OFF on input line 4184. -Package hyperref Info: Hyper index ON on input line 4187. -Package hyperref Info: Plain pages OFF on input line 4194. -Package hyperref Info: Backreferencing OFF on input line 4199. -Package hyperref Info: Implicit mode ON; LaTeX internals redefined. -Package hyperref Info: Bookmarks ON on input line 4446. -\c@Hy@tempcnt=\count316 - -(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty -\Urlmuskip=\muskip17 -Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. -) -LaTeX Info: Redefining \url on input line 4784. -\XeTeXLinkMargin=\dimen291 - -(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty -Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) - -(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty -Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO -) -)) -\Fld@menulength=\count317 -\Field@Width=\dimen292 -\Fld@charsize=\dimen293 -Package hyperref Info: Hyper figures OFF on input line 6063. -Package hyperref Info: Link nesting OFF on input line 6068. -Package hyperref Info: Hyper index ON on input line 6071. -Package hyperref Info: backreferencing OFF on input line 6078. -Package hyperref Info: Link coloring ON on input line 6081. -Package hyperref Info: Link coloring with OCG OFF on input line 6088. -Package hyperref Info: PDF/A mode OFF on input line 6093. - -(/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty -Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi -package with kernel methods -) -\Hy@abspage=\count318 -\c@Item=\count319 -\c@Hfootnote=\count320 -) -Package hyperref Info: Driver (autodetected): hpdftex. - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def -File: hpdftex.def 2024-01-20 v7.01h Hyperref driver for pdfTeX - -(/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty -Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac -kage -with kernel methods -) -\Fld@listcount=\count321 -\c@bookmark@seq@number=\count322 - -(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty -Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO) - -(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty -Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) -) -Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 -85. -) -\Hy@SectionHShift=\skip86 -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty -Package: hypcap 2016/05/16 v1.12 Adjusting the anchors of captions (HO) - -(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty -Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) -)) -(./sphinxmessages.sty -Package: sphinxmessages 2019/01/04 v2.0 Localized LaTeX macros (Sphinx team) -) -\@indexfile=\write4 -\openout4 = `Payroll-Administration_2025.idx'. - - -Writing index file Payroll-Administration_2025.idx -LaTeX Font Info: Trying to load font information for T1+qtm on input line 73 -. -(/usr/share/texmf/tex/latex/tex-gyre/t1qtm.fd -File: t1qtm.fd 2009/09/25 v1.2 font definition file for T1/qtm -) -(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -File: l3backend-pdftex.def 2024-01-04 L3 backend support: PDF output (pdfTeX) -\l__color_backend_stack_int=\count323 -\l__pdf_internal_box=\box120 -) -(./Payroll-Administration_2025.aux) -\openout1 = `Payroll-Administration_2025.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 73. -LaTeX Font Info: ... okay on input line 73. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 73. -LaTeX Font Info: ... okay on input line 73. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 73. -LaTeX Font Info: ... okay on input line 73. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 73. -LaTeX Font Info: ... okay on input line 73. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 73. -LaTeX Font Info: ... okay on input line 73. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 73. -LaTeX Font Info: ... okay on input line 73. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 73. -LaTeX Font Info: ... okay on input line 73. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 73. -LaTeX Font Info: ... okay on input line 73. -LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 73. -LaTeX Font Info: ... okay on input line 73. - -(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii -[Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count324 -\scratchdimen=\dimen294 -\scratchbox=\box121 -\nofMPsegments=\count325 -\nofMParguments=\count326 -\everyMPshowfont=\toks36 -\MPscratchCnt=\count327 -\MPscratchDim=\dimen295 -\MPnumerator=\count328 -\makeMPintoPDFobject=\count329 -\everyMPtoPDFconversion=\toks37 -) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty -Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf -Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 -85. - -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg -File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv -e -)) -\c@literalblock=\count330 - -*geometry* driver: auto-detecting -*geometry* detected driver: pdftex -*geometry* verbose mode - [ preamble ] result: -* driver: pdftex -* paper: letterpaper -* layout: -* layoutoffset:(h,v)=(0.0pt,0.0pt) -* modes: twoside -* h-part:(L,W,R)=(72.26999pt, 469.75502pt, 72.26999pt) -* v-part:(T,H,B)=(72.26999pt, 650.43001pt, 72.26999pt) -* \paperwidth=614.295pt -* \paperheight=794.96999pt -* \textwidth=469.75502pt -* \textheight=650.43001pt -* \oddsidemargin=0.0pt -* \evensidemargin=0.0pt -* \topmargin=-37.0pt -* \headheight=12.0pt -* \headsep=25.0pt -* \topskip=10.0pt -* \footskip=30.0pt -* \marginparwidth=36.135pt -* \marginparsep=11.0pt -* \columnsep=10.0pt -* \skip\footins=9.0pt plus 4.0pt minus 2.0pt -* \hoffset=0.0pt -* \voffset=0.0pt -* \mag=1000 -* \@twocolumnfalse -* \@twosidetrue -* \@mparswitchtrue -* \@reversemarginfalse -* (1in=72.27pt=25.4mm, 1cm=28.453pt) - -Package hyperref Info: Link coloring ON on input line 73. -(./Payroll-Administration_2025.out) (./Payroll-Administration_2025.out) -\@outlinefile=\write5 -\openout5 = `Payroll-Administration_2025.out'. - -Package hyperref Info: Option `pageanchor' set `false' on input line 81. -LaTeX Font Info: Trying to load font information for T1+qhv on input line 81 -. - -(/usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd -File: t1qhv.fd 2009/09/25 v1.2 font definition file for T1/qhv -)<><><><> -LaTeX Font Info: Trying to load font information for U+msa on input line 81. - - (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd -File: umsa.fd 2013/01/14 v3.01 AMS symbols A -) -LaTeX Font Info: Trying to load font information for U+msb on input line 81. - - -(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd -File: umsb.fd 2013/01/14 v3.01 AMS symbols B -) [1 - -{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf/fonts/enc/ -dvips/tex-gyre/q-ec.enc}] [2 - - -] (./Payroll-Administration_2025.toc) -\tf@toc=\write6 -\openout6 = `Payroll-Administration_2025.toc'. - - [1 - -] [2 - -] -LaTeX Font Info: Trying to load font information for T1+txtt on input line 8 -8. - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txtt.fd -File: t1txtt.fd 2000/12/15 v3.1 -) [1] [2 - -] -Chapter 1. -LaTeX Font Info: Trying to load font information for TS1+qtm on input line 1 -10. -(/usr/share/texmf/tex/latex/tex-gyre/ts1qtm.fd -File: ts1qtm.fd 2009/09/25 v1.2 font definition file for TS1/qtm -) [3{/usr/share/texmf/fonts/enc/dvips/tex-gyre/q-ts1.enc}] [4 - -] -Chapter 2. -[5] [6 - -] -Chapter 3. -[7] [8 - -] -Chapter 4. -[9] [10] [11] [12] -Chapter 5. -[13 - -] [14] -Chapter 6. -[15 - -] [16 - -] -Chapter 7. -[17] [18 - -] -Chapter 8. -(./Payroll-Administration_2025.ind) [19] (./Payroll-Administration_2025.aux) - *********** -LaTeX2e <2023-11-01> patch level 1 -L3 programming layer <2024-01-22> - *********** -Package rerunfilecheck Info: File `Payroll-Administration_2025.out' has not cha -nged. -(rerunfilecheck) Checksum: 20CAF9FB284688E15036CD0D90091BB8;4643. - ) -Here is how much of TeX's memory you used: - 16838 strings out of 476106 - 286051 string characters out of 5793932 - 1943975 words of memory out of 5000000 - 38398 multiletter control sequences out of 15000+600000 - 614330 words of font info for 77 fonts, out of 8000000 for 9000 - 60 hyphenation exceptions out of 8191 - 72i,14n,83p,1216b,575s stack positions out of 10000i,1000n,20000p,200000b,200000s - -Output written on Payroll-Administration_2025.pdf (23 pages, 191487 bytes). -PDF statistics: - 329 PDF objects out of 1000 (max. 8388607) - 285 compressed objects within 3 object streams - 75 named destinations out of 1000 (max. 500000) - 245 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/docs/build/latex/Payroll-Administration_2025.out b/docs/build/latex/Payroll-Administration_2025.out deleted file mode 100644 index 6491ee0..0000000 --- a/docs/build/latex/Payroll-Administration_2025.out +++ /dev/null @@ -1,28 +0,0 @@ -\BOOKMARK [0][-]{chapter.1}{\376\377\000I\000N\000T\000R\000O\000D\000U\000C\000T\000I\000O\000N}{}% 1 -\BOOKMARK [1][-]{section.1.1}{\376\377\000P\000a\000y\000r\000o\000l\000l\000\040\000L\000e\000g\000a\000l\000\040\000F\000r\000a\000m\000e\000w\000o\000r\000k}{chapter.1}% 2 -\BOOKMARK [0][-]{chapter.2}{\376\377\000P\000a\000y\000r\000o\000l\000l\000\040\000A\000c\000c\000o\000u\000n\000t\000i\000n\000g}{}% 3 -\BOOKMARK [1][-]{section.2.1}{\376\377\000J\000o\000u\000r\000n\000a\000l\000\040\000E\000n\000t\000r\000i\000e\000s}{chapter.2}% 4 -\BOOKMARK [2][-]{subsection.2.1.1}{\376\377\000A\000c\000c\000o\000u\000n\000t\000i\000n\000g\000\040\000R\000e\000c\000a\000p}{section.2.1}% 5 -\BOOKMARK [2][-]{subsection.2.1.2}{\376\377\000J\000o\000u\000r\000n\000a\000l\000\040\000E\000n\000t\000r\000i\000e\000s}{section.2.1}% 6 -\BOOKMARK [0][-]{chapter.3}{\376\377\000R\000E\000V\000I\000E\000W\000\040\000Q\000U\000E\000S\000T\000I\000O\000N\000S}{}% 7 -\BOOKMARK [1][-]{section.3.1}{\376\377\000N\000e\000w\000\040\000E\000m\000p\000l\000o\000y\000e\000e\000\040\000I\000n\000f\000o\000r\000m\000a\000t\000i\000o\000n}{chapter.3}% 8 -\BOOKMARK [0][-]{chapter.4}{\376\377\000O\000B\000N\000O\000A\000R\000D\000I\000N\000G\000\040\000E\000M\000P\000L\000O\000Y\000E\000E}{}% 9 -\BOOKMARK [1][-]{section.4.1}{\376\377\000E\000m\000p\000l\000o\000y\000m\000e\000n\000t\000\040\000S\000t\000a\000n\000d\000a\000r\000d\000s\000\040\000R\000e\000q\000u\000i\000r\000e\000m\000e\000n\000t\000s}{chapter.4}% 10 -\BOOKMARK [1][-]{section.4.2}{\376\377\000I\000n\000t\000e\000r\000n\000a\000l\000\040\000F\000o\000r\000m\000s}{chapter.4}% 11 -\BOOKMARK [2][-]{subsection.4.2.1}{\376\377\000A\000u\000t\000h\000o\000r\000i\000z\000a\000t\000i\000o\000n\000\040\000f\000o\000r\000\040\000H\000i\000r\000i\000n\000g}{section.4.2}% 12 -\BOOKMARK [2][-]{subsection.4.2.2}{\376\377\000U\000n\000i\000o\000n\000\040\000M\000e\000m\000b\000e\000r\000s\000h\000i\000p}{section.4.2}% 13 -\BOOKMARK [2][-]{subsection.4.2.3}{\376\377\000B\000e\000n\000e\000f\000i\000t\000\040\000E\000n\000r\000o\000l\000l\000m\000e\000n\000t\000\040\000F\000o\000r\000m\000s}{section.4.2}% 14 -\BOOKMARK [2][-]{subsection.4.2.4}{\376\377\000C\000o\000n\000f\000i\000d\000e\000n\000t\000i\000a\000l\000i\000t\000y\000\040\000A\000g\000r\000e\000e\000m\000e\000n\000t}{section.4.2}% 15 -\BOOKMARK [1][-]{section.4.3}{\376\377\000R\000e\000q\000u\000i\000r\000e\000d\000\040\000F\000e\000d\000e\000r\000a\000l\000\040\000a\000n\000d\000\040\000P\000r\000o\000v\000i\000n\000c\000i\000a\000l\000/\000T\000e\000r\000r\000i\000t\000o\000r\000i\000a\000l\000\040\000F\000o\000r\000m\000s}{chapter.4}% 16 -\BOOKMARK [2][-]{subsection.4.3.1}{\376\377\000T\000a\000x\000\040\000C\000r\000e\000d\000i\000t\000s\000\040\000\050\000T\000D\0001\000\051}{section.4.3}% 17 -\BOOKMARK [2][-]{subsection.4.3.2}{\376\377\000T\000a\000x\000\040\000C\000r\000e\000d\000i\000t\000s\000\040\000\050\000T\000P\000-\0001\0000\0001\0005\000.\0003\000-\000V\000\040\040\023\000\040\000Q\000u\000\351\000b\000e\000c\000\051}{section.4.3}% 18 -\BOOKMARK [1][-]{section.4.4}{\376\377\000C\000o\000n\000t\000e\000n\000t\000\040\000R\000e\000v\000i\000e\000w\000\040\000H\000i\000g\000h\000l\000i\000g\000h\000t\000s}{chapter.4}% 19 -\BOOKMARK [1][-]{section.4.5}{\376\377\000R\000e\000v\000i\000e\000w\000\040\000Q\000u\000e\000s\000t\000i\000o\000n\000s\000\040\000\050\000S\000a\000m\000p\000l\000e\000\051}{chapter.4}% 20 -\BOOKMARK [1][-]{section.4.6}{\376\377\000E\000x\000a\000m\000p\000l\000e\000\040\000E\000v\000a\000l\000u\000a\000t\000i\000o\000n\000s}{chapter.4}% 21 -\BOOKMARK [0][-]{chapter.5}{\376\377\000R\000A\000T\000E\000S\000\040\000F\000O\000R\000\040\0002\0000\0002\0005}{}% 22 -\BOOKMARK [1][-]{section.5.1}{\376\377\000C\000A\000N\000A\000D\000A\000\040\000/\000\040\000Q\000U\000E\000B\000E\000C\000\040\000P\000E\000N\000S\000I\000O\000N\000\040\000P\000L\000A\000N\000\040\000\050\000C\000P\000P\000\040\000/\000\040\000Q\000P\000P\000\051}{chapter.5}% 23 -\BOOKMARK [1][-]{section.5.2}{\376\377\000C\000P\000P\0002\000\040\000C\000O\000N\000T\000R\000I\000B\000U\000T\000I\000O\000N\000\040\000R\000A\000T\000E\000S\000\040\000M\000A\000X\000I\000M\000U\000M\000S}{chapter.5}% 24 -\BOOKMARK [1][-]{section.5.3}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{chapter.5}% 25 -\BOOKMARK [0][-]{chapter.6}{\376\377\000R\000E\000F\000E\000R\000E\000N\000C\000E\000S}{}% 26 -\BOOKMARK [0][-]{chapter.7}{\376\377\000E\000r\000r\000o\000r\000s\000\040\000a\000n\000d\000\040\000E\000r\000r\000a\000t\000a}{}% 27 -\BOOKMARK [0][-]{chapter.8}{\376\377\000G\000l\000o\000s\000s\000a\000r\000y}{}% 28 diff --git a/docs/build/latex/Payroll-Administration_2025.pdf b/docs/build/latex/Payroll-Administration_2025.pdf deleted file mode 100644 index e8551e79eb2c601bbc66c8a8c5758cdb19a9e680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191487 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%0AIe0Fqlo%@0ApU3EtD$s&(t&JCWC zw4@@ci>LxLIa6LzVj&kXH8M0lKX4iG^&!*}KnEwlHpXz)6)k|ZGz|?7L{id04Zo5b zHn|w2k{bcO-{v+}p7jkJqbq1#ecc_AJW!E;48L030+9X*uslddrsW$uum&J=i7y~3 zIh&g(lM-7T)|t72hfz?O36zK0QqFEwt0nAMLBTM zauSQml0`azCM&<2m=Xd5LEqNK((=+4?%4&{9Z*)SNl(7a$8482{SOipt6Jz62OunfVfqK6+J)_Gygy@b8jM0H-IrNt+ljoCbgtx znB`f8cmv~a4VWM59%O{YBiG_@feg|xTrc$;-kVxD4-PGVv;#Qe`(*zu7%+Jrv={IGdsN6 z0LOk3{PFTY*LOw0frfarb$peSzW9A-P~X=+6Ce)Y zr=!l{_5lHO__Z{&vpn9$`Pu~S8m{ab%Ci7{Wo2gprj)$c_5ol^5uCyI&rUBPGZ)n0 z^#SzyQvD$RM_!__p4t}J#B(kn_&U~EnO}hH`)tKX8viZ-Vew=3%{FbyE1Vh_pWgvz zZc2fel9av4Q^ioawMu8bWAn)P-R~Qb znHa$~&o?}@wf%O>{YjbZ$P8djFDp#uL0CHM70&2|$Mc%A1;~D7?X86dAf}%5z2pzH zwLOJ!b^^BlsRjy|c-7+w)O_bM0%&YYsR?Qz`ToTi=tYy{%;3^kW7qU2%YxRwxUjqk z>;uZ6VU?Bj!>2Z{RR`$)#o_^AN-RwLClu{n?c?2b)M}7-z z<(>H=!24+&z#o9pOZ{LwGyoL*8mINvMZSn$SSK7ugVyWO~GTwwrn%bWcl zF)&N!N4>@mcwz*LNj_+P))dy9-@3PI*9ZIWP(btWWj+E5+Dl)4c@yg&KmkCTUqFGX ztA9fh?hn5zLN?!D4uNJzkmxVICjuW?-wQxS*AI9W3YAkn%Qz-8r8yoW_@*zR)WByw z#ns;`AnLGTKK6zH^|tTvBQ_vUpx=0G^Y+Z>SNzsI?d>a>?H>gQRfI=AKz0F#?P?wW zUkVxuKDR%mz8HRg-M@eXB#+H7}u^zc<%?bHJ#2Z`XQnU{m-; z2YY$Teg-aXYGhscZLp!|%+C2zC^9-aH{359{ouS+<8Yond)WqmA^6`Vut+kn&XUMzq%UzoweXY;#?|WFzbKIpv4F>ri9L!tb$?dLzOwWC=Y(za*!p)=q5I>$dB3> zjqZ~{$k1Nyx!Zr*>vE0LYiaWP538in8s<#4z=!$KY(Dic}&1~hqT!? zgiR{GGVR9?+s&*ytI+ru4q*AKqQy7|c9l=I z@e#xP{Nu$N=)((Ek6oKBJ!i!59~o_b6~P5}Wj~)z;$XaLF58JW0z9Z!@pmdc7YK3< zy9dKVhCM_`5OGjGwp`%U_b0=f>7DX-BFFEN?@|^|jIs7Ld)b~3 z@?Qs0qazDs&ve=Og{|U9=5xI9g>by@6X8)ppKh!!Jw6SGjk!@b7GaGAT2-dNTPx7< z+2Ol^ox6mI6#`dkGd{#G43#}9Y~txBc8Fh4(cLNN7iDKUyG4Gt4mM>5H?Dm1HpT;K za#>-;URnNQ%_ybXiHe2)0z*K&zf{^YT6H@^DJl#X55w%Hoa*{EN|f&TS^Ep8-a

    - - \(\Sigma \text{ Total Debits} = \Sigma \text{ Total Credits}\) - + \Sigma \text{ Total Debits} = \Sigma \text{ Total Credits}

    - - \(\text{Assets} = \text{Liabilities} + \text{Equity}\) - + \text{Assets} = \text{Liabilities} + \text{Equity}

    -
    - - (1) - - ¶ - - - \[Assets = Liabilities + Equity\] +
    +

    + + (1) + + ¶ + + + Assets = Liabilities + Equity +

    Furthermore, we know that:

    - - \(\text{Equity = Revenue - Expenses}\) - + \text{Equity = Revenue - Expenses} , which leads us to:

    - - \(\text{Assets = Liabilities + (Revenues - Expenses)}\) - + \text{Assets = Liabilities + (Revenues - Expenses)}

    diff --git a/docs/source/conf.py b/docs/source/conf.py index 3252f5c..f1181c5 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -17,6 +17,7 @@ release = 'HR' extensions = [ "sphinx.ext.autodoc", "sphinx.ext.mathjax", + "sphinx.ext.imgmath", 'sphinxcontrib.programoutput', 'matplotlib.sphinxext.mathmpl', 'sphinxcontrib.nwdiag', @@ -57,3 +58,7 @@ html_static_path = ['_static'] latex_documents = [ ('index', 'Payroll-Administration_2025.tex', 'Canadian Payroll Administration (2025)', 'Alexandre Bobkov', 'manual'), ] + +imgmath_image_format = 'png' +imgmath_dvi_png_args = ['-gamma', '1.5', '-D', '110', '-bg', 'Transparent'] +imgmath_use_preview = True

    FeWV)BCG+Ub}>3!7iNs;c+0&dH1pl0(yy;u!G@VtezWXoN>-GH3F2^>el| znN@$~Q>xT2;$6#;AFWfOo={cf!-sHnJgt2t5Q5YZiqgh2uc8~?V>=gi-f_x3Yoy4q zrV<+CO6^@->nFdDh`YtXFl*2x`N?@^l^)mYi{~nV_3@PQ$B}}<`}}R}Ez69)0EUWd%c-0*~c7DHLLhUg>EG+pbh%YKqz-5s>>&OCb(8@u3W5vx_R zC$fv6!(YDR61k_5)rWp&f8hRj7SL$gdLx#al@ZG?R0WC5@6_Rp}_>lClS2u#}#pRqb<<};|(jdEV|cCSSbB;UX6d6gZ3bwAx3V5e)U zswqLx$jTiglg;xv32o+VLBxXL*;DF-dJaDA2#pGp)z`@c1}9`vtNF@R@{RJs9kufl z_fTc6XWJ;g=HDn0hQm@0wW-Z`tcCVlq2>1+bcopY4uRR}ac?25vG4oj2}Qvv!7Hx8 zMDqc*JqmK`!)`-F9*zqP=`8Z`z$}&KziVg%O}P9XX41ttR$_#NF!1mM_2h>r1LoCK zZI-0*zd2={z_Qef8Cg+Juq8h9q`^rtARg8jVvIwBq1om9i23EoGIBMeO}NFZivAwg_lXu>`Xmik3QT8-OmDvMAUik+6leon$E* zwWx^mPxT00(y%HAZ?27~I21ygteJ*h~DT&9E0hOmln1huIJdjCal&wp`ba<#CS8|^(`VtUM~oZJ32#+ z*DxsEitw}l{yRcP4EbQMdII*L(d4LLzN!_z?Jh*co=w><&hY_g)t6zWjR$oAxIEc+ zMCdx`(^FpvY4x=4WRQf(UL*N?ia53j#SkBj%hEgKiOeXR)e_d;_P*DyH?6Ogr#=;V z1U+^~Xu{?>xVZTjY)r6Uw-6T&4@Y4C5~W1#-{vI5LlyF7L4g_iyd?TbS{@pcHkm_n zM|jspDo7Kva$9^}!mIlgPl`w{F~hn_F@1Uyf1ZUBA5-y?p&+F&7hy!*7`DAG-fu&1 zEc4#~$>8qoI7^C!NxhL>#>1H)kKYf9k#tJhbr9o7?2i7|+_wY74XBPf;ZN}TZqUbB z6cQmtmN;~e7(!F(hpBDuQK&5#3M}Wtk3MjQZ#K{oS{Qn!D_;vY#ex0B;l*z1@!)gHdZ{)&_BePjsEU zHzM>Zf}T+ruT?D9Si{fj+G|ZIOZZM;W&3e~OcH8JT1dHFK(Z|54#$x)dkeAT2WHhYlIcCWkE z#)ZvSIyl|Jz_2EsLbB9OU9L8)JGYCG;)oW{AL*_#?xf6e{vn*R9b)#X#LR+lBgwNvARuzJ z%Hm|e*7KHG`PfWA3=DNL**)J9mMDCdgw5zZ=T93bKj9rrfnFCuEq7-;!*&YCo>;c* ztDE~tAvvX*cT`#`x{`yZdHXMRJHIfvdU*#>SEj;*zYQrS(Z(6_K<`Z|MUVUUHuJ@8 z;$oC3u{k!b8vL40Xu51k#yFZdBa$x=#=0ac7Wol!mXy5KQgoN>%4E7`_G8hW%$S+0 z$PYbmz{6TcBCpNr{4pA z#fC;2ehzX!<6M7fTS}R{BtCCYmeAESKH&7;B&OgmIEbrMCHmB!xyLm1A+DcX5J8 zH(-dLjRZRE(TvaKO5aAoE%cRnp-}`66@65_f8_aj%K%WG8$L~xnL}t)o0TguE6alX zemHN`#&do3Ec{C`#G#O5m+Fv7QZGMMvV=0q-5)o>QVe-$H>Q0Y#qQ3sTP;xB zRkUB!VQoD?!ZSpi7BaGQ5WJ{|oPV%(&D7jGkD4q?{&*8jH9RM3G7rH#wz8TZ?6tW7 z$3o@U@3;KP;8s}Ws{KlvtvBeG)|!?DOr*6VL5|Ym`SEg~%UO*~K@zyiDvO_U=j3a=0F3}d5zs(8`-VXM+Y5K5y-6ayA&%lGZtclg07V>U;_5c7 z{D9ab_6GcV52W27bltQ!u1<#%tV9pZ4oqQVAbJYMMyl4EsOxoIsLL}2kEUVEq@QDk z;)Sf7A9yqOVPK7n0#l`^q__0o8GH{mSx?j#fqLxXz5qwNIMZEyw-@{zjrPri@Zgj! z4`T))*5~3?H(bde*UvBdDjR^#)V(2vpJd0xuor^X>AJTtlCK}GFXgHBQ-Z6YDuKpr4gW@ap z=z^!`nS23-D=#GwRASy#kA;zcvO=aC*0G@zyMeY@;d9ttdiYjitq;`;_HNTqr#+ct z*L~MMn}wj_A{v6b)!e#%ou6F43Gr9>8)YU#$R077-7K+(ulR9dE9v;lyUb`+vYgHQ zgb!*Wr{P>BDBMf|u28*M*}7a)A04?&qP1+YS<}#eSewM!#&fcBUQj#a8aEq{jKEnzPvZAf*Toj1%T+UB~$ z>0Cv|?9{fckU5=XJ@PzM0+tb-q=ujNf!?tK@G4D#r5lgwjOPR-NA(MCQfl9iKKZ0W zev*mc!7&La1Ef%#3o1lI>;M8s}R%JtQ<|euPc0{$&d~ z5paQZw*HcJ4UK`&RhKebu+O#3x`yV8imb$!Rl=c|yqO!;+p7nO%nMHkA=~mR+-vfC zVsGTz37DUAC-#0JyKiRU6k>7VT=`cX(|R>0H04h&*{%n)DxNx&vLxM*K>fr8``oV6 zEmiT&nOsV6#-Hj9$EIkcKsEODOtmoW{Ht8jSF87>ud>JJu_-^Z)@V=+`XkcMC%)^w zfaP=C_G|YZTH2LgljbwgAnXPt9MI~1&XRbEWU^s8m9y`XVH-^1ZfM7rO{2HY*Y!c} zZ<7KL*A*eg$cTh7Rjy#im_hOWFdlQmX!bvRB754n56^Z_*#(9U2^QH-|5z9kZGQ}{ zF>KPFOs^BwaQZ=4Z6&~$P-J>XmCC$o!6#Z=m|!mvk`Zl$4)FzRatPJ&_Igdvkb-2+ zDiDKRs)@AyyHuY?Y1w-z0i{mod#qL`)Rb{Dv9|nto0W%~$Ux?GT#UQfZgroQhm^8q zvdNebtg&sL$&?a@y^mWkDzY}Kbhapmn=ADvtl^IW;@PQ133)_?@&>#)BN57KIdb>h zx4^)(b#Y7*2(Vm2Jl4$%-{!B>0(+h&RY0ILyiRsiAbC`*H$HoB{H}Yrbw0uFeUv36 zEZy29*V{veV{H+l!5T}!&P*Reh2Q8U0zj?&X@edvcm0?2r27fI%Qf*K(YU1wLF4hB zNO!}S8&$IZDc<{}$=8a;<5E3e85~%`s#eo=4XAmjEGQsoTN7eAE@YW%_!fVhIi8FSgP*fi}veO#1Ws^+szJcxY#*9RlfB@H1XGTU3+-LGl z!5<_*yN{8O?2*t|DQfCp;q+n+rjsLRNfoT$F2_dG&uE-jsvsoqP36j+c2Dp=9#HB@ zeWc3$Nxg?}f)=EaQ#=;9R*Pt|YhQ%}XD>5V_-13MC*NP*Vyjh14K0M~koK*wIrBqc z9hi41ui#jLsL2hr!f7CB3ch*V=0T;p$bdD# zw80qP)oT~qtG<_+4MbuEgm!rA`MNAcx$|Zh81~o}A531Y`TvCGxCdOQ3JiX-AAGq| zV`CzH_Q?03ME?HEW|Bm>!lOvqoJ0hUKPGAp_(&QU{DliFpCV5;jy;Z>x)ls7 zaTDW=_*v~_^GEu{V_Cy$1g?<#RN}7i{Rjm#wVBfgd9xGzy>hUKY;MCR=3OWospv(S zEe~^KBiclUrSDu!YO&QjC_=;+u-KxH*Hu3sCP>ulpXBEm%DmcI<2ZC|R_wLMo}Vyd zc0@WSzZWIvyQNw$hVb~BR%$HwW3Nu#&0rHz{#eY-X5z;Cik!x>c>VCXPvl^OSZbcO zTAt~`TsI8YWV}E@u)G<`>Z6@ze}htb99gWjgqo^A_aIY=fH~e~UBc%$j4$*Zh9f(j zb-aA*E`_!|Z+O=aj!PT^9(BM7O6H=Yd*zMkyLM&J+H*2_&YU?uD&5H;GTtNSXx@vBDPz|0$U zdXf%rYOeF>Gcobg8}thvOhK*|)Q7Z$EF8e}i;!qkrn$>w@#p7w?E+&;zwI~=`0hjJ z9vOV;fU%LyV^CthmOk0=tG5;-_!7TPLDbI$CsFmT?g<}lVw1fBPtdf`s68kU4Oe{6 z@a1+d_$a5#z7^b;dJnzY>=o|oK>|H{l}(($^3@T|{atNrc!qZ8o_yi~zQv@&O2sYi zmEmUhe)jhX@nEj%6~U}mG(10d+8hxT8zF=LhD&6UN_|2x(ZG#|u{uPrUTo znMVCbiIVJx9cv5BiuToEwk@p9$1Zm^U@vRhddRX>pu>mGNu&jw_3E`auG5{_rNSni z;pFyQ3LR=j-h}c)D-Xb@Q~g&qp52QvsXKfiN{?y;TXq>0wcdXCc&*T`f9gYiA1D>j zy4K~d(RVkZSx;g5&YjcshHp7yUY4NIF7YCn5{JPy{$zlmxIU@^&nJzWMBzpvdgp0@ z=ijMQ3<}nsqlBb~5Fw0GcoOp0Q0{DL^DX5T4IC5{4108{fbXw{xChNzPV{HC4(sCj zKcX{n;XPK4&3U@&zfqgisitQkIb(XMZ+o_IMI;(RI~((O5<{45q3$W1B`at4Dt$~5 zX_E9klyRlz2xI6Tu2VA_s!$kVdS+2cHz;N;p0S}T44TDI3+0Cu`Dv|B)FinUza*omQxr}w1aB(rlk)1@hXBKU~(^&5Ch3%Of|cO-+g;HXFg18 z6IPG`p1S9Da^2E~HgBR>S4W2xnTg|KtC5J}^2^NIL{0?aC0_Hut{q7kvPkJuf%7__ z)fq8DK*hJpsp^7#ugiKU?cNw&Ti;GxhQ@L!Yo!^QR1va_b;T2$9NkFN&#t1bJ0n*HL~Dx|t4Yvhk$-D+W;ftBO-TjNzZ<={SY4W?B2nR&jP zg(8+xKKrdl(Tv74W%J>Pqb-tZ(`-ZG{lyyDzNCP%GS1K#*sC# z@3CHoyh;}6TNZ1F+Vg%4L00xG@lEsG2>$f^af@b~E}dwP%KY=XfgDATcNCM@%OLE> zRopesd+tF+hg_Q~DAEX>Yody_CG$c#9|8<2u!spd!oI=9ss@eP*@vOQW%x(DvU$>5 z{BKK`+wCiqJf|Y>Vk^6i=xIa5ulQZ&aHS3Ka>d6>0sYQYP?bOIRiS2s`qIfh+|;Rk zB~jZCu-ibM3{9}k%0@c)_|#D_P(mm$#Nb0r`D32ZixbKSb_7+?BvU>^)LXCRiO+K+ zTXb!j9CMj{Lacm5mccARWiQeIY|(6W8@b8u<3mVUN7p{Yi9d zxpQS2W!k|iEh+JCOh=UgtjmW;sOKTEDkR-mu4uykw1E3FQISd|g7U2kx*~D2d{ms& zZEqw|Iui%>9=8lr!VUACZaC?v(BezToAF}{Ed-VL4@5c+f#R_U=26y_Ffs%k=%x^K za(WH=j05B?`IdR&26nNR!u_nIV=ehlKId08s&BBPmdym2hN?I1008v;ziZtob9Z*1YfGEEZPBt@Qg9ZAaR;}_w-7gt04>*X{n*b?=OsvZJZRkcun8i*(vN4A_p5d_`CEv0_c3|_8GaEvRpPd+-z*m@` zC*wHAd7l~glc=UTPa5P9OSNM#^EYN&9c6&md-P!BB()~F^!_?uGvUXdXWcHfaBu~l zEIa~kGcIZKpvj3Kn~3<0R$?6>IEcrE-t&9%J;!R&cV9h77R<|PV|ojHsuRqcI?-2V zx?gX5_ofMmx_v+E+{;RX-n^Wu`4UpVcx)23go~&B6VZJqYYI4JvFCnU$6UDk)V*xbcuOxClJTBZrU~I8r(47Jvce$5) z)Cq7ev;5cJnymTPrfK=NIll`>gK*cLzjqnA4Aoh`c4cJC(*t7mvh2B4F)s5hgNf zB+0&#(dN9i+6fRCSklQh*&cNcu*BlDtdnfNV!4nge!YmG)FZ<)C&vISyF%>KmY@nz zHBzb-ZPLGlwI8FcYUr8;(3=bw?qw;M&&~p1vACHKYtuRN%D@B#1mj+~m!Iu~U&FSc z;i_`-OQ)hb+uiLI)1!c4k-NdJqr(_p-##)iygNnmYhRf;9<$YS(>*HdfuqB%yEG}9 z5$kZLSAg?S%mwQkebqeY#3t>xZWp<0`!1Zy*?<<%3~0S0(dvlh8jw@Psmy!S_I zbn`0DX~zL8AHD*^=*~67mItVdz<%lcGIg()m3JKH6W79v+-@btVi zTd<<9?m_ihnN789=eh-#W47DzsefVsS?IQY7Y-FOOdQ*Z(8qE6db>q)0k7c^(?=Bn zz8uFN)$tc9Gnf`x!fsss7B+O|Ub!S0hOp%x`*L}7SJlo4q~hx+vJjrw0N62Os_A<5 zE9TY_?A=3NDiliU;HPyQS`pzML5uy3$QzC?_b*v0e#;^JfbGm8;;w#TnW~1BVO;+B z-XtzK??r|?7c#l7xY#?Qp*bY}2ni?}k1BDA4=F)gS^7buA#|Ah!Hm4B%_|UghUs%G z)NPbUgCYyq#I(zIp)%L>BR`1^G2DgdHLE^q+RumQ8%`H|aPS{<>$!g|`Ib2~88L7P zOq|Iz^rioBL85Pb+tRWkuihO4?IfM9!)Hu5xF+~ysV7y1u4zr~wUM*6U5@cAiT3#M zEUxTkF=c98ZPlC)eSvxH>Jx_-IZHNVmMK_L<9s7p1+fqM(;CStFg12gxQ$1b#%UV1xcFY)%qJ_8goTkMHyYmV#%zvq~i;1ObY$dg zZmN1&!PkA|N_mJ#_K#7Ys+46?jrY8Uvcb5e2ADNiS~J%T z5m0}Jvr^J<0Js-cF>fx2kDrEgDhE90*x!?0Jo+*^+9I`1I)3v<{4INKPzT`K> z@kzzFytmW|KxM~6d#MX@`s~AAbI)_nBlkpfu@qM0C0`#yH9Ia2_CDT`dja_9B$&k! z0c)XIo%N`+Ie(E=A?~2?s52N90Mjz+zZ#V!4itq#n%?e{J@vP2v9#pH7|Cm?o3@4S zkqW?M85E|8I!~t!V{0nq*G75EpW>n8E!**mt9~zNQMFH$6KhNK#qL*I+dUJXP%0kh zOKKRcf4!6OYvb>yX_Fd^h1WuCMC zjG6a(gh^lWLt3U$A2rKXX|HkA9hY<{)pUrilR4sJ%Og3JDRR6~AfB%mTwv-> z8KxMW%jn))F7Tl}SqhQ3pyEHKdn|HzPS$_9-p?1<=a$441MH58r*0eZ2ponJ9AdIG zy0Ry}dE=k7Vk_D#+Z@cJG)NrG_7bZZ!%a)8os*?4w%1~T&vhuNgdB(i$#-@xm-6Z}Cv6SR#z&n?d9+7ftI(3Z*;N~Zih-RL_y2R78F2W)r z2d<+fZHUdd0Skl(REXKo6*TG$MCaZ++D#1mmYcF>O`vy-o3om`#h|v?nG}mPSc?X} z)uZ5^aWlzQanW$Rn1hq`);_amEllhRZL>9#9qi|B$izhjYO9daK0k(J{SE#_j8_w= z?9S1~_fT|<@|44V&yCJ=c2A$fN5`QspZu`SAdY%sqm_MKJr6P{4pT9iYeVs80|2;5T=kOLDdaR=H?Hg8@-DB+HMr<$2J1(1iXAX<)((}y=8l{~gBu5Y`(z`(J z*s^}=LG&PUeU6vHtyIpzm_#FARR37PZzkRq+qC-? ze}aHKMEUl5PBQ7-SQ2hT3SZ_uB}Gb!Pxp<&@)h`HvVtX4=Xv9s;CNlU6us6j{xO$s z@}?0MO0clHd;EmIP zwr8+!Y*Dgpe)ta(=XD3itom}#Nkh*sdrOIQ5ltnBFWntyb8$6=_b#bnqHuZ?fr?2U zY)k46v^Npv%voq)yGEYXgZ0caZq6ifgZGXk8HS6n@0p`*$ZktBiKD|EyaN<&t6&@- zWcIn6U?Po^w;@%VjH_NlJWF~YYYE%Pvz=qm zPu*p*HN;a|h7KhNmVP|0t-4#d3?pH-yp5*9=cG8{0~1NA>C(-2<$PVPz_ZWCrF$QI zs2r!LT(c|ndT$T3t1v;e#E61@x=^P0VuVLaWBJg;L6MC-Wie=$kn_H)uB&v8aswxxZki0A+OmL4_2+c5soU?(=(#rEc1o&(>1DTkGpH0leI~nh z6v36_O7FMc-_AlIpL&U6EEypg?mb{9-Xy}2XJYs1CVZwWp<87yRpJ={cY&u$cD(u+ zjU?Sm0`nOvC#iHR8Dst3wn`ELhABAL;*MHM+JW@?Z4HOZwbM`CMLvIc{EbN#7a{W1 z+ydnJOg%IDn%8|Eu3Osp2}Sc$p;{EJbnB>$`Bv*}Egmp&m2!8xiDqWSHy!2>K{a05 z)FplA`)rJk{9-a|;fZg(a(i&)oAEH)(!=J7=gBJ}$hx%f!*TPa&C9}>CrjdK?_!WJ zfw2eaXQgiHp#npJT&~2nS2ZiAU);PL{m&*nH9Y5Hj@5#kBQP`~-)6UnBgVVaLR7q}%t=;Uv{p#yr$J!pyCz36E6HVY@|PjS9!hIlL9%NamX%a>xwz2%R#qq#VH(YJwj>$T5~5olupic5Z;+ow^~<88uLc+D;@O2$ z58s-lyAU%4^~CJQ@(CC8t=zJyUB*~#Q{_2^KEdDD7r*F029QH*Lo8D#dvhmmpMSx- z#D?S+3`X~2Pq!8+TB^Xy(E+e}z9=wa;}J!ACi$*~o}%9~rcP4`(C zJ?B%7`o#&%pznc2WbPn$5Tbph$KA4By7M6YUF#iY;uCN%|9wY1V04%?vP_`)xfK;c!2yy~)-}Vh{KLcRj00&=0IZZ%Npns~8mF7q;Q?Z{ccz`Kcm4Nn$LKcSzQQ`0rSClvi+i0lDLtE1D-_ya&%Jm^VkVXOs1I7WJ6Z^(l&-I zhSjzo*aGpZiGfUp#zc!imZ7gsSp_;vW_%X1?59r#hYy!dcsKX|Oo6uUF0T%Yl3h;=3VB z<(2BYepnT%G9D6b*jHIMrh>u}`G~`@T6%+qp5BggsF90eCF6dpIS%ZH?jE`48z0{d zqyo=@;uflTb3cYv$_|GLDaWGT`%9VGc|L)W0%91*Ae%7r*$=J=E>FL9N8nZKbXPnF3E-2t0g(p3pvPco+{q4X=A8^4E;hwGRMG ze`4j$ru$-6x-&LQr+#)Oet%c~t%3a|ljdhEW@RbnjzC`(e<4sCXpTPGmw=uo1nG*a zck9j3mUAR%}Sr( zw+H&fLxSi-pZPv&CRLEdI$R7yO&HM5xYze7VOOe2dKV=)2eDP=7x{gF^Ll4Fl#d|P zds*;nsUN|BW~ZP?`tHKaZXyX7X#UHoxa;Rg|7MQ1P_2X(`HF<4zH+)vk4*sf&t{=g z^<~78iNlt*HLBe91-%U+QvZwZB)RdC@2R;n_I|?DTp7K7g_jf?9xBzF-9a0P^guEt zTe^jc<$m9o$Mu=w-LUXkN-G$TnwQ8*p%wPwFML7L+L$^z&K0>A>zRFyrrnhhA~?m30OCUgjR)=~ofvNDt&~ZL zxoOFgD*V`!r^;PhAEvX(7$J38?1l(;%Sx+%nOtN#$^B*9g-kjS{Iba`8>adZiC-Coz(#PbVsDlOC`0OBj=^tesD9GN)L-HS_ciV%=H^ zZP?kHy|Qfx)gh}j|76VC9#|UAW!wxjC0Nu}@af@!8Du_qE#2s{+dY;;rUimHWU@j z`Q(QPyR13-2N$uQW;@`^=lH8?PMKT`p2@YufzucaW?es(A8YaOBbeESO2)nge+1|( z)!Ug|hfKH%R_S&H5Ofv6Mx>}X^dHN%AhyajMPicqw27NZIH4L%pznrN=pHIC-jCA; z7#<@Es-PPcR7U;qBe5OIyy{vGs313SML*I4LyZ!=<)4fP#|!Cg^YMQb3lv-RD16 zh=R-&P#r6oiwKhlb#rmdek`}~fzp}qmDqQ@Y|x{43?4C_;1RFiaPWcRt#nuzj7V_v zuEV)=Cg}Ot0vjP|hCB|&)$&M>WomSUFjO(_`@73=U4M8Ovw8kwx(sfVI@=dHQrQcj zCbQZ0hY*Fl4YEe*DX1R{+(%X!j`u-t5J8I?5E6jleao}eM!F5(;*oA>m7L`UA_fnk zNlUfXwqvEB24tnjsZNh_*zaBDhW27Xnml1yh|J|RuLfA+vRMoZM+L}9SN#PCYCKeHoV zpDIMaM5Fd{PE$ge_|53OM#7~xT043+besl4Z)1tXc z=1;m*a^uS*KF0W$Qoit?!#P<+1RHCpYJPKb40U;KQ79}{v%@hlapDz8r-&?bu>vA* zFf@#jBw3CSM>uFHD8}fP9#li^oCO~YsVSz*hUGBlQVht44P|8Pp*{GvcU51}WXlybf6wj}3O}mJZZ`X)-aa8svu~~Iif%zz5Sre8~o>e=P{vi73 zV5RMC-5wElAjcg|>l3_pnXLCy^NnYemV-L>hw)J7V%%r4&d7aBVT4+iIK_lAma4JS z(E+%`;U5I3r5O`n))tX)Yf}vF^#+=0wbZ&)%koc1B|qK(;t*8w@|i>lcfT)uVILOq zbSkLMXR$U9yC=ECH}H=#%0DkDRk5UxN&vDW6)&9(IlM#QMV}2@uLj^gysrpW7+nfB ztEg2L;i?71eCRIKR~ep@8|WnXCJR%+jBTiJfhlV!w&C3Qqg>I zsWr4dFPvOvHQX2#MTu@su=r~GK#rG9o27`SElezx`)M3zP1RzuP(Et0q(0$)S+%G77usCHact z=zK3Wvc0p|#v6ON#s>JvE&=Jot;PMleE#A&lxh#rL{e)JID&DT6#K|YD%X|!17PnF zw_vNV`;`1gT(z9G(lhioT$ZbqpYf|X9;FuBjAtAlA)aV3d5(K!%zm^L zJ?|elPT9py95F;d-#n?KxL+944ANg(Xy(CC^}@^54jq>$;PqlfX-zZE2MBF%wZ! zq~^MP2*cC8HrsOiWNdlU+JrbJQL!txXDm69y|JM;RrhH%eqi<;g2%(J@3o7HKJaGj z)*V;uMR6UCZoUiD?+4uwWOZb*yU(l$jSI}5C103J5W?~$>XucaNt}F-B9PB#bA<5LYwj&?uw8R2l~~QOnv}3Dag=BM1t<$N)&I)TpB& zvZV3+>~|NYp7P?yBqSfu$l3cU*FGH51{%V7gN5@9XYw3iKTz(TQeB9y%Jdo>6W?3( zufT};O(=Z8eliZrc+q?IY4M&Axw{uG2-8zB&jorCXUPsy8(G$2q?Aj=uzU%*cSD5N zWstG#=75>4aX65M+82aN9}@Vm>L3C2iB?|_Z%g2bhpNZBqp5gRCGYW6`xO_gZ#Jn` zHQ|@^^%%SHqcgAP#hZ|8laFWTZm`!!eswn=AWnKvOA_YsUszmN7&_#WJRxv26M+UcyO zcB=urmjC{a1pnB`GOzyzPtV{$wZQ0rc_fyPO4rL}=>vQ;Ds)Jly=tYvIKLgLPG#n) zk{_n4ADk2Q$DJ!XpZKjSa`A1e*Vza!hR!L(Ko+PXg8OeNMt0wXmnuiDYfvP0E}WPdVcb0oGz1Y)WOH~GlO{NP?LU4fPflN z)%R*Sdzcr^5sUHp&$xi^v6E6lBztslqYDO3SH@QT0b0{_95V$GteLgSQhlZ7t8bQK zRlQZUHcMX{DGAGg5L~kR0#JMH3%Xd4o;HSXT z+pr#@-6H4rT%j9P$Zq`>h8m9{=FkrZ{vcYp9Uw1Cku6;u?- zFXly5r83oK+!I@>)DkIejL~RPGy{wz2Hlkt z*GXfMVEsJDj<>)~a-3OsXptWZMV=rcYw*@y`4&n46gK<^Y4)3l7JqJ-Ut(zQ|n&Hln$X>*KVl5%FxJzYC_TTy>hqukJ7o48Za`TB2**pBwX=f zp9&ulPF(B}Wi9TBu|@Ho`T-Xva9beN8f*BQ);sp0yz$c)!VaQyCgsj$rGpOr;5Bi$ z({p+oXcjhD?mnE9&S@#p{*_xL#zKCIinu){VcI;#k@@_`wXw?HKayQ#kX+DS;Tfba z1_5{2d9#MUUgpJfkAEi2=iV!bY;zfKQ*x790Y>ueLJ@zE@`IE!R4Z}`DMiYn<)UM= z2GbPKN0*jM2Hm?^)ntokWcDXK-qK~1(2CJEWRxR|+tZY^Q5M)r6tZjWL@wvX-eDM( z7C<)RuQ7pUmKgh4VE!mZ6{WBBm>HVcb2QUY;z*vVO(s2SLk{^;Ks7MN1j%UA6cfnr z{Q(!ka*z%NUwpg_q}hlfkZG>a~wy%kRj-m$|bwbHC{n}V~8 zUjk^$AZbHCYYAtdy$ERZ`{lK;!-!AWJ{ZtdqS{cFLGrzI7Wl^lZmrYz4Po1L6pmg^ zujQknA)qEj0ZoDJmW{txknX@w$55f&QcQR*=D~M)CP!Gz72>F`971eLC^id>w(1!@ zPkA`o1U$kgEwqZ(Jf0psel$PT1`=fC_jvt$MZO=NSWn=hu4pa%jipa_7B$9h&AQZF zC&D~h6&?6ccw5463%HBQlM!Psse2*eJ+8pMz~bB@J+6Nhri&tDmxOOuIJ1gw+}1E&IlaYj_f4DuszAMb9(R@ONKx1MbV;*1&DfWutp;8* zG`N9DLR)!K+1xQ?>?US;Y3-QXPzV)qV0-;Mz%L&i2=lA8nBI$qYPO<61wzG*qWty+ zOx~>-%_&~Fl@GE? zn^~Dfnl1zazw||!j;5L+Ql)95A_edDZ?}LmSOv;oXNEWIzv;H@7OTgUXbv-5bEnoO zFIDzcLjXnD8r_*QXR4>rX4smIAHWv6$=E~o;RGop(X0TL)TR?^zEnfDm0Z6-&0B9nw&uJK%a(wq>=O!-hVndv_sY5>lELZjujGaS}AkdOU%eHNG zRhMnswr$(CZQHhO+qUiL#r%j_{KYIY@~vM+WZpOjAy>%})5_}>o7kzabT#1pF9`># z6QloH%S!&a$zK{=2dJh!=wi3r16KYE%>7Ud$0Yx6ls5T+S9SqzTzO7OeC($Ttr$U# zZPgzE!{D*R<$WSlprPv#ZGS=fNZ}P6g%~u(hE(XkrD`AF;t)e*h|Gm7bz)aI!{5MHU{|Lx__-1S!n;Q&nzBrCD1 z8;~rYf$+;qwW~@HROf+yRqF!(JQ+PVTe3%Hd#lwc5Mqs2Bq6=K03lFMJK8KlY^^$o zzh6Sik=@{=RV8Mo?g!%b^?9FZb4mv}(YsqJma>%~49%}DbTfO_>%?bH71@(lr^lu5 z_)2bZ$eaN&4>YPYJRD4bV^1ikc^*l4QbdvEeOyWwUhR4ltRF8qxtZ@{MeAOiIPgmC z&yrY(*22VY=z4N?@P7P~=toa6?3)eFme)x^V|2Kf$>wH#qibhhvayOKyz@n|vx72sA<5F*yxXh%qwi;|KwFa;pnGVd!O-u8B`0~x-HlW;YA^&(>$}Phjx!}NGT>#)LaK1MB&>DEzdri zA7}S9D{zr&K2SF)ISsJ#KA>u-p|c<5%86u4cwdF>F|>0rav#WZS1DOoV8zXq*`~80 za2UV6)x3h*y4LR5J9IbsA9Qv@x5%(HvsI$S>x57%w$nBx`{1&Y* z3i%eW%BxTf%3Tjz>?<>?-u(7nR^X!Lw+VQN*JM5mhUpdMFPno=(S><}# z=xZe?O0M(uZBGbX(RHcbD9KpkK=;tvDMNribA&QtxV@*rRs;TCkRfO#8X$$dZ5+R} zM?GYGt9k7rz`5#A9CNgveoJD>ms+X3=t+cwEtu4bO;^}4$+Har?? z63$`Qman@2r8<|+^Jc&!07sY|+?@W1ZYYRf9?OkJ3PPK?6SGCZx>9^@$XmWGIZ z7VS@{_nZ3SNzUJUgU9ia z{a*ERx6rFFplKW1RQbmEUD<2fY2(;MhQ6LPm%vJ@bNre7vOA6w>b$PC7mQ(oOY)tJ zN<$w<=t&is8Jsly;BUjrYuQ{YcB+#b(m*7NyBBb7{}pQA6)rW%tR_h=5ezW*{1BjU zI)+*77>ff?CiyMWGHj5dvNs-!sb2!N%QLR0$keK8*|3KkDEH<|+=Xx?HcW#J zC|e0W_SwHPrkMe+3Iq7LDkc3V$SZ|$vb%WV9g0lzsP(SHT?EgP6)K8}FlBs${Q_(9 zw*JIP_WjlnZ?uA*j`^Yma5=38)}X(#Sm`+>Fn&b1#{xI$QHdViVQVL891$AZl4NDT ziX&hVkxat8KFzJpbQ&jo^n&1ke1-{kwV7kZXsM&P^f_7GM0S5o_;oym5W6&i%9B)f zO$_5g5P9a30qz;V@esu<`x|!t)+{DA7z@O&u{;YN;A3>wyeQNoUJr8W^XTMr{d?{k zg2F6_C(e;hv&x#5YG!oejLrQk_S7EG2vGwfecp%pN~*No@R(*+U(SGyANKg+%Wf*V zs5=lUk{JX^q@G_@CrYY*d z4U@n8W$StZhdNETAB%#?(UN(s?X(pUaXc6&5pN|n9l+%-U6t&7>H|jXHc4eC$A)Zq zkrzCp0e`vgFKb%1;Z#V^44V|d@T=T7PmV;gRK))ccxH zP+pq1$kNs=tu^h$KvVx73m4_*NH7?~NY8!od^>#=l*$mi^Aj+n+pc(H8J}1hQ+lA- zZ7B8g!h{^qHwmqKI$ssp#+M+Co!u>hXM&b2j8+4T8 z+^69(mJK8`pSBTwG2>7x530C@?xg4JS4U9C3fsus{LhS!!on0L)s&$C#~k`mVq%!U2(A z$6pLi*CvNxDhIxd2W><~SW9QZcD=KauH* z&kVNko-^`$oHeu9s|ZT6=s2;gSChzJXMhtuzR{?=6e5el8|<=hP3&s7Fr)p!co>!6HYK4P@mxMp%Z5_rLq-0m@!&Q9 zUv)(3InPHxreBwf@l}`Zv{rOHsw!e|vZh)v*MMWwC z^a_u%@v2(fhd}PLgW!}4l!NoKFcXB$D`=)xgr{(g><~uA#GaeV{~@UNq8uu zc!|E4{_O7rTLEf{rKLjBFa_eWd&-jY&Aa1q#w`kdthG2znQAUYritYpcr+#3au2IL zl)!7^MB94p*)xy<*CVQu@*pt-N0uIn+om7Svlsi*3D9tt-i#vARQSPL5hgKP7#CT) zg(R@LI~GdfphbQx`nLZ?z6EfNmz`4F)M5K>w7FIgf;YuN--jV2zR#|D%!Q=QOP4mY z_0q$>73Loaz$@1gKtxYY&%k%> z1fVF^!yXm*OwMae4g?i?Zsj4*RmbN5s*~x78R8GGHX#=PbSc0A0Nv8G13}@zzosBz zd7HI)N0Oe%6lP-3BZ}-EmQX*00*gB?7=PtEA0L$A=1-+BYZvZ7WRui52v%-r$!OJT z6K!^x(!W5L`WN1^5ntqHg))4I&NM*N9KVz8S#`Vq$ynDK=JN`4ROk;WePGqKaEwoD z2)0X#C5{(TKe1mg$TT+RtI48F89R7h^fC-)ZS{l@WX!$4N&YQjC}m4&KMuVhs7^h! zIPZI2_aF!A6Uy=JE=Tv#0sJA_Vf0<^E4ZSFUG0bl(yajTfNoZ}ih);q*ZtKJN_nr``Qm;G5kRT#ywjQt*Q9$eIIPsKZdh)WEzRa&xgy$P) zZQ{>6w3(4+ngf`M-c6z%jrcl@s<%#sOMJHfz=aUt+~N|^z?ujN=W}8E#8D`0|2$@6 zF|DmlCGusGSl1x?W{M&qL_BzT1q&fU;#@)yQE@C~$t*dD`M>nT08w#ma(8hZX16jn zgIS&ywDm~H!I~oF*72hq%%C2Xxv=JGS^;Q2k~|v8nMKY!uQ6=jkY3QuZ0wD+s~n{Z zft1Zm22vokVE(<=*6_|!w5%SAj2uB(>2*uJmFXb)3$!XURNCPDFyA^AEA-)2>R_D_ zW@P5FGF>n?q`kyvGgyXscY- ztsRFQOfrkahS<(JA4>|9W}C-y4_t*vt0#ir+1n4`T^R-&Eo&^+!#fu*uc_Quw~7#2 zY_d~*?V0ZyB-58BwU79&LwfRmAhw-k3OYqtJ&@SwQialON5hKz7iX~iIeCl!5}GEh z?|ZM8sl|5Au;=X!Dv>$bnW-A+E_Z#{D3^cJcwq^9#wX=Euk+iE=rV$eY1WV{LvMVy zBXA8n+K|m;=6cub$*D9-Z)JsREG+|JEj7+TUyDGcdNj1Ig->0Qrk3QxaUU+!d9u7W zTwW%oyoS+8D!zrdMFyOq=k?F_(x?KM`83b4TW z68|w!(%~DSRb2E>)rwvi^+mW}8eN!pMwl}H=8c?&1URg#Dv5bKX;n9p$Zr7<0`7Ea zZkKt9HM*Nf6A!hPLUQMz1r$Ryr-rfS%JchyvQ(EKv=?c@sKZ;r(5EXksuj|Qaob+m$x;$}FLhx=X6*F=PUz#IQ4-~I}D#Bl8*ZRVu1 zWqj}*r1=|dodHU!jcgK~v$JMy+q&$ZCyRsN1G8zpbx!FTk+TV%wy&NB<(1~Hp7!N| zFrO!^!eWeobJAQe%&iEn|BI+rB)g1mD)5Aogare@JKE+#?ak8WH@00!`}@N42niBaxHelB3=yBM5CLE9>HRd3_)3w#PB5u3za~69YqH)Si0?7-Dw4A_45!wE}@s*6G)9J5ress!m&MM7z(n*W{xP^R(ii zloBZ=5W8Y+nMEp!T}2x&+`y(5HA#9zn~GjsMtlOMI$5%q9zH};2fO1q&dYC{NZYm; z=}A``-By_2K*E>!RLX$1t&T?4BzL1Fp?D7-Ckw!K58T@~BUp*RQnjv=v+_QRo?^s0 zA(*}#H>Z)b&~UiNz1F3?p0^L>E{fgq{yYqz@9EP*JUn*N+;Uv+{kuPJ(92{~Rq!w$ z`0%_=ygldEaEiS33*r^!{4s{n1LcERVND?BKmtZns_GiD$Stnoxdt%R;9LpI2RJ&di<|$D za+z9v4_F@g)o<>+u7m><2raBXEDt_hA!YhT{$_~9fM{oExzkDoQP4PV?t=FKz*vI$ zE*Eqm@Jvzr#fa-|_Udv2s?Qh(??R26GZ>c%C=|tb*9@bqLh7?0pM`40i5I*zvkv~^P z*He`eSMNr?&^XY2?sOb&GC2AE(4Ws1O2ALDH$ZHfoB)ia{KqvXMjH&bz(rb-xvTp^ zsC}r=4xdGrT;cX`h+PH-82BO!a+xb+YcG=TD0^?}NkCa*xZIelVJiFlBa^DDfkWqk za+*)pQm0y$Y4_4}+1@Fz&&G{QpJ|z97SHD~+K+%qm=F;q_@71U<$9TvX}ch`{u+)l zDE4DX));sge?KH*ES+aI%gfyQ!UDzR!&Pi-B{QLPJ}Swjcvb4Tv{$jNFH@iTu<_Ff z<6C9;9Lz4ALZ?jEOWd5#WXbzbL0NoyA|RmOom$|YO74BeJbk`aw9xUo69l5ae>$%J z9>=W|9XfcXQWZ@(qbAKhVMy*_)bqX0dlO2>6C3<$RJtO%S-zM0!4DcqlnU&_x#Y;) z%0UwYE!L|ahXu#2dIL5+hokX_nSw)SiqhMvaVoIS_&&sRcfwwnYdFdlXFwxaRSIjX zjhF+~)d$|#UQV$#J--#opeaVyChbJg|1R_(NjB$Ds!|Ui;l!gw)54-Z1KMHxKA7FB zE2u~#@my>C5Mzl41=iKZ`+6W(Kl)?IAfOXe-fBe=T51d!U*L!Z`O*_7M6nJKJM z?lVeY!hI&z+nI6P@+%Q#ZD7+YTn7nX0c@AVss78z4K!J;EvG}5!^nN~yZ4Qq^nqWX zIjVVbjI!@$^;u3^j!UJ-N6SyN|BLh?^D@AUcdOT29Nm{)vIXCh*{pM%z(@s^rIg;2 zj?hN((#+#Dz;_HUvv(&H^~)9RYQ~>#uSEz=1Oh9pWYZucUCshOVJC0jJE4TAG>$3y zBiknF>Y)dE1>*^+ry)97Ot!{b+HH=ia7wN(uIN*;+`f&-{3*GQE;;AzT6Tj0kXH5C zE*H9$TOc-&h=+|7g+b4uL76^7032~-41F=V3L)guxRtcUOGd%-kyLk;ixE5K4rI<_ zE)bDAcOuqL$v>0c(?#ds71{BcY+$$A#DZ!u426)e?ut}5(BSA;aO)j$bBPzI4kG)e z(|np%qIplk6-LgAF1S&_Tg#(!HA6Eu;Y|vRUFLEZnPY%ifQvR4#?k&A=#mkk)=X?l z3ERbdpRE&#O1OU(G@%o)+{^#z6z(K_21tRs)8++$Q2QT2t?iY6g5;dW>PQSoFO(c> zSCAX%xLSswF1d681U)x9?1RPcJeAX>B>VzySlVy^7wD^i#gvlq;jVRO(%*$`HIV-4 zuMv%Z{7%K)0_fN9yqUte)$FHtU@CAlPRn3WH4jXmCwK=P`t5ptkZ=kYa0|1~j2xam zoHH`qTN>6Nx^d9i^24hUbp~ky=H84bBFZ}p> z`suVJM37mG;Hm9bBGqKKK0<(8G1zhk_@t@5K$Sb+U||-&= zs5m3$3FePQE~o?@BnYC5K4nAYp}h6VE=gfoYxW9W@6Mp3Zq+P*K z3~a6#^7Xz_9-B{-3o?H?*$tzOqirGJ5Yu5t(v;5dT83El2;QCq4hVxTBUQY@4L)$R z@4H}FS5HZpzUjX9*~?B~ZkO5+kQ!xFp(P0fG1b56#bJPspiDB#Y5liu#$dhzRnzKj zdIg$z;qGn5)EctF0fWe7NHPhCD3 zW(LA~M>H5J(|8egfSFNrOy@uoz_PYE(6Pw)j<-5wD5n(Sy_QjMSMb2{5&lvTw9+o; zAn7;D+e}&65N&jZ3R6U+*8bH<&`crIgHa1IJ5h*wxF|9AEB!@}-j-_C(|*aRkhPR% zyy+_PA$1dvGgzX zMH*>jeTcem0jQtIMt;(GND@7x-)m{}VjLF+y3rDQ?L!lROLiI&_;-g^FUJi_fBj_V z8Ix%%XA?*r*?@<^!80W?PL-LL!GmN8;;qz<2lihe3+lnp@cZ8|8aYW1)Y^nCy{S1L zIoWb&D?S|N={g2+cM_;Ro8^q<*zanE^&jx$djFcjsVfrWS7dJuR(?D3fOASWvl5o( zUK1&e*e~>_%^CAD{N{vBxu|6}U*uUmqET!JAqjcz=p#2B=?YP)(d#=LL`<5BDZHH# z=RgWKpIh29;fP!b@9KF}`UA~!qsR;b1uIKzYb3NFsNyk+;_q=_XUgj=>$0Km@TZ=rIKwk)qsS-AOLzZVlBDvEX??eFQ*SCkY$kHl4`_-Mf)pO%X95Qc#=c` zd?gd2eN6_A5v)O#tn~hVjfvUsZb^t-6$ibE&*mupUlY-?3u~s7YGJ;^X4mjY8Qe0w zg<}M{7Vlx;+KnU=(X4RKVD5Jb42Cytlk8(pNc%w{I(>`hOP9Db?l;&Cl&%BO?3 z^qKhsBm|2fsmq5byZFm0<16#VR#35~h_#3gOOYeH*b!;1fc%<2D zM7pvbTqya?=8LGWTfKOvf=CfvQ@r8f9G4mDWE)i5Q1NAX9d91|s?Mc_P0RYTpB!H$ zH6`Ml>o=^2Nv#vGecG(P4NQX4>C`{4;J94v?`nu-cYLBh^V1ZZfE95E zf2iD8^e(v?qARLCh$xR!4d^(DNh#lX+Zb%6`{o9inYouj{5(##92g*_EWSTM&Di2`2l-T6pESYGkr~~G z%$yjrn`Y^%{5rIz@c_q978xPhOe+0FO4^f8!dLyY-0ed9`?hP>M0)(Id}X@<{WdKBCSYa700LN4bH~oOzI^~6xeDe#2OL>E z^t}!^x$KrO{;P3q{YWlVU1a}4XOS8BEhzsc5BUE1`2_T8AG>P@_u%S;TJNZc3-$@C zY_}iZ9uv$Ce3`ItSgaM(8bLtYTkuDaZFQs4YCUaj#59yXp$6t;%cqC@Cw^Bd;=t%A zEv1DrV2$^$9Q~Me#VI-99n%gZ;QevF$9&+DY+iNV zF}uHvBv@UC#MdR9tfw(3-tvrUDic8;h#GO&Ah!Cy3ok^8WHV?) z+dytp)q^9E^!Waot#YA0P59H|%w_r08{U&38Ts{ z-v^3rI2U2*{zrQ_iN;C%Pjh`TIPC-INJ!|8q-2xlW=oc}L3l-$&k#712Sa?JY0N@W z9gKrf7qelKkn4BeN0Fb$#4c?ncT6))_NPo}{KA1fW0?<9xg$?wlv(yap+IPpU#O4S3^Xxoj zjhq0y0ArA5pG$A}kQZ+_;)=AnfyF>T=)12DYhL#<rX$?HvBzo;NRC7C-WAjg^zHp28Fgn;Ssz5=+R< ziefmt7wzT*U*ygsO+OSP9-DzJ*7L|jDr<|Bh7EV`WY(!91>^HyxwNHAImniSg`!J; z1*-%Y!3rU)4rl3^DVDPan|7=fq|NVmf_LP5S^DOCCDwGyOVckXy4NnAT7+Z zN6I$*0@u{nMM>L&Yt!UxP6juXvSQR`wO~_uHa+j_5!-RLwDs3Ir2&yGcetcNro-I1 zLxd_vfD|^v8AKb|@%O0!OnmDyL#Z?U9BgpID2Z+eaOwH92}TK>T!7@4w>2~z#t*vq z6PDyvC4pNemQ(ViG==bUCzG{!7_HN`Xb3*X@+(1@yKr+Zv+k-oAC~qq3K~&(jhPoI zD9kNi=*KoubtK5X?yUCkaAFhW$NG>)G;w+Kw+rhvYR?wq!=<-ZEvd@>rM_s1c;;Ai z*p2+aDrcPqUQCi&ksBfo+jSoSI`@fjvMkhdmFPZRo?=?q%N9`)zUCG@Un*rd8yl2H z_afvwq2G++eO$ff0LrOU#yYN1P%^^oL^NXomQ;n1vtjbk} z33T3pok_sAqNqA?3SOu6>vLum6$y#Bu+uZTW=WO1->RQ1RBvIEm^w*_AuW+dL&a_9 zUX_z-yo5?wfM@bWj1ll1wHn-h5W)6`zgBf5Dd2c>0}^aq-UUK{7?CRrJaln?5wQ+UukEDu^f&D8VwXk0C^jz z`PMchh^wnBmg~P*Cdv;d(V7mL`#ddCM8O?{L=Xk3Tv~nCW z6~!WS#u_Hz@Rb$+(-e#p7XWHrNLwed9O#)Duv395PzJjuHV2RzMq1h$!q|8)u73yt zG^Zw_AVM5?A0z|#7spC-ATQt7Tt zFb04^$cTzdjf@H!fS@L_A4=d~V7{3d)W1yta_j3rQGO>ODS$->D=fCmx} z6;KmPFaXTZ1Y;`*S=b1ARyJp5W-ve;9DrK>du$iq2D^zz229(K)VzUWy$wI_^zTYSC_@<^yC@u=Urlf94{YQWh)Pyd{q$aaa;RoNJQ z{Xa-+ew=V7AaGD0oR)Tme7%sGzr&z=ARqy_-?vW~(*6Hl{T5#gy>TLY(7UsvdSHs{ z%d;EL^ZvcY(Z%u0n)ccJ!N>d&J)eTj{*gqx**_Dj(HGRExfmrunoUea*VsZMu?PqRsc6oRc?fq>`9@+D6 zwF6@RK1O`2mCy_n-rLbw`}tpEX8;kyUiZWdh#sJCT3@Hy(u&a9%m|p&7UVx;XPBBF zCrE>%lj+xP=kCPH%<{_Pui^aCz{-(pH6Yo{OH@S*8r%$@c)V}ApD+Y110w-M9|!=4 zA8S)R`{8Y$Z_A)9{i7{?8`)0Ii^~guqM#*tUTg3lgfHm+#ql{%uCkaJKHFJenlEwz zy%Uf$HH^T%Onk2zg0FiTb4v^Gy&p*!lZV@4-)O?+T*hcDue|iNb&bwI(Nz?G`58D6 zJdBFp&Df$}1L_kiYie*8zGq&}r`?GV7POU{U)$$j1x4_mncNHC&pJD#MmyjP3N^o| z>EDYLT?g?vLbpN4jSO|*{_G!Og>P>N^*~p!x2x7SZ)bqB^zm7a)3`= zNj^Ko-$<6W{9bWjjO3sr<02vR-&dxedDLd+7RLHIW?*eE`8iyFNG^lFS62YC zCU-0JfF0lI`~bv()wmE=Ky|KQ?!Py51Gnt^df;?WKWN{t08vD= zVc2~XAFKyPKy(q^1SSB5Z_oySbP`?v)SZP#&<4PC65RxLPU+|%F*Kh6ee=gU2y7i+ zyJ65c+WVmXg;YKNn#KQ`HDCXl$~p*bNENgYQ^MDv{_SPG1a#=p=pZKr@2m%4mRLOm zbtUt=Vd=0{79csgcZ7GXU}{ERtOnqh*qiEs;HSGtEG@f8*qP|Lz2p(|N48^7WEKXd z-=26nOnsyPKd|a*{p!H5(b@d840ly@KbRlr#CJ>#0iyGB<6p(&z29tX*c!is%xyU( zv~i$PyGsYd)R(qr4@jZus8`ER!#Urr?b(mK?E%tLKY;!3JqUWhuR~kgJ2+;a@UV4L z2lxnC;m5oLZ9gi%etQ8wiQH*5)6hm>iJtdUa4gNBwsXE!fsd`8gupBA!G)Q z@e#JrR(+*N);6y35w3Q=|J4k!=ni_aczmP10^g^IRd=89kEatR9_)#~&jsIs$^0=c zDtyk+$alM-zjE=+AnY1#=8XQgnkIEPUyrx89lwZvU&rNl@Ro#xoUF1QE@*H7+|X}0 zz_)lYyTG$I-}o&fzT87UThDvApSEA0kRSj++kPVukBlxOx4_hi7Xgu8LcLMwgK>_G zI7tTHb8!*DIkLF6?xDm9-TXjDvyZlSl7(Z9iSc{$&*FEj)2jsVLrp#!=3iPYF8T!& zb>?Tpmyb8mWqWcdSb-O#OzZ5u2P{Yzx(e#;8K72)=F;`jK>*A7-1;{uFPma1^QKFU zLP*&MCB--xtF^pom-IN*^IIo!cN)9X(X9djIkxl##4w#8r{*Ov4uSO{MLL_VErqv6 zEZ073SQ}$20^NNIRO)5C>uvR?_|QT0KC@90rNU%HrN}-(A=>ztNS@ z1(WUSo)XE7;NQaiBQ{HKnw$ykn^+dBIN3pV^Ou>lw}W8`FpB0i{Wx5&&aY)5WS_o- zU`l03sW=%aG3augt;?dZw-kTPC;I;6nvh!-p@DK}Gud)|pze(ClY}ZT2OghCg(8Du zDdSWVU^B>y#%>oJ>T)MWXhpzI8eL(fmzO&%{f@*vHy+ja$2iGRi;3o=%{O<)WSH|; ze62Iu1o|CtT1#JBA(L=oqh}ww3?c!$x%_%A{7EKyJaqV)`xl%M+$8=1gSFhX0Uz5z zaNUD77MH3RY!{`ei7%ZjVPR@~faq;-#F#@2uNC7s^nRl7MjZXPHc8Xni-#OG55Bu_ zK%XqBn=$ku6-PjwT#=@90{oo>WB{xJt6cqeuH2$2zykZynmY2ze=sJ_ZRv}DcNxRf zv(WpLvvy8;GuG_OTY`PuL4?^wu_m$n#b0mOH>mrsq_{2jCam-;uASfA)D1>_I^}id z??w@J1H|os?95g+<{ovqV36V3oKf!fdf-wvHnA-a1LQ7CVRmJK78WmIyCTR`VsB`G zv(FTu(U2jvcj>z0oXY-E zSz|u%y9}lNJ4ha&&0}`#3g?(QBpuDAZ76tITlO|HuUD|SpVgl7M$Ms|DofPYg-1YZ zehYjpD;&1DAz?*ROQ2nz!&FI&4%~F!TZiy7gtXM7zjb7NZl7D4642CmkB-yuZw}L5 zJ%9#zrWB;K>~|Iz4%IQ5fB#g}(bdpssltjhMC-%s#R-iYS`cLAy6ZQkq&qlj$YGRP z{dS;Hd&~OpCz<%Bioqt-6iv$+|B@Z zj)hs9?J!%vs=C zU*9}1ickobj1|HfwuYwGIhbf#@LA1K6&)}6iv)!aD2&yi!4!Hg^~wVT%Rol-^PQI)<(RRpn+j+ZoHl^?X4(~QEDMJ zWtXhHTYoPz#!@dsG#(q$ny2EHf#mru>3ndII4Ni(we6C*tRnkFj@b%M^lV2E?d5BxO&z8tqBJ8nBmE0y2x8!)Q4$iJnow$r`XXOyHprX?{B`l+W zTMdQ4D*A6P8gyverqGgmV-DM<=j@bT`C{en#-!GoD=0X#cg0MgXe3dVNekcv9-?S)}_Ej_9Exwy8jIwMCInv^*@x4&wqo zOX=(;=5A7wB$Jg|1yUCGp@QJ(l5eiSIV&;2tZ8^lF6oO@jeF4Kx4giP zfoOwY)wjQQI4sjFJBtAMd{J!vw$nhgNt1qisZ3&hPuIUG&WE`Ik_=3|!6eg>Rs`@) zNDcg1S+>lx`{F;WLJ;b!9f5nERUlE8p+aR`1#sK*x=LBrnH{xmv5-s0f?vc!#nXZ$ zPm<@l%rW7yJljA#1sLvea{0^yt%ogM+R4-}=#Rh>mGK-g%{Q^w_iLOHuP@&qHFs`w z3RhcSaXm9s6~3_b0V|shvPs(*k&s@lt_+t(;-91HzOi{rFrGg-LSn1*N zWm}rDa8nEiMvlBspSi93msp`W1v5|NL9SHx|c-vwxZ#rlnCGi-V zr>z2XvbAeWUG$=O)~(K0QhVD*~G6#h*M&{b%L#Ru>(e=S4JnbN!7_>0o?ivxWGVQ3rh21DU-^hk!y>$^b8T5Q;( zBO{+5ih(x1R-#mrRfmAczVI2C@Dreawu?7`#M#Mzbeh>htgo^u% zjTt(Fcu$%we(n>9XNJEA_^$L}Z^4mvAUxdb`)Cp}ju1~a#<;tuPjK&vNj?vlrRY+AH;~aaJVs;> z1g4A%l)4v0gR8#37&lLv!HB@UDtfp8$B(kesFIKRW3qWs(0P}d0eCWfsh>|u6zgkf zNsk@_$u!5{d9s^oW03M^db0P|?W4I_n)Tl{kZL*PhL1!ymEjq8a#9Zus&{l~db-hK zd2fsNlrDoc^Y0I*_(wQ$0_Y#5P)~0jF+SC{VwdbK+PwUL2+;CW!m&J@S15hR2#Kq` z^hBK>6OEB|9jq;MKv&d>={F!y-X6!HCFuOH^xZcHBhB3Wc`~=GeIxoIEHb!S#i6tHREA zb&c7k-dW~Kq7C9FqzK7&d4Rdg^i;C@;A=K@#-A!5OyHyaI#-P~!B;Sfi232M;G|Re zV^SNgz=j9t6-G#0ps2Lwr$3->5(GS%uyM@L+vv$1MkKzK|JikmuM}ds1{-(JG12|T#}c5^L<5iJ-s#d&B!8hj~4VVXez-`r7UFaZPF zf}0Ha7sZ}-jC4zD!88&9Xd=2o2*Q$;HqD+tAKtUuFcT9S9U1*n4}th zzZ5)8TU&(*W$Kqla0uA>8PUwlxhcPZMaVroOfY<@l;xNnUW|fYOvmR46Dir9_S=!D zjSGLl)AfWejZl$^)$&2us9*6u7Rb%%nhW{|nNZPyl1==vP{dyzcPk|_5b(FqAb4U3 zPR3O`t$JiCIJS209lsIB97H3uH$Nb~j!qDqZZ8#2z-bzA^U&<-4?|(e579-PVy6G2 z>{KKF_3wiqQ+`dpwr-B9CBZB;ZB|yVpXtK{h0HeRhei9x=iK%o^W6A)p$+k`%)(gI z@bVa)9%(EUiri?wrXk32U?cr zQppkU_b<;M?nF$6?r+FA;+4DrEeD;Ga;`u-{7spsOjAPqX1nVx58~M;a?4XD zJmPUJT9K_-&{SUvbt67uVL5!p7Xn#>iMjgPY$y?WfW1UVTkvg{^rm+5fr@_Btpqfu zfCYy}N5tyv4tSPPB!u4aP{HG2g&aACCSoxi|MUL3_hNqDp@Omk$7CGmxQ_TvA?N5-?x5j{&}{fIq?u$0 zJGIVpfuAzhFpJgI`yAGH=>+LdX(4*ipXp6eyscE`<`auL)o$Z)AmlpebtY5?Roe(N zAQbE$WhGEV{m@J*RP6C`rf;7mq|^7{k|#zY?;+OPN~|fJO@Fvg{kV9-UE<7M3SNtpd*K+4 zKX&J_cj%H=ze)D(#hD_f=oV4SV6{!4^0st_Kh!3M-7U}u93c%9cdEPPvT}P0&75zB z_2Lnd4SsAGHps>_d!6j%jogTS+I&+``7TTF_6cSTTJC+3Vc3&zf$M&D;6!apLvqBqYip8HHxKi8|F!@R&ZTB`0@VG$2wZWaVn zvir@v81ForWCp*Wr?2R|)#ra*G?`2;*DWnpm;r?sq)0wwpm35Prxx%h4Z};qu zK0jqYKVW1`Zw5m_;73 zjoo0=7euUy^ixm?e_(&V%;B$Z0 zMD?w*_N*{!iq)+uWWl9#FDyqX;dySsSt4Cog^!)pSH9dAjPUCoUZTJZL^Xq>V8)ZH~y-Gn26I3 z?!Mn0fF?~Nf&P(th%{@n(a?OaXrs8UEV5$GlB^yShkJpW!s?-(?*ujC&d0lzKDRqy5J$}>E_iCOXid0=<}GsCsgbN;`LAcW2{G+4XJV3Xz4}2 z1exr^L3)=G@Et*=^agjFtPY~e#O3#eGHE^VABYwA3@^EYd=4Tx^($~nqssSFs%1G{ zWCp47Or7v|&Lz)mJQqV)Sb3Hr+wO5wxY5=817g@Z(vd$Fqzk*Nvhkalw=36F4+tf1gUA zw$KX0N%YyhJ#X+pr>T_R1i#SB7~3gf|1(#xN+aHtf?0P@BF~{P`P7I=aMGc9^}G>T zgE=v=N3!{XA>UP!eT**Z6coeJn#KvUtt-;j=Vwke)^MAZSi9G1Z^!T$lNkq!^xcvp zF&VuS-yL?3xhmORW<46<8IppZJ8X@>_8{wCU0TOdGgEgY|AS3pXx2w=S@o5Mr+j2x zu?zlIjfUt5zaeB*@@raDo%e&U#UIU;BccvSb_G7l97&B9s()9$_SDvzU85UB%abWy zTg3G058u-Am!@V&$*U`iFP5{L#OkjvL`mOOLumhrmKHtWss4`9>$+SzN948oewr=Av=azv%{U$lNltTYk@mjG(D0QXg2$A6ehpp2DUY8%ypdIb;On3Kk z=ouSu3eWXIX&{tVT=JY}NnAGi3VS}18cAyjK`%Aq6P+?>KTVS}t8EroiH^nxIhCBke8 zEuW$>e7h#8jtSyTz%8@Hp|%s}NCGnVRV}vX@Ts`lm>014l@d(;PiKfK z2e0=y)DAhqPTq=o{rd|w6@)`MeZSyH?G;z~3g~w_0=6D6XjGKoOx6rzhp_TE))m$m zs{+t99~;%49D(2c&-S7e6OQ|27R4Ore-ky zwx?-NxwK0;#SQfnyq;zFkkK;RdiMHvy6$o8k3VHamt{t*#78`8Y;seW9nKS#%-+T+ zA`E&wI!spYf}=&1MmIO(JNnc772^`Ar>JUywMu+(~$S=1EdMWG%M$)S*c$RbEYQ9Zwnys#U^c2J>j zD_P(=pHjl_dE^Cf8wLow^4JkV({9rdlX{SdCK zMA+mBuKbA;DF&XTcs2vu_)?op9E7SG{PkHdU=JC%6uHVOI!m#?3H$ds3sc^C0n1DA zsCe`vaBt=*ZS>$3D%^ zHuEKo#!tWI_YT>)*38XfDQnl|tV>!Ckz$oguR<_%bgpTuQtu;;RLgl}$lwwcLI69^A6(@z2`UVQn%g(p2>(>onvhsVS=BM)OQ7DR7Z!@_c zJdhs`Uu6%Zy}6REUI1R=E=!V$>k9Q`;8@QfVttpnDP=Lo9*!{&DuMYNnr#$#RVqHj zL^9<}Xyrh9?;!92Q&1TSga(S@ipP#>DfiXGr@4|_1~`SjS50|KjD+eR$?klQUWB!Y zYah@jMMxb4a*>0zJ@Tj0Z{{5dUhE|&py!g{pni9jYuyRcGKMzx23jtb2*hC#u)9ky zd)kkEg$(f~7dNE^rg7>_xuXuf$qJ=P#`hz&XMr-32(2E;8L!vC^_CH1+84q(x}KbX z!{A9b9AwjZuV1x{+dpC#2o*a98pW}daF?hhO{O6Szc!d1h)ULX2`_OQarGpxb#KWa z6+|U-6kd!bqzNWaRRyel$Y$iOICoZ4wh?3845)N=6lxRiI>!2#tu=(f-lL{~XBo77 z$O*H${-J)e!WjZ@cL2aa(oYR{&W$wD{EF^mxyX06TL~vFLPAB+ZA4L8>y3=avl&Zm zqn2o(_q){~#>1p&)jKFTE(neT17-9CQq%Kp#p51Ua^qxwjzfpQNCvN&dea~0>(2P^ zl_H@UKo)y=9=_MNJgo^%VN_CCLmxiHoqvsXs}vt?NMbkfS=SVn>cqTFx-X@0Z(rq5NyaZ;a8{S5U71vH@_;L)o;cI_aBgtWyAt&MoO^f0 z_kdrO-~p~Cs57JR-1Pn9;Ck09z#=C*2|FoOz98|WAaXa;O@ok4rO&?XxNxW-= zssh1Ae9bh(34GV#M?~izcZ0`y5?K_iCT=|6zZ8B&&J++>vRn;w@9KAqEzf*lJPi0a z0((_S62f4~eoE?IiOPqzC%~;OsGk7b2Gu$Ydvqug4vzRyp7Ol*@g?fuQXbXITg-P1 z6YFGeFVM<7hl27UMx|`cz9y1ADZrliIqY9@t2a66z-DAYx9WtoTIsw! zU&^{cli3q1nYD( zr04+eXEQlu2EG672Ui9fHXI^IJK>T-Ic|-`q?}}q&^cRbCqSg=RFy7pcGBocn=IDu z=@*ar*A6UfIy1~Q?z5t+ulw@qNLwX82XcY{3FD%>x;Y3ea*c20875Wj z=@wqPECqJ(wu2QNKxM6JT1JXZjl*?v0I03sm6$%wwLu%D-bB=N*d+{}iNEvuNs|;k=c5260fJK#0D^F5m~Z9dYyxw z`odK<`y3=^&L0Ycklt@O%Y(Wc!ogxZy5vMsH#ecz{-EY`KXI}a|LW$d&XkXrlm}Wa zy!;m-et57CJq`I{ODg`OZ)_JaTap~*{9JmAAFWh|-}@Q%4*mW>7FsAY5zGah`ll2b z_SZWd^z+h}KW=SXnqq|Rq~?|1{46S1CrFzw=dZ#ygs=4X7 zO4aP$VC>T3>k2o&^hHVuDFT9HQ;~cf|2~?K+ZnE<(Ss&LJ$$8kXmD+!%TrlshSnTD z+>4|&@I#a+-JE#V5BK@a?(aI{aFM(%5#gU{0_P-KBNt|sRh2|ku)I^n2#4zo$+O9c z#Wi>#I1soP&hR4V0o-=JO7+wFn6Dfdg8(JenI*2nZ))E!-9ET@;8aSHVG$UpWezhO z*Vlccc>hUf=g4?;{w4+ra(7G21?C?7$`W4Nb0jFo8d69>A1WBQp`?{zd!&E~FWS_z z*`7PAtV*=iT{mo48Gfx(PR)Irw(3n^-iTvM+$PY4u|o}N;L+0QwiwOgJ0Y5ZQBexfGQkkN; zMoSCxElQ-*Yk_R$>7Q0w3e{xK5p|R9f^ZGrJWP|WOr`qjIxm4xs;{g?5=qPH&-7zyqXc*8Wi0dP1aK+XsttPPTSJ}ne$4TrH9QIs6A+#U zO;gQQluJlou@c9y{FQ*WU5z3L@vUb z_PT)i*AHHq6d9LgBF282zB9)iC1Y&e0(+Rqk+XTEe2T5a(%6wsOUI34`oavHqu`x6 zypgmLew8ER{2|>FRS@M|Gb75n@fRNkmid(7z6hUkoXqQn1al95UAcY2)C2McgJ5lg@>%McgVKx0-XLC(g1Y&2r?Lod(bvHJAzG|BM z91L9l^;Y)QIFOsx1jBF#7dqeltvpgO+5=dyT{J%+OB zj&Gk~IZOA2*9Hk3uJj6Iz7-)DW$V2$S1wH8JP*WI3Ude;{&eJ0hcV7XGEh8(h%e)f zi@@7?KSraw6;Gxs-S?cc?+Y!(t)rxZ7|5k_-D^{m7cj@?wMd&Q@x^p{%|gA)8g+uy z0pF4y_uL~r{`Mb+y6M?4E}1&EF4SW@hqrGdQFa`ecr}JpYRmV-C>n2B)Q5W55%@|L9}4t zN^Hrmyx+wu5jm8W7xj6RPD5;)5)cH~Mbqco2r~8S_@*02?_kwD`J87dde|`f6fVEN z$RR{4FjR>P6bR{?ZsyRe|5b3SzVK=2VPgz>W3kX!xM@Krj9u#^0bNo}6)j75tT9iT zm0;Px_(Z>Sqv)vr{dU34_#|sO3BXO;6to8JLO-pxWNH&}(d}|0*V6&z8H? zS*0tjI{LcMI^_QBoo1n1&NwMQY2a$3e`@$rw9lYJ8FN$lE)-SH z<)aCqFMRuGl|@xOfk?fB&_myKys-rzK*W@FNP?gfH03*{V&Gfl|f8jWwV-Q5@d;H=D2fHo@+A4 zS&S!BmkS+WN>Quzo*%}_>=g08!m*_83kY#)1E^CA-R=FDb8Q8jCFj`D<1=wzh zHo%`9x|JO+R4>RUZWKJJ_w{H$GIDuCZe7~yb?$Kdst}nEYbhVGVlR($a6I2~;C?!t zH?8@^RVgFoSki0cur_HC7c7UGrmQwP3%usHU>A>6WNrLuC_iscr$RW1w??vSv-;IK zxfM#EotbPoxRg<>CJA&y`Cc!%HAKjUc6r)KSy9l)fpaNPaL+T!lAV7IvX5uHpMkJ8 zZ>KFAbg<-9nP6HX9O&WQ+`w#xxam_5ubpo8-oIaqa6f?^2O=ePSlp(;BUQl4!zNJ? z*_ENHZI)vClvX690(>E@WGrH!fP{IIG2~t9J2UgP*VI~Nmk~0&Z~Jrn9Tk3tj{{^f z#<2Q7qnOcxATMb7H&ZdA4G)wKJyQM8Gs_ABrOWhdQp&ydMCAwUA@`rgmu1Ivjvc6X z5%#gw*JBsl^;aDx-Vo@bwra6i7Iw@K!ZcI^AbwnB&)3UozAO78(Ta-6EL{+CVEt_s zUR}dM!!gTBNwiy?5Ko{bgbb!0hmSOFtZlbp8akEB+}I}@ zR42k1D9<=M-sqMQLlewa3ip;|9mYLYJYqUzJjmr(Tk7*S$kXHuBw`}MQzyESC zzLzG%kH}E2@2`<>(ZIJ&Y^%hYb?vuLOBN{bMoxca%Mx&cr#@xzWMmm^ePNnZD|EhN z1?zjJ6WUi>Ly(DO&Y&BL$SHGa^iG}Q)U1!?p;e#uW3s7?oPc^~5HTR1Ws`0?021oSo3^1OJ7Khi6-z8jGaYU-a?@l1zxnk>| z&}lfzEK)9Zw%w9rR~1m`@ME#_7PMnFf`(;+8fmnH;@V&gC0WY z+e~JaF*9D8<(tkmuF+U)^0)Mx-Rgaufy;+G;#zDVk}lRVt=Fp`gqIybqhbQ|pOe|G zaK+_XynRfj*5vi!G)>0~I&3)jJ16G21-&k`x4)p})9M7nAA+pN))+@laeHF{DS3d9 zU%&Q>kNDnUzA7AF(~womgAHs}$lpT8m^vFTVP`0QOj5F(bsCo6HeF?d7XAVBC$3}m zZPkm zxb331?}plfCQ$CWGN%J7vlDh*vRy{cLm-gq^cRvk^-p6BWR>mKYTDbl`jbstCS>U1 zL=wnbL$b_eOfTIQ{fWCI?^f?E&Zup&9EBwp<&f1k!}?FGUv0%DH9*u? z?y(>(xjHuke@hv@nXS99ocrTT)QEmL`o*{A5~PB0Z7qj%?i<3^x>)S-@u-WKGv6!y z1&b4nn@B%Wb(wEM>y0uPO!f=}NdGzzyolOHxN--Dk(&Dz!X!1%T&%f!q(I`rCG|zr zVCfpZDw*Kc?kA#ZyEFb!25Z7wC9IDvyFu+)#h3Q%{Cs$8@6z?_Q`jIeyU?3=2*hu^ zU%5(Y_6Ol=KSG<=W!PB%^kjo*A7>BN_UmAtjv+GGoxCZ8jG??|w^~(s+;Pmp-ONmM zG71$~E3G3hrL1QZq>Q|S@VT$aWbtTtI{#92xG^=S&=SYQ2&tf1oBI|twWP!{;6izb z=pzaPc%N61GmhHv{y|m}WZHic3zHji9}&qEtb3KKgzb27f5a4VoTo65WYR8z(2j7E zF6pW)`$o);sP@<_D(S>k>5>)OVC65%W zKjL<-XTof)LpyI_<_>bersVhx`=ygRjlHixOzF zV>pu6=`mro>mf`SEGoX_gJ^_zmMf1{1WdcDGlIp$U482eaOm74t)ePs5Co7D621b= zoEf$Krgo|dg5Ph^;89iTFZCe&8gGCT8Qguz1`j^7%?5G3xH2kPL72ABhOEKxH5{*p z7AKW*6>`HfBdCW1;Vmo#>qxI(4c7Ef#^5;cBk?tnGA+FqidT*L`Z}|VcBtDVZK8u>pvw2-yE~PBqeLLv&e7AF4LIW(O&syvWdJdLD^7NuM$tp4u~$;Ne}}a7LUApp&du zA}>2P%AKR?ReVKPPr~0$-Mou?EJJC5rc=H5Tv%ZEP;h~0KRQdN5THXq)XlcfyVOXFY5xLa_lFE(sv4V7u=cFgKEwVN_ zpvdN!Pec;slRe*9UkMEawHFiQKGnE5U7hb9zOf3+s7wkrb+0=E8V7WB&z7ueal>6O zdxw>T8TY6Xa8$Sh_=~>CTv7=8=e1UJB$}{#l~k3bNZldTP7Y$a%+~VI{44!jBh8lQ zS4nml2r@c1sBnl^)we&*qnI^$R7!7cH6f|$yEl4y@A~o2Tt1vxs9ySIMV+LvukEa= z?^#lf9!x7vTZk`E(|1Ggq@^n4xmukTilHF2RAZ~4-dok=+B095r&Mi?yP~{`JYS5; zq>!3!$Z5!nD#OE&|79PH182^Ib_g@aX)}WLn&`gQJ2gG}Ac&za7?*@uIy* zgqti8QHq@zt)*2K)ayzXZ8+AViA9;~r{GEc4HR(;B6sa0UGcYI*2MDeb1^?BuQ;X* ziFg;+nXW(lGuhgK!xrJ-!$lMIm)0rJjWfy7kb%|{+eU;Xw>z{LBZ9JbQ$Q==A@)_} zH)TE2F0l#m^iz#vRt6MpoL?~(95#IcRN8a1hzdz0Uiq%1*-{OoMTN@SnSB!`%Zo}#AvuttPZ z*n!Nb4QCRg-o10im%BkCLM_!Y0O<(5PpT4&Bp-RMP#NPl7^vTcw5S@*+EQ5jEUj|I ztJ8f7WSRBEAr6Qhg%EaZ$GmTz*LC5s zn}H+U1MWe^?UM5ts$Y00Vu*Vua16~l3eY4N#VuMOTm?+h5M6t5KQ#I3W~`i*NFc6BwLp*iUzW0%O3QO>wp!jS2y885nt z**?GNTX^L|TyR;d-_EO%yXFmrk4=TreHJ4E+b$?Qhbn%q8x}U%ax(oX4Nkm_t;yM& zQfJ9rw+Q}Se5$N@E=Pqfe{XPkOQ^qMC-Tg>K-Fr0k7^#m$&*+x2Bs9ybGM^Z!ty}7 z3@!K2sybs*Db!0&BkEUcvQmOD^>nrbAkfOu{f$~pjLtUzVf-4f&;Ia^J#oA$Grliy z%ZL~LFn=gBC_hH3qFU)j;70U4qW;#E89*`bE3g>xGycW9?d%U2upfRh(9_k@DR_$1 z;+3?5bk6 zb~5=N(Y@T)6=$AP=4=L{Q6Dw^8)JB%1hbi%4*6#}mHOhFEtZ**mFezvsy++$VU^RW zY*9-^hFsQmFQNQEHe3!>cJlUZjgIPQRt{zc8xt=!{c_wLiBf ziHO*Arr?>5HY?&+L+whw9%ZXLI1@NG+|G(GYVXolGB}<}<-bRBSuRcGp^@f<`$@?t zWM>a4vF!G_#6U8MGZoLKyUJ%6fb&RekXc4aHA~Qps&IAEj}!N$H3{!~8Jm_IL@zF! z!)4_SA}JMv@u=vklVOOZ3xcecw?>|Y>Iprxe1kWYaNtZC97?T#4@ywwG>Y`vkjy9p z!$3vD<5C_uRN5_}4!<0NRzZ8cNRMqT7M%l)BWGX9Cl75pH(fH!`sqSLw*;%}&u^*G zgz)9x_uI|K9`n>~Li(Mu+;4hxlUn}DXcU>PX<&Z{+e`_dw!rW$=HQKZeehOR140$` zTOjMa+JIiV>kUO7)Xx-dDx385%zSp#V$=Huu3ORsUhWT~BxRtV7-9w~!~0Aw#{&k& zE1(jwFHskTdmAsb|-Tf--~5OEpx2=blD0UEiG z8V07Kg$`e{8Yk1##qn5`=p`XYn`=nVCtWl>6YJQSZFXXVZ)|M3m_4V|0&t-6D{$B) z(g=C+bzfH`x9~dWg{dGqXjeMTAKC?tvgWeR6U1;+nMr>H2@fME!N|LmbuT`nACBM? z_Lmcc?xK3T6+BMQIfr^Tv{i=;gaW%I*Lo3d5xyb>>?SQCI z%(=%FoxV$jh_LqrH5PBES#^^_nYC(&#iJf_^yxZs!jS(G@nuFl;@y(&eXq+hdN=TB zxq+O9cv3#pt-OLaMeIZGf?P@a{sw<>CvAQN1xXV}9?7Auj#TV$&xVXbvJ9K02qCfz z#U~GQVI-tG!h2fzv;zshATouwJV1wnjIr(nub-pZ%LPN4X|jST>T%4HhZFT5r4<@7 z%ASyoe7>i=<-d(bOEr>*3{8j%xEthD@v6ELbs|Tf;zKh%ZOr9-NSziLq4u{=%w@SS zx!Zy^V1^?ZUm76UK;2&WW{EuVUZ6-3Z5c-Mi_?=?qKQ|c$|Pcc>+p%j(^kTjPY`|e z9mf$#u8&Ze0XgOIGRtSX2i#bwiQ$`NQGc}W%&r7|pG$Y^71bR53fhWyKp~&LzHivd zWH*-`kt{odCH+RyH-lILi)FgV3b{71c(fGS-#m4GIrc924OL>Sl)H66ybI_KZ5=Y5 z6@9sqIm(GG*fel`;u{^F3Rn6__C$jn#}OhcaX*VNxr4po{}YftZ^3>xhIV}|cvL#7 zpWwUbZI=VL>uzkn`FspdgV5Pwug7QS0!rftQS(W2TWs*XAeQ_-Gle@0Xwt`EjxWe5 z3@y$KNRGZlQn^c5cnWPQ-~1^1!SIwiV_+e$=7ef4yaZ|nnO>vr)Yp*oWMA-^gbSMp z`WCIfcJBT{{}kC9uT3_5(I<RwM%pZQ z2m+I&&pVNhk)KkDX`tUj%5*_lY>(|I@OM?L5cEC8>n>%>-yZvLdct3Pp2Y8^5t(Bu zr!u3zno4|QV4x zBBQDb=_z(*b5o0r8$JG2oxZn`ZEdnfkLPs~vG?L*7)vLH7|EosAKz* zPl*ET_f#0E9fqwwfIE+lhpk5^2-mO0FB^g- zVm;aQVBIJKO>DMvG{vTK#rT+f-zIY3Vs@wn-}?zRcPd^A<=3no`JzUH@;3__zcR^; zA^D|l`^8L3c5`yubY^mbt=Q9u73`}#4g-U%d)hb?^6j7#wYe%=r0sQrvh;8eki z3PouL?bq^vq>cSu-p4&nuSLi(9t^d%qU()LyM~I_|J0OT(Yi=Yg!#6cweUIp-4xn! z$Zz@<+;_Ku?*cG3Mk3FRey-LdXQ_P^?;tiR_XdiHE+cj+C~ZjAQl1s9$v$EjGyFb~ zMw%wMtKNfqRTfa_i6~S;s=1<_6}x6vg?~HO4}cv4?PIkpptxcp^0^O@!BZOnuht6x zb|wL=4QWj#r0nbUvf`SAHYO=;MDar&9K(X=z%uB!ymr1h6+^J=2qj@ZuO^~u!dv>#}+ z+jwE!!(vJNa&Xv=A?kZSIJb>CkJ2y6RY5*^4*_O#L9-~$U_`BkS1Nw< z#o~J|MC~vwWP#@}6XVQrk#upp@Vx1Y=T|k^jv%yTLw)|y7e`mg8SgsMECn)Sf@$(xTWPI-4qAu#iys~i6AY+X}lmr9c51jNhN!$dwbFLr_ zIEz^R`JIH%nIV$>j^9i?mgDC&N3`G>JKGAhE1lr}{0FS$`LgWB!{_PqI>q4MfQkXC zNOlgG>h%UbH#!JR)`FeEjRrOtv;KMSp1&P1{_=;{$HyGn3_jNDS~FAM!tVfF1PYvQ z+xy|RS9UX(Jz5DDPs7?#@9<}yF#@Ko%;)A(m(Q1xV-qVejUf?z7s@x-S)bhh4uo8s z@NE;uoGs&QS9we$*^XR3ZfZ6Qk zpN?gixHX`;I%kQl*%Vsc^`v|Yy_`WVK`Ak#3F3$p5TrZnVJ>gO-1Q>vLx8sQb(&T_ z_`z4HXKJ9dlh@To`P6S%bM)i^d2%*MIl9(o3X{W8yxVYF2&#?qMTk@jmIvowXlQ@a z$ZI6|jt&Vq;~I~P1GN8@1a+?NPz=^y`0Q_}ymb7gjKhJvUG+| zaECvg01;hpUha}ttOG0#Yl0|EYIPZnHwoK8xQ6-R4{m362?+{cmgIYeZ!hQlGL(mf zR|)d;79>^sZCPQ|k4(K5MFBd;-XlN&^I$aNYNB=o7J;evB-1=!~{kX=<8gjURiK$G=jtd`As9;tRogRJV6hW_K`+23#L+vOlkVQtYl<`Hg2^dy`IB-a5 z^XTxi70G-hZx{<#S-m&w$GwsB?2-p*+N72M%z_lfKb$cnn5_I9?0>|SthTns)MI?a zXf1N47x~liM!kAc;Yytt$kFW_|%{KzUnFn z+AZC#np-wXz)yudmJ-E*iR<$-LpFwlZO#{#xWIXX|ET`NZOhUpCjqXQSJX^s)x5nfn7xYg+vHdtICdeYdhjOH)K` z!>1#o{~YXP)9>_Yw&9RkOD!1tISav5$BUK`x^-vr-BjE}6J((#jZ*5$ksoQ3&?18S<^M@Z+(y8^fdW7@e1@_!2H; z-kcp$9ZVvDlJ@*Hwchf|zc|$o4Tc;lN;ujwW^fhdftuTn?;_~H`J`IY$ttGTPXT&d zjwAf#Z<wXSYyv<;ro2IdaT=)Gl$vI-W$ z;m&EaFv;j>>+Y%^kk23`jpBQZOKyu#1q`|6ac~I#DkZ7|zKQJij2&h9Vag8)trHJ5 zyCysid==yUvI^_q%6>5L2?YqHeBgk6o{%y(Gp0O`x^;eqK zy#o>GqM}yflfGA^DH7vpt4;2r0~7?LTL(NA)FO}AnA3V)d>*|%;ae#+gvp#sBP3#3 zcihGUY&}%UShv`}bFe!n6egN&lB`DQK z3P!3_i$Uhb!DkGP8Zf_95oDkFiUPD~U5L`_PQ2}Y7>$+Y$Of_uSQdUBmBA>`(8NoISTFZey@3eD@5>+d3>dW+7a<3z!hl}xKdPe7ypT3=jVW2ncCj10!u2n86FI&4Dx zIVr7|0J9)kLogPX8uCc%C2}tEUT@(JUgAOA!*_8phFj-hgc|kaWI9(zXSNj-E3vPZ z6J<^Bf4oRXI3r1(X`CJ-k$cRuFs2#G(;e))c7eRXI#>Fq*d!vps*ZL?Uw>X2b7o-K zt6nWh_BVS>JYz1+Ooa?r?*9<)KySas(F%md8un+O)qn&m?Tf1RY3khkS?E!bnH zAWx+7(1+&uV`FAX`5qi|+HjOxo6I6eI}graAG``t&;xpDi|lD#4kb?HLxj!0a!lWc z9gx(uXnQ5&{wsgxBsXaC6WS#5YLD*Cj?8SE_WY~zog~bn8bY?CI)Uv?CHk$L1QJa} zggZe->TS@qCp&tgpmb2UP23&^+vw%(&B?OI?*7-A`J7uo9}GUk(ta5szyf38wU z3eX8OXbM~*JGwIl5eNM(GMY@aeiKDX-rW| z_|~b`{OEgUOBYSX&mPeFLpM$+jmbTu4cXv<5TQ^>}Nv8d@O=v&+@~UGUSqWG8d zYW3A8RiG<9w>0$f-%D+Ia6F>wodBax?6M7f5TXr(s3JPIamr!%XV*W1uutdnZqo7U z%OpM9Y*urny=@OpfssusH?xh5a)%L8XB)b9n)3>IsBdR*?@c)!&0Pp4j;lnvCQ!@# z45_tTyvhs;R#XrBH+k^XpWY98wPWTSaZ< ztA12`Ku;!fjk36=yj3UU4?di3s|y)-WR!2PLe%%z zyg;BR-P0HUM1@&q(+J|;u?Ke~nv?IyaLa}kCKtP8{_6fQ$fqH~)M}s%5NI2zmkkN_ z&_otEqAAuK9jA*8zmnJa?1@lCNKa#t6u8Q<-_oNBSDxy$l+!E3*lKCQQbQP#c6|>N zkHh~RBtda(s(uS?CUijV1Rvr`KGX8MP@lt8sbdgn-TBm3|d!8=YWuEx(O zDZ%)wE*gK{B782pJ7tFB#7fX!=g`}arM{-$c$Q+r%Bqw^TMXr#{fP)b5w6zh7`h+8 zK(7FA0PEd)mJ>TJK>#a(FOC}J$hfK9xGH-f9ZJ{I%JFwlmo<7qb=)~aBso7Tz-QE} z;9&U5`+2sUle_9)tM#s$7F^A-D1Nmd&gq* z!G4!7s=Y4%Ne3UV8Z>yQ^h z4W7TgFGWgyh7-`wWUO1vd}Z>^%a1zGuAMf^eg^s8qW>kWzKrLR3Sq$}` z-`Kkx#i{cx(f(XGkvtLU)CwdNNM5*FNxTNrS@pEXbag@Qz0qK@S2Aya8NQ34&RG`h zhqGKQK%~wajE}(+ha^X)AFJ$j0Z#!OK=zi5mdXuYzA`My;JS|F;LJ7s( z(UqB>4Cz)5lrHNEel}p$!&b5p{b+e}!Jh|5U+q$D1*8>Mh+R9Smu^jv#|Ps5uZdOr z#+m$te+PPj1aKkWM)sK|Z2V&@&-&Xy()r2q$MRM|d|*t)ppJO^yC}fuBvnjwXPZU9 zatW=5RP#q7Mj7xBh?IhzGALgOlmL4`gum9XbhIe++LPyGAv5p1Z3?*?feEw_PvHn1 zYQNtmX+_xwb^x$CLANy9VWTC!3OCN?%pFXRJB=_gAWZa4O~tdeUrp_@7y6FpE)ht>XYh!6>H2WXw1od$R};~zNtKDHsx&Wnt*(ppJufC0au@0 zK-#6xD_xoCg$omPV#7IrEi*LxqEX6Kw>@^iZ#1Qv;oGncb5{BnLLPEiR5WC*&hLuc zh{ZiBbhp;TleU5z zL@Voxcljxbbvr?dLO7InTP^YUagt2pz(<~_$ip{KOKwOLTPW3n6tQ6_DT2vm^9SRR z7*qn;R?%I3c*F!4Wx#N~Z~WPP?5lcj^C#7ZF`_}?6llAlYokd@PJsUrUuCpdFFeS| zX19MLUgJn$8`gsgn$#JB!N;(Je9`0Gq#PF}nM`nW8Sk5RVg}xN(Y9dyGBU63I{~H$$|58PN-!pMy6bXf~7Hz znz_WJ!GB9&AmZO>t^0^^_-Gidv?_3?Z)Dfi>q)a*-XwXw?kF{DtSa1ON7HY628}L{ zw#(y-$IYOQdLE7GXt#A_6mx8#jH6xqmh-u#;>6+8BWZ$EJE`^yI;M$j)Ns_?Nxxlw zg_8n;@dD;=O777YQ2hwNA_8o0CPNY!m}_I*1ubGHrwgJJ-kqHnvgYC~Xw~a;5p~fb zDC?UGqx;?wN#Qqb5n-&cw9+3FA48{(jgyWjoo4OR31!)r*8lX};4OklZHPaIs0;sf z%gupIYg|HjUD*BLg7=u7-5(dL(Qe;6w-m*o%MJD39oi8u!{A6v@Nuz%VCUx=KMDDv zmqhU)>QM@di`ALm+c_IvF)u4_z6cFPFGO6nV!eyZOxS-mmkn&wR4Sx5B6N=0nXG8_ z0aU@oV#1<5CCZ(t`!E=x^hG|2B|vVbTUptUMw#sr8{XS4C{bwJOgQa~xzbr^8PO=* zg1}6er#Sl}%CY5qwbR=8Ta?QR&lB2OwRr`JRnS*|0z1~9e~uljc(a5H)gDp=GD>^( zlC*J=Cv(au>YT)o)_M&6DMu1!bo>sJ#($?>GX91(;aa@XRqzRqokQ2%B0o=5O(T}|@59M*a9 z@Co8bi`1a3+siVAeeD@$q)NiM^XEDPm%%TzHs|3u;vxq5uB(RSqjW3jMXQC)KWAX) zpC^s*qBSLzlD^4-d+Qo%mg!q~J08XqZPlB_I8ZGZ?4-)!dCARUBJZnkjy9oO1;m1} zkjMV8PT>w;+fCXs?FTYX?{U4uSR}8Y&e}$5TU$j8DRMiyDM6y@0oeliCk9dKHZEY^ z!s;Platd&Jpaj`eI*g;R^jd0CJu_^DBdSc>^6*(w16I81wKE%6@+ub|;33(;c-!!K zX5n32wODh93D-~}8;HOg&rV5qazn7%@GSVy$5-)DA*Ci-OEGBy<{b-a6U)HsIiM^x z3blYdw*|cVo=^m`{fK;^bjp}AH2=3Q1E5~jnsPpQy7G2!`@DMrG;PHBTA~#dY zg0)9A-n>}N(s}xo71=A#%FdZGN9W7j&5+>+0A@QD8Wr1A(Z}1QTzN~*#x@png*!n1 zEka+dl(;kpOLHCt+BC&)k=(EtW29R;09* zt9P&JsXze8467>FtfA7-f`0$q1=Q{4vyF{)iQ4!SjW`W=_~+hDt^m=DmBkF(OiP`q zyWkxIh0F>{i$W-!<9R7$cW;o{mz*QJd61zi*e9wY?k@uzAjD@Jh{*?Z8RFS~aZGW@ zP&wZKIyuAZkE@Ucc#2yFh~zsa`%PXw7g4Oe!GRzIQVu{iT!ySpE|Ao|1l1+F{naOE zz453o0gIKK!>!nJvItUu`IVKggqKfD<&fVkv>xQ9kyQaahArhI9;H~`&4`-C010#o zz&NIDH1fi1-jBI~;`HASgVi$0#fg0DkAVe|u*oN3ydc@;`0X%|JiplxVUOI8b>BzK z_912_s;{Kq#DDqGBgU%5Lda9(lW#%@XOKL*)qk*MQeGC}K7?eLvP9ZSk_V za2z1$5yr}F`8Bm3Wf3z4lPudpk%A4$pzTVB!u#jEpEw8|#NO>IA(?ARC`#ZjB(*Up zSf3uUPrbN^we+{m3}M57<(#xi=7lm!Z-NkIPcpc+z%#AHKVaYJ7*hUp@X&Z1+*1Rt zV;g#+NKUGR3>s=wrhr?2XbV=(*YTJ_AVfQaUf;32bL*f|`lT@x2d&*p+Yn(oh6@xK z7RBGTaHW6?Pwm913CIGv7!>X2x zp*$e>D$9a)tEWJG!jsry3Pc0EnEq}SLCfM#c$W%a64tn$@9NWCGWC&(+gAVAs}GS1 zp=LFunhe4HUT>{5%^_7Gh|N?v$2e>1;YWLq#hj1b-L22ZT&zbAD_c2Hl5O?P z(;Q&6W%ay!bp1pzx8KPouZB6xLyGTc+YR#a{}Y2`f=qou!?{0sGVT(=(H7n_v$UM^ zSb5MGa}Us9JOArFs-+*PlbD7M93`mMW5%+Y)YqZ|KvdMaJ$1zQIPMndbsOYsHWB-y z$5*y$6)Jx6)hCxZ522vMfRkaX2h~P)Dx2kc}p_%@AoHxhul@RG?0_NwE=RhluDZ zQ<$3DJYpOuLI5+szq^EDH6`8F|9bVfd?wCd=Hw3;_0sgBFi9Mh&K zunJqR$DCiY zgO)lnAad~kvmG;$PI@GdZqj9{A;+J z&Y0$M+Nip3W5HN_3D2-nF>Otj<#a&M%x$=ePz}Q;a4QodHUB7z-(pvfFwM-*f@qo6 z>un3}P={$usibV%*rgMwuts5o0bC_Iioa~8^CVLy%eMdCUH?qMc zT>*a;%)e6l&n19z_cPiW?8he+sgM)uFsGGW6DGH(rT%gjyx@WFLhyuRbhQurSwlXc z&^wmdlM$2jVeF5{7X^eVa#KB8EY6_vauLwGa*@k+ZuNT1(p4wrmvVbip>u=r#}UnSURIW+MV{(a z-If117?n-EEFmo{aE_doVOV^Qrq?A4jI!p3QJH?0`R#fxP0UiYUfC-m(jOO4c425Va~tSrUl@*>T3hN(tr-!*e{Q&qBlj54e+qRhCBDcSHcMa z_<)$P$Z>Tu8jrRwF)MN%#?&#pS}q%$7eI9!u*fZr9CR}~(r@@@Nkv?c3aME6BE|_C zw3Nds&a27s&+6q?11%=>E+b(-d1UdJf_`NG45?xj;BzKg{csJ5{r=KvJMl&2rCQSJ z*CMkQ(NEeFxg85r^cxQ`?)K%&Hu9ZO6ymd0_6@{ufdNZ%&(L&mq-`GcBQ{>k77Mk{ z{O2z+^h7?GUZ5>rB4+$Rp0fI|v|t3)RS!bSB|W#1uLlTQBX9m=eu{4k5WLfd(VmX$ zLQOGJaVvyxZz*6>Ym_l=R;NwjN)C#xabwomw}Ly}ChG(Sej5u~$p>s9fniO_JFq>4 zhhHK+Y~_A58Q&=pw)xCYclNd^a5 z<^TqK-R{Xmrle@>4(_a5Gm5w7Qg*{|yNjX@1<*p+~$Ti#m<)=QCW{uEDPSf9O!@jgE=srb8@HODAqg_^C zWpicwV0gq={Slwz1nF-bQ~tyWw#UOqY5WXpMqJ`??Ju!Evi=_b%f}hL!bFR|#UR1J z6*~2nTgWn~gfT?#|H9klu8LflKuH^|m#TWHjmFDRQYIa7S2ckLXnBmE_=g2@I$cT7 zN%SBlZv#tm?mKXL`hAL!DpaFD66pu^dRz9>WvvIn8~H;9b-yU+Z9c#26E)}4%v?1J zAt_Jo6(Pw`z*_%d?gS0^-V_&sjQtTFG88ZS77eySDp-US8bj}%6HQ9F&SA+|2^zfs ztazV=-bNncm%A1-Pu#Nw{a60@CkqZ{*y$K);HWxPWn&F+=mWj|elbS^lS!(}&)TZx zNlvUfD^#*|FI2!yy@jWU20Gln#TjKP|5<-*NiAzeE62WWp3sxXw5PXH393$b6avLt z(ZpRWS1ERN2iZG}4OwmwoyEJ(chPnWF^3Il#KF^tYRlCM5-~`m8p|~i+;na%6pb{C zSAqS%+$4H#d){l|p2}dMn*#?RgCWCZr4UaV>iFxt)JkCTx#I}*LOC-K2c^_INYo8I-qs~^IJ4` ziOCrIh))gg&Uh%-*DjqN`Zz=fitAzE5T_}NuMbUbJ8VoGn&5Jf%xN=pP;hx^j0dN= zs3ER=s+h1;kV^0Ena{-JPSv8EnwN4>H+U5`FWrxVJl`XXIU3l=!-BQRlp(I^St?V= zYR1Q`w(@V9S)xn{WIeH$R@Yq)Kb{9uoPgnf1`gcnGcbJbOp;q?L%?EzNnQZfCS6`4 zUbxXnKuqHe=^;F|JbnS7|FPQuK&)7HvI(Nrg?)SkDp`@4kPk!&#vPtg<4;J+pY4^` zHfb9qtPKQ)w_oTki0Ys}We0b5$43NyGQOz$l?nY@dd##Gb*zIv6RzmmY!LTN+OKKs zJ^g5{XQKd{^R-v@D-vh@04htvC5t_aK1M?-5MnO1GYdS)O|Xy};rvwoPSR&P6DbDN z_>1u>G(~w&$=g30u@$XOh(c||GdUWzB2d@F#{!_#T|*Jh6pT*Gq|8wG6CGC%^2t;T z-gcD(s>wk0$_Aw+ZL!2u{NGj3`Ck#PTJG)X$e61hyy0N1w%97T6od7lky9 z#5n2zc2`O_Yr1q?bAeiVwJaJhspcQ($23qK)^W-muBh>d-a-Q1l0Uxwh!^CZ!#${) zQpQD?Ydba9|M#yIQP&<3ARNRa%w)}_ND1)YnbPE`L-Yn8E)|b#zzOpX^=?3x&}%l6 zEZ9#nRyU7Ipr1ev^p_RA&8yV!puJ_l=hiAT!Ywh|=^%6Q!_XIK=uLxkvl-WLD$5kD z!^gY-B|_K-UumI5f|zIegl^+`xPt?#c$;H^726W!yYbmqyN$$(Hp07sg4e~0JPm!X zlz~CzFwG;4dStKJHSLPqpcZMrHydVku*-~HRlb_oPohNy^|lJfrIri=9dEIr)1ai{ zTDogeF9aAgQSZv;(;=)3DQ>MW?HIQBGUUeDD~)ouM9CZvsrj7Cxc+5JUZzqRqWi#h z!v$(0_|$c!x>%q&n~qpTq{Hx&o+!*wRK8iSWaqphe)!#!%3U(&eXg|o<3=;|QgUmd zp0*7A+-8Q2-n!XY(ta4{-JQyIH-aAC?A5QDGW&>+Bg256#6AKgr#r;w4hSs4{)(8a z7g^$6aZ2C7qEe>`GFa*O&TN$p+;B5b_Sdx0yg1|yNtA=$R9hr4o@}Hq&Elh#){I29 z6T#@a21j|vhP%+v-s19 z{0~AX_kaA#FE4zr**u|wvQTo2B}h>UB~T~W984FviD8eeVTE#%`uexjA zrI%7KOr1$J{bANxCQ^OoF>cK-ZYWb6da%0%x1VuuJDF>U8m2F>G;^tr2Eaz>o7`R} zxNBOk0L1-&?B!shj~E$mN;C>r+^Z{NUxkA&qae+n;snnxnZMq0h(ap>QNn_>w4AP6 z?}@~N4EW;=1Lq)8pLJl6_|@~Un$9=DqkTlw^f)>*L3Cl@s1QV}ieHM%tH4tR z{>t0Z4fm;1kPo9!)mi(=EqPBdm?`!K8Ul0{Qx?7^o^x$M`UQh|8y2qLkW78UEDlq{ zfr^2T)SbnwzA);pzPt3jv?BW3s7}zdK=U@t!4Mp#6!%kzwW>857Xoy%y#vCS11X`G zQyQzzt?#|(a>FCQJ9@B%T=ZNfCJDS~={in$jPwY2=~&O>Tk^M4o8P+V8{b9vaWNTi zTMY!D$K&)~BC`X|y-|zLKUiep;)%qm#O^f!?3($D&n5Ae9H!H&&_t|P20HhSj>i4UhRekNrKT}jXc9v*X&X5z zB|9P~+Dp60b&5r>R%b@ID#BMJ$loKkUEe8S|p zKt((3#0%RcUp^ks|1M+ZQua9Vpz;XG)sJ;eB?tBCIn2Ff75!%FcV?s%F#ihF6iPRG z&3D^eYQH*<2U=X&7z(rGzl}vB;J4{%jKx#ezdg}P#0pMACSvUCl2jGInS023>?s9S?57PRkn{^fYuDfBY6=PWlYZ@>ywZW3Y z+_AcXn5K7t2m++xv0H&VNN8A+**FPssZf8!iyL>njzfJoVny})Ls5IAN_LB$3|0bA zPW8IG_Vg`so{{gcim@;ivV8^PGpJPqQALviKp=@n{cPTfb&1;e6pc6y>5%y62kQm^ zAtrX0XYK&4Z6IJv8HDV!ASSr8st!2=+%d=bjbuv|(sQD3d|UezZd-$qPyFHP3*<!yzPZB}BODP&N--z2} zAwvPqzeJCc>FW^=!9TQYdQE2FTrm2i-`rEoYBko z1hf_%796@*YWs=Z702=6y`1r%xcIt2xmZF!+0+({ey{S+^^DHS4ozlK2kD;PeO5#7 zQ8iWClh6WvVSnqm_t(`^{vOO@SnKPh!lN|vxF7$dvV>V(!7mpde+L$cbNmkVX4^vs zc0Bi%m3l#%8<1fGIy6Vaq&!K~e4^zwj=XkC*HwqckJP{>sa93xBP2H)Ude3X-vnbUxgpowrGTo~%#^#F}xpUA{*wZ%UkLUKbbrMXAgr2m%w~ZfStHA7} z`-0_ehjo{W_upujX+|o0FLbgkWD~%E;X;C#EE>@?=~NskmcupWudhzw!~P85Zzr&) zh&JdbHDh&rY`Gs4 zzqi1?@#bAmN8D2&uBmZSDU+zHSuG9U(Pq3i`#0Dn=(LR@-cls`2dQV}4;eU1b6)zd z08IEuVr^~mdeJg7C|9XrJ_Oq`@!9+RV<3{VJ#D;F8p33{YR{;!iP=iRK&?kqod~DY zSt}wLy!2eidp4WWM|D(8r%=#UDpC#V=r~wmLnQziq7v)I!BDnjzfIe}FtAiO>AKuB zET+wrE>@b2`}vEV2!_9}KOFNp97B1-a*H@BSM<)Kq`o`W0S2dqKG;p~7l~@NWx6D$ z@kV1j9;(?o#Dy3N6b_GAu%eb+7m=?U;LCpR5N$Ng4Neujk**;H5n8f}!bR97lWdFn zK~xV#W-l@~mmAMTYICwbXzrip@>Q{WT=H*>YGKr?7Gq-@>Be>WGC^GB3>C-dS`VRR z5c{8Phj?ejAXyH={|e_zH2Q_#Sm1q>v4__xlg?2*QEqFr&_i959087l!`+2U=rCdv;m+bgEy~BYjCL(HQ5#cHs|{Uzt&xjH6kOtlmPWz$#6sOa933w`iCsB}t*f+;uCmf-xKJd6R_iNbeM%k(Z?VPoZDr%d8PDb3d=hZNm&EkD!Qp;m z$LCD{(bRWWqOq`WTKy4o16XrO9pzk1kR$5FJ(2t(3}hCEe}9X-a5%JtBWWq= z=N=P^&m1D>C0C@QUxLRkH4s+It6xwXkN?j<*+W!b`pXDiR3N|D4Ruy2O`Pjt4$$f@Z);`eQ`4ntI$9Ya++_TSBXYQi z8JMHjaslVddqM-gpbn>0!?PH>z`-ynYwWF|cq*-1#X~2n7nf>`B3tfWLS`Wl6BII` zk4H9~7^f;W&=Pl?iq28p;aisRIq$NarkX9NMdP%I1~?|cwB%vB*xoA|(6gB(!P8J% zS8A@?dbBr-2Br$LZ+5-RUa5$pluUmP#;f7g*CfSk>CR+ukoE!5N7G_ed!=hIA;&=X z=uuG!2SO8Xdss@{2GUTIon@gfm!`42)x--?i4j?e*Z~nfpvwu7c3gdoB;4<)Wn{cc}_CC3~4x{-dL1clp3f^vuGn zryDZ>`!9o2nyvk*FnWxymFPHC|=w3vVI)g8d;#3@C_wISGDH4=Y19GQdm%{ z5r*DuE|Dp$1tFx6d1VR#oHikr+QITje^l!uq0S0#Ozk0Q-WFNg`opYrKe+9jr&DF) zIWS2YIOp?sF{%m1KFz%*tW~>rO?!H@)Mt8aD(!PX^w{0C^|Gu{l91VFxJF_ZUuLdp zrZ+|^;`qO%&83^wgLq&pX_rRdvOpP=8>u%E#g+tTZE`=7 zyyhFSdLH@)VHB}N{z~xyQM~XoDB`bl;I6E2{p51%hUNu=8A}_1Uy4PpB&h{6&ze|N zIOwUsz9%7!+6{Ov)3)!4Q&^Ydur-6E>1lMoksVLuPCb$0km{@bo+QMvXb%e3h~)E@ zTK5G7=O(emGFZBeJUB3ptzNK7snS58m1v+A7N>rFDr{{}r1>HBof*B}?;V8EQA&eV z)9j_f+0ip?{dBS3o#z`Fx#vQmC}=8_$53hL*O^Natq6B#)>Ps<_w623+argb1f|a=^}7}&iUf2 z%VJ&EjY#Ya)`Uj{X?coqx$q!|!p_IhtI1s4BQ+fw&Y(gl`ja+k%`EJC!~FRiM3uT# z9Nb{T>y*<)(Pe0BP;k|O+aU6w=j6xB1)T;8pbj?ZoPaW^7FZ&XQ>I_=#k z-0uR~=f|24n@=*jxNupqc6k9+0#a44d&ytjb4J-5)$qW)#b0fsqI0;2tr z^H@}^!CCP@o!5TSpoE+gB7)9nqvh{q=r$7qh>=~D9wAOZQk~%cQaW2r-5D>x<&`fo*1wtp9oV{7&YGi4*n_Xw#T#CyxsB!WNyq#ekENd7%o-#WFSit1u z7)35jnXy~n?;%-=zp-tTx+q$EUTqOTgqGD$(ei8pdXd8~zEG+}#A)i@LT3`o`(DyL z5*_ClMcUUOE%>izg`}yBv+DHhoM)(FPsslMDw0QJr}xKs_e53J*`-%$>+I2bmJ>TJ zK>#ZuJl4X4u2px84z6D{u+mKxS)22a0D=cgl<*HFMRS23UFhm;cJ<4jr`Z#Ij4$vP z-{@pzLZ6+A!C54;aQ~Z&m8J*j{x;|vL|sKbJLA-QkG+@rYL>2zDTqa%^O;PS*z?yz z0j8@>_i&U)_TdQyEHoHy%TgXoDDej>T1BGcI z`dSrqKZcSo%Z}E@RB5;WwZ8zP<0c9=206j(u!X;?pR9UBu=M1vAKF=W>))ruNgTM{ zDHUCl&A?m0M)z%ehYpE;v~I4QImo$cqa91N+qzCUGQuBvbYL@U6mw}Tl>T-42NU>g z7(dr&zb?LHJTmQ>gx{~{_>{P|2i6b$eeSTrv-IPIfVsht*mH=4)` z+EA;E5ML01h5E;F3eYx6-7pTG>?7v|RF z=ZyC)7x>-VfB#Eggf|1T=2uDsUOEc}k{-ac=KF=aTB2JNfopkIGaYql(-0xsAx#gCDJHs*LV zuS}}_M)G8J;daOw4SR3ll6RjVc#z!VwTLmZT>MlsJvxJ9_u6m<%a3K|5K*x=#8RpX zWo~41baG{3Z3<;>WN%_>3NtV`FHB`_XLM*X zATc;HGBpY>Ol59obZ9dmFbXeBWo~D5Xdp2;H8eROARr(h3NJ=!Y;Sw5;uywyEDNdxVvj`3lQ9WAh^4`LvRi565QP- zxVyXiN8a82_T9Z(b?=|Irq0ai?x(wdt!L_xe^OAU6Ed7*R=t;`Jp%=Cwe0LCs3#z6ZIul9e83ey9==o?zvINMvA1N4DLfG_m2 z^Z+><=MSbifXW64FfcaLw=x0PnEYizRas0)86cq~ud1L-O%M2LZtMWm{|L<(U}&aq zr*G(BY-bN}HvaIVZ)Efj+>-i0fQp&%$E6Q6qyK=Y>}YFiWB1RfM3hxjC1?SnLUJl% z0OPN;00~uP6af z;N#cM*vj~?6gvWqJ__UT5y)Q#{*)LXV{Z77OXI(SGB*B8C@UlC=Z~qr$83hFyfVI9k@T2SWfrcOW9P}L=?Exfz@jfnNBa(k4-54O^ zXlM5)G}(WN?EY_b|0;*D%||#|R_>nq&i~!G`anl}x4+f4)*`BX#CGi zTYa!TYHJSsf3Mvig+C^RL}fl^m5mX={BbdUOtBcyNW{k4`UAK<+@G!xHUFrPgN>al z!~Yz9OQ4N2(EWeQOw55se=-d)aMZt@dM{>ukZBHrgo0Tp6-7a{3iv+!~rle zH+1+I{g15z_m_1kpotBD>mTe7B>xiqvk9sG+Gx}t>&(aoXyy9RxF&E6ayAYh?Lzhc z_l5LdsKp(vtmHlnQ2nn0{r6dYYjZ2t|L5udI;Lj)CwwY78#`-#tN)Uj+l!mK7#k^= zI~bb%qgMam|HGdU(A3HpK*z-P52os$6=d}>7ayD7{Lh2qL&V7VU$T#uH?#yA+uH-! z+5Zw5e^}E&zk!AJ$*gAFvEYey|90YoXZ|;m6To2gH}b=o^}k7`4`+YVW%_Vt^EdLtneE?5 zRse(D-^dR~_J1SU0Spd*BR~8){hMU|uNT5k0<}%j>zge*qOU%GJeby(+B_K^RGMY|8PM5?{)AuZDC;>7k4^VPF4UNGsj1* zSpIx5axi-Shpyp2R_$N&{Lvu)qW>&8fU&WQu_4^zoQ)w*fJJgcP_dU--ed_RIT!s& z85Y0#msp6!)X7$S9MSA85@UgU-$tJ_ihLUxNp5YgL|@=fb@BjAtGBhLgz||SBSpb& zeJ@!rd?YcUk*u%us(xv*3qB?7B-DprvT`*FS*O#QW1EQpsv}1tT&*3Ck<8=os8>lO zS|!aZIgri;znOkv*jb^uETG`E;V(?KfjYcDVnj#icMC1j%;@C?VU2u&vhC_X-^*-1 z;NP;E@jVp7$ti6y=`1vOgu6f`Kf7s6ofZ{w+^B%(a~8&6o^61f72$Ns3JPZ<;<-p5 zEg0PlK0MsM8tAYn=SN3<`F?ed7mXedss{mzqwj`?_`(V4&zM&W$kwB<7d?5#b2S31 z<63}hbCJoH8j)PE&~}uOYw|dpk?jRd=$ZR1B)zhn>!f^y3|bAXh8PTC=4yK9=NN?*6Phw8i3Gnmrsmd(67&=n zZ!ST(Sp06qi?MI>aQWV{2-Orm>q*PajX5LC>UH#>-Vx6ss+`VT&da-ws#(YRES9VR z73`t7kKhHjOrl?@6VYU*w+%Fd+A2WOWq~zEEWz`r8~w#!2(E4uPmsExh(eO<0*fIWUMFEpx|NA5p<6W_Fdur`tVrdm%Zm1{z;YP zcCOXfmgSW+i@?+hgGDoQ4OTb5EoXL&-Vb;7lw73V7-+tmPuwET4_xPgIOCh~?5x9A z0ApS-O?hWq5Y|b#n+>})AeeR$DlEFZUamcgbBB=W9$hbuA;Gn7xt z@@0tPLA($?UN<_UuZE2L&U2UI!$1|M9AjVXChN+!_ANI*Rj?L17#|*rCpWTZq2-=& z{wIJo1N)?4ECT<0cY&EA|4WvGsKM)TT_?C+kmeLNq>=kC(++yHD(+|Iu?m5f_~7J_ z$8a!Ig8}Gcq?h^Suo7;m#2+|d84kIEq=vK2@Xkm^W4sEfnu=Qx8~Nx5fVW*@P!a|I zVE=--y)XD~=p!Mym74B1W(HPYE z2yL(Wjn*LZOHO>)4@h@0IL>MR78c!pz3}q^hP+nT`jFDFn4>JE(pTFDEg?T)#OGI( zb=^ELQ8`c1F&IZI z5FIEMorYVDXE~WY<-26sbCd?r_m^e@&(VD=&0`})aIDiE4mgGd58*CNjW{l4<%6X* zWit1yymR|+-*Yyn9>t618=OATkjm!;M)vg0hN1yN>5`WikTk2?W=nq~ri6n=|Hh9} zIbm`dx0Zk0G$q5lZ_?B6-e>Kh3nJTmDUhyrz5%V9W-e;BfHMXsI1FlbJ`q|j+w!x7 zUbUZL->pR~e8Mp!nmqNT7J(ADy9x25)s19OwVGzDZ;Zf+6sH2PpW|>3qWq>IF@EC&cx{)V^ekxOFstZ4gE@dUOnm&aEon|~rGwVf} z!6u8&+rYf6C?XvIZA9tM`^$f{a zLc$fpFD>Ak)KmPbz^*$?Vazq}m0q>rt_z|ojebHw87;0@S|MK@y$mBg!xlMR5|Grl zkugwlgL5uXHbt&rmWyldK&!gwP1xn9!7(M=#anJI2 zkb}HqTT<8zl8wKi{6PCe1j4;`N7s?)K)-oT!7ckPw*&;-qFsw z%TquVbF^V1>-Qf|S?@e$sgrPqOl>JBn%}c{XlrB@`0RaN*bEoKO!$9U#T2TbQNV!v zvVBI+`(!9F5ncuw&u}+G&Zye0_L*xOwCz!xAHOPPQ?A{<;(Fiep6q~nv)Aunxb4M+ z-_L~x3kd;bi0!tPkjKLcMS?9PiIxO|7FnVYmv0#iwgbUu^BTSlXDLu)-te_6 zFe~KRjyE>iKr^6(#uUUfX4}q}HBEMGlrSuw6rjDR@03!Pk}i&GHpL@+TDevQcgJC` zAc*faqgQtJw|+J|)qZXr_4b?mq-ojTs`)OTI|F@=vPSC76JdK!DM-}TXR|hIOBn}R z5hQ9re1LcGp!NA&V1Yifwou~Bxrg%!^5Ph6FB9v1&iwjuvd&sn=-})va9^A93+EBQ zEqL;qqT%|;u!0VmIJPYak!9^!`OnMeDZ=`UIn3>9ue*fa5Ywfha-O5^3&`|Q=+Hcj zuW#+sr=UU4_&)p=Vh!rRZQ8WH1awQuPk}tI$u8tSI+VZ0flaQ^Y~+veM%?falAcly zfim~UQzaidK=fpl?ZPG4A^W(KA!P=BZiwF{G0$VzfH=bEA9Q{?=YYjEYg$>4lX7j} zzOKs(jDHabUaPt@qzosg+YiZZGHK}02#Se?mkb-Q-Kxs-D>c5_Y&OVh|Z(a^#yk(UIB3X@sL>s_dT;p~p6KK8E z)scRHRVy{_^?5BT^{H3+0uyjF#r!jq4Jm+(@CGTXw3i)|B|n)&L&*AsH+{#Oow5JN zH%7djP>s&g?$EJ4)e~)XYe~MJnMG>umFDq~W~PCVr3Y1JC3x4_BvaUhf$FhuoR#AC zqu=d}G@qns*9^nV^i@x3=@Ypk;163p2Lg7=TDiX<5PA5q@dAQ&6$ilLHS1APLN85! z#ZihPdb7(2G8%>VB>TU*ZH6i$);q7q=rKf0k zuB=6_x6LD6&^stAUo5)_0%>;(c&U?s$?s>hwpJ-n5~ zjmKzyjaI8IL`j)hnvU_AtV~e+UT;@1YO?Yz(t^d}w*2~?mizJ(h72R;Ox+z25e41s zGsiLkZA_~i(-)-W*72&V9ywbLJUom=z3(BypFtG6{p#w{D>TnTd;Jj}wh_Q@&a)OA*=s=G=*ONTain zb)!oM4d;E!g;(4H0DTX(m1J~#?56q5w=9LGw_&>KWN*5(*$^oO->s~AJ2BZcpR2$( z@CChFI$?Kzmq&}KWh+8NVgMMr6+!pq{X{_m=|GA-U&9{)6?56=OdoG2V(->giq{ES zT`(Kr%&!9}TtatGN*qF8XaZ=^Q^r7W{8>bB!45u~6m9}W9cm0f zzv|Q1)nv(Sel0!gWd&^sDI>%Z+x}4l60_WZ2rrkwi&UD zYNVU#biSAK4Ni$KP#U|@xe5V6X}>ZM#0`lP)oR;9K8d4!nuj7uIw$Majn(?fPZAbZHZ(3d zCZ(fx5G(tpa55B!#L3jr3m}`hdH?VQ1Y2%c(WSBbJKRrayvVjvra0&sHMa7QGwMJi-Q8)~c?2AAU zq(rXXA1>Q?7H&S*ys#V0w^d7!V+?js#0hmSneMiC3KpwZOV`f(VWJGSfp%6VC~2It zi!&V@tSjOq9K;}c5&33UN7)+AJA{hCc)Vk+622r!%TQVhLpLWzDP3SeG%N;q`+qGH zaqPr~$z?%qZBRk-s;xPN(0jnE4UZFSJ`hj8*iRvu-c@%-)tm6tlp(ylL8-3m=sqhc zk9da5>C8IjbYKE~9!g9F!G3{ad4%x+>mXF|67jO{s(0H4qPt96g#IldsqVVDn zO5&a)yO5Wi0ek$m&Xio>YC+mWN#dn=VC;D>#2w-n)(ts`_3VA>!)Wv=Ls%cbpj)Rz zu9y_(9Fh(^p(~QRv_PeYGgzn>_N<=E;b#WJKn;iz^qG^>LTNXp!ybKwwk2B_?R+^W z(o>h+H2E{Y`54gbskV@6PRQ^Zq9bOKUG4qoJkWJX(Z^TIphOL7-fnQ?Dvyyfafkx4 zf~0_YdnLy3X8lHCf`UgYy({Y3IMX5cFcNo+V|ywDM}Mm^&|-P{7MDQjD>;v76UdT= z1hsD$$NaF)Y5o(V1}5=bs?2oeFTKGFR9W2L&7k_qZqoFsRv=n^qa--b-`DoT-;&bQ zzS&APz*rB_vq~dZvpMFWg~qymnK4v+D5}fO>OU%yd^2SrDO}Nk&rN!0Rim3@8@7XY z*P76aSd`f@>3ZQ`I^v(!N_q<|oS>EL4ji>xQH6h7Ix80pVqjxbXfSWChkFMy}7JsUWuE;!5KR_ISKvc&fgZ2P}K9)EpovAH+ce&LhHVmAGFr0 z^!{P>np|4%f(rL-p@n%RTGHo-n8Ig{XZX+$tY0W_gapsRovOhOr6jqMYechFr(?Qu zU3C9p)-c$jdMqgCz#JFVo4sVl9d)z~K%f9yIW4Oh5v)KXS(pStK2kbTgEg>nGe-q= z8@fQ`C4|3gzJ;;jdFFm8+=AS-ZIa-dGyk?KxTKa-b|{dfB%moe*uJ{}O9xvZUmdAH zfWB+rDmj=vKr%3+1n8{%DLht`6l3F=@kKLVoAtFM*yu~M%aXIdnZOH`xZ-N5aBQv7 z8FMM{$o7E^p}amd81?M?SEk9Ib|nDU{lu;($%Zs$KBQ_&Ia|9986IoH$B6I$LQPvk z`hh+r9IzgFjG@qzpguJXmY+9d6hXqbXpp_VRHw?!>s`DeH}n5)&8aN75C7c4YeY)2 zhARNnaLGBAvB!f;5w-Txc6A1r_^ST(Pa6@Tm!*({rig{CQ|`)bMyX@g?{WGQhvlUH z^1w|sxY>P14G1G%vg^zsi>@>qUv>W-v<%7eeUj;YCz=4u%IM!W$oZuMh8%tCKK-z_`-0Ti#mehvV44<2=*xV&t|?yInuC^NT4&TD!TW5 zxXe?NySkw4&(4s8-=_6CZ-R>2#k#nd_mo!kwE6QD_*nC7Xv~1 zgl3TokwHkqjCQ!%@sK8!F@h3t8@H(a^aSj1(q#BM%ONY>Ak|7CSQesM0-_j1WY6$N zXsYeM)$ZBvgnjc8eITo4qmJ_GF33amK#}L{XGbP@soGWDRK%^t z)8z=%(#2%b$8M-8JQVlU7pM{@-!w)@v+Zz}*7Q@!uJx$QjVFE+P>=45o(*b9FImc; zw-F6foeo!t*q=HrPlfi{5|{rzm+MHnIMrE^@uu*i&j!5I3*bkWj97LC!yU1%m8js! zqjf@R?HnJf4$<1SjfE>mP%o$5_xp&iq%z)I8r)dH;cN_ex4BA3Rm{c^C%(vANkV&$ zQHPRnY3JQSG@(5q(rA;@teG>NesXb*yy z2mD&1#Ia@1&NSJtJ|xg2K9ksn4$%B9K{*`@U0TQd%U^Io`U<+JJ$ zjvn!Ns-IniXgqZxl-!Qbb!(DBWG%Q0FFsW1<7Uaql@1Rb;0TpJxW7M)1kzT=OEXR- zXeBc;F1bE1rFUsTxs`z;KoyBg(ksKH$H>)6b$lsAiSKN<_spA!sz zK?^%{^zIyj$zt$D1AIK>P?+wK!~#?nN-}E8KJP^Yu4PtcDAP(~GQ&2OXuXMsNP=RvNicYZ?jJy1!5%#$h5ZG@L=l>5Vje5MQkK+%PtMn!<#|4&59b#XOdhu^jPGbi!%&4lqcv99lEt5mEvVPKiKwwnQS#e>WFX0Iz#X4(#_2Lyd@4=O) zhkq{gw|&)+I%H(1dpG6}S(*PU#N3{v8lP9)n@cWC(FG?i?rTGoX6J2s1et2-bVQSi z0EYP3DHH#&p5NwIEFBcZg=cRYyTZqY(F%lF{5Z8rZ&RIo#LNsamwk(1P3X;6r^y+o zhUtlr1qj%HC1r3rjZCADIRt!qX~N-5iT=ys$0n^*HpM(NYtj5ME&^RbBw=?0q}9M?ao4EOF6 zzifnhP}ysDB){%lbzEyx!-oiw_~#N=M=>9(CJc>sTIAZM^{lohI=Q|5eCHbSaBeW2 zN917asq_t2cFp<_!ZK$NgtnLXrap~qOz#=bdA*&sGADVZM&&vS-#d+fQu1C7qRuVp z83dbMTG!W>gre{af1eDe;Kwgg!oMhz?7gPux(CAL(VNi`>rw;t8$1#$1wH`YzRvp* za{$*Qp|$mD{I)IEa#u)n?+<3hw4M1(&lYL+%|um5`ydJyg}p3NCr5Qf+&9v%dAc?T z2mh`NJ-Ei!E)^D%g9CX^u1KYi+ECkhiJOQ96%rSgCfI6MCHh3$ryXpU{}-gv>jX@Kjoy%EU}^muVP?(<)&et2!+IfX&1 zislW{M$&T5Uea8=#p_N7Mxu}Km~;!`Za9pqSy<;@4%UaNm8f0oGJhPAa$pegfT6sQ z!$>8mYAUxB8Di*DaQ^D}O}x!P0JeH_gyZ!O!(OvtZeeX_V8Pt0Yfh40=5dR_qHG~E z3aG_~k>=5mH11@AxRG!t(?-qA;*c|+m!}j*G#}JHSu<%z>jZix18v|^RWiILD8$#N z#5V=Les$MJAmE++TctqdVk8&If`kH`(Bb99E{R@H!UlhidDW|-jzol<$ouh2A6fmz z&F%yLTDq?b+Bq>xi~=q-cx9m+tu=k5YSs%yp5o22ea7=Ig3;5LvxN(Fxh*V}+Hv!_ z@b@w1-n$2zC-a9dRSjKA=a4o@w1&$%@>HjULMp{8w3)}PF<`}t&mk#Ye7j}AGxL}N za>{oeE|jcAX9bgscaFAHJL7WpK$r$iY}s4IuaFMAxkMQc)s*R{;v(Dpnq{dHRbf)` z8uBu+SRV38RbB_aeQv=S-tj)em;Pe!LV&XY4Q$T&B7Lp&z8zYlgsHJ+?~`bbRhjNF zot)u0;hHiiIdpVyC!B9A+WyrRQOt8Yg~;i=0WFU9N(UfSw44CfKKr&mekePUHZMWB zS2)wWl|3e{jQ-R2f(plF@A;lseY5^ZpB)$upPh>84T#CfHe{_T=GkMlE4gf;v@yM5 zKu#=nD9&e#So*xeTU^A#eaYO^Glqj^7T}IlbgvkW}C&1bP zJ99R|MFbOa-mnspQC#?1+O|!0h5Lx;Tk}v11d71{!%pv&Er4CocqLi0tWYNYf^!;N zIDMwPRgcZxF6a^4gE8(L9oLst(=0%!sfur)32HCny~oF1S4J+Ggs_3tKy&K0aGnI< z%kezsZGZXHZX-|WH9~1e`hNEXn6-(g{uKzz_83DIUQLb)clQ|4gshE!uR^yZGXZfL8WBq2{18OxY= zEu6i6n_v7C&x%MJ^BuD_fuNq=UP=PU9n4^<055hZyZ2g?Uek%L@JJr3l8o3?l~{o|}A*t~Cy(&o9q z8LGutj;<3sR*+&Ro*dT%PuPs#;5cUjJKFZLg3|&S_gLR0iVfqyAM%17@7`An^;c;h z#7=F9&6t~(SJ17;*l>3T4gt1mte&KnfZy2%Lm>#ng%;&MldjMlKgO`eO)*Pe6UQcj zCKo%BC9sPRug=hcW$Y7BKH_3#Y(UKXt%Qh~DaJ#Sv0Iaz77`c`Ol=%FF;hmp-5{31 z)aX5xe-u}q#{`;gnvD8qr2vP(f_f+9F2i+^ULHRuvqsefjMa^xYSt|?L$`F0e3J+w z=lz8z;pvm`n8^e*mYX?7c{6llarsm<(A&z9H6dzJ|tE`V4 z5?#Z6wKs3bPj1zQX^8mY2YE@c^c(e8sSwS)byipV`cs{zf&MJX$axZIIr94c>pkb< zE17S_F85IROU|bL(~Z9w^qpxVe#_Y)>j`cuAI<7cmZEl-QLj5cYAVaoA4;z0_0DtB zk@WIpT;;WKAums8awOwtm?jpVMcJ~t$ElpazdRnY+UCHn|L}LDlYH^V%&>H_j%BN? z#r6Eu)~1pLN<*3{5QX{~Bh7O?Hytunk%H*x5OkC5hW1Bycppm5j&(HFMEMO8zMPh@ z)%gmdPNm9~PxZmOyzrNwAmfO%KH+a;+DEku1#mQVHuaUZEmJFr7vL_!yv5LM9vy7X zqsfChT9YwEp+tS+!x*&%WmNS~WgTP~M{i$zuqM6{uVuu~v*w$cbhZ#6_3BlDtMLp% zZzw8aCL14Bd|Wk*L)tn7G_dDKFld}Ju1HO>%XyDa#@dB)wPGr33BRI!F9T@HTaCJE z#xrZCv8S?Ggn0yC=(BZ5BG>IjVr*(XR8*{~@7KJ` zEx*KrCmNRM*Z6B~tP~!B zEOTcVdPUBsW2nf|dooeG0ojh{H*kNJTSmW#;0n;FiA~0M5#7A%6e->4_x5!ddAz@K zq{#^kb4ak2E@TWa5`s+}zN6>VJIkiG^h3NUvA_<9h#K@OWFX&}7WxX50)=zmEm0#p zG~Nufv_p)Euf+{VfHG}Vir|J=-h&MZ+YBdJQdVfKe}stU5g%P-3?xMSq0B$s2L3j} z32)2F!=i+U=FmR#d!*JX7U^&p-EzK#+zK+5&0E!V7qSI%%QP}xCW{n0FasCO^NqQ> z|BKwnYv~e+GJ5N8@K=(OtTFd%Gjod>my$Jt-^=IKjNR)IF`9^KLfksuEx(c}KkZD} z8JmJ17_T04wqpWMMQ#WcpQf)EHQ6&WG71sFcUDiAOxg(`rYVn`t5a~S$91jc5OLYs zqhD(in$vEs$ksl{Doyic0)~^^&&v`JddQf<&(0v=uaQ`&>V8Q9$$BzU9z+h4*N*}Q z#N^`l77fi^zGGI?KE)vtCxm?HZj;rZhKVLQ{YHF*VEZoj^)tJRhzqh^{$6}of1oOi zW@rArE&!+mUJ9FfN$U6eXuCnxA1~H*#s}?+%xDydKqT3_ZQu(AvHJpYj6AqP5Qj+(^QFHgd9H3_hKDCkVm3NrMVQ8>F%c)0 zLd5--ItI$u{LNtZ3cc})GZ#J9f2c}?5H=bQEYnnO#R{e{w5hO<+NKc)r_xoW)EQv$e$DhXzV6IFosn3oE%Orb;jZf0`3HHqD;Ez0i)o4@c77; z9UUd=bYRCL50670)sNv@Zfg|ve;6_CxwdB1W)k1uD!+Y(`Ct2ey?3)|Q)E|gww#6C zB>_n3?KaFU(jlF^_^7UKMm>q|a$x;1x;LA0o5PO|aj~ePTY6mq1b=-tPB}shr&=$! z{DEP66y@vTWR8|PM_#Z`%t;W6i-ei3N1!6Y{=oS!%*>s-hj?&0KU0wfvAU%lI?E6W zbTt6ql(x>;7XF2Rj~>Zo%aB^uf`KEG7dt70S7kJ@I;iKAqs!m%=6jP|SiM+Nog_3= zQAtw%`ZK@o2}6}~&0&)sKQvOLuv&?Xi{F;t-DW8eLDKcP;##FYfKBD?b5?`0&b<-O6E z$Hm(VG%eKo0nrsequ$`*alRWUu&|jWnb@ zvvvbJVQ}ihj~Q(kt6OyH@i`T)mOxwA;-6=K_X-0U&6c*dihs4qj{072xYE7=o%k;N z-+~Qz(baw%<0o>)hCMlbjD*@}qAH9GWBCX3`Pe`T8MBV&5VQe&&d-lm&_`04j|x(R zlO9SFj;uN8{p#Rf&W^I#aXpcmq)o8(59~C`dcmT5KBm}Onu36B@5O?@=_pmM#1CAt zM9q3@QXv<0LKJC|^?gyLMvuCpbAsFq1RZL3rFP}d5V?>nN(SlgKP zdXQknqeIYNrF?}>o~PcUgbPaT?jDY@vXUFrkJ%X>tfN^w_I3`FWerI7t6I(TFCT&m zEI}v}pUw=xVWEaAb|p|Sx3h)qPPGh^yg>S%tzPVlyE3Mx!q3x%3bnVg5a&0IX>Ky= z7!1W9l{i4_*LE!0y6O|b&B8z?sn7XXM_aJ>9v(oatBlvUNAQ z%!xkp&M}9#?6!F%&c!ZS*wuJacL3v2NONuRrXGAeSQn3dN|%g*yH0p@`AyiXm0(^Y zJjK+j_p{V;nB!!aLklbp!$%|O(3WW_gR1#;UiuSe>VPKVaitDY38f*Ve1@^4N+*$q z8sg`i-JjpzU?VQTOAN9@et7O5kBNVZ4l%;2 zMLpcqWiVP!&^sxvH?ZJOpF; z1oErYE`io+M5LNbseH;6=|(?m@%A}%`6vJ_ksWnsb_X3L3F)?P(?3noYH&6e98$pZC= zaF+z5e>nK#u!~y(dz=W311liqf|tqDHPF-uCWP;=7o)&B+K4(-h;=?{R%sOJ{x*MA z)~aTp^QmgagRqsL$;Dhrbf>Uv&cwNh-_t4-;1#Q9EadKyzz}KkK^fm$8b5fP`y^m% zZnEfQe84zLEBRb;=2+`kvui_Mm1_c9APIgHm9%OTesp(G$19Vpf2CelO2((ds#bxe zc~Q;h3A!N{PFkC%r#($QH`=pd9=jk%cH^&6{V}xRSg(T54jH0GUa_Z!3v*3L1I}TD z$MAbWSi7MHXlV|su~3FPCCFTV1#xReoEh#)$6a>@%c@Aezm8J3-89ZwPCRICJEBq# zivUrjszlxuWf~np0jHlxKIw#q6}^E8?s?-sqL>k&y_*T;%MdP31dLfxV2G>X=o>N} z51ilfE}vjHZ4g(pMjEs3lg`n+w_$}+L9JL6zL~Azwox|XXnD|8e;W!DVO4%H(h?44 zYpq9l&C9b(6NfCfssv@qOQKy_?eSv3Mr2{$AAUPD!lspP?);S=k}5)22TJMY-2iE$ z$3pyRWF=*{Rn3O!m=8MxSfRLI8s!($qZc9-KxVlV)YFLK#j4bh@$`E#cXZMG24b%}d!e`-Oq=6Dr& zqV>< zHA|S)wS-;DmM}LaVLZ1Fq)LMrlE1xkA+GToo^jhITaVp=5s|m~f*=)0)#@~%6h^Ta z2E>)wk+zP&D^0?tq+5`Yw6B_m0mL{uxYhxkX$pUKIlVj~mjPo{fLdN0$t-Tn)?Z$+ z@NFhNK|+HaA%6*~t&KNk>A?`zt-35TG#Q1q2@2v{ALh9woQ@S&z*slNi1j1%X{<)N?JA&-ppUsHzZgn5|rv z)(}$B(A!++Lq^y-KKcz>o@qh)#?(A)r%s~^F4!ed#00`(zj(a>G zTe)5c&pa3rqYlY8<4gJ;TH?J_qLxHcT2wd3shmFz$ zTbtf575&Dw255CRFj&%0I-ntaA(l&ql2vKB)i2>~gfQZL{&ZJ6ttyn1z^UV2bVRDh za%f>7cSuRHdqtzz{bDb@R=B=(NosC(|5d6HSIe#$nS_#Mop3CBuIU)eEO=04)5r3u zitfVOZCLkmd1w>G+B8aHrQao;H_}Htc&!#cq(p9NJUpTp76KprxV6!y)s;ct@*$pS z(6%AJ5r!XODt$Y~BIC@ESQK;0KxHa0@uOJlnUE+5d(XpEu2?%bp87YHVqt+Mf#1xV zt$4vYs5@So{n?xUyKjj=M=}P2>>bGZV1kl zbtg@7hN2bP=%V18#}a_rk&qHR5-Nn>2tFc3!4u=CtwM$j?y~9Ed4)r!E~4tKW4|3K z>0?fVYX(#Y(T4x@ORrA$^Jazx@`{0bh8EacMSXp}VkScW+9Di`RS7Q#<*<7G7+q(6 z#x9yBHV3hn0_bCEDXF)qz0MM{VYP{Dxa^3Z@@eL__Ju60tu; zBFlj_5C$P0b`c6$1+|e^L#c23IAc{j&iXU{=_I%&8kYfIw|iu$4SZuR0l`*~leujg zarsiI(83&;M-+d|Q|d`FlV)xFI^x_Rt-3 zFlER>whK(XUQe^AMS!SPa;jF}K09wj2TPUa*TU?bu zmb_GXix#WfD#$Kp2Q)YZrk1=(cvM9M*@(R1adv~ zxr}8sj0qQw#vUN4g4aGUGkJ;uoiuu_y(WIzB4v`hI`w_sI9;RG)ur{@X{o`z{-@7V zlB0P3WNE`*71YWRq;svw_H78mW%(9k7S$Wtv|u(!nSKq5t=wq7V3Q&A_{WzVs76po%&^1KVR;UCMFpZOIEG>6A~)X#hD?wj!C5SX z(=gkbvK@B~5Wdr#4k6(`P8a6hV{73@(RZru5A`GQGwR@k{wfzbcOFN#R7m*?{PIs{ zBg^Ty<#2|ghoq`_l}79&gDe#WxNF6-@Wrf<@1{5L(x=|sCTArj#xaEl>J#m7EjKNC#Qr#L}u{=}ohx*#0 zEVyI>oR+%9|eA~NGGA7!w!f$`&xqhEAIJZHTx;Uw?r;?S~c{iI30Ife{Iip&CZ z4~?9NCT^ZRJd{>*6%ux8&3NLh1Lm}qxe%1Cq)f2@pqEaO?o+Bo-&gWThZ{3#z$PLo1 zDOjj3#FE|u6bslNiXiawrbc~|e-dZyHaJGOYsqE6!HHlFS$lU9+6fjWu+i;v3#wh( z)&y$BHQKnmIT*#abyqzq>XMBu{co`$4YMgdwRCp&*+^jpR3TNi@_5&pA4xG))Sh?C zA@&^#uzEiXxuzl!mf<4Q3S!Y26|iil{d>4W(-1vz9x#yEAaWL8OzrRzZ6q#&oSC@Yybt+}ZYx@ZqQ$@M;3ERl z9z2C}d6m}N26FFJ6AlOf7z}b(4)VwF6&}z3i8e`^e(s#V^>+2aX3FdX7`jX=cEZKd zp!p5=nv$Xr7(GVaa0zUzPi>`51X>wRY2uZ97tU|D6}aZAoY5eeyhw51;cfE=W%?V_ z-7POGd#1E~eP*Yf@^{|G)e|i5;k&UtM{{?Qx-hr?o1%J>04NP-jp>UF*-^R(JJO(`cI_-P1% zkom19BO78lb0H$_;8#CwWj~+|Mg2M8FO1Iyg6qydy{s^+8UO=3d>QHr6GZ`yx~9#f z-s{AjlC2o1dV;1@QoFVkhCQ>)J(9aI@Q5TG!<%hyMvZTk6I5rdkTbhR3a?kfOfiR1 zx8P|^?^gAl6u-PlS9s76#5i58iA$TEjmw{j({ZI@=ODjX(l?TST@iP0(J&tCP*5b-67O3=(rir`v{sj;%P{|6R zbZ+DLTc)@QG#jnJN81qjz+?#KPGpw`EuWwdbvds*A35_(p>$&f^5K|vLB3Xz<8AsI zjmcjzeN#I<{#_wVxK_}8s+ih08Z?ujYM$cm>Nfm=`xsD5vbL%mD+gv9qgxT-P zOQeY?^tt2M@#}zIk%^K`g8}f*($l$v4h^L;@!^MOZ}&C7eJ01(BH|Tkv?S|09_Lrm zU-2l0>YCV=L+*UVOMBdbayK$H+j&j@BIw-o!%oBiSl5#MEt?KLqSW*kV_VO*6G!(i z5ryg(dH0H`^Ma$9Lgd*mS6)^Mp5_xZ?-CE<_S(KCU5(wMxxpcUMVaSAp)$$&niM0Ql%^BID*B@KJ-hzRJW5*uX{?%{?#w}Qn(`>5xN)dO;qSWjaL zn1Tu_$MpEfTL3|SdLDbXwD{F+{yNplZS~>jJTJJ`{QDYfmq>J@AL!V_vi(VaB77|@ zlqIZbMjkhA>QQqZQ~`rV&v}b`6{PEop~x4Q-{4Exj_+e6t~dR7IL);7NvOg}bzHXa25bcytWKVG|e)_&NiVZ~Z& zpTqSfL54;d0(JVNT8UTdZCkKZjt&rs7k*QE?gANy zXOp8eQ|Mlg&)PM!nmU3X>JEN zz5qrG(mQaVdI;bGedF=XX%66c#SyRwwRgU#rRh#tq*~;ckC-sDuP-+4iw&)2E`f{U zO2n`u=bWx~gA?v-;Z6nqZFf$>hQJetBzBs6&Nwsi`QEbp+CidMuh6EOOD2My4eJxI zbR4xu_ZQzixrOKhYa+`1fb`Xx%Tk*I{UT+w6^`ET+PVbTq2 zuCK_D0~McCTPrcUM32|qT6PvXd90+5ZAgs|(!|xz`ZhE;*Ga25Ewt4>Rz&MwU5wp? znHz%#2rfBx^y?)kOUB34Qc&3i#XvQ4^B2aykjN4&i>PxoPS=Y_#qSZy^U>FRe8O3yEIj91RTeV<0wk^uFtTnpJZI}%o z7j5*QD7!R(WKS4!8lid8qRpV6BYUGa@Y+4hTchn(8+Ti4R-G_CQk5C#c0ZA)Wdkf) zAGl$uGFD5S&L+oScLhSDnzJer$cM9SA(A0tn*l*C8jsj83)w{E?y#D-s4nHdiUHNq zjO^aDqn*$heL=5YHU1bzHw;OaUYy5-?PF<3SPa+OPG)_r8|)b`r=vtU&+-#JsW@1t zBzptG5Uu_cHjkpNmQGqr0Rs<_L@JgT&4?Gm<2&I{kTaf|GOTc25@RBhnqcmNs27)Y zVE%TB&fN%(!m8_@SDA_b@$+ZtJIMU^L*;PXQ;lxY4Vx%)6jDX4?HY8i+L{ zR&;c{;QsCO$ImzFZRn?mZhTFv@q;0dBPJc*rYd?L{|%uy7cY7)!K5uICPcAGY7hq* zufBg})?HE=qFcP`dG!E^d4QH;tspb1cuJD=U5;d^ zFB3vLtxPI_4V3J1;3bD+_kQ0|ZsZf4E)UP*;8KM>vnI-tt4^N2lIvUo&bKAJ>Ep0| zGo*0bnYl<)_csVmT;DV&&7JjGgsaQx=Z*%rPs+Bkb2Ubume3mRfQ^BBSsjTpir{bN zA#c|%XR=#ktck=ARslp!j{am+aEt3OC%-XyyGl^6qqsCqj&7=P+q{L1MDA(lOsXH) zCLR4`q4h^cnLBRJoImS|cNSCP)msgN*zzNZ98~an_}wEVE#3Z}o~iO8AY(NUOXuS6 zAL;UFzi3bJ?V2S1EWI7fqAW!9JoIBEMk?%yA&8A??J0ya7%I9nF*2gKRX=q#S+6~T z*&ORXFMlc_)#im|pkCrcdk$bNqwQF{55rQ@mTxk=8)((ubnakIw|_MBt*1}-Cx_J? zvfDzaVZ|XSGI)WMev>hXQrL|MV!Bv2qTJ%jUM*jNlVL*}RC=U{z&~GEJ@_h)T0W8h zdX1jFrTnc9H90$|5jO8V7KaPSd7W54!?RO|^yils5)rG^RsX)Uks)?GGLpIEJ2G*c zln`CKNFi}RynzBf6gUQ6{7#-VVPh9aLiSWonV=3A#oLLD%Y1Phs_yGAC{Qt#mcGf*sq2S`YZ zU8)DggustkoCv70SJaQ@*poyQgsxvptT(NFdv9OA9<^4zw?j`m@V#*}$WsOaTmxSi z(EE|3?u`HlArL?qn1>CY{y|26!GQX;xWIrC0D%xi3HHO>xbgG|D2NKtGoYy+9ri<+ z*K$$Zh#(0x)Z)Z2i176Ir9jqT8wlyZUdwxs*#N*GF8Lm5e9ltUK*pd&GXX-(6o~<> z#{=54DEvUd^4z`PMw1bNfI=P}zp1An{MqGyMfYF@uKt2BI0337@EvWIArI{Rm4Zs0 z1_b;vg@S4g1tEw8Bb@pRuz%k_`}Btn`pBMuPAqURUp56m4G8a7+RBn(2<9YUf8Xyt zmrxbMKkdv)$CnrJpKaUcfAV!rpa*fWo$3)~M>Zx5FiD>V>O&Uhi$sw6Tn$^+`AD|6 z<;BBu#UsT_Z_nEjJ{hErkP3@1y$TG27mFC&4-A5m4$KGwAYh6PkO$yRGm`{OYzBoe zA^HLY$N>LnE}G&7Ao?jZP3*`FfDRz+=Zgr!4cQ0k6AYp>^Nmdc!2U)r)*yiRYRP2I z;|C4ujxhD12{u8f`!x#QjxD&H^?h+#(YE)4VQAHf=ay zdKG@Rr#FXfKs-Vvgvx4&tlVSqUkF%_f6z=(( zZ}{NO?d18Gi?_XnjsuYI3kL#9fV?;l#aw+DIB`%}^3OPrU(5H5=$^GeQuMa{wu<>G zy|$9ddn}*{71dYrRk^P?k<#$o?+>l^WQiIry@md|Xn5u0xk(G8S#z@VqZ-WVWM)<$ z1#4Ej!*YofHaYOSsAPF#Q2+V|#th?A8SWt((KL+{0a4c(i#*HwunKCi^l&U6BE-mwcUK zmSPwuOD;n~LNW0S)$NaaX;PJ5@|Am))36_hFrY2{sf^f86~EQ(jK_)=__$&rG5VzS ziyK@prOLELr?_e6lx}&t5tRqGvSaJG%=sI}F_#UeQkiDftJz}kXUCOlXi#klF3h$o zbsAT5aavZ6o4qD?>NPrLg_yFq>dZoAFE5qkcvMOZcJPnFzb?oN9Zz+1l>{%1&CP%% z0zR!G!vhcM-w(RUE}8JEKQzRO`!^l&Z%$Xi&0ee?PS_*|ySTfOw#q|IncY;~C1yzi*7)e?IkY!D zLsp!Lp18y?KQ|lLsELE}Ft+A93;H1n_BaITV2VTFd2AxEgmfECM*bqns^d4SqikqO zw^mEfwbawMPecz|50WMa?N;DhS{IV=N860~#&1m{ zkKii7E9cuw1QP^o(;OL-w>K$V=~;-s1U8`ANSg1xWlPxmRf_Nz&5Opy#g)#*<;j_`J|IJou=W6A@im?{! zZ%pw%e6TDNob-LoJan|m1tilwR#MmV6Bn&#qxj1j)PHJrySJMg9$ycTh1F;BL;mR{usDqkyhr0PEeJuXm69R zQMfCh9z5yQR3cdkK3ksAkcjkbm zLKU%-VzkEe6darIb2W<{DLarCSL~mI9c#Ey$O}g%sFTq7CleE4^ajJ3gl>BcvC-+u zrGeij?qoI{n$PkcE=qANeQ~Ru#@bibwyGC-??3W!^^;%X1h3^L_nJPj-u#n2)#dD@ z#nVl!HperyUxTmOkNGG()sE^OT662Rkek2R>OFF7_uQFMr%)~|fxxS|%%Bauaf@Ne z&6ar%O>qpe0;(mORfQ|0=}9$h*U6o(a=ZF@jyH6X9gdB*WFl}=4-;vf4A|*rMxPiT zXJxa02*xedTuyjw^y!n$h3FI!C(vN4^lUYrM{^JcZ)La69Thvj?X!GH?45T7wXTxq z&5MN57~2ZI-8zEGwSSdfIs{lXx)SinAIhxpn@_hVt{x}XY)y0+xKSuS5WI48k;!dTa^??~6_4OC zdLQLk=2_DoE1_1%U>3oSO~s|w;TawEj}hT3I$40GafN4{=!ivik7UWB#UP|Ct2_{O zH$0YVKIJSfYw|KBv8uQVq5qX&0foKPk3+$)Fj$%#dmMNs?qoF6c@;D!*j}%&J}-v+ zq5BSLd<)lpL>AT<_9s`kk2$4=*Vx|q9MznjOda%~*p<&Ee+gxAUV%g9#53pMkqhBT zGNrj~K9y;(jCURS(>A-V$J*X9EYGH$xUF8s_tsNeZQ)^GZo}}k{Ru5C|oNUX`i{0!ooCy@NC(T@VluDbkAwNRi&9 zioU?SnK!d$)|!`~-@UlAH6LBlf_#vwI8*Nv~aYyT9H9+UlDu zdJJ=fuI&!zwEEa*YM%M{5bf_D*GjYM$jCApX9wrV$<@zvR!uuY&gXdT-wq!_2CGo> zui>H%om{RbUz+kF!)9;VF6AmnI+j!RTINV~Wmc9uC3?OgJF}fpA3fbZ3tU34j3?ge z>&PNUJPKet)iPZ@JQ;Srbz9}`GfjSv$a_%9H28ztr3`}X=eEqd4v?d(6L3aP<)WWb zR>M|yt}O9Qnehdgj{VjAsqS_6zE|p8=FiK(uZ-moSqni+4}Vm_&)@A*bmBK7%W22I zgTOki^*~co^Xv(4XYvdq@3cKK#O2HE=n}GUOb)3Oa6O)^{Q`$XQ z8wkCI6HgEke+3DSEJt;OOElr~Q~%{IVTYL?4UN`>xke9WQgnKS<>_3)+q)#sSBX}? zv;H37@q#ZC{7{OPB*Y*+f15ePD}^-UbBf!I}Gm zR$Erbn5ho`%8?-Neh;)SSxqVX><#$-0CK!?mKN#BcvVsi{~SU2;gH!#A4l(joC-o& znw?ng3n!*z%2P>lNkgUZ0yf@3+Tf2l7h}n5CU^>L;feADTfPAml3Tq&yemFM#iP#w zVV;wpf2ga;OYokx7{-l0Hkmz#(7Yye!~74;Thn>ac+6;uU|62W{z)pq>oT1yStz=e z++yE(U9#%&K_)otXQj{50^S!n)P6w^L^|IeZlY` zg6ZmD#w!-QU`m?be=+>|q%pIKHEF@pDnQ7S=9|{hTI~L$xo7&#SLUdys`e^9yqU!F zk*QkwHzWby>klex82kKCgAyL1-vW1NS+HoXsPJfbY5_BZQBS&K9yi#v@^(vhq!XzZ8wD)ip50F&zU2z4AhKLbK4B~g2 z&A?>2R*Y5bj!5v$rB)qkEZiQgechx@U+~uC6$OQE@yK70?UECsz;0!t!EzwvEK*uL;u7oQq&apQX9}iU<^`3XY zQ0gj4&T=#iz8~oPz^Aa9rzyg$*HgQN_w_UxXv*m$i&Thj97b9;8EKfFY;c~HtYWeV z`g|;Z&u>wNDMMdMG7nraTWa&E>ib73%J(9uMB{HVJ9$cMwl2i|?$Xu7HVp5Exo zefm!SF^^dp0_OW2fiAo2_Zg03Zp1>xdCnk!kB5J)_-MVz=5MA2b5^tUwcIaOGF*y2 zh>k%;|1v5T9n8d9qO5$+!D@_Vh;nhVeDpNS|Ees%zagCPpnAQL?eh%1cL-c#CQNgN`AgDFC@2(sDwEBCt(8ufs}5+ z{T86N5O@m?x8QjT4{rf^3wKr<5Eyi;DBptDEjZo+{2!`6kC2J0uRHW#QmEXT|1aj9 zbQjq5Uk!hcZt#!hpj+uK{av!VVcx;tUGGMJ7t7<;^)BGu!0#lV+cw{S#JEd*r`}ob zLf$$5J(>+j?C$bJZoB-SBzCK!ZNfZ4#(s`&P$yq*9w8Mp&%7`CUg|iYZ!s{y)fWbY z1tFkFB-EKlNE;dy;DvnX!;QY@caE-Jo~mf(cp$f`vFrX5)l^@6%Y{=|ND$UcR-I_$JHMSM2|{TNEPbn>fp%(gd-e$VLng? zp#T5&7Z(&2M9&{Ix)Q$|7pgVpf4OKr0?iv?CSv#(gRAO`SjIYkv_h_e=0)( zMWxVe{CA)K&Zoa;ZSA%2ks^HN&9c+@hxuzkT71k|@5SQbzPGteQW30F+4WQG)`=Wt znvZTW=dxp|DrR{wbFi4Ys9yCf&UtmV?7n-Veh>+y-90NFt^PA<^XSH=Wjx@x8m?LC!yQXT4Xaqxm3_sW8 z5F0GZfJsac%m8w)blcrsPX9O}_H}%AF3R-* z{rNHnPHsU-7seP_C5t9l#qB9}#M!;@l{$w4F8}F#;%kNsytXXGds<_SS_s$_1DKHM zpxcHMc(KWks-NVZG~;?9o>c|kYqK^VUPqSc)m55z#a_frHRF0Y7b}A!mY?Qk{0~GIQw#IPXOG^; zH_P&9s%DY<%m8ShLZS?Fhe{l{J^%esgwtVNm!rG^2@f?tzJ?>Oy~{KrM~}uO9kvuY zVz#j}M!G&nF@V#X;F4QCGQASvvnKks29&)f_}pU-PrC7UHJ0#qdJ@PmhLb_o$K*cc zB(|jz#t?pcC&j8My4~_U3k)}m*H)Lph0|m2r&%~q8&1^>Oz5&n0SjM08JB@&Zhy!~ zbhvVay77)Mu)H2`QYBgC^W)<5r(M{#fwYzt{hdDvpilcr1^9ttppTeNET?YNU@a1> zCNb_e{ zFsjEkJAvtIlx@AP(*pDH6wH$oA=uw+Dfw_=v}$9|D%>PP8Ms6KDC~#cbK>#P)*R3n z08}%eOmMW__||+Sk+XJ7t?W*@S!w#yx&4Ge6-5rycK!FlNsT;lpYSXst)k@ zgcmGzz_6)QWVCKOK*OwZp3FDv=Sh)F+Q3~JQ=dk3NOxQ_XmBdoDPITSv->*VMy_og zY4Logp_`XcxWR$2K=Cv>STSwf9rPAPs63(WlHqxzsDQ>7tGl_x&0%@(3VY z{XKKbznjyD!wmCu_xDX3FDDy08H2Bkm|61FF-tz4sk@^}B^Wn;jl6n@Wd_m|RDJPXjgQjZ859vy9i)duto)pN^`Jx(@jv-?t8jHdA1_+hq ztD0;}NvSxQ>fL>{)qO$xLdxS$(hRSELaL_yaLqYnKW#6c22bf=Yqv@l9$V2`dilCb zX+`IM*}|91*&2=BH=g^0dkMAa(!SIj<+ymp;Sv)-+sD_RHs|r^cWg zp1E~Eo{tk0z`Z8NluxEw%9 zJ27*wu2S-A_UGeTk6#WAVlG9>LfUq@&T@2TL#FF^vg?!F2hDcV!-D9Pn01uWqHieP zBpwP3+9rg0|2nhB^XeWbVq+8=6-WNjcVC-R-oX=)&9k%7wKzHQ7jcqkT!1cs9 z|Ngmk5_Q9>pQRA~y8)Ib9)F2+@sgK0kQnDS+*{sJFCgl4?QuzSFHK3zq8E(MG`heL zjoE<95Zf8(@7Hs=v;GR|3U}6@6FnmgJi`eYw5wM+W0Z01-;M5Y_L@D|B|Q_r_?3`5 z>~aFXXva((VZ+TDoZAEFNn*ikN4bWy&mzJyJ}i~RhGi@X&f>H^d}Z$`m<@lL@kr&f zO+DOSuETRSXL#i#c2S3B_-FNH-Lo1s1OEyB(i0#2I-Ka)hD+?8R}-V|QawCo?tU#W z2GkXtr29PXrcb_6XxHmZ0`V0|S8Z{Qm>udUCcDwbru&u$C5YsUKLS}m%l=2X<(zRS?z~{3ZyUmq#0<981R~#7gT;C zj4u=w#x~$cWw;cOuxA+(-YTE{TK|pEz2VcIC%DQd)s|)l(TfyeX;eIX5Q#iWM>C#m zQSLs!5?SKOPO5u&AM28&GJd7=$JHkYGw!NH6}qzRME+!3Q#tH^NGwI$z`&g-MM&Ds zS;7my0;sR=qOvfOsw)!uH$RD8EpfEVZ>V|YdZd}~roEhKdqG0*UteH|9u*=iG8RyB71@b^_P zfSd6bNsEF8ifvm~!1rEIC&ts|daA^O58XJwzadb&M{Q#dX&D-f>msygmfaYyode87 z!j%>s4}L@5x4z#~p0*vhfHnIInT=r1h0+czoLAVk`-eyZG=BXF4&nG?!Q9UH~^?=%Xt;S&0!W5CX)({og^b;FV=3!3@g1W4H zXkg1NHajAfsO=(^IlHgjgol)Nxa_b|hC$U8EL0>)k5xoj{OUrxmZ+kJPtA3#1huK< zg_TliXVHSaXSNl@4gcg6RX9TFLziWaN9T%4FcH8n)X*=Oino(eu_C`H88RpRFpbMLFjg7PK#OSy{HYN9Nrty<@yxVy7$^6vALOY+v6J zjItMH<-xpT5Ieydu~N4B1M?qp7eC~BR(MYu66pD+!q>MFcR!oXihH2M-j1GPr}AJk zHbOawT^Cg9(4ug)`o!VBn(^#(t+_7KTn|dneaFL{&`pC+01RC~H7W;e@VZz1o+a7# z)0eFJfD*ADH#f>d>OKJBL}Z?y6O``hn1vS3%fFEGt_7SR;T5G3`Bp2HFk8bt1ohtF zL+^BV8EpfX!92;7nBbKV4O~dWlVHPgT955U%`X7W%QR=}@h^SegitUNI`oR(r@GgZ z(P^ioX)l*WW#;Qy)HAs95RBoflNGmgIB8+^&|JhJ|fopQ=mD6+mE9gD?sLqf}s%oVqDRzCh%eqA@mJ>XcnM z+sUdp5!R4DS+7s$=ve8?G zfs|9rDAs_rE>w;I`{O}a(Dn$!ha6M!4ynJ3{?Y^`R_9YBkig5adwNiZ4x!D&q0s5^ zDptDKr$ss3R0djL3T;DrDud-s_cu@P$?e$+aa`7&ZsA4aBBhz<`+4w;6T+kysW`>y z>)l7jgcPucL;^JFY)#KGqk^m##mCmOMbyo#>y;g9Z7s`Hw2o`Z9=k45WA6E@;7|6K zX+J~76io$@HIVSMVqpI=3)ldcPY%_R0Yet39g7dEPtWAKscHU_$Ck~XW2%qqT*MMJ z_WE4PPTIQPf#rl8_uIdBkrSFLqu9DG7Z4f0r+(;O_>~DY4Bo|v8s|&Ls~Wtvq+A60 zq&~ESba`SV`@X<{Zd{Bj_dPi}eC>9`KWC z&Pxf;{aP6A3+evVr{D$c}VKtHtQBfP-lRUrsqRwAkZ2F6cq*80)&iRgQ2$~ zK*$_uEesR|3Zom1yu5sYq9PLL5JtB>oW0Q6ZN2GMQw3VfstSv%s*0+sfcWy>WeGJ=No5d79{Ar~(0TrLIv-F%QvCm2%VkcLGBzxdco|XI!B8` zOBJAmL5{0#Koj9$h^?yo3y&d_I}QqQeh7ih7MRgzxw)p9nm9Oe#MNg?|IpU+d;M-P z;2_{l=A42=Rbwx|*t^<;N*0cdOkrL;g21PYC0a_Fehfyh-(CU(>jE;7Be6X zg=zA=64BFSn$Pg6oA}H0V=EgPi3iqr+up;?d`;I%xHFM$I@vgQh?-`Md0Yh9OzcjX z95#dZUbA+SZa#egUBC+zPSf|qWx+8t6S|GWzN`n{X7A7CkuUxcJC<#k zU>Sv4teuKmc*A$c1gap+UwK+zBjL+}`eYHOEVBss;Li5_iDI{*8b9l)Fwgyaww`c$ zo4TYAi@`3F4MUM(RP%(Ko?P}@%JfO()8)lR&*lgXSN(ricz)3{T-#X`3{7@|N3*~Y zJFinG8rQ%Ki@0{5T;-??F)4CAd)ivZ`fwsy0QaTv`(CU?D?gZ4{=$wZ=&FzOo)$P) z@nUl*h<;IJQ2W5R?orfp=G}{BZhQ)ICKe^S$e1MIcNIRt)N%MUQpcVXLTe9Hze0-V z->v~IZXiFS#F8xE#XM@w1oZ;Ao2mWRny%ajo3YFm(|>PcNM zwS=@QPKCW&I53qveCRUSjJPNHKoOv&h{cU#WzSq9E#qfl*6J~}jbrM$;ALvs*0E@6 zx@tFGRyiGZ_@Yw!+$E%Pd+|@Z;oGGYuJ0fjV=KYsc$ELB&Nmj+Vv0gI|VnWKe?Dyng71@eS95|zJchP TBtTdS1O|%%I62ky)dBwlt$Awt diff --git a/docs/build/latex/Payroll-Administration_2025.tex b/docs/build/latex/Payroll-Administration_2025.tex deleted file mode 100644 index 958899d..0000000 --- a/docs/build/latex/Payroll-Administration_2025.tex +++ /dev/null @@ -1,807 +0,0 @@ -%% Generated by Sphinx. -\def\sphinxdocclass{report} -\documentclass[letterpaper,10pt,english]{sphinxmanual} -\ifdefined\pdfpxdimen - \let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen -\fi \sphinxpxdimen=.75bp\relax -\ifdefined\pdfimageresolution - \pdfimageresolution= \numexpr \dimexpr1in\relax/\sphinxpxdimen\relax -\fi -%% let collapsible pdf bookmarks panel have high depth per default -\PassOptionsToPackage{bookmarksdepth=5}{hyperref} - -\PassOptionsToPackage{booktabs}{sphinx} -\PassOptionsToPackage{colorrows}{sphinx} - -\PassOptionsToPackage{warn}{textcomp} -\usepackage[utf8]{inputenc} -\ifdefined\DeclareUnicodeCharacter -% support both utf8 and utf8x syntaxes - \ifdefined\DeclareUnicodeCharacterAsOptional - \def\sphinxDUC#1{\DeclareUnicodeCharacter{"#1}} - \else - \let\sphinxDUC\DeclareUnicodeCharacter - \fi - \sphinxDUC{00A0}{\nobreakspace} - \sphinxDUC{2500}{\sphinxunichar{2500}} - \sphinxDUC{2502}{\sphinxunichar{2502}} - \sphinxDUC{2514}{\sphinxunichar{2514}} - \sphinxDUC{251C}{\sphinxunichar{251C}} - \sphinxDUC{2572}{\textbackslash} -\fi -\usepackage{cmap} -\usepackage[T1]{fontenc} -\usepackage{amsmath,amssymb,amstext} -\usepackage{babel} - - - -\usepackage{tgtermes} -\usepackage{tgheros} -\renewcommand{\ttdefault}{txtt} - - - -\usepackage[Bjarne]{fncychap} -\usepackage{sphinx} - -\fvset{fontsize=auto} -\usepackage{geometry} - - -% Include hyperref last. -\usepackage{hyperref} -% Fix anchor placement for figures with captions. -\usepackage{hypcap}% it must be loaded after hyperref. -% Set up styles of URL: it should be placed after hyperref. -\urlstyle{same} - -\addto\captionsenglish{\renewcommand{\contentsname}{Table of Contents:}} - -\usepackage{sphinxmessages} -\setcounter{tocdepth}{1} - - - -\title{Canadian Payroll Administration (2025)} -\date{Jun 22, 2025} -\release{HR} -\author{Alexandre Bobkov} -\newcommand{\sphinxlogo}{\vbox{}} -\renewcommand{\releasename}{Release} -\makeindex -\begin{document} - -\ifdefined\shorthandoff - \ifnum\catcode`\=\string=\active\shorthandoff{=}\fi - \ifnum\catcode`\"=\active\shorthandoff{"}\fi -\fi - -\pagestyle{empty} -\sphinxmaketitle -\pagestyle{plain} -\sphinxtableofcontents -\pagestyle{normal} -\phantomsection\label{\detokenize{index::doc}} - - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -Python 3.12.3 -\end{sphinxVerbatim} - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -5 -\end{sphinxVerbatim} - -\sphinxstepscope - - -\chapter{INTRODUCTION} -\label{\detokenize{introduction:introduction}}\label{\detokenize{introduction::doc}} -\sphinxAtStartPar -In this course you’ll learn about the various government agencies and legislation that impact payroll -from both the employer’s and the employee’s perspective. Moreover, you’ll learn the information -and processes necessary to produce payroll at the employee level. - -\sphinxAtStartPar -The objective of the payroll function is to pay employees \sphinxstylestrong{accurately and on time} while remaining -compliant with legislation across a full annual payroll cycle. In this course, you’ll cover: -\begin{itemize} -\item {} -\sphinxAtStartPar -Payroll’s responsibilities from hiring through to termination. - -\item {} -\sphinxAtStartPar -Payroll compliance legislation in practical scenarios. - -\item {} -\sphinxAtStartPar -Individual pay calculation process. - -\end{itemize} - - -\section{Payroll Legal Framework} -\label{\detokenize{introduction:payroll-legal-framework}} -\sphinxAtStartPar -The Canadian Payroll Administration system is designed to ensure compliance with the legal framework governing payroll in Canada. This includes adherence to federal and provincial regulations regarding employee compensation, deductions, and reporting requirements. -The system is built to handle various payroll scenarios, including different employment types, tax calculations, and benefit deductions, while ensuring that all transactions are accurately recorded and reported in accordance with the law. - -\sphinxstepscope - - -\chapter{Payroll Accounting} -\label{\detokenize{payroll_accounting:payroll-accounting}}\label{\detokenize{payroll_accounting::doc}} - -\section{Journal Entries} -\label{\detokenize{payroll_accounting:journal-entries}} - -\subsection{Accounting Recap} -\label{\detokenize{payroll_accounting:accounting-recap}} -\begin{center}\(\Sigma \text{ Total Debits} = \Sigma \text{ Total Credits}\) -\end{center} -\begin{center}\(\text{Assets} = \text{Liabilities} + \text{Equity}\) -\end{center}\begin{equation}\label{equation:payroll_accounting:AccountingEquation} -\begin{split}Assets = Liabilities + Equity\end{split} -\end{equation} -\sphinxAtStartPar -Furthermore, we know that: - -\begin{center}\(\text{Equity = Revenue - Expenses}\) -, which leads us to: -\end{center} -\begin{center}\(\text{Assets = Liabilities + (Revenues - Expenses)}\) -\end{center} -\sphinxAtStartPar -Accounting equation \eqref{equation:payroll_accounting:AccountingEquation} - -\sphinxAtStartPar -Payroll accounting is a critical component of the Canadian Payroll Administration system. It involves the systematic recording, analysis, and reporting of payroll transactions to ensure that all financial aspects of employee compensation are accurately reflected in the organization’s financial statements. -Payroll accounting includes the management of employee wages, tax withholdings, benefit deductions, and other payroll\sphinxhyphen{}related expenses. The system is designed to automate these processes, ensuring accuracy and compliance with Canadian payroll regulations. - - -\subsection{Journal Entries} -\label{\detokenize{payroll_accounting:id1}} -\sphinxAtStartPar -Journal entries are a key part of payroll accounting, as they document the financial impact of payroll transactions on the organization’s accounts. Each payroll run generates a series of journal entries that reflect the distribution of wages, taxes, and deductions across various accounts. -These entries are essential for maintaining accurate financial records and ensuring that the organization’s financial statements reflect the true cost of employee compensation. The Canadian Payroll Administration system automates the generation of these journal entries, reducing the risk of errors and ensuring compliance with accounting standards. - -\begin{DUlineblock}{0em} -\item[] DR Payroll Expenses \$10,500.00 -\item[] -\begin{DUlineblock}{\DUlineblockindent} -\item[] CR Payroll Payable \$10,500.00 -\end{DUlineblock} -\end{DUlineblock} - -\sphinxstepscope - - -\chapter{REVIEW QUESTIONS} -\label{\detokenize{review_questions:review-questions}}\label{\detokenize{review_questions::doc}} -\sphinxAtStartPar -This section contains review questions for the material covered in the course. These questions are designed to test your understanding and help reinforce the concepts learned. - - -\section{New Employee Information} -\label{\detokenize{review_questions:new-employee-information}} -\sphinxAtStartPar -Which one of the following is correct? -a. Choice A -b. Choice B -c. Choice C - -\sphinxstepscope - - -\chapter{OBNOARDING EMPLOYEE} -\label{\detokenize{onboarding_employee:obnoarding-employee}}\label{\detokenize{onboarding_employee::doc}} - -\section{Employment Standards Requirements} -\label{\detokenize{onboarding_employee:employment-standards-requirements}} -\sphinxAtStartPar -Each province/territory, as well as the federal government, sets minimum employment standards, including: -\begin{itemize} -\item {} -\sphinxAtStartPar -Minimum wage - -\item {} -\sphinxAtStartPar -Minimum age (may also be governed by other legislation) - -\item {} -\sphinxAtStartPar -Required pay statement information: -\sphinxhyphen{} Employee name -\sphinxhyphen{} Pay period date -\sphinxhyphen{} Rates of pay and hours worked -\sphinxhyphen{} Gross earnings -\sphinxhyphen{} Itemized deductions -\sphinxhyphen{} Net pay - -\end{itemize} - - -\section{Internal Forms} -\label{\detokenize{onboarding_employee:internal-forms}} -\sphinxAtStartPar -Typical commencement package forms include: -\begin{itemize} -\item {} -\sphinxAtStartPar -Authorization for hiring - -\item {} -\sphinxAtStartPar -Direct deposit agreement - -\item {} -\sphinxAtStartPar -Union membership application - -\item {} -\sphinxAtStartPar -Benefits enrollment (e.g., health/dental, pension) - -\item {} -\sphinxAtStartPar -Confidentiality agreement - -\end{itemize} - - -\subsection{Authorization for Hiring} -\label{\detokenize{onboarding_employee:authorization-for-hiring}} -\sphinxAtStartPar -This internal document includes: -\begin{itemize} -\item {} -\sphinxAtStartPar -New employee’s basic info - -\item {} -\sphinxAtStartPar -Start date, department, salary - -\item {} -\sphinxAtStartPar -Probation details - -\item {} -\sphinxAtStartPar -Hiring authority’s signature - -\end{itemize} - -\sphinxAtStartPar -\sphinxstylestrong{Important:} Employer must obtain a valid SIN. A SIN starting with 9 must have a valid expiry date and associated work permit. - - -\subsection{Union Membership} -\label{\detokenize{onboarding_employee:union-membership}} -\sphinxAtStartPar -For unionized workplaces: -\begin{itemize} -\item {} -\sphinxAtStartPar -Union dues are deducted - -\item {} -\sphinxAtStartPar -Employees sign authorization for deduction - -\item {} -\sphinxAtStartPar -Exemptions may apply, but dues equivalent still required - -\end{itemize} - - -\subsection{Benefit Enrollment Forms} -\label{\detokenize{onboarding_employee:benefit-enrollment-forms}} -\sphinxAtStartPar -Forms cover group insurance and pension plans: -\begin{itemize} -\item {} -\sphinxAtStartPar -Employee indicates coverage type - -\item {} -\sphinxAtStartPar -Signatures authorize payroll deductions - -\end{itemize} - - -\subsection{Confidentiality Agreement} -\label{\detokenize{onboarding_employee:confidentiality-agreement}} -\sphinxAtStartPar -A legally binding agreement protecting sensitive company info: -\begin{itemize} -\item {} -\sphinxAtStartPar -Defines proprietary data - -\item {} -\sphinxAtStartPar -Outlines responsibilities, penalties, and timeframe - -\end{itemize} - - -\section{Required Federal and Provincial/Territorial Forms} -\label{\detokenize{onboarding_employee:required-federal-and-provincial-territorial-forms}} -\sphinxAtStartPar -\sphinxstylestrong{Purpose:} Determine correct income tax withholdings. - -\sphinxAtStartPar -Forms: -\begin{itemize} -\item {} -\sphinxAtStartPar -TD1 (federal) - -\item {} -\sphinxAtStartPar -TD1 (provincial/territorial) - -\item {} -\sphinxAtStartPar -Québec employees: also TP\sphinxhyphen{}1015.3\sphinxhyphen{}V - -\end{itemize} - -\sphinxAtStartPar -\sphinxstylestrong{Provincial/territorial withholding} is based on \sphinxstyleemphasis{province of employment}, but tax liability is based on \sphinxstyleemphasis{province of residence}. - -\sphinxAtStartPar -\sphinxstylestrong{Adjustments:} -\begin{itemize} -\item {} -\sphinxAtStartPar -Request extra withholding via TD1 or TP\sphinxhyphen{}1015.3\sphinxhyphen{}V - -\item {} -\sphinxAtStartPar -Request reduction using CRA Form T1213 or RQ Form TP\sphinxhyphen{}1016\sphinxhyphen{}V - -\end{itemize} - -\sphinxAtStartPar -Essential Info on All Forms: -\begin{itemize} -\item {} -\sphinxAtStartPar -Employee name - -\item {} -\sphinxAtStartPar -Date of birth - -\item {} -\sphinxAtStartPar -Social Insurance Number - -\end{itemize} - - -\subsection{Tax Credits (TD1)} -\label{\detokenize{onboarding_employee:tax-credits-td1}}\begin{enumerate} -\sphinxsetlistlabels{\arabic}{enumi}{enumii}{}{.}% -\item {} -\sphinxAtStartPar -Basic personal amount - -\item {} -\sphinxAtStartPar -Canada caregiver (infirm children) - -\item {} -\sphinxAtStartPar -Age amount - -\item {} -\sphinxAtStartPar -Pension income - -\item {} -\sphinxAtStartPar -Tuition - -\item {} -\sphinxAtStartPar -Disability - -\item {} -\sphinxAtStartPar -Spouse/common\sphinxhyphen{}law partner amount - -\item {} -\sphinxAtStartPar -Eligible dependant - -\item {} -\sphinxAtStartPar -Caregiver for infirm spouse or dependant - -\item {} -\sphinxAtStartPar -Caregiver for dependant age 18+ - -\item {} -\sphinxAtStartPar -Transfers from spouse - -\item {} -\sphinxAtStartPar -Transfers from dependant - -\item {} -\sphinxAtStartPar -Total - -\end{enumerate} - -\sphinxAtStartPar -Additional Instructions: -\begin{itemize} -\item {} -\sphinxAtStartPar -Fill out TD1 only if claiming more than basic credit - -\item {} -\sphinxAtStartPar -Québec employees must always complete TP\sphinxhyphen{}1015.3\sphinxhyphen{}V - -\end{itemize} - - -\subsection{Tax Credits (TP\sphinxhyphen{}1015.3\sphinxhyphen{}V \textendash{} Québec)} -\label{\detokenize{onboarding_employee:tax-credits-tp-1015-3-v-quebec}}\begin{itemize} -\item {} -\sphinxAtStartPar -Basic amount - -\item {} -\sphinxAtStartPar -Transfer from spouse - -\item {} -\sphinxAtStartPar -Amount for dependants - -\item {} -\sphinxAtStartPar -Impairment in mental/physical function - -\item {} -\sphinxAtStartPar -Age amount, retirement income, living alone - -\item {} -\sphinxAtStartPar -Career extension - -\end{itemize} - -\sphinxAtStartPar -Deductions: -\begin{itemize} -\item {} -\sphinxAtStartPar -Remote area housing - -\item {} -\sphinxAtStartPar -Deductible support payments - -\end{itemize} - - -\section{Content Review Highlights} -\label{\detokenize{onboarding_employee:content-review-highlights}}\begin{itemize} -\item {} -\sphinxAtStartPar -Consent is required for personal info collection - -\item {} -\sphinxAtStartPar -TD1 and TP\sphinxhyphen{}1015.3\sphinxhyphen{}V are used to calculate source deductions - -\item {} -\sphinxAtStartPar -Claim amounts may differ between federal and provincial forms - -\item {} -\sphinxAtStartPar -Employers must keep the forms on file (do not send to CRA/RQ) - -\end{itemize} - - -\section{Review Questions (Sample)} -\label{\detokenize{onboarding_employee:review-questions-sample}}\begin{enumerate} -\sphinxsetlistlabels{\arabic}{enumi}{enumii}{}{.}% -\item {} -\sphinxAtStartPar -What does an offer letter signature signify? - -\item {} -\sphinxAtStartPar -What documents are included in a commencement package? - -\item {} -\sphinxAtStartPar -Name three common internal forms - -\item {} -\sphinxAtStartPar -What must payroll verify on a hiring form? - -\item {} -\sphinxAtStartPar -What must be checked for SINs starting with “9”? - -\item {} -\sphinxAtStartPar -True/False: Union dues can be deducted without consent. - -\item {} -\sphinxAtStartPar -What authorizes benefit premium deductions? - -\end{enumerate} - - -\section{Example Evaluations} -\label{\detokenize{onboarding_employee:example-evaluations}} -\sphinxAtStartPar -\sphinxstylestrong{Gloria Meyer (Alberta):} -\sphinxhyphen{} Claimed: Basic, eligible dependant, transferred tuition -\sphinxhyphen{} Appears accurate - -\sphinxAtStartPar -\sphinxstylestrong{Luc Laframboise (Québec):} -\sphinxhyphen{} Claimed: Basic, spouse, dependant in school, tuition transfer -\sphinxhyphen{} Appropriate provincial and federal claims made - -\sphinxAtStartPar -\sphinxstylestrong{Ingrid Johansson (Alberta, Single Parent):} -\sphinxhyphen{} Claimed credits for two children -\sphinxhyphen{} \sphinxstylestrong{Overclaimed} dependant credit \textendash{} only one is eligible -\sphinxhyphen{} Needs correction on federal and AB TD1 forms - -\sphinxstepscope - - -\chapter{RATES FOR 2025} -\label{\detokenize{rates_2025:rates-for-2025}}\label{\detokenize{rates_2025::doc}} - -\section{CANADA / QUEBEC PENSION PLAN (CPP / QPP)} -\label{\detokenize{rates_2025:canada-quebec-pension-plan-cpp-qpp}} - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\raggedright -\sphinxcapstartof{table} -\sphinxthecaptionisattop -\sphinxcaption{CANADA / QUEBEC PENSION PLAN (CPP / QPP)}\label{\detokenize{rates_2025:id1}} -\sphinxaftertopcaption -\begin{tabular}[t]{\X{130}{190}\X{30}{190}\X{30}{190}} -\sphinxtoprule -\sphinxstyletheadfamily -\sphinxAtStartPar -Description -&\sphinxstyletheadfamily -\sphinxAtStartPar -CPP -&\sphinxstyletheadfamily -\sphinxAtStartPar -QPP -\\ -\sphinxmidrule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -Yearly maximum pensionable earnings -& -\sphinxAtStartPar -\$71,300 -& -\sphinxAtStartPar -\$ -\\ -\sphinxhline -\sphinxAtStartPar -Annual maximum contributory earnings -& -\sphinxAtStartPar -\$67,800 -& -\sphinxAtStartPar -\$ -\\ -\sphinxhline -\sphinxAtStartPar -Annual maximum contribution -& -\sphinxAtStartPar -\$3,500 -& -\sphinxAtStartPar -\$ -\\ -\sphinxhline -\sphinxAtStartPar -Employee contribution rate -& -\sphinxAtStartPar -5.95\% -&\\ -\sphinxhline -\sphinxAtStartPar -Employer contribution rate -& -\sphinxAtStartPar -5.95\% -&\\ -\sphinxhline -\sphinxAtStartPar -Basic exemption (Annual) -& -\sphinxAtStartPar -\$3,500 -&\\ -\sphinxhline\begin{quote} - -\sphinxAtStartPar -Basic exemption (Monthly, 12) -\end{quote} -& -\sphinxAtStartPar -\$291.67 -& -\sphinxAtStartPar -\$ -\\ -\sphinxhline\begin{quote} - -\sphinxAtStartPar -Basic exemption (Weekly, 52) -\end{quote} -& -\sphinxAtStartPar -\$67.31 -& -\sphinxAtStartPar -\$ -\\ -\sphinxhline\begin{quote} - -\sphinxAtStartPar -Basic exemption (Weekly, 53) -\end{quote} -& -\sphinxAtStartPar -\$66.04 -& -\sphinxAtStartPar -\$ -\\ -\sphinxhline\begin{quote} - -\sphinxAtStartPar -Basic exemption (Semi\sphinxhyphen{}monthly, 24) -\end{quote} -& -\sphinxAtStartPar -\$145.83 -& -\sphinxAtStartPar -\$ -\\ -\sphinxhline\begin{quote} - -\sphinxAtStartPar -Basic exemption (Bi\sphinxhyphen{}weekly, 26) -\end{quote} -& -\sphinxAtStartPar -\$134.61 -& -\sphinxAtStartPar -\$ -\\ -\sphinxbottomrule -\end{tabular} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - - -\section{CPP2 CONTRIBUTION RATES MAXIMUMS} -\label{\detokenize{rates_2025:cpp2-contribution-rates-maximums}} - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\raggedright -\sphinxcapstartof{table} -\sphinxthecaptionisattop -\sphinxcaption{CPP2 Contribution Rates Maximums}\label{\detokenize{rates_2025:id2}} -\sphinxaftertopcaption -\begin{tabular}[t]{\X{130}{160}\X{30}{160}} -\sphinxtoprule -\sphinxstyletheadfamily -\sphinxAtStartPar -Description -&\sphinxstyletheadfamily -\sphinxAtStartPar -Ammount -\\ -\sphinxmidrule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -Additional maximum annual pensionable earnings -& -\sphinxAtStartPar -\$81,200 -\\ -\sphinxhline -\sphinxAtStartPar -Employee and employer contribution rate -& -\sphinxAtStartPar -4\% -\\ -\sphinxhline -\sphinxAtStartPar -Maximum employee and employer contribution -& -\sphinxAtStartPar -\$396 -\\ -\sphinxhline -\sphinxAtStartPar -Maimum annual self\sphinxhyphen{}employed contribution -& -\sphinxAtStartPar -\$792 -\\ -\sphinxbottomrule -\end{tabular} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - - -\section{References} -\label{\detokenize{rates_2025:references}} -\sphinxAtStartPar -\sphinxhref{https://laws-lois.justice.gc.ca/eng/acts/C-8/page-5.html\#docCont}{CPP Maximum contributory earnings} - -\sphinxAtStartPar -\sphinxhref{https://laws-lois.justice.gc.ca/eng/acts/C-8/page-3.html\#docCont}{Second additional CPP contributions} - -\sphinxstepscope - - -\chapter{REFERENCES} -\label{\detokenize{references:references}}\label{\detokenize{references::doc}} -\sphinxstepscope - - -\chapter{Errors and Errata} -\label{\detokenize{errata:errors-and-errata}}\label{\detokenize{errata::doc}} - -\chapter{Glossary} -\label{\detokenize{index:glossary}}\begin{itemize} -\item {} -\sphinxAtStartPar -\DUrole{xref}{\DUrole{std}{\DUrole{std-ref}{genindex}}} - -\end{itemize} - - - -\renewcommand{\indexname}{Index} -\printindex -\end{document} \ No newline at end of file diff --git a/docs/build/latex/Payroll-Administration_2025.toc b/docs/build/latex/Payroll-Administration_2025.toc deleted file mode 100644 index 48e0407..0000000 --- a/docs/build/latex/Payroll-Administration_2025.toc +++ /dev/null @@ -1,29 +0,0 @@ -\babel@toc {english}{}\relax -\contentsline {chapter}{\numberline {1}INTRODUCTION}{3}{chapter.1}% -\contentsline {section}{\numberline {1.1}Payroll Legal Framework}{3}{section.1.1}% -\contentsline {chapter}{\numberline {2}Payroll Accounting}{5}{chapter.2}% -\contentsline {section}{\numberline {2.1}Journal Entries}{5}{section.2.1}% -\contentsline {subsection}{\numberline {2.1.1}Accounting Recap}{5}{subsection.2.1.1}% -\contentsline {subsection}{\numberline {2.1.2}Journal Entries}{5}{subsection.2.1.2}% -\contentsline {chapter}{\numberline {3}REVIEW QUESTIONS}{7}{chapter.3}% -\contentsline {section}{\numberline {3.1}New Employee Information}{7}{section.3.1}% -\contentsline {chapter}{\numberline {4}OBNOARDING EMPLOYEE}{9}{chapter.4}% -\contentsline {section}{\numberline {4.1}Employment Standards Requirements}{9}{section.4.1}% -\contentsline {section}{\numberline {4.2}Internal Forms}{9}{section.4.2}% -\contentsline {subsection}{\numberline {4.2.1}Authorization for Hiring}{9}{subsection.4.2.1}% -\contentsline {subsection}{\numberline {4.2.2}Union Membership}{9}{subsection.4.2.2}% -\contentsline {subsection}{\numberline {4.2.3}Benefit Enrollment Forms}{10}{subsection.4.2.3}% -\contentsline {subsection}{\numberline {4.2.4}Confidentiality Agreement}{10}{subsection.4.2.4}% -\contentsline {section}{\numberline {4.3}Required Federal and Provincial/Territorial Forms}{10}{section.4.3}% -\contentsline {subsection}{\numberline {4.3.1}Tax Credits (TD1)}{10}{subsection.4.3.1}% -\contentsline {subsection}{\numberline {4.3.2}Tax Credits (TP\sphinxhyphen {}1015.3\sphinxhyphen {}V \textendash {} Québec)}{11}{subsection.4.3.2}% -\contentsline {section}{\numberline {4.4}Content Review Highlights}{11}{section.4.4}% -\contentsline {section}{\numberline {4.5}Review Questions (Sample)}{11}{section.4.5}% -\contentsline {section}{\numberline {4.6}Example Evaluations}{12}{section.4.6}% -\contentsline {chapter}{\numberline {5}RATES FOR 2025}{13}{chapter.5}% -\contentsline {section}{\numberline {5.1}CANADA / QUEBEC PENSION PLAN (CPP / QPP)}{13}{section.5.1}% -\contentsline {section}{\numberline {5.2}CPP2 CONTRIBUTION RATES MAXIMUMS}{13}{section.5.2}% -\contentsline {section}{\numberline {5.3}References}{14}{section.5.3}% -\contentsline {chapter}{\numberline {6}REFERENCES}{15}{chapter.6}% -\contentsline {chapter}{\numberline {7}Errors and Errata}{17}{chapter.7}% -\contentsline {chapter}{\numberline {8}Glossary}{19}{chapter.8}% diff --git a/docs/build/latex/latexmkjarc b/docs/build/latex/latexmkjarc deleted file mode 100644 index 6e36b19..0000000 --- a/docs/build/latex/latexmkjarc +++ /dev/null @@ -1,22 +0,0 @@ -$latex = 'pdflatex ' . $ENV{'LATEXOPTS'} . ' -kanji=utf8 %O %S'; -$dvipdf = 'dvipdfmx %O -o %D %S'; -$makeindex = 'internal mendex %S %B %D'; -sub mendex { - my ($source, $basename, $destination) = @_; - my $dictfile = $basename . ".dic"; - unlink($destination); - system("mendex", "-U", "-f", "-d", $dictfile, "-s", "python.ist", $source); - if ($? > 0) { - print("mendex exited with error code $? (ignored)\n"); - } - if (!-e $destination) { - # create an empty .ind file if nothing - open(FH, ">" . $destination); - close(FH); - } - return 0; -} -add_cus_dep( "glo", "gls", 0, "makeglo" ); -sub makeglo { - return system( "mendex -J -f -s gglo.ist -o '$_[0].gls' '$_[0].glo'" ); -} \ No newline at end of file diff --git a/docs/build/latex/latexmkrc b/docs/build/latex/latexmkrc deleted file mode 100644 index bba17fa..0000000 --- a/docs/build/latex/latexmkrc +++ /dev/null @@ -1,9 +0,0 @@ -$latex = 'latex ' . $ENV{'LATEXOPTS'} . ' %O %S'; -$pdflatex = 'pdflatex ' . $ENV{'LATEXOPTS'} . ' %O %S'; -$lualatex = 'lualatex ' . $ENV{'LATEXOPTS'} . ' %O %S'; -$xelatex = 'xelatex --no-pdf ' . $ENV{'LATEXOPTS'} . ' %O %S'; -$makeindex = 'makeindex -s python.ist %O -o %D %S'; -add_cus_dep( "glo", "gls", 0, "makeglo" ); -sub makeglo { - return system( "makeindex -s gglo.ist -o '$_[0].gls' '$_[0].glo'" ); -} \ No newline at end of file diff --git a/docs/build/latex/make.bat b/docs/build/latex/make.bat deleted file mode 100644 index 94bda21..0000000 --- a/docs/build/latex/make.bat +++ /dev/null @@ -1,31 +0,0 @@ -@ECHO OFF - -REM Command file for Sphinx documentation - -pushd %~dp0 - -set PDFLATEX=latexmk -pdf -dvi- -ps- - -set "LATEXOPTS= " - -if "%1" == "" goto all-pdf - -if "%1" == "all-pdf" ( - :all-pdf - for %%i in (*.tex) do ( - %PDFLATEX% %LATEXMKOPTS% %%i - ) - goto end -) - -if "%1" == "all-pdf-ja" ( - goto all-pdf -) - -if "%1" == "clean" ( - del /q /s *.dvi *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz *.fls *.fdb_latexmk - goto end -) - -:end -popd \ No newline at end of file diff --git a/docs/build/latex/python.ist b/docs/build/latex/python.ist deleted file mode 100644 index 70536a6..0000000 --- a/docs/build/latex/python.ist +++ /dev/null @@ -1,16 +0,0 @@ -line_max 100 -headings_flag 1 -heading_prefix " \\bigletter " - -preamble "\\begin{sphinxtheindex} -\\let\\bigletter\\sphinxstyleindexlettergroup -\\let\\spxpagem \\sphinxstyleindexpagemain -\\let\\spxentry \\sphinxstyleindexentry -\\let\\spxextra \\sphinxstyleindexextra - -" - -postamble "\n\n\\end{sphinxtheindex}\n" - -symhead_positive "{\\sphinxsymbolsname}" -numhead_positive "{\\sphinxnumbersname}" diff --git a/docs/build/latex/sphinx.sty b/docs/build/latex/sphinx.sty deleted file mode 100644 index 8837485..0000000 --- a/docs/build/latex/sphinx.sty +++ /dev/null @@ -1,1196 +0,0 @@ -% -% sphinx.sty -% -% Adapted from the old python.sty, mostly written by Fred Drake, -% by Georg Brandl. -% This has now grown to become a full-fledged LaTeX support, split -% among multiple files, some of which provide features unavailable -% from usual LaTeX packages in interaction with the mark-up produced -% by the Sphinx LaTeX writer. - -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{sphinx}[2024/11/23 v8.2.0 Sphinx LaTeX package (sphinx-doc)] - -% provides \ltx@ifundefined -% (many packages load ltxcmds: graphicx does for pdftex and lualatex but -% not xelatex, and anyhow kvoptions does, but it may be needed in future to -% use \sphinxdeprecationwarning earlier, and it needs \ltx@ifundefined) -\RequirePackage{ltxcmds} - -%% for deprecation warnings -\newcommand\sphinxdeprecationwarning[4]{% #1 the deprecated macro or name, -% #2 = when deprecated, #3 = when removed, #4 = additional info - {% limit scope of \spx@tempa, \AtEndDocument works even if nested. - \edef\spx@tempa{\detokenize{#1}}% - \ltx@ifundefined{sphinx_depr_\spx@tempa}{% - \global\expandafter\let\csname sphinx_depr_\spx@tempa\endcsname\spx@tempa - \expandafter\AtEndDocument\expandafter{\expandafter\let\expandafter - \sphinxdeprecatedmacro\csname sphinx_depr_\spx@tempa\endcsname - \PackageWarningNoLine{sphinx}{^^J**** SPHINX DEPRECATION WARNING:^^J - \sphinxdeprecatedmacro^^J - \@spaces- is deprecated at Sphinx #2^^J - \@spaces- and removed at Sphinx #3.^^J - #4^^J****}}% - }{% warning already emitted (at end of latex log), don't repeat - }% - }% end of scope limiting group for \spx@tempa -} -%% important build warnings use an undefined reference to induce latexmk -%% into complaining (once per warning) at very end of console output -\newcommand\sphinxbuildwarning[2][]{% - \ifcsname sphinx_emitted_#2\endcsname - \else - \global\expandafter\let\csname sphinx_emitted_#2\endcsname\@empty - \AtEndDocument{\hbox{% should the printing of text be made conditional on - % some boolean? (7.4.0 answers this by adding an - % optional argument and testing it here for emptiness - % but no usage is made of this novelty yet.) - \if\relax\detokenize{#1}\relax - % No [], print a red warning text at very end of document - \bfseries\color{red}% - \@nameuse{sphinx_buildwarning_#2}% - \fi - % place an undefined reference deliberately - \let\nfss@text\@gobble % no ?? - \ref{!!\@nameuse{sphinx_buildwarning_#2}}% - }% - }% - \fi -} -\@namedef{sphinx_buildwarning_badtitlesec}{% - Your system has titlesec version 2.10.1 which causes disappearance - of section numbers; check the latex log warning for details} -\@namedef{sphinx_buildwarning_booktabs}{% - Some tables with booktabs class (check latex log) but booktabs - package not loaded; add its loading to the latex preamble}% -\@namedef{sphinx_buildwarning_badfootnotes}{% - Footnote rendering may have had problems, due to extra package or - document class; check latex log for instructions}% -\@namedef{sphinx_buildwarning_badiconpackage}{% - You have set iconpackage=\spx@opt@iconpackage, but this LaTeX package - is not found}% - -%% OPTION HANDLING -% -% We generally first handle options then load packages, but we need -% \definecolor and \colorlet from xcolor to handle the options. - -% Support for colour options -% -------------------------- -% At 7.4.0, package xcolor is required (which has allowed to get rid of -% annoying fall-back branches). Internals here got refactored to some extent. -% -% MEMO: xcolor \fcolorbox coloured boxes render better in some PDF viewers -% than with color package \fcolorbox. Since 1.6.3, Sphinx uses only its own -% custom variant of \fcolorbox when handling code-blocks. But \fcolorbox -% appears also in Pygmentize output mark-up. -% Should Sphinx load xcolor with its dvipsnames and svgnames options? -\RequirePackage{xcolor} - -% the \colorlet of xcolor is overkill for our internal usage here -\newcommand{\sphinxcolorlet}[2] - {\expandafter\let\csname\@backslashchar color@#1\expandafter\endcsname - \csname\@backslashchar color@#2\endcsname } - -% (5.3.0) Allow colour options to use both the \definecolor and the \colorlet -% syntaxes, for example VerbatimColor={gray}{0.9} or VerbatimColor=red!10 -% In the latter case we need the real \colorlet from xcolor package. -% Prior to 7.4.0 xcolor was not required and thus \spx@colorlet was configured -% to raise a warning in case of absence of xcolor. -\def\spx@defineorletcolor#1{% - \def\spx@definedcolor{{#1}}% - \futurelet\spx@token\spx@defineorlet} -\def\spx@defineorlet{% - \ifx\spx@token\bgroup - \expandafter\spx@definecolor\else\expandafter\spx@colorlet\fi} -\def\spx@colorlet#1\relax{\expandafter\colorlet\spx@definedcolor{#1}} -\def\spx@definecolor{\expandafter\definecolor\spx@definedcolor} -% These internals refactored at 7.4.0: -\newcommand*{\spx@DeclareColorOption}[3][]{% -% #1 = almost always "sphinx" but left empty for a few for legacy reasons -% #2 = option name, but internal colour name is #1#2 (i.e. with prefix) -% #3 = initial default colour with either \definecolor or \colorlet syntax - % Set the initial default - \spx@defineorletcolor{#1#2}#3\relax - % Set the key handler to accept both \definecolor and \colorlet syntax - % The key name does not have the #1 prefix from the colour name - \define@key{sphinx}{#2}{\spx@defineorletcolor{#1#2}##1\relax}% -}% - -% Handle options via "kvoptions" (later loaded by hyperref anyhow) -\RequirePackage{kvoptions} -\SetupKeyvalOptions{prefix=spx@opt@} % use \spx@opt@ prefix - -% Optional usage of booktabs package for tables -\DeclareBoolOption[false]{booktabs} -\DeclareBoolOption[false]{borderless} -\DeclareBoolOption[true]{booktabscolorgaps} -\DeclareVoidOption{booktabsnogaps}{% - \ifx\@nodocument\relax - % in body - \expandafter\@firstofone - \else - % in preamble, wait for at begin document - \expandafter\AtBeginDocument - \fi - {\ifdefined\abovetopsep % silently do nothing if booktabs not loaded - \abovetopsep\z@\belowrulesep\z@\aboverulesep\z@\belowbottomsep\z@ - \fi - }% -} -% Coloured table rows -\DeclareBoolOption[false]{colorrows} -% Sphinx legacy text layout: 1in margins on all four sides -\ifx\@jsc@uplatextrue\@undefined -\DeclareStringOption[1in]{hmargin} -\DeclareStringOption[1in]{vmargin} -\DeclareStringOption[.5in]{marginpar} -\else -% Japanese standard document classes handle \mag in a special way -\DeclareStringOption[\inv@mag in]{hmargin} -\DeclareStringOption[\inv@mag in]{vmargin} -\DeclareStringOption[.5\dimexpr\inv@mag in\relax]{marginpar} -\fi - -\DeclareStringOption[0]{maxlistdepth}% \newcommand*\spx@opt@maxlistdepth{0} -\DeclareStringOption[-1]{numfigreset} -\DeclareBoolOption[false]{nonumfigreset} -\DeclareBoolOption[false]{mathnumfig} -\DeclareStringOption[.]{mathnumsep} -\define@key{sphinx}{bookmarksdepth}{\AtBeginDocument{\hypersetup{bookmarksdepth=#1}}} -\AtBeginDocument{\define@key{sphinx}{bookmarksdepth}{\hypersetup{bookmarksdepth=#1}}} -% \DeclareBoolOption[false]{usespart}% not used - -% Code-blocks -% ----------- -% -% INFO: the keys for padding and border widths were extended at 5.1.0, -% and legacy names for user interface were kept, but their definitions -% are delayed further down. The legacy internally used dimen registers -% \sphinxverbatimborder and \sphinxverbatimsep got removed at 6.2.0. -% More code-blocks related options are found in "CSS" part below. -\DeclareBoolOption[true]{verbatimwithframe} -\DeclareBoolOption[true]{verbatimwrapslines} -\DeclareBoolOption[false]{verbatimforcewraps} -\DeclareStringOption[3]{verbatimmaxoverfull} -\DeclareStringOption[100]{verbatimmaxunderfull} -\DeclareBoolOption[true]{verbatimhintsturnover} -\DeclareBoolOption[true]{inlineliteralwraps} -\DeclareStringOption[t]{literalblockcappos} -\DeclareStringOption[r]{verbatimcontinuedalign} -\DeclareStringOption[r]{verbatimcontinuesalign} -% parsed literal -\DeclareBoolOption[true]{parsedliteralwraps} -% \textvisiblespace for compatibility with fontspec+XeTeX/LuaTeX -\DeclareStringOption[\textcolor{red}{\textvisiblespace}]{verbatimvisiblespace} -\DeclareStringOption % must use braces to hide the brackets - [{\makebox[2\fontcharwd\font`\x][r]{\textcolor{red}{\tiny$\m@th\hookrightarrow$}}}]% - {verbatimcontinued} - -% Topic boxes -% ----------- -% -% 5.1.0 added new keys for configuration. The legacy keys shadowsep, -% shadowsize, shadowrule were kept for backward compatibility. -% 5.1.2 fixed some bugs. -% -% All configuration is now to be found in the "CSS" section below. -% -% 6.2.0 removed \sphinxshadowsep, \sphinxshadowsize, \sphinxshadowrule -% \dimen registers - -% Footnotes -% --------- -\DeclareStringOption[\mbox{ }]{AtStartFootnote} -% we need a public macro name for direct use in latex file -\newcommand*{\sphinxAtStartFootnote}{\spx@opt@AtStartFootnote} -% no such need for this one, as it is used inside other macros -\DeclareStringOption[\leavevmode\unskip]{BeforeFootnote} - -% Some font styling -% ----------------- -% TODO: the replacement of old syntax \py@HeaderFamily as used -% in sphinxlatexstyle{page,headings}.sty and sphinx{manual,howto}.cls -% has never been really put in place. Hence this isolated tidbit here. -\DeclareStringOption[\sffamily\bfseries]{HeaderFamily} - -% Some legacy colour options -% -------------------------- -% -\spx@DeclareColorOption{TitleColor}{{rgb}{0.126,0.263,0.361}} -\spx@DeclareColorOption{InnerLinkColor}{{rgb}{0.208,0.374,0.486}} -\spx@DeclareColorOption{OuterLinkColor}{{rgb}{0.216,0.439,0.388}} -% The Verbatim ones are "legacy" only since 5.1.0... call it "new-legacy" ;-) -\spx@DeclareColorOption{VerbatimColor}{{RGB}{242,242,242}}% same as {gray}{0.95} -\spx@DeclareColorOption{VerbatimBorderColor}{{RGB}{32,32,32}} -% All other colours will be internally assigned a "sphinx" prefix - -% Table row colors (since 6.0.0) -% ---------------- -\spx@DeclareColorOption[sphinx]{TableRowColorHeader}{{gray}{0.86}} -\spx@DeclareColorOption[sphinx]{TableRowColorOdd}{{gray}{0.92}} -\spx@DeclareColorOption[sphinx]{TableRowColorEven}{{gray}{0.98}} -% if not set, the "Merge" colour will keep in sync with the "Row" colour -\def\sphinxTableMergeColorHeader{sphinxTableRowColorHeader} -\define@key{sphinx}{TableMergeColorHeader}{% - \spx@defineorletcolor{sphinxTableMergeColorHeader}#1\relax - \def\sphinxTableMergeColorHeader{sphinxTableMergeColorHeader}% -}% -\def\sphinxTableMergeColorOdd{sphinxTableRowColorOdd} -\define@key{sphinx}{TableMergeColorOdd}{% - \spx@defineorletcolor{sphinxTableMergeColorOdd}#1\relax - \def\sphinxTableMergeColorOdd{sphinxTableMergeColorOdd}% -}% -\def\sphinxTableMergeColorEven{sphinxTableRowColorEven} -\define@key{sphinx}{TableMergeColorEven}{% - \spx@defineorletcolor{sphinxTableMergeColorEven}#1\relax - \def\sphinxTableMergeColorEven{sphinxTableMergeColorEven}% -}% -% Default color chosen to be as in minted.sty LaTeX package! -\spx@DeclareColorOption[sphinx]{VerbatimHighlightColor}{{rgb}{0.878,1,1}} - -% Notices/admonitions -% ------------------- -% -% 5.1.0 added much customizability to warning, caution, attention, danger and -% error types of notices via an enhanced sphinxheavybox environment. -% -% 6.2.0 added the possibility to use the same kind of rendering also for -% note, hint, important, and tip. -% -% Legacy user interface for options was kept working. All of it is handled in -% the "CSS" section below. -% -% 6.2.0 added booleans to serve internally as a record of whether the -% note, hint, important and tip admonitions used the legacy "lightbox" or -% the then enhanced "heavybox" environment. -% -% 7.4.0 uses "heavybox" environment from sphinxlatexadmonitions in all cases, -% hence the booleans mentioned above have been removed as well as the rather -% complex TeX code which was done so that these booleans were made true if -% and only if the CSS-named keys had been made usage of via 'sphinxsetup'. -% -% The "light style" implemented in sphinxlatexadmonitions.sty as -% "sphinxlightbox" is not used. Also, admonitions by default have a "title -% row", and the corresponding options are only named in the CSS style which is -% implemented further below. Here we define options having a legacy name. -% -% seealso directive is also using "heavybox" at 7.4.0 acquiring the same -% customizability as admonitions. -% todo directive also. -\definecolor{sphinx-admonition-bgcolor} {RGB}{247, 247, 247}% #F7F7F7 -\definecolor{sphinx-admonition-bordercolor} {RGB}{134, 152, 155}% #86989B -\definecolor{sphinx-warning-bordercolor} {RGB}{148, 0, 0}% #940000 -\definecolor{sphinx-error-bordercolor} {RGB}{180, 0, 0}% #B40000 -\spx@DeclareColorOption[sphinx]{noteBorderColor} {sphinx-admonition-bordercolor} -\spx@DeclareColorOption[sphinx]{hintBorderColor} {sphinx-admonition-bordercolor} -\spx@DeclareColorOption[sphinx]{importantBorderColor}{sphinx-admonition-bordercolor} -\spx@DeclareColorOption[sphinx]{tipBorderColor} {sphinx-admonition-bordercolor} -\spx@DeclareColorOption[sphinx]{seealsoBorderColor} {sphinx-admonition-bordercolor}% 7.4.0 -\spx@DeclareColorOption[sphinx]{todoBorderColor} {sphinx-admonition-bordercolor}% 7.4.0 -% -\spx@DeclareColorOption[sphinx]{noteBgColor} {sphinx-admonition-bgcolor} -\spx@DeclareColorOption[sphinx]{hintBgColor} {sphinx-admonition-bgcolor} -\spx@DeclareColorOption[sphinx]{importantBgColor}{sphinx-admonition-bgcolor} -\spx@DeclareColorOption[sphinx]{tipBgColor} {sphinx-admonition-bgcolor} -\spx@DeclareColorOption[sphinx]{seealsoBgColor} {sphinx-admonition-bgcolor}% 7.4.0 -\spx@DeclareColorOption[sphinx]{todoBgColor} {sphinx-admonition-bgcolor}% 7.4.0 -% -\spx@DeclareColorOption[sphinx]{warningBorderColor} {sphinx-warning-bordercolor} -\spx@DeclareColorOption[sphinx]{cautionBorderColor} {sphinx-warning-bordercolor} -\spx@DeclareColorOption[sphinx]{attentionBorderColor}{sphinx-warning-bordercolor} -\spx@DeclareColorOption[sphinx]{dangerBorderColor} {sphinx-warning-bordercolor} -\spx@DeclareColorOption[sphinx]{errorBorderColor} {sphinx-error-bordercolor} -% -\spx@DeclareColorOption[sphinx]{warningBgColor} {sphinx-admonition-bgcolor} -\spx@DeclareColorOption[sphinx]{cautionBgColor} {sphinx-admonition-bgcolor} -\spx@DeclareColorOption[sphinx]{attentionBgColor}{sphinx-admonition-bgcolor} -\spx@DeclareColorOption[sphinx]{dangerBgColor} {sphinx-admonition-bgcolor} -\spx@DeclareColorOption[sphinx]{errorBgColor} {sphinx-admonition-bgcolor} -% -%%%%%%%% -% -% Additions of CSS-like keys at 5.1.0 (and possibility of rounded boxes) -% ----------------------------------- -% -% These CSS-named alikes allow to configure 4 border widths, 4 padding seps, 4 -% corner radii, optional shadow, border color, background color, shadow color. -% -% In future, an alternative user interface will perhaps be provided to parse -% genuine CSS, but this will be easier to do in Python than in LaTeX. -% -% Refactoring (and extension) at 6.2.0 -% ------------------------------------ -% -% 6.2.0 batch defines in one go all auxiliaries for code-blocks, topics, and -% admonitions. The needed steps to maintain the legacy option names working -% and to set some specific defaults are handled in a second step. -% -% This allowed to: -% -% - associate these CSS-named options also to note, hint, important, and tip -% which thus can access the full customizability of sphinxheavybox if they use -% it. -% -% - provide a \sphinxbox command for boxing inline text elements with the same -% full customizability. -% -% The \dimen's \sphinxverbatimborder, \sphinxverbatimsep, \sphinxshadowsep, -% \sphinxshadowsize, and \sphinxshadowrule, which had been deprecated have -% finally been removed entirely. No more \dimen register is used here only -% storage in macros. -% -% Restyling at 7.4.0 with new defaults for all admonition types -% ------------------------------------------------------------- -% -% So far the 5.1.0 added possibilities for fancier boxes had been used by -% default only for code-blocks, and admonitions kept their old-fashioned -% legacy styles. At 7.4.0, as a follow-up to the revamped styles of -% admonitions in the HTML sphinx13 theme (PR #12439), it is decided to -% apply similar styling for PDF output. Also the seealso directive -% is handled as an admonition with the same customizability. And the -% todo directive. -% -% 8.1.0: style separately topic, contents, and sidebar directives -% --------------------------------------------------------------- -% -% And use some title row also for them (but without icon, per default). -% -\def\spxstring@none{none} -\def\spxstring@clone{clone} -% -% Border keys -% At 7.4.0 refactoring to avoid defining legacy \spx@@border -% macros which are (now) used nowhere, only @top, @right, @bottom, @left. -\def\spx@tempa#1{% #1 = macro prefix - \expandafter\spx@tempb - \csname #1border@top\expandafter\endcsname - \csname #1border@right\expandafter\endcsname - \csname #1border@bottom\expandafter\endcsname - \csname #1border@left\expandafter\endcsname - \csname if#1border@open\expandafter\endcsname - \csname #1border@opentrue\expandafter\endcsname - \csname #1border@openfalse\endcsname -}% -\def\spx@tempb #1#2#3#4#5#6#7#8#9{% #8 = option prefix - \define@key{sphinx}{#8border-top-width}{\def#1{##1}}% - \define@key{sphinx}{#8border-right-width}{\def#2{##1}}% - \define@key{sphinx}{#8border-bottom-width}{\def#3{##1}}% - \define@key{sphinx}{#8border-left-width}{\def#4{##1}}% - \define@key{sphinx}{#8border-width}{% - % MEMO: not immediately expanded, should this be changed? - \def#1{##1}\let#2#1\let#3#1\let#4#1% - }% - \newif#5% - % 6.2.0 has added support for box-decoration-break also to admonition - % directives, formerly the option setting was ignored for them. - \define@key{sphinx}{#8box-decoration-break}% - {\begingroup\edef\spx@tempa{##1}\expandafter\endgroup - \ifx\spx@tempa\spxstring@clone#7\else#6\fi}% - % 7.4.0 sets the default behaviour to "slice" not only for code-blocks but - % also for admonitions, as the latter now have a background colour each. - #6% - % #8 = option prefix (with underscore), #9 = legacy option name - % keep legacy option names as aliases to new-named options - \expandafter\let\csname KV@sphinx@#9\expandafter\endcsname - \csname KV@sphinx@#8border-width\endcsname - % init border-width (fetches next argument) - \csname KV@sphinx@#8border-width\endcsname -} -% MEMO: from 6.2.0 to 7.4.0 (excluive) \fboxrule was used in the first -% two, and was resolved only at location of use. At 7.4.0, we again -% use 0.4pt rather and not \fboxrule dimen register. -% macro prefix option prefix legacy option init value -\spx@tempa{spx@pre@} {pre_} {verbatimborder} {0.4pt} -\spx@tempa{spx@topic@} {div.topic_} {shadowrule} {0.5pt}% mod. at 7.4.0 -\spx@tempa{spx@contents@} {div.contents_} {shadowrule} {0.5pt}% 8.1.0 -\spx@tempa{spx@sidebar@} {div.sidebar_} {shadowrule} {1pt}% 8.1.0 -% let legacy shadowrule key set all topic/contents/sidebar border -% keys to the common value given by user to shadowrule -\def\KV@sphinx@shadowrule #1{% - \@nameuse{KV@sphinx@div.topic_border-width}{#1}% - \@nameuse{KV@sphinx@div.contents_border-width}{#1}% - \@nameuse{KV@sphinx@div.sidebar_border-width}{#1}% -}% -\spx@tempa{spx@note@} {div.note_} {noteborder} {0.5pt} -\spx@tempa{spx@hint@} {div.hint_} {hintborder} {0.5pt} -\spx@tempa{spx@important@}{div.important_}{importantborder}{0.5pt} -\spx@tempa{spx@tip@} {div.tip_} {tipborder} {0.5pt} -\spx@tempa{spx@seealso@} {div.seealso_} {seealsoborder} {0.5pt}% new at 7.4.0 -\spx@tempa{spx@todo@} {div.todo_} {todoborder} {0.5pt}% new at 7.4.0 -\spx@tempa{spx@warning@} {div.warning_} {warningborder} {1pt} -\spx@tempa{spx@caution@} {div.caution_} {cautionborder} {1pt} -\spx@tempa{spx@attention@}{div.attention_}{attentionborder}{1pt} -\spx@tempa{spx@danger@} {div.danger_} {dangerborder} {1pt} -\spx@tempa{spx@error@} {div.error_} {errorborder} {1.25pt}% mod. at 7.4.0 -% this one new at 6.2.0: (we do not create a "legacy name" for it) -\spx@tempa{spx@box@} {box_} {box_border-width}{0.4pt} -% Reset default box-decoration-break style to "clone" for \sphinxbox, -% but anyhow this is ignored as \sphinxbox produces unbreakable boxes. -\spx@box@border@openfalse - -% Padding keys -% At 7.4.0, \spx@@padding internal macros removed, only @top, @right, -% @bottom, @left are actually needed by sphinxpackageboxes.sty. -\def\spx@tempa#1{% - \expandafter\spx@tempb - \csname #1padding@top\expandafter\endcsname - \csname #1padding@right\expandafter\endcsname - \csname #1padding@bottom\expandafter\endcsname - \csname #1padding@left\endcsname -}% -\def\spx@tempb #1#2#3#4#5#6#7#8#9{% #5 = option prefix - \define@key{sphinx}{#5padding-top}{\def#1{##1}}% - \define@key{sphinx}{#5padding-right}{\def#2{##1}}% - \define@key{sphinx}{#5padding-bottom}{\def#3{##1}}% - \define@key{sphinx}{#5padding-left}{\def#4{##1}}% - \define@key{sphinx}{#5padding}{% - \def#1{##1}\let#2#1\let#3#1\let#4#1% - }% - % initial defaults - \def#1{#6}\def#2{#7}\def#3{#8}\def#4{#9}% -} -% MEMO: prior to 6.2.0 the \fboxsep value (3pt, a priori) was frozen here via -% a \dimen assignment done immediately. From 6.2.0 to 7.4.0 an unfrozen -% \fboxsep was used, and at 7.4.0 it is again explicit 3pt. -% The defaults for admonitions were all modified at 7.4.0. -% For topic/contents and all admonitions the horizontal padding plus borders -% are put inside the text area (i.e. do not go into the margins). -% In order for perfect exact same vertical alignment of contents from all such -% directives, the value of horizontal border-width+padding is kept constant -% (equal to 7.5pt since 7.4.0). -% 8.1.0 styles separately topic, contents, and sidebar. -% #1 macro prefix #6 option prefix top right bottom left -\spx@tempa{spx@pre@} {pre_} {3pt}{3pt}{3pt}{3pt} -\spx@tempa{spx@topic@} {div.topic_} {6pt}{7pt}{6pt}{7pt}% mod. at 8.1.0 -% contents styling inherits at 8.1.0 the former 7.4.0 topic defaults -\spx@tempa{spx@contents@} {div.contents_} {10pt}{7pt}{12pt}{7pt}% 8.1.0 -\spx@tempa{spx@sidebar@} {div.sidebar_} {6pt}{6.5pt}{6pt}{6.5pt}% 8.1.0 -% 7.4.0 drops legacy settings which linked strangely padding with border width -\spx@tempa{spx@note@} {div.note_} {6pt}{7pt}{6pt}{7pt} -\spx@tempa{spx@hint@} {div.hint_} {6pt}{7pt}{6pt}{7pt} -\spx@tempa{spx@important@}{div.important_} {6pt}{7pt}{6pt}{7pt} -\spx@tempa{spx@tip@} {div.tip_} {6pt}{7pt}{6pt}{7pt} -\spx@tempa{spx@seealso@} {div.seealso_} {6pt}{7pt}{6pt}{7pt} -\spx@tempa{spx@todo@} {div.todo_} {6pt}{7pt}{6pt}{7pt} -\spx@tempa{spx@warning@} {div.warning_} {6pt}{6.5pt}{6pt}{6.5pt} -\spx@tempa{spx@caution@} {div.caution_} {6pt}{6.5pt}{6pt}{6.5pt} -\spx@tempa{spx@attention@}{div.attention_} {6pt}{6.5pt}{6pt}{6.5pt} -\spx@tempa{spx@danger@} {div.danger_} {6pt}{6.5pt}{6pt}{6.5pt} -\spx@tempa{spx@error@} {div.error_} {6pt}{6.25pt}{6pt}{6.25pt} -\spx@tempa{spx@box@} {box_} {3pt}{3pt}{3pt}{3pt} -% define legacy verbatimsep key as alias of pre_padding key -\expandafter\let\expandafter\KV@sphinx@verbatimsep\csname KV@sphinx@pre_padding\endcsname -% let legacy shadowsep key set all topic/contents/sidebar padding -% keys to the common value given by user to shadosep -\def\KV@sphinx@shadowsep #1{% - \@nameuse{KV@sphinx@div.topic_padding}{#1}% - \@nameuse{KV@sphinx@div.contents_padding}{#1}% - \@nameuse{KV@sphinx@div.sidebar_padding}{#1}% -}% - -% Corner radii keys -% -% Prior to 6.2.0, the "rounded box" branch obeyed the 4 radii but ignored -% the separate border widths and used only the border-width setting. -% Now, all 4 + 4 parameters are obeyed. -\def\spx@tempa#1{% #1 = macro prefix - \expandafter\spx@tempb - \csname #1radius@topleft\expandafter\endcsname - \csname #1radius@topright\expandafter\endcsname - \csname #1radius@bottomright\expandafter\endcsname - \csname #1radius@bottomleft\endcsname -}% -\def\spx@tempb #1#2#3#4#5#6#7#8#9{% #5 = option prefix - \define@key{sphinx}{#5border-top-left-radius}{\def#1{##1}}% - \define@key{sphinx}{#5border-top-right-radius}{\def#2{##1}}% - \define@key{sphinx}{#5border-bottom-right-radius}{\def#3{##1}}% - \define@key{sphinx}{#5border-bottom-left-radius}{\def#4{##1}}% - \define@key{sphinx}{#5border-radius}{\def#1{##1}\let#2#1\let#3#1\let#4#1}% - \def#1{#6}\def#2{#7}\def#3{#8}\def#4{#9}% -} -% The init value for corner radius in code-blocks was \z@ (i.e. 0pt) prior -% to 6.0.0., then 3pt, then \fboxsep at 6.2.0 as padding was also \fboxsep. -% At 7.4.0: -% - the 3pt is used (which is normal value of \fboxsep). -% - some admonitions use rounded corners as well. -% - topic boxed have only their bottom right corner rounded. -% At 8.1.0 topic, contents and sidebar separately styled. -% macro prefix option prefix tl tr br bl -\spx@tempa{spx@pre@} {pre_} {3pt}{3pt}{3pt}{3pt} -% use four rounded corners (and no shadow) for topic at 8.1.0 -\spx@tempa{spx@topic@} {div.topic_} {8pt}{8pt}{8pt}{8pt} -% contents inherits at 8.1.0 the 7.4.0 former styling of topic -\spx@tempa{spx@contents@} {div.contents_} \z@ \z@ {12pt} \z@ -% make sidebard distinctive as we can't really safely implement -% it with text flowing around it, but rather as a full width block -\spx@tempa{spx@sidebar@} {div.sidebar_} {12pt}\z@ {12pt} \z@ -\spx@tempa{spx@note@} {div.note_} {5pt}{5pt}{5pt}{5pt} -\spx@tempa{spx@hint@} {div.hint_} {5pt}{5pt}{5pt}{5pt} -\spx@tempa{spx@important@}{div.important_} \z@\z@\z@\z@ -\spx@tempa{spx@tip@} {div.tip_} {5pt}{5pt}{5pt}{5pt} -\spx@tempa{spx@seealso@} {div.seealso_} \z@\z@\z@\z@ -\spx@tempa{spx@todo@} {div.todo_} \z@\z@\z@\z@ -\spx@tempa{spx@warning@} {div.warning_} \z@\z@\z@\z@ -\spx@tempa{spx@caution@} {div.caution_} \z@\z@\z@\z@ -\spx@tempa{spx@attention@}{div.attention_} \z@\z@\z@\z@ -\spx@tempa{spx@danger@} {div.danger_} \z@\z@\z@\z@ -\spx@tempa{spx@error@} {div.error_} \z@\z@\z@\z@ -\spx@tempa{spx@box@} {box_} {3pt}{3pt}{3pt}{3pt} - -% Shadow keys -% -% Prior to 6.2.0, an "inset" shadow caused the rendering to ignore -% rounded corners. Starting with 6.2.0, an "inset" shadow is simply -% ignored (not implemented) if any of the corner radii is positive, -% rather than forcing a rectangle+inset shadow output. -\def\spx@tempa#1{% - \expandafter\spx@tempb - \csname if#1withshadow\expandafter\endcsname - \csname if#1insetshadow\endcsname -}% -\def\spx@tempb#1#2{\newif#1\newif#2}% -% macro prefix -\spx@tempa{spx@pre@} -\spx@tempa{spx@topic@} -\spx@tempa{spx@contents@}% 8.1.0 -\spx@tempa{spx@sidebar@}% 8.1.0 -\spx@tempa{spx@note@} -\spx@tempa{spx@hint@} -\spx@tempa{spx@important@} -\spx@tempa{spx@tip@} -\spx@tempa{spx@seealso@}% 7.4.0 -\spx@tempa{spx@todo@}% 7.4.0 -\spx@tempa{spx@warning@} -\spx@tempa{spx@caution@} -\spx@tempa{spx@attention@} -\spx@tempa{spx@danger@} -\spx@tempa{spx@error@} -\spx@tempa{spx@box@} -% -\def\spx@tempa#1{% #1 = macro prefix - \expandafter\spx@tempb - \csname #1withshadowtrue\expandafter\endcsname - \csname #1withshadowfalse\expandafter\endcsname - \csname #1insetshadowtrue\expandafter\endcsname - \csname #1insetshadowfalse\expandafter\endcsname - \csname #1shadow@setter\expandafter\endcsname - \csname #1shadow@xoffset\expandafter\endcsname - \csname #1shadow@yoffset\endcsname -}% -\def\spx@tempb#1#2#3#4#5#6#7#8{% #8 = option prefix - \define@key{sphinx}{#8box-shadow}{#5##1 {} {} \@nnil}% - \def#5##1 ##2 ##3 ##4\@nnil{% - \begingroup\edef\spx@tempa{##1}\expandafter\endgroup - \ifx\spx@tempa\spxstring@none - #2% - % MEMO: at 5.1.0 and up to 6.2.0, an \edef with \number\dimexpr was - % used here. Since 6.2.0, expansion is delayed to time of use as for - % the other dimensions handled above. This is synched with an added - % encapsulation in \dimexpr...\relax by the "setup" from - % sphinxpackageboxes.sty. - \else #1% - \def#6{##1}% - \if\relax\detokenize{##2}\relax\let#7#6\else\def#7{##2}\fi - \if\relax\detokenize{##3}\relax#4\else#3\fi - \fi - }% - #5none {} {} \@nnil % no shadow by default (except for topic, see below) -} -\spx@tempa{spx@pre@} {pre_} -\spx@tempa{spx@topic@} {div.topic_} -\spx@tempa{spx@contents@} {div.contents_} -\spx@tempa{spx@sidebar@} {div.sidebar_} -% This corresponds to the legacy parameters for topic/contents/sidebar, -% but they are now only kept for contents - \spx@contents@shadow@setter 4pt 4pt {} \@nnil -% topic and sidebar default to no shadow -\spx@tempa{spx@note@} {div.note_} -\spx@tempa{spx@hint@} {div.hint_} -\spx@tempa{spx@important@}{div.important_} -\spx@tempa{spx@tip@} {div.tip_} -\spx@tempa{spx@seealso@} {div.seealso_} -\spx@tempa{spx@todo@} {div.todo_} -\spx@tempa{spx@warning@} {div.warning_} -\spx@tempa{spx@caution@} {div.caution_} -\spx@tempa{spx@attention@}{div.attention_} -\spx@tempa{spx@danger@} {div.danger_} -\spx@tempa{spx@error@} {div.error_} -\spx@tempa{spx@box@} {box_} - -% Support for legacy shadowsize (topic/contents/sidebar) -% This definition was broken due to a typo at 5.1.0 and got fixed at 6.1.2 -% MEMO: at 6.2.0 this no longer does \number\dimexpr in an \edef. Reason is to -% keep in sync with div.topic_box-shadow handling of xoffset and yoffset. -\define@key{sphinx}{shadowsize}{% - \def\spx@topic@shadow@xoffset{#1}% - \let\spx@contents@shadow@xoffset\spx@topic@shadow@xoffset - \let\spx@sidebar@shadow@xoffset \spx@topic@shadow@xoffset - \let\spx@topic@shadow@yoffset \spx@topic@shadow@xoffset - \let\spx@contents@shadow@yoffset\spx@topic@shadow@xoffset - \let\spx@sidebar@shadow@yoffset \spx@topic@shadow@xoffset - \ifdim\dimexpr\spx@topic@shadow@xoffset=\z@ - \spx@topic@withshadowfalse - \spx@contents@withshadowfalse - \spx@sidebar@withshadowfalse - \else - \spx@topic@withshadowtrue - \spx@topic@insetshadowfalse - \spx@contents@withshadowtrue - \spx@contents@insetshadowfalse - \spx@sidebar@withshadowtrue - \spx@sidebar@insetshadowfalse - \fi -}% - -% Color keys, TeXextras key, keys for admonition titles with icon -% -% Historical remarks to be removed at some point: -% -% Some problems due to legacy naming scheme which had diverging conventions -% for code-blocks (VerbatimBorderColor, VerbatimColor) and admonitions -% (sphinxwarningBorderColor, sphinxwarningBgColor, etc...) regarding the -% internal names of the used colors. Unfortunately VerbatimColor and for -% example sphinxwarningBgColor are also documented at user level, they are not -% only internally used. -% -% For topic directive, "legacy" (around 2016-2017) had no interface for -% colours, so some internals could be changed with no breakage during 5.x up -% to 6.2.0. For example topic (shadowbox) could be unified with admonitions -% (sphinxheavybox), and the "setup" macros could all be moved into a single -% one in the sphinxpackageboxes.sty file, with only one argument holding the -% directive type. -% -% It was then needed only by sphinxlatexliterals.sty to let its emitted -% \spx@verb@boxes@fcolorbox@setup incorporate some extra adjustment. -% -% 7.4.0 removes usages of booleans relative to usage of a colour for -% background or border which were there to optimize the boxing code from -% sphinxpackageboxes.sty when colours where not needed. These were internal -% macros so their removal should not be considered breaking. -% We keep the infrastructure for "shadowcolor" and "textcolor" because the -% defaults for them remain not to have specific colour. -% -% 7.4.0 adds keys for admonition titles: for background and foreground colors, -% and for icons (whose defaults are picked from Free Fontawesome 5). -\def\spx@tempa#1{% - \expandafter\spx@tempb - \csname if#1withshadowcolor\expandafter\endcsname - \csname if#1withtextcolor\endcsname -}% -\def\spx@tempb#1#2{\newif#1\newif#2}% -% macro prefix -\spx@tempa{spx@pre@} -\spx@tempa{spx@topic@} -\spx@tempa{spx@contents@} -\spx@tempa{spx@sidebar@} -\spx@tempa{spx@note@} -\spx@tempa{spx@hint@} -\spx@tempa{spx@important@} -\spx@tempa{spx@tip@} -\spx@tempa{spx@seealso@} -\spx@tempa{spx@todo@} -\spx@tempa{spx@warning@} -\spx@tempa{spx@caution@} -\spx@tempa{spx@attention@} -\spx@tempa{spx@danger@} -\spx@tempa{spx@error@} -\spx@tempa{spx@box@} -% -\def\spx@tempa#1{% #1 = macro prefix - \expandafter\spx@tempb - \csname #1withshadowcolortrue\expandafter\endcsname - \csname #1withtextcolortrue\expandafter\endcsname - \csname #1TeXextras\endcsname -} -% 7.4.0 adds options for a title. They have an action only for admonitions, -% seealso and todo directives. -\def\spx@tempb#1#2#3#4#5{% #4 = option prefix, #5 = color name prefix - \define@key{sphinx}{#4border-TeXcolor}% - {\spx@defineorletcolor{#5BorderColor}##1\relax}% - \define@key{sphinx}{#4background-TeXcolor}% - {\spx@defineorletcolor{#5BgColor}##1\relax}% - \define@key{sphinx}{#4title-background-TeXcolor}% - {\spx@defineorletcolor{#5TtlBgColor}##1\relax}% - \define@key{sphinx}{#4title-foreground-TeXcolor}% - {\spx@defineorletcolor{#5TtlFgColor}##1\relax}% - \define@key{sphinx}{#4title-icon}% - {\@namedef{#5TtlIcon}{##1}}% - \define@key{sphinx}{#4box-shadow-TeXcolor}% - {#1\spx@defineorletcolor{#5ShadowColor}##1\relax}% - \define@key{sphinx}{#4TeXcolor}% - {#2\spx@defineorletcolor{#5TextColor}##1\relax}% - \define@key{sphinx}{#4TeXextras}% - {\def#3{##1}}% -} -% macro prefix option prefix color name prefix -\spx@tempa{spx@pre@} {pre_} {Verbatim} - % (memo: internal VerbatimShadowColor was formerly sphinxVerbatimShadowColor) - % internal legacy color name is VerbatimColor not VerbatimBgColor, so redefine: - \define@key{sphinx}{pre_background-TeXcolor}% - {\spx@defineorletcolor{VerbatimColor}#1\relax}% - % Keep legacy option names working - \expandafter\let\expandafter\KV@sphinx@VerbatimBorderColor - \csname KV@sphinx@pre_border-TeXcolor\endcsname - \expandafter\let\expandafter\KV@sphinx@VerbatimColor - \csname KV@sphinx@pre_background-TeXcolor\endcsname -% (6.2.0 modified some internal namings for the colors of topic boxes) -% macro prefix option prefix color name prefix -% There was no legacy interface for topic/contents/sidebar -% 8.1.0 allows separate styling for topic/contents/sidebar -\spx@tempa{spx@topic@} {div.topic_} {sphinxtopic} -\spx@tempa{spx@contents@} {div.contents_} {sphinxcontents} -\spx@tempa{spx@sidebar@} {div.sidebar_} {sphinxsidebar} -\spx@tempa{spx@note@} {div.note_} {sphinxnote} -\spx@tempa{spx@hint@} {div.hint_} {sphinxhint} -\spx@tempa{spx@important@}{div.important_} {sphinximportant} -\spx@tempa{spx@tip@} {div.tip_} {sphinxtip} -\spx@tempa{spx@seealso@} {div.seealso_} {sphinxseealso} -\spx@tempa{spx@todo@} {div.todo_} {sphinxtodo} -\spx@tempa{spx@warning@} {div.warning_} {sphinxwarning} -\spx@tempa{spx@caution@} {div.caution_} {sphinxcaution} -\spx@tempa{spx@attention@}{div.attention_} {sphinxattention} -\spx@tempa{spx@danger@} {div.danger_} {sphinxdanger} -\spx@tempa{spx@error@} {div.error_} {sphinxerror} -\spx@tempa{spx@box@} {box_} {sphinxbox} - % Keep legacy sphinxsetup color options interface for "strong" admonitions - \def\spx@tempa#1#2{% #1 = option prefix, #2 = legacy option prefix - \expandafter\let\csname KV@sphinx@#2BorderColor\expandafter\endcsname - \csname KV@sphinx@#1border-TeXcolor\endcsname - \expandafter\let\csname KV@sphinx@#2BgColor\expandafter\endcsname - \csname KV@sphinx@#1background-TeXcolor\endcsname - } - \spx@tempa{div.warning_} {warning} - \spx@tempa{div.caution_} {caution} - \spx@tempa{div.attention_} {attention} - \spx@tempa{div.danger_} {danger} - \spx@tempa{div.error_} {error} - - % Keep legacy sphinxsetup BorderColor for =note, hint, ... - % Add "legacy" names BgColor (added at 7.4.0) and TextColor - \def\spx@tempa#1#2{% #1 = CSS like option prefix, #2 = legacy option prefix - \expandafter\let\csname KV@sphinx@#2BorderColor\expandafter\endcsname - \csname KV@sphinx@#1border-TeXcolor\endcsname - \expandafter\let\csname KV@sphinx@#2BgColor\expandafter\endcsname - \csname KV@sphinx@#1background-TeXcolor\endcsname - \expandafter\let\csname KV@sphinx@#2TextColor\expandafter\endcsname - \csname KV@sphinx@#1TeXcolor\endcsname - } - \spx@tempa{div.note_} {note} - \spx@tempa{div.hint_} {hint} - \spx@tempa{div.important_} {important} - \spx@tempa{div.tip_} {tip} - - % Add "legacy" hintTeXextras etc... - \def\spx@tempa#1#2{% #1 = CSS like option prefix, #2 = legacy option prefix - \expandafter\let\csname KV@sphinx@#2TeXextras\expandafter\endcsname - \csname KV@sphinx@#1TeXextras\endcsname - } - \spx@tempa{div.note_} {note} - \spx@tempa{div.hint_} {hint} - \spx@tempa{div.important_} {important} - \spx@tempa{div.tip_} {tip} - - % At 7.4.0, let topic/contents boxes acquire background and border colours - % and give the shadow some colour other than black - % 8.1.0 styles separately topic/contents/sidebar - % topic has no shadow but we keep 7.4.0 color in case it gets needed - \setkeys{sphinx}{% - div.topic_border-TeXcolor=sphinx-admonition-bordercolor, - div.topic_background-TeXcolor=sphinx-admonition-bgcolor, - div.topic_box-shadow-TeXcolor={RGB}{108,108,108}, - div.contents_border-TeXcolor=sphinx-admonition-bordercolor, - div.contents_background-TeXcolor=sphinx-admonition-bgcolor, - div.contents_box-shadow-TeXcolor={RGB}{108,108,108}, - div.sidebar_border-TeXcolor=sphinx-admonition-bordercolor, - div.sidebar_background-TeXcolor=sphinx-admonition-bgcolor, - div.sidebar_box-shadow-TeXcolor=sphinx-admonition-bordercolor!80,% #9eacaf - } - - -% 7.4.0 lets all types of admonitions style especially their titlss. -% The Sphinx default colours for admonition titles are copied from PR #12486 -% which modified sphinx13.css (see also earlier #12439) -% The actual code using the colours and icons whose defaults are set here -% is to be found in sphinxlatexadmonitions.sty. -% -% MEMO: unfortunately xcolor does NOT implement HSL but only HSB! -% So the sphinx13.css colours specified via hsl() got converted to RGB here -\definecolor{sphinx-admonition-title-bgcolor}{RGB}{229,229,229} % hsl(0, 0%, 90%); -\definecolor{sphinx-admonition-title-fgcolor}{RGB}{127,127,127} % hsl(0, 0%, 50%); -\definecolor{sphinx-warning-title-bgcolor} {RGB}{248,228,210} % hsl(28.5, 74%, 90%); -\definecolor{sphinx-warning-title-fgcolor} {RGB}{221,122,33} % hsl(28.5, 74%, 50%); -\definecolor{sphinx-note-title-bgcolor} {RGB}{208,222,250} % hsl(219.5, 84%, 90%); -\definecolor{sphinx-note-title-fgcolor} {RGB}{20,93,234} % hsl(219.5, 84%, 50%); -\definecolor{sphinx-success-title-bgcolor} {RGB}{220,239,230} % hsl(150, 36.7%, 90%); -\definecolor{sphinx-success-title-fgcolor} {RGB}{81,174,128} % hsl(150, 36.7%, 50%); -\definecolor{sphinx-error-title-bgcolor} {RGB}{238,220,220} % hsl(0, 37%, 90%); -\definecolor{sphinx-error-title-fgcolor} {RGB}{174,80,80} % hsl(0, 37%, 50%); -\definecolor{sphinx-todo-title-bgcolor} {RGB}{226,204,254} % hsl(266.8, 100%, 90%); -\definecolor{sphinx-todo-title-fgcolor} {RGB}{113,0,255} % hsl(266.8, 100%, 50%); - -% Now use the above colours as default settings, following the choices -% done in sphinx13.css -\setkeys{sphinx}{ - div.note_title-background-TeXcolor=sphinx-note-title-bgcolor, - div.note_title-foreground-TeXcolor=sphinx-note-title-fgcolor, -% - div.hint_title-background-TeXcolor=sphinx-success-title-bgcolor, - div.hint_title-foreground-TeXcolor=sphinx-success-title-fgcolor, - div.tip_title-background-TeXcolor=sphinx-success-title-bgcolor, - div.tip_title-foreground-TeXcolor=sphinx-success-title-fgcolor, - div.seealso_title-background-TeXcolor=sphinx-success-title-bgcolor, - div.seealso_title-foreground-TeXcolor=sphinx-success-title-fgcolor, - div.todo_title-background-TeXcolor=sphinx-todo-title-bgcolor, - div.todo_title-foreground-TeXcolor=sphinx-todo-title-fgcolor, -% - div.important_title-background-TeXcolor=sphinx-warning-title-bgcolor, - div.important_title-foreground-TeXcolor=sphinx-warning-title-fgcolor, - div.caution_title-background-TeXcolor=sphinx-warning-title-bgcolor, - div.caution_title-foreground-TeXcolor=sphinx-warning-title-fgcolor, - div.warning_title-background-TeXcolor=sphinx-warning-title-bgcolor, - div.warning_title-foreground-TeXcolor=sphinx-warning-title-fgcolor, -% - div.attention_title-background-TeXcolor=sphinx-error-title-bgcolor, - div.attention_title-foreground-TeXcolor=sphinx-error-title-fgcolor, - div.danger_title-background-TeXcolor=sphinx-error-title-bgcolor, - div.danger_title-foreground-TeXcolor=sphinx-error-title-fgcolor, - div.error_title-background-TeXcolor=sphinx-error-title-bgcolor, - div.error_title-foreground-TeXcolor=sphinx-error-title-fgcolor, -% -% 8.1.0 add title rows, but will not use icons per default, so -% the fgcolor setting will be used only if user uses title-icon key - div.topic_title-background-TeXcolor=sphinx-admonition-title-bgcolor, - div.topic_title-foreground-TeXcolor=sphinx-admonition-title-fgcolor, - div.contents_title-background-TeXcolor=sphinx-admonition-title-bgcolor, - div.contents_title-foreground-TeXcolor=sphinx-admonition-title-fgcolor, - div.sidebar_title-background-TeXcolor=sphinx-note-title-bgcolor, - div.sidebar_title-foreground-TeXcolor=sphinx-note-title-fgcolor, -} - -% 7.4.0 Support for icons in admonition titles -% We try to -% - get Sphinx PDF builds to process fine in absence of fontawesome5 -% - use fontawesome5 if present, but not if user prefers another package -% - provide an interface for using other LaTeX code for icons -% - provide an interface for using some other package than fontawesome5 -% Indeed we can't load fontawesome5 unconditionally even if available, -% as it proves incompatible with fontawesome package. -% We thus must delay its loading. -\IfFileExists{fontawesome5.sty}{% - \DeclareStringOption[fontawesome5]{iconpackage}% -}% -{% - \IfFileExists{fontawesome.sty} - {\DeclareStringOption[fontawesome]{iconpackage}} - {\DeclareStringOption[none]{iconpackage}}% -}% -\newcommand\spx@faIcon[2][]{}% -% The above \spx@faIcon which gobbles one mandatory and one optional -% argument is put into use only if both fontawesome5 and fontawesome -% LaTeX packages are not available, as part of the defaults for the -% div.*_title-icon keys (these keys can be redefined via the sphinxsetup -% interface). -% -\def\spxstring@fontawesome{fontawesome} -\def\spxstring@fontawesomev{fontawesome5} -\AtBeginDocument{% - \ifx\spx@opt@iconpackage\spxstring@none - \else - \IfFileExists{\spx@opt@iconpackage.sty} - {\RequirePackage{\spx@opt@iconpackage}% - \ifx\spx@opt@iconpackage\spxstring@fontawesomev - \renewcommand\spx@faIcon{\faIcon}% - \else - \ifx\spx@opt@iconpackage\spxstring@fontawesome - \renewcommand\spx@faIcon[2][]{\faicon{##2}}% - % The \ifdefined's are a bit silly because we know that - % fontawesome.sty does not provide it, but perhaps - % there can be some new release of that package? - \ifdefined\faicon@lightbulb\else - \let\faicon@lightbulb\faLightbulbO - \fi - \ifdefined\faicon@radiation\else - \let\faicon@radiation\faBolt - \fi - \ifdefined\faicon@pen\else - \let\faicon@pen\faPencil - \fi - % if neither has been required, \spx@faIcon will simply swallow - % its argument and it is up to user - % to set the various div.*_title-icon keys appropriately. - \fi\fi % - }% - {% - \sphinxbuildwarning{badiconpackage}% - \PackageWarningNoLine{sphinx}{% - You have set iconpackage=\spx@opt@iconpackage\MessageBreak - But \spx@opt@iconpackage.sty is not found by LaTeX} - }% - \fi -} - -\setkeys{sphinx}{ -% Icon defaults. - div.note_title-icon = \spx@faIcon{info-circle}, - div.hint_title-icon = \spx@faIcon[regular]{lightbulb}, - div.tip_title-icon = \spx@faIcon[regular]{lightbulb}, - div.seealso_title-icon = \spx@faIcon{share}, - div.todo_title-icon = \spx@faIcon{pen}, - div.important_title-icon = \spx@faIcon{pause-circle}, - div.caution_title-icon = \spx@faIcon{radiation}, - div.warning_title-icon = \spx@faIcon{exclamation-triangle}, - div.attention_title-icon = \spx@faIcon{exclamation-triangle}, - div.danger_title-icon = \spx@faIcon{radiation}, - div.error_title-icon = \spx@faIcon{times-circle}, -% MEMO: the new at 8.1.0 defaults for contents/topic/sidebar directives -% use no icons, they use \sphinxdotitlerow which detects automatically -% whether title-icon key has been set or not. -} - -\newif\ifspx@opt@box@addstrut -\expandafter\def\csname KV@sphinx@box_addstrut\endcsname#1{% - \csname spx@opt@box@addstrut#1\endcsname -} -\expandafter\def\csname KV@sphinx@box_addstrut@default\endcsname{% - \spx@opt@box@addstruttrue -} - -\DeclareDefaultOption{\@unknownoptionerror} -\ProcessKeyvalOptions* -% don't allow use of maxlistdepth via \sphinxsetup. -\DisableKeyvalOption{sphinx}{maxlistdepth} -\DisableKeyvalOption{sphinx}{numfigreset} -\DisableKeyvalOption{sphinx}{nonumfigreset} -\DisableKeyvalOption{sphinx}{mathnumfig} -\DisableKeyvalOption{sphinx}{booktabs} -\DisableKeyvalOption{sphinx}{borderless} -\DisableKeyvalOption{sphinx}{rowcolors} -% FIXME: this is unrelated to an option, move this elsewhere -% To allow hyphenation of first word in narrow contexts; no option, -% customization to be done via 'preamble' key -\newcommand*\sphinxAtStartPar{\leavevmode\nobreak\hskip\z@skip} -% No need for the \hspace{0pt} trick (\hskip\z@skip) with luatex -\ifdefined\directlua\let\sphinxAtStartPar\@empty\fi -% user interface: options can be changed midway in a document! -\newcommand\sphinxsetup{\setkeys{sphinx}} - - -%% MISCELLANEOUS CONTEXT -% -% flag to be set in a framed environment -% (defined here as currently needed by three sphinxlatex....sty files and -% even if not needed if such files are replaced, the definition does no harm) -\newif\ifspx@inframed -% -% \spx@ifcaptionpackage (defined at begin document) -% is needed currently in macros from: -% sphinxlatexliterals.sty (sphinxVerbatim) -% sphinxlatextables.sty (for some macros used in the table templates) -% -% \sphinxcaption is mark-up injected by the tabular and tabulary templates -% it is defined in sphinxlatextables.sty -% -% store the original \caption macro for usage with figures inside longtable -% and tabulary cells. Make sure we get the final \caption in presence of -% caption package, whether the latter was loaded before or after sphinx. -\AtBeginDocument{% - \let\spx@originalcaption\caption - \@ifpackageloaded{caption} - {\let\spx@ifcaptionpackage\@firstoftwo - \caption@AtBeginDocument*{\let\spx@originalcaption\caption}% -% in presence of caption package, drop our own \sphinxcaption whose aim was to -% ensure same width of caption to all kinds of tables (tabular(y), longtable), -% because caption package has its own width (or margin) option - \def\sphinxcaption{\caption}% - }% - {\let\spx@ifcaptionpackage\@secondoftwo}% -} - -%% PASS OPTIONS -% -% pass options to hyperref; it must not have been loaded already -\RequirePackage{sphinxoptionshyperref} -% pass options to geometry; it must not have been loaded already -\RequirePackage{sphinxoptionsgeometry} - - -%% COLOR (general) -% -% FIXME: these two should be deprecated -% -% FIXME: \normalcolor should be used and \py@NormalColor never defined -\def\py@NormalColor{\color{black}} -% FIXME: \color{TitleColor} should be used directly and \py@TitleColor -% should never get defined. -\def\py@TitleColor{\color{TitleColor}} - - -%% PACKAGES -% -% as will be indicated below, secondary style files load some more packages -% -% For \text macro (sphinx.util.texescape) -% also for usage of \firstchoice@true(false) in sphinxlatexgraphics.sty -\RequirePackage{amstext} -% It was passed "warn" option from latex template in case it is already loaded -% via some other package before \usepackage{sphinx} in preamble -\RequirePackage{textcomp} -% For the H specifier. Do not \restylefloat{figure}, it breaks Sphinx code -% for allowing figures in tables. -\RequirePackage{float} -% For floating figures in the text. Better to load after float. -\RequirePackage{wrapfig} -% Provides \captionof, used once by latex writer (\captionof{figure}) -\RequirePackage{capt-of} -% Support hlist directive -\RequirePackage{multicol} - - -%% GRAPHICS -% -% It will always be needed, so let's load it here -\RequirePackage{graphicx} -\RequirePackage{sphinxlatexgraphics} - - -%% FRAMED ENVIRONMENTS -% -% \sphinxbox added at 6.2.0, its definition is in sphinxpackageboxes. -% -% Alias all \sphinxsetup "box_" keys to become \sphinxboxsetup no-prefix keys -\@tfor\x:={border-width}% - {border-top-width}{border-right-width}{border-bottom-width}{border-left-width}% - {box-decoration-break}% This one is actually useless, as \sphinxbox - % creates an unbreakable horizontal box, not a breakable vertical - % box. And as is well-known it is very complicated (not to say - % impossible) to create in LaTeX breakable horizontal boxes. No - % package offers them. See the complications for the support of - % verbatimforcewraps in sphinxlatexliterals.sty or see the source - % code of the soul or soulutf8 packages. - {padding}% - {padding-top}{padding-right}{padding-bottom}{padding-left}% - {border-radius}% - {border-top-left-radius}{border-top-right-radius}% - {border-bottom-right-radius}{border-bottom-left-radius}% - {box-shadow}% - {border-TeXcolor}{background-TeXcolor}{box-shadow-TeXcolor}{TeXcolor}% - {TeXextras}{addstrut}{addstrut@default}% -\do{\expandafter\let\csname KV@sphinxbox@\x\expandafter\endcsname - \csname KV@sphinx@box_\x\endcsname} -% Let \sphinxboxsetup also prepare a "reset", which will be used by nested -% boxes; currently and by laziness this is implemented simply by accumulating -% all passed options inside some storage, in the order they were given, rather -% than saving the box would-be parameters. Advantage is that this will not -% have to be modified if additional keys are added in future (e.g. for -% elliptic corners). Storing obeys TeX groups. (these details would be -% relevant only for some genuine independent LaTeX package and manual user -% authored mark-up, not Sphinx auto mark-up). -\newcommand\sphinxboxsetup[1]{% - \setkeys{sphinxbox}{#1}% - \expandafter\def\expandafter\spx@boxes@sphinxbox@defaults\expandafter - {\spx@boxes@sphinxbox@defaults,#1}% -} -\def\spx@boxes@sphinxbox@reset{% - \begingroup\def\x{\endgroup\setkeys{sphinxbox}}% - \expandafter\x\expandafter{\spx@boxes@sphinxbox@defaults}% -} -% Some of these defaults got already set. But we now list them all explicitly -% for a complete initial configuration of reset storage. -% At 7.4.0, \fboxrule and \fboxsep replaced by 0.4pt and 3pt which are anyhow -% the defaults for these LaTeX dimensions. 8.2.0 corrected border-radius -% default back to 3pt (\fboxsep) not 0.4pt (\fboxrule). -\let\spx@boxes@sphinxbox@defaults\@gobble -\sphinxboxsetup{% - border-width=0.4pt, - padding=3pt, - border-radius=3pt, - box-shadow=none, -% MEMO: as xcolor is loaded, \spx@defineorletcolor has a "\colorlet" branch -% which makes this syntax acceptable and avoids duplicating here the values. - border-TeXcolor=VerbatimBorderColor, - background-TeXcolor=VerbatimColor, -% 7.4.0 modified the color of the shadow (anyhow box-shadow is set above to none -% so no shadow is drawn), to be as the new shadow colour of topic boxes. - box-shadow-TeXcolor={RGB}{108,108,108}, - TeXextras={}, - addstrut=false, - }% -\RequirePackage{sphinxpackageboxes} -\RequirePackage{sphinxlatexadmonitions} -\RequirePackage{sphinxlatexliterals} -\RequirePackage{sphinxlatexshadowbox} - - -%% CONTAINERS -% -\RequirePackage{sphinxlatexcontainers} - - -%% PYGMENTS -% stylesheet for highlighting with pygments -\RequirePackage{sphinxhighlight} - - -%% TABLES -% -\RequirePackage{sphinxlatextables} - - -%% NUMBERING OF FIGURES, TABLES, AND LITERAL BLOCKS -% -\RequirePackage{sphinxlatexnumfig} - - -%% LISTS -% -\RequirePackage{sphinxlatexlists} - - -%% FOOTNOTES -% -% Support scopes for footnote numbering -% This is currently stepped at each input file -\newcounter{sphinxscope} -\newcommand{\sphinxstepscope}{\stepcounter{sphinxscope}} -% We ensure \thesphinxscope expands to digits tokens, independently of language -\renewcommand{\thesphinxscope}{\number\value{sphinxscope}} -\newcommand\sphinxthefootnotemark[2]{% - % this is used to make reference to an explicitly numbered footnote not on same page - % #1=label of footnote text, #2=page number where footnote text was printed - \ifdefined\pagename - \pagename\space#2, % <- space - \else - p. #2, % <- space - \fi #1% no space -} -% support large numbered footnotes in minipage; but this is now obsolete -% from systematic use of savenotes environment around minipages -\def\thempfootnote{\arabic{mpfootnote}} -% This package is needed to support hyperlinked footnotes in tables and -% framed contents, and to allow code-blocks in footnotes. -\RequirePackage{sphinxpackagefootnote} - - -%% INDEX, BIBLIOGRAPHY, APPENDIX, TABLE OF CONTENTS -% -\RequirePackage{sphinxlatexindbibtoc} - - -%% STYLING -% -\RequirePackage{sphinxlatexstylepage} -\RequirePackage{sphinxlatexstyleheadings} -\RequirePackage{sphinxlatexstyletext} - - -%% MODULE RELEASE DATA AND OBJECT DESCRIPTIONS -% -\RequirePackage{sphinxlatexobjects} - - -% FIXME: this line should be dropped, as "9" is default anyhow. -\ifdefined\pdfcompresslevel\pdfcompresslevel = 9 \fi - - -\endinput diff --git a/docs/build/latex/sphinx.xdy b/docs/build/latex/sphinx.xdy deleted file mode 100644 index 8df526e..0000000 --- a/docs/build/latex/sphinx.xdy +++ /dev/null @@ -1,230 +0,0 @@ -;;; -*- mode: lisp; coding: utf-8; -*- - -;; Unfortunately xindy is out-of-the-box hyperref-incompatible. This -;; configuration is a workaround, which requires to pass option -;; hyperindex=false to hyperref. -;; textit and emph not currently used, spxpagem replaces former textbf -(define-attributes (("textbf" "textit" "emph" "spxpagem" "default"))) -(markup-locref :open "\textbf{\hyperpage{" :close "}}" :attr "textbf") -(markup-locref :open "\textit{\hyperpage{" :close "}}" :attr "textit") -(markup-locref :open "\emph{\hyperpage{" :close "}}" :attr "emph") -(markup-locref :open "\spxpagem{\hyperpage{" :close "}}" :attr "spxpagem") -(markup-locref :open "\hyperpage{" :close "}" :attr "default") - -(require "numeric-sort.xdy") - -;; xindy base module latex.xdy loads tex.xdy and the latter instructs -;; xindy to ignore **all** TeX macros in .idx entries, except those -;; explicitly described in merge rule. But when after applying all -;; merge rules an empty string results, xindy raises an error: - -;; ERROR: CHAR: index 0 should be less than the length of the string - -;; For example when using pdflatex with utf-8 characters the index -;; file will contain \IeC macros and they will get ignored except if -;; suitable merge rules are loaded early. The texindy script coming -;; with xindy provides this, but only for Latin scripts. The texindy -;; man page says to use rather xelatex or lualatex in case of Cyrillic -;; scripts. - -;; Sphinx contributes LICRcyr2utf8.xdy to provide support for Cyrillic -;; scripts for the pdflatex engine. - -;; Another issue caused by xindy ignoring all TeX macros except those -;; explicitly declared reveals itself when attempting to index ">>>", -;; as the ">" is converted to "\textgreater{}" by Sphinx's LaTeX -;; escaping. - -;; To fix this, Sphinx does **not** use texindy, and does not even -;; load the xindy latex.xdy base module. - -;(require "latex.xdy") - -;; Rather it incorporates some suitable extracts from latex.xdy and -;; tex.xdy with additional Sphinx contributed rules. - -;; But, this means for pdflatex and Latin scripts that the xindy file -;; tex/inputenc/uf8.xdy is not usable because it refers to the macro -;; \IeC only sporadically, and as tex.xdy is not loaded, a rule such as -;; (merge-rule "\'e" "é" :string) -;; does not work, it must be -;; (merge-rule "\IeC {\'e}" "é" :string) -;; So Sphinx contributes LICRlatin2utf8.xdy to mitigate that problem. - -;;;;;;;; extracts from tex.xdy (discarding most original comments): - -;;; -;;; TeX conventions -;;; - -;; Discard leading and trailing white space. Collapse multiple white -;; space characters to blank. - -(merge-rule "^ +" "" :eregexp) -(merge-rule " +$" "" :eregexp) -(merge-rule " +" " " :eregexp) - -;; Handle TeX markup - -(merge-rule "\\([{}$%&#])" "\1" :eregexp) - -;;;;;;;; end of extracts from xindy's tex.xdy - -;;;;;;;; extracts from latex.xdy: - -;; Standard location classes: arabic and roman numbers, and alphabets. - -(define-location-class "arabic-page-numbers" ("arabic-numbers")) -(define-location-class "roman-page-numbers" ("roman-numbers-lowercase")) -(define-location-class "Roman-page-numbers" ("roman-numbers-uppercase")) -(define-location-class "alpha-page-numbers" ("alpha")) -(define-location-class "Alpha-page-numbers" ("ALPHA")) - -;; Output Markup - -(markup-letter-group-list :sep "~n~n \indexspace~n") - -(markup-indexentry :open "~n \item " :depth 0) -(markup-indexentry :open "~n \subitem " :depth 1) -(markup-indexentry :open "~n \subsubitem " :depth 2) - -(markup-locclass-list :open ", " :sep ", ") -(markup-locref-list :sep ", ") - -;;;;;;;; end of extracts from latex.xdy - -;; The LaTeX \index command turns \ into normal character so the TeX macros -;; written to .idx files are not followed by a blank. This is different -;; from non-ascii letters which end up (with pdflatex) as \IeC macros in .idx -;; file, with a blank space after \IeC - -;; Details of the syntax are explained at -;; https://xindy.sourceforge.net/doc/manual-3.html -;; In absence of :string, "xindy uses an auto-detection mechanism to decide, -;; if the pattern is a regular expression or not". But it is not obvious to -;; guess, for example "\\_" is not detected as RE but "\\P\{\}" is, so for -;; being sure we apply the :string switch everywhere and do not use \\ etc... - -;; Go back from sphinx.util.texescape TeX macros to UTF-8 - -(merge-rule "\sphinxleftcurlybrace{}" "{" :string) -(merge-rule "\sphinxrightcurlybrace{}" "}" :string) -(merge-rule "\_" "_" :string) -(merge-rule "{[}" "[" :string) -(merge-rule "{]}" "]" :string) -(merge-rule "\textbackslash{}" "\" :string) ; " for Emacs syntax highlighting -(merge-rule "\textasciitilde{}" "~~" :string); the ~~ escape is needed here -(merge-rule "\textasciicircum{}" "^" :string) -(merge-rule "\sphinxhyphen{}" "-" :string) -(merge-rule "\textquotesingle{}" "'" :string) -(merge-rule "\textasciigrave{}" "`" :string) -(merge-rule "\textless{}" "<" :string) -(merge-rule "\textgreater{}" ">" :string) -(merge-rule "\P{}" "¶" :string) -(merge-rule "\S{}" "§" :string) -(merge-rule "\texteuro{}" "€" :string) -(merge-rule "\(\infty\)" "∞" :string) -(merge-rule "\(\pm\)" "±" :string) -(merge-rule "\(\rightarrow\)" "→" :string) -(merge-rule "\(\checkmark\)" "✓" :string) -(merge-rule "\textendash{}" "–" :string) -(merge-rule "\textbar{}" "|" :string) -(merge-rule "\(\sp{\text{0}}\)" "⁰" :string) -(merge-rule "\(\sp{\text{1}}\)" "¹" :string) -(merge-rule "\(\sp{\text{2}}\)" "²" :string) -(merge-rule "\(\sp{\text{3}}\)" "³" :string) -(merge-rule "\(\sp{\text{4}}\)" "⁴" :string) -(merge-rule "\(\sp{\text{5}}\)" "⁵" :string) -(merge-rule "\(\sp{\text{6}}\)" "⁶" :string) -(merge-rule "\(\sp{\text{7}}\)" "⁷" :string) -(merge-rule "\(\sp{\text{8}}\)" "⁸" :string) -(merge-rule "\(\sp{\text{9}}\)" "⁹" :string) -(merge-rule "\(\sb{\text{0}}\)" "₀" :string) -(merge-rule "\(\sb{\text{1}}\)" "₁" :string) -(merge-rule "\(\sb{\text{2}}\)" "₂" :string) -(merge-rule "\(\sb{\text{3}}\)" "₃" :string) -(merge-rule "\(\sb{\text{4}}\)" "₄" :string) -(merge-rule "\(\sb{\text{5}}\)" "₅" :string) -(merge-rule "\(\sb{\text{6}}\)" "₆" :string) -(merge-rule "\(\sb{\text{7}}\)" "₇" :string) -(merge-rule "\(\sb{\text{8}}\)" "₈" :string) -(merge-rule "\(\sb{\text{9}}\)" "₉" :string) -(merge-rule "\IeC {\textalpha }" "α" :string) -(merge-rule "\IeC {\textbeta }" "β" :string) -(merge-rule "\IeC {\textgamma }" "γ" :string) -(merge-rule "\IeC {\textdelta }" "δ" :string) -(merge-rule "\IeC {\textepsilon }" "ε" :string) -(merge-rule "\IeC {\textzeta }" "ζ" :string) -(merge-rule "\IeC {\texteta }" "η" :string) -(merge-rule "\IeC {\texttheta }" "θ" :string) -(merge-rule "\IeC {\textiota }" "ι" :string) -(merge-rule "\IeC {\textkappa }" "κ" :string) -(merge-rule "\IeC {\textlambda }" "λ" :string) -(merge-rule "\IeC {\textmu }" "μ" :string) -(merge-rule "\IeC {\textnu }" "ν" :string) -(merge-rule "\IeC {\textxi }" "ξ" :string) -(merge-rule "\IeC {\textomicron }" "ο" :string) -(merge-rule "\IeC {\textpi }" "π" :string) -(merge-rule "\IeC {\textrho }" "ρ" :string) -(merge-rule "\IeC {\textsigma }" "σ" :string) -(merge-rule "\IeC {\texttau }" "τ" :string) -(merge-rule "\IeC {\textupsilon }" "υ" :string) -(merge-rule "\IeC {\textphi }" "φ" :string) -(merge-rule "\IeC {\textchi }" "χ" :string) -(merge-rule "\IeC {\textpsi }" "ψ" :string) -(merge-rule "\IeC {\textomega }" "ω" :string) -(merge-rule "\IeC {\textAlpha }" "Α" :string) -(merge-rule "\IeC {\textBeta }" "Β" :string) -(merge-rule "\IeC {\textGamma }" "Γ" :string) -(merge-rule "\IeC {\textDelta }" "Δ" :string) -(merge-rule "\IeC {\textEpsilon }" "Ε" :string) -(merge-rule "\IeC {\textZeta }" "Ζ" :string) -(merge-rule "\IeC {\textEta }" "Η" :string) -(merge-rule "\IeC {\textTheta }" "Θ" :string) -(merge-rule "\IeC {\textIota }" "Ι" :string) -(merge-rule "\IeC {\textKappa }" "Κ" :string) -(merge-rule "\IeC {\textLambda }" "Λ" :string) -(merge-rule "\IeC {\textMu }" "Μ" :string) -(merge-rule "\IeC {\textNu }" "Ν" :string) -(merge-rule "\IeC {\textTheta }" "Θ" :string) -(merge-rule "\IeC {\textIota }" "Ι" :string) -(merge-rule "\IeC {\textKappa }" "Κ" :string) -(merge-rule "\IeC {\textLambda }" "Λ" :string) -(merge-rule "\IeC {\textMu }" "Μ" :string) -(merge-rule "\IeC {\textNu }" "Ν" :string) -(merge-rule "\IeC {\textXi }" "Ξ" :string) -(merge-rule "\IeC {\textOmicron }" "Ο" :string) -(merge-rule "\IeC {\textPi }" "Π" :string) -(merge-rule "\IeC {\textRho }" "Ρ" :string) -(merge-rule "\IeC {\textSigma }" "Σ" :string) -(merge-rule "\IeC {\textTau }" "Τ" :string) -(merge-rule "\IeC {\textUpsilon }" "Υ" :string) -(merge-rule "\IeC {\textPhi }" "Φ" :string) -(merge-rule "\IeC {\textChi }" "Χ" :string) -(merge-rule "\IeC {\textPsi }" "Ψ" :string) -(merge-rule "\IeC {\textOmega }" "Ω" :string) -(merge-rule "\IeC {\textohm }" "Ω" :string) - -;; This xindy module provides some basic support for "see" -(require "makeindex.xdy") - -;; This creates one-letter headings and works fine with utf-8 letters. -;; For Cyrillic with pdflatex works thanks to LICRcyr2utf8.xdy -(require "latin-lettergroups.xdy") - -;; currently we don't (know how to easily) separate "Numbers" from -;; "Symbols" with xindy as is the case with makeindex. -(markup-index :open "\begin{sphinxtheindex} -\let\lettergroup\sphinxstyleindexlettergroup -\let\lettergroupDefault\sphinxstyleindexlettergroupDefault -\let\spxpagem\sphinxstyleindexpagemain -\let\spxentry\sphinxstyleindexentry -\let\spxextra\sphinxstyleindexextra - -" - :close " - -\end{sphinxtheindex} -" - :tree) - diff --git a/docs/build/latex/sphinxhighlight.sty b/docs/build/latex/sphinxhighlight.sty deleted file mode 100644 index 170f557..0000000 --- a/docs/build/latex/sphinxhighlight.sty +++ /dev/null @@ -1,130 +0,0 @@ -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{sphinxhighlight}[2022/06/30 stylesheet for highlighting with pygments] -% Its contents depend on pygments_style configuration variable. - - -\makeatletter -\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% - \let\PYG@ul=\relax \let\PYG@tc=\relax% - \let\PYG@bc=\relax \let\PYG@ff=\relax} -\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} -\def\PYG@toks#1+{\ifx\relax#1\empty\else% - \PYG@tok{#1}\expandafter\PYG@toks\fi} -\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% - \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} -\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} - -\@namedef{PYG@tok@w}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} -\@namedef{PYG@tok@c}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\@namedef{PYG@tok@cp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@cs}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{{\setlength{\fboxsep}{0pt}\colorbox[rgb]{1.00,0.94,0.94}{\strut ##1}}}} -\@namedef{PYG@tok@k}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@kp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@kt}{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}} -\@namedef{PYG@tok@o}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\@namedef{PYG@tok@ow}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@nb}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@nf}{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}} -\@namedef{PYG@tok@nc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} -\@namedef{PYG@tok@nn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} -\@namedef{PYG@tok@ne}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@nv}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\@namedef{PYG@tok@no}{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}} -\@namedef{PYG@tok@nl}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}} -\@namedef{PYG@tok@ni}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}} -\@namedef{PYG@tok@na}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@nt}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}} -\@namedef{PYG@tok@nd}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}} -\@namedef{PYG@tok@s}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@sd}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@si}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}} -\@namedef{PYG@tok@se}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@sr}{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}} -\@namedef{PYG@tok@ss}{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}} -\@namedef{PYG@tok@sx}{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} -\@namedef{PYG@tok@m}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\@namedef{PYG@tok@gh}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} -\@namedef{PYG@tok@gu}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} -\@namedef{PYG@tok@gd}{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} -\@namedef{PYG@tok@gi}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} -\@namedef{PYG@tok@gr}{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} -\@namedef{PYG@tok@ge}{\let\PYG@it=\textit} -\@namedef{PYG@tok@gs}{\let\PYG@bf=\textbf} -\@namedef{PYG@tok@ges}{\let\PYG@bf=\textbf\let\PYG@it=\textit} -\@namedef{PYG@tok@gp}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} -\@namedef{PYG@tok@go}{\def\PYG@tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}} -\@namedef{PYG@tok@gt}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} -\@namedef{PYG@tok@err}{\def\PYG@bc##1{{\setlength{\fboxsep}{\string -\fboxrule}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}} -\@namedef{PYG@tok@kc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@kd}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@kn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@kr}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@bp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\@namedef{PYG@tok@fm}{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}} -\@namedef{PYG@tok@vc}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\@namedef{PYG@tok@vg}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\@namedef{PYG@tok@vi}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\@namedef{PYG@tok@vm}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\@namedef{PYG@tok@sa}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@sb}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@sc}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@dl}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@s2}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@sh}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@s1}{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\@namedef{PYG@tok@mb}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\@namedef{PYG@tok@mf}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\@namedef{PYG@tok@mh}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\@namedef{PYG@tok@mi}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\@namedef{PYG@tok@il}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\@namedef{PYG@tok@mo}{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\@namedef{PYG@tok@ch}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\@namedef{PYG@tok@cm}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\@namedef{PYG@tok@cpf}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\@namedef{PYG@tok@c1}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} - -\def\PYGZbs{\char`\\} -\def\PYGZus{\char`\_} -\def\PYGZob{\char`\{} -\def\PYGZcb{\char`\}} -\def\PYGZca{\char`\^} -\def\PYGZam{\char`\&} -\def\PYGZlt{\char`\<} -\def\PYGZgt{\char`\>} -\def\PYGZsh{\char`\#} -\def\PYGZpc{\char`\%} -\def\PYGZdl{\char`\$} -\def\PYGZhy{\char`\-} -\def\PYGZsq{\char`\'} -\def\PYGZdq{\char`\"} -\def\PYGZti{\char`\~} -% for compatibility with earlier versions -\def\PYGZat{@} -\def\PYGZlb{[} -\def\PYGZrb{]} -\makeatother - -% Sphinx redefinitions -% Originally to obtain a straight single quote via package textcomp, then -% to fix problems for the 5.0.0 inline code highlighting (captions!). -% The \text is from amstext, a dependency of sphinx.sty. It is here only -% to avoid build errors if for some reason expansion is in math mode. -\def\PYGZbs{\text\textbackslash} -\def\PYGZus{\_} -\def\PYGZob{\{} -\def\PYGZcb{\}} -\def\PYGZca{\text\textasciicircum} -\def\PYGZam{\&} -\def\PYGZlt{\text\textless} -\def\PYGZgt{\text\textgreater} -\def\PYGZsh{\#} -\def\PYGZpc{\%} -\def\PYGZdl{\$} -\def\PYGZhy{\sphinxhyphen}% defined in sphinxlatexstyletext.sty -\def\PYGZsq{\text\textquotesingle} -\def\PYGZdq{"} -\def\PYGZti{\text\textasciitilde} -\makeatletter -% use \protected to allow syntax highlighting in captions -\protected\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+{\PYG@do{#2}}} -\makeatother diff --git a/docs/build/latex/sphinxhowto.cls b/docs/build/latex/sphinxhowto.cls deleted file mode 100644 index 8d7dd0e..0000000 --- a/docs/build/latex/sphinxhowto.cls +++ /dev/null @@ -1,102 +0,0 @@ -% -% sphinxhowto.cls for Sphinx (https://www.sphinx-doc.org/) -% - -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{sphinxhowto}[2019/12/01 v2.3.0 Document class (Sphinx howto)] - -% 'oneside' option overriding the 'twoside' default -\newif\if@oneside -\DeclareOption{oneside}{\@onesidetrue} -% Pass remaining document options to the parent class. -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}} -\ProcessOptions\relax - -% Default to two-side document -\if@oneside -% nothing to do (oneside is the default) -\else -\PassOptionsToClass{twoside}{\sphinxdocclass} -\fi - -\LoadClass{\sphinxdocclass} - -% Set some sane defaults for section numbering depth and TOC depth. You can -% reset these counters in your preamble. -% -\setcounter{secnumdepth}{2} -\setcounter{tocdepth}{2}% i.e. section and subsection - -% Adapt \and command to the flushright context of \sphinxmaketitle, to -% avoid ragged line endings if author names do not fit all on one single line -\DeclareRobustCommand{\and}{% - \end{tabular}\kern-\tabcolsep - \allowbreak - \hskip\dimexpr1em+\tabcolsep\@plus.17fil\begin{tabular}[t]{c}% -}% -% If it is desired that each author name be on its own line, use in preamble: -%\DeclareRobustCommand{\and}{% -% \end{tabular}\kern-\tabcolsep\\\begin{tabular}[t]{c}% -%}% -% Change the title page to look a bit better, and fit in with the fncychap -% ``Bjarne'' style a bit better. -% -\newcommand{\sphinxmaketitle}{% - \noindent\rule{\linewidth}{1pt}\par - \begingroup % for PDF information dictionary - \def\endgraf{ }\def\and{\& }% - \pdfstringdefDisableCommands{\def\\{, }}% overwrite hyperref setup - \hypersetup{pdfauthor={\@author}, pdftitle={\@title}}% - \endgroup - \begin{flushright} - \sphinxlogo - \py@HeaderFamily - {\Huge \@title }\par - {\itshape\large \py@release \releaseinfo}\par - \vspace{25pt} - {\Large - \begin{tabular}[t]{c} - \@author - \end{tabular}\kern-\tabcolsep}\par - \vspace{25pt} - \@date \par - \py@authoraddress \par - \end{flushright} - \@thanks - \setcounter{footnote}{0} - \let\thanks\relax\let\maketitle\relax - %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} -} - -\newcommand{\sphinxtableofcontents}{% - \begingroup - \parskip \z@skip - \sphinxtableofcontentshook - \tableofcontents - \endgroup - \noindent\rule{\linewidth}{1pt}\par - \vspace{12pt}% -} -\newcommand\sphinxtableofcontentshook{} -\pagenumbering{arabic} - -% Fix the bibliography environment to add an entry to the Table of -% Contents. -% For an article document class this environment is a section, -% so no page break before it. -% -\newenvironment{sphinxthebibliography}[1]{% - % \phantomsection % not needed here since TeXLive 2010's hyperref - \begin{thebibliography}{#1}% - \addcontentsline{toc}{section}{\ifdefined\refname\refname\else\ifdefined\bibname\bibname\fi\fi}}{\end{thebibliography}} - - -% Same for the indices. -% The memoir class already does this, so we don't duplicate it in that case. -% -\@ifclassloaded{memoir} - {\newenvironment{sphinxtheindex}{\begin{theindex}}{\end{theindex}}} - {\newenvironment{sphinxtheindex}{% - \phantomsection % needed because no chapter, section, ... is created by theindex - \begin{theindex}% - \addcontentsline{toc}{section}{\indexname}}{\end{theindex}}} diff --git a/docs/build/latex/sphinxlatexadmonitions.sty b/docs/build/latex/sphinxlatexadmonitions.sty deleted file mode 100644 index 0519903..0000000 --- a/docs/build/latex/sphinxlatexadmonitions.sty +++ /dev/null @@ -1,403 +0,0 @@ -%% NOTICES AND ADMONITIONS -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexadmonitions}[2024/10/11 v8.1.1 admonitions] - -% Provides support for this output mark-up from Sphinx latex writer: -% -% - sphinxseealso environment added at 6.1.0. -% -% - sphinxtodo environment added at 7.4.0. -% -% - sphinxadmonition (environment) -% This is a dispatch which formerly configured -% -% - note, hint, important, tip to use sphinxlightbox (or optionally -% sphinxheavybox since 6.2.0), -% - warning, caution, attention, danger, error to use sphinxheavybox. -% -% Since 7.4.0 all admonitions use sphinxheavybox. -% -% - All environments sphinxnote, sphinxwarning, etc... can be redefined as -% will by user. Thay have a single parameter #1 which is the title. -% -% - Also redefinable by user are the one-argument commands -% * \sphinxstylenotetitle, -% * \sphinxstylewarningtitle, -% * etc.... one for each admonition type (also seealso and todo). -% -% - At 7.4.0, all commands of previous item use \sphinxdotitlerow. -% (the 7.4.0 name, still usable, was \sphinxdotitlerowwithicon; the 8.1.0 -% version is also used for topic, contents and sidebar directives, see -% sphinxlatexshadowbox.sty, and handles both "with icon" and "without -% icon" situations). -% -% The sphinxlightbox environment is kept for backward compatibility, for user -% custom code which used it via custom definitions done in preamble or via -% raw latex directive. -% MEMO: here is for example how sphinxnote was formerly defined: -% (where #1 is the localized string Note, followed with a colon) -% \newenvironment{sphinxnote}[1] -% {\begin{sphinxlightbox}\sphinxstrong{#1} } -% {\end{sphinxlightbox}} -% Use this if you want to revert the 7.4.0 switch to usage of sphinxheavybox. -% (the 7.4.0 redefined \sphinxstylenotetitle will not work in sphinxlightbox, -% so \sphinxstrong{#1} which was its former default is used above). - -% Dependencies (they do not need to be defined at time of loading): -% -% - of course the various colour and dimension options handled via sphinx.sty -% - dimension register \spx@image@maxheight from sphinxlatexgraphics.sty -% - \savenotes/\spewnotes from sphinxpackagefootnote.sty -% - \ifspx@inframed defined in sphinx.sty -% - \spx@boxes@fcolorbox@setup from sphinxpackageboxes.sty -% -\RequirePackage{framed} -% Those are required either before or after by sphinx.sty anyhow, but for -% clarity we list them here: -\RequirePackage{sphinxlatexgraphics} -\RequirePackage{sphinxpackagefootnote} -\RequirePackage{sphinxpackageboxes} -% -% Provides: (also in sphinxlatexliterals.sty) -% Only needed here by legacy (deprecated) sphinxlightbox environment. -\providecommand*\sphinxvspacefixafterfrenchlists{% - \ifvmode\ifdim\lastskip<\z@ \vskip\parskip\fi\else\par\fi -} - -% This \dimen register is a legacy relic from Sphinx 1.5 which is used now -% only for sphinxlightbox. It is set in the sphinxadmonition environment. -\newdimen\spx@notice@border -% sphinxlightbox is now also a legacy relic, not used by Sphinx anymore -\newenvironment{sphinxlightbox}{% - \par - \noindent{\color{spx@notice@bordercolor}% - \rule{\linewidth}{\spx@notice@border}}% - \par\nobreak - {\parskip\z@skip\noindent}% - } - {% - % counteract previous possible negative skip (French lists!): - % (we can't cancel that any earlier \vskip introduced a potential pagebreak) - \sphinxvspacefixafterfrenchlists - \nobreak\vbox{\noindent\kern\@totalleftmargin - {\color{spx@notice@bordercolor}% - \rule[\dimexpr.4\baselineskip-\spx@notice@border\relax] - {\linewidth}{\spx@notice@border}}\hss}\allowbreak - }% end of sphinxlightbox environment definition - -% Since 1.5 these environments are named individually sphinxnote, sphinxhint, -% etc... to allow user to redefine them entirely. -% -% The Sphinx definitions for note/hint/important/tip notices were done like -% this, prior to 6.2.0: -% -% \newenvironment{sphinxhint}[1] -% {\begin{sphinxlightbox}\sphinxstrong{#1} }{\end{sphinxlightbox}} -% -% Then from 6.2.0 to 7.4.0 (exclusive) a more complex definition decided -% to use either sphinxlightbox or sphinxheavybox according to whether -% some CSS-like options had been used, for example for a background color. -% -% 6.2.0 also added one layer of mark-up via \sphinxnotetitle etc..., because -% the former \sphinxstrong{#1} used a too generic \sphinxstrong. -% -% At 7.4.0, sphinxheavybox environment is default for all types of notices -% and also for the seealso and todo directives. -% -% Code adapted from framed.sty's "snugshade" environment. -% Nesting works (inner frames do not allow page breaks). -\newenvironment{sphinxheavybox}{\par - % (MEMO: it is not a problem here if there is no sphinxShadowColor, - % as it used only if set) - \spx@boxes@fcolorbox@setup{\spx@noticetype}% - % Those are used by sphinxVerbatim if the \ifspx@inframed boolean is true - \setlength{\FrameRule}{0.5\dimexpr\spx@boxes@border@top+\spx@boxes@border@bottom\relax}% - % MEMO: prior to 5.1.0 \FrameSep was determined as 0.6\baselineskip - - % \FrameRule, and there was no possibility for user to adjust padding. - % Then \fcolorbox was used with \fboxrule set to \FrameRule and \fboxsep - % set to \FrameSep. - % The 5.1.0 default calculation of padding parameters maintains PDF output - % identical to legacy behaviour, as long as padding is not set by user. - \setlength{\FrameSep}{0.5\dimexpr\spx@boxes@padding@top+\spx@boxes@padding@bottom\relax}% - % "setup" macro has prepared the \spx@boxes@... dimen registers - \advance\spx@image@maxheight - -\dimexpr\spx@boxes@border@top+\spx@boxes@border@bottom - +\spx@boxes@padding@top+\spx@boxes@padding@bottom - +\baselineskip\relax % will happen again if nested, needed indeed! - % MEMO: the next comment is before boxing was extended to allow padding and - % multiple border-widths, not to mention shadows... - % configure framed.sty's parameters to obtain same vertical spacing - % as for "light" boxes. We need for this to manually insert parskip glue and - % revert a skip done by framed before the frame. - \ltx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}% - \vspace{\FrameHeightAdjust} - % copied/adapted from framed.sty's snugshade - % but now using in place of \fcolorbox the Sphinx sophisticated own - \def\FrameCommand##1{% - \hskip\@totalleftmargin - % "setup" macro MUST have been called before - \spx@boxes@fcolorbox{##1}% - \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth - }% - % 6.2.0 adds support for div._box-decoration-break=slice. - % (it is yet undecided if slice style should inhibit a bottom shadow) - \csname ifspx@\spx@noticetype @border@open\endcsname - \def\FirstFrameCommand - {\spx@boxes@fcolorbox@setup@openbottom\FrameCommand}% - \def\MidFrameCommand - {\spx@boxes@fcolorbox@setup@openboth \FrameCommand}% - \def\LastFrameCommand - {\spx@boxes@fcolorbox@setup@opentop \FrameCommand}% - \fi - \savenotes - % use a minipage if we are already inside a framed environment - \ifspx@inframed - \noindent\begin{minipage}{\linewidth} - \else - % handle case where notice is first thing in a list item (or is quoted) - \if@inlabel - \noindent\par\vspace{-\baselineskip} - \else - \vspace{\parskip} - \fi - \fi - \MakeFramed {\spx@inframedtrue - \advance\hsize-\width \@totalleftmargin\z@ \linewidth\hsize - % minipage initialization copied from LaTeX source code. - \@pboxswfalse - \let\@listdepth\@mplistdepth \@mplistdepth\z@ - \@minipagerestore - \@setminipage }% - \color@begingroup % workaround to an upstream framed.sty bug - } - {% - \par\unskip - \color@endgroup % matches the \color@begingroup - \@minipagefalse - \endMakeFramed - \ifspx@inframed\end{minipage}\fi - % set footnotes at bottom of page - \spewnotes - % arrange for similar spacing below frame as for "light" boxes. - \vskip .4\baselineskip - }% end of sphinxheavybox environment definition - -% - Since 1.5 these environments are named individually to allow user to -% redefine them entirely. -% -% - Since 5.1.0, sphinxheavybox is more versatile and four border widths, four -% padding widths, four corner radii, optional shadow, and three colors can all -% be modified via CSS-named alike options. -% -% - Since 6.2.0, also note/hint/important/tip notices can use these options -% and then they go automatically via sphinxheavybox. If only the legacy options -% are used, they keep using sphinxlightbox. -% -% - Since 6.2.0, \sphinxwarningtitle etc... add one level of mark-up (they -% expand to \sphinxstrong{#1} which was former hard-coded mark-up). -% Example: -% \renewcommand{\sphinxwarningtitle}[1]{\textbf{#1}\par\smallskip -% {\color{sphinxwarningBorderColor}\hrule height1pt}\smallskip} -% -% - Since 7.4.0, all types of notices use sphinxheavybox and the default -% for \sphinxstyletitle is mapped to using \sphinxdotitlerowwithicon{} -% -% MEMO: except for the generic admonition directive (which uses "note" type) -% the argument #1 in these environments has a postfixed colon originating -% in Sphinx LaTeX writer legacy code. The -% \sphinxremovefinalcolon utility in sphinxlatexstyletext.sty can be used as -% \sphinxremovefinalcolon{#1} from inside the definitions of -% \sphinxstylenotetitle et al. commands. - -% Important: even prior to 5.1.0 it was not really possible to use directly -% sphinxheavybox if not triggered from sphinxadmonition, because some -% parameters were defined in sphinxadmonition. This meant that the -% sphinxwarning, sphinxcaution etc... environments (defined below) could not -% be used directly in a document, they had to be triggered via -% sphinxadmonition. The sole data since 5.1.0 needed by sphinxheavybox is the -% type of the notice which sphinxadmonition stores into \spx@noticetype. -% -% In order to facilitate recycling or imitation of the sphinx -% environments, 7.4.0 inserts an extra \def\spx@noticetype{} in their -% definitions, so that they can be used independently of sphinxadmonition -% dispatcher. -% -% MEMO: direct usage of these environments does not execute the div._TeXextras -% and div._TexColor code, there are only done from the sphinxadmonition wrapper. -\newenvironment{sphinxnote}[1] - {\def\spx@noticetype{note}\begin{sphinxheavybox}\sphinxstylenotetitle{#1}} - {\end{sphinxheavybox}} -\newenvironment{sphinxhint}[1] - {\def\spx@noticetype{hint}\begin{sphinxheavybox}\sphinxstylehinttitle{#1}} - {\end{sphinxheavybox}} -\newenvironment{sphinxtip}[1] - {\def\spx@noticetype{tip}\begin{sphinxheavybox}\sphinxstyletiptitle{#1}} - {\end{sphinxheavybox}} -\newenvironment{sphinximportant}[1] - {\def\spx@noticetype{important}\begin{sphinxheavybox}\sphinxstyleimportanttitle{#1}} - {\end{sphinxheavybox}} -\newenvironment{sphinxwarning}[1] - {\def\spx@noticetype{warning}\begin{sphinxheavybox}\sphinxstylewarningtitle{#1}} - {\end{sphinxheavybox}} -\newenvironment{sphinxcaution}[1] - {\def\spx@noticetype{caution}\begin{sphinxheavybox}\sphinxstylecautiontitle{#1}} - {\end{sphinxheavybox}} -\newenvironment{sphinxattention}[1] - {\def\spx@noticetype{attention}\begin{sphinxheavybox}\sphinxstyleattentiontitle{#1}} - {\end{sphinxheavybox}} -\newenvironment{sphinxdanger}[1] - {\def\spx@noticetype{danger}\begin{sphinxheavybox}\sphinxstyledangertitle{#1}} - {\end{sphinxheavybox}} -\newenvironment{sphinxerror}[1] - {\def\spx@noticetype{error}\begin{sphinxheavybox}\sphinxstyleerrortitle{#1}} - {\end{sphinxheavybox}} -% The "see also" was quite plain until 7.4.0 as it simply did -% \newenvironment{sphinxseealso}[1]{\sphinxstyleseealsotitle{#1}}{} -% Here we need to manually insert execution of div.seealso_TeX{color,extras} values -\newenvironment{sphinxseealso}[1] - {\def\spx@noticetype{seealso}% - \begin{sphinxheavybox}\sphinxstyleseealsotitle{#1}% - \ifspx@seealso@withtextcolor\color{sphinxseealsoTextColor}\fi - \spx@seealso@TeXextras - } - {\end{sphinxheavybox}} -% There was no sphinxtodo environment until 7.4.0 because sphinx.ext.todo -% generated \begin{sphinxadmonition}{note}{Todo:} mark-up. -\newcounter{sphinxtodo}% to provide targets from todolist directive output -\newenvironment{sphinxtodo}[1] - {\refstepcounter{sphinxtodo}\def\spx@noticetype{todo}% - \begin{sphinxheavybox}\sphinxstyletodotitle{#1}% - \ifspx@todo@withtextcolor\color{sphinxtodoTextColor}\fi - \spx@todo@TeXextras - } - {\end{sphinxheavybox}} - - -% the main dispatch for all types of notices -\newenvironment{sphinxadmonition}[2]{% #1=type, #2=heading - % can't use #1 directly in definition of end part - \def\spx@noticetype {#1}% - % those next three are a remnant of legacy code; they are not used at - % all by sphinxheavybox, and their usage could be disposed of by sphinxlightbox - % but we keep for backward compatibility and also because it may be simpler - % for user redefinitions to employ for example "spx@notice@bgcolor" and not - % the more bulky "sphinx\spx@noticetype BgColor". - \sphinxcolorlet{spx@notice@bordercolor}{sphinx#1BorderColor}% - \sphinxcolorlet{spx@notice@bgcolor}{sphinx#1BgColor}% - % At 7.4.0 there are no \spx@@boder macros anymore only top, left, - % bottom, right. For this legacy \spx@notice@border only needed by - % sphinxlightbox (which is not used by own Sphinx environments anymore) - % we thus use here @top - \spx@notice@border \dimexpr\csname spx@#1@border@top\endcsname\relax - % trigger the sphinx environment, #2=heading is passed as argument - \begin{sphinx#1}{#2}% - % MEMO: the heading #2 will be typeset before the next lines are executed - % 6.2.0 support of div._TeX{color,extras} options - \csname ifspx@\spx@noticetype @withtextcolor\endcsname - \color{sphinx\spx@noticetype TextColor}% - \fi - % Other code to be executed at start of contents (after title) - \csname spx@\spx@noticetype @TeXextras\endcsname - } - % workaround some LaTeX "feature" of \end command (i.e. can't use "sphinx#1" here) - {\edef\spx@temp{\noexpand\end{sphinx\spx@noticetype}}\spx@temp} - -% TODO: allow these next three settings to be customized individually. -% This can however already be done at user level by \renewcommand -% inside renew'ed environments sphinxnote, sphinxhint etc... -\newcommand\sphinxtitlerowtoppadding{5pt} -\newcommand\sphinxtitlerowbottompadding{3pt} -\newcommand\sphinxtitlerowaftericonspacecmd{\hskip0.5em\relax} -% 7.4.0 used this longer name: -\newcommand\sphinxdotitlerowwithicon{\sphinxdotitlerow} -\newcommand\sphinxdotitlerow[2]{% #1=type, #2=heading (without final colon) - \begingroup - \kern-\spx@boxes@padding@top - \parskip\z@skip % the \parskip business is a workaround to a vertical - % glue issue showing in LaTeX earlier than 2023-06-01 - \noindent - \kern-\spx@boxes@padding@left % must have been configured by a prior - % \spx@boxes@fcolorbox@setup{} - % inherit settings from the enclosing box and modify what is needed - \spx@boxes@border@top =\z@ - \spx@boxes@border@right =\z@ - \spx@boxes@border@bottom =\z@ - \spx@boxes@border@left =\z@ - \spx@boxes@radius@bottomright@x=\z@ - \spx@boxes@radius@bottomright@y=\z@ - \spx@boxes@radius@bottomleft@x=\z@ - \spx@boxes@radius@bottomleft@x=\z@ - \spx@boxes@padding@top =\sphinxtitlerowtoppadding\relax - \spx@boxes@padding@bottom=\sphinxtitlerowbottompadding\relax - \spx@boxes@withshadowfalse - \sphinxcolorlet{spx@boxes@backgroundcolor}{sphinx#1TtlBgColor}% - \spx@boxes@fcolorbox{% - \parbox[t]{\linewidth}{% 7.4.0 used \makebox, but wrapping of long titles - % is needed for generic admonition or topic box. - \sphinxAtStartPar - % 8.1.0 auto-drops extra space if no icon - \sbox\z@{\@nameuse{sphinx#1TtlIcon}}% - \ifdim\wd\z@>\z@ - \textcolor{sphinx#1TtlFgColor}{% - \@nameuse{sphinx#1TtlIcon}% - % The next macro is located here for legacy reasons of earlier - % functioning of \spx@faIcon. When fontawesome{5,}.sty both - % are unavailable, it (formerly) gobbled this next macro. - % We leave it here now although it could be moved to after - % the closing brace. - \sphinxtitlerowaftericonspacecmd - }% - \fi - \sphinxstrong{#2}% - \strut - \par - }% - }% - \kern-\spx@boxes@padding@right - \par - \endgroup - \vskip-\parskip - \kern\spx@boxes@padding@top -} - -% #1 holds the localized name of the notice, postfixed with a colon. -% \sphinxremovefinalcolon{#1} will typeset #1 without the colon. -% Legacy definitions (done in sphinxlatexstyletext.sty) were all using -% a boring plain \sphinxstrong{#1}, now we use a coloured title row. -\newcommand\sphinxstylenotetitle [1]{\sphinxdotitlerow{note}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstylehinttitle [1]{\sphinxdotitlerow{hint}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstyleimportanttitle[1]{\sphinxdotitlerow{important}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstyletiptitle [1]{\sphinxdotitlerow{tip}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstylewarningtitle [1]{\sphinxdotitlerow{warning}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstylecautiontitle [1]{\sphinxdotitlerow{caution}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstyleattentiontitle[1]{\sphinxdotitlerow{attention}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstyledangertitle [1]{\sphinxdotitlerow{danger}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstyleerrortitle [1]{\sphinxdotitlerow{error}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstyleseealsotitle [1]{\sphinxdotitlerow{seealso}{\sphinxremovefinalcolon{#1}}} -\newcommand\sphinxstyletodotitle [1]{\sphinxdotitlerow{todo}{\sphinxremovefinalcolon{#1}}} -% -% A utility to remove a final colon. Removing last token is not easy in -% LaTeX, and there are additional complications: -% - some languages will make the : "active" in document body, -% - the generic admonition ends up using "note", so for \sphinxnotetitle to -% use it safely, the utility has to allow an input not having any final colon. -% - a bit far-fetched but maybe there is more than one colon inside the input -% (possible from a generic admonition title). -% Hence the scary code. -\newcommand\sphinxremovefinalcolon[1]{% #1 is the "active" : TeX token -% Prior to 7.4.0 this was defined with \protected\def but we do not -% see what usefulness this could have. -\renewcommand\sphinxremovefinalcolon[1]{% - % complications due to : possibly "active" - \begingroup\ifnum\catcode`:=\active - \def\x####1#1\relax{####1}% - \else\def\x####1:\relax{####1}\fi - \expandafter\endgroup\x##1\relax - % trick to let \x work also if input ##1 has no ending colon - \@gobblefour#1\relax:\relax\relax\relax - }% -}% end of wrapper to inject active : -\begingroup\catcode`:\active\expandafter\endgroup\sphinxremovefinalcolon: - -\endinput diff --git a/docs/build/latex/sphinxlatexcontainers.sty b/docs/build/latex/sphinxlatexcontainers.sty deleted file mode 100644 index 012d9ee..0000000 --- a/docs/build/latex/sphinxlatexcontainers.sty +++ /dev/null @@ -1,22 +0,0 @@ -%% CONTAINER DIRECTIVES -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexcontainers}[2021/05/03 containers] - -% The purpose of this file is to provide a dummy environment sphinxclass which -% will be inserted for each class in each container directive. The class name -% will be passed as the argument to the environment. -% -% For a class foo, the user can define customised handling of that class by -% defining the sphinxclassfoo LaTeX environment. - -\newenvironment{sphinxuseclass}[1]{% - \def\sphinxClassFunctionName{sphinxclass#1}% - \ltx@ifundefined{\sphinxClassFunctionName}% - {}% undefined so do nothing - {\expandafter\begin\expandafter{\sphinxClassFunctionName}}% -}{% - \ltx@ifundefined{\sphinxClassFunctionName}% - {}% we did nothing so we keep doing nothing - {\expandafter\end\expandafter{\sphinxClassFunctionName}}% -}% diff --git a/docs/build/latex/sphinxlatexgraphics.sty b/docs/build/latex/sphinxlatexgraphics.sty deleted file mode 100644 index f0c7c25..0000000 --- a/docs/build/latex/sphinxlatexgraphics.sty +++ /dev/null @@ -1,123 +0,0 @@ -%% GRAPHICS -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexgraphics}[2024/08/13 v8.1.0 graphics] - -% Provides support for this output mark-up from Sphinx latex writer: -% -% - macros: -% -% - \sphinxfigcaption -% - \sphinxincludegraphics -% -% - environments: -% -% - sphinxfigure-in-table -% -% May change: -% -% - \sphinxcaption (at begin document) -% -% Also provides: -% -% - \sphinxsafeincludegraphics (default of \sphinxincludegraphics since 2.0) -% - \spx@image@maxheight dimension (used by sphinxlatexadmonitions.sty) -% - \spx@image@box scratch box register (also used by sphinxlatexliterals.sty) -% -% Requires: -% \RequirePackage{graphicx}% done in sphinx.sty -\RequirePackage{amstext}% needed for \firstchoice@true(false) - -% \sphinxincludegraphics resizes images larger than the TeX \linewidth (which -% is adjusted in indented environments), or taller than a certain maximal -% height (usually \textheight and this is reduced in the environments which use -% framed.sty to avoid infinite loop if image too tall). -% -% In case height or width options are present the rescaling is done -% (since 2.0), in a way keeping the width:height ratio either native from -% image or from the width and height options if both were present. -% -\newdimen\spx@image@maxheight -\AtBeginDocument{\spx@image@maxheight\textheight} - -% box scratch register -\newbox\spx@image@box -\newcommand*{\sphinxsafeincludegraphics}[2][]{% - % #1 contains possibly width=, height=, but no scale= since 1.8.4 - \setbox\spx@image@box\hbox{\includegraphics[#1,draft]{#2}}% - \in@false % use some handy boolean flag - \ifdim \wd\spx@image@box>\linewidth - \in@true % flag to remember to adjust options and set box dimensions - % compute height which results from rescaling width to \linewidth - % and keep current aspect ratio. multiply-divide in \numexpr uses - % temporarily doubled precision, hence no overflow. (of course we - % assume \ht is not a few sp's below \maxdimen...(about 16384pt). - \edef\spx@image@rescaledheight % with sp units - {\the\numexpr\ht\spx@image@box - *\linewidth/\wd\spx@image@box sp}% - \ifdim\spx@image@rescaledheight>\spx@image@maxheight - % the rescaled height will be too big, so it is height which decides - % the rescaling factor - \def\spx@image@requiredheight{\spx@image@maxheight}% dimen register - \edef\spx@image@requiredwidth % with sp units - {\the\numexpr\wd\spx@image@box - *\spx@image@maxheight/\ht\spx@image@box sp}% - % TODO: decide if this commented-out block could be needed due to - % rounding in numexpr operations going up - % \ifdim\spx@image@requiredwidth>\linewidth - % \def\spx@image@requiredwidth{\linewidth}% dimen register - % \fi - \else - \def\spx@image@requiredwidth{\linewidth}% dimen register - \let\spx@image@requiredheight\spx@image@rescaledheight% sp units - \fi - \else - % width is ok, let's check height - \ifdim\ht\spx@image@box>\spx@image@maxheight - \in@true - \edef\spx@image@requiredwidth % with sp units - {\the\numexpr\wd\spx@image@box - *\spx@image@maxheight/\ht\spx@image@box sp}% - \def\spx@image@requiredheight{\spx@image@maxheight}% dimen register - \fi - \fi % end of check of width and height - \ifin@ - \setbox\spx@image@box - \hbox{\includegraphics - [#1,% contains only width and/or height which are overruled next - % but in future may contain page=N hence must be kept - width=\spx@image@requiredwidth,height=\spx@image@requiredheight]% - {#2}}% - % \includegraphics does not set box dimensions to the exactly - % requested ones, see https://github.com/latex3/latex2e/issues/112 - \wd\spx@image@box\spx@image@requiredwidth - \ht\spx@image@box\spx@image@requiredheight - \leavevmode\box\spx@image@box - \else - % here we do not modify the options, no need to adjust width and height - % on output, they will be computed exactly as with "draft" option - \setbox\spx@image@box\box\voidb@x % clear memory - \includegraphics[#1]{#2}% - \fi -}% -% Use the "safe" one by default (2.0) -\def\sphinxincludegraphics{\sphinxsafeincludegraphics} - - -%% FIGURE IN TABLE -% -\newenvironment{sphinxfigure-in-table}[1][\linewidth]{% - \def\@captype{figure}% - \sphinxsetvskipsforfigintablecaption - \begin{minipage}{#1}% -}{\end{minipage}} -% tabulary expands twice contents, we need to prevent double counter stepping -\newcommand*\sphinxfigcaption - {\ifx\equation$%$% this is trick to identify tabulary first pass - \firstchoice@false\else\firstchoice@true\fi - \spx@originalcaption } -\newcommand*\sphinxsetvskipsforfigintablecaption - {\abovecaptionskip\smallskipamount - \belowcaptionskip\smallskipamount} - -\endinput diff --git a/docs/build/latex/sphinxlatexindbibtoc.sty b/docs/build/latex/sphinxlatexindbibtoc.sty deleted file mode 100644 index 052d31e..0000000 --- a/docs/build/latex/sphinxlatexindbibtoc.sty +++ /dev/null @@ -1,69 +0,0 @@ -%% INDEX, BIBLIOGRAPHY, APPENDIX, TABLE OF CONTENTS -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexindbibtoc}[2021/01/27 index, bib., toc] - -% Provides support for this output mark-up from Sphinx latex writer: -% -% - environments: (backup defaults or get redefined) -% -% - sphinxtheindex (direct mark-up or via python.ist or sphinx.xdy) -% - sphinxthebibliography -% -% - macros: (defines defaults) -% -% - \sphinxmaketitle -% - \sphinxtableofcontents -% - \sphinxnonalphabeticalgroupname -% - \sphinxsymbolsname -% - \sphinxnumbersname -% - \sphinxcite -% -% Requires: -\RequirePackage{makeidx} - -% fix the double index and bibliography on the table of contents -% in jsclasses (Japanese standard document classes) -\ifx\@jsc@uplatextrue\@undefined\else - \renewenvironment{sphinxtheindex} - {\cleardoublepage\phantomsection - \begin{theindex}} - {\end{theindex}} - - \renewenvironment{sphinxthebibliography}[1] - {\cleardoublepage% \phantomsection % not needed here since TeXLive 2010's hyperref - \begin{thebibliography}{#1}} - {\end{thebibliography}} -\fi - -% disable \@chappos in Appendix in pTeX -\ifx\kanjiskip\@undefined\else - \let\py@OldAppendix=\appendix - \renewcommand{\appendix}{ - \py@OldAppendix - \gdef\@chappos{} - } -\fi - -% make commands known to non-Sphinx document classes -\providecommand*{\sphinxmaketitle}{\maketitle} -\providecommand*{\sphinxtableofcontents}{\tableofcontents} -\ltx@ifundefined{sphinxthebibliography} - {\newenvironment - {sphinxthebibliography}{\begin{thebibliography}}{\end{thebibliography}}% - } - {}% else clause of \ltx@ifundefined -\ltx@ifundefined{sphinxtheindex} - {\newenvironment{sphinxtheindex}{\begin{theindex}}{\end{theindex}}}% - {}% else clause of \ltx@ifundefined - -% for usage with xindy: this string gets internationalized in preamble -\newcommand*{\sphinxnonalphabeticalgroupname}{} -% redefined in preamble, headings for makeindex produced index -\newcommand*{\sphinxsymbolsname}{} -\newcommand*{\sphinxnumbersname}{} - -\protected\def\sphinxcite{\cite} - - -\endinput diff --git a/docs/build/latex/sphinxlatexlists.sty b/docs/build/latex/sphinxlatexlists.sty deleted file mode 100644 index 4db3af2..0000000 --- a/docs/build/latex/sphinxlatexlists.sty +++ /dev/null @@ -1,131 +0,0 @@ -%% ALPHANUMERIC LIST ITEMS -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexlists}[2021/12/20 lists] - -% Provides support for this output mark-up from Sphinx latex writer: -% - \sphinxsetlistlabels -% - \sphinxlineitem -% and for the maxlistdepth key of sphinxsetup -% Dependencies: the \spx@opt@maxlistdepth from sphinx.sty - -% We need some helpers macros -\newtoks\spx@lineitemlabel -\long\def\sphinx@gobto@sphinxlineitem#1\sphinxlineitem{} -% TeX/LaTeX has no (easy to use) built-in "peek-ahead" mechanism, but -% we would like to know if next token is another \sphinxlineitem (this -% can happen in glossary entries with multiple terms for same definition) -% so we simply grab next token (assuming it is not {tokens} originally) -\newcommand\sphinxlineitem[2]{% - % safe test of whether #2 is \sphinxlineitem - \sphinx@gobto@sphinxlineitem#2\@gobbletwo\sphinxlineitem\unless - \iftrue - % case with sphinxlineitem immediately followed by another \sphinxlineitem: - % accumulate successive terms until actual definition or sub-list is found - \spx@lineitemlabel\expandafter{\the\spx@lineitemlabel\strut#1\\}% - \else - % now issue the \item command with possibly multi-line contents - % these weird incantations with \kern are related to how LaTeX - % handles \item generally - \item[\kern\labelwidth\kern-\itemindent\kern-\leftmargin - {\parbox[t]{\dimexpr\linewidth+\leftmargin\relax}{% - \raggedright - \the\spx@lineitemlabel% accumulated terms before this one, CR separated - \strut#1}}% due to LaTeX internals no \par token allowed here, - % but the \parbox will insert one tacitly at end - \kern-\labelsep]% - \spx@lineitemlabel{}% - % this causes the label to be typeset (filling up the line), clearing up - % things in case a nested list follows. - \leavevmode - \fi #2% -}% - - -\newcommand\sphinxsetlistlabels[5] -{% #1 = style, #2 = enum, #3 = enumnext, #4 = prefix, #5 = suffix - % #2 and #3 are counters used by enumerate environment e.g. enumi, enumii. - % #1 is a macro such as \arabic or \alph - % prefix and suffix are strings (by default empty and a dot). - \@namedef{the#2}{#1{#2}}% - \@namedef{label#2}{#4\@nameuse{the#2}#5}% - \@namedef{p@#3}{\@nameuse{p@#2}#4\@nameuse{the#2}#5}% -}% - - -%% MAXLISTDEPTH -% -% remove LaTeX's cap on nesting depth if 'maxlistdepth' key used. -% This is a hack, which works with the standard classes: it assumes \@toodeep -% is always used in "true" branches: "\if ... \@toodeep \else .. \fi." - -% will force use the "false" branch (if there is one) -\def\spx@toodeep@hack{\fi\iffalse} - -% do nothing if 'maxlistdepth' key not used or if package enumitem loaded. -\ifnum\spx@opt@maxlistdepth=\z@\expandafter\@gobbletwo\fi -\AtBeginDocument{% -\@ifpackageloaded{enumitem}{\remove@to@nnil}{}% - \let\spx@toodeepORI\@toodeep - \def\@toodeep{% - \ifnum\@listdepth<\spx@opt@maxlistdepth\relax - \expandafter\spx@toodeep@hack - \else - \expandafter\spx@toodeepORI - \fi}% -% define all missing \@list... macros - \count@\@ne - \loop - \ltx@ifundefined{@list\romannumeral\the\count@} - {\iffalse}{\iftrue\advance\count@\@ne}% - \repeat - \loop - \ifnum\count@>\spx@opt@maxlistdepth\relax\else - \expandafter\let - \csname @list\romannumeral\the\count@\expandafter\endcsname - \csname @list\romannumeral\the\numexpr\count@-\@ne\endcsname - % workaround 2.6--3.2d babel-french issue (fixed in 3.2e; no change needed) - \ltx@ifundefined{leftmargin\romannumeral\the\count@} - {\expandafter\let - \csname leftmargin\romannumeral\the\count@\expandafter\endcsname - \csname leftmargin\romannumeral\the\numexpr\count@-\@ne\endcsname}{}% - \advance\count@\@ne - \repeat -% define all missing enum... counters and \labelenum... macros and \p@enum.. - \count@\@ne - \loop - \ltx@ifundefined{c@enum\romannumeral\the\count@} - {\iffalse}{\iftrue\advance\count@\@ne}% - \repeat - \loop - \ifnum\count@>\spx@opt@maxlistdepth\relax\else - \newcounter{enum\romannumeral\the\count@}% - \expandafter\def - \csname labelenum\romannumeral\the\count@\expandafter\endcsname - \expandafter - {\csname theenum\romannumeral\the\numexpr\count@\endcsname.}% - \expandafter\def - \csname p@enum\romannumeral\the\count@\expandafter\endcsname - \expandafter - {\csname p@enum\romannumeral\the\numexpr\count@-\@ne\expandafter - \endcsname\csname theenum\romannumeral\the\numexpr\count@-\@ne\endcsname.}% - \advance\count@\@ne - \repeat -% define all missing labelitem... macros - \count@\@ne - \loop - \ltx@ifundefined{labelitem\romannumeral\the\count@} - {\iffalse}{\iftrue\advance\count@\@ne}% - \repeat - \loop - \ifnum\count@>\spx@opt@maxlistdepth\relax\else - \expandafter\let - \csname labelitem\romannumeral\the\count@\expandafter\endcsname - \csname labelitem\romannumeral\the\numexpr\count@-\@ne\endcsname - \advance\count@\@ne - \repeat - \PackageInfo{sphinx}{maximal list depth extended to \spx@opt@maxlistdepth}% -\@gobble\@nnil -} - -\endinput diff --git a/docs/build/latex/sphinxlatexliterals.sty b/docs/build/latex/sphinxlatexliterals.sty deleted file mode 100644 index 11991d9..0000000 --- a/docs/build/latex/sphinxlatexliterals.sty +++ /dev/null @@ -1,1000 +0,0 @@ -%% LITERAL BLOCKS -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexliterals}[2024/07/01 v7.4.0 code-blocks and parsed literals] - -% Provides support for this output mark-up from Sphinx latex writer: -% -% - macros: -% - \sphinxLiteralBlockLabel -% - \sphinxSetupCaptionForVerbatim -% - \sphinxSetupCodeBlockInFootnote -% - \sphinxhref -% - \sphinxnolinkurl -% - \sphinxresetverbatimhllines -% - \sphinxunactivateextrasandspace -% - \sphinxupquote -% - \sphinxurl -% -% - environments: -% - sphinxVerbatim -% - sphinxVerbatimintable -% - sphinxalltt -% -% Dependency: -% -% - hyperref (for \phantomsection and \capstart) (loaded later) -% -% Executes \RequirePackage for: -% -% - framed -% - fancyvrb -% - alltt -% - upquote -% - needspace -% - sphinxpackageboxes -\RequirePackage{sphinxpackageboxes} -% 7.4.0 removes unneeded usage of \spx@boxes@border - -% also in sphinxlatexadmonitions.sty: -% This is a workaround to a "feature" of French lists, when literal block -% follows immediately; usable generally (does only \par then), a priori... -\providecommand*\sphinxvspacefixafterfrenchlists{% - \ifvmode\ifdim\lastskip<\z@ \vskip\parskip\fi\else\par\fi -} - -% For framing allowing pagebreaks -\RequirePackage{framed} -% For source code -% MEMO: fancyvrb is used mainly to -% 1- control horizontal and vertical spacing -% 2- optional line numbering -% 3- optional line emphasizing -% 4- while still allowing expansion of Pygments latex mark-up -% Other aspects such as framing, caption handling, codeline wrapping are -% added on top of it. We should stop using fancyvrb and implement -% 1, 2, 3, 4 by own Sphinx fully native Verbatim. This would greatly simplify -% in particular wrapping long code lines in a way allowing page breaks. -\RequirePackage{fancyvrb} -% For parsed-literal blocks. -\RequirePackage{alltt} -% Display "real" single quotes in literal blocks. -\RequirePackage{upquote} -% Skip to next page if not enough space at bottom -\RequirePackage{needspace} - -% Based on use of "fancyvrb.sty"'s Verbatim. -% - with framing allowing page breaks ("framed.sty") -% - with breaking of long lines (exploits Pygments mark-up), -% - with possibly of a top caption, non-separable by pagebreak. -% - and usable inside tables or footnotes ("sphinxpackagefootnote.sty"). - -% for emphasizing lines -\define@key{FV}{hllines}{\def\sphinx@verbatim@checkifhl##1{\in@{, ##1,}{#1}}} -% sphinxVerbatim must be usable by third party without requiring hllines set-up -\def\sphinxresetverbatimhllines{\def\sphinx@verbatim@checkifhl##1{\in@false}} -\sphinxresetverbatimhllines - -% Prior to Sphinx 1.5, \Verbatim and \endVerbatim were modified by Sphinx. -% The aliases defined here are used in sphinxVerbatim environment and can -% serve as hook-points with no need to modify \Verbatim itself. -\let\OriginalVerbatim \Verbatim -\let\endOriginalVerbatim\endVerbatim - -% for captions of literal blocks -% at start of caption title -\newcommand*{\fnum@literalblock}{\literalblockname\nobreakspace\theliteralblock} -% this will be overwritten in document preamble by Babel translation -\newcommand*{\literalblockname}{Listing } -% file extension needed for \caption's good functioning, the file is created -% only if a \listof{literalblock}{foo} command is encountered, which is -% analogous to \listoffigures, but for the code listings (foo = chosen title.) -\newcommand*{\ext@literalblock}{lol} - -% if forced use of minipage encapsulation is needed (e.g. table cells) -\newif\ifsphinxverbatimwithminipage \sphinxverbatimwithminipagefalse - -% Framing macro for use with framed.sty's \FrameCommand -% MEMO: the sophisticated code in \spx@fcolorbox/\spx@CustomFBox -% is here for good reasons -% - be responsive to indented list environments in the manner of -% the "framed" (\fbox) and "shaded" (\colorbox) environments of -% framed.sty; indeed code here is an evolution related to \fcolorbox -% - attach non-detachable continuation hints above/below frame -% - draw the frame and fill the background color in a manner avoiding -% problems in some pdf viewers -% - do background coloring differently from color.sty/xcolor.sty macros -% (even core internal ones) to work around issues at page breaks -% as the framed contents are split into chunks with possibly unpaired -% "color push" or "color pop" -% About the produced output: -% - it obeys current indentation, -% - frame with 4 padding parameters and 4 border-width parameters -% - the contents use the full available text width, limited by indentation, -% - #1 = will be typeset above frame, in a non detachable way, -% - #2 = will be typeset below frame, in a non detachable way, -% - #3 = will be typeset within the frame. -% #1 and #2 are expected to be already typeset \hbox'es. -% #3 are the contents, and in the context of usage of fancyvrb+framed, -% it will arrive here already transformed into horizontal boxes, -% interline penalties and glues. -% -\long\def\spx@verb@FrameCommand #1#2#3{% - % The \spx@verb@boxes@fcolorbox@setup MUST have been executed beforehand. - % These \hskips are for fancyvrb.sty measuring and will make the - % framing "adapt" to an indented context. - \hskip\@totalleftmargin - \hskip-\spx@boxes@border@left\hskip-\spx@boxes@padding@left - \spx@verb@fcolorbox {#1}{#2}{#3}% - \hskip-\spx@boxes@padding@right\hskip-\spx@boxes@border@right - \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth -}% -\long\def\spx@verb@fcolorbox #1#2#3{% - % The \spx@verb@boxes@fcolorbox@setup MUST have been executed beforehand. -% - % MEMO: in the context of framed.sty this will always expand inside some - % \hbox isolated from other code, so we can use \box\z@, \box\tw@,... - % with no need of extra group. -% - % MEMO: this code was originally using \color@b@x but the latter has - % problematic features regarding color in a context like here where #3 - % may contain an unbalanced "color push". -% - \setbox\z@\hbox{#3}% - \edef\spx@verb@fcolorbox@width@sp - {\number\dimexpr\wd\z@+\spx@boxes@border@left - +\spx@boxes@padding@left - +\spx@boxes@padding@right - +\spx@boxes@border@right\relax sp}% - \vbox{#1% continuation hint attached above frame, uses \spx@verb@fcolorbox@width@sp - % the boxes@fcolorbox constructs an \hbox with bbox containing the border - % \spx@verb@boxes@fcolorbox@setup MUST have been executed beforehand. - \spx@boxes@fcolorbox{\box\z@}% - % This \nointerlineskip to maintain legacy spacing when a \hrule was - % formerly last prior item in vertical list. TODO: remove this at 6.0.0 ? - \nointerlineskip - #2% continuation hint attached below frame, uses \spx@verb@fcolorbox@width@sp - }% end of \vbox -}% -\def\spx@verb@fcolorbox@put@c#1{% hide width from framed.sty measuring - \moveright.5\dimexpr\spx@verb@fcolorbox@width@sp\hb@xt@\z@{\hss#1\hss}% -}% -\def\spx@verb@fcolorbox@put@r#1{% right align with contents, width hidden - \moveright\dimexpr\spx@verb@fcolorbox@width@sp-% - \spx@boxes@padding@right-% - \spx@boxes@border@right\hb@xt@\z@{\hss#1}% -}% -\def\spx@verb@fcolorbox@put@l#1{% left align with contents, width hidden - \moveright\dimexpr\spx@boxes@border@left+% - \spx@boxes@padding@left\hb@xt@\z@{#1\hss}% -}% -% -\def\sphinxVerbatim@Continued{% - \csname spx@verb@fcolorbox@put@\spx@opt@verbatimcontinuedalign\endcsname - {{\normalcolor\sphinxstylecodecontinued\literalblockcontinuedname}}% -}% -\def\sphinxVerbatim@Continues{% - \csname spx@verb@fcolorbox@put@\spx@opt@verbatimcontinuesalign\endcsname - {{\normalcolor\sphinxstylecodecontinues\literalblockcontinuesname}}% -}% -\def\sphinxVerbatim@Title{% - \spx@verb@fcolorbox@put@c{\unhcopy\sphinxVerbatim@TitleBox}% -}% -\let\sphinxVerbatim@Before\@empty -\let\sphinxVerbatim@After\@empty -% Defaults are redefined in document preamble according to language -\newcommand*\literalblockcontinuedname{continued from previous page}% -\newcommand*\literalblockcontinuesname{continues on next page}% -% -\def\sphinxVerbatim@FrameCommand{% - \spx@verb@FrameCommand\sphinxVerbatim@Before\sphinxVerbatim@After -}% -\def\sphinxVerbatim@FirstFrameCommand{% - \ifspx@pre@border@open - \spx@boxes@fcolorbox@setup@openbottom - \fi - \spx@verb@FrameCommand\sphinxVerbatim@Before\sphinxVerbatim@Continues -}% -\def\sphinxVerbatim@MidFrameCommand{% - \ifspx@pre@border@open - \spx@boxes@fcolorbox@setup@openboth - \fi - \spx@verb@FrameCommand\sphinxVerbatim@Continued\sphinxVerbatim@Continues -}% -\def\sphinxVerbatim@LastFrameCommand{% - \ifspx@pre@border@open - \spx@boxes@fcolorbox@setup@opentop - \fi - \spx@verb@FrameCommand\sphinxVerbatim@Continued\sphinxVerbatim@After -}% -% -\def\spx@verb@boxes@fcolorbox@setup{% - % Prepares usage of \spx@boxes@fcolorbox - % Extras to remap legacy color names VerbatimBorderColor and VerbatimColor - % to a common naming scheme with admonitions (and topic directive), as - % expected by \spx@boxes@fcolorbox@setup from sphinxpackageboxes.sty. - \sphinxcolorlet{sphinxpreBorderColor}{VerbatimBorderColor}% - \sphinxcolorlet{sphinxpreBgColor}{VerbatimColor}% - % This VerbatimShadowColor is not a legacy name nor user documented but is - % an outcome of sphinx.sty batch definitions for CSS option support. - \sphinxcolorlet{sphinxpreShadowColor}{VerbatimShadowColor}% - \spx@boxes@fcolorbox@setup{pre}% - \ifspx@opt@verbatimwithframe - \else - \spx@boxes@border@top\z@ - \spx@boxes@border@right\z@ - \spx@boxes@border@bottom\z@ - \spx@boxes@border@left\z@ - % MEMO: rounded corners still make sense in presence of a background - % color, so we do not force the fcolorbox@rectangle here - \fi -}% - -% For linebreaks inside Verbatim environment from package fancyvrb. -\newbox\sphinxcontinuationbox -\newbox\sphinxvisiblespacebox -\newcommand*\sphinxafterbreak {\copy\sphinxcontinuationbox} - -% Take advantage of the already applied Pygments mark-up to insert -% potential linebreaks for TeX processing. -% {, <, #, %, $, ' and ": go to next line. -% _, }, ^, &, >, -, ~, and \: stay at end of broken line. -% Use of \textquotesingle for straight quote. -% FIXME: convert this to package options ? -\newcommand*\sphinxbreaksbeforelist {% - \do\PYGZob\{\do\PYGZlt\<\do\PYGZsh\#\do\PYGZpc\%% {, <, #, %, - \do\PYGZdl\$\do\PYGZdq\"% $, " - \def\PYGZsq - {\discretionary{}{\sphinxafterbreak\textquotesingle}{\textquotesingle}}% ' -} -\newcommand*\sphinxbreaksafterlist {% - \do\PYGZus\_\do\PYGZcb\}\do\PYGZca\^\do\PYGZam\&% _, }, ^, &, - \do\PYGZgt\>\do\PYGZhy\-\do\PYGZti\~% >, -, ~ - \do\PYGZbs\\% \ -} -\newcommand*\sphinxbreaksatspecials {% - \def\do##1##2% - {\def##1{\discretionary{}{\sphinxafterbreak\char`##2}{\char`##2}}}% - \sphinxbreaksbeforelist - \def\do##1##2% - {\def##1{\discretionary{\char`##2}{\sphinxafterbreak}{\char`##2}}}% - \sphinxbreaksafterlist -} - -\def\sphinx@verbatim@nolig@list {\do \`}% -% Some characters . , ; ? ! / are neither pygmentized nor "tex-escaped". -% This macro makes them "active" and they will insert potential linebreaks. -% Not compatible with math mode (cf \sphinxunactivateextras, which uses -% these lists to make sure activated characters get de-activated). -\newcommand*\sphinxbreaksbeforeactivelist {}% none -\newcommand*\sphinxbreaksafteractivelist {\do\.\do\,\do\;\do\?\do\!\do\/} -\newcommand*\sphinxbreaksviaactive {% - \def\do##1{\lccode`\~`##1% - \lowercase{\def~}{\discretionary{}{\sphinxafterbreak\char`##1}{\char`##1}}% - \catcode`##1\active}% - \sphinxbreaksbeforeactivelist - \def\do##1{\lccode`\~`##1% - \lowercase{\def~}{\discretionary{\char`##1}{\sphinxafterbreak}{\char`##1}}% - \catcode`##1\active}% - \sphinxbreaksafteractivelist - \lccode`\~`\~ -} - -% If the linebreak is at a space, the latter will be displayed as visible -% space at end of first line, and a continuation symbol starts next line. -\def\spx@verbatim@space {% - \nobreak\hskip\z@skip - \discretionary{\copy\sphinxvisiblespacebox}{\sphinxafterbreak} - {\kern\fontdimen2\font}% -}% - -% if the available space on page is less than \literalblockneedspace, insert pagebreak -\newcommand{\sphinxliteralblockneedspace}{5\baselineskip} -\newcommand{\sphinxliteralblockwithoutcaptionneedspace}{1.5\baselineskip} -% The title (caption) is specified from outside as macro \sphinxVerbatimTitle. -% \sphinxVerbatimTitle is reset to empty after each use of Verbatim. -\newcommand*\sphinxVerbatimTitle {} -% This box to typeset the caption before framed.sty multiple passes for framing. -\newbox\sphinxVerbatim@TitleBox -% This box to measure contents if nested as inner \MakeFramed requires then -% minipage encapsulation but too long contents then break outer \MakeFramed -\newbox\sphinxVerbatim@ContentsBox -% Holder macro for labels of literal blocks. Set-up by LaTeX writer. -\newcommand*\sphinxLiteralBlockLabel {} -\newcommand*\sphinxSetupCaptionForVerbatim [1] -{% - \sphinxvspacefixafterfrenchlists - \needspace{\sphinxliteralblockneedspace}% -% insert a \label via \sphinxLiteralBlockLabel -% reset to normal the color for the literal block caption - \def\sphinxVerbatimTitle - {\py@NormalColor\sphinxcaption{\sphinxLiteralBlockLabel #1}}% -} -\newcommand*\sphinxSetupCodeBlockInFootnote {% - \fvset{fontsize=\footnotesize}\let\caption\sphinxfigcaption - \sphinxverbatimwithminipagetrue % reduces vertical spaces - % we counteract (this is in a group) the \@normalsize from \caption - \let\normalsize\footnotesize\let\@parboxrestore\relax - \def\spx@abovecaptionskip{\sphinxverbatimsmallskipamount}% -} -\newcommand*{\sphinxverbatimsmallskipamount}{\smallskipamount} -% serves to implement line highlighting -\newcommand\sphinxFancyVerbFormatLine[1]{% - \expandafter\sphinx@verbatim@checkifhl\expandafter{\the\FV@CodeLineNo}% - \ifin@ - \sphinxVerbatimHighlightLine{#1}% - \else - \sphinxVerbatimFormatLine{#1}% - \fi -}% -\let\spx@original@set@color\set@color -\newcommand\sphinxVerbatimHighlightLine[1]{% -% This is morally a \colorbox (with a \fboxsep which would be 0pt) -% but some issues of potential colour disappearance at pagebreaks -% require workaround such as the one done here. - \leavevmode - % MEMO: usage of original \colorbox would insert a \set@color here - % and this then places a "color pop" at the end of the \box\z@. - % But this could pair erroneously with an unmatched "color push" - % as #1 is maybe only a part (already hboxed) of a codeline - % if (default) verbatimwrapslines=true - % (cf \spx@verb@@PreProcessLine; refs: #8686) - % MEMO: formerly we did something with \fboxsep in relation to the LaTeX - % bug graphics/4524 for \colorbox, but as we don't use \colorbox... - \setbox\z@\hb@xt@\linewidth{\strut#1\hss}% - % MEMO: \colorbox would lead to \color{sphinxVerbatimHighlightColor} - % plus \color@block, which results in doubled (a color.sty feature) - % color command send to device driver and more importantly has - % a "color pop" which will be after \box\z@. We avoid that for reasons - % mentioned above. - {% - \def\set@color{\let\set@color\spx@original@set@color}% - % will only set \current@color and delay the \set@color to \color@block - % as this all happens inside fancyvrb nested \hbox'es. - \color{sphinxVerbatimHighlightColor}% - % will use \current@color and pop it **before** \box\z@ - \color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@ - }% - % we added a group only for \FV@RightListNumber not be influenced by the - % \current@color, if \fvset has been used to set numbers to the right. -}% -% MEMO: fancyvrb has options obeytabs and tabsize. Anyhow tab characters -% do not make it to the tex file, they have been converted to spaces earlier. -% But, if this was not the case, the support would be implemented here via -% \newcommand\sphinxVerbatimFormatLine[1]{\FV@ObeyTabs{\strut #1}}% -\newcommand\sphinxVerbatimFormatLine[1]{\strut#1}% -% MEMO: if verbatimwrapslines is set to true (default) the #1 above is -% simply \box\spx@tempboxb, from the next two macros. -% The next two macros are a deep hack of fancyvrb.sty core line processing in -% order to wrap too long lines, either at spaces and natural break-points, -% (soft wrap) or optionally at any character (hard wrap). This requires deep -% hack to work around the \hbox'es wrappers of fancyvrb.sty as they would -% prevent page breaks. Formerly Sphinx obtained wrapping by inserting the -% material into a vertical box (which was later again boxed -- twice -- by -% fancyvrb thinking it was a single line...) but this was incompatible with -% allowing page breaks (refs: #8686). -% We use core TeX techniques to pre-process a paragraph then recover its -% constituents lines (as boxes, not as tokens) and hand them over to original -% fancyvrb line process. It is mandatory to update \FV@ProcessLine and -% \@tempboxa globally to get fancyvrb internals into working to our -% satisfaction. -% This will get disrupted if anything adding vertical penalties or glues -% is activated via some \vadjust from inside the Pygmentized code lines. -\def\spx@verb@@ProcessLines{% - \unskip - \unpenalty - \setbox\spx@tempboxb\lastbox -\ifvoid\spx@tempboxb\else - {\spx@verb@@ProcessLines}% - \FV@ProcessLine{\box\spx@tempboxb}% - \global\let\FV@ProcessLine\FV@ProcessLine - \global\setbox\@tempboxa=\box\@tempboxa - \aftergroup\spx@verb@@InhibitLineNumber -\fi -}% -\def\spx@verb@@InhibitLineNumber{% - \let\FV@LeftListNumber\relax - \let\FV@RightListNumber\relax -}% -% This will replace fancyvrb's \FV@@PreProcessLine -% Instead of boxing \FV@Line (which contains the Pygmentized line tokens), we -% first typeset it in a vertical box of the suitable width (taking into -% account nested lists) to activate the TeX built-in paragraph builder, then -% we recover individual lines as horizontal boxes and feed them to fancyvrb -% native line processing (which may add line numbers). The interline -% penalties and vertical glue to maintain baseline distance will be added -% again by this process so in recursive \spx@verb@@ProcessLines which starts -% from bottom and makes its way up to first part of the wrapped line we do not -% need to worry about them. An additional initial measuring step is needed if -% user issued verbatimforcewraps=true, which elaborates on the same technique. -% If hard wraps get activated, they get implemented via hacked \PYG macros. -\def\spx@verb@@PreProcessLine{% - \FV@StepLineNo - \FV@Gobble - \def\spx@verb@FV@Line{\FV@Line}% - \ifspx@opt@verbatimforcewraps - \spx@verb@DecideIfWillDoForceWrap - \fi -% MEMO: \everypar{} was issued earlier (and due to \@setminipage -% would have been only \@minipagefalse\everypar{} otherwise). - \setbox\spx@tempboxa=\vtop{\hsize\linewidth - \raggedright\hyphenpenalty\z@\exhyphenpenalty\z@ - \doublehyphendemerits\z@\finalhyphendemerits\z@ -% MEMO: fancyvrb has options obeytabs and tabsize. Anyhow tab characters -% do not make it to the tex file, they have been converted to spaces earlier. -% But, if this was not the case, the support would be implemented here via -% \FV@ObeyTabs{\strut\spx@verb@FV@Line\strut}% -% And one would need a similar change in the measuring phase done by -% \spx@verb@DecideIfWillDoForceWrap - \strut\spx@verb@FV@Line\strut -% MEMO: since LaTeX 2021-06-01, there might be some hooks executed at -% start and end of paragraphs (in future: PDF tagging), but we need an -% explicit \par here for that. Else the kernel hooks at start of paragraph -% are executed but not the ones at its end. - \par - }% - \setbox\spx@tempboxa=\vtop{\unvbox\spx@tempboxa - \setbox\spx@tempboxb\lastbox - {\spx@verb@@ProcessLines}% - \FV@ProcessLine{\box\spx@tempboxb}% - \global\let\FV@ProcessLine\FV@ProcessLine - \global\setbox\@tempboxa=\box\@tempboxa - }% - \unvbox\spx@tempboxa -}% -% -% The normal line wrapping allows breaks at spaces and ascii non -% letters, non digits. The \raggedright above means there will be -% an overfilled line only if some non-breakable "word" was -% encountered, which is longer than a line (it is moved always to -% be on its own on a new line). -% -% The "forced" line wrapping will parse the tokens to add potential -% breakpoints at each character. As some strings are highlighted, -% we have to apply the highlighting character per character, which -% requires to manipulate the output of the Pygments LaTeXFormatter. -% -% Doing this at latex level is complicated. The contents should -% be as expected: i.e. some active characters from -% \sphinxbreaksviaactive, some Pygments character escapes such as -% \PYGZdl{}, and the highlighting \PYG macro with always 2 -% arguments. No other macros should be there, except perhaps -% zero-parameter macros. In particular: -% - the texcomments Pygments option must be set to False -% -% With pdflatex, Unicode input gives multi-bytes characters -% where the first byte is active. We support the "utf8" macros -% only. "utf8x" is not supported. -% -% The highlighting macro \PYG will be applied character per -% character. Highlighting via a colored background gives thus a -% chain of small colored boxes which may cause some artefact in -% some pdf viewers. Can't do anything here if we do want the line -% break to be possible. -% -% First a measurement step is done of what would the standard line -% wrapping give (i.e line breaks only at spaces and non-letter, -% non-digit ascii characters), cf TeX by Topic for the basic -% dissecting technique: TeX unfortunately when building a vertical -% box does not store in an accessible way what was the maximal -% line-width during paragraph building. -% -% MEMO: in future use perhaps rather \RawNoindent/\RawParEnd, but -% ltpara (LaTeX 2021-06-01) is not yet in final form (June 2022). -% -% Avoid LaTeX 2021 alteration of \@@par which potentially could break our -% measurement step (typically if the para/after hook is configured to use -% \vspace). Of course, breakage could happen only from user or package -% adding things to basic Sphinx latex. And perhaps spring LaTeX 2021 will -% provide a non-hooked \@@par, but this should work anyway and can't be -% beaten for speed. -\ltx@ifundefined{tex_par:D} -% We could use \@ifl@t@r\fmtversion{2020/02/02}{use \tex_par:D}{use \@@par}. - {\let\spx@par\@@par}% \@@par is then expected to be TeX's original \par - {\expandafter\let\expandafter\spx@par\csname tex_par:D\endcsname} -% More hesitation for avoiding the at-start-of-par hooks for our -% measurement : 1. with old LaTeX, we can not avoid hooks from everyhook -% or similar packages, 2. and perhaps the hooks add stuff which we should -% actually measure. Ideally, hooks are for inserting things in margin -% which do not change spacing. Most everything else in fact should not be -% executed in our scratch box for measurement, such as counter stepping. -\ltx@ifundefined{tex_everypar:D} - {\let\spx@everypar\everypar} - {\expandafter\let\expandafter\spx@everypar\csname tex_everypar:D\endcsname} -% -% If the max width exceeds the linewidth by more than verbatimmaxoverfull -% character widths, or if the min width plus verbatimmaxunderfull character -% widths is inferior to linewidth, then we apply the "force wrapping" with -% potential line break at each character, else we don't. -\long\def\spx@verb@DecideIfWillDoForceWrap{% - \global\let\spx@verb@maxwidth\z@ - \global\let\spx@verb@minwidth\linewidth - \setbox\spx@tempboxa - \vtop{\raggedright\hyphenpenalty\z@\exhyphenpenalty\z@ - \doublehyphendemerits\z@\finalhyphendemerits\z@ -% Avoid TeX reporting Overfull \hbox'es during this measuring phase. Setting -% \hbadness to \@M to avoid Underfull reports is unneeded due to \raggedright. - \hfuzz\maxdimen - \spx@everypar{}\noindent\strut\FV@Line\strut\spx@par - \spx@verb@getwidths}% - \ifdim\spx@verb@maxwidth> - \dimexpr\linewidth+\spx@opt@verbatimmaxoverfull\fontcharwd\font`X \relax -% The \expandafter is due to \spx@verb@wrapPYG requiring to "see" the TeX tokens -% from the pygmentize output. - \def\spx@verb@FV@Line{\expandafter\spx@verb@wrapPYG\FV@Line\spx@verb@wrapPYG}% - \else - \ifdim\spx@verb@minwidth< - \dimexpr\linewidth-\spx@opt@verbatimmaxunderfull\fontcharwd\font`X \relax - \def\spx@verb@FV@Line{\expandafter\spx@verb@wrapPYG\FV@Line\spx@verb@wrapPYG}% - \fi - \fi -}% -% auxiliary paragraph dissector to get max and min widths -% but minwidth must not take into account the last line -\def\spx@verb@getwidths {% - \unskip\unpenalty - \setbox\spx@tempboxb\lastbox - \ifvoid\spx@tempboxb - \else - \setbox\spx@tempboxb\hbox{\unhbox\spx@tempboxb}% - \ifdim\spx@verb@maxwidth<\wd\spx@tempboxb - \xdef\spx@verb@maxwidth{\number\wd\spx@tempboxb sp}% - \fi - \expandafter\spx@verb@getwidths@loop - \fi -}% -\def\spx@verb@getwidths@loop {% - \unskip\unpenalty - \setbox\spx@tempboxb\lastbox - \ifvoid\spx@tempboxb - \else - \setbox\spx@tempboxb\hbox{\unhbox\spx@tempboxb}% - \ifdim\spx@verb@maxwidth<\wd\spx@tempboxb - \xdef\spx@verb@maxwidth{\number\wd\spx@tempboxb sp}% - \fi - \ifdim\spx@verb@minwidth>\wd\spx@tempboxb - \xdef\spx@verb@minwidth{\number\wd\spx@tempboxb sp}% - \fi - \expandafter\spx@verb@getwidths@loop - \fi -}% -% auxiliary macros to implement "cut long line even in middle of word" -\catcode`Z=3 % safe delimiter -\def\spx@verb@wrapPYG{% - \futurelet\spx@nexttoken\spx@verb@wrapPYG@i -}% -\def\spx@verb@wrapPYG@i{% - \ifx\spx@nexttoken\spx@verb@wrapPYG\let\next=\@gobble\else - \ifx\spx@nexttoken\PYG\let\next=\spx@verb@wrapPYG@PYG@onebyone\else - \discretionary{}{\sphinxafterbreak}{}% - \let\next\spx@verb@wrapPYG@ii - \fi\fi - \next -}% -% Let's recognize active characters. We don't support utf8x only utf8. -% And here #1 should not have picked up (non empty) braced contents -\long\def\spx@verb@wrapPYG@ii#1{% - \ifcat\noexpand~\noexpand#1\relax% active character - \expandafter\spx@verb@wrapPYG@active - \else % non-active character, control sequence such as \PYGZdl, or empty - \expandafter\spx@verb@wrapPYG@one - \fi {#1}% -}% -\long\def\spx@verb@wrapPYG@active#1{% -% Let's hope expansion of active character does not really require arguments, -% as we certainly don't want to go into expanding upfront token stream anyway. - \expandafter\spx@verb@wrapPYG@iii#1{}{}{}{}{}{}{}{}{}Z#1% -}% -\long\def\spx@verb@wrapPYG@iii#1#2Z{% - \ifx\UTFviii@four@octets#1\let\next=\spx@verb@wrapPYG@four\else - \ifx\UTFviii@three@octets#1\let\next=\spx@verb@wrapPYG@three\else - \ifx\UTFviii@two@octets#1\let\next=\spx@verb@wrapPYG@two\else - \let\next=\spx@verb@wrapPYG@one - \fi\fi\fi - \next -}% -\long\def\spx@verb@wrapPYG@one #1{#1\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}% -\long\def\spx@verb@wrapPYG@two #1#2{#1#2\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}% -\long\def\spx@verb@wrapPYG@three #1#2#3{#1#2#3\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}% -\long\def\spx@verb@wrapPYG@four #1#2#3#4{#1#2#3#4\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}% -% Replace \PYG by itself applied one character at a time! This way breakpoints -% can be inserted. -\def\spx@verb@wrapPYG@PYG@onebyone#1#2#3{% #1 = \PYG, #2 = highlight spec, #3 = tokens - \def\spx@verb@wrapPYG@PYG@spec{{#2}}% - \futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i#3Z% -}% -\def\spx@verb@wrapPYG@PYG@i{% - \ifx\spx@nexttokenZ\let\next=\spx@verb@wrapPYG@PYG@done\else - \discretionary{}{\sphinxafterbreak}{}% - \let\next\spx@verb@wrapPYG@PYG@ii - \fi - \next -}% -\def\spx@verb@wrapPYG@PYG@doneZ{\futurelet\spx@nexttoken\spx@verb@wrapPYG@i}% -\long\def\spx@verb@wrapPYG@PYG@ii#1{% - \ifcat\noexpand~\noexpand#1\relax% active character - \expandafter\spx@verb@wrapPYG@PYG@active - \else % non-active character, control sequence such as \PYGZdl, or empty - \expandafter\spx@verb@wrapPYG@PYG@one - \fi {#1}% -}% -\long\def\spx@verb@wrapPYG@PYG@active#1{% -% Let's hope expansion of active character does not really require arguments, -% as we certainly don't want to go into expanding upfront token stream anyway. - \expandafter\spx@verb@wrapPYG@PYG@iii#1{}{}{}{}{}{}{}{}{}Z#1% -}% -\long\def\spx@verb@wrapPYG@PYG@iii#1#2Z{% - \ifx\UTFviii@four@octets#1\let\next=\spx@verb@wrapPYG@PYG@four\else - \ifx\UTFviii@three@octets#1\let\next=\spx@verb@wrapPYG@PYG@three\else - \ifx\UTFviii@two@octets#1\let\next=\spx@verb@wrapPYG@PYG@two\else - \let\next=\spx@verb@wrapPYG@PYG@one - \fi\fi\fi - \next -}% -\long\def\spx@verb@wrapPYG@PYG@one#1{% - \expandafter\PYG\spx@verb@wrapPYG@PYG@spec{#1}% - \futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i -}% -\long\def\spx@verb@wrapPYG@PYG@two#1#2{% - \expandafter\PYG\spx@verb@wrapPYG@PYG@spec{#1#2}% - \futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i -}% -\long\def\spx@verb@wrapPYG@PYG@three#1#2#3{% - \expandafter\PYG\spx@verb@wrapPYG@PYG@spec{#1#2#3}% - \futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i -}% -\long\def\spx@verb@wrapPYG@PYG@four#1#2#3#4{% - \expandafter\PYG\spx@verb@wrapPYG@PYG@spec{#1#2#3#4}% - \futurelet\spx@nexttoken\spx@verb@wrapPYG@PYG@i -}% -\catcode`Z 11 % -% -\g@addto@macro\FV@SetupFont{% - \sbox\sphinxcontinuationbox {\spx@opt@verbatimcontinued}% - \sbox\sphinxvisiblespacebox {\spx@opt@verbatimvisiblespace}% -}% -\newenvironment{sphinxVerbatim}{% - % first, let's check if there is a caption - \ifx\sphinxVerbatimTitle\empty - \sphinxvspacefixafterfrenchlists - \parskip\z@skip - \vskip\sphinxverbatimsmallskipamount - % there was no caption. Check if nevertheless a label was set. - \ifx\sphinxLiteralBlockLabel\empty\else - % we require some space to be sure hyperlink target from \phantomsection - % will not be separated from upcoming verbatim by a page break - \needspace{\sphinxliteralblockwithoutcaptionneedspace}% - \phantomsection\sphinxLiteralBlockLabel - \fi - \else - \parskip\z@skip - \if t\spx@opt@literalblockcappos - \vskip\spx@abovecaptionskip - \def\sphinxVerbatim@Before - {\sphinxVerbatim@Title\nointerlineskip - \kern\dimexpr-\dp\strutbox+\sphinxbelowcaptionspace - % MEMO: prior to 7.4.0 a test was done for presence or - % not of a frame and if not top padding was removed if - % no background color. A background color is now always - % assumed, so this got removed. - % caption package adds \abovecaptionskip vspace, remove it - \spx@ifcaptionpackage{-\abovecaptionskip}{}\relax}% - \else - \vskip\sphinxverbatimsmallskipamount - \def\sphinxVerbatim@After - {\nointerlineskip\kern\dimexpr\dp\strutbox - % MEMO: 7.4.0 removes here too an optional removal of bottom padding - \spx@ifcaptionpackage{-\abovecaptionskip}{}\relax - \sphinxVerbatim@Title}% - \fi - \def\@captype{literalblock}% - \capstart - % \sphinxVerbatimTitle must reset color - \setbox\sphinxVerbatim@TitleBox - \hbox{\begin{minipage}{\linewidth}% - % caption package may detect wrongly if top or bottom, so we help it - \spx@ifcaptionpackage - {\caption@setposition{\spx@opt@literalblockcappos}}{}% - \sphinxVerbatimTitle - \end{minipage}}% - \fi - \global\let\sphinxLiteralBlockLabel\empty - \global\let\sphinxVerbatimTitle\empty - % the "FrameCommand"'s are also responsible to attach the "Title". - \let\FrameCommand \sphinxVerbatim@FrameCommand - % those will also check status of the pre_box-decoration-break option - \let\FirstFrameCommand\sphinxVerbatim@FirstFrameCommand - \let\MidFrameCommand \sphinxVerbatim@MidFrameCommand - \let\LastFrameCommand \sphinxVerbatim@LastFrameCommand - % - \ifspx@opt@verbatimhintsturnover\else - \let\sphinxVerbatim@Continued\@empty - \let\sphinxVerbatim@Continues\@empty - \fi - % initialization for \spx@boxes@fcolorbox from sphinxpackageboxes.sty - % it will take into account status of verbatimwithframe Boolean - \spx@verb@boxes@fcolorbox@setup - \ifspx@opt@verbatimwrapslines - % deep hack into fancyvrb's internal processing of input lines - \let\FV@@PreProcessLine\spx@verb@@PreProcessLine - % space character will allow line breaks - \let\FV@Space\spx@verbatim@space - % allow breaks at special characters using \PYG... macros. - \sphinxbreaksatspecials - % breaks at punctuation characters . , ; ? ! and / (needs catcode activation) - \fvset{codes*=\sphinxbreaksviaactive}% - \fi - \let\FancyVerbFormatLine\sphinxFancyVerbFormatLine - \VerbatimEnvironment - % workaround to fancyvrb's check of current list depth - \def\@toodeep {\advance\@listdepth\@ne}% - % The list environment is needed to control perfectly the vertical space. - % Note: \OuterFrameSep used by framed.sty is later set to \topsep hence 0pt. - % - if caption: distance from last text baseline to caption baseline is - % A+(B-F)+\ht\strutbox, A = \abovecaptionskip (default 10pt), B = - % \baselineskip, F is the framed.sty \FrameHeightAdjust macro, default 6pt. - % Formula valid for F < 10pt. - % - distance of baseline of caption to top of frame is like for tables: - % \sphinxbelowcaptionspace (=0.5\baselineskip) - % - if no caption: distance of last text baseline to code frame is S+(B-F), - % with S = \sphinxverbatimtopskip (=\smallskip) - % - and distance from bottom of frame to next text baseline is - % \baselineskip+\parskip. - % The \trivlist is used to avoid possible "too deeply nested" error. - \itemsep \z@skip - \topsep \z@skip - \partopsep \z@skip - % trivlist will set \parsep to \parskip (which itself is set to zero above) - % \leftmargin will be set to zero by trivlist - \rightmargin\z@ - \parindent \z@% becomes \itemindent. Default zero, but perhaps overwritten. - \trivlist\item\relax - \ifspx@inframed\setbox\sphinxVerbatim@ContentsBox\vbox\bgroup - \@setminipage\hsize\linewidth - % use bulk of minipage paragraph shape restores (this is needed - % in indented contexts, at least for some) - \textwidth\hsize \columnwidth\hsize \@totalleftmargin\z@ - \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip - \else - \ifsphinxverbatimwithminipage\noindent\begin{minipage}{\linewidth}\fi - \MakeFramed {% adapted over from framed.sty's snugshade environment - \advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize\@setminipage - }% - \fi - % For grid placement from \strut's in \FancyVerbFormatLine - \lineskip\z@skip - % active comma should not be overwritten by \@noligs - \ifspx@opt@verbatimwrapslines - \let\verbatim@nolig@list \sphinx@verbatim@nolig@list - \fi - % optimization: as codelines will be handled inside boxes, \everypar is - % never reset, and it issues \@minipagefalse repeatedly (from \@setminipage). - % As fancyvrb Verbatim will do \@minipagefalse itself, let's simplify things. - \everypar{}% - \color@begingroup % protect against color leaks (upstream framed.sty bug) - \ifspx@pre@withtextcolor\color{VerbatimTextColor}\fi % mostly shadowed by - % Pygments highlighting anyhow - \spx@pre@TeXextras - % will fetch its optional arguments if any - \OriginalVerbatim -}% -{% - \endOriginalVerbatim - \color@endgroup % matches the \color@begingroup - \ifspx@inframed - \egroup % finish \sphinxVerbatim@ContentsBox vbox - \nobreak % update page totals -%%%% -% MEMO (2022/07/09, while preparing 5.1.0 LaTeX CSS-style sphinxsetup options) -% This test will systematically cause to abandon framing if the code-block -% is near bottom of a warning-type notice which TeX has not yet decided whether -% it fits on current page and which is near bottom of page. Indeed the -% \pagetotal will already be very near \pagegoal. This is probably a not -% intended behaviour, and perhaps the whole thing should be removed? Indeed -% the result is surprising then because the notice will be split, code-block -% will be on page 2 and will have no background-color, no border. - \ifdim\dimexpr - \ht\sphinxVerbatim@ContentsBox+ - \dp\sphinxVerbatim@ContentsBox+ - \ht\sphinxVerbatim@TitleBox+ - \dp\sphinxVerbatim@TitleBox+ - % 6.2.0 uses here the dimen registers from sphinxpackageboxes.sty, - % they got setup by \spx@verb@boxes@fcolorbox@setup - \spx@boxes@padding@top+ - \spx@boxes@padding@bottom+ - \ifspx@opt@verbatimwithframe \spx@boxes@border@top+ - \spx@boxes@border@bottom+\fi - % try to account for external frame parameters - % MEMO: this is because the sphinxheavybox (for warning admonitions) - % environment sets \FrameSep and \FrameRule - % TODO: fix this bad implicit dependency - \FrameSep+\FrameRule+ - % Usage here of 2 baseline distances is empirical. - % In border case where code-block fits barely in remaining space, - % it gets framed and looks good but the outer frame may continue - % on top of next page and give (if no contents after code-block) - % an empty framed line, as testing showed. - 2\baselineskip+ - % now add all to accumulated page totals and compare to \pagegoal - \pagetotal+\pagedepth>\pagegoal - % long contents: do not \MakeFramed. Do make a caption (either before or - % after) if title exists. Continuation hints across pagebreaks dropped. - % FIXME? a bottom caption may end up isolated at top of next page - % (no problem with a top caption, which is default) - \spx@opt@verbatimwithframefalse - \def\sphinxVerbatim@Title{\noindent\box\sphinxVerbatim@TitleBox\par}% - \sphinxVerbatim@Before - \noindent\unvbox\sphinxVerbatim@ContentsBox\par - \sphinxVerbatim@After - \else - % short enough contents: use \MakeFramed. As it is nested, this requires - % minipage encapsulation. - \noindent\begin{minipage}{\linewidth}% - \MakeFramed {% Use it now with the fetched contents - \advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize\@setminipage - }% - \unvbox\sphinxVerbatim@ContentsBox - % the \@minipagefalse is superfluous, actually. - \par\unskip\@minipagefalse\endMakeFramed - \end{minipage}% - \fi - \else % non-nested \MakeFramed - \par\unskip\@minipagefalse\endMakeFramed % from framed.sty snugshade - \ifsphinxverbatimwithminipage\end{minipage}\fi - \fi - \endtrivlist -} -\newenvironment {sphinxVerbatimNoFrame} - {\spx@opt@verbatimwithframefalse - \VerbatimEnvironment - \begin{sphinxVerbatim}} - {\end{sphinxVerbatim}} -\newenvironment {sphinxVerbatimintable} - {% don't use a frame if in a table cell - \spx@opt@verbatimwithframefalse - \sphinxverbatimwithminipagetrue - % the literal block caption uses \sphinxcaption which is wrapper of \caption, - % but \caption must be modified because longtable redefines it to work only - % for the own table caption, and tabulary has multiple passes - \let\caption\sphinxfigcaption - % reduce above caption skip - \def\spx@abovecaptionskip{\sphinxverbatimsmallskipamount}% - \VerbatimEnvironment - \begin{sphinxVerbatim}} - {\end{sphinxVerbatim}} - - -%% PARSED LITERALS -% allow long lines to wrap like they do in code-blocks - -% this should be kept in sync with definitions in sphinx.util.texescape -\newcommand*\sphinxbreaksattexescapedchars{% - \def\do##1##2% put potential break point before character - {\def##1{\discretionary{}{\sphinxafterbreak\char`##2}{\char`##2}}}% - \do\{\{\do\textless\<\do\#\#\do\%\%\do\$\$% {, <, #, %, $ - \def\do##1##2% put potential break point after character - {\def##1{\discretionary{\char`##2}{\sphinxafterbreak}{\char`##2}}}% - \do\_\_\do\}\}\do\textasciicircum\^\do\&\&% _, }, ^, &, - \do\textgreater\>\do\textasciitilde\~% >, ~ - \do\textbackslash\\% \ -} -\newcommand*\sphinxbreaksviaactiveinparsedliteral{% - \sphinxbreaksviaactive % by default handles . , ; ? ! / - \lccode`\~`\~ % - % update \dospecials as it is used by \url - % but deactivation will already have been done hence this is unneeded: - % \expandafter\def\expandafter\dospecials\expandafter{\dospecials - % \sphinxbreaksbeforeactivelist\sphinxbreaksafteractivelist\do\-}% -} -\newcommand*\sphinxbreaksatspaceinparsedliteral{% - \lccode`~32 \lowercase{\let~}\spx@verbatim@space\lccode`\~`\~ -} -\newcommand*{\sphinxunactivateextras}{\let\do\@makeother - \sphinxbreaksbeforeactivelist\sphinxbreaksafteractivelist}% -% the \catcode13=5\relax (deactivate end of input lines) is left to callers -\newcommand*{\sphinxunactivateextrasandspace}{\catcode32=10\relax - \sphinxunactivateextras}% -% alltt uses a monospace font and linebreaks at dashes (which are escaped -% to \sphinxhyphen{} which expands to -\kern\z@) are inhibited with pdflatex. -% Not with xelatex (cf \defaultfontfeatures in latex writer), so: -\newcommand*{\sphinxhypheninparsedliteral}{\sphinxhyphennobreak} -% now for the modified alltt environment -\newenvironment{sphinxalltt} -{% at start of next line to workaround Emacs/AUCTeX issue with this file -\begin{alltt}% - \ifspx@opt@parsedliteralwraps - \sbox\sphinxcontinuationbox {\spx@opt@verbatimcontinued}% - \sbox\sphinxvisiblespacebox {\spx@opt@verbatimvisiblespace}% - \let\sphinxhyphen\sphinxhypheninparsedliteral - \sphinxbreaksattexescapedchars - \sphinxbreaksviaactiveinparsedliteral - \sphinxbreaksatspaceinparsedliteral -% alltt takes care of the ' as derivative ("prime") in math mode - \everymath\expandafter{\the\everymath\sphinxunactivateextrasandspace - \catcode`\<=12\catcode`\>=12\catcode`\^=7\catcode`\_=8 }% -% not sure if displayed math (align,...) can end up in parsed-literal, anyway - \everydisplay\expandafter{\the\everydisplay - \catcode13=5 \sphinxunactivateextrasandspace - \catcode`\<=12\catcode`\>=12\catcode`\^=7\catcode`\_=8 }% - \fi } -{\end{alltt}} - - -%% INLINE MARK-UP -% - -% Protect \href's first argument in contexts such as sphinxalltt (or -% \sphinxcode). Sphinx uses \#, \%, \& ... always inside \sphinxhref. -\protected\def\sphinxhref#1#2{{% - \sphinxunactivateextrasandspace % never do \scantokens with active space! -% for the \endlinechar business, https://github.com/latex3/latex2e/issues/286 - \endlinechar\m@ne\everyeof{{\endlinechar13 #2}}% keep catcode regime for #2 - \scantokens{\href{#1}}% normalise it for #1 during \href expansion -}} -% Same for \url. And also \nolinkurl for coherence. -\protected\def\sphinxurl#1{{% - \sphinxunactivateextrasandspace\everyeof{}% (<- precaution for \scantokens) - \endlinechar\m@ne\scantokens{\url{#1}}% -}} -\protected\def\sphinxnolinkurl#1{{% - \sphinxunactivateextrasandspace\everyeof{}% - \endlinechar\m@ne\scantokens{\nolinkurl{#1}}% -}} - -% \sphinxupquote -% to obtain straight quotes we execute \@noligs as patched by upquote, and -% \scantokens is needed in cases where it would be too late for the macro to -% first set catcodes and then fetch its argument. We also make the contents -% breakable at non-escaped . , ; ? ! / using \sphinxbreaksviaactive, -% and also at \ character (which is escaped to \textbackslash{}). -\protected\def\sphinxtextbackslashbreakbefore - {\discretionary{}{\sphinxafterbreak\sphinx@textbackslash}{\sphinx@textbackslash}} -\protected\def\sphinxtextbackslashbreakafter - {\discretionary{\sphinx@textbackslash}{\sphinxafterbreak}{\sphinx@textbackslash}} -\let\sphinxtextbackslash\sphinxtextbackslashbreakafter -% - is escaped to \sphinxhyphen{} and this default ensures no linebreak -% behaviour (also with a non monospace font, or with xelatex) -\newcommand*{\sphinxhyphenininlineliteral}{\sphinxhyphennobreak} -% the macro must be protected if it ends up used in moving arguments, -% in 'alltt' \@noligs is done already, and the \scantokens must be avoided. -\protected\def\sphinxupquote#1{{\def\@tempa{alltt}% - \ifx\@tempa\@currenvir\else - \let\sphinxhyphen\sphinxhyphenininlineliteral - \ifspx@opt@inlineliteralwraps - % break at . , ; ? ! / - \sphinxbreaksviaactive - % break also at \ - \setbox8=\hbox{\textbackslash}% - \def\sphinx@textbackslash{\copy8}% - \let\textbackslash\sphinxtextbackslash - % by default, no continuation symbol on next line but may be added - \let\sphinxafterbreak\sphinxafterbreakofinlineliteral - % do not overwrite the comma set-up - \let\verbatim@nolig@list\sphinx@literal@nolig@list - \fi - % fix a space-gobbling issue due to LaTeX's original \do@noligs -% TODO: using \@noligs as patched by upquote.sty is now unneeded because -% either ` and ' are escaped (non-unicode engines) or they don't build -% ligatures (unicode engines). Thus remove this and unify handling of `, <, >, -% ' and - with the characters . , ; ? ! / as handled via -% \sphinxbreaksviaactive. -% Hence \sphinx@do@noligs will be removed, or rather replaced with code -% inserting discretionaries, as they allow a continuation symbol on start of -% next line to achieve common design with code-blocks. -% TODO: do the above TODO! -% Extend \sphinxunactivateextras for \sphinxhref as the latter may -% actually be in the scope of \sphinxupquote and does a \scantokens -% of its own. - \expandafter\def\expandafter\sphinxunactivateextras\expandafter - {\sphinxunactivateextras\verbatim@nolig@list}% - \let\do@noligs\sphinx@do@noligs - \@noligs\endlinechar\m@ne\everyeof{}% (<- in case inside \sphinxhref) - \expandafter\scantokens - \fi {{#1}}}}% extra brace pair to fix end-space gobbling issue... -\def\sphinx@do@noligs #1{\catcode`#1\active\begingroup\lccode`\~`#1\relax - \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1 }}} -\def\sphinx@literal@nolig@list {\do\`\do\<\do\>\do\'\do\-}% -\let\sphinxafterbreakofinlineliteral\empty - - -\endinput diff --git a/docs/build/latex/sphinxlatexnumfig.sty b/docs/build/latex/sphinxlatexnumfig.sty deleted file mode 100644 index 22fcbb0..0000000 --- a/docs/build/latex/sphinxlatexnumfig.sty +++ /dev/null @@ -1,135 +0,0 @@ -%% NUMBERING OF FIGURES, TABLES, AND LITERAL BLOCKS -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexnumfig}[2024/07/31 v8.1.0 numbering] - -% Requires: remreset (old LaTeX only) -% relates to numfig and numfig_secnum_depth configuration variables - -% LaTeX 2018-04-01 and later provides \@removefromreset -\ltx@ifundefined{@removefromreset} - {\RequirePackage{remreset}} - {}% avoid warning -% Everything is delayed to \begin{document} to allow hyperref patches into -% \newcounter to solve duplicate label problems for internal hyperlinks to -% code listings (literalblock counter). User or extension re-definitions of -% \theliteralblock, et al., thus have also to be delayed. (changed at 3.5.0) -\AtBeginDocument{% -\ltx@ifundefined{c@chapter} - {\newcounter{literalblock}}% - {\newcounter{literalblock}[chapter]% - \def\theliteralblock{\ifnum\c@chapter>\z@\arabic{chapter}.\fi - \arabic{literalblock}}% - }% -\ifspx@opt@nonumfigreset - \ltx@ifundefined{c@chapter}{}{% - \@removefromreset{figure}{chapter}% - \@removefromreset{table}{chapter}% - \@removefromreset{literalblock}{chapter}% - \ifspx@opt@mathnumfig - \@removefromreset{equation}{chapter}% - \fi - }% - \def\thefigure{\arabic{figure}}% - \def\thetable {\arabic{table}}% - \def\theliteralblock{\arabic{literalblock}}% - \ifspx@opt@mathnumfig - \def\theequation{\arabic{equation}}% - \fi -\else -% See apologetic comments on TeX wizardry at bottom of file. -% The reason for this one is to catch case where there will be only -% the number with no prefix from enclosing sectioning (can happen -% with latex_toplevel_sectioning='part'). -\def\spx@preAthefigure{\expandafter\spx@magicsep@s\romannumeral-`0} -\let\spx@preBthefigure\@empty -% \ifspx@opt@usespart % <-- LaTeX writer could pass such a 'usespart' boolean -% % as sphinx.sty package option -% If document uses \part, (triggered in Sphinx by latex_toplevel_sectioning) -% LaTeX core per default does not reset chapter or section -% counters at each part. -% But if we modify this, we need to redefine \thechapter, \thesection to -% include the part number and this will cause problems in table of contents -% because of too wide numbering. Simplest is to do nothing. -% \fi -\ifnum\spx@opt@numfigreset>0 - \ltx@ifundefined{c@chapter} - {} - {\g@addto@macro\spx@preAthefigure{\ifnum\c@chapter>\z@\arabic{chapter}\spx@magicsep}% - \g@addto@macro\spx@preBthefigure{\fi}}% -\fi -\ifnum\spx@opt@numfigreset>1 - \@addtoreset{figure}{section}% - \@addtoreset{table}{section}% - \@addtoreset{literalblock}{section}% - \ifspx@opt@mathnumfig - \@addtoreset{equation}{section}% - \fi% - \g@addto@macro\spx@preAthefigure{\ifnum\c@section>\z@\arabic{section}\spx@magicsep}% - \g@addto@macro\spx@preBthefigure{\fi}% -\fi -\ifnum\spx@opt@numfigreset>2 - \@addtoreset{figure}{subsection}% - \@addtoreset{table}{subsection}% - \@addtoreset{literalblock}{subsection}% - \ifspx@opt@mathnumfig - \@addtoreset{equation}{subsection}% - \fi% - \g@addto@macro\spx@preAthefigure{\ifnum\c@subsection>\z@\arabic{subsection}\spx@magicsep}% - \g@addto@macro\spx@preBthefigure{\fi}% -\fi -\ifnum\spx@opt@numfigreset>3 - \@addtoreset{figure}{subsubsection}% - \@addtoreset{table}{subsubsection}% - \@addtoreset{literalblock}{subsubsection}% - \ifspx@opt@mathnumfig - \@addtoreset{equation}{subsubsection}% - \fi% - \g@addto@macro\spx@preAthefigure{\ifnum\c@subsubsection>\z@\arabic{subsubsection}\spx@magicsep}% - \g@addto@macro\spx@preBthefigure{\fi}% -\fi -\ifnum\spx@opt@numfigreset>4 - \@addtoreset{figure}{paragraph}% - \@addtoreset{table}{paragraph}% - \@addtoreset{literalblock}{paragraph}% - \ifspx@opt@mathnumfig - \@addtoreset{equation}{paragraph}% - \fi% - \g@addto@macro\spx@preAthefigure{\ifnum\c@subparagraph>\z@\arabic{subparagraph}\spx@magicsep}% - \g@addto@macro\spx@preBthefigure{\fi}% -\fi -\ifnum\spx@opt@numfigreset>5 - \@addtoreset{figure}{subparagraph}% - \@addtoreset{table}{subparagraph}% - \@addtoreset{literalblock}{subparagraph}% - \ifspx@opt@mathnumfig - \@addtoreset{equation}{subparagraph}% - \fi% - \g@addto@macro\spx@preAthefigure{\ifnum\c@subsubparagraph>\z@\arabic{subsubparagraph}\spx@magicsep}% - \g@addto@macro\spx@preBthefigure{\fi}% -\fi -\expandafter\g@addto@macro -\expandafter\spx@preAthefigure\expandafter{\spx@preBthefigure}% -\let\thefigure\spx@preAthefigure -\let\thetable\spx@preAthefigure -\let\theliteralblock\spx@preAthefigure -\g@addto@macro\thefigure{\arabic{figure}}% -\g@addto@macro\thetable{\arabic{table}}% -\g@addto@macro\theliteralblock{\arabic{literalblock}}% - \ifspx@opt@mathnumfig - \let\theequation\spx@preAthefigure - \g@addto@macro\theequation{E}% - \fi -\fi -}% end of big \AtBeginDocument - -% Sorry for TeX wizardry here. We need to keep expandability. Explaining -% the mechanism is not really feasible to non TeX-experts, but the idea -% is to force next `\ifnum` conditional so we can check what comes next. -% All cases are accounted for (i.e. not an equation, or an equation at top -% level, or an equation in some section at some depth). -\def\spx@magicsep{\expandafter\spx@magicsep@i\romannumeral-`0} -\def\spx@magicsep@i#1{\if#1E\spx@opt@mathnumsep\arabic{equation}\else.#1\fi} -% -\def\spx@magicsep@s#1{\if#1E\arabic{equation}\else#1\fi} -\endinput diff --git a/docs/build/latex/sphinxlatexobjects.sty b/docs/build/latex/sphinxlatexobjects.sty deleted file mode 100644 index 1147a01..0000000 --- a/docs/build/latex/sphinxlatexobjects.sty +++ /dev/null @@ -1,384 +0,0 @@ -%% MODULE RELEASE DATA AND OBJECT DESCRIPTIONS -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexobjects}[2025/02/11 documentation environments] - -% Provides support for this output mark-up from Sphinx latex writer: -% -% - environments -% -% - fulllineitems -% - productionlist -% - optionlist -% - DUlineblock (also "lineblock") -% -% - macros -% -% - \DUrole -% - various legacy support macros related to author and release -% data of documented objects and modules. - -% \moduleauthor{name}{email} -\newcommand{\moduleauthor}[2]{} - -% \sectionauthor{name}{email} -\newcommand{\sectionauthor}[2]{} - -% Allow the release number to be specified independently of the -% \date{}. This allows the date to reflect the document's date and -% release to specify the release that is documented. -% -\newcommand{\py@release}{\releasename\space\version} -\newcommand{\version}{}% part of \py@release, used by title page and headers -% \releaseinfo is used on titlepage (sphinxmanual.cls, sphinxhowto.cls) -\newcommand{\releaseinfo}{} -\newcommand{\setreleaseinfo}[1]{\renewcommand{\releaseinfo}{#1}} -% this is inserted via template and #1=release config variable -\newcommand{\release}[1]{\renewcommand{\version}{#1}} -% this is defined by template to 'releasename' latex_elements key -\newcommand{\releasename}{} -% Fix issue in case release and releasename deliberately left blank -\newcommand{\sphinxheadercomma}{, }% used in fancyhdr header definition -\newcommand{\sphinxifemptyorblank}[1]{% -% test after one expansion of macro #1 if contents is empty or spaces - \if&\expandafter\@firstofone\detokenize\expandafter{#1}&% - \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}% -\AtBeginDocument {% - \sphinxifemptyorblank{\releasename} - {\sphinxifemptyorblank{\version}{\let\sphinxheadercomma\empty}{}} - {}% -}% - -% Allow specification of the author's address separately from the -% author's name. This can be used to format them differently, which -% is a good thing. -% -\newcommand{\py@authoraddress}{} -\newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}} - -% {fulllineitems} is the main environment for object descriptions. -% -% With 4.0.0 \pysigline (and \pysiglinewithargsret), used in a fulllineitems -% environment the #1 will already be of the width which is computed here, i.e. -% the available width on line, so the \makebox becomes a bit superfluous -\newcommand{\py@itemnewline}[1]{% macro used as \makelabel in fulllineitems -% Memo: this presupposes \itemindent is 0pt - \kern\labelsep % because \@labels core latex box does \hskip-\labelsep - \makebox[\dimexpr\linewidth+\labelwidth\relax][l]{#1}% - \kern-\labelsep % because at end of \@labels box there is \hskip\labelsep -} - -\newenvironment{fulllineitems}{% - \begin{list}{}{\labelwidth \leftmargin - \rightmargin \z@ \topsep -\parskip \partopsep \parskip - \itemsep -\parsep - \let\makelabel=\py@itemnewline}% -}{\end{list}} - -% Signatures, possibly multi-line -% -% For legacy reasons Sphinx uses LaTeX \list and \item's for signatures -% This is delicate: -% - the actual item label is not typeset immediately by \item but later as part -% of the \everypar which will be triggered by either next paragraph or a manual -% \leavevmode, or if nothing in-between by the next \item, -% - \begingroup \item[foo] \endgroup leads to errors, -% - vertical space depends on \parskip and \itemsep values in somewhat -% subtle manners. -% -% Since the 2022/01/13 version things are simpler as \parskip is simply set -% to zero during execution of \pysigline/\pysiglinewithargsret -% -% Parameter for separation via \itemsep of multiple signatures with common desc -\newlength\sphinxsignaturesep -\setlength\sphinxsignaturesep{\smallskipamount} -% latex.py outputs mark-up like this: -% \pysigstartsignatures \pysigstopsignatures -\newcommand{\pysigstartsignatures}{% - % store current \parskip and \itemsep - \edef\pysig@restore@itemsep@and@parskip{% - \itemsep\the\itemsep\relax - \parskip\the\parskip\relax - }% - % set them to control the spacing between signatures sharing common desc - \parskip\z@skip - \itemsep\sphinxsignaturesep -} -\newcommand{\pysigstopsignatures}{% -% 1) encourage a pagebreak in an attempt to try to avoid last -% signature ending up separated from description (due to voodoo next) -\penalty-100 -% 2) some voodoo to separate last signature from description in a manner -% robust with respect to the latter being itself a LaTeX list object -\leavevmode\par\kern-\baselineskip\item[\strut] -% - \leavevmode - % it is important \leavevmode was issued before the \parskip reset, and - % it is also needed for the case of an object desc itself a LaTeX \list - % now restore \itemsep and \parskip - \pysig@restore@itemsep@and@parskip -} -% Each signature is rendered as NAME[TPLIST](ARGLIST) where the -% size of is parametrized by \sphinxsignaturelistskip (0pt by default). -\newlength\sphinxsignaturelistskip -\setlength\sphinxsignaturelistskip{0pt} -\newcommand{\pysigtypelistopen}{\hskip\sphinxsignaturelistskip\sphinxcode{[}} -\newcommand{\pysigtypelistclose}{\sphinxcode{]}} -\newcommand{\pysigarglistopen}{\hskip\sphinxsignaturelistskip\sphinxcode{(}} -\newcommand{\pysigarglistclose}{\sphinxcode{)}} -% -% Use a \parbox to accommodate long argument list in signatures -% LaTeX did not imagine that an \item label could need multi-line rendering -\newlength{\py@argswidth} -\newcommand{\py@sigparams}[2]{% - % The \py@argswidth has been computed in \pysiglinewithargsret to make the - % argument list use full available width - \parbox[t]{\py@argswidth}{\raggedright #1\pysigarglistclose#2\strut}% - % final strut is to help get correct vertical separation -} -\newcommand{\py@sigparamswithtypelist}[3]{% - % similar to \py@sigparams but with different delimiters and an additional - % type parameters list given as #1, the argument list as #2 and the return - % annotation as #3 - \parbox[t]{\py@argswidth}{% - \raggedright #1\pysigtypelistclose% - \pysigarglistopen#2\pysigarglistclose% - #3\strut}% -} - -\newcommand{\pysigline}[1]{% - % as \py@argswidth is available, we use it but no "args" here - % the \relax\relax is because \py@argswidth is a "skip" variable - % this will make the label occupy the full available linewidth - \py@argswidth=\dimexpr\linewidth+\labelwidth\relax\relax - \item[{\parbox[t]{\py@argswidth}{\raggedright #1\strut}}] - \pysigadjustitemsep -} -\newcommand{\pysiglinewithargsret}[3]{% - % as #1 may contain a footnote using \label we need to make \label - % a no-op here to avoid LaTeX complaining about duplicates -\let\spx@label\label\let\label\@gobble - \settowidth{\py@argswidth}{#1\pysigarglistopen}% -\let\label\spx@label - \py@argswidth=\dimexpr\linewidth+\labelwidth-\py@argswidth\relax\relax - \item[{#1\pysigarglistopen\py@sigparams{#2}{#3}\strut}] - \pysigadjustitemsep -} -\newcommand{\pysiglinewithargsretwithtypelist}[4]{ -% #1 = name, #2 = typelist, #3 = arglist, #4 = retann -\let\spx@label\label\let\label\@gobble - \settowidth{\py@argswidth}{#1\pysigtypelistopen}% -\let\label\spx@label - \py@argswidth=\dimexpr\linewidth+\labelwidth-\py@argswidth\relax\relax - \item[{#1\pysigtypelistopen\py@sigparamswithtypelist{#2}{#3}{#4}\strut}] - \pysigadjustitemsep -} - -\def\sphinxoptionalextraspace{0.5mm} -\newcommand{\pysigwithonelineperarg}[3]{% - % render each argument on its own line - \item[#1\pysigarglistopen\strut] - \leavevmode\par\nopagebreak - % this relies on \pysigstartsignatures having set \parskip to zero - \begingroup - \let\sphinxparamcomma\sphinxparamcommaoneperline - \def\sphinxoptionalhook{\ifvmode\else\kern\sphinxoptionalextraspace\relax\fi}% - % The very first \sphinxparam should not emit a \par hence a complication - % with a group and global definition here as it may occur in a \sphinxoptional - \global\let\spx@sphinxparam\sphinxparam - \gdef\sphinxparam{\gdef\sphinxparam{\par\spx@sphinxparam}\spx@sphinxparam}% - #2\par - \endgroup - \global\let\sphinxparam\spx@sphinxparam - % fulllineitems sets \labelwidth to be like \leftmargin - \nopagebreak\noindent\kern-\labelwidth\pysigarglistclose{#3} - \pysigadjustitemsep -} -\newcommand{\pysigwithonelineperargwithonelinepertparg}[4]{ - % #1 = name, #2 = typelist, #3 = arglist, #4 = retann - % render each type parameter and argument on its own line - \item[#1\pysigtypelistopen\strut] - \leavevmode\par\nopagebreak - \begingroup - \let\sphinxparamcomma\sphinxparamcommaoneperline - % \sphinxtypeparam is treated similarly to \sphinxparam but since - % \sphinxoptional is not accepted in a type parameters list, we do - % not need the hook or the global definition - \let\spx@sphinxtypeparam\sphinxtypeparam - \def\sphinxtypeparam{\def\sphinxtypeparam{\par\spx@sphinxtypeparam}\spx@sphinxtypeparam}% - #2\par - \endgroup - \nopagebreak\noindent\kern-\labelwidth\pysigtypelistclose% - % render the rest of the signature like in \pysigwithonelineperarg - \pysigarglistopen\strut\par\nopagebreak - \begingroup - \let\sphinxparamcomma\sphinxparamcommaoneperline - \def\sphinxoptionalhook{\ifvmode\else\kern\sphinxoptionalextraspace\relax\fi}% - \global\let\spx@sphinxparam\sphinxparam - \gdef\sphinxparam{\gdef\sphinxparam{\par\spx@sphinxparam}\spx@sphinxparam}% - #3\par - \endgroup - \global\let\sphinxparam\spx@sphinxparam - \nopagebreak\noindent\kern-\labelwidth\pysigarglistclose{#4} - \pysigadjustitemsep -} -\newcommand{\pysiglinewithargsretwithonelinepertparg}[4]{ - % #1 = name, #2 = typelist, #3 = arglist, #4 = retann - % render each type parameter on its own line but the arguments list inline - \item[#1\pysigtypelistopen\strut] - \leavevmode\par\nopagebreak - \begingroup - \let\sphinxparamcomma\sphinxparamcommaoneperline - % \sphinxtypeparam is treated similarly to \sphinxparam but since - % \sphinxoptional is not accepted in a type parameters list, we do - % not need the hook or the global definition - \let\spx@sphinxtypeparam\sphinxtypeparam - \def\sphinxtypeparam{\def\sphinxtypeparam{\par\spx@sphinxtypeparam}\spx@sphinxtypeparam}% - #2\par - \endgroup - \nopagebreak\noindent\kern-\labelwidth\pysigtypelistclose% - % render the arguments list on one line - \pysigarglistopen#3\pysigarglistclose#4\strut - \pysigadjustitemsep -} -\newcommand{\pysigwithonelineperargwithtypelist}[4]{ - % #1 = name, #2 = typelist, #3 = arglist, #4 = retann - % render the type parameters list on one line, but each argument is rendered on its own line -\let\spx@label\label\let\label\@gobble - \settowidth{\py@argswidth}{#1\pysigtypelistopen}% -\let\label\spx@label - \py@argswidth=\dimexpr\linewidth+\labelwidth-\py@argswidth\relax\relax - \item[{#1\pysigtypelistopen\parbox[t]{\py@argswidth}{% - \raggedright #2\pysigtypelistclose\pysigarglistopen\strut}\strut}] - % render the rest of the signature like in \pysigwithonelineperarg - \begingroup - \let\sphinxparamcomma\sphinxparamcommaoneperline - \def\sphinxoptionalhook{\ifvmode\else\kern\sphinxoptionalextraspace\relax\fi}% - \global\let\spx@sphinxparam\sphinxparam - \gdef\sphinxparam{\gdef\sphinxparam{\par\spx@sphinxparam}\spx@sphinxparam}% - #3\par - \endgroup - \global\let\sphinxparam\spx@sphinxparam - \nopagebreak\noindent\kern-\labelwidth\pysigarglistclose{#4} - \pysigadjustitemsep -} -\newcommand{\pysigadjustitemsep}{% - % adjust \itemsep to control the separation with the next signature - % sharing common description - \ifsphinxsigismultiline - % inside a multiline signature, no extra vertical spacing - % ("multiline" here does not refer to possibly long - % list of arguments, but to a cpp domain feature) - \itemsep\z@skip - \else - \itemsep\sphinxsignaturesep - \fi -} -\newif\ifsphinxsigismultiline -\newcommand{\pysigstartmultiline}{\sphinxsigismultilinetrue}% -\newcommand{\pysigstopmultiline}{\sphinxsigismultilinefalse\itemsep\sphinxsignaturesep}% - -% Production lists -% This simply outputs the lines as is, in monospace font. Refers #13326. -% (the left padding for multi-line alignment is from the nodes themselves, -% and latex is configured below to obey such horizontal whitespace). -% -% - The legacy code used longtable and hardcoded the separator as ::= -% via dedicated macros defined by the environment itself. -% - Here the separator is part of the node. Any extra LaTeX mark-up would -% have to originate from the writer itself to decorate it. -% - The legacy code used strangely \parindent and \indent. Possibly -% (unchecked) due to an earlier tabular usage, but a longtable does not -% work in paragraph mode, so \parindent was without effect and -% \indent only caused some extra blank line above display. -% - The table had some whitespace on its left, which we imitate here via -% \parindent usage (which works in our context...). -% -\newenvironment{productionlist}{% - \bigskip % imitate close enough legacy vertical whitespace, which was - % visibly excessive - \ttfamily % needed for space tokens to have same width as letters - \parindent1em % width of a "quad", font-dependent, usually circa width of 2 - % letters - \obeylines % line in = line out - \parskip\z@skip % prevent the parskip vertical whitespace between lines, - % which are technically to LaTeX now each its own paragraph - \@vobeyspaces % obey whitespace - % now a technicality to, only locally to this environment, prevent the - % suppression of indentation of first line, if it comes right after - % \section. Cf package indentfirst from which the code is borrowed. - \let\@afterindentfalse\@afterindenttrue\@afterindenttrue -}{% - \par % does not hurt... -} - -% Definition lists; requested by AMK for HOWTO documents. Probably useful -% elsewhere as well, so keep in in the general style support. -% -\newenvironment{definitions}{% - \begin{description}% - \def\term##1{\item[{##1}]\mbox{}\\*[0mm]}% -}{% - \end{description}% -} - -%% FROM DOCTUTILS LATEX WRITER -% -% The following is stuff copied from docutils' latex writer. -% -\newcommand{\optionlistlabel}[1]{\normalfont\bfseries #1 \hfill}% \bf deprecated -\newenvironment{optionlist}[1] -{\begin{list}{} - {\setlength{\labelwidth}{#1}% - \setlength{\rightmargin}{1cm}% - \setlength{\leftmargin}{\rightmargin}% - \addtolength{\leftmargin}{\labelwidth}% - \addtolength{\leftmargin}{\labelsep}% - \renewcommand{\makelabel}{\optionlistlabel}}% -}{\end{list}} - -\newlength{\lineblockindentation} -\setlength{\lineblockindentation}{2.5em} -\newenvironment{lineblock}[1] -{\begin{list}{} - {\setlength{\partopsep}{\parskip}% - \addtolength{\partopsep}{\baselineskip}% - \topsep0pt\itemsep0.15\baselineskip\parsep0pt - \leftmargin#1\relax}% - \raggedright} -{\end{list}} - -% From docutils.writers.latex2e -% inline markup (custom roles) -% \DUrole{#1}{#2} tries \DUrole#1{#2} -\providecommand*{\DUrole}[2]{% - \ifcsname DUrole\detokenize{#1}\endcsname - \csname DUrole\detokenize{#1}\endcsname{#2}% - \else% backwards compatibility: try \docutilsrole#1{#2} - \ifcsname docutilsrole\detokenize{#1}\endcsname - \csname docutilsrole\detokenize{#1}\endcsname{#2}% - \else - #2% - \fi - \fi -} - -\providecommand*{\DUprovidelength}[2]{% - \ifdefined#1\else\newlength{#1}\setlength{#1}{#2}\fi -} - -\DUprovidelength{\DUlineblockindent}{2.5em} -\ifdefined\DUlineblock\else - \newenvironment{DUlineblock}[1]{% - \list{}{\setlength{\partopsep}{\parskip}% - \addtolength{\partopsep}{\baselineskip}% - \setlength{\topsep}{0pt}% - \setlength{\itemsep}{0.15\baselineskip}% - \setlength{\parsep}{0pt}% - \setlength{\leftmargin}{#1}}% - \raggedright - } - {\endlist} -\fi - -\endinput diff --git a/docs/build/latex/sphinxlatexshadowbox.sty b/docs/build/latex/sphinxlatexshadowbox.sty deleted file mode 100644 index 53a3338..0000000 --- a/docs/build/latex/sphinxlatexshadowbox.sty +++ /dev/null @@ -1,178 +0,0 @@ -%% TOPIC AND CONTENTS BOXES -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexshadowbox}[2024/07/28 v8.1.0 sphinxShadowBox] - -% Provides support for this output mark-up from Sphinx latex writer: -% -% - Environments: sphinxtopic, sphinxcontents, and sphinxsidebar. -% -% These wrappers replace at 8.1.0 former direct use of sphinxShadowBox -% environment which did not allow separate styling. -% -% - Commands: \sphinxstyletopictitle, \sphinxstylecontentstitle, and -% \sphinxstylesidebartitle. -% -% At 8.1.0 they default to use \sphinxdotitlerow whose definiion is done in -% sphinxlatexadmonitions.sty. There is also \sphinxstylesidebarsubtitle -% which does not use \sphinxdotitlerow. -% -% Dependencies (they do not need to be defined at time of loading): -% -% - of course the various colour and dimension options handled via sphinx.sty -% - dimension register \spx@image@maxheight from sphinxlatexgraphics.sty -% - \savenotes/\spewnotes from sphinxpackagefootnote.sty -% - \ifspx@inframed defined in sphinx.sty -% - \sphinxdotitlerow from sphinxlatexadmonitions.sty -% - \spx@boxes@fcolorbox@setup from sphinxpackageboxes.sty -% -\RequirePackage{framed} -% Those are required either before or after by sphinx.sty anyhow, but for -% clarity we list them here: -\RequirePackage{sphinxlatexgraphics} -\RequirePackage{sphinxpackagefootnote} -\RequirePackage{sphinxlatexadmonitions} -\RequirePackage{sphinxpackageboxes} - -% At 5.1.0 the code formerly here in a definition of \spx@ShadowFBox has been -% refactored to hand over to a more powerful \spx@boxes@fcolorbox provided by -% file sphinxpackageboxes.sty, it can draw rounded corners and add a background -% color. - -% At 6.2.0, \spx@ShadowFBox is so much simplified that it is now not -% separately defined but directly incorporated into the \FrameCommand -% definition done by sphinxShadowBox environment below. - -% Use framed.sty \MakeFramed/\endMakeFramed to allow page breaks for topic -% boxes. Originally Sphinx used \shadowbox from fancybox.sty but it did not -% allow pagebreaks (which was problematic for "contents" directive if there -% are many subsections). -% -% Docutils does not allow topic to be nested within topics or other body -% elements. But the LaTeX code here does allow it: -% -% - a topic inside another topic would be rendered in a minipage (thus not -% allowing pagebreaks). Its external frame would adapt perfectly to -% the *current (smaller) width for text*. -% -% - a topic inside (nested) lists or quote environments would have its frame -% take the *full width* of the page, but its text contents on the other hand -% would obey exactly the current indentation plus inner separation. This is -% in contrast with the framing used for literal blocks, also based, but in a -% more sophisticated way on usage of \MakeFramed/\endMakeFramed, and -% adjusting to current text indentation. -% -% At 8.1.0, sphinxShadowBox takes an optional argument #1 and uses it as -% \spx@boxes@fcolorbox@setup{#1} rather than \spx@boxes@fcolorbox@setup{topic}. -% Some hesitation whether to move this line to newly added sphinxtopic, -% sphinxcontents and sphinxsidebar environmments. But anyhow the environment -% also requires later knowing a few more things: sphinxTextColor and -% spx@@texextras. -% -% The #1 defaulting to topic must be such that all parameters expected by -% \spx@boxes@fcolorbox@setup actually do exist, see CSS options in sphinx.sty -% which is what defines them for contents, topic, and sidebar. -% -% Fortunately the #1 is not needed in \end{sphinxShadowBox} so we don't have -% to work around a LaTeX conception bug that such #1 can not be used as is in -% the definition of the \end part of an environment. -% -% MEMO: the "shadow" is not really drawn directly by this environment but -% indirectly via the configuration which is passed over to \spx@boxes@fcolorbox, -% which is the macro creating frame and (perhaps but not necessarily) a shadow. -\newenvironment{sphinxShadowBox}[1][topic]% - {% - \spx@boxes@fcolorbox@setup{#1}% - % we will use the dimen registers from sphinxpackageboxes.sty which now hold - % the values from options related to topic/contents - % MEMO: \spx@boxes@fcolorbox creates an \hbox but does not quit vertical - % mode; but in context of framed.sty's \FrameCommand TeX is already - % in restricted horizontal mode, so no need for a \leavevmode here. - \def\FrameCommand {\spx@boxes@fcolorbox}% - % 6.2.0 adds support for div.topic_box-decoration-break=slice. - % (it is yet undecided if slice style should inhibit a bottom shadow) - \@nameuse{ifspx@#1@border@open}% - \def\FirstFrameCommand - {\spx@boxes@fcolorbox@setup@openbottom\FrameCommand}% - \def\MidFrameCommand - {\spx@boxes@fcolorbox@setup@openboth \FrameCommand}% - \def\LastFrameCommand - {\spx@boxes@fcolorbox@setup@opentop \FrameCommand}% - \fi - \advance\spx@image@maxheight - -\dimexpr\spx@boxes@border@top+\spx@boxes@border@bottom - +\spx@boxes@padding@top+\spx@boxes@padding@bottom - +\ifdim\spx@boxes@shadow@yoffset<\z@-\fi\spx@boxes@shadow@yoffset - +\baselineskip\relax - % configure framed.sty not to add extra vertical spacing - \ltx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}% - % the \trivlist will add the vertical spacing on top and bottom which is - % typical of center environment as used in Sphinx <= 1.4.1 - % the \noindent has the effet of an extra blank line on top, to - % imitate closely the layout from Sphinx <= 1.4.1; the \FrameHeightAdjust - % will put top part of frame on this baseline. - \def\FrameHeightAdjust {\baselineskip}% - % use package footnote to handle footnotes - \savenotes - \trivlist\item\noindent - % use a minipage if we are already inside a framed environment - \ifspx@inframed\begin{minipage}{\linewidth}\fi - \MakeFramed {\spx@inframedtrue - % framed.sty puts into "\width" the added width (padding+border widths) - % adjust \hsize to what the contents must use - \advance\hsize-\width - % adjust LaTeX parameters to behave properly in indented/quoted contexts - \FrameRestore - % typeset the contents as in a minipage (Sphinx <= 1.4.1 used a minipage and - % itemize/enumerate are therein typeset more tightly, we want to keep - % that). We copy-paste from LaTeX source code but don't do a real minipage. - \@pboxswfalse - \let\@listdepth\@mplistdepth \@mplistdepth\z@ - \@minipagerestore - \@setminipage - }% - \color@begingroup % workaround upstream framed.sty bug - \@nameuse{ifspx@#1@withtextcolor}% - \color{sphinx#1TextColor}% - \fi - \@nameuse{spx@#1@TeXextras}% - }% - {% insert the "endminipage" code - \par\unskip - \color@endgroup % matches the \color@begingroup - \@minipagefalse - \endMakeFramed - \ifspx@inframed\end{minipage}\fi - \endtrivlist - % output the stored footnotes - \spewnotes - } - -% 8.1.0 -\newenvironment{sphinxtopic} - {\begin{sphinxShadowBox}[topic]}{\end{sphinxShadowBox}} -\newenvironment{sphinxcontents} - {\begin{sphinxShadowBox}[contents]}{\end{sphinxShadowBox}} -% Arguably sphinxsidebar should rather use a wrapfig or similar environment -% but this is so dysfunctional in LaTeX (except for self-written documents) -% so we prefer to not venture into such a potential quagmire and keep the -% legacy rendering using a full width display. -\newenvironment{sphinxsidebar} - {\begin{sphinxShadowBox}[sidebar]}{\end{sphinxShadowBox}} - -% TODO: decide if this should be in sphinxlatexstyletext.sty rather -% -% 8.1.0 styles topic/contents/sidebar with a title row, too. -% Prior to 8.1.0, definitions use \protected\def but there does not seem -% to be any reason so back to \newcommand. -\newcommand*\sphinxstyletopictitle[1]{\sphinxdotitlerow{topic}{#1}} -\newcommand*\sphinxstylecontentstitle[1]{\sphinxdotitlerow{contents}{#1}} -\newcommand*\sphinxstylesidebartitle[1]{\sphinxdotitlerow{sidebar}{#1}} -% No default color background for subtitle. The contents next are injected by -% LaTeX writer after a blank line in source hence will start a new paragrpah. -% The \sphinxAtStartPar here is only for coherence with other text paragraphs, -% but does not have serious necessity (its general role is to allow hyphenation -% for first word in narrow table cells). -\newcommand*\sphinxstylesidebarsubtitle[1]{\sphinxAtStartPar\textbf{#1}} - -\endinput diff --git a/docs/build/latex/sphinxlatexstyleheadings.sty b/docs/build/latex/sphinxlatexstyleheadings.sty deleted file mode 100644 index 08773c0..0000000 --- a/docs/build/latex/sphinxlatexstyleheadings.sty +++ /dev/null @@ -1,91 +0,0 @@ -%% TITLES -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexstyleheadings}[2023/02/11 headings] - -\RequirePackage[nobottomtitles*]{titlesec} -% tests showed that this setting guarantees \section title has -% 3 lines of text following it on same page if near bottom. -\renewcommand\bottomtitlespace{6\baselineskip} -% the default setting of 0.2\textheight is about 11\baselineskip -% (for 10pt letterpaper documents) and may create large voids. - -\@ifpackagelater{titlesec}{2016/03/15}% - {\@ifpackagelater{titlesec}{2016/03/21}% - {}% - {\newif\ifsphinx@ttlpatch@ok - \IfFileExists{etoolbox.sty}{% - \RequirePackage{etoolbox}% - \patchcmd{\ttlh@hang}{\parindent\z@}{\parindent\z@\leavevmode}% - {\sphinx@ttlpatch@oktrue}{}% - \ifsphinx@ttlpatch@ok - \patchcmd{\ttlh@hang}{\noindent}{}{}{\sphinx@ttlpatch@okfalse}% - \fi - }{}% - \ifsphinx@ttlpatch@ok - \typeout{^^J Package Sphinx Info: ^^J - **** titlesec 2.10.1 successfully patched for bugfix ****^^J}% - \else - \AtEndDocument{\PackageWarningNoLine{sphinx}{^^J% -******** titlesec 2.10.1 has a bug, (section numbers disappear) ......|^^J% -******** and Sphinx could not patch it, perhaps because your local ...|^^J% -******** copy is already fixed without a changed release date. .......|^^J% -******** If not, you must update titlesec! ...........................|}}% - \sphinxbuildwarning{badtitlesec}% - \fi - }% - }{} - -% Augment the sectioning commands used to get our own font family in place, -% and reset some internal data items (\titleformat from titlesec package) -\titleformat{\section}{\Large\py@HeaderFamily}% - {\py@TitleColor\thesection}{0.5em}{\py@TitleColor} -\titleformat{\subsection}{\large\py@HeaderFamily}% - {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor} -% \normalsize added as work-around to a lualatex-ja upstream problem -% https://osdn.net/projects/luatex-ja/ticket/47321 -\titleformat{\subsubsection}{\normalsize\py@HeaderFamily}% - {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor} -% By default paragraphs (and subsubsections) will not be numbered because -% sphinxmanual.cls and sphinxhowto.cls set secnumdepth to 2 -\titleformat{\paragraph}{\normalsize\py@HeaderFamily}% - {\py@TitleColor\theparagraph}{0.5em}{\py@TitleColor} -\titleformat{\subparagraph}{\normalsize\py@HeaderFamily}% - {\py@TitleColor\thesubparagraph}{0.5em}{\py@TitleColor} - -% Since Sphinx 1.5, users should use HeaderFamily key to 'sphinxsetup' rather -% than defining their own \py@HeaderFamily command (which is still possible). -% Memo: \py@HeaderFamily is also used by \maketitle as defined in -% sphinxmanual.cls/sphinxhowto.cls -\newcommand{\py@HeaderFamily}{\spx@opt@HeaderFamily} - -% This sets up the fancy chapter headings that make the documents look -% at least a little better than the usual LaTeX output. -\@ifpackagewith{fncychap}{Bjarne}{ - \ChNameVar {\raggedleft\normalsize \py@HeaderFamily} - \ChNumVar {\raggedleft\Large \py@HeaderFamily} - \ChTitleVar{\raggedleft\Large \py@HeaderFamily} - % This creates (numbered) chapter heads without the leading \vspace*{}: - \def\@makechapterhead#1{% - {\parindent \z@ \raggedright \normalfont - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \DOCH - \fi - \fi - \interlinepenalty\@M - \if@mainmatter - \DOTI{#1}% - \else% - \DOTIS{#1}% - \fi - }} -}{}% <-- "false" clause of \@ifpackagewith - -% fix fncychap's bug which uses prematurely the \textwidth value -\@ifpackagewith{fncychap}{Bjornstrup} - {\AtBeginDocument{\mylen\textwidth\advance\mylen-2\myhi}}% - {}% <-- "false" clause of \@ifpackagewith - - -\endinput diff --git a/docs/build/latex/sphinxlatexstylepage.sty b/docs/build/latex/sphinxlatexstylepage.sty deleted file mode 100644 index 53f9e48..0000000 --- a/docs/build/latex/sphinxlatexstylepage.sty +++ /dev/null @@ -1,73 +0,0 @@ -%% PAGE STYLING -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexstylepage}[2021/01/27 page styling] - -% Separate paragraphs by space by default. -\RequirePackage{parskip} - -% Style parameters and macros used by most documents here -\raggedbottom -\sloppy -\hbadness = 5000 % don't print trivial gripes - -% Require package fancyhdr except under memoir class -\@ifclassloaded{memoir}{}{\RequirePackage{fancyhdr}} -% Use \pagestyle{normal} as the primary pagestyle for text. -% Redefine the 'normal' header/footer style when using "fancyhdr" package: -\@ifpackageloaded{fancyhdr}{% - \ltx@ifundefined{c@chapter} - {% no \chapter, "howto" (non-Japanese) docclass - \fancypagestyle{plain}{ - \fancyhf{} - \fancyfoot[C]{{\py@HeaderFamily\thepage}} - \renewcommand{\headrulewidth}{0pt} - \renewcommand{\footrulewidth}{0pt} - } - % Same as 'plain', this way we can use it in template - % FIXME: shouldn't this have a running header with Name and Release like 'manual'? - \fancypagestyle{normal}{ - \fancyhf{} - \fancyfoot[C]{{\py@HeaderFamily\thepage}} - \renewcommand{\headrulewidth}{0pt} - \renewcommand{\footrulewidth}{0pt} - } - }% - {% classes with \chapter command - \fancypagestyle{normal}{ - \fancyhf{} - \fancyfoot[RO]{{\py@HeaderFamily\thepage}} - \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}} - \fancyhead[RO]{{\py@HeaderFamily \@title\sphinxheadercomma\py@release}} - \if@twoside - \fancyfoot[LE]{{\py@HeaderFamily\thepage}} - \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}} - \fancyhead[LE]{{\py@HeaderFamily \@title\sphinxheadercomma\py@release}} - \fi - \renewcommand{\headrulewidth}{0.4pt} - \renewcommand{\footrulewidth}{0.4pt} - % define chaptermark with \@chappos when \@chappos is available for Japanese - \ltx@ifundefined{@chappos}{} - {\def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}}} - } - % Update the plain style so we get the page number & footer line, - % but not a chapter or section title. This is to keep the first - % page of a chapter `clean.' - \fancypagestyle{plain}{ - \fancyhf{} - \fancyfoot[RO]{{\py@HeaderFamily\thepage}} - \if@twoside\fancyfoot[LE]{{\py@HeaderFamily\thepage}}\fi - \renewcommand{\headrulewidth}{0pt} - \renewcommand{\footrulewidth}{0.4pt} - } - } - } - {% no fancyhdr: memoir class - % Provide default for 'normal' style simply as an alias of 'plain' style - % This way we can use \pagestyle{normal} in LaTeX template - \def\ps@normal{\ps@plain} - % Users of memoir class are invited to redefine 'normal' style in preamble - } - - -\endinput diff --git a/docs/build/latex/sphinxlatexstyletext.sty b/docs/build/latex/sphinxlatexstyletext.sty deleted file mode 100644 index d083cd9..0000000 --- a/docs/build/latex/sphinxlatexstyletext.sty +++ /dev/null @@ -1,145 +0,0 @@ -%% TEXT STYLING -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatexstyletext}[2024/07/28 v8.1.0 text styling] - -% 7.4.0 has moved all that is related to admonitions to sphinxlatexadmonitions.sty -% 8.1.0 has moved topic/contents/sidebar to sphinxlatexshadowbox.sty -% Most everything left here consists of macros which are part of the latex markup -% produced by the Sphinx LaTeX writer. - -% Some custom font markup commands. -\protected\def\sphinxstrong#1{\textbf{#1}} -\protected\def\sphinxcode#1{\texttt{#1}} -\protected\def\sphinxbfcode#1{\textbf{\sphinxcode{#1}}} -\protected\def\sphinxemail#1{\textsf{#1}} -\protected\def\sphinxtablecontinued#1{\textsf{#1}} -\protected\def\sphinxtitleref#1{\emph{#1}} -\protected\def\sphinxmenuselection#1{\emph{#1}} -\protected\def\sphinxguilabel#1{\emph{#1}} -\protected\def\sphinxkeyboard#1{\sphinxcode{#1}} -\protected\def\sphinxaccelerator#1{\underline{#1}} -\protected\def\sphinxcrossref#1{\emph{#1}} -\protected\def\sphinxtermref#1{\emph{#1}} -\protected\def\sphinxsamedocref#1{\emph{#1}} -\protected\def\sphinxparam#1{\emph{#1}} -\protected\def\sphinxtypeparam#1{\emph{#1}} -% \optional is used for ``[, arg]``, i.e. desc_optional nodes. -\long\protected\def\sphinxoptional#1{% - {\sphinxoptionalhook\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}} -\let\sphinxoptionalhook\empty - -% additional customizable styling -\def\sphinxstyleindexentry #1{\texttt{#1}} -\def\sphinxstyleindexextra #1{ (\emph{#1})} -\def\sphinxstyleindexpageref #1{, \pageref{#1}} -\def\sphinxstyleindexpagemain#1{\textbf{#1}} -\def\spxentry{\@backslashchar spxentry}% let to \sphinxstyleindexentry in index -\def\spxextra{\@backslashchar spxextra}% let to \sphinxstyleindexextra in index -\def\sphinxstyleindexlettergroup #1% - {{\Large\sffamily#1}\nopagebreak\vspace{1mm}} -\def\sphinxstyleindexlettergroupDefault #1% - {{\Large\sffamily\sphinxnonalphabeticalgroupname}\nopagebreak\vspace{1mm}} -\protected\def\sphinxstyleothertitle #1{\textbf{#1}} -% \text.. commands do not allow multiple paragraphs -% attention, this one is not self-delimiting -\protected\def\sphinxstyletheadfamily {\sffamily} -\protected\def\sphinxstyleemphasis #1{\emph{#1}} -\protected\def\sphinxstyleliteralemphasis#1{\emph{\sphinxcode{#1}}} -\protected\def\sphinxstylestrong #1{\textbf{#1}} -\protected\def\sphinxstyleliteralstrong#1{\sphinxbfcode{#1}} -\protected\def\sphinxstyleabbreviation #1{\textsc{#1}} -\protected\def\sphinxstyleliteralintitle#1{\sphinxcode{#1}} -\newcommand*\sphinxstylecodecontinued[1]{{\footnotesize(#1)}}% -\newcommand*\sphinxstylecodecontinues[1]{{\footnotesize(#1)}}% -% figure legend comes after caption and may contain arbitrary body elements -\newenvironment{sphinxlegend}{\par\small}{\par} -% reduce hyperref "Token not allowed in a PDF string" warnings on PDF builds -\AtBeginDocument{\pdfstringdefDisableCommands{% -% all "protected" macros possibly ending up in section titles should be here -% TODO: examine if \sphinxhref, \sphinxurl, \sphinnolinkurl should be handled - \let\sphinxstyleemphasis \@firstofone - \let\sphinxstyleliteralemphasis \@firstofone - \let\sphinxstylestrong \@firstofone - \let\sphinxstyleliteralstrong \@firstofone - \let\sphinxstyleabbreviation \@firstofone - \let\sphinxstyleliteralintitle \@firstofone - \let\sphinxupquote \@firstofone - \let\sphinxstrong \@firstofone - \let\sphinxcode \@firstofone - \let\sphinxbfcode \@firstofone - \let\sphinxemail \@firstofone - \let\sphinxcrossref \@firstofone - \let\sphinxtermref \@firstofone - \let\sphinxsamedocref\@firstofone - \let\sphinxhyphen\sphinxhyphenforbookmarks - \def\PYG#1#2{#2}% (can not yet appear in section titles, but perhaps in future) -}} - -% Special characters -% -\def\sphinxparamcomma{, }% by default separate parameters with comma + space -% If the signature is rendered with one line per param, this wil be used -% instead (this \texttt makes the comma slightly more distinctive). -\def\sphinxparamcommaoneperline{\texttt{,}} -% -% The \kern\z@ is to prevent en-dash and em-dash TeX ligatures. -% A linebreak can occur after the dash in regular text (this is -% normal behaviour of "-" in TeX, it is not related to \kern\z@). -% -% Parsed-literals and inline literals also use the \sphinxhyphen -% but linebreaks there are prevented due to monospace font family. -% (xelatex needs a special addition, cf. sphinxlatexliterals.sty) -% -% Inside code-blocks, dashes are escaped via another macro, from -% Pygments latex output (search for \PYGZhy in sphinxlatexliterals.sty), -% and are configured to allow linebreaks despite the monospace font. -% (the #1 swallows the {} from \sphinxhyphen{} mark-up) -\protected\def\sphinxhyphen#1{-\kern\z@} -\protected\def\sphinxhyphennobreak#1{\mbox{-}} -% The {} from texescape mark-up is kept, else -- gives en-dash in PDF bookmark -\def\sphinxhyphenforbookmarks{-} - -% For curly braces inside \index macro -\def\sphinxleftcurlybrace{\{} -\def\sphinxrightcurlybrace{\}} - -% Declare Unicode characters used by linux tree command to pdflatex utf8/utf8x -\def\spx@bd#1#2{% - \leavevmode - \begingroup - \ifx\spx@bd@height \@undefined\def\spx@bd@height{\baselineskip}\fi - \ifx\spx@bd@width \@undefined\setbox0\hbox{0}\def\spx@bd@width{\wd0 }\fi - \ifx\spx@bd@thickness\@undefined\def\spx@bd@thickness{.6\p@}\fi - \ifx\spx@bd@lower \@undefined\def\spx@bd@lower{\dp\strutbox}\fi - \lower\spx@bd@lower#1{#2}% - \endgroup -}% -\@namedef{sphinx@u2500}% BOX DRAWINGS LIGHT HORIZONTAL - {\spx@bd{\vbox to\spx@bd@height} - {\vss\hrule\@height\spx@bd@thickness - \@width\spx@bd@width\vss}}% -\@namedef{sphinx@u2502}% BOX DRAWINGS LIGHT VERTICAL - {\spx@bd{\hb@xt@\spx@bd@width} - {\hss\vrule\@height\spx@bd@height - \@width \spx@bd@thickness\hss}}% -\@namedef{sphinx@u2514}% BOX DRAWINGS LIGHT UP AND RIGHT - {\spx@bd{\hb@xt@\spx@bd@width} - {\hss\raise.5\spx@bd@height - \hb@xt@\z@{\hss\vrule\@height.5\spx@bd@height - \@width \spx@bd@thickness\hss}% - \vbox to\spx@bd@height{\vss\hrule\@height\spx@bd@thickness - \@width.5\spx@bd@width\vss}}}% -\@namedef{sphinx@u251C}% BOX DRAWINGS LIGHT VERTICAL AND RIGHT - {\spx@bd{\hb@xt@\spx@bd@width} - {\hss - \hb@xt@\z@{\hss\vrule\@height\spx@bd@height - \@width \spx@bd@thickness\hss}% - \vbox to\spx@bd@height{\vss\hrule\@height\spx@bd@thickness - \@width.5\spx@bd@width\vss}}}% -\protected\def\sphinxunichar#1{\@nameuse{sphinx@u#1}}% - -% Tell TeX about pathological hyphenation cases: -\hyphenation{Base-HTTP-Re-quest-Hand-ler} - -\endinput diff --git a/docs/build/latex/sphinxlatextables.sty b/docs/build/latex/sphinxlatextables.sty deleted file mode 100644 index 4114955..0000000 --- a/docs/build/latex/sphinxlatextables.sty +++ /dev/null @@ -1,1241 +0,0 @@ -%% TABLES (WITH SUPPORT FOR MERGED CELLS OF GENERAL CONTENTS) -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxlatextables}[2024/07/01 v7.4.0 tables]% - -% Provides support for this output mark-up from Sphinx latex writer -% and table templates: -% -% - the tabulary and longtable environments from the eponymous packages -% - the varwidth environment -% - the >{} etc mark-up possible in tabularcolumns is from array package -% which is loaded by longtable and tabulary -% - \X, \Y, T column types; others (L, C, R, J) are from tabulary package -% - \sphinxaftertopcaption -% - \sphinxatlongtableend -% - \sphinxatlongtablestart -% - \sphinxattableend -% - \sphinxattablestart -% - \sphinxcapstartof -% - \sphinxcolwidth -% - \sphinxlongtablecapskipadjust -% - \sphinxmultirow -% - \sphinxstartmulticolumn -% - \sphinxstopmulticolumn -% - \sphinxtablestrut -% - \sphinxthecaptionisattop -% - \sphinxthelongtablecaptionisattop -% - \sphinxhline -% - \sphinxcline -% - \sphinxvlinecrossing -% - \sphinxfixclines -% - \sphinxtoprule -% - \sphinxmidrule -% - \sphinxbottomrule -% - \sphinxtableatstartofbodyhook -% - \sphinxtableafterendhook -% - \sphinxthistablewithglobalstyle -% - \sphinxthistablewithbooktabsstyle -% - \sphinxthistablewithborderlessstyle -% - \sphinxthistablewithstandardstyle -% - \sphinxthistablewithcolorrowsstyle -% - \sphinxthistablewithnocolorrowsstyle -% - \sphinxthistablewithvlinesstyle -% - \sphinxthistablewithnovlinesstyle -% -% Also provides user command (see docs) -% - \sphixncolorblend -% (Sphinx 7.4.0 now requires xcolor, so \sphinxcolorblend does not check -% its availability anymore) -% -% Executes \RequirePackage for: -% -% - tabulary -% - longtable -% - varwidth -% - colortbl -% - booktabs if 'booktabs' in latex_table_style -% -% Extends tabulary and longtable via patches and custom macros to support -% merged cells possibly containing code-blocks in complex tables - -\RequirePackage{tabulary} -% tabulary has a bug with its re-definition of \multicolumn in its first pass -% which is not \long. But now Sphinx does not use LaTeX's \multicolumn but its -% own macro. Hence we don't even need to patch tabulary. See -% sphinxpackagemulticell.sty -% X or S (Sphinx) may have meanings if some table package is loaded hence -% \X was chosen to avoid possibility of conflict -\newcolumntype{\X}[2]{p{\dimexpr - (\linewidth-\spx@arrayrulewidth)*#1/#2-\tw@\tabcolsep-\spx@arrayrulewidth\relax}} -\newcolumntype{\Y}[1]{p{\dimexpr - #1\dimexpr\linewidth-\spx@arrayrulewidth\relax-\tw@\tabcolsep-\spx@arrayrulewidth\relax}} -% \spx@arrayrulewidth is used internally and its meaning will be set according -% to the table type; no extra user code should modify it. In particular any -% \setlength{\spx@arrayrulewidth}{...} may break all of LaTeX... (really...) -\def\spx@arrayrulewidth{\arrayrulewidth}% 5.3.0, to be adjusted by each table -% using here T (for Tabulary) feels less of a problem than the X could be -\newcolumntype{T}{J}% -% For tables allowing pagebreaks -\RequirePackage{longtable} -% User interface to set-up whitespace before and after tables: -\newcommand*\sphinxtablepre {0pt}% -\newcommand*\sphinxtablepost{\medskipamount}% -% Space from caption baseline to top of table or frame of literal-block -\newcommand*\sphinxbelowcaptionspace{.5\sphinxbaselineskip}% -% as one can not use \baselineskip from inside longtable (it is zero there) -% we need \sphinxbaselineskip, which defaults to \baselineskip -\def\sphinxbaselineskip{\baselineskip}% -% The following is to ensure that, whether tabular(y) or longtable: -% - if a caption is on top of table: -% a) the space between its last baseline and the top rule of table is -% exactly \sphinxbelowcaptionspace -% b) the space from last baseline of previous text to first baseline of -% caption is exactly \parskip+\baselineskip+ height of a strut. -% c) the caption text will wrap at width \LTcapwidth (4in) -% - make sure this works also if "caption" package is loaded by user -% (with its width or margin option taking place of \LTcapwidth role) -% TODO: obtain same for caption of literal block: a) & c) DONE, b) TO BE DONE -% -% To modify space below such top caption, adjust \sphinxbelowcaptionspace -% To add or remove space above such top caption, adjust \sphinxtablepre: -% notice that \abovecaptionskip, \belowcaptionskip, \LTpre are **ignored** -% A. Table with longtable -\def\sphinxatlongtablestart - {\par - \vskip\parskip - \vskip\dimexpr\sphinxtablepre\relax % adjust vertical position - \vbox{}% get correct baseline from above - \LTpre\z@skip\LTpost\z@skip % set to zero longtable's own skips - \edef\sphinxbaselineskip{\dimexpr\the\dimexpr\baselineskip\relax\relax}% - \spx@inframedtrue % message to sphinxheavybox - }% -% Compatibility with caption package -\def\sphinxthelongtablecaptionisattop{% - \spx@ifcaptionpackage{\noalign{\vskip-\belowcaptionskip}}{}% -}% -% Achieves exactly \sphinxbelowcaptionspace below longtable caption -\def\sphinxlongtablecapskipadjust - {\dimexpr-\dp\strutbox - -\spx@ifcaptionpackage{\abovecaptionskip}{\sphinxbaselineskip}% - +\sphinxbelowcaptionspace\relax}% -\def\sphinxatlongtableend{\@nobreakfalse % latex3/latex2e#173 - \prevdepth\z@\vskip\sphinxtablepost\relax}% -% B. Table with tabular or tabulary -\def\sphinxattablestart{\par\vskip\dimexpr\sphinxtablepre\relax - \spx@inframedtrue % message to sphinxheavybox - }% -\let\sphinxattableend\sphinxatlongtableend -% This is used by tabular and tabulary templates -\newcommand*\sphinxcapstartof[1]{% - \vskip\parskip - \vbox{}% force baselineskip for good positioning by capstart of hyperanchor - % hyperref puts the anchor 6pt above this baseline; in case of caption - % this baseline will be \ht\strutbox above first baseline of caption - \def\@captype{#1}% - \capstart -% move back vertically, as tabular (or its caption) will compensate - \vskip-\baselineskip\vskip-\parskip -}% -\def\sphinxthecaptionisattop{% locate it after \sphinxcapstartof - \spx@ifcaptionpackage - {\caption@setposition{t}% - \vskip\baselineskip\vskip\parskip % undo those from \sphinxcapstartof - \vskip-\belowcaptionskip % anticipate caption package skip - % caption package uses a \vbox, not a \vtop, so "single line" case - % gives different result from "multi-line" without this: - \nointerlineskip - }% - {}% -}% -\def\sphinxthecaptionisatbottom{% (not finalized; for template usage) - \spx@ifcaptionpackage{\caption@setposition{b}}{}% -}% -% The aim of \sphinxcaption is to apply to tabular(y) the maximal width -% of caption as done by longtable -\def\sphinxtablecapwidth{\LTcapwidth}% -\newcommand\sphinxcaption{\@dblarg\spx@caption}% -\long\def\spx@caption[#1]#2{% - \noindent\hb@xt@\linewidth{\hss - \vtop{\@tempdima\dimexpr\sphinxtablecapwidth\relax -% don't exceed linewidth for the caption width - \ifdim\@tempdima>\linewidth\hsize\linewidth\else\hsize\@tempdima\fi -% longtable ignores \abovecaptionskip/\belowcaptionskip, so do the same here - \abovecaptionskip\sphinxabovecaptionskip % \z@skip - \belowcaptionskip\sphinxbelowcaptionskip % \z@skip - \caption[{#1}]% - {\strut\ignorespaces#2\ifhmode\unskip\@finalstrut\strutbox\fi}% - }\hss}% - \par\prevdepth\dp\strutbox -}% -\def\sphinxabovecaptionskip{\z@skip}% Do not use! Flagged for removal -\def\sphinxbelowcaptionskip{\z@skip}% Do not use! Flagged for removal -% This wrapper of \abovecaptionskip is used in sphinxVerbatim for top -% caption, and with another value in sphinxVerbatimintable -% TODO: To unify space above caption of a code-block with the one above -% caption of a table/longtable, \abovecaptionskip must not be used -% This auxiliary will get renamed and receive a different meaning -% in future. -\def\spx@abovecaptionskip{\abovecaptionskip}% -% Achieve \sphinxbelowcaptionspace below a caption located above a tabular -% or a tabulary -\newcommand\sphinxaftertopcaption -{% - \spx@ifcaptionpackage - {\par\prevdepth\dp\strutbox\nobreak\vskip-\abovecaptionskip}{\nobreak}% - \vskip\dimexpr\sphinxbelowcaptionspace\relax - \vskip-\baselineskip\vskip-\parskip -}% -% varwidth is crucial for our handling of general contents in merged cells -\RequirePackage{varwidth} -% but addition of a compatibility patch with hyperref is needed -% (tested with varwidth v 0.92 Mar 2009) -\AtBeginDocument {% - \let\@@vwid@Hy@raisedlink\Hy@raisedlink - \long\def\@vwid@Hy@raisedlink#1{\@vwid@wrap{\@@vwid@Hy@raisedlink{#1}}}% - \edef\@vwid@setup{% - \let\noexpand\Hy@raisedlink\noexpand\@vwid@Hy@raisedlink % HYPERREF ! - \unexpanded\expandafter{\@vwid@setup}}% -}% - -% NOTA BENE: since the multicolumn and multirow code was written Sphinx -% decided to prefix non public internal macros by \spx@ and in fact all -% such macros here should now be prefixed by \spx@table@, but doing the -% update is delayed to later. (written at 5.3.0) - -%%%%%%%%%%%%%%%%%%%%% -% --- MULTICOLUMN --- -% standard LaTeX's \multicolumn -% 1. does not allow verbatim contents, -% 2. interacts very poorly with tabulary. -% -% It is needed to write own macros for Sphinx: to allow code-blocks in merged -% cells rendered by tabular/longtable, and to allow multi-column cells with -% paragraphs to be taken into account sanely by tabulary algorithm for column -% widths. -% -% This requires quite a bit of hacking. First, in Sphinx, the multi-column -% contents will *always* be wrapped in a varwidth environment. The issue -% becomes to pass it the correct target width. We must trick tabulary into -% believing the multicolumn is simply separate columns, else tabulary does not -% incorporate the contents in its algorithm. But then we must clear the -% vertical rules... -% -% configuration of tabulary -\setlength{\tymin}{3\fontcharwd\font`0 }% minimal width of "squeezed" columns -\setlength{\tymax}{10000pt}% allow enough room for paragraphs to "compete" -% we need access to tabulary's final computed width. \@tempdima is too volatile -% to hope it has kept tabulary's value when \sphinxcolwidth needs it. -\newdimen\sphinx@TY@tablewidth -\def\tabulary{% - \def\TY@final{\sphinx@TY@tablewidth\@tempdima\tabular}% - \let\endTY@final\endtabular - \TY@tabular}% -% next hack is needed only if user has set latex_use_latex_multicolumn to True: -% it fixes tabulary's bug with \multicolumn defined "short" in first pass. (if -% upstream tabulary adds a \long, our extra one causes no harm) -\def\sphinx@tempa #1\def\multicolumn#2#3#4#5#6#7#8#9\sphinx@tempa - {\def\TY@tab{#1\long\def\multicolumn####1####2####3{\multispan####1\relax}#9}}% -\expandafter\sphinx@tempa\TY@tab\sphinx@tempa -% -% TN. 1: as \omit is never executed, Sphinx multicolumn does not need to worry -% like standard multicolumn about |l| vs l|. On the other hand it assumes -% columns are separated by a | ... (if not it will add extraneous -% \arrayrulewidth space for each column separation in its estimate of available -% width). -% -% Update at 5.3.0: code uses \spx@arrayrulewidth which is kept in sync with the -% table column specification (aka preamble): -% - no | in preamble: \spx@arrayrulewidth -> \z@ -% - at least a | in the preamble: \spx@arrayrulewidth -> \arrayrulewidth -% This is used for computation of merged cells widths. Mixed preambles using -% at least a | but not using it for all columns (as can be obtained via the -% tabularcolumns directive) may cause some merged cells contents to be slightly -% shifted to the left as they assume merged columns are | separated where in -% fact they perhaps are not. -% -% TN. 1b: as Sphinx multicolumn uses neither \omit nor \span, it can not -% (easily) get rid of extra macros from >{...} or <{...} between columns. At -% least, it has been made compatible with colortbl's \columncolor. -% -% TN. 2: tabulary's second pass is handled like tabular/longtable's single -% pass, with the difference that we hacked \TY@final to set in -% \sphinx@TY@tablewidth the final target width as computed by tabulary. This is -% needed only to handle columns with a "horizontal" specifier: "p" type columns -% (inclusive of tabulary's LJRC) holds the target column width in the -% \linewidth dimension. -% -% TN. 3: use of \begin{sphinxmulticolumn}...\end{sphinxmulticolumn} mark-up -% would need some hacking around the fact that groups can not span across table -% cells (the code does inserts & tokens, see TN1b). It was decided to keep it -% simple with \sphinxstartmulticolumn...\sphinxstopmulticolumn. -% -% MEMO about nesting: if sphinxmulticolumn is encountered in a nested tabular -% inside a tabulary it will think to be at top level in the tabulary. But -% Sphinx generates no nested tables, and if some LaTeX macro uses internally a -% tabular this will not have a \sphinxstartmulticolumn within it! -% -% 5.3.0 adds a check for multirow as single-row multi-column will allow a row -% colour but multi-row multi-column should not. -% Attention that this assumes \sphinxstartmulticolumn is always followed -% in latex mark-up either by \sphinxmultirow or \begin (from \begin{varwidth}). -\def\sphinxstartmulticolumn#1#2{% - \ifx\sphinxmultirow#2% - \gdef\spx@table@hackCT@inmergedcell{\spx@table@hackCT@nocolor}% - \else - \global\let\spx@table@hackCT@inmergedcell\spx@@table@hackCT@inmergedcell - \fi - \sphinx@startmulticolumn{#1}#2% -}% -\def\sphinx@startmulticolumn{% - \ifx\equation$% $ tabulary's first pass - \expandafter\sphinx@TYI@start@multicolumn - \else % either not tabulary or tabulary's second pass - \expandafter\sphinx@start@multicolumn - \fi -}% -\def\sphinxstopmulticolumn{% - \ifx\equation$% $ tabulary's first pass - \expandafter\sphinx@TYI@stop@multicolumn - \else % either not tabulary or tabulary's second pass - \ignorespaces - \fi -}% -\def\sphinx@TYI@start@multicolumn#1{% - % use \gdef always to avoid stack space build up - \gdef\sphinx@tempa{#1}\begingroup\setbox\z@\hbox\bgroup -}% -\def\sphinx@TYI@stop@multicolumn{\egroup % varwidth was used with \tymax - \xdef\sphinx@tempb{\the\dimexpr\wd\z@/\sphinx@tempa}% per column width - \endgroup - \expandafter\sphinx@TYI@multispan\expandafter{\sphinx@tempa}% -}% -\def\sphinx@TYI@multispan #1{% - \kern\sphinx@tempb\ignorespaces % the per column occupied width - \ifnum#1>\@ne % repeat, taking into account subtleties of TeX's & ... - \expandafter\sphinx@TYI@multispan@next\expandafter{\the\numexpr#1-\@ne\expandafter}% - \fi -}% -\def\sphinx@TYI@multispan@next{&\relax\sphinx@TYI@multispan}% -% -% Now the branch handling either the second pass of tabulary or the single pass -% of tabular/longtable. This is the delicate part where we gather the -% dimensions from the p columns either set-up by tabulary or by user p column -% or Sphinx \X, \Y columns. The difficulty is that to get the said width, the -% template must be inserted (other hacks would be horribly complicated except -% if we rewrote crucial parts of LaTeX's \@array !) and we can not do -% \omit\span like standard \multicolumn's easy approach. Thus we must cancel -% the \vrule separators. Also, perhaps the column specifier is of the l, c, r -% type, then we attempt an ad hoc rescue to give varwidth a reasonable target -% width. -\def\sphinx@start@multicolumn#1{% - \gdef\sphinx@multiwidth{0pt}\gdef\sphinx@tempa{#1}\sphinx@multispan{#1}% -}% -\def\sphinx@multispan #1{% - \ifnum#1=\@ne\expandafter\sphinx@multispan@end - \else\expandafter\sphinx@multispan@next - \fi {#1}% -}% -\def\sphinx@multispan@next #1{% - % trick to recognize L, C, R, J or p, m, b type columns - \ifdim\baselineskip>\z@ - \gdef\sphinx@tempb{\linewidth}% - \else - % if in an l, r, c type column, try and hope for the best - \xdef\sphinx@tempb{\the\dimexpr(\ifx\TY@final\@undefined\linewidth\else - \sphinx@TY@tablewidth\fi-\spx@arrayrulewidth)/\sphinx@tempa - -\tw@\tabcolsep-\spx@arrayrulewidth\relax}% - \fi - \noindent\kern\sphinx@tempb\relax - \xdef\sphinx@multiwidth - {\the\dimexpr\sphinx@multiwidth+\sphinx@tempb+\tw@\tabcolsep+\spx@arrayrulewidth}% - \spx@table@hackCT@fixcolorpanel - % silence a | column separator in our merged cell - \spx@table@hackCT@inhibitvline - % prevent column colours to interfere with our multi-column but allow row - % colour (we can't obey a \cellcolor as it has not be seen yet at this stage) - \spx@table@hackCT@inmergedcell&\relax - % repeat - \expandafter\sphinx@multispan\expandafter{\the\numexpr#1-\@ne}% -}% -\def\sphinx@multispan@end#1{% - % first, trace back our steps horizontally - \noindent\kern-\dimexpr\sphinx@multiwidth\relax - % and now we set the final computed width for the varwidth environment - \ifdim\baselineskip>\z@ - \xdef\sphinx@multiwidth{\the\dimexpr\sphinx@multiwidth+\linewidth}% - \else - \xdef\sphinx@multiwidth{\the\dimexpr\sphinx@multiwidth+ - (\ifx\TY@final\@undefined\linewidth\else - \sphinx@TY@tablewidth\fi-\spx@arrayrulewidth)/\sphinx@tempa - -\tw@\tabcolsep-\spx@arrayrulewidth\relax}% - \fi - % last cell of the multi-column - \aftergroup\spx@table@hackCT@fixcolorpanel - \aftergroup\spx@table@hackCT@inmergedcell -}% -\newcommand*\sphinxcolwidth[2]{% - % this dimension will always be used for varwidth, and serves as maximum - % width when cells are merged either via multirow or multicolumn or both, - % as always their contents is wrapped in varwidth environment. - \ifnum#1>\@ne % multi-column (and possibly also multi-row) - % we wrote our own multicolumn code especially to handle that (and allow - % verbatim contents) - \ifx\equation$%$ - \tymax % first pass of tabulary (cf MEMO above regarding nesting) - \else % the \@gobble thing is for compatibility with standard \multicolumn - \sphinx@multiwidth\@gobble{#1/#2}% - \fi - \else % single column multirow - \ifx\TY@final\@undefined % not a tabulary. - \ifdim\baselineskip>\z@ - % in a p{..} type column, \linewidth is the target box width - \linewidth - \else - % l, c, r columns. Do our best. - \dimexpr(\linewidth-\spx@arrayrulewidth)/#2- - \tw@\tabcolsep-\spx@arrayrulewidth\relax - \fi - \else % in tabulary - \ifx\equation$%$% first pass - \tymax % it is set to a big value so that paragraphs can express themselves - \else - % second pass. - \ifdim\baselineskip>\z@ - \linewidth % in a L, R, C, J column or a p, \X, \Y ... - \else - % we have hacked \TY@final to put in \sphinx@TY@tablewidth the table width - \dimexpr(\sphinx@TY@tablewidth-\spx@arrayrulewidth)/#2- - \tw@\tabcolsep-\spx@arrayrulewidth\relax - \fi - \fi - \fi - \fi -}% -% fallback default in case user has set latex_use_latex_multicolumn to True: -% \sphinxcolwidth will use this only inside LaTeX's standard \multicolumn -\def\sphinx@multiwidth #1#2{\dimexpr % #1 to gobble the \@gobble (!) - (\ifx\TY@final\@undefined\linewidth\else\sphinx@TY@tablewidth\fi - -\spx@arrayrulewidth)*#2-\tw@\tabcolsep-\spx@arrayrulewidth\relax}% - -% \spx@table@hackCT@inhibitvline -% packages like colortbl add group levels, we need to "climb back up" to be -% able to hack the \vline and also the colortbl inserted tokens. The hack -% sets the \arrayrulewidth to \z@ to inhibit a | separator at right end -% of the cell, if present (our code does not use \omit so can not avoid the -% \vline insertion, but setting its width to zero makes it do nothing). -% Some subtlety with colour panels must be taken care of. -\def\spx@table@hackCT@inhibitvline{\ifnum\currentgrouptype=6\relax - \kern\spx@arrayrulewidth % will be compensated by extra colour panel left overhang - \arrayrulewidth\z@% trick to inhibit the {\vrule width \arrayrulewidth} - \else\aftergroup\spx@table@hackCT@inhibitvline\fi}% - -% hacking around colour matters -% Sphinx 1.6 comment: -% It turns out \CT@row@color is not expanded contrarily to \CT@column@color -% during LaTeX+colortbl preamble preparation, hence it would be possible for -% \CT@setup to discard only the column color and choose to obey or not -% row color and cell color. It would even be possible to propagate cell color -% to row color for the duration of the Sphinx multicolumn... the (provisional?) -% choice has been made to cancel the colortbl colours for the multicolumn -% duration. -% Sphinx 5.3.0 comment: -% - colortbl has no mechanism to disable colour background in a given cell: -% \cellcolor triggers one more \color, but has no possibility to revert -% a previously emitted \color, only to override it via an additional \color -% - prior to 5.3.0, Sphinx did not officially support colour in tables, -% but it did have a mechanism to protect merged cells from being partly -% covered by colour panels at various places. At 5.3.0 this mechanism -% is relaxed a bit to allow row colour for a single-row merged cell. -% -% fixcolorpanel -\def\spx@table@hackCT@fixcolorpanel{\ifnum\currentgrouptype=6\relax - \edef\spx@table@leftcolorpanelextra - % \edef as \arrayrulewidth will be set to \z@ next, - % hence also \spx@arrayrulewidth... - {\sphinxcolorpanelextraoverhang+\the\spx@arrayrulewidth}% - \else\aftergroup\spx@table@hackCT@fixcolorpanel\fi}% -% -% inmergedcell -% \spx@table@hackCT@inmergedcell will be locally set to either this -% \spx@@table@hackCT@inmergedcell or to \spx@table@hackCT@nocolor -% "\let\spx@original@CT@setup\CT@setup" is done after loading colortbl -\def\spx@@table@hackCT@inmergedcell{\ifnum\currentgrouptype=6\relax - \let\CT@setup\spx@CT@setup@inmergedcell - \else\aftergroup\spx@@table@hackCT@inmergedcell\fi -}% -\newif\ifspx@table@inmergedcell -\def\spx@CT@setup@inmergedcell #1\endgroup{% - % - obey only row color and disable effect of \sphinxcolorblend - % - turn on the inmergedcell boolean to signal to \CT@row@color - \spx@original@CT@setup - \spx@table@inmergedcelltrue % needed by \CT@row@color - % deactivate effect of \sphinxcolorblend if it happened at all - \ifdefined\blendcolors\blendcolors{}\fi - \CT@row@color - \CT@do@color - \global\let\CT@cell@color\relax - \endgroup -}% -% -% nocolor -\def\spx@table@hackCT@nocolor{\ifnum\currentgrouptype=6\relax -% sadly \CT@column@color is possibly already expanded so we can't -% simply do \let\CT@column@color\relax etc... -% admittedly we could perhaps hack \CT@color but well - \let\CT@setup\spx@CT@setup@nocolor - \else\aftergroup\spx@table@hackCT@nocolor\fi -} -\def\spx@CT@setup@nocolor#1\endgroup{% - \global\let\CT@cell@color\relax - % the above fix was added at 5.3.0 - % formerly a \cellcolor added by a raw latex directive in the merged cell - % would have caused colour to apply to the *next* cell after the merged - % one; we don't support \cellcolor from merged cells contents anyhow. - \endgroup} -% -% norowcolor -\def\spx@table@hackCT@norowcolor{% -% a bit easier although merged cells complicate the matter as they do need -% to keep the rowcolor; and we can't know yet if we are in a merged cell - \ifnum\currentgrouptype=6\relax - \ifx\CT@row@color\relax - \else - \let\spx@saved@CT@row@color\CT@row@color - \def\CT@row@color{% - \ifspx@table@inmergedcell\expandafter\spx@saved@CT@row@color\fi - }% - \fi - \else\aftergroup\spx@table@hackCT@norowcolor\fi -} -% -% \sphinxcolorblend -\def\spx@table@hackCT@colorblend{% - \ifnum\currentgrouptype=6\relax - \expandafter\blendcolors\spx@colorblendparam - % merged cells will do a \blendcolors{} to cancel the effet - % we can not know here yet if in merged cell as the boolean - % \ifspx@table@inmergedcell is not yet updated - \else - \aftergroup\spx@table@hackCT@colorblend - \fi -} -\def\sphinxcolorblend#1{\gdef\spx@colorblendparam{{#1}}\spx@table@hackCT@colorblend} - - -%%%%%%%%%%%%%%%%%% -% --- MULTIROW --- -% standard \multirow -% 1. does not allow verbatim contents, -% 2. does not allow blank lines in its argument, -% 3. its * specifier means to typeset "horizontally" which is very -% bad for paragraph content. 2016 version has = specifier but it -% must be used with p type columns only, else results are bad, -% 4. it requires manual intervention if the contents is too long to fit -% in the asked-for number of rows. -% 5. colour panels (either from \rowcolor or \columncolor) will hide -% the bottom part of multirow text, hence manual tuning is needed -% to put the multirow insertion at the _bottom_. -% -% The Sphinx solution consists in always having contents wrapped -% in a varwidth environment so that it makes sense to estimate how many -% lines it will occupy, and then ensure by insertion of suitable struts -% that the table rows have the needed height. The needed mark-up is done -% by LaTeX writer, which has its own id for the merged cells. -% -% The colour issue is "solved" by clearing colour panels in all cells, -% whether or not the multirow is single-column or multi-column. -% -% MEMO at 5.3.0: to allow a multirow cell in a single column to react to -% \columncolor correctly, it seems only way is that the contents -% are inserted by bottom cell (this is mentioned in multirow.sty doc, too). -% Sphinx could at Python level "move" the contents to that cell. But the -% mechanism used here via \sphinxtablestrut to enlarge rows to make room for -% the contents if needed becomes more challenging yet, because \sphinxtablestrut -% mark-up will be parsed by TeX *before* it sees the contents of the merged -% cell.. So it seems the best way would be to actually store the contents into -% some owned-by-Sphinx box storage which needs to be globally allocated to -% that usage ; then we need multiple such boxes, say at least 5 to cover -% 99% or use case. Or perhaps some trick with storing in a \vbox and recovering -% via some \vsplit but this becomes complicated... perhaps in future. -% -% In passing we obtain baseline alignments across rows (only if -% \arraystretch is 1, as LaTeX's does not obey \arraystretch in "p" -% multi-line contents, only first and last line...) -% -% TODO: examine the situation with \arraystretch > 1. The \extrarowheight -% is hopeless for multirow anyhow, it makes baseline alignment strictly -% impossible. -\newcommand\sphinxmultirow[2]{\begingroup - % #1 = nb of spanned rows, #2 = Sphinx id of "cell", #3 = contents - % but let's fetch #3 in a way allowing verbatim contents ! - \def\sphinx@nbofrows{#1}\def\sphinx@cellid{#2}% - \afterassignment\sphinx@multirow\let\next= -}% -\def\sphinx@multirow {% - \setbox\z@\hbox\bgroup\aftergroup\sphinx@@multirow\strut -}% -\def\sphinx@@multirow {% -% MEMO: we could check status of \CT@cell@color here, but unfortunately we -% can't know the exact height which will be covered by the cells in total -% (it may be more than our \box\z@ dimensions). We could use an \fcolorbox -% wrapper on \box\z@ but this will not extend precisely to the bottom rule. -% -% Only solution if we want to obey a raw \cellcolor, or a \columncolor, seems -% to delay unboxing the gathered contents as part of the bottom row with -% a suitable vertical adjustment... -% - % The contents, which is a varwidth environment, has been captured in - % \box0 (a \hbox). - % We have with \sphinx@cellid an assigned unique id. The goal is to give - % about the same height to all the involved rows. - % For this Sphinx will insert a \sphinxtablestrut{cell_id} mark-up - % in LaTeX file and the expansion of the latter will do the suitable thing. - \dimen@\dp\z@ - \dimen\tw@\ht\@arstrutbox - \advance\dimen@\dimen\tw@ - \advance\dimen\tw@\dp\@arstrutbox - \count@=\dimen@ % type conversion dim -> int - \count\tw@=\dimen\tw@ - \divide\count@\count\tw@ % TeX division truncates - \advance\dimen@-\count@\dimen\tw@ - % 1300sp is about 0.02pt. For comparison a rule default width is 0.4pt. - % (note that if \count@ holds 0, surely \dimen@>1300sp) - \ifdim\dimen@>1300sp \advance\count@\@ne \fi - % now \count@ holds the count L of needed "lines" - % and \sphinx@nbofrows holds the number N of rows - % we have L >= 1 and N >= 1 - % if L is a multiple of N, ... clear what to do ! - % else write L = qN + r, 1 <= r < N and we will - % arrange for each row to have enough space for: - % q+1 "lines" in each of the first r rows - % q "lines" in each of the (N-r) bottom rows - % for a total of (q+1) * r + q * (N-r) = q * N + r = L - % It is possible that q == 0. - \count\tw@\count@ - % the TeX division truncates - \divide\count\tw@\sphinx@nbofrows\relax - \count4\count\tw@ % q - \multiply\count\tw@\sphinx@nbofrows\relax - \advance\count@-\count\tw@ % r - \expandafter\xdef\csname sphinx@tablestrut_\sphinx@cellid\endcsname - {\noexpand\sphinx@tablestrut{\the\count4}{\the\count@}{\sphinx@cellid}}% - \dp\z@\z@ - % this will use the real height if it is >\ht\@arstrutbox - \sphinxtablestrut{\sphinx@cellid}\box\z@ - \endgroup % group was opened in \sphinxmultirow -}% -\newcommand*\sphinxtablestrut[1]{% - % #1 is a "cell_id", i.e. the id of a merged group of table cells - \csname sphinx@tablestrut_#1\endcsname -}% -% LaTeX typesets the table row by row, hence each execution can do -% an update for the next row. -\newcommand*\sphinx@tablestrut[3]{\begingroup - % #1 = q, #2 = (initially) r, #3 = cell_id, q+1 lines in first r rows - % if #2 = 0, create space for max(q,1) table lines - % if #2 > 0, create space for q+1 lines and decrement #2 - \leavevmode - \count@#1\relax - \ifnum#2=\z@ - \ifnum\count@=\z@\count@\@ne\fi - \else - % next row will be with a #2 decremented by one - \expandafter\xdef\csname sphinx@tablestrut_#3\endcsname - {\noexpand\sphinx@tablestrut{#1}{\the\numexpr#2-\@ne}{#3}}% - \advance\count@\@ne - \fi - \vrule\@height\ht\@arstrutbox - \@depth\dimexpr\count@\ht\@arstrutbox+\count@\dp\@arstrutbox-\ht\@arstrutbox\relax - \@width\z@ - \endgroup - % we need this to avoid colour panels hiding bottom parts of multirow text - \spx@table@hackCT@nocolor -}% - -%%%%%%%%%%%%%%%%%% -% --- STYLING --- -% - -% -% Support for colour in table -% -% Core LaTeX package (very old, part of texlive-latex-base on Debian distr.) -% providing \columncolor, \rowcolor, \cellcolor and \arrayrulecolor. -\RequirePackage{colortbl} -\let\spx@original@CT@setup\CT@setup - -% LaTeX's \cline has **strong** deficiencies -% ****************************************** -% We work around them via an added \sphinxfixclines{number of columns} in the -% table mark-up, and also extra mark-up \sphinxvlinecrossing{col no} for -% crossings not contiguous to any cline. To fix the gap at left extremity of a -% \cline, we redefine the core LaTeX \c@line because this avoids adjoining a -% small square with potential PDF viewer anti-aliasing issues. We waited -% after loading colortbl because it also redefines \c@line for it to obey the -% colour set by \arrayrulecolor. -% MEMO: booktabs package does *not* redefine \@cline so we are safe here. -\def\@cline#1-#2\@nil{% - \omit - \@multicnt#1% - \advance\@multispan\m@ne - \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi - \@multicnt#2% - \advance\@multicnt-#1% - \advance\@multispan\@ne - {\CT@arc@ -% start of Sphinx modification - \ifnum#1>\@ne\kern-\spx@arrayrulewidth\fi% fix gap at join with vertical lines -% end of Sphinx modification -% Comments: -% -% If we had the information whether the previous column ended with a | or -% not, we could decide what to do here. Alternatively the mark-up could -% use either original \cline or the one modified as here depending on case. -% One wonders why LaTeX does not provide itself the alternative as a -% complement to \cline, to use on case by case basis. -% Here we handle both at same time via using the \spx@arrayrulewidth which -% will be \z@ if no | at all so will induce here nothing. -% -% As a result Sphinx basically supports well only tables having either all -% columns |-separated, or no | at all, as it uses \spx@arrayrrulewidth in -% all columns (here and in multicolumn code). -% -% We also considered a method not modifying \c@line but it requires too -% much extra mark-up from Python LaTeX writer and/or extra LaTeX coding. -% back to LaTeX+colortbl code - \leaders\hrule\@height\arrayrulewidth\hfill}% - \cr -% the last one will need to be compensated, this is job of \sphinxclines - \noalign{\vskip-\arrayrulewidth}% -} -\def\spx@table@fixvlinejoin{% - {\CT@arc@ % this is the color command set up by \arrayrulecolor - \vrule\@height\arrayrulewidth -% side remark: LaTeX has only a single \arrayrulewidth for all kinds -% for cell borders in table, horizontal or vertical... - \@depth\z@ - \@width\spx@arrayrulewidth - }% -} -% Sphinx LaTeX writer issues one such for each vertical line separating two -% contiguous multirow cells; i.e. those crossings which can are not already -% taken care of by our modified at left extremity \cline. -% One could imagine a more \...crossingS (plural) receiving a comma delimited -% list, which would simplify the mark-up but this would complexify both the -% Python and the LaTeX coding. -\def\sphinxtablevlinecrossing#1{% - \sphinxtabledecrementrownum - \omit - \@multispan{#1}% - \hfill - \spx@table@fixvlinejoin - \cr - \noalign{\vskip-\arrayrulewidth}% -} -% This "fixclines" is also needed if no \sphinxcline emitted and is useful -% even in extreme case with no \sphinxvlinecrossing either, to give correct -% height to multirow extending across all table width assuming other rows are -% separated generally by an \hline, so as to keep coherent line spacing. -% -% It is designed to work ok even if no | separators are in the table (because -% \spx@table@fixvlinejoin uses \spx@arrayrulewidth which is \z@ in that case). -\def\sphinxtablefixclines#1{% #1 is the number of columns of the table - \sphinxtabledecrementrownum - \omit - \spx@table@fixvlinejoin% unneeded if first \cline started at column 1 but does - % not hurt; fills small gap at left-bordered table - \@multispan{#1}% - \hfill - \spx@table@fixvlinejoin% fill small gap at right-bordered table - \cr - % this final one does NO \vskip-\arrayrulewidth... that's the whole point -} -%%%% end of \cline workarounds - -% -% - passing option "table" to xcolor also loads colortbl but we needed to -% load color or xcolor prior to the handling of the options -% -% - the \rowcolors command from [table]{xcolor} has various problems: -% -% * it is rigid and does not out-of-the-box allow a more complex scheme -% such as colorA+colorB+colorC+colorB+colorC+colorB+colorC... suitable to -% distinguish a header row. -% -% * its code does not export the used colour, an information which we may -% need for example to colourize the rule via \arrayrulecolor in the -% appropriate manner, for example to colourize the booktabs induced vertical -% whitespace to avoid gaps (if one wants to). -% -% * incompatibility with tabulary: the output depends on parity of total -% number of rows! -% -% * problems with longtable: the caption will receive a background colour -% panel, if we do not deactivate the \rowcolors action during definition of -% the headers and footers; this requires extra mark-up. Besides if we -% deactivate using \hiderowcolors during header and footer formation, the -% parity of the body rows is shifted, \rownum is even, not odd, at first body -% row. And setting \rownum at start of first body row is too late for -% influencing the colour. -% -% * it has a global impact and must be reset at each table. We can not -% issue it only once and it provides no public interface (without @) to -% cancel its effect conveniently (\hiderowcolors can only be used from -% *inside* a table.) -% -% * its core mechanism which increments the row count is triggered -% if a \cline is encountered... so this offsets the alternating colours... -% ... or not if there are two \cline's in the row... -% (as we will use same mechanism we have to correct this increment). -% -% So we need our own code. - -% Provide \rownum and rownum LaTeX counter (code copied from colortbl v1.0f) -\ltx@ifundefined{rownum}{% - \ltx@ifundefined{c@rownum}% - {\newcount\rownum\let\c@rownum\rownum}% - {\let\rownum\c@rownum}% - }% -{\let\c@rownum\rownum} -\providecommand\therownum{\arabic{rownum}} - -% extra overhang for color panels to avoid visual artifacts in pdf viewers -% (particularly if borderless) -\def\sphinxcolorpanelextraoverhang{0.1pt} -\def\spx@table@leftcolorpanelextra {\sphinxcolorpanelextraoverhang} -\def\spx@table@rightcolorpanelextra{\sphinxcolorpanelextraoverhang} -% the macro to which \CT@row@color will be set for coloured rows, serves both -% in header and body, the colours must have been defined at time of use -\def\spx@table@CT@row@color{\ifspx@table@inmergedcell - \CT@color{sphinxTableMergeColor}% - \else - \CT@color{sphinxTableRowColor}% - \fi - \@tempdimb\dimexpr\col@sep+\spx@table@leftcolorpanelextra\relax - \@tempdimc\dimexpr\col@sep+\spx@table@rightcolorpanelextra\relax - }% -% used by itself this will influence a single row if \CT@everycr is the -% colortbl one, to influences all rows the \CT@everycr must be modified (see -% below) -\def\sphinxrowcolorON {\global\let\CT@row@color\spx@table@CT@row@color}% -% this one turns off row colours until the next \sphinxrowcolorON -\def\sphinxrowcolorOFF{\global\let\CT@row@color\relax}% -% this one inhibits the row colour in one cell only (can be used as -% >{\sphinxnorowcolor} for turning off row colours in a given column) -\def\sphinxnorowcolor{\spx@table@hackCT@norowcolor}% - -% \sphinxtoprule (or rather \sphinxtabletoprulehook) will be modified by -% the colorrows class to execute this one: -\def\spx@table@@toprule@rowcolorON{% - \noalign{% - % Because of tabulary 2-pass system, the colour set-up at end of table - % would contaminate the header colours at start of table, so must reset - % them here. We want all header rows to obey same colours, so we don't - % use original \CT@everycr which sets \CT@row@color to \relax. - \global\CT@everycr{\the\everycr}% - \global\sphinxcolorlet{sphinxTableRowColor}{sphinxTableRowColorHeader}% - \global\sphinxcolorlet{sphinxTableMergeColor}{\sphinxTableMergeColorHeader}% - \sphinxrowcolorON - }% -}% - -% \sphinxtableatstartofbodyhook will be modified by colorrows class to -% execute this one; it starts the alternating colours and triggers increment -% or \rownum count at each new row (the xcolor base method for \rowcolors) -\def\spx@table@@startbodycolorrows{% - \noalign{% - \global\CT@everycr{% Nota Bene: in a longtable with \hline the \everycr is - % done two extra times! but 2 is even, so this is ok - \noalign{\global\advance\rownum\@ne % the xcolor \rowcolors base trick -% MEMO: colortbl \CT@row@color is expanded *after* the cell contents have been -% gathered and measured, so it can't be used to expose e.g. the colour to the -% cell contents macro code. Of course if it is known how the colour is chosen -% the procedure could be done from inside the cell. Simpler to expose the colour -% in a public name sphinxTableRowColor at start of the row in this \noalign. - \sphinxSwitchCaseRowColor\rownum - }% - \the\everycr - }% - \global\rownum\@ne % is done from inside table so ok with tabulary two passes - \sphinxSwitchCaseRowColor\rownum % set up color for the first body row - \sphinxrowcolorON % has been done from \sphinxtoprule location but let's do - % it again in case \sphinxtabletoprulehook has been used - % to inhibit colours in the header rows - }% end of noalign contents -} -% set the colours according to row parity; a priori #1 is \rownum, but -% the macro has been designed to be usable in user level added code -\def\sphinxSwitchCaseRowColor#1{% - \ifodd#1\relax - \global\sphinxcolorlet{sphinxTableRowColor}{sphinxTableRowColorOdd}% - \global\sphinxcolorlet{sphinxTableMergeColor}{\sphinxTableMergeColorOdd}% - \else - \global\sphinxcolorlet{sphinxTableRowColor}{sphinxTableRowColorEven}% - \global\sphinxcolorlet{sphinxTableMergeColor}{\sphinxTableMergeColorEven}% - \fi -} - -% each \cline or \cmidrule (booktabs) consumes one \cr, offsetting the \rownum -% parity; so this macro serves to compensate and must be added to each such -% \cline or \cmidrule (see below) -\def\spx@table@@decrementrownum{\noalign{\global\advance\rownum\m@ne}} -\let\sphinxtabledecrementrownum\@empty - -% \sphinxtableafterendhook will be modified by colorrows class to execute -% this after the table -\def\spx@table@resetcolortbl{% - \sphinxrowcolorOFF - \spx@table@reset@CTeverycr -% this last bit is done in order for the \sphinxbottomrule from the "foot" -% longtable template to be able to use same code as the \sphinxbottomrule -% at end of table body; see \sphinxbooktabsspecialbottomrule code - \global\rownum\z@ -} -\def\spx@table@reset@CTeverycr{% -% we should probably be more cautious and not hard-code here the colortbl -% set-up; so the macro is defined without @ to fac - \global\CT@everycr{\noalign{\global\let\CT@row@color\relax}\the\everycr}% -} - -% At last the style macros \sphinxthistablewithstandardstyle etc... - -% They are executed before the table environments in a scope limiting -% wrapper "savenotes" environment. -% -% 0) colour support is enacted via adding code to three hooks: -% - \sphinxtabletoprulehook (implicit from \sphinxtoprule expansion) -% - \sphinxtableatstartofbodyhook (explicit from table templates) -% - \sphinxtableafterendhook (explicit from table templates) -% additionally special adjustment must be made in \sphinxcline -% -\def\sphinxtoprule{\spx@toprule\sphinxtabletoprulehook} -% \spx@toprule is what is defined by the standard, booktabs and borderless -% styles. -% The colorrows class will prepend \spx@table@toprule@rowcolorON into -% \sphinxtabletoprulehook which a priori is \@empty but can contain user added -% extra code, and is executed after \spx@toprule. -\let\sphinxtabletoprulehook \@empty -\let\sphinxtableatstartofbodyhook\@empty -\let\sphinxtableafterendhook \@empty -% -% 1) we manage these three hooks in a way allowing a custom user extra wrapper -% environment from a container class to use them as entry point for some -% custom code. The container code is done first, prior to table templates. -% So, the style macros will *prepend* the needed color-code to the existing -% custom user code, so the custom user code can override them. The custom -% user code should not redefine any of the 3 \sphinxtable...hook macros via a -% \global\def, but their contents can use \gdef. In fact they probably need -% to for the first two hooks which are executed from inside the table and -% a priori need their code to be in a \noalign which limits scope. -% -% 2) the table templates and LaTeX writer code make it so that only -% one of either -% \sphinxthistablewithcolorrowsstyle, -% or \sphinxthistablewithnocolorrowsstyle -% will be inserted explicitly depending on local :class: for table. -% The global 'colorrows' style in latex_table_style translates at bottom -% of this file into code for inserting \sphinxthistablewithcolorrowsstyle -% at end of \sphinxthistablewithglobalstyle. So it is impossible -% to have first \sphinxthistablewithnocolorrowsstyle, then -% \sphinxthistablewithcolorrowsstyle. Nevertheless we have written -% the code so that in this case colorrows would indeed activate (except -% if it was already executed before as it self-annihilates). - -% standard style -\def\sphinxthistablewithstandardstyle{% - % Those two are produced by the latex writer - \def\sphinxhline {\hline}% - % \sphinxtabledecrementrownum is a no-op which is redefined by colorrows - % to correct the \rownum increment induced by \cline in colorrows regime - \def\sphinxcline {\sphinxtabledecrementrownum\cline}% - % LaTeX's \cline needs fixing - \let\sphinxvlinecrossing\sphinxtablevlinecrossing - \let\sphinxfixclines \sphinxtablefixclines - % Those three are inserted by the table templates - \def\spx@toprule {\hline}% - \def\sphinxmidrule {\hline}% - \def\sphinxbottomrule {\hline}% - % Do not tamper with this internal - \def\spx@arrayrulewidth{\arrayrulewidth}% -} - -% booktabs style -% The \@xcmidrule patch below will do beyond its main stuff -% \sphinxadjustcmidrulebelowsep -% Indeed the poor booktabs spacing with \cmidrule (if \sphinxbooktabscmidrule -% defined below is overwritten to use it) is quite awful. Do -% \let\sphinxadjustcmidrulebelowsep\empty -% if you prefer booktabs defaults. -\def\sphinxadjustcmidrulebelowsep{\belowrulesep=\aboverulesep} -\AtBeginDocument{% patch booktabs to avoid extra vertical space from - % consecutive \sphinxcline, if defined to use \cmidrule - \ifdefined\@xcmidrule - \let\spx@original@@xcmidrule\@xcmidrule - \def\@xcmidrule{\sphinxadjustcmidrulebelowsep - % if we don't do that, two \sphinxcline in the same row - % will cause the second short rule to be shifted down - \ifx\@tempa\sphinxcline\let\@tempa\cmidrule\fi - \spx@original@@xcmidrule}% - \fi -} -% wrappers to allow customization, e.g. via a container class -% the top, mid, bottom definitions are in fact overwritten (later, below) -% byt more complex ones needed to handle booktabs+colorrows context -\def\sphinxbooktabstoprule {\toprule} -\def\sphinxbooktabsmidrule {\midrule} -\def\sphinxbooktabsbottomrule{\bottomrule} -% -\let\sphinxbooktabscmidrule \@gobble % i.e. draw no short rules at all! -% You can redefine this to use \cmidrule with various options, such -% as \cmidrule(lr), but: -% Attention, if you want this to use \cmidrule (or \cline) you must, -% if the table uses row colours, -% also include the \sphinxtabledecrementrownum token like e.g. this -% \def\sphinxbooktabscmidrule{\sphinxtabledecrementrownum\cmidrule(lr)} -% and it must be first due to internals of the \cmidrule usage of \futurelet. - -\def\sphinxthistablewithbooktabsstyle{% - \let\sphinxhline\@empty % there is no wrapper macro here so if you want to change that - % you will have to redefine \sphinxthistablewithbooktabsstyle - \def\sphinxcline {\sphinxbooktabscmidrule}% defaults to give \@gobble - \let\sphinxvlinecrossing\@gobble % no | in a booktabs-style table ! - \let\sphinxfixclines \@gobble % should not be used with booktabs + \cmidrule - \def\spx@toprule {\sphinxbooktabstoprule}% - \def\sphinxmidrule {\sphinxbooktabsmidrule}% - \def\sphinxbottomrule{\sphinxbooktabsbottomrule}% - \def\spx@arrayrulewidth{\z@}% -} -\AtBeginDocument{\@ifpackageloaded{booktabs}% - {}% - {\def\sphinxthistablewithbooktabsstyle{% - \PackageWarning{sphinx}{% -Add \string\usepackage{booktabs} to the preamble to allow\MessageBreak -local use of booktabs table style}% - \sphinxbuildwarning{booktabs}% - \sphinxthistablewithstandardstyle - }}% -}% - -% borderless style -\def\sphinxthistablewithborderlessstyle{% - \let\sphinxhline \@empty - \let\sphinxcline \@gobble - \let\sphinxvlinecrossing\@gobble - \let\sphinxfixclines \@gobble - \let\spx@toprule \@empty - \let\sphinxmidrule \@empty - \let\sphinxbottomrule \@empty - \def\spx@arrayrulewidth{\z@}% -}% - -% colorrows style -% -\let\sphinxifthistablewithcolorrowsTF\@secondoftwo -\def\sphinxthistablewithcolorrowsstyle{% - \let\sphinxifthistablewithcolorrowsTF\@firstoftwo -% this is defined to auto-silence itself (in the surrounding scope-limiting -% environment) after one execution ("colorrows" can never follow "nocolorrows") - \let\sphinxthistablewithcolorrowsstyle\@empty -% - \let\spx@table@toprule@rowcolorON \spx@table@@toprule@rowcolorON - \let\spx@table@startbodycolorrows \spx@table@@startbodycolorrows - \let\sphinxtabledecrementrownum \spx@table@@decrementrownum -% Is it the best choice to "prepend" to existing code there? - \spx@prepend\spx@table@toprule@rowcolorON\to\sphinxtabletoprulehook - \spx@prepend\spx@table@startbodycolorrows\to\sphinxtableatstartofbodyhook -% -% this one is not set to \@empty by nocolorrows, because it looks harmless -% to execute it always, as it simply resets to standard colortbl state after -% the table; so we don't need an @@ version for this one - \spx@prepend\spx@table@resetcolortbl\to\sphinxtableafterendhook -} -\def\spx@prepend#1\to#2{% attention about using this only with #2 "storage macro" - \toks@{#1}% - \toks@\expandafter\expandafter\expandafter{\expandafter\the\expandafter\toks@#2}% - \edef#2{\the\toks@}% -}% - -\def\sphinxthistablewithnocolorrowsstyle{% - \let\sphinxifthistablewithcolorrowsTF\@secondoftwo -% rather than trying to remove the code added by 'colorrows' style, we -% simply make it no-op, without even checking if really it was activated. - \let\spx@table@toprule@rowcolorON\@empty - \let\spx@table@startbodycolorrows\@empty - \let\sphinxtabledecrementrownum \@empty -% we don't worry about \sphinxtableafterendhook as the \spx@table@resetcolortbl -% done at end can not do harm; and we could also have not bothered with the -% \sphinxtabledecrementrownum as its \rownum decrement, if active, is harmless -% in non-colorrows context -} - -% (not so easy) implementation of the booktabscolorgaps option. This option -% defaults to true and is not officially documented, as already colorrows is -% only opt-in, so it is there only as a "turn-off" switch, but if nobody -% complains in next few months, it will probably be removed altogether at -% 6.0.0. The reason it exists is because of longtable aspeces described -% below. -% -% As it is used via \sphinxsetup booktabscolorgaps status is not known here -% and may change locally. So it must be implemented via delayed or -% conditional code. -% -% We do not know the order of execution of \sphinxthistablewithbooktabsstyle -% versus \sphinxthistablewithcolorrows: if booktabs is global option it -% will be executed first; but if colorrows is global option and not booktabs -% then colorrows will be executed first via \sphinxthistablewithglobalstyle -% -% Modifying things from locations such as \sphinxtabletoprulehook which are -% executed within the table is not convenient as it must use \global -% but then we would have to undo this after the table. -% -% So what we do is to prepare booktabs specific macros to incorporate -% a conditional to check the colorrows status. We must each time check -% both if colorrows is activated and if colorgaps is. We do this via -% macros without @ so they can be used easily in customization code. -% When and if booktabscolorgaps option is removed, we can then replace -% \sphinxifbooktabswithcolorgapsTF by \sphinxifthistablewithcolorrowsTF -\def\sphinxifbooktabswithcolorgapsTF{% - \if1\ifspx@opt@booktabscolorgaps - \sphinxifthistablewithcolorrowsTF{1}{0}% - \else0\fi - \expandafter\@firstoftwo - \else\expandafter\@secondoftwo - \fi -} -% as this is done without "@" it can be relatively easily be overwritten -% by user in customization code -\def\sphinxbooktabstoprule{% - \sphinxifbooktabswithcolorgapsTF - {\sphinxbooktabsspecialtoprule}% - {\toprule}% -}% -\def\sphinxbooktabscolorgapsoverhang{0.1pt}% avoid pixel/rounding effects -% auxiliary fork -\long\def\spx@table@crazyfork - #1\endfirsthead\endhead\sphinxtableatstartofbodyhook#2#3\@nil{#2} -% we fetch the next token to check if there is a header or not -% this is a bit fragile as it relies on the table templates -% and it assumes this token #1 is never braced... -% let's make this \long in case #1 is \par (should not be) -\long\def\sphinxbooktabsspecialtoprule\sphinxtabletoprulehook#1{% - \specialrule{\heavyrulewidth}{\abovetopsep}{\z@}% - % this macro contains colour init code (and defines sphinxTableRowColor) - \sphinxtabletoprulehook - % unfortunately colortbl provides no way to save/restore the - % \arrayrulecolor status, we have to code it ourselves - \noalign{\global\let\spx@@saved@CT@arc@\CT@arc@ -% \@declaredcolor is not \long. Although #1 can probably never be \par with -% our templates, let's be cautious and not use the creazyfork inside the \color - \spx@table@crazyfork -% this crazy code checks if #1 is one of \endfirsthead, \endhead or -% \sphinxtableatstartofbodyhook, as criterion for table with no header - #1\endhead\sphinxtableatstartofbodyhook\@secondoftwo - \endfirsthead#1\sphinxtableatstartofbodyhook\@secondoftwo - \endfirsthead\endhead#1\@secondoftwo - \endfirsthead\endhead\sphinxtableatstartofbodyhook\@firstoftwo - \@nil - {\gdef\CT@arc@{\color{sphinxTableRowColor}}}% - {\gdef\CT@arc@{\color{sphinxTableRowColorOdd}}}% - }% end of \noalign - % \specialrule uses \noalign itself - \specialrule{\dimexpr\belowrulesep+\sphinxbooktabscolorgapsoverhang\relax}% - {\z@}{-\sphinxbooktabscolorgapsoverhang}% - \noalign{\global\let\CT@arc@\spx@@saved@CT@arc@}% - #1% let's not forget to re-insert this #1 in token stream - % fortunately longtable's \endfirsthead/\endhead are not delimiters but - % are really tokens awaiting expansion... -}% -\def\sphinxbooktabsmidrule{% - \sphinxifbooktabswithcolorgapsTF - {\sphinxbooktabsspecialmidrule}% - {\midrule}% -}% -\def\sphinxbooktabsspecialmidrule{% - \noalign{\global\let\spx@@saved@CT@arc@\CT@arc@ - \gdef\CT@arc@{\color{sphinxTableRowColor}}% this is RowColorHeader - }% - \specialrule{\dimexpr\aboverulesep+\sphinxbooktabscolorgapsoverhang\relax\relax}% - {-\sphinxbooktabscolorgapsoverhang}{\z@}% - \noalign{\global\let\CT@arc@\spx@@saved@CT@arc@}% - \specialrule{\lightrulewidth}{\z@}{\z@}% - \noalign{\gdef\CT@arc@{\color{sphinxTableRowColorOdd}}}% - \specialrule{\dimexpr\belowrulesep+\sphinxbooktabscolorgapsoverhang\relax\relax}% - {\z@}{-\sphinxbooktabscolorgapsoverhang}% - \noalign{\global\let\CT@arc@\spx@@saved@CT@arc@}% -}% -\def\sphinxbooktabsbottomrule{% - \sphinxifbooktabswithcolorgapsTF - {\sphinxbooktabsspecialbottomrule}% - {\bottomrule}% -}% -% The colour here is already updated because of the \\ before so we must -% execute again the colour selection code, but this is not too complicated. -% What is annoying though is that \sphinxbottomrule in the longtable context -% appears both in the "foot" part and after the last body row. For the first -% occurrence the \rownum could be arbitrary if it had not been reset by each -% table using it via the \sphinxtableafterendhook (see above). This avoids -% having to modify the longtable template. But as \rownum is thus 0 in the -% "foot", the \sphinxSwitchCaseRowColor has to know how to handle negative -% inputs (in fact the -1 value), the Sphinx definition has no issue with that -% but any redefinition must be aware of this constraint. -\def\sphinxbooktabsspecialbottomrule{% - \noalign{\global\let\spx@@saved@CT@arc@\CT@arc@ - \sphinxSwitchCaseRowColor{\numexpr\rownum-\@ne\relax}% - \gdef\CT@arc@{\color{sphinxTableRowColor}}% - }% - \specialrule{\dimexpr\aboverulesep+\sphinxbooktabscolorgapsoverhang\relax}% - {-\sphinxbooktabscolorgapsoverhang}{\z@}% - \noalign{\global\let\CT@arc@\spx@@saved@CT@arc@}% - \specialrule{\heavyrulewidth}{\z@}{\belowbottomsep}% -}% -% -% MEMO: with longtable \sphinxtoprule, \sphinxmidrule and \sphinxbottomrule -% are evaluated at time of constructing the headers and footers as boxes -% (already typeset material and expanded macros; \sphinxbottomrule is also -% evaluated at very end of table body, i.e. "normally"). So the used colour -% to fill the booktabs gaps is decided during the headers and footers -% construction by longtable. Actually they are expanded twice: in firsthead -% then in head, respectively in foot and lastfoot. But in current design the -% header row colours are fixed, not alternating, so there is at least no -% coherence issue there. - -% The \spx@arrayrulewidth is used for some complex matters of merged -% cells size computations. -% tabularcolumns argument will override any global or local style and -% trigger the appropriate adjustment of \spx@arrayrulewidth. -% Notice that this will be bad if the table uses booktabs style -% but anyhow table with booktabs should not use any | separator. -\def\sphinxthistablewithvlinesstyle{% - \def\spx@arrayrulewidth{\arrayrulewidth}% - \let\sphinxvlinecrossing\sphinxtablevlinecrossing - \let\sphinxfixclines \sphinxtablefixclines -}% -\def\sphinxthistablewithnovlinesstyle{% - \def\spx@arrayrulewidth{\z@}% - \let\sphinxvlinecrossing\@gobble - % let's not bother to modify \sphinxfixclines, it works fine and is - % useful in standard style + no vline (only hlines and clines); - % besides, only one of vline or novline style macro is executed -}% - -% default is the standard style -\def\sphinxthistablewithglobalstyle{\sphinxthistablewithstandardstyle} - -\ifspx@opt@booktabs - \RequirePackage{booktabs} - \def\sphinxthistablewithglobalstyle{\sphinxthistablewithbooktabsstyle} -\fi -\ifspx@opt@borderless - \def\sphinxthistablewithglobalstyle{\sphinxthistablewithborderlessstyle} -\fi -% colorrows appends to the current globalstyle (standard, booktabs, or borderless) -\ifspx@opt@colorrows % let the globalstyle trigger the colorrows style on top of it - \expandafter\def\expandafter\sphinxthistablewithglobalstyle\expandafter - {\sphinxthistablewithglobalstyle - \sphinxthistablewithcolorrowsstyle - } -\fi - - -\endinput diff --git a/docs/build/latex/sphinxmanual.cls b/docs/build/latex/sphinxmanual.cls deleted file mode 100644 index 2e4b30d..0000000 --- a/docs/build/latex/sphinxmanual.cls +++ /dev/null @@ -1,128 +0,0 @@ -% -% sphinxmanual.cls for Sphinx (https://www.sphinx-doc.org/) -% - -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{sphinxmanual}[2019/12/01 v2.3.0 Document class (Sphinx manual)] - -% chapters starting at odd pages (overridden by 'openany' document option) -\PassOptionsToClass{openright}{\sphinxdocclass} - -% 'oneside' option overriding the 'twoside' default -\newif\if@oneside -\DeclareOption{oneside}{\@onesidetrue} -% Pass remaining document options to the parent class. -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}} -\ProcessOptions\relax - -% Defaults two-side document -\if@oneside -% nothing to do (oneside is the default) -\else -\PassOptionsToClass{twoside}{\sphinxdocclass} -\fi - -\LoadClass{\sphinxdocclass} - -% Set some sane defaults for section numbering depth and TOC depth. You can -% reset these counters in your preamble. -% -\setcounter{secnumdepth}{2} -\setcounter{tocdepth}{1} - -% Adapt \and command to the flushright context of \sphinxmaketitle, to -% avoid ragged line endings if author names do not fit all on one single line -\DeclareRobustCommand{\and}{% - \end{tabular}\kern-\tabcolsep - \allowbreak - \hskip\dimexpr1em+\tabcolsep\@plus.17fil\begin{tabular}[t]{c}% -}% -% If it is desired that each author name be on its own line, use in preamble: -%\DeclareRobustCommand{\and}{% -% \end{tabular}\kern-\tabcolsep\\\begin{tabular}[t]{c}% -%}% -% Change the title page to look a bit better, and fit in with the fncychap -% ``Bjarne'' style a bit better. -% -\newcommand{\sphinxmaketitle}{% - \let\sphinxrestorepageanchorsetting\relax - \ifHy@pageanchor\def\sphinxrestorepageanchorsetting{\Hy@pageanchortrue}\fi - \hypersetup{pageanchor=false}% avoid duplicate destination warnings - \begin{titlepage}% - \let\footnotesize\small - \let\footnoterule\relax - \noindent\rule{\textwidth}{1pt}\par - \begingroup % for PDF information dictionary - \def\endgraf{ }\def\and{\& }% - \pdfstringdefDisableCommands{\def\\{, }}% overwrite hyperref setup - \hypersetup{pdfauthor={\@author}, pdftitle={\@title}}% - \endgroup - \begin{flushright}% - \sphinxlogo - \py@HeaderFamily - {\Huge \@title \par} - {\itshape\LARGE \py@release\releaseinfo \par} - \vfill - {\LARGE - \begin{tabular}[t]{c} - \@author - \end{tabular}\kern-\tabcolsep - \par} - \vfill\vfill - {\large - \@date \par - \vfill - \py@authoraddress \par - }% - \end{flushright}%\par - \@thanks - \end{titlepage}% - \setcounter{footnote}{0}% - \let\thanks\relax\let\maketitle\relax - %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} - \clearpage - \ifdefined\sphinxbackoftitlepage\sphinxbackoftitlepage\fi - \if@openright\cleardoublepage\else\clearpage\fi - \sphinxrestorepageanchorsetting -} - -\newcommand{\sphinxtableofcontents}{% - \pagenumbering{roman}% - \begingroup - \parskip \z@skip - \sphinxtableofcontentshook - \tableofcontents - \endgroup - % before resetting page counter, let's do the right thing. - \if@openright\cleardoublepage\else\clearpage\fi - \pagenumbering{arabic}% -} - -% This is needed to get the width of the section # area wide enough in the -% library reference. Doing it here keeps it the same for all the manuals. -% -\newcommand{\sphinxtableofcontentshook}{% - \renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}}% - \renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}}% -} - -% Fix the bibliography environment to add an entry to the Table of -% Contents. -% For a report document class this environment is a chapter. -% -\newenvironment{sphinxthebibliography}[1]{% - \if@openright\cleardoublepage\else\clearpage\fi - % \phantomsection % not needed here since TeXLive 2010's hyperref - \begin{thebibliography}{#1}% - \addcontentsline{toc}{chapter}{\bibname}}{\end{thebibliography}} - -% Same for the indices. -% The memoir class already does this, so we don't duplicate it in that case. -% -\@ifclassloaded{memoir} - {\newenvironment{sphinxtheindex}{\begin{theindex}}{\end{theindex}}} - {\newenvironment{sphinxtheindex}{% - \if@openright\cleardoublepage\else\clearpage\fi - \phantomsection % needed as no chapter, section, ... created - \begin{theindex}% - \addcontentsline{toc}{chapter}{\indexname}}{\end{theindex}}} diff --git a/docs/build/latex/sphinxmessages.sty b/docs/build/latex/sphinxmessages.sty deleted file mode 100644 index 68ebffa..0000000 --- a/docs/build/latex/sphinxmessages.sty +++ /dev/null @@ -1,21 +0,0 @@ -% -% sphinxmessages.sty -% -% message resources for Sphinx -% -\ProvidesPackage{sphinxmessages}[2019/01/04 v2.0 Localized LaTeX macros (Sphinx team)] - -\renewcommand{\literalblockcontinuedname}{continued from previous page} -\renewcommand{\literalblockcontinuesname}{continues on next page} -\renewcommand{\sphinxnonalphabeticalgroupname}{Non\sphinxhyphen{}alphabetical} -\renewcommand{\sphinxsymbolsname}{Symbols} -\renewcommand{\sphinxnumbersname}{Numbers} -\def\pageautorefname{page} - -\addto\captionsenglish{\renewcommand{\figurename}{Fig.\@{} }} -\def\fnum@figure{\figurename\thefigure{}} - -\addto\captionsenglish{\renewcommand{\tablename}{Table }} -\def\fnum@table{\tablename\thetable{}} - -\addto\captionsenglish{\renewcommand{\literalblockname}{Listing}} \ No newline at end of file diff --git a/docs/build/latex/sphinxoptionsgeometry.sty b/docs/build/latex/sphinxoptionsgeometry.sty deleted file mode 100644 index d0c59f0..0000000 --- a/docs/build/latex/sphinxoptionsgeometry.sty +++ /dev/null @@ -1,54 +0,0 @@ -%% OPTIONS FOR GEOMETRY -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxoptionsgeometry}[2021/01/27 geometry] - -% geometry -\ifx\kanjiskip\@undefined - \PassOptionsToPackage{% - hmargin={\unexpanded{\spx@opt@hmargin}},% - vmargin={\unexpanded{\spx@opt@vmargin}},% - marginpar=\unexpanded{\spx@opt@marginpar}} - {geometry} -\else - % set text width for Japanese documents to be integer multiple of 1zw - % and text height to be integer multiple of \baselineskip - % the execution is delayed to \sphinxsetup then geometry.sty - \normalsize\normalfont - \newcommand*\sphinxtextwidthja[1]{% - \if@twocolumn\tw@\fi - \dimexpr - \numexpr\dimexpr\paperwidth-\tw@\dimexpr#1\relax\relax/ - \dimexpr\if@twocolumn\tw@\else\@ne\fi zw\relax - zw\relax}% - \newcommand*\sphinxmarginparwidthja[1]{% - \dimexpr\numexpr\dimexpr#1\relax/\dimexpr1zw\relax zw\relax}% - \newcommand*\sphinxtextlinesja[1]{% - \numexpr\@ne+\dimexpr\paperheight-\topskip-\tw@\dimexpr#1\relax\relax/ - \baselineskip\relax}% - \ifx\@jsc@uplatextrue\@undefined\else - % the way we found in order for the papersize special written by - % geometry in the dvi file to be correct in case of jsbook class - \ifnum\mag=\@m\else % do nothing special if nomag class option or 10pt - \PassOptionsToPackage{truedimen}{geometry}% - \fi - \fi - \PassOptionsToPackage{% - hmarginratio={1:1},% - textwidth=\unexpanded{\sphinxtextwidthja{\spx@opt@hmargin}},% - vmarginratio={1:1},% - lines=\unexpanded{\sphinxtextlinesja{\spx@opt@vmargin}},% - marginpar=\unexpanded{\sphinxmarginparwidthja{\spx@opt@marginpar}},% - footskip=2\baselineskip,% - }{geometry}% - \AtBeginDocument - {% update a dimension used by the jsclasses - \ifx\@jsc@uplatextrue\@undefined\else\fullwidth\textwidth\fi - % for some reason, jreport normalizes all dimensions with \@settopoint - \@ifclassloaded{jreport} - {\@settopoint\textwidth\@settopoint\textheight\@settopoint\marginparwidth} - {}% <-- "false" clause of \@ifclassloaded - }% -\fi - -\endinput diff --git a/docs/build/latex/sphinxoptionshyperref.sty b/docs/build/latex/sphinxoptionshyperref.sty deleted file mode 100644 index caf28e8..0000000 --- a/docs/build/latex/sphinxoptionshyperref.sty +++ /dev/null @@ -1,35 +0,0 @@ -%% Bookmarks and hyperlinks -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxoptionshyperref}[2021/01/27 hyperref] - -% to make pdf with correct encoded bookmarks in Japanese -% this should precede the hyperref package -\ifx\kanjiskip\@undefined -% for non-Japanese: make sure bookmarks are ok also with lualatex - \PassOptionsToPackage{pdfencoding=unicode}{hyperref} -\else - \RequirePackage{atbegshi} - \ifx\ucs\@undefined - \ifnum 42146=\euc"A4A2 - \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}} - \else - \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}} - \fi - \else - \AtBeginShipoutFirst{\special{pdf:tounicode UTF8-UCS2}} - \fi -\fi - -\ifx\@jsc@uplatextrue\@undefined\else - \PassOptionsToPackage{setpagesize=false}{hyperref} -\fi - -% These options can be overridden inside 'hyperref' key -% or by later use of \hypersetup. -\PassOptionsToPackage{colorlinks,breaklinks,% - linkcolor=InnerLinkColor,filecolor=OuterLinkColor,% - menucolor=OuterLinkColor,urlcolor=OuterLinkColor,% - citecolor=InnerLinkColor}{hyperref} - -\endinput diff --git a/docs/build/latex/sphinxpackageboxes.sty b/docs/build/latex/sphinxpackageboxes.sty deleted file mode 100644 index 2345051..0000000 --- a/docs/build/latex/sphinxpackageboxes.sty +++ /dev/null @@ -1,827 +0,0 @@ -%% COLOURED BOXES -% -% change this info string if making any custom modification -\ProvidesPackage{sphinxpackageboxes}[2024/07/01 v7.4.0 advanced colored boxes] -% 7.4.0 removes usage of some booleans "...withbackgroundcolor" and -% "...withbordercolor" as well as \spx@boxes@border dimen which was -% actually really needed nowhere. This was done in sync with changes in -% sphinx.sty, sphinxlatexadmonitions.sty and sphinxlatexliterals.sty. -% -% Optionally executes \RequirePackage for: -% -% - pict2e. Ideally we would like to use the v0.4a 2020/08/16 release of this -% package as it allows dimensional arguments to its \moveto, \lineto, etc... -% Or we could use extra package "picture". We opt for custom wrappers -% \spx@moveto, \spx@lineto, ..., working with old versions. -% -% - ellipse. This package extends pict2e with elliptical arcs. Its author -% Daan Leijen also has contributed package longfbox which is part of -% TeXLive. Had I known about it, I would perhaps have based Sphinx CSS on -% top of longfbox at least partly. But this would not have spared me all -% the work in sphinx.sty, which was a long walk until 6.2.0 version. -% Besides I don't need the breakable boxes from longfbox, as Sphinx has -% its own rather advanced layer on top of framed. I would need to check if -% some thorny color issues solved by Sphinx (and not by tcolorbox) at page -% breaks are solved by longfbox as well. (I have not tested) - -% At 6.2.0 refactoring, we do not wait for at begin document to try to load -% pict2e. Actually since 6.0.0 the default is for code-blocks to use -% rounded boxes, and the only reason since then to wait "at begin document" -% was to check if user had reverted that default and in fact pict2e was not -% needed. But with \sphinxbox, we can not know for sure even in that case -% that pict2e is not needed. And even back then it would have been possible -% to user to try to employ \sphinxsetup via raw directive in document body -% and require some rounded corners (which was thus impossible to satisfy). -% Time to be much simpler and attempt unconditionally to load pict2e -% immediately. This will also have advantage that we can use -% \@ifpackageloaded{pict2e} and not have to query and save its setting later -% at begin document. -\IfFileExists{pict2e.sty} - {\RequirePackage{pict2e}} - {\PackageWarningNoLine{sphinx}{% - The package pict2e is required for rounded boxes.\MessageBreak - It does not seem to be available on your system.\MessageBreak - Options for setting radii will be ignored% - }% - % Formerly a \sphinxbuildwarning was issued but if we did that now it - % would mean that the produced PDF will always have a red banner near its - % end about pict2e not being available if indeed it is not available, even - % if user has reverted the default and dropped rounded corners. Formerly - % the serious warning was done after having checked at begin document that - % indeed a rounded corner option had been used. As we drop the check now, - % let's be more discrete and simply duplicate the earlier warning to make - % it visible near end of compilation log and console output. - \AtEndDocument{\PackageWarningNoLine{sphinx}{% - The package pict2e is required for rounded boxes.\MessageBreak - As it does not seem to be available on your system,\MessageBreak - options setting radii have all been ignored}}% - }% - -\IfFileExists{ellipse.sty} - {\RequirePackage{ellipse}} - {\PackageWarningNoLine{sphinx}{% - The package ellipse is required for elliptical corners.\MessageBreak - It does not seem to be available on your system.\MessageBreak - All non-straight corners will use circle arcs.% - }% - \AtEndDocument{\PackageWarningNoLine{sphinx}{% - The package ellipse is required for elliptical corners.\MessageBreak - As it does not seem to be available on your system,\MessageBreak - all non-straight corners have used circle arcs.}}% - }% - -% The pict2e release v0.4b of 2020/09/30 does not allocate scratch dimen -% register \@tempdimd which ellipse package uses. Thus ellipse package is -% broken since (written on March 20, 2023). Simply allocate the register -% ourself to fix that, pending some upstream fix. -\@ifpackageloaded{ellipse}{\ifdefined\@tempdimd\else\newdimen\@tempdimd\fi}{} - -% Provides box registers \spx@tempboxa, \spx@tempboxb usable in other places -\newbox\spx@tempboxa -\newbox\spx@tempboxb - -%%%%%%%%%%%%%%%% -% Internal registers, conditionals, colors to be configured by each caller -% via a preliminary "setup" call -\newif\ifspx@boxes@withshadow -\newif\ifspx@boxes@insetshadow -%%% \newif\ifspx@boxes@withbackgroundcolor % removed at 7.4.0 -\newif\ifspx@boxes@withshadowcolor -%%% \newif\ifspx@boxes@withbordercolor % removed at 7.4.0 -\newif\ifspx@boxes@shadowinbbox -% -\newdimen\spx@boxes@border@top -\newdimen\spx@boxes@border@right -\newdimen\spx@boxes@border@bottom -\newdimen\spx@boxes@border@left -% -\newdimen\spx@boxes@padding@top -\newdimen\spx@boxes@padding@right -\newdimen\spx@boxes@padding@bottom -\newdimen\spx@boxes@padding@left -% -\newdimen\spx@boxes@shadow@xoffset -\newdimen\spx@boxes@shadow@yoffset -% -\newdimen\spx@boxes@radius@topleft@x -\newdimen\spx@boxes@radius@topright@x -\newdimen\spx@boxes@radius@bottomright@x -\newdimen\spx@boxes@radius@bottomleft@x -\newdimen\spx@boxes@radius@topleft@y -\newdimen\spx@boxes@radius@topright@y -\newdimen\spx@boxes@radius@bottomright@y -\newdimen\spx@boxes@radius@bottomleft@y -% -% These colors will be set to colors defined appropriately by caller of -% \spx@boxes@fcolorbox@setup macro -% spx@boxes@bordercolor -% spx@boxes@backgroundcolor -% spx@boxes@shadowcolor -% spx@boxes@textcolor - -%%%%%%%%%%%%%%%% -% "setup" macro -% -% It must be called prior to \spx@boxes@fcolorbox for parameters of the latter -% to be initialized. -% -% It also prepares \spx@boxes@fcolorbox to expand to one of -% \spx@boxes@fcolorbox@rectangle or \spx@boxes@fcolorbox@rounded depending on -% the configuration and availability of the pict2e package. -% -% The #1 is one of: pre, topic, warning, danger, etc.... -% -% We delay until here the parsing of radii options to extract x and y -% components. -\def\spx@boxes@setradii#1 #2 #3\@nnil#4#5{% - #4\dimexpr#1\relax - #5\dimexpr#2\relax - \ifdim#5=-\maxdimen#5#4\fi - % if one of them is zero or negative set both to zero - \ifdim#4>\z@\else#4\z@#5\z@\fi - \ifdim#5>\z@\else#4\z@#5\z@\fi -}% -% if ellipse.sty is not available ignore the second component of all radii -% specifications, use circle arcs with radius the x component -\@ifpackageloaded{ellipse} - {} - {\def\spx@boxes@setradii#1 #2 #3\@nnil#4#5{#4\dimexpr#1\relax #5#4}} - -% Using \dimexpr for maximal user input flexibility. -\def\spx@boxes@fcolorbox@setup#1{% - \spx@boxes@border@top \dimexpr\@nameuse{spx@#1@border@top}\relax - \spx@boxes@border@right \dimexpr\@nameuse{spx@#1@border@right}\relax - \spx@boxes@border@bottom\dimexpr\@nameuse{spx@#1@border@bottom}\relax - \spx@boxes@border@left \dimexpr\@nameuse{spx@#1@border@left}\relax - % - \spx@boxes@padding@top \dimexpr\@nameuse{spx@#1@padding@top}\relax - \spx@boxes@padding@right \dimexpr\@nameuse{spx@#1@padding@right}\relax - \spx@boxes@padding@bottom\dimexpr\@nameuse{spx@#1@padding@bottom}\relax - \spx@boxes@padding@left \dimexpr\@nameuse{spx@#1@padding@left}\relax - % - \edef\spx@temp{\csname spx@#1@radius@topleft\endcsname\space}% - \expandafter - \spx@boxes@setradii - \spx@temp - {-\maxdimen} - \@nnil - \spx@boxes@radius@topleft@x\spx@boxes@radius@topleft@y - \edef\spx@temp{\csname spx@#1@radius@topright\endcsname\space}% - \expandafter - \spx@boxes@setradii - \spx@temp - {-\maxdimen} - \@nnil - \spx@boxes@radius@topright@x\spx@boxes@radius@topright@y - \edef\spx@temp{\csname spx@#1@radius@bottomright\endcsname\space}% - \expandafter - \spx@boxes@setradii - \spx@temp - {-\maxdimen} - \@nnil - \spx@boxes@radius@bottomright@x\spx@boxes@radius@bottomright@y - \edef\spx@temp{\csname spx@#1@radius@bottomleft\endcsname\space}% - \expandafter - \spx@boxes@setradii - \spx@temp - {-\maxdimen} - \@nnil - \spx@boxes@radius@bottomleft@x\spx@boxes@radius@bottomleft@y - % - \@nameuse{ifspx@#1@withshadow}% - \spx@boxes@withshadowtrue - \spx@boxes@shadow@xoffset \dimexpr\@nameuse{spx@#1@shadow@xoffset}\relax - \spx@boxes@shadow@yoffset \dimexpr\@nameuse{spx@#1@shadow@yoffset}\relax - \else - \spx@boxes@withshadowfalse - \fi - % not nesting in previous to avoid TeX conditional subtleties - \@nameuse{ifspx@#1@insetshadow}% - \spx@boxes@insetshadowtrue - \else - \spx@boxes@insetshadowfalse - \fi - % - \sphinxcolorlet{spx@boxes@bordercolor}{sphinx#1BorderColor}% - % - \sphinxcolorlet{spx@boxes@backgroundcolor}{sphinx#1BgColor}% - % - \@nameuse{ifspx@#1@withshadowcolor}% - \spx@boxes@withshadowcolortrue - \sphinxcolorlet{spx@boxes@shadowcolor}{sphinx#1ShadowColor}% - \else - \spx@boxes@withshadowcolorfalse - \fi - % Display elements pre, topic, warning et al. by default do not include - % shadow in box (legacy; and only topic actually uses a shadow per default) - % This may be refactored still more in future, but this 6.2.0 extra helped - % reduce workload from code-blocks (pre), contents (topic) and admonitions. - % As this conditional is a priori false and should only be changed locally - % (by \sphinxbox), this line is actually superfluous. - \spx@boxes@shadowinbboxfalse - \spx@boxes@fcolorbox@setup@fcolorbox -} -\@ifpackageloaded{pict2e} -{% pict2e is available and loaded - \def\spx@boxes@fcolorbox@setup@fcolorbox{% - \if1% use rounded boxes only if needed (rx>0 iff ry>0) - \ifdim\spx@boxes@radius@topleft@x >\z@0\fi - \ifdim\spx@boxes@radius@topright@x >\z@0\fi - \ifdim\spx@boxes@radius@bottomright@x>\z@0\fi - \ifdim\spx@boxes@radius@bottomleft@x >\z@0\fi - 1\def\spx@boxes@fcolorbox{\spx@boxes@fcolorbox@rectangle}% - \else - \def\spx@boxes@fcolorbox{\spx@boxes@fcolorbox@rounded}% - \fi - }% end of definition of setup@fcolorbox in case of presence of pict2e -}% -{% pict2e could not be loaded, we must always use fcolorbox@rectangle - \def\spx@boxes@fcolorbox@setup@fcolorbox{% - \def\spx@boxes@fcolorbox{\spx@boxes@fcolorbox@rectangle}% - }% end of definition of setup@fcolorbox in case of absence of pict2e -}% end of "no pict2e" branch - -%%%%%%%%%%%%%%%% -% Support of box-decoration-break=slice -% -% 6.2.0 has renamed and moved this here from sphinxlatexliterals.sty, -% to facilitate supporting box-decoration-break=slice for all directives, -% not only code-block. -% -% It also modified when these post actions are executed, in order -% for openboth to be able to trigger usage of fcolorbox@rectangle. -% So now openbottom and opentop also take advantage of this possible -% optimization. -\def\spx@boxes@fcolorbox@setup@openbottom{% - \spx@boxes@border@bottom \z@ - \spx@boxes@radius@bottomright@x\z@ \spx@boxes@radius@bottomright@y\z@ - \spx@boxes@radius@bottomleft@x \z@ \spx@boxes@radius@bottomleft@y \z@ - \spx@boxes@fcolorbox@setup@fcolorbox -}% -\def\spx@boxes@fcolorbox@setup@opentop{% - \spx@boxes@border@top \z@ - \spx@boxes@radius@topright@x\z@ \spx@boxes@radius@topright@y\z@ - \spx@boxes@radius@topleft@x \z@ \spx@boxes@radius@topleft@y \z@ - \spx@boxes@fcolorbox@setup@fcolorbox -}% -\def\spx@boxes@fcolorbox@setup@openboth{% - \spx@boxes@border@top \z@ - \spx@boxes@border@bottom \z@ - \spx@boxes@radius@bottomright@x\z@ \spx@boxes@radius@bottomright@y\z@ - \spx@boxes@radius@bottomleft@x \z@ \spx@boxes@radius@bottomleft@y \z@ - \spx@boxes@radius@topright@x\z@ \spx@boxes@radius@topright@y\z@ - \spx@boxes@radius@topleft@x \z@ \spx@boxes@radius@topleft@y \z@ - \def\spx@boxes@fcolorbox{\spx@boxes@fcolorbox@rectangle}% -}% - -%%%%%%%%%%%%%%%% -% \sphinxbox (added at 6.2.0) -% -% For an inline box, possibly rounded. -\newcommand\sphinxbox[1][]{% #1 stands for the options, they are... optional! - % \leavevmode makes sure TeX switches to paragraph mode, which is necessary - % if this is first in a paragraph or a list element. The \sphinxAtStartPar - % mechanism also ensures this automatically, if not redefined, but not with - % lualatex as then it is by default doing nothing. - \leavevmode - \begingroup - \ifcsname spx@boxes@sphinxbox@isnested\endcsname - % nested boxes reset all box options to be as the \sphinxboxsetup - % defaults, before applying their specific options - \spx@boxes@sphinxbox@reset - \else - % top layer box, toggle the nested flag - \csname spx@boxes@sphinxbox@isnested\endcsname - \fi - % we do not use \sphinxboxsetup as it is a user command extending the - % "reset" storage - \setkeys{sphinxbox}{#1}% - \spx@boxes@fcolorbox@setup{box}% - \spx@boxes@shadowinbboxtrue% inline sphinx boxes include shadow in bbox - \ifspx@box@withtextcolor\color{sphinxboxTextColor}\fi - % - % MEMO: the fcolorbox@{rectangle,rounded} draw the contents (which here - % will be encapsulated as \box\z@) last, i.e. after shadow, background, - % and border and their color commands. The \reset@color from naked - % top-level \color commands in argument (which can not arise from Sphinx - % mark-up anyhow) would end up being placed via color.sty \aftergroup core - % mechanism in token stream after \spx@boxes@sphinxbox@a (which is the - % first \aftergroup) hence after the box contents with its unbalanced - % color pushes is shipped to PDF. So the missing color pop specials are - % inserted then in correct order at correct place (after the \endgroup at - % end of \spx@boxes@sphinxbox@a but this is not relevant) and do not end - % up causing havoc in push/pop pairs (and all this happens on same page). - % - % There is thus no reason here to go to the trouble to add an extra - % \color@begingroup/\color@endgroup or like pair to encapsulate the caught - % contents in order for the \box\z@ to contain as many color pop's as it - % has color pushes. But as this is subtle, this comment was added for - % future maintenance. Actually even if the contents were not drawn last, - % their (purely theoretical, as Sphinx mark-up can not create it) missing - % color pop's would not have caused trouble I guess as long as the color - % insertions for shadow, background, border are correctly balanced. - \setbox0\hbox\bgroup\aftergroup\spx@boxes@sphinxbox@a - \afterassignment\spx@box@TeXextras - \let\next=% -} -\def\spx@boxes@sphinxbox@a{\spx@boxes@fcolorbox{% - \ifspx@opt@box@addstrut\strut\fi\box\z@}\endgroup} - -\newcommand\newsphinxbox[2][]{% - \newcommand#2[1][]{\sphinxbox[#1,##1]}% -} -% Let's catch \renewsphinxbox[...]{\sphinxbox} which would cause \sphinxbox -% to fall into infinite looping on use. -\newcommand\renewsphinxbox[2][]{% - \in@{#2}{\sphinxbox}% - \ifin@ - \PackageWarning{sphinx}{Attempt to \string\renewsphinxbox\space - the \string\sphinxbox\space command\MessageBreak - itself. This is not allowed and will be ignored.\MessageBreak - Reported}% - \else - \renewcommand#2[1][]{\sphinxbox[#1,##1]}% - \fi -} - -%%%%%%%%%%%%%%%% -% MACROS -% -% \spx@boxes@fcolorbox expands either to \spx@boxes@fcolorbox@rectangle -% or \spx@boxes@fcolorbox@rounded depending on preliminary set-up. -% -% This is decided by the "setup" which must have been executed by the caller. -% Let's give it some (thus unneeded) default fall-back for clarity. -\def\spx@boxes@fcolorbox{\spx@boxes@fcolorbox@rectangle} -% -% A macro \spx@boxes@fcolorbox@setuphook used to be executed at start of the -% \hbox constructs (rectangle or rounded). This was used until 6.2.0 for the -% support of pre_box-decoration-break option, hence was really an internal -% non-public macro. As it is not needed anymore, with some hesitation it got -% entirely removed at 6.2.0 on the occasion of a refactoring of interactions of -% this file with sphinxlatexliterals.sty. Besides its name should have been -% rather something such as \spx@boxes@fcolorbox@atstartofhbox. -% -% After "setup", \spx@boxes@fcolorbox expands to one of: -% -% - \spx@boxes@fcolorbox@rectangle (4 padding parameters, 4 border widths, 2 shadow widths, -% and three colours: background, border and shadow; same as in CSS styling) -% -% It branches to one of: -% - \spx@boxes@fcolorbox@externalshadow -% - \spx@boxes@fcolorbox@insetshadow (same concept of "inset" as in CSS styling) -% -% - \spx@boxes@fcolorbox@rounded: rounded corners using the picture environment -% and pict2e package for its low-weight interface to PDF graphics operations - -% MEMO: we have also successfully tested usage of tcolorbox.sty (its \tcbox) but -% decided to use pict2e.sty for the following reasons: -% 1- PDF build was observed to be an order of magnitude faster, -% 2- the boxes we can do with pict2e appear to be fancy enough, -% almost matching what one can see in HTML renderings, -% 2- orders of magnitude smaller dependency (tcolorbox uses the pgf TeX -% framework), although on Ubuntu it seems texlive-pictures is -% needed which also contains the whole of pgf/TikZ... so this point -% is a bit moot... - -% For code-blocks, attachments of caption and continuation hints are done -% exactly as prior to extension of Sphinx via this package, whether the box -% has straight or rounded corners. The vertical space occupied is the same, -% if nothing else is changed (perhaps in future the title itself could be also -% rendered in a rounded box?) - -%%%%%%%% -%//// \spx@boxes@fcolorbox@rectangle -% -% This box will have the same baseline as its argument (which is typeset in -% horizontal mode). It takes into account four border widths parameters, four -% padding parameters, two shadow widths (each possibly negative), and three -% colors: background, border and shadow. Its boundary box takes into account -% border and padding. Width of shadow is taken into account if the boolean -% \ifspx@boxes@shadowinbbox is \iftrue. The "setup" sets it to \iffalse. -% Prior to 6.2.0, shadow size was included in bbox but the callers manually -% removed it by extra steps. The \sphinxbox command sets it to \iftrue after -% the "setup". -% -% It is up to the caller to take extra steps if the border and padding must go -% into margin as well (see sphinxlatexliterals.sty for how this is done in -% \spx@verb@FrameCommand). -% -% In usage as a "FrameCommand" with framed.sty, the argument will already be a -% collection of TeX boxes (and interline glues). -% -% This was designed so that the parameters configured by "setup" are -% interpreted as they would be as CSS properties in an HTML context. -\long\def\spx@boxes@fcolorbox@rectangle#1{% - \hbox\bgroup - \setbox\spx@tempboxa - \hbox{\kern\dimexpr\spx@boxes@border@left+\spx@boxes@padding@left\relax - {#1}% - \kern\dimexpr\spx@boxes@padding@right+\spx@boxes@border@right\relax}% - \ht\spx@tempboxa - \dimexpr\ht\spx@tempboxa+\spx@boxes@border@top+\spx@boxes@padding@top\relax - \dp\spx@tempboxa - \dimexpr\dp\spx@tempboxa+\spx@boxes@padding@bottom+\spx@boxes@border@bottom\relax - \ifspx@boxes@insetshadow - \expandafter\spx@boxes@fcolorbox@insetshadow - \else - \expandafter\spx@boxes@fcolorbox@externalshadow - \fi -} - -% external shadow -\def\spx@boxes@fcolorbox@externalshadow{% - % reserve space to external shadow if on left - \ifspx@boxes@withshadow - \ifspx@boxes@shadowinbbox - \ifdim\spx@boxes@shadow@xoffset<\z@\kern-\spx@boxes@shadow@xoffset\fi - \fi - \fi - % BACKGROUND - % draw background and move back to reference point - {\color{spx@boxes@backgroundcolor}% - \vrule\@height\ht\spx@tempboxa - \@depth\dp\spx@tempboxa - \@width\wd\spx@tempboxa - \kern-\wd\spx@tempboxa - }% - % BOX SHADOW - % draw shadow and move back to reference point - \ifspx@boxes@withshadow - \vbox{% - \moveright\spx@boxes@shadow@xoffset - \hbox{\lower\spx@boxes@shadow@yoffset - \vbox{\ifspx@boxes@withshadowcolor - \color{spx@boxes@shadowcolor}% - \else - % 6.2.0: guard against a manually inserted \color command in - % contents which could leak at a page break to the shadow - \normalcolor - \fi - \ifdim\spx@boxes@shadow@yoffset<\z@ - \hrule\@height-\spx@boxes@shadow@yoffset - \kern\spx@boxes@shadow@yoffset - \fi - \setbox\spx@tempboxb\hb@xt@\wd\spx@tempboxa{% - \ifdim\spx@boxes@shadow@xoffset<\z@\vrule\@width-\spx@boxes@shadow@xoffset\fi - \hss - \ifdim\spx@boxes@shadow@xoffset>\z@\vrule\@width\spx@boxes@shadow@xoffset\fi - }% - \ht\spx@tempboxb\ht\spx@tempboxa - \dp\spx@tempboxb\dp\spx@tempboxa - \box\spx@tempboxb - \ifdim\spx@boxes@shadow@yoffset>\z@ - \kern-\spx@boxes@shadow@yoffset - \hrule\@height\spx@boxes@shadow@yoffset - \fi - \kern-\dp\spx@tempboxa - }% end of \vbox, attention it will have zero depth if yoffset>0 - \kern-\wd\spx@tempboxa - \ifdim\spx@boxes@shadow@xoffset>\z@ - \kern-\spx@boxes@shadow@xoffset - \fi - }% end of \hbox, attention its depth is only yoffset if yoffset>0 - }% end of \vbox - \fi % end of shadow drawing, and we are back to horizontal reference point - % BOX BORDER - % 7.4.0 requires a set border color - \vbox{\color{spx@boxes@bordercolor}% - \hrule\@height\spx@boxes@border@top - \kern-\spx@boxes@border@top - \setbox\spx@tempboxb\hb@xt@\wd\spx@tempboxa - {\vrule\@width\spx@boxes@border@left - \hss\vrule\@width\spx@boxes@border@right - }% - \ht\spx@tempboxb\ht\spx@tempboxa - \dp\spx@tempboxb\dp\spx@tempboxa - \box\spx@tempboxb - \kern-\spx@boxes@border@bottom - \hrule\@height\spx@boxes@border@bottom - \kern-\dp\spx@tempboxa - }% attention this box has zero depth due to \hrule at bottom - % step back to horizontal reference point - \kern-\wd\spx@tempboxa - % end of border drawing - % CONTENTS - % adjust the total depth to include the bottom shadow - \ifspx@boxes@withshadow - \ifdim\spx@boxes@shadow@yoffset>\z@ - \dp\spx@tempboxa\dimexpr\dp\spx@tempboxa+\spx@boxes@shadow@yoffset\relax - \fi - \fi - \box\spx@tempboxa - % include lateral shadow in total width - \ifspx@boxes@withshadow - \ifspx@boxes@shadowinbbox - \ifdim\spx@boxes@shadow@xoffset>\z@\kern\spx@boxes@shadow@xoffset\fi - \fi - \fi - \egroup -} - -% inset shadow -% -% The parameters signs are interpreted as in CSS styling. -\def\spx@boxes@fcolorbox@insetshadow{% - % BACKGROUND - % draw background and move back to reference point - % 7.4.0 always assumes a background color - {\color{spx@boxes@backgroundcolor}% - \vrule\@height\ht\spx@tempboxa - \@depth\dp\spx@tempboxa - \@width\wd\spx@tempboxa - \kern-\wd\spx@tempboxa - }% - % BOX SHADOW - % draw shadow and move back to reference point - \ifspx@boxes@withshadow - \hbox{\vbox{\ifspx@boxes@withshadowcolor - \color{spx@boxes@shadowcolor}% - \else - % 6.2.0: guard against a manually inserted \color command in - % contents which could leak at a page break to the shadow - \normalcolor - \fi -% NOTA BENE -% We deliberately draw shadow partially under an area later covered by frame -% with the idea to avoid anti-aliasing problems but in fact this may be a bad -% idea with border is thin. -% This may need some extra testing with PDF viewers... reports welcome! - \ifdim\spx@boxes@shadow@yoffset>\z@ - \hrule\@height\dimexpr\spx@boxes@border@top+\spx@boxes@shadow@yoffset\relax - \kern-\spx@boxes@shadow@yoffset - \kern-\spx@boxes@border@top - \fi - \setbox\spx@tempboxb\hb@xt@\wd\spx@tempboxa{% - \ifdim\spx@boxes@shadow@xoffset>\z@ - \vrule\@width\dimexpr\spx@boxes@border@left+\spx@boxes@shadow@xoffset\relax\fi - \hss - \ifdim\spx@boxes@shadow@xoffset<\z@ - \vrule\@width\dimexpr-\spx@boxes@shadow@xoffset+\spx@boxes@border@right\relax\fi - }% - \ht\spx@tempboxb\ht\spx@tempboxa - \dp\spx@tempboxb\dp\spx@tempboxa - \box\spx@tempboxb - \ifdim\spx@boxes@shadow@yoffset<\z@ - \kern\spx@boxes@shadow@yoffset - \kern-\spx@boxes@border@bottom - \hrule\@height\dimexpr-\spx@boxes@shadow@yoffset+\spx@boxes@border@bottom\relax - \fi - \kern-\dp\spx@tempboxa - }% end of \vbox, attention it will have zero depth if yoffset<0 - \kern-\wd\spx@tempboxa - }% end of \hbox, attention its depth is only |yoffset| if yoffset<0 - \fi % end of inset shadow drawing, and we are back to horizontal reference point - % BOX BORDER - % 7.4.0 requires a set border color - \vbox{\color{spx@boxes@bordercolor}% - \hrule\@height\spx@boxes@border@top - \kern-\spx@boxes@border@top - \setbox\spx@tempboxb\hb@xt@\wd\spx@tempboxa - {\vrule\@width\spx@boxes@border@left - \hss\vrule\@width\spx@boxes@border@right - }% - \ht\spx@tempboxb\ht\spx@tempboxa - \dp\spx@tempboxb\dp\spx@tempboxa - \box\spx@tempboxb - \kern-\spx@boxes@border@bottom - \hrule\@height\spx@boxes@border@bottom - \kern-\dp\spx@tempboxa - }% attention this box has zero depth due to \hrule at bottom - % step back to horizontal reference point - \kern-\wd\spx@tempboxa - % end of border drawing - % CONTENTS - \box\spx@tempboxa - \egroup -} - -% let's abort input if pict2e package could not be loaded. -% To be extra safe we also alias @rounded to @rectangle but -% a priori the architecture is done so that @rounded will never -% be called in that case by other Sphinx LaTeX components. -\@ifpackageloaded{pict2e} - {} - {\def\spx@boxes@fcolorbox@rounded{\spx@boxes@fcolorbox@rectangle}% - \endinput - } - -% we proceed now in the context of pict2e being available and loaded -% (TeX being a macro-expansion based language it would have -% swallowed all the coming definitions even if pict2e -% had in fact not been loaded... but we aborted the input above) -%%%%%%%% -%//// \spx@boxes@fcolorbox@rounded -% -% Prior to 6.2.0, a constant border-width was applied as the border was -% obtained as a \strokepath. This allowed 4 distinct radii but not to vary the -% border widths. Now the border is drawn by two \fillpath operation, the first -% one filling up to external border, the second one actually filling for the -% background paradoxically on top of it, up to internal border path. -% -% This 6.2.0 abandonment of \strokepath allowed great simplification in -% supporting opentop, openbottom and openboth situations, and it can -% allow automatic support of openleft and openright analogs. -% -% And 6.2.0 also implements elliptical arcs thanks to ellipse package, -% which extends pict2e. - -% Currently, inset shadow is not supported. -% -% Prior to 6.2.0 an inset shadow triggered the rectangle variant, so we never -% ended here, but now it is simply ignored. This change does not appear to me -% to be breaking, as it changes output only for conf.py's specifying both -% rounded corners and an inset shadow and the documentation said it was -% incompatible. - -% wrappers for pict2e usage if old -% Better not to copy over 2020 pict2e definitions in case -% something internal changes -% However our wrappers will work ONLY with dimensional inputs -% No need to pre-expand the arguments -% Braces in case the expression uses parentheses -\def\spx@moveto(#1,#2){\moveto({\strip@pt\dimexpr#1\relax},{\strip@pt\dimexpr#2\relax})} -\def\spx@lineto(#1,#2){\lineto({\strip@pt\dimexpr#1\relax},{\strip@pt\dimexpr#2\relax})} -% attention here the [N] becomes mandatory -% \circlearc[]{}{}{}{}{} -\def\spx@circlearc[#1]#2#3#4%#5#6 - {\circlearc[#1]{\strip@pt\dimexpr#2\relax}% - {\strip@pt\dimexpr#3\relax}% - {\strip@pt\dimexpr#4\relax}% - } -% attention here too the [N] becomes mandatory -% the core path macro of ellipse.sty. Thanks to Daan Leijen, author of this -% package. -% \elliparc []{}{}{}{}{}{} -% maybe this wrapper is unneeded but I don't have real time to check -\def\spx@elliparc[#1]#2#3#4#5%#6#7 - {\elliparc[#1]{\strip@pt\dimexpr#2\relax}% - {\strip@pt\dimexpr#3\relax}% - {\strip@pt\dimexpr#4\relax}% - {\strip@pt\dimexpr#5\relax}% - } - -% Macro whose execution prepares a path to be either stroked or filled -% Only fill operation is used at 6.2.0. The radii are given by the set box -% parameters, but the width and height are in \spx@width and \spx@height. A -% \put command will be used for appropriate shifts. -% 6.2.0 adds elliptical corners! -% But I feel perhaps I need to think about how x-radius and y-radius should -% interact with border-width. So consider output WIP for time being. -\def\spx@boxes@border@defpath{% - \spx@moveto(\spx@boxes@radius@bottomleft@x,\z@)% our \spx@moveto is a bit rigid - % and we must use \z@ not 0 here - \spx@lineto(\spx@width-\spx@boxes@radius@bottomright@x,\z@)% - % x and y radii are either both positive or both zero - % probably not needed to actually guard against the latter case, - % let's do it nevertheless - \ifdim\spx@boxes@radius@bottomright@x>\z@ - \ifdim\spx@boxes@radius@bottomright@x=\spx@boxes@radius@bottomright@y - \spx@circlearc[2]{\spx@width-\spx@boxes@radius@bottomright@x}% - {\spx@boxes@radius@bottomright@y}% - {\spx@boxes@radius@bottomright@x}{-90}{0}% - \else - \spx@elliparc[2]{\spx@width-\spx@boxes@radius@bottomright@x}% - {\spx@boxes@radius@bottomright@y}% - {\spx@boxes@radius@bottomright@x} - {\spx@boxes@radius@bottomright@y}{-90}{0}% - \fi - \fi - \spx@lineto(\spx@width,% - \spx@height-\spx@boxes@radius@topright@y)% - \ifdim\spx@boxes@radius@topright@x>\z@ - \ifdim\spx@boxes@radius@topright@x=\spx@boxes@radius@topright@y - \spx@circlearc[2]{\spx@width-\spx@boxes@radius@topright@x} - {\spx@height-\spx@boxes@radius@topright@y}% - {\spx@boxes@radius@topright@x}{0}{90}% - \else - \spx@elliparc[2]{\spx@width-\spx@boxes@radius@topright@x} - {\spx@height-\spx@boxes@radius@topright@y}% - {\spx@boxes@radius@topright@x}% - {\spx@boxes@radius@topright@y}{0}{90}% - \fi - \fi - \spx@lineto(\spx@boxes@radius@topleft@x,\spx@height)% - \ifdim\spx@boxes@radius@topleft@x>\z@ - \ifdim\spx@boxes@radius@topleft@x=\spx@boxes@radius@topleft@y - \spx@circlearc[2]{\spx@boxes@radius@topleft@x}% - {\spx@height-\spx@boxes@radius@topleft@y}% - {\spx@boxes@radius@topleft@x}{90}{180}% - \else - \spx@elliparc[2]{\spx@boxes@radius@topleft@x}% - {\spx@height-\spx@boxes@radius@topleft@y}% - {\spx@boxes@radius@topleft@x}% - {\spx@boxes@radius@topleft@y}{90}{180}% - \fi - \fi - \spx@lineto(\z@,\spx@boxes@radius@bottomleft@y)% - \ifdim\spx@boxes@radius@bottomleft@x>\z@ - \ifdim\spx@boxes@radius@bottomleft@x=\spx@boxes@radius@bottomleft@y - \spx@circlearc[2]{\spx@boxes@radius@bottomleft@x}% - {\spx@boxes@radius@bottomleft@y}% - {\spx@boxes@radius@bottomleft@x}{180}{270}% - \else - \spx@elliparc[2]{\spx@boxes@radius@bottomleft@x}% - {\spx@boxes@radius@bottomleft@y}% - {\spx@boxes@radius@bottomleft@x}% - {\spx@boxes@radius@bottomleft@y}{180}{270}% - \fi - \fi -}% end of definition of \spx@boxes@border@defpath - -% The customization of the various parameters must have been done via an -% appropriate call to \spx@boxes@fcolorbox@setup, which will have set up -% \spx@boxes@fcolorbox to expand to \spx@boxes@fcolorbox@rounded, and will -% have set its various parameters. -% -\long\def\spx@boxes@fcolorbox@rounded #1{% - \hbox{% - \ifspx@boxes@withshadow - \ifspx@boxes@insetshadow - \spx@boxes@withshadowfalse % ignore inset shadow - \fi - \fi - % reserve space to external shadow if on left - \ifspx@boxes@withshadow - \ifspx@boxes@shadowinbbox - \ifdim\spx@boxes@shadow@xoffset<\z@\kern-\spx@boxes@shadow@xoffset\fi - \fi - \fi - \vbox{% - % adjust vertical bbox - \ifspx@boxes@withshadow - \ifdim\spx@boxes@shadow@yoffset<\z@ - \kern-\spx@boxes@shadow@yoffset - \fi - \fi - \setlength{\unitlength}{1pt}% - \setbox\spx@tempboxa - \hbox{\kern\dimexpr\spx@boxes@border@left+\spx@boxes@padding@left\relax - {#1}% - \kern\dimexpr\spx@boxes@padding@right+\spx@boxes@border@right\relax}% - \ht\spx@tempboxa - \dimexpr\ht\spx@tempboxa+\spx@boxes@border@top+\spx@boxes@padding@top\relax - \dp\spx@tempboxa - \dimexpr\dp\spx@tempboxa+\spx@boxes@padding@bottom+\spx@boxes@border@bottom\relax - \edef\spx@width{\number\wd\spx@tempboxa sp}% - \edef\spx@height{\number\dimexpr\ht\spx@tempboxa+\dp\spx@tempboxa sp}% - \hbox{% - \begin{picture}% - % \strip@pt\dimexpr to work around "old" LaTeX picture limitation - % (we could use the "picture" package, this would add another dependency) - (\strip@pt\dimexpr\spx@width\relax,\strip@pt\dimexpr\spx@height\relax)% - \spx@boxes@border@defpath - \ifspx@boxes@withshadow - \ifspx@boxes@withshadowcolor - \color{spx@boxes@shadowcolor}% - \else - % 6.2.0: here and elsewhere guard against a manually inserted - % \color command in contents which could leak to the shadow - % to the shadow - \normalcolor - \fi - \put(\strip@pt\spx@boxes@shadow@xoffset,% - \strip@pt\dimexpr-\spx@boxes@shadow@yoffset\relax) - {\fillpath}% - \fi - \spx@boxes@border@defpath% must be redone after each \fillpath! (even if - % was in a \put) - % 7.4.0 requires a set border color - \color{spx@boxes@bordercolor}% - \fillpath - % and backgroundcolor command - \color{spx@boxes@backgroundcolor}% - \edef\spx@width{\number\dimexpr\spx@width-\spx@boxes@border@left - -\spx@boxes@border@right sp}% - \edef\spx@height{\number\dimexpr\spx@height-\spx@boxes@border@top - -\spx@boxes@border@bottom sp}% - % redefine a path (in relative coordinates) matching the area delimited - % by the internal borders - \spx@boxes@border@defpath - % use \put to shift, and fill it with background color - \put(\strip@pt\spx@boxes@border@left,\strip@pt\spx@boxes@border@bottom) - {\fillpath}% - \end{picture}}% end of picture \hbox in \vbox - % back-up vertically for outputting the contents - \kern-\dimexpr\ht\spx@tempboxa+\dp\spx@tempboxa\relax - % adjust vertical bbox - \ifspx@boxes@withshadow - \ifdim\spx@boxes@shadow@yoffset>\z@ - \dp\spx@tempboxa\dimexpr\dp\spx@tempboxa+\spx@boxes@shadow@yoffset\relax - \fi - \fi - % inhibit TeX's "line skip" adjustment when piling up hboxes in a vbox - \nointerlineskip - \box\spx@tempboxa - }% end of \vbox - % include lateral shadow in total width - \ifspx@boxes@withshadow - \ifspx@boxes@shadowinbbox - \ifdim\spx@boxes@shadow@xoffset>\z@\kern\spx@boxes@shadow@xoffset\fi - \fi - \fi - }% end of \hbox -}% - - -\endinput diff --git a/docs/build/latex/sphinxpackagecyrillic.sty b/docs/build/latex/sphinxpackagecyrillic.sty deleted file mode 100644 index 9aa62fc..0000000 --- a/docs/build/latex/sphinxpackagecyrillic.sty +++ /dev/null @@ -1,55 +0,0 @@ -%% CYRILLIC IN NON-CYRILLIC DOCUMENTS (pdflatex only) -% -% refs: https://tex.stackexchange.com/q/460271/ -\ProvidesPackage{sphinxpackagecyrillic}% - [2018/11/21 v2.0 support for Cyrillic in non-Cyrillic documents] -\RequirePackage{kvoptions} -\SetupKeyvalOptions{prefix=spx@cyropt@} % use \spx@cyropt@ prefix -\DeclareBoolOption[false]{Xtwo} -\DeclareBoolOption[false]{TtwoA} -\DeclareDefaultOption{\@unknownoptionerror} -\ProcessLocalKeyvalOptions* % ignore class options - -\ifspx@cyropt@Xtwo -% original code by tex.sx user egreg (updated 2019/10/28): -% https://tex.stackexchange.com/a/460325/ -% 159 Cyrillic glyphs as available in X2 TeX 8bit font encoding -% This assumes inputenc loaded with utf8 option, or LaTeX release -% as recent as 2018/04/01 which does it automatically. - \@tfor\next:=% - {Ё}{Ђ}{Є}{Ѕ}{І}{Ј}{Љ}{Њ}{Ћ}{Ў}{Џ}{А}{Б}{В}{Г}{Д}{Е}{Ж}{З}{И}{Й}% - {К}{Л}{М}{Н}{О}{П}{Р}{С}{Т}{У}{Ф}{Х}{Ц}{Ч}{Ш}{Щ}{Ъ}{Ы}{Ь}{Э}{Ю}% - {Я}{а}{б}{в}{г}{д}{е}{ж}{з}{и}{й}{к}{л}{м}{н}{о}{п}{р}{с}{т}{у}% - {ф}{х}{ц}{ч}{ш}{щ}{ъ}{ы}{ь}{э}{ю}{я}{ё}{ђ}{є}{ѕ}{і}{ј}{љ}{њ}{ћ}% - {ў}{џ}{Ѣ}{ѣ}{Ѫ}{ѫ}{Ѵ}{ѵ}{Ґ}{ґ}{Ғ}{ғ}{Ҕ}{ҕ}{Җ}{җ}{Ҙ}{ҙ}{Қ}{қ}{Ҝ}{ҝ}% - {Ҟ}{ҟ}{Ҡ}{ҡ}{Ң}{ң}{Ҥ}{ҥ}{Ҧ}{ҧ}{Ҩ}{ҩ}{Ҫ}{ҫ}{Ҭ}{ҭ}{Ү}{ү}{Ұ}{ұ}{Ҳ}{ҳ}% - {Ҵ}{ҵ}{Ҷ}{ҷ}{Ҹ}{ҹ}{Һ}{һ}{Ҽ}{ҽ}{Ҿ}{ҿ}{Ӏ}{Ӄ}{ӄ}{Ӆ}{ӆ}{Ӈ}{ӈ}{Ӌ}{ӌ}% - {Ӎ}{ӎ}{Ӕ}{ӕ}{Ә}{ә}{Ӡ}{ӡ}{Ө}{ө}\do - {% - \begingroup\def\IeC{\protect\DeclareTextSymbolDefault}% - \protected@edef\@temp{\endgroup - \@ifl@t@r{\fmtversion}{2019/10/01}{\csname u8:\next\endcsname}{\next}}% - \@temp{X2}% - }% -\else -\ifspx@cyropt@TtwoA -% original code by tex.sx user jfbu: -% https://tex.stackexchange.com/a/460305/ -% 63*2+1=127 Cyrillic glyphs as found in T2A 8bit TeX font-encoding - \@tfor\@tempa:=% - {ae}{a}{b}{chrdsc}{chvcrs}{ch}{c}{dje}{dze}{dzhe}{d}{erev}{ery}{e}% - {f}{ghcrs}{gup}{g}{hdsc}{hrdsn}{h}{ie}{ii}{ishrt}{i}{je}% - {kbeak}{kdsc}{kvcrs}{k}{lje}{l}{m}{ndsc}{ng}{nje}{n}{otld}{o}{p}{r}% - {schwa}{sdsc}{sftsn}{shch}{shha}{sh}{s}{tshe}{t}{ushrt}{u}{v}% - {ya}{yhcrs}{yi}{yo}{yu}{y}{zdsc}{zhdsc}{zh}{z}\do - {% - \expandafter\DeclareTextSymbolDefault\expandafter - {\csname cyr\@tempa\endcsname}{T2A}% - \expandafter\uppercase\expandafter{\expandafter - \def\expandafter\@tempa\expandafter{\@tempa}}% - \expandafter\DeclareTextSymbolDefault\expandafter - {\csname CYR\@tempa\endcsname}{T2A}% - }% - \DeclareTextSymbolDefault{\CYRpalochka}{T2A}% -\fi\fi -\endinput diff --git a/docs/build/latex/sphinxpackagefootnote.sty b/docs/build/latex/sphinxpackagefootnote.sty deleted file mode 100644 index 7f2e291..0000000 --- a/docs/build/latex/sphinxpackagefootnote.sty +++ /dev/null @@ -1,434 +0,0 @@ -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{sphinxpackagefootnote}% - [2024/05/17 v7.3.x Sphinx custom footnotehyper package (Sphinx team)] -%% -%% Package: sphinxpackagefootnote -%% Version: based on footnotehyper.sty 2021/02/04 v1.1d -%% https://www.ctan.org/pkg/footnotehyper -%% License: the one applying to Sphinx -%% -% Provides support for footnote mark-up from Sphinx latex writer: -% - "footnote" and "footnotetext" environments allowing verbatim material -% - "savenotes" environment for wrapping environments, such as for tables -% which have problems with LaTeX footnotes -% - hyperlinks -% -% Sphinx uses exclusively this mark-up for footnotes: -% - \begin{footnote}[N] -% - \begin{footnotetext}[N] -% - \sphinxfootnotemark[N] -% where N is a number. -% -%% Some small differences from upstream footnotehyper.sty: -%% - a tabulary compatibility layer (partial but enough for Sphinx), -%% - usage of \spx@opt@BeforeFootnote -%% - usage of \sphinxunactivateextrasandspace from sphinx.sty, -%% - \sphinxlongtablepatch -%% -%% Starting with Sphinx v4.5.0, inherited footnotehyper macros for -%% footnote/footnotetext receive some Sphinx specific extras to -%% implement "intelligent" footnote marks checking page numbers. -%% -%% All footnotes output from Sphinx are hyperlinked. With "savenotes" -%% footnotes may appear on page distinct from footnote mark, the latter -%% will indicate page number of the footnote. -\newif\iffootnotehyperparse\footnotehyperparsetrue -\DeclareOption*{\PackageWarning{sphinxpackagefootnote}{Option `\CurrentOption' is unknown}}% -\ProcessOptions\relax -\newbox\FNH@notes -\newtoks\FNH@toks % 1.1c -\newdimen\FNH@width -\let\FNH@colwidth\columnwidth -\newif\ifFNH@savingnotes -\AtBeginDocument {% - \let\FNH@latex@footnote \footnote - \let\FNH@latex@footnotetext\footnotetext - \let\FNH@H@@footnotetext \@footnotetext - \let\FNH@H@@mpfootnotetext \@mpfootnotetext - \newenvironment{savenotes} - {\FNH@savenotes\ignorespaces}{\FNH@spewnotes\ignorespacesafterend}% - \let\spewnotes \FNH@spewnotes - \let\footnote \FNH@footnote - \let\footnotetext \FNH@footnotetext - \let\endfootnote \FNH@endfntext - \let\endfootnotetext\FNH@endfntext - % always True branch taken with Sphinx - \@ifpackageloaded{hyperref} - {\ifHy@hyperfootnotes - \let\FNH@H@@footnotetext\H@@footnotetext - \let\FNH@H@@mpfootnotetext\H@@mpfootnotetext - \else - \let\FNH@hyper@fntext\FNH@nohyp@fntext - \fi}% - {\let\FNH@hyper@fntext\FNH@nohyp@fntext}% -}% -\def\FNH@hyper@fntext{\FNH@fntext\FNH@hyper@fntext@i}% -\def\FNH@nohyp@fntext{\FNH@fntext\FNH@nohyp@fntext@i}% -\def\FNH@fntext #1{% - \ifx\ifmeasuring@\@undefined - \expandafter\@secondoftwo\else\expandafter\@firstofone\fi -% these two lines modified for Sphinx (tabulary compatibility): - {\ifmeasuring@\expandafter\@gobbletwo\else\expandafter\@firstofone\fi}% - {\ifx\equation$\expandafter\@gobbletwo\fi #1}%$ -}% -\long\def\FNH@hyper@fntext@i#1{% - \global\setbox\FNH@notes\vbox - {\unvbox\FNH@notes - \FNH@startnote - \@makefntext - {\rule\z@\footnotesep\ignorespaces - \ifHy@nesting\expandafter\ltx@firstoftwo - \else\expandafter\ltx@secondoftwo - \fi - {\expandafter\hyper@@anchor\expandafter{\Hy@footnote@currentHref}{#1}}% - {\Hy@raisedlink - {\expandafter\hyper@@anchor\expandafter{\Hy@footnote@currentHref}% - {\relax}}% - \let\@currentHref\Hy@footnote@currentHref - \let\@currentlabelname\@empty - #1}% - \@finalstrut\strutbox - }% - \FNH@endnote - }% -}% -\long\def\FNH@nohyp@fntext@i#1{% - \global\setbox\FNH@notes\vbox - {\unvbox\FNH@notes - \FNH@startnote - \@makefntext{\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% - \FNH@endnote - }% -}% -\def\FNH@startnote{% - \hsize\FNH@colwidth - \interlinepenalty\interfootnotelinepenalty - \reset@font\footnotesize - \floatingpenalty\@MM - \@parboxrestore - \protected@edef\@currentlabel{\csname p@\@mpfn\endcsname\@thefnmark}% - \color@begingroup -}% -\def\FNH@endnote{\color@endgroup}% -\def\FNH@savenotes{% - \begingroup - \ifFNH@savingnotes\else - \FNH@savingnotestrue - \let\@footnotetext \FNH@hyper@fntext - \let\@mpfootnotetext \FNH@hyper@fntext - \let\H@@mpfootnotetext\FNH@nohyp@fntext - \FNH@width\columnwidth - \let\FNH@colwidth\FNH@width - \global\setbox\FNH@notes\box\voidb@x - \let\FNH@thempfn\thempfn - \let\FNH@mpfn\@mpfn - \ifx\@minipagerestore\relax\let\@minipagerestore\@empty\fi - \expandafter\def\expandafter\@minipagerestore\expandafter{% - \@minipagerestore - \let\thempfn\FNH@thempfn - \let\@mpfn\FNH@mpfn - }% - \fi -}% -\def\FNH@spewnotes {% - \if@endpe\ifx\par\@@par\FNH@toks{}\else - \FNH@toks\expandafter{\expandafter - \def\expandafter\par\expandafter{\par}\@endpetrue}% - \expandafter\expandafter\expandafter - \FNH@toks - \expandafter\expandafter\expandafter - {\expandafter\the\expandafter\FNH@toks - \expandafter\def\expandafter\@par\expandafter{\@par}}% - \expandafter\expandafter\expandafter - \FNH@toks - \expandafter\expandafter\expandafter - {\expandafter\the\expandafter\FNH@toks - \expandafter\everypar\expandafter{\the\everypar}}\fi - \else\FNH@toks{}\fi - \expandafter - \endgroup\the\FNH@toks - \ifFNH@savingnotes\else - \ifvoid\FNH@notes\else - \begingroup - \let\@makefntext\@empty - \let\@finalstrut\@gobble - \let\rule\@gobbletwo - \ifx\@footnotetext\@mpfootnotetext - \expandafter\FNH@H@@mpfootnotetext - \else - \expandafter\FNH@H@@footnotetext - \fi{\unvbox\FNH@notes}% - \endgroup - \fi - \fi -}% -\def\FNH@footnote@envname {footnote}% -\def\FNH@footnotetext@envname{footnotetext}% -\def\FNH@footnote{% -% this line added for Sphinx: - \spx@opt@BeforeFootnote - \ifx\@currenvir\FNH@footnote@envname - \expandafter\FNH@footnoteenv - \else - \expandafter\FNH@latex@footnote - \fi -}% -\def\FNH@footnoteenv{% -% this line added for Sphinx (footnotes in parsed literal blocks): - \catcode13=5 \sphinxunactivateextrasandspace - \@ifnextchar[% - \FNH@footnoteenv@i %] - {\stepcounter\@mpfn - \protected@xdef\@thefnmark{\thempfn}% - \@footnotemark - \def\FNH@endfntext@fntext{\@footnotetext}% - \FNH@startfntext}% -}% -\def\FNH@footnoteenv@i[#1]{% - \begingroup - % This legacy code from LaTeX core restricts #1 to be digits only - % This limitation could be lifted but legacy Sphinx anyhow obeys it - \csname c@\@mpfn\endcsname #1\relax - \unrestored@protected@xdef\@thefnmark{\thempfn}% - \endgroup -% -- Sphinx specific: -% currently commented out due to -% https://github.com/sphinx-doc/sphinx/pull/10191#issuecomment-1038807448 -% Memo: memoir class detection of successive footnote marks (to separate them -% by commas) is broken by \refstepcounter and also by \label, and some -% mitigation such as in \sphinxfootref would be needed - % \global\let\spx@saved@thefnmark\@thefnmark - % % this is done to access robustly the page number where footnote mark is - % \refstepcounter{sphinxfootnotemark}\label{footnotemark.\thesphinxfootnotemark}% - % % if possible, compare page numbers of mark and footnote to define \@thefnmark - % \ltx@ifundefined{r@\thesphinxscope.footnote.#1}% - % {}% one more latex run is needed - % {\sphinx@xdef@thefnmark{#1}}% check of page numbers possible -% -- - \@footnotemark - \def\FNH@endfntext@fntext{\@footnotetext}% -% -- Sphinx specific: - % we need to reset \@thefnmark as it is used by \FNH@startfntext via - % \FNH@startnote to set \@currentlabel which will be used by \label -% currently commented out (see above) - % \global\let\@thefnmark\spx@saved@thefnmark -% -- - \FNH@startfntext -% -- again Sphinx specific - % \@currentlabel as needed by \label got set by \FNH@startnote - % insert this at start of footnote text then the label will allow - % to robustly know on which page the footnote text ends up -% currently only of use for extra footnote marks so in case footnote multiply referred - \phantomsection\label{\thesphinxscope.footnote.#1}% -}% -\def\FNH@footnotetext{% - \ifx\@currenvir\FNH@footnotetext@envname - \expandafter\FNH@footnotetextenv - \else - \expandafter\FNH@latex@footnotetext - \fi -}% -\def\FNH@footnotetextenv{% - \@ifnextchar[% - \FNH@footnotetextenv@i %] - {\protected@xdef\@thefnmark{\thempfn}% - \def\FNH@endfntext@fntext{\@footnotetext}% - \FNH@startfntext}% -}% -\def\FNH@footnotetextenv@i[#1]{% - \begingroup - \csname c@\@mpfn\endcsname #1\relax - \unrestored@protected@xdef\@thefnmark{\thempfn}% - \endgroup - \ifFNH@savingnotes - \def\FNH@endfntext@fntext{\FNH@nohyp@fntext}% - \else - \def\FNH@endfntext@fntext{\FNH@H@@footnotetext}% - \fi - \FNH@startfntext -% -- Sphinx specific addition - \phantomsection\label{\thesphinxscope.footnote.#1}% -}% -\def\FNH@startfntext{% - \setbox\z@\vbox\bgroup - \FNH@startnote - \FNH@prefntext - \rule\z@\footnotesep\ignorespaces -}% -\def\FNH@endfntext {% - \@finalstrut\strutbox - \FNH@postfntext - \FNH@endnote - \egroup - \begingroup - \let\@makefntext\@empty\let\@finalstrut\@gobble\let\rule\@gobbletwo - \FNH@endfntext@fntext {\unvbox\z@}% - \endgroup -}% -\let\FNH@prefntext\@empty -\let\FNH@postfntext\@empty -\AtBeginDocument{\iffootnotehyperparse\expandafter\FNH@check\fi}% -\def\FNH@safeif#1{% - \iftrue\csname if#1\endcsname\csname fi\endcsname\expandafter\@firstoftwo - \else\csname fi\endcsname\expandafter\@secondoftwo - \fi -}% -\def\FNH@check{% - \ifx\@makefntextFB\@undefined\expandafter\FNH@check@ - \else\expandafter\FNH@frenchb@ - \fi -}% -\def\FNH@frenchb@{% - \def\FNH@prefntext{% - \localleftbox{}% - \let\FBeverypar@save\FBeverypar@quote - \let\FBeverypar@quote\relax - \FNH@safeif{FB@koma}% - {\FNH@safeif{FBFrenchFootnotes}% - {\ifx\footnote\thanks - \let\@@makefnmark\@@makefnmarkTH - \@makefntextTH{} % space as in french.ldf - \else - \let\@@makefnmark\@@makefnmarkFB - \@makefntextFB{} % space as in french.ldf - \fi - }{\let\@@makefnmark\@@makefnmarkORI - \@makefntextORI{}% no space as in french.ldf - }% - }% - {\FNH@safeif{FBFrenchFootnotes}% - {\@makefntextFB{}}% - {\@makefntextORI{}}% - }% - }% - \def\FNH@postfntext{% - \let\FBeverypar@quote\FBeverypar@save - \localleftbox{\FBeveryline@quote}% - }% -}% -\def\FNH@check@{% - \expandafter\FNH@check@a\@makefntext{1.2!3?4,}% - \FNH@@@1.2!3?4,\FNH@@@\relax -}% -\long\def\FNH@check@a #11.2!3?4,#2\FNH@@@#3{% - \ifx\relax#3\expandafter\FNH@checkagain@ - \else - \def\FNH@prefntext{#1}\def\FNH@postfntext{#2}% - \expandafter\FNH@check@b - \fi -}% -\def\FNH@checkagain@{% - \expandafter\FNH@checkagain@a - \detokenize\expandafter{\@makefntext{1.2!3?4,}}\relax\FNH@@@ -}% -\edef\FNH@temp{\noexpand\FNH@checkagain@a ##1\string{1.2!3?4,\string}}% -\expandafter\def\FNH@temp#2#3\FNH@@@{% - \ifx\relax#2% - \def\FNH@prefntext{\@makefntext{}}% - \else\FNH@bad@makefntext@alert - \fi -}% -\def\FNH@check@b #1\relax{% - \expandafter\expandafter\expandafter\FNH@check@c - \expandafter\meaning\expandafter\FNH@prefntext - \meaning\FNH@postfntext1.2!3?4,\FNH@check@c\relax -}% -\def\FNH@check@c #11.2!3?4,#2#3\relax{% - \ifx\FNH@check@c#2\else\FNH@bad@makefntext@alert\fi -}% -% slight reformulation for Sphinx -\def\FNH@bad@makefntext@alert{% - \sphinxbuildwarning{badfootnotes}% - \PackageWarningNoLine{sphinxpackagefootnote}% - {Footnotes will be sub-optimal, sorry. This is due to the document class or^^J - some package modifying macro \string\@makefntext.^^J - You can try to report this incompatibility at^^J - https://github.com/sphinx-doc/sphinx with this info:}% - \typeout{\meaning\@makefntext}% - \let\FNH@prefntext\@empty\let\FNH@postfntext\@empty -}% -% this macro from original footnote.sty is not used anymore by Sphinx -% but for simplicity sake let's just keep it as is -\def\makesavenoteenv{\@ifnextchar[\FNH@msne@ii\FNH@msne@i}%] -\def\FNH@msne@i #1{% - \expandafter\let\csname FNH$#1\expandafter\endcsname %$ - \csname #1\endcsname - \expandafter\let\csname endFNH$#1\expandafter\endcsname %$ - \csname end#1\endcsname - \FNH@msne@ii[#1]{FNH$#1}%$ -}% -\def\FNH@msne@ii[#1]#2{% - \expandafter\edef\csname#1\endcsname{% - \noexpand\savenotes - \expandafter\noexpand\csname#2\endcsname - }% - \expandafter\edef\csname end#1\endcsname{% - \expandafter\noexpand\csname end#2\endcsname - \noexpand\expandafter - \noexpand\spewnotes - \noexpand\if@endpe\noexpand\@endpetrue\noexpand\fi - }% -}% -% -% some extras for Sphinx : -% \sphinxfootnotemark: -% - if in section titles will auto-remove itself from TOC -\def\sphinxfootnotemark [#1]% - {\ifx\thepage\relax\else\sphinxfootref{#1}\fi}% -\newcounter{sphinxfootnotemark} -\renewcommand\thesphinxfootnotemark{\number\value{sphinxfootnotemark}} -% - compares page number of footnote mark versus the one of footnote text -\def\sphinx@xdef@thefnmark#1{% - \expandafter\expandafter\expandafter\sphinx@footref@get - \csname r@\thesphinxscope.footnote.#1\endcsname\relax - \expandafter\expandafter\expandafter\sphinx@footmark@getpage - \csname r@footnotemark.\thesphinxfootnotemark\endcsname\thepage\relax - \protected@xdef\@thefnmark{% - \ifx\spx@footmarkpage\spx@footrefpage - \spx@footreflabel - \else - % the macro \sphinxthefootnotemark is in sphinx.sty - \sphinxthefootnotemark{\spx@footreflabel}{\spx@footrefpage}% - \fi - }% -}% -\def\sphinx@footref@get #1#2#3#4#5\relax{% - \def\spx@footreflabel{#1}% - \def\spx@footrefpage {#2}% - \def\spx@footrefHref {#4}% -}% -\def\sphinx@footmark@getpage #1#2#3\relax{% - \edef\spx@footmarkpage{#2}% -}% -\protected\def\sphinxfootref#1{% #1 always is explicit number in Sphinx - \spx@opt@BeforeFootnote - % each of \refstepcounter and \label interferes with memoir class detection - % of successive footnote marks, so we move them to inside \@makefnmark - \let\spx@saved@makefnmark\@makefnmark - \ltx@ifundefined{r@\thesphinxscope.footnote.#1}% - {\gdef\@thefnmark{?}% on first LaTeX run - \refstepcounter{sphinxfootnotemark}\label{footnotemark.\thesphinxfootnotemark}% - }% - {\def\@makefnmark{% will be used by \H@@footnotemark - \refstepcounter{sphinxfootnotemark}\label{footnotemark.\thesphinxfootnotemark}% - \sphinx@xdef@thefnmark{#1}% also defines \spx@footrefHref - % must be executed after \refstepcounter - \hyper@linkstart{link}{\spx@footrefHref}% - \spx@saved@makefnmark - \hyper@linkend - }% - }% - \H@@footnotemark - \let\@makefnmark\spx@saved@makefnmark -}% -\AtBeginDocument{% - % let hyperref less complain - \pdfstringdefDisableCommands{\def\sphinxfootnotemark [#1]{}}% - % to obtain hyperlinked footnotes in longtable environment we must replace - % hyperref's patch of longtable's patch of \@footnotetext by our own - \let\LT@p@ftntext\FNH@hyper@fntext - % this *requires* longtable to be used always wrapped in savenotes environment -}% -\endinput -%% -%% End of file `sphinxpackagefootnote.sty'. diff --git a/docs/build/latex/sphinxpackagesubstitutefont.sty b/docs/build/latex/sphinxpackagesubstitutefont.sty deleted file mode 100644 index 536bf20..0000000 --- a/docs/build/latex/sphinxpackagesubstitutefont.sty +++ /dev/null @@ -1,21 +0,0 @@ -%% a stub for obsoleted LaTeX package substitutefont -% The package substitutefont stopped being distributed with TeXLive -% around August 2023 and was moved to "obsolete" section. -% cf https://ctan.org/pkg/substitutefont -% Trying to load it raises a LaTeX build error since. - -% The \substitutefont has a LaTeX kernel replacement -% \DeclareFontFamilySubstitution -% which was added to LaTeX 2020-02-02 -% The aim of this stub is to do that replacement silently. - -% change this info string if making any custom modification -\ProvidesPackage{sphinxpackagesubstitutefont}[2023/15/11 v7.3.0 substitutefont stub] - -\ifdefined\DeclareFontFamilySubstitution - \def\substitutefont{\DeclareFontFamilySubstitution} -\else - \usepackage{substitutefont} -\fi - -\endinput diff --git a/docs/build/simplepdf/.buildinfo b/docs/build/simplepdf/.buildinfo index 6fff68f..01c8d5e 100644 --- a/docs/build/simplepdf/.buildinfo +++ b/docs/build/simplepdf/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. -config: aa20e38169c30b082b54c70216e7f5c2 +config: 8ce4d6c0fb1d538c7d5da7d6ee750f9e tags: 62a1e7829a13fc7881b6498c52484ec0 diff --git a/docs/build/simplepdf/Canadian Payroll Administration.pdf b/docs/build/simplepdf/Canadian Payroll Administration.pdf index ef4842b6f56c117ea6a1720b62cc1eb90ea926b4..91c28b7365f025fd774cf8bab719006bd7b0a7c2 100644 GIT binary patch delta 91918 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 S0UZo8GBq$a3MC~)Peuxx*?74C delta 83554 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%0D!|DE~zlMbF1T12Ez-ga^J1 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�FwB}@O; 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 Pih>xPu6{1-oD!M+ z{3Stt!3@9GpZ`3!WWSNb-R=aBmy7Q|1DV5F;1OBOz`%C|gc+x5^GP!>FlT$ZIEGl9 zE}a^i!xJcS{QtJHvSr4X%|1R-PTa)nTNB19w50ZvQiO`?tHeji%9)Ep6$KYf=HRz^ z^T5$1>3X*En*O_sR?V(Bz^vv}(-PuxX!g}*o0^YW8gJfR-aY%yOzY=!s^7hzSNu-a zN2=FtdLMH@+PAnY%Uf+;m)A#qu`yn~{pBY8ib==+-&&KgrO>&DZMpr~xtG2KhV0d> z(9ivuvwXSI+E1#64#K6Dt;_lDZT8_S`O4GidcgJY?`f5bZiQXrUOSt?Y0ojw4A(1_ zM%ovC3jEHs$yni|5O1!nw$`NM!@lB*tcPaZhe8FUHNCR;jf6&kEf0IMpriTcE|OMPv4ZNwHFbEM@6M zQSn!fJWvx{WY>0(Ff#lY*%b{stezBFupFr(y^qMMPDfE+Gi%0OCC`X%XeIm zs_ED}%}!DNEE9|5smivDBOVNfm-Xi=O<_{ouUBMc!|~F1N7S}y=T#g7cD*k4{AZ!+ zq;lq6MGfz7y&nRm@!=uHEo(0|Ds!Cs>c76}$wP)DL;Ip9j=#k2Uwt}F@q$(BGS86W zg`EP^?tJoU*^$Qo+3u8pnBSILp#rg2dN~D*`gA=ymMgoh4w75&)LX#l$y~h;O#f^j zI;-UL-0-xv)zp1Hm+MGWn8qG{ec7^KVoJ**gsaxX{9#eteIfQ}s39}w-Xi}OmQ4z> z=fs&f!b5dsTAYlhK0SD`Siq>DVav-U$~#|v>W#eJ+|g*e^pMJ52B$uWj^Zole+dK$ zb|?usJ1!M^u`gh!p?{&yMedWgdN!PH)LW6oFScOY{{82+WIIC9V-AE~y128K9iW TpsxIo2Sj_i`njxgN@xNAOqs&< literal 0 HcmV?d00001 diff --git a/docs/build/simplepdf/_images/math/547c7611976b4041740caa3335735c193069bb84.png b/docs/build/simplepdf/_images/math/547c7611976b4041740caa3335735c193069bb84.png new file mode 100644 index 0000000000000000000000000000000000000000..6b863fe98651e367762aa85d31a25eacfa81586a GIT binary patch literal 1179 zcmeAS@N?(olHy`uVBq!ia0y~yU`zzEg;|(^dtefEBq#4BOIZvl!X>zP@ zO`-cLkNKOLniMYe@^`Hc((XtQe124H|143F=qWSm%Q!p3_eg?y?D=x*eP1!fSq`Niuc z+bg~cb+q1E)2{cSWRLRu;zD>{MCzZs&hhKaI04{ZIaJ2P-c#ZhmzlZNXqF^dDy}LL(>U z3*XY-B0X=GarGk(`=vT_96#howENBt+8WK`n6`J_2E#s1jmt02{OquNlYZ)f@-?;8 z@GZ{;%{Pi$e_VY=PBX}cl^f{B0NyPBr*G6_9M4u}rF}jkd*wx=QzH9?+Cw?BV*CQm$ zI&yhFT<=@Yt6ALn*r_UY?z;N)z5fk6lbiVpU43WT8h-y+%+$Y1EicElVoF!n4v$Hh zSH65a9`ZuvSjj2zH6^VchpuU?X*arZvob(@MfyU8FOm^zF^>!n#%=dY4Q+B&`B$>* zP_XfA^|VKh*H(oW?&Mc|t=5!w#Aj3F-eXpxLC+?>{rJ{K=(10uyJqwJAN;Q-3T>I* zSRl9fljif3RGn!@yk6SvG=9P72dxb zbr~C9Ru^7oT)4ZW{?x16-_GhTwJ&DVZPtyW_l}nCIQFBwas8Uz>0$aQd7)SOEsG=PWF4Kj)~DvlTw{&Py!o}a zxE@`7x_xg%U6SstLzfM=tUm28BequM*yVEG8k1Dh9hdJ1J=n$m_PflNNx%5x_DpbB ms_F;kbq1~y*N76A)Pj->P_e=q?kU;~VtBgxxvX^IL)@*GMnM~BE?*mC0Jvb*p_?&u2!MB zGBP&of{QL_u_|)xJXrr?Lb1RUvD?1t)wY^$ny=p9-G9flSLw$651(q^*Y5v*vif@* z69fB)?NK|fto~)S^JSe~{vX4DT7$q0bM2bmZ%=J)y!S|!mEOF}dv8O+4%G!YCcD>N z*8iAuMJC(5=5^Ltpg0f9;kcD&8}7-J&SgyOb2Xa#wu3|PU}uP~_4Mz|OnxqEPUn8+ z*&3OC=XW`o<=x}R+uuHyxzjTtWtYMjlD{(cC4Pz#1!p| zOLW#*A2I3{c<#0Iv!BXDzk1K*rRoZfQR?Y4X6#X{n!Yg4Y2GHo`7gK6nS9V=mG1TK zj-vOg@4C#qWqgjYMEU2la1q-@3DtggqMj6IJA`|sR1|S_O3v1svMkM0tbG4*iNIZ( zH>C=E^xCj`n@4VB>jT$AM^; b#3i+$Bmi4NKwWwkROa2x1u@K^Y@ z;itye*iZ2%S_iiMt8&TsaW>U`@t^wNZ#A`Av)m5Xvgq7d zsGoG&F^81=F5uq_xg@{43ZuV~cHV&DYv%0(q zxKwhI*=#>I=dBO^Pd<2N+;H%|;nB9Ba$e7*<_V%c(TsOIqFHmfB3*T(TPj|PbId;o z)SS|+bH(wmn9_^*;+P^9Rc7gEGrRoA)rH(^eq|i`wzTV3&?2j>4<|2nR+s%qI`V@3Mbglc#y&E-#h literal 0 HcmV?d00001 diff --git a/docs/build/simplepdf/index.html b/docs/build/simplepdf/index.html index 1619802..c04e29a 100644 --- a/docs/build/simplepdf/index.html +++ b/docs/build/simplepdf/index.html @@ -15,8 +15,6 @@ - @@ -277,43 +275,37 @@ The system is built to handle various payroll scenarios, including different emp