From b488136da7eeba55878d70c798085d54399d3688 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=81=D0=B8=D0=BB=D0=B8=D0=B9?= <71924962+VasiliiSkrypnik@users.noreply.github.com> Date: Sat, 3 Jul 2021 13:05:21 +0300 Subject: [PATCH] Final --- Dockerfile | 18 + Exam_proj_QtLess/html/annotated.html | 81 + Exam_proj_QtLess/html/bc_s.png | Bin 0 -> 676 bytes Exam_proj_QtLess/html/bdwn.png | Bin 0 -> 147 bytes Exam_proj_QtLess/html/circle_8h_source.html | 89 + .../html/classcircle-members.html | 82 + Exam_proj_QtLess/html/classcircle.html | 101 + Exam_proj_QtLess/html/classes.html | 86 + .../html/classsquare-members.html | 94 + Exam_proj_QtLess/html/classsquare.html | 137 + .../html/classtriangle-members.html | 85 + Exam_proj_QtLess/html/classtriangle.html | 110 + Exam_proj_QtLess/html/closed.png | Bin 0 -> 132 bytes Exam_proj_QtLess/html/doc.png | Bin 0 -> 746 bytes Exam_proj_QtLess/html/doxygen.css | 1793 ++++++++++++ Exam_proj_QtLess/html/doxygen.svg | 26 + Exam_proj_QtLess/html/dynsections.js | 121 + Exam_proj_QtLess/html/files.html | 81 + Exam_proj_QtLess/html/folderclosed.png | Bin 0 -> 616 bytes Exam_proj_QtLess/html/folderopen.png | Bin 0 -> 597 bytes Exam_proj_QtLess/html/index.html | 74 + Exam_proj_QtLess/html/jquery.js | 35 + Exam_proj_QtLess/html/menu.js | 51 + Exam_proj_QtLess/html/menudata.js | 31 + Exam_proj_QtLess/html/nav_f.png | Bin 0 -> 153 bytes Exam_proj_QtLess/html/nav_g.png | Bin 0 -> 95 bytes Exam_proj_QtLess/html/nav_h.png | Bin 0 -> 98 bytes Exam_proj_QtLess/html/open.png | Bin 0 -> 123 bytes Exam_proj_QtLess/html/search/all_0.html | 37 + Exam_proj_QtLess/html/search/all_0.js | 4 + Exam_proj_QtLess/html/search/all_1.html | 37 + Exam_proj_QtLess/html/search/all_1.js | 4 + Exam_proj_QtLess/html/search/all_2.html | 37 + Exam_proj_QtLess/html/search/all_2.js | 4 + Exam_proj_QtLess/html/search/classes_0.html | 37 + Exam_proj_QtLess/html/search/classes_0.js | 4 + Exam_proj_QtLess/html/search/classes_1.html | 37 + Exam_proj_QtLess/html/search/classes_1.js | 4 + Exam_proj_QtLess/html/search/classes_2.html | 37 + Exam_proj_QtLess/html/search/classes_2.js | 4 + Exam_proj_QtLess/html/search/close.svg | 31 + Exam_proj_QtLess/html/search/mag_sel.svg | 74 + Exam_proj_QtLess/html/search/nomatches.html | 13 + Exam_proj_QtLess/html/search/search.css | 257 ++ Exam_proj_QtLess/html/search/search.js | 816 ++++++ Exam_proj_QtLess/html/search/search_l.png | Bin 0 -> 567 bytes Exam_proj_QtLess/html/search/search_m.png | Bin 0 -> 158 bytes Exam_proj_QtLess/html/search/search_r.png | Bin 0 -> 553 bytes Exam_proj_QtLess/html/search/searchdata.js | 18 + Exam_proj_QtLess/html/splitbar.png | Bin 0 -> 314 bytes Exam_proj_QtLess/html/square_8h_source.html | 92 + Exam_proj_QtLess/html/sync_off.png | Bin 0 -> 853 bytes Exam_proj_QtLess/html/sync_on.png | Bin 0 -> 845 bytes Exam_proj_QtLess/html/tab_a.png | Bin 0 -> 142 bytes Exam_proj_QtLess/html/tab_b.png | Bin 0 -> 169 bytes Exam_proj_QtLess/html/tab_h.png | Bin 0 -> 177 bytes Exam_proj_QtLess/html/tab_s.png | Bin 0 -> 184 bytes Exam_proj_QtLess/html/tabs.css | 1 + Exam_proj_QtLess/html/triangle_8h_source.html | 89 + Exam_proj_QtLess/latex/Makefile | 23 + Exam_proj_QtLess/latex/annotated.tex | 6 + Exam_proj_QtLess/latex/classcircle.tex | 26 + Exam_proj_QtLess/latex/classsquare.tex | 62 + Exam_proj_QtLess/latex/classtriangle.tex | 35 + Exam_proj_QtLess/latex/doxygen.sty | 576 ++++ Exam_proj_QtLess/latex/longtable_doxygen.sty | 448 +++ Exam_proj_QtLess/latex/make.bat | 31 + Exam_proj_QtLess/latex/refman.tex | 190 ++ Exam_proj_QtLess/latex/tabu_doxygen.sty | 2557 +++++++++++++++++ ...0\272\320\276\320\277\320\270\321\217.cpp" | 22 + Exam_proj_QtLess/main.cpp | 10 +- Exam_proj_QtLess/square.cpp | 17 + Exam_proj_QtLess/square.h | 5 +- ReadMe.md | 28 + .../.qmake.stash | 20 + .../Makefile | 501 ++++ .../Makefile.Debug | 180 ++ .../Makefile.Release | 179 ++ .../debug/Exam_proj_QtLess.exe | Bin 0 -> 47616 bytes .../debug/Exam_proj_QtLess.ilk | Bin 0 -> 514104 bytes .../debug/Exam_proj_QtLess.pdb | Bin 0 -> 872448 bytes .../debug/Exam_proj_QtLess.vc.pdb | Bin 0 -> 413696 bytes .../debug/circle.obj | Bin 0 -> 2793 bytes .../debug/main.obj | Bin 0 -> 55818 bytes .../debug/square.obj | Bin 0 -> 5046 bytes .../debug/triangle.obj | Bin 0 -> 2919 bytes html/bc_s.png | Bin 0 -> 676 bytes html/bdwn.png | Bin 0 -> 147 bytes html/closed.png | Bin 0 -> 132 bytes html/doc.png | Bin 0 -> 746 bytes html/doxygen.css | 1793 ++++++++++++ html/doxygen.svg | 26 + html/dynsections.js | 121 + html/folderclosed.png | Bin 0 -> 616 bytes html/folderopen.png | Bin 0 -> 597 bytes html/index.html | 74 + html/jquery.js | 35 + html/md__read_me.html | 90 + html/menu.js | 51 + html/menudata.js | 27 + html/nav_f.png | Bin 0 -> 153 bytes html/nav_g.png | Bin 0 -> 95 bytes html/nav_h.png | Bin 0 -> 98 bytes html/open.png | Bin 0 -> 123 bytes html/pages.html | 79 + html/search/all_0.html | 37 + html/search/all_0.js | 4 + html/search/close.svg | 31 + html/search/mag_sel.svg | 74 + html/search/nomatches.html | 13 + html/search/pages_0.html | 37 + html/search/pages_0.js | 4 + html/search/search.css | 257 ++ html/search/search.js | 816 ++++++ html/search/search_l.png | Bin 0 -> 567 bytes html/search/search_m.png | Bin 0 -> 158 bytes html/search/search_r.png | Bin 0 -> 553 bytes html/search/searchdata.js | 18 + html/splitbar.png | Bin 0 -> 314 bytes html/sync_off.png | Bin 0 -> 853 bytes html/sync_on.png | Bin 0 -> 845 bytes html/tab_a.png | Bin 0 -> 142 bytes html/tab_b.png | Bin 0 -> 169 bytes html/tab_h.png | Bin 0 -> 177 bytes html/tab_s.png | Bin 0 -> 184 bytes html/tabs.css | 1 + latex/Makefile | 23 + latex/doxygen.sty | 576 ++++ latex/longtable_doxygen.sty | 448 +++ latex/make.bat | 31 + latex/md__read_me.tex | 29 + latex/refman.tex | 188 ++ latex/tabu_doxygen.sty | 2557 +++++++++++++++++ ...0\264\320\276\320\272\320\265\321\200.txt" | 8 + 134 files changed, 17091 insertions(+), 5 deletions(-) create mode 100644 Dockerfile create mode 100644 Exam_proj_QtLess/html/annotated.html create mode 100644 Exam_proj_QtLess/html/bc_s.png create mode 100644 Exam_proj_QtLess/html/bdwn.png create mode 100644 Exam_proj_QtLess/html/circle_8h_source.html create mode 100644 Exam_proj_QtLess/html/classcircle-members.html create mode 100644 Exam_proj_QtLess/html/classcircle.html create mode 100644 Exam_proj_QtLess/html/classes.html create mode 100644 Exam_proj_QtLess/html/classsquare-members.html create mode 100644 Exam_proj_QtLess/html/classsquare.html create mode 100644 Exam_proj_QtLess/html/classtriangle-members.html create mode 100644 Exam_proj_QtLess/html/classtriangle.html create mode 100644 Exam_proj_QtLess/html/closed.png create mode 100644 Exam_proj_QtLess/html/doc.png create mode 100644 Exam_proj_QtLess/html/doxygen.css create mode 100644 Exam_proj_QtLess/html/doxygen.svg create mode 100644 Exam_proj_QtLess/html/dynsections.js create mode 100644 Exam_proj_QtLess/html/files.html create mode 100644 Exam_proj_QtLess/html/folderclosed.png create mode 100644 Exam_proj_QtLess/html/folderopen.png create mode 100644 Exam_proj_QtLess/html/index.html create mode 100644 Exam_proj_QtLess/html/jquery.js create mode 100644 Exam_proj_QtLess/html/menu.js create mode 100644 Exam_proj_QtLess/html/menudata.js create mode 100644 Exam_proj_QtLess/html/nav_f.png create mode 100644 Exam_proj_QtLess/html/nav_g.png create mode 100644 Exam_proj_QtLess/html/nav_h.png create mode 100644 Exam_proj_QtLess/html/open.png create mode 100644 Exam_proj_QtLess/html/search/all_0.html create mode 100644 Exam_proj_QtLess/html/search/all_0.js create mode 100644 Exam_proj_QtLess/html/search/all_1.html create mode 100644 Exam_proj_QtLess/html/search/all_1.js create mode 100644 Exam_proj_QtLess/html/search/all_2.html create mode 100644 Exam_proj_QtLess/html/search/all_2.js create mode 100644 Exam_proj_QtLess/html/search/classes_0.html create mode 100644 Exam_proj_QtLess/html/search/classes_0.js create mode 100644 Exam_proj_QtLess/html/search/classes_1.html create mode 100644 Exam_proj_QtLess/html/search/classes_1.js create mode 100644 Exam_proj_QtLess/html/search/classes_2.html create mode 100644 Exam_proj_QtLess/html/search/classes_2.js create mode 100644 Exam_proj_QtLess/html/search/close.svg create mode 100644 Exam_proj_QtLess/html/search/mag_sel.svg create mode 100644 Exam_proj_QtLess/html/search/nomatches.html create mode 100644 Exam_proj_QtLess/html/search/search.css create mode 100644 Exam_proj_QtLess/html/search/search.js create mode 100644 Exam_proj_QtLess/html/search/search_l.png create mode 100644 Exam_proj_QtLess/html/search/search_m.png create mode 100644 Exam_proj_QtLess/html/search/search_r.png create mode 100644 Exam_proj_QtLess/html/search/searchdata.js create mode 100644 Exam_proj_QtLess/html/splitbar.png create mode 100644 Exam_proj_QtLess/html/square_8h_source.html create mode 100644 Exam_proj_QtLess/html/sync_off.png create mode 100644 Exam_proj_QtLess/html/sync_on.png create mode 100644 Exam_proj_QtLess/html/tab_a.png create mode 100644 Exam_proj_QtLess/html/tab_b.png create mode 100644 Exam_proj_QtLess/html/tab_h.png create mode 100644 Exam_proj_QtLess/html/tab_s.png create mode 100644 Exam_proj_QtLess/html/tabs.css create mode 100644 Exam_proj_QtLess/html/triangle_8h_source.html create mode 100644 Exam_proj_QtLess/latex/Makefile create mode 100644 Exam_proj_QtLess/latex/annotated.tex create mode 100644 Exam_proj_QtLess/latex/classcircle.tex create mode 100644 Exam_proj_QtLess/latex/classsquare.tex create mode 100644 Exam_proj_QtLess/latex/classtriangle.tex create mode 100644 Exam_proj_QtLess/latex/doxygen.sty create mode 100644 Exam_proj_QtLess/latex/longtable_doxygen.sty create mode 100644 Exam_proj_QtLess/latex/make.bat create mode 100644 Exam_proj_QtLess/latex/refman.tex create mode 100644 Exam_proj_QtLess/latex/tabu_doxygen.sty create mode 100644 "Exam_proj_QtLess/main \342\200\224 \320\272\320\276\320\277\320\270\321\217.cpp" create mode 100644 ReadMe.md create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/.qmake.stash create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile.Debug create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile.Release create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/Exam_proj_QtLess.exe create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/Exam_proj_QtLess.ilk create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/Exam_proj_QtLess.pdb create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/Exam_proj_QtLess.vc.pdb create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/circle.obj create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/main.obj create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/square.obj create mode 100644 build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/triangle.obj create mode 100644 html/bc_s.png create mode 100644 html/bdwn.png create mode 100644 html/closed.png create mode 100644 html/doc.png create mode 100644 html/doxygen.css create mode 100644 html/doxygen.svg create mode 100644 html/dynsections.js create mode 100644 html/folderclosed.png create mode 100644 html/folderopen.png create mode 100644 html/index.html create mode 100644 html/jquery.js create mode 100644 html/md__read_me.html create mode 100644 html/menu.js create mode 100644 html/menudata.js create mode 100644 html/nav_f.png create mode 100644 html/nav_g.png create mode 100644 html/nav_h.png create mode 100644 html/open.png create mode 100644 html/pages.html create mode 100644 html/search/all_0.html create mode 100644 html/search/all_0.js create mode 100644 html/search/close.svg create mode 100644 html/search/mag_sel.svg create mode 100644 html/search/nomatches.html create mode 100644 html/search/pages_0.html create mode 100644 html/search/pages_0.js create mode 100644 html/search/search.css create mode 100644 html/search/search.js create mode 100644 html/search/search_l.png create mode 100644 html/search/search_m.png create mode 100644 html/search/search_r.png create mode 100644 html/search/searchdata.js create mode 100644 html/splitbar.png create mode 100644 html/sync_off.png create mode 100644 html/sync_on.png create mode 100644 html/tab_a.png create mode 100644 html/tab_b.png create mode 100644 html/tab_h.png create mode 100644 html/tab_s.png create mode 100644 html/tabs.css create mode 100644 latex/Makefile create mode 100644 latex/doxygen.sty create mode 100644 latex/longtable_doxygen.sty create mode 100644 latex/make.bat create mode 100644 latex/md__read_me.tex create mode 100644 latex/refman.tex create mode 100644 latex/tabu_doxygen.sty create mode 100644 "\320\232\320\276\320\274\320\260\320\275\320\264\321\213 \320\264\320\276\320\272\320\265\321\200.txt" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5a3509a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM ubuntu + +LABEL author="Skrypnik" +LABEL group="201-331" + +RUN echo "This image of Vasily Skrypnik for exam." + +RUN apt update -y && apt upgrade -y \ +&& apt install -y build-essential g++ + +COPY Exam_proj_QtLess /app/source + +WORKDIR /app/source +RUN g++ *.cpp -o ../program + +WORKDIR /app + +ENTRYPOINT [ "/app/program" ] diff --git a/Exam_proj_QtLess/html/annotated.html b/Exam_proj_QtLess/html/annotated.html new file mode 100644 index 0000000..7252f1d --- /dev/null +++ b/Exam_proj_QtLess/html/annotated.html @@ -0,0 +1,81 @@ + + + + + + + +My Project: Class List + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+ + + + +
 Ccircle
 Csquare
 Ctriangle
+
+
+ + + + diff --git a/Exam_proj_QtLess/html/bc_s.png b/Exam_proj_QtLess/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/bdwn.png b/Exam_proj_QtLess/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + + +My Project: circle.h Source File + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
circle.h
+
+
+
1 #ifndef CIRCLE_H
+
2 #define CIRCLE_H
+
3 
+
4 
+
5 class circle
+
6 {
+
7 public:
+
8  circle();
+
9  circle(double x, double y,double rad);
+
10 private:
+
11  double x0, y0, r;
+
12 };
+
13 
+
14 #endif // CIRCLE_H
+
Definition: circle.h:6
+
+ + + + diff --git a/Exam_proj_QtLess/html/classcircle-members.html b/Exam_proj_QtLess/html/classcircle-members.html new file mode 100644 index 0000000..c775d54 --- /dev/null +++ b/Exam_proj_QtLess/html/classcircle-members.html @@ -0,0 +1,82 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
circle Member List
+
+
+ +

This is the complete list of members for circle, including all inherited members.

+ + + + + + +
circle() (defined in circle)circle
circle(double x, double y, double rad) (defined in circle)circle
r (defined in circle)circleprivate
x0 (defined in circle)circleprivate
y0 (defined in circle)circleprivate
+ + + + diff --git a/Exam_proj_QtLess/html/classcircle.html b/Exam_proj_QtLess/html/classcircle.html new file mode 100644 index 0000000..52bb280 --- /dev/null +++ b/Exam_proj_QtLess/html/classcircle.html @@ -0,0 +1,101 @@ + + + + + + + +My Project: circle Class Reference + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
circle Class Reference
+
+
+ + + + +

+Public Member Functions

circle (double x, double y, double rad)
 
+ + + + + + + +

+Private Attributes

+double x0
 
+double y0
 
+double r
 
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Exam_proj_QtLess/html/classes.html b/Exam_proj_QtLess/html/classes.html new file mode 100644 index 0000000..7eb3db8 --- /dev/null +++ b/Exam_proj_QtLess/html/classes.html @@ -0,0 +1,86 @@ + + + + + + + +My Project: Class Index + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
C | S | T
+
+
+
C
+
circle
+
+
S
+
square
+
+
T
+
triangle
+
+
+ + + + diff --git a/Exam_proj_QtLess/html/classsquare-members.html b/Exam_proj_QtLess/html/classsquare-members.html new file mode 100644 index 0000000..a38f7bf --- /dev/null +++ b/Exam_proj_QtLess/html/classsquare-members.html @@ -0,0 +1,94 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
square Member List
+
+
+ +

This is the complete list of members for square, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
a (defined in square)squareprivate
a_x (defined in square)squareprivate
a_y (defined in square)squareprivate
ax (defined in square)squareprivate
ay (defined in square)squareprivate
b (defined in square)squareprivate
b_x (defined in square)squareprivate
b_y (defined in square)squareprivate
bx (defined in square)squareprivate
by (defined in square)squareprivate
c_x (defined in square)squareprivate
c_y (defined in square)squareprivate
d_x (defined in square)squareprivate
d_y (defined in square)squareprivate
figure_square() (defined in square)square
square() (defined in square)square
square(double ver[]) (defined in square)square
+ + + + diff --git a/Exam_proj_QtLess/html/classsquare.html b/Exam_proj_QtLess/html/classsquare.html new file mode 100644 index 0000000..bfd5c02 --- /dev/null +++ b/Exam_proj_QtLess/html/classsquare.html @@ -0,0 +1,137 @@ + + + + + + + +My Project: square Class Reference + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
square Class Reference
+
+
+ + + + + + +

+Public Member Functions

square (double ver[])
 
+double figure_square ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Private Attributes

+double a_x
 
+double a_y
 
+double b_x
 
+double b_y
 
+double c_x
 
+double c_y
 
+double d_x
 
+double d_y
 
+double ax
 
+double ay
 
+double a
 
+double bx
 
+double by
 
+double b
 
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Exam_proj_QtLess/html/classtriangle-members.html b/Exam_proj_QtLess/html/classtriangle-members.html new file mode 100644 index 0000000..e6ce9d2 --- /dev/null +++ b/Exam_proj_QtLess/html/classtriangle-members.html @@ -0,0 +1,85 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
triangle Member List
+
+
+ +

This is the complete list of members for triangle, including all inherited members.

+ + + + + + + + + +
a_x (defined in triangle)triangleprivate
a_y (defined in triangle)triangleprivate
b_x (defined in triangle)triangleprivate
b_y (defined in triangle)triangleprivate
c_x (defined in triangle)triangleprivate
c_y (defined in triangle)triangleprivate
triangle() (defined in triangle)triangle
triangle(double ver[]) (defined in triangle)triangle
+ + + + diff --git a/Exam_proj_QtLess/html/classtriangle.html b/Exam_proj_QtLess/html/classtriangle.html new file mode 100644 index 0000000..3fd22c2 --- /dev/null +++ b/Exam_proj_QtLess/html/classtriangle.html @@ -0,0 +1,110 @@ + + + + + + + +My Project: triangle Class Reference + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
triangle Class Reference
+
+
+ + + + +

+Public Member Functions

triangle (double ver[])
 
+ + + + + + + + + + + + + +

+Private Attributes

+double a_x
 
+double a_y
 
+double b_x
 
+double b_y
 
+double c_x
 
+double c_y
 
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/Exam_proj_QtLess/html/closed.png b/Exam_proj_QtLess/html/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/doc.png b/Exam_proj_QtLess/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/doxygen.css b/Exam_proj_QtLess/html/doxygen.css new file mode 100644 index 0000000..ffbff02 --- /dev/null +++ b/Exam_proj_QtLess/html/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.1 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/Exam_proj_QtLess/html/doxygen.svg b/Exam_proj_QtLess/html/doxygen.svg new file mode 100644 index 0000000..d42dad5 --- /dev/null +++ b/Exam_proj_QtLess/html/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Exam_proj_QtLess/html/dynsections.js b/Exam_proj_QtLess/html/dynsections.js new file mode 100644 index 0000000..3174bd7 --- /dev/null +++ b/Exam_proj_QtLess/html/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +My Project: File List + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+ + + + +
 circle.h
 square.h
 triangle.h
+
+
+ + + + diff --git a/Exam_proj_QtLess/html/folderclosed.png b/Exam_proj_QtLess/html/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/index.html b/Exam_proj_QtLess/html/index.html new file mode 100644 index 0000000..3b71ffc --- /dev/null +++ b/Exam_proj_QtLess/html/index.html @@ -0,0 +1,74 @@ + + + + + + + +My Project: Main Page + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
My Project Documentation
+
+
+
+ + + + diff --git a/Exam_proj_QtLess/html/jquery.js b/Exam_proj_QtLess/html/jquery.js new file mode 100644 index 0000000..103c32d --- /dev/null +++ b/Exam_proj_QtLess/html/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/Exam_proj_QtLess/html/menu.js b/Exam_proj_QtLess/html/menu.js new file mode 100644 index 0000000..2fe2214 --- /dev/null +++ b/Exam_proj_QtLess/html/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/Exam_proj_QtLess/html/menudata.js b/Exam_proj_QtLess/html/menudata.js new file mode 100644 index 0000000..b7ed917 --- /dev/null +++ b/Exam_proj_QtLess/html/menudata.js @@ -0,0 +1,31 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/Exam_proj_QtLess/html/nav_f.png b/Exam_proj_QtLess/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/nav_g.png b/Exam_proj_QtLess/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Exam_proj_QtLess/html/search/all_0.js b/Exam_proj_QtLess/html/search/all_0.js new file mode 100644 index 0000000..b2a1254 --- /dev/null +++ b/Exam_proj_QtLess/html/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['circle_0',['circle',['../classcircle.html',1,'']]] +]; diff --git a/Exam_proj_QtLess/html/search/all_1.html b/Exam_proj_QtLess/html/search/all_1.html new file mode 100644 index 0000000..9f80e90 --- /dev/null +++ b/Exam_proj_QtLess/html/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Exam_proj_QtLess/html/search/all_1.js b/Exam_proj_QtLess/html/search/all_1.js new file mode 100644 index 0000000..922e02c --- /dev/null +++ b/Exam_proj_QtLess/html/search/all_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['square_1',['square',['../classsquare.html',1,'']]] +]; diff --git a/Exam_proj_QtLess/html/search/all_2.html b/Exam_proj_QtLess/html/search/all_2.html new file mode 100644 index 0000000..02cfffc --- /dev/null +++ b/Exam_proj_QtLess/html/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Exam_proj_QtLess/html/search/all_2.js b/Exam_proj_QtLess/html/search/all_2.js new file mode 100644 index 0000000..840a805 --- /dev/null +++ b/Exam_proj_QtLess/html/search/all_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['triangle_2',['triangle',['../classtriangle.html',1,'']]] +]; diff --git a/Exam_proj_QtLess/html/search/classes_0.html b/Exam_proj_QtLess/html/search/classes_0.html new file mode 100644 index 0000000..af8159e --- /dev/null +++ b/Exam_proj_QtLess/html/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Exam_proj_QtLess/html/search/classes_0.js b/Exam_proj_QtLess/html/search/classes_0.js new file mode 100644 index 0000000..04c3494 --- /dev/null +++ b/Exam_proj_QtLess/html/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['circle_3',['circle',['../classcircle.html',1,'']]] +]; diff --git a/Exam_proj_QtLess/html/search/classes_1.html b/Exam_proj_QtLess/html/search/classes_1.html new file mode 100644 index 0000000..576e916 --- /dev/null +++ b/Exam_proj_QtLess/html/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Exam_proj_QtLess/html/search/classes_1.js b/Exam_proj_QtLess/html/search/classes_1.js new file mode 100644 index 0000000..f15a1eb --- /dev/null +++ b/Exam_proj_QtLess/html/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['square_4',['square',['../classsquare.html',1,'']]] +]; diff --git a/Exam_proj_QtLess/html/search/classes_2.html b/Exam_proj_QtLess/html/search/classes_2.html new file mode 100644 index 0000000..956405e --- /dev/null +++ b/Exam_proj_QtLess/html/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Exam_proj_QtLess/html/search/classes_2.js b/Exam_proj_QtLess/html/search/classes_2.js new file mode 100644 index 0000000..19c037d --- /dev/null +++ b/Exam_proj_QtLess/html/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['triangle_5',['triangle',['../classtriangle.html',1,'']]] +]; diff --git a/Exam_proj_QtLess/html/search/close.svg b/Exam_proj_QtLess/html/search/close.svg new file mode 100644 index 0000000..a933eea --- /dev/null +++ b/Exam_proj_QtLess/html/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/Exam_proj_QtLess/html/search/mag_sel.svg b/Exam_proj_QtLess/html/search/mag_sel.svg new file mode 100644 index 0000000..03626f6 --- /dev/null +++ b/Exam_proj_QtLess/html/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/Exam_proj_QtLess/html/search/nomatches.html b/Exam_proj_QtLess/html/search/nomatches.html new file mode 100644 index 0000000..2b9360b --- /dev/null +++ b/Exam_proj_QtLess/html/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/Exam_proj_QtLess/html/search/search.css b/Exam_proj_QtLess/html/search/search.css new file mode 100644 index 0000000..9074198 --- /dev/null +++ b/Exam_proj_QtLess/html/search/search.css @@ -0,0 +1,257 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/Exam_proj_QtLess/html/search/search.js b/Exam_proj_QtLess/html/search/search.js new file mode 100644 index 0000000..fb226f7 --- /dev/null +++ b/Exam_proj_QtLess/html/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/search/search_r.png b/Exam_proj_QtLess/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/search/searchdata.js b/Exam_proj_QtLess/html/search/searchdata.js new file mode 100644 index 0000000..eb29a20 --- /dev/null +++ b/Exam_proj_QtLess/html/search/searchdata.js @@ -0,0 +1,18 @@ +var indexSectionsWithContent = +{ + 0: "cst", + 1: "cst" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes" +}; + diff --git a/Exam_proj_QtLess/html/splitbar.png b/Exam_proj_QtLess/html/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/square_8h_source.html b/Exam_proj_QtLess/html/square_8h_source.html new file mode 100644 index 0000000..0c9f22b --- /dev/null +++ b/Exam_proj_QtLess/html/square_8h_source.html @@ -0,0 +1,92 @@ + + + + + + + +My Project: square.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    square.h
    +
    +
    +
    1 #ifndef SQUARE_H
    +
    2 #define SQUARE_H
    +
    3 #include <cmath>
    +
    4 
    +
    5 
    +
    6 class square
    +
    7 {
    +
    8 public:
    +
    9  square();
    +
    10  square(double ver[]);
    +
    11  double figure_square();
    +
    12 private:
    +
    13  double a_x, a_y, b_x, b_y, c_x, c_y, d_x, d_y, ax, ay, a, bx, by, b;
    +
    14 
    +
    15 };
    +
    16 
    +
    17 #endif // SQUARE_H
    +
    Definition: square.h:7
    +
    + + + + diff --git a/Exam_proj_QtLess/html/sync_off.png b/Exam_proj_QtLess/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/sync_on.png b/Exam_proj_QtLess/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/tab_a.png b/Exam_proj_QtLess/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/tab_b.png b/Exam_proj_QtLess/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/Exam_proj_QtLess/html/tabs.css b/Exam_proj_QtLess/html/tabs.css new file mode 100644 index 0000000..85a0cd5 --- /dev/null +++ b/Exam_proj_QtLess/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/Exam_proj_QtLess/html/triangle_8h_source.html b/Exam_proj_QtLess/html/triangle_8h_source.html new file mode 100644 index 0000000..986f6e1 --- /dev/null +++ b/Exam_proj_QtLess/html/triangle_8h_source.html @@ -0,0 +1,89 @@ + + + + + + + +My Project: triangle.h Source File + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    triangle.h
    +
    +
    +
    1 #ifndef TRIANGLE_H
    +
    2 #define TRIANGLE_H
    +
    3 
    +
    4 
    +
    5 class triangle
    +
    6 {
    +
    7 public:
    +
    8  triangle();
    +
    9  triangle(double ver[]);
    +
    10 private:
    +
    11  double a_x, a_y, b_x, b_y, c_x, c_y;
    +
    12 };
    +
    13 
    +
    14 #endif // TRIANGLE_H
    +
    Definition: triangle.h:6
    +
    + + + + diff --git a/Exam_proj_QtLess/latex/Makefile b/Exam_proj_QtLess/latex/Makefile new file mode 100644 index 0000000..877c9cc --- /dev/null +++ b/Exam_proj_QtLess/latex/Makefile @@ -0,0 +1,23 @@ +LATEX_CMD=pdflatex + +all: refman.pdf + +pdf: refman.pdf + +refman.pdf: clean refman.tex + $(LATEX_CMD) refman + makeindex refman.idx + $(LATEX_CMD) refman + latex_count=8 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + $(LATEX_CMD) refman ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + makeindex refman.idx + $(LATEX_CMD) refman + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf diff --git a/Exam_proj_QtLess/latex/annotated.tex b/Exam_proj_QtLess/latex/annotated.tex new file mode 100644 index 0000000..da263d6 --- /dev/null +++ b/Exam_proj_QtLess/latex/annotated.tex @@ -0,0 +1,6 @@ +\doxysection{Class List} +Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} +\item\contentsline{section}{\mbox{\hyperlink{classcircle}{circle}} }{\pageref{classcircle}}{} +\item\contentsline{section}{\mbox{\hyperlink{classsquare}{square}} }{\pageref{classsquare}}{} +\item\contentsline{section}{\mbox{\hyperlink{classtriangle}{triangle}} }{\pageref{classtriangle}}{} +\end{DoxyCompactList} diff --git a/Exam_proj_QtLess/latex/classcircle.tex b/Exam_proj_QtLess/latex/classcircle.tex new file mode 100644 index 0000000..be6d752 --- /dev/null +++ b/Exam_proj_QtLess/latex/classcircle.tex @@ -0,0 +1,26 @@ +\hypertarget{classcircle}{}\doxysection{circle Class Reference} +\label{classcircle}\index{circle@{circle}} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\mbox{\Hypertarget{classcircle_a0a7895011a68519c1d3dd414ea2877e5}\label{classcircle_a0a7895011a68519c1d3dd414ea2877e5}} +{\bfseries circle} (double x, double y, double rad) +\end{DoxyCompactItemize} +\doxysubsection*{Private Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\Hypertarget{classcircle_a3934aec6524a4e3b74d2534c99df9864}\label{classcircle_a3934aec6524a4e3b74d2534c99df9864}} +double {\bfseries x0} +\item +\mbox{\Hypertarget{classcircle_a553f975d0d74316e3286c748b604d651}\label{classcircle_a553f975d0d74316e3286c748b604d651}} +double {\bfseries y0} +\item +\mbox{\Hypertarget{classcircle_a5f252f6cf93b81949dbf334c74931f18}\label{classcircle_a5f252f6cf93b81949dbf334c74931f18}} +double {\bfseries r} +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +circle.\+h\item +circle.\+cpp\end{DoxyCompactItemize} diff --git a/Exam_proj_QtLess/latex/classsquare.tex b/Exam_proj_QtLess/latex/classsquare.tex new file mode 100644 index 0000000..ac35186 --- /dev/null +++ b/Exam_proj_QtLess/latex/classsquare.tex @@ -0,0 +1,62 @@ +\hypertarget{classsquare}{}\doxysection{square Class Reference} +\label{classsquare}\index{square@{square}} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\mbox{\Hypertarget{classsquare_a15254b64f3895564186ed88f63cf6304}\label{classsquare_a15254b64f3895564186ed88f63cf6304}} +{\bfseries square} (double ver\mbox{[}$\,$\mbox{]}) +\item +\mbox{\Hypertarget{classsquare_ae56cbb4ed06fb6012f28cf2b7114e89e}\label{classsquare_ae56cbb4ed06fb6012f28cf2b7114e89e}} +double {\bfseries figure\+\_\+square} () +\end{DoxyCompactItemize} +\doxysubsection*{Private Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\Hypertarget{classsquare_a11fd76f933347c67bb461682b32b351e}\label{classsquare_a11fd76f933347c67bb461682b32b351e}} +double {\bfseries a\+\_\+x} +\item +\mbox{\Hypertarget{classsquare_a84b4b43fe1b571f9608bc326935cb1f5}\label{classsquare_a84b4b43fe1b571f9608bc326935cb1f5}} +double {\bfseries a\+\_\+y} +\item +\mbox{\Hypertarget{classsquare_ac1b3e9c660a0cfcd033c1680e8050109}\label{classsquare_ac1b3e9c660a0cfcd033c1680e8050109}} +double {\bfseries b\+\_\+x} +\item +\mbox{\Hypertarget{classsquare_a7462258503d8f0989db7005fa21f20ed}\label{classsquare_a7462258503d8f0989db7005fa21f20ed}} +double {\bfseries b\+\_\+y} +\item +\mbox{\Hypertarget{classsquare_a3e75f76ddf37a87cbf85108b5404d9ec}\label{classsquare_a3e75f76ddf37a87cbf85108b5404d9ec}} +double {\bfseries c\+\_\+x} +\item +\mbox{\Hypertarget{classsquare_a2a8631e98f5ead46e78cb22b7c2b6d35}\label{classsquare_a2a8631e98f5ead46e78cb22b7c2b6d35}} +double {\bfseries c\+\_\+y} +\item +\mbox{\Hypertarget{classsquare_ae759be39ebe1642d767fa2e0307e7ac6}\label{classsquare_ae759be39ebe1642d767fa2e0307e7ac6}} +double {\bfseries d\+\_\+x} +\item +\mbox{\Hypertarget{classsquare_ae28f6ec4408a55d969fdbba126913145}\label{classsquare_ae28f6ec4408a55d969fdbba126913145}} +double {\bfseries d\+\_\+y} +\item +\mbox{\Hypertarget{classsquare_a46a4cd556ccd056fca045fb7ce924203}\label{classsquare_a46a4cd556ccd056fca045fb7ce924203}} +double {\bfseries ax} +\item +\mbox{\Hypertarget{classsquare_a72d523a2eb145eb01c84a4372a074f51}\label{classsquare_a72d523a2eb145eb01c84a4372a074f51}} +double {\bfseries ay} +\item +\mbox{\Hypertarget{classsquare_acdbbea08c6d5bcfb87311b968ae7737a}\label{classsquare_acdbbea08c6d5bcfb87311b968ae7737a}} +double {\bfseries a} +\item +\mbox{\Hypertarget{classsquare_a5dbab7fbfae9af7c8d3fc2f4f103354e}\label{classsquare_a5dbab7fbfae9af7c8d3fc2f4f103354e}} +double {\bfseries bx} +\item +\mbox{\Hypertarget{classsquare_a0e67ec8b3dd0e3b987b9e8a8e1c8c825}\label{classsquare_a0e67ec8b3dd0e3b987b9e8a8e1c8c825}} +double {\bfseries by} +\item +\mbox{\Hypertarget{classsquare_a86c268d4cf00e1d7a20b400597e0624c}\label{classsquare_a86c268d4cf00e1d7a20b400597e0624c}} +double {\bfseries b} +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +square.\+h\item +square.\+cpp\end{DoxyCompactItemize} diff --git a/Exam_proj_QtLess/latex/classtriangle.tex b/Exam_proj_QtLess/latex/classtriangle.tex new file mode 100644 index 0000000..ab3a319 --- /dev/null +++ b/Exam_proj_QtLess/latex/classtriangle.tex @@ -0,0 +1,35 @@ +\hypertarget{classtriangle}{}\doxysection{triangle Class Reference} +\label{classtriangle}\index{triangle@{triangle}} +\doxysubsection*{Public Member Functions} +\begin{DoxyCompactItemize} +\item +\mbox{\Hypertarget{classtriangle_aab2adac15175072954ef95e719e2b8d9}\label{classtriangle_aab2adac15175072954ef95e719e2b8d9}} +{\bfseries triangle} (double ver\mbox{[}$\,$\mbox{]}) +\end{DoxyCompactItemize} +\doxysubsection*{Private Attributes} +\begin{DoxyCompactItemize} +\item +\mbox{\Hypertarget{classtriangle_a3a4cdb2ef864242bfb9ff44e4e419ecc}\label{classtriangle_a3a4cdb2ef864242bfb9ff44e4e419ecc}} +double {\bfseries a\+\_\+x} +\item +\mbox{\Hypertarget{classtriangle_aab8f297c5a13b4200cf617062c8fa8ad}\label{classtriangle_aab8f297c5a13b4200cf617062c8fa8ad}} +double {\bfseries a\+\_\+y} +\item +\mbox{\Hypertarget{classtriangle_a635be43d6df90d986a7a87c63411a955}\label{classtriangle_a635be43d6df90d986a7a87c63411a955}} +double {\bfseries b\+\_\+x} +\item +\mbox{\Hypertarget{classtriangle_a5ea3b68f882a55d75a0a9874a368edda}\label{classtriangle_a5ea3b68f882a55d75a0a9874a368edda}} +double {\bfseries b\+\_\+y} +\item +\mbox{\Hypertarget{classtriangle_a9e13815109842d7daa44e7f6523cab69}\label{classtriangle_a9e13815109842d7daa44e7f6523cab69}} +double {\bfseries c\+\_\+x} +\item +\mbox{\Hypertarget{classtriangle_adee75fa1b901032f52b5b2980d93bae6}\label{classtriangle_adee75fa1b901032f52b5b2980d93bae6}} +double {\bfseries c\+\_\+y} +\end{DoxyCompactItemize} + + +The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize} +\item +triangle.\+h\item +triangle.\+cpp\end{DoxyCompactItemize} diff --git a/Exam_proj_QtLess/latex/doxygen.sty b/Exam_proj_QtLess/latex/doxygen.sty new file mode 100644 index 0000000..8f59bcc --- /dev/null +++ b/Exam_proj_QtLess/latex/doxygen.sty @@ -0,0 +1,576 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} + +% Packages used by this style file +\RequirePackage{alltt} +%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{calc} +\RequirePackage{float} +%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{verbatim} +\RequirePackage[table]{xcolor} +\RequirePackage{longtable_doxygen} +\RequirePackage{tabu_doxygen} +\RequirePackage{fancyvrb} +\RequirePackage{tabularx} +\RequirePackage{multicol} +\RequirePackage{multirow} +\RequirePackage{hanging} +\RequirePackage{ifpdf} +\RequirePackage{adjustbox} +\RequirePackage{amssymb} +\RequirePackage{stackengine} +\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis + +%---------- Internal commands used in this style file ---------------- + +\newcommand{\ensurespace}[1]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip% hide the previous |\vskip| from |\addvspace| + \endgroup% +} + +\newcommand{\DoxyHorRuler}[1]{% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{#1=0}% + {% + \hrule% + }% + {% + \hrulefilll% + }% +} +\newcommand{\DoxyLabelFont}{} +\newcommand{\entrylabel}[1]{% + {% + \parbox[b]{\labelwidth-4pt}{% + \makebox[0pt][l]{\DoxyLabelFont#1}% + \vspace{1.5\baselineskip}% + }% + }% +} + +\newenvironment{DoxyDesc}[1]{% + \ensurespace{4\baselineskip}% + \begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + %\setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +\newsavebox{\xrefbox} +\newlength{\xreflength} +\newcommand{\xreflabel}[1]{% + \sbox{\xrefbox}{#1}% + \setlength{\xreflength}{\wd\xrefbox}% + \ifthenelse{\xreflength>\labelwidth}{% + \begin{minipage}{\textwidth}% + \setlength{\parindent}{0pt}% + \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% + \end{minipage}% + }{% + \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% + }% +} + +%---------- Commands used by doxygen LaTeX output generator ---------- + +% Used by
     ... 
    +\newenvironment{DoxyPre}{% + \small% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} +% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. +\newlength{\CodeWidthChar} +\newlength{\CodeHeightChar} +\settowidth{\CodeWidthChar}{?} +\settoheight{\CodeHeightChar}{?} +% Necessary for hanging indent +\newlength{\DoxyCodeWidth} + +\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par} + +\newcommand\NiceSpace{% + \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% +} + +% Used by @code ... @endcode +\newenvironment{DoxyCode}[1]{% + \par% + \scriptsize% + \normalfont\ttfamily% + \rightskip0pt plus 1fil% + \settowidth{\DoxyCodeWidth}{000000}% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{\equal{#1}{0}} + { + {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% + } + { + {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% + } + +}{% + \normalfont% + \normalsize% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% +} + +% Redefining not defined characters, i.e. "Replacement Character" in tex output. +\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% + \textcolor{white}{\sffamily\bfseries\small ?}}{% + \rotatebox{45}{$\blacksquare$}}}} + +% Used by @example, @include, @includelineno and @dontinclude +\newenvironment{DoxyCodeInclude}[1]{% + \DoxyCode{#1}% +}{% + \endDoxyCode% +} + +% Used by @verbatim ... @endverbatim +\newenvironment{DoxyVerb}{% + \footnotesize% + \verbatim% +}{% + \endverbatim% + \normalsize% +} + +% Used by @verbinclude +\newenvironment{DoxyVerbInclude}{% + \DoxyVerb% +}{% + \endDoxyVerb% +} + +% Used by numbered lists (using '-#' or
      ...
    ) +\newenvironment{DoxyEnumerate}{% + \enumerate% +}{% + \endenumerate% +} + +% Used by bullet lists (using '-', @li, @arg, or
      ...
    ) +\newenvironment{DoxyItemize}{% + \itemize% +}{% + \enditemize% +} + +% Used by description lists (using
    ...
    ) +\newenvironment{DoxyDescription}{% + \description% +}{% + \enddescription% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if caption is specified) +\newenvironment{DoxyImage}{% + \begin{figure}[H]% + \centering% +}{% + \end{figure}% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if no caption is specified) +\newenvironment{DoxyImageNoCaption}{% + \begin{center}% +}{% + \end{center}% +} + +% Used by @image +% (only if inline is specified) +\newenvironment{DoxyInlineImage}{% +}{% +} + +% Used by @attention +\newenvironment{DoxyAttention}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @author and @authors +\newenvironment{DoxyAuthor}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @date +\newenvironment{DoxyDate}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @invariant +\newenvironment{DoxyInvariant}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @note +\newenvironment{DoxyNote}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @post +\newenvironment{DoxyPostcond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @pre +\newenvironment{DoxyPrecond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @copyright +\newenvironment{DoxyCopyright}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @remark +\newenvironment{DoxyRemark}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @return and @returns +\newenvironment{DoxyReturn}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @since +\newenvironment{DoxySince}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @see +\newenvironment{DoxySeeAlso}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @version +\newenvironment{DoxyVersion}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @warning +\newenvironment{DoxyWarning}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @internal +\newenvironment{DoxyInternal}[1]{% + \paragraph*{#1}% +}{% +} + +% Used by @par and @paragraph +\newenvironment{DoxyParagraph}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by parameter lists +\newenvironment{DoxyParams}[2][]{% + \tabulinesep=1mm% + \par% + \ifthenelse{\equal{#1}{}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description + {\ifthenelse{\equal{#1}{1}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc + } + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields of simple structs +\newenvironment{DoxyFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields simple class style enums +\newenvironment{DoxyEnumFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for parameters within a detailed function description +\newenvironment{DoxyParamCaption}{% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% +}{% +} + +% Used by return value lists +\newenvironment{DoxyRetVals}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by exception lists +\newenvironment{DoxyExceptions}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by template parameter lists +\newenvironment{DoxyTemplParams}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for member lists +\newenvironment{DoxyCompactItemize}{% + \begin{itemize}% + \setlength{\itemsep}{-3pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% +}{% + \end{itemize}% +} + +% Used for member descriptions +\newenvironment{DoxyCompactList}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \renewcommand{\makelabel}{\hfill}% + }% +}{% + \end{list}% +} + +% Used for reference lists (@bug, @deprecated, @todo, etc.) +\newenvironment{DoxyRefList}{% + \begin{list}{}{% + \setlength{\labelwidth}{10pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \renewcommand{\makelabel}{\xreflabel}% + }% +}{% + \end{list}% +} + +% Used by @bug, @deprecated, @todo, etc. +\newenvironment{DoxyRefDesc}[1]{% + \begin{list}{}{% + \renewcommand\makelabel[1]{\textbf{##1}}% + \settowidth\labelwidth{\makelabel{#1}}% + \setlength\leftmargin{\labelwidth+\labelsep}% + }% +}{% + \end{list}% +} + +% Used by parameter lists and simple sections +\newenvironment{Desc} +{\begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + } +}{% + \end{list}% +} + +% Used by tables +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% +\newenvironment{TabularC}[1]% +{\tabulinesep=1mm +\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% +{\end{longtabu*}\par}% + +\newenvironment{TabularNC}[1]% +{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% +{\end{tabu}\par}% + +% Used for member group headers +\newenvironment{Indent}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + }% + \item[]\ignorespaces% +}{% + \unskip% + \end{list}% +} + +% Used when hyperlinks are turned off +\newcommand{\doxyref}[3]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used to link to a table when hyperlinks are turned on +\newcommand{\doxytablelink}[2]{% + \ref{#1}% +} + +% Used to link to a table when hyperlinks are turned off +\newcommand{\doxytableref}[3]{% + \ref{#3}% +} + +% Used by @addindex +\newcommand{\lcurly}{\{} +\newcommand{\rcurly}{\}} + +% Colors used for syntax highlighting +\definecolor{comment}{rgb}{0.5,0.0,0.0} +\definecolor{keyword}{rgb}{0.0,0.5,0.0} +\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} +\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} +\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} +\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} +\definecolor{charliteral}{rgb}{0.0,0.5,0.5} +\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} +\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} +\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} +\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} + +% Color used for table heading +\newcommand{\tableheadbgcolor}{lightgray}% + +% Version of hypertarget with correct landing location +\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} + +% possibility to have sections etc. be within the margins +% unfortunately had to copy part of book.cls and add \raggedright +\makeatletter +\newcommand\doxysection{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedright\normalfont\Large\bfseries}} +\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\large\bfseries}} +\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\raggedright\normalfont\normalsize\bfseries}} +\makeatother +% Define caption that is also suitable in a table +\makeatletter +\def\doxyfigcaption{% +\H@refstepcounter{figure}% +\@dblarg{\@caption{figure}}} +\makeatother diff --git a/Exam_proj_QtLess/latex/longtable_doxygen.sty b/Exam_proj_QtLess/latex/longtable_doxygen.sty new file mode 100644 index 0000000..a0eb314 --- /dev/null +++ b/Exam_proj_QtLess/latex/longtable_doxygen.sty @@ -0,0 +1,448 @@ +%% +%% This is file `longtable.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% longtable.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% The source is maintained by the LaTeX Project team and bug +%% reports for it can be opened at http://latex-project.org/bugs.html +%% (but please observe conditions on bug reports sent to that address!) +%% +%% Copyright 1993-2016 +%% The LaTeX3 Project and any individual authors listed elsewhere +%% in this file. +%% +%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. +%% -------------------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This file may only be distributed together with a copy of the LaTeX +%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' +%% without such generated files. +%% +%% The list of all files belonging to the LaTeX `Tools Bundle' is +%% given in the file `manifest.txt'. +%% +%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{longtable_doxygen} + [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] +\def\LT@err{\PackageError{longtable}} +\def\LT@warn{\PackageWarning{longtable}} +\def\LT@final@warn{% + \AtEndDocument{% + \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% + \global\let\LT@final@warn\relax} +\DeclareOption{errorshow}{% + \def\LT@warn{\PackageInfo{longtable}}} +\DeclareOption{pausing}{% + \def\LT@warn#1{% + \LT@err{#1}{This is not really an error}}} +\DeclareOption{set}{} +\DeclareOption{final}{} +\ProcessOptions +\newskip\LTleft \LTleft=\fill +\newskip\LTright \LTright=\fill +\newskip\LTpre \LTpre=\bigskipamount +\newskip\LTpost \LTpost=\bigskipamount +\newcount\LTchunksize \LTchunksize=20 +\let\c@LTchunksize\LTchunksize +\newdimen\LTcapwidth \LTcapwidth=4in +\newbox\LT@head +\newbox\LT@firsthead +\newbox\LT@foot +\newbox\LT@lastfoot +\newcount\LT@cols +\newcount\LT@rows +\newcounter{LT@tables} +\newcounter{LT@chunks}[LT@tables] +\ifx\c@table\undefined + \newcounter{table} + \def\fnum@table{\tablename~\thetable} +\fi +\ifx\tablename\undefined + \def\tablename{Table} +\fi +\newtoks\LT@p@ftn +\mathchardef\LT@end@pen=30000 +\def\longtable{% + \par + \ifx\multicols\@undefined + \else + \ifnum\col@number>\@ne + \@twocolumntrue + \fi + \fi + \if@twocolumn + \LT@err{longtable not in 1-column mode}\@ehc + \fi + \begingroup + \@ifnextchar[\LT@array{\LT@array[x]}} +\def\LT@array[#1]#2{% + \refstepcounter{table}\stepcounter{LT@tables}% + \if l#1% + \LTleft\z@ \LTright\fill + \else\if r#1% + \LTleft\fill \LTright\z@ + \else\if c#1% + \LTleft\fill \LTright\fill + \fi\fi\fi + \let\LT@mcol\multicolumn + \let\LT@@tabarray\@tabarray + \let\LT@@hl\hline + \def\@tabarray{% + \let\hline\LT@@hl + \LT@@tabarray}% + \let\\\LT@tabularcr\let\tabularnewline\\% + \def\newpage{\noalign{\break}}% + \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% + \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% + \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption + \@tempdima\ht\strutbox + \let\@endpbox\LT@endpbox + \ifx\extrarowheight\@undefined + \let\@acol\@tabacol + \let\@classz\@tabclassz \let\@classiv\@tabclassiv + \def\@startpbox{\vtop\LT@startpbox}% + \let\@@startpbox\@startpbox + \let\@@endpbox\@endpbox + \let\LT@LL@FM@cr\@tabularcr + \else + \advance\@tempdima\extrarowheight + \col@sep\tabcolsep + \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr + \fi + \setbox\@arstrutbox\hbox{\vrule + \@height \arraystretch \@tempdima + \@depth \arraystretch \dp \strutbox + \@width \z@}% + \let\@sharp##\let\protect\relax + \begingroup + \@mkpream{#2}% + \xdef\LT@bchunk{% + \global\advance\c@LT@chunks\@ne + \global\LT@rows\z@\setbox\z@\vbox\bgroup + \LT@setprevdepth + \tabskip\LTleft \noexpand\halign to\hsize\bgroup + \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% + \endgroup + \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols + \LT@make@row + \m@th\let\par\@empty + \everycr{}\lineskip\z@\baselineskip\z@ + \LT@bchunk} +\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} +\def\LT@start{% + \let\LT@start\endgraf + \endgraf\penalty\z@\vskip\LTpre + \dimen@\pagetotal + \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \ht\LT@foot + \dimen@ii\vfuzz + \vfuzz\maxdimen + \setbox\tw@\copy\z@ + \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox + \setbox\tw@\vbox{\unvbox\tw@}% + \vfuzz\dimen@ii + \advance\dimen@ \ht + \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@\dp + \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@ -\pagegoal + \ifdim \dimen@>\z@\vfil\break\fi + \global\@colroom\@colht + \ifvoid\LT@foot\else + \advance\vsize-\ht\LT@foot + \global\advance\@colroom-\ht\LT@foot + \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ + \maxdepth\z@ + \fi + \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak + \output{\LT@output}} +\def\endlongtable{% + \crcr + \noalign{% + \let\LT@entry\LT@entry@chop + \xdef\LT@save@row{\LT@save@row}}% + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \if@filesw + {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% + \gdef\expandafter\noexpand + \csname LT@\romannumeral\c@LT@tables\endcsname + {\LT@save@row}}}% + \fi + \ifx\LT@save@row\LT@@save@row + \else + \LT@warn{Column \@width s have changed\MessageBreak + in table \thetable}% + \LT@final@warn + \fi + \endgraf\penalty -\LT@end@pen + \endgroup + \global\@mparbottom\z@ + \pagegoal\vsize + \endgraf\penalty\z@\addvspace\LTpost + \ifvoid\footins\else\insert\footins{}\fi} +\def\LT@nofcols#1&{% + \futurelet\@let@token\LT@n@fcols} +\def\LT@n@fcols{% + \advance\LT@cols\@ne + \ifx\@let@token\LT@nofcols + \expandafter\@gobble + \else + \expandafter\LT@nofcols + \fi} +\def\LT@tabularcr{% + \relax\iffalse{\fi\ifnum0=`}\fi + \@ifstar + {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr + \LT@t@bularcr}% + {\LT@t@bularcr}} +\let\LT@crcr\crcr +\let\LT@setprevdepth\relax +\def\LT@t@bularcr{% + \global\advance\LT@rows\@ne + \ifnum\LT@rows=\LTchunksize + \gdef\LT@setprevdepth{% + \prevdepth\z@\global + \global\let\LT@setprevdepth\relax}% + \expandafter\LT@xtabularcr + \else + \ifnum0=`{}\fi + \expandafter\LT@LL@FM@cr + \fi} +\def\LT@xtabularcr{% + \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} +\def\LT@ntabularcr{% + \ifnum0=`{}\fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@argtabularcr[#1]{% + \ifnum0=`{}\fi + \ifdim #1>\z@ + \unskip\@xargarraycr{#1}% + \else + \@yargarraycr{#1}% + \fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@echunk{% + \crcr\LT@save@row\cr\egroup + \global\setbox\@ne\lastbox + \unskip + \egroup} +\def\LT@entry#1#2{% + \ifhmode\@firstofone{&}\fi\omit + \ifnum#1=\c@LT@chunks + \else + \kern#2\relax + \fi} +\def\LT@entry@chop#1#2{% + \noexpand\LT@entry + {\ifnum#1>\c@LT@chunks + 1}{0pt% + \else + #1}{#2% + \fi}} +\def\LT@entry@write{% + \noexpand\LT@entry^^J% + \@spaces} +\def\LT@kill{% + \LT@echunk + \LT@get@widths + \expandafter\LT@rebox\LT@bchunk} +\def\LT@rebox#1\bgroup{% + #1\bgroup + \unvbox\z@ + \unskip + \setbox\z@\lastbox} +\def\LT@blank@row{% + \xdef\LT@save@row{\expandafter\LT@build@blank + \romannumeral\number\LT@cols 001 }} +\def\LT@build@blank#1{% + \if#1m% + \noexpand\LT@entry{1}{0pt}% + \expandafter\LT@build@blank + \fi} +\def\LT@make@row{% + \global\expandafter\let\expandafter\LT@save@row + \csname LT@\romannumeral\c@LT@tables\endcsname + \ifx\LT@save@row\relax + \LT@blank@row + \else + {\let\LT@entry\or + \if!% + \ifcase\expandafter\expandafter\expandafter\LT@cols + \expandafter\@gobble\LT@save@row + \or + \else + \relax + \fi + !% + \else + \aftergroup\LT@blank@row + \fi}% + \fi} +\let\setlongtables\relax +\def\LT@get@widths{% + \setbox\tw@\hbox{% + \unhbox\@ne + \let\LT@old@row\LT@save@row + \global\let\LT@save@row\@empty + \count@\LT@cols + \loop + \unskip + \setbox\tw@\lastbox + \ifhbox\tw@ + \LT@def@row + \advance\count@\m@ne + \repeat}% + \ifx\LT@@save@row\@undefined + \let\LT@@save@row\LT@save@row + \fi} +\def\LT@def@row{% + \let\LT@entry\or + \edef\@tempa{% + \ifcase\expandafter\count@\LT@old@row + \else + {1}{0pt}% + \fi}% + \let\LT@entry\relax + \xdef\LT@save@row{% + \LT@entry + \expandafter\LT@max@sel\@tempa + \LT@save@row}} +\def\LT@max@sel#1#2{% + {\ifdim#2=\wd\tw@ + #1% + \else + \number\c@LT@chunks + \fi}% + {\the\wd\tw@}} +\def\LT@hline{% + \noalign{\ifnum0=`}\fi + \penalty\@M + \futurelet\@let@token\LT@@hline} +\def\LT@@hline{% + \ifx\@let@token\hline + \global\let\@gtempa\@gobble + \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% + \else + \global\let\@gtempa\@empty + \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\LT@sep}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\penalty\@M}% + \@gtempa} +\def\LT@caption{% + \noalign\bgroup + \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} +\def\LT@c@ption#1[#2]#3{% + \LT@makecaption#1\fnum@table{#3}% + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\let\\\space + \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% + \fi} +\def\LT@capti@n{% + \@ifstar + {\egroup\LT@c@ption\@gobble[]}% + {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} +\def\LT@makecaption#1#2#3{% + \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% + \sbox\@tempboxa{#1{#2: }#3}% + \ifdim\wd\@tempboxa>\hsize + #1{#2: }#3% + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \endgraf\vskip\baselineskip}% + \hss}}} +\def\LT@output{% + \ifnum\outputpenalty <-\@Mi + \ifnum\outputpenalty > -\LT@end@pen + \LT@err{floats and marginpars not allowed in a longtable}\@ehc + \else + \setbox\z@\vbox{\unvbox\@cclv}% + \ifdim \ht\LT@lastfoot>\ht\LT@foot + \dimen@\pagegoal + \advance\dimen@-\ht\LT@lastfoot + \ifdim\dimen@<\ht\z@ + \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% + \@makecol + \@outputpage + \setbox\z@\vbox{\box\LT@head}% + \fi + \fi + \global\@colroom\@colht + \global\vsize\@colht + \vbox + {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% + \fi + \else + \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% + \@makecol + \@outputpage + \global\vsize\@colroom + \copy\LT@head\nobreak + \fi} +\def\LT@end@hd@ft#1{% + \LT@echunk + \ifx\LT@start\endgraf + \LT@err + {Longtable head or foot not at start of table}% + {Increase LTchunksize}% + \fi + \setbox#1\box\z@ + \LT@get@widths + \LT@bchunk} +\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} +\def\endhead{\LT@end@hd@ft\LT@head} +\def\endfoot{\LT@end@hd@ft\LT@foot} +\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} +\def\LT@startpbox#1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \vrule \@height \ht\@arstrutbox \@width \z@} +\def\LT@endpbox{% + \@finalstrut\@arstrutbox + \egroup + \the\LT@p@ftn + \global\LT@p@ftn{}% + \hfil} +\def\LT@p@ftntext#1{% + \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% + \global\LT@p@ftn\expandafter{\@tempa{#1}}}% + +\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} +\endinput +%% +%% End of file `longtable.sty'. diff --git a/Exam_proj_QtLess/latex/make.bat b/Exam_proj_QtLess/latex/make.bat new file mode 100644 index 0000000..55e79ba --- /dev/null +++ b/Exam_proj_QtLess/latex/make.bat @@ -0,0 +1,31 @@ +set Dir_Old=%cd% +cd /D %~dp0 + +del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf + +set LATEX_CMD=pdflatex +%LATEX_CMD% refman +echo ---- +makeindex refman.idx +echo ---- +%LATEX_CMD% refman + +setlocal enabledelayedexpansion +set count=8 +:repeat +set content=X +for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" refman.log' ) do set content="%%~T" +if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" refman.log' ) do set content="%%~T" +if !content! == X goto :skip +set /a count-=1 +if !count! EQU 0 goto :skip + +echo ---- +%LATEX_CMD% refman +goto :repeat +:skip +endlocal +makeindex refman.idx +%LATEX_CMD% refman +cd /D %Dir_Old% +set Dir_Old= diff --git a/Exam_proj_QtLess/latex/refman.tex b/Exam_proj_QtLess/latex/refman.tex new file mode 100644 index 0000000..60ce821 --- /dev/null +++ b/Exam_proj_QtLess/latex/refman.tex @@ -0,0 +1,190 @@ +\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}\documentclass[twoside]{book} + +%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package +\usepackage{ifthen} +\ifx\requestedLaTeXdate\undefined +\usepackage{array} +\else +\usepackage{array}[=2016-10-06] +\fi +%% +% Packages required by doxygen +\usepackage{fixltx2e} +\usepackage{doxygen} +\usepackage{graphicx} +\usepackage[utf8]{inputenc} +\usepackage{makeidx} +\PassOptionsToPackage{warn}{textcomp} +\usepackage{textcomp} +\usepackage[nointegrals]{wasysym} +\usepackage{ifxetex} + +% Font selection +\usepackage[T1]{fontenc} +\usepackage[scaled=.90]{helvet} +\usepackage{courier} +\renewcommand{\familydefault}{\sfdefault} +\usepackage{sectsty} +\allsectionsfont{% + \fontseries{bc}\selectfont% + \color{darkgray}% +} +\renewcommand{\DoxyLabelFont}{% + \fontseries{bc}\selectfont% + \color{darkgray}% +} +\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} + +% Arguments of doxygenemoji: +% 1) '::' form of the emoji, already "LaTeX"-escaped +% 2) file with the name of the emoji without the .png extension +% in case image exist use this otherwise use the '::' form +\newcommand{\doxygenemoji}[2]{% + \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% +} +% Page & text layout +\usepackage{geometry} +\geometry{% + a4paper,% + top=2.5cm,% + bottom=2.5cm,% + left=2.5cm,% + right=2.5cm% +} +\tolerance=750 +\hfuzz=15pt +\hbadness=750 +\setlength{\emergencystretch}{15pt} +\setlength{\parindent}{0cm} +\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} +\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} +\doxynormalparskip +\makeatletter +\renewcommand{\paragraph}{% + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@parafont% + }% +} +\renewcommand{\subparagraph}{% + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@subparafont% + }% +} +\makeatother + +\makeatletter +\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} +\makeatother + +% Headers & footers +\usepackage{fancyhdr} +\pagestyle{fancyplain} +\renewcommand{\footrulewidth}{0.4pt} +% +\fancypagestyle{fancyplain}{ +\fancyhf{} +\fancyhead[LE, RO]{\bfseries\thepage} +\fancyhead[LO]{\bfseries\rightmark} +\fancyhead[RE]{\bfseries\leftmark} +\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } +} +% +\fancypagestyle{plain}{ +\fancyhf{} +\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } +\renewcommand{\headrulewidth}{0pt}} +% +\pagestyle{fancyplain} +% +\renewcommand{\chaptermark}[1]{% + \markboth{#1}{}% +} +\renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}% +} + +% Indices & bibliography +\usepackage{natbib} +\usepackage[titles]{tocloft} +\setcounter{tocdepth}{3} +\setcounter{secnumdepth}{5} +\makeindex + +\usepackage{newunicodechar} + \newunicodechar{⁻}{${}^{-}$}% Superscript minus + \newunicodechar{²}{${}^{2}$}% Superscript two + \newunicodechar{³}{${}^{3}$}% Superscript three + +% Hyperlinks (required, but should be loaded last) +\ifpdf + \usepackage[pdftex,pagebackref=true]{hyperref} +\else + \ifxetex + \usepackage[pagebackref=true]{hyperref} + \else + \usepackage[ps2pdf,pagebackref=true]{hyperref} + \fi +\fi + +\hypersetup{% + colorlinks=true,% + linkcolor=blue,% + citecolor=blue,% + unicode% +} + +% Custom commands +\newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}% +} + +\usepackage{caption} +\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} + +\usepackage{etoc} +\etocsettocstyle{\doxytocparskip}{\doxynormalparskip} +\renewcommand{\numberline}[1]{#1~} +%===== C O N T E N T S ===== + +\begin{document} +\raggedbottom + +% Titlepage & ToC +\hypersetup{pageanchor=false, + bookmarksnumbered=true, + pdfencoding=unicode + } +\pagenumbering{alph} +\begin{titlepage} +\vspace*{7cm} +\begin{center}% +{\Large My Project }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.9.1}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\hypersetup{pageanchor=true} + +%--- Begin generated contents --- +\chapter{Class Index} +\input{annotated} +\chapter{Class Documentation} +\input{classcircle} +\input{classsquare} +\input{classtriangle} +%--- End generated contents --- + +% Index +\backmatter +\newpage +\phantomsection +\clearemptydoublepage +\addcontentsline{toc}{chapter}{\indexname} +\printindex + +\end{document} diff --git a/Exam_proj_QtLess/latex/tabu_doxygen.sty b/Exam_proj_QtLess/latex/tabu_doxygen.sty new file mode 100644 index 0000000..3f17d1d --- /dev/null +++ b/Exam_proj_QtLess/latex/tabu_doxygen.sty @@ -0,0 +1,2557 @@ +%% +%% This is file `tabu.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tabu.dtx (with options: `package') +%% +%% This is a generated file. +%% Copyright (FC) 2010-2011 - lppl +%% +%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars +%% +%% ********************************************************************************************** +%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal +%% \begin{tabu} to { preamble } => target specified +%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' +%% +%% tabu works in text and in math modes. +%% +%% X columns: automatic width adjustment + horizontal and vertical alignment +%% \begin{tabu} { X[4c] X[1c] X[-2ml] } +%% +%% Horizontal lines and / or leaders: +%% \hline\hline => double horizontal line +%% \firsthline\hline => for nested tabulars +%% \lasthline\hline => for nested tabulars +%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) +%% Automatic lines / leaders : +%% \everyrow{\hline\hline} +%% +%% Vertical lines and / or leaders: +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } +%% +%% Fixed vertical spacing adjustment: +%% \extrarowheight= \extrarowdepth= +%% or: \extrarowsep= => may be prefixed by \global +%% +%% Dynamic vertical spacing adjustment: +%% \abovetabulinesep= \belowtabulinesep= +%% or: \tabulinesep= => may be prefixed by \global +%% +%% delarray.sty shortcuts: in math and text modes +%% \begin{tabu} .... \({ preamble }\) +%% +%% Algorithms reports: +%% \tracingtabu=1 \tracingtabu=2 +%% +%% ********************************************************************************************** +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% +%% This work consists of the main source file tabu.dtx +%% and the derived files +%% tabu.sty, tabu.pdf, tabu.ins +%% +%% tabu : Flexible LaTeX tabulars +%% lppl copyright 2010-2011 by FC +%% + +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] +\RequirePackage{array}[2008/09/09] +\RequirePackage{varwidth}[2009/03/30] +\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} +\let\tabu@AtEnd\@empty +\def\TMP@EnsureCode#1={% + \edef\tabu@AtEnd{\tabu@AtEnd + \catcode#1 \the\catcode#1}% + \catcode#1=% +}% \TMP@EnsureCode +\TMP@EnsureCode 33 = 12 % ! +\TMP@EnsureCode 58 = 12 % : (for siunitx) +\TMP@EnsureCode124 = 12 % | +\TMP@EnsureCode 36 = 3 % $ = math shift +\TMP@EnsureCode 38 = 4 % & = tab alignment character +\TMP@EnsureCode 32 = 10 % space +\TMP@EnsureCode 94 = 7 % ^ +\TMP@EnsureCode 95 = 8 % _ +%% Constants -------------------------------------------------------- +\newcount \c@taburow \def\thetaburow {\number\c@taburow} +\newcount \tabu@nbcols +\newcount \tabu@cnt +\newcount \tabu@Xcol +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcount \tabu@alloc \tabu@alloc=\m@ne +\newcount \tabu@nested +\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} +\newdimen \tabu@target +\newdimen \tabu@spreadtarget +\newdimen \tabu@naturalX +\newdimen \tabucolX +\let\tabu@DELTA \@tempdimc +\let\tabu@thick \@tempdima +\let\tabu@on \@tempdimb +\let\tabu@off \@tempdimc +\newdimen \tabu@Xsum +\newdimen \extrarowdepth +\newdimen \abovetabulinesep +\newdimen \belowtabulinesep +\newdimen \tabustrutrule \tabustrutrule \z@ +\newtoks \tabu@thebody +\newtoks \tabu@footnotes +\newsavebox \tabu@box +\newsavebox \tabu@arstrutbox +\newsavebox \tabu@hleads +\newsavebox \tabu@vleads +\newif \iftabu@colortbl +\newif \iftabu@siunitx +\newif \iftabu@measuring +\newif \iftabu@spread +\newif \iftabu@negcoef +\newif \iftabu@everyrow +\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} +\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} +\newif \iftabu@long +\newif \iftabuscantokens +\def\tabu@rescan {\tabu@verbatim \scantokens } +%% Utilities (for internal usage) ----------------------------------- +\def\tabu@gobblespace #1 {#1} +\def\tabu@gobbletoken #1#2{#1} +\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} +\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble + \else\ifx \@sptoken\@let@token + \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX + \fi\fi +}% \tabu@gobblex +\def\tabu@X{^^J} +{\obeyspaces +\global\let\tabu@spxiii= % saves an active space (for \ifx) +\gdef\tabu@@spxiii{ }} +\def\tabu@ifenvir {% only for \multicolumn + \expandafter\tabu@if@nvir\csname\@currenvir\endcsname +}% \tabu@ifenvir +\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else + \ifx\longtabu#1first\else + second\fi\fi oftwo\endcsname +}% \tabu@ifenvir +\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} +{\catcode`\&=3 +\gdef\tabu@strtrim #1{% #1 = control sequence to trim + \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi + \let\tabu@c@l@r \@empty \let#1\@empty + \else \expandafter \tabu@trimspaces #1\@nnil + \fi +}% \tabu@strtrim +\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% +\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} +\gdef\tabu@lastspace #1{\def #3{#1}% + \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi + \tabu@trimspaces #1\@nnil} +}% \catcode +\def\tabu@sanitizearg #1#2{{% + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% + \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% +}% \tabu@sanitizearg +\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% + \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! +}% \tabu@textbar +\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} +\def\tabu@everyrow@egroup{% + \iftabu@everyrow \expandafter \endgroup \the\toks@ + \else \ifnum0=`{\fi}% + \fi +}% \tabu@everyrow@egroup +\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \z@}% +}% \tabu@arstrut +\def\tabu@rearstrut {% + \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax + \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax + \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima + \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi + \tabu@mkarstrut + \fi +}% \tabu@rearstrut +\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} +\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox + \hbox to\z@{\hbox to\z@{\hss + {\tabu@DBG{cyan}\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \z@ + width \tabustrutrule}\kern-\tabustrutrule + {\tabu@DBG{pink}\vrule + height \z@ + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \tabustrutrule}}}% +}% \tabu@DBG@arstrut +\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ + \@nextchar}}% +\def\tabu@savedecl{\ifcat$\d@llarend\else + \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode +}% \tabu@savedecl +\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} +\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } +\let\tabu@trialh@@k \@empty +\def\tabu@nowrite #1#{{\afterassignment}\toks@} +\let\tabu@write\write +\let\tabu@immediate\immediate +\def\tabu@WRITE{\begingroup + \def\immediate\write{\aftergroup\endgroup + \tabu@immediate\tabu@write}% +}% \tabu@WRITE +\expandafter\def\expandafter\tabu@GenericError\expandafter{% + \expandafter\tabu@WRITE\GenericError} +\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} +\def\tabu@noxfootnote [#1]{\@gobble} +\def\tabu@nocolor #1#{\@gobble} +\newcommand*\tabu@norowcolor[2][]{} +\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% + \futurelet\@let@token \tabu@m@ybesiunitx} +\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% + \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi + \tabu@temp}% \tabu@m@ybesiunitx +}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname +\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% +%% Fixed vertical spacing adjustment: \extrarowsep ------------------ +\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% + \iftabu@everyrow \aftergroup\tabu@Gextra + \else \aftergroup\tabu@n@Gextra + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra +}% \extrarowsep +\def\tabu@extra {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setextrasep \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extra +\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} +\def\tabu@extr@ #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extr@ +\def\tabu@setextrasep {\extrarowheight=\extrarowdepth + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth +}% \tabu@setextrasep +\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} +\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} +\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} +\let\tabu@C@extra \z@ +\let\tabu@G@extra \@empty +%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- +\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% + \iftabu@everyrow \aftergroup\tabu@Glinesep + \else \aftergroup\tabu@n@Glinesep + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep +}% \tabulinesep +\def\tabu@linesep {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setlinesep \abovetabulinesep + \fi \tabu@temp}% +}% \tabu@linesep +\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} +\def\tabu@sets@p #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep + \fi \tabu@temp}% +}% \tabu@sets@p +\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep +}% \tabu@setlinesep +\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} +\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} +\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} +\let\tabu@C@linesep \z@ +\let\tabu@G@linesep \@empty +%% \global\extrarowsep and \global\tabulinesep ------------------- +\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% + \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% +}% \tabu@Gsave +\def\tabu@Grestore#1#2{% + \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax + \ifcat$\the\toks\currentgrouplevel$\else + \global\let#1\@empty \global\let#2\z@ + \the\toks\currentgrouplevel + \fi +}% \tabu@Grestore +%% Setting code for every row --------------------------------------- +\newcommand*\everyrow{\tabu@everyrow@bgroup + \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop +}% \everyrow +\def\tabu@evrstartstop {\@ifnextchar^% + {\afterassignment \tabu@evrstartstop \tabu@stop=}% + {\ifx ^\@let@token + \afterassignment\tabu@evrstartstop \tabu@start=% + \else \afterassignment\tabu@everyr@w \toks@ + \fi}% +}% \tabu@evrstartstop +\def\tabu@everyr@w {% + \xdef\tabu@everyrow{% + \noexpand\tabu@everyrowfalse + \let\noalign \relax + \noexpand\tabu@rowfontreset + \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors + \let\noexpand\tabu@docline \noexpand\tabu@docline@evr + \the\toks@ + \noexpand\tabu@evrh@@k + \noexpand\tabu@rearstrut + \global\advance\c@taburow \@ne}% + \iftabu@everyrow \toks@\expandafter + {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% + \else \xdef\tabu@evr@G{\the\toks@}% + \fi + \tabu@everyrow@egroup +}% \tabu@everyr@w +\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only +\tabu@evr{} +%% line style and leaders ------------------------------------------- +\newcommand*\newtabulinestyle [1]{% + {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% +}% \newtabulinestyle +\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% + \tabu@sanitizearg {#1}\@tempa + \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi + \global\expandafter\let + \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi +}% \tabu@newlinestyle +\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% + \iftabu@everyrow + \toks@\expandafter{\expandafter \def \expandafter + \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% + \gdef\tabu@ls@{\tabu@ls@L}% + \else + \global\let\tabu@ls@G \tabu@thestyle + \gdef\tabu@ls@{\tabu@ls@G}% + \fi + \tabu@everyrow@egroup +}% \tabulinestyle +\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} +\def\tabu@rulecolor #1{\toks@{}% + \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% + \tabu@temp + \tabu@rulearc +}% \tabu@rulecolor +\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp + \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% + \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% + \fi + \tabu@temp +}% \tabu@ruledrsc@ +\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} +\def\tabu@rule@drsc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% + \else \toks@{\def\CT@drsc@{\color #1{#2}}}% + \fi + \else + \ifx \\#1#2\\\global\let\CT@drsc@ \relax + \else \gdef\CT@drsc@{\color #1{#2}}% + \fi + \fi + \tabu@rulearc +}% \tabu@rule@drsc@ +\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} +\def\tabu@rule@arc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% + \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% + \fi + \toks@\expandafter{\the\toks@ + \let\tabu@arc@L \CT@arc@ + \let\tabu@drsc@L \CT@drsc@ + \ignorespaces}% + \else + \ifx \\#1#2\\\gdef\CT@arc@{}% + \else \gdef\CT@arc@{\color #1{#2}}% + \fi + \global\let\tabu@arc@G \CT@arc@ + \global\let\tabu@drsc@G \CT@drsc@ + \fi + \tabu@everyrow@egroup +}% \tabu@rule@arc@ +\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} +\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} +\def\tabu@rowc@lors #1#2#3{% + \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil + \@defaultunits \tabu@start =\number0#1\relax \@nnil + \ifnum \count@<\tw@ \count@=\tw@ \fi + \advance\tabu@start \m@ne + \ifnum \tabu@start<\z@ \tabu@start \z@ \fi + \tabu@rowcolorseries #3\in@..\in@ \@nnil +}% \tabu@rowcolors +\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% + \ifx \in@#1\relax + \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% + \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ + \fi + \else + \ifx \\#2\\\tabu@rowcolorserieserror \fi + \tabu@sanitizearg{#1}\tabu@temp + \tabu@sanitizearg{#2}\@tempa + \advance\count@ \m@ne + \iftabu@everyrow + \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% + \ifnum ##2=\c@taburow + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi + \ifnum \c@taburow<##2 \else + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}\fi}% + }\edef\x{\noexpand\tabu@rc@ {\the\count@} + {\the\tabu@start} + {\tabu@temp} + {\@tempa}% + }\x + \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% + \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% + \else % inside \noalign + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% + \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% + \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}}% + }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x + \global\let\tabu@rc@G \tabu@rc@ + \fi + \fi + \tabu@everyrow@egroup +}% \tabu@rowcolorseries +\tabuDisableCommands {\let\tabu@rc@ \@empty } +\def\tabu@rowcolorserieserror {\PackageError{tabu} + {Invalid syntax for \string\taburowcolors + \MessageBreak Please look at the documentation!}\@ehd +}% \tabu@rowcolorserieserror +\newcommand*\tabureset {% + \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ + \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% +}% \tabureset +%% Parsing the line styles ------------------------------------------ +\def\tabu@getline #1{\begingroup + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa + \let\tabu@thestyle \relax + \ifcsname tabu@linestyle@\@tempa \endcsname + \edef\tabu@thestyle{\endgroup + \def\tabu@thestyle{\expandafter\noexpand + \csname tabu@linestyle@\@tempa\endcsname}% + }\tabu@thestyle + \else \expandafter\tabu@definestyle \tabu@temp \@nil + \fi +}% \tabu@getline +\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter + \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen + \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined + \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs + \def\tabu@temp{\tabu@getparam{thick}}% + \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% + \fi + {% + \let\tabu@ \relax + \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) + \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% + \expandafter}\expandafter + \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) + \def\;{\def\:}% + \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) + \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) + \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi + \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi + \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi + \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen + \tabu@on \tabulineon \fi\fi + \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen + \tabu@off \tabulineoff \fi\fi + \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi + \in@true % + \else \in@false % + \fi + \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% + \else \edef\tabu@thick{\the\tabu@thick}% + \fi + \edef \tabu@thestyle ##1##2{\endgroup + \def\tabu@thestyle{% + \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} + {\the\tabu@on}{##1} + {\the\tabu@off}{##2}% + \else \noexpand\tabu@rulesstyle + {##1\vrule width \tabu@thick}% + {##1\leaders \hrule height \tabu@thick \hfil}% + \fi}% + }\expandafter \expandafter + \expandafter \tabu@thestyle \expandafter + \expandafter \expandafter + {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% +}% \tabu@definestyle +{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active + \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} + \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} +}% \catcode +\def\tabu@oxiii #1{% + \ifcase \ifx n#1\z@ \else + \ifx f#1\@ne\else + \tw@ \fi\fi + \expandafter\tabu@onxiii + \or \expandafter\tabu@ofxiii + \else o% + \fi#1}% +\def\tabu@onxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx \tabu@spxiii#2\@ne\else + \tw@ \fi\fi\fi + \tabu@getparam{on}#2\expandafter\@gobble + \or \expandafter\tabu@onxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}}% +\def\tabu@ofxiii #1#2{% + \ifx #2f\expandafter\tabu@offxiii + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@offxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx\tabu@spxiii#2\@ne \else + \tw@ \fi\fi\fi + \tabu@getparam{off}#2\expandafter\@gobble + \or \expandafter\tabu@offxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} +\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef + \ifx \tabu@#1\else % no more spec + \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi +}% \tabu@getcolor +\def\tabu@getc@l@r #1\tabu@ {% + \def\tabu@temp{#1}\tabu@strtrim \tabu@temp + \ifx \tabu@temp\@empty + \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists + \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r + \else \let\tabu@c@lon \tabu@c@l@r + \fi + %\else \tabu@warncolour{\tabu@temp}% + \fi%\fi + \tabu@ % next spec +}% \tabu@getc@l@r +\def\tabu@warncolour #1{\PackageWarning{tabu} + {Color #1 is not defined. Default color used}% +}% \tabu@warncolour +\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% + \ifx \tabu@leaders\tabu@leaders@G \else + \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi +}% \tabu@leadersstyle +\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined + \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% +}% \tabu@rulesstyle +%% The leaders boxes ------------------------------------------------ +\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color + {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor + {% % but the leaders boxes should have colors ! + \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% + \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% + \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thehleaders \tabu@theleaders + }% + {% + \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% + \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% + \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thevleaders \tabu@theleaders + }% + \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% + }% +}% \tabu@LEADERS +\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} +\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color + \global\setbox \tabu@leads=\@box{% + {#3\tabu@therule{#1}{#2}}% + \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi + {#3\tabu@therule{#1}{#2}}}% + \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss + {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% + \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% + {##1\tabu@therule{#1}{#2}}% + \xleaders \copy\tabu@leads \@ss + \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% + }\tabu@theleaders{#3}% +}% \tabu@l@@d@rs +%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- +\newcommand*\tabu {\tabu@longfalse + \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% + \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endtabu*\endcsname{\endtabu}% + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {tabu} +\let\tabu@tabular \tabular % +\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} +\newcommand*\longtabu {\tabu@longtrue + \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi + \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% + \LTchunksize=\@M + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% + \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {longtabu} +\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} +\def\tabu@nolongtabu{\PackageError{tabu} + {longtabu requires the longtable package}\@ehd} +%% Read the target and then : \tabular or \@array ------------------ +\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } +\def\tabu@sett@rget {\tabu@target \z@ + \ifcase \ifx \bgroup\@let@token \z@ \else + \ifx \@sptoken\@let@token \@ne \else + \if t\@let@token \tw@ \else + \if s\@let@token \thr@@\else + \z@\fi\fi\fi\fi + \expandafter\tabu@begin + \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget + \or \expandafter\tabu@to + \or \expandafter\tabu@spread + \fi +}% \tabu@sett@rget +\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} +\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} +\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } +\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } +\def\tabu@linegoalt@rget {% + \ifx \tabu@temp\LNGL@setlinegoal + \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal + \tabu@begin +}% \tabu@linegoalt@rget +\def\tabu@begin #1#{% + \iftabu@measuring \expandafter\tabu@nestedmeasure \fi + \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty + \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% + \fi + \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil +}% \tabu@begin +\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup + \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% + \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% +}% \tabu@tabu@ +\def\tabu@nestedmeasure {% + \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax + \tabu@spreadtrue + \else \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}% + \expandafter\tabu@collectbody\expandafter\tabu@quickrule + \expandafter\endgroup + \fi +}% \tabu@nestedmeasure +\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} +%% \tabu@setup \tabu@init \tabu@indent +\def\tabu@setup{\tabu@alloc@ + \ifcase \tabu@nested + \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ + \let\tabu@afterendpar \par + \fi\fi\fi + \def\tabu@aligndefault{c}\tabu@init \tabu@indent + \else % + \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth + \fi + \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined + \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% + \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... + \let\@endpbox \tabu@endpbox % idem " " " " " " + \let\@tabarray \tabu@tabarray % idem " " " " " " + \tabu@setcleanup \tabu@setreset +}% \tabu@setup +\def\tabu@init{\tabu@starttimer \tabu@measuringfalse + \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% + \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline + \let\firstline \tabu@firstline \let\lastline \tabu@lastline + \let\hline \tabu@hline \let\@xhline \tabu@xhline + \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox + \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi + \tabu@trivlist % + \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext + \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering + \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft + \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering + \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft + \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont + \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x + \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar + \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok + \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn + \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! + \let\tabu@endpbox \@endpbox % idem " " " " " " " + \let\tabu@tabarray \@tabarray % idem " " " " " " " + \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) + \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi +}% \tabu@init +\def\tabu@indent{% correction for indentation + \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget + \everypar\expandafter{% + \the\everypar\everypar\expandafter{\the\everypar}% + \setbox\z@=\lastbox + \ifdim\wd\z@>\z@ \edef\tabu@thetarget + {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi + \box\z@}% + \fi\fi +}% \tabu@indent +\def\tabu@setcleanup {% saves last global assignments + \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax + \def\tabu@aftergroupcleanup{% + \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% + \else + \def\tabu@aftergroupcleanup{% + \aftergroup\aftergroup\aftergroup\tabu@cleanup + \let\tabu@aftergroupcleanup \relax}% + \fi + \let\tabu@arc@Gsave \tabu@arc@G + \let\tabu@arc@G \tabu@arc@L % + \let\tabu@drsc@Gsave \tabu@drsc@G + \let\tabu@drsc@G \tabu@drsc@L % + \let\tabu@ls@Gsave \tabu@ls@G + \let\tabu@ls@G \tabu@ls@L % + \let\tabu@rc@Gsave \tabu@rc@G + \let\tabu@rc@G \tabu@rc@L % + \let\tabu@evr@Gsave \tabu@evr@G + \let\tabu@evr@G \tabu@evr@L % + \let\tabu@celllalign@save \tabu@celllalign + \let\tabu@cellralign@save \tabu@cellralign + \let\tabu@cellleft@save \tabu@cellleft + \let\tabu@cellright@save \tabu@cellright + \let\tabu@@celllalign@save \tabu@@celllalign + \let\tabu@@cellralign@save \tabu@@cellralign + \let\tabu@@cellleft@save \tabu@@cellleft + \let\tabu@@cellright@save \tabu@@cellright + \let\tabu@rowfontreset@save \tabu@rowfontreset + \let\tabu@@rowfontreset@save\tabu@@rowfontreset + \let\tabu@rowfontreset \@empty + \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset + \edef\c@taburow@save {\the\c@taburow}% + \edef\tabu@naturalX@save {\the\tabu@naturalX}% + \let\tabu@naturalXmin@save \tabu@naturalXmin + \let\tabu@naturalXmax@save \tabu@naturalXmax + \let\tabu@mkarstrut@save \tabu@mkarstrut + \edef\tabu@clarstrut{% + \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax + \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax + \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% +}% \tabu@setcleanup +\def\tabu@cleanup {\begingroup + \globaldefs\@ne \tabu@everyrowtrue + \let\tabu@arc@G \tabu@arc@Gsave + \let\CT@arc@ \tabu@arc@G + \let\tabu@drsc@G \tabu@drsc@Gsave + \let\CT@drsc@ \tabu@drsc@G + \let\tabu@ls@G \tabu@ls@Gsave + \let\tabu@ls@ \tabu@ls@G + \let\tabu@rc@G \tabu@rc@Gsave + \let\tabu@rc@ \tabu@rc@G + \let\CT@do@color \relax + \let\tabu@evr@G \tabu@evr@Gsave + \let\tabu@celllalign \tabu@celllalign@save + \let\tabu@cellralign \tabu@cellralign@save + \let\tabu@cellleft \tabu@cellleft@save + \let\tabu@cellright \tabu@cellright@save + \let\tabu@@celllalign \tabu@@celllalign@save + \let\tabu@@cellralign \tabu@@cellralign@save + \let\tabu@@cellleft \tabu@@cellleft@save + \let\tabu@@cellright \tabu@@cellright@save + \let\tabu@rowfontreset \tabu@rowfontreset@save + \let\tabu@@rowfontreset \tabu@@rowfontreset@save + \tabu@naturalX =\tabu@naturalX@save + \let\tabu@naturalXmax \tabu@naturalXmax@save + \let\tabu@naturalXmin \tabu@naturalXmin@save + \let\tabu@mkarstrut \tabu@mkarstrut@save + \c@taburow =\c@taburow@save + \ifcase \tabu@nested \tabu@alloc \m@ne\fi + \endgroup % + \ifcase \tabu@nested + \the\tabu@footnotes \global\tabu@footnotes{}% + \tabu@afterendpar \tabu@elapsedtime + \fi + \tabu@clarstrut + \everyrow\expandafter {\tabu@evr@G}% +}% \tabu@cleanup +\let\tabu@afterendpar \relax +\def\tabu@setreset {% + \edef\tabu@savedparams {% \relax for \tabu@message@save + \ifmmode \col@sep \the\arraycolsep + \else \col@sep \the\tabcolsep \fi \relax + \arrayrulewidth \the\arrayrulewidth \relax + \doublerulesep \the\doublerulesep \relax + \extratabsurround \the\extratabsurround \relax + \extrarowheight \the\extrarowheight \relax + \extrarowdepth \the\extrarowdepth \relax + \abovetabulinesep \the\abovetabulinesep \relax + \belowtabulinesep \the\belowtabulinesep \relax + \def\noexpand\arraystretch{\arraystretch}% + \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% + \begingroup + \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu + \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi + \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi + \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L + \expandafter \endgroup \expandafter + \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena + \let\tabu@arc@G \tabu@arc@L + \let\tabu@drsc@G \tabu@drsc@L + \let\tabu@ls@G \tabu@ls@L + \let\tabu@rc@G \tabu@rc@L + \let\tabu@evr@G \tabu@evr@L}% + \def\tabu@reset{\tabu@savedparams + \tabu@everyrowtrue \c@taburow \z@ + \let\CT@arc@ \tabu@arc@L + \let\CT@drsc@ \tabu@drsc@L + \let\tabu@ls@ \tabu@ls@L + \let\tabu@rc@ \tabu@rc@L + \global\tabu@alloc \tabu@alloc@save + \everyrow\expandafter{\tabu@evr@L}}% +}% \tabu@reset +\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} +\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} +%% The Rewriting Process ------------------------------------------- +\def\tabu@newcolumntype #1{% + \expandafter\tabu@new@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@newcolumntype +\def\tabu@new@columntype #1#2#3{% + \def#1##1#3{\NC@{##1}}% + \let#2\relax \newcommand*#2% +}% \tabu@new@columntype +\def\tabu@privatecolumntype #1{% + \expandafter\tabu@private@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\expandafter\endcsname + \csname tabu@NC@find@\string#1\expandafter\endcsname + \csname tabu@NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@privatecolumntype +\def\tabu@private@columntype#1#2#3#4{% + \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% + \tabu@new@columntype#3#4% +}% \tabu@private@columntype +\let\tabu@privatecolumns \@empty +\newcommand*\tabucolumn [1]{\expandafter \def \expandafter + \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns + \NC@do #1}}% +\let\tabu@highprioritycolumns \@empty +%% The | ``column'' : rewriting process -------------------------- +\tabu@privatecolumntype |{\tabu@rewritevline} +\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% + \expandafter \NC@find \tabu@rewritten} +\def\tabu@lines #1{% + \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi + \NC@list\expandafter{\the\NC@list \NC@do #1}% +}% \tabu@lines@ +\def\tabu@vlinearg #1{% + \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% + \else\tabu@getline {#1}% + \fi + \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% + }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% + \expandafter \tabu@keepls \tabu@thestyle \@nil +}% \tabu@vlinearg +\def\tabu@keepls #1\@nil{% + \ifcat $\@cdr #1\@nil $% + \ifx \relax#1\else + \ifx \tabu@ls@#1\else + \let#1\relax + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@savels\noexpand#1}\fi\fi\fi +}% \tabu@keepls +\def\tabu@thevline {\begingroup + \ifdefined\tabu@leaders + \setbox\@tempboxa=\vtop to\dimexpr + \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% + \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox + \box\@tempboxa + \else + \tabu@thevrule + \fi \endgroup +}% \tabu@thevline +\def\tabu@savels #1{% + \expandafter\let\csname\string#1\endcsname #1% + \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset + \tabu@resetls#1}}% +\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% +%% \multicolumn inside tabu environment ----------------------------- +\tabu@newcolumntype \tabu@rewritemulticolumn{% + \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \tabu@savedecl + \tabu@privatecolumns + \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% + \let\tabu@savels \relax + \NC@find +}% \tabu@rewritemulticolumn +\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} +\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} +\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup + \tabu@everyrowtrue + \NC@list{\NC@do \tabu@rewritemulticolumn}% + \expandafter\@gobbletwo % gobbles \multispan{#1} + \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% + {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi + {#3}}% +}% \tabu@multic@lumn +%% The X column(s): rewriting process ----------------------------- +\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} +\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } +\def\tabu@siunitx #1{\@ifnextchar \bgroup + {\tabu@rewriteX@Ss{#1}} + {\tabu@nosiunitx{#1}}} +\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% + \@defaultunits \let\tabu@temp =#2\relax\@nnil + \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi + \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% + }\expandafter\NC@find \the\@temptokena \relax + }\expandafter\NC@rewrite@S \@gobble #2\relax + \else \tabu@siunitxerror + \fi + \expandafter \NC@find \tabu@rewritten +}% \tabu@rewriteX@Ss +\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! + \MessageBreak X column can only embed siunitx S or s columns}\@ehd +}% \tabu@siunitxerror +\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% + \iftabu@measuring + \else \tabu@measuringtrue % first X column found in the preamble + \let\@halignto \relax \let\tabu@halignto \relax + \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ + \else \tabu@spreadtarget \z@ \fi + \ifdim \tabu@target=\z@ + \setlength\tabu@target \tabu@thetarget + \tabu@message{\tabu@message@defaulttarget}% + \else \tabu@message{\tabu@message@target}\fi + \fi +}% \tabu@rewriteX +\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax + \def\tabu@rewritten{l}} +\def\tabu@Xarg #1#2#3{% + \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty + \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty + \ifx\\#1\\% + \def\tabu@rewritten{p}\tabucolX \p@ % + \else + \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ + \tabu@Xparse {}#1\relax + \fi + \tabu@Xrewritten{#2}{#3}% +}% \tabu@Xarg +\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} +\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} +\def\tabu@Xtest{% + \ifcase \ifx \relax\@let@token \z@ \else + \if ,\@let@token \m@ne\else + \if p\@let@token 1\else + \if m\@let@token 2\else + \if b\@let@token 3\else + \if l\@let@token 4\else + \if c\@let@token 5\else + \if r\@let@token 6\else + \if j\@let@token 7\else + \if L\@let@token 8\else + \if C\@let@token 9\else + \if R\@let@token 10\else + \if J\@let@token 11\else + \ifx \@sptoken\@let@token 12\else + \if .\@let@token 13\else + \if -\@let@token 13\else + \ifcat $\@let@token 14\else + 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \or \tabu@Xtype {p}% + \or \tabu@Xtype {m}% + \or \tabu@Xtype {b}% + \or \tabu@Xalign \raggedright\relax + \or \tabu@Xalign \centering\relax + \or \tabu@Xalign \raggedleft\relax + \or \tabu@Xalign \tabu@justify\relax + \or \tabu@Xalign \RaggedRight\raggedright + \or \tabu@Xalign \Centering\centering + \or \tabu@Xalign \RaggedLeft\raggedleft + \or \tabu@Xalign \justifying\tabu@justify + \or \expandafter \tabu@Xparsespace + \or \expandafter \tabu@Xcoef + \or \expandafter \tabu@Xm@th + \or \tabu@Xcoef{}% + \else\expandafter \tabu@Xparse + \fi +}% \tabu@Xtest +\def\tabu@Xalign #1#2{% + \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} + {Duplicate horizontal alignment specification}\fi + \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax + \else \def\tabu@Xlcr{#2}\let#2\relax\fi + \expandafter\tabu@Xparse +}% \tabu@Xalign +\def\tabu@Xtype #1{% + \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} + {Duplicate vertical alignment specification}\fi + \def\tabu@rewritten{#1}\expandafter\tabu@Xparse +}% \tabu@Xtype +\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% + \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi +}% \tabu@Xcoef +\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ + \tabu@Xparse{}% +}% \tabu@Xc@ef +\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} +\def\tabu@Xd@sp{\let\tabu@Xmath=$% + \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% + \expandafter\tabu@Xparse + \else \expandafter\tabu@Xparse\expandafter{\expandafter}% + \fi +}% \tabu@Xd@sp +\def\tabu@Xrewritten {% + \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi + \ifdim \tabucolX<\z@ \tabu@negcoeftrue + \else\ifdim \tabucolX=\z@ \tabucolX \p@ + \fi\fi + \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% + \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% + \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% + >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% + \tabu@rewritten {\tabu@hsize \tabu@temp}% + <{##2\ifx$\tabu@Xmath$\fi}}% + }\tabu@rewritten +}% \tabu@Xrewritten +\def\tabu@hsize #1#2{% + \ifdim #2\p@<\z@ + \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else + \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi + \fi + \else #2\tabucolX + \fi +}% \tabu@hsize +%% \usetabu and \preamble: rewriting process --------------------- +\tabu@privatecolumntype \usetabu [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\let\tabu@rewriteX \tabu@rewriteXrestore + \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% + \fi +}% \NC@rewrite@\usetabu +\tabu@privatecolumntype \preamble [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% + \fi +}% \NC@rewrite@\preamble +%% Controlling the rewriting process ------------------------------- +\tabu@newcolumntype \tabu@rewritefirst{% + \iftabu@long \aftergroup \tabu@longpream % + \else \aftergroup \tabu@pream + \fi + \let\tabu@ \relax \let\tabu@hsize \relax + \let\tabu@Xcoefs \@empty \let\tabu@savels \relax + \tabu@Xcol \z@ \tabu@cnt \tw@ + \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse + \global\setbox\@arstrutbox \box\@arstrutbox + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \NC@list\expandafter{\the\NC@list \NC@do X}% + \iftabu@siunitx % + \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi + \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% + \expandafter\def\expandafter\tabu@NC@list\expandafter{% + \the\expandafter\NC@list \tabu@NC@list}% % * | X S + \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu + \expandafter \NC@do \expandafter\preamble + \the\NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \tabu@savedecl + \tabu@privatecolumns + \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle +}% NC@rewrite@\tabu@rewritefirst +\tabu@newcolumntype \tabu@rewritemiddle{% + \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast +}% \NC@rewrite@\tabu@rewritemiddle +\tabu@newcolumntype \tabu@rewritelast{% + \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne + \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \else \let\tabu@prev\tabu@temp + \fi + \ifcase \tabu@cnt \expandafter\tabu@endrewrite + \else \expandafter\NC@find \expandafter\tabu@rewritemiddle + \fi +}% \NC@rewrite@\tabu@rewritelast +%% Choosing the strategy -------------------------------------------- +\def\tabu@endrewrite {% + \let\tabu@temp \NC@find + \ifx \@arrayright\relax \let\@arrayright \@empty \fi + \count@=% + \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print + \iftabu@measuring + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@target \csname tabu@\the\tabu@nested.T\endcsname + \tabucolX \csname tabu@\the\tabu@nested.X\endcsname + \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% + \fi + \else\iftabu@measuring 4 % X columns + \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer + \tabu@target \the\tabu@target + \tabu@spreadtarget \the\tabu@spreadtarget}% + \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% + \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% + \let\tabu@Xcoefs \relax + \else\ifcase\tabu@nested \thr@@ % outer, no X + \global\let\tabu@afterendpar \relax + \else \@ne % inner, no X, outer in mode 1 or 2 + \fi + \ifdefined\tabu@usetabu + \else \ifdim\tabu@target=\z@ + \else \let\tabu@temp \tabu@extracolsep + \fi\fi + \fi + \fi + \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% + \tabu@temp +}% \tabu@endrewrite +\def\tabu@extracolsep{\@defaultunits \expandafter\let + \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil + \ifx \tabu@temp\@sptoken + \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep + \else + \edef\tabu@temp{\noexpand\NC@find + \if |\noexpand\tabu@temp @% + \else\if !\noexpand\tabu@temp @% + \else !% + \fi\fi + {\noexpand\extracolsep\noexpand\@flushglue}}% + \fi + \tabu@temp +}% \tabu@extrac@lsep +%% Implementing the strategy ---------------------------------------- +\long\def\tabu@pream #1\@preamble {% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\tabu@aftergroupcleanup}% + \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody + \@preamble}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@pream +\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@longpream +\def\tabu@select {% + \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi + \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi + \ifcase \count@ + \global\let\tabu@elapsedtime \relax + \tabu@seteverycr + \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) + \or % exit in vertical measure + struts per cell because no X and outer in mode 3 + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \tabu@seteverycr + \expandafter \tabuthepreamble + \or % exit without measure because no X and outer in mode 4 + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@seteverycr + \expandafter \tabuthepreamble + \else % needs trials + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@savecounters + \expandafter \tabu@setstrategy + \fi +}% \tabu@select +\def\tabu@@ {\gdef\tabu@mkpreambuffer} +%% Protections to set up before trials ------------------------------ +\def\tabu@setstrategy {\begingroup % + \tabu@trialh@@k \tabu@cnt \z@ % number of trials + \hbadness \@M \let\hbadness \@tempcnta + \hfuzz \maxdimen \let\hfuzz \@tempdima + \let\write \tabu@nowrite\let\GenericError \tabu@GenericError + \let\savetabu \@gobble \let\tabudefaulttarget \linewidth + \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote + \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor + \let\tabu@aftergroupcleanup \relax % only after the last trial + \tabu@mkpreambuffer + \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init + \def\tabu@lasttry{\m@ne\p@}\fi + \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % + \tabu@collectbody \tabu@strategy % +}% \tabu@setstrategy +\def\tabu@savecounters{% + \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% + \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax +}% \tabu@savecounters +\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) + \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs + \ifdim \dimen@>\z@ + \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \fi +}% \tabucolX@init +\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum + \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ + \else -#2\p@ \tabu@negcoeftrue + \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \tabu@wddef{#1}{0pt}% + \fi +}% \tabu@Xinit +%% Collecting the environment body ---------------------------------- +\long\def\tabu@collectbody #1#2\end #3{% + \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% + \ifx \tabu@stack\@empty + \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% + \def\tabu@end@envir{\end{#3}}% + \iftabuscantokens + \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% + \else \def\tabu@endenvir {\let\endarray \@empty + \end{#3}\tabu@gobbleX}% + \fi + \else \def\tabu@endenvir {\end{#3}}\fi}% + \let\tabu@collectbody \tabu@endofcollect + \else\def\tabu@temp{#3}% + \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% + \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% + \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% + \else \toks@\expandafter{\the\toks@ #2\end{#3}}% + \fi\fi\fi + \fi + \tabu@collectbody{#1}% +}% \tabu@collectbody +\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% +\def\tabu@endofcollect #1{\ifnum0=`{}\fi + \expandafter\endgroup \the\toks@ #1% +}% \tabu@endofcollect +%% The trials: switching between strategies ------------------------- +\def\tabu@strategy {\relax % stops \count@ assignment ! + \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) + \expandafter \tabu@endoftrials + \or % case 1 = exit in vertical measure (outer in mode 3) + \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% + \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% + \expandafter \tabu@endoftrials + \or % case 2 = exit with a rule replacing the table (outer in mode 4) + \expandafter \tabu@quickend + \or % case 3 = outer is in mode 3 because of no X + \begingroup + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \expandafter \tabu@measuring + \else % case 4 = horizontal measure + \begingroup + \global\let\tabu@elapsedtime \tabu@message@etime + \long\def\multicolumn##1##2##3{\multispan{##1}}% + \let\tabu@startpboxORI \@startpbox + \iftabu@spread + \def\tabu@naturalXmax {\z@}% + \let\tabu@naturalXmin \tabu@naturalXmax + \tabu@evr{\global\tabu@naturalX \z@}% + \let\@startpbox \tabu@startpboxmeasure + \else\iftabu@negcoef + \let\@startpbox \tabu@startpboxmeasure + \else \let\@startpbox \tabu@startpboxquick + \fi\fi + \expandafter \tabu@measuring + \fi +}% \tabu@strategy +\def\tabu@measuring{\expandafter \tabu@trial \expandafter + \count@ \the\count@ \tabu@endtrial +}% \tabu@measuring +\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} +\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \csname tabu@adl@endtrial\endcsname + \endarray}$\egroup % got \tabu@box +}% \tabu@shorttrial +\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \tabuendlongtrial}\egroup % got \tabu@box +}% \tabu@longtrial +\def\tabuendlongtrial{% no @ allowed for \scantokens + \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne + \LT@get@widths +}% \tabuendlongtrial +\def\tabu@adl@endtrial{% + \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! +\def\tabu@seteverycr {\tabu@reset + \everycr \expandafter{\the\everycr \tabu@everycr}% + \let\everycr \tabu@noeverycr % +}% \tabu@seteverycr +\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} +\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} +\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} +\def\tabu@endoftrials {% + \iftabuscantokens \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\expandafter \tabu@closetrialsgroup \expandafter + \tabu@rescan \expandafter{% + \expandafter\tabuthepreamble + \the\expandafter\tabu@thebody + \iftabu@long \else \endarray \fi}} + {\expandafter\tabu@closetrialsgroup \expandafter + \tabuthepreamble + \the\tabu@thebody}% + \tabu@endenvir % Finish ! +}% \tabu@endoftrials +\def\tabu@closetrialsgroup {% + \toks@\expandafter{\tabu@endenvir}% + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target + \tabu@cnt \the\tabu@cnt + \def\noexpand\tabu@endenvir{\the\toks@}% + %Quid de \@halignto = \tabu@halignto ?? + }% \tabu@bufferX + \tabu@bufferX + \ifcase\tabu@nested % print out (outer in mode 0) + \global\tabu@cnt \tabu@cnt + \tabu@evr{\tabu@verticaldynamicadjustment}% + \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty + \let\@finalstrut \tabu@finalstrut + \else % vertical measure of nested tabu + \tabu@evr{\tabu@verticalinit}% + \tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \fi + \tabu@clckpt \let\@halignto \tabu@halignto + \let\@halignto \@empty + \tabu@seteverycr + \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ + \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) + \fi\fi +}% \tabu@closetrialsgroup +\def\tabu@quickend {\expandafter \endgroup \expandafter + \tabu@target \the\tabu@target \tabu@quickrule + \let\endarray \relax \tabu@endenvir +}% \tabu@quickend +\def\tabu@endtrial {\relax % stops \count@ assignment ! + \ifcase \count@ \tabu@err % case 0 = impossible here + \or \tabu@err % case 1 = impossible here + \or \tabu@err % case 2 = impossible here + \or % case 3 = outer goes into mode 0 + \def\tabu@bufferX{\endgroup}\count@ \z@ + \else % case 4 = outer goes into mode 3 + \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) + \else \tabu@arith % or 2 (outer in mode 4) + \fi + \count@=% + \ifcase\tabu@nested \thr@@ % outer goes into mode 3 + \else\iftabu@measuring \tw@ % outer is in mode 4 + \else \@ne % outer is in mode 3 + \fi\fi + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% + \fi + \expandafter \tabu@bufferX \expandafter + \count@ \the\count@ \tabu@strategy +}% \tabu@endtrial +\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} +%% The algorithms: compute the widths / stop or go on --------------- +\def\tabu@arithnegcoef {% + \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs +}% \tabu@arithnegcoef +\def\tabu@arith@negcoef #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition + \advance\@tempdima #2\tabucolX + \else + \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated + \advance\dimen@ -#2\p@ + \advance\@tempdima -#2\tabucolX + \else + \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised + \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised + \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) + \fi + \fi + \fi +}% \tabu@arith@negcoef +\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ + \ifdim \@tempdima=\z@ + \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% + \else + \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} + *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% + \fi +}% \tabu@givespace +\def\tabu@arith {\advance\tabu@cnt \@ne + \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi + \tabu@arithnegcoef + \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % + \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax + \tabu@message{\tabu@message@arith}% + \ifdim \tabu@DELTA <\tabu@hfuzz + \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? + \let\tabu@ \tabu@givespace \tabu@Xcoefs + \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message + \else % already converged: nothing to do but nearly impossible... + \fi + \tabucolX \maxdimen + \tabu@measuringfalse + \else % need for narrower X columns + \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax + \tabu@measuringtrue + \@whilesw \iftabu@measuring\fi {% + \advance\tabu@cnt \@ne + \tabu@arithnegcoef + \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here + \tabu@message{\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else + \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ + \fi}% + \ifdim -\tabu@DELTA<\tabu@hfuzz + \advance\@tempdima \@tempdimb % for message + \tabu@measuringfalse + \else + \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax + \fi + }% + \fi + \tabu@message{\tabu@message@reached}% + \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% +}% \tabu@arith +\def\tabu@spreadarith {% + \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs + \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% + \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax + \iftabu@measuring + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% + \else + \tabu@message{\tabu@message@spreadarith}% + \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target + \tabu@message{(tabu) spread + \ifdim \@tempdimc>\tabu@target useless here: default target used% + \else too large: reduced to fit default target\fi.}% + \else + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% + \fi + \begingroup \let\tabu@wddef \@gobbletwo + \@tempdimb \@tempdima + \tabucolX@init + \tabu@arithnegcoef + \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax + \expandafter\endgroup \expandafter\tabucolX \the\tabucolX + \tabu@arith + \fi +}% \tabu@spreadarith +\def\tabu@spread@arith #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ + \else \advance\@tempdima \tabu@wd{#1}\relax + \fi +}% \tabu@spread@arith +%% Reporting in the .log file --------------------------------------- +\def\tabu@message@defaulttarget{% + \ifnum\tabu@nested=\z@^^J(tabu) Default target: + \ifx\tabudefaulttarget\linewidth \string\linewidth + \ifdim \tabu@thetarget=\linewidth \else + -\the\dimexpr\linewidth-\tabu@thetarget\fi = + \else\ifx\tabudefaulttarget\linegoal\string\linegoal= + \fi\fi + \else (tabu) Default target (nested): \fi + \the\tabu@target \on@line + \ifnum\tabu@nested=\z@ , page \the\c@page\fi} +\def\tabu@message@target {^^J(tabu) Target specified: + \the\tabu@target \on@line, page \the\c@page} +\def\tabu@message@arith {\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else + \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ + \fi +}% \tabu@message@arith +\def\tabu@message@spreadarith {\tabu@spreadheader + \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ + \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ + \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ + \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target + \else \@tempdimc+\tabu@spreadtarget \fi + {}{}{}{}{}\@@} +\def\tabu@message@negcoef #1#2{ + \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: + \space width = \tabu@wd {#1} + \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname + \ifdim -\tabu@pt#2\tabucolX<\tabu@target + < \number-\rem@pt#2 X + = \the\dimexpr -\tabu@pt#2\tabucolX \relax + \else + <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} +\def\tabu@message@reached{\tabu@header + ******* Reached Target: + hfuzz = \tabu@hfuzz\on@line\space *******} +\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% + \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: + \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec + \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) + -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax + *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space + cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} +\def\tabu@message@verticalsp {% + \ifdim \@tempdima>\tabu@ht + \ifdim \@tempdimb>\tabu@dp + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% + \else + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% + \fi + \else\ifdim \@tempdimb>\tabu@dp + \tabu@spaces\tabu@spaces\tabu@spaces + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi + \fi +}% \tabu@message@verticalsp +\edef\tabu@spaces{\@spaces} +\def\tabu@strippt{\expandafter\tabu@pt\the} +{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} +\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} +\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} +\def\do #1{% + \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% + \ifnum##1<10 #1 #1\else + \ifnum##1<100 #1 \else + \ifnum##1<\@m #1\fi\fi\fi + ##1.##2##3##4##5##6##7##8#1}% + \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% + \def\tabu@titles{\ifnum \tabu@nested=\z@ + (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target + #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% + \def\tabu@spreadheader{% + (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. + #1 New Target^^J% + (tabu) sprd} + \def\tabu@message@save {\begingroup + \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} + \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt + \dimexpr####1\p@{ }{ }}}% + \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% + \let\CT@arc@ \relax \let\@preamble \@gobble + \let\tabu@savedpream \@firstofone + \let\tabu@savedparams \@firstofone + \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% + \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% + \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% + \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% + \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% + \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% + \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% + \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% + \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% + \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% + \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% + \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% + \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% + \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% + \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% + \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% + \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% + \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% + \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% + \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% + \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo + \tabu@message{% + (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% + \tabu@usetabu \@nil^^J}% + \endgroup} +}\do{ } +%% Measuring the natural width (varwidth) - store the results ------- +\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop + \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% + \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? + \iftabu@spread \else % if spread -> measure + \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure + \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) + \tabu@measuringtrue % for the quick option... + \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi + \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target + \tabu@target=\tabu@temp\tabucolX \fi\fi + \setbox\tabu@box \hbox \bgroup + \begin{varwidth}\tabu@target + \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... + \narrowragged \arraybackslash \parfillskip \@flushglue + \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi + \bgroup \aftergroup\tabu@endpboxmeasure + \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi + \else \expandafter\@gobble + \tabu@startpboxquick{#1}% \@gobble \bgroup + \fi +}% \tabu@startpboxmeasure +\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty + \bgroup\color@begingroup} +\def\tabu@endpboxmeasure {% + \@finalstrut \@arstrutbox + \end{varwidth}\egroup % + \ifdim \tabu@temp\p@ <\z@ % neg coef + \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box + \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% + \tabu@debug{\tabu@message@endpboxmeasure}% + \fi + \else % spread coef>0 + \global\advance \tabu@naturalX \wd\tabu@box + \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax + \ifdim \tabu@naturalXmax <\tabu@naturalX + \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi + \ifdim \tabu@naturalXmin <\@tempdima + \xdef\tabu@naturalXmin {\the\@tempdima}\fi + \fi + \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target +}% \tabu@endpboxmeasure +\def\tabu@wddef #1{\expandafter\xdef + \csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd + \the\tabu@Xcol. X[\tabu@temp]: + target = \the\tabucolX \space + \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol + =\tabu@wd\tabu@Xcol +}% \tabu@message@endpboxmeasure +\def\tabu@startpboxquick {\bgroup + \let\@startpbox \tabu@startpboxORI % restore immediately + \let\tabu \tabu@quick % \begin is expanded before... + \expandafter\@gobble \@startpbox % gobbles \bgroup +}% \tabu@startpboxquick +\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick +}% \tabu@quick +\def\tabu@endquick {% + \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else + \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax + \endgroup + \else \let\endtabu \relax + \tabu@end@envir + \fi +}% \tabu@quick +\def\tabu@endtabu {\end{tabu}} +\def\tabu@endtabus {\end{tabu*}} +%% Measuring the heights and depths - store the results ------------- +\def\tabu@verticalmeasure{\everypar{}% + \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group + \setbox\tabu@box =\hbox\bgroup + \let\tabu@verticalspacing \tabu@verticalsp@lcr + \d@llarbegin % after \hbox ... + \else + \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop + \else\ifnum\currentgrouptype=12\vcenter + \else\vbox\fi\fi}% + \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup + \let\tabu@verticalspacing \tabu@verticalsp@pmb + \fi +}% \tabu@verticalmeasure +\def\tabu@verticalsp@lcr{% + \d@llarend \egroup % + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \noindent\vrule height\@tempdima depth\@tempdimb +}% \tabu@verticalsp@lcr +\def\tabu@verticalsp@pmb{% inserts struts as needed + \par \expandafter\egroup + \expandafter$\expandafter + \egroup \expandafter + \@tempdimc \the\prevdepth + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \let\@finalstrut \@gobble + \hrule height\@tempdima depth\@tempdimb width\hsize +%% \box\tabu@box +}% \tabu@verticalsp@pmb + +\def\tabu@verticalinit{% + \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! + \advance\c@taburow \@ne + \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% + \advance\c@taburow \m@ne +}% \tabu@verticalinit +\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@verticaldynamicadjustment {% + \advance\c@taburow \@ne + \extrarowheight \dimexpr\tabu@ht - \ht\strutbox + \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox + \let\arraystretch \@empty + \advance\c@taburow \m@ne +}% \tabu@verticaldynamicadjustment +\def\tabuphantomline{\crcr \noalign{% + {\globaldefs \@ne + \setbox\@arstrutbox \box\voidb@x + \let\tabu@@celllalign \tabu@celllalign + \let\tabu@@cellralign \tabu@cellralign + \let\tabu@@cellleft \tabu@cellleft + \let\tabu@@cellright \tabu@cellright + \let\tabu@@thevline \tabu@thevline + \let\tabu@celllalign \@empty + \let\tabu@cellralign \@empty + \let\tabu@cellright \@empty + \let\tabu@cellleft \@empty + \let\tabu@thevline \relax}% + \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% + \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr + \noalign{\tabu@rearstrut + {\globaldefs\@ne + \let\tabu@celllalign \tabu@@celllalign + \let\tabu@cellralign \tabu@@cellralign + \let\tabu@cellleft \tabu@@cellleft + \let\tabu@cellright \tabu@@cellright + \let\tabu@thevline \tabu@@thevline}}}% + \expandafter}\the\toks@ +}% \tabuphantomline +%% \firsthline and \lasthline corrections --------------------------- +\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} +\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} +\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} +\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} +\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) + \noalign{\ifnum0=`}\fi + {\CT@arc@\hrule height\arrayrulewidth}% + \futurelet \tabu@temp \tabu@xhline +}% \tabu@hline +\def\tabu@xhline{% + \ifx \tabu@temp \hline + {\ifx \CT@drsc@\relax \vskip + \else\ifx \CT@drsc@\@empty \vskip + \else \CT@drsc@\hrule height + \fi\fi + \doublerulesep}% + \fi + \ifnum0=`{\fi}% +}% \tabu@xhline +\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ + \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% + \tabu@hlineAZsurround +}% \tabu@hlineAZ +\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% + \extratabsurround #1\let\tabucline \tabucline@scan + \let\hline \tabu@hlinescan \let\firsthline \hline + \let\cline \tabu@clinescan \let\lasthline \hline + \expandafter \futurelet \expandafter \tabu@temp + \expandafter \tabu@nexthlineAZ \tabu@temp +}% \tabu@hlineAZsurround +\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} +\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} +\def\tabucline@scan{\@testopt \tabucline@sc@n {}} +\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} +\def\tabu@nexthlineAZ{% + \ifx \tabu@temp\hline \else + \ifx \tabu@temp\cline \else + \ifx \tabu@temp\tabucline \else + \tabu@hlinecorrection + \fi\fi\fi +}% \tabu@nexthlineAZ +\def\tabu@xhlineAZ #1{% + \toks@\expandafter{\the\toks@ #1}% + \@tempdimc \tabu@thick % The last line width + \ifcase\count@ \@tempdimb \tabu@thick % The first line width + \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax + \fi + \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ +}% \tabu@xhlineAZ +\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 + \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ + \edef\firsthline{% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + height \the\dimexpr\@tempdima+\extratabsurround + depth \dp\@arstrutbox + width \tabustrutrule}\hss}\cr + \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb + +\dp\@arstrutbox \relax}% + \the\toks@ + }\ifnum0=`{\fi + \expandafter}\firsthline % we are then ! +}% \tabu@firsthlinecorrection +\def\tabu@lasthlinecorrection{% + \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc + \edef\lasthline{% + \the\toks@ + \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ + +\extratabsurround-\@tempdimc + height \z@ + width \tabustrutrule}\hss}\cr + }\ifnum0=`{\fi + \expandafter}\lasthline % we are then ! +}% \tabu@lasthlinecorrection +\def\tabu@LT@@hline{% + \ifx\LT@next\hline + \global\let\LT@next \@gobble + \ifx \CT@drsc@\relax + \gdef\CT@LT@sep{% + \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% + \else + \gdef\CT@LT@sep{% + \multispan\LT@cols{% + \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% + \fi + \else + \global\let\LT@next\empty + \gdef\CT@LT@sep{% + \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \CT@LT@sep + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \noalign{\penalty\@M}% + \LT@next +}% \tabu@LT@@hline +%% Horizontal lines : \tabucline ------------------------------------ +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} +\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% + \ifnum \tabu@stop<\z@ \toks@{}% + \else \tabu@clinearg{#1}\tabu@thestyle + \edef\tabucline{\toks@{% + \ifnum \tabu@start>\z@ \omit + \tabu@multispan\tabu@start {\span\omit}&\fi + \omit \tabu@multispan\tabu@stop {\span\omit}% + \tabu@thehline\cr + }}\tabucline + \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% + \fi + \futurelet \tabu@temp \tabu@xcline +}% \tabu@cline +\def\tabu@clinearg #1{% + \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ + \else \@defaultunits \expandafter\let\expandafter\@tempa + \romannumeral-`\0#1\relax \@nnil + \ifx \hbox\@tempa \tabu@clinebox{#1}% + \else\ifx \box\@tempa \tabu@clinebox{#1}% + \else\ifx \vbox\@tempa \tabu@clinebox{#1}% + \else\ifx \vtop\@tempa \tabu@clinebox{#1}% + \else\ifx \copy\@tempa \tabu@clinebox{#1}% + \else\ifx \leaders\@tempa \tabu@clineleads{#1}% + \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% + \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% + \else\tabu@getline {#1}% + \fi\fi\fi\fi\fi\fi\fi\fi + \fi +}% \tabu@clinearg +\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} +\def\tabu@clineleads #1{% + \let\tabu@thestyle \relax \let\tabu@leaders \@undefined + \gdef\tabu@thehrule{#1}} +\def\tabu@thehline{\begingroup + \ifdefined\tabu@leaders + \noexpand\tabu@thehleaders + \else \noexpand\tabu@thehrule + \fi \endgroup +}% \tabu@thehline +\def\tabu@xcline{% + \ifx \tabu@temp\tabucline + \toks@\expandafter{\the\toks@ \noalign + {\ifx\CT@drsc@\relax \vskip + \else \CT@drsc@\hrule height + \fi + \doublerulesep}}% + \fi + \tabu@docline +}% \tabu@xcline +\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} +\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% + \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} +\def\tabu@multispan #1#2{% + \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan + \else \expandafter\@gobbletwo + \fi {#1-1}{#2}% +}% \tabu@multispan +\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} +\def\tabu@start@stop #1-#2\@nnil{% + \@defaultunits \tabu@start\number 0#1\relax \@nnil + \@defaultunits \tabu@stop \number 0#2\relax \@nnil + \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne + \else\ifnum \tabu@stop=\z@ \tabu@nbcols + \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols + \else \tabu@stop + \fi\fi\fi + \advance\tabu@start \m@ne + \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi +}% \tabu@start@stop +%% Numbers: siunitx S columns (and \tabudecimal) ------------------- +\def\tabu@tabudecimal #1{% + \def\tabu@decimal{#1}\@temptokena{}% + \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces + \tabu@scandecimal +}% \tabu@tabudecimal +\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} +\def\tabu@skipdecimal#1{#1\tabu@scandecimal} +\def\tabu@getdecimal@ignorespaces{% + \ifcase 0\ifx\tabu@temp\ignorespaces\else + \ifx\tabu@temp\@sptoken1\else + 2\fi\fi\relax + \let\tabu@getdecimal@ \tabu@getdecimal + \expandafter\tabu@skipdecimal + \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal + \else \expandafter\tabu@skipdecimal + \fi +}% \tabu@getdecimal@ignorespaces +\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% + \tabu@scandecimal} +\def\do#1{% + \def\tabu@get@decimalspace#1{% + \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% +}\do{ } +\let\tabu@@tabudecimal \tabu@tabudecimal +\def\tabu@getdecimal{% + \ifcase 0\ifx 0\tabu@temp\else + \ifx 1\tabu@temp\else + \ifx 2\tabu@temp\else + \ifx 3\tabu@temp\else + \ifx 4\tabu@temp\else + \ifx 5\tabu@temp\else + \ifx 6\tabu@temp\else + \ifx 7\tabu@temp\else + \ifx 8\tabu@temp\else + \ifx 9\tabu@temp\else + \ifx .\tabu@temp\else + \ifx ,\tabu@temp\else + \ifx -\tabu@temp\else + \ifx +\tabu@temp\else + \ifx e\tabu@temp\else + \ifx E\tabu@temp\else + \ifx\tabu@cellleft\tabu@temp1\else + \ifx\ignorespaces\tabu@temp1\else + \ifx\@sptoken\tabu@temp2\else + 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \expandafter\tabu@get@decimal + \or \expandafter\tabu@skipdecimal + \or \expandafter\tabu@get@decimalspace + \else\expandafter\tabu@printdecimal + \fi +}% \tabu@getdecimal +\def\tabu@printdecimal{% + \edef\tabu@temp{\the\@temptokena}% + \ifx\tabu@temp\@empty\else + \ifx\tabu@temp\space\else + \expandafter\tabu@decimal\expandafter{\the\@temptokena}% + \fi\fi +}% \tabu@printdecimal +%% Verbatim inside X columns ---------------------------------------- +\def\tabu@verbatim{% + \let\verb \tabu@verb + \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd +}% \tabu@verbatim +\let\tabu@ltx@verb \verb +\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} +\def\tabu@fancyvrb {% + \def\tabu@FV@DefineCheckEnd ##1{% + \def\tabu@FV@DefineCheckEnd{% + ##1% + \let\FV@CheckEnd \tabu@FV@CheckEnd + \let\FV@@CheckEnd \tabu@FV@@CheckEnd + \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd + \edef\FV@EndScanning{% + \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% + \global\let\noexpand\FV@EnvironName\relax + \noexpand\next}% + \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% + }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} +}% \tabu@fancyvrb +\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} +\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} +\begingroup +\catcode`\[1 \catcode`\]2 +\@makeother\{ \@makeother\} + \edef\x[\endgroup + \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% + ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} +\def\tabu@FV@ListProcessLine #1{% + \hbox {%to \hsize{% + \kern\leftmargin + \hbox {%to \linewidth{% + \FV@LeftListNumber + \FV@LeftListFrame + \FancyVerbFormatLine{#1}\hss +%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) +%% \FV@RightListFrame}% + \FV@RightListFrame + \FV@RightListNumber}% +%% DG/SR modification end + \hss}} +%% \savetabu -------------------------------------------------------- +\newcommand*\savetabu[1]{\noalign{% + \tabu@sanitizearg{#1}\tabu@temp + \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else + \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% + \ifdefined\tabu@restored \expandafter\let + \csname tabu@saved@\tabu@temp \endcsname \tabu@restored + \else {\tabu@save}% + \fi + \fi}% +}% \savetabu +\def\tabu@save {% + \toks0\expandafter{\tabu@saved@}% + \iftabu@negcoef + \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% + \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi + \toks1\expandafter{\tabu@savedpream}% + \toks2\expandafter{\tabu@savedpreamble}% + \let\@preamble \relax + \let\tabu@savedpream \relax \let\tabu@savedparams \relax + \edef\tabu@preamble{% + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \edef\tabu@usetabu{% + \def\@preamble {\noexpand\the\toks2}% + \tabu@target \the\tabu@target \relax + \tabucolX \the\tabucolX \relax + \tabu@nbcols \the\tabu@nbcols \relax + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \let\tabu@aligndefault \relax \let\@sharp \relax + \edef\@tempa{\noexpand\tabu@s@ved + {\tabu@usetabu} + {\tabu@preamble} + {\the\toks1}}\@tempa + \tabu@message@save +}% \tabu@save +\long\def\tabu@s@ved #1#2#3{% + \def\tabu@usetabu{#1}% + \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% + \ifodd ##1% \usetabu + \tabu@measuringfalse \tabu@spreadfalse % Just in case... + \gdef\tabu@usetabu {% + \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi + \global\let\tabu@usetabu \@undefined + \def\@halignto {to\tabu@target}% + #1% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \else % \preamble + \gdef\tabu@preamble {% + \global\let\tabu@preamble \@undefined + #2% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \fi + #3}% +}% \tabu@s@ved +\def\tabu@aligndefault@text {\tabu@aligndefault}% +\def\tabu@warn@usetabu {\PackageWarning{tabu} + {Specifying a target with \string\usetabu\space is useless + \MessageBreak The target cannot be changed!}} +\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} +\def\tabu@savewarn#1#2{\PackageInfo{tabu} + {User-name `#1' already used for \string\savetabu + \MessageBreak #2}}% +\def\tabu@saveerr#1{\PackageError{tabu} + {User-name `#1' is unknown for \string\usetabu + \MessageBreak I cannot restore an unknown preamble!}\@ehd} +%% \rowfont --------------------------------------------------------- +\newskip \tabu@cellskip +\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi + {\ifnum0=`}\fi \tabu@row@font} +\newcommand*\tabu@row@font[2][]{% + \ifnum7=\currentgrouptype + \global\let\tabu@@cellleft \tabu@cellleft + \global\let\tabu@@cellright \tabu@cellright + \global\let\tabu@@celllalign \tabu@celllalign + \global\let\tabu@@cellralign \tabu@cellralign + \global\let\tabu@@rowfontreset\tabu@rowfontreset + \fi + \global\let\tabu@rowfontreset \tabu@rowfont@reset + \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% + \ifcsname tabu@cell@#1\endcsname % row alignment + \csname tabu@cell@#1\endcsname \fi + \ifnum0=`{\fi}% end of group / noalign group +}% \rowfont +\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% +\def\tabu@rowfont@reset{% + \global\let\tabu@rowfontreset \tabu@@rowfontreset + \global\let\tabu@cellleft \tabu@@cellleft + \global\let\tabu@cellright \tabu@@cellright + \global\let\tabu@cellfont \@empty + \global\let\tabu@celllalign \tabu@@celllalign + \global\let\tabu@cellralign \tabu@@cellralign +}% \tabu@@rowfontreset +\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl +%% \tabu@prepnext@tok ----------------------------------------------- +\newif \iftabu@cellright +\def\tabu@prepnext@tok{% + \ifnum \count@<\z@ % + \@tempcnta \@M % + \tabu@nbcols\z@ + \let\tabu@fornoopORI \@fornoop + \tabu@cellrightfalse + \else + \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left + \advance \tabu@nbcols \@ne + \iftabu@cellright % before-previous token is right and is finished + \tabu@cellrightfalse % + \tabu@righttok + \fi + \tabu@lefttok + \or % (case 1) previous token is right + \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop + \else % special column: do not change the token + \iftabu@cellright % before-previous token is right + \tabu@cellrightfalse + \tabu@righttok + \fi + \fi % \ifcase + \fi + \tabu@prepnext@tokORI +}% \tabu@prepnext@tok +\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} +\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% + \ifx \in@#2\else + \let\@fornoop \tabu@fornoopORI + \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% + \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% + \expandafter\prepnext@tok + \fi +}% \tabu@lastnoop +\def\tabu@righttok{% + \advance \count@ \m@ne + \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% + \advance \count@ \@ne +}% \tabu@righttok +\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign + \the\toks\count@ \tabu@cellleft}% after because of $ +}% \tabu@lefttok +%% Neutralisation of glues ------------------------------------------ +\let\tabu@cellleft \@empty +\let\tabu@cellright \@empty +\tabu@celllalign@def{\tabu@cellleft}% +\let\tabu@cellralign \@empty +\def\tabu@cell@align #1#2#3{% + \let\tabu@maybesiunitx \toks@ \tabu@celllalign + \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% + \toks@\expandafter{\tabu@cellralign #2}% + \xdef\tabu@cellralign{\the\toks@}% + \toks@\expandafter{\tabu@cellleft #3}% + \xdef\tabu@cellleft{\the\toks@}% +}% \tabu@cell@align +\def\tabu@cell@l{% force alignment to left + \tabu@cell@align + {\tabu@removehfil \raggedright \tabu@cellleft}% left + {\tabu@flush1\tabu@ignorehfil}% right + \raggedright +}% \tabu@cell@l +\def\tabu@cell@c{% force alignment to center + \tabu@cell@align + {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \centering +}% \tabu@cell@c +\def\tabu@cell@r{% force alignment to right + \tabu@cell@align + {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} + \tabu@ignorehfil + \raggedleft +}% \tabu@cell@r +\def\tabu@cell@j{% force justification (for p, m, b columns) + \tabu@cell@align + {\tabu@justify\tabu@cellleft} + {} + \tabu@justify +}% \tabu@cell@j +\def\tabu@justify{% + \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip + \parfillskip\@flushglue +}% \tabu@justify +%% ragged2e settings +\def\tabu@cell@L{% force alignment to left (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedRight \tabu@cellleft} + {\tabu@flush 1\tabu@ignorehfil} + \RaggedRight +}% \tabu@cell@L +\def\tabu@cell@C{% force alignment to center (ragged2e) + \tabu@cell@align + {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \Centering +}% \tabu@cell@C +\def\tabu@cell@R{% force alignment to right (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} + \tabu@ignorehfil + \RaggedLeft +}% \tabu@cell@R +\def\tabu@cell@J{% force justification (ragged2e) + \tabu@cell@align + {\justifying \tabu@cellleft} + {} + \justifying +}% \tabu@cell@J +\def\tabu@flush#1{% + \iftabu@colortbl % colortbl uses \hfill rather than \hfil + \hskip \ifnum13<\currentgrouptype \stretch{#1}% + \else \ifdim#1pt<\p@ \tabu@cellskip + \else \stretch{#1} + \fi\fi \relax + \else % array.sty + \ifnum 13<\currentgrouptype + \hfil \hskip1sp \relax \fi + \fi +}% \tabu@flush +\let\tabu@hfil \hfil +\let\tabu@hfill \hfill +\let\tabu@hskip \hskip +\def\tabu@removehfil{% + \iftabu@colortbl + \unkern \tabu@cellskip =\lastskip + \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip + \else \tabu@cellskip \z@skip + \fi + \else + \ifdim\lastskip=1sp\unskip\fi + \ifnum\gluestretchorder\lastskip =\@ne + \hfilneg % \hfilneg for array.sty but not for colortbl... + \fi + \fi +}% \tabu@removehfil +\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} +\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil + \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group +}% \tabu@nohfil +\def\tabu@colortblalignments {% if colortbl + \def\tabu@nohfil{% + \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group + \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... + \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local +}% \tabu@colortblalignments +%% Taking care of footnotes and hyperfootnotes ---------------------- +\long\def\tabu@footnotetext #1{% + \edef\@tempa{\the\tabu@footnotes + \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% + \global\tabu@footnotes\expandafter{\@tempa {#1}}}% +\long\def\tabu@xfootnotetext [#1]#2{% + \global\tabu@footnotes\expandafter{\the\tabu@footnotes + \footnotetext [{#1}]{#2}}} +\let\tabu@xfootnote \@xfootnote +\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} +\long\def\tabu@Hy@xfootnote [#1]{% + \begingroup + \value\@mpfn #1\relax + \protected@xdef \@thefnmark {\thempfn}% + \endgroup + \@footnotemark \tabu@Hy@ftntxt {#1}% +}% \tabu@Hy@xfootnote +\long\def\tabu@Hy@ftntxt #1#2{% + \edef\@tempa{% + \the\tabu@footnotes + \begingroup + \value\@mpfn #1\relax + \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% + \expandafter \noexpand \expandafter + \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% + }% + \global\tabu@footnotes\expandafter{\@tempa {#2}% + \endgroup}% +}% \tabu@Hy@ftntxt +\long\def\tabu@Hy@footnotetext #1#2{% + \H@@footnotetext{% + \ifHy@nesting + \hyper@@anchor {#1}{#2}% + \else + \Hy@raisedlink{% + \hyper@@anchor {#1}{\relax}% + }% + \def\@currentHref {#1}% + \let\@currentlabelname \@empty + #2% + \fi + }% +}% \tabu@Hy@footnotetext +%% No need for \arraybackslash ! ------------------------------------ +\def\tabu@latextwoe {% +\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@centering \centering \arraybackslash +\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash +\tabu@temp \tabu@raggedright \raggedright \arraybackslash +}% \tabu@latextwoe +\def\tabu@raggedtwoe {% +\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@Centering \Centering \arraybackslash +\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash +\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash +\tabu@temp \tabu@justifying \justifying \arraybackslash +}% \tabu@raggedtwoe +\def\tabu@normalcrbackslash{\let\\\@normalcr} +\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% + \expandafter\tabu@normalcrbackslash \@trivlist}} +%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- +\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} +\def\tabu@beginfbox {\bgroup \kern\fboxsep + \bgroup\aftergroup\tabu@endfbox} +\def\tabu@endfbox {\kern\fboxsep\egroup\egroup + \@frameb@x\relax} +\def\tabu@color@b@x #1#2{\leavevmode \bgroup + \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% + \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox +}% \tabu@color@b@x +\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup + \aftergroup\tabu@endcolor@b@x \set@color} +\def\tabu@endcolor@b@x {\kern\fboxsep \egroup + \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ + \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ + \tabu@docolor@b@x \egroup +}% \tabu@endcolor@b@x +%% Corrections (arydshln, delarray, colortbl) ----------------------- +\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray + \iftabu@colortbl + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \def\tabu@endarray{% + \crcr \egroup \egroup % + \@arrayright % + \gdef\@preamble{}\CT@end}% + \fi + \else + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \PackageWarning{tabu} + {\string\@arrayright\space is missing from the + \MessageBreak definition of \string\endarray. + \MessageBreak Compatibility with delarray.sty is broken.}% + \fi\fi +}% \tabu@fix@arrayright +\def\tabu@adl@xarraydashrule #1#2#3{% + \ifnum\@lastchclass=\adl@class@start\else + \ifnum\@lastchclass=\@ne\else + \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) + \adl@leftrulefalse \fi\fi % must be treated the same + \fi + \ifadl@zwvrule\else \ifadl@inactive\else + \@addtopreamble{\vrule\@width\arrayrulewidth + \@height\z@ \@depth\z@}\fi \fi + \ifadl@leftrule + \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% + {\number#1}#3}% + \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% + {\number#2}#3} + \fi +}% \tabu@adl@xarraydashrule +\def\tabu@adl@act@endpbox {% + \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox + \egroup \egroup + \adl@colhtdp \box\adl@box \hfil +}% \tabu@adl@act@endpbox +\def\tabu@adl@fix {% + \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln + \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln + \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln + \let\@preamerror \@preamerr % arydshln +}% \tabu@adl@fix +%% Correction for longtable' \@startbox definition ------------------ +%% => \everypar is ``missing'' : TeX should be in vertical mode +\def\tabu@LT@startpbox #1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \everypar{% + \vrule \@height \ht\@arstrutbox \@width \z@ + \everypar{}}% +}% \tabu@LT@startpbox +%% \tracingtabu and the package options ------------------ +\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} +\DeclareOption{linegoal}{% + \AtEndOfPackage{% + \RequirePackage{linegoal}[2010/12/07]% + \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX +}} +\DeclareOption{scantokens}{\tabuscantokenstrue} +\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} +\def\tracingtabu {\begingroup\@ifnextchar=% + {\afterassignment\tabu@tracing\count@} + {\afterassignment\tabu@tracing\count@1\relax}} +\def\tabu@tracing{\expandafter\endgroup + \expandafter\tabu@tr@cing \the\count@ \relax +}% \tabu@tracing +\def\tabu@tr@cing #1\relax {% + \ifnum#1>\thr@@ \let\tabu@tracinglines\message + \else \let\tabu@tracinglines\@gobble + \fi + \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG + \def\tabu@mkarstrut {\tabu@DBG@arstrut}% + \tabustrutrule 1.5\p@ + \else \let\tabu@DBG \@gobble + \def\tabu@mkarstrut {\tabu@arstrut}% + \tabustrutrule \z@ + \fi + \ifnum#1>\@ne \let\tabu@debug \message + \else \let\tabu@debug \@gobble + \fi + \ifnum#1>\z@ + \let\tabu@message \message + \let\tabu@tracing@save \tabu@message@save + \let\tabu@starttimer \tabu@pdftimer + \else + \let\tabu@message \@gobble + \let\tabu@tracing@save \@gobble + \let\tabu@starttimer \relax + \fi +}% \tabu@tr@cing +%% Setup \AtBeginDocument +\AtBeginDocument{\tabu@AtBeginDocument} +\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined + \ifdefined\arrayrulecolor \tabu@colortbltrue % + \tabu@colortblalignments % different glues are used + \else \tabu@colortblfalse \fi + \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi + \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi + \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ + \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % + \expandafter\ifx + \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax + \tabu@siunitxtrue + \else \let\tabu@maybesiunitx \@firstofone % + \let\tabu@siunitx \tabu@nosiunitx + \tabu@siunitxfalse + \fi + \ifdefined\adl@array % + \else \let\tabu@adl@fix \relax + \let\tabu@adl@endtrial \@empty \fi + \ifdefined\longtable % + \else \let\longtabu \tabu@nolongtabu \fi + \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi + \csname\ifcsname ifHy@hyperfootnotes\endcsname % + ifHy@hyperfootnotes\else iffalse\fi\endcsname + \let\tabu@footnotetext \tabu@Hy@ftntext + \let\tabu@xfootnote \tabu@Hy@xfootnote \fi + \ifdefined\FV@DefineCheckEnd% + \tabu@fancyvrb \fi + \ifdefined\color % + \let\tabu@color \color + \def\tabu@leavevmodecolor ##1{% + \def\tabu@leavevmodecolor {\leavevmode ##1}% + }\expandafter\tabu@leavevmodecolor\expandafter{\color}% + \else + \let\tabu@color \tabu@nocolor + \let\tabu@leavevmodecolor \@firstofone \fi + \tabu@latextwoe + \ifdefined\@raggedtwoe@everyselectfont % + \tabu@raggedtwoe + \else + \let\tabu@cell@L \tabu@cell@l + \let\tabu@cell@R \tabu@cell@r + \let\tabu@cell@C \tabu@cell@c + \let\tabu@cell@J \tabu@cell@j \fi + \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% + \ifin@ \let\tabu@endarray \endarray + \else \tabu@fix@arrayright \fi% + \everyrow{}% +}% \tabu@AtBeginDocument +\def\tabu@warn@cellspace{% + \PackageWarning{tabu}{% + Package cellspace has some limitations + \MessageBreak And redefines some macros of array.sty. + \MessageBreak Please use \string\tabulinesep\space to control + \MessageBreak vertical spacing of lines inside tabu environment}% +}% \tabu@warn@cellspace +%% tabu Package initialisation +\tabuscantokensfalse +\let\tabu@arc@G \relax +\let\tabu@drsc@G \relax +\let\tabu@evr@G \@empty +\let\tabu@rc@G \@empty +\def\tabu@ls@G {\tabu@linestyle@}% +\let\tabu@@rowfontreset \@empty % +\let\tabu@@celllalign \@empty +\let\tabu@@cellralign \@empty +\let\tabu@@cellleft \@empty +\let\tabu@@cellright \@empty +\def\tabu@naturalXmin {\z@} +\def\tabu@naturalXmax {\z@} +\let\tabu@rowfontreset \@empty +\def\tabulineon {4pt}\let\tabulineoff \tabulineon +\tabu@everyrowtrue +\ifdefined\pdfelapsedtime % + \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% +\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax +\fi +\tracingtabu=\z@ +\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ +\tabulinestyle{} +\taburowcolors{} +\let\tabudefaulttarget \linewidth +\ProcessOptions* % \ProcessOptions* is quicker ! +\endinput +%% +%% End of file `tabu.sty'. diff --git "a/Exam_proj_QtLess/main \342\200\224 \320\272\320\276\320\277\320\270\321\217.cpp" "b/Exam_proj_QtLess/main \342\200\224 \320\272\320\276\320\277\320\270\321\217.cpp" new file mode 100644 index 0000000..721d12a --- /dev/null +++ "b/Exam_proj_QtLess/main \342\200\224 \320\272\320\276\320\277\320\270\321\217.cpp" @@ -0,0 +1,22 @@ +#include +#include +#include "triangle.h" +#include "square.h" +#include "circle.h" + + +using std::cin; +using std::cout; +using std::endl; + +int main(int argc,char*argv[]) +{ + cout<<"Hello, Valeriya" << endl; + + double qwe[8]={0,0,10,0,10,10,0,10}; + square p = square(qwe); + if (p.figure_square()) + cout <<"square" << endl; + + return 0; +} diff --git a/Exam_proj_QtLess/main.cpp b/Exam_proj_QtLess/main.cpp index 9caed53..89281dc 100644 --- a/Exam_proj_QtLess/main.cpp +++ b/Exam_proj_QtLess/main.cpp @@ -1,4 +1,5 @@ #include +#include #include "triangle.h" #include "square.h" #include "circle.h" @@ -10,11 +11,12 @@ using std::endl; int main(int argc,char*argv[]) { - cout<<"Hello, "<< argv[1] << endl; + cout<<"Hello, Vasilii" << endl; - cout <<"Do you want to " << "your task" << endl; - - /* your code here*/ + double qwe[8]={0,0,3,0,3,3,0,3}; + square p = square(qwe); + if (p.figure_square()) + cout <<"Square" << endl; return 0; } diff --git a/Exam_proj_QtLess/square.cpp b/Exam_proj_QtLess/square.cpp index 9344632..04d0050 100644 --- a/Exam_proj_QtLess/square.cpp +++ b/Exam_proj_QtLess/square.cpp @@ -16,3 +16,20 @@ square::square(double ver[]) d_x = ver[6]; d_y = ver[7]; } + +double square::figure_square() +{ + ax=b_x - a_x; + ay=b_y - a_y; + a = sqrt(ax*ax+ay*ay); + bx=c_x - b_x; + by=c_y - b_y; + b = sqrt(bx*bx+by*by); + + + + if (a==b, a_x==b_x==c_x==d_x) + return true; + else + return false; +} diff --git a/Exam_proj_QtLess/square.h b/Exam_proj_QtLess/square.h index 3153cf2..c71dd59 100644 --- a/Exam_proj_QtLess/square.h +++ b/Exam_proj_QtLess/square.h @@ -1,5 +1,6 @@ #ifndef SQUARE_H #define SQUARE_H +#include class square @@ -7,8 +8,10 @@ class square public: square(); square(double ver[]); + double figure_square(); private: - double a_x, a_y, b_x, b_y, c_x, c_y, d_x, d_y; + double a_x, a_y, b_x, b_y, c_x, c_y, d_x, d_y, ax, ay, a, bx, by, b; + }; #endif // SQUARE_H diff --git a/ReadMe.md b/ReadMe.md new file mode 100644 index 0000000..05cf978 --- /dev/null +++ b/ReadMe.md @@ -0,0 +1,28 @@ + +```git init``` — создание репозитория в текущей директории (не использовалось, использовался git clone) + +``` git clone https://github.com/bud-ea/exam_Tech_prog_summer_2021``` — клонирование репозитория + +```git branch 201-331_Skrypnik``` — создание ветки +___ +#### Переключение веток + +```git checkout 201-331_Skrypnik``` + +```git checkout master``` +___ + +```git branch``` — список веток и отображение текущей + +```git add --all``` — индексирование новых, измененных, удаленных файлов + +```git commit -m "сообщение коммита"``` — фиксация в коммите файлов добавленных командой git add + +``` git merge 201-331_Skrypnik``` — слияние активной ветки с указанной + +``` git status``` - статус репозитория + +```git tag -a -m 'Message' v1.0 master ``` — создать тег с сообщением на активном коммите ветки master + +```git push -u origin master ``` — пушим в удаленный репозиторий ветку master + diff --git a/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/.qmake.stash b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/.qmake.stash new file mode 100644 index 0000000..c6edb64 --- /dev/null +++ b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/.qmake.stash @@ -0,0 +1,20 @@ +QMAKE_CXX.QT_COMPILER_STDCXX = 199711L +QMAKE_CXX.QMAKE_MSC_VER = 1929 +QMAKE_CXX.QMAKE_MSC_FULL_VER = 192930037 +QMAKE_CXX.COMPILER_MACROS = \ + QT_COMPILER_STDCXX \ + QMAKE_MSC_VER \ + QMAKE_MSC_FULL_VER +QMAKE_CXX.INCDIRS = \ + "P:\\Launched\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30037\\ATLMFC\\include" \ + "P:\\Launched\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30037\\include" \ + "W:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\ucrt" \ + "W:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\shared" \ + "W:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\um" \ + "W:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\winrt" \ + "W:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.19041.0\\cppwinrt" +QMAKE_CXX.LIBDIRS = \ + "P:\\Launched\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30037\\ATLMFC\\lib\\x64" \ + "P:\\Launched\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Tools\\MSVC\\14.29.30037\\lib\\x64" \ + "W:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.19041.0\\ucrt\\x64" \ + "W:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.19041.0\\um\\x64" diff --git a/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile new file mode 100644 index 0000000..91fb608 --- /dev/null +++ b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile @@ -0,0 +1,501 @@ +############################################################################# +# Makefile for building: Exam_proj_QtLess +# Generated by qmake (3.1) (Qt 5.15.2) +# Project: ..\Exam_proj_QtLess\Exam_proj_QtLess.pro +# Template: app +# Command: P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe -o Makefile ..\Exam_proj_QtLess\Exam_proj_QtLess.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug" +############################################################################# + +MAKEFILE = Makefile + +EQ = = + +first: debug +install: debug-install +uninstall: debug-uninstall +QMAKE = P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe +DEL_FILE = del +CHK_DIR_EXISTS= if not exist +MKDIR = mkdir +COPY = copy /y +COPY_FILE = copy /y +COPY_DIR = xcopy /s /q /y /i +INSTALL_FILE = copy /y +INSTALL_PROGRAM = copy /y +INSTALL_DIR = xcopy /s /q /y /i +QINSTALL = P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe -install qinstall +QINSTALL_PROGRAM = P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe -install qinstall -exe +DEL_FILE = del +SYMLINK = $(QMAKE) -install ln -f -s +DEL_DIR = rmdir +MOVE = move +IDC = idc +IDL = midl +ZIP = zip -r -9 +DEF_FILE = +RES_FILE = +SED = $(QMAKE) -install sed +MOVE = move +SUBTARGETS = \ + debug \ + release + + +debug: $(MAKEFILE) FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Debug +debug-make_first: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Debug +debug-all: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Debug all +debug-clean: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Debug clean +debug-distclean: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Debug distclean +debug-install: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Debug install +debug-uninstall: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Debug uninstall +release: $(MAKEFILE) FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Release +release-make_first: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Release +release-all: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Release all +release-clean: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Release clean +release-distclean: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Release distclean +release-install: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Release install +release-uninstall: FORCE + @set MAKEFLAGS=$(MAKEFLAGS) + $(MAKE) -f $(MAKEFILE).Release uninstall + +Makefile: ..\Exam_proj_QtLess\Exam_proj_QtLess.pro P:\Launched\5.15.2\msvc2019_64\mkspecs\win32-msvc\qmake.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\spec_pre.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\common\angle.conf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\common\windows-desktop.conf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\windows_vulkan_sdk.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\common\windows-vulkan.conf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\common\msvc-desktop.conf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\qconfig.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3danimation.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3danimation_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dcore.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dcore_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dextras.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dextras_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dinput.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dinput_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dlogic.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dlogic_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquick.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquick_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickanimation.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickanimation_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickextras.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickextras_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickinput.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickinput_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickrender.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickrender_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickscene2d.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickscene2d_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3drender.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3drender_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_accessibility_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axbase.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axbase_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axcontainer.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axcontainer_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axserver.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axserver_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bluetooth.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bluetooth_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bootstrap_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_charts.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_charts_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_concurrent.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_concurrent_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_core.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_core_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_datavisualization.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_datavisualization_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_dbus.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_dbus_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designer.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designer_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designercomponents_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_devicediscovery_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_edid_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_egl_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_eventdispatcher_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_fb_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_fontdatabase_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gamepad.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gamepad_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gui.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gui_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_help.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_help_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_location.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_location_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimedia.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimedia_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimediawidgets.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimediawidgets_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_network.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_network_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_networkauth.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_networkauth_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_nfc.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_nfc_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_opengl.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_opengl_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_openglextensions.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_openglextensions_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_packetprotocol_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_platformcompositor_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioning.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioning_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioningquick.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioningquick_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_printsupport.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_printsupport_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qml.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qml_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmldebug_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmldevtools_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlmodels.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlmodels_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmltest.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmltest_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlworkerscript.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlworkerscript_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qtmultimediaquicktools_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3d.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3d_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dassetimport.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dassetimport_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3drender.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3drender_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3druntimerender.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3druntimerender_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dutils.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dutils_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickcontrols2.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickcontrols2_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickparticles_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickshapes_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quicktemplates2.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quicktemplates2_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickwidgets.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickwidgets_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_remoteobjects.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_remoteobjects_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_repparser.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_repparser_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_scxml.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_scxml_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sensors.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sensors_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialbus.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialbus_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialport.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialport_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sql.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sql_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_svg.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_svg_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_testlib.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_testlib_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_texttospeech.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_texttospeech_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_theme_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uiplugin.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uitools.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uitools_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_virtualkeyboard.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_virtualkeyboard_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_vulkan_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webchannel.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webchannel_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webengine.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webengine_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecore.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecore_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecoreheaders_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginewidgets.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginewidgets_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_websockets.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_websockets_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webview.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webview_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_widgets.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_widgets_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_windowsuiautomation_support_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_winextras.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_winextras_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xml.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xml_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xmlpatterns.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xmlpatterns_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_zlib_private.pri \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qt_functions.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qt_config.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\win32-msvc\qmake.conf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\spec_post.prf \ + .qmake.stash \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exclusive_builds.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\common\msvc-version.conf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\toolchain.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\default_pre.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\default_pre.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\resolve_config.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exclusive_builds_post.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\default_post.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\console.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qml_debug.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\precompile_header.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\warn_on.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qmake_use.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\file_copies.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\testcase_targets.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exceptions.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\yacc.prf \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\lex.prf \ + ..\Exam_proj_QtLess\Exam_proj_QtLess.pro \ + P:\Launched\5.15.2\msvc2019_64\mkspecs\features\build_pass.prf + $(QMAKE) -o Makefile ..\Exam_proj_QtLess\Exam_proj_QtLess.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug" +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\spec_pre.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\common\angle.conf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\common\windows-desktop.conf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\windows_vulkan_sdk.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\common\windows-vulkan.conf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\common\msvc-desktop.conf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\qconfig.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3danimation.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3danimation_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dcore.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dcore_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dextras.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dextras_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dinput.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dinput_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dlogic.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dlogic_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquick.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquick_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickanimation.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickanimation_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickextras.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickextras_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickinput.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickinput_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickrender.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickrender_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickscene2d.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickscene2d_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3drender.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3drender_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_accessibility_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axbase.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axbase_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axcontainer.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axcontainer_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axserver.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axserver_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bluetooth.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bluetooth_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bootstrap_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_charts.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_charts_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_concurrent.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_concurrent_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_core.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_core_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_datavisualization.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_datavisualization_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_dbus.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_dbus_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designer.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designer_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designercomponents_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_devicediscovery_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_edid_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_egl_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_eventdispatcher_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_fb_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_fontdatabase_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gamepad.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gamepad_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gui.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gui_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_help.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_help_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_location.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_location_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimedia.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimedia_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimediawidgets.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimediawidgets_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_network.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_network_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_networkauth.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_networkauth_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_nfc.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_nfc_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_opengl.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_opengl_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_openglextensions.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_openglextensions_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_packetprotocol_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_platformcompositor_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioning.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioning_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioningquick.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioningquick_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_printsupport.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_printsupport_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qml.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qml_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmldebug_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmldevtools_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlmodels.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlmodels_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmltest.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmltest_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlworkerscript.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlworkerscript_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qtmultimediaquicktools_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3d.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3d_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dassetimport.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dassetimport_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3drender.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3drender_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3druntimerender.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3druntimerender_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dutils.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dutils_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickcontrols2.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickcontrols2_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickparticles_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickshapes_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quicktemplates2.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quicktemplates2_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickwidgets.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickwidgets_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_remoteobjects.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_remoteobjects_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_repparser.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_repparser_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_scxml.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_scxml_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sensors.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sensors_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialbus.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialbus_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialport.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialport_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sql.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sql_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_svg.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_svg_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_testlib.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_testlib_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_texttospeech.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_texttospeech_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_theme_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uiplugin.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uitools.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uitools_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_virtualkeyboard.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_virtualkeyboard_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_vulkan_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webchannel.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webchannel_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webengine.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webengine_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecore.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecore_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecoreheaders_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginewidgets.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginewidgets_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_websockets.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_websockets_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webview.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webview_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_widgets.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_widgets_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_windowsuiautomation_support_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_winextras.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_winextras_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xml.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xml_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xmlpatterns.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xmlpatterns_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_zlib_private.pri: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qt_functions.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qt_config.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\win32-msvc\qmake.conf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\spec_post.prf: +.qmake.stash: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exclusive_builds.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\common\msvc-version.conf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\toolchain.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\default_pre.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\default_pre.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\resolve_config.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exclusive_builds_post.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\default_post.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\console.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qml_debug.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\precompile_header.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\warn_on.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qmake_use.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\file_copies.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\testcase_targets.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exceptions.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\yacc.prf: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\lex.prf: +..\Exam_proj_QtLess\Exam_proj_QtLess.pro: +P:\Launched\5.15.2\msvc2019_64\mkspecs\features\build_pass.prf: +qmake: FORCE + @$(QMAKE) -o Makefile ..\Exam_proj_QtLess\Exam_proj_QtLess.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug" + +qmake_all: FORCE + +make_first: debug-make_first release-make_first FORCE +all: debug-all release-all FORCE +clean: debug-clean release-clean FORCE + -$(DEL_FILE) Exam_proj_QtLess.vc.pdb + -$(DEL_FILE) Exam_proj_QtLess.ilk + -$(DEL_FILE) Exam_proj_QtLess.idb +distclean: debug-distclean release-distclean FORCE + -$(DEL_FILE) Makefile + -$(DEL_FILE) .qmake.stash Exam_proj_QtLess.pdb + +check: first + +benchmark: first +FORCE: + +$(MAKEFILE).Debug: Makefile +$(MAKEFILE).Release: Makefile diff --git a/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile.Debug b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile.Debug new file mode 100644 index 0000000..3175bef --- /dev/null +++ b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile.Debug @@ -0,0 +1,180 @@ +############################################################################# +# Makefile for building: Exam_proj_QtLess +# Generated by qmake (3.1) (Qt 5.15.2) +# Project: ..\Exam_proj_QtLess\Exam_proj_QtLess.pro +# Template: app +############################################################################# + +MAKEFILE = Makefile.Debug + +EQ = = + +####### Compiler, tools and options + +CC = cl +CXX = cl +DEFINES = -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DQT_QML_DEBUG +CFLAGS = -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zi -MDd -W3 -w44456 -w44457 -w44458 /Fddebug\Exam_proj_QtLess.vc.pdb $(DEFINES) +CXXFLAGS = -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc /Fddebug\Exam_proj_QtLess.vc.pdb $(DEFINES) +INCPATH = -I..\Exam_proj_QtLess -I. -IP:\Launched\5.15.2\msvc2019_64\mkspecs\win32-msvc +LINKER = link +LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" +LIBS = +QMAKE = P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe +DEL_FILE = del +CHK_DIR_EXISTS= if not exist +MKDIR = mkdir +COPY = copy /y +COPY_FILE = copy /y +COPY_DIR = xcopy /s /q /y /i +INSTALL_FILE = copy /y +INSTALL_PROGRAM = copy /y +INSTALL_DIR = xcopy /s /q /y /i +QINSTALL = P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe -install qinstall +QINSTALL_PROGRAM = P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe -install qinstall -exe +DEL_FILE = del +SYMLINK = $(QMAKE) -install ln -f -s +DEL_DIR = rmdir +MOVE = move +IDC = idc +IDL = midl +ZIP = zip -r -9 +DEF_FILE = +RES_FILE = +SED = $(QMAKE) -install sed +MOVE = move + +####### Output directory + +OBJECTS_DIR = debug + +####### Files + +SOURCES = ..\Exam_proj_QtLess\circle.cpp \ + ..\Exam_proj_QtLess\main.cpp \ + ..\Exam_proj_QtLess\square.cpp \ + ..\Exam_proj_QtLess\triangle.cpp +OBJECTS = debug\circle.obj \ + debug\main.obj \ + debug\square.obj \ + debug\triangle.obj + +DIST = circle.h \ + square.h \ + triangle.h ..\Exam_proj_QtLess\circle.cpp \ + ..\Exam_proj_QtLess\main.cpp \ + ..\Exam_proj_QtLess\square.cpp \ + ..\Exam_proj_QtLess\triangle.cpp +QMAKE_TARGET = Exam_proj_QtLess +DESTDIR = debug\ #avoid trailing-slash linebreak +TARGET = Exam_proj_QtLess.exe +DESTDIR_TARGET = debug\Exam_proj_QtLess.exe + +####### Implicit rules + +.SUFFIXES: .c .cpp .cc .cxx + +{..\Exam_proj_QtLess}.cpp{debug\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fodebug\ @<< + $< +<< + +{..\Exam_proj_QtLess}.cc{debug\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fodebug\ @<< + $< +<< + +{..\Exam_proj_QtLess}.cxx{debug\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fodebug\ @<< + $< +<< + +{..\Exam_proj_QtLess}.c{debug\}.obj:: + $(CC) -c $(CFLAGS) $(INCPATH) -Fodebug\ @<< + $< +<< + +{.}.cpp{debug\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fodebug\ @<< + $< +<< + +{.}.cc{debug\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fodebug\ @<< + $< +<< + +{.}.cxx{debug\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fodebug\ @<< + $< +<< + +{.}.c{debug\}.obj:: + $(CC) -c $(CFLAGS) $(INCPATH) -Fodebug\ @<< + $< +<< + +####### Build rules + +first: all +all: Makefile.Debug debug\Exam_proj_QtLess.exe + +debug\Exam_proj_QtLess.exe: $(OBJECTS) + $(LINKER) $(LFLAGS) /MANIFEST:embed /OUT:$(DESTDIR_TARGET) @<< +debug\circle.obj debug\main.obj debug\square.obj debug\triangle.obj +$(LIBS) +<< + +qmake: FORCE + @$(QMAKE) -o Makefile.Debug ..\Exam_proj_QtLess\Exam_proj_QtLess.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug" + +qmake_all: FORCE + +dist: + $(ZIP) Exam_proj_QtLess.zip $(SOURCES) $(DIST) ..\Exam_proj_QtLess\Exam_proj_QtLess.pro P:\Launched\5.15.2\msvc2019_64\mkspecs\features\spec_pre.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\angle.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\windows-desktop.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\windows_vulkan_sdk.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\windows-vulkan.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\msvc-desktop.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\qconfig.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3danimation.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3danimation_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dcore.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dcore_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dextras.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dextras_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dinput.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dinput_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dlogic.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dlogic_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquick.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquick_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickanimation.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickanimation_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickextras.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickextras_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickinput.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickinput_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickrender.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickrender_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickscene2d.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickscene2d_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3drender.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3drender_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_accessibility_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axbase.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axbase_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axcontainer.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axcontainer_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axserver.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axserver_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bluetooth.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bluetooth_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bootstrap_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_charts.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_charts_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_concurrent.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_concurrent_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_core.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_core_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_datavisualization.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_datavisualization_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_dbus.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_dbus_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designer.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designer_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designercomponents_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_devicediscovery_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_edid_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_egl_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_eventdispatcher_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_fb_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_fontdatabase_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gamepad.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gamepad_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gui.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gui_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_help.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_help_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_location.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_location_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimedia.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimedia_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimediawidgets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimediawidgets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_network.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_network_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_networkauth.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_networkauth_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_nfc.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_nfc_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_opengl.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_opengl_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_openglextensions.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_openglextensions_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_packetprotocol_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_platformcompositor_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioning.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioning_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioningquick.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioningquick_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_printsupport.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_printsupport_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qml.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qml_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmldebug_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmldevtools_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlmodels.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlmodels_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmltest.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmltest_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlworkerscript.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlworkerscript_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qtmultimediaquicktools_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3d.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3d_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dassetimport.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dassetimport_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3drender.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3drender_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3druntimerender.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3druntimerender_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dutils.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dutils_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickcontrols2.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickcontrols2_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickparticles_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickshapes_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quicktemplates2.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quicktemplates2_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickwidgets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickwidgets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_remoteobjects.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_remoteobjects_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_repparser.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_repparser_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_scxml.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_scxml_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sensors.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sensors_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialbus.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialbus_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialport.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialport_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sql.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sql_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_svg.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_svg_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_testlib.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_testlib_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_texttospeech.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_texttospeech_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_theme_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uiplugin.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uitools.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uitools_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_virtualkeyboard.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_virtualkeyboard_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_vulkan_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webchannel.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webchannel_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webengine.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webengine_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecore.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecore_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecoreheaders_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginewidgets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginewidgets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_websockets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_websockets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webview.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webview_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_widgets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_widgets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_windowsuiautomation_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_winextras.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_winextras_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xml.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xml_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xmlpatterns.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xmlpatterns_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_zlib_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qt_functions.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qt_config.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\win32-msvc\qmake.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\spec_post.prf .qmake.stash P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exclusive_builds.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\msvc-version.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\toolchain.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\default_pre.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\default_pre.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\resolve_config.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exclusive_builds_post.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\default_post.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\build_pass.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\console.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qml_debug.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\precompile_header.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\warn_on.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qmake_use.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\file_copies.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\testcase_targets.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exceptions.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\yacc.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\lex.prf ..\Exam_proj_QtLess\Exam_proj_QtLess.pro + +clean: compiler_clean + -$(DEL_FILE) debug\circle.obj debug\main.obj debug\square.obj debug\triangle.obj + -$(DEL_FILE) debug\Exam_proj_QtLess.vc.pdb debug\Exam_proj_QtLess.ilk debug\Exam_proj_QtLess.idb + +distclean: clean + -$(DEL_FILE) .qmake.stash debug\Exam_proj_QtLess.pdb + -$(DEL_FILE) $(DESTDIR_TARGET) + -$(DEL_FILE) Makefile.Debug + +check: first + +benchmark: first + +compiler_no_pch_compiler_make_all: +compiler_no_pch_compiler_clean: +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: + + + +####### Compile + +debug\circle.obj: ..\Exam_proj_QtLess\circle.cpp ..\Exam_proj_QtLess\circle.h + +debug\main.obj: ..\Exam_proj_QtLess\main.cpp ..\Exam_proj_QtLess\triangle.h \ + ..\Exam_proj_QtLess\square.h \ + ..\Exam_proj_QtLess\circle.h + +debug\square.obj: ..\Exam_proj_QtLess\square.cpp ..\Exam_proj_QtLess\square.h + +debug\triangle.obj: ..\Exam_proj_QtLess\triangle.cpp ..\Exam_proj_QtLess\triangle.h + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile.Release b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile.Release new file mode 100644 index 0000000..dd0adc7 --- /dev/null +++ b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/Makefile.Release @@ -0,0 +1,179 @@ +############################################################################# +# Makefile for building: Exam_proj_QtLess +# Generated by qmake (3.1) (Qt 5.15.2) +# Project: ..\Exam_proj_QtLess\Exam_proj_QtLess.pro +# Template: app +############################################################################# + +MAKEFILE = Makefile.Release + +EQ = = + +####### Compiler, tools and options + +CC = cl +CXX = cl +DEFINES = -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DNDEBUG -DQT_QML_DEBUG +CFLAGS = -nologo -Zc:wchar_t -FS -Zc:strictStrings -O2 -MD -W3 -w44456 -w44457 -w44458 $(DEFINES) +CXXFLAGS = -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc $(DEFINES) +INCPATH = -I..\Exam_proj_QtLess -I. -IP:\Launched\5.15.2\msvc2019_64\mkspecs\win32-msvc +LINKER = link +LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT /OPT:REF /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" +LIBS = +QMAKE = P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe +DEL_FILE = del +CHK_DIR_EXISTS= if not exist +MKDIR = mkdir +COPY = copy /y +COPY_FILE = copy /y +COPY_DIR = xcopy /s /q /y /i +INSTALL_FILE = copy /y +INSTALL_PROGRAM = copy /y +INSTALL_DIR = xcopy /s /q /y /i +QINSTALL = P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe -install qinstall +QINSTALL_PROGRAM = P:\Launched\5.15.2\msvc2019_64\bin\qmake.exe -install qinstall -exe +DEL_FILE = del +SYMLINK = $(QMAKE) -install ln -f -s +DEL_DIR = rmdir +MOVE = move +IDC = idc +IDL = midl +ZIP = zip -r -9 +DEF_FILE = +RES_FILE = +SED = $(QMAKE) -install sed +MOVE = move + +####### Output directory + +OBJECTS_DIR = release + +####### Files + +SOURCES = ..\Exam_proj_QtLess\circle.cpp \ + ..\Exam_proj_QtLess\main.cpp \ + ..\Exam_proj_QtLess\square.cpp \ + ..\Exam_proj_QtLess\triangle.cpp +OBJECTS = release\circle.obj \ + release\main.obj \ + release\square.obj \ + release\triangle.obj + +DIST = circle.h \ + square.h \ + triangle.h ..\Exam_proj_QtLess\circle.cpp \ + ..\Exam_proj_QtLess\main.cpp \ + ..\Exam_proj_QtLess\square.cpp \ + ..\Exam_proj_QtLess\triangle.cpp +QMAKE_TARGET = Exam_proj_QtLess +DESTDIR = release\ #avoid trailing-slash linebreak +TARGET = Exam_proj_QtLess.exe +DESTDIR_TARGET = release\Exam_proj_QtLess.exe + +####### Implicit rules + +.SUFFIXES: .c .cpp .cc .cxx + +{..\Exam_proj_QtLess}.cpp{release\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<< + $< +<< + +{..\Exam_proj_QtLess}.cc{release\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<< + $< +<< + +{..\Exam_proj_QtLess}.cxx{release\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<< + $< +<< + +{..\Exam_proj_QtLess}.c{release\}.obj:: + $(CC) -c $(CFLAGS) $(INCPATH) -Forelease\ @<< + $< +<< + +{.}.cpp{release\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<< + $< +<< + +{.}.cc{release\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<< + $< +<< + +{.}.cxx{release\}.obj:: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<< + $< +<< + +{.}.c{release\}.obj:: + $(CC) -c $(CFLAGS) $(INCPATH) -Forelease\ @<< + $< +<< + +####### Build rules + +first: all +all: Makefile.Release release\Exam_proj_QtLess.exe + +release\Exam_proj_QtLess.exe: $(OBJECTS) + $(LINKER) $(LFLAGS) /MANIFEST:embed /OUT:$(DESTDIR_TARGET) @<< +release\circle.obj release\main.obj release\square.obj release\triangle.obj +$(LIBS) +<< + +qmake: FORCE + @$(QMAKE) -o Makefile.Release ..\Exam_proj_QtLess\Exam_proj_QtLess.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug" + +qmake_all: FORCE + +dist: + $(ZIP) Exam_proj_QtLess.zip $(SOURCES) $(DIST) ..\Exam_proj_QtLess\Exam_proj_QtLess.pro P:\Launched\5.15.2\msvc2019_64\mkspecs\features\spec_pre.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\angle.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\windows-desktop.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\windows_vulkan_sdk.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\windows-vulkan.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\msvc-desktop.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\qconfig.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3danimation.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3danimation_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dcore.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dcore_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dextras.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dextras_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dinput.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dinput_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dlogic.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dlogic_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquick.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquick_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickanimation.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickanimation_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickextras.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickextras_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickinput.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickinput_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickrender.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickrender_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickscene2d.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3dquickscene2d_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3drender.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_3drender_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_accessibility_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axbase.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axbase_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axcontainer.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axcontainer_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axserver.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_axserver_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bluetooth.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bluetooth_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_bootstrap_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_charts.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_charts_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_concurrent.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_concurrent_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_core.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_core_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_datavisualization.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_datavisualization_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_dbus.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_dbus_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designer.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designer_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_designercomponents_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_devicediscovery_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_edid_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_egl_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_eventdispatcher_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_fb_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_fontdatabase_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gamepad.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gamepad_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gui.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_gui_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_help.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_help_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_location.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_location_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimedia.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimedia_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimediawidgets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_multimediawidgets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_network.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_network_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_networkauth.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_networkauth_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_nfc.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_nfc_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_opengl.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_opengl_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_openglextensions.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_openglextensions_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_packetprotocol_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_platformcompositor_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioning.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioning_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioningquick.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_positioningquick_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_printsupport.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_printsupport_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qml.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qml_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmldebug_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmldevtools_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlmodels.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlmodels_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmltest.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmltest_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlworkerscript.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qmlworkerscript_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_qtmultimediaquicktools_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3d.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3d_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dassetimport.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dassetimport_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3drender.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3drender_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3druntimerender.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3druntimerender_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dutils.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick3dutils_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quick_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickcontrols2.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickcontrols2_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickparticles_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickshapes_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quicktemplates2.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quicktemplates2_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickwidgets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_quickwidgets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_remoteobjects.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_remoteobjects_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_repparser.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_repparser_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_scxml.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_scxml_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sensors.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sensors_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialbus.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialbus_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialport.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_serialport_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sql.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_sql_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_svg.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_svg_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_testlib.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_testlib_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_texttospeech.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_texttospeech_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_theme_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uiplugin.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uitools.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_uitools_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_virtualkeyboard.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_virtualkeyboard_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_vulkan_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webchannel.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webchannel_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webengine.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webengine_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecore.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecore_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginecoreheaders_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginewidgets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webenginewidgets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_websockets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_websockets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webview.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_webview_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_widgets.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_widgets_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_windowsuiautomation_support_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_winextras.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_winextras_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xml.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xml_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xmlpatterns.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_xmlpatterns_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\modules\qt_lib_zlib_private.pri P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qt_functions.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qt_config.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\win32-msvc\qmake.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\spec_post.prf .qmake.stash P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exclusive_builds.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\common\msvc-version.conf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\toolchain.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\default_pre.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\default_pre.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\resolve_config.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exclusive_builds_post.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\default_post.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\build_pass.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\win32\console.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qml_debug.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\precompile_header.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\warn_on.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\qmake_use.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\file_copies.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\testcase_targets.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\exceptions.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\yacc.prf P:\Launched\5.15.2\msvc2019_64\mkspecs\features\lex.prf ..\Exam_proj_QtLess\Exam_proj_QtLess.pro + +clean: compiler_clean + -$(DEL_FILE) release\circle.obj release\main.obj release\square.obj release\triangle.obj + +distclean: clean + -$(DEL_FILE) .qmake.stash + -$(DEL_FILE) $(DESTDIR_TARGET) + -$(DEL_FILE) Makefile.Release + +check: first + +benchmark: first + +compiler_no_pch_compiler_make_all: +compiler_no_pch_compiler_clean: +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: + + + +####### Compile + +release\circle.obj: ..\Exam_proj_QtLess\circle.cpp ..\Exam_proj_QtLess\circle.h + +release\main.obj: ..\Exam_proj_QtLess\main.cpp ..\Exam_proj_QtLess\triangle.h \ + ..\Exam_proj_QtLess\square.h \ + ..\Exam_proj_QtLess\circle.h + +release\square.obj: ..\Exam_proj_QtLess\square.cpp ..\Exam_proj_QtLess\square.h + +release\triangle.obj: ..\Exam_proj_QtLess\triangle.cpp ..\Exam_proj_QtLess\triangle.h + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/Exam_proj_QtLess.exe b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/Exam_proj_QtLess.exe new file mode 100644 index 0000000000000000000000000000000000000000..24ae622f122b782bb46ff87f57ab4a1e820d61f3 GIT binary patch literal 47616 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 literal 0 HcmV?d00001 diff --git a/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/Exam_proj_QtLess.ilk b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/Exam_proj_QtLess.ilk new file mode 100644 index 0000000000000000000000000000000000000000..0c27bc47a1c2c84c9e66e007c4e4def07216141e GIT binary patch literal 514104 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%0Dvvz_|4`?U(k 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�L1so7C{uh2TANXxmj z<=2rXyN%ImCAMUW<5Z>Qxd+pg!V)zOX(b)`S;g~m)tubCTp3rLPW(ah6W!yBZ=yoS zWywqr=C$Kwf#gf#(&LlfiAzrsh#X5>FrOJbnYBEaxQ7w98J}glbN{iLcsa`jNxB*1 z&5Jk4WOm#*IFj(Hv>c_3qiO!=0p=%LL3e&h@|kvA+^qt12gs`LK={eghdcg|ICc8F zFn>MSoBK9(+>Bj1pTAaTo%m{+JFdPL9%U`cVVu5bX|^7yoAA4)Lu9@*8NOX(OuY=6 z&k|o96^0j{Ut@R#e@09^I=v}!YCP?5JXVIn>Up>0@l|z^8PlII3#0gkx0?uN~Iu=}-?P_Vo2or7K;1 zPn%#<-*tL>HXbWOoz?el<;PdwM>&U!=sWAdK-M7S=62R?n<;Cr9tPF>Zl%Mjhh~kS zvwGiC@tJyW`jvt8ygL!B$^+J#Ee=PNQe@ep4N#`}TEY}m# zEh}o9R<&4eOy9$D(@JQ|TdUl;T?xn3P1{XVQ@puC3=piaOj~Zb!)9O=vK?3R#1fX7 zOZK@@Q~!2YT3^RHxFhk>uadB$daP)XY$|Pk=|TeT_eLF&yCiRc06jag=12^ zc$~iO7|e>NGG38PhqiyQ!)TNC*zBDa3iPdme)1al-ptTZFkx`xMVa|S=;D^wb5;3?7Wv( zp5EG$!0JM*MZ7%j(;+003+>8s*D?Jn@y4N)?I__{$Fi+%Y^-Fe%jK82NhAO9#wz7R z@l@QTk^idl+Pai*(#ZevayKef#s{U3OOAl{=xO3>1p^DZ$Pf3uOjn{>GG5luPSe?OT-$RumNgnZj=fyeI0pI zxkVGJF*@6T)ZB>rz~8b)cQk2=Wy^w;bWcj@Ik|piT!-OLqD}iX^C}EFBv`jEgqxM+ zob`!4m4tOK6MIVP8(R`E8LI=ySN|c;o9{73gb9ucXKh_6NlhQi+pR5GiN<U-;y$=W$GVug)V2!GQgL51t36G?O}k=(T1G|GgVIo*US@%hq0Q|`Lo z&8((1wAR(>i7at{-~KwBRVEbI{o`Zw_gGc~z14EWO{Hfj1`k#~)xxjH1%9)R$q%2-x&bNOl|lfnbCSXt`^t>onj%G;M7*8^^)Jf8FDDy{Qt znMG)>s99|%+Kk0wF1{@m0YIlaJTPn2hoHtkSbPX{}$*5$xnb1YP_bDf}r~ zG*>3XO&AiY2}9}?$Dylp*(JZii`E9F4zZVG;l*RdblsmhuCJ$usj|wP@3`Y!Gd39^ znUzub`-I2|vL561GspE4f6G*ncERJ}vt}*JEK zIsX~df32_3QFURqS&|Lxx?F!-lm1Wx)OW2f!UGWV5$Rp8)+a>Uzhs`*4O{k%=rnCt z*kW+myqenz)LZ74T%K=b?}*`fHv;TX7KRscPtlH~*UtT{S!dfnJzmtY=VV91HoQ1n zGh>P7?R@r?bSFF`vk~ciArIy*hixj{SS()OgaKD|UE^|AS}QU5#gfFhsT(M9r*~uI z(HZ2WkMsVUn;Tcf{PpQ*)E;wkbc=}p1f4Ir??~sXGk<5uL8Z!m0sphKf4TdpYyRuv z4b_PnyrQ37I~ciR#kPYnW1d@R1NOAXJQX$ZiWSL0&vYwm58Sy1CaxpbvZM;N zDmEalJ5-Y8P7G0k-9}Q}`V3awVCj#z;fh{K#-GN(MZ2G@-A6mPcV}qQ#WEc~Q_;t5 z)IqV^WBiq{^C=zI*5)|sL+jYen2K#I{-#NXg=a61H&wNjXni#a!*_8b{SJA2ZdC6> zzK=3)C=1I?U3qm2?NqurYB|5&jY8-h!xy?6eEKwsHU8=KO*)M9X*6!!a3mfh2a?8k zLq%QrN}0vtDh)aU5{6A*$+#y`%am9>#!_N@MLuQTeFpq0E}0g~Ta?8*Nq%8gju<72 zWphqmF}BKu#V5-WscL__;MVISEY=f)(ryYrl&v0bX`iKt)NegmD(RTT$Bt>pF3i!3 zH)4&7H^qNR$3|86Sm7_P)Oi+j`%2O|Xo%d6wNA@Uo{m%O&!pCTwY$Wf^ek0 zz7TgsZltC8CCOEWNxFV-z}-lAOP462CV2t^lQ`vGu63;R_AxeJKEW1yFR7E_Zlmok zP1O;%qpUO>>@Xo&SBi%bPnTBYT25*w!l%i`zj6~?hbrUCTdSATYlkVu zPn3Sj!6Egoiux#ZP~tK6ZclXLNAhICmpd54!cW#~kvq3N-qz6%mcCN0L_a3`CNI#( zNe#QDj`jeTHCpr8IZo#J=G{B^lcwCa}WZE+5qlCM+b1rFf^F9z+4)mA8 z1>u+59~w^o0zbCeOd1|qDwD|*Oj(O+JdKWyS;6Jq~!~8Kt9d+{t}= zY2D?@C|vaEz#;2M@G|PtZqB@tSZ-TIyh-*96~`;s7A0;D#?1wiDe8i9Bg5W!Tf(@I zFywx~8l}7JFm(NGamQ~QkKimV$y$;dV?)BCtWpVE#>0=`x2UwRD3+hQgjLbprP;Yf zrDD#{K!!ahO83f`MC<^>kBq^e5I;D_G9V|bG%J>qTasOzM<~UvF6Q6_>|oi3lDky- z5xqEpZ^^(hXf9=g3*pIFRHbdvqL@lvR&j3Dl*uZd`z4&k1t;YdsF}T8y@S+Vr>7v7iskE4u zLfRdg3Add=XUh0d_?I8XK-`PJvj}@p=HwY!{FbzzEoo1~5TU(o@z-K4XD_((Fj5o} zW<=7W7m&oC$U!p5qC(uUH^YtZ&q8yH%nnkeMPxAPj~3dq&+b3ub4km>g2Dne)MS-1 zxK;a$DA-tP_d`70_A)>uIeqEQG{(!)?#*;_ne&8e81GmD(LlFxTrTeJ=e!IS)d@HC;BD z3}GPAq5r2khvvH;;F&l#5a%cpr!4XX1ZLddgZrW68JA2XH78o>(AUtlsx*eEoOuw( zjm&k=W&B59F_u@770X(Zm6tENGFDQOJ2^?0_NW7Ws_0wSzvM5Kp0#AD75?t&=!7rx z+7iEv-#Yl8mWc~V!yq+}oWb7`Pb~)e4B7tkwng?TJ(5>5G!dXT-y1%464dk zs`*3-Q|94jXg~GtmM7{>EmMf@*h=WpB%OUwF^_Ka!+Pk4_|v3%_-@{$J?Z0k4Yahv zwGFND60Se2sKKwaWBcNUjecr?!R9J9Zc5$mKjZ+u7ZsQ0#}=357PAkoP;CP&$|}xU zlXVn{WOUo>kQ))R07tdB);CpLWr1pN`aFhqD9rC;VCi;7Cn_{3$BpC>ySQ`_-t#GMW}uV8MWq(QYy z@?DzXtkUfHaKN+$=HAP=%A_Z|kl3li0U+$GrzE}fh+c>ocaW1#Q{73r2dAdHN)5qXH9$QaG^B7i@~-QN z+8)D&c8#&-#zy2`oQbT)a8p#Gq-TC^7Tb&o*YHuwW0;qgr0({@vfNfuHlABnztg!k zW3)~9+b^YjY8%*pSzF0as=1s=1eR&c1h?UTXZ$mIQus2#q`4*0x;(~6BUUa9Po@bs zCN1MgcYu4XU&|ATa#giGKVmx&?x&K85Z8}MS3lap06#Xjyms@_uDOq~qLPrI6mrRsNJe-3+1Q2M#%GDDp>NrmsUIO617`XhuF=dJ%mX=*-r~nyMR9oG3SIA*A=a5Onqti|&sil#bD7CJ;zoyaFNxrIEYt8pTL$dIb0iUEDY~#D|Pudpw zzKk(}{=UY1&*8f~>U)Lj-n1Dab3;;j(GXwdDi8@%{6;8G?N@~lw+&XbMVlJ>vw{UX-JB<;-!%CNlL`!4sOd*9cr z@xI@JAM-t7xxZ_K^&R(P^&CVgGP#?Lsws#UFxPgpCPip zm$R&6VB*lMn4l>WtX`Qp{>{pd_QK{ondDc(+|*cCTfqVjQl)Q$md~ttx&6lZ$hMaz z?JwT2vbMQV9o-Q#-jj0A#D_lvtb83G>6CuW-sm6(y~U-Ai=+#BlEfqWQ-!stFlRB#^Ae8CLF8K# zFy17Db{|pt)ZJ(%{-rOdm+e(Nvxq0ZC^aTY^Hjcb5ozP9Jo;StF>S>*{yq?0r+R=g zKW^C1cO$cMcBQycWt5y6_WEVlp|3o;8WCb47{mIal9z6PO?*eATRgXxBC2PV#Y_Se_$GB+X1Im)ffeU1ZO zTdmzz*3~Hu$xysS6teVdGH~~?3Rm^-&722};)Z*6-jB!4>5?v07b&n-dMxfl2qq$J zj6K}-zDe5Mh;;5^oNvYAt>v6DaO3_&#T^)~rR6GB-4hW&+(7p$tc z2Z$dX@WHy>ypDP@z^Ov+W9(klQew`I(C3V88kH}=)W=+#A@ChXw-@*7=tmh z9`+LTYJgLa$aZJkO5@9uW1*?Y{s6-XeYlv{LDPa_thvOomobm z@xnIlm&X~n#8W-MKNH91bbf?ozEO*De;jqDLmZZSGh#9BZ%OCALk&*yXA?5lA$)se zW93)QS?$EFH>xpu>}K1Kr5ebB$CGiigzS+*4RBm_BY7L|>@$Sw;%q$HojX)*kHtgN7EIRe)=jkB zb)x4zKQnDVM$fCUxld}b8_@BLn<0K?w=}gT8ltnux#m)?jV1Q=(VWGz$659`(VQq# z*U_l^?}@otS+NC7q~*jGL{E{rvyW;GYRKsB&N)l6^_o%U)QnhWPOM;YetxWU{^Ej# zdeUvBcAtTsk@-$egNw~h)W*GZ)Hb$smV!B1MY&l^Ov1HMTA-)N(WRtwuFiWCWklXN zUCL7G&klnV%uKl`)Z<-)$`7NA;b zTZia;@p77gDTm@jUADXMBvae&ded~x&+T0&-(UOlkBy`(CEj-0TN5uG8BSZnK-N~) zxG^&Pu`R<=?mGJ%XQIaI_Q2Zcjwt$%`ZGJzwq*1wZ)bH;DH2g3s!lG^Y5v&a)ohf~ z_6L`RKFFMmrb?0P%|Yd4&G3o-5;=&vdLgahqLKhq&QgLm{P&L$O41WR--xe?_Bp(0o7OTxDMmerH?0lY5&@fDQ}ru={!EvHsKgq zzd_Zzd2z1;rxwWaDsiIfu)L{4$v%9VH9^Ch=n*b&Tt$|CJyg=F%43Yh$4>fhqDv$l zYi-$=epqTVt;$ZqUN>ICPPWq~eMVkX>uJ|(OI{3LuJ!SS9S;>8DyA4?($m?Rrj)Cs zr)Z?4r{jE!kxip-luV`0zuT!)aw6en9BJ{+8ta<){;tw4lXrU5D2f7qMu)U19e>WE zk|o(iwBu=7@nqYv@jy2&cHzj{f7&&86Yoz{ym@R|aL4FHdKuWX1x3fGumWwMOg$i} zYOc#~Ln(Dr^53rNJuRoZ%Kt72dih**3X(3$%^3t=vpLWlq9`pUh3N?JDYu&WbHmN>Sui(kze66S_=J zwNV|V`6u@=)4rulOd7rCpQ|&nz6{2jw9-nqwat}PC%xu4HQCPlgN!b^haOnqV*-vZJV(KuJOSx5bSlZeE+XSQkwx#q->}u|w$|uW?re|V! zw$#p(l%BU@lFau6+l}y5@?GKf1s{mhk>7OLoD5H7F4}b^NiyR?`4iejS+TO-csvn(@2+JL3W6u zV_}K91FI{0T#UY~v2~%<8=|}Ejggkx!y+9?{)aNG@KPlftWl~vVEXNc} z<7#&st~d4`e3+I6k?w%GD+yQf*A&=)7mF6Aaj@kQJt1zRAe9&H9GuUzPw&HV{fNJ0 z-yn4#j^S~CB?~F@Jc0c~39km2egWg)d=|x8o6K@~uI%MY>V?6FTD-8dq1{r*T%*(v z344THep)X`I;DOLc6DkO)*xN?FRL=6gxLBeVVnF$`P-yFuSM4k7W~?Aw|(}h+xD{JZem})+~ez(|~7@p9I?y$x(`V-?arC%~y&R~atztv98Z)}ep zh$-)7@W7-sc&5(nPl=qBxjNdXJ(4orG{%x?Gmf?TQ^pd?l>1Wp^s@HM+E-n4N>x>c z{Scoi(+Gbj>vy_Z?aue&%$aZVUuJzPyaL^hS>O3;^kdrpWqK^H+JCFAn&H1a#y2*| zrd^xt^33!;xoy*J&xN1+xHJh-+B~oChb!z7pt&>wS`H02FA0} z5AfS&nlc_o`Z`-1HDT2mJ}jxlkh#2$>tz}L-8&l*a*e=|R2V@;x^<67!n=8B?y4yc6Zq{pgvR6IKOs}+uB3En2rm2T1 z!>Xj!pOKxL6i@w~ z7U=j7R_RmgP~Ff-vi9iaXBibn^{b^ISfcK1?a}0|$mYM>KDtXTN{NXbv0F|>@W88& zNh4y<-q^_FT2F6u+~;Y=f_~d0QzmVSCnfPjNaJJLs-;$$g!wS?9Chb3+^L^5`vFbb z{QCe*f0^i1|1jO&WaC%dDBCH|p3~)>@#{ve`j+m-Xb7f`Zs}x>EIG1uIJeC$^9j~@9=xWmkGHr1L zI}CR|T+V)Qd0a#UlykE8DpsRWy=-UAIcc-XXtX42zO)jiUJa&WF1jH(Z{qHA)!Wb1 z{T@b-49@hs_0O@`v$e@~kgDtPAgIS-`W8oPJ|t)0lHm+?%hH-3=y+GsT+Np`L<(Pa zcsASgHN+N2%CEzeX>4I`aY1fA+eW>9QBy?XOttATav(a=$U%qk4>VIAMV+_DUfW4z z_PA7?>md3@>fQ{OkGe%o_A~ms->bt{HIsF+zug9y-X}9IMkbcI^@syWI;})X?u>5O zZ0m*)yE;?f+SB$4v%UQ|Cg1Dac>{N73?G^`KQdf-*a;RDa+Z%<22F0=v=pATa_p<4 z7R6sxJ)N`pShxPUV~ceAb+k^f=T3ZmIkB-cvb{A$pQf`QNXh|OaohORd&<;&fXLej zufC<32@=y7*DS{CyZLQ~jrrVb?o>{ ze~6yqrpNTBitKpO&*6GC*VMTMTGrJrm6XvySbcG2%kW`s$G(%SVtV@^O6xB*eZY-&yQOF8OSfPG?|89HtJBPu5{Q6O`<0onrb8-IOGwSLWOE&GuZg{7ss?G9Kaa z%xqROY_oQ=d2I8>d(Q^7`GjqBf|p4;RH zo{!{~DM5NVl^JB;%xQ8?`UJN;DqKsGWV$!ocC(1Py?4iyy&RfE+pD)a>IDmX-9p>q znm$C7G|3zjHhxNno3j?Y@Y1#YY4$-FUAk?O;)kp=dDC{1Z=)}&RQUw0%vt5%slKqa zz1v1gUHg>^pB8J8+LGfM1ThIIWiRP?!K&A(7DvhcJ1n%;I?|tsXxjSzwyy8Q!obMZ z$CjToy;E;3u*q&8t=ep_PfDJQTn`SgFOk-6md<~)zmzw2B%Zx-@-TsDbjo6zAO{RY zF`r(b_1KY$x3iIx9bct0`Yl2^=y|&}k_W?^&h|E%dbfw0mQaiH({#EET(>>m<1;ed z-m!n6wjP@~D&xcDReeg%&A4rhnxGNBouJEgzAYJXc<8tU>teNUL}0bK$8ZYIwp@^vRX9fmVI|9Z!?yV_#vTAS)U-vLZP~F_ z^u;>bgmFr(m=o*2aRvVpLF*RzWQyEw3m1KZ63 zxo>vWUYUL9>Nux32VH)uv$(a4zl&IxxaUiZYx(=(?#@iWfPaNNhKywH3TzhZ|` z$2;N_EtBtG8@>E&dCQ4eN2538Sr7D|>bLxJ(yTH$DW|1uB{vAvmE|;6xaS^~&8tn! zZ(Uv%Z!527WKvNh7j{&~T3YMt+3`3zV{&HM^48kA%89w+0NUxX6BGIDu$jp15i1gn zP5g{ai)BuWO^(TI!Q_n0nX&0pxgQ4yY%eKOOLS$f)ySmA<){A-r9}85JdLojNaqh30MIl@1gTf7Vb6n=^v?ibnb zHlfLBHFEx_JezRHw)&Lkzsyf}HsF7OqgG0ULBdlR!~U7K@RY8P^U8*T5?(xmoZ*J2 z{L+6aiv06m=Be4y@xQ>;l(YzMzW74^mACts`R#uFlC#16BkjLAv&z_e(vT>Nt!ivu zQI3ES=zieep3Z-Di+hw#^G@V|Xx0D{Z8cnAk~kM?0yXP*7-KCp3Z-@obBAWqBg!086f4) zVV%w$yhQ$G{@|7yzpUkdp3_f0@N7gdSV~QKdOH6y3FS4UJ4pdZ{$)?kG~SYbx;W0? z7OhwF!H#o;(_c5xa{tx7DY@^B`meWd?&R{{c(CI0{#&Q=emAR2oUK~vErl_t ziIk_O%fFRNW@;0wcVg~!Uv0eO+(*u&{F&->+9!^G#Leh1XRzr^@D`f=^mP8I|1GUe zvUh!_vcOSwV1hcXO!0s%n$D)aho0-^b&3;FN`iXA2g44-ho0tvUPRuh43O-}JiWAi zA_Ht0bZ$E8>c`zY?&XZu`CrNh{ijRf-=5CDw>Yp9IUsow`w;2sNdBeDUv|i^-r>bF zZKvknGD_Kr9B|8Zoh1XJ>yJ5Qi?W4woS8e72cA*$PUL{dfb4fSG9c@mNf{WhQ}b_( zg?3{0RlOEl9+Q9R03`E&m@{D~>HvFXZfExeH^T#&cN0CpaNDVT;fK1}JKou>d2kVp zfVi=rp4Nj2?xc&CH?%hGL?Mvu$zEL}0}KnDQ_Cj2?B+Aik+bCG*%|Esw#mwLY$s-4 z)d5*EGWnPO-lRE4eM4p1ne7~>^IyaV{ijRf-<~f2z?G_<$Pme+oQGlf!7$0D`$uQ9RiQ zPcZveJdu1KaQd2i-OP{Ksk%bryiJXu+A~ugkHb(F}DI14)V~6=T?CtTB zZECp_S)gQr4IUm3m`<>GaFoY`W$-}8R`%25^+VrTDtA`xY#zwoW9c`Gj*z*c3BSB~ zft%L?XR4k@X<~x4w{?V`N03uaWOZ(5vO&p$oTo8I^MNDjoavw3d6CP9h0bSEVR%Gm z_V#>=7=AFJx>IKp%=$t4^@Jj4o11+#ks$4<{q%HQNE*I0@6oJz7Y6@lbm_70l&nH=oDu)bX@?JivdUb3kT=4{P(~ zY!l>wb=wH<@ zF*S2iMpj&rpTc$#o%bd39@=XH&0 zdt@*3PVIqpX4f*pxm{=YW8S(uW?0bU`c{m*E2^q@s*(+t&wZUUb-_o-wO~nt2i_=Qk+{7VVI{L@hAH?+E-z`u?kG zUD7XiWSI10-fKO@o~@qs(fcz^`ggW!SM{MC{b|zAaNc@Oc0L$r{q+5*)8DHqUid3d z4t>Um_}*GcJwnAZU5Er6ZomZl)FGq zwrHC!e^*r-@h4{hpJ>s(bNhGHnugFK`y}VA4(c%adZ7`gf_yW-8iT42}9cgEuB5F zq$S8MR%k)CjY5<2eLm(bd0<-3i9LDMC%hb?1=$1&Ey!L>Xj_=n5%H5SWlnhad3P+~ zrNWfKj})e%?RD*8PZ?SSnyj}O+O{|Udaj{Gq1{N}hF0AFwb6zqXK~3qlA#T`L2jaS zF%QM8=Bmcv9IQ*(Eh&vf1Wn92${Q*AI9HD2h?pgv@Osi(S~-Irik1Bk}!pKZ{06tONb->+9Qs$oVTH^+_&}~ekz(X2K{Bx zUb*Xp8HN^xX39vy9DeJ8ZyB1Lftz9Zn=}4XPrs~(X39_em7Or-dgE_1w7BK()GLmc zYOK;C=Z8(QXz}=7KR2|s(Cjep`(5Q^LzDfid6vKH_I>*bLzDBT`}IlYeZhOvziw!9 zw&W$2zh6DQ%9C9=!&}+|!?TYb9{C;PuL#;~i}ud6%e=J68D3{uwDq$ZhZ=v;@s6|5 zqU|%}pnn_MI%rcYTFn>#Lfg80*#hl8O%q*d?CQvtBYT$<7VXKS{_3>>a-N9j4#@*5 z-?K#%e?fLyLJP8C5?YXLkI;hbUW6886C$)ATM40UBM+wBg^{c8I|^>NdymXE8e*YnvSwq}H^pDjnxD{u z*207qv_>Q}xhv=!{2^(PN_pq=*Wby@Q8Zd}(}oM}@k3AihoQ-yRio#HX6t#m?@$EG zglTMgBuqIo;|CV)>DR}4`bF+P6n+?g#tugO$r+o0VL}t7Vf=mHS-6RxDi1;HLK3E& zjWI|2Lp^(IMnVf(OAwlL{$y@l;uD>BQv1lS@p9vXMpNd|?Eb`hXhuiM`=f2`qVkkK zIr|j#;uYS`DGc&1|BrWG` z*)Y%0f>X-WN30`ttoe**|H>e^rTzskTMEd2N0UvKjQK;b^I(eImaT1CTI2q z(SpY05~iFP801gRKn|kGJ)J=`Ir}4sCTBnf(PWQ)5KZpY38Kk4qd_#eizJ99XMF_G zQv%_CvH9zy$j2yI&kP0p+|Y4OJ=cWDLD=B^Zrc0lyO5r(!5n*1>Ses|xYa}BK>8eJ_#>(BeXy0`e^hPjcyj@LBl z>^-{Md?^-hPmj2dI??E8`KX`1ya$swLzB08gcji+L-YHS`x%31(SAvqKg^=tgK5i1 zaZs3YH$@Pw9YPRI?#~UPt%FfPwDkiV=Wy~Lb&8@=e&fIQmxqNn!WTKqQ284iRW$i7 zkI>{^9h=tv#2;@mv>IsAr;Sn$B+GlmpWNw=T85SprHk%8LX){exi2X?xF|Y--}CPM z^lRckXmTcz8((|$Ao-{tp~>A&CM|y24a1lZ#Z9{S=3~4j_G{^Aa<`xglRSugn@8f4 zJMw~Pa<5JhP0qXwqHP+fX@fHqub*gdyFucV_%{1!e_Hg)rH1wbG?&+|ze7HK?IA;Z z%g}U~KR^GF^@jEzXoL6>9XwdYH|K;k)GRl?0SrJ@IyLR3x1N97(1!VF-x=~=y`dcl zP4top^Wf&gJbz=M+3|gM>RIwrG@EDheY68N z=6+`U6+u%x(|pN%E<=WADlO&EsJdPr7Ok56Ekmn6xBcox zLpuwa)C1%1*O4P;8rp@>M1dLF>4$v$o}pa|%`S)YYA65I(607q9eH*Gw4nU`7+O&N z?tm7Qzq?F))LW6sqaU4ivq{TFLxZ0Z_5tJ8K5l56e6;+-6KY;j$u%@os1v1*DJ3qR zc!c)64$P~%P1r2 zPv^i8+VBwCXlM~4h{8_^v-r`|(9$knL>bxf*>z>Uk7o0%$Vap5%2JCaa(d8Pcb;eB zTjryExZ>8hq1E_kc6?1fnk_GFKHBYnR?{P@+}lHF7x`#*9@bhk=@;1XUFV}+y8j-l_(CKbr8)1^Mz`<37E^lq6&qid0(dn!X{brwzLUG4Z17ER`%-+gcBJYK4d z&V**l4^`ttW-fi+&@Q$73C#}kY9GxmzZ*hmH~Zo{_R9M=nfNyN{Mq&49?Ksh=N$Ir z$%h$#PlV83vci=9*;@;L>gDfsAI&b?w|q1^?;rSRw!hCpX#GflsSlDC+uuMR&CdI9 zAMKYPG%quGA00v)7eYJQM?2|`*-K5BQ=yqQT;|3vZ^~*mwE31lmL*eUsR){BQzPO* zKhlmZwP<4ufw$_!@OJ%WY?SvKcmL(5;zVeY4wV)sx>5Rf(-uAZIxj^V$J_W5{qkDm z*Do8|1dAr}9k0IUEV52)u>%aR|+!t_1m$bKQez-dqW?42u;q8HtF>HlRFNAXj?*PTSI8uLTDd{(4-Lz zN{ifq7etf$j)Q1&4|@p&?(UKksWk_+$U*hhx+`@w`l(QS7y=t zb-Kx-`O|W~MH}mj?>cCPpZ>nax)7S2KNsY0eF#nVm)r8Qz^|&-)wuSg> z520NYLR%X`yDo&bE`)YV2yJ}`?XD2o#t_=35ZdMt+6y7HEg`h6A+&8Fw2wn*B4kFc z{r%7WA+*6Ev=Je+NC<602rVOoHp9@UE8~52GRKuJ%zS7;X^{g=gJ_A6_|`%T%EN8YWPUGQS~iBzejgI%wh(`N zPzXVJ7zIt{A=9Ph=n#KVX#B6r*57w4fMD`>G;YizWm^et1aFCNq9O1Wn%HDSc&DS? zV1?=TcLy|6wtm`XXe#f>pue4d9h%BJG=JOwFKARjm6l1o%_HfQLsn2fX=(kT8Gicx zje<5fz~7P3Od0w8odC_qlApE|+Sq_F*M!h+fJRkHn}=JV?Gr%z1+<{N-xorAG$hRD zLujvt(6&JfDx*(BX#FSz;iJfzpP!SV8QJyI=0giAzoj9x8fZZ>u?CvaS^oI04WZou z&D0~mzu!RHCm??>Knu#>KcNN5#HS`q>WbZl(?wQ~D-+Qan<$~-&GcV7&>|tUj1XEh zfJQe;JxlpF%Kt~WKh?iNlljl~z8z_MVHGn7nppOkv$lpcU@N1(_4U5p#3I)K^=&ur z+t0|j>#m>o?M#$}`)zmc+e-+5`)v>J+lhqbe%sUg*5vu^?|nNBcQPj`k4c}rGn{fL zeK}S7INJOZoP1WSPGKk5SDkMhba zjP8@!=lDMPeHQgOvCm@bza@Q^^(nXh>&uR`J&8jksvos&6v}TnyLJ1*EA!v}`mY0c z4?uzrz{P&N_vLp#{!2c62thH>{^Xp*r?Z)ldI`+J`PJY(@J)E}8kmhB-Hw}Q=x6Os zQYKUBzXqNL$Ix%N9J~u=A-tD@zk_+Shd%)CfK#Xpa_`c<=!9zU7&sikJOexk4#B3c z89W1yp`5M++rT1h_Pz-|0CQ2!*Mrx=CD`Qs9ZaDjod>ppQWn$i0E4NNl2%FQ_Yper zBW~X1yX2*aoZkvQgLVb^xq-Yr!XoyIynjO@b^-GA2#7$R!#f){eZU0VET$1Sg>Y{I zv*1-R;fa6oEAAys@ngaef8t-_d1@r~dng)NTb6LX2~Om16TbMBIK=JTv8n0$9l!U+ z?-23B+k}4=e{UdPa|zp|SHh9smjQ`W{79NiUL~!PE)#~tFJXv(ldg1Wl6+1bm*iDg zdQ4hu-c%5N7=M03-4>qwXN==i@OLyq9)u6@$fVDd$E(mJ4-%f_PxvNzmi$T{ghwX7 zQnrT?rsTVhx5>Bg?%+cm=j((ujQBds`{{&Zv7)@LtTbNVR94rp;w!m1GpBNY-?0;C9-Emnaq5g?vnFOupOHCn zW=7Vu?A)1i<{Ud?@>!D-^-ccpw&!j@|E+*!-X&WVO}!LwO^>EmUrgB3snx;O^zbQd zwVVv!S{W~^Xh~GcJziZrP|bKtJycE3(5h%`j`QZ~p+wE3nzW}swKP|Fmzjx|l|)|N zoM>$-6H0Z9zQD}8z^c5ZJ}{izHZCk{D6h*Z%4;#lzR8JiEtMoNz z!(6P^F)j7AEfqR7?s11H$NY6GU0i<2Eo~}YJ$vq+DVo}rM032nzL(^su~$Q{ZEWeK zbhmNUctdM%aiy(1(O6$w5hC}U$!mRiMN%-jT^Ukg}m9&M!beW21vr8^H*^l%t|4U1N7AEVQ7hycp#YO5PUIFyo*G(o`R29fX`%1B~$ zQ@pEw)5pEMyrnxKaDit9mmj;g)U=d0)pjE_l9WVCB_Z@qZEw@5B!X_-0^6a7r*0|K z{iUv)=4x8Fj-3xV5VhBG@3wf$TdR7DyR>>zg1rVav^3l7A zZ$mojVvP+IqCa{}s8yP|hPI)qR(d17qm_vy-c}KBO7v3rZs4_z4c+HUJxp$t?s1QC zcvY{e{I;s{ig=<2Q|tAYdPfx6^kpr*BniD6x@e6U-9gT5@1^wDGFQN;qPe$%Z)~Yr zRoQ)M>182tgYSMaP0Q^zemz;K3DJzax~(YCj?8QIn(}QUd~Q(-9DD@NE$PZsmU7Ql zMK6h_bborL4^g2k+PboCEl}vWl;8=7)QstSJJdW? zQgUh=+<9ySXZ!iXlsPj+&2e?vc^5g8W-=qbvLV5A#L6zG!On`wK&*vu~92Ky#8SHa>sihcbv0KQMDp&Az4b55qmvE-_hAp7Is-@cPH|^ zHhlYpPgYpG)ti_Rfi7p$mY-x*a8-3sLQW;9x6Nm~U zIcN+DstXd6di8afj06YPVF}E;@hfckD>yt;y-c@9U9A~hvw{P%66Re=wy6cD zu7=7ws_Bk#%BrXhjmldl2V?gyyB3b!lB5)$dy7=p^JNF* z6<&FBwZ2$=#{x2e#@mpA^4f+SluIu?G#%ZMB|AA%=^7hYpRe124w;uA@8bC#<4<#< zf_|dDcXr2u@CrRqTUVP{?Oo&B_0VilOf)yNR3w_~y4=JYmdc8vFDa_99q03RK7XeV zHc02nKie^>yDgXL?Pim@M?qHYZyba`8?7q~$Qa1kw zu*p>h$YOl_#TNsuzm>CH|Lo$xE)MMCz%CB#;=nEr?Bc*K4)h)ej_4bSu(imEf>Mcw zJplW#%W$|e!5Qfs$bQ%e`$ES#*x&CrK#I48pnW2M0yIeAmGR((RMqb^jdt+O3s0&f-t?`<2Uw{c`K2?@icE|IWDW zgL6Lr`q)dQdnnJ=;|4w+|M3N1WqXox-|wW4KFN4~h8)A8eit2aOi7;yZm*N>ri6e0 zy9d4az`K=qvrR}nPwwd~ed)Ho_p-%CJ!=~7T99{Y=1AG=DbK3?PyGJ=tG;syTfWqj zXdU#yVf$o8W$&Vdx8j<+rhM|fYYW)=rJj{FYepAlE&fdQM9TB*fY%;xc=9_xVH=ow z3ZKhabj-J&f0C_W>N#WdODkU8xG9hAVCq@1XP+yow(hf>En(`pc*@mZe3EtT1h$2# z=lumU&Kfgx;=@uN@+`b^$s4y7&-xPEY*c!#`||~FPkQz1$FU7eJy&LoT35K6Gg{7H zl_yd);G(jL0}f@&hAGpz68hh0)i>9=!RVvPW8;Z&tMoj@+GC%T^Ng z)D#@n{+Aa&JV*cB_1eXOT^!iOfn6Nf#erQM*u{Ze9N5KyT^!iOfn6NymepAZ zo!hE~aImJ5Ll$;uCDmJ??3&F=N-lghQ`&TiWOQRa(!Z8i=GjDcBhc&6vFufw!5xcf#-e z{T{u$>95V~*Zg0RabakB@g{}c+gRJdz_E8kVr4mXRyN%CPViY&KeVTf_3>|npCZ7mtkBDa${AE%@rJCq0X8M>F@-HgC(?k zHcl_`%j}Qso!~n;$|^Y9wJqhb@|ESab>+*I`8K@kofP)+$pJ~N*!xx4i=nqzWgivN zJEhUPr|aocEqW*E-Wdzs?pRYLIkBflhBnD#@VcEU-OKNGILUdpt~EKfQccz--4JzI zrJ9CIwqvN>33ZL-l@(RhlPdl{Is~?N1h=DOv6=+@4Il zbue!4B;GxYvTN0;Lq$-hZkBE57NXAjP+d8Fw$m`IlVXGN)>#-Sr;2td5Z|!gJCbHc zJe$cw1_I_-mo5d9X2y%@uFekBOyPwu8zv#d;GWb?-saQZ(M(hyj$)RhBfH&i`2X$TMKgWT{hXUw!EUqAXaN;q@}PxohijiM z)4jQPlftB)>K(b%J92xXZ1jQ4y^~HoDcJ22GJN%pJL$;~J8RogNBMRK#9Pi!*>BuC ztTYFfbwB623G049`o;kFAh4jGK`{5swsLc#h-{c=JhS})sR2=s9y8UoG^8Ke8RLYI zUP3TW+*PhlPlO5%z&pV}{}EH8an>w3-zL`Bl;AkfmeA80QhG4{-jBH>LLHmiAfrlrjY!u@+^+oLhXibYc&0jR&-qosa$rI;m1~EO>+uAthYuy{*4aN^qAKIN zj_l#82xf(XMZsfMcaQAZ!IO3DO5>%ar%(Mc@~)0J`ky!>$IEIr54Y)ovt&#O^we=Z z-8>z~E35y_qivqCjD@F}ouT^MzuCF@7Q0KE*%7;jU8K3}%)E=;toO0w_P1jl=ZDaS z^834obIITY$GHc8@3UL>)7F1hym~v{LEu_>w0#O9>T8MS-AV% z7{|%S&kKY64C{P`#!ruA7H0$E*oV}#{IY1H5wruF}|HiIA0mZMTqZUgUu`$^B4N4go=gS6Psn-St5{H^RyvXyG-hq1= zX_Kc}cF5}IYIwAsH2#uZwr7$4``H~ln%`d{4PUU+I14Ny%+-9qnehJs?Nsu0Ch4)C zXW0dO9pB9}VLX>h!jt`Fcd&kD68|)_JJ@{WeKX~-Q19~nr{1l*Oz*-y06zXf??Aqh zwA@TyE{?dKZzIpS?514;{a*6)6+Tmx&OrRW%J(b4_3-;m;*7x0CGc%1`B-;_}>lwoI!q%Bn|iRmgi?? z*RcCD@ZVS9Sr*ibiT@hHnx?}R567FG#R0x=&^wtwAg-@k>GnH+nKFLc>_Ub(o49_h zcVT}*+S5Ikru(?-o8mInSE}mMRE1~3OW+l-8axNir@DU)Tny}|ir>pYC0GIKKs~4i zjo=K>23CVL;7o8fSP1?=xUw<604xH9pa>L$Qm_P^3Qhwv!E|seI01YK%m!It4#)*_ zK?IBj2ZO`FSa1ZG2quAJz!b0#*c%K4L%?9LA2$Q{o1bFx+;OU!`* zHnEF;$F<)Rs9G`o_i4HsewFwy^rc}fzpwIr>ta+paDz)!(?;D27G zd3ptG0gur%KMwxF->-t#fd6?A`a|Fm@Eh<1coHm%p#MN2c!)Y##QQ{04AMQ1Yu-La zH((QZ9Q+3S7CZsu$-~V8un^>fML?dzDYFS7<<^HX`2#or{0_VbUINn8j-Z?d@E*zg zdiXJl_klnT2KhVR58{0=c%Q#N1RsGz_#FXbK)UBs>f*n3eN0F1%D1B_(~01A;`=dJ z5AFcfbo+kJ`xoFYP{Z$9Aa@_H01xu5j(0t10F9stoB`zNOS*OkdxE{d59w+Q;=L~z z0&d~=t>8BBBXB!7i0?n<{S)w0upayj+yTsU3~n;P6fg~}pv-3SJ|4^lb^NXe4WJR^ z@vVvX8K4=ofCOj-=J|@&LH8m*_ksJtM(_Z55IhVX0gr;mz$WlG_zn0icmg~Lo&rw; zx%c@Q@GN)^qE)uYPo)Pr`IMm) z@%P=}SK!y+9&j(X58Mwnf(O8Z;34oZcmzBOf}YC=cP%KO{uF|-;85@u^87Z~NT2Be z@F_g{H+Y(QzZndty!QjIF$8)YY{Tul;7@#e3A`xXbMPi{Zv}k_vo9D%Si`}&gmoSm zg^V5uN+R@!K!)adF=>i|?Rg$1zUN5W^Wb;j_uvoU0lq&79s)1$`$ZskeE$i&1pW+W zl9t7!e+f7VJc8S$yiW$FfKx#k_%e8gG=7Mm`+4t9UcXNME(Vu?OThzt-xs~t4-5yF z@$GUT&$Bvz^7lsmeh@qa9s!SmP2h3xTks@!3Ty_?f#<=#=%vA62p9^6f#IMY+J3zE z2Qu^;0Y-vR;6N}M90U#qhkyte1IB_w!8mXjkY{(&ya(75^ap!^y} zf!)D0zE1{+@b?%n790+a1V@3R!9;Kbm<0ZXTpzI!H4`^#k(3Dh5H)bwcvEH0@Q(e&;S}i6F37jgBFkgtzacs1=_%Bum;>n z*k9p&CO8Y64bB1W;9PJX_$oLbTmUWvUjr9`uY-%hCE!wU8Mqu=0oH;m!8gEF;A(IU zxE6d9TnD}dt_R-+GA#c;a3lB*SO>lfZUWx}H-qnkAAlc%TfnX0Ht-{GJNPm93HT{U zz^C=RSMvTD?>oS1{=Sp<2Jmz63-C*D7q}bz3j7+}1MUU)f&0Nm@BnxaJOmyFkAO$P zV_*|_9Q+3S7CZr-1W$pd!DjFbcosYdo(I1Ne*iClKY~Ajm%yLF%itBT1-uGg1FwU> zf;YgMU@Q0=_&fLqcniD@{t4az+rZDs@4LL;1Mh0yZ2Csm>fY-nqU@Q1LcniD__MqFERd0+~YU z2X+U0fIUHfus0Y027!IRzF;sI0)~QNU^v(h><I1r2m2Z4h@1dIV= z!J%Lr7!M|ZBfyd1XfP2>0>^+1kO?M(DPSs?2Bw2!!3;1H%mQBma$w%^-~@09>6y(t z3bMc)kPT$oOQz7~f_Y#*$O8+&LXZy@fdWtniol7W7?glguox@>CxNBlWN->N6_kN5 zgVR6^ECc0WIj8`YAP%ZPHK+l#;B>G8)PZ`?02)CPI0H0;7SIY-fi|!Pd8e9Xe1>XeMfp3B9 z!MDK;;Qzpl;5%R)_%65!d=K0Vz7Ku?eh6*>w}RWikHGEV$KWU6r(iw!8Mp)72{wRV zfM0^Uz^BxWyLtZ#{2JT??gjS&dH$%|-KTkP2G4@$!1c)gI&d5KKKLEq{s3M8FM>aV zm%%Gw3-}ZG3wRa04*m+>0B?eC<6ow&{|5dJ{sGL0})SFBlAl zfT3U*7!LLW`-20(2rv?i0tbT8;2>}?I0Qt%7%&zb3dVuMz<6*tm;jCdM}nik(Lk0O zCV^u>2FL`H!4xnROas%wv0w(631)#Wf#bmO-~=!mWPv##8{~joFb~WJd0+up2=c)q zPyh-+5jYVPgAz~*7K0_=B(M~m3{C;3f->-Ba2kk#WuP1^2Nj?a#6cCP1~s4-$a2LB zPzUNk184+I;0(|VT0jD{f|XzuXalRk8t@fxCO8Y64bB1W;9PJX_$oLbTmUWvUjr9` zuY-%hCE!wU8Mqu=0oH;m!8gEF;A(IUxE6d9TnD}dt_R-+H-P^GH-hhgb>O?;CLqsh zJ!bxZK4lAkf5odmdIiMY!3(f=M zz*oWf-~wvd2E&-Q<%fRK}3a}Pj3BCcY0#}1;z_s9;;5zUvu$uH;&->fp z2JnC2M(`c54ty8f1Xkkid%SN3-v>VcKLodcTfuGMN8onwWAGF3Q?MTV4BP?k1RKE5 z!7sos!CgR>H2|Nyd1AYsh08fIaz|&we zcm_NRo&(Q=-+|wQKY$m&i{OvoPv9l+XYew31#AI-0k4AB!0X_z;0^F5*b4pz{to^D z-U4rfe}Z?wHt;TZ54;aP03U*Xfseq);1lpE_&4|r{0Dpvz5otm&_19q*bVdpyMsNz zo}fS23+xRBfPr8T*az$j27@7BC>REYgZ;q%-~ccJj0B^=fnYQ^2pkL!0TD0;j0J~+ zao{j89vluPfFr<>;3#l3mDtBG?)k`fnz`h z$OMzY6fhM`1Jl8=UT1-uGg1FwU>f;YgMU@Q0=_&fLqcniD@{t4az z+rYcPe(ogw8^F)OFTgLsUEpr;EAVS@54acH2kr+O!2{qy@DO+yJOUmC<~cWl4hLTa z=YtEth2U%8BJgz}%iouPOTlH}a&QG$3$6s;09S#lLD=&-W&4GcFLP0SKwq#M=m&NO zdw@Mbf3Oz_dw#^c3d;?qs zt_IhDYeByVX$5@-#ONiqX za4IMRUk0av7+40%!E#Um;-Ctod)kP1HHgE9Do_nh2P;4ws0Y6%9e)5XfEU4=;BVj` z;BD|TcyWyo=Q$T&*c6)*uN zLM3Rs(InUnCc_knUVo3snW%nmo^Pjq-2uOWJK-+48}5PM!tdZ-_&xjq{s{NM{m|3( z9Qm?0Yb*P}4`E-}58^Nf5-=AUz+b;DB|Nwneh+_uKf--*Kl};)3=e?6mQmKr;RE;( zK7x3SD@GQItFT*SFD!dMF!rSmqcn{u(<mRbW-<539o( zuqKqiS}*|ChJmmStP6v{UmNp0i}3e?ec|V&lqL5@XoAyGp8;pWS#UP|0<;D29Pa1B zd2l{l02e~^+QfyWKRp=?o57|q1U82)U`rSZTfs2c8n%ILVLR9!%3wH*favv3DR~L+ z!h7&OEQ96n0elD_!N>3kd5lZh>3jHn<(`fbh>g2rB#9m$dB%7cic?5H5m?LE9TIh0EYx%(tMOJ;!}> z?pwkGJP+l*6%2!|VH?;Mwu8mE+n#$F42KbLZ73c>~xGHi93(#;^&L!lp17 z{)XMh;2$sq_2#ezYzaeQD;Ne_!#1!jYzNyz84QOJFcL<=4lo*aguc}OG2C~8v9L2_ zUkj1#i(oM+_z@fehr(g76b^?Y;7B+Mj)r64SU3*+HG%bsHK?O&LJ6z|17K|! z2d<3mga?&;<)&5iEu! za4;MSOW|-h3XX;2VPnQlo4|=Y{{&8fQ{iWzZP=&7nQ%5dO}Nj%IXs^S7r;euDI9_y zmvO%Wu7YdeTDTr=glBR0BK(2p``}OTAUp&Q!z1u0{0$z1C*VnV23~+$z+boVd)ndevFRd^lVgty@xco*J-Ww0DRgpc7<_zb>)ui$G4@T&j{p%_+${;&p= zKyR<#+huJNq7pLh3DXTcmZC5m*Ew74PJ*g;7xc7-iCMJpYSfc2k*l&_yGQs*P2e| zPNZ&BLKRGc-C#0If!$#bmZu#GPzN($ zCd`7_uovhWN8Y@EOnwnwf|ubR@Cv*Nufgl^2D}Mx!Q1c-=yL=8@!5OuJ}iUf@Bw@X zAHm1)3498l!RPP=dIx-+rYN49c&L} zFdRm}NEih>z-ZVJ#=uT67IublunTl|9YGwH(nsG9e}X^51MnAk5FUcR!o%P-+B|SI> zj)mjkcsK!m3@5@*;3PO1PJy4osqiy64So)%!x?ZUoCRmYFW?+F7tVw8;aI}Ifcu4T z5nK$Hz@=~*Tn<;jFX2kK3VsDw!!>X%TnE>~4ba_n8)mn{?QjSD2K@DFo^OPk;AXf5 zR_2<$661uG@%O)NH_kiew|%|E``^Lz69trWKWO8*9S($6NI?e-#cVos^4tXrVG%5b zC2%rk2XWWuiig0Va2PCw!{G=x5{`nS;TSj;j)UXj1o$zW2&dxLPq?21C&SjLPvQPk zI2C>d#ptaH{b6+|fq#;gwYjeggJ1*L47PybFbdwm&S>sqU}ty_^?2^(FbO7uJ~x~S zHBb+;VISBR5-<)LU>+O*ZO{oz;9ximj)N26MED7u2B*Ura26~h+~x2Ad<5s9cOhI1 zm%ycP1zZK!z;$pV+yuA69dIWM;~i~lcp5)mqHlf~He#N(o_=9A%zz)35_i}S_JKIe zfw`C+2njty12jSsnqVnr^SIB4X4oGNfEHK)tYRh397O`@?viyU=gpc~_px;Rw=wBpd}5s3*WgsDvt*1iQgxm;$@Q z9xxTA!E~sG8rTzRp$_U{2F!$6FdO!Qy#rg*Ir16m&o*biqPc1dCw_90Ui$kKhnE6b^%< z;TSj;j)UXj1UM0X0w=-Aa0>hsPKBSrY4CG69sWVPcm-aC*Wh({1KxzU;B9yZ{t55G zd+f`zaM7Q+%a z2o8oH!69%c90p6_a5w^vgrneSI0lY|HmXq!7FZT@GAG$;B|Nd-hwybZFmR%3Gc#t@IEYq z3zlNLOU%gHvZa;^7S3hJ)pADIBhOem`-$1}~0mPsX zil849!z!>UtOosIbyx$|gc4W_2Ef`d5Y~ZpVLccG>%#`HA#4OcfQ?}jD1}X7Fl+{W zsi*y56<7`W!|JdGtO+Hs77T#3VIcVHQp({n*G@0zeg*szu7s=LS8z341J}ZJa6Q}r zH^Q&sCh(X3w0#_G4ckE(jDS%v8pgl`sD#O|J5)mr)Wb~J8}@#ni91X|8AE+CDg!|xr_&xjy{tOSmU*JJ_2>uEW!z1u0{0$z1 z$KeV1J3I+bK~LA6nD0&9IT^XS5BDF!zOWy}VGbl9;CVjx zi?}y)-yaTu7FYnS&<5>rAf%uJI-v^|!Xj7P)NH_|PhGXC> z>dcq$HGHG`Lp%x~28B=reV{M&gJM_(R)y7|KdcUGz?x73Yrz2U*T;nO3496#gmJsd z491g(JEOM?_j33RdgHjCg4>_Msqiy64So)%!x?ZUoCRmYIdC4F4;RA4a0y%rm%-(5 z1^g1Ogsb3Ja5Y>5*TQvhJ=_2{!mr^bxEXGNTj4gi9qxcT;V!rvwq#s047P?dpd2oN z@o+I*1{c8@$nZ1aEI1o}0q4NEa2}iw7r=#Z5nK$Hz@=~*Tn<;jzjO5=ulquG*Wrvm zm%;{uz3hWMhz*Lw9+1F-~zGEz5je}iaJnRbPPyrKQB2+>ZOoH8D zG7Q0w&0!1J5{AN7FbuYaZJ-2s;jcA#UK7@W0kAda3|aa z_rRNxbiK~=8}Jsq4e!7|;azwS-iKwd96o>#;UoAMzO8F5>PanS*4yh>q~U6~2Cjwc z;Ci?LZUlc#$KPtGfjyxP>R|@>Yh%)}36#R7Fc>z2A>gl1c>WYVgU{g$_!7Q?@8YH7 z%l_SK4(q$yBfH9+{L1!kbM&|9#w^?Je^PxGGVxb%4dlDdM1Kx)HzC>kzq+U=W4@zx zMOhLfZaaO42aL-0?mi?;%a1^nS=&tf_X3> znqhx909s%Hv_c!S!-0^34(Nm~SO|+?2^<6m!;jz)I1~rH?Ie2 zxfaH_B^PDQgw57wip9$kll;ADUr*H~?B;0j$i`&b!n>k@qR@_A%u0v+yx% z+^b~eT`~Hrz^bqs^oP}8wMWUl-PcL9jkVuZMZhcoZIk$KeV1UtcE@hnpy$PuPF(DNN$| z3+`XSZahzhDR48~0zbw6sZc|C?FmC*b9fiI`yTv``MP`IOY-I`c!d0X6xOBwt_QD@ z-><=P?0x{xq4zvIgUoyu-lQDff;z+BXBY>&z^+gM6JR1# zLKU0?=fVYWAzTWV!xiuuY55$!fG^=I_!_=}0`j8}il7hlg?>;BtH7$T8uW+NVI+)# z(Xb;z+BXBY>&z*a38{!`#fek@=Zx(Z3#UgkQtWpsSqwM5uJ?SGd0pZ#wk}g!eNz9nJtfqh44c7O*gG430jr>16;=aXKSA$g_$lPOHpbp2 zQ0naOhP~G)n>XMsl@ZsEiT6oxvWx%4*trxgcYZ#~{c-nfU3CAu9D5(Zr?53_1KHO( zgmaz?E89%!KjP*-_>*&c4)=56Jg4p=-izT!@DgqHWq2B%f#={^cphGW7vW~O1#W{| z;dZzKegnGpqx~e^^NZBq^Wg&U*I!D>cfwu`R)>kGt6&oB29se5><)XtR2U08!Ok!a zc7gG*E0jY8On@@j9)`mR7zv|b2N(@I!WhtXGV=B)>N$)}Iu6ZjN9gU{g$_!7PX ze=X#BkyFRHZv)#xHEp>Dro*043w2NrGhimng4wVa><#ei_;)XzXa6HO5{`jm;duBloCt@4&Ts!I_-j1R zyTT!GQbgaI|F`cGi9;n+eFx(5-%k7gh4A#>0k?c#w*ME3`uj9~p99~?92mlw`1|Yo z9QZy5zR!X0bKw784pcDy+=f12+wc2<|9gf1eTx65Ij|jVZu>~PD~mk;Pb2ny;QwFb zz~WyA|=+@;efjZ$G!c_woB2_&x`|&w=lAAYTp)M(*p} zmPx$Jy$CvcLi=%cVXac%H0n%3ou8ubd$o^mQ=au-(AwXlZ=B+w|7X=%75Y!p@#yQj z$QX9?AKZiC5qKPZot?5L{%B92)}{2n$-BWnU>o$c$4}oJYwuqndN07XsI>?1`|JB0 z_&x`|&w<<=h}Tq22)5g`Vul{d%Y)_1Rz>=3h3x1b6a=dV1tkaKsL1JW?euRB3J1j2 zDa53rHeNNoV#3s_%HV_L%cNHzy~-(dR@3Umq*phirlz*4t`4iRS0ugKs%h2rRdwi2 zsh%Df_r=nmHe+i2lxb*L_a)MsUR_r;y{@{}>6Kc&dgE_(Z9U!^_vO;Bte&`s3umd+ zQ!8rft80Sof`03)f_UvD=G&5%&cr+n>*_1&tCR_|MnyEp4D!OJzmH4*_AdS7gFZ;s zrLoNXjMvx1Cr+)Zm_DN>zFTee48l{!X6xdy@_4xOYmK0Aol-nPya&Z}7Zb?a)ybd1 z#`DTVXJR=2LtPkXn^RFB^@vd2*QiGt^+^0HHtJEq7R0ZJbdEyLUnN0&w;59^ZJhLE z;?ZY7DHd$`y62+h%l3A0kQuwE+8UG9O-&uiPL;9ZG8%sif*Gxgnp+#I+XJJwqtUBw zpVHdY=Iz<7S(8$U1>S?@%eD*pDsFwpU_TbbXH1_pWqM_NVs)h{g8HZiFC}^|_@o)rC)QJisEqZsd)YMhWW$xgSmI#oc^`cWO`25y-E%?YITm>? zj69Q9-hQl4`njNA`g!f*^mD<6k>`yf&p(JfZyb5vWcjkEGwQ?4L`zrFl=nE|&Th8q ziNslDvWrny?(NmuQ^PKj>5N+S-^4!DZNoM{}HF{I3t6UjRGwRB{y?VM)S5NZl zYNMVJs%xzK+1`9lqc&lLr6E_CViRD zGfAW+4 zrGdKO_|(d1M58*ya=ZMpkRGO{x_YWjn^S~onoAfqO$7sDgrjtcHG<+2_281ijo4B8 zlg{ph{NYp}V`o+vIXkg>dVSUGdK+Y}KB3FMdCtE{`TbMRSTS|#go=rK#HUQB8=gMV zbON@|%rg-tK@T;9@+a|HGSrkS~`xIBgc*%*VWoe zSJk*}=aTm1wq4_m1j^Pd@5VXNTefOu+fJrBn%jIkY9KDfK}}m*i)}|EP?rP~Tat;^ zuJ+whZC$P(Z9;!ghW^AvYeTYSVxpyGZld7;--eXt(x5ickgRNJaqVb6ZifaH4V}#k z6P*M-v8}Z;xwzA`$px5|1(TXv6D`dLSyS)hvJ!Hq74z)0`mkg+Cg?K$^pm~7$EGIL z+?HzYTw>ESnA|N7>Y5Kq2FrG*%vTFaVr|&>*W~WgCJEX7tOGS`za*%sKxD=Hw&6xp9-s_ndznW` zR34@DpHcM%1;MgoitHH3mRHU2$!!b5v4r%HlOwYAN`jh^*?NP5no-$$r9sUO*?L2R zn$c0c!Gux9dySEfw&|KSApKFnw8axUQbyM4{bfv0mz+1TBUF!-x-zXECv{a?JznZb zX*KdNId8YLdVp$w6hR%+(F4Yful5sAr=d5mC=UJu;%6k9u@O z-Hv+4hNA7dj`oQA3owtWufV)HVtyU|Mb)>S+3(L>*24i>RaNe*^WXNciug-XWs?G^lO%@jYDa ztYA`0XI)~U>fvei zJyMTIs~?tnWLo{A)T7es_odz;tqx+S-Pl|Hmq@*1+PqZiF==&~)H|is%rBMe1x40O zEiJ{sM{$t;6-AZFxn1+Tw#jqpUsp6W(a|{}#eipieOtPWWOi%BY*MOiflR%B_ZYLP z#SO`Jb!gUUq&?lAY3`jf7tv>(a{7Uzln!@2T*PEVWN_;gNVVlgj+J6h@rgOP=G6sG zt#O&m@zU7$>iNh$$w6;_X_mR>er|T-M}0RFgzpr#tmG~hOh`7j&NG=eFWG3)e=K$j zL%X&dk3+9G)U#!|K6-dt{kRJpH!U@Eol%NJ03gD`LTEAJ7?BBMD{Sa+rfR7 zJA$E%G(W3%w$lkK`=!N~gUkZ=&ZdDW^X)Co^IDUQ8X3FkT-6JiG3PF`1se8i9;Jw0 z<_zOrekf1kS@E#x&(bt`aDpk5oOiV>tGVgV)|t@UnfKkm=;wJ=%L>56MejVyr?YbM z$@;GJ%Zx7{3C-4PGl*ww*mgj(&nEKQzOS8)UEX!Fg36Bh%9W*`@3-$|Rg)8~jV<(| zk$18g8G3eJcXFa5U1ZCY=XxhQCsJm;iD!1qzl}UsA14_g79)?Y%#cT6AFV}&P}Ua( zp?=0#cni`~oHnaXHngQ0UH_%Nq$F+Tg-tk)9~4aQS}-@6igazp>^%G|O}o=_MQVYW z4+)m3?&EFj{762Y8N{n*Ppqmj(_Xbz6RT_88cMb zjNXg=ye?rR#coc1&<7ddG!&w%<2>{CeKrq_$LbOW4m| zhW$CAS$a&cbUnhVTHKy!RflQ=)f(2Sl*Q$^@z-(d#q0fgB@d>JugV+;c@q>G`D>s1 zutuYGCSn}3ZvDG`_v=h5yQ>IGWrw3>=efN8r3rs##$4W&M$cAN-?tW+d9UgwMj0(_ z^KAQ7ykf`_`rzs&)p#dkM&rIPFzaIBuvz}>nAUd^+V-8lLchqZx0!}RAD}*}AKqVW z;$lZ1xuHpRMK>xz|Ji+lBX`?>U9XZ#DN3>q{S>iZO}n-&M&Y{A@kLsu%k zfLBR3Zs@|CzQRp6v^2yUNOL>0F_g`8Bcp=Y^^y28uMwSvXk>9S-rhC0rMbcOFWnfr za<^-o@bTnnin+d#?wC2bL`eG$jOGCRHe9Q;YhRQ0_Tk-O%u_T|wJ*B{^&9l) zODm>TvNkzw_QZ_E$xKahUh}MZ$E5kj@EL>1j9EulhIbLR+UD1;PD?gvJ>I-c*EATp zFTLVCbDkwxbDpZlvdb8}qccGp>zJQR84;8o&zA=EiPXGg=M=XVF@*4k`gtgMF2uA!|xIi
    3y5%W_>VQ#N-z|t~`E6_$rTX%Gmg|psS^` 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

    tGS8B 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 z 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 literal 0 HcmV?d00001 diff --git a/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/circle.obj b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/circle.obj new file mode 100644 index 0000000000000000000000000000000000000000..e102c9d366f6208594e34f982e8742f365ddb2dc GIT binary patch literal 2793 zcmcImO>7%g5T1>b$fSSXmOx9>Xcf5-kg{>2Bq&Qn*Qt}H#7RiwKvj%3>)jW7n|18$ zkCk$$ERb3ugvg;nNWiHQ;sUJ@Qc(|FxNzWrR0%E|Dg+0PO+d=6%rTA58t_aUMA5D=3Gn)os1;W1k)b-f7e~%6 z9CQE(g3zCum`pCFGwJi=QqRo78)q+MQawAlbLrGb#{jCdKBioi_Uv

    cQOLd2T?wQmh9SDNn#aDQN=E~md297j>9Oz zXZ8%2q>`UVOkpsLqSKEd>Rc(4*sCaZzM0q~c_&Gg0Yx<(5^PvJiSnr@mzSiP9prg( zk9u5N&4)}FN71n-5|t!R6^7v@)G^vjhf}bas^dv*xco9=2ls|W_X2rbgp#4ZnV_1_ zTP&|SYR(M#MLXKNXLvo5{U~<2nV6q)ST~qaVb)H6x*kKIzS0Z0(urn*#gguZJt310 z?*UlXdXeyUtfFf4l39}{#V%cQzUkmhv3H7%H{tvHFS37pP9e+XW>Np=JwrBw6#nIh4$mq ze^F0&hg+;@Vp-3@gQ@q^@#xeCsd)5ic_eFC zzePh|blbRx53z=Uyv$TbOe8iqu3F<%N~T!Uz1;OV;ny2QJi<|K@1*d{jjC#dqqiI7 zM1#VwHY_%Xp?BL(5<@RG+Vu!$)&SSLa#tHz`bN|Wf>*`;x-8T=%ChOWHq!}1)B@o* m9@WPP7k&|VAiVMb&YVg3=UA5KCz46|;-yDev$M1ECHNP~MZW0( literal 0 HcmV?d00001 diff --git a/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/main.obj b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/main.obj new file mode 100644 index 0000000000000000000000000000000000000000..5555bafc20c5d2931f74c4356fc8553fce83998a GIT binary patch literal 55818 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 literal 0 HcmV?d00001 diff --git a/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/square.obj b/build-Exam_proj_QtLess-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug/debug/square.obj new file mode 100644 index 0000000000000000000000000000000000000000..2902f97b711979cce9bd04e4b67856da4609a562 GIT binary patch literal 5046 zcmc&&4UAM*6~4nR%diXV3@t5Ks82fTwwA~2vcT>D6smb8j(q5d?)pf>(R4W^PBX`4bDX*F2C^L}P$ zhDl0GhoBobAEPf_u0vLLB^Icr|=nFRm_U&zOs{GQay*G#2I8)tch6+Vba~O5K3Y-~m zBrPBu+cwGX%gCnep&0Xn{fdk6qyh^Ie7PP+{yYNQv6}j9oL-Nk`c5_07Z3zq$?Z1Q z^mE@=Bx75n!|}1@Tq{DmfX9zvKf-*N9E|OVh~tK;8)8K^ zw7eKADON!(nufSpGZR)?RQJgRDWxhosjQc>l3^7JsxI|}d%DH6rR6g#;sk*1UTM3T zR1ITAOf`0!r7~Wn)l&CrsRz9@G0+q4?w8i|rZp1)L?qhNOf>dbvaa%_^t~*?)(3r) zjGbXOuw`uAVpTeVmIK{#&T=^pSNPgS|O0nJy8UtMn`dQE=px*@j2{h-LBS6Po`$k`efHo62(_Ni)MjDPz?}LM|=13ShP7`7k&N19!8a z*MoS?XS9lBVsr8b@1yGSu7LDdrOeO{sL(HP^`4sE$y{>bK)#LVF+5n_Ea20ZZE1@w zedy^=zjL|g_q*Q2M?kXWr3XLtgIC91IrYLVv)3MfWrv@!Cv5qPo1XaZOFz|?TzGxz zTXXJf#m3o&iUPiOcRcg>rFZpn$Im?2HU88?hZx&t%MU*K$DahE<_%x`WqSTS|K4pd z_9I(fczNBfmkzvk`5T{kJM)`!J=nB5@UaQ_xQ^qKEAr>WUw{6s%MbVdZIH3I&~BDK zMB5@_QnrdpPR)ojAK(eiu;e^9W?C7oB+^G+jALuk%erQ$;>3WM!nS0H^u-sud-1r zS$CKZ^GLFKyZNwaDY_{tCCo3~lnSz$<8#-N#xy1{UQVKv%h&Fv6D}OQKHXVSbSH6? zit66$(+$_lb%jRG%||ia+E_Ap0!wE-<}0Q29ZYb!c6OvH`)XBo795>6I@sS`uAL1HKyC>09WpySw4SYr2cEb)MC0{O+xK?vEDC^=6#yNR;PQ?@lxhCSt+Cd$5szHs{I{?}}| zKn4P$77)6KU}N+a6d(szRW61yYImxwP1I{4yE|HMkw`!`guk87{{x-OsugdmH|40} zKvlc5UfV_5#Z~QOy>=%xTW^t=q-OEg*le!OludQ=(ZGRuR{PImAr32ro%a(*o?h&{ z1Dp*9O5j{nsEP_zQK2d-d|-h!54}id6Lx;~`IgQd&n50Z)pzpCFr(zSmHDyI9PS`E zB*T#T=K9#&G}$mlskB#+{<9W)@i`pLQ>6ZoIpxib+>@K1f8!S)OMLBnXXmZ^!j0*} z$Ch#T9KUtz$gwZ|>V=Jmx9eQ!(usfm=P!NPGq?Tt%y-|&ukSDZ?uRD}ZUszGa7g5} z%(yk%_uhL{voNK~CLazT@%g4*Nu`wM3mN+(?MP~GOUT_8-$}2+Dy_XKL7>3UT?uVo zGo|*Hgkoy((LG6h;cIS4Xd7zr(H#k)7jcUocd*7D-JG%F?4u&}t5aH;C&3W}JZU@$ zPZEUSNJ7c2{Sdek+IDO2U1(5Sd^84B?)=&6qYg*^!!B!MSnVwgj)}0MxXI_gp7{Ff zE)>Lb+Qu-x=1yh~;j3*;pZ?RgodYo0(!r1lVP-LDDsNhbnz2Q;gs-`?A#YoJf~Ty~ zC&6vp7l-rRgm?wa(* z+gRA}AsB<=Fht$MQ%__0VCxt-#!V#&SlXP zM0*8{wlasK2>He81OoE>; z@RF3AH(Ak4mQ+*EC1ZwW=h>=dCQs>B+)gFgMK!O;Ov@^TqLEQdJD+DoB^(M5B~!MZ zOAkzP1;{QavsQwc=0J>@E0$5fr!t}pjVNJ-`xOoijVYtUDcynsvYK>qo3x6$x|+$c zppm*j5*_yoOGMw&Q*?;tZK~oaT`L-UmU1AFk_f`L@iVYhgQ zT%RS$rKp=aYI4W6`WNvNetupK=b$qqSXteqCYtfnCU|^rUEu3+Xu{}rC?f3H8uy_U znEUxU#&$oy1dsc83!}H@hwI&L{Pe+fK4TQ?&j=+X+VPwm-xnZof&0LL$C+>_B9!bJ z_X}g~8DPY>HUYdBcnNqP@N2;Pf!_sg2mS&W3p%mJJwyZ4=9j_PwzrbRN+?ssH0+|r zqVAs47}TeBtS(7Lxs;f~XauHb9>LUlrNGTzfZ6FrW)D@KB$b8~HD__dn#U($AA5Xz zY;M^P9(i>i3$C@)>9^4_cReg}m+3VMH5C@;yll*_z@3gspKo_<1|otdX+zyB@UmH6=Qn^&}# zWf?}hiR!<2SGT7;Ski)pbc*iA*As!Z_@!8&?e?8U5MP%AK1b;WPhEWFD~exoOu*l4 z_cb?dw)+KFCOj;Qwzsm!#W*&hziyVHr zK3!`_of72SW)hvYfv5{#VwIyT=PcV~yvuQ*iRzn6-dK2q{)()I!XQta2)UO>Br-c0 PjYbw08!#c6jx5r@6$R$z literal 0 HcmV?d00001 diff --git a/html/bc_s.png b/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/html/bdwn.png b/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/html/doc.png b/html/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/html/doxygen.css b/html/doxygen.css new file mode 100644 index 0000000..ffbff02 --- /dev/null +++ b/html/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.1 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/html/doxygen.svg b/html/doxygen.svg new file mode 100644 index 0000000..d42dad5 --- /dev/null +++ b/html/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/html/dynsections.js b/html/dynsections.js new file mode 100644 index 0000000..3174bd7 --- /dev/null +++ b/html/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (la9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/html/index.html b/html/index.html new file mode 100644 index 0000000..3b71ffc --- /dev/null +++ b/html/index.html @@ -0,0 +1,74 @@ + + + + + + + +My Project: Main Page + + + + + + + + + +

    + +
    +
    + + +
    + +
    + +
    +
    +
    My Project Documentation
    +
    +
    +
    + +
    + + diff --git a/html/jquery.js b/html/jquery.js new file mode 100644 index 0000000..103c32d --- /dev/null +++ b/html/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
    "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
    ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
    "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
    "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/html/md__read_me.html b/html/md__read_me.html new file mode 100644 index 0000000..1da8a6f --- /dev/null +++ b/html/md__read_me.html @@ -0,0 +1,90 @@ + + + + + + + +My Project: ReadMe + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    ReadMe
    +
    +
    +
    ``` git clone https://github.com/bud-ea/exam_Tech_prog_summer_2021``` — клонирование репозитория
    +
    +
    ```git branch 201-331_Skrypnik``` — создание ветки
    +
    ___
    +
    #### Переключение веток
    +
    +
    ```git checkout 201-331_Skrypnik
    +

    git checkout master


    +

    git branch — список веток и отображение текущей

    +

    git add --all — индексирование новых, измененных, удаленных файлов

    +

    git commit -m "сообщение коммита" — фиксация в коммите файлов добавленных командой git add

    +

    git merge 201-331_Skrypnik — слияние активной ветки с указанной

    +

    git status - статус репозитория

    +

    git tag -a -m 'Message' v1.0 master — создать тег с сообщением на активном коммите ветки master

    +

    git push -u origin master — пушим в удаленный репозиторий ветку master

    +
    +
    + + + + diff --git a/html/menu.js b/html/menu.js new file mode 100644 index 0000000..2fe2214 --- /dev/null +++ b/html/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/html/menudata.js b/html/menudata.js new file mode 100644 index 0000000..752f4f4 --- /dev/null +++ b/html/menudata.js @@ -0,0 +1,27 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}]} diff --git a/html/nav_f.png b/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/html/nav_g.png b/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +My Project: Related Pages + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    + + +
     ReadMe
    +
    +
    + + + + diff --git a/html/search/all_0.html b/html/search/all_0.html new file mode 100644 index 0000000..1ec5b2d --- /dev/null +++ b/html/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/html/search/all_0.js b/html/search/all_0.js new file mode 100644 index 0000000..e69e7e4 --- /dev/null +++ b/html/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_0',['ReadMe',['../md__read_me.html',1,'']]] +]; diff --git a/html/search/close.svg b/html/search/close.svg new file mode 100644 index 0000000..a933eea --- /dev/null +++ b/html/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/html/search/mag_sel.svg b/html/search/mag_sel.svg new file mode 100644 index 0000000..03626f6 --- /dev/null +++ b/html/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/html/search/nomatches.html b/html/search/nomatches.html new file mode 100644 index 0000000..2b9360b --- /dev/null +++ b/html/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/html/search/pages_0.html b/html/search/pages_0.html new file mode 100644 index 0000000..8517b48 --- /dev/null +++ b/html/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/html/search/pages_0.js b/html/search/pages_0.js new file mode 100644 index 0000000..02c46d2 --- /dev/null +++ b/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_1',['ReadMe',['../md__read_me.html',1,'']]] +]; diff --git a/html/search/search.css b/html/search/search.css new file mode 100644 index 0000000..9074198 --- /dev/null +++ b/html/search/search.css @@ -0,0 +1,257 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/html/search/search.js b/html/search/search.js new file mode 100644 index 0000000..fb226f7 --- /dev/null +++ b/html/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/html/search/search_r.png b/html/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/html/search/searchdata.js b/html/search/searchdata.js new file mode 100644 index 0000000..7d47bff --- /dev/null +++ b/html/search/searchdata.js @@ -0,0 +1,18 @@ +var indexSectionsWithContent = +{ + 0: "r", + 1: "r" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Pages" +}; + diff --git a/html/splitbar.png b/html/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/html/sync_off.png b/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/html/sync_on.png b/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/html/tab_a.png b/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/html/tab_b.png b/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/html/tabs.css b/html/tabs.css new file mode 100644 index 0000000..85a0cd5 --- /dev/null +++ b/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/latex/Makefile b/latex/Makefile new file mode 100644 index 0000000..877c9cc --- /dev/null +++ b/latex/Makefile @@ -0,0 +1,23 @@ +LATEX_CMD=pdflatex + +all: refman.pdf + +pdf: refman.pdf + +refman.pdf: clean refman.tex + $(LATEX_CMD) refman + makeindex refman.idx + $(LATEX_CMD) refman + latex_count=8 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + $(LATEX_CMD) refman ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + makeindex refman.idx + $(LATEX_CMD) refman + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf diff --git a/latex/doxygen.sty b/latex/doxygen.sty new file mode 100644 index 0000000..8f59bcc --- /dev/null +++ b/latex/doxygen.sty @@ -0,0 +1,576 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} + +% Packages used by this style file +\RequirePackage{alltt} +%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{calc} +\RequirePackage{float} +%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package +\RequirePackage{verbatim} +\RequirePackage[table]{xcolor} +\RequirePackage{longtable_doxygen} +\RequirePackage{tabu_doxygen} +\RequirePackage{fancyvrb} +\RequirePackage{tabularx} +\RequirePackage{multicol} +\RequirePackage{multirow} +\RequirePackage{hanging} +\RequirePackage{ifpdf} +\RequirePackage{adjustbox} +\RequirePackage{amssymb} +\RequirePackage{stackengine} +\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis + +%---------- Internal commands used in this style file ---------------- + +\newcommand{\ensurespace}[1]{% + \begingroup% + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@% + \penalty -100\vskip\z@\@plus -\dimen@% + \vskip\dimen@% + \penalty 9999% + \vskip -\dimen@% + \vskip\z@skip% hide the previous |\vskip| from |\addvspace| + \endgroup% +} + +\newcommand{\DoxyHorRuler}[1]{% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{#1=0}% + {% + \hrule% + }% + {% + \hrulefilll% + }% +} +\newcommand{\DoxyLabelFont}{} +\newcommand{\entrylabel}[1]{% + {% + \parbox[b]{\labelwidth-4pt}{% + \makebox[0pt][l]{\DoxyLabelFont#1}% + \vspace{1.5\baselineskip}% + }% + }% +} + +\newenvironment{DoxyDesc}[1]{% + \ensurespace{4\baselineskip}% + \begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + %\setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +\newsavebox{\xrefbox} +\newlength{\xreflength} +\newcommand{\xreflabel}[1]{% + \sbox{\xrefbox}{#1}% + \setlength{\xreflength}{\wd\xrefbox}% + \ifthenelse{\xreflength>\labelwidth}{% + \begin{minipage}{\textwidth}% + \setlength{\parindent}{0pt}% + \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% + \end{minipage}% + }{% + \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% + }% +} + +%---------- Commands used by doxygen LaTeX output generator ---------- + +% Used by
     ... 
    +\newenvironment{DoxyPre}{% + \small% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} +% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output. +\newlength{\CodeWidthChar} +\newlength{\CodeHeightChar} +\settowidth{\CodeWidthChar}{?} +\settoheight{\CodeHeightChar}{?} +% Necessary for hanging indent +\newlength{\DoxyCodeWidth} + +\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par} + +\newcommand\NiceSpace{% + \discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}% +} + +% Used by @code ... @endcode +\newenvironment{DoxyCode}[1]{% + \par% + \scriptsize% + \normalfont\ttfamily% + \rightskip0pt plus 1fil% + \settowidth{\DoxyCodeWidth}{000000}% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% + \setlength{\parskip}{0ex plus 0ex minus 0ex}% + \ifthenelse{\equal{#1}{0}} + { + {\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces% + } + { + {\lccode`~32 \lowercase{\global\let~}}\obeyspaces% + } + +}{% + \normalfont% + \normalsize% + \settowidth{\CodeWidthChar}{?}% + \settoheight{\CodeHeightChar}{?}% +} + +% Redefining not defined characters, i.e. "Replacement Character" in tex output. +\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{% + \textcolor{white}{\sffamily\bfseries\small ?}}{% + \rotatebox{45}{$\blacksquare$}}}} + +% Used by @example, @include, @includelineno and @dontinclude +\newenvironment{DoxyCodeInclude}[1]{% + \DoxyCode{#1}% +}{% + \endDoxyCode% +} + +% Used by @verbatim ... @endverbatim +\newenvironment{DoxyVerb}{% + \footnotesize% + \verbatim% +}{% + \endverbatim% + \normalsize% +} + +% Used by @verbinclude +\newenvironment{DoxyVerbInclude}{% + \DoxyVerb% +}{% + \endDoxyVerb% +} + +% Used by numbered lists (using '-#' or
      ...
    ) +\newenvironment{DoxyEnumerate}{% + \enumerate% +}{% + \endenumerate% +} + +% Used by bullet lists (using '-', @li, @arg, or
      ...
    ) +\newenvironment{DoxyItemize}{% + \itemize% +}{% + \enditemize% +} + +% Used by description lists (using
    ...
    ) +\newenvironment{DoxyDescription}{% + \description% +}{% + \enddescription% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if caption is specified) +\newenvironment{DoxyImage}{% + \begin{figure}[H]% + \centering% +}{% + \end{figure}% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if no caption is specified) +\newenvironment{DoxyImageNoCaption}{% + \begin{center}% +}{% + \end{center}% +} + +% Used by @image +% (only if inline is specified) +\newenvironment{DoxyInlineImage}{% +}{% +} + +% Used by @attention +\newenvironment{DoxyAttention}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @author and @authors +\newenvironment{DoxyAuthor}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @date +\newenvironment{DoxyDate}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @invariant +\newenvironment{DoxyInvariant}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @note +\newenvironment{DoxyNote}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @post +\newenvironment{DoxyPostcond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @pre +\newenvironment{DoxyPrecond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @copyright +\newenvironment{DoxyCopyright}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @remark +\newenvironment{DoxyRemark}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @return and @returns +\newenvironment{DoxyReturn}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @since +\newenvironment{DoxySince}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @see +\newenvironment{DoxySeeAlso}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @version +\newenvironment{DoxyVersion}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @warning +\newenvironment{DoxyWarning}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @internal +\newenvironment{DoxyInternal}[1]{% + \paragraph*{#1}% +}{% +} + +% Used by @par and @paragraph +\newenvironment{DoxyParagraph}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by parameter lists +\newenvironment{DoxyParams}[2][]{% + \tabulinesep=1mm% + \par% + \ifthenelse{\equal{#1}{}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description + {\ifthenelse{\equal{#1}{1}}% + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc + {\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc + } + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields of simple structs +\newenvironment{DoxyFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for fields simple class style enums +\newenvironment{DoxyEnumFields}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for parameters within a detailed function description +\newenvironment{DoxyParamCaption}{% + \renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}% +}{% +} + +% Used by return value lists +\newenvironment{DoxyRetVals}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by exception lists +\newenvironment{DoxyExceptions}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used by template parameter lists +\newenvironment{DoxyTemplParams}[1]{% + \tabulinesep=1mm% + \par% + \begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endfirsthead% + \multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]% + \hline% + \endhead% +}{% + \end{longtabu*}% + \vspace{6pt}% +} + +% Used for member lists +\newenvironment{DoxyCompactItemize}{% + \begin{itemize}% + \setlength{\itemsep}{-3pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% +}{% + \end{itemize}% +} + +% Used for member descriptions +\newenvironment{DoxyCompactList}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \setlength{\topsep}{0pt}% + \renewcommand{\makelabel}{\hfill}% + }% +}{% + \end{list}% +} + +% Used for reference lists (@bug, @deprecated, @todo, etc.) +\newenvironment{DoxyRefList}{% + \begin{list}{}{% + \setlength{\labelwidth}{10pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \renewcommand{\makelabel}{\xreflabel}% + }% +}{% + \end{list}% +} + +% Used by @bug, @deprecated, @todo, etc. +\newenvironment{DoxyRefDesc}[1]{% + \begin{list}{}{% + \renewcommand\makelabel[1]{\textbf{##1}}% + \settowidth\labelwidth{\makelabel{#1}}% + \setlength\leftmargin{\labelwidth+\labelsep}% + }% +}{% + \end{list}% +} + +% Used by parameter lists and simple sections +\newenvironment{Desc} +{\begin{list}{}{% + \settowidth{\labelwidth}{20pt}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% + \renewcommand{\makelabel}{\entrylabel}% + } +}{% + \end{list}% +} + +% Used by tables +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}% +\newenvironment{TabularC}[1]% +{\tabulinesep=1mm +\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}% +{\end{longtabu*}\par}% + +\newenvironment{TabularNC}[1]% +{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}% +{\end{tabu}\par}% + +% Used for member group headers +\newenvironment{Indent}{% + \begin{list}{}{% + \setlength{\leftmargin}{0.5cm}% + }% + \item[]\ignorespaces% +}{% + \unskip% + \end{list}% +} + +% Used when hyperlinks are turned off +\newcommand{\doxyref}[3]{% + \textbf{#1} (\textnormal{#2}\,\pageref{#3})% +} + +% Used to link to a table when hyperlinks are turned on +\newcommand{\doxytablelink}[2]{% + \ref{#1}% +} + +% Used to link to a table when hyperlinks are turned off +\newcommand{\doxytableref}[3]{% + \ref{#3}% +} + +% Used by @addindex +\newcommand{\lcurly}{\{} +\newcommand{\rcurly}{\}} + +% Colors used for syntax highlighting +\definecolor{comment}{rgb}{0.5,0.0,0.0} +\definecolor{keyword}{rgb}{0.0,0.5,0.0} +\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} +\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} +\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} +\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} +\definecolor{charliteral}{rgb}{0.0,0.5,0.5} +\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} +\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} +\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} +\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} + +% Color used for table heading +\newcommand{\tableheadbgcolor}{lightgray}% + +% Version of hypertarget with correct landing location +\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}} + +% possibility to have sections etc. be within the margins +% unfortunately had to copy part of book.cls and add \raggedright +\makeatletter +\newcommand\doxysection{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\raggedright\normalfont\Large\bfseries}} +\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\large\bfseries}} +\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\raggedright\normalfont\normalsize\bfseries}} +\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\raggedright\normalfont\normalsize\bfseries}} +\makeatother +% Define caption that is also suitable in a table +\makeatletter +\def\doxyfigcaption{% +\H@refstepcounter{figure}% +\@dblarg{\@caption{figure}}} +\makeatother diff --git a/latex/longtable_doxygen.sty b/latex/longtable_doxygen.sty new file mode 100644 index 0000000..a0eb314 --- /dev/null +++ b/latex/longtable_doxygen.sty @@ -0,0 +1,448 @@ +%% +%% This is file `longtable.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% longtable.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% The source is maintained by the LaTeX Project team and bug +%% reports for it can be opened at http://latex-project.org/bugs.html +%% (but please observe conditions on bug reports sent to that address!) +%% +%% Copyright 1993-2016 +%% The LaTeX3 Project and any individual authors listed elsewhere +%% in this file. +%% +%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'. +%% -------------------------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This file may only be distributed together with a copy of the LaTeX +%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle' +%% without such generated files. +%% +%% The list of all files belonging to the LaTeX `Tools Bundle' is +%% given in the file `manifest.txt'. +%% +%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{longtable_doxygen} + [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen] +\def\LT@err{\PackageError{longtable}} +\def\LT@warn{\PackageWarning{longtable}} +\def\LT@final@warn{% + \AtEndDocument{% + \LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}% + \global\let\LT@final@warn\relax} +\DeclareOption{errorshow}{% + \def\LT@warn{\PackageInfo{longtable}}} +\DeclareOption{pausing}{% + \def\LT@warn#1{% + \LT@err{#1}{This is not really an error}}} +\DeclareOption{set}{} +\DeclareOption{final}{} +\ProcessOptions +\newskip\LTleft \LTleft=\fill +\newskip\LTright \LTright=\fill +\newskip\LTpre \LTpre=\bigskipamount +\newskip\LTpost \LTpost=\bigskipamount +\newcount\LTchunksize \LTchunksize=20 +\let\c@LTchunksize\LTchunksize +\newdimen\LTcapwidth \LTcapwidth=4in +\newbox\LT@head +\newbox\LT@firsthead +\newbox\LT@foot +\newbox\LT@lastfoot +\newcount\LT@cols +\newcount\LT@rows +\newcounter{LT@tables} +\newcounter{LT@chunks}[LT@tables] +\ifx\c@table\undefined + \newcounter{table} + \def\fnum@table{\tablename~\thetable} +\fi +\ifx\tablename\undefined + \def\tablename{Table} +\fi +\newtoks\LT@p@ftn +\mathchardef\LT@end@pen=30000 +\def\longtable{% + \par + \ifx\multicols\@undefined + \else + \ifnum\col@number>\@ne + \@twocolumntrue + \fi + \fi + \if@twocolumn + \LT@err{longtable not in 1-column mode}\@ehc + \fi + \begingroup + \@ifnextchar[\LT@array{\LT@array[x]}} +\def\LT@array[#1]#2{% + \refstepcounter{table}\stepcounter{LT@tables}% + \if l#1% + \LTleft\z@ \LTright\fill + \else\if r#1% + \LTleft\fill \LTright\z@ + \else\if c#1% + \LTleft\fill \LTright\fill + \fi\fi\fi + \let\LT@mcol\multicolumn + \let\LT@@tabarray\@tabarray + \let\LT@@hl\hline + \def\@tabarray{% + \let\hline\LT@@hl + \LT@@tabarray}% + \let\\\LT@tabularcr\let\tabularnewline\\% + \def\newpage{\noalign{\break}}% + \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}% + \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}% + \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption + \@tempdima\ht\strutbox + \let\@endpbox\LT@endpbox + \ifx\extrarowheight\@undefined + \let\@acol\@tabacol + \let\@classz\@tabclassz \let\@classiv\@tabclassiv + \def\@startpbox{\vtop\LT@startpbox}% + \let\@@startpbox\@startpbox + \let\@@endpbox\@endpbox + \let\LT@LL@FM@cr\@tabularcr + \else + \advance\@tempdima\extrarowheight + \col@sep\tabcolsep + \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr + \fi + \setbox\@arstrutbox\hbox{\vrule + \@height \arraystretch \@tempdima + \@depth \arraystretch \dp \strutbox + \@width \z@}% + \let\@sharp##\let\protect\relax + \begingroup + \@mkpream{#2}% + \xdef\LT@bchunk{% + \global\advance\c@LT@chunks\@ne + \global\LT@rows\z@\setbox\z@\vbox\bgroup + \LT@setprevdepth + \tabskip\LTleft \noexpand\halign to\hsize\bgroup + \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}% + \endgroup + \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols + \LT@make@row + \m@th\let\par\@empty + \everycr{}\lineskip\z@\baselineskip\z@ + \LT@bchunk} +\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}} +\def\LT@start{% + \let\LT@start\endgraf + \endgraf\penalty\z@\vskip\LTpre + \dimen@\pagetotal + \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi + \advance\dimen@ \ht\LT@foot + \dimen@ii\vfuzz + \vfuzz\maxdimen + \setbox\tw@\copy\z@ + \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox + \setbox\tw@\vbox{\unvbox\tw@}% + \vfuzz\dimen@ii + \advance\dimen@ \ht + \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@\dp + \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi + \advance\dimen@ -\pagegoal + \ifdim \dimen@>\z@\vfil\break\fi + \global\@colroom\@colht + \ifvoid\LT@foot\else + \advance\vsize-\ht\LT@foot + \global\advance\@colroom-\ht\LT@foot + \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ + \maxdepth\z@ + \fi + \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak + \output{\LT@output}} +\def\endlongtable{% + \crcr + \noalign{% + \let\LT@entry\LT@entry@chop + \xdef\LT@save@row{\LT@save@row}}% + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \if@filesw + {\let\LT@entry\LT@entry@write\immediate\write\@auxout{% + \gdef\expandafter\noexpand + \csname LT@\romannumeral\c@LT@tables\endcsname + {\LT@save@row}}}% + \fi + \ifx\LT@save@row\LT@@save@row + \else + \LT@warn{Column \@width s have changed\MessageBreak + in table \thetable}% + \LT@final@warn + \fi + \endgraf\penalty -\LT@end@pen + \endgroup + \global\@mparbottom\z@ + \pagegoal\vsize + \endgraf\penalty\z@\addvspace\LTpost + \ifvoid\footins\else\insert\footins{}\fi} +\def\LT@nofcols#1&{% + \futurelet\@let@token\LT@n@fcols} +\def\LT@n@fcols{% + \advance\LT@cols\@ne + \ifx\@let@token\LT@nofcols + \expandafter\@gobble + \else + \expandafter\LT@nofcols + \fi} +\def\LT@tabularcr{% + \relax\iffalse{\fi\ifnum0=`}\fi + \@ifstar + {\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr + \LT@t@bularcr}% + {\LT@t@bularcr}} +\let\LT@crcr\crcr +\let\LT@setprevdepth\relax +\def\LT@t@bularcr{% + \global\advance\LT@rows\@ne + \ifnum\LT@rows=\LTchunksize + \gdef\LT@setprevdepth{% + \prevdepth\z@\global + \global\let\LT@setprevdepth\relax}% + \expandafter\LT@xtabularcr + \else + \ifnum0=`{}\fi + \expandafter\LT@LL@FM@cr + \fi} +\def\LT@xtabularcr{% + \@ifnextchar[\LT@argtabularcr\LT@ntabularcr} +\def\LT@ntabularcr{% + \ifnum0=`{}\fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@argtabularcr[#1]{% + \ifnum0=`{}\fi + \ifdim #1>\z@ + \unskip\@xargarraycr{#1}% + \else + \@yargarraycr{#1}% + \fi + \LT@echunk + \LT@start + \unvbox\z@ + \LT@get@widths + \LT@bchunk} +\def\LT@echunk{% + \crcr\LT@save@row\cr\egroup + \global\setbox\@ne\lastbox + \unskip + \egroup} +\def\LT@entry#1#2{% + \ifhmode\@firstofone{&}\fi\omit + \ifnum#1=\c@LT@chunks + \else + \kern#2\relax + \fi} +\def\LT@entry@chop#1#2{% + \noexpand\LT@entry + {\ifnum#1>\c@LT@chunks + 1}{0pt% + \else + #1}{#2% + \fi}} +\def\LT@entry@write{% + \noexpand\LT@entry^^J% + \@spaces} +\def\LT@kill{% + \LT@echunk + \LT@get@widths + \expandafter\LT@rebox\LT@bchunk} +\def\LT@rebox#1\bgroup{% + #1\bgroup + \unvbox\z@ + \unskip + \setbox\z@\lastbox} +\def\LT@blank@row{% + \xdef\LT@save@row{\expandafter\LT@build@blank + \romannumeral\number\LT@cols 001 }} +\def\LT@build@blank#1{% + \if#1m% + \noexpand\LT@entry{1}{0pt}% + \expandafter\LT@build@blank + \fi} +\def\LT@make@row{% + \global\expandafter\let\expandafter\LT@save@row + \csname LT@\romannumeral\c@LT@tables\endcsname + \ifx\LT@save@row\relax + \LT@blank@row + \else + {\let\LT@entry\or + \if!% + \ifcase\expandafter\expandafter\expandafter\LT@cols + \expandafter\@gobble\LT@save@row + \or + \else + \relax + \fi + !% + \else + \aftergroup\LT@blank@row + \fi}% + \fi} +\let\setlongtables\relax +\def\LT@get@widths{% + \setbox\tw@\hbox{% + \unhbox\@ne + \let\LT@old@row\LT@save@row + \global\let\LT@save@row\@empty + \count@\LT@cols + \loop + \unskip + \setbox\tw@\lastbox + \ifhbox\tw@ + \LT@def@row + \advance\count@\m@ne + \repeat}% + \ifx\LT@@save@row\@undefined + \let\LT@@save@row\LT@save@row + \fi} +\def\LT@def@row{% + \let\LT@entry\or + \edef\@tempa{% + \ifcase\expandafter\count@\LT@old@row + \else + {1}{0pt}% + \fi}% + \let\LT@entry\relax + \xdef\LT@save@row{% + \LT@entry + \expandafter\LT@max@sel\@tempa + \LT@save@row}} +\def\LT@max@sel#1#2{% + {\ifdim#2=\wd\tw@ + #1% + \else + \number\c@LT@chunks + \fi}% + {\the\wd\tw@}} +\def\LT@hline{% + \noalign{\ifnum0=`}\fi + \penalty\@M + \futurelet\@let@token\LT@@hline} +\def\LT@@hline{% + \ifx\@let@token\hline + \global\let\@gtempa\@gobble + \gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}% + \else + \global\let\@gtempa\@empty + \gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\LT@sep}% + \multispan\LT@cols + \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr + \noalign{\penalty\@M}% + \@gtempa} +\def\LT@caption{% + \noalign\bgroup + \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} +\def\LT@c@ption#1[#2]#3{% + \LT@makecaption#1\fnum@table{#3}% + \def\@tempa{#2}% + \ifx\@tempa\@empty\else + {\let\\\space + \addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}% + \fi} +\def\LT@capti@n{% + \@ifstar + {\egroup\LT@c@ption\@gobble[]}% + {\egroup\@xdblarg{\LT@c@ption\@firstofone}}} +\def\LT@makecaption#1#2#3{% + \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% + \sbox\@tempboxa{#1{#2: }#3}% + \ifdim\wd\@tempboxa>\hsize + #1{#2: }#3% + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \endgraf\vskip\baselineskip}% + \hss}}} +\def\LT@output{% + \ifnum\outputpenalty <-\@Mi + \ifnum\outputpenalty > -\LT@end@pen + \LT@err{floats and marginpars not allowed in a longtable}\@ehc + \else + \setbox\z@\vbox{\unvbox\@cclv}% + \ifdim \ht\LT@lastfoot>\ht\LT@foot + \dimen@\pagegoal + \advance\dimen@-\ht\LT@lastfoot + \ifdim\dimen@<\ht\z@ + \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}% + \@makecol + \@outputpage + \setbox\z@\vbox{\box\LT@head}% + \fi + \fi + \global\@colroom\@colht + \global\vsize\@colht + \vbox + {\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}% + \fi + \else + \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}% + \@makecol + \@outputpage + \global\vsize\@colroom + \copy\LT@head\nobreak + \fi} +\def\LT@end@hd@ft#1{% + \LT@echunk + \ifx\LT@start\endgraf + \LT@err + {Longtable head or foot not at start of table}% + {Increase LTchunksize}% + \fi + \setbox#1\box\z@ + \LT@get@widths + \LT@bchunk} +\def\endfirsthead{\LT@end@hd@ft\LT@firsthead} +\def\endhead{\LT@end@hd@ft\LT@head} +\def\endfoot{\LT@end@hd@ft\LT@foot} +\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot} +\def\LT@startpbox#1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \vrule \@height \ht\@arstrutbox \@width \z@} +\def\LT@endpbox{% + \@finalstrut\@arstrutbox + \egroup + \the\LT@p@ftn + \global\LT@p@ftn{}% + \hfil} +\def\LT@p@ftntext#1{% + \edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}% + \global\LT@p@ftn\expandafter{\@tempa{#1}}}% + +\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen} +\endinput +%% +%% End of file `longtable.sty'. diff --git a/latex/make.bat b/latex/make.bat new file mode 100644 index 0000000..55e79ba --- /dev/null +++ b/latex/make.bat @@ -0,0 +1,31 @@ +set Dir_Old=%cd% +cd /D %~dp0 + +del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf + +set LATEX_CMD=pdflatex +%LATEX_CMD% refman +echo ---- +makeindex refman.idx +echo ---- +%LATEX_CMD% refman + +setlocal enabledelayedexpansion +set count=8 +:repeat +set content=X +for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" refman.log' ) do set content="%%~T" +if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" refman.log' ) do set content="%%~T" +if !content! == X goto :skip +set /a count-=1 +if !count! EQU 0 goto :skip + +echo ---- +%LATEX_CMD% refman +goto :repeat +:skip +endlocal +makeindex refman.idx +%LATEX_CMD% refman +cd /D %Dir_Old% +set Dir_Old= diff --git a/latex/md__read_me.tex b/latex/md__read_me.tex new file mode 100644 index 0000000..038093e --- /dev/null +++ b/latex/md__read_me.tex @@ -0,0 +1,29 @@ + +\begin{DoxyCode}{0} +\DoxyCodeLine{``` git clone https://github.com/bud-\/ea/exam\_Tech\_prog\_summer\_2021``` — клонирование репозитория} +\DoxyCodeLine{} +\DoxyCodeLine{```git branch 201-\/331\_Skrypnik``` — создание ветки} +\DoxyCodeLine{\_\_\_} +\DoxyCodeLine{\#\#\#\# Переключение веток} +\DoxyCodeLine{} +\DoxyCodeLine{```git checkout 201-\/331\_Skrypnik} + +\end{DoxyCode} + + +{\ttfamily git checkout master} \DoxyHorRuler{0} + + +{\ttfamily git branch} — список веток и отображение текущей + +{\ttfamily git add -\/-\/all} — индексирование новых, измененных, удаленных файлов + +{\ttfamily git commit -\/m \char`\"{}сообщение коммита\char`\"{}} — фиксация в коммите файлов добавленных командой git add + +{\ttfamily git merge 201-\/331\+\_\+\+Skrypnik} — слияние активной ветки с указанной + +{\ttfamily git status} -\/ статус репозитория + +{\ttfamily git tag -\/a -\/m \textquotesingle{}Message\textquotesingle{} v1.\+0 master} — создать тег с сообщением на активном коммите ветки master + +{\ttfamily git push -\/u origin master} — пушим в удаленный репозиторий ветку master \ No newline at end of file diff --git a/latex/refman.tex b/latex/refman.tex new file mode 100644 index 0000000..005dcb4 --- /dev/null +++ b/latex/refman.tex @@ -0,0 +1,188 @@ +\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}\documentclass[twoside]{book} + +%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package +\usepackage{ifthen} +\ifx\requestedLaTeXdate\undefined +\usepackage{array} +\else +\usepackage{array}[=2016-10-06] +\fi +%% +% Packages required by doxygen +\usepackage{fixltx2e} +\usepackage{doxygen} +\usepackage{graphicx} +\usepackage[utf8]{inputenc} +\usepackage{makeidx} +\PassOptionsToPackage{warn}{textcomp} +\usepackage{textcomp} +\usepackage[nointegrals]{wasysym} +\usepackage{ifxetex} + +% Font selection +\usepackage[T1]{fontenc} +\usepackage[scaled=.90]{helvet} +\usepackage{courier} +\renewcommand{\familydefault}{\sfdefault} +\usepackage{sectsty} +\allsectionsfont{% + \fontseries{bc}\selectfont% + \color{darkgray}% +} +\renewcommand{\DoxyLabelFont}{% + \fontseries{bc}\selectfont% + \color{darkgray}% +} +\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} + +% Arguments of doxygenemoji: +% 1) '::' form of the emoji, already "LaTeX"-escaped +% 2) file with the name of the emoji without the .png extension +% in case image exist use this otherwise use the '::' form +\newcommand{\doxygenemoji}[2]{% + \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}% +} +% Page & text layout +\usepackage{geometry} +\geometry{% + a4paper,% + top=2.5cm,% + bottom=2.5cm,% + left=2.5cm,% + right=2.5cm% +} +\tolerance=750 +\hfuzz=15pt +\hbadness=750 +\setlength{\emergencystretch}{15pt} +\setlength{\parindent}{0cm} +\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} +\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} +\doxynormalparskip +\makeatletter +\renewcommand{\paragraph}{% + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@parafont% + }% +} +\renewcommand{\subparagraph}{% + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@subparafont% + }% +} +\makeatother + +\makeatletter +\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} +\makeatother + +% Headers & footers +\usepackage{fancyhdr} +\pagestyle{fancyplain} +\renewcommand{\footrulewidth}{0.4pt} +% +\fancypagestyle{fancyplain}{ +\fancyhf{} +\fancyhead[LE, RO]{\bfseries\thepage} +\fancyhead[LO]{\bfseries\rightmark} +\fancyhead[RE]{\bfseries\leftmark} +\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } +} +% +\fancypagestyle{plain}{ +\fancyhf{} +\fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen } +\renewcommand{\headrulewidth}{0pt}} +% +\pagestyle{fancyplain} +% +\renewcommand{\chaptermark}[1]{% + \markboth{#1}{}% +} +\renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}% +} + +% Indices & bibliography +\usepackage{natbib} +\usepackage[titles]{tocloft} +\setcounter{tocdepth}{3} +\setcounter{secnumdepth}{5} +\makeindex + +\usepackage{newunicodechar} + \newunicodechar{⁻}{${}^{-}$}% Superscript minus + \newunicodechar{²}{${}^{2}$}% Superscript two + \newunicodechar{³}{${}^{3}$}% Superscript three + +% Hyperlinks (required, but should be loaded last) +\ifpdf + \usepackage[pdftex,pagebackref=true]{hyperref} +\else + \ifxetex + \usepackage[pagebackref=true]{hyperref} + \else + \usepackage[ps2pdf,pagebackref=true]{hyperref} + \fi +\fi + +\hypersetup{% + colorlinks=true,% + linkcolor=blue,% + citecolor=blue,% + unicode% +} + +% Custom commands +\newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}% +} + +\usepackage{caption} +\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} + +\usepackage{etoc} +\etocsettocstyle{\doxytocparskip}{\doxynormalparskip} +\renewcommand{\numberline}[1]{#1~} +%===== C O N T E N T S ===== + +\begin{document} +\raggedbottom + +% Titlepage & ToC +\hypersetup{pageanchor=false, + bookmarksnumbered=true, + pdfencoding=unicode + } +\pagenumbering{alph} +\begin{titlepage} +\vspace*{7cm} +\begin{center}% +{\Large My Project }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.9.1}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\hypersetup{pageanchor=true} + +%--- Begin generated contents --- +\chapter{Read\+Me} +\label{md__read_me} +\Hypertarget{md__read_me} +\input{md__read_me} +%--- End generated contents --- + +% Index +\backmatter +\newpage +\phantomsection +\clearemptydoublepage +\addcontentsline{toc}{chapter}{\indexname} +\printindex + +\end{document} diff --git a/latex/tabu_doxygen.sty b/latex/tabu_doxygen.sty new file mode 100644 index 0000000..3f17d1d --- /dev/null +++ b/latex/tabu_doxygen.sty @@ -0,0 +1,2557 @@ +%% +%% This is file `tabu.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tabu.dtx (with options: `package') +%% +%% This is a generated file. +%% Copyright (FC) 2010-2011 - lppl +%% +%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars +%% +%% ********************************************************************************************** +%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal +%% \begin{tabu} to { preamble } => target specified +%% \begin{tabu} spread { preamble } => target relative to the ``natural width'' +%% +%% tabu works in text and in math modes. +%% +%% X columns: automatic width adjustment + horizontal and vertical alignment +%% \begin{tabu} { X[4c] X[1c] X[-2ml] } +%% +%% Horizontal lines and / or leaders: +%% \hline\hline => double horizontal line +%% \firsthline\hline => for nested tabulars +%% \lasthline\hline => for nested tabulars +%% \tabucline[line spec]{column-column} => ``funny'' lines (dash/leader) +%% Automatic lines / leaders : +%% \everyrow{\hline\hline} +%% +%% Vertical lines and / or leaders: +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] } +%% \begin{tabu} { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] } +%% +%% Fixed vertical spacing adjustment: +%% \extrarowheight= \extrarowdepth= +%% or: \extrarowsep= => may be prefixed by \global +%% +%% Dynamic vertical spacing adjustment: +%% \abovetabulinesep= \belowtabulinesep= +%% or: \tabulinesep= => may be prefixed by \global +%% +%% delarray.sty shortcuts: in math and text modes +%% \begin{tabu} .... \({ preamble }\) +%% +%% Algorithms reports: +%% \tracingtabu=1 \tracingtabu=2 +%% +%% ********************************************************************************************** +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% +%% This work consists of the main source file tabu.dtx +%% and the derived files +%% tabu.sty, tabu.pdf, tabu.ins +%% +%% tabu : Flexible LaTeX tabulars +%% lppl copyright 2010-2011 by FC +%% + +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen] +\RequirePackage{array}[2008/09/09] +\RequirePackage{varwidth}[2009/03/30] +\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} +\let\tabu@AtEnd\@empty +\def\TMP@EnsureCode#1={% + \edef\tabu@AtEnd{\tabu@AtEnd + \catcode#1 \the\catcode#1}% + \catcode#1=% +}% \TMP@EnsureCode +\TMP@EnsureCode 33 = 12 % ! +\TMP@EnsureCode 58 = 12 % : (for siunitx) +\TMP@EnsureCode124 = 12 % | +\TMP@EnsureCode 36 = 3 % $ = math shift +\TMP@EnsureCode 38 = 4 % & = tab alignment character +\TMP@EnsureCode 32 = 10 % space +\TMP@EnsureCode 94 = 7 % ^ +\TMP@EnsureCode 95 = 8 % _ +%% Constants -------------------------------------------------------- +\newcount \c@taburow \def\thetaburow {\number\c@taburow} +\newcount \tabu@nbcols +\newcount \tabu@cnt +\newcount \tabu@Xcol +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcount \tabu@alloc \tabu@alloc=\m@ne +\newcount \tabu@nested +\def\tabu@alloc@{\global\advance\tabu@alloc \@ne \tabu@nested\tabu@alloc} +\newdimen \tabu@target +\newdimen \tabu@spreadtarget +\newdimen \tabu@naturalX +\newdimen \tabucolX +\let\tabu@DELTA \@tempdimc +\let\tabu@thick \@tempdima +\let\tabu@on \@tempdimb +\let\tabu@off \@tempdimc +\newdimen \tabu@Xsum +\newdimen \extrarowdepth +\newdimen \abovetabulinesep +\newdimen \belowtabulinesep +\newdimen \tabustrutrule \tabustrutrule \z@ +\newtoks \tabu@thebody +\newtoks \tabu@footnotes +\newsavebox \tabu@box +\newsavebox \tabu@arstrutbox +\newsavebox \tabu@hleads +\newsavebox \tabu@vleads +\newif \iftabu@colortbl +\newif \iftabu@siunitx +\newif \iftabu@measuring +\newif \iftabu@spread +\newif \iftabu@negcoef +\newif \iftabu@everyrow +\def\tabu@everyrowtrue {\global\let\iftabu@everyrow \iftrue} +\def\tabu@everyrowfalse{\global\let\iftabu@everyrow \iffalse} +\newif \iftabu@long +\newif \iftabuscantokens +\def\tabu@rescan {\tabu@verbatim \scantokens } +%% Utilities (for internal usage) ----------------------------------- +\def\tabu@gobblespace #1 {#1} +\def\tabu@gobbletoken #1#2{#1} +\def\tabu@gobbleX{\futurelet\@let@token \tabu@gobblex} +\def\tabu@gobblex{\if ^^J\noexpand\@let@token \expandafter\@gobble + \else\ifx \@sptoken\@let@token + \expandafter\tabu@gobblespace\expandafter\tabu@gobbleX + \fi\fi +}% \tabu@gobblex +\def\tabu@X{^^J} +{\obeyspaces +\global\let\tabu@spxiii= % saves an active space (for \ifx) +\gdef\tabu@@spxiii{ }} +\def\tabu@ifenvir {% only for \multicolumn + \expandafter\tabu@if@nvir\csname\@currenvir\endcsname +}% \tabu@ifenvir +\def\tabu@if@nvir #1{\csname @\ifx\tabu#1first\else + \ifx\longtabu#1first\else + second\fi\fi oftwo\endcsname +}% \tabu@ifenvir +\def\tabu@modulo #1#2{\numexpr\ifnum\numexpr#1=\z@ 0\else #1-(#1-(#2-1)/2)/(#2)*(#2)\fi} +{\catcode`\&=3 +\gdef\tabu@strtrim #1{% #1 = control sequence to trim + \ifodd 1\ifx #1\@empty \else \ifx #1\space \else 0\fi \fi + \let\tabu@c@l@r \@empty \let#1\@empty + \else \expandafter \tabu@trimspaces #1\@nnil + \fi +}% \tabu@strtrim +\gdef\tabu@trimspaces #1\@nnil{\let\tabu@c@l@r=#2\tabu@firstspace .#1& }% +\gdef\tabu@firstspace #1#2#3 &{\tabu@lastspace #2#3&} +\gdef\tabu@lastspace #1{\def #3{#1}% + \ifx #3\tabu@c@l@r \def\tabu@c@l@r{\protect\color{#1}}\expandafter\remove@to@nnil \fi + \tabu@trimspaces #1\@nnil} +}% \catcode +\def\tabu@sanitizearg #1#2{{% + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef#2{#1}\tabu@strtrim#2\@onelevel@sanitize#2% + \expandafter}\expandafter\def\expandafter#2\expandafter{#2}% +}% \tabu@sanitizearg +\def\tabu@textbar #1{\begingroup \endlinechar\m@ne \scantokens{\def\:{|}}% + \expandafter\endgroup \expandafter#1\:% !!! semi simple group !!! +}% \tabu@textbar +\def\tabu@everyrow@bgroup{\iftabu@everyrow \begingroup \else \noalign{\ifnum0=`}\fi \fi} +\def\tabu@everyrow@egroup{% + \iftabu@everyrow \expandafter \endgroup \the\toks@ + \else \ifnum0=`{\fi}% + \fi +}% \tabu@everyrow@egroup +\def\tabu@arstrut {\global\setbox\@arstrutbox \hbox{\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \z@}% +}% \tabu@arstrut +\def\tabu@rearstrut {% + \@tempdima \arraystretch\dimexpr\ht\strutbox+\extrarowheight \relax + \@tempdimb \arraystretch\dimexpr\dp\strutbox+\extrarowdepth \relax + \ifodd 1\ifdim \ht\@arstrutbox=\@tempdima + \ifdim \dp\@arstrutbox=\@tempdimb 0 \fi\fi + \tabu@mkarstrut + \fi +}% \tabu@rearstrut +\def\tabu@@DBG #1{\ifdim\tabustrutrule>\z@ \color{#1}\fi} +\def\tabu@DBG@arstrut {\global\setbox\@arstrutbox + \hbox to\z@{\hbox to\z@{\hss + {\tabu@DBG{cyan}\vrule + height \arraystretch \dimexpr\ht\strutbox+\extrarowheight + depth \z@ + width \tabustrutrule}\kern-\tabustrutrule + {\tabu@DBG{pink}\vrule + height \z@ + depth \arraystretch \dimexpr\dp\strutbox+\extrarowdepth + width \tabustrutrule}}}% +}% \tabu@DBG@arstrut +\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@ + \@nextchar}}% +\def\tabu@savedecl{\ifcat$\d@llarend\else + \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode +}% \tabu@savedecl +\def\tabu@finalstrut #1{\unskip\ifhmode\nobreak\fi\vrule height\z@ depth\z@ width\z@} +\newcommand*\tabuDisableCommands {\g@addto@macro\tabu@trialh@@k } +\let\tabu@trialh@@k \@empty +\def\tabu@nowrite #1#{{\afterassignment}\toks@} +\let\tabu@write\write +\let\tabu@immediate\immediate +\def\tabu@WRITE{\begingroup + \def\immediate\write{\aftergroup\endgroup + \tabu@immediate\tabu@write}% +}% \tabu@WRITE +\expandafter\def\expandafter\tabu@GenericError\expandafter{% + \expandafter\tabu@WRITE\GenericError} +\def\tabu@warn{\tabu@WRITE\PackageWarning{tabu}} +\def\tabu@noxfootnote [#1]{\@gobble} +\def\tabu@nocolor #1#{\@gobble} +\newcommand*\tabu@norowcolor[2][]{} +\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}% + \futurelet\@let@token \tabu@m@ybesiunitx} +\def\tabu@m@ybesiunitx #1{\def\tabu@m@ybesiunitx {% + \ifx #1\@let@token \let\tabu@cellleft \@empty \let\tabu@cellright \@empty \fi + \tabu@temp}% \tabu@m@ybesiunitx +}\expandafter\tabu@m@ybesiunitx \csname siunitx_table_collect_begin:Nn\endcsname +\def\tabu@celllalign@def #1{\def\tabu@celllalign{\tabu@maybesiunitx{#1}}}% +%% Fixed vertical spacing adjustment: \extrarowsep ------------------ +\newcommand*\extrarowsep{\edef\tabu@C@extra{\the\numexpr\tabu@C@extra+1}% + \iftabu@everyrow \aftergroup\tabu@Gextra + \else \aftergroup\tabu@n@Gextra + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@extra} \tabu@extra +}% \extrarowsep +\def\tabu@extra {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setextrasep \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extra +\def\tabu@setextra #1#2{\def\tabu@temp{\tabu@extr@#1#2}\afterassignment\tabu@temp#2} +\def\tabu@extr@ #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setextra\extrarowdepth \extrarowheight}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setextra\extrarowheight \extrarowdepth}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth + \fi \tabu@temp}% +}% \tabu@extr@ +\def\tabu@setextrasep {\extrarowheight=\extrarowdepth + \tabu@Gsave \tabu@G@extra \tabu@C@extra \extrarowheight \extrarowdepth +}% \tabu@setextrasep +\def\tabu@Gextra{\ifx \tabu@G@extra\@empty \else {\tabu@Rextra}\fi} +\def\tabu@n@Gextra{\ifx \tabu@G@extra\@empty \else \noalign{\tabu@Rextra}\fi} +\def\tabu@Rextra{\tabu@Grestore \tabu@G@extra \tabu@C@extra} +\let\tabu@C@extra \z@ +\let\tabu@G@extra \@empty +%% Dynamic vertical spacing adjustment: \tabulinesep ---------------- +\newcommand*\tabulinesep{\edef\tabu@C@linesep{\the\numexpr\tabu@C@linesep+1}% + \iftabu@everyrow \aftergroup\tabu@Glinesep + \else \aftergroup\tabu@n@Glinesep + \fi + \@ifnextchar={\tabu@gobbletoken\tabu@linesep} \tabu@linesep +}% \tabulinesep +\def\tabu@linesep {\@ifnextchar_% + {\tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}} + {\ifx ^\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}}% + \else \let\tabu@temp \@empty + \afterassignment \tabu@setlinesep \abovetabulinesep + \fi \tabu@temp}% +}% \tabu@linesep +\def\tabu@setsep #1#2{\def\tabu@temp{\tabu@sets@p#1#2}\afterassignment\tabu@temp#2} +\def\tabu@sets@p #1#2{\@ifnextchar^% + {\tabu@gobbletoken{\tabu@setsep\belowtabulinesep \abovetabulinesep}} + {\ifx _\@let@token \def\tabu@temp{% + \tabu@gobbletoken{\tabu@setsep\abovetabulinesep \belowtabulinesep}}% + \else \let\tabu@temp \@empty + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep + \fi \tabu@temp}% +}% \tabu@sets@p +\def\tabu@setlinesep {\belowtabulinesep=\abovetabulinesep + \tabu@Gsave \tabu@G@linesep \tabu@C@linesep \abovetabulinesep \belowtabulinesep +}% \tabu@setlinesep +\def\tabu@Glinesep{\ifx \tabu@G@linesep\@empty \else {\tabu@Rlinesep}\fi} +\def\tabu@n@Glinesep{\ifx \tabu@G@linesep\@empty \else \noalign{\tabu@Rlinesep}\fi} +\def\tabu@Rlinesep{\tabu@Grestore \tabu@G@linesep \tabu@C@linesep} +\let\tabu@C@linesep \z@ +\let\tabu@G@linesep \@empty +%% \global\extrarowsep and \global\tabulinesep ------------------- +\def\tabu@Gsave #1#2#3#4{\xdef#1{#1% + \toks#2{\toks\the\currentgrouplevel{\global#3\the#3\global#4\the#4}}}% +}% \tabu@Gsave +\def\tabu@Grestore#1#2{% + \toks#2{}#1\toks\currentgrouplevel\expandafter{\expandafter}\the\toks#2\relax + \ifcat$\the\toks\currentgrouplevel$\else + \global\let#1\@empty \global\let#2\z@ + \the\toks\currentgrouplevel + \fi +}% \tabu@Grestore +%% Setting code for every row --------------------------------------- +\newcommand*\everyrow{\tabu@everyrow@bgroup + \tabu@start \z@ \tabu@stop \z@ \tabu@evrstartstop +}% \everyrow +\def\tabu@evrstartstop {\@ifnextchar^% + {\afterassignment \tabu@evrstartstop \tabu@stop=}% + {\ifx ^\@let@token + \afterassignment\tabu@evrstartstop \tabu@start=% + \else \afterassignment\tabu@everyr@w \toks@ + \fi}% +}% \tabu@evrstartstop +\def\tabu@everyr@w {% + \xdef\tabu@everyrow{% + \noexpand\tabu@everyrowfalse + \let\noalign \relax + \noexpand\tabu@rowfontreset + \iftabu@colortbl \noexpand\tabu@rc@ \fi % \taburowcolors + \let\noexpand\tabu@docline \noexpand\tabu@docline@evr + \the\toks@ + \noexpand\tabu@evrh@@k + \noexpand\tabu@rearstrut + \global\advance\c@taburow \@ne}% + \iftabu@everyrow \toks@\expandafter + {\expandafter\def\expandafter\tabu@evr@L\expandafter{\the\toks@}\ignorespaces}% + \else \xdef\tabu@evr@G{\the\toks@}% + \fi + \tabu@everyrow@egroup +}% \tabu@everyr@w +\def\tabu@evr {\def\tabu@evrh@@k} % for internal use only +\tabu@evr{} +%% line style and leaders ------------------------------------------- +\newcommand*\newtabulinestyle [1]{% + {\@for \@tempa :=#1\do{\expandafter\tabu@newlinestyle \@tempa==\@nil}}% +}% \newtabulinestyle +\def\tabu@newlinestyle #1=#2=#3\@nil{\tabu@getline {#2}% + \tabu@sanitizearg {#1}\@tempa + \ifodd 1\ifx \@tempa\@empty \ifdefined\tabu@linestyle@ 0 \fi\fi + \global\expandafter\let + \csname tabu@linestyle@\@tempa \endcsname =\tabu@thestyle \fi +}% \tabu@newlinestyle +\newcommand*\tabulinestyle [1]{\tabu@everyrow@bgroup \tabu@getline{#1}% + \iftabu@everyrow + \toks@\expandafter{\expandafter \def \expandafter + \tabu@ls@L\expandafter{\tabu@thestyle}\ignorespaces}% + \gdef\tabu@ls@{\tabu@ls@L}% + \else + \global\let\tabu@ls@G \tabu@thestyle + \gdef\tabu@ls@{\tabu@ls@G}% + \fi + \tabu@everyrow@egroup +}% \tabulinestyle +\newcommand*\taburulecolor{\tabu@everyrow@bgroup \tabu@textbar \tabu@rulecolor} +\def\tabu@rulecolor #1{\toks@{}% + \def\tabu@temp #1##1#1{\tabu@ruledrsc{##1}}\@ifnextchar #1% + \tabu@temp + \tabu@rulearc +}% \tabu@rulecolor +\def\tabu@ruledrsc #1{\edef\tabu@temp{#1}\tabu@strtrim\tabu@temp + \ifx \tabu@temp\@empty \def\tabu@temp{\tabu@rule@drsc@ {}{}}% + \else \edef\tabu@temp{\noexpand\tabu@rule@drsc@ {}{\tabu@temp}}% + \fi + \tabu@temp +}% \tabu@ruledrsc@ +\def\tabu@ruledrsc@ #1#{\tabu@rule@drsc@ {#1}} +\def\tabu@rule@drsc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@{\let\CT@drsc@ \relax}% + \else \toks@{\def\CT@drsc@{\color #1{#2}}}% + \fi + \else + \ifx \\#1#2\\\global\let\CT@drsc@ \relax + \else \gdef\CT@drsc@{\color #1{#2}}% + \fi + \fi + \tabu@rulearc +}% \tabu@rule@drsc@ +\def\tabu@rulearc #1#{\tabu@rule@arc@ {#1}} +\def\tabu@rule@arc@ #1#2{% + \iftabu@everyrow + \ifx \\#1#2\\\toks@\expandafter{\the\toks@ \def\CT@arc@{}}% + \else \toks@\expandafter{\the\toks@ \def\CT@arc@{\color #1{#2}}}% + \fi + \toks@\expandafter{\the\toks@ + \let\tabu@arc@L \CT@arc@ + \let\tabu@drsc@L \CT@drsc@ + \ignorespaces}% + \else + \ifx \\#1#2\\\gdef\CT@arc@{}% + \else \gdef\CT@arc@{\color #1{#2}}% + \fi + \global\let\tabu@arc@G \CT@arc@ + \global\let\tabu@drsc@G \CT@drsc@ + \fi + \tabu@everyrow@egroup +}% \tabu@rule@arc@ +\def\taburowcolors {\tabu@everyrow@bgroup \@testopt \tabu@rowcolors 1} +\def\tabu@rowcolors [#1]#2#{\tabu@rowc@lors{#1}{#2}} +\def\tabu@rowc@lors #1#2#3{% + \toks@{}\@defaultunits \count@ =\number0#2\relax \@nnil + \@defaultunits \tabu@start =\number0#1\relax \@nnil + \ifnum \count@<\tw@ \count@=\tw@ \fi + \advance\tabu@start \m@ne + \ifnum \tabu@start<\z@ \tabu@start \z@ \fi + \tabu@rowcolorseries #3\in@..\in@ \@nnil +}% \tabu@rowcolors +\def\tabu@rowcolorseries #1..#2\in@ #3\@nnil {% + \ifx \in@#1\relax + \iftabu@everyrow \toks@{\def\tabu@rc@{}\let\tabu@rc@L \tabu@rc@}% + \else \gdef\tabu@rc@{}\global\let\tabu@rc@G \tabu@rc@ + \fi + \else + \ifx \\#2\\\tabu@rowcolorserieserror \fi + \tabu@sanitizearg{#1}\tabu@temp + \tabu@sanitizearg{#2}\@tempa + \advance\count@ \m@ne + \iftabu@everyrow + \def\tabu@rc@ ##1##2##3##4{\def\tabu@rc@{% + \ifnum ##2=\c@taburow + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{##3}{##4}\fi + \ifnum \c@taburow<##2 \else + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\z@ + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}\fi}% + }\edef\x{\noexpand\tabu@rc@ {\the\count@} + {\the\tabu@start} + {\tabu@temp} + {\@tempa}% + }\x + \toks@\expandafter{\expandafter\def\expandafter\tabu@rc@\expandafter{\tabu@rc@}}% + \toks@\expandafter{\the\toks@ \let\tabu@rc@L \tabu@rc@ \ignorespaces}% + \else % inside \noalign + \definecolorseries{tabu@rcseries@\the\tabu@nested}{rgb}{last}{\tabu@temp}{\@tempa}% + \expandafter\resetcolorseries\expandafter[\the\count@]{tabu@rcseries@\the\tabu@nested}% + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \let\noalign \relax \rowcolor{tabu@rc@\the\tabu@nested}% + \def\tabu@rc@ ##1##2{\gdef\tabu@rc@{% + \ifnum \tabu@modulo {\c@taburow-##2}{##1+1}=\@ne + \resetcolorseries[{##1}]{tabu@rcseries@\the\tabu@nested}\fi + \xglobal\colorlet{tabu@rc@\the\tabu@nested}{tabu@rcseries@\the\tabu@nested!!+}% + \rowcolor{tabu@rc@\the\tabu@nested}}% + }\edef\x{\noexpand\tabu@rc@{\the\count@}{\the\c@taburow}}\x + \global\let\tabu@rc@G \tabu@rc@ + \fi + \fi + \tabu@everyrow@egroup +}% \tabu@rowcolorseries +\tabuDisableCommands {\let\tabu@rc@ \@empty } +\def\tabu@rowcolorserieserror {\PackageError{tabu} + {Invalid syntax for \string\taburowcolors + \MessageBreak Please look at the documentation!}\@ehd +}% \tabu@rowcolorserieserror +\newcommand*\tabureset {% + \tabulinesep=\z@ \extrarowsep=\z@ \extratabsurround=\z@ + \tabulinestyle{}\everyrow{}\taburulecolor||{}\taburowcolors{}% +}% \tabureset +%% Parsing the line styles ------------------------------------------ +\def\tabu@getline #1{\begingroup + \csname \ifcsname if@safe@actives\endcsname % + @safe@activestrue\else + relax\fi \endcsname + \edef\tabu@temp{#1}\tabu@sanitizearg{#1}\@tempa + \let\tabu@thestyle \relax + \ifcsname tabu@linestyle@\@tempa \endcsname + \edef\tabu@thestyle{\endgroup + \def\tabu@thestyle{\expandafter\noexpand + \csname tabu@linestyle@\@tempa\endcsname}% + }\tabu@thestyle + \else \expandafter\tabu@definestyle \tabu@temp \@nil + \fi +}% \tabu@getline +\def\tabu@definestyle #1#2\@nil {\endlinechar \m@ne \makeatletter + \tabu@thick \maxdimen \tabu@on \maxdimen \tabu@off \maxdimen + \let\tabu@c@lon \@undefined \let\tabu@c@loff \@undefined + \ifodd 1\ifcat .#1\else\ifcat\relax #1\else 0\fi\fi % catcode 12 or non expandable cs + \def\tabu@temp{\tabu@getparam{thick}}% + \else \def\tabu@temp{\tabu@getparam{thick}\maxdimen}% + \fi + {% + \let\tabu@ \relax + \def\:{\obeyspaces \tabu@oXIII \tabu@commaXIII \edef\:}% (space active \: happy ;-)) + \scantokens{\:{\tabu@temp #1#2 \tabu@\tabu@}}% + \expandafter}\expandafter + \def\expandafter\:\expandafter{\:}% line spec rewritten now ;-) + \def\;{\def\:}% + \scantokens\expandafter{\expandafter\;\expandafter{\:}}% space is now inactive (catcode 10) + \let\tabu@ \tabu@getcolor \:% all arguments are ready now ;-) + \ifdefined\tabu@c@lon \else \let\tabu@c@lon\@empty \fi + \ifx \tabu@c@lon\@empty \def\tabu@c@lon{\CT@arc@}\fi + \ifdefined\tabu@c@loff \else \let\tabu@c@loff \@empty \fi + \ifdim \tabu@on=\maxdimen \ifdim \tabu@off<\maxdimen + \tabu@on \tabulineon \fi\fi + \ifdim \tabu@off=\maxdimen \ifdim \tabu@on<\maxdimen + \tabu@off \tabulineoff \fi\fi + \ifodd 1\ifdim \tabu@off=\maxdimen \ifdim \tabu@on=\maxdimen 0 \fi\fi + \in@true % + \else \in@false % + \fi + \ifdim\tabu@thick=\maxdimen \def\tabu@thick{\arrayrulewidth}% + \else \edef\tabu@thick{\the\tabu@thick}% + \fi + \edef \tabu@thestyle ##1##2{\endgroup + \def\tabu@thestyle{% + \ifin@ \noexpand\tabu@leadersstyle {\tabu@thick} + {\the\tabu@on}{##1} + {\the\tabu@off}{##2}% + \else \noexpand\tabu@rulesstyle + {##1\vrule width \tabu@thick}% + {##1\leaders \hrule height \tabu@thick \hfil}% + \fi}% + }\expandafter \expandafter + \expandafter \tabu@thestyle \expandafter + \expandafter \expandafter + {\expandafter\tabu@c@lon\expandafter}\expandafter{\tabu@c@loff}% +}% \tabu@definestyle +{\catcode`\O=\active \lccode`\O=`\o \catcode`\,=\active + \lowercase{\gdef\tabu@oXIII {\catcode`\o=\active \let O=\tabu@oxiii}} + \gdef\tabu@commaXIII {\catcode`\,=\active \let ,=\space} +}% \catcode +\def\tabu@oxiii #1{% + \ifcase \ifx n#1\z@ \else + \ifx f#1\@ne\else + \tw@ \fi\fi + \expandafter\tabu@onxiii + \or \expandafter\tabu@ofxiii + \else o% + \fi#1}% +\def\tabu@onxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx \tabu@spxiii#2\@ne\else + \tw@ \fi\fi\fi + \tabu@getparam{on}#2\expandafter\@gobble + \or \expandafter\tabu@onxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}}% +\def\tabu@ofxiii #1#2{% + \ifx #2f\expandafter\tabu@offxiii + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@offxiii #1#2{% + \ifcase \ifx !#2\tw@ \else + \ifcat.\noexpand#2\z@ \else + \ifx\tabu@spxiii#2\@ne \else + \tw@ \fi\fi\fi + \tabu@getparam{off}#2\expandafter\@gobble + \or \expandafter\tabu@offxiii % (space is active) + \else o\expandafter\@firstofone + \fi{#1#2}} +\def\tabu@getparam #1{\tabu@ \csname tabu@#1\endcsname=} +\def\tabu@getcolor #1{% \tabu@ <- \tabu@getcolor after \edef + \ifx \tabu@#1\else % no more spec + \let\tabu@theparam=#1\afterassignment \tabu@getc@l@r #1\fi +}% \tabu@getcolor +\def\tabu@getc@l@r #1\tabu@ {% + \def\tabu@temp{#1}\tabu@strtrim \tabu@temp + \ifx \tabu@temp\@empty + \else%\ifcsname \string\color@\tabu@temp \endcsname % if the color exists + \ifx \tabu@theparam \tabu@off \let\tabu@c@loff \tabu@c@l@r + \else \let\tabu@c@lon \tabu@c@l@r + \fi + %\else \tabu@warncolour{\tabu@temp}% + \fi%\fi + \tabu@ % next spec +}% \tabu@getc@l@r +\def\tabu@warncolour #1{\PackageWarning{tabu} + {Color #1 is not defined. Default color used}% +}% \tabu@warncolour +\def\tabu@leadersstyle #1#2#3#4#5{\def\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}% + \ifx \tabu@leaders\tabu@leaders@G \else + \tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\fi +}% \tabu@leadersstyle +\def\tabu@rulesstyle #1#2{\let\tabu@leaders \@undefined + \gdef\tabu@thevrule{#1}\gdef\tabu@thehrule{#2}% +}% \tabu@rulesstyle +%% The leaders boxes ------------------------------------------------ +\def\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color + {\let\color \tabu@color % => during trials -> \color = \tabu@nocolor + {% % but the leaders boxes should have colors ! + \def\@therule{\vrule}\def\@thick{height}\def\@length{width}% + \def\@box{\hbox}\def\@unbox{\unhbox}\def\@elt{\wd}% + \def\@skip{\hskip}\def\@ss{\hss}\def\tabu@leads{\tabu@hleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thehleaders \tabu@theleaders + }% + {% + \def\@therule{\hrule}\def\@thick{width}\def\@length{height}% + \def\@box{\vbox}\def\@unbox{\unvbox}\def\@elt{\ht}% + \def\@skip{\vskip}\def\@ss{\vss}\def\tabu@leads{\tabu@vleads}% + \tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}% + \global\let\tabu@thevleaders \tabu@theleaders + }% + \gdef\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}% + }% +}% \tabu@LEADERS +\def\tabu@therule #1#2{\@therule \@thick#1\@length\dimexpr#2/2 \@depth\z@} +\def\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color + \global\setbox \tabu@leads=\@box{% + {#3\tabu@therule{#1}{#2}}% + \ifx\\#5\\\@skip#4\else{#5\tabu@therule{#1}{#4*2}}\fi + {#3\tabu@therule{#1}{#2}}}% + \global\setbox\tabu@leads=\@box to\@elt\tabu@leads{\@ss + {#3\tabu@therule{#1}{#2}}\@unbox\tabu@leads}% + \edef\tabu@theleaders ##1{\def\noexpand\tabu@theleaders {% + {##1\tabu@therule{#1}{#2}}% + \xleaders \copy\tabu@leads \@ss + \tabu@therule{0pt}{-#2}{##1\tabu@therule{#1}{#2}}}% + }\tabu@theleaders{#3}% +}% \tabu@l@@d@rs +%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ---------- +\newcommand*\tabu {\tabu@longfalse + \ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}% + \else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endtabu*\endcsname{\endtabu}% + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {tabu} +\let\tabu@tabular \tabular % +\expandafter\def\csname tabu*\endcsname{\tabuscantokenstrue \tabu} +\newcommand*\longtabu {\tabu@longtrue + \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi + \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% + \LTchunksize=\@M + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% + \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } + \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget +}% {longtabu} +\expandafter\def\csname longtabu*\endcsname{\tabuscantokenstrue \longtabu} +\def\tabu@nolongtabu{\PackageError{tabu} + {longtabu requires the longtable package}\@ehd} +%% Read the target and then : \tabular or \@array ------------------ +\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget } +\def\tabu@sett@rget {\tabu@target \z@ + \ifcase \ifx \bgroup\@let@token \z@ \else + \ifx \@sptoken\@let@token \@ne \else + \if t\@let@token \tw@ \else + \if s\@let@token \thr@@\else + \z@\fi\fi\fi\fi + \expandafter\tabu@begin + \or \expandafter\tabu@gobblespace\expandafter\tabu@settarget + \or \expandafter\tabu@to + \or \expandafter\tabu@spread + \fi +}% \tabu@sett@rget +\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} +\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} +\def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target } +\def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoalt@rget } +\def\tabu@linegoalt@rget {% + \ifx \tabu@temp\LNGL@setlinegoal + \LNGL@setlinegoal \expandafter \@firstoftwo \fi % @gobbles \LNGL@setlinegoal + \tabu@begin +}% \tabu@linegoalt@rget +\def\tabu@begin #1#{% + \iftabu@measuring \expandafter\tabu@nestedmeasure \fi + \ifdim \tabu@target=\z@ \let\tabu@halignto \@empty + \else \edef\tabu@halignto{\tabu@halignto\the\tabu@target}% + \fi + \@testopt \tabu@tabu@ \tabu@aligndefault #1\@nil +}% \tabu@begin +\long\def\tabu@tabu@ [#1]#2\@nil #3{\tabu@setup + \def\tabu@align {#1}\def\tabu@savedpream{\NC@find #3}% + \tabu@ [\tabu@align ]#2{#3\tabu@rewritefirst }% +}% \tabu@tabu@ +\def\tabu@nestedmeasure {% + \ifodd 1\iftabu@spread \else \ifdim\tabu@target=\z@ \else 0 \fi\fi\relax + \tabu@spreadtrue + \else \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}% + \expandafter\tabu@collectbody\expandafter\tabu@quickrule + \expandafter\endgroup + \fi +}% \tabu@nestedmeasure +\def\tabu@quickrule {\indent\vrule height\z@ depth\z@ width\tabu@target} +%% \tabu@setup \tabu@init \tabu@indent +\def\tabu@setup{\tabu@alloc@ + \ifcase \tabu@nested + \ifmmode \else \iftabu@spread\else \ifdim\tabu@target=\z@ + \let\tabu@afterendpar \par + \fi\fi\fi + \def\tabu@aligndefault{c}\tabu@init \tabu@indent + \else % + \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth + \fi + \let\tabu@thetarget \tabudefaulttarget \let\tabu@restored \@undefined + \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% + \everycr{}\let\@startpbox \tabu@startpbox % for nested tabu inside longtabu... + \let\@endpbox \tabu@endpbox % idem " " " " " " + \let\@tabarray \tabu@tabarray % idem " " " " " " + \tabu@setcleanup \tabu@setreset +}% \tabu@setup +\def\tabu@init{\tabu@starttimer \tabu@measuringfalse + \edef\tabu@hfuzz {\the\dimexpr\hfuzz+1sp}\global\tabu@footnotes{}% + \let\firsthline \tabu@firsthline \let\lasthline \tabu@lasthline + \let\firstline \tabu@firstline \let\lastline \tabu@lastline + \let\hline \tabu@hline \let\@xhline \tabu@xhline + \let\color \tabu@color \let\@arstrutbox \tabu@arstrutbox + \iftabu@colortbl\else\let\LT@@hline \tabu@LT@@hline \fi + \tabu@trivlist % + \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext + \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering + \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft + \let\tabudecimal \tabu@tabudecimal \let\Centering \tabu@Centering + \let\RaggedRight \tabu@RaggedRight \let\RaggedLeft \tabu@RaggedLeft + \let\justifying \tabu@justifying \let\rowfont \tabu@rowfont + \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x + \let\tabu@@everycr \everycr \let\tabu@@everypar \everypar + \let\tabu@prepnext@tokORI \prepnext@tok\let\prepnext@tok \tabu@prepnext@tok + \let\tabu@multicolumnORI\multicolumn \let\multicolumn \tabu@multicolumn + \let\tabu@startpbox \@startpbox % for nested tabu inside longtabu pfff !!! + \let\tabu@endpbox \@endpbox % idem " " " " " " " + \let\tabu@tabarray \@tabarray % idem " " " " " " " + \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) + \iftabu@colortbl\CT@everycr\expandafter{\expandafter\iftabu@everyrow \the\CT@everycr \fi}\fi +}% \tabu@init +\def\tabu@indent{% correction for indentation + \ifdim \parindent>\z@\ifx \linewidth\tabudefaulttarget + \everypar\expandafter{% + \the\everypar\everypar\expandafter{\the\everypar}% + \setbox\z@=\lastbox + \ifdim\wd\z@>\z@ \edef\tabu@thetarget + {\the\dimexpr -\wd\z@+\tabudefaulttarget}\fi + \box\z@}% + \fi\fi +}% \tabu@indent +\def\tabu@setcleanup {% saves last global assignments + \ifodd 1\ifmmode \else \iftabu@long \else 0\fi\fi\relax + \def\tabu@aftergroupcleanup{% + \def\tabu@aftergroupcleanup{\aftergroup\tabu@cleanup}}% + \else + \def\tabu@aftergroupcleanup{% + \aftergroup\aftergroup\aftergroup\tabu@cleanup + \let\tabu@aftergroupcleanup \relax}% + \fi + \let\tabu@arc@Gsave \tabu@arc@G + \let\tabu@arc@G \tabu@arc@L % + \let\tabu@drsc@Gsave \tabu@drsc@G + \let\tabu@drsc@G \tabu@drsc@L % + \let\tabu@ls@Gsave \tabu@ls@G + \let\tabu@ls@G \tabu@ls@L % + \let\tabu@rc@Gsave \tabu@rc@G + \let\tabu@rc@G \tabu@rc@L % + \let\tabu@evr@Gsave \tabu@evr@G + \let\tabu@evr@G \tabu@evr@L % + \let\tabu@celllalign@save \tabu@celllalign + \let\tabu@cellralign@save \tabu@cellralign + \let\tabu@cellleft@save \tabu@cellleft + \let\tabu@cellright@save \tabu@cellright + \let\tabu@@celllalign@save \tabu@@celllalign + \let\tabu@@cellralign@save \tabu@@cellralign + \let\tabu@@cellleft@save \tabu@@cellleft + \let\tabu@@cellright@save \tabu@@cellright + \let\tabu@rowfontreset@save \tabu@rowfontreset + \let\tabu@@rowfontreset@save\tabu@@rowfontreset + \let\tabu@rowfontreset \@empty + \edef\tabu@alloc@save {\the\tabu@alloc}% restore at \tabu@reset + \edef\c@taburow@save {\the\c@taburow}% + \edef\tabu@naturalX@save {\the\tabu@naturalX}% + \let\tabu@naturalXmin@save \tabu@naturalXmin + \let\tabu@naturalXmax@save \tabu@naturalXmax + \let\tabu@mkarstrut@save \tabu@mkarstrut + \edef\tabu@clarstrut{% + \extrarowheight \the\dimexpr \ht\@arstrutbox-\ht\strutbox \relax + \extrarowdepth \the\dimexpr \dp\@arstrutbox-\dp\strutbox \relax + \let\noexpand\@arraystretch \@ne \noexpand\tabu@rearstrut}% +}% \tabu@setcleanup +\def\tabu@cleanup {\begingroup + \globaldefs\@ne \tabu@everyrowtrue + \let\tabu@arc@G \tabu@arc@Gsave + \let\CT@arc@ \tabu@arc@G + \let\tabu@drsc@G \tabu@drsc@Gsave + \let\CT@drsc@ \tabu@drsc@G + \let\tabu@ls@G \tabu@ls@Gsave + \let\tabu@ls@ \tabu@ls@G + \let\tabu@rc@G \tabu@rc@Gsave + \let\tabu@rc@ \tabu@rc@G + \let\CT@do@color \relax + \let\tabu@evr@G \tabu@evr@Gsave + \let\tabu@celllalign \tabu@celllalign@save + \let\tabu@cellralign \tabu@cellralign@save + \let\tabu@cellleft \tabu@cellleft@save + \let\tabu@cellright \tabu@cellright@save + \let\tabu@@celllalign \tabu@@celllalign@save + \let\tabu@@cellralign \tabu@@cellralign@save + \let\tabu@@cellleft \tabu@@cellleft@save + \let\tabu@@cellright \tabu@@cellright@save + \let\tabu@rowfontreset \tabu@rowfontreset@save + \let\tabu@@rowfontreset \tabu@@rowfontreset@save + \tabu@naturalX =\tabu@naturalX@save + \let\tabu@naturalXmax \tabu@naturalXmax@save + \let\tabu@naturalXmin \tabu@naturalXmin@save + \let\tabu@mkarstrut \tabu@mkarstrut@save + \c@taburow =\c@taburow@save + \ifcase \tabu@nested \tabu@alloc \m@ne\fi + \endgroup % + \ifcase \tabu@nested + \the\tabu@footnotes \global\tabu@footnotes{}% + \tabu@afterendpar \tabu@elapsedtime + \fi + \tabu@clarstrut + \everyrow\expandafter {\tabu@evr@G}% +}% \tabu@cleanup +\let\tabu@afterendpar \relax +\def\tabu@setreset {% + \edef\tabu@savedparams {% \relax for \tabu@message@save + \ifmmode \col@sep \the\arraycolsep + \else \col@sep \the\tabcolsep \fi \relax + \arrayrulewidth \the\arrayrulewidth \relax + \doublerulesep \the\doublerulesep \relax + \extratabsurround \the\extratabsurround \relax + \extrarowheight \the\extrarowheight \relax + \extrarowdepth \the\extrarowdepth \relax + \abovetabulinesep \the\abovetabulinesep \relax + \belowtabulinesep \the\belowtabulinesep \relax + \def\noexpand\arraystretch{\arraystretch}% + \ifdefined\minrowclearance \minrowclearance\the\minrowclearance\relax\fi}% + \begingroup + \@temptokena\expandafter{\tabu@savedparams}% => only for \savetabu / \usetabu + \ifx \tabu@arc@L\relax \else \tabu@setsave \tabu@arc@L \fi + \ifx \tabu@drsc@L\relax \else \tabu@setsave \tabu@drsc@L \fi + \tabu@setsave \tabu@ls@L \tabu@setsave \tabu@evr@L + \expandafter \endgroup \expandafter + \def\expandafter\tabu@saved@ \expandafter{\the\@temptokena + \let\tabu@arc@G \tabu@arc@L + \let\tabu@drsc@G \tabu@drsc@L + \let\tabu@ls@G \tabu@ls@L + \let\tabu@rc@G \tabu@rc@L + \let\tabu@evr@G \tabu@evr@L}% + \def\tabu@reset{\tabu@savedparams + \tabu@everyrowtrue \c@taburow \z@ + \let\CT@arc@ \tabu@arc@L + \let\CT@drsc@ \tabu@drsc@L + \let\tabu@ls@ \tabu@ls@L + \let\tabu@rc@ \tabu@rc@L + \global\tabu@alloc \tabu@alloc@save + \everyrow\expandafter{\tabu@evr@L}}% +}% \tabu@reset +\def\tabu@setsave #1{\expandafter\tabu@sets@ve #1\@nil{#1}} +\long\def\tabu@sets@ve #1\@nil #2{\@temptokena\expandafter{\the\@temptokena \def#2{#1}}} +%% The Rewriting Process ------------------------------------------- +\def\tabu@newcolumntype #1{% + \expandafter\tabu@new@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@newcolumntype +\def\tabu@new@columntype #1#2#3{% + \def#1##1#3{\NC@{##1}}% + \let#2\relax \newcommand*#2% +}% \tabu@new@columntype +\def\tabu@privatecolumntype #1{% + \expandafter\tabu@private@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\expandafter\endcsname + \csname tabu@NC@find@\string#1\expandafter\endcsname + \csname tabu@NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@privatecolumntype +\def\tabu@private@columntype#1#2#3#4{% + \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% + \tabu@new@columntype#3#4% +}% \tabu@private@columntype +\let\tabu@privatecolumns \@empty +\newcommand*\tabucolumn [1]{\expandafter \def \expandafter + \tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns + \NC@do #1}}% +\let\tabu@highprioritycolumns \@empty +%% The | ``column'' : rewriting process -------------------------- +\tabu@privatecolumntype |{\tabu@rewritevline} +\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}% + \expandafter \NC@find \tabu@rewritten} +\def\tabu@lines #1{% + \ifx|#1\else \tabu@privatecolumntype #1{\tabu@rewritevline}\fi + \NC@list\expandafter{\the\NC@list \NC@do #1}% +}% \tabu@lines@ +\def\tabu@vlinearg #1{% + \ifx\\#1\\\def\tabu@thestyle {\tabu@ls@}% + \else\tabu@getline {#1}% + \fi + \def\tabu@rewritten ##1{\def\tabu@rewritten{!{##1\tabu@thevline}}% + }\expandafter\tabu@rewritten\expandafter{\tabu@thestyle}% + \expandafter \tabu@keepls \tabu@thestyle \@nil +}% \tabu@vlinearg +\def\tabu@keepls #1\@nil{% + \ifcat $\@cdr #1\@nil $% + \ifx \relax#1\else + \ifx \tabu@ls@#1\else + \let#1\relax + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@savels\noexpand#1}\fi\fi\fi +}% \tabu@keepls +\def\tabu@thevline {\begingroup + \ifdefined\tabu@leaders + \setbox\@tempboxa=\vtop to\dimexpr + \ht\@arstrutbox+\dp\@arstrutbox{{\tabu@thevleaders}}% + \ht\@tempboxa=\ht\@arstrutbox \dp\@tempboxa=\dp\@arstrutbox + \box\@tempboxa + \else + \tabu@thevrule + \fi \endgroup +}% \tabu@thevline +\def\tabu@savels #1{% + \expandafter\let\csname\string#1\endcsname #1% + \expandafter\def\expandafter\tabu@reset\expandafter{\tabu@reset + \tabu@resetls#1}}% +\def\tabu@resetls #1{\expandafter\let\expandafter#1\csname\string#1\endcsname}% +%% \multicolumn inside tabu environment ----------------------------- +\tabu@newcolumntype \tabu@rewritemulticolumn{% + \aftergroup \tabu@endrewritemulticolumn % after \@mkpream group + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \tabu@savedecl + \tabu@privatecolumns + \NC@list\expandafter{\the\expandafter\NC@list \tabu@NC@list}% + \let\tabu@savels \relax + \NC@find +}% \tabu@rewritemulticolumn +\def\tabu@endrewritemulticolumn{\gdef\tabu@mkpreambuffer{}\endgroup} +\def\tabu@multicolumn{\tabu@ifenvir \tabu@multic@lumn \tabu@multicolumnORI} +\long\def\tabu@multic@lumn #1#2#3{\multispan{#1}\begingroup + \tabu@everyrowtrue + \NC@list{\NC@do \tabu@rewritemulticolumn}% + \expandafter\@gobbletwo % gobbles \multispan{#1} + \tabu@multicolumnORI{#1}{\tabu@rewritemulticolumn #2}% + {\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi + {#3}}% +}% \tabu@multic@lumn +%% The X column(s): rewriting process ----------------------------- +\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}} +\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten } +\def\tabu@siunitx #1{\@ifnextchar \bgroup + {\tabu@rewriteX@Ss{#1}} + {\tabu@nosiunitx{#1}}} +\def\tabu@rewriteX@Ss #1#2{\@temptokena{}% + \@defaultunits \let\tabu@temp =#2\relax\@nnil + \ifodd 1\ifx S\tabu@temp \else \ifx s\tabu@temp \else 0 \fi\fi + \def\NC@find{\def\NC@find >####1####2<####3\relax{#1 {####1}{####3}% + }\expandafter\NC@find \the\@temptokena \relax + }\expandafter\NC@rewrite@S \@gobble #2\relax + \else \tabu@siunitxerror + \fi + \expandafter \NC@find \tabu@rewritten +}% \tabu@rewriteX@Ss +\def\tabu@siunitxerror {\PackageError{tabu}{Not a S nor s column ! + \MessageBreak X column can only embed siunitx S or s columns}\@ehd +}% \tabu@siunitxerror +\def\tabu@rewriteX #1#2#3{\tabu@Xarg {#1}{#2}{#3}% + \iftabu@measuring + \else \tabu@measuringtrue % first X column found in the preamble + \let\@halignto \relax \let\tabu@halignto \relax + \iftabu@spread \tabu@spreadtarget \tabu@target \tabu@target \z@ + \else \tabu@spreadtarget \z@ \fi + \ifdim \tabu@target=\z@ + \setlength\tabu@target \tabu@thetarget + \tabu@message{\tabu@message@defaulttarget}% + \else \tabu@message{\tabu@message@target}\fi + \fi +}% \tabu@rewriteX +\def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax + \def\tabu@rewritten{l}} +\def\tabu@Xarg #1#2#3{% + \advance\tabu@Xcol \@ne \let\tabu@Xlcr \@empty + \let\tabu@Xdisp \@empty \let\tabu@Xmath \@empty + \ifx\\#1\\% + \def\tabu@rewritten{p}\tabucolX \p@ % + \else + \let\tabu@rewritten \@empty \let\tabu@temp \@empty \tabucolX \z@ + \tabu@Xparse {}#1\relax + \fi + \tabu@Xrewritten{#2}{#3}% +}% \tabu@Xarg +\def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} +\expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} +\def\tabu@Xtest{% + \ifcase \ifx \relax\@let@token \z@ \else + \if ,\@let@token \m@ne\else + \if p\@let@token 1\else + \if m\@let@token 2\else + \if b\@let@token 3\else + \if l\@let@token 4\else + \if c\@let@token 5\else + \if r\@let@token 6\else + \if j\@let@token 7\else + \if L\@let@token 8\else + \if C\@let@token 9\else + \if R\@let@token 10\else + \if J\@let@token 11\else + \ifx \@sptoken\@let@token 12\else + \if .\@let@token 13\else + \if -\@let@token 13\else + \ifcat $\@let@token 14\else + 15\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \or \tabu@Xtype {p}% + \or \tabu@Xtype {m}% + \or \tabu@Xtype {b}% + \or \tabu@Xalign \raggedright\relax + \or \tabu@Xalign \centering\relax + \or \tabu@Xalign \raggedleft\relax + \or \tabu@Xalign \tabu@justify\relax + \or \tabu@Xalign \RaggedRight\raggedright + \or \tabu@Xalign \Centering\centering + \or \tabu@Xalign \RaggedLeft\raggedleft + \or \tabu@Xalign \justifying\tabu@justify + \or \expandafter \tabu@Xparsespace + \or \expandafter \tabu@Xcoef + \or \expandafter \tabu@Xm@th + \or \tabu@Xcoef{}% + \else\expandafter \tabu@Xparse + \fi +}% \tabu@Xtest +\def\tabu@Xalign #1#2{% + \ifx \tabu@Xlcr\@empty \else \PackageWarning{tabu} + {Duplicate horizontal alignment specification}\fi + \ifdefined#1\def\tabu@Xlcr{#1}\let#1\relax + \else \def\tabu@Xlcr{#2}\let#2\relax\fi + \expandafter\tabu@Xparse +}% \tabu@Xalign +\def\tabu@Xtype #1{% + \ifx \tabu@rewritten\@empty \else \PackageWarning{tabu} + {Duplicate vertical alignment specification}\fi + \def\tabu@rewritten{#1}\expandafter\tabu@Xparse +}% \tabu@Xtype +\def\tabu@Xcoef#1{\edef\tabu@temp{\tabu@temp#1}% + \afterassignment\tabu@Xc@ef \tabu@cnt\number\if-#10\fi +}% \tabu@Xcoef +\def\tabu@Xc@ef{\advance\tabucolX \tabu@temp\the\tabu@cnt\p@ + \tabu@Xparse{}% +}% \tabu@Xc@ef +\def\tabu@Xm@th #1{\futurelet \@let@token \tabu@Xd@sp} +\def\tabu@Xd@sp{\let\tabu@Xmath=$% + \ifx $\@let@token \def\tabu@Xdisp{\displaystyle}% + \expandafter\tabu@Xparse + \else \expandafter\tabu@Xparse\expandafter{\expandafter}% + \fi +}% \tabu@Xd@sp +\def\tabu@Xrewritten {% + \ifx \tabu@rewritten\@empty \def\tabu@rewritten{p}\fi + \ifdim \tabucolX<\z@ \tabu@negcoeftrue + \else\ifdim \tabucolX=\z@ \tabucolX \p@ + \fi\fi + \edef\tabu@temp{{\the\tabu@Xcol}{\tabu@strippt\tabucolX}}% + \edef\tabu@Xcoefs{\tabu@Xcoefs \tabu@ \tabu@temp}% + \edef\tabu@rewritten ##1##2{\def\noexpand\tabu@rewritten{% + >{\tabu@Xlcr \ifx$\tabu@Xmath$\tabu@Xdisp\fi ##1}% + \tabu@rewritten {\tabu@hsize \tabu@temp}% + <{##2\ifx$\tabu@Xmath$\fi}}% + }\tabu@rewritten +}% \tabu@Xrewritten +\def\tabu@hsize #1#2{% + \ifdim #2\p@<\z@ + \ifdim \tabucolX=\maxdimen \tabu@wd{#1}\else + \ifdim \tabu@wd{#1}<-#2\tabucolX \tabu@wd{#1}\else -#2\tabucolX\fi + \fi + \else #2\tabucolX + \fi +}% \tabu@hsize +%% \usetabu and \preamble: rewriting process --------------------- +\tabu@privatecolumntype \usetabu [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\let\tabu@rewriteX \tabu@rewriteXrestore + \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\@ne}% + \fi +}% \NC@rewrite@\usetabu +\tabu@privatecolumntype \preamble [1]{% + \ifx\\#1\\\tabu@saveerr{}\else + \@ifundefined{tabu@saved@\string#1} + {\tabu@saveerr{#1}} + {\csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% + \fi +}% \NC@rewrite@\preamble +%% Controlling the rewriting process ------------------------------- +\tabu@newcolumntype \tabu@rewritefirst{% + \iftabu@long \aftergroup \tabu@longpream % + \else \aftergroup \tabu@pream + \fi + \let\tabu@ \relax \let\tabu@hsize \relax + \let\tabu@Xcoefs \@empty \let\tabu@savels \relax + \tabu@Xcol \z@ \tabu@cnt \tw@ + \gdef\tabu@mkpreambuffer{\tabu@{}}\tabu@measuringfalse + \global\setbox\@arstrutbox \box\@arstrutbox + \NC@list{\NC@do *}\tabu@textbar \tabu@lines + \NC@list\expandafter{\the\NC@list \NC@do X}% + \iftabu@siunitx % + \NC@list\expandafter{\the\NC@list \NC@do S\NC@do s}\fi + \NC@list\expandafter{\the\expandafter\NC@list \tabu@highprioritycolumns}% + \expandafter\def\expandafter\tabu@NC@list\expandafter{% + \the\expandafter\NC@list \tabu@NC@list}% % * | X S + \NC@list\expandafter{\expandafter \NC@do \expandafter\usetabu + \expandafter \NC@do \expandafter\preamble + \the\NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \tabu@savedecl + \tabu@privatecolumns + \edef\tabu@prev{\the\@temptokena}\NC@find \tabu@rewritemiddle +}% NC@rewrite@\tabu@rewritefirst +\tabu@newcolumntype \tabu@rewritemiddle{% + \edef\tabu@temp{\the\@temptokena}\NC@find \tabu@rewritelast +}% \NC@rewrite@\tabu@rewritemiddle +\tabu@newcolumntype \tabu@rewritelast{% + \ifx \tabu@temp\tabu@prev \advance\tabu@cnt \m@ne + \NC@list\expandafter{\tabu@NC@list \NC@do \tabu@rewritemiddle + \NC@do \tabu@rewritelast}% + \else \let\tabu@prev\tabu@temp + \fi + \ifcase \tabu@cnt \expandafter\tabu@endrewrite + \else \expandafter\NC@find \expandafter\tabu@rewritemiddle + \fi +}% \NC@rewrite@\tabu@rewritelast +%% Choosing the strategy -------------------------------------------- +\def\tabu@endrewrite {% + \let\tabu@temp \NC@find + \ifx \@arrayright\relax \let\@arrayright \@empty \fi + \count@=% + \ifx \@finalstrut\tabu@finalstrut \z@ % outer in mode 0 print + \iftabu@measuring + \xdef\tabu@mkpreambuffer{\tabu@mkpreambuffer + \tabu@target \csname tabu@\the\tabu@nested.T\endcsname + \tabucolX \csname tabu@\the\tabu@nested.X\endcsname + \edef\@halignto {\ifx\@arrayright\@empty to\tabu@target\fi}}% + \fi + \else\iftabu@measuring 4 % X columns + \xdef\tabu@mkpreambuffer{\tabu@{\tabu@mkpreambuffer + \tabu@target \the\tabu@target + \tabu@spreadtarget \the\tabu@spreadtarget}% + \def\noexpand\tabu@Xcoefs{\tabu@Xcoefs}% + \edef\tabu@halignto{\ifx \@arrayright\@empty to\tabu@target\fi}}% + \let\tabu@Xcoefs \relax + \else\ifcase\tabu@nested \thr@@ % outer, no X + \global\let\tabu@afterendpar \relax + \else \@ne % inner, no X, outer in mode 1 or 2 + \fi + \ifdefined\tabu@usetabu + \else \ifdim\tabu@target=\z@ + \else \let\tabu@temp \tabu@extracolsep + \fi\fi + \fi + \fi + \xdef\tabu@mkpreambuffer{\count@ \the\count@ \tabu@mkpreambuffer}% + \tabu@temp +}% \tabu@endrewrite +\def\tabu@extracolsep{\@defaultunits \expandafter\let + \expandafter\tabu@temp \expandafter=\the\@temptokena \relax\@nnil + \ifx \tabu@temp\@sptoken + \expandafter\tabu@gobblespace \expandafter\tabu@extracolsep + \else + \edef\tabu@temp{\noexpand\NC@find + \if |\noexpand\tabu@temp @% + \else\if !\noexpand\tabu@temp @% + \else !% + \fi\fi + {\noexpand\extracolsep\noexpand\@flushglue}}% + \fi + \tabu@temp +}% \tabu@extrac@lsep +%% Implementing the strategy ---------------------------------------- +\long\def\tabu@pream #1\@preamble {% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \ifdefined\tabu@usetabu \tabu@usetabu \tabu@target \z@ \fi + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\tabu@aftergroupcleanup}% + \tabu@thebody =\expandafter{\the\expandafter\tabu@thebody + \@preamble}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@pream +\long\def\tabu@longpream #1\LT@bchunk #2\LT@bchunk{% + \let\tabu@ \tabu@@ \tabu@mkpreambuffer \tabu@aftergroupcleanup + \NC@list\expandafter {\tabu@NC@list}% in case of nesting... + \let\tabu@savedpreamble \@preamble + \global\let\tabu@elapsedtime \relax + \tabu@thebody ={#1\LT@bchunk #2\tabu@aftergroupcleanup \LT@bchunk}% + \edef\tabuthepreamble {\the\tabu@thebody}% ( no @ allowed for \scantokens ) + \tabu@select +}% \tabu@longpream +\def\tabu@select {% + \ifnum\tabu@nested>\z@ \tabuscantokensfalse \fi + \ifnum \count@=\@ne \iftabu@measuring \count@=\tw@ \fi\fi + \ifcase \count@ + \global\let\tabu@elapsedtime \relax + \tabu@seteverycr + \expandafter \tabuthepreamble % vertical adjustment (inherited from outer) + \or % exit in vertical measure + struts per cell because no X and outer in mode 3 + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \tabu@seteverycr + \expandafter \tabuthepreamble + \or % exit without measure because no X and outer in mode 4 + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@seteverycr + \expandafter \tabuthepreamble + \else % needs trials + \tabu@evr{}\tabu@celllalign@def{}\let\tabu@cellralign \@empty + \tabu@savecounters + \expandafter \tabu@setstrategy + \fi +}% \tabu@select +\def\tabu@@ {\gdef\tabu@mkpreambuffer} +%% Protections to set up before trials ------------------------------ +\def\tabu@setstrategy {\begingroup % + \tabu@trialh@@k \tabu@cnt \z@ % number of trials + \hbadness \@M \let\hbadness \@tempcnta + \hfuzz \maxdimen \let\hfuzz \@tempdima + \let\write \tabu@nowrite\let\GenericError \tabu@GenericError + \let\savetabu \@gobble \let\tabudefaulttarget \linewidth + \let\@footnotetext \@gobble \let\@xfootnote \tabu@xfootnote + \let\color \tabu@nocolor\let\rowcolor \tabu@norowcolor + \let\tabu@aftergroupcleanup \relax % only after the last trial + \tabu@mkpreambuffer + \ifnum \count@>\thr@@ \let\@halignto \@empty \tabucolX@init + \def\tabu@lasttry{\m@ne\p@}\fi + \begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\iftabuscantokens \endlinechar=10 \obeyspaces \fi % + \tabu@collectbody \tabu@strategy % +}% \tabu@setstrategy +\def\tabu@savecounters{% + \def\@elt ##1{\csname c@##1\endcsname\the\csname c@##1\endcsname}% + \edef\tabu@clckpt {\begingroup \globaldefs=\@ne \cl@@ckpt \endgroup}\let\@elt \relax +}% \tabu@savecounters +\def\tabucolX@init {% \tabucolX <= \tabu@target / (sum coefs > 0) + \dimen@ \z@ \tabu@Xsum \z@ \tabucolX \z@ \let\tabu@ \tabu@Xinit \tabu@Xcoefs + \ifdim \dimen@>\z@ + \@tempdima \dimexpr \tabu@target *\p@/\dimen@ + \tabu@hfuzz\relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \fi +}% \tabucolX@init +\def\tabu@Xinit #1#2{\tabu@Xcol #1 \advance \tabu@Xsum + \ifdim #2\p@>\z@ #2\p@ \advance\dimen@ #2\p@ + \else -#2\p@ \tabu@negcoeftrue + \@tempdima \dimexpr \tabu@target*\p@/\dimexpr-#2\p@\relax \relax + \ifdim \tabucolX<\@tempdima \tabucolX \@tempdima \fi + \tabu@wddef{#1}{0pt}% + \fi +}% \tabu@Xinit +%% Collecting the environment body ---------------------------------- +\long\def\tabu@collectbody #1#2\end #3{% + \edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}% + \ifx \tabu@stack\@empty + \toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}% + \def\tabu@end@envir{\end{#3}}% + \iftabuscantokens + \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% + \else \def\tabu@endenvir {\let\endarray \@empty + \end{#3}\tabu@gobbleX}% + \fi + \else \def\tabu@endenvir {\end{#3}}\fi}% + \let\tabu@collectbody \tabu@endofcollect + \else\def\tabu@temp{#3}% + \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% + \else \ifx\tabu@temp\tabu@@spxiii \toks@\expandafter{\the\toks@ #2\end #3}% + \else \ifx\tabu@temp\tabu@X \toks@\expandafter{\the\toks@ #2\end #3}% + \else \toks@\expandafter{\the\toks@ #2\end{#3}}% + \fi\fi\fi + \fi + \tabu@collectbody{#1}% +}% \tabu@collectbody +\long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi}% +\def\tabu@endofcollect #1{\ifnum0=`{}\fi + \expandafter\endgroup \the\toks@ #1% +}% \tabu@endofcollect +%% The trials: switching between strategies ------------------------- +\def\tabu@strategy {\relax % stops \count@ assignment ! + \ifcase\count@ % case 0 = print with vertical adjustment (outer is finished) + \expandafter \tabu@endoftrials + \or % case 1 = exit in vertical measure (outer in mode 3) + \expandafter\xdef\csname tabu@\the\tabu@nested.T\endcsname{\the\tabu@target}% + \expandafter\xdef\csname tabu@\the\tabu@nested.X\endcsname{\the\tabucolX}% + \expandafter \tabu@endoftrials + \or % case 2 = exit with a rule replacing the table (outer in mode 4) + \expandafter \tabu@quickend + \or % case 3 = outer is in mode 3 because of no X + \begingroup + \tabu@evr{\tabu@verticalinit}\tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \expandafter \tabu@measuring + \else % case 4 = horizontal measure + \begingroup + \global\let\tabu@elapsedtime \tabu@message@etime + \long\def\multicolumn##1##2##3{\multispan{##1}}% + \let\tabu@startpboxORI \@startpbox + \iftabu@spread + \def\tabu@naturalXmax {\z@}% + \let\tabu@naturalXmin \tabu@naturalXmax + \tabu@evr{\global\tabu@naturalX \z@}% + \let\@startpbox \tabu@startpboxmeasure + \else\iftabu@negcoef + \let\@startpbox \tabu@startpboxmeasure + \else \let\@startpbox \tabu@startpboxquick + \fi\fi + \expandafter \tabu@measuring + \fi +}% \tabu@strategy +\def\tabu@measuring{\expandafter \tabu@trial \expandafter + \count@ \the\count@ \tabu@endtrial +}% \tabu@measuring +\def\tabu@trial{\iftabu@long \tabu@longtrial \else \tabu@shorttrial \fi} +\def\tabu@shorttrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + $\iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \csname tabu@adl@endtrial\endcsname + \endarray}$\egroup % got \tabu@box +}% \tabu@shorttrial +\def\tabu@longtrial {\setbox\tabu@box \hbox\bgroup \tabu@seteverycr + \ifx \tabu@savecounters\relax \else + \let\tabu@savecounters \relax \tabu@clckpt \fi + \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi + \expandafter{\expandafter \tabuthepreamble + \the\tabu@thebody + \tabuendlongtrial}\egroup % got \tabu@box +}% \tabu@longtrial +\def\tabuendlongtrial{% no @ allowed for \scantokens + \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne + \LT@get@widths +}% \tabuendlongtrial +\def\tabu@adl@endtrial{% + \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! +\def\tabu@seteverycr {\tabu@reset + \everycr \expandafter{\the\everycr \tabu@everycr}% + \let\everycr \tabu@noeverycr % +}% \tabu@seteverycr +\def\tabu@noeverycr{{\aftergroup\tabu@restoreeverycr \afterassignment}\toks@} +\def\tabu@restoreeverycr {\let\everycr \tabu@@everycr} +\def\tabu@everycr {\iftabu@everyrow \noalign{\tabu@everyrow}\fi} +\def\tabu@endoftrials {% + \iftabuscantokens \expandafter\@firstoftwo + \else \expandafter\@secondoftwo + \fi + {\expandafter \tabu@closetrialsgroup \expandafter + \tabu@rescan \expandafter{% + \expandafter\tabuthepreamble + \the\expandafter\tabu@thebody + \iftabu@long \else \endarray \fi}} + {\expandafter\tabu@closetrialsgroup \expandafter + \tabuthepreamble + \the\tabu@thebody}% + \tabu@endenvir % Finish ! +}% \tabu@endoftrials +\def\tabu@closetrialsgroup {% + \toks@\expandafter{\tabu@endenvir}% + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target + \tabu@cnt \the\tabu@cnt + \def\noexpand\tabu@endenvir{\the\toks@}% + %Quid de \@halignto = \tabu@halignto ?? + }% \tabu@bufferX + \tabu@bufferX + \ifcase\tabu@nested % print out (outer in mode 0) + \global\tabu@cnt \tabu@cnt + \tabu@evr{\tabu@verticaldynamicadjustment}% + \tabu@celllalign@def{\everypar{}}\let\tabu@cellralign \@empty + \let\@finalstrut \tabu@finalstrut + \else % vertical measure of nested tabu + \tabu@evr{\tabu@verticalinit}% + \tabu@celllalign@def{\tabu@verticalmeasure}% + \def\tabu@cellralign{\tabu@verticalspacing}% + \fi + \tabu@clckpt \let\@halignto \tabu@halignto + \let\@halignto \@empty + \tabu@seteverycr + \ifdim \tabustrutrule>\z@ \ifnum\tabu@nested=\z@ + \setbox\@arstrutbox \box\voidb@x % force \@arstrutbox to be rebuilt (visible struts) + \fi\fi +}% \tabu@closetrialsgroup +\def\tabu@quickend {\expandafter \endgroup \expandafter + \tabu@target \the\tabu@target \tabu@quickrule + \let\endarray \relax \tabu@endenvir +}% \tabu@quickend +\def\tabu@endtrial {\relax % stops \count@ assignment ! + \ifcase \count@ \tabu@err % case 0 = impossible here + \or \tabu@err % case 1 = impossible here + \or \tabu@err % case 2 = impossible here + \or % case 3 = outer goes into mode 0 + \def\tabu@bufferX{\endgroup}\count@ \z@ + \else % case 4 = outer goes into mode 3 + \iftabu@spread \tabu@spreadarith % inner into mode 1 (outer in mode 3) + \else \tabu@arith % or 2 (outer in mode 4) + \fi + \count@=% + \ifcase\tabu@nested \thr@@ % outer goes into mode 3 + \else\iftabu@measuring \tw@ % outer is in mode 4 + \else \@ne % outer is in mode 3 + \fi\fi + \edef\tabu@bufferX{\endgroup + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% + \fi + \expandafter \tabu@bufferX \expandafter + \count@ \the\count@ \tabu@strategy +}% \tabu@endtrial +\def\tabu@err{\errmessage{(tabu) Internal impossible error! (\count@=\the\count@)}} +%% The algorithms: compute the widths / stop or go on --------------- +\def\tabu@arithnegcoef {% + \@tempdima \z@ \dimen@ \z@ \let\tabu@ \tabu@arith@negcoef \tabu@Xcoefs +}% \tabu@arithnegcoef +\def\tabu@arith@negcoef #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ % saturated by definition + \advance\@tempdima #2\tabucolX + \else + \ifdim -#2\tabucolX <\tabu@wd{#1}% c_i X < natural width <= \tabu@target-> saturated + \advance\dimen@ -#2\p@ + \advance\@tempdima -#2\tabucolX + \else + \advance\@tempdima \tabu@wd{#1}% natural width <= c_i X => neutralised + \ifdim \tabu@wd{#1}<\tabu@target \else % neutralised + \advance\dimen@ -#2\p@ % saturated (natural width = tabu@target) + \fi + \fi + \fi +}% \tabu@arith@negcoef +\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@ + \ifdim \@tempdima=\z@ + \tabu@wddef{#1}{\the\dimexpr -\tabu@DELTA*\p@/\tabu@Xsum}% + \else + \tabu@wddef{#1}{\the\dimexpr \tabu@hsize{#1}{#2} + *(\p@ -\tabu@DELTA*\p@/\@tempdima)/\p@\relax}% + \fi +}% \tabu@givespace +\def\tabu@arith {\advance\tabu@cnt \@ne + \ifnum \tabu@cnt=\@ne \tabu@message{\tabu@titles}\fi + \tabu@arithnegcoef + \@tempdimb \dimexpr \wd\tabu@box -\@tempdima \relax % + \tabu@DELTA = \dimexpr \wd\tabu@box - \tabu@target \relax + \tabu@message{\tabu@message@arith}% + \ifdim \tabu@DELTA <\tabu@hfuzz + \ifdim \tabu@DELTA<\z@ % wd (tabu)<\tabu@target ? + \let\tabu@ \tabu@givespace \tabu@Xcoefs + \advance\@tempdima \@tempdimb \advance\@tempdima -\tabu@DELTA % for message + \else % already converged: nothing to do but nearly impossible... + \fi + \tabucolX \maxdimen + \tabu@measuringfalse + \else % need for narrower X columns + \tabucolX =\dimexpr (\@tempdima -\tabu@DELTA) *\p@/\tabu@Xsum \relax + \tabu@measuringtrue + \@whilesw \iftabu@measuring\fi {% + \advance\tabu@cnt \@ne + \tabu@arithnegcoef + \tabu@DELTA =\dimexpr \@tempdima+\@tempdimb -\tabu@target \relax % always < 0 here + \tabu@message{\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \@tempdima+\@tempdimb { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim -\tabu@DELTA<\tabu@hfuzz \tabu@spaces target ok\else + \tabu@msgalign \dimexpr -\tabu@DELTA *\p@/\dimen@ {}{}{}{}{}\@@ + \fi}% + \ifdim -\tabu@DELTA<\tabu@hfuzz + \advance\@tempdima \@tempdimb % for message + \tabu@measuringfalse + \else + \advance\tabucolX \dimexpr -\tabu@DELTA *\p@/\dimen@ \relax + \fi + }% + \fi + \tabu@message{\tabu@message@reached}% + \edef\tabu@bufferX{\endgroup \tabu@cnt \the\tabu@cnt + \tabucolX \the\tabucolX + \tabu@target \the\tabu@target}% +}% \tabu@arith +\def\tabu@spreadarith {% + \dimen@ \z@ \@tempdima \tabu@naturalXmax \let\tabu@ \tabu@spread@arith \tabu@Xcoefs + \edef\tabu@naturalXmin {\the\dimexpr\tabu@naturalXmin*\dimen@/\p@}% + \@tempdimc =\dimexpr \wd\tabu@box -\tabu@naturalXmax+\tabu@naturalXmin \relax + \iftabu@measuring + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \edef\tabu@bufferX{\endgroup \tabucolX \the\tabucolX \tabu@target\the\tabu@target}% + \else + \tabu@message{\tabu@message@spreadarith}% + \ifdim \dimexpr \@tempdimc+\tabu@spreadtarget >\tabu@target + \tabu@message{(tabu) spread + \ifdim \@tempdimc>\tabu@target useless here: default target used% + \else too large: reduced to fit default target\fi.}% + \else + \tabu@target =\dimexpr \@tempdimc+\tabu@spreadtarget \relax + \tabu@message{(tabu) spread: New target set to \the\tabu@target^^J}% + \fi + \begingroup \let\tabu@wddef \@gobbletwo + \@tempdimb \@tempdima + \tabucolX@init + \tabu@arithnegcoef + \wd\tabu@box =\dimexpr \wd\tabu@box +\@tempdima-\@tempdimb \relax + \expandafter\endgroup \expandafter\tabucolX \the\tabucolX + \tabu@arith + \fi +}% \tabu@spreadarith +\def\tabu@spread@arith #1#2{% + \ifdim #2\p@>\z@ \advance\dimen@ #2\p@ + \else \advance\@tempdima \tabu@wd{#1}\relax + \fi +}% \tabu@spread@arith +%% Reporting in the .log file --------------------------------------- +\def\tabu@message@defaulttarget{% + \ifnum\tabu@nested=\z@^^J(tabu) Default target: + \ifx\tabudefaulttarget\linewidth \string\linewidth + \ifdim \tabu@thetarget=\linewidth \else + -\the\dimexpr\linewidth-\tabu@thetarget\fi = + \else\ifx\tabudefaulttarget\linegoal\string\linegoal= + \fi\fi + \else (tabu) Default target (nested): \fi + \the\tabu@target \on@line + \ifnum\tabu@nested=\z@ , page \the\c@page\fi} +\def\tabu@message@target {^^J(tabu) Target specified: + \the\tabu@target \on@line, page \the\c@page} +\def\tabu@message@arith {\tabu@header + \tabu@msgalign \tabucolX { }{ }{ }{ }{ }\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{ }\@@ + \tabu@msgalign \tabu@target { }{ }{ }{ }{ }\@@ + \tabu@msgalign@PT \dimen@ { }{}{}{}{}{}{}\@@ + \ifdim \tabu@DELTA<\tabu@hfuzz giving space\else + \tabu@msgalign \dimexpr (\@tempdima-\tabu@DELTA) *\p@/\tabu@Xsum -\tabucolX {}{}{}{}{}\@@ + \fi +}% \tabu@message@arith +\def\tabu@message@spreadarith {\tabu@spreadheader + \tabu@msgalign \tabu@spreadtarget { }{ }{ }{ }{}\@@ + \tabu@msgalign \wd\tabu@box { }{ }{ }{ }{}\@@ + \tabu@msgalign -\tabu@naturalXmax { }{}{}{}{}\@@ + \tabu@msgalign \tabu@naturalXmin { }{ }{ }{ }{}\@@ + \tabu@msgalign \ifdim \dimexpr\@tempdimc>\tabu@target \tabu@target + \else \@tempdimc+\tabu@spreadtarget \fi + {}{}{}{}{}\@@} +\def\tabu@message@negcoef #1#2{ + \tabu@spaces\tabu@spaces\space * #1. X[\rem@pt#2]: + \space width = \tabu@wd {#1} + \expandafter\string\csname tabu@\the\tabu@nested.W\number#1\endcsname + \ifdim -\tabu@pt#2\tabucolX<\tabu@target + < \number-\rem@pt#2 X + = \the\dimexpr -\tabu@pt#2\tabucolX \relax + \else + <= \the\tabu@target\space < \number-\rem@pt#2 X\fi} +\def\tabu@message@reached{\tabu@header + ******* Reached Target: + hfuzz = \tabu@hfuzz\on@line\space *******} +\def\tabu@message@etime{\edef\tabu@stoptime{\the\pdfelapsedtime}% + \tabu@message{(tabu)\tabu@spaces Time elapsed during measure: + \the\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax sec + \the\numexpr\numexpr(\tabu@stoptime-\tabu@starttime) + -\numexpr(\tabu@stoptime-\tabu@starttime-32767)/65536\relax*65536\relax + *1000/65536\relax ms \tabu@spaces(\the\tabu@cnt\space + cycle\ifnum\tabu@cnt>\@ne s\fi)^^J^^J}} +\def\tabu@message@verticalsp {% + \ifdim \@tempdima>\tabu@ht + \ifdim \@tempdimb>\tabu@dp + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@ + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J% + \else + \expandafter\expandafter\expandafter\string\tabu@ht = + \tabu@msgalign \@tempdima { }{ }{ }{ }{ }\@@^^J% + \fi + \else\ifdim \@tempdimb>\tabu@dp + \tabu@spaces\tabu@spaces\tabu@spaces + \expandafter\expandafter\expandafter\string\tabu@dp = + \tabu@msgalign \@tempdimb { }{ }{ }{ }{ }\@@^^J\fi + \fi +}% \tabu@message@verticalsp +\edef\tabu@spaces{\@spaces} +\def\tabu@strippt{\expandafter\tabu@pt\the} +{\@makeother\P \@makeother\T\lowercase{\gdef\tabu@pt #1PT{#1}}} +\def\tabu@msgalign{\expandafter\tabu@msg@align\the\dimexpr} +\def\tabu@msgalign@PT{\expandafter\tabu@msg@align\romannumeral-`\0\tabu@strippt} +\def\do #1{% + \def\tabu@msg@align##1.##2##3##4##5##6##7##8##9\@@{% + \ifnum##1<10 #1 #1\else + \ifnum##1<100 #1 \else + \ifnum##1<\@m #1\fi\fi\fi + ##1.##2##3##4##5##6##7##8#1}% + \def\tabu@header{(tabu) \ifnum\tabu@cnt<10 #1\fi\the\tabu@cnt) }% + \def\tabu@titles{\ifnum \tabu@nested=\z@ + (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target + #1 #1 #1 Coefs #1 #1 #1 Update^^J\fi}% + \def\tabu@spreadheader{% + (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min. + #1 New Target^^J% + (tabu) sprd} + \def\tabu@message@save {\begingroup + \def\x ####1{\tabu@msg@align ####1{ }{ }{ }{ }{}\@@} + \def\z ####1{\expandafter\x\expandafter{\romannumeral-`\0\tabu@strippt + \dimexpr####1\p@{ }{ }}}% + \let\color \relax \def\tabu@rulesstyle ####1####2{\detokenize{####1}}% + \let\CT@arc@ \relax \let\@preamble \@gobble + \let\tabu@savedpream \@firstofone + \let\tabu@savedparams \@firstofone + \def\tabu@target ####1\relax {(tabu) target #1 #1 #1 #1 #1 = \x{####1}^^J}% + \def\tabucolX ####1\relax {(tabu) X columns width#1 = \x{####1}^^J}% + \def\tabu@nbcols ####1\relax {(tabu) Number of columns: \z{####1}^^J}% + \def\tabu@aligndefault ####1{(tabu) Default alignment: #1 #1 ####1^^J}% + \def\col@sep ####1\relax {(tabu) column sep #1 #1 #1 = \x{####1}^^J}% + \def\arrayrulewidth ####1\relax{(tabu) arrayrulewidth #1 = \x{####1}}% + \def\doublerulesep ####1\relax { doublerulesep = \x{####1}^^J}% + \def\extratabsurround####1\relax{(tabu) extratabsurround = \x{####1}^^J}% + \def\extrarowheight ####1\relax{(tabu) extrarowheight #1 = \x{####1}}% + \def\extrarowdepth ####1\relax {extrarowdepth = \x{####1}^^J}% + \def\abovetabulinesep####1\relax{(tabu) abovetabulinesep=\x{####1} }% + \def\belowtabulinesep####1\relax{ belowtabulinesep=\x{####1}^^J}% + \def\arraystretch ####1{(tabu) arraystretch #1 #1 = \z{####1}^^J}% + \def\minrowclearance####1\relax{(tabu) minrowclearance #1 = \x{####1}^^J}% + \def\tabu@arc@L ####1{(tabu) taburulecolor #1 #1 = ####1^^J}% + \def\tabu@drsc@L ####1{(tabu) tabudoublerulecolor= ####1^^J}% + \def\tabu@evr@L ####1{(tabu) everyrow #1 #1 #1 #1 = \detokenize{####1}^^J}% + \def\tabu@ls@L ####1{(tabu) line style = \detokenize{####1}^^J}% + \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% + \def\tabu@wddef####1####2{(tabu) Natural width ####1 = \x{####2}^^J}% + \let\edef \@gobbletwo \let\def \@empty \let\let \@gobbletwo + \tabu@message{% + (tabu) \string\savetabu{\tabu@temp}: \on@line^^J% + \tabu@usetabu \@nil^^J}% + \endgroup} +}\do{ } +%% Measuring the natural width (varwidth) - store the results ------- +\def\tabu@startpboxmeasure #1{\bgroup % entering \vtop + \edef\tabu@temp{\expandafter\@secondoftwo \ifx\tabu@hsize #1\else\relax\fi}% + \ifodd 1\ifx \tabu@temp\@empty 0 \else % starts with \tabu@hsize ? + \iftabu@spread \else % if spread -> measure + \ifdim \tabu@temp\p@>\z@ 0 \fi\fi\fi% if coef>0 -> do not measure + \let\@startpbox \tabu@startpboxORI % restore immediately (nesting) + \tabu@measuringtrue % for the quick option... + \tabu@Xcol =\expandafter\@firstoftwo\ifx\tabu@hsize #1\fi + \ifdim \tabu@temp\p@>\z@ \ifdim \tabu@temp\tabucolX<\tabu@target + \tabu@target=\tabu@temp\tabucolX \fi\fi + \setbox\tabu@box \hbox \bgroup + \begin{varwidth}\tabu@target + \let\FV@ListProcessLine \tabu@FV@ListProcessLine % \hbox to natural width... + \narrowragged \arraybackslash \parfillskip \@flushglue + \ifdefined\pdfadjustspacing \pdfadjustspacing\z@ \fi + \bgroup \aftergroup\tabu@endpboxmeasure + \ifdefined \cellspacetoplimit \tabu@cellspacepatch \fi + \else \expandafter\@gobble + \tabu@startpboxquick{#1}% \@gobble \bgroup + \fi +}% \tabu@startpboxmeasure +\def\tabu@cellspacepatch{\def\bcolumn##1\@nil{}\let\ecolumn\@empty + \bgroup\color@begingroup} +\def\tabu@endpboxmeasure {% + \@finalstrut \@arstrutbox + \end{varwidth}\egroup % + \ifdim \tabu@temp\p@ <\z@ % neg coef + \ifdim \tabu@wd\tabu@Xcol <\wd\tabu@box + \tabu@wddef\tabu@Xcol {\the\wd\tabu@box}% + \tabu@debug{\tabu@message@endpboxmeasure}% + \fi + \else % spread coef>0 + \global\advance \tabu@naturalX \wd\tabu@box + \@tempdima =\dimexpr \wd\tabu@box *\p@/\dimexpr \tabu@temp\p@\relax \relax + \ifdim \tabu@naturalXmax <\tabu@naturalX + \xdef\tabu@naturalXmax {\the\tabu@naturalX}\fi + \ifdim \tabu@naturalXmin <\@tempdima + \xdef\tabu@naturalXmin {\the\@tempdima}\fi + \fi + \box\tabu@box \egroup % end of \vtop (measure) restore \tabu@target +}% \tabu@endpboxmeasure +\def\tabu@wddef #1{\expandafter\xdef + \csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@wd #1{\csname tabu@\the\tabu@nested.W\number#1\endcsname} +\def\tabu@message@endpboxmeasure{\tabu@spaces\tabu@spaces<-> % <-> save natural wd + \the\tabu@Xcol. X[\tabu@temp]: + target = \the\tabucolX \space + \expandafter\expandafter\expandafter\string\tabu@wd\tabu@Xcol + =\tabu@wd\tabu@Xcol +}% \tabu@message@endpboxmeasure +\def\tabu@startpboxquick {\bgroup + \let\@startpbox \tabu@startpboxORI % restore immediately + \let\tabu \tabu@quick % \begin is expanded before... + \expandafter\@gobble \@startpbox % gobbles \bgroup +}% \tabu@startpboxquick +\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi + \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick +}% \tabu@quick +\def\tabu@endquick {% + \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else + \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax + \endgroup + \else \let\endtabu \relax + \tabu@end@envir + \fi +}% \tabu@quick +\def\tabu@endtabu {\end{tabu}} +\def\tabu@endtabus {\end{tabu*}} +%% Measuring the heights and depths - store the results ------------- +\def\tabu@verticalmeasure{\everypar{}% + \ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group + \setbox\tabu@box =\hbox\bgroup + \let\tabu@verticalspacing \tabu@verticalsp@lcr + \d@llarbegin % after \hbox ... + \else + \edef\tabu@temp{\ifnum\currentgrouptype=5\vtop + \else\ifnum\currentgrouptype=12\vcenter + \else\vbox\fi\fi}% + \setbox\tabu@box \hbox\bgroup$\tabu@temp \bgroup + \let\tabu@verticalspacing \tabu@verticalsp@pmb + \fi +}% \tabu@verticalmeasure +\def\tabu@verticalsp@lcr{% + \d@llarend \egroup % + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \noindent\vrule height\@tempdima depth\@tempdimb +}% \tabu@verticalsp@lcr +\def\tabu@verticalsp@pmb{% inserts struts as needed + \par \expandafter\egroup + \expandafter$\expandafter + \egroup \expandafter + \@tempdimc \the\prevdepth + \@tempdima \dimexpr \ht\tabu@box+\abovetabulinesep + \@tempdimb \dimexpr \dp\tabu@box+\belowtabulinesep \relax + \ifdim\tabustrutrule>\z@ \tabu@debug{\tabu@message@verticalsp}\fi + \ifdim \tabu@ht<\@tempdima \tabu@htdef{\the\@tempdima}\fi + \ifdim \tabu@dp<\@tempdimb \tabu@dpdef{\the\@tempdimb}\fi + \let\@finalstrut \@gobble + \hrule height\@tempdima depth\@tempdimb width\hsize +%% \box\tabu@box +}% \tabu@verticalsp@pmb + +\def\tabu@verticalinit{% + \ifnum \c@taburow=\z@ \tabu@rearstrut \fi % after \tabu@reset ! + \advance\c@taburow \@ne + \tabu@htdef{\the\ht\@arstrutbox}\tabu@dpdef{\the\dp\@arstrutbox}% + \advance\c@taburow \m@ne +}% \tabu@verticalinit +\def\tabu@htdef {\expandafter\xdef \csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@ht {\csname tabu@\the\tabu@nested.H\the\c@taburow\endcsname} +\def\tabu@dpdef {\expandafter\xdef \csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@dp {\csname tabu@\the\tabu@nested.D\the\c@taburow\endcsname} +\def\tabu@verticaldynamicadjustment {% + \advance\c@taburow \@ne + \extrarowheight \dimexpr\tabu@ht - \ht\strutbox + \extrarowdepth \dimexpr\tabu@dp - \dp\strutbox + \let\arraystretch \@empty + \advance\c@taburow \m@ne +}% \tabu@verticaldynamicadjustment +\def\tabuphantomline{\crcr \noalign{% + {\globaldefs \@ne + \setbox\@arstrutbox \box\voidb@x + \let\tabu@@celllalign \tabu@celllalign + \let\tabu@@cellralign \tabu@cellralign + \let\tabu@@cellleft \tabu@cellleft + \let\tabu@@cellright \tabu@cellright + \let\tabu@@thevline \tabu@thevline + \let\tabu@celllalign \@empty + \let\tabu@cellralign \@empty + \let\tabu@cellright \@empty + \let\tabu@cellleft \@empty + \let\tabu@thevline \relax}% + \edef\tabu@temp{\tabu@multispan \tabu@nbcols{\noindent &}}% + \toks@\expandafter{\tabu@temp \noindent\tabu@everyrowfalse \cr + \noalign{\tabu@rearstrut + {\globaldefs\@ne + \let\tabu@celllalign \tabu@@celllalign + \let\tabu@cellralign \tabu@@cellralign + \let\tabu@cellleft \tabu@@cellleft + \let\tabu@cellright \tabu@@cellright + \let\tabu@thevline \tabu@@thevline}}}% + \expandafter}\the\toks@ +}% \tabuphantomline +%% \firsthline and \lasthline corrections --------------------------- +\def\tabu@firstline {\tabu@hlineAZ \tabu@firsthlinecorrection {}} +\def\tabu@firsthline{\tabu@hlineAZ \tabu@firsthlinecorrection \hline} +\def\tabu@lastline {\tabu@hlineAZ \tabu@lasthlinecorrection {}} +\def\tabu@lasthline {\tabu@hlineAZ \tabu@lasthlinecorrection \hline} +\def\tabu@hline {% replaces \hline if no colortbl (see \AtBeginDocument) + \noalign{\ifnum0=`}\fi + {\CT@arc@\hrule height\arrayrulewidth}% + \futurelet \tabu@temp \tabu@xhline +}% \tabu@hline +\def\tabu@xhline{% + \ifx \tabu@temp \hline + {\ifx \CT@drsc@\relax \vskip + \else\ifx \CT@drsc@\@empty \vskip + \else \CT@drsc@\hrule height + \fi\fi + \doublerulesep}% + \fi + \ifnum0=`{\fi}% +}% \tabu@xhline +\def\tabu@hlineAZ #1#2{\noalign{\ifnum0=`}\fi \dimen@ \z@ \count@ \z@ + \toks@{}\def\tabu@hlinecorrection{#1}\def\tabu@temp{#2}% + \tabu@hlineAZsurround +}% \tabu@hlineAZ +\newcommand*\tabu@hlineAZsurround[1][\extratabsurround]{% + \extratabsurround #1\let\tabucline \tabucline@scan + \let\hline \tabu@hlinescan \let\firsthline \hline + \let\cline \tabu@clinescan \let\lasthline \hline + \expandafter \futurelet \expandafter \tabu@temp + \expandafter \tabu@nexthlineAZ \tabu@temp +}% \tabu@hlineAZsurround +\def\tabu@hlinescan {\tabu@thick \arrayrulewidth \tabu@xhlineAZ \hline} +\def\tabu@clinescan #1{\tabu@thick \arrayrulewidth \tabu@xhlineAZ {\cline{#1}}} +\def\tabucline@scan{\@testopt \tabucline@sc@n {}} +\def\tabucline@sc@n #1[#2]{\tabu@xhlineAZ {\tabucline[{#1}]{#2}}} +\def\tabu@nexthlineAZ{% + \ifx \tabu@temp\hline \else + \ifx \tabu@temp\cline \else + \ifx \tabu@temp\tabucline \else + \tabu@hlinecorrection + \fi\fi\fi +}% \tabu@nexthlineAZ +\def\tabu@xhlineAZ #1{% + \toks@\expandafter{\the\toks@ #1}% + \@tempdimc \tabu@thick % The last line width + \ifcase\count@ \@tempdimb \tabu@thick % The first line width + \else \advance\dimen@ \dimexpr \tabu@thick+\doublerulesep \relax + \fi + \advance\count@ \@ne \futurelet \tabu@temp \tabu@nexthlineAZ +}% \tabu@xhlineAZ +\def\tabu@firsthlinecorrection{% \count@ = number of \hline -1 + \@tempdima \dimexpr \ht\@arstrutbox+\dimen@ + \edef\firsthline{% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + height \the\dimexpr\@tempdima+\extratabsurround + depth \dp\@arstrutbox + width \tabustrutrule}\hss}\cr + \noalign{\vskip -\the\dimexpr \@tempdima+\@tempdimb + +\dp\@arstrutbox \relax}% + \the\toks@ + }\ifnum0=`{\fi + \expandafter}\firsthline % we are then ! +}% \tabu@firsthlinecorrection +\def\tabu@lasthlinecorrection{% + \@tempdima \dimexpr \dp\@arstrutbox+\dimen@+\@tempdimb+\@tempdimc + \edef\lasthline{% + \the\toks@ + \noalign{\vskip -\the\dimexpr\dimen@+\@tempdimb+\dp\@arstrutbox}% + \omit \hbox to\z@{\hss{\noexpand\tabu@DBG{yellow}\vrule + depth \the\dimexpr \dp\@arstrutbox+\@tempdimb+\dimen@ + +\extratabsurround-\@tempdimc + height \z@ + width \tabustrutrule}\hss}\cr + }\ifnum0=`{\fi + \expandafter}\lasthline % we are then ! +}% \tabu@lasthlinecorrection +\def\tabu@LT@@hline{% + \ifx\LT@next\hline + \global\let\LT@next \@gobble + \ifx \CT@drsc@\relax + \gdef\CT@LT@sep{% + \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% + \else + \gdef\CT@LT@sep{% + \multispan\LT@cols{% + \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}% + \fi + \else + \global\let\LT@next\empty + \gdef\CT@LT@sep{% + \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% + \fi + \ifnum0=`{\fi}% + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \CT@LT@sep + \multispan\LT@cols + {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr + \noalign{\penalty\@M}% + \LT@next +}% \tabu@LT@@hline +%% Horizontal lines : \tabucline ------------------------------------ +\let\tabu@start \@tempcnta +\let\tabu@stop \@tempcntb +\newcommand*\tabucline{\noalign{\ifnum0=`}\fi \tabu@cline} +\newcommand*\tabu@cline[2][]{\tabu@startstop{#2}% + \ifnum \tabu@stop<\z@ \toks@{}% + \else \tabu@clinearg{#1}\tabu@thestyle + \edef\tabucline{\toks@{% + \ifnum \tabu@start>\z@ \omit + \tabu@multispan\tabu@start {\span\omit}&\fi + \omit \tabu@multispan\tabu@stop {\span\omit}% + \tabu@thehline\cr + }}\tabucline + \tabu@tracinglines{(tabu:tabucline) Style: #1^^J\the\toks@^^J^^J}% + \fi + \futurelet \tabu@temp \tabu@xcline +}% \tabu@cline +\def\tabu@clinearg #1{% + \ifx\\#1\\\let\tabu@thestyle \tabu@ls@ + \else \@defaultunits \expandafter\let\expandafter\@tempa + \romannumeral-`\0#1\relax \@nnil + \ifx \hbox\@tempa \tabu@clinebox{#1}% + \else\ifx \box\@tempa \tabu@clinebox{#1}% + \else\ifx \vbox\@tempa \tabu@clinebox{#1}% + \else\ifx \vtop\@tempa \tabu@clinebox{#1}% + \else\ifx \copy\@tempa \tabu@clinebox{#1}% + \else\ifx \leaders\@tempa \tabu@clineleads{#1}% + \else\ifx \cleaders\@tempa \tabu@clineleads{#1}% + \else\ifx \xleaders\@tempa \tabu@clineleads{#1}% + \else\tabu@getline {#1}% + \fi\fi\fi\fi\fi\fi\fi\fi + \fi +}% \tabu@clinearg +\def\tabu@clinebox #1{\tabu@clineleads{\xleaders#1\hss}} +\def\tabu@clineleads #1{% + \let\tabu@thestyle \relax \let\tabu@leaders \@undefined + \gdef\tabu@thehrule{#1}} +\def\tabu@thehline{\begingroup + \ifdefined\tabu@leaders + \noexpand\tabu@thehleaders + \else \noexpand\tabu@thehrule + \fi \endgroup +}% \tabu@thehline +\def\tabu@xcline{% + \ifx \tabu@temp\tabucline + \toks@\expandafter{\the\toks@ \noalign + {\ifx\CT@drsc@\relax \vskip + \else \CT@drsc@\hrule height + \fi + \doublerulesep}}% + \fi + \tabu@docline +}% \tabu@xcline +\def\tabu@docline {\ifnum0=`{\fi \expandafter}\the\toks@} +\def\tabu@docline@evr {\xdef\tabu@doclineafter{\the\toks@}% + \ifnum0=`{\fi}\aftergroup\tabu@doclineafter} +\def\tabu@multispan #1#2{% + \ifnum\numexpr#1>\@ne #2\expandafter\tabu@multispan + \else \expandafter\@gobbletwo + \fi {#1-1}{#2}% +}% \tabu@multispan +\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil} +\def\tabu@start@stop #1-#2\@nnil{% + \@defaultunits \tabu@start\number 0#1\relax \@nnil + \@defaultunits \tabu@stop \number 0#2\relax \@nnil + \tabu@stop \ifnum \tabu@start>\tabu@nbcols \m@ne + \else\ifnum \tabu@stop=\z@ \tabu@nbcols + \else\ifnum \tabu@stop>\tabu@nbcols \tabu@nbcols + \else \tabu@stop + \fi\fi\fi + \advance\tabu@start \m@ne + \ifnum \tabu@start>\z@ \advance\tabu@stop -\tabu@start \fi +}% \tabu@start@stop +%% Numbers: siunitx S columns (and \tabudecimal) ------------------- +\def\tabu@tabudecimal #1{% + \def\tabu@decimal{#1}\@temptokena{}% + \let\tabu@getdecimal@ \tabu@getdecimal@ignorespaces + \tabu@scandecimal +}% \tabu@tabudecimal +\def\tabu@scandecimal{\futurelet \tabu@temp \tabu@getdecimal@} +\def\tabu@skipdecimal#1{#1\tabu@scandecimal} +\def\tabu@getdecimal@ignorespaces{% + \ifcase 0\ifx\tabu@temp\ignorespaces\else + \ifx\tabu@temp\@sptoken1\else + 2\fi\fi\relax + \let\tabu@getdecimal@ \tabu@getdecimal + \expandafter\tabu@skipdecimal + \or \expandafter\tabu@gobblespace\expandafter\tabu@scandecimal + \else \expandafter\tabu@skipdecimal + \fi +}% \tabu@getdecimal@ignorespaces +\def\tabu@get@decimal#1{\@temptokena\expandafter{\the\@temptokena #1}% + \tabu@scandecimal} +\def\do#1{% + \def\tabu@get@decimalspace#1{% + \@temptokena\expandafter{\the\@temptokena #1}\tabu@scandecimal}% +}\do{ } +\let\tabu@@tabudecimal \tabu@tabudecimal +\def\tabu@getdecimal{% + \ifcase 0\ifx 0\tabu@temp\else + \ifx 1\tabu@temp\else + \ifx 2\tabu@temp\else + \ifx 3\tabu@temp\else + \ifx 4\tabu@temp\else + \ifx 5\tabu@temp\else + \ifx 6\tabu@temp\else + \ifx 7\tabu@temp\else + \ifx 8\tabu@temp\else + \ifx 9\tabu@temp\else + \ifx .\tabu@temp\else + \ifx ,\tabu@temp\else + \ifx -\tabu@temp\else + \ifx +\tabu@temp\else + \ifx e\tabu@temp\else + \ifx E\tabu@temp\else + \ifx\tabu@cellleft\tabu@temp1\else + \ifx\ignorespaces\tabu@temp1\else + \ifx\@sptoken\tabu@temp2\else + 3\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + \expandafter\tabu@get@decimal + \or \expandafter\tabu@skipdecimal + \or \expandafter\tabu@get@decimalspace + \else\expandafter\tabu@printdecimal + \fi +}% \tabu@getdecimal +\def\tabu@printdecimal{% + \edef\tabu@temp{\the\@temptokena}% + \ifx\tabu@temp\@empty\else + \ifx\tabu@temp\space\else + \expandafter\tabu@decimal\expandafter{\the\@temptokena}% + \fi\fi +}% \tabu@printdecimal +%% Verbatim inside X columns ---------------------------------------- +\def\tabu@verbatim{% + \let\verb \tabu@verb + \let\FV@DefineCheckEnd \tabu@FV@DefineCheckEnd +}% \tabu@verbatim +\let\tabu@ltx@verb \verb +\def\tabu@verb{\@ifstar {\tabu@ltx@verb*} \tabu@ltx@verb} +\def\tabu@fancyvrb {% + \def\tabu@FV@DefineCheckEnd ##1{% + \def\tabu@FV@DefineCheckEnd{% + ##1% + \let\FV@CheckEnd \tabu@FV@CheckEnd + \let\FV@@CheckEnd \tabu@FV@@CheckEnd + \let\FV@@@CheckEnd \tabu@FV@@@CheckEnd + \edef\FV@EndScanning{% + \def\noexpand\next{\noexpand\end{\FV@EnvironName}}% + \global\let\noexpand\FV@EnvironName\relax + \noexpand\next}% + \xdef\FV@EnvironName{\detokenize\expandafter{\FV@EnvironName}}}% + }\expandafter\tabu@FV@DefineCheckEnd\expandafter{\FV@DefineCheckEnd} +}% \tabu@fancyvrb +\def\tabu@FV@CheckEnd #1{\expandafter\FV@@CheckEnd \detokenize{#1\end{}}\@nil} +\edef\tabu@FV@@@CheckEnd {\detokenize{\end{}}} +\begingroup +\catcode`\[1 \catcode`\]2 +\@makeother\{ \@makeother\} + \edef\x[\endgroup + \def\noexpand\tabu@FV@@CheckEnd ##1\detokenize[\end{]##2\detokenize[}]##3% + ]\x \@nil{\def\@tempa{#2}\def\@tempb{#3}} +\def\tabu@FV@ListProcessLine #1{% + \hbox {%to \hsize{% + \kern\leftmargin + \hbox {%to \linewidth{% + \FV@LeftListNumber + \FV@LeftListFrame + \FancyVerbFormatLine{#1}\hss +%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on) +%% \FV@RightListFrame}% + \FV@RightListFrame + \FV@RightListNumber}% +%% DG/SR modification end + \hss}} +%% \savetabu -------------------------------------------------------- +\newcommand*\savetabu[1]{\noalign{% + \tabu@sanitizearg{#1}\tabu@temp + \ifx \tabu@temp\@empty \tabu@savewarn{}{The tabu will not be saved}\else + \@ifundefined{tabu@saved@\tabu@temp}{}{\tabu@savewarn{#1}{Overwriting}}% + \ifdefined\tabu@restored \expandafter\let + \csname tabu@saved@\tabu@temp \endcsname \tabu@restored + \else {\tabu@save}% + \fi + \fi}% +}% \savetabu +\def\tabu@save {% + \toks0\expandafter{\tabu@saved@}% + \iftabu@negcoef + \let\tabu@wddef \relax \let\tabu@ \tabu@savewd \edef\tabu@savewd{\tabu@Xcoefs}% + \toks0\expandafter{\the\toks\expandafter0\tabu@savewd}\fi + \toks1\expandafter{\tabu@savedpream}% + \toks2\expandafter{\tabu@savedpreamble}% + \let\@preamble \relax + \let\tabu@savedpream \relax \let\tabu@savedparams \relax + \edef\tabu@preamble{% + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \edef\tabu@usetabu{% + \def\@preamble {\noexpand\the\toks2}% + \tabu@target \the\tabu@target \relax + \tabucolX \the\tabucolX \relax + \tabu@nbcols \the\tabu@nbcols \relax + \def\noexpand\tabu@aligndefault{\tabu@align}% + \def\tabu@savedparams {\noexpand\the\toks0}% + \def\tabu@savedpream {\noexpand\the\toks1}}% + \let\tabu@aligndefault \relax \let\@sharp \relax + \edef\@tempa{\noexpand\tabu@s@ved + {\tabu@usetabu} + {\tabu@preamble} + {\the\toks1}}\@tempa + \tabu@message@save +}% \tabu@save +\long\def\tabu@s@ved #1#2#3{% + \def\tabu@usetabu{#1}% + \expandafter\gdef\csname tabu@saved@\tabu@temp\endcsname ##1{% + \ifodd ##1% \usetabu + \tabu@measuringfalse \tabu@spreadfalse % Just in case... + \gdef\tabu@usetabu {% + \ifdim \tabu@target>\z@ \tabu@warn@usetabu \fi + \global\let\tabu@usetabu \@undefined + \def\@halignto {to\tabu@target}% + #1% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \else % \preamble + \gdef\tabu@preamble {% + \global\let\tabu@preamble \@undefined + #2% + \ifx \tabu@align\tabu@aligndefault@text + \ifnum \tabu@nested=\z@ + \let\tabu@align \tabu@aligndefault \fi\fi}% + \fi + #3}% +}% \tabu@s@ved +\def\tabu@aligndefault@text {\tabu@aligndefault}% +\def\tabu@warn@usetabu {\PackageWarning{tabu} + {Specifying a target with \string\usetabu\space is useless + \MessageBreak The target cannot be changed!}} +\def\tabu@savewd #1#2{\ifdim #2\p@<\z@ \tabu@wddef{#1}{\tabu@wd{#1}}\fi} +\def\tabu@savewarn#1#2{\PackageInfo{tabu} + {User-name `#1' already used for \string\savetabu + \MessageBreak #2}}% +\def\tabu@saveerr#1{\PackageError{tabu} + {User-name `#1' is unknown for \string\usetabu + \MessageBreak I cannot restore an unknown preamble!}\@ehd} +%% \rowfont --------------------------------------------------------- +\newskip \tabu@cellskip +\def\tabu@rowfont{\ifdim \baselineskip=\z@\noalign\fi + {\ifnum0=`}\fi \tabu@row@font} +\newcommand*\tabu@row@font[2][]{% + \ifnum7=\currentgrouptype + \global\let\tabu@@cellleft \tabu@cellleft + \global\let\tabu@@cellright \tabu@cellright + \global\let\tabu@@celllalign \tabu@celllalign + \global\let\tabu@@cellralign \tabu@cellralign + \global\let\tabu@@rowfontreset\tabu@rowfontreset + \fi + \global\let\tabu@rowfontreset \tabu@rowfont@reset + \expandafter\gdef\expandafter\tabu@cellleft\expandafter{\tabu@cellleft #2}% + \ifcsname tabu@cell@#1\endcsname % row alignment + \csname tabu@cell@#1\endcsname \fi + \ifnum0=`{\fi}% end of group / noalign group +}% \rowfont +\def\tabu@ifcolorleavevmode #1{\let\color \tabu@leavevmodecolor #1\let\color\tabu@color}% +\def\tabu@rowfont@reset{% + \global\let\tabu@rowfontreset \tabu@@rowfontreset + \global\let\tabu@cellleft \tabu@@cellleft + \global\let\tabu@cellright \tabu@@cellright + \global\let\tabu@cellfont \@empty + \global\let\tabu@celllalign \tabu@@celllalign + \global\let\tabu@cellralign \tabu@@cellralign +}% \tabu@@rowfontreset +\let\tabu@rowfontreset \@empty % overwritten \AtBeginDocument if colortbl +%% \tabu@prepnext@tok ----------------------------------------------- +\newif \iftabu@cellright +\def\tabu@prepnext@tok{% + \ifnum \count@<\z@ % + \@tempcnta \@M % + \tabu@nbcols\z@ + \let\tabu@fornoopORI \@fornoop + \tabu@cellrightfalse + \else + \ifcase \numexpr \count@-\@tempcnta \relax % (case 0): prev. token is left + \advance \tabu@nbcols \@ne + \iftabu@cellright % before-previous token is right and is finished + \tabu@cellrightfalse % + \tabu@righttok + \fi + \tabu@lefttok + \or % (case 1) previous token is right + \tabu@cellrighttrue \let\@fornoop \tabu@lastnoop + \else % special column: do not change the token + \iftabu@cellright % before-previous token is right + \tabu@cellrightfalse + \tabu@righttok + \fi + \fi % \ifcase + \fi + \tabu@prepnext@tokORI +}% \tabu@prepnext@tok +\long\def\tabu@lastnoop#1\@@#2#3{\tabu@lastn@@p #2\@nextchar \in@\in@@} +\def\tabu@lastn@@p #1\@nextchar #2#3\in@@{% + \ifx \in@#2\else + \let\@fornoop \tabu@fornoopORI + \xdef\tabu@mkpreambuffer{\tabu@nbcols\the\tabu@nbcols \tabu@mkpreambuffer}% + \toks0\expandafter{\expandafter\tabu@everyrowtrue \the\toks0}% + \expandafter\prepnext@tok + \fi +}% \tabu@lastnoop +\def\tabu@righttok{% + \advance \count@ \m@ne + \toks\count@\expandafter {\the\toks\count@ \tabu@cellright \tabu@cellralign}% + \advance \count@ \@ne +}% \tabu@righttok +\def\tabu@lefttok{\toks\count@\expandafter{\expandafter\tabu@celllalign + \the\toks\count@ \tabu@cellleft}% after because of $ +}% \tabu@lefttok +%% Neutralisation of glues ------------------------------------------ +\let\tabu@cellleft \@empty +\let\tabu@cellright \@empty +\tabu@celllalign@def{\tabu@cellleft}% +\let\tabu@cellralign \@empty +\def\tabu@cell@align #1#2#3{% + \let\tabu@maybesiunitx \toks@ \tabu@celllalign + \global \expandafter \tabu@celllalign@def \expandafter {\the\toks@ #1}% + \toks@\expandafter{\tabu@cellralign #2}% + \xdef\tabu@cellralign{\the\toks@}% + \toks@\expandafter{\tabu@cellleft #3}% + \xdef\tabu@cellleft{\the\toks@}% +}% \tabu@cell@align +\def\tabu@cell@l{% force alignment to left + \tabu@cell@align + {\tabu@removehfil \raggedright \tabu@cellleft}% left + {\tabu@flush1\tabu@ignorehfil}% right + \raggedright +}% \tabu@cell@l +\def\tabu@cell@c{% force alignment to center + \tabu@cell@align + {\tabu@removehfil \centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \centering +}% \tabu@cell@c +\def\tabu@cell@r{% force alignment to right + \tabu@cell@align + {\tabu@removehfil \raggedleft \tabu@flush1\tabu@cellleft} + \tabu@ignorehfil + \raggedleft +}% \tabu@cell@r +\def\tabu@cell@j{% force justification (for p, m, b columns) + \tabu@cell@align + {\tabu@justify\tabu@cellleft} + {} + \tabu@justify +}% \tabu@cell@j +\def\tabu@justify{% + \leftskip\z@skip \@rightskip\leftskip \rightskip\@rightskip + \parfillskip\@flushglue +}% \tabu@justify +%% ragged2e settings +\def\tabu@cell@L{% force alignment to left (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedRight \tabu@cellleft} + {\tabu@flush 1\tabu@ignorehfil} + \RaggedRight +}% \tabu@cell@L +\def\tabu@cell@C{% force alignment to center (ragged2e) + \tabu@cell@align + {\tabu@removehfil \Centering \tabu@flush{.5}\tabu@cellleft} + {\tabu@flush{.5}\tabu@ignorehfil} + \Centering +}% \tabu@cell@C +\def\tabu@cell@R{% force alignment to right (ragged2e) + \tabu@cell@align + {\tabu@removehfil \RaggedLeft \tabu@flush 1\tabu@cellleft} + \tabu@ignorehfil + \RaggedLeft +}% \tabu@cell@R +\def\tabu@cell@J{% force justification (ragged2e) + \tabu@cell@align + {\justifying \tabu@cellleft} + {} + \justifying +}% \tabu@cell@J +\def\tabu@flush#1{% + \iftabu@colortbl % colortbl uses \hfill rather than \hfil + \hskip \ifnum13<\currentgrouptype \stretch{#1}% + \else \ifdim#1pt<\p@ \tabu@cellskip + \else \stretch{#1} + \fi\fi \relax + \else % array.sty + \ifnum 13<\currentgrouptype + \hfil \hskip1sp \relax \fi + \fi +}% \tabu@flush +\let\tabu@hfil \hfil +\let\tabu@hfill \hfill +\let\tabu@hskip \hskip +\def\tabu@removehfil{% + \iftabu@colortbl + \unkern \tabu@cellskip =\lastskip + \ifnum\gluestretchorder\tabu@cellskip =\tw@ \hskip-\tabu@cellskip + \else \tabu@cellskip \z@skip + \fi + \else + \ifdim\lastskip=1sp\unskip\fi + \ifnum\gluestretchorder\lastskip =\@ne + \hfilneg % \hfilneg for array.sty but not for colortbl... + \fi + \fi +}% \tabu@removehfil +\def\tabu@ignorehfil{\aftergroup \tabu@nohfil} +\def\tabu@nohfil{% \hfil -> do nothing + restore original \hfil + \def\hfil{\let\hfil \tabu@hfil}% local to (alignment template) group +}% \tabu@nohfil +\def\tabu@colortblalignments {% if colortbl + \def\tabu@nohfil{% + \def\hfil {\let\hfil \tabu@hfil}% local to (alignment template) group + \def\hfill {\let\hfill \tabu@hfill}% (colortbl uses \hfill) pfff... + \def\hskip ####1\relax{\let\hskip \tabu@hskip}}% local +}% \tabu@colortblalignments +%% Taking care of footnotes and hyperfootnotes ---------------------- +\long\def\tabu@footnotetext #1{% + \edef\@tempa{\the\tabu@footnotes + \noexpand\footnotetext [\the\csname c@\@mpfn\endcsname]}% + \global\tabu@footnotes\expandafter{\@tempa {#1}}}% +\long\def\tabu@xfootnotetext [#1]#2{% + \global\tabu@footnotes\expandafter{\the\tabu@footnotes + \footnotetext [{#1}]{#2}}} +\let\tabu@xfootnote \@xfootnote +\long\def\tabu@Hy@ftntext{\tabu@Hy@ftntxt {\the \c@footnote }} +\long\def\tabu@Hy@xfootnote [#1]{% + \begingroup + \value\@mpfn #1\relax + \protected@xdef \@thefnmark {\thempfn}% + \endgroup + \@footnotemark \tabu@Hy@ftntxt {#1}% +}% \tabu@Hy@xfootnote +\long\def\tabu@Hy@ftntxt #1#2{% + \edef\@tempa{% + \the\tabu@footnotes + \begingroup + \value\@mpfn #1\relax + \noexpand\protected@xdef\noexpand\@thefnmark {\noexpand\thempfn}% + \expandafter \noexpand \expandafter + \tabu@Hy@footnotetext \expandafter{\Hy@footnote@currentHref}% + }% + \global\tabu@footnotes\expandafter{\@tempa {#2}% + \endgroup}% +}% \tabu@Hy@ftntxt +\long\def\tabu@Hy@footnotetext #1#2{% + \H@@footnotetext{% + \ifHy@nesting + \hyper@@anchor {#1}{#2}% + \else + \Hy@raisedlink{% + \hyper@@anchor {#1}{\relax}% + }% + \def\@currentHref {#1}% + \let\@currentlabelname \@empty + #2% + \fi + }% +}% \tabu@Hy@footnotetext +%% No need for \arraybackslash ! ------------------------------------ +\def\tabu@latextwoe {% +\def\tabu@temp##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@centering \centering \arraybackslash +\tabu@temp \tabu@raggedleft \raggedleft \arraybackslash +\tabu@temp \tabu@raggedright \raggedright \arraybackslash +}% \tabu@latextwoe +\def\tabu@raggedtwoe {% +\def\tabu@temp ##1##2##3{{\toks@\expandafter{##2##3}\xdef##1{\the\toks@}}} +\tabu@temp \tabu@Centering \Centering \arraybackslash +\tabu@temp \tabu@RaggedLeft \RaggedLeft \arraybackslash +\tabu@temp \tabu@RaggedRight \RaggedRight \arraybackslash +\tabu@temp \tabu@justifying \justifying \arraybackslash +}% \tabu@raggedtwoe +\def\tabu@normalcrbackslash{\let\\\@normalcr} +\def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% + \expandafter\tabu@normalcrbackslash \@trivlist}} +%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- +\def\tabu@fbox {\leavevmode\afterassignment\tabu@beginfbox \setbox\@tempboxa\hbox} +\def\tabu@beginfbox {\bgroup \kern\fboxsep + \bgroup\aftergroup\tabu@endfbox} +\def\tabu@endfbox {\kern\fboxsep\egroup\egroup + \@frameb@x\relax} +\def\tabu@color@b@x #1#2{\leavevmode \bgroup + \def\tabu@docolor@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% + \afterassignment\tabu@begincolor@b@x \setbox\z@ \hbox +}% \tabu@color@b@x +\def\tabu@begincolor@b@x {\kern\fboxsep \bgroup + \aftergroup\tabu@endcolor@b@x \set@color} +\def\tabu@endcolor@b@x {\kern\fboxsep \egroup + \dimen@\ht\z@ \advance\dimen@ \fboxsep \ht\z@ \dimen@ + \dimen@\dp\z@ \advance\dimen@ \fboxsep \dp\z@ \dimen@ + \tabu@docolor@b@x \egroup +}% \tabu@endcolor@b@x +%% Corrections (arydshln, delarray, colortbl) ----------------------- +\def\tabu@fix@arrayright {%% \@arrayright is missing from \endarray + \iftabu@colortbl + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \CT@end \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \def\tabu@endarray{% + \crcr \egroup \egroup % + \@arrayright % + \gdef\@preamble{}\CT@end}% + \fi + \else + \ifdefined\adl@array % + \def\tabu@endarray{% + \adl@endarray \egroup \adl@arrayrestore \egroup % + \@arrayright % + \gdef\@preamble{}}% + \else % + \PackageWarning{tabu} + {\string\@arrayright\space is missing from the + \MessageBreak definition of \string\endarray. + \MessageBreak Compatibility with delarray.sty is broken.}% + \fi\fi +}% \tabu@fix@arrayright +\def\tabu@adl@xarraydashrule #1#2#3{% + \ifnum\@lastchclass=\adl@class@start\else + \ifnum\@lastchclass=\@ne\else + \ifnum\@lastchclass=5 \else % @-arg (class 5) and !-arg (class 1) + \adl@leftrulefalse \fi\fi % must be treated the same + \fi + \ifadl@zwvrule\else \ifadl@inactive\else + \@addtopreamble{\vrule\@width\arrayrulewidth + \@height\z@ \@depth\z@}\fi \fi + \ifadl@leftrule + \@addtopreamble{\adl@vlineL{\CT@arc@}{\adl@dashgapcolor}% + {\number#1}#3}% + \else \@addtopreamble{\adl@vlineR{\CT@arc@}{\adl@dashgapcolor}% + {\number#2}#3} + \fi +}% \tabu@adl@xarraydashrule +\def\tabu@adl@act@endpbox {% + \unskip \ifhmode \nobreak \fi \@finalstrut \@arstrutbox + \egroup \egroup + \adl@colhtdp \box\adl@box \hfil +}% \tabu@adl@act@endpbox +\def\tabu@adl@fix {% + \let\adl@xarraydashrule \tabu@adl@xarraydashrule % arydshln + \let\adl@act@endpbox \tabu@adl@act@endpbox % arydshln + \let\adl@act@@endpbox \tabu@adl@act@endpbox % arydshln + \let\@preamerror \@preamerr % arydshln +}% \tabu@adl@fix +%% Correction for longtable' \@startbox definition ------------------ +%% => \everypar is ``missing'' : TeX should be in vertical mode +\def\tabu@LT@startpbox #1{% + \bgroup + \let\@footnotetext\LT@p@ftntext + \setlength\hsize{#1}% + \@arrayparboxrestore + \everypar{% + \vrule \@height \ht\@arstrutbox \@width \z@ + \everypar{}}% +}% \tabu@LT@startpbox +%% \tracingtabu and the package options ------------------ +\DeclareOption{delarray}{\AtEndOfPackage{\RequirePackage{delarray}}} +\DeclareOption{linegoal}{% + \AtEndOfPackage{% + \RequirePackage{linegoal}[2010/12/07]% + \let\tabudefaulttarget \linegoal% \linegoal is \linewidth if not pdfTeX +}} +\DeclareOption{scantokens}{\tabuscantokenstrue} +\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu=\tw@}} +\def\tracingtabu {\begingroup\@ifnextchar=% + {\afterassignment\tabu@tracing\count@} + {\afterassignment\tabu@tracing\count@1\relax}} +\def\tabu@tracing{\expandafter\endgroup + \expandafter\tabu@tr@cing \the\count@ \relax +}% \tabu@tracing +\def\tabu@tr@cing #1\relax {% + \ifnum#1>\thr@@ \let\tabu@tracinglines\message + \else \let\tabu@tracinglines\@gobble + \fi + \ifnum#1>\tw@ \let\tabu@DBG \tabu@@DBG + \def\tabu@mkarstrut {\tabu@DBG@arstrut}% + \tabustrutrule 1.5\p@ + \else \let\tabu@DBG \@gobble + \def\tabu@mkarstrut {\tabu@arstrut}% + \tabustrutrule \z@ + \fi + \ifnum#1>\@ne \let\tabu@debug \message + \else \let\tabu@debug \@gobble + \fi + \ifnum#1>\z@ + \let\tabu@message \message + \let\tabu@tracing@save \tabu@message@save + \let\tabu@starttimer \tabu@pdftimer + \else + \let\tabu@message \@gobble + \let\tabu@tracing@save \@gobble + \let\tabu@starttimer \relax + \fi +}% \tabu@tr@cing +%% Setup \AtBeginDocument +\AtBeginDocument{\tabu@AtBeginDocument} +\def\tabu@AtBeginDocument{\let\tabu@AtBeginDocument \@undefined + \ifdefined\arrayrulecolor \tabu@colortbltrue % + \tabu@colortblalignments % different glues are used + \else \tabu@colortblfalse \fi + \ifdefined\CT@arc@ \else \let\CT@arc@ \relax \fi + \ifdefined\CT@drsc@\else \let\CT@drsc@ \relax \fi + \let\tabu@arc@L \CT@arc@ \let\tabu@drsc@L \CT@drsc@ + \ifodd 1\ifcsname siunitx_table_collect_begin:Nn\endcsname % + \expandafter\ifx + \csname siunitx_table_collect_begin:Nn\endcsname\relax 0\fi\fi\relax + \tabu@siunitxtrue + \else \let\tabu@maybesiunitx \@firstofone % + \let\tabu@siunitx \tabu@nosiunitx + \tabu@siunitxfalse + \fi + \ifdefined\adl@array % + \else \let\tabu@adl@fix \relax + \let\tabu@adl@endtrial \@empty \fi + \ifdefined\longtable % + \else \let\longtabu \tabu@nolongtabu \fi + \ifdefined\cellspacetoplimit \tabu@warn@cellspace\fi + \csname\ifcsname ifHy@hyperfootnotes\endcsname % + ifHy@hyperfootnotes\else iffalse\fi\endcsname + \let\tabu@footnotetext \tabu@Hy@ftntext + \let\tabu@xfootnote \tabu@Hy@xfootnote \fi + \ifdefined\FV@DefineCheckEnd% + \tabu@fancyvrb \fi + \ifdefined\color % + \let\tabu@color \color + \def\tabu@leavevmodecolor ##1{% + \def\tabu@leavevmodecolor {\leavevmode ##1}% + }\expandafter\tabu@leavevmodecolor\expandafter{\color}% + \else + \let\tabu@color \tabu@nocolor + \let\tabu@leavevmodecolor \@firstofone \fi + \tabu@latextwoe + \ifdefined\@raggedtwoe@everyselectfont % + \tabu@raggedtwoe + \else + \let\tabu@cell@L \tabu@cell@l + \let\tabu@cell@R \tabu@cell@r + \let\tabu@cell@C \tabu@cell@c + \let\tabu@cell@J \tabu@cell@j \fi + \expandafter\in@ \expandafter\@arrayright \expandafter{\endarray}% + \ifin@ \let\tabu@endarray \endarray + \else \tabu@fix@arrayright \fi% + \everyrow{}% +}% \tabu@AtBeginDocument +\def\tabu@warn@cellspace{% + \PackageWarning{tabu}{% + Package cellspace has some limitations + \MessageBreak And redefines some macros of array.sty. + \MessageBreak Please use \string\tabulinesep\space to control + \MessageBreak vertical spacing of lines inside tabu environment}% +}% \tabu@warn@cellspace +%% tabu Package initialisation +\tabuscantokensfalse +\let\tabu@arc@G \relax +\let\tabu@drsc@G \relax +\let\tabu@evr@G \@empty +\let\tabu@rc@G \@empty +\def\tabu@ls@G {\tabu@linestyle@}% +\let\tabu@@rowfontreset \@empty % +\let\tabu@@celllalign \@empty +\let\tabu@@cellralign \@empty +\let\tabu@@cellleft \@empty +\let\tabu@@cellright \@empty +\def\tabu@naturalXmin {\z@} +\def\tabu@naturalXmax {\z@} +\let\tabu@rowfontreset \@empty +\def\tabulineon {4pt}\let\tabulineoff \tabulineon +\tabu@everyrowtrue +\ifdefined\pdfelapsedtime % + \def\tabu@pdftimer {\xdef\tabu@starttime{\the\pdfelapsedtime}}% +\else \let\tabu@pdftimer \relax \let\tabu@message@etime \relax +\fi +\tracingtabu=\z@ +\newtabulinestyle {=\maxdimen}% creates the 'factory' settings \tabu@linestyle@ +\tabulinestyle{} +\taburowcolors{} +\let\tabudefaulttarget \linewidth +\ProcessOptions* % \ProcessOptions* is quicker ! +\endinput +%% +%% End of file `tabu.sty'. diff --git "a/\320\232\320\276\320\274\320\260\320\275\320\264\321\213 \320\264\320\276\320\272\320\265\321\200.txt" "b/\320\232\320\276\320\274\320\260\320\275\320\264\321\213 \320\264\320\276\320\272\320\265\321\200.txt" new file mode 100644 index 0000000..53528de --- /dev/null +++ "b/\320\232\320\276\320\274\320\260\320\275\320\264\321\213 \320\264\320\276\320\272\320\265\321\200.txt" @@ -0,0 +1,8 @@ +docker run - докер-клиент нашел образ, загрузил контейнер и запустил команду внутри этого контейнера. +docker ps - выводит на экран список всех запущенных контейнеров. +docker ps -a - список всех контейнеров, которые мы запускались. +docker rm - удаление контейнера с заданным id, можно задавать сразу несколько id +docker rm $(docker ps -a -q -f status=exited) - удалить все контейнеры docker run -d -P --name - Флаг -d открепит (detach) терминал, флаг -p сделает все открытые порты публичными и случайными, флаг--name устанавливает имя, которое мы хотим дать контейнеру +docker port - показать открытые порты +docker run -p 8888:80 - указать свой порт (в примере 888:80) +docker stop - остановить контейнер с заданным id \ No newline at end of file