summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pgf
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:02:28 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:02:28 +0000
commit1d53bc2f5dacbab72e8d152bb066911affff6b91 (patch)
tree390b41aa9023e6b1e4e7b78c0fd9c5e3dc1923ae /Master/texmf-dist/tex/latex/pgf
parent048e080abeec202eff94a248440707c29174dc2f (diff)
pgf
git-svn-id: svn://tug.org/texlive/trunk@1191 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pgf')
-rw-r--r--Master/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty29
-rw-r--r--Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseimage.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaselayers.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseplot.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseshapes.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbasesnakes.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty13
-rw-r--r--Master/texmf-dist/tex/latex/pgf/compatibility/pgfarrows.sty15
-rw-r--r--Master/texmf-dist/tex/latex/pgf/compatibility/pgfautomata.sty312
-rw-r--r--Master/texmf-dist/tex/latex/pgf/compatibility/pgfcompatibility-version-0-65.sty700
-rw-r--r--Master/texmf-dist/tex/latex/pgf/compatibility/pgfheaps.sty103
-rw-r--r--Master/texmf-dist/tex/latex/pgf/compatibility/pgfnodes.sty15
-rw-r--r--Master/texmf-dist/tex/latex/pgf/compatibility/pgfshade.sty15
-rw-r--r--Master/texmf-dist/tex/latex/pgf/frontendlayer/pgfpict2e.sty109
-rw-r--r--Master/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryarrows.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryautomata.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryplothandlers.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryplotmarks.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryshapes.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarysnakes.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarytikzbackgrounds.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarytikztrees.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty13
-rw-r--r--Master/texmf-dist/tex/latex/pgf/utilities/pgffor.sty10
-rw-r--r--Master/texmf-dist/tex/latex/pgf/utilities/pgfpages.sty1043
-rw-r--r--Master/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty8
-rw-r--r--Master/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty105
28 files changed, 2630 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
new file mode 100644
index 00000000000..7f2608fad07
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
@@ -0,0 +1,29 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfrcs}
+
+\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/latex/pgf/basiclayer/pgf.sty,v 1.4 2005/09/05 13:23:04 tantau Exp $
+
+\def\pgf@draft{}
+\DeclareOption{draft}{\def\pgf@draft{\pgf@draftmodetrue}}
+
+\def\pgf@obsolete{\RequirePackage{pgfcompatibility-version-0-65}}
+\DeclareOption{version=0.65}{}
+\DeclareOption{version=0.96}{\def\pgf@obsolete{}}
+
+\ProcessOptions
+
+\RequirePackage{pgfcore}
+\RequirePackage{pgfbaseshapes}
+\RequirePackage{pgfbaseplot}
+\RequirePackage{pgfbaseimage}
+\RequirePackage{pgfbaselayers}
+\RequirePackage{pgfbasesnakes}
+
+\pgf@obsolete
+\pgf@draft
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseimage.sty b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseimage.sty
new file mode 100644
index 00000000000..66e26fff22b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseimage.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgfbaseimage.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaselayers.sty b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaselayers.sty
new file mode 100644
index 00000000000..ecfd18b90eb
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaselayers.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgfbaselayers.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseplot.sty b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseplot.sty
new file mode 100644
index 00000000000..23ea1e203b5
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseplot.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgfbaseplot.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseshapes.sty b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseshapes.sty
new file mode 100644
index 00000000000..9aec11b7f8a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbaseshapes.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgfbaseshapes.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbasesnakes.sty b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbasesnakes.sty
new file mode 100644
index 00000000000..ac13678e36f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfbasesnakes.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgfbasesnakes.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
new file mode 100644
index 00000000000..2655521f773
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
@@ -0,0 +1,13 @@
+% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{graphicx}
+\RequirePackage{pgfsys}
+\RequirePackage{keyval}
+\RequirePackage{xcolor}
+
+\input{pgfcore.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/compatibility/pgfarrows.sty b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfarrows.sty
new file mode 100644
index 00000000000..f834a7defb5
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfarrows.sty
@@ -0,0 +1,15 @@
+\RequirePackage{pgfrcs}
+
+\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/latex/pgf/compatibility/pgfarrows.sty,v 1.2 2005/07/06 15:58:58 tantau Exp $
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgf}
+
+\PackageWarning{pgfarrows}{This package is obsolete. pgf.sty will load
+ arrow management automatically}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/compatibility/pgfautomata.sty b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfautomata.sty
new file mode 100644
index 00000000000..3f192076fcb
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfautomata.sty
@@ -0,0 +1,312 @@
+\RequirePackage{pgfrcs}
+
+\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/latex/pgf/compatibility/pgfautomata.sty,v 1.2 2005/07/06 15:58:58 tantau Exp $
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+
+
+\RequirePackage{pgf}
+
+\PackageWarning{pgfautomata}{This package is obsolete.}
+
+\ProcessOptions
+
+%
+% Package for drawing finite automata.
+%
+
+
+\newdimen\pgf@stateradius
+\newdimen\pgf@mooreradius
+\newdimen\pgf@doublethickness
+\newdimen\pgf@statebackoff
+
+
+
+
+% Automaton environment - setup of certain drawing parameters like arrows.
+%
+% Example:
+%
+% \begin{pgfpicture}{-2cm}{-2cm}{2cm}{2cm}%
+% \begin{pgfautomaton}
+% \pgfstaterejecting{q1}{\pgforigin}{$q_1$}
+% \pgfstateaccepting{q2}{\pgfstaterelative[east]{q1}{1cm}}{$q_2$}
+% \pgfstateaccepting{q3}{\pgfstaterelative[east]{q2}{1cm}}{$q_3$}
+%
+% \pgfstateconnect{q1}{q2}[.5]{$0$}
+% \pgfstateconnect{q2}{q3}[.5]{$1$}
+% \pgfstateloop{q1}{90}{$1$}
+% \pgfstateloop{q2}{90}{$1$}
+% \end{pgfautomaton}
+% \end{pgfpicture}
+
+\def\pgfautomaton{\begin{pgfscope}%
+ \pgfsetendarrow{\pgfarrowto}%
+ \pgfnodesetsepend{4pt}\ignorespaces}
+\def\endpgfautomaton{\end{pgfscope}}
+
+
+
+% Set the outer state radius to #1.
+%
+% #1 = new state radius.
+%
+% Example:
+%
+% \pgfsetstateradius{10pt}
+
+\def\pgfsetstateradius#1{\setlength\pgf@stateradius{#1}\ignorespaces}
+
+\pgfsetstateradius{1em}
+
+
+
+% Set the state radius for Moore states to #1.
+%
+% #1 = new state radius.
+%
+% Example:
+%
+% \pgfsetstatemooreradius{10pt}
+
+\def\pgfsetstatemooreradius#1{\setlength\pgf@mooreradius{#1}\ignorespaces}
+
+\pgfsetstatemooreradius{2em}
+
+
+
+% Set the distance between the outer and the inner circle in an
+% accepting state.
+%
+% #1 = new distance radius.
+%
+% Example:
+%
+% \pgfsetstatecircledistance{1.2pt}
+
+\def\pgfsetstatecircledistance#1{\setlength\pgf@doublethickness{#1}\ignorespaces}
+
+\pgfsetstatecircledistance{1.6pt}
+
+
+
+% Set the distance between a connecting line and a label to #1.
+%
+% #1 = new distance
+%
+% Example:
+%
+% \pgfsetstatelabeldistance{4pt}
+
+\def\pgfsetstatelabeldistance#1{\setlength\pgf@statebackoff{#1}\ignorespaces}
+
+\pgfsetstatelabeldistance{4pt}
+
+
+% Draws an accepting state #1 with name #3 at position #2.
+%
+% #1 = a name
+% #2 = a point
+% #3 = a text
+%
+% Example:
+%
+% \pgfstateaccepting{q1}{\pgfxy(1,1)}{$q_1$}
+
+\def\pgfstateaccepting#1#2#3{%
+ \pgfnodecircle{#1}[stroke]{#2}{\pgf@stateradius}%
+ \pgfputat{#2}{\pgfbox[center,center]{#3}}%
+ {%
+ \pgf@xa=\pgf@stateradius%
+ \advance\pgf@xa by-\pgf@doublethickness%
+ \pgfcircle[stroke]{#2}{\pgf@xa}}\ignorespaces}
+
+
+% Draws a rejecting state #1 with name #3 at position #2.
+%
+% #1 = a name
+% #2 = a point
+% #3 = a text
+%
+% Example:
+%
+% \pgfstaterejecting{q2}{\pgfstatedirection[n]{q1}}{$q_2$}
+
+\def\pgfstaterejecting#1#2#3{%
+ \pgfnodecircle{#1}[stroke]{#2}{\pgf@stateradius}%
+ \pgfputat{#2}{\pgfbox[center,center]{#3}}\ignorespaces}
+
+
+% Draws a Moore state #1 with name #3 and output #4 at position #2.
+%
+% #1 = a name
+% #2 = a point
+% #3 = a text
+% #4 = an output text
+%
+% Example:
+%
+% \pgfstatemoore{q}{\pgfxy(1,1)}{$q_1$}{$0,1$}
+
+\def\pgfstatemoore#1#2#3#4{%
+ \pgfnodecircle{#1}[stroke]{#2}{\pgf@mooreradius}%
+ \begin{pgftranslate}{#2}%
+ \begin{pgfscope}%
+ \pgfsetdash{{2pt}{1pt}}{0pt}%
+ \pgfmoveto{\pgfpoint{-\pgf@mooreradius}{0cm}}%
+ \pgflineto{\pgfpoint{\pgf@mooreradius}{0cm}}%
+ \pgfqstroke%
+ \end{pgfscope}%
+ \pgfputat{\pgfpoint{0cm}{0.4\pgf@mooreradius}}{\pgfbox[center,base]{#3}}%
+ \pgfputat{\pgfpoint{0cm}{-0.2\pgf@mooreradius}}{\pgfbox[center,top]{#4}}%
+ \end{pgftranslate}\ignorespaces}
+
+
+
+
+% Connect states #1 and #2 and draw #4 above label, #3-th part of the
+% way from #1 to #2.
+%
+% #1 = a start state
+% #2 = an end state
+% #3 = a fraction of the distance between the two
+% #4 = a label
+%
+% Example:
+%
+% \pgfstateconnect{q1}{q2}[.5]{$0$}
+
+\def\pgfstateconnect#1#2[#3]#4{%
+ \pgfnodeconnline{#1}{#2}%
+ \pgfnodelabel{#1}{#2}[#3][\pgf@statebackoff]%
+ {\pgfbox[center,bottom]{#4}}\ignorespaces}
+
+
+
+% Connect states #1 and #2 and draw #4 above label, #3-th part of the
+% way from #1 to #2.
+%
+% #1 = a start state
+% #2 = an end state
+% #3 = a fraction of the distance between the two
+% #4 = a label
+%
+% Example:
+%
+% \pgfstateconnectrotated{q1}{q2}[.5]{$0$}
+
+\def\pgfstateconnectrotated#1#2[#3]#4{%
+ \pgfnodeconnline{#1}{#2}%
+ \pgfnodelabelrotated{#1}{#2}[#3][\pgf@statebackoff]%
+ {\pgfbox[center,bottom]{#4}}\ignorespaces}
+
+
+
+% Connect state #1 with itself with label #3 and a loop going in
+% direction #2.
+%
+% #1 = a state
+% #2 = an angle
+% #3 = a label
+%
+% Example:
+%
+% \pgfstateloop{q1}{90}{$0$}
+
+\def\pgfstateloop#1#2#3{%
+ \c@pgf@counta=#2\relax%
+ \c@pgf@countb=#2\relax%
+ \advance\c@pgf@counta by15\relax%
+ \advance\c@pgf@countb by-15\relax%
+ \pgfnodeconncurve{#1}{#1}{\the\c@pgf@counta}{\the\c@pgf@countb}{2\pgf@stateradius}{2\pgf@stateradius}%
+ \pgfputat{\pgfnodeborder{#1}{#2}{2.25\pgf@stateradius}}{\pgfbox[center,center]{#3}}\ignorespaces}
+
+
+
+% Connect states #1 and #2 and draw #4 above label, #3-th part of the
+% way from #1 to #2.
+%
+% #1 = a start state
+% #2 = an end state
+% #3 = a start angle
+% #4 = an end angle
+%
+% Example:
+%
+% \pgfstatecurve{q1}{q2}{10}{-10}
+
+\def\pgfstatecurve#1#2#3#4{%
+ \pgfnodeconncurve{#1}{#2}{#3}{#4}{2\pgf@stateradius}{2\pgf@stateradius}\ignorespaces}
+
+
+
+% Give a position relative to some state.
+%
+% #1 = a direction
+% #2 = a state
+% #3 = a distance
+%
+% Example:
+%
+% \pgfstaterelative[east]{q2}{1cm}
+
+\def\pgfstaterelative{\pgfnoderelative}
+
+
+
+% Draw an initial state by drawing an inleading line.
+%
+% #1 = a state
+% #2 = a direction leading into the state (n,s,e,w)
+% #3 = a label (for example ``start'')
+%
+% Example:
+%
+% \pgfstateinitial{q1}[w]{start}
+
+\def\pgfstateinitial#1[#2]#3{{%
+ \pgfmoveto{\pgfrelative{\pgfnodeborder{#1}{\pgfdirection{#2}}{-2pt}}%
+ {\pgfpolar{\pgfdirection{#2}}{1.5\pgf@stateradius}}}%
+ \pgflineto{\pgfnodeborder{#1}{\pgfdirection{#2}}{\pgf@nodesepend}}%
+ \pgfstroke%
+ \edef\temp{[\csname pgf@statepos\pgfdirection{#2}\endcsname]}%
+ \pgfputat{\pgfrelative{\pgfnodeborder{#1}{\pgfdirection{#2}}{0pt}}%
+ {\pgfpolar{\pgfdirection{#2}}{1.5\pgf@stateradius}}}%
+ {\expandafter\pgfbox\temp{#3}}}\ignorespaces}
+
+\expandafter\def\csname pgf@statepos0\endcsname{left,center}
+\expandafter\def\csname pgf@statepos90\endcsname{center,bottom}
+\expandafter\def\csname pgf@statepos180\endcsname{right,center}
+\expandafter\def\csname pgf@statepos270\endcsname{center,top}
+
+
+
+% Draw an final state by drawing an outleading line.
+%
+% #1 = a state
+% #2 = a direction leading out of the state (valid directions are
+% n,s,e,w)
+% #3 = a label (for example ``exit'')
+%
+% Example:
+%
+% \pgfstatefinal{q1}[right]{accept}
+
+\def\pgfstatefinal#1[#2]#3{{%
+ \pgfmoveto{\pgfnodeborder{#1}{\pgfdirection{#2}}{\pgf@nodesepstart}}%
+ \pgflineto{\pgfrelative{\pgfnodeborder{#1}{\pgfdirection{#2}}{-\pgf@nodesepend}}%
+ {\pgfpolar{\pgfdirection{#2}}{1.5\pgf@stateradius}}}%
+ \pgfstroke%
+ \edef\tempb{[\csname pgf@statepos\pgfdirection{#2}\endcsname]}%
+ \pgfputat{\pgfrelative{\pgfnodeborder{#1}{\pgfdirection{#2}}{0pt}}%
+ {\pgfpolar{\pgfdirection{#2}}{1.5\pgf@stateradius}}}%
+ {\expandafter\pgfbox\tempb{#3}}}\ignorespaces}
+
+
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/compatibility/pgfcompatibility-version-0-65.sty b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfcompatibility-version-0-65.sty
new file mode 100644
index 00000000000..f084c7ec3e8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfcompatibility-version-0-65.sty
@@ -0,0 +1,700 @@
+\RequirePackage{pgfrcs}
+
+\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/latex/pgf/compatibility/pgfcompatibility-version-0-65.sty,v 1.4 2005/07/18 14:37:48 tantau Exp $
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\def\pgfdirection#1{\csname pgf@direction#1\endcsname}
+
+\def\pgf@directionn{90}
+\def\pgf@directionnorth{90}
+\def\pgf@directionabove{90}
+\def\pgf@directions{270}
+\def\pgf@directionsouth{270}
+\def\pgf@directionbelow{270}
+\def\pgf@directionw{180}
+\def\pgf@directionwest{180}
+\def\pgf@directionleft{180}
+\def\pgf@directione{0}
+\def\pgf@directioneast{0}
+\def\pgf@directionright{0}
+\def\pgf@directionne{45}
+\def\pgf@directionse{315}
+\def\pgf@directionnw{135}
+\def\pgf@directionsw{-135}
+
+
+\def\pgfpictureboxed#1#2#3#4{%
+ \pgfpicture{#1}{#2}{#3}{#4}%
+ \pgfmoveto{\pgfpoint{#1}{#2}}%
+ \pgflineto{\pgfpoint{#1}{#4}}%
+ \pgflineto{\pgfpoint{#3}{#4}}%
+ \pgflineto{\pgfpoint{#3}{#2}}%
+ \pgfclosestroke\ignorespaces}
+\def\endpgfpictureboxed{\endpgfpicture}
+
+\def\pgfxyline(#1,#2)(#3,#4){%
+ \pgfmoveto{\pgfxy(#1,#2)}%
+ \pgflineto{\pgfxy(#3,#4)}%
+ \pgfstroke}
+
+\def\pgfxycurve(#1,#2)(#3,#4)(#5,#6)(#7,#8){%
+ \pgfmoveto{\pgfxy(#1,#2)}%
+ \pgfbezier{\pgfxy(#3,#4)}{\pgfxy(#5,#6)}{\pgfxy(#7,#8)}%
+ \pgfstroke}
+
+\def\pgfline#1#2{%
+ \pgfmoveto{#1}%
+ \pgflineto{#2}%
+ \pgfstroke}
+
+\let\pgflineto=\pgfpathlineto
+\let\pgfmoveto=\pgfpathmoveto
+\let\pgfcurveto=\pgfpathcurveto
+\let\pgfbezier=\pgfpathcurveto
+\let\pgfarc=\pgfpatharc
+
+\def\pgfzerocircle#1{\pgfcircle{\pgforigin}{#1}}
+\def\pgfzeroellipse#1#2{\pgfellipse{\pgforigin}{#1}{#2}}
+\def\pgfeofill{{\pgfseteorule\pgfsys@flushpath\pgfsys@fill}\pgf@resetpathsizes\ignorespaces}
+\def\pgfeofillstroke{{\pgfseteorule\pgfsys@flushpath\pgfsys@fillstroke}\pgf@resetpathsizes\ignorespaces}
+\def\pgf@perform@eofill{\pgfeofill}
+\def\pgf@perform@eofillstroke{\pgfeofillstroke}
+\let\pgfdiff=\pgfpointdiff
+\let\pgfrelative=\pgfpointadd
+\let\pgfpartway=\pgfpointlineattime
+\let\pgfbackoff=\pgfpointlineatdistance
+\def\pgflabel#1#2#3#4{%
+ % First, calculate base point
+ \pgfpointlineattime{#1}{#2}{#3}%
+ \pgf@xb=\pgf@x%
+ \pgf@yb=\pgf@y%
+ \pgf@process{#2}%
+ \pgf@xa=\pgf@x% xb/yb = start point
+ \pgf@ya=\pgf@y%
+ \pgf@process{#3}%
+ \advance\pgf@x by-\pgf@xa%
+ \advance\pgf@y by-\pgf@ya%
+ \pgf@process{\pgfpointnormalised{}}% x/y = normalised vector
+ \setlength\pgf@ya{#4}%
+ \pgf@xa=-\pgf@ya\relax%
+ \pgf@xa=\pgf@sys@tonumber{\pgf@y}\pgf@xa%
+ \pgf@ya=\pgf@sys@tonumber{\pgf@x}\pgf@ya%
+ \pgf@x=\pgf@xb\relax%
+ \pgf@y=\pgf@yb\relax%
+ \advance\pgf@x by\pgf@xa\relax%
+ \advance\pgf@y by\pgf@ya\relax%
+ \ignorespaces}
+\let\pgfnormalise=\pgfpointnormalised
+\let\pgfpolar=\pgfpointpolar
+\let\pgforigin=\pgfpointorigin
+\let\pgfclosepath=\pgfpathclose
+
+\def\pgfxy(#1,#2){\pgfpointxy{#1}{#2}}
+\def\pgfxyz(#1,#2,#3){\pgfpointxyz{#1}{#2}{#3}}
+\newcommand\pgfgrid[3][]{\pgfpathgrid[#1]{#2}{#3}\pgfqstroke}
+\newcommand\pgfellipse[4][]{%
+ \pgfpathellipse{#2}{#3}{#4}%
+ \csname pgf@perform@#1\endcsname\ignorespaces
+}
+\newcommand\pgfcircle[3][]{\pgfellipse[#1]{#2}{\pgfpoint{#3}{0pt}}{\pgfpoint{0pt}{#3}}}
+\newcommand\pgfrect[3][]{%
+ \pgfpathrectangle{#2}{#3}%
+ \csname pgf@perform@#1\endcsname%
+}
+\def\pgf@perform@stroke{\pgfqstroke}
+\def\pgf@perform@fill{\pgffill}
+\def\pgf@perform@fillstroke{\pgffillstroke}
+\def\pgf@perform@clip{\pgfclip}
+
+\let\pgfdegree=\pgfsincos
+
+\newenvironment{pgfmagnify}[2]{\pgflowlevelscope{\pgftransformcm{#1}{0}{0}{#2}{\pgfpointorigin}}}{\endpgflowlevelscope}
+\newenvironment{pgftranslate}[1]{\pgflowlevelscope{\pgftransformshift{#1}}}{\endpgflowlevelscope}
+\newcommand{\pgftranslateto}[1]{\pgflowlevel{\pgftransformshift{#1}}}
+\newenvironment{pgfrotateby}[1]{%
+ \pgf@process{#1}%
+ \pgf@xa=-\pgf@x%
+ \edef\pgf@temp{\noexpand\pgflowlevelscope{\noexpand\pgftransformcm{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@xa}}{\pgf@sys@tonumber{\pgf@y}}{\noexpand\pgfpointorigin}}}%
+ \pgf@temp}
+{\endpgflowlevelscope}
+
+\long\def\pgfputat#1#2{\begin{pgftranslate}{#1}#2\end{pgftranslate}}
+\def\pgfputlabelrotated#1#2#3#4#5{%
+ \pgflabel{#1}{#2}{#3}{#4}%
+ \pgfputat{}{%
+ \pgf@process{#2}%
+ \pgf@xa=\pgf@x% xb/yb = start point
+ \pgf@ya=\pgf@y%
+ \pgf@process{#3}%
+ \advance\pgf@x by-\pgf@xa%
+ \advance\pgf@y by-\pgf@ya%
+ \pgfnormalise{}% x/y = normalised vector
+ \pgf@ya=-\pgf@y%
+ \pgfsys@transformcm{\pgf@sys@tonumber{\pgf@x}}{\pgf@sys@tonumber{\pgf@y}}{\pgf@sys@tonumber{\pgf@ya}}{\pgf@sys@tonumber{\pgf@x}}{0pt}{0pt}%
+ #5}%
+ \ignorespaces}
+\def\pgfqcurveto#1#2#3#4#5#6{\pgfpathqcurveto{#1bp}{#2bp}{#3bp}{#4bp}{#5bp}{#6bp}}
+\let\pgfqbezier=\pgfqcurveto
+\def\pgfqlineto#1#2{\pgfpathqlineto{#1bp}{#2bp}}
+\def\pgfqmoveto#1#2{\pgfpathqmoveto{#1bp}{#2bp}}
+\let\pgfqstroke=\pgfusepathqstroke
+
+\def\pgfstroke{\pgfusepath{stroke}}
+\def\pgfclip{\pgfusepath{clip}}
+\def\pgffill{\pgfusepath{fill}}
+\def\pgfclosestroke{\pgfpathclose\pgfusepath{stroke}}
+\def\pgffillstroke{\pgfusepath{fill,stroke}}
+\def\pgfstrokeclip{\pgfusepath{clip,stroke}}
+\def\pgffillclip{\pgfusepath{clip,stroke}}
+\def\pgfclosestrokeclip{\pgfpathclose\pgfusepath{stroke,clip}}
+\def\pgffillstrokeclip{\pgfusepath{stroke,fill,clip}}
+\def\pgfclearendarrow{\pgfsetendarrow{}}
+\def\pgfclearstartarrow{\pgfsetstartarrow{}}
+
+\def\pgfputarrow#1#2#3{\pgflowlevelobj{\pgftransformarrow{#1}{#2}}{\pgfsys@setdash{}{0pt}#3}}
+
+\def\pgfsetstartarrow#1{\def\pgf@startarrow{#1}\def\pgf@shorten@start{\pgf@x=0.0pt}}
+\def\pgfsetendarrow#1{\def\pgf@endarrow{#1}\def\pgf@shorten@end{\pgf@x=0.0pt}}
+
+\def\pgfdefarrow#1#2#3#4{%
+ \pgfdefobject{pgf@#1}{#2}{#3}{\pgfsys@setlinewidth{1bp}#4}%
+ \expandafter\gdef\csname#1\endcsname{%
+ \pgf@x=\pgflinewidth%
+ \pgf@y=\pgflinewidth%
+ \pgfuseobjectmagnify{pgf@#1}\ignorespaces}}
+\def\pgfdefarrowabs#1#2#3#4{%
+ \pgfdefobject{pgf@#1}{#2}{#3}{\pgfarrowlinewidthscale{1}#4}%
+ \expandafter\gdef\csname#1\endcsname{%
+ \pgfuseobject{pgf@#1}\ignorespaces}
+ }
+\def\pgfarrowlinewidthscale#1{\pgfsys@setlinewidth{#1bp}\ignorespaces}
+\pgfdefarrow{pgfarrowsingle}{\pgfpoint{-7pt}{-5pt}}{\pgfpoint{3pt}{5pt}}{%
+ \pgfqmoveto{2}{0}
+ \pgfqlineto{-6}{4}
+ \pgfqlineto{-3}{0}
+ \pgfqlineto{-6}{-4}
+ \pgfusepathqfill}
+\def\pgfarrowswap#1{\pgflowlevelobj{\pgftransformxscale{-1}}{#1}}
+\def\pgfarrowcombine#1#2{%
+ #1%
+ \pgflowlevelobj{\pgftransformshift{\pgfpoint{-7\pgflinewidth}{0pt}}}{#2}}
+\def\pgfarrowcombineloose#1#2{#1\pgflowlevelobj{\pgftransformshift{\pgfpoint{-14\pgflinewidth}{0pt}}}{#2}}
+\def\pgfarrowdouble#1{\pgfarrowcombine{#1}{#1}}
+\def\pgfarrowtriple#1{%
+ #1%
+ \pgflowlevelobj{\pgftransformshift{\pgfpoint{-7\pgflinewidth}{0pt}}}{#1}%
+ \pgflowlevelobj{\pgftransformshift{\pgfpoint{-14\pgflinewidth}{0pt}}}{#1}}
+\pgfdefarrow{pgfarrowto}{\pgfpoint{-4pt}{-5pt}}{\pgfpoint{2pt}{5pt}}{%
+ \pgfarrowlinewidthscale{0.8}
+ \pgfsetdash{}{0pt}
+ \pgfsetroundcap
+ \pgfsetroundjoin
+ \pgfqmoveto{-3}{4}
+ \pgfqcurveto{-2.75}{2.5}{0}{0.25}{0.75}{0}
+ \pgfqcurveto{0}{-0.25}{-2.75}{-2.5}{-3}{-4}
+ \pgfusepathqstroke}
+\pgfdefarrow{pgfarrowbar}{\pgfpoint{-1pt}{-6pt}}{\pgfpoint{1pt}{6pt}}{%
+ \pgfsetdash{}{0pt}
+ \pgfqmoveto{0}{-5}
+ \pgfqlineto{0}{5}
+ \pgfusepathqstroke}
+\pgfdefarrow{pgfarrowsquare}{\pgfpoint{-4pt}{-6pt}}{\pgfpoint{1pt}{6pt}}{%
+ \pgfsetdash{}{0pt}
+ \pgfqmoveto{-3}{-5}
+ \pgfqlineto{0}{-5}
+ \pgfqlineto{0}{5}
+ \pgfqlineto{-3}{5}
+ \pgfusepathqstroke}
+\pgfdefarrow{pgfarrowround}{\pgfpoint{-3pt}{-6pt}}{\pgfpoint{2pt}{6pt}}{%
+ \pgfsetdash{}{0pt}
+ \pgfqmoveto{-2}{-5}
+ \pgfqcurveto{1}{-3}{1}{3}{-2}{5}
+ \pgfusepathqstroke}
+\pgfdefarrow{pgfarrowpointed}{\pgfpoint{-6pt}{-6pt}}{\pgfpoint{2pt}{6pt}}{%
+ \pgfsetdash{}{0pt}
+ \pgfqmoveto{-4.5}{-5}
+ \pgfqlineto{0.5}{0}
+ \pgfqlineto{-4.5}{5}
+ \pgfusepathqstroke}
+\pgfdefarrow{pgfarrowdot}{\pgfpoint{-7pt}{-4pt}}{\pgfpoint{2pt}{4pt}}{%
+ \pgfsys@transformshift{-2.5bp}{0bp}%
+ \pgfsetdash{}{0pt}
+ \pgfpathqcircle{3bp}
+ \pgfusepathqfillstroke}
+\pgfdefarrow{pgfarrowdiamond}{\pgfpoint{-12pt}{-4pt}}{\pgfpoint{2pt}{4pt}}{%
+ \pgfsetdash{}{0pt}
+ \pgfqmoveto{1}{0}
+ \pgfqlineto{-5}{3}
+ \pgfqlineto{-11}{0}
+ \pgfqlineto{-5}{-3}
+ \pgfpathclose
+ \pgfusepathqfillstroke}
+\def\pgfarrowcircle#1{%
+ \pgfsetdash{}{0pt}
+ \setlength\pgf@xa{#1}%
+ \pgf@xb=\pgf@xa%
+ \advance\pgf@xa by-0.5\pgflinewidth
+ \begin{pgflowlevelscope}{\pgftransformshift{\pgfpoint{-\pgf@xa}{0pt}}}%
+ \pgfpathqcircle{\pgf@sys@tonumber{\pgf@xb}bp}
+ \pgfusepathqfillstroke
+ \end{pgflowlevelscope}}
+\def\pgfarrowtriangle#1{%
+ \pgfsetdash{}{0pt}
+ \begin{pgfscope}%
+ \setlength\pgf@xa{#1}%
+ \pgf@ya=0.577\pgf@xa%
+ \advance\pgf@xb by-\pgflinewidth%
+ \pgfpathmoveto{\pgfpoint{-\pgf@xa}{-\pgf@ya}}%
+ \pgfpathlineto{\pgfpoint{\pgflinewidth}{0pt}}%
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{\pgf@ya}}%
+ \pgfpathclose%
+ \pgfusepathqfillstroke%
+ \end{pgfscope}}
+\def\pgfarrowlargepointed#1{%
+ \pgfsetdash{}{0pt}
+ \begin{pgfscope}%
+ \setlength\pgf@xa{#1}%
+ \pgfpathmoveto{\pgfpoint{-\pgf@xa}{-\pgf@xa}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{\pgf@xa}}
+ \pgfusepathqstroke
+ \end{pgfscope}}
+
+\newcommand\pgfcorner[3][sw]{%
+ \pgf@process{#2}%
+ \pgf@xa=\pgf@x%
+ \pgf@ya=\pgf@y%
+ \pgf@process{#3}%
+ \ifdim\pgf@xa<\pgf@x%
+ \pgf@xb=\pgf@x%
+ \pgf@x=\pgf@xa%
+ \pgf@xa=\pgf@xb%
+ \fi%
+ \ifdim\pgf@ya<\pgf@y%
+ \pgf@yb=\pgf@y%
+ \pgf@y=\pgf@ya%
+ \pgf@ya=\pgf@yb%
+ \fi%
+ \csname pgf@corner@#1\endcsname\relax%
+}
+\def\pgf@corner@se{\pgf@x=\pgf@xa}
+\def\pgf@corner@ne{\pgf@x=\pgf@xa\pgf@y=\pgf@ya}
+\def\pgf@corner@nw{\pgf@y=\pgf@ya}
+\def\pgf@corner@sw{}
+\def\pgf@corner@s{\pgf@x=.5\pgf@x\advance\pgf@x by.5\pgf@xa}
+\def\pgf@corner@n{\pgf@x=.5\pgf@x\advance\pgf@x by.5\pgf@xa\pgf@y=\pgf@ya}
+\def\pgf@corner@w{\pgf@y=.5\pgf@y\advance\pgf@y by.5\pgf@ya}
+\def\pgf@corner@e{\pgf@y=.5\pgf@y\advance\pgf@y by.5\pgf@ya\pgf@x=\pgf@xa}
+
+% Defines a circle node of name #1 at position #3 of radius #4.
+%
+% #1 = a name
+% #2 = ``stroke'' or ``fill'' or ``fillstroke'' or ``virtual'' (= draw
+% nothing)
+% #3 = a point
+% #4 = a radius
+%
+% Example:
+%
+% \pgfnodecircle{mynode}[stroke]{\pgfxy(1,1)}{2cm}
+
+\def\pgfnodecircle#1[#2]#3#4{%
+ \pgf@process{#3}%
+ \expandafter\def\csname pgfno@#1\endcsname{\pgf@backoffcircle{#4}}%
+ \expandafter\def\csname pgfnob@#1\endcsname{\pgf@anglecircle{#4}}%
+ \expandafter\edef\csname pgfnom@#1\endcsname{\noexpand\pgf@x=\pgf@sys@tonumber{\pgf@x}pt\noexpand\pgf@y=\pgf@sys@tonumber{\pgf@y}pt}%
+ \expandafter\ifx\csname pgf@@#2\endcsname\pgf@@virtual%
+ \else%
+ \pgfcircle[#2]{\csname pgfnom@#1\endcsname}{#4}%
+ \fi\ignorespaces}
+
+\def\pgf@@virtual{}
+
+
+% Defines a rectangular node of name #1 with center at position #3 and
+% width/height vector #4
+%
+% #1 = a name
+% #2 = ``stroke'' or ``fill'' or ``fillstroke'' or ``virtual'' (= draw
+% nothing)
+% #3 = a center
+% #4 = width/height vector
+%
+% Example:
+%
+% \pgfnoderect{mynode}[stroke]{\pgfxy(1,1)}{\pgfxy(2,2)}
+
+\def\pgfnoderect#1[#2]#3#4{%
+ \pgf@process{#3}%
+ \pgf@xa=\pgf@x%
+ \pgf@ya=\pgf@y%
+ \pgf@process{#4}%
+ \pgf@x=.5\pgf@x%
+ \pgf@y=.5\pgf@y%
+ \expandafter\edef\csname pgfno@#1\endcsname{\noexpand\pgf@backoffrect%
+ {\pgf@sys@tonumber{\pgf@x}pt}{\pgf@sys@tonumber{\pgf@y}pt}}%
+ \expandafter\edef\csname pgfnob@#1\endcsname{\noexpand\pgf@anglerect%
+ {\pgf@sys@tonumber{\pgf@x}pt}{\pgf@sys@tonumber{\pgf@y}pt}}%
+ \expandafter\edef\csname
+ pgfnom@#1\endcsname{\noexpand\pgf@x=\pgf@sys@tonumber{\pgf@xa}pt\noexpand\pgf@y=\pgf@sys@tonumber{\pgf@ya}pt}%
+ \expandafter\ifx\csname pgf@@#2\endcsname\pgf@@virtual%
+ \else%
+ \advance\pgf@xa by-\pgf@x%
+ \advance\pgf@ya by-\pgf@y%
+ \edef\pgf@temp{\noexpand\pgf@x=\pgf@sys@tonumber{\pgf@xa}pt\noexpand\pgf@y=\pgf@sys@tonumber{\pgf@ya}pt}%
+ \pgfrect[#2]{\pgf@temp}{#4}%
+ \fi\ignorespaces}
+
+
+% Defines a rectangular node of name #1 with center at position #3
+% contaning a box #4
+%
+% #1 = a name
+% #2 = ``stroke'' or ``fill'' or ``fillstroke'' or ``virtual'' (= draw
+% nothing)
+% #3 = a center
+% #4 = TeX text that will be boxed
+% #5 = a horizontal border offset
+% #6 = a vertical border offset
+%
+% Example:
+%
+% \pgfnodebox{mynode}[stroke]{\pgfxy(1,1)}{start}{2pt}{2pt}
+
+\def\pgfnodebox#1[#2]#3#4#5#6{%
+ \pgf@makehbox{#4}%
+ \pgf@x=\wd\pgf@hbox%
+ \pgf@y=\ht\pgf@hbox%
+ \advance\pgf@y by \dp\pgf@hbox%
+ \addtolength\pgf@x{#5}%
+ \addtolength\pgf@x{#5}%
+ \addtolength\pgf@y{#6}%
+ \addtolength\pgf@y{#6}%
+ \edef\pgf@boxsize{\noexpand\pgf@x=\the\pgf@x\noexpand\pgf@y=\the\pgf@y}%
+ \csname pgf@haligncenter\endcsname%
+ \csname pgf@valigncenter\endcsname%
+ \wd\pgf@hbox=0pt%
+ \pgfputat{#3}{%
+ \pgfsys@hbox\pgf@hbox}%
+ \pgfnoderect{#1}[#2]{#3}{\pgf@boxsize}\ignorespaces}
+
+
+
+
+% Retrieves the center of #1.
+%
+% #1 = a node name
+%
+% Example:
+%
+% \pgfpathmoveto{\pgfnodecenter{mynode}}
+
+\def\pgfnodecenter#1{%
+ \expandafter\ifx\csname pgfnom@#1\endcsname\relax%
+ \GenericError{\space\space\space\@spaces\@spaces\@spaces}%
+ {PGF Error: Node "#1" undefined.}{}{\@ehc}%
+ \pgfpoint{0pt}{0pt}%
+ \else\csname pgfnom@#1\endcsname\fi\ignorespaces}
+
+
+
+% Returns a position relative to the center of #1.
+%
+% #1 = a node name
+% #2 = a direction (see \pgfdirection)
+% #3 = a distance
+%
+% Example:
+%
+% \pgfpathmoveto{\pgfnoderelative{mynode}[north]{1cm}}
+
+\def\pgfnoderelative#1[#2]#3{%
+ \pgfrelative{\pgfnodecenter{#1}}{\pgfpolar{\pgfdirection{#2}}{#3}}\ignorespaces}
+
+
+
+% Retrieves a border point of #1 at angle #2 and distance #3 from
+% border.
+%
+% #1 = a node name
+% #2 = an angle
+% #3 = a distance from the border
+%
+% Example:
+%
+% \pgfpathmoveto{\pgfnodeborder{first}{30}{0pt}}
+% \pgfpathlineto{\pgfnodeborder{second}{180}{2pt}}
+% \pgfstroke
+
+\def\pgfnodeborder#1#2#3{%
+ \csname pgfnob@#1\endcsname{#3}{#2}{\pgfnodecenter{#1}}\ignorespaces}
+
+
+
+% Gives the beginning of a connection of #2 and #3, taking a
+% separation distance of #1 into account.
+%
+% #1 = a separation distance
+% #2 = a node name
+% #3 = a second node name
+%
+% Example:
+%
+% \pgfpathmoveto{\pgfnodeconnstart{first}{second}}
+% \pgfpathlineto{\pgfnodeconnstart{second}{first}}
+
+\def\pgfnodeconnstart[#1]#2#3{%
+ \csname pgfno@#2\endcsname[#1]{\pgfnodecenter{#2}}{\pgfnodecenter{#3}}%
+ \ignorespaces}
+
+
+
+\newdimen\pgf@nodesepstart
+\newdimen\pgf@nodesepend
+
+% Sets the node separation for starts of lines.
+%
+% #1 = a distance
+%
+% Example:
+%
+% \pgfnodesetsepstart{2pt}
+
+\def\pgfnodesetsepstart#1{\setlength\pgf@nodesepstart{#1}\ignorespaces}
+
+\pgfnodesetsepstart{0pt}
+
+
+% Sets the node separation for end of lines.
+%
+% #1 = a distance
+%
+% Example:
+%
+% \pgfnodesetsepend{2pt}
+
+\def\pgfnodesetsepend#1{\setlength\pgf@nodesepend{#1}\ignorespaces}
+
+\pgfnodesetsepend{0pt}
+
+
+
+
+% Draws a line from #1 to #2.
+%
+% #1 = a node name
+% #2 = a second node name
+%
+% Example:
+%
+% \pgfnodeconnline{first}{second}
+
+\def\pgfnodeconnline#1#2{%
+ \pgfpathmoveto{\pgfnodeconnstart[\pgf@nodesepstart]{#1}{#2}}%
+ \pgfpathlineto{\pgfnodeconnstart[\pgf@nodesepend]{#2}{#1}}%
+ \pgfstroke%
+ \ignorespaces}
+
+
+
+% Draws a curve from #1 to #2. The starting angle at #1 is #3 and the
+% length to the first support point is #5. The starting angle at #2
+% is #4 and the length to the second support point is #6.
+%
+% #1 = a node name
+% #2 = a second node name
+% #3 = angle at first node
+% #4 = angle at second node
+% #5 = distance to support point at first node
+% #6 = distance to support point at second node
+%
+% Example:
+%
+% \pgfnodeconncurve{first}{second}{10}{-10}{1cm}{1cm}
+
+\def\pgfnodeconncurve#1#2#3#4#5#6{%
+ \pgfpathmoveto{\pgfnodeborder{#1}{#3}{\pgf@nodesepstart}}%
+ \pgfpathcurveto{\pgfnodeborder{#1}{#3}{#5}}{\pgfnodeborder{#2}{#4}{#6}}%
+ {\pgfnodeborder{#2}{#4}{\pgf@nodesepend}}%
+ \pgfstroke\ignorespaces}
+
+
+
+
+% Put a label on a line from #1 to #2.
+%
+% #1 = a node name
+% #2 = a second node name
+% #3 = fraction of way from #1 to #2
+% #4 = vertical offset
+% #5 = label
+%
+% Example:
+%
+% \pgfnodelabel{first}{second}[.5][2pt]{\pgfbox[center,base]{owns}}
+
+\def\pgfnodelabel#1#2[#3][#4]#5{%
+ \pgfputat{\pgflabel%
+ {#3}%
+ {\pgfnodeconnstart[\pgf@nodesepstart]{#1}{#2}}%
+ {\pgfnodeconnstart[\pgf@nodesepend]{#2}{#1}}%
+ {#4}}%
+ {#5}\ignorespaces}
+
+
+% Put a rotated label on a line from #1 to #2.
+%
+% #1 = a node name
+% #2 = a second node name
+% #3 = fraction of way from #1 to #2
+% #4 = vertical offset
+% #5 = label
+%
+% Example:
+%
+% \pgfnodelabelrotated{first}{second}[.5][2pt]{\pgfbox[center,base]{owns}}
+
+\def\pgfnodelabelrotated#1#2[#3][#4]#5{%
+ \pgfputlabelrotated%
+ {#3}%
+ {\pgfnodeconnstart[\pgf@nodesepstart]{#1}{#2}}%
+ {\pgfnodeconnstart[\pgf@nodesepend]{#2}{#1}}%
+ {#4}%
+ {#5}\ignorespaces}
+
+
+
+% Internals
+
+\def\pgf@backoffcircle#1[#2]#3#4{%
+ % Calculate backoff for a circle of radius
+ % #1 and offset separation #2. #3 is the center of the circle, #4
+ % is the target point.
+ \setlength\pgf@x{#1}%
+ \addtolength\pgf@x{#2}%
+ \edef\pgf@temp{{\pgf@sys@tonumber{\pgf@x}pt}}%
+ \expandafter\pgfbackoff\pgf@temp{#3}{#4}\ignorespaces}
+
+\def\pgf@mult#1#2#3{#1=#2#3}
+
+\def\pgf@anglecircle#1#2#3#4{%
+ % Calculate border point. #1 is radius, #2 is additional backoff, #3
+ % is an angle, #4 is the center of the circle.
+ \pgfsincos{#3}%
+ \setlength\pgf@xa{#1}%
+ \addtolength\pgf@xa{#2}%
+ \pgf@ya=\pgf@xa\relax%
+ \pgf@mult{\pgf@xa}{\pgf@sys@tonumber{\pgf@x}}{\pgf@xa}%
+ \pgf@mult{\pgf@ya}{\pgf@sys@tonumber{\pgf@y}}{\pgf@ya}%
+ \pgf@process{#4}%
+ \advance\pgf@y by\pgf@xa\relax%
+ \advance\pgf@x by\pgf@ya\ignorespaces}
+
+\def\pgf@backoffrect#1#2[#3]#4#5{%
+ % Calculate backoff for a rect with half width #1,
+ % half height #2, offset separation #3. #4 is the center of the rect, #5
+ % is the target point.
+ \pgfdiff{#4}{#5}%
+ \pgf@xa=\pgf@x%
+ \pgf@ya=\pgf@y%
+ \setlength\pgf@xb{#1}%
+ \setlength\pgf@yb{#2}%
+ \addtolength\pgf@xb{#3}%
+ \addtolength\pgf@yb{#3}%
+ \ifnum\pgf@xa<0\relax% move into first quadrant
+ \pgf@x=-\pgf@x%
+ \fi%
+ \ifnum\pgf@ya<0\relax%
+ \pgf@y=-\pgf@y%
+ \fi%
+ \c@pgf@counta=\pgf@x%
+ \c@pgf@countb=\pgf@y%
+ \divide\c@pgf@counta by 256\relax%
+ \divide\c@pgf@countb by 256\relax%
+ \ifnum\c@pgf@countb<\c@pgf@counta%
+ \ifnum\c@pgf@counta<1\relax%
+ \pgf@y=\pgf@yb\relax%
+ \pgf@x=0pt\relax%
+ \else%
+ \pgf@y=16\pgf@y%
+ \divide\pgf@y by \c@pgf@counta%
+ \pgf@y=16\pgf@y%
+ \pgf@mult{\pgf@y}{\pgf@sys@tonumber{\pgf@xb}}{\pgf@y}%
+ \ifnum\pgf@y<\pgf@yb%
+ \pgf@x=\pgf@xb%
+ \else% rats, calculate intersection on upper side
+ \ifnum\c@pgf@countb<1\relax%
+ \pgf@x=\pgf@xb\relax%
+ \pgf@y=0pt\relax%
+ \else%
+ \pgf@x=16\pgf@x%
+ \divide\pgf@x by \c@pgf@countb%
+ \pgf@x=16\pgf@x%
+ \pgf@mult{\pgf@x}{\pgf@sys@tonumber{\pgf@yb}}{\pgf@x}%
+ \pgf@y=\pgf@yb%
+ \fi%
+ \fi%
+ \fi%
+ \else%
+ \ifnum\c@pgf@countb<1\relax%
+ \pgf@x=\pgf@xb\relax%
+ \pgf@y=0pt\relax%
+ \else%
+ \pgf@x=16\pgf@x%
+ \divide\pgf@x by \c@pgf@countb%
+ \pgf@x=16\pgf@x%
+ \pgf@mult{\pgf@x}{\pgf@sys@tonumber{\pgf@yb}}{\pgf@x}%
+ \ifnum\pgf@x<\pgf@xb%
+ \pgf@y=\pgf@yb%
+ \else%
+ \ifnum\c@pgf@counta<1\relax%
+ \pgf@y=\pgf@yb\relax%
+ \pgf@x=0pt\relax%
+ \else%
+ \pgf@y=16\pgf@y%
+ \divide\pgf@y by \c@pgf@counta%
+ \pgf@y=16\pgf@y%
+ \pgf@mult{\pgf@y}{\pgf@sys@tonumber{\pgf@xb}}{\pgf@y}%
+ \pgf@x=\pgf@xb%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \ifnum\pgf@xa<0\relax\pgf@x=-\pgf@x\fi%
+ \ifnum\pgf@ya<0\relax\pgf@y=-\pgf@y\fi%
+ \pgf@xa=\pgf@x%
+ \pgf@ya=\pgf@y%
+ \pgf@process{#4}%
+ \advance\pgf@x by\pgf@xa%
+ \advance\pgf@y by\pgf@ya\ignorespaces}
+
+\def\pgf@anglerect#1#2#3#4#5{%
+ % Calculate border point. #1/#2 is half width/height, #3 is additional backoff, #4
+ % is an angle, #5 is the center of the rect.
+ \pgfsincos{#4}%
+ \pgf@xa=100\pgf@x%
+ \pgf@ya=100\pgf@y%
+ \pgf@process{#5}%
+ \advance\pgf@x by\pgf@ya%
+ \advance\pgf@y by\pgf@xa%
+ \edef\pgf@temp{{\noexpand\pgf@x=\the\pgf@x\noexpand\pgf@y=\the\pgf@y}}%
+ \expandafter\pgf@caller\pgf@temp{#1}{#2}{#3}{#5}\ignorespaces}
+
+\def\pgf@caller#1#2#3#4#5{\pgf@backoffrect{#2}{#3}[#4]{#5}{#1}}
+
+\long\def\pgfbox[#1,#2]#3{%
+ \pgf@makehbox{#3}%
+ \csname pgf@halign#1\endcsname%
+ \csname pgf@valign#2\endcsname%
+ \wd\pgf@hbox=0pt%
+ \ht\pgf@hbox=0pt%
+ \dp\pgf@hbox=0pt%
+ \pgfqbox{\pgf@hbox}%
+ \ignorespaces}
+
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/compatibility/pgfheaps.sty b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfheaps.sty
new file mode 100644
index 00000000000..bdf061ad417
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfheaps.sty
@@ -0,0 +1,103 @@
+\RequirePackage{pgfrcs}
+
+\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/latex/pgf/compatibility/pgfheaps.sty,v 1.2 2005/07/06 15:58:58 tantau Exp $
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgf}
+
+\PackageWarning{pgfheaps}{This package is obsolete.}
+
+\ProcessOptions
+
+%
+% Package for drawing heap diagrams.
+%
+
+\newdimen\pgf@heapx
+\newdimen\pgf@heapy
+
+
+
+
+% Construct the path of a heap.
+%
+% #1 = Position of heap label.
+% #2 = Position of left base
+% #3 = Position of right base
+%
+% Example:
+%
+% \pgfheappath{\pgfxy(1,0)}{\pgfxy(-1,0)}{\pgfxy(1,0)}
+% \pgffill
+
+\def\pgfheappath#1#2#3{%
+ \pgfdiff{#2}{#3}%
+ \pgf@heapx=-.25\pgf@x%
+ \pgf@heapy=-.25\pgf@y%
+ \pgfmoveto{#2}%
+ \pgfbezier%
+ {\pgfpartway{0.5}{#2}{\pgfrelative{#1}{\pgfpoint{\pgf@heapx}{\pgf@heapy}}}}%
+ {\pgfrelative{#1}{\pgfpoint{\pgf@heapx}{\pgf@heapy}}}%
+ {#1}%
+ \pgf@heapx=-\pgf@heapx%
+ \pgf@heapy=-\pgf@heapy%
+ \pgfbezier%
+ {\pgfrelative{#1}{\pgfpoint{\pgf@heapx}{\pgf@heapy}}}%
+ {\pgfpartway{0.5}{#3}{\pgfrelative{#1}{\pgfpoint{\pgf@heapx}{\pgf@heapy}}}}%
+ {#3}%
+ \ignorespaces}
+
+
+% Draw a heap label.
+%
+% #1 = Position of heap label.
+% #2 = Label text.
+%
+% Example:
+%
+% \pgfheaplabel{\pgfxy(1,0)}{Class P}
+
+\def\pgfheaplabel#1#2{%
+ \setbox\pgf@hbox=\hbox{\pgfinterruptpicture#2\endpgfinterruptpicture}%
+ \pgf@heapy=\ht\pgf@hbox%
+ \pgfputat{\pgfrelative{#1}{\pgfpoint{0pt}{-2\pgf@heapy}}}{\pgfbox[center,base]{#2}}%
+ \ignorespaces}
+
+
+% Draw a labeled heap.
+%
+% #1 = Position of heap label.
+% #2 = Position of left base
+% #3 = Position of right base
+% #4 = Label text.
+%
+% Example:
+%
+% \pgfheaplabeled{\pgfxy(1,0)}{\pgfxy(-1,0)}{\pgfxy(1,0)}{Class P}
+
+\def\pgfheaplabeled#1#2#3#4{%
+ \pgfheaplabel{#1}{#4}%
+ \pgfheappath{#1}{#2}{#3}%
+ \pgfstroke%
+ \ignorespaces}
+
+
+
+% Draw a labeled heap.
+%
+% #1 = Height of the label
+% #2 = Left and right extension of the base.
+% #3 = Label text.
+%
+% Example:
+%
+% \pgfheaplabeledcentered{1cm}{1cm}{Class P}
+
+\def\pgfheaplabeledcentered#1#2#3{%
+ \pgfheaplabeled{\pgfpoint{0pt}{#1}}{\pgfpoint{-#2}{0pt}}{\pgfpoint{#2}{0pt}}{#3}\ignorespaces}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/compatibility/pgfnodes.sty b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfnodes.sty
new file mode 100644
index 00000000000..e626f07626e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfnodes.sty
@@ -0,0 +1,15 @@
+\RequirePackage{pgfrcs}
+
+\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/latex/pgf/compatibility/pgfnodes.sty,v 1.2 2005/07/06 15:58:58 tantau Exp $
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgf}
+
+\PackageWarning{pgfnodes}{This package is obsolete. pgf.sty will load
+ node management automatically}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/compatibility/pgfshade.sty b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfshade.sty
new file mode 100644
index 00000000000..5e68a141cb2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/compatibility/pgfshade.sty
@@ -0,0 +1,15 @@
+\RequirePackage{pgfrcs}
+
+\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/latex/pgf/compatibility/pgfshade.sty,v 1.2 2005/07/06 15:58:58 tantau Exp $
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgf}
+
+\PackageWarning{pgfshade}{This package is obsolete. pgf.sty will load
+ shade management automatically}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/frontendlayer/pgfpict2e.sty b/Master/texmf-dist/tex/latex/pgf/frontendlayer/pgfpict2e.sty
new file mode 100644
index 00000000000..87980ce72ef
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/frontendlayer/pgfpict2e.sty
@@ -0,0 +1,109 @@
+\ProvidesPackage{pgfpict2e}[2004/11/28 ver 0.01]
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\RequirePackage{pgfcore}
+
+\def\pgf@pict@line(#1,#2)#3{%
+ \pgfsys@beginpurepicture%
+ \pgfsetlinewidth{\@wholewidth}%
+ \pgfsetroundcap%
+ \pgfpathqmoveto{0}{0}%
+ \ifnum#1=0\relax%
+ \pgf@xa=0pt\relax%
+ \pgf@ya=#3\unitlength\relax%
+ \else%
+ \pgf@y=#2\unitlength%
+ \divide\pgf@y by#1\relax%
+ \pgf@xa=#3\unitlength\relax%
+ \pgf@ya=#3\pgf@y\relax%
+ \fi%
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@ya}}%
+ \pgfusepath{stroke}%
+ \pgfsys@endpurepicture%
+}%
+
+\def\line(#1,#2)#3{{\pgfsetarrows{-}\pgf@pict@line(#1,#2){#3}}}%
+\def\vector(#1,#2)#3{{\pgfsetarrows{-latex}\pgf@pict@line(#1,#2){#3}}}%
+
+\def\@circle#1{{%
+ \pgfsys@beginpurepicture%
+ \pgfsetlinewidth{\@wholewidth}%
+ \pgf@x=#1\unitlength%
+ \pgfpathqcircle{.5\pgf@x}%
+ \pgfusepathqstroke%
+ \pgfsys@endpurepicture}}
+
+\def\@dot#1{{%
+ \pgfsys@beginpurepicture%
+ \pgfsetlinewidth{\@wholewidth}%
+ \pgf@x=#1\unitlength%
+ \pgfpathqcircle{.5\pgf@x}%
+ \pgfusepathqfill%
+ \pgfsys@endpurepicture}}
+
+
+\def\oval{\@ifnextchar[{\pgfpictIIe@oval}{\pgfpictIIe@oval[20pt]}}
+\def\pgfpictIIe@oval[#1](#2,#3){\@ifnextchar[{\pgfpictIIe@@oval[#1](#2,#3)}{\pgfpictIIe@@oval[#1](#2,#3)[]}}
+\def\pgfpictIIe@@oval[#1](#2,#3)[#4]{{%
+ \pgfsys@beginpurepicture%
+ \@tfor\reserved@a:=#4\do{\csname pgfpictIIe@clip\reserved@a\endcsname}%
+ \pgf@x=#2\unitlength%
+ \pgf@y=#3\unitlength%
+ \pgf@x=-.5\pgf@x%
+ \pgf@y=-.5\pgf@y%
+ \pgfsys@transformshift{\the\pgf@x}{\the\pgf@y}%
+ \pgfsetlinewidth{\@wholewidth}%
+ \pgf@ya=#3\unitlength%
+ \advance\pgf@ya by-#1\relax%
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@ya}}%
+ \pgfpatharc{180}{90}{#1}%
+ \pgf@xa=#2\unitlength%
+ \advance\pgf@xa by-#1\relax%
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{#3\unitlength}}%
+ \pgfpatharc{90}{0}{#1}%
+ \pgfpathlineto{\pgfpoint{#2\unitlength}{#1}}%
+ \pgfpatharc{0}{-90}{#1}%
+ \pgfpathlineto{\pgfpoint{#1}{0pt}}%
+ \pgfpatharc{-90}{-180}{#1}%
+ \pgfpathclose%
+ \pgfusepathqstroke%
+ \pgfsys@endpurepicture%
+}}
+\def\pgfpictIIe@clipr{\pgfpathrectangle{\pgfpoint{0pt}{-1000pt}}{\pgfpoint{1000pt}{2000pt}}\pgfusepath{clip}}
+\def\pgfpictIIe@clipl{\pgfpathrectangle{\pgfpoint{-1000pt}{-1000pt}}{\pgfpoint{1000pt}{2000pt}}\pgfusepath{clip}}
+\def\pgfpictIIe@clipt{\pgfpathrectangle{\pgfpoint{-1000pt}{0pt}}{\pgfpoint{2000pt}{1000pt}}\pgfusepath{clip}}
+\def\pgfpictIIe@clipb{\pgfpathrectangle{\pgfpoint{-1000pt}{-1000pt}}{\pgfpoint{2000pt}{1000pt}}\pgfusepath{clip}}
+
+
+\renewcommand\bezier[1]{\pgfpictIIe@qbezier}
+\renewcommand\qbezier[1][]{\pgfpictIIe@qbezier}
+\def\pgfpictIIe@qbezier(#1,#2)(#3,#4)(#5,#6){{%
+ \pgfsys@beginpurepicture%
+ \pgfsetlinewidth{\@wholewidth}%
+ \pgfpathmoveto{\pgfpoint{#1\unitlength}{#2\unitlength}}%
+ \pgfpathcurveto%
+ {\pgfpointmid{0.66666666}{\pgfpoint{#1\unitlength}{#2\unitlength}}{\pgfpoint{#3\unitlength}{#4\unitlength}}}%
+ {\pgfpointmid{0.66666666}{\pgfpoint{#5\unitlength}{#6\unitlength}}{\pgfpoint{#3\unitlength}{#4\unitlength}}}%
+ {\pgfpoint{#5\unitlength}{#6\unitlength}}%%
+ \pgfusepathqstroke%
+ \pgfsys@endpurepicture%
+}}
+\newcommand\cbezier[1][]{\pgfpictIIe@cbezier}
+\def\pgfpictIIe@cbezier(#1,#2)(#3,#4)(#5,#6)(#7,#8){{%
+ \pgfsys@beginpurepicture%
+ \pgfsetlinewidth{\@wholewidth}%
+ \pgfpathmoveto{\pgfpoint{#1\unitlength}{#2\unitlength}}%
+ \pgfpathcurveto%
+ {\pgfpoint{#3\unitlength}{#4\unitlength}}%
+ {\pgfpoint{#5\unitlength}{#6\unitlength}}%
+ {\pgfpoint{#7\unitlength}{#8\unitlength}}%%
+ \pgfusepathqstroke%
+ \pgfsys@endpurepicture%
+}}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty b/Master/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
new file mode 100644
index 00000000000..259be238a9d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgf,calc,pgffor,pgflibraryplothandlers,xkeyval}
+
+\input{tikz.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryarrows.sty b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryarrows.sty
new file mode 100644
index 00000000000..68a6df06407
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryarrows.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgflibraryarrows.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryautomata.sty b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryautomata.sty
new file mode 100644
index 00000000000..347fd715d9c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryautomata.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgflibraryautomata.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryplothandlers.sty b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryplothandlers.sty
new file mode 100644
index 00000000000..4887d5c2f43
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryplothandlers.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgflibraryplothandlers.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryplotmarks.sty b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryplotmarks.sty
new file mode 100644
index 00000000000..ab8ff940d4f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryplotmarks.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgflibraryplotmarks.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryshapes.sty b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryshapes.sty
new file mode 100644
index 00000000000..9fbc32de3ea
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibraryshapes.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgflibraryshapes.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarysnakes.sty b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarysnakes.sty
new file mode 100644
index 00000000000..bc323556680
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarysnakes.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore}
+
+\input{pgflibrarysnakes.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarytikzbackgrounds.sty b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarytikzbackgrounds.sty
new file mode 100644
index 00000000000..c3743bf9569
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarytikzbackgrounds.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{tikz}
+
+\input{pgflibrarytikzbackgrounds.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarytikztrees.sty b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarytikztrees.sty
new file mode 100644
index 00000000000..3a71ba5ad8c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/libraries/pgflibrarytikztrees.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{tikz}
+
+\input{pgflibrarytikztrees.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty b/Master/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
new file mode 100644
index 00000000000..e7c3b0142fd
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
@@ -0,0 +1,13 @@
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfrcs}
+
+\input{pgfsys.code.tex}
+\input{pgfsyssoftpath.code.tex}
+\input{pgfsysprotocol.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/utilities/pgffor.sty b/Master/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
new file mode 100644
index 00000000000..b2f27b78ae7
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
@@ -0,0 +1,10 @@
+% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfrcs}
+
+\input{pgffor.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/utilities/pgfpages.sty b/Master/texmf-dist/tex/latex/pgf/utilities/pgfpages.sty
new file mode 100644
index 00000000000..19023c2efd0
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/utilities/pgfpages.sty
@@ -0,0 +1,1043 @@
+\ProvidesPackage{pgfpages}[2004/11/05 ver 0.01]
+
+% Copyright 2003 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\RequirePackage{pgfcore,calc}
+
+\newcount\pgf@logicalpages
+\newcount\pgf@firstshipout
+\newcount\pgf@lastshipout
+\newcount\pgf@currentshipout
+\newcount\pgf@cpn
+\newcount\pgf@shipoutnextto
+\newdimen\pgfphysicalheight
+\newdimen\pgfphysicalwidth
+
+\pgf@shipoutnextto=0\relax
+\pgf@logicalpages=0\relax
+\pgf@firstshipout=1\relax
+\pgf@lastshipout=1\relax
+\pgf@currentshipout=1\relax
+\pgfphysicalheight=\paperheight
+\pgfphysicalwidth=\paperwidth
+
+\newif\ifpgfphysicalpageempty
+\newif\ifpgf@holdingphysicalpage
+
+\pgfphysicalpageemptytrue
+\pgf@holdingphysicalpagefalse
+
+
+% Define a layout
+%
+% #1 = layout name
+% #2 = code before options have been set
+% #2 = code after options have been set
+%
+% Example:
+%
+% \pgfpagesdeclarelayout{resize to}{
+% \pgfpagesphysicalpageoptions{logical pages=1,physical height=\pgfpageoptionheight,physical width=\pgfpageoptionwidth}
+% \pgfpageslogicalpageoptions{1}{resized width=\pgfphysicalwidth,%
+% resized height=\pgfphysicalheight,center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight}}}
+
+\newcommand\pgfpagesdeclarelayout[3]{
+ \expandafter\newcommand\csname pgfpages@layoutbefore@#1\endcsname{#2}
+ \expandafter\newcommand\csname pgfpages@layout@#1\endcsname{#3}}
+
+
+% Use a layout
+%
+% #1 = layout name
+% #2 = options
+%
+% Example:
+%
+% \pgfpagesuselayout{resize to}[a4paper]
+
+\def\pgfpagesuselayout#1{\@ifnextchar[{\pgf@pagelayout{#1}}{\pgf@pagelayout{#1}[]}}
+\def\pgf@pagelayout#1[#2]{
+ \csname pgfpages@layoutbefore@#1\endcsname
+ \setkeys{pgfpagesuselayoutoption}{#2}
+ \@ifundefined{pgfpages@layout@#1}{
+ \PackageError{pgfpages}{Page layout `#1' undefined.}{}
+ }
+ {
+ \csname pgfpages@layout@#1\endcsname
+ }
+}
+
+
+% Predefined options
+
+\define@key{pgfpagesuselayoutoption}{physical paper width}%
+{\def\pgfpageoptionwidth{#1}}
+
+\define@key{pgfpagesuselayoutoption}{physical paper height}%
+{\def\pgfpageoptionheight{#1}}
+
+\define@key{pgfpagesuselayoutoption}{a0paper}[]%
+{\def\pgfpageoptionheight{1189mm} \def\pgfpageoptionwidth{841mm}}
+
+\define@key{pgfpagesuselayoutoption}{a1paper}[]%
+{\def\pgfpageoptionheight{841mm} \def\pgfpageoptionwidth{594mm}}
+
+\define@key{pgfpagesuselayoutoption}{a2paper}[]%
+{\def\pgfpageoptionheight{594mm} \def\pgfpageoptionwidth{420mm}}
+
+\define@key{pgfpagesuselayoutoption}{a3paper}[]%
+{\def\pgfpageoptionheight{420mm} \def\pgfpageoptionwidth{297mm}}
+
+\define@key{pgfpagesuselayoutoption}{a4paper}[]%
+{\def\pgfpageoptionheight{297mm} \def\pgfpageoptionwidth{210mm}}
+
+\define@key{pgfpagesuselayoutoption}{a5paper}[]%
+{\def\pgfpageoptionheight{210mm} \def\pgfpageoptionwidth{148mm}}
+
+\define@key{pgfpagesuselayoutoption}{a6paper}[]%
+{\def\pgfpageoptionheight{148mm} \def\pgfpageoptionwidth{105mm}}
+
+\define@key{pgfpagesuselayoutoption}{letterpaper}[]%
+{\def\pgfpageoptionheight{11in} \def\pgfpageoptionwidth{8.5in}}
+
+\define@key{pgfpagesuselayoutoption}{legalpaper}[]%
+{\def\pgfpageoptionheight{14in} \def\pgfpageoptionwidth{8.5in}}
+
+\define@key{pgfpagesuselayoutoption}{executivepaper}[]%
+{\def\pgfpageoptionheight{10.5in}\def\pgfpageoptionwidth{7.25in}}
+
+\define@key{pgfpagesuselayoutoption}{landscape}[]%
+{
+ \let\pgf@temp=\pgfpageoptionwidth
+ \let\pgfpageoptionwidth=\pgfpageoptionheight
+ \let\pgfpageoptionheight=\pgf@temp
+}
+
+\define@key{pgfpagesuselayoutoption}{border shrink}%
+{\def\pgfpageoptionborder{#1}}
+
+\define@key{pgfpagesuselayoutoption}{corner width}%
+{\def\pgfpageoptioncornerwidth{#1}}
+
+\define@key{pgfpagesuselayoutoption}{odd numbered pages right}[]%
+{\def\pgfpageoptionfirstshipout{2}}
+
+\define@key{pgfpagesuselayoutoption}{second right}[]%
+{%
+ \def\pgfpageoptionfirstcenter{\pgfpoint{.5\paperwidth}{.5\paperheight}}%
+ \def\pgfpageoptionsecondcenter{\pgfpoint{1.5\paperwidth}{.5\paperheight}}%
+ \def\pgfpageoptiontwoheight{\paperheight}%
+ \def\pgfpageoptiontwowidth{2\paperwidth}%
+}
+
+\define@key{pgfpagesuselayoutoption}{second left}[]%
+{%
+ \def\pgfpageoptionfirstcenter{\pgfpoint{1.5\paperwidth}{.5\paperheight}}%
+ \def\pgfpageoptionsecondcenter{\pgfpoint{.5\paperwidth}{.5\paperheight}}%
+ \def\pgfpageoptiontwoheight{\paperheight}%
+ \def\pgfpageoptiontwowidth{2\paperwidth}%
+}
+
+\define@key{pgfpagesuselayoutoption}{second top}[]%
+{%
+ \def\pgfpageoptionfirstcenter{\pgfpoint{.5\paperwidth}{.5\paperheight}}%
+ \def\pgfpageoptionsecondcenter{\pgfpoint{.5\paperwidth}{1.5\paperheight}}%
+ \def\pgfpageoptiontwoheight{2\paperheight}%
+ \def\pgfpageoptiontwowidth{\paperwidth}%
+}
+
+\define@key{pgfpagesuselayoutoption}{second bottom}[]%
+{%
+ \def\pgfpageoptionfirstcenter{\pgfpoint{.5\paperwidth}{1.5\paperheight}}%
+ \def\pgfpageoptionsecondcenter{\pgfpoint{.5\paperwidth}{.5\paperheight}}%
+ \def\pgfpageoptiontwoheight{2\paperheight}%
+ \def\pgfpageoptiontwowidth{\paperwidth}%
+}
+
+
+
+% Predefined layouts
+
+\pgfpagesdeclarelayout{rounded corners}
+{
+ \def\pgfpageoptioncornerwidth{10pt}
+}
+{
+ \pgfpagesphysicalpageoptions
+ {%
+ logical pages=1
+ }
+ \pgfpageslogicalpageoptions{1}
+ {%
+ center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight},%
+ corner width=\pgfpageoptioncornerwidth%
+ }%
+}
+
+\pgfpagesdeclarelayout{resize to}
+{
+ \def\pgfpageoptionborder{0pt}
+}
+{
+ \pgfpagesphysicalpageoptions
+ {%
+ logical pages=1,%
+ physical height=\pgfpageoptionheight,%
+ physical width=\pgfpageoptionwidth%
+ }
+ \pgfpageslogicalpageoptions{1}
+ {%
+ resized width=\pgfphysicalwidth,%
+ resized height=\pgfphysicalheight,%
+ border shrink=\pgfpageoptionborder,%
+ center=\pgfpoint{.5\pgfphysicalwidth}{.5\pgfphysicalheight}%
+ }%
+}
+
+\pgfpagesdeclarelayout{two screens with lagging second}
+{}
+{
+ \pgfpagesphysicalpageoptions
+ {%
+ logical pages=2,%
+ physical height=\pgfpageoptiontwoheight,%
+ physical width=\pgfpageoptiontwowidth,%
+ last logical shipout=1,%
+ }
+ \pgfpageslogicalpageoptions{1}
+ {%
+ center=\pgfpageoptionfirstcenter,%
+ }%
+ \pgfpageslogicalpageoptions{2}
+ {%
+ center=\pgfpageoptionsecondcenter,%
+ copy from=1%
+ }%
+}
+
+\pgfpagesdeclarelayout{two screens with optional second}
+{}
+{
+ \pgfpagesphysicalpageoptions
+ {%
+ logical pages=2,%
+ physical height=\pgfpageoptiontwoheight,%
+ physical width=\pgfpageoptiontwowidth,%
+ last logical shipout=1%
+ }
+ \pgfpageslogicalpageoptions{1}
+ {%
+ center=\pgfpageoptionfirstcenter,%
+ }%
+ \pgfpageslogicalpageoptions{2}
+ {%
+ center=\pgfpageoptionsecondcenter,%
+ copy from=2%
+ }%
+}
+
+\pgfpagesdeclarelayout{2 on 1}
+{
+ \edef\pgfpageoptionheight{\the\paperwidth} % landscaped by default
+ \edef\pgfpageoptionwidth{\the\paperheight}
+ \def\pgfpageoptionborder{0pt}
+ \def\pgfpageoptionfirstshipout{1}
+}
+{
+ \pgfpagesphysicalpageoptions
+ {%
+ logical pages=2,%
+ physical height=\pgfpageoptionheight,%
+ physical width=\pgfpageoptionwidth,%
+ current logical shipout=\pgfpageoptionfirstshipout%
+ }
+ \ifdim\paperheight>\paperwidth\relax
+ % put side-by-side
+ \pgfpageslogicalpageoptions{1}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.5\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{2}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=\pgfphysicalheight,%
+ center=\pgfpoint{.75\pgfphysicalwidth}{.5\pgfphysicalheight}%
+ }%
+ \else
+ % stack on top of one another
+ \pgfpageslogicalpageoptions{1}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.5\pgfphysicalwidth}{.75\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{2}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.5\pgfphysicalwidth}{.25\pgfphysicalheight}%
+ }%
+ \fi
+}
+
+
+\pgfpagesdeclarelayout{4 on 1}
+{
+ \edef\pgfpageoptionheight{\the\paperheight}
+ \edef\pgfpageoptionwidth{\the\paperwidth}
+ \edef\pgfpageoptionborder{0pt}
+}
+{
+ \pgfpagesphysicalpageoptions
+ {%
+ logical pages=4,%
+ physical height=\pgfpageoptionheight,%
+ physical width=\pgfpageoptionwidth%
+ }
+ \pgfpageslogicalpageoptions{1}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.75\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{2}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.75\pgfphysicalwidth}{.75\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{3}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.25\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{4}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.75\pgfphysicalwidth}{.25\pgfphysicalheight}%
+ }%
+}
+
+
+\pgfpagesdeclarelayout{8 on 1}
+{
+ \edef\pgfpageoptionheight{\the\paperwidth} % landscaped by default
+ \edef\pgfpageoptionwidth{\the\paperheight}
+ \def\pgfpageoptionborder{0pt}
+}
+{
+ \pgfpagesphysicalpageoptions
+ {%
+ logical pages=8,%
+ physical height=\pgfpageoptionheight,%
+ physical width=\pgfpageoptionwidth%
+ }
+ \ifdim\paperheight>\paperwidth\relax
+ % put side-by-side
+ \pgfpageslogicalpageoptions{1}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.125\pgfphysicalwidth}{.75\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{2}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.375\pgfphysicalwidth}{.75\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{3}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.625\pgfphysicalwidth}{.75\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{4}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.875\pgfphysicalwidth}{.75\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{5}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.125\pgfphysicalwidth}{.25\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{6}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.375\pgfphysicalwidth}{.25\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{7}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.625\pgfphysicalwidth}{.25\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{8}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.875\pgfphysicalwidth}{.25\pgfphysicalheight}%
+ }%
+ \else
+ % stack on top of one another
+ \pgfpageslogicalpageoptions{1}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.875\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{2}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.75\pgfphysicalwidth}{.875\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{3}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.625\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{4}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.75\pgfphysicalwidth}{.625\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{5}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.375\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{6}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.75\pgfphysicalwidth}{.375\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{7}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.125\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{8}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.75\pgfphysicalwidth}{.125\pgfphysicalheight}%
+ }%
+ \fi
+}
+
+
+\pgfpagesdeclarelayout{16 on 1}
+{
+ \edef\pgfpageoptionheight{\the\paperheight}
+ \edef\pgfpageoptionwidth{\the\paperwidth}
+ \edef\pgfpageoptionborder{0pt}
+}
+{
+ \pgfpagesphysicalpageoptions
+ {%
+ logical pages=16,%
+ physical height=\pgfpageoptionheight,%
+ physical width=\pgfpageoptionwidth%
+ }
+ \pgfpageslogicalpageoptions{1}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.125\pgfphysicalwidth}{.875\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{2}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.375\pgfphysicalwidth}{.875\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{3}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.625\pgfphysicalwidth}{.875\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{4}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.875\pgfphysicalwidth}{.875\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{5}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.125\pgfphysicalwidth}{.625\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{6}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.375\pgfphysicalwidth}{.625\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{7}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.625\pgfphysicalwidth}{.625\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{8}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.875\pgfphysicalwidth}{.625\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{9}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.125\pgfphysicalwidth}{.375\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{10}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.375\pgfphysicalwidth}{.375\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{11}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.625\pgfphysicalwidth}{.375\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{12}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.875\pgfphysicalwidth}{.375\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{13}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.125\pgfphysicalwidth}{.125\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{14}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.375\pgfphysicalwidth}{.125\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{15}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.625\pgfphysicalwidth}{.125\pgfphysicalheight}%
+ }%
+ \pgfpageslogicalpageoptions{16}
+ {%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.875\pgfphysicalwidth}{.125\pgfphysicalheight}%
+ }%
+}
+
+
+% Change/set main option
+%
+% #1 = options
+%
+% Options:
+%
+% logical pages = number of logical pages per physical page
+% logical shipouts = number of shipouts needed to fill a physical page
+% (may be less than the number of logical pages,
+% if some logical pages are calculated
+% automatically)
+% current logical shipout = number of logical shipout that will come
+% next.
+%
+% Example:
+%
+% \pgfpagesphysicalpageoptions{logical pages=2,logical shipouts=1}
+
+\newcommand\pgfpagesphysicalpageoptions[1]{%
+ \pgf@lastshipout=0\relax%
+ \pgf@currentshipout=0\relax%
+ \setkeys{pgfpages@main}{#1}%
+ \ifnum\pgf@lastshipout=0\relax%not set
+ \pgf@lastshipout=\pgf@logicalpages%
+ \fi%
+ \ifnum\pgf@currentshipout=0\relax%not set
+ \pgf@currentshipout=\pgf@firstshipout%
+ \fi%
+}
+
+
+\define@key{pgfpages@main}{logical pages}{\pgf@logicalpages=#1\relax}
+\define@key{pgfpages@main}{first logical shipout}{\pgf@firstshipout=#1\relax}
+\define@key{pgfpages@main}{last logical shipout}{\pgf@lastshipout=#1\relax}
+\define@key{pgfpages@main}{current logical shipout}{\pgf@currentshipout=#1\relax}
+\define@key{pgfpages@main}{physical height}{\pgfphysicalheight=#1\relax}
+\define@key{pgfpages@main}{physical width}{\pgfphysicalwidth=#1\relax}
+
+
+
+% Setup/change parameters of a logical page. You must call this
+% macro for each logical page.
+%
+% #1 = logical page number
+% #2 = options
+%
+% Options:
+%
+% original height = height of the logical page (\paperheight at point of
+% first invocation by default)
+% original width = width of the logical page (\paperwidth by default)
+% resized height = height of the logical page after resizing
+% resized width = width of the logical page after resizing
+% border shrink = length that is subtracted from resized height and
+% resized width
+% border code = pgf commands to be used for drawing a border (a
+% path with the border set will already have been
+% set)
+% rounded corners = clip the frame against a rectangle of the size of
+% the frame with corners of the given radius
+% scale = factor by which the page is enlarged/shrunk
+% center = center of the logical page in the physical page
+% rotation = degree by which the page is rotated around its center
+% xscale = scale only x-axis (use -1 to flip along y-axis)
+% yscale = scale only y-axis (use -1 to flip along x-axis)
+% copy from = copy the contents from this logical page of the
+% previous physical page, if no contents is specified
+%
+% If more than one of the three options ``resized height'', ``resized
+% width'' and ``scale'' are given, the smallest resulting scaling
+% wins.
+%
+% Example:
+%
+% \pgfpageslogicalpageoptions{1}{scale=0.5,center=\pgfpoint{0cm}{2cm}}
+
+\newcommand\pgfpageslogicalpageoptions[2]{%
+ \pgf@cpn=#1\relax%
+ \expandafter\ifx\csname pgfpages@box@#1\endcsname\relax%
+ \expandafter\newbox\csname pgfpages@box@#1\endcsname%
+ \edef\pgf@temp{%
+ \noexpand\pgf@psetcurrent{height}{\the\paperheight}%
+ \noexpand\pgf@psetcurrent{width}{\the\paperwidth}%
+ }%
+ \pgf@temp%
+ \fi%
+ \setkeys{pgfpages@page}{#2}%
+ \pgf@calculateresizes{height}%
+ \pgf@calculateresizes{width}%
+ \pgfsetupphysicalpagesizes%
+}
+
+\def\pgf@epset#1#2#3{\expandafter\edef\csname pgfpages@p@#1@#2\endcsname{#3}}
+\def\pgf@epsetcurrent#1#2{\pgf@pset{\the\pgf@cpn}{#1}{#2}}
+\def\pgf@pset#1#2#3{\expandafter\def\csname pgfpages@p@#1@#2\endcsname{#3}}
+\def\pgf@pget#1#2{\csname pgfpages@p@#1@#2\endcsname}
+\def\pgf@psetcurrent#1#2{\pgf@pset{\the\pgf@cpn}{#1}{#2}}
+\def\pgf@pgetcurrent#1{\pgf@pget{\the\pgf@cpn}}
+
+\define@key{pgfpages@page}{scale}{\pgf@epsetcurrent{scale}{#1}}
+\define@key{pgfpages@page}{xscale}{\pgf@epsetcurrent{xscale}{#1}}
+\define@key{pgfpages@page}{yscale}{\pgf@epsetcurrent{yscale}{#1}}
+\define@key{pgfpages@page}{original height}{\pgf@epsetcurrent{height}{#1}}
+\define@key{pgfpages@page}{original width}{\pgf@epsetcurrent{width}{#1}}
+\define@key{pgfpages@page}{resized height}{\pgf@epsetcurrent{reheight}{#1}}
+\define@key{pgfpages@page}{resized width}{\pgf@epsetcurrent{rewidth}{#1}}
+\define@key{pgfpages@page}{center}{\pgf@psetcurrent{center}{#1}}
+\define@key{pgfpages@page}{rotation}{\pgf@epsetcurrent{rotation}{#1}}
+\define@key{pgfpages@page}{copy from}{\pgf@epsetcurrent{copy}{#1}}
+\define@key{pgfpages@page}{border shrink}{\pgf@epsetcurrent{border}{#1}}
+\define@key{pgfpages@page}{border code}{\pgf@psetcurrent{bordercode}{#1}}
+\define@key{pgfpages@page}{corner width}{\pgf@psetcurrent{cornerwidth}{#1}}
+
+\def\pgf@calculateresizes#1{%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @re#1\endcsname\relax%
+ \else%
+ \expandafter\@tempdima\csname pgfpages@p@\the\pgf@cpn @re#1\endcsname\relax%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @border\endcsname\relax%
+ \else%
+ \expandafter\@tempdimb\csname pgfpages@p@\the\pgf@cpn @border\endcsname\relax%
+ \advance\@tempdima by-2\@tempdimb\relax%
+ \fi%
+ \expandafter\@tempdimb\csname pgfpages@p@\the\pgf@cpn @#1\endcsname\relax%
+ \@tempcnta=\@tempdimb%
+ \divide\@tempcnta by 65536\relax%
+ \ifnum\@tempcnta=0\relax%
+ \@tempcnta=1\relax%
+ \fi%
+ \divide\@tempdima by\@tempcnta\relax%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @scale\endcsname\relax%
+ \@tempdimb=10000pt%
+ \else%
+ \expandafter\@tempdimb\expandafter=\csname pgfpages@p@\the\pgf@cpn @scale\endcsname pt\relax%
+ \fi%
+ \ifdim\@tempdima<\@tempdimb%
+ \edef\pgf@temp{{scale}{\expandafter\Pgf@geT\the\@tempdima}}%
+ \expandafter\pgf@psetcurrent\pgf@temp%
+ \fi%
+ \fi%
+}
+
+
+
+% Shipout a physical page immediately
+%
+% Example:
+%
+% \pgfshipoutphysicalpage
+
+\newcommand\pgfshipoutphysicalpage{%
+ \ifnum\pgf@logicalpages>0\relax%
+ \pgfpages@buildshipoutbox%
+ \pgfpages@shipoutshipoutbox%
+ \pgfpages@performcopying%
+ \global\pgfphysicalpageemptytrue%
+ \global\pgf@holdingphysicalpagefalse%
+ \fi%
+}
+
+\newbox\pgfpages@shipoutbox
+
+\def\pgfpages@buildshipoutbox{%
+ \setbox\pgfpages@shipoutbox=\vbox{{%
+ \set@typeset@protect%
+ \offinterlineskip%
+ \pgfsys@beginpicture%
+ \pgf@cpn=1\relax%
+ \loop%
+ \setbox0=\hbox to \csname pgfpages@p@\the\pgf@cpn @width\endcsname{%
+ \hskip1in%
+ \vbox to \csname pgfpages@p@\the\pgf@cpn @height\endcsname%
+ {\vskip1in\offinterlineskip\expandafter\copy\csname
+ pgfpages@box@\the\pgf@cpn\endcsname\vss}\hss}%
+ \pgfsys@beginscope%
+ % Translate lower left corner
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @center\endcsname\relax%
+ \else%
+ \pgflowlevel{\pgftransformshift{\csname pgfpages@p@\the\pgf@cpn @center\endcsname}}%
+ \fi%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @scale\endcsname\relax%
+ \else%
+ \pgflowlevel{\pgftransformscale{\csname pgfpages@p@\the\pgf@cpn @scale\endcsname}}%
+ \fi%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @xscale\endcsname\relax%
+ \else%
+ \pgflowlevel{\pgftransformxscale{\csname pgfpages@p@\the\pgf@cpn @xscale\endcsname}{1}}%
+ \fi%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @yscale\endcsname\relax%
+ \else%
+ \pgflowlevel{\pgftransformyscale{\csname pgfpages@p@\the\pgf@cpn @yscale\endcsname}}%
+ \fi%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname\relax%
+ \pgfscope%
+ \else%
+ \pgflowlevel{\pgftransformrotate{\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname}}%
+ \fi%
+ \@tempdima=\csname pgfpages@p@\the\pgf@cpn @width\endcsname\relax%
+ \@tempdimb=\csname pgfpages@p@\the\pgf@cpn @height\endcsname\relax%
+ \pgflowlevel{\pgftransformshift{\pgfpoint{-.5\@tempdima}{-.5\@tempdimb}}}%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @bordercode\endcsname\relax%
+ \else%
+ \pgfpathmoveto{\pgfpathorigin}%
+ \pgfpathlineto{\pgfpoint{\wd0}{0pt}}%
+ \pgfpathlineto{\pgfpoint{\wd0}{\ht0}}%
+ \pgfpathlineto{\pgfpoint{0pt}{\ht0}}%
+ \pgfpathclose%
+ {\csname pgfpages@p@\the\pgf@cpn @bordercode\endcsname}%
+ \fi%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @cornerwidth\endcsname\relax%
+ \else%
+ {
+ \expandafter\@tempdima\csname pgfpages@p@\the\pgf@cpn @cornerwidth\endcsname\relax%
+ \color{black}
+ \pgfpathrectangle{\pgfpathorigin}{\pgfpoint{\@tempdima}{\@tempdima}}%
+ \pgfpathrectangle{\pgfpoint{0pt}{\ht0-\@tempdima}}{\pgfpoint{\@tempdima}{\@tempdima}}%
+ \pgfpathrectangle{\pgfpoint{\wd0-\@tempdima}{0pt}}{\pgfpoint{\@tempdima}{\@tempdima}}%
+ \pgfpathrectangle{\pgfpoint{\wd0-\@tempdima}{\ht0-\@tempdima}}{\pgfpoint{\@tempdima}{\@tempdima}}%
+ \pgfusepath{fill}%
+ \pgfpathmoveto{\pgfpoint{0pt}{\@tempdima}}
+ \pgfpathcurveto{\pgfpoint{0pt}{0.555\@tempdima}}{\pgfpoint{.555\@tempdima}{0pt}}{\pgfpoint{\@tempdima}{0pt}}
+ \pgfpathlineto{\pgfpoint{\wd0-\@tempdima}{0pt}}
+ \pgfpathcurveto{\pgfpoint{\wd0-.555\@tempdima}{0pt}}{\pgfpoint{\wd0}{.555\@tempdima}}{\pgfpoint{\wd0}{\@tempdima}}
+ \pgfpathlineto{\pgfpoint{\wd0}{\ht0-\@tempdima}}
+ \pgfpathcurveto{\pgfpoint{\wd0}{\ht0-.555\@tempdima}}{\pgfpoint{\wd0-.555\@tempdima}{\ht0}}{\pgfpoint{\wd0-\@tempdima}{\ht0}}
+ \pgfpathlineto{\pgfpoint{\@tempdima}{\ht0}}
+ \pgfpathcurveto{\pgfpoint{.555\@tempdima}{\ht0}}{\pgfpoint{0pt}{\ht0-.555\@tempdima}}{\pgfpoint{0pt}{\ht0-\@tempdima}}
+ \pgfpathclose
+ \pgfusepath{clip}
+ \color{white}
+ \pgfpathrectangle{\pgfpathorigin}{\pgfpoint{\wd0}{\ht0}}
+ \pgfusepath{fill}
+ }
+ \fi%
+ \ht0=0pt%
+ \wd0=0pt%
+ \dp0=0pt%
+ \pgfsys@hbox0%
+ \endpgfscope%
+ \pgfsys@endscope%
+ \ifnum\pgf@cpn<\pgf@logicalpages%
+ \advance \pgf@cpn by 1\relax%
+ \repeat%
+ \pgfsys@endpicture%
+ }}%
+}
+
+
+\def\pgfpages@shipoutshipoutbox{%
+ \begingroup
+ \let \protect \noexpand
+ \@resetactivechars
+ \global\let\@@if@newlist\if@newlist
+ \global\@newlistfalse
+ \@parboxrestore
+ \pgfpages@originalshipout%
+ \hbox{%
+ \hskip-1in%
+ \vbox to \pgfphysicalheight{%
+ \vss\box\pgfpages@shipoutbox%
+ \vskip1in%
+ }}%
+ \endgroup%
+}
+
+\def\pgfpages@performcopying{
+ \pgf@cpn=1\relax% copy first
+ \loop%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @copy\endcsname\relax
+ \else%
+ \edef\pgf@temp{\noexpand\global\noexpand\setbox\csname pgfpages@box@%
+ \the\pgf@cpn\endcsname=\noexpand\copy\csname pgfpages@box@\csname
+ pgfpages@p@\the\pgf@cpn @copy\endcsname\endcsname}%
+ \pgf@temp%
+ \fi%
+ \ifnum\pgf@cpn<\pgf@logicalpages%
+ \advance \pgf@cpn by 1\relax%
+ \repeat%
+ \pgf@cpn=1\relax% then void
+ \loop%
+ \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @copy\endcsname\relax
+ \expandafter\global\expandafter\setbox\csname pgfpages@box@\the\pgf@cpn\endcsname=\box\voidb@x%
+ \else%
+ \fi%
+ \ifnum\pgf@cpn<\pgf@logicalpages%
+ \advance \pgf@cpn by 1\relax%
+ \repeat%
+}
+
+
+
+% Save original shipout commands
+%
+% Example:
+%
+% \pgfhookintoshipout
+
+\newcommand\pgfhookintoshipout{
+ \let\pgfpages@originalshipout=\shipout
+ \let\shipout=\pgfpages@interceptshipout
+}
+
+\def\pgfpages@interceptshipout{%
+ \ifnum\pgf@shipoutnextto>0\relax
+ \def\pgf@next{%
+ \expandafter\global\expandafter\setbox\csname pgfpages@box@\the\pgf@shipoutnextto\endcsname=\box\voidb@x%
+ \afterassignment\pgfpages@shipouttestnext%
+ \pgfpagesshipoutlogicalpage{\the\pgf@shipoutnextto}%
+ }%
+ \else%
+ \ifpgf@holdingphysicalpage% shipout physical page now
+ {\pgfshipoutphysicalpage}%
+ \fi%
+ \ifnum\pgf@logicalpages=0\relax
+ \def\pgf@next{\pgfpages@originalshipout}%
+ \else%
+ \def\pgf@next{%
+ \expandafter\global\expandafter\setbox\csname pgfpages@box@\the\pgf@currentshipout\endcsname=\box\voidb@x%
+ \afterassignment\pgfpages@shipouttest%
+ \pgfpagesshipoutlogicalpage{\the\pgf@currentshipout}%
+ }%
+ \fi%
+ \fi%
+ \pgf@next%
+}
+
+\def\pgfpages@shipouttest{%
+ \ifvoid\csname pgfpages@box@\the\pgf@currentshipout\endcsname\relax%
+ \aftergroup\pgfpages@preparenextshipout%
+ \else%
+ \pgfpages@preparenextshipout%
+ \fi%
+}
+
+\def\pgfpages@shipouttestnext{%
+ \ifvoid\csname pgfpages@box@\the\pgf@shipoutnextto\endcsname\relax%
+ \aftergroup\pgfpages@preparenextshipout%
+ \else%
+ \pgfpages@preparenextshipout%
+ \fi%
+}
+
+\def\pgfpages@preparenextshipout{%
+ \ifnum\pgf@shipoutnextto=0\relax%
+ \global\advance\pgf@currentshipout by 1\relax%
+ \else%
+ \global\pgf@shipoutnextto=0\relax%
+ \fi%
+ \ifnum\pgf@currentshipout>\pgf@lastshipout\relax%
+ \global\pgf@currentshipout=\pgf@firstshipout\relax%
+ \global\pgf@holdingphysicalpagetrue%
+ \fi%
+}
+
+
+
+% Shipout a logical page
+%
+% #1 = logical page number
+%
+% The command should be followed by a box. This box will become the
+% contents of the logical page.
+%
+% Example:
+%
+% \pgfpagesshipoutlogicalpage{0}\vbox{Hi!}
+
+\newcommand\pgfpagesshipoutlogicalpage[1]{%
+ \global\pgfphysicalpageemptyfalse%
+ \expandafter\global\expandafter\setbox\csname pgfpages@box@#1\endcsname=}
+
+
+
+% Finish current page and shipout next page to a specific logical page.
+%
+% #1 = logical page number
+%
+% When the current page has been typset, it will be become the given
+% logical page. This command ``interrupts'' the normal order of
+% logical pages.
+%
+% Example:
+%
+% \pgfpagesuselayout{two screens with optional second}
+%
+% Text for main page.\clearpage
+%
+% \pgfpagescurrentpagewillbelogicalpage{2}
+%
+% Text that goes to second page
+%
+% \clearpage
+%
+% Text for main page.
+
+\newcommand\pgfpagescurrentpagewillbelogicalpage[1]{%
+ \global\pgf@shipoutnextto=#1\relax%
+}
+
+
+% Setup the physical page sizes
+%
+% Example:
+%
+% \pgfsetupphysicalpagesizes
+
+\newcommand\pgfsetupphysicalpagesizes{%
+ % The following code was send to me by Rolf Niepraschk
+ \ifx\Gin@driver\@empty\else%
+ \filename@parse{\Gin@driver}\@tempswafalse%
+ \def\reserved@a{dvips}%
+ \ifx\filename@base\reserved@a\@tempswatrue\fi%
+ \def\reserved@a{dvipdfm}%
+ \ifx\filename@base\reserved@a\@tempswatrue\fi%
+ \if@tempswa%
+ \AtBeginDvi{%
+ \special{papersize=\the\pgfphysicalwidth,\the\pgfphysicalheight}}%
+ \fi%
+ \def\reserved@a{pdftex}%
+ \ifx\filename@base\reserved@a
+ \pdfpagewidth\pgfphysicalwidth\pdfpageheight\pgfphysicalheight%
+ \fi%
+ \def\reserved@a{vtex}%
+ \ifx\filename@base\reserved@a
+ \mediawidth\pgfphysicalwidth\mediaheight\pgfphysicalheight%
+ \fi%
+ \fi
+}
+
+
+%
+% Start/End setup
+%
+\AtBeginDocument
+{
+ \pgfhookintoshipout
+ \pgfsetupphysicalpagesizes
+}
+\AtEndDocument
+{
+ \clearpage
+ \ifpgfphysicalpageempty
+ \else
+ \pgfshipoutphysicalpage
+ \fi
+}
+
diff --git a/Master/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty b/Master/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
new file mode 100644
index 00000000000..509ebded392
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
@@ -0,0 +1,8 @@
+% Copyright 2005 by Till Tantau <tantau@users.sourceforge.net>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\input{pgfrcs.code.tex}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty b/Master/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty
new file mode 100644
index 00000000000..9f4ec8c970d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty
@@ -0,0 +1,105 @@
+\ProvidesPackage{xxcolor}[2003/10/24 ver 0.1]
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\RequirePackage{xcolor}
+
+
+
+% Command \newcolormixin{\somecommand}
+%
+% Description:
+%
+% After this command has been called, you can assign a partial color
+% specification to \somecommand. Every time a color is set, the
+% partial color specification in \somecommand will be applied to the
+% current color.
+%
+% Examples:
+%
+% \newcolormixin\mymixin
+% \def\mymixin{!50!white}
+%
+% \newcolormixin\anothermixin
+% \def\anothermixin{!50!red}
+
+\def\newcolormixin#1{%
+ \expandafter\def\csname XC@mixin@\the\XC@nummixins\endcsname{#1}%
+ \advance\XC@nummixins\@ne%
+ \ifx#1\@undefined\def#1{}\fi}
+
+\newcount\XC@nummixins
+\newcount\XC@countmixins
+
+
+% Command \applycolormixins{colorname}
+%
+% Description:
+%
+% Applies all color mixins that have been defined using \newcolormixin
+% to the color named colorname.
+%
+% Examples:
+%
+% \applycolormixins{mycolor}
+
+\def\applycolormixins#1{%
+ \XC@countmixins=0\relax%
+ \loop%
+ \ifnum\XC@countmixins<\XC@nummixins%
+ \colorlet{#1}{#1\csname XC@mixin@\the\XC@countmixins\endcsname}%
+ \advance\XC@countmixins\@ne\relax%
+ \repeat%
+}
+
+
+% Internal:
+
+\ifx\XC@mcolor\relax
+ \let\XC@mcolor\@empty
+\fi
+
+\g@addto@macro\XC@mcolor{%
+ \ifnum\XC@nummixins>0%
+ \@namelet{\string\color@XC@mixtmp}{\string\color@.}%
+ \applycolormixins{XC@mixtmp}%
+ \@namelet{current@color}{\string\color@XC@mixtmp}%
+ \fi%
+}
+
+
+
+% Environment colormixin
+%
+% #1 = full xcolor specification after the first ! ("white" may not be
+% omitted)
+%
+% Description:
+%
+% Inside the environment, all colors get the specified mixin. May be
+% nested.
+%
+% Examples:
+%
+% \color{red}This is red.
+% \begin{colormixin}{25!black}
+% This is dark red.
+% \color{blue}
+% This is dark blue.
+% \end{colormixin}
+% This is normal red once more.
+
+\newcolormixin\colorcurrentmixin
+
+\newenvironment{colormixin}[1]%
+{\edef\colorcurrentmixin{!#1\colorcurrentmixin}\color{.}}{}
+
+\def\pgfalternateextension{\colorcurrentmixin}
+
+\endinput
+